浏览代码

转盘接口调试

lilei 4 年之前
父节点
当前提交
b93756d3e7
共有 5 个文件被更改,包括 81 次插入42 次删除
  1. 2 2
      App.vue
  2. 8 0
      api/luckyDraw.js
  3. 18 2
      pages/index/index.vue
  4. 50 37
      pagesA/luckDraw/luckDraw.vue
  5. 3 1
      store/index.js

+ 2 - 2
App.vue

@@ -1,6 +1,6 @@
 <script>
-	const uat_domain = 'https://lese.test.sxzxyj.net' // 预发布
-	// const uat_domain = 'http://192.168.16.103:8302' // 本地
+	// const uat_domain = 'https://lese.test.sxzxyj.net' // 预发布
+	const uat_domain = 'http://192.168.16.105:8302' // 本地
 	const pro_domain = 'https://lese.sxzxyj.net' // 生产
 	const uat_URL = uat_domain+'/gc-shop/' // 预发布
 	const pro_URL = pro_domain+'/gc-shop/'  // 生产

+ 8 - 0
api/luckyDraw.js

@@ -0,0 +1,8 @@
+import axios from '@/libs/axios.js';
+// 获取网点下的服务项目
+export const findEnable = params => {
+  return axios.request({
+    url: `luckyDraw/findEnable`,
+    method: 'get',
+  })
+};

+ 18 - 2
pages/index/index.vue

@@ -83,12 +83,13 @@
 		deleteGoodsFormCart,
 		updateGoodsBuyQty
 	} from '@/api/shoppingCart.js'
+	import {findEnable} from '@/api/luckyDraw.js'
 	import {bannerList} from '@/api/banner.js'
 	import {getLookUpDatas,openDevice} from '@/api/data.js'
 	import {stationList} from '@/api/station.js'
 	import {checkLogin,getUserInfo} from '@/api/login.js'
 	import {parseQueryString} from '@/libs/tools.js'
-	import { sellerFindByPartnerNo } from '@/api/user.js'
+	import {sellerFindByPartnerNo} from '@/api/user.js'
 	export default {
 		data() {
 			return {
@@ -96,7 +97,7 @@
 				stationDataList: [] ,//  附近网点列表
 				hasLogin: false,
 				userData: null,
-				showLottery: true, // 是否显示抽奖弹框
+				showLottery: false, // 是否显示抽奖弹框
 			}
 		},
 		onLoad() {
@@ -138,6 +139,8 @@
 		onShow() {
 			// 获取订单状态数据字典
 			// this.getCodeList('RUBBISH_TYPE','vuex_rubbishType')
+			// 判断是否有抽奖活动
+			this.getLuckDraw()
 			// 获取顶部轮播图
 			this.getbannerList()
 			//  获取经纬度
@@ -176,9 +179,22 @@
 				  // 新的版本下载失败
 				});
 			},
+			// 计算距离
 			getDistanct(item){
 				return item.distanct&&item.distanct.distance ? (item.distanct.distance / 1000).toFixed(1) : 0
 			},
+			// 抽奖弹框
+			getLuckDraw(){
+				findEnable().then(res => {
+					if(res.status == 200 && res.data){
+						this.$u.vuex('vuex_LuckDraw',res.data)
+						this.showLottery = true
+					}else{
+						this.$u.vuex('vuex_LuckDraw',null)
+						this.showLottery = false
+					}
+				})
+			},
 			// 获取用户信息
 			getUserInfo(){
 				getUserInfo().then(res => {

+ 50 - 37
pagesA/luckDraw/luckDraw.vue

@@ -55,23 +55,28 @@
 				<view class="guize">
 					<view>
 						<text>1.活动时间:</text>
-						<text>2020.12.10 至 2020.12.31</text>
+						<text>{{luckDraw.activeStartTime}} 至 {{luckDraw.activeEndTime}}</text>
 					</view>
 					<view>
 						<text>2.奖品:</text>
 						<view>
-							<view>一等奖 华为P40</view>
-							<view>二等奖 小米电动牙刷</view>
-							<view>三等奖 瑞士军刀</view>
-							<view>四等奖 20乐豆</view>
-							<view>五等奖 7乐豆</view>
+							<view v-for="(item,index) in prizeDesc" :key="index">
+								{{item}}
+							</view>
 						</view>
 					</view>
 					<view><text>3.抽奖条件:</text></view>
-					<view>①首次注册乐色管家小程序即可获得一次抽奖机会;</view>
-					<view>②分享给好友或发送到朋友圈可获得1次抽奖机会;</view>
+					<view>
+						<view v-for="(item,index) in activeLimitDesc" :key="index">
+							{{item}}
+						</view>
+					</view>
 					<view><text>4.抽奖说明:</text></view>
-					<view>本活动最终解释权归XXXXXX所有。</view>
+					<view>
+						<view v-for="(item,index) in activeDesc" :key="index">
+							{{item}}
+						</view>
+					</view>
 				</view>
 			</view>
 		</view>
@@ -136,6 +141,17 @@ export default {
 	components: {
 		AlmostLottery,
 	},
+	computed: {
+		prizeDesc() {
+			return this.luckDraw.prizeDesc.split('\n')
+		},
+		activeLimitDesc() {
+			return this.luckDraw.activeLimitDesc.split('\n')
+		},
+		activeDesc() {
+			return this.luckDraw.activeDesc.split('\n')
+		}
+	},
 	data() {
 		return {
 			animateUp: false,
@@ -198,6 +214,8 @@ export default {
 				height: 260,
 				margin: 3
 			},
+			// 抽奖配置信息
+			luckDraw: null,
 			// 奖品数据
 			prizeList: [],
 			// 中奖下标
@@ -227,7 +245,7 @@ export default {
 			uni.showLoading({
 				title: '奖品准备中...'
 			});
-
+			
 			let res = await this.requestPrizeList();
 			console.log('获取奖品列表', res);
 
@@ -247,36 +265,29 @@ export default {
 		},
 		// 模拟请求奖品列表接口
 		requestPrizeList() {
+			let _this = this
 			return new Promise((resolve, reject) => {
 				let requestTimer = setTimeout(() => {
 					clearTimeout(requestTimer);
 					requestTimer = null;
+					let prizeList = _this.luckDraw.luckyDrawPrizeList
+					let temp = []
+					prizeList.map(item => {
+						temp.push({
+							prizeId: item.id,
+							name: item.prizeDesc,
+							stock: item.prizeNum,
+							weight: item.prizeRate,
+							prizeImage: item.prizeImage,
+							prizeType: item.prizeType,
+							isPrizeLimit: item.isPrizeLimit
+						})
+					})
 					resolve({
-						ok: true,
-						data: [
-							{
-								prizeId: 1,
-								name: '0.1元现金',
-								stock: 10,
-								weight: 0,
-								prizeImage: 'https://lese.sxzxyj.net/img/20201113/20000000081-1.jpg'
-							},
-							{
-								prizeId: 2,
-								name: '10元现金',
-								stock: 0,
-								weight: 0,
-								prizeImage: 'https://lese.sxzxyj.net/img/20201113/20000000081-1.jpg'
-							},
-							{ prizeId: 3, name: '5元话费', stock: 1, weight: 0,prizeImage: 'https://lese.sxzxyj.net/img/20201113/20000000081-1.jpg' },
-							{ prizeId: 4, name: '50元现金', stock: 0, weight: 0,prizeImage: 'https://lese.sxzxyj.net/img/20201113/20000000081-1.jpg' },
-							{ prizeId: 5, name: '1卷抽纸卷抽纸卷抽纸', stock: 3, weight: 0,prizeImage: 'https://lese.sxzxyj.net/img/20201113/20000000081-1.jpg' },
-							{ prizeId: 6, name: '0.2元现金', stock: 8, weight: 0,prizeImage: 'https://lese.sxzxyj.net/img/20201113/20000000081-1.jpg' },
-							{ prizeId: 7, name: '谢谢参与', stock: 100, weight: 0,prizeImage: 'https://lese.sxzxyj.net/img/20201113/20000000081-1.jpg' },
-							{ prizeId: 8, name: '100金币', stock: 100, weight: 0,prizeImage: 'https://lese.sxzxyj.net/img/20201113/20000000081-1.jpg'}
-						]
+						ok: temp.length,
+						data: temp
 					});
-				}, 2000);
+				}, 500);
 			});
 		},
 		// 获取配置
@@ -416,12 +427,14 @@ export default {
 	onShow() {
 		this.timer = setInterval(this.scrollAnimate, 2000);
 		this.getScrollTextHeight()
+		// 查询免费抽奖次数
+		this.getPrizeSetting();
 	},
 	onLoad() {
-		// 模拟请求奖品数据
+		this.luckDraw = this.$store.state.vuex_LuckDraw
+		// 请求奖品数据
 		this.getPrizeList();
-		// 查询抽奖设置及规则
-		this.getPrizeSetting();
+		
 		// 计算转盘宽度和高度
 		const res = uni.getSystemInfoSync();
 		this.canvasData.width = res.screenWidth * 0.65

+ 3 - 1
store/index.js

@@ -116,7 +116,9 @@ const store = new Vuex.Store({
 		// 客服电话
 		vuex_kfMobile: '4008826012',
 		vuex_noLogin: false,
-		vuex_isClick: false
+		vuex_isClick: false,
+		// 大转盘
+		vuex_LuckDraw: null
 	},
 	mutations: {
 		$uStore(state, payload) {