|
@@ -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
|