From 7ae7ad50296693e3f6acd3602712960ea85fc23f Mon Sep 17 00:00:00 2001 From: dengtongyu Date: Sun, 19 Sep 2021 16:48:54 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=9B=B4=E6=96=B0=E6=B3=A1?= =?UTF-8?q?=E6=B3=A1=E6=8A=BD=E5=A5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/images/logo_tm.png | Bin 0 -> 6885 bytes src/components/ballContent/main.vue | 4 +- src/components/ballContent/notice.vue | 96 +--------- src/components/boboEnterBtn/main.vue | 4 - src/components/boboEnterView/main.vue | 26 ++- .../boboLottery/boboLotteryCount.vue | 63 +++++++ src/components/boboLottery/boboYqView.vue | 37 +++- src/components/boboLottery/index.js | 7 + src/components/boboLottery/main.vue | 100 +++++++++- src/components/bottomView/main.vue | 91 ++------- src/components/lotteryPrizesDialog/index.js | 7 + src/components/lotteryPrizesDialog/main.vue | 85 +++++++++ src/components/luckyGridView/main.vue | 134 +++---------- src/components/swiperNotice/index.js | 7 + src/components/swiperNotice/main.vue | 106 +++++++++++ src/store/index.js | 177 +++++++++++++++++- src/views/bobo.vue | 68 ++++++- 17 files changed, 715 insertions(+), 297 deletions(-) create mode 100644 src/assets/images/logo_tm.png create mode 100644 src/components/boboLottery/boboLotteryCount.vue create mode 100644 src/components/lotteryPrizesDialog/index.js create mode 100644 src/components/lotteryPrizesDialog/main.vue create mode 100644 src/components/swiperNotice/index.js create mode 100644 src/components/swiperNotice/main.vue diff --git a/src/assets/images/logo_tm.png b/src/assets/images/logo_tm.png new file mode 100644 index 0000000000000000000000000000000000000000..8d84b5faf30acbaa2406aea8f2ce9c6ba1f04a67 GIT binary patch literal 6885 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 Q-)|mdsBfxQg>Vl2Kes#A+W-In literal 0 HcmV?d00001 diff --git a/src/components/ballContent/main.vue b/src/components/ballContent/main.vue index 8a55f57..f4f3e23 100644 --- a/src/components/ballContent/main.vue +++ b/src/components/ballContent/main.vue @@ -2,7 +2,7 @@
- +
@@ -23,7 +23,7 @@ export default { }, props: {}, computed: { - ...mapGetters(["prizeItemList", "drawType"]), + ...mapGetters(["lotteryPrizeItemList", "drawType"]), modeClass() { if (this.drawType === "turntable1") return "ball-xy"; return "ball-hh"; diff --git a/src/components/ballContent/notice.vue b/src/components/ballContent/notice.vue index af7a2a9..d570bd8 100644 --- a/src/components/ballContent/notice.vue +++ b/src/components/ballContent/notice.vue @@ -1,55 +1,21 @@ diff --git a/src/components/boboLottery/boboYqView.vue b/src/components/boboLottery/boboYqView.vue index 8ccc782..acaca18 100644 --- a/src/components/boboLottery/boboYqView.vue +++ b/src/components/boboLottery/boboYqView.vue @@ -1,6 +1,9 @@ @@ -18,15 +37,27 @@ export default { width: 346px; height: 59px; background-repeat: no-repeat; - background-size: cover; + background-size: 100% 100%; background-image: url(../../assets/images/bobo/gmcx_bg.png); display: flex; + // align-items: center; &-text { flex: 1; + font-size: 22px; + line-height: 59px; + & > label { + color: #ffffff; + padding-left: 20px; + } + & > span { + color: #ffe26c; + } } &-btn { width: 46px; height: 46px; + padding-right: 10px; + padding-top: 6px; & > button { width: 46px; height: 46px; diff --git a/src/components/boboLottery/index.js b/src/components/boboLottery/index.js index e69de29..8df940f 100644 --- a/src/components/boboLottery/index.js +++ b/src/components/boboLottery/index.js @@ -0,0 +1,7 @@ +import BoboLottery from "./main"; + +BoboLottery.install = function(Vue) { + Vue.component(BoboLottery.name, BoboLottery); +}; + +export default BoboLottery; diff --git a/src/components/boboLottery/main.vue b/src/components/boboLottery/main.vue index d0976da..9985e3e 100644 --- a/src/components/boboLottery/main.vue +++ b/src/components/boboLottery/main.vue @@ -1,11 +1,105 @@ - + diff --git a/src/components/bottomView/main.vue b/src/components/bottomView/main.vue index 779094c..2f993b3 100644 --- a/src/components/bottomView/main.vue +++ b/src/components/bottomView/main.vue @@ -25,8 +25,7 @@ import balanceView from "./balanceView.vue"; import lotteryBtn from "./lotteryBtn.vue"; import ticketView from "./ticketView.vue"; -import { queryTicketNum, queryTicketRule } from "@/api"; -import { mapMutations, mapGetters } from "vuex"; +import { mapMutations, mapGetters, mapActions } from "vuex"; export default { name: "BottomView", components: { @@ -40,8 +39,18 @@ export default { default: "turntable1" } }, + data() { + return { + active: 0 + }; + }, computed: { - ...mapGetters(["remainTicketNum", "ticketRule"]), + ...mapGetters([ + "remainTicketNum", + "ticketRule", + "ticketRuleList", + "ticketRuleConfig" + ]), modeClass() { if (this.drawType === "turntable1") return "bottom-view-xy"; return "bottom-view-hh"; @@ -51,92 +60,26 @@ export default { }, roomUid() { return this.$route.query.roomUid; - }, - ticketRuleList() { - const list = []; - if (!this.ticketRule) return list; - for (let index = 0; index < this.ticketRuleConfig.length; index++) { - const element = this.ticketRuleConfig[index]; - const val = this.ticketRule[element.ruleType]; - list.push({ - label: element.name, - desc: `${val}张鱼券`, - value: val, - ruleType: element.ruleType - }); - } - return list; } }, watch: { drawType() { this.active = 0; - this.getqueryTicketRule(); + this.getqueryTicketRule(this.drawType); }, active() { this.SetRuleType(this.ticketRuleConfig[this.active].ruleType); } }, - data() { - return { - active: 0, - ticketRuleConfig: [ - { - ruleType: "one", - name: "1次", - index: 0 - }, - { - ruleType: "ten", - name: "10次", - index: 1 - }, - { - ruleType: "hundred", - name: "100次", - index: 2 - } - ] - }; - }, created() { - this.getQueryTicketNum(); - this.getqueryTicketRule(); + this.getQueryTicketNum({ uid: this.uid }); + this.getqueryTicketRule(this.drawType); }, methods: { - ...mapMutations(["SetRuleType", "SetRemainTicketNum", "SetTicketRule"]), - getQueryTicketNum() { - queryTicketNum({ uid: this.uid }) - .then(res => { - const { code, data, msg } = res; - if (code === 200) { - this.SetRemainTicketNum(data.num || 0); - } else { - this.$toast.fail(msg); - } - }) - .catch(() => { - this.$toast.fail("获取余额失败!"); - }); - }, - getqueryTicketRule() { - queryTicketRule({ drawType: this.drawType }) - .then(res => { - const { code, data, msg } = res; - if (code === 200) { - // this.ticketRule = data || null; - this.SetTicketRule(data || null); - } else { - this.$toast.fail(msg); - } - }) - .catch(() => { - this.$toast.fail("获取规则次数失败!"); - }); - }, + ...mapMutations(["SetRuleType"]), + ...mapActions(["getqueryTicketRule", "getQueryTicketNum"]), clickTicketView(item, index) { this.active = index; - // this.SetRuleType(item.ruleType); } } }; diff --git a/src/components/lotteryPrizesDialog/index.js b/src/components/lotteryPrizesDialog/index.js new file mode 100644 index 0000000..f67d63f --- /dev/null +++ b/src/components/lotteryPrizesDialog/index.js @@ -0,0 +1,7 @@ +import LotteryPrizesDialog from "./main"; + +LotteryPrizesDialog.install = function(Vue) { + Vue.component(LotteryPrizesDialog.name, LotteryPrizesDialog); +}; + +export default LotteryPrizesDialog; diff --git a/src/components/lotteryPrizesDialog/main.vue b/src/components/lotteryPrizesDialog/main.vue new file mode 100644 index 0000000..118e1c4 --- /dev/null +++ b/src/components/lotteryPrizesDialog/main.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/components/luckyGridView/main.vue b/src/components/luckyGridView/main.vue index 295a41b..f467bd3 100644 --- a/src/components/luckyGridView/main.vue +++ b/src/components/luckyGridView/main.vue @@ -13,38 +13,23 @@ @end="endCallBack" /> - -
-
-
- -
-
- {{ item.prizeName }}x{{ item.prizeNum }} -
-
-
-
+ :list="lotteryPrizeItemList" + >
+ + diff --git a/src/store/index.js b/src/store/index.js index aa2d2ce..9736bdd 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1,7 +1,13 @@ import Vue from "vue"; import Vuex from "vuex"; import { Toast } from "vant"; -import { queryPrizeInfo } from "@/api"; +import { + queryPrizeInfo, + queryTicketRule, + doLottery, + saveLog, + queryTicketNum +} from "@/api"; Vue.use(Vuex); @@ -12,12 +18,30 @@ export default new Vuex.Store({ turntable1: [], turntable2: [] }, - prizeItemList: [], + // prizeItemList: [], ruleType: "one", remainTicketNum: 0, ticketRule: null, canLottery: true, - lotteryRecordRateVo: {} + lotteryRecordRateVo: {}, + ticketRuleConfig: [ + { + ruleType: "one", + name: "1次", + index: 0 + }, + { + ruleType: "ten", + name: "10次", + index: 1 + }, + { + ruleType: "hundred", + name: "100次", + index: 2 + } + ], + lotteryData: null }, getters: { drawType: state => { @@ -29,9 +53,9 @@ export default new Vuex.Store({ curDrawTypePrizeInfo: state => { return state.prizeInfo[state.drawType]; }, - prizeItemList: state => { - return state.prizeItemList; - }, + // prizeItemList: state => { + // return state.prizeItemList; + // }, prizeIdList: (state, getters) => { const { curDrawTypePrizeInfo } = getters; const list = []; @@ -59,6 +83,74 @@ export default new Vuex.Store({ }, lotteryRecordRateVo: state => { return state.lotteryRecordRateVo; + }, + ticketRuleConfig: state => { + return state.ticketRuleConfig; + }, + ticketRuleList: (state, getters) => { + const list = []; + if (!getters.ticketRule) return list; + for (let index = 0; index < getters.ticketRuleConfig.length; index++) { + const element = getters.ticketRuleConfig[index]; + const val = getters.ticketRule[element.ruleType]; + list.push({ + label: element.name, + desc: `${val}张鱼券`, + value: val, + ruleType: element.ruleType + }); + } + return list; + }, + lotteryData: state => { + return state.lotteryData; + }, + lotteryPrizeItemList: (state, getters) => { + if (!getters.lotteryData) return null; + return getters.lotteryData.prizeItemList; + }, + prizeids: (state, getters) => { + if (!getters.lotteryData) return null; + return getters.lotteryData.prizeIdList; + }, + maxPrizeVaue: (state, getters) => { + let list = []; + for ( + let index = 0; + index < getters.lotteryPrizeItemList.length; + index++ + ) { + const element = getters.lotteryPrizeItemList[index]; + list.push(element.platformValue); + } + let max = Math.max(...list); + return max; + }, + maxVauePrizeId: (state, getters) => { + let id = 0; + for ( + let index = 0; + index < getters.lotteryPrizeItemList.length; + index++ + ) { + const element = getters.lotteryPrizeItemList[index]; + if (getters.maxPrizeVaue === element.platformValue) { + id = element.prizeId; + break; + } + } + return id; + }, + maxVauePrizeIndex: (state, getters) => { + let num = null; + for (let index = 0; index < getters.prizeIdList.length; index++) { + const element = getters.prizeIdList[index]; + if (element === getters.maxVauePrizeId) { + num = index; + break; + } + } + return num; } }, mutations: { @@ -69,9 +161,9 @@ export default new Vuex.Store({ const { drawType, list } = payload; state.prizeInfo[drawType || state.drawType] = list; }, - SetPrizeItemList(state, payload) { - state.prizeItemList = payload; - }, + // SetPrizeItemList(state, payload) { + // state.prizeItemList = payload; + // }, SetRuleType(state, payload) { state.ruleType = payload; }, @@ -86,6 +178,9 @@ export default new Vuex.Store({ }, SetLotteryRecordRateVo(state, payload) { state.lotteryRecordRateVo = payload; + }, + SetLotteryData(state, payload) { + state.lotteryData = payload; } }, actions: { @@ -106,6 +201,70 @@ export default new Vuex.Store({ reject(err); }); }); + }, + getqueryTicketRule({ commit }, drawType) { + queryTicketRule({ drawType: drawType }) + .then(res => { + const { code, data, msg } = res; + if (code === 200) { + commit("SetTicketRule", data || null); + } else { + Toast.fail(msg); + } + }) + .catch(() => { + Toast.fail("获取规则次数失败!"); + }); + }, + runLottery({ state, commit, dispatch }, option) { + return new Promise((resolve, reject) => { + doLottery({ + uid: option.uid, + roomUid: option.roomUid, + drawType: state.drawType, + sendMessage: true, + deviceId: "abc", + ruleType: state.ruleType + }) + .then(res => { + const { code, data, msg } = res; + if (code === 200) { + commit("SetRemainTicketNum", data.remainTicketNum || 0); + commit("SetLotteryData", data); + dispatch("postSaveLog", option); + } else { + Toast.fail(msg); + } + resolve(res); + }) + .catch(err => { + Toast.fail("抽奖发生意外错误!"); + reject(err); + }); + }); + }, + postSaveLog({ getters }, option) { + saveLog({ + uid: option.uid, + prizeids: JSON.stringify(getters.prizeids), + prizeIndex: getters.maxVauePrizeIndex, + createdTime: getters.lotteryPrizeItemList[0].createTime, + prizeIdList: JSON.stringify(getters.prizeIdList) + }); + }, + getQueryTicketNum({ commit }, option) { + queryTicketNum({ uid: option.uid }) + .then(res => { + const { code, data, msg } = res; + if (code === 200) { + commit("SetRemainTicketNum", data.num || 0); + } else { + Toast.fail(msg); + } + }) + .catch(() => { + Toast.fail("获取余额失败!"); + }); } }, modules: {} diff --git a/src/views/bobo.vue b/src/views/bobo.vue index a3cbb01..f015c6f 100644 --- a/src/views/bobo.vue +++ b/src/views/bobo.vue @@ -1,17 +1,75 @@ @@ -25,8 +83,12 @@ export default { background-image: url(../assets/images/bobo/bobo_bg.png); background-repeat: no-repeat; background-size: 100%; + overflow: hidden; + &-notice { + margin-top: 100px; + } &-enter { - padding-top: 180px; + padding-top: 20px; } &-gz-button { width: 78px;