张延森 4 anos atrás
pai
commit
d90a0377ed

+ 1
- 1
.env.development Ver arquivo

@@ -2,7 +2,7 @@
2 2
 ENV = 'development'
3 3
 
4 4
 # base api
5
-VUE_APP_BASE_API = 'http://192.168.31.68:8888/api/admin'
5
+VUE_APP_BASE_API = 'http://127.0.0.1:8888/api/admin'
6 6
 
7 7
 # vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable,
8 8
 # to control whether the babel-plugin-dynamic-import-node plugin is enabled.

+ 18
- 0
src/api/lottery/match-api.js Ver arquivo

@@ -0,0 +1,18 @@
1
+import request from '@/utils/request'
2
+
3
+export default {
4
+  getPageList: data => {
5
+    return request({
6
+      url: '/taMatch/getPageList',
7
+      method: 'post',
8
+      data
9
+    })
10
+  },
11
+  update: data => {
12
+    return request({
13
+      url: '/taMatch/update',
14
+      method: 'post',
15
+      data
16
+    })
17
+  }
18
+}

+ 11
- 0
src/components/SeachForm/index.vue Ver arquivo

@@ -0,0 +1,11 @@
1
+<template>
2
+  <el-form :inline="true">
3
+    <slot></slot>
4
+    <el-form-item>
5
+      <el-button type="primary" @click="$emit('search')">查询</el-button>
6
+    </el-form-item>
7
+    <el-form-item>
8
+      <el-button @click="$emit('reset')">重置</el-button>
9
+    </el-form-item>
10
+  </el-form>
11
+</template>

+ 18
- 1
src/router/index.js Ver arquivo

@@ -190,7 +190,6 @@ export const asyncRoutes = [
190 190
   {
191 191
     path: '/lottery',
192 192
     component: Layout,
193
-    redirect: '/lottery/list',
194 193
     name: 'lottery',
195 194
     meta: {
196 195
       title: '彩票站管理',
@@ -230,6 +229,24 @@ export const asyncRoutes = [
230 229
       }
231 230
     ]
232 231
   },
232
+  {
233
+    path: '/match',
234
+    name: 'match',
235
+    component: Layout,
236
+    meta: {
237
+      title: '比赛管理',
238
+      icon: 'trophy'
239
+    },
240
+    children: [
241
+      {
242
+        path: 'match-list',
243
+        component: () => import('@/views/match/index.vue'),
244
+        name: 'matchList',
245
+        meta: { title: '比赛管理', icon: 'edit' }
246
+      }
247
+    ]
248
+  },
249
+
233 250
   // 404 page must be placed at the end !!!
234 251
   { path: '*', redirect: '/404', hidden: true }
235 252
 ]

+ 1
- 1
src/settings.js Ver arquivo

@@ -11,7 +11,7 @@ module.exports = {
11 11
    * @type {boolean} true | false
12 12
    * @description Whether need tagsView
13 13
    */
14
-  tagsView: true,
14
+  tagsView: false,
15 15
 
16 16
   /**
17 17
    * @type {boolean} true | false

+ 14
- 14
src/views/lottery/customer/customer-lottery-list.vue Ver arquivo

@@ -63,7 +63,7 @@
63 63
   import waves from '@/directive/waves'
64 64
   import Pagination from '@/components/Pagination'
65 65
   import customerApi from '@/api/lottery/customer-api'
66
-import router from '../../../router'
66
+  import router from '../../../router'
67 67
 
68 68
   const stateEnum = { 0: '待审核', 1: '已审核', 2: '审核不通过' }
69 69
   const statusOptions = [
@@ -151,19 +151,19 @@ import router from '../../../router'
151 151
         }
152 152
       },
153 153
       handUpdate(id, username) {
154
-        this.$confirm('您确定要删除 ' + username + ' ?', '删除提示', {
155
-          confirmButtonText: '确定',
156
-          cancelButtonText: '取消',
157
-          type: 'warning'
158
-        }).then(() => {
159
-          sysUserApi.delete(id).then(response => {
160
-            this.$message({
161
-              type: 'success',
162
-              message: '删除成功!'
163
-            });
164
-            this.handleFilter();
165
-          })
166
-        });
154
+        // this.$confirm('您确定要删除 ' + username + ' ?', '删除提示', {
155
+        //   confirmButtonText: '确定',
156
+        //   cancelButtonText: '取消',
157
+        //   type: 'warning'
158
+        // }).then(() => {
159
+        //   sysUserApi.delete(id).then(response => {
160
+        //     this.$message({
161
+        //       type: 'success',
162
+        //       message: '删除成功!'
163
+        //     });
164
+        //     this.handleFilter();
165
+        //   })
166
+        // });
167 167
       }
168 168
     }
169 169
   }

+ 1
- 2
src/views/lottery/shop/components/shop-detail.vue Ver arquivo

@@ -68,12 +68,11 @@
68 68
     },
69 69
     methods: {
70 70
       handle(id) {
71
-        console.log(id, "id-----")
72 71
         shopApi.getShopDetail(id).then(response => {
73 72
           this.form = response.data
74 73
         });
75 74
         this.dialogVisible = true
76
-      },
75
+      }
77 76
     }
78 77
   }
79 78
 </script>

+ 197
- 0
src/views/match/index.vue Ver arquivo

@@ -0,0 +1,197 @@
1
+<template>
2
+  <div class="app-container">
3
+    <SearchForm v-model="formData" @search="handleSearch" @reset="handleReset">
4
+      <el-form-item label="赛事">
5
+        <el-select v-model="formData.lotteryId">
6
+          <el-option label="足球" value="football" />
7
+          <el-option label="篮球" value="basketball" />
8
+        </el-select>
9
+      </el-form-item>
10
+      <el-form-item label="编号">
11
+        <el-input v-model="formData.matchWeek" clearable />
12
+      </el-form-item>
13
+      <el-form-item label="主队">
14
+        <el-input v-model="formData.homeTeamName" clearable />
15
+      </el-form-item>
16
+      <el-form-item label="客队">
17
+        <el-input v-model="formData.awayTeamName" clearable />
18
+      </el-form-item>
19
+      <el-form-item label="状态">
20
+        <el-select v-model="formData.status">
21
+          <el-option label="全部" value="" />
22
+          <el-option v-for="it in statusEnum" :key="it.value" :value="it.value" :label="it.label" />
23
+        </el-select>
24
+      </el-form-item>
25
+    </SearchForm>
26
+
27
+    <el-table
28
+      v-loading="loading.list"
29
+      :data="list"
30
+      border
31
+      fit
32
+      highlight-current-row
33
+      row-key="match_id"
34
+      style="width: 100%;"
35
+    >
36
+      <el-table-column label="赛事" width="80px">
37
+        <template slot-scope="{row}">
38
+          <span>{{ row.lotteryId | getLotteryName }}</span>
39
+        </template>
40
+      </el-table-column>
41
+      <el-table-column label="编号" prop="matchWeek" width="80px"></el-table-column>
42
+      <el-table-column label="比赛开始时间" width="180px">
43
+        <template slot-scope="{row}">
44
+          <span>{{ row.matchDate }}</span>
45
+          <span> </span>
46
+          <span>{{ row.matchTime }}</span>
47
+        </template>
48
+      </el-table-column>
49
+      <el-table-column label="联赛" prop="leagueName" width="200px"></el-table-column>
50
+      <el-table-column label="主队 vs 客队">
51
+        <template slot-scope="{row}">
52
+          <span>{{ row.homeTeamName }}</span>
53
+          <span> vs </span>
54
+          <span>{{ row.awayTeamName }}</span>
55
+        </template>
56
+      </el-table-column>
57
+      <el-table-column label="让分" prop="spreadPoints" width="80px"></el-table-column>
58
+      <el-table-column label="预设(篮球)" width="100px">
59
+        <template slot-scope="{row}" v-if="row.lotteryId === 'basketball'">
60
+          <span>{{ row.presetPoints }}</span>
61
+        </template>
62
+      </el-table-column>
63
+      <el-table-column label="比分" width="160px">
64
+        <template slot-scope="{row}" v-if="row.status === 3">
65
+          <span>(半){{ row.halfScore }}</span>
66
+          <span> &larr;|&rarr; </span>
67
+          <span>{{ row.wholeScore }}(全)</span>
68
+        </template>
69
+      </el-table-column>
70
+      <el-table-column label="状态" width="100">
71
+        <template slot-scope="{row}">
72
+          <span>{{ row.status | getStatus }}</span>
73
+        </template>
74
+      </el-table-column>
75
+      <el-table-column label="操作" width="160px" class-name="operation">
76
+        <template slot-scope="{row}">
77
+          <el-link v-if="row.status === 1" type="danger" @click="setMatchException(row)">设为异常</el-link>
78
+        </template>
79
+      </el-table-column>
80
+    </el-table>
81
+    
82
+    <pagination v-if="pagenav.total > 0" :total="pagenav.total" :page.sync="pagenav.pageIndex" :limit.sync="pagenav.pageSize" @pagination="getList" />
83
+  </div>
84
+</template>
85
+
86
+<script>
87
+import Pagination from '@/components/Pagination'
88
+import matchAPI from '@/api/lottery/match-api'
89
+
90
+const statusEnum = [
91
+  {
92
+    value: 0,
93
+    label: '--',
94
+  },
95
+  {
96
+    value: 1,
97
+    label: '开售',
98
+  },
99
+  {
100
+    value: 2,
101
+    label: '进行中',
102
+  },
103
+  {
104
+    value: 3,
105
+    label: '已结束',
106
+  },
107
+  {
108
+    value: 4,
109
+    label: '无效或异常',
110
+  },
111
+  {
112
+    value: 5,
113
+    label: '取消',
114
+  }
115
+]
116
+
117
+const defaultFilter = {
118
+  lotteryId: 'football',
119
+  matchWeek: undefined,
120
+  homeTeamName: undefined,
121
+  awayTeamName: undefined,
122
+  status: '',
123
+  pageSorts: [
124
+    {
125
+      column: 'match_date',
126
+      asc: false
127
+    },
128
+    {
129
+      column: 'match_week',
130
+      asc: false
131
+    }
132
+  ]
133
+}
134
+
135
+export default {
136
+  name: 'Match',
137
+  components: {
138
+    SearchForm: () => import('@/components/SeachForm'),
139
+    pagination: Pagination
140
+  },
141
+  filters: {
142
+    getLotteryName(lotteryId) {
143
+      return lotteryId === 'football' ? '足球' : '篮球'
144
+    },
145
+    getStatus(status) {
146
+      if (!status) return '';
147
+      return (statusEnum.filter(x => x.value === status)[0] || {}).label
148
+    }
149
+  },
150
+  data() {
151
+    return {
152
+      statusEnum,
153
+      formData: defaultFilter,
154
+      loading: {
155
+        list: false
156
+      },
157
+      list: [],
158
+      pagenav: {
159
+        pageIndex: 1,
160
+        pageSize: 10,
161
+        total: 0
162
+      }
163
+    }
164
+  },
165
+  created() {
166
+    this.getList()
167
+  },
168
+  methods: {
169
+    handleSearch(dt) {
170
+      this.getList()
171
+    },
172
+    handleReset(dt) {
173
+      this.formData = defaultFilter
174
+      this.getList()
175
+    },
176
+    getList() {
177
+      this.listLoading = true
178
+      matchAPI.getPageList({
179
+        ...this.formData,
180
+        pageIndex: this.pagenav.pageIndex,
181
+        pageSize: this.pagenav.pageSize
182
+      }).then(response => {
183
+        this.list = response.data.records
184
+        this.pagenav.total = response.data.total
185
+        this.listLoading = false
186
+      }).catch(() => {
187
+        this.listLoading = false
188
+      });
189
+    },
190
+    setMatchException(row) {
191
+      this.$confirm('确认进行当前操作?', '提示', { type: 'warning' }).then(() => {
192
+        matchAPI.update({...row, status: 4})
193
+      })
194
+    }
195
+  }
196
+}
197
+</script>