Ver código fonte

完成 签到管理

keyman1995 6 anos atrás
pai
commit
09a2066a01

+ 0
- 6
.idea/vcs.xml Ver arquivo

@@ -1,6 +0,0 @@
1
-<?xml version="1.0" encoding="UTF-8"?>
2
-<project version="4">
3
-  <component name="VcsDirectoryMappings">
4
-    <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
-  </component>
6
-</project>

+ 3
- 2
config/index.js Ver arquivo

@@ -12,8 +12,9 @@ module.exports = {
12 12
     proxyTable: {
13 13
       '/api': {
14 14
         // target: 'https://dp.huiju360.com.cn/hj_operations',
15
-        target: 'http://192.168.0.62:8080', //wf
15
+        // target: 'http://192.168.0.62:8080', //wf
16 16
         // target: 'http://192.168.0.11:8088', //zys
17
+        target: 'http://localhost:8080',
17 18
         changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
18 19
         // pathRewrite: {
19 20
         //   '^/api': 'api'
@@ -22,7 +23,7 @@ module.exports = {
22 23
     },
23 24
     // Various Dev Server settings
24 25
     host: '0.0.0.0', // can be overwritten by process.env.HOST
25
-    port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
26
+    port: 8081, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
26 27
     autoOpenBrowser: false,
27 28
     errorOverlay: true,
28 29
     notifyOnErrors: true,

+ 214
- 0
src/pages/system/caseManager/signinManager/index.vue Ver arquivo

@@ -0,0 +1,214 @@
1
+<template>
2
+  <div class="subPage">
3
+    <div class="title">
4
+      签到列表
5
+    </div>
6
+    <div class="head-div">
7
+      <span class="time-title">时间选择:</span>
8
+       <el-select v-model="valueTime" placeholder="请选择">
9
+            <el-option
10
+              v-for="item in optionsTime"
11
+              :key="item.valueTime"
12
+              :label="item.label"
13
+              :value="item.valueTime">
14
+            </el-option>
15
+        </el-select>
16
+        <!-- 案场选择 -->
17
+      <span class="case-title">案场:</span>
18
+       <el-select v-model="valueCase" placeholder="请选择" @change="handelSignin">
19
+            <el-option
20
+              v-for="item in optionsCase"
21
+              :key="item.valueCase"
22
+              :label="item.label"
23
+              :value="item.valueCase">
24
+            </el-option>
25
+        </el-select>
26
+    </div>
27
+    <div class="button-div">
28
+      <el-button type="success" icon="el-icon-search" style="float: right;">导出excel</el-button>
29
+      <el-button type="warning" icon="el-icon-search" style="float: right;" @click="reset">重置</el-button>
30
+      <el-button type="primary" icon="el-icon-search" style="float: right; margin-right: -10px;" @click="getList">搜索</el-button>
31
+    </div>
32
+    <!-- 表格 -->
33
+    <div class="content">
34
+        <el-table
35
+          :data="tableData"
36
+          border
37
+          style="width: 100%">
38
+          <el-table-column
39
+            prop="CaseName"
40
+            label="案场"
41
+            width="180">
42
+          </el-table-column>
43
+          <el-table-column
44
+            prop="CreateDate"
45
+            label="签到时间"
46
+            width="250">
47
+            <template slot-scope="scope">
48
+              <span>{{FormatDate(scope.row.CreateDate)}}</span>
49
+            </template>
50
+          </el-table-column>
51
+          <el-table-column
52
+            prop="CustomerName"
53
+            label="微信昵称">
54
+          </el-table-column>
55
+          <el-table-column
56
+            prop="Name"
57
+            label="客户姓名">
58
+          </el-table-column>
59
+          <el-table-column
60
+            prop="address"
61
+            label="客户类型">
62
+            <template slot-scope="scope">
63
+              <span>{{scope.row.UserId === '' ? '前台用户' : '后台用户'}}</span>
64
+            </template>
65
+          </el-table-column>
66
+          <el-table-column
67
+            prop="Phone"
68
+            label="手机号">
69
+          </el-table-column>
70
+        </el-table>
71
+    </div>
72
+    <!-- 分页 -->
73
+    <div class="foot">
74
+       <el-pagination
75
+          @size-change="handleSizeChange"
76
+          @current-change="handleCurrentChange"
77
+          :current-page.sync="postData.page"
78
+          :page-size="100"
79
+          layout="prev, pager, next, jumper"
80
+          :total="total">
81
+        </el-pagination>
82
+    </div>
83
+  </div>
84
+</template>
85
+
86
+<script>
87
+import { mapState } from 'vuex'
88
+
89
+export default {
90
+  name: '',
91
+  data () {
92
+    return {
93
+      msg: '签到管理',
94
+      currentPage: 1,
95
+      postData: { // 表格搜索条件 //caseid: '', // 案场id
96
+        page: 1, // 当前页码
97
+        pageSize: 10, // 请求数据量
98
+      },
99
+      total: '', // 总数
100
+      // 数据体
101
+      // {date: '2016-05-02',name: '王小虎',address: '上海市普陀区金沙江路 1518 弄'}
102
+      tableData: [],
103
+      // 时间数据
104
+      optionsTime: [{
105
+        valueTime: '-1',
106
+        label: '全部'
107
+      }, {
108
+        valueTime: '0',
109
+        label: '今天'
110
+      }, {
111
+        valueTime: '1',
112
+        label: '本周'
113
+      }, {
114
+        valueTime: '2',
115
+        label: '本月'
116
+      }, {
117
+        valueTime: '3',
118
+        label: '今年'
119
+      }],
120
+      valueTime: '0',
121
+      // 案场数据
122
+      // {valueCase: '1',label: '案场1'}
123
+      optionsCase: [], // 调用computed计算属性
124
+      tempoptionsCase: [], // 临时的存储案场数据
125
+      valueCase: ''
126
+    }
127
+  },
128
+  mounted () {
129
+    // 获取案场列表
130
+    this.getCase()
131
+  },
132
+  methods: {
133
+    handleSizeChange (val) {
134
+      console.log(`每页 ${val} 条`)
135
+    },
136
+    handleCurrentChange (val) {
137
+      console.log(`当前页: ${val}`)
138
+      this.$data.postData.page = val
139
+      this.getList()
140
+    },
141
+    getList () { // 获取数据列表
142
+      this.$ajax(this.$api.caseManager.getSignin.url, {
143
+        method: this.$api.caseManager.getSignin.method,
144
+        queryData: { ...this.postData, org: this.$data.valueCase, selectType: this.$data.valueTime }
145
+      }).then(res => {
146
+        this.tableData = res.list
147
+        this.postData.page = res.page
148
+        this.total = res.pagenum
149
+      })
150
+    },
151
+    getCase () { // 获取案场数据列表
152
+      this.$ajax(this.$api.caseManager.getCaseList.url, {
153
+        method: this.$api.caseManager.getCaseList.method,
154
+        queryData: { ...this.postData, caseid: this.CaseId }
155
+      }).then(res => {
156
+        this.tempoptionsCase = res.list
157
+        this.postData.page = res.page
158
+        this.total = res.pagenum
159
+        // 调用一次,计算属性
160
+        this.optionsCase = this.CaseCompted
161
+      })
162
+    },
163
+    handelSignin () { // 查询签到记录
164
+      this.getList()
165
+    },
166
+    reset () { // 重置按钮
167
+      this.$data.valueTime = '0'
168
+      this.$data.total = ''
169
+      this.$data.tableData = []
170
+      this.$data.postData.page = 1
171
+      this.$data.postData.pageSize = 10
172
+      this.$data.valueCase = ''
173
+    },
174
+    FormatDate (date) {
175
+      return this.toolClass.dateFormat(date, 'yyyy-MM-dd hh:mm:ss')
176
+    },
177
+
178
+  },
179
+  computed: {
180
+    ...mapState({
181
+      cases: x => x.app.cases.list,
182
+      defaultCaseId: x => x.app.cases.default
183
+    }),
184
+    CaseId: {
185
+      get () {
186
+        return this.postData.caseid || this.defaultCaseId
187
+      },
188
+      set (val) {
189
+        this.postData.caseid = val
190
+      }
191
+    },
192
+    CaseCompted: {
193
+      get () { // get方法
194
+        let data = []
195
+        console.log('数据大小')
196
+        console.log(this.$data.tempoptionsCase)
197
+        var cases = this.$data.tempoptionsCase
198
+        for (let i = 0; i < cases.length; i++) {
199
+          let obj = []
200
+          obj.valueCase = cases[i].CaseId
201
+          obj.label = cases[i].CaseName
202
+          console.log('编号:' + obj.valueCase + '名称:' + obj.label)
203
+          data.push(obj)
204
+        }
205
+        return data
206
+      }
207
+    }
208
+  }
209
+}
210
+</script>
211
+
212
+<style lang="scss" scoped>
213
+@import "page.scss";
214
+</style>

+ 67
- 0
src/pages/system/caseManager/signinManager/page.scss Ver arquivo

@@ -0,0 +1,67 @@
1
+
2
+// 标题 签到列表 样式
3
+.title {
4
+  color: #409EFF;
5
+  font-size: 18px;
6
+  margin-left: 50px;
7
+  margin-right: 50px;
8
+  margin-top: 30px;
9
+  margin-bottom: 30px;
10
+}
11
+
12
+.head-div {
13
+  margin-left: 50px;
14
+  margin-right: 50px;
15
+}
16
+
17
+.button-div {
18
+  margin-left: 50px;
19
+  margin-right: 50px;
20
+  float: right;
21
+  padding: 0px;
22
+  width: 100%;
23
+}
24
+
25
+// 标题 时间选择 样式
26
+.time-title {
27
+  color: darkgrey;
28
+}
29
+
30
+// 标题 案场 样式
31
+.case-title {
32
+  margin-left: 20px;  
33
+}
34
+
35
+.content {
36
+  margin-left: 50px;
37
+  margin-right: 50px;
38
+  margin-top: 30px;
39
+}
40
+
41
+.foot{
42
+  margin-left: 50px;
43
+  margin-right: 50px;
44
+}
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+

+ 6
- 0
src/pages/system/page.js Ver arquivo

@@ -29,6 +29,7 @@ import editCaseTable from './caseManager/caseTableManager/edit' // 编辑案场
29 29
 import tagManager from './caseManager/tagManager/index' // 标签管理
30 30
 import addTag from './caseManager/tagManager/add' // 添加标签
31 31
 import editTag from './caseManager/tagManager/edit' // 编辑标签
32
+import signinManager from './caseManager/signinManager/index' // 签到管理
32 33
 
33 34
 import goodsManager from './goodsManager/index' // 商品管理
34 35
 import goodsTypeManager from './goodsManager/goodsTypeManager/index' // 商品类型管理
@@ -226,6 +227,11 @@ export default {
226 227
             component: editTag,
227 228
             children: []
228 229
           }]
230
+        }, { // 签到管理
231
+          path: 'signinManager',
232
+          name: 'signinManager',
233
+          component: signinManager,
234
+          children: []
229 235
         }],
230 236
       }, { // 商品管理
231 237
         path: 'goodsManager',

+ 4
- 0
src/util/api.js Ver arquivo

@@ -204,6 +204,10 @@ const $api = {
204 204
       method: 'post',
205 205
       url: `${baseUrl}${common}/case/record`
206 206
     },
207
+    getSignin: { // 获取签到列表
208
+      method: 'get',
209
+      url: `${baseUrl}${common}/case/signin`
210
+    }
207 211
   },
208 212
   goodsManager: {
209 213
     getGoodsSpecList: { // 商品规格列表