dingxin 6 yıl önce
ebeveyn
işleme
fb55ea410d

+ 134
- 0
list.vue Dosyayı Görüntüle

@@ -0,0 +1,134 @@
1
+<template>
2
+  <div id="root">
3
+    <el-form :inline="true" :model="formInline" class="demo-form-inline">
4
+      <el-form-item label="预约人姓名">
5
+        <el-input v-model="formInline.personName" placeholder="预约人姓名"></el-input>
6
+      </el-form-item>
7
+      <el-form-item label="预约人电话">
8
+        <el-input v-model="formInline.phone" placeholder="预约人电话"></el-input>
9
+      </el-form-item>   
10
+      <el-form-item label="车牌号">
11
+        <el-input v-model="formInline.platNumber" placeholder="车牌号"></el-input>
12
+      </el-form-item>
13
+      <el-form-item>
14
+        <el-button type="primary" @click="onSubmit">查询</el-button>
15
+      </el-form-item>
16
+    </el-form>
17
+    <el-table
18
+     :data="visitorList.records"
19
+    border>
20
+    <el-table-column
21
+      prop="personName"
22
+      label="预约人姓名"
23
+      width="180">
24
+    </el-table-column>
25
+    <el-table-column
26
+      prop="phone"
27
+      label="预约人电话">
28
+    </el-table-column>
29
+    <el-table-column
30
+      prop="visitDate"
31
+      label="到访时间">
32
+       <template slot-scope="scope">
33
+        <span>{{FormatDate(scope.row.visitDate)}}</span>
34
+      </template>
35
+    </el-table-column>
36
+
37
+    <el-table-column
38
+      prop="personNum"
39
+      label="来访人数">
40
+    </el-table-column>
41
+    <el-table-column
42
+      prop="carNum"
43
+      label="车辆数目">
44
+    </el-table-column>
45
+    <el-table-column
46
+      prop="platNumber"
47
+      label="车牌号">
48
+    </el-table-column>
49
+    <el-table-column
50
+      prop="createDate"
51
+      value-format="yyyy-MM-dd"
52
+      label="创建时间">
53
+      <template slot-scope="scope">
54
+        <span>{{FormatDate(scope.row.createDate)}}</span>
55
+      </template>
56
+    </el-table-column>
57
+    <el-table-column
58
+      prop="remark"
59
+      label="备注">
60
+    </el-table-column>
61
+  </el-table>
62
+    <el-pagination
63
+            style="margin-top:50px;float:right"
64
+            @size-change="handleSizeChange"
65
+            @current-change="handleCurrentChange"
66
+            :current-page="formInline.pageNum"
67
+            :page-sizes="[1,10, 20, 30, 40]"
68
+            :page-size="formInline.pageSize"
69
+            layout="total, sizes, prev, pager, next, jumper"
70
+            :total="visitorList.total || 0">
71
+    </el-pagination>
72
+  </div>
73
+</template>
74
+
75
+<script>
76
+import { createNamespacedHelpers } from 'vuex'
77
+const {mapState: mapVisitorState, mapActions: mapVisitorActions } = createNamespacedHelpers('visitor')
78
+
79
+export default {
80
+  name: 'visitor-index',
81
+  data() {
82
+    return {
83
+      formInline: {
84
+        personName: '',
85
+        phone: '',
86
+        platNumber: '',
87
+        pageNum: 1,
88
+        pageSize: 10
89
+      }
90
+    }
91
+  },
92
+  computed: {
93
+    ...mapVisitorState({
94
+     visitorList: x => x.safety
95
+    })
96
+  },
97
+  created() {
98
+    this.getPage()
99
+  },
100
+  methods: {
101
+    ...mapVisitorActions([
102
+      'getVisitor'
103
+    ]),
104
+    onSubmit() {
105
+      this.getPage()
106
+    },
107
+    getPage() {
108
+      this.getVisitor(this.formInline)
109
+      // window.console.log(this.$store)
110
+      // this.$store.commit('security/foo')
111
+      // this.$store.dispatch('security/getSecurity')
112
+      // this.$store.commit('security/foo')
113
+    },
114
+    handleSizeChange(val) {
115
+      // console.log(`每页 ${val} 条`)
116
+      this.formInline.pageSize = val
117
+      this.getPage()
118
+    },
119
+    handleCurrentChange(val) {
120
+      // console.log(`当前页: ${val}`)
121
+      this.formInline.pageNum = val
122
+      this.getPage()
123
+    },
124
+    FormatDate (date) {
125
+      if (date) {
126
+        return date.split('T')[0] === '0001-01-01' ? '' : date.split('T')[0] + '  ' + date.split('T')[1]
127
+      } else {
128
+        return ''
129
+      }
130
+    },
131
+  }
132
+}
133
+</script>
134
+

+ 19
- 0
src/config/api.js Dosyayı Görüntüle

@@ -250,7 +250,26 @@ const apis = {
250 250
       method: 'get',
251 251
       url: `${commPrefix}/carRecord`
252 252
     }
253
+  },
254
+  security: {
255
+    list: {
256
+      method: 'get',
257
+      url: `${commPrefix}/firstUsherRecord`
258
+    }
259
+  },
260
+  visitor: {
261
+    list: {
262
+      method: 'get',
263
+      url: `${commPrefix}/visitorAppointmentList`
264
+    }
265
+  },
266
+  lobby: {
267
+    list: {
268
+      method: 'get',
269
+      url: `${commPrefix}/mainUsherRecord`
270
+    }
253 271
   }
272
+
254 273
 }
255 274
 
256 275
 export default apis

+ 7
- 1
src/store/index.js Dosyayı Görüntüle

@@ -12,6 +12,9 @@ import sysparam from './modules/sysparam'
12 12
 import sysuser from './modules/sysuser'
13 13
 import stats from './modules/stats'
14 14
 import cart from './modules/cart'
15
+import security from './modules/security'
16
+import visitor from './modules/visitor' 
17
+import lobby from './modules/lobby'
15 18
 
16 19
 Vue.use(Vuex)
17 20
 
@@ -28,7 +31,10 @@ const store = new Vuex.Store({
28 31
     sysparam,
29 32
     sysuser,
30 33
     stats,
31
-    cart
34
+    cart,
35
+    security,
36
+    visitor,
37
+    lobby
32 38
   }
33 39
 })
34 40
 

+ 23
- 0
src/store/modules/lobby.js Dosyayı Görüntüle

@@ -0,0 +1,23 @@
1
+import lodash from 'lodash'
2
+import { interact } from '../../utils'
3
+import apis from '../../config/api'
4
+
5
+export default {
6
+  namespaced: true,
7
+  state: {
8
+    safety : {}
9
+  },
10
+  mutations: {
11
+    updateSafety(state, payload) {
12
+      state.safety  = payload || {}
13
+    }
14
+  },
15
+  actions: {
16
+    getLobby({ commit }, payload) { // 查询所有
17
+      const api = lodash.get(apis, 'lobby.list')
18
+      interact(api, payload).then((data) => {
19
+        commit('updateSafety', data)
20
+      })
21
+    }
22
+  }
23
+}

+ 23
- 0
src/store/modules/security.js Dosyayı Görüntüle

@@ -0,0 +1,23 @@
1
+import lodash from 'lodash'
2
+import { interact } from '../../utils'
3
+import apis from '../../config/api'
4
+
5
+export default {
6
+  namespaced: true,
7
+  state: {
8
+    safety : {}
9
+  },
10
+  mutations: {
11
+    updateSafety(state, payload) {
12
+      state.safety  = payload || {}
13
+    }
14
+  },
15
+  actions: {
16
+    getSecurity({ commit }, payload) { // 查询所有
17
+      const api = lodash.get(apis, 'security.list')
18
+      interact(api, payload).then((data) => {
19
+        commit('updateSafety', data)
20
+      })
21
+    }
22
+  }
23
+}

+ 23
- 0
src/store/modules/visitor.js Dosyayı Görüntüle

@@ -0,0 +1,23 @@
1
+import lodash from 'lodash'
2
+import { interact } from '../../utils'
3
+import apis from '../../config/api'
4
+
5
+export default {
6
+  namespaced: true,
7
+  state: {
8
+    safety : {}
9
+  },
10
+  mutations: {
11
+    updateSafety(state, payload) {
12
+      state.safety  = payload || {}
13
+    }
14
+  },
15
+  actions: {
16
+    getVisitor({ commit }, payload) { // 查询所有
17
+      const api = lodash.get(apis, 'visitor.list')
18
+      interact(api, payload).then((data) => {
19
+        commit('updateSafety', data)
20
+      })
21
+    }
22
+  }
23
+}

+ 27
- 0
src/views/index.js Dosyayı Görüntüle

@@ -117,8 +117,35 @@ const pages = [
117 117
           title: '访客车辆记录',
118 118
         },
119 119
       },
120
+      {
121
+        path: 'visitor',
122
+        name: 'visitor',
123
+        component: () => import('./visitor/list.vue'),
124
+        meta: {
125
+          menuShow: true,
126
+          title: '访客预约信息',
127
+        },
128
+      },
120 129
     ]
121 130
   },
131
+  {
132
+    path: 'security',
133
+    name: 'securitylist',
134
+    component: () => import('./security/list.vue'),
135
+    meta: {
136
+      menuShow: true,
137
+      title: '安保记录',
138
+    },
139
+  },
140
+  {
141
+    path: 'lobby',
142
+    name: 'lobby',
143
+    component: () => import('./lobby/list.vue'),
144
+    meta: {
145
+      menuShow: true,
146
+      title: '大厅迎宾列表',
147
+    },
148
+  },
122 149
   {
123 150
     path: 'person',
124 151
     name: 'personlist',

+ 166
- 0
src/views/lobby/list.vue Dosyayı Görüntüle

@@ -0,0 +1,166 @@
1
+<template>
2
+  <div id="root">
3
+    <el-form :inline="true" :model="formInline" class="demo-form-inline">
4
+      <el-form-item label="来访人电话">
5
+        <el-input v-model="formInline.phone" placeholder="预约人电话"></el-input>
6
+      </el-form-item>   
7
+      <el-form-item label="来访人车牌号">
8
+        <el-input v-model="formInline.platNumber" placeholder="车牌号"></el-input>
9
+      </el-form-item>
10
+      <el-form-item>
11
+        <el-button type="primary" @click="onSubmit">查询</el-button>
12
+      </el-form-item>
13
+    </el-form>
14
+    <el-table
15
+    :data="lobbyList.records"
16
+    border>
17
+    <el-table-column
18
+      prop="recId"
19
+      label="来访人员ID">
20
+    </el-table-column>
21
+    <el-table-column
22
+      prop="personName"
23
+      label="来访人员">
24
+    </el-table-column>
25
+    <el-table-column
26
+      prop="visiteDate"
27
+      label="来访时间">
28
+       <template slot-scope="scope">
29
+        <span>{{FormatDate(scope.row.visitDate)}}</span>
30
+      </template>
31
+    </el-table-column>
32
+
33
+    <el-table-column
34
+      prop="phone"
35
+      label="来访手机">
36
+    </el-table-column>
37
+    <el-table-column
38
+      prop="sex"
39
+      label="性别">
40
+    </el-table-column>
41
+    <el-table-column
42
+      prop="personNum"
43
+      label="来访人数">
44
+    </el-table-column>
45
+    <el-table-column
46
+      prop="createDate"
47
+      value-format="yyyy-MM-dd"
48
+      label="创建时间">
49
+      <template slot-scope="scope">
50
+        <span>{{FormatDate(scope.row.createDate)}}</span>
51
+      </template>
52
+    </el-table-column>
53
+    <el-table-column
54
+      prop="consultantId"
55
+      label="分配置业ID">
56
+    </el-table-column>
57
+    <el-table-column
58
+      prop="realtyConsultant"
59
+      label="分配置业">
60
+    </el-table-column>
61
+    <el-table-column
62
+      prop="appointment"
63
+      label="是否预约">
64
+    </el-table-column>
65
+    <el-table-column
66
+      prop="carModel"
67
+      label="车型">
68
+    </el-table-column>
69
+    <el-table-column
70
+      prop="plateNumber"
71
+      label="车牌">
72
+    </el-table-column>
73
+    <el-table-column
74
+      prop="carModel"
75
+      label="车型">
76
+    </el-table-column>
77
+    <el-table-column
78
+      prop="color"
79
+      label="颜色">
80
+    </el-table-column>
81
+    <el-table-column
82
+      prop="carImage"
83
+      label="车辆图片">
84
+    </el-table-column>
85
+    <el-table-column
86
+      prop="channel"
87
+      label="来访渠道">
88
+    </el-table-column>
89
+    <el-table-column
90
+      prop="purpose"
91
+      label="来访目的">
92
+    </el-table-column>
93
+  </el-table>
94
+    <el-pagination
95
+            style="margin-top:50px;float:right"
96
+            @size-change="handleSizeChange"
97
+            @current-change="handleCurrentChange"
98
+            :current-page="formInline.pageNum"
99
+            :page-sizes="[1,10, 20, 30, 40]"
100
+            :page-size="formInline.pageSize"
101
+            layout="total, sizes, prev, pager, next, jumper"
102
+            :total="lobbyList.total || 0">
103
+    </el-pagination>
104
+  </div>
105
+</template>
106
+
107
+<script>
108
+import { createNamespacedHelpers } from 'vuex'
109
+const {mapState: mapLobbyState, mapActions: mapLobbyActions } = createNamespacedHelpers('lobby')
110
+
111
+export default {
112
+  name: 'visitor-index',
113
+  data() {
114
+    return {
115
+      formInline: {
116
+        personName: '',
117
+        phone: '',
118
+        platNumber: '',
119
+        pageNum: 1,
120
+        pageSize: 10
121
+      }
122
+    }
123
+  },
124
+  computed: {
125
+    ...mapLobbyState({
126
+    lobbyList: x => x.safety
127
+    })
128
+  },
129
+  created() {
130
+    this.getPage()
131
+  },
132
+  methods: {
133
+    ...mapLobbyActions([
134
+      'getLobby'
135
+    ]),
136
+    onSubmit() {
137
+      this.getPage()
138
+    },
139
+    getPage() {
140
+      this.getLobby(this.formInline)
141
+      // window.console.log(this.$store)
142
+      // this.$store.commit('security/foo')
143
+      // this.$store.dispatch('security/getSecurity')
144
+      // this.$store.commit('security/foo')
145
+    },
146
+    handleSizeChange(val) {
147
+      // console.log(`每页 ${val} 条`)
148
+      this.formInline.pageSize = val
149
+      this.getPage()
150
+    },
151
+    handleCurrentChange(val) {
152
+      // console.log(`当前页: ${val}`)
153
+      this.formInline.pageNum = val
154
+      this.getPage()
155
+    },
156
+    FormatDate (date) {
157
+      if (date) {
158
+        return date.split('T')[0] === '0001-01-01' ? '' : date.split('T')[0] + '  ' + date.split('T')[1]
159
+      } else {
160
+        return ''
161
+      }
162
+    },
163
+  }
164
+}
165
+</script>
166
+

+ 151
- 0
src/views/security/list.vue Dosyayı Görüntüle

@@ -0,0 +1,151 @@
1
+<template>
2
+  <div id="root">
3
+    <el-form :inline="true" :model="formInline" class="demo-form-inline">
4
+      <el-form-item label="车牌">
5
+        <el-input v-model="formInline.plateNumber" placeholder="车牌"></el-input>
6
+      </el-form-item>
7
+      <el-form-item label="来访时间">
8
+        <el-date-picker
9
+                v-model="formInline.visiteDate"
10
+                type="date"
11
+                value-format="yyyy-MM-dd"
12
+                placeholder="来访时间">
13
+        </el-date-picker>
14
+      </el-form-item>
15
+      <el-form-item>
16
+        <el-button type="primary" @click="onSubmit">查询</el-button>
17
+      </el-form-item>
18
+    </el-form>
19
+    <el-table
20
+            :data="securityList.records"
21
+            border
22
+            style="width: 100%">
23
+      <!-- <el-table-column
24
+              prop="recId"
25
+              label="序号"
26
+              width="180"/> -->
27
+      <el-table-column
28
+              prop="plateNumber"
29
+              label="车牌"/>
30
+      <el-table-column
31
+              prop="carModel"
32
+              label="车型">
33
+      </el-table-column>
34
+      <el-table-column
35
+              prop="color"
36
+              label="颜色"/>
37
+      <el-table-column
38
+              prop="personNum"
39
+              label="人数"/>
40
+      <el-table-column
41
+              prop="appointment"
42
+              label="是否预约">
43
+              <template slot-scope="scope">
44
+                <span>{{scope.row.appointment =true? '是':'否' }}</span>
45
+              </template>
46
+      </el-table-column>
47
+      <el-table-column
48
+              prop="appointment"
49
+              label="来访时间">
50
+              <template slot-scope="scope">
51
+                <span>{{FormatDate(scope.row.visiteDate)}}</span>
52
+              </template>
53
+      </el-table-column>
54
+      <el-table-column
55
+              prop="channel"
56
+              label="车型">
57
+      </el-table-column>
58
+      <el-table-column
59
+              prop="purpose"
60
+              label="来访目的">
61
+      </el-table-column>
62
+      <el-table-column
63
+              prop="carImage"
64
+              label="车辆图片">
65
+              <template slot-scope="scope">
66
+              <el-image
67
+                  style="width: 100px; height: 100px"
68
+                  :src="scope.row.carImage"
69
+                  fit="fill"></el-image>
70
+              </template>
71
+      </el-table-column>
72
+       <el-table-column
73
+              prop="personName"
74
+              label="来访人">
75
+      </el-table-column>
76
+    </el-table>
77
+    <el-pagination
78
+            style="margin-top:50px;float:right"
79
+            @size-change="handleSizeChange"
80
+            @current-change="handleCurrentChange"
81
+            :current-page="formInline.pageNum"
82
+            :page-sizes="[1,10, 20, 30, 40]"
83
+            :page-size="formInline.pageSize"
84
+            layout="total, sizes, prev, pager, next, jumper"
85
+            :total="securityList.total || 0">
86
+    </el-pagination>
87
+  </div>
88
+</template>
89
+
90
+<script>
91
+import { createNamespacedHelpers } from 'vuex'
92
+const {mapState: mapSecurityState, mapActions: mapSecurityActions } = createNamespacedHelpers('security')
93
+
94
+export default {
95
+  name: 'security-index',
96
+  data() {
97
+    return {
98
+      formInline: {
99
+        plateNumber: '',
100
+        recId: '',
101
+        visiteDate: '',
102
+        customerName: '',
103
+        phone: '',
104
+        pageNum: 1,
105
+        pageSize: 10
106
+      }
107
+    }
108
+  },
109
+  computed: {
110
+    ...mapSecurityState({
111
+     securityList: x => x.safety
112
+    })
113
+  },
114
+  created() {
115
+    this.getPage()
116
+  },
117
+  methods: {
118
+    ...mapSecurityActions([
119
+      'getSecurity'
120
+    ]),
121
+    onSubmit() {
122
+      this.getPage()
123
+    },
124
+    getPage() {
125
+      this.getSecurity(this.formInline)
126
+      // window.console.log(this.$store)
127
+      // this.$store.commit('security/foo')
128
+      // this.$store.dispatch('security/getSecurity')
129
+      // this.$store.commit('security/foo')
130
+    },
131
+    handleSizeChange(val) {
132
+      // console.log(`每页 ${val} 条`)
133
+      this.formInline.pageSize = val
134
+      this.getPage()
135
+    },
136
+    handleCurrentChange(val) {
137
+      // console.log(`当前页: ${val}`)
138
+      this.formInline.pageNum = val
139
+      this.getPage()
140
+    },
141
+    FormatDate (date) {
142
+      if (date) {
143
+        return date.split('T')[0] === '0001-01-01' ? '' : date.split('T')[0] + '  ' + date.split('T')[1]
144
+      } else {
145
+        return ''
146
+      }
147
+    },
148
+  }
149
+}
150
+</script>
151
+

+ 134
- 0
src/views/visitor/list.vue Dosyayı Görüntüle

@@ -0,0 +1,134 @@
1
+<template>
2
+  <div id="root">
3
+    <el-form :inline="true" :model="formInline" class="demo-form-inline">
4
+      <el-form-item label="预约人姓名">
5
+        <el-input v-model="formInline.personName" placeholder="预约人姓名"></el-input>
6
+      </el-form-item>
7
+      <el-form-item label="预约人电话">
8
+        <el-input v-model="formInline.phone" placeholder="预约人电话"></el-input>
9
+      </el-form-item>   
10
+      <el-form-item label="车牌号">
11
+        <el-input v-model="formInline.platNumber" placeholder="车牌号"></el-input>
12
+      </el-form-item>
13
+      <el-form-item>
14
+        <el-button type="primary" @click="onSubmit">查询</el-button>
15
+      </el-form-item>
16
+    </el-form>
17
+    <el-table
18
+     :data="visitorList.records"
19
+    border>
20
+    <el-table-column
21
+      prop="personName"
22
+      label="预约人姓名"
23
+      width="180">
24
+    </el-table-column>
25
+    <el-table-column
26
+      prop="phone"
27
+      label="预约人电话">
28
+    </el-table-column>
29
+    <el-table-column
30
+      prop="visitDate"
31
+      label="到访时间">
32
+       <template slot-scope="scope">
33
+        <span>{{FormatDate(scope.row.visitDate)}}</span>
34
+      </template>
35
+    </el-table-column>
36
+
37
+    <el-table-column
38
+      prop="personNum"
39
+      label="来访人数">
40
+    </el-table-column>
41
+    <el-table-column
42
+      prop="carNum"
43
+      label="车辆数目">
44
+    </el-table-column>
45
+    <el-table-column
46
+      prop="platNumber"
47
+      label="车牌号">
48
+    </el-table-column>
49
+    <el-table-column
50
+      prop="createDate"
51
+      value-format="yyyy-MM-dd"
52
+      label="创建时间">
53
+      <template slot-scope="scope">
54
+        <span>{{FormatDate(scope.row.createDate)}}</span>
55
+      </template>
56
+    </el-table-column>
57
+    <el-table-column
58
+      prop="remark"
59
+      label="备注">
60
+    </el-table-column>
61
+  </el-table>
62
+    <el-pagination
63
+            style="margin-top:50px;float:right"
64
+            @size-change="handleSizeChange"
65
+            @current-change="handleCurrentChange"
66
+            :current-page="formInline.pageNum"
67
+            :page-sizes="[1,10, 20, 30, 40]"
68
+            :page-size="formInline.pageSize"
69
+            layout="total, sizes, prev, pager, next, jumper"
70
+            :total="visitorList.total || 0">
71
+    </el-pagination>
72
+  </div>
73
+</template>
74
+
75
+<script>
76
+import { createNamespacedHelpers } from 'vuex'
77
+const {mapState: mapVisitorState, mapActions: mapVisitorActions } = createNamespacedHelpers('visitor')
78
+
79
+export default {
80
+  name: 'visitor-index',
81
+  data() {
82
+    return {
83
+      formInline: {
84
+        personName: '',
85
+        phone: '',
86
+        platNumber: '',
87
+        pageNum: 1,
88
+        pageSize: 10
89
+      }
90
+    }
91
+  },
92
+  computed: {
93
+    ...mapVisitorState({
94
+     visitorList: x => x.safety
95
+    })
96
+  },
97
+  created() {
98
+    this.getPage()
99
+  },
100
+  methods: {
101
+    ...mapVisitorActions([
102
+      'getVisitor'
103
+    ]),
104
+    onSubmit() {
105
+      this.getPage()
106
+    },
107
+    getPage() {
108
+      this.getVisitor(this.formInline)
109
+      // window.console.log(this.$store)
110
+      // this.$store.commit('security/foo')
111
+      // this.$store.dispatch('security/getSecurity')
112
+      // this.$store.commit('security/foo')
113
+    },
114
+    handleSizeChange(val) {
115
+      // console.log(`每页 ${val} 条`)
116
+      this.formInline.pageSize = val
117
+      this.getPage()
118
+    },
119
+    handleCurrentChange(val) {
120
+      // console.log(`当前页: ${val}`)
121
+      this.formInline.pageNum = val
122
+      this.getPage()
123
+    },
124
+    FormatDate (date) {
125
+      if (date) {
126
+        return date.split('T')[0] === '0001-01-01' ? '' : date.split('T')[0] + '  ' + date.split('T')[1]
127
+      } else {
128
+        return ''
129
+      }
130
+    },
131
+  }
132
+}
133
+</script>
134
+