Browse Source

接口调试

xcx 4 years ago
parent
commit
9bc07a9d30

+ 63
- 47
src/pages/index/DaLeTou/index.vue View File

@@ -91,31 +91,33 @@
91 91
       <a class="iconfont iconjian Delete"></a>
92 92
       <div class="flex-item">
93 93
         <div>
94
-          <div>
95
-            <span>¥2</span>
96
-            <span>1注</span>
94
+          <div v-if="TotalResNum">
95
+            <span>¥{{TotalResNum * 2}}</span>
96
+            <span>{{TotalResNum}}注</span>
97 97
           </div>
98
-          <span>至少选5橙球2蓝球</span>
98
+          <span v-else>至少选5橙球2蓝球</span>
99 99
         </div>
100 100
       </div>
101 101
       <a class="Btn" :class="{'active': CanCreateRes}">加入选号</a>
102
-      <a class="Btn" :class="{'active': CanCreateRes}">投注</a>
102
+      <a class="Btn" :class="{'active': CanCreateRes}" @click="CreateOrder">投注</a>
103 103
     </div>
104 104
 
105 105
   </div>
106 106
 </template>
107 107
 
108 108
 <script>
109
-import { mapMutations } from 'vuex'
109
+import { mapMutations, createNamespacedHelpers } from 'vuex'
110
+const { mapMutations: mapUserMutations } = createNamespacedHelpers('user')
110 111
 export default {
111 112
   name: '',
112 113
   data () {
113 114
     return {
115
+      TotalResNum: 0, // 总注数
114 116
       FastSelectIndex: null, // 快速选取索引值
115 117
       CanCreateRes: false, // 选取结果是否合法
116 118
       DataLock: false, // 数据锁
117 119
       ShowMiss: false, // 显隐遗漏
118
-      ResList: [], // 结果数据
120
+      ResObj: { FirstRes: null, LastRes: null }, // 结果数据
119 121
       FirstList: [], // 前区号码池
120 122
       LastList: [] // 后区号码池
121 123
     }
@@ -144,6 +146,16 @@ export default {
144 146
     ...mapMutations([
145 147
       'EditMainData' // 配置页面框架数据
146 148
     ]),
149
+    ...mapUserMutations([
150
+      'AddDaLeTouCart' // 新增大乐透购物车
151
+    ]),
152
+    CreateOrder () { // 去投注
153
+      if (this.DataLock || !this.CanCreateRes) return
154
+      this.DataLock = true
155
+      this.AddDaLeTouCart({ ...this.ResObj, Count: this.TotalResNum })
156
+      this.DataLock = false
157
+      this.$router.push({ name: 'DaLeTouDingDan' })
158
+    },
147 159
     CreatNumList () { // 创建号码池数据
148 160
       for (let n = 0; n < 35; n++) {
149 161
         this.FirstList.push({ Num: n + 1 > 9 ? n + 1 : `0${n + 1}`, Active: 0, MissNum: 5 })
@@ -184,14 +196,16 @@ export default {
184 196
       let Res = { FirstArr: [], LastArr: [] }
185 197
       FirstArr.map((item) => {
186 198
         this.FirstList[item].Active = 1
187
-        Res.FirstArr.push(this.FirstList[item].Num)
199
+        Res.FirstArr.push(this.FirstList[item].Num - 0)
188 200
       })
189 201
       let LastArr = this.SelectRandomIndexFromArr(12, 2)
190 202
       LastArr.map((item) => {
191 203
         this.LastList[item].Active = 1
192
-        Res.FirstArr.push(this.LastList[item].Num)
204
+        Res.LastArr.push(this.LastList[item].Num - 0)
193 205
       })
194
-      this.ResList = [{ ...Res }]
206
+      this.CreateTotalRes({ Dan: [], Tuo: Res.FirstArr }, { Dan: [], Tuo: Res.LastArr }) // 计算总注数
207
+      this.ResObj.FirstRes = { Dan: [], Tuo: Res.FirstArr }
208
+      this.ResObj.LastRes = { Dan: [], Tuo: Res.LastArr }
195 209
       this.CanCreateRes = true
196 210
       this.DataLock = false
197 211
     },
@@ -199,19 +213,22 @@ export default {
199 213
       if (this.DataLock) return false
200 214
       this.DataLock = true
201 215
       this.FastSelectIndex = 2
216
+      let Res = { FirstArr: [], LastArr: [] }
202 217
       this.FirstList.map((item) => { // 前区清空
203 218
         item.Active = 0
204 219
       })
205 220
       this.LastList.map((item) => { // 后区全选
206 221
         item.Active = 1
222
+        Res.LastArr.push(item.Num - 0)
207 223
       })
208 224
       let FirstArr = this.SelectRandomIndexFromArr(35, 5)
209
-      let Res = { FirstArr: [], LastArr: [] }
210 225
       FirstArr.map((item) => {
211 226
         this.FirstList[item].Active = 1
212
-        Res.FirstArr.push(this.FirstList[item].Num)
227
+        Res.FirstArr.push(this.FirstList[item].Num - 0)
213 228
       })
214
-      // this.ResList = [{ ...Res }]
229
+      this.CreateTotalRes({ Dan: [], Tuo: Res.FirstArr }, { Dan: [], Tuo: Res.LastArr }) // 计算总注数
230
+      this.ResObj.FirstRes = { Dan: [], Tuo: Res.FirstArr }
231
+      this.ResObj.LastRes = { Dan: [], Tuo: Res.LastArr }
215 232
       this.CanCreateRes = true
216 233
       this.DataLock = false
217 234
     },
@@ -229,52 +246,51 @@ export default {
229 246
         }
230 247
       })
231 248
       this.CanCreateRes = CurrentFirstList.length >= 5 && CurrentLastList.length >= 2 // 前区选号个数必须大于等于5 && 后区选号个数必须大于等于2
232
-      if (this.CanCreateRes) { // 选取结果合法时,枚举选取结果
233
-        console.log(JSON.stringify(CurrentFirstList), JSON.stringify(CurrentLastList))
234
-        this.ResList = this.CreateTotalRes(this.CreateFirstRes(CurrentFirstList), this.CreateLastRes(CurrentLastList))
249
+      if (this.CanCreateRes) { // 选取结果合法时,计算选取结果
250
+        this.CreateTotalRes(this.CreateTuoDanRes(CurrentFirstList), this.CreateTuoDanRes(CurrentLastList))
251
+        this.ResObj.FirstRes = this.CreateTuoDanRes(CurrentFirstList)
252
+        this.ResObj.LastRes = this.CreateTuoDanRes(CurrentLastList)
235 253
       }
236 254
       this.DataLock = false
237 255
     },
238
-    SelectItemFromArr (arr, start, result, count, num, arrlength, savearr = []) {
239
-      let i = 0
240
-      for (i = start; i < arrlength + 1 - count; i++) {
241
-        result[count - 1] = i
242
-        if (count - 1 === 0) {
243
-          let j
244
-          for (j = num - 1; j >= 0; j--) {
245
-            savearr.push(arr[result[j]])
246
-          }
247
-          console.log(savearr)
248
-        } else {
249
-          this.SelectItemFromArr(arr, i + 1, result, count - 1, num, arrlength)
250
-        }
251
-      }
252
-    },
253
-    // SelectItemFromArr (arr, count) { // 数组中抽取若干元素,并枚举
254
-    //   let NumArr = []
255
-    //   arr.map((item) => {
256
-    //     NumArr.push(item.Num - 0)
257
-    //   })
258
-    //   return NumArr
259
-    // },
260
-    CreateFirstRes (arr) { // 生成前区结果
256
+    CreateTuoDanRes (arr) { // 生成拖胆结果
261 257
       let DanArr = []
262 258
       let TuoArr = []
263 259
       arr.map((item) => {
264 260
         if (item.Active === 2) { // 选出胆号
265
-          DanArr.push(item)
261
+          DanArr.push(item.Num - 0)
266 262
         } else { // 选出拖号
267
-          TuoArr.push(item)
263
+          TuoArr.push(item.Num - 0)
268 264
         }
269 265
       })
270
-      console.log(this.SelectItemFromArr(TuoArr, 5 - DanArr.length))
271
-      return []
266
+      return { Dan: DanArr.sort((a, b) => { return a - b }), Tuo: TuoArr.sort((a, b) => { return a - b }) }
272 267
     },
273
-    CreateLastRes () { // 生成后区结果
274
-      return []
268
+    CreateTotalRes (FirstRes, LastRes) { // 生成所有注数
269
+      let FirstResNum = 0
270
+      let LastResNum = 0
271
+      let m = 0
272
+      let n = 0
273
+      if (FirstRes.Dan.length) {
274
+        m = FirstRes.Tuo.length
275
+        n = 5 - FirstRes.Dan.length
276
+      } else {
277
+        m = FirstRes.Tuo.length
278
+        n = 5
279
+      }
280
+      FirstResNum = this.JieCheng(m) / (this.JieCheng(n) * this.JieCheng(m - n))
281
+
282
+      if (LastRes.Dan.length) {
283
+        m = LastRes.Tuo.length
284
+        n = 2 - LastRes.Dan.length
285
+      } else {
286
+        m = LastRes.Tuo.length
287
+        n = 2
288
+      }
289
+      LastResNum = this.JieCheng(m) / (this.JieCheng(n) * this.JieCheng(m - n))
290
+      this.TotalResNum = FirstResNum * LastResNum
275 291
     },
276
-    CreateTotalRes (FirstArr, LastArr) { // 生成所有结果
277
-      return []
292
+    JieCheng (num) {
293
+      return num > 0 ? num * this.JieCheng(num - 1) : 1
278 294
     },
279 295
     SelectFirstItem (item, index) { // 前区选号
280 296
       if (this.DataLock) return

+ 53
- 0
src/pages/index/DaLeTouDingDan/index.vue View File

@@ -0,0 +1,53 @@
1
+<template>
2
+  <div class="Page">
3
+    大乐透订单
4
+  </div>
5
+</template>
6
+
7
+<script>
8
+import { mapMutations, createNamespacedHelpers } from 'vuex'
9
+const { mapState: mapUserState, mapMutations: mapUserMutations } = createNamespacedHelpers('user')
10
+export default {
11
+  name: '',
12
+  data () {
13
+    return {
14
+    }
15
+  },
16
+  computed: {
17
+    ...mapUserState({
18
+      DaLeTouCart: x => x.DaLeTouCart // 大乐透购物车
19
+    })
20
+  },
21
+  components: {
22
+  },
23
+  created () {
24
+    this.EditMainData([ // 配置页面框架数据
25
+      { name: 'MainTitleClick', value: () => { } },
26
+      { name: 'ShowMainHeader', value: true },
27
+      { name: 'ShowMainTitleIcon', value: false },
28
+      { name: 'ShowMainTabBar', value: false },
29
+      { name: 'MainHeaderTitle', value: '购物车' },
30
+      { name: 'MainTabBarActiveId', value: null },
31
+      { name: 'ShowMainHeaderBack', value: true }
32
+    ])
33
+    console.log(this.DaLeTouCart.length)
34
+  },
35
+  mounted () {
36
+    this.$nextTick(() => {
37
+    })
38
+  },
39
+  methods: {
40
+    ...mapMutations([
41
+      'EditMainData' // 配置页面框架数据
42
+    ]),
43
+    ...mapUserMutations([
44
+      'DeleteDaLeTouCart'
45
+    ])
46
+  }
47
+}
48
+</script>
49
+
50
+<!-- Add "scoped" attribute to limit CSS to this component only -->
51
+<style lang="scss" scoped>
52
+@import "page.scss";
53
+</style>

+ 3
- 0
src/pages/index/DaLeTouDingDan/page.scss View File

@@ -0,0 +1,3 @@
1
+.Page {
2
+  
3
+}

+ 4
- 0
src/router/index.js View File

@@ -33,6 +33,10 @@ let router = new Router({
33 33
             path: '/index/DaLeTou', // 大乐透
34 34
             name: 'DaLeTou',
35 35
             component: resolve => (require(['@/pages/index/DaLeTou'], resolve))
36
+          }, {
37
+            path: '/index/DaLeTouDingDan', // 大乐透订单
38
+            name: 'DaLeTouDingDan',
39
+            component: resolve => (require(['@/pages/index/DaLeTouDingDan'], resolve))
36 40
           }, {
37 41
             path: '/index/ShuangSeQiu', // 双色球
38 42
             name: 'ShuangSeQiu',

+ 20
- 0
src/store/user/index.js View File

@@ -4,6 +4,8 @@ import ToolClass from '../../util/PublicMethod'
4 4
 export default {
5 5
   namespaced: true,
6 6
   state: {
7
+    DaLeTouCart: [], // 大乐透购物车
8
+    ShuangSeQiuCart: [], // 双色球购物车
7 9
     UserInfo: null, // 用户信息
8 10
     UserOrderList: [ // 用户订单
9 11
       { createDate: '2020-08-14  15:10:20', dateNum: '202076期', type: '超级大乐透', typeId: 'dlt', amount: 2, id: 1, orderNum: 'TE202008140000146179970', status: '已撤单' },
@@ -38,6 +40,24 @@ export default {
38 40
   mutations: {
39 41
     UpdateUserInfo (state, data) { // 更新用户信息
40 42
       state.UserInfo = data || null
43
+    },
44
+    AddDaLeTouCart (state, data) { // 新增大乐透购物车
45
+      state.DaLeTouCart.push(data)
46
+    },
47
+    DeleteDaLeTouCart (state, data) { // 删除大乐透购物车
48
+      state.DaLeTouCart.splice(data, 1)
49
+    },
50
+    EmptyDaLeTouCart (state, data) { // 清空大乐透购物车
51
+      state.DaLeTouCart = []
52
+    },
53
+    AddShuangSeQiuCart (state, data) { // 新增双色球购物车
54
+      state.ShuangSeQiuCart.push(data)
55
+    },
56
+    DeleteShuangSeQiuCart (state, data) { // 删除双色球购物车
57
+      state.ShuangSeQiuCart.splice(data, 1)
58
+    },
59
+    EmptyShuangSeQiuCart (state, data) { // 清空双色球购物车
60
+      state.ShuangSeQiuCart = []
41 61
     }
42 62
   },
43 63
   actions: {