xcx il y a 4 ans
Parent
révision
b187622c0e

+ 3
- 0
src/main.js Voir le fichier

@@ -6,11 +6,14 @@ import router from './router'
6 6
 import store from './store'
7 7
 import ToolClass from './util/PublicMethod'
8 8
 import VueScroller from 'vue-scroller'
9
+import { Dialog } from 'vant'
9 10
 
10 11
 Vue.use(VueScroller)
11 12
 
12 13
 Vue.prototype.ToolClass = ToolClass
13 14
 
15
+Vue.prototype.Dialog = Dialog
16
+
14 17
 Vue.config.productionTip = false
15 18
 
16 19
 /* eslint-disable no-new */

+ 149
- 22
src/pages/index/PaiLie3/index.vue Voir le fichier

@@ -9,7 +9,7 @@
9 9
       </div>
10 10
     </div>
11 11
 
12
-    <div class="Top">
12
+    <!-- <div class="Top">
13 13
       <div class="Time flex-h">
14 14
         <div class="Icon">
15 15
           <img src="../../../assets/img/icon7.png" class="centerLabel contain" alt="">
@@ -26,7 +26,7 @@
26 26
           </div>
27 27
         </div>
28 28
       </div>
29
-    </div>
29
+    </div> -->
30 30
 
31 31
     <!-- 选区 -->
32 32
     <div class="flex-item">
@@ -40,8 +40,8 @@
40 40
                 <span>百位区(至少选择一个)</span>
41 41
                 <ul>
42 42
                   <li v-for="(item, index) in ZhiXuanData.BaiWei" :key="index">
43
-                    <a>{{item.Num}}</a>
44
-                    <span>{{item.MissNum}}</span>
43
+                    <a :class="{'active': item.Active}" @click="ZhiXuanSelectItem(item)">{{item.Num}}</a>
44
+                    <!-- <span>{{item.MissNum}}</span> -->
45 45
                   </li>
46 46
                 </ul>
47 47
               </div>
@@ -49,8 +49,8 @@
49 49
                 <span>十位区(至少选择一个)</span>
50 50
                 <ul>
51 51
                   <li v-for="(item, index) in ZhiXuanData.ShiWei" :key="index">
52
-                    <a>{{item.Num}}</a>
53
-                    <span>{{item.MissNum}}</span>
52
+                    <a :class="{'active': item.Active}" @click="ZhiXuanSelectItem(item)">{{item.Num}}</a>
53
+                    <!-- <span>{{item.MissNum}}</span> -->
54 54
                   </li>
55 55
                 </ul>
56 56
               </div>
@@ -58,8 +58,8 @@
58 58
                 <span>个位区(至少选择一个)</span>
59 59
                 <ul>
60 60
                   <li v-for="(item, index) in ZhiXuanData.GeWei" :key="index">
61
-                    <a>{{item.Num}}</a>
62
-                    <span>{{item.MissNum}}</span>
61
+                    <a :class="{'active': item.Active}" @click="ZhiXuanSelectItem(item)">{{item.Num}}</a>
62
+                    <!-- <span>{{item.MissNum}}</span> -->
63 63
                   </li>
64 64
                 </ul>
65 65
               </div>
@@ -82,7 +82,7 @@
82 82
                         <ul>
83 83
                           <li v-for="(item, index) in ZuXuan3Data.DanShi2" :key="index">
84 84
                             <a>{{item.Num}}</a>
85
-                            <span>{{item.MissNum}}</span>
85
+                            <!-- <span>{{item.MissNum}}</span> -->
86 86
                           </li>
87 87
                         </ul>
88 88
                       </div>
@@ -91,7 +91,7 @@
91 91
                         <ul>
92 92
                           <li v-for="(item, index) in ZuXuan3Data.DanShi1" :key="index">
93 93
                             <a>{{item.Num}}</a>
94
-                            <span>{{item.MissNum}}</span>
94
+                            <!-- <span>{{item.MissNum}}</span> -->
95 95
                           </li>
96 96
                         </ul>
97 97
                       </div>
@@ -104,7 +104,7 @@
104 104
                         <ul>
105 105
                           <li v-for="(item, index) in ZuXuan3Data.FuShi" :key="index">
106 106
                             <a>{{item.Num}}</a>
107
-                            <span>{{item.MissNum}}</span>
107
+                            <!-- <span>{{item.MissNum}}</span> -->
108 108
                           </li>
109 109
                         </ul>
110 110
                       </div>
@@ -121,18 +121,18 @@
121 121
                 <span>选择号码(至少选择3个)</span>
122 122
                 <ul>
123 123
                   <li v-for="(item, index) in ZuXuan6Data" :key="index">
124
-                    <a>{{item.Num}}</a>
125
-                    <span>{{item.MissNum}}</span>
124
+                    <a :class="{'active': item.Active}" @click="ZuXuan6SelectItem(item)">{{item.Num}}</a>
125
+                    <!-- <span>{{item.MissNum}}</span> -->
126 126
                   </li>
127 127
                 </ul>
128 128
               </div>
129 129
               <div class="FastSelect">
130 130
                 <span>快速选号</span>
131 131
                 <ul>
132
-                  <li><a>10选8 赔率1.54</a></li>
133
-                  <li><a>10选7 赔率2.47</a></li>
134
-                  <li><a>10选6 赔率4.32</a></li>
135
-                  <li><a>10选5 赔率8.65</a></li>
132
+                  <li><a @click="ZuXuan6RandomSelect(8, 0)" :class="{'active': ZuXuan6RandomActiveIndex === 0}">10选8 赔率1.54</a></li>
133
+                  <li><a @click="ZuXuan6RandomSelect(7, 1)" :class="{'active': ZuXuan6RandomActiveIndex === 1}">10选7 赔率2.47</a></li>
134
+                  <li><a @click="ZuXuan6RandomSelect(6, 2)" :class="{'active': ZuXuan6RandomActiveIndex === 2}">10选6 赔率4.32</a></li>
135
+                  <li><a @click="ZuXuan6RandomSelect(5, 3)" :class="{'active': ZuXuan6RandomActiveIndex === 3}">10选5 赔率8.65</a></li>
136 136
                 </ul>
137 137
               </div>
138 138
             </div>
@@ -144,24 +144,30 @@
144 144
 
145 145
     <!-- 投注栏 -->
146 146
     <div class="Bottom flex-h">
147
-      <span class="SelectRes">共<em>0</em>注<em>0</em>元,奖金<em>0</em>元</span>
147
+      <span class="SelectRes">共<em>{{TotalResNum}}</em>注<em>{{TotalResNum * 2}}</em>元,奖金<em>0</em>元</span>
148 148
       <a class="iconfont iconjian"></a>
149 149
       <a class="iconfont icongouwuche"></a>
150
-      <a class="iconfont iconqushi"></a>
150
+      <!-- <a class="iconfont iconqushi"></a> -->
151 151
       <div class="flex-item"></div>
152
-      <a class="Btn">添加号码蓝</a>
153
-      <a class="Btn">投注</a>
152
+      <a class="Btn" :class="{'active': CanCreateRes}" @click="CreateRes">添加号码蓝</a>
153
+      <a class="Btn" :class="{'active': CanCreateRes}">投注</a>
154 154
     </div>
155 155
 
156 156
   </div>
157 157
 </template>
158 158
 
159 159
 <script>
160
-import { mapMutations } from 'vuex'
160
+import { mapMutations, createNamespacedHelpers } from 'vuex'
161
+const { mapMutations: mapUserMutations } = createNamespacedHelpers('user')
161 162
 export default {
162 163
   name: '',
163 164
   data () {
164 165
     return {
166
+      ZuXuan6RandomActiveIndex: null,
167
+      DataLock: false, // 数据锁
168
+      ResList: [],
169
+      TotalResNum: 0, // 总注数
170
+      CanCreateRes: false, // 能否生成选注结果
165 171
       ZhiXuanData: {
166 172
         BaiWei: [],
167 173
         ShiWei: [],
@@ -201,8 +207,128 @@ export default {
201 207
       'EditMainData', // 配置页面框架数据
202 208
       'EditMainItemData' // 配置页面框架数据
203 209
     ]),
210
+    ...mapUserMutations([
211
+      'AddPaiLie3Cart'
212
+    ]),
204 213
     Init () { // 初始化
205 214
 
215
+    },
216
+    CreateRes () { // 创建投注结果
217
+      if (this.DataLock || !this.CanCreateRes) return
218
+      this.DataLock = true
219
+      if (this.SelectType === 1) { // 直选
220
+        let Res = {}
221
+        for (let key in this.ZhiXuanData) {
222
+          Res[key] = []
223
+          for (let n = 0; n < this.ZhiXuanData[key].length; n++) {
224
+            if (this.ZhiXuanData[key][n].Active) {
225
+              Res[key].push(this.ZhiXuanData[key][n].Num)
226
+            }
227
+          }
228
+        }
229
+        this.AddPaiLie3Cart({ ...Res, Count: this.TotalResNum, Type: 'ZhiXuan' })
230
+      } else if (this.SelectType === 2) { // 组选3
231
+        if (this.ZuXuan3Type === 1) { // 单式
232
+
233
+        } else if (this.ZuXuan3Type === 2) { // 复式
234
+
235
+        }
236
+      } else if (this.SelectType === 3) { // 组选6
237
+
238
+      }
239
+      this.DataLock = false
240
+    },
241
+    EmptyData (type = 'ZhiXuan', subtype = 'DanShi') { // 清空数据
242
+      this.CanCreateRes = false
243
+      this.TotalResNum = 0
244
+    },
245
+    CalcZhiXuanRes () { // 计算直选结果
246
+      if (this.DataLock) return
247
+      this.DataLock = true
248
+      let ActiveKeyNum = 0
249
+      let TotalKeyNum = 0
250
+      for (let key in this.ZhiXuanData) {
251
+        TotalKeyNum += 1
252
+        for (let n = 0; n < this.ZhiXuanData[key].length; n++) {
253
+          if (this.ZhiXuanData[key][n].Active) {
254
+            ActiveKeyNum += 1
255
+            break
256
+          }
257
+        }
258
+      }
259
+      this.CanCreateRes = ActiveKeyNum >= TotalKeyNum
260
+      if (this.CanCreateRes) {
261
+        this.TotalResNum = 1
262
+        for (let key in this.ZhiXuanData) {
263
+          let Num = 0
264
+          for (let n = 0; n < this.ZhiXuanData[key].length; n++) {
265
+            if (this.ZhiXuanData[key][n].Active) {
266
+              Num += 1
267
+            }
268
+          }
269
+          this.TotalResNum *= Num
270
+        }
271
+      }
272
+      this.DataLock = false
273
+    },
274
+    ZhiXuanSelectItem (item) { // 直选-选择号码
275
+      if (this.DataLock) return
276
+      item.Active = !item.Active
277
+      this.CalcZhiXuanRes() // 计算直选结果
278
+    },
279
+    CalcZuXuan6Res () { // 计算组选6结果
280
+      if (this.DataLock) return
281
+      this.DataLock = true
282
+      let Num = 0
283
+      for (let n = 0; n < this.ZuXuan6Data.length; n++) {
284
+        if (this.ZuXuan6Data[n].Active) {
285
+          Num += 1
286
+        }
287
+      }
288
+      this.CanCreateRes = Num >= 3
289
+      if (this.CanCreateRes) {
290
+        this.TotalResNum = this.JieCheng(Num) / (this.JieCheng(3) * this.JieCheng(Num - 3))
291
+      }
292
+      this.DataLock = false
293
+    },
294
+    JieCheng (num) {
295
+      return num > 0 ? num * this.JieCheng(num - 1) : 1
296
+    },
297
+    ZuXuan6SelectItem (item) { // 组选6-选择号码
298
+      if (this.DataLock) return
299
+      item.Active = !item.Active
300
+      this.CalcZuXuan6Res() // 计算组选6结果
301
+    },
302
+    ZuXuan6RandomSelect (num, index) { // 组选6机选
303
+      if (this.DataLock) return
304
+      this.DataLock = true
305
+      this.ZuXuan6Data.map((item) => {
306
+        item.Active = false
307
+      })
308
+      this.RandomSelect(9, num).map((item) => {
309
+        this.ZuXuan6Data[item].Active = true
310
+      })
311
+      this.ZuXuan6RandomActiveIndex = index
312
+      this.CalcZuXuan6Res() // 计算组选6结果
313
+      this.DataLock = false
314
+    },
315
+    RandomSelect (max, num, arr = []) { // 数字区间中选取随机n个数值
316
+      if (arr.length < num) {
317
+        let Random = Math.floor(max * Math.random())
318
+        let Bool = true
319
+        arr.map((item) => {
320
+          if (item - 0 === Random) {
321
+            Bool = false
322
+          }
323
+        })
324
+        if (Bool) {
325
+          arr.push(Random)
326
+        }
327
+        this.RandomSelect(max, num, arr)
328
+        return arr
329
+      } else {
330
+        return arr
331
+      }
206 332
     },
207 333
     CutZuXuan3 (type) { // 切换组选3类型
208 334
       this.ZuXuan3Type = type
@@ -222,6 +348,7 @@ export default {
222 348
       }
223 349
     },
224 350
     CutSelectType (num) { // 切换选法
351
+      this.EmptyData(num === 1 ? 'ZhiXuan' : num === 2 ? 'ZuXuan3' : 'ZuXuan6')
225 352
       this.SelectType = num
226 353
       this.EditMainItemData({ name: 'MainHeaderTitle', value: `排列3-${this.SelectType === 1 ? '直选' : this.SelectType === 2 ? '组选3' : '组选6'}` })
227 354
       this.ShowSelectTypeNav = false

+ 29
- 6
src/pages/index/PaiLie3/page.scss Voir le fichier

@@ -129,11 +129,16 @@
129 129
                     > a {
130 130
                       width: 100%;
131 131
                       font-size: 0.14rem;
132
-                      line-height: 0.26rem;
132
+                      line-height: 0.28rem;
133 133
                       border: 0.01rem solid #666;
134 134
                       display: block;
135 135
                       text-align: center;
136 136
                       border-radius: 100%;
137
+                      &.active {
138
+                        background: #ff5200;
139
+                        color: #fff;
140
+                        border-color: #ff5200;
141
+                      }
137 142
                     }
138 143
                     > span {
139 144
                       display: block;
@@ -229,11 +234,16 @@
229 234
                             > a {
230 235
                               width: 100%;
231 236
                               font-size: 0.14rem;
232
-                              line-height: 0.26rem;
237
+                              line-height: 0.28rem;
233 238
                               border: 0.01rem solid #666;
234 239
                               display: block;
235 240
                               text-align: center;
236 241
                               border-radius: 100%;
242
+                              &.active {
243
+                                background: #ff5200;
244
+                                color: #fff;
245
+                                border-color: #ff5200;
246
+                              }
237 247
                             }
238 248
                             > span {
239 249
                               display: block;
@@ -282,11 +292,16 @@
282 292
                     > a {
283 293
                       width: 100%;
284 294
                       font-size: 0.14rem;
285
-                      line-height: 0.26rem;
295
+                      line-height: 0.28rem;
286 296
                       border: 0.01rem solid #666;
287 297
                       display: block;
288 298
                       text-align: center;
289 299
                       border-radius: 100%;
300
+                      &.active {
301
+                        background: #ff5200;
302
+                        color: #fff;
303
+                        border-color: #ff5200;
304
+                      }
290 305
                     }
291 306
                     > span {
292 307
                       display: block;
@@ -376,15 +391,23 @@
376 391
     > .Btn {
377 392
       line-height: 0.28rem;
378 393
       font-size: 0.13rem;
379
-      color: #ff5200;
380
-      border: 0.01rem solid #ff5200;
394
+      color: #ccc;
395
+      border: 0.01rem solid #ccc;
381 396
       border-radius: 0.02rem;
382 397
       margin-left: 0.15rem;
383 398
       min-width: 0.7rem;
384 399
       text-align: center;
385 400
       &:last-child {
386 401
         color: #fff;
387
-        background: #ff5200;
402
+        background: #ccc;
403
+      }
404
+      &.active {
405
+        color: #ff5200;
406
+        border: 0.01rem solid #ff5200;
407
+        &:last-child {
408
+          color: #fff;
409
+          background: #ff5200;
410
+        }
388 411
       }
389 412
     }
390 413
   }

+ 1
- 1
src/pages/index/PaiLie5/index.vue Voir le fichier

@@ -110,7 +110,7 @@
110 110
     <div class="Bottom flex-h">
111 111
       <span class="SelectRes">共<em>{{TotalResNum}}</em>注<em>{{TotalResNum * 2}}</em>元,奖金<em>0</em>元</span>
112 112
       <a class="iconfont iconjian" v-if="SelectType === 1" @click="EmptySelectArea"></a>
113
-      <a class="iconfont icongouwuche"></a>
113
+      <router-link :to="{ name: 'PaiLie5DingDan' }" class="iconfont icongouwuche"></router-link>
114 114
       <div class="flex-item"></div>
115 115
       <a class="Btn" :class="{'active': CanCreateRes}" @click="AddCart">添加号码蓝</a>
116 116
       <a class="Btn" :class="{'active': CanCreateRes}" @click="CreateOrder">投注</a>

+ 193
- 7
src/pages/index/PaiLie5DingDan/index.vue Voir le fichier

@@ -1,5 +1,128 @@
1 1
 <template>
2
-  <div class="Page">
2
+  <div class="Page flex-v">
3
+
4
+    <a class="Store flex-h" @click="ShowStore = true">
5
+      <div class="flex-item">
6
+        <div>
7
+          <span>投注门店:请选择</span>
8
+        </div>
9
+      </div>
10
+      <span>查看更多</span>
11
+      <i class="iconfont iconjiantouright"></i>
12
+    </a>
13
+
14
+    <div class="flex-item">
15
+      <div>
16
+
17
+        <div class="Title">
18
+          <span>订单信息</span>
19
+        </div>
20
+
21
+        <span v-if="!PageList.length">购物车空空如也</span>
22
+
23
+        <ul>
24
+          <li v-for="(item, index) in PageList" :key="index">
25
+            <a class="iconfont iconguanbi Close" @click="DeleteItem(item, index)"></a>
26
+            <div class="Title">
27
+              <span>{{item.Type === 'Random' ? '机选' : '自选'}}普通</span>
28
+              <span>{{item.Count}}注{{item.Count * 2}}元</span>
29
+            </div>
30
+            <ul>
31
+              <li v-for="(subItem, subIndex) in item.WanWei" :key="`WanWei-${subIndex}`">
32
+                <div class="centerLabel">
33
+                  <span>{{subItem}}</span>
34
+                  <span>万</span>
35
+                </div>
36
+              </li>
37
+              <li v-for="(subItem, subIndex) in item.QianWei" :key="`QianWei-${subIndex}`">
38
+                <div class="centerLabel">
39
+                  <span>{{subItem}}</span>
40
+                  <span>千</span>
41
+                </div>
42
+              </li>
43
+              <li v-for="(subItem, subIndex) in item.BaiWei" :key="`BaiWei-${subIndex}`">
44
+                <div class="centerLabel">
45
+                  <span>{{subItem}}</span>
46
+                  <span>百</span>
47
+                </div>
48
+              </li>
49
+              <li v-for="(subItem, subIndex) in item.ShiWei" :key="`ShiWei-${subIndex}`">
50
+                <div class="centerLabel">
51
+                  <span>{{subItem}}</span>
52
+                  <span>十</span>
53
+                </div>
54
+              </li>
55
+              <li v-for="(subItem, subIndex) in item.GeWei" :key="`GeWei-${subIndex}`">
56
+                <div class="centerLabel">
57
+                  <span>{{subItem}}</span>
58
+                  <span>个</span>
59
+                </div>
60
+              </li>
61
+            </ul>
62
+          </li>
63
+        </ul>
64
+
65
+        <div class="Tips">
66
+          <span>排列五官方出票时间:</span>
67
+          <span>周一至周五 9:00 ~ 24:00 周六周日 9:00 ~ 次日1:00</span>
68
+        </div>
69
+
70
+      </div>
71
+    </div>
72
+
73
+    <div class="Bottom">
74
+      <div class="flex-h">
75
+        <div class="flex-item">
76
+          <div>
77
+            <span><em>{{TotalCount}}</em>注<em>{{TotalCount * 2 * Multiple}}</em>元</span>
78
+          </div>
79
+        </div>
80
+        <span>
81
+          <a class="iconfont iconjianhao" @click="Multiple = Multiple > 1 ? Multiple - 1 : 1"></a>
82
+          <input type="number" disabled="disabled" v-model="Multiple">
83
+          <span>倍</span>
84
+          <a class="iconfont iconjiahao" @click="Multiple += 1"></a>
85
+        </span>
86
+      </div>
87
+      <div class="flex-h">
88
+        <a @click="$router.go(-1)">自选号码</a>
89
+        <a @click="CutRandomCount(1)">机选一注</a>
90
+        <a class="flex-item">确认投注</a>
91
+      </div>
92
+    </div>
93
+
94
+    <div class="Layer" v-if="ShowStore">
95
+      <div class="centerLabel">
96
+        <span>推荐店铺:</span>
97
+        <ul>
98
+          <li v-for="(item, index) in 3" :key="index" class="flex-h">
99
+            <div class="flex-item">
100
+              <div>
101
+                <span>彩票供销社{{index + 1}}</span>
102
+              </div>
103
+            </div>
104
+            <i class="iconfont iconweigouxuan"></i>
105
+          </li>
106
+        </ul>
107
+        <span>选择附近店铺:</span>
108
+        <ul class="ScrollList">
109
+          <li v-for="(item, index) in 20" :key="index" class="flex-h">
110
+            <div class="flex-item">
111
+              <div>
112
+                <span>彩票供销社{{index + 1}}</span>
113
+              </div>
114
+            </div>
115
+            <span>200m</span>
116
+            <i class="iconfont iconweigouxuan"></i>
117
+          </li>
118
+        </ul>
119
+        <div class="Bottom flex-h">
120
+          <a class="flex-item" @click="ShowStore = false">取消</a>
121
+          <a class="flex-item active">确定</a>
122
+        </div>
123
+      </div>
124
+    </div>
125
+
3 126
   </div>
4 127
 </template>
5 128
 
@@ -10,8 +133,18 @@ export default {
10 133
   name: '',
11 134
   data () {
12 135
     return {
136
+      ShowStore: false,
137
+      Multiple: 1,
138
+      TotalCount: 0,
13 139
       DataLock: false,
14
-      PageList: []
140
+      PageList: [],
141
+      NumData: { // 选取数据
142
+        WanWei: [],
143
+        QianWei: [],
144
+        ShiWei: [],
145
+        BaiWei: [],
146
+        GeWei: []
147
+      }
15 148
     }
16 149
   },
17 150
   computed: {
@@ -23,7 +156,7 @@ export default {
23 156
   },
24 157
   created () {
25 158
     this.EditMainData([ // 配置页面框架数据
26
-      { name: 'MainHeaderRightClick', value: () => { console.log(111) } },
159
+      { name: 'MainHeaderRightClick', value: () => { this.EmptyCart() } },
27 160
       { name: 'ShowMainHeaderRight', value: true },
28 161
       { name: 'MainHeaderRightIcon', value: 'iconqingkong' },
29 162
       { name: 'MainHeaderRightText', value: '清空重选' },
@@ -31,8 +164,7 @@ export default {
31 164
       { name: 'MainHeaderTitle', value: '确认投注' },
32 165
       { name: 'ShowMainHeaderBack', value: true }
33 166
     ])
34
-    this.PageList = [...this.PaiLie5Cart]
35
-    console.log(this.PaiLie5Cart.length)
167
+    this.Init()
36 168
   },
37 169
   mounted () {
38 170
     this.$nextTick(() => {
@@ -43,8 +175,62 @@ export default {
43 175
       'EditMainData' // 配置页面框架数据
44 176
     ]),
45 177
     ...mapUserMutations([
46
-      'AddPaiLie3Cart'
47
-    ])
178
+      'AddPaiLie5Cart',
179
+      'DeletePaiLie5Cart',
180
+      'EmptyPaiLie5Cart'
181
+    ]),
182
+    Init () { // 初始化
183
+      this.PageList = [...this.PaiLie5Cart]
184
+      this.CalcTotalCount()
185
+      this.CreateData()
186
+    },
187
+    EmptyCart () { // 清空购物车
188
+      this.Dialog.confirm({
189
+        message: '确认清空购物车?'
190
+      }).then(() => {
191
+        this.EmptyPaiLie5Cart()
192
+        this.PageList = []
193
+        this.TotalCount = 0
194
+      })
195
+    },
196
+    CalcTotalCount () { // 计算总注数
197
+      this.TotalCount = 0
198
+      this.PageList.map((item) => {
199
+        this.TotalCount += item.Count
200
+      })
201
+    },
202
+    DeleteItem (item, index) { // 删除单注
203
+      if (this.DataLock) return
204
+      this.DataLock = true
205
+      this.DeletePaiLie5Cart(index)
206
+      this.PageList.splice(index, 1)
207
+      this.TotalCount -= item.Count
208
+      this.DataLock = false
209
+    },
210
+    CreateData () { // 创建数据
211
+      for (let key in this.NumData) {
212
+        this.NumData[key] = []
213
+      }
214
+      for (let n = 0; n < 10; n++) {
215
+        for (let key in this.NumData) {
216
+          this.NumData[key].push({ Num: n, MissNum: 0, Active: false })
217
+        }
218
+      }
219
+    },
220
+    CutRandomCount (num) { // 切换机选注数
221
+      if (this.DataLock) return
222
+      this.DataLock = true
223
+      for (let n = 0; n < num; n++) {
224
+        let Res = {}
225
+        for (let key in this.NumData) {
226
+          Res[key] = [this.NumData[key][Math.floor(this.NumData[key].length * Math.random())].Num]
227
+        }
228
+        this.AddPaiLie5Cart({ ...Res, Count: 1, Type: 'Random' })
229
+        this.PageList.unshift({ ...Res, Count: 1, Type: 'Random' })
230
+      }
231
+      this.CalcTotalCount()
232
+      this.DataLock = false
233
+    }
48 234
   }
49 235
 }
50 236
 </script>

+ 342
- 1
src/pages/index/PaiLie5DingDan/page.scss Voir le fichier

@@ -1,3 +1,344 @@
1 1
 .Page {
2
-  
2
+  background: #f8f8f8;
3
+  position: relative;
4
+  > .Store {
5
+    background: #fff;
6
+    padding: 0.15rem;
7
+    box-shadow: 0 0 0.02rem 0.02rem rgba(0, 0, 0, 0.05);
8
+    position: relative;
9
+    overflow: hidden;
10
+    align-items: center;
11
+    z-index: 2;
12
+    > div {
13
+      position: relative;
14
+      > div {
15
+        width: 100%;
16
+        position: relative;
17
+        overflow: hidden;
18
+        > span {
19
+          display: block;
20
+          font-size: 0.15rem;
21
+          font-weight: bold;
22
+          color: #333;
23
+          line-height: 0.2rem;
24
+          white-space: nowrap;
25
+          overflow: hidden;
26
+          text-overflow: ellipsis;
27
+        }
28
+      }
29
+    }
30
+    > span {
31
+      font-size: 0.12rem;
32
+      color: #999;
33
+      margin-left: 0.1rem;
34
+    }
35
+    > i {
36
+      font-size: 0.12rem;
37
+      color: #999;
38
+    }
39
+  }
40
+  > div.flex-item {
41
+    position: relative;
42
+    overflow: hidden;
43
+    z-index: 1;
44
+    > div {
45
+      width: 100%;
46
+      position: absolute;
47
+      left: 0;
48
+      top: 0;
49
+      bottom: 0;
50
+      overflow-y: scroll;
51
+      -webkit-overflow-scrolling: touch;
52
+      > .Title {
53
+        position: relative;
54
+        overflow: hidden;
55
+        text-align: center;
56
+        margin-top: 0.15rem;
57
+        &::after {
58
+          content: "";
59
+          display: block;
60
+          width: 70%;
61
+          height: 0.01rem;
62
+          background: #eee;
63
+          z-index: 1;
64
+          position: absolute;
65
+          left: 50%;
66
+          top: 50%;
67
+          transform: translate(-50%, -50%);
68
+          -webkit-transform: translate(-50%, -50%);
69
+        }
70
+        > span {
71
+          display: inline-block;
72
+          position: relative;
73
+          z-index: 2;
74
+          background: #f8f8f8;
75
+          font-size: 0.15rem;
76
+          font-weight: bold;
77
+          line-height: 0.2rem;
78
+          padding: 0 0.1rem;
79
+        }
80
+      }
81
+      > span {
82
+        font-size: 0.12rem;
83
+        color: #999;
84
+        display: block;
85
+        line-height: 0.2rem;
86
+        text-align: center;
87
+        margin-top: 0.2rem;
88
+      }
89
+      > ul {
90
+        padding: 0.15rem;
91
+        > li {
92
+          background: #fff;
93
+          padding: 0.15rem;
94
+          box-shadow: 0 0 0.02rem 0.02rem rgba(0, 0, 0, 0.05);
95
+          position: relative;
96
+          overflow: hidden;
97
+          border-radius: 0.06rem;
98
+          margin-top: 0.15rem;
99
+          &:first-child {
100
+            margin-top: 0;
101
+          }
102
+          > a.Close {
103
+            display: inline-block;
104
+            position: absolute;
105
+            right: 0;
106
+            top: 0;
107
+            z-index: 2;
108
+            font-size: 0.16rem;
109
+            color: #999;
110
+          }
111
+          > .Title {
112
+            font-size: 0;
113
+            white-space: nowrap;
114
+            > span {
115
+              display: inline-block;
116
+              vertical-align: middle;
117
+              font-size: 0.12rem;
118
+              color: #333;
119
+              line-height: 0.2rem;
120
+              margin-left: 0.1rem;
121
+              &:first-child {
122
+                margin-left: 0;
123
+              }
124
+            }
125
+          }
126
+          > ul {
127
+            font-size: 0;
128
+            > li {
129
+              display: inline-block;
130
+              vertical-align: middle;
131
+              width: 0.3rem;
132
+              height: 0.3rem;
133
+              position: relative;
134
+              overflow: hidden;
135
+              border-radius: 100%;
136
+              background: #ff5200;
137
+              margin-top: 0.1rem;
138
+              margin-right: 0.05rem;
139
+              > div {
140
+                width: 100%;
141
+                > span {
142
+                  font-size: 0.12rem;
143
+                  color: #fff;
144
+                  line-height: 0.14rem;
145
+                  display: block;
146
+                  text-align: center;
147
+                }
148
+              }
149
+            }
150
+          }
151
+        }
152
+      }
153
+      > div.Tips {
154
+        padding: 0.15rem 0;
155
+        > span {
156
+          display: block;
157
+          font-size: 0.1rem;
158
+          color: #666;
159
+          line-height: 0.2rem;
160
+          text-align: center;
161
+        }
162
+      }
163
+    }
164
+  }
165
+  > div.Bottom {
166
+    background: #fff;
167
+    padding: 0.15rem;
168
+    box-shadow: 0 0 0.02rem 0.02rem rgba(0, 0, 0, 0.05);
169
+    position: relative;
170
+    overflow: hidden;
171
+    z-index: 2;
172
+    > div {
173
+      &:nth-child(1) {
174
+        align-items: center;
175
+        > div {
176
+          position: relative;
177
+          > div {
178
+            width: 100%;
179
+            position: relative;
180
+            overflow: hidden;
181
+            > span {
182
+              display: block;
183
+              font-size: 0.13rem;
184
+              color: #333;
185
+              font-weight: bold;
186
+              line-height: 0.2rem;
187
+              > em {
188
+                font-size: 0.13rem;
189
+                color: #d91d36;
190
+                font-weight: bold;
191
+                line-height: 0.2rem;
192
+              }
193
+            }
194
+          }
195
+        }
196
+        > span {
197
+          display: inline-block;
198
+          margin-left: 0.1rem;
199
+          position: relative;
200
+          overflow: hidden;
201
+          border: 0.01rem solid #f7f7f7;
202
+          border-radius: 0.03rem;
203
+          font-size: 0;
204
+          white-space: nowrap;
205
+          > * {
206
+            display: inline-block;
207
+            vertical-align: middle;
208
+            font-size: 0.14rem;
209
+            color: #999;
210
+            line-height: 0.24rem;
211
+            border-left: 0.01rem solid #f7f7f7;
212
+            &:first-child {
213
+              border: none;
214
+              border-right: 0.01rem solid #f7f7f7;
215
+            }
216
+          }
217
+          > a {
218
+            width: 0.24rem;
219
+            text-align: center;
220
+          }
221
+          > input {
222
+            border: none;
223
+            width: 0.35rem;
224
+            text-align: center;
225
+            color: #333;
226
+            &:disabled {
227
+              color: #333;
228
+            }
229
+          }
230
+          > span {
231
+            border: none;
232
+            margin-right: 0.03rem;
233
+          }
234
+        }
235
+      }
236
+      &:nth-child(2) {
237
+        align-items: center;
238
+        margin-top: 0.15rem;
239
+        > a {
240
+          font-size: 0.15rem;
241
+          line-height: 0.4rem;
242
+          border: 0.01rem solid #ff5200;
243
+          color: #ff5200;
244
+          border-radius: 0.02rem;
245
+          margin-left: 0.15rem;
246
+          padding: 0 0.1rem;
247
+          text-align: center;
248
+          &:first-child {
249
+            margin-left: 0;
250
+          }
251
+          &.flex-item {
252
+            color: #fff;
253
+            background: #ff5200;
254
+          }
255
+        }
256
+      }
257
+    }
258
+  }
259
+  > div.Layer {
260
+    width: 100%;
261
+    position: absolute;
262
+    left: 0;
263
+    top: 0;
264
+    bottom: 0;
265
+    z-index: 10;
266
+    background: rgba(0, 0, 0, 0.7);
267
+    > div {
268
+      width: 80%;
269
+      background: #fff;
270
+      border-radius: 0.06rem;
271
+      position: relative;
272
+      overflow: hidden;
273
+      padding-top: 0.15rem;
274
+      > span {
275
+        font-size: 0.14rem;
276
+        font-weight: bold;
277
+        color: #000;
278
+        line-height: 0.3rem;
279
+        display: block;
280
+        text-indent: 0.15rem;
281
+      }
282
+      > ul {
283
+        padding: 0 0.15rem;
284
+        position: relative;
285
+        overflow: hidden;
286
+        &.ScrollList {
287
+          max-height: 2.5rem;
288
+          overflow-y: scroll;
289
+          -webkit-overflow-scrolling: touch;
290
+        }
291
+        > li {
292
+          align-items: center;
293
+          border-top: 0.01rem solid #f7f7f7;
294
+          &:first-child {
295
+            border: none;
296
+          }
297
+          > div {
298
+            position: relative;
299
+            > div {
300
+              width: 100%;
301
+              position: relative;
302
+              > span {
303
+                display: block;
304
+                white-space: nowrap;
305
+                overflow: hidden;
306
+                text-overflow: ellipsis;
307
+                font-size: 0.14rem;
308
+                color: #333;
309
+                line-height: 0.42rem;
310
+              }
311
+            }
312
+          }
313
+          > span {
314
+            font-size: 0.14rem;
315
+            color: #999;
316
+            margin-right: 0.1rem;
317
+          }
318
+          > i {
319
+            font-size: 0.2rem;
320
+            color: #999;
321
+            &.active {
322
+              color: #ff5200;
323
+            }
324
+          }
325
+        }
326
+      }
327
+      > .Bottom {
328
+        border-top: 0.01rem solid #f7f7f7;
329
+        > a {
330
+          font-size: 0.16rem;
331
+          line-height: 0.42rem;
332
+          text-align: center;
333
+          border-left: 0.01rem solid #f7f7f7;
334
+          &.active {
335
+            color: #ff5200;
336
+          }
337
+          &:first-child {
338
+            border: none;
339
+          }
340
+        }
341
+      }
342
+    }
343
+  }
3 344
 }

+ 4
- 4
src/store/user/index.js Voir le fichier

@@ -44,7 +44,7 @@ export default {
44 44
       state.UserInfo = data || null
45 45
     },
46 46
     AddDaLeTouCart (state, data) { // 新增大乐透购物车
47
-      state.DaLeTouCart.push(data)
47
+      state.DaLeTouCart.unshift(data)
48 48
     },
49 49
     DeleteDaLeTouCart (state, data) { // 删除大乐透购物车
50 50
       state.DaLeTouCart.splice(data, 1)
@@ -53,7 +53,7 @@ export default {
53 53
       state.DaLeTouCart = []
54 54
     },
55 55
     AddShuangSeQiuCart (state, data) { // 新增双色球购物车
56
-      state.ShuangSeQiuCart.push(data)
56
+      state.ShuangSeQiuCart.unshift(data)
57 57
     },
58 58
     DeleteShuangSeQiuCart (state, data) { // 删除双色球购物车
59 59
       state.ShuangSeQiuCart.splice(data, 1)
@@ -62,7 +62,7 @@ export default {
62 62
       state.ShuangSeQiuCart = []
63 63
     },
64 64
     AddPaiLie3Cart (state, data) { // 新增排列3购物车
65
-      state.PaiLie3Cart.push(data)
65
+      state.PaiLie3Cart.unshift(data)
66 66
     },
67 67
     DeletePaiLie3Cart (state, data) { // 删除排列3购物车
68 68
       state.PaiLie3Cart.splice(data, 1)
@@ -71,7 +71,7 @@ export default {
71 71
       state.PaiLie3Cart = []
72 72
     },
73 73
     AddPaiLie5Cart (state, data) { // 新增排列5购物车
74
-      state.PaiLie5Cart.push(data)
74
+      state.PaiLie5Cart.unshift(data)
75 75
     },
76 76
     DeletePaiLie5Cart (state, data) { // 删除排列5购物车
77 77
       state.PaiLie5Cart.splice(data, 1)