hmp 4 years ago
parent
commit
a509a243ce

+ 1 - 0
assets/http/api.js

@@ -10,6 +10,7 @@ const platform = {
 }
 
 const activity = {
+	getPromoteNum: p => http.get('sing_active/activerecord/getPromoteNum', {params:p}),
 	getWorksList: p => http.get('/app/active/product/sortList', {params:p}),
 	sortListQuery: p => http.get('/app/active/product/sortListQuery', {params:p}),
 	searchWork: p => http.get('/app/active/product/search', {params:{keyword: p}}),

+ 7 - 2
components/login.vue

@@ -40,6 +40,8 @@
 		},
 		data() {
 			return {
+				notToast:false,
+				
 				canIUseGetUserProfile: false,
 				//保存时间七天
 				cacheTime: 1 * 24 * 60 * 60 * 7,
@@ -74,7 +76,8 @@
 			hidePhoneModal(){
 				this.phoneShow = false
 			},
-			show() {
+			show(notToast) {
+				this.notToast=notToast || false
 				//获取邀请码
 				this.inviteCode = this.$cache.get('inviteCode')
 				this.dialogShow = true
@@ -172,7 +175,9 @@
 						if (this.$isEmpty(this.vuex_phone) && this.$config.isAuthPhone) {
 							this.showPhoneModal()
 						}else{
-							this.$refs.toast.info('登录成功')
+							if (!this.notToast) {
+								this.$refs.toast.info('登录成功')
+							}
 						}
 						//登录成功
 						this.$emit('signIn', resp)

+ 5 - 3
components/poster/poster.vue

@@ -7,7 +7,7 @@
 
 		<view class="btn" v-if="imgLoad">
 			<view class="save-btn" @click.stop="saveImage">保存图片</view>
-			<view class="save-btn" @click.stop="goLottery"> 去抽奖 </view>
+			<view class="save-btn" @click.stop="goLottery" v-if="subTitle"> 去抽奖 </view>
 		</view>
 
 		<canvas style="position: fixed;top: 999999999rpx;" @click.stop=""
@@ -47,7 +47,7 @@
 				canvasH: 0,
 				ctx: null,
 				isShow: false,
-				qrcode: ''
+				qrcode: '',
 			}
 		},
 		methods: {
@@ -55,7 +55,9 @@
 				
 			},
 			goLottery(){
-				
+				uni.navigateTo({
+					url:"/pages/webview/webview?url= "+encodeURIComponent('https://api.jijipai.cn/h5/#/pages/activity/lottery?drawId=12')
+				})
 			},
 			load() {
 				this.imgLoad = true

+ 1 - 1
pages.json

@@ -163,7 +163,7 @@
 			},
 			{
 				"pagePath": "pages/shop/shop",
-				"text": "商城",
+				"text": "积分换礼",
 				"selectedIconPath": "static/tarbar/shangcheng.png",
 				"iconPath": "static/tarbar/shangcheng0.png"
 			},

+ 11 - 2
pages/activity/activityDetail.vue

@@ -295,18 +295,27 @@
 				}
 			},
 			customBack() {
-				if (this.isCustomBack) {
+				if (this.isCustomBack==true) {
 					uni.switchTab({
 						url: '/pages/index/home'
 					})
+				}else{
+					uni.navigateBack({
+						delta:1
+					})
 				}
 			},
 			//分享
 			async showPoster() {
 				this.$refs.poster.showCanvas(this.qrCodeImg)
 			},
-			shareConfirm(item) {
+			async shareConfirm(item) {
 				if (item.name == '海报') {
+					let params={
+						activeId:this.activity.activeId,
+						userId:this.vuex_userId
+					}
+					this.promoteNum= (await this.$api.activity.getPromoteNum(params)).data.data
 					this.showPoster()
 					return
 				}

+ 89 - 7
pages/index/home.vue

@@ -7,7 +7,7 @@
 			</view>
 			<view class="">
 				<view class="cu-list grid col-4 no-border" style="border-radius:20rpx ;">
-					<view class="cu-item" @click.stop="$jump(item.path)" v-for="(item,index) in gridList" :key="index">
+					<view class="cu-item" @click.stop="jump(item)" v-for="(item,index) in gridList" :key="index">
 						<view class="grid-icon">
 							<image style="width: 88rpx;height: 88rpx;" :src="item.icon" />
 						</view>
@@ -25,20 +25,20 @@
 
 			<view style="padding: 30rpx 30rpx 0;">
 				<view class="text-bold" style="font-size: 34rpx;">
-					{{vuex_page_interface_show.indexTitle}}
+					{{vuex_page_interface_show.indexTitle || ''}}
 				</view>
 				<view @click="$jump('/pages/activity/activityDetail?id='+item.id)" class="card shadow"
 					v-for="(item,index) in worksList" :key="item.id">
 					<view v-if="index==0" class="center bg-img rank-tag"
-						style="background-image: url(../../static/icon/ph1.png)">
+						style="background-image: url(../../static/icon/ph1.png);z-index: 2;">
 						<text>1</text>
 					</view>
 					<view v-if="index==1" class="center bg-img rank-tag"
-						style="background-image: url(../../static/icon/ph2.png)">
+						style="background-image: url(../../static/icon/ph2.png);z-index: 2;">
 						<text>2</text>
 					</view>
 					<view v-if="index==2" class="center bg-img rank-tag"
-						style="background-image: url(../../static/icon/ph3.png)">
+						style="background-image: url(../../static/icon/ph3.png);z-index: 2;">
 						<text>3</text>
 					</view>
 					<view class="left">
@@ -46,7 +46,16 @@
 					</view>
 					<view class="right" style="width: 100%;">
 						<view class="flex-direction flex">
-							<text class="title">{{item.title}}</text>
+							<view class="flex">
+								<view class="center ">
+									<view class="cu-tag sm bg-red light radius">
+										编号:{{item.productNo}}
+									</view>
+								</view>
+								<view class="center">
+									<text class="title text-cut-1">{{item.title}}</text>
+								</view>
+							</view>
 							<rich-text class="desc text-cut-2" :nodes="decodeURIComponent(item.content)"></rich-text>
 						</view>
 						<view class="bottom" style="width: 100%;">
@@ -65,13 +74,26 @@
 				</view>
 			</view>
 		</mescroll-body>
+		<!-- 海报 -->
+		<login ref="login" @signIn="signIn" @phoneSuccess="phoneSuccess"></login>
+		<poster ref="poster" :avatar="posetrParams.avatar" :title="posetrParams.title"
+			:subTitle="posetrParams.subTitle"></poster>
+		<uqrcode class="canvas-hide" ref="uqrcode"></uqrcode>
+		<loading ref="loading" type="3"/>
+		<toast ref="toast" ></toast>
 	</view>
 </template>
 
 <script>
+	import poster from "@/components/poster/poster.vue"
+	import uqrcode from "@/components/uqrcode/uqrcode.vue"
 	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
 	export default {
 		mixins: [MescrollMixin],
+		components:{
+			poster,
+			uqrcode
+		},
 		data() {
 			return {
 				downOption: {
@@ -83,6 +105,13 @@
 						use: false
 					}
 				},
+				//海报
+				posetrParams: {
+					avatar: '',
+					title: '我是普法帮帮代言人',
+					subTitle: ''
+				},
+				qrCodeImg:'',
 				//活动id
 				activeId: '',
 				//排行榜
@@ -139,6 +168,19 @@
 				//获取轮播图
 				this.swiperList=JSON.parse(PAGE_INTERFACE_SHOW).indexImageList
 			},
+			jump(item){
+				if (item.name=='更多活动') {
+					this.$refs.toast.info('暂无更多活动')
+					return
+				}
+				if (item.name=='我要代言') {
+					this.showPromotePoster()
+					return
+				}
+				uni.navigateTo({
+					url:item.path
+				})
+			},
 			searchWorks(value) {
 				this.$api.activity.searchWork(value).then(res => {
 					this.worksList = res.data.data;
@@ -168,7 +210,39 @@
 					console.error(e);
 					this.mescroll.endErr()
 				}
-			}
+			},
+			//代言人海报
+			init(){
+				this.posetrParams = {
+					avatar: this.$cache.get('userInfo').avatar,
+					title: '我是普法帮帮代言人'+ this.$cache.get('userInfo').nickName,
+					subTitle: ''
+				}
+				this.$refs.poster.showCanvas(this.qrCodeImg)
+			},
+			async showPromotePoster() {
+				this.$refs.loading.showLoading()
+				this.posetrParams = {
+					avatar: this.$cache.get('userInfo').avatar,
+					title: '我是普法帮帮代言人'+ this.$cache.get('userInfo').nickName,
+					subTitle: ''
+				}
+				let userId = this.vuex_userId
+				let qrText = this.$config.PRODUCT_PATH + '?userId=' + userId
+				this.qrCodeImg = (await this.$refs.uqrcode.make({
+					size: 150,
+					text: qrText
+				})).tempFilePath
+				if (this.$isEmpty(this.vuex_userId)) {
+					this.$refs.loading.hide()
+					this.showLogin(true)
+					return
+				}
+				setTimeout(()=>{
+					this.$refs.poster.showCanvas(this.qrCodeImg)
+					this.$refs.loading.hide()	
+				},200)
+			},
 		}
 	}
 </script>
@@ -239,4 +313,12 @@
 			}
 		}
 	}
+	
+	.canvas-hide {
+		position: fixed;
+		right: 100vw;
+		bottom: 100vh;
+		z-index: -9999;
+		opacity: 0;
+	}
 </style>

+ 27 - 22
pages/mine/mine.vue

@@ -4,16 +4,16 @@
 			<view class="flex justify-between align-center" style="padding: 40rpx 30rpx;" v-if="vuex_userId">
 				<view class="padding-left">
 					<view class="text-black text-bold text-xl padding-bottom-20">
-						{{userData.nickName}}
+						{{userData.nickName || ''}}
 					</view>
 					<view class="flex align-center padding-top-sm">
 						<view>
-							<view class="text-black text-bold center">{{userData.heatValue}}</view>
+							<view class="text-black text-bold center">{{userData.heatValue || 0}}</view>
 							<view class="text-gray text-sm margin-top-10">热力</view>
 						</view>
 						<view style="height: 60upx;border: #D2D2D2 1px solid; margin: 0 30upx;"></view>
 						<view>
-							<view class="text-black text-bold center">{{userData.pufaPoint}}</view>
+							<view class="text-black text-bold center">{{userData.pufaPoint || 0}}</view>
 							<view class="text-gray text-sm margin-top-10">积分</view>
 						</view>
 						<view class="padding-left">
@@ -65,7 +65,7 @@
 			<view v-for="(item, index) in iconList" :key="index" @click="jump(item.url,item.auth)">
 				<block v-if="item.name == '分割线'">
 					<view style="padding: 10rpx 20rpx;">
-						<u-line ></u-line>
+						<u-line></u-line>
 					</view>
 				</block>
 				<block v-else>
@@ -74,7 +74,7 @@
 							<view class="flex align-center">
 								<image :src="item.icon" style="width: 38rpx;height: 38rpx;"></image>
 							</view>
-							<view class="text-black text-bold  padding-left-20" style="font-size: 30rpx;">{{item.name}}
+							<view class="text-black text-bold  padding-left-20" style="font-size: 30rpx;z-index: 99;">{{item.name}}
 							</view>
 						</view>
 						<view class="">
@@ -86,6 +86,7 @@
 				</block>
 			</view>
 		</view>
+		<toast ref="toast" ></toast>
 		<login ref="login" @signIn="signIn" @phoneSuccess="phoneSuccess"></login>
 	</view>
 </template>
@@ -106,7 +107,7 @@
 					},
 					{
 						name: '我的作品',
-						icon: '/static/mine/product.png',
+						icon: '/static/mine/publish.png',
 						url: '/pages/mine/my-product/my-product',
 						auth: true //是否登录验证
 					},
@@ -131,37 +132,41 @@
 					{
 						name: '更多活动',
 						icon: '/static/mine/huodong.png',
-						url: '',
+						url: 'more',
 						auth: false //是否登录验证
 					},
 					{
 						name: '活动规则',
 						icon: '/static/mine/guize.png',
 						url: '/pages/webview/point_rule?url=https://vote.guosen-fumao.cn/point_rule.html',
-						auth: false //是否登录验证
-					},
-					{
-						name: '更换主题',
-						icon: '/static/mine/theme.png',
-						url: 'theme',
-						auth: false //是否登录验证
+						auth: false
 					},
+					// {
+					// 	name: '更换主题',
+					// 	icon: '/static/mine/theme.png',
+					// 	url: 'theme',
+					// 	auth: false 
+					// },
 				],
 			}
 		},
 		onLoad() {
-			
+
 		},
 		methods: {
 			init() {
 				this.fetchUserInfo()
 			},
-			jump(url,auth){
+			jump(url, auth) {
+				if (url=='more') {
+					this.$u.toast('暂无更多活动')
+					return
+				}
 				if (this.$isEmpty(url)) {
 					this.$u.toast('暂未开放')
 					return
 				}
-				if (url=='/pages/shop/shop') {
+				if (url == '/pages/shop/shop') {
 					uni.switchTab({
 						url
 					})
@@ -181,11 +186,11 @@
 				}
 				this.$api.loginUser.detail(params).then(res => {
 					if (this.$isNotEmpty(res.data.data)) {
-						this.userData=res.data.data
-						let userInfo=this.userData
-						userInfo.sessionKey=this.$cache.get('userInfo').sessionKey
-						this.$cache.put('userInfo',userInfo)
-						this.$u.vuex('vuex_phone',this.userData.phone)
+						this.userData = res.data.data
+						let userInfo = this.userData
+						userInfo.sessionKey = this.$cache.get('userInfo').sessionKey
+						this.$cache.put('userInfo', userInfo)
+						this.$u.vuex('vuex_phone', this.userData.phone)
 					}
 				})
 			},

+ 2 - 2
pages/mine/my-product/my-product.vue

@@ -23,8 +23,8 @@
 					<view class="margin-left-sm text-lg text-black text-bold">我的作品</view>
 				</view>
 			</view>
-			<view @click="$jump('/pages/activity/activityDetail?id='+item.id+'&isCustomBack=false')" v-for="(item, index) in list" :key="index">
-				<view class="flex bg-white" style="padding:10rpx 30rpx 30rpx" @click="detail(item.id)">
+			<view @click.stop="$jump('/pages/activity/activityDetail?id='+item.id+'&isCustomBack=false')" v-for="(item, index) in list" :key="index">
+				<view class="flex bg-white" style="padding:10rpx 30rpx 30rpx">
 					<view class="">
 						<image :src="item.imgUrl" style="width: 120upx;height: 120upx;margin-right: 20upx;" mode="aspectFill"></image>
 					</view>

+ 118 - 74
pages/rank/rank.vue

@@ -10,85 +10,106 @@
 			</view>
 			<view class="flex justify-center align-center padding-bottom">
 				<view class="search">
-					<u-search  @search="searchWorks" search-icon="/static/rank/search.png" :show-action="false" bg-color="#fff"
-						style="width: 100%;" placeholder-color="#CCCCCC"></u-search>
+					<u-search @search="searchWorks" search-icon="/static/rank/search.png" :show-action="false"
+						bg-color="#fff" style="width: 100%;" placeholder-color="#CCCCCC"></u-search>
 				</view>
 			</view>
-			<block v-for="(item, index) in rankList" :key="item.id">
-				<block v-if="index == 0 || index == 1 || index == 2">
-					<view class=" flex align-center"
-						style="height: 230rpx;position: relative;margin: 10rpx 20rpx 20rpx 20rpx;"
-						:class="index == 0 ? 'first' : index == 1 ? 'second' : index == 2 ? 'third' : '' ">
-						<u-image width="220" height="220" mode="aspectFill" border-radius="10" :src="item.imgUrl"></u-image>
-						<view class="flex justify-between container" style="width: 100%;">
-							<view class="left" style="width: 95%;">
-								<view class="name text-cut ">{{item.title}}</view>
-								<view class="padding-tb-sm text-sm center"
-									style="color: #888888;justify-content: flex-start">
-									<u-avatar :src="item.userImg?item.userImg:'/static/icon/unlogin.png'" size="56"></u-avatar>
-									<text class="margin-left-10">{{item.username || '暂无信息'}}</text>
-								</view>
+			<mescroll-body ref="mescrollRef" @init="mescrollInit" :down="downOption" :up="upOption" @down="downCallback"
+				@up="upCallback">
+				<block v-for="(item, index) in rankList" :key="item.id">
+					<block v-if="index == 0 || index == 1 || index == 2">
+						<view class=" flex align-center"
+							style="height: 230rpx;position: relative;margin: 10rpx 20rpx 20rpx 20rpx;"
+							:class="index == 0 ? 'first' : index == 1 ? 'second' : index == 2 ? 'third' : '' ">
+							<u-image width="220" height="220" mode="aspectFill" border-radius="10" :src="item.imgUrl">
+							</u-image>
+							<view class="flex justify-between container" style="width: 100%;">
+								<view class="left" style="width: 95%;">
+									<view class="padding-top-20  " style="display: flex;">
+										<view class="center ">
+											<view class="cu-tag sm bg-red light radius">
+												编号:{{item.productNo}}
+											</view>
+										</view>
+										<view class="center">
+											<text class="name text-cut-1">{{item.title}}111111111111</text>
+										</view>
+									</view>
+									<view class="padding-tb-sm text-sm center"
+										style="color: #888888;justify-content: flex-start">
+										<u-avatar :src="item.userImg?item.userImg:'/static/icon/unlogin.png'" size="56">
+										</u-avatar>
+										<text class="margin-left-10">{{item.username || '暂无信息'}}</text>
+									</view>
 
-								<view class="flex justify-between">
-									<view class="hot-value center" style="justify-content: flex-start;">
-										<image src="../../static/rank/hot.png" style="width: 36rpx;height: 36rpx;"
-											mode=""></image>
-										<text>{{item.voteCount}}</text>
+									<view class="flex justify-between">
+										<view class="hot-value center" style="justify-content: flex-start;">
+											<image src="../../static/rank/hot.png" style="width: 36rpx;height: 36rpx;"
+												mode=""></image>
+											<text>{{item.voteCount}}</text>
+										</view>
+										<button @click.stop="$jump('/pages/activity/activityDetail?id='+item.id+'&isCustomBack=false')"
+											class="cu-btn round  bg-base sm text-white"
+											style="padding: 20rpx 38rpx;margin-bottom: 30rpx;">
+											<text>去投票</text>
+										</button>
 									</view>
-									<button
-										@click.stop="$jump('/pages/activity/activityDetail?id='+item.id)"
-										class="cu-btn round  bg-base sm text-white"
-										style="padding: 20rpx 38rpx;margin-bottom: 30rpx;">
-										<text>去投票</text>
-									</button>
 								</view>
 							</view>
-						</view>
 
-						<view class="" style="position: absolute;right: -16rpx;top: -16rpx;">
-							<image v-if="index==0" style="width: 70rpx;height: 70rpx;" src="../../static/rank/no1.png"
-								mode=""></image>
-							<image v-if="index==1" style="width: 70rpx;height: 70rpx;" src="../../static/rank/no2.png"
-								mode=""></image>
-							<image v-if="index==2" style="width: 70rpx;height: 70rpx;" src="../../static/rank/no3.png"
-								mode=""></image>
+							<view class="" style="position: absolute;right: -16rpx;top: -16rpx;">
+								<image v-if="index==0" style="width: 70rpx;height: 70rpx;"
+									src="../../static/rank/no1.png" mode=""></image>
+								<image v-if="index==1" style="width: 70rpx;height: 70rpx;"
+									src="../../static/rank/no2.png" mode=""></image>
+								<image v-if="index==2" style="width: 70rpx;height: 70rpx;"
+									src="../../static/rank/no3.png" mode=""></image>
+							</view>
 						</view>
-					</view>
-				</block>
-				<view v-else class="flex margin-20">
-					<view class="center text-bold text-lg" style="margin:0 20rpx;">
-						<text>{{index + 1}}</text>
-					</view>
-					<view class=" flex align-center "
-						style="background-color: #FFFFFF;border-radius: 20rpx;height: 200rpx;width: 95%;">
-						<u-image width="190" height="190" border-radius="10" :src="item.imgUrl"></u-image>
-						<view class="flex justify-between container" style="width: 100%;">
-							<view class="left" style="width: 95%;">
-								<view class="name text-cut " 
-									style="font-size: 28rpx;font-weight: 600;padding-top: 20rpx;width: 430rpx;">{{item.title}}</view>
-								<view class="padding-top-20 text-sm center"
-									style="color: #888888;justify-content: flex-start">
-									<u-avatar :src="item.userImg?item.userImg:'/static/icon/unlogin.png'" size="56"></u-avatar>
-									<text class="margin-left-10">{{item.username || '暂无信息'}}</text>
-								</view>
-								<view class="flex justify-between">
-									<view class="hot-value center" style="justify-content: flex-start;">
-										<image src="../../static/rank/hot.png" style="width: 36rpx;height: 36rpx;"
-											mode=""></image>
-										<text>{{item.voteCount}}</text>
+					</block>
+					<view v-else class="flex margin-20">
+						<view class="center text-bold text-lg" style="margin:0 20rpx;">
+							<text>{{index + 1}}</text>
+						</view>
+						<view class=" flex align-center "
+							style="background-color: #FFFFFF;border-radius: 20rpx;height: 200rpx;width: 95%;">
+							<u-image width="190" height="190" border-radius="10" :src="item.imgUrl"></u-image>
+							<view class="flex justify-between container" style="width: 100%;">
+								<view class="left" style="width: 95%;">
+									<view class="flex" style="padding-top: 20rpx;width: 430rpx;">
+										<view class="cu-tag sm bg-red light radius">
+											编号:{{item.productNo}}
+										</view>
+										<view class="name text-cut-1" style="font-size: 28rpx;font-weight: 600;">
+											{{item.title}}
+										</view>
+									</view>
+									<view class="padding-top-20 text-sm center"
+										style="color: #888888;justify-content: flex-start">
+										<u-avatar :src="item.userImg?item.userImg:'/static/icon/unlogin.png'" size="56">
+										</u-avatar>
+										<text class="margin-left-10">{{item.username || '暂无信息'}}</text>
+									</view>
+									<view class="flex justify-between">
+										<view class="hot-value center" style="justify-content: flex-start;">
+											<image src="../../static/rank/hot.png" style="width: 36rpx;height: 36rpx;"
+												mode=""></image>
+											<text>{{item.voteCount}}</text>
+										</view>
+										<button @click.stop="$jump('/pages/activity/activityDetail?id='+item.id+'&isCustomBack=false')"
+											class="cu-btn round bg-base sm text-white"
+											style="padding: 20rpx 38rpx;margin-bottom: 30rpx;">
+											<text>去投票</text>
+										</button>
 									</view>
-									<button 
-									@click.stop="$jump('/pages/activity/activityDetail?id='+item.id)"
-									 class="cu-btn round bg-base sm text-white"
-										style="padding: 20rpx 38rpx;margin-bottom: 30rpx;">
-										<text>去投票</text>
-									</button>
 								</view>
 							</view>
 						</view>
 					</view>
-				</view>
-			</block>
+				</block>
+			</mescroll-body>
+
+
 		</view>
 
 		<loading ref="loading" type="3" theme="2" />
@@ -96,13 +117,22 @@
 </template>
 
 <script>
+	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
 	import back from '@/components/back.vue'
 	export default {
-		components:{
+		mixins: [MescrollMixin],
+		components: {
 			back
 		},
 		data() {
 			return {
+				downOption:{
+					auto:false
+				},
+				upOption:{
+					use:false
+				},
+				
 				loading: true,
 				navbarShow: false,
 				rankList: [],
@@ -140,13 +170,28 @@
 			this.getList(0);
 		},
 		methods: {
-			getList(page){
-				const { defaultActiveId:activeId ,rankTotal }= this.$store.state['vuex_active_setting'];
-				this.$api.activity.getWorksList({ activeId , start: page,end: page+rankTotal }).then(res => {
-						this.rankList.push(...res.data.data);
-					});
+			downCallback(mescroll){
+				setTimeout(async ()=>{
+					await this.getList(0)
+					mescroll.endSuccess(this.rankList.length);
+				},1000)
+			},
+			upCallback(mescroll) {
+				console.log(mescroll);
+			},
+			async getList(page) {
+				const {
+					defaultActiveId: activeId,
+					rankTotal
+				} = this.$store.state['vuex_active_setting'];
+				let res=await this.$api.activity.getWorksList({
+					activeId,
+					start: page,
+					end: page + rankTotal
+				})
+				this.rankList=res.data.data
 			},
-			searchWorks(value){
+			searchWorks(value) {
 				this.$api.activity.searchWork(value).then(res => {
 					this.rankList = res.data.data;
 				})
@@ -198,7 +243,6 @@
 			padding-left: 20upx;
 
 			.name {
-				padding-top: 30rpx;
 				font-size: 32upx;
 				font-family: PingFang SC;
 				font-weight: 800;

+ 3 - 14
pages/shop/detail.vue

@@ -52,7 +52,7 @@
 		<view v-if="!exchangeShow" class="footer-fixed flex align-center justify-end padding bg-white"
 			style="padding: 30rpx;;border-top: 1rpx solid #e5e5e5;z-index: 9;">
 			<button class="cu-btn round text-white bg-base" style="width: 180upx;height: 80upx;"
-				@click="exchange">兑换</button>
+				@click="$refs.toast.info('暂未开放')">兑换</button>
 		</view>
 
 		<view v-else class="footer-fixed flex align-center justify-between  bg-white"
@@ -70,6 +70,7 @@
 			</view>
 		</view>
 		<login ref="login" @signIn="signIn" @phoneSuccess="phoneSuccess"></login>
+		<toast ref="toast" ></toast>
 	</view>
 </template>
 
@@ -107,7 +108,7 @@
 		},
 		methods: {
 			pufaPointChange(e) {
-
+			
 			},
 
 
@@ -117,18 +118,6 @@
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
 
 
 			/**

+ 6 - 3
pages/shop/shop.vue

@@ -23,7 +23,7 @@
 						</view>
 					</view>
 					<view class="center" style="margin-right: -30rpx;">
-						<view class="cu-btn round sm rule">
+						<view class="cu-btn round sm rule" @click="$jump('/pages/webview/point_rule?url=https://vote.guosen-fumao.cn/point_rule.html')">
 							积分规则
 						</view>
 					</view>
@@ -48,7 +48,7 @@
 								<text class="max">{{item.point}}积分</text>
 							</view>
 						</view>
-						<view class="bottom padding-top-20" @click="$u.toast('暂未开放')">
+						<view class="bottom padding-top-20" >
 							<button class="cu-btn round text-white bg-base"
 								style="width: 140upx;height: 50upx;">兑换</button>
 						</view>
@@ -81,9 +81,12 @@
 			}
 		},
 		onShow() {
-			this.fetchUserInfo()
+			this.init()
 		},
 		methods: {
+			init(){
+				this.fetchUserInfo()
+			},
 			fetchUserInfo() {
 				if (!this.vuex_userId) {
 					return

+ 6 - 3
pages/webview/point_rule.vue

@@ -1,6 +1,6 @@
 <template>
-	<view>
-		
+	<view style="padding: 50rpx;">
+		<web-view :src="src"></web-view>
 	</view>
 </template>
 
@@ -8,9 +8,12 @@
 	export default {
 		data() {
 			return {
-				
+				src:''
 			}
 		},
+		onLoad(options) {
+			this.src=options.url
+		},
 		methods: {
 			
 		}

BIN
static/mine/product.png


BIN
static/mine/publish.png


+ 2 - 2
utils/mixin.js

@@ -36,8 +36,8 @@ let page = {
 			console.log("登录成功,初始化数");
 		},
 		// 登录 begin
-		showLogin() {
-			this.$refs.login.show()
+		showLogin(notToast=false) {
+			this.$refs.login.show(notToast)
 		},
 		signIn(resp) {
 			//获取数据