Browse Source

静态页面

1002884655 4 years ago
parent
commit
5e5b88dc2c

+ 8
- 1
src/components/common/TabSwiper/index.vue View File

35
 export default {
35
 export default {
36
   name: 'TabSwiper',
36
   name: 'TabSwiper',
37
   props: {
37
   props: {
38
+    InfiniteStatus: {
39
+      default: false
40
+    },
38
     List: {
41
     List: {
39
       default: () => {
42
       default: () => {
40
         return []
43
         return []
81
       this.$emit('Refresh', { done, id: this.NavActiveId })
84
       this.$emit('Refresh', { done, id: this.NavActiveId })
82
     },
85
     },
83
     Infinite (done) { // 页面上拉加载
86
     Infinite (done) { // 页面上拉加载
84
-      this.$emit('Infinite', { done, id: this.NavActiveId })
87
+      if (this.InfiniteStatus) {
88
+        this.$emit('Infinite', { done, id: this.NavActiveId })
89
+      } else {
90
+        done()
91
+      }
85
     }
92
     }
86
   }
93
   }
87
 }
94
 }

+ 1
- 1
src/pages/KaiJiangZhanShi/LanQiu/index.vue View File

15
           <div>
15
           <div>
16
 
16
 
17
             <!-- nav -->
17
             <!-- nav -->
18
-            <TabSwiper :List="NavList" @Refresh="Refresh" @Infinite="Infinite" @Change="TabChange">
18
+            <TabSwiper :List="NavList" :InfiniteStatus="true" @Refresh="Refresh" @Infinite="Infinite" @Change="TabChange">
19
 
19
 
20
               <!-- 胜负 -->
20
               <!-- 胜负 -->
21
               <div slot="SwiperItem-1" class="Item">
21
               <div slot="SwiperItem-1" class="Item">

+ 84
- 40
src/pages/KaiJiangZhanShi/ZuQiu/index.vue View File

3
     <MainPageContainer :ShowMainHeader="true" :ShowMainHeaderBack="true" MainHeaderTitle="足球开奖">
3
     <MainPageContainer :ShowMainHeader="true" :ShowMainHeaderBack="true" MainHeaderTitle="足球开奖">
4
       <div class="PageContainer flex-v">
4
       <div class="PageContainer flex-v">
5
         <!-- 开奖日期 -->
5
         <!-- 开奖日期 -->
6
-        <div class="Time">
6
+        <!-- <div class="Time" v-if="NewstRes !== null">
7
           <div class="Icon">
7
           <div class="Icon">
8
-            <img src="../../../assets/img/icon3.png" class="centerLabel contain" alt="">
8
+            <img src="../../../assets/img/icon6.png" class="centerLabel contain" alt="">
9
           </div>
9
           </div>
10
-          <span>20200815</span>
11
-          <span>星期五</span>
12
-        </div>
10
+          <span>{{ToolClass.FormatDate(NewstRes.createDate, 'yyyy-MM-dd')}}</span>
11
+          <span>{{NewstRes.matchWeek}}</span>
12
+        </div> -->
13
 
13
 
14
         <div class="flex-item">
14
         <div class="flex-item">
15
           <div>
15
           <div>
16
 
16
 
17
             <!-- nav -->
17
             <!-- nav -->
18
-            <TabSwiper :List="NavList" @Refresh="Refresh" @Change="TabChange">
18
+            <TabSwiper :List="NavList" :InfiniteStatus="true" @Refresh="Refresh" @Infinite="Infinite" @Change="TabChange">
19
 
19
 
20
               <!-- 胜负 -->
20
               <!-- 胜负 -->
21
               <div slot="SwiperItem-1" class="Item">
21
               <div slot="SwiperItem-1" class="Item">
22
                 <ul>
22
                 <ul>
23
-                  <li v-for="(item, index) in 5" :key="index" class="flex-h">
23
+                  <li v-for="(item, index) in LotterySportRes" :key="index" v-if="item.playOdds['ft-wdl'] !== undefined" class="flex-h">
24
                     <div class="From">
24
                     <div class="From">
25
-                      <span>NBA</span>
26
-                      <span>301</span>
25
+                      <span>{{item.leagueName}}</span>
26
+                      <span>{{item.matchWeek}}</span>
27
                     </div>
27
                     </div>
28
                     <div class="flex-item flex-h">
28
                     <div class="flex-item flex-h">
29
                       <div class="flex-item">
29
                       <div class="flex-item">
30
-                        <span>掘金</span>
30
+                        <span>{{item.awayTeamName}}</span>
31
                       </div>
31
                       </div>
32
                       <div class="flex-item">
32
                       <div class="flex-item">
33
-                        <span class="Small">胜</span>
34
-                        <span class="Big">109:117</span>
33
+                        <span class="Small">{{!item.playOdds['ft-wdl'][0].isWinning ? '' : '负'}}</span>
34
+                        <span class="Big">{{item.wholeScore}}</span>
35
                       </div>
35
                       </div>
36
                       <div class="flex-item">
36
                       <div class="flex-item">
37
-                        <span>猛龙</span>
37
+                        <span>{{item.homeTeamName}}</span>
38
                       </div>
38
                       </div>
39
                     </div>
39
                     </div>
40
                   </li>
40
                   </li>
41
                 </ul>
41
                 </ul>
42
                 <div>
42
                 <div>
43
-                  <a>竞彩足球投注</a>
43
+                  <router-link :to="{ name: 'ZuQiu' }">竞彩足球投注</router-link>
44
                 </div>
44
                 </div>
45
               </div>
45
               </div>
46
 
46
 
47
               <!-- 让分胜负 -->
47
               <!-- 让分胜负 -->
48
               <div slot="SwiperItem-2" class="Item">
48
               <div slot="SwiperItem-2" class="Item">
49
                 <ul>
49
                 <ul>
50
-                  <li v-for="(item, index) in 5" :key="index" class="flex-h">
50
+                  <li v-for="(item, index) in LotterySportRes" :key="index" v-if="item.playOdds['ft-wdls'] !== undefined" class="flex-h">
51
                     <div class="From">
51
                     <div class="From">
52
-                      <span>NBA</span>
53
-                      <span>301</span>
52
+                      <span>{{item.leagueName}}</span>
53
+                      <span>{{item.matchWeek}}</span>
54
                     </div>
54
                     </div>
55
                     <div class="flex-item flex-h">
55
                     <div class="flex-item flex-h">
56
                       <div class="flex-item">
56
                       <div class="flex-item">
57
-                        <span>掘金</span>
57
+                        <span>{{item.awayTeamName}}</span>
58
                       </div>
58
                       </div>
59
                       <div class="flex-item">
59
                       <div class="flex-item">
60
-                        <span class="Small">胜</span>
61
-                        <span class="Big">109:117</span>
60
+                        <span class="Small">{{!item.playOdds['ft-wdls'][0].isWinning ? `让(${item.spreadPoints})` : `让负(${item.spreadPoints})`}}</span>
61
+                        <span class="Big">{{item.wholeScore}}</span>
62
                       </div>
62
                       </div>
63
                       <div class="flex-item">
63
                       <div class="flex-item">
64
-                        <span>猛龙</span>
64
+                        <span>{{item.homeTeamName}}</span>
65
                       </div>
65
                       </div>
66
                     </div>
66
                     </div>
67
                   </li>
67
                   </li>
68
                 </ul>
68
                 </ul>
69
                 <div>
69
                 <div>
70
-                  <a>竞彩足球投注</a>
70
+                  <router-link :to="{ name: 'ZuQiu' }">竞彩足球投注</router-link>
71
                 </div>
71
                 </div>
72
               </div>
72
               </div>
73
 
73
 
74
               <!-- 胜分差 -->
74
               <!-- 胜分差 -->
75
               <div slot="SwiperItem-3" class="Item">
75
               <div slot="SwiperItem-3" class="Item">
76
                 <ul>
76
                 <ul>
77
-                  <li v-for="(item, index) in 5" :key="index" class="flex-h">
77
+                  <li v-for="(item, index) in LotterySportRes" :key="index" v-if="item.playOdds['ft-points'] !== undefined" class="flex-h">
78
                     <div class="From">
78
                     <div class="From">
79
-                      <span>NBA</span>
80
-                      <span>301</span>
79
+                      <span>{{item.leagueName}}</span>
80
+                      <span>{{item.matchWeek}}</span>
81
                     </div>
81
                     </div>
82
                     <div class="flex-item flex-h">
82
                     <div class="flex-item flex-h">
83
                       <div class="flex-item">
83
                       <div class="flex-item">
84
-                        <span>掘金</span>
84
+                        <span>{{item.awayTeamName}}</span>
85
                       </div>
85
                       </div>
86
                       <div class="flex-item">
86
                       <div class="flex-item">
87
-                        <span class="Small">胜</span>
88
-                        <span class="Big">109:117</span>
87
+                        <span class="Small" v-for="(subItem, subIndex) in item.playOdds['ft-points']" :key="subIndex" v-if="subItem.isWinning">{{subItem.name.substring(0, 1) === '' ? '负' : '胜'}}{{subItem.name.substring(1)}}</span>
88
+                        <span class="Big">{{item.wholeScore}}</span>
89
                       </div>
89
                       </div>
90
                       <div class="flex-item">
90
                       <div class="flex-item">
91
-                        <span>猛龙</span>
91
+                        <span>{{item.homeTeamName}}</span>
92
                       </div>
92
                       </div>
93
                     </div>
93
                     </div>
94
                   </li>
94
                   </li>
95
                 </ul>
95
                 </ul>
96
                 <div>
96
                 <div>
97
-                  <a>竞彩足球投注</a>
97
+                  <router-link :to="{ name: 'ZuQiu' }">竞彩足球投注</router-link>
98
                 </div>
98
                 </div>
99
               </div>
99
               </div>
100
 
100
 
101
               <!-- 大小分 -->
101
               <!-- 大小分 -->
102
               <div slot="SwiperItem-4" class="Item">
102
               <div slot="SwiperItem-4" class="Item">
103
                 <ul>
103
                 <ul>
104
-                  <li v-for="(item, index) in 5" :key="index" class="flex-h">
104
+                  <li v-for="(item, index) in LotterySportRes" :key="index" v-if="item.playOdds['ft-score'] !== undefined" class="flex-h">
105
                     <div class="From">
105
                     <div class="From">
106
-                      <span>NBA</span>
107
-                      <span>301</span>
106
+                      <span>{{item.leagueName}}</span>
107
+                      <span>{{item.matchWeek}}</span>
108
                     </div>
108
                     </div>
109
                     <div class="flex-item flex-h">
109
                     <div class="flex-item flex-h">
110
                       <div class="flex-item">
110
                       <div class="flex-item">
111
-                        <span>掘金</span>
111
+                        <span>{{item.awayTeamName}}</span>
112
                       </div>
112
                       </div>
113
                       <div class="flex-item">
113
                       <div class="flex-item">
114
-                        <span class="Small">胜</span>
115
-                        <span class="Big">109:117</span>
114
+                        <span class="Small" v-for="(subItem, subIndex) in item.playOdds['ft-score']" :key="subIndex" v-if="subItem.isWinning">{{subItem.name}}({{item.spreadPoints}})</span>
115
+                        <span class="Big">{{item.wholeScore}}</span>
116
                       </div>
116
                       </div>
117
                       <div class="flex-item">
117
                       <div class="flex-item">
118
-                        <span>猛龙</span>
118
+                        <span>{{item.homeTeamName}}</span>
119
                       </div>
119
                       </div>
120
                     </div>
120
                     </div>
121
                   </li>
121
                   </li>
122
                 </ul>
122
                 </ul>
123
                 <div>
123
                 <div>
124
-                  <a>竞彩足球投注</a>
124
+                  <router-link :to="{ name: 'ZuQiu' }">竞彩足球投注</router-link>
125
                 </div>
125
                 </div>
126
               </div>
126
               </div>
127
 
127
 
136
 
136
 
137
 <script>
137
 <script>
138
 import MainPageContainer from '../../../components/common/MainPageContainer'
138
 import MainPageContainer from '../../../components/common/MainPageContainer'
139
+import { createNamespacedHelpers } from 'vuex'
139
 import TabSwiper from '../../../components/common/TabSwiper'
140
 import TabSwiper from '../../../components/common/TabSwiper'
141
+const { mapState: mapIndexState, mapActions: mapIndexActions, mapMutations: mapIndexMutations } = createNamespacedHelpers('index')
140
 export default {
142
 export default {
141
   name: '',
143
   name: '',
142
   data () {
144
   data () {
143
     return {
145
     return {
146
+      PageData: {
147
+        pageNum: 0,
148
+        pageSize: 15
149
+      },
150
+      HasNextPage: true,
151
+      DataLock: false,
152
+      NewstRes: null,
144
       NavList: [ // nav数据
153
       NavList: [ // nav数据
145
         { name: '胜负', id: 1 },
154
         { name: '胜负', id: 1 },
146
         { name: '让分胜负', id: 2 },
155
         { name: '让分胜负', id: 2 },
150
     }
159
     }
151
   },
160
   },
152
   computed: {
161
   computed: {
162
+    ...mapIndexState({
163
+      LotterySportRes: x => x.LotterySportRes // 最新竞彩开奖结果列表
164
+    })
153
   },
165
   },
154
   components: {
166
   components: {
155
     MainPageContainer,
167
     MainPageContainer,
156
     TabSwiper
168
     TabSwiper
157
   },
169
   },
158
   created () {
170
   created () {
171
+    this.Init()
159
   },
172
   },
160
   mounted () {
173
   mounted () {
161
     this.$nextTick(() => {
174
     this.$nextTick(() => {
162
     })
175
     })
163
   },
176
   },
164
   methods: {
177
   methods: {
178
+    ...mapIndexActions([
179
+      'GetLotterySportRes'
180
+    ]),
181
+    ...mapIndexMutations([
182
+      'EmptyLotterySportRes'
183
+    ]),
184
+    Init (done = () => { }) {
185
+      this.EmptyLotterySportRes()
186
+      this.PageData.pageNum = 0
187
+      this.HasNextPage = true
188
+    },
189
+    ToGetLotterySportRes (done = () => { }, num = null) {
190
+      if (!this.HasNextPage && this.DataLock) return
191
+      this.DataLock = true
192
+      if (num !== null) {
193
+        this.PageData.pageNum += num
194
+      }
195
+      this.GetLotterySportRes({ queryData: { lotteryId: 'football', ...this.PageData } }).then((res) => {
196
+        this.HasNextPage = res.data.data.pages > this.PageData.pageNum
197
+        this.DataLock = false
198
+        done()
199
+      }).catch(() => {
200
+        this.DataLock = false
201
+        done()
202
+      })
203
+    },
165
     TabChange (e) { // nav切换
204
     TabChange (e) { // nav切换
166
 
205
 
167
     },
206
     },
168
     Refresh (e) { // 页面下拉刷新
207
     Refresh (e) { // 页面下拉刷新
169
-      window.setTimeout(() => {
208
+      this.Init(e.done)
209
+    },
210
+    Infinite (e) { // 页面上拉加载
211
+      if (this.HasNextPage && !this.DataLock) {
212
+        this.ToGetLotterySportRes(e.done, 1)
213
+      } else {
170
         e.done()
214
         e.done()
171
-      }, 1000)
215
+      }
172
     }
216
     }
173
   }
217
   }
174
 }
218
 }

+ 1
- 1
src/pages/KaiJiangZhanShi/ZuQiu/page.scss View File

45
               border-bottom: 0.01rem solid #f7f7f7;
45
               border-bottom: 0.01rem solid #f7f7f7;
46
               padding: 0.15rem 0;
46
               padding: 0.15rem 0;
47
               > .From {
47
               > .From {
48
-                margin-right: 0.5rem;
48
+                margin-right: 0.1rem;
49
                 > span {
49
                 > span {
50
                   display: block;
50
                   display: block;
51
                   text-align: center;
51
                   text-align: center;