李志伟 пре 3 година
родитељ
комит
b90e71c9d0
4 измењених фајлова са 68 додато и 313 уклоњено
  1. 2
    2
      src/api/city.js
  2. 0
    7
      src/router/index.js
  3. 0
    89
      src/views/register/detail.vue
  4. 66
    215
      src/views/register/list.vue

+ 2
- 2
src/api/city.js Прегледај датотеку

@@ -5,6 +5,6 @@ import request from '@/utils/request'
5 5
  * @param {*} params
6 6
  * @returns
7 7
  */
8
-export const getCityList = (lv) => request({
9
-  url: `/admin/city?level=${lv}`
8
+export const getCityList = (lv, parent) => request({
9
+  url: `/admin/city?level=${lv}&parent=${parent}`
10 10
 })

+ 0
- 7
src/router/index.js Прегледај датотеку

@@ -53,13 +53,6 @@ export const constantRoutes = [
53 53
         name: '报名列表',
54 54
         component: () => import('@/views/register/list'),
55 55
         meta: { title: '报名列表', icon: 'course' }
56
-      },
57
-      {
58
-        hidden: true,
59
-        path: 'register/detail',
60
-        name: 'registerDetail',
61
-        component: () => import('@/views/register/detail'),
62
-        meta: { title: '报名详情', icon: 'question' }
63 56
       }
64 57
     ]
65 58
   },

+ 0
- 89
src/views/register/detail.vue Прегледај датотеку

@@ -1,89 +0,0 @@
1
-<template>
2
-  <div>
3
-    <el-card class="box-card" style="text-align:center" shadow="never">
4
-      <h2>{{ termId ? '修改' : '新建' }}学期</h2>
5
-      <el-form
6
-        ref="termForm"
7
-        :model="termForm"
8
-        :rules="rules"
9
-        label-width="10vw"
10
-        style="width:50%;margin:auto"
11
-        class="demo-termForm"
12
-      >
13
-        <el-form-item label="学期名称" prop="name">
14
-          <el-input v-model="termForm.name" />
15
-        </el-form-item>
16
-        <el-form-item label-width="0">
17
-          <el-button type="primary" @click="submitForm('termForm')">{{
18
-            !termId ? "新建学期" : "修改学期"
19
-          }}</el-button>
20
-          <el-button @click="$router.go(-1)">返回</el-button>
21
-        </el-form-item>
22
-      </el-form>
23
-    </el-card>
24
-  </div>
25
-</template>
26
-
27
-<script>
28
-import { saveSchoolTerm, getSchoolTermDetail, UpdateSchoolTerm } from '@/api/schoolTerm'
29
-
30
-export default {
31
-  data() {
32
-    return {
33
-      termId: undefined,
34
-      termForm: {
35
-        name: undefined
36
-      },
37
-      rules: {
38
-        name: [
39
-          { required: true, message: '请输入学期名称', trigger: 'blur' }
40
-        ]
41
-      }
42
-    }
43
-  },
44
-  mounted() {
45
-    if (this.$route?.query.termId) {
46
-      this.termId = this.$route.query.termId
47
-      getSchoolTermDetail(this.termId)
48
-        .then((res) => {
49
-          this.termForm = res.data
50
-        })
51
-    }
52
-  },
53
-  methods: {
54
-    submitForm(formName) {
55
-      this.$refs[formName].validate((valid) => {
56
-        if (valid) {
57
-          if (this.termId) {
58
-            UpdateSchoolTerm(this.termForm, this.termId)
59
-              .then((res) => {
60
-                this.$message.success('修改成功')
61
-                this.$router.go(-1)
62
-              })
63
-              .catch((e) => {
64
-                console.log(e)
65
-              })
66
-          } else {
67
-            saveSchoolTerm(this.termForm)
68
-              .then((e) => {
69
-                this.$message.success('保存成功')
70
-                this.$router.go(-1)
71
-              })
72
-          }
73
-        } else {
74
-          return false
75
-        }
76
-      })
77
-    }
78
-  }
79
-}
80
-</script>
81
-
82
-<style scoped >
83
-.demo-termForm {
84
-  margin-top: 1em;
85
-}
86
-</style>
87
-
88
-<style lang="scss" scoped>
89
-</style>

+ 66
- 215
src/views/register/list.vue Прегледај датотеку

@@ -5,14 +5,13 @@
5 5
       <el-input v-model="name" style="width: 200px; margin-right: 20px" />
6 6
       手机号:<el-input v-model="phone" style="width: 200px; margin-right: 20px" />
7 7
       报名地区:
8
-
9 8
       <el-cascader
10 9
         v-model="area2"
11 10
         :options="options"
11
+        :props="{ checkStrictly: true }"
12
+        @expand-change="changeExpand"
12 13
         @change="handleChange"
13 14
       />
14
-
15
-      <el-input v-model="area" style="width: 200px; margin-right: 20px" />
16 15
       签到时间:<el-date-picker
17 16
         v-model="daterange"
18 17
         type="daterange"
@@ -30,20 +29,12 @@
30 29
     </el-card>
31 30
     <el-table stripe :data="tableData" border style="width: 100%">
32 31
       <el-table-column prop="name" label="姓名" />
33
-      <el-table-column prop="phone" label="手机号" />
32
+      <el-table-column prop="phone" width="110" label="手机号" />
34 33
       <el-table-column prop="areaName" label="所在地" />
34
+      <el-table-column prop="interestTo" label="意向产品" />
35 35
       <el-table-column prop="createDate" label="报名时间">
36 36
         <template slot-scope="scope">{{ formate(scope.row.createDate) }}</template>
37 37
       </el-table-column>
38
-      <el-table-column align="center" label="操作" min-width="100" width="280">
39
-        <template slot-scope="scope">
40
-          <el-link :underline="false" style="margin-right:1em" type="primary">
41
-            <router-link
42
-              :to="{path:'register/detail',query: { regId: scope.row.regId }}"
43
-            >详情</router-link>
44
-          </el-link>
45
-        </template>
46
-      </el-table-column>
47 38
     </el-table>
48 39
     <el-pagination
49 40
       v-show="Total!==0"
@@ -67,204 +58,7 @@ export default {
67 58
   data() {
68 59
     return {
69 60
       area2: undefined,
70
-
71
-      options: [
72
-        {
73
-          value: 'zhinan',
74
-          label: '指南',
75
-          children: [{
76
-            value: 'shejiyuanze',
77
-            label: '设计原则',
78
-            children: [{
79
-              value: 'yizhi',
80
-              label: '一致'
81
-            }, {
82
-              value: 'fankui',
83
-              label: '反馈'
84
-            }, {
85
-              value: 'xiaolv',
86
-              label: '效率'
87
-            }, {
88
-              value: 'kekong',
89
-              label: '可控'
90
-            }]
91
-          }, {
92
-            value: 'daohang',
93
-            label: '导航',
94
-            children: [{
95
-              value: 'cexiangdaohang',
96
-              label: '侧向导航'
97
-            }, {
98
-              value: 'dingbudaohang',
99
-              label: '顶部导航'
100
-            }]
101
-          }]
102
-        }, {
103
-          value: 'zujian',
104
-          label: '组件',
105
-          children: [{
106
-            value: 'basic',
107
-            label: 'Basic',
108
-            children: [{
109
-              value: 'layout',
110
-              label: 'Layout 布局'
111
-            }, {
112
-              value: 'color',
113
-              label: 'Color 色彩'
114
-            }, {
115
-              value: 'typography',
116
-              label: 'Typography 字体'
117
-            }, {
118
-              value: 'icon',
119
-              label: 'Icon 图标'
120
-            }, {
121
-              value: 'button',
122
-              label: 'Button 按钮'
123
-            }]
124
-          }, {
125
-            value: 'form',
126
-            label: 'Form',
127
-            children: [{
128
-              value: 'radio',
129
-              label: 'Radio 单选框'
130
-            }, {
131
-              value: 'checkbox',
132
-              label: 'Checkbox 多选框'
133
-            }, {
134
-              value: 'input',
135
-              label: 'Input 输入框'
136
-            }, {
137
-              value: 'input-number',
138
-              label: 'InputNumber 计数器'
139
-            }, {
140
-              value: 'select',
141
-              label: 'Select 选择器'
142
-            }, {
143
-              value: 'cascader',
144
-              label: 'Cascader 级联选择器'
145
-            }, {
146
-              value: 'switch',
147
-              label: 'Switch 开关'
148
-            }, {
149
-              value: 'slider',
150
-              label: 'Slider 滑块'
151
-            }, {
152
-              value: 'time-picker',
153
-              label: 'TimePicker 时间选择器'
154
-            }, {
155
-              value: 'date-picker',
156
-              label: 'DatePicker 日期选择器'
157
-            }, {
158
-              value: 'datetime-picker',
159
-              label: 'DateTimePicker 日期时间选择器'
160
-            }, {
161
-              value: 'upload',
162
-              label: 'Upload 上传'
163
-            }, {
164
-              value: 'rate',
165
-              label: 'Rate 评分'
166
-            }, {
167
-              value: 'form',
168
-              label: 'Form 表单'
169
-            }]
170
-          }, {
171
-            value: 'data',
172
-            label: 'Data',
173
-            children: [{
174
-              value: 'table',
175
-              label: 'Table 表格'
176
-            }, {
177
-              value: 'tag',
178
-              label: 'Tag 标签'
179
-            }, {
180
-              value: 'progress',
181
-              label: 'Progress 进度条'
182
-            }, {
183
-              value: 'tree',
184
-              label: 'Tree 树形控件'
185
-            }, {
186
-              value: 'pagination',
187
-              label: 'Pagination 分页'
188
-            }, {
189
-              value: 'badge',
190
-              label: 'Badge 标记'
191
-            }]
192
-          }, {
193
-            value: 'notice',
194
-            label: 'Notice',
195
-            children: [{
196
-              value: 'alert',
197
-              label: 'Alert 警告'
198
-            }, {
199
-              value: 'loading',
200
-              label: 'Loading 加载'
201
-            }, {
202
-              value: 'message',
203
-              label: 'Message 消息提示'
204
-            }, {
205
-              value: 'message-box',
206
-              label: 'MessageBox 弹框'
207
-            }, {
208
-              value: 'notification',
209
-              label: 'Notification 通知'
210
-            }]
211
-          }, {
212
-            value: 'navigation',
213
-            label: 'Navigation',
214
-            children: [{
215
-              value: 'menu',
216
-              label: 'NavMenu 导航菜单'
217
-            }, {
218
-              value: 'tabs',
219
-              label: 'Tabs 标签页'
220
-            }, {
221
-              value: 'breadcrumb',
222
-              label: 'Breadcrumb 面包屑'
223
-            }, {
224
-              value: 'dropdown',
225
-              label: 'Dropdown 下拉菜单'
226
-            }, {
227
-              value: 'steps',
228
-              label: 'Steps 步骤条'
229
-            }]
230
-          }, {
231
-            value: 'others',
232
-            label: 'Others',
233
-            children: [{
234
-              value: 'dialog',
235
-              label: 'Dialog 对话框'
236
-            }, {
237
-              value: 'tooltip',
238
-              label: 'Tooltip 文字提示'
239
-            }, {
240
-              value: 'popover',
241
-              label: 'Popover 弹出框'
242
-            }, {
243
-              value: 'card',
244
-              label: 'Card 卡片'
245
-            }, {
246
-              value: 'carousel',
247
-              label: 'Carousel 走马灯'
248
-            }, {
249
-              value: 'collapse',
250
-              label: 'Collapse 折叠面板'
251
-            }]
252
-          }]
253
-        }, {
254
-          value: 'ziyuan',
255
-          label: '资源',
256
-          children: [{
257
-            value: 'axure',
258
-            label: 'Axure Components'
259
-          }, {
260
-            value: 'sketch',
261
-            label: 'Sketch Templates'
262
-          }, {
263
-            value: 'jiaohu',
264
-            label: '组件交互文档'
265
-          }]
266
-        }
267
-      ],
61
+      options: [],
268 62
 
269 63
       name: undefined,
270 64
       phone: undefined,
@@ -280,14 +74,64 @@ export default {
280 74
   },
281 75
   mounted() {
282 76
     this.onSearch()
283
-    getCityList(3).then((res) => {
284
-
77
+    getCityList(1).then((res) => {
78
+      var list = res.data
79
+      list.map(item => {
80
+        this.options.push({ value: item.id, label: item.shortname, children: [] })
81
+      })
285 82
     })
286 83
   },
287 84
   methods: {
288
-
85
+    // 选中下拉时执行
86
+    changeExpand(val) {
87
+      if (val.length === 1) {
88
+        getCityList(2, val[0]).then((res) => {
89
+          var list = res.data
90
+          // 当前市在数组中的位置
91
+          var cityIndex = 0
92
+          this.options.map((item, index) => {
93
+            if (item.value === val[0]) {
94
+              cityIndex = index
95
+            }
96
+          })
97
+          this.options[cityIndex].children = []
98
+          list.map(item => {
99
+            this.options[cityIndex].children.push({ value: item.id, label: item.shortname, children: [] })
100
+          })
101
+        })
102
+      } else {
103
+        getCityList(3, val[1]).then((res) => {
104
+          var list = res.data
105
+          // 当前市在数组中的位置
106
+          var cityIndex = 0
107
+          this.options.map((item, index) => {
108
+            if (item.value === val[0]) {
109
+              cityIndex = index
110
+            }
111
+          })
112
+          // 当前区在数组中的位置
113
+          var areaIndex = 0
114
+          this.options[cityIndex].children.map((item, index) => {
115
+            if (item.value === val[1]) {
116
+              areaIndex = index
117
+            }
118
+          })
119
+          this.options[cityIndex].children[areaIndex].children = []
120
+          list.map(item => {
121
+            this.options[cityIndex].children[areaIndex].children.push({ value: item.id, label: item.shortname })
122
+          })
123
+        })
124
+      }
125
+    },
289 126
     handleChange(value) {
290
-      console.log(value)
127
+      if (value) {
128
+        switch (value.length) {
129
+          case 1: this.area = value[0]; break
130
+          case 2: this.area = value[1]; break
131
+          case 3: this.area = value[2]; break
132
+          default: break
133
+        }
134
+      }
291 135
     },
292 136
 
293 137
     formate(val) {
@@ -313,6 +157,8 @@ export default {
313 157
         name: this.name,
314 158
         phone: this.phone,
315 159
         area: this.area,
160
+        startDate: this.startDate,
161
+        endDate: this.endDate,
316 162
         pageNum: this.currentPage,
317 163
         pageSize: this.pageSize
318 164
       }).then((res) => {
@@ -324,6 +170,8 @@ export default {
324 170
         name: this.name,
325 171
         phone: this.phone,
326 172
         area: this.area,
173
+        startDate: this.startDate,
174
+        endDate: this.endDate,
327 175
         pageNum: this.currentPage,
328 176
         pageSize: this.pageSize
329 177
       }).then((res) => {
@@ -335,7 +183,10 @@ export default {
335 183
       this.name = undefined
336 184
       this.phone = undefined
337 185
       this.area = undefined
186
+      this.area2 = undefined
338 187
       this.daterange = undefined
188
+      this.startDate = undefined
189
+      this.endDate = undefined
339 190
       this.onSearch()
340 191
     }
341 192
   }