sale-client 4.2.175 → 4.2.176
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.arts/settings.json +3 -0
- package/build/dev-server.js +1 -1
- package/package.json +1 -1
- package/src/components/manualsemmary/ManualSummaryManage.vue +310 -0
- package/src/filiale/dexin/BlackList/BlackListList.vue +14 -5
- package/src/filiale/tongchuan/ManualSummaryManage.vue +219 -0
- package/src/main.js +1 -1
- package/.gradle/5.2.1/fileChanges/last-build.bin +0 -0
- package/.gradle/5.2.1/fileHashes/fileHashes.lock +0 -0
- package/.gradle/5.2.1/gc.properties +0 -0
- package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/.gradle/buildOutputCleanup/cache.properties +0 -2
- package/.gradle/vcs-1/gc.properties +0 -0
package/build/dev-server.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var path = require('path')
|
|
2
2
|
var checkVersion = require('./versionCheck.js')
|
|
3
3
|
checkVersion()
|
|
4
|
-
const [ serverRul, localUrl ] = ['http://
|
|
4
|
+
const [ serverRul, localUrl ] = ['http://222.83.114.229:31785/', 'http://222.83.114.229:31785/']
|
|
5
5
|
var merge = require('webpack-merge')
|
|
6
6
|
var baseConfig = require('./webpack.dev.conf')
|
|
7
7
|
var devConfig = {
|
package/package.json
CHANGED
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="flex-row">
|
|
3
|
+
<div class="basic-main">
|
|
4
|
+
<criteria-paged :model="model" v-ref:paged @sort="sort">
|
|
5
|
+
<criteria partial='criteria' v-ref:criteria @condition-changed="$parent.selfSearch">
|
|
6
|
+
<div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
|
|
7
|
+
<div class="row">
|
|
8
|
+
<div class="col-sm-3 form-group">
|
|
9
|
+
<label class="font_normal_body">用户姓名:</label>
|
|
10
|
+
<input type="text" class="input_search" v-model="model.f_user_name"
|
|
11
|
+
condition="f_user_name like '%{}%'" placeholder='请输入用户姓名'>
|
|
12
|
+
</div>
|
|
13
|
+
<div class="col-sm-3 form-group">
|
|
14
|
+
<label class="font_normal_body">用户标识:</label>
|
|
15
|
+
<input type="text" class="input_search" v-model="model.f_user_id"
|
|
16
|
+
condition="f_user_id like '%{}%'" placeholder='请输入用户标识'>
|
|
17
|
+
</div>
|
|
18
|
+
<div class="col-sm-3 form-group">
|
|
19
|
+
<label class="font_normal_body">用户地址:</label>
|
|
20
|
+
<input type="text" class="input_search" v-model="model.f_user_address"
|
|
21
|
+
condition="f_user_address like '%{}%'" placeholder='请输入用户地址'>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="col-sm-3 form-group">
|
|
24
|
+
<label class="font_normal_body">回复人:</label>
|
|
25
|
+
<input type="text" class="input_search" v-model="model.f_attendant"
|
|
26
|
+
condition="f_attendant like '%{}%'" placeholder='请输入回复人'>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
<div class="row">
|
|
30
|
+
<div class="col-sm-3 form-group">
|
|
31
|
+
<label class="font_normal_body">转人工时间:</label>
|
|
32
|
+
<div style="display: flex; align-items: center;">
|
|
33
|
+
<datepicker placeholder="开始日期"
|
|
34
|
+
style="width: 100px; margin-right: 5px;"
|
|
35
|
+
v-model="model.startDate"
|
|
36
|
+
:value.sync="model.startDate"
|
|
37
|
+
:format="'yyyy-MM-dd'"></datepicker>
|
|
38
|
+
<span style="margin: 0 5px;">~</span>
|
|
39
|
+
<datepicker placeholder="结束日期"
|
|
40
|
+
style="width: 100px;"
|
|
41
|
+
v-model="model.endDate"
|
|
42
|
+
:value.sync="model.endDate"
|
|
43
|
+
:format="'yyyy-MM-dd'"></datepicker>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
<div class="col-sm-3 form-group">
|
|
47
|
+
<label class="font_normal_body">人工回复时间:</label>
|
|
48
|
+
<div style="display: flex; align-items: center;">
|
|
49
|
+
<datepicker placeholder="开始日期"
|
|
50
|
+
style="width: 100px; margin-right: 5px;"
|
|
51
|
+
v-model="model.startMsgDate"
|
|
52
|
+
:value.sync="model.startMsgDate"
|
|
53
|
+
:format="'yyyy-MM-dd'"></datepicker>
|
|
54
|
+
<span style="margin: 0 5px;">~</span>
|
|
55
|
+
<datepicker placeholder="结束日期"
|
|
56
|
+
style="width: 100px;"
|
|
57
|
+
v-model="model.endMsgDate"
|
|
58
|
+
:value.sync="model.endMsgDate"
|
|
59
|
+
:format="'yyyy-MM-dd'"></datepicker>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
<div class="col-sm-6 form-group" style="text-align: right;">
|
|
63
|
+
<button class="button_search button_spacing" @click="search()">查询</button>
|
|
64
|
+
<button class="button_clear button_spacing" @click="clear()">重置</button>
|
|
65
|
+
<export-excel
|
|
66
|
+
:data="getCondition"
|
|
67
|
+
:field="getfield"
|
|
68
|
+
sqlurl="rs/logic/userExport"
|
|
69
|
+
sql-name="userQuery"
|
|
70
|
+
template-name='用户导出'
|
|
71
|
+
:choose-col="true">
|
|
72
|
+
</export-excel>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
</criteria>
|
|
77
|
+
|
|
78
|
+
<data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
|
|
79
|
+
<template partial='head'>
|
|
80
|
+
<tr>
|
|
81
|
+
<th><input type='checkbox' v-model="allSelect" @change="selectAll"></th>
|
|
82
|
+
<th>序号</th>
|
|
83
|
+
<th>
|
|
84
|
+
<nobr>
|
|
85
|
+
<data-order field="f_user_name" name="用户姓名"
|
|
86
|
+
:order.sync="orderFields.f_user_name"></data-order>
|
|
87
|
+
</nobr>
|
|
88
|
+
</th>
|
|
89
|
+
<th>
|
|
90
|
+
<nobr>
|
|
91
|
+
<data-order field="f_user_id" name="用户标识"
|
|
92
|
+
:order.sync="orderFields.f_user_id"></data-order>
|
|
93
|
+
</nobr>
|
|
94
|
+
</th>
|
|
95
|
+
<th>
|
|
96
|
+
<nobr>
|
|
97
|
+
<data-order field="f_user_address" name="用户地址"
|
|
98
|
+
:order.sync="orderFields.f_user_address"></data-order>
|
|
99
|
+
</nobr>
|
|
100
|
+
</th>
|
|
101
|
+
<th>
|
|
102
|
+
<nobr>
|
|
103
|
+
<data-order field="f_ivr_time" name="转人工时间"
|
|
104
|
+
:order.sync="orderFields.f_ivr_time"></data-order>
|
|
105
|
+
</nobr>
|
|
106
|
+
</th>
|
|
107
|
+
<th>
|
|
108
|
+
<nobr>
|
|
109
|
+
<data-order field="f_msg_time" name="人工回复时间"
|
|
110
|
+
:order.sync="orderFields.f_msg_time"></data-order>
|
|
111
|
+
</nobr>
|
|
112
|
+
</th>
|
|
113
|
+
<th>
|
|
114
|
+
<nobr>
|
|
115
|
+
<data-order field="f_attendant" name="回复人"
|
|
116
|
+
:order.sync="orderFields.f_attendant"></data-order>
|
|
117
|
+
</nobr>
|
|
118
|
+
</th>
|
|
119
|
+
<th>
|
|
120
|
+
<nobr>
|
|
121
|
+
<data-order field="f_rate" name="评价等级"
|
|
122
|
+
:order.sync="orderFields.f_rate"></data-order>
|
|
123
|
+
</nobr>
|
|
124
|
+
</th>
|
|
125
|
+
</tr>
|
|
126
|
+
</template>
|
|
127
|
+
|
|
128
|
+
<template partial='body' scope="row">
|
|
129
|
+
<tr>
|
|
130
|
+
<td><input type='checkbox' @change="selectRow($event, row)" :checked="row.selected"></td>
|
|
131
|
+
<td>{{ $index + 1 }}</td>
|
|
132
|
+
<td>{{ row.f_user_name }}</td>
|
|
133
|
+
<td>{{ row.f_user_id }}</td>
|
|
134
|
+
<td>{{ row.f_user_address }}</td>
|
|
135
|
+
<td>{{ row.f_ivr_time }}</td>
|
|
136
|
+
<td>{{ row.f_msg_time }}</td>
|
|
137
|
+
<td>{{ row.f_attendant }}</td>
|
|
138
|
+
<td>{{ row.f_rate }}</td>
|
|
139
|
+
</tr>
|
|
140
|
+
</template>
|
|
141
|
+
</data-grid>
|
|
142
|
+
</criteria-paged>
|
|
143
|
+
</div>
|
|
144
|
+
</div>
|
|
145
|
+
</template>
|
|
146
|
+
|
|
147
|
+
<script>
|
|
148
|
+
import { PagedList } from 'vue-client'
|
|
149
|
+
|
|
150
|
+
export default {
|
|
151
|
+
data() {
|
|
152
|
+
return {
|
|
153
|
+
model: new PagedList('rs/sql/saleSingleTable', 20, {
|
|
154
|
+
tablename: 't_text_log'
|
|
155
|
+
}, {
|
|
156
|
+
f_user_name: '',
|
|
157
|
+
f_user_id: '',
|
|
158
|
+
f_user_address: '',
|
|
159
|
+
f_ivr_time: '',
|
|
160
|
+
f_msg_time: '',
|
|
161
|
+
f_attendant: '',
|
|
162
|
+
f_rate: ''
|
|
163
|
+
}),
|
|
164
|
+
allSelect: false,
|
|
165
|
+
orderFields: {
|
|
166
|
+
f_user_name: 'no',
|
|
167
|
+
f_user_id: 'no',
|
|
168
|
+
f_user_address: 'no',
|
|
169
|
+
f_ivr_time: 'no',
|
|
170
|
+
f_msg_time: 'no',
|
|
171
|
+
f_attendant: 'no',
|
|
172
|
+
f_rate: 'no'
|
|
173
|
+
},
|
|
174
|
+
getfield: {
|
|
175
|
+
'f_user_name': '用户姓名',
|
|
176
|
+
'f_user_id': '用户标识',
|
|
177
|
+
'f_user_address': '用户地址',
|
|
178
|
+
'f_ivr_time': '转人工时间',
|
|
179
|
+
'f_msg_time': '人工回复时间',
|
|
180
|
+
'f_attendant': '回复人',
|
|
181
|
+
'f_rate': '评价等级'
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
methods: {
|
|
186
|
+
search() {
|
|
187
|
+
this.$refs.paged.$refs.criteria.search()
|
|
188
|
+
},
|
|
189
|
+
clear() {
|
|
190
|
+
Object.keys(this.model).forEach(key => {
|
|
191
|
+
if (key !== 'items' && key !== 'tablename') {
|
|
192
|
+
this.model[key] = ''
|
|
193
|
+
}
|
|
194
|
+
})
|
|
195
|
+
this.$refs.paged.$refs.criteria.model.f_user_name = ''
|
|
196
|
+
this.$refs.paged.$refs.criteria.model.f_user_id = ''
|
|
197
|
+
this.$refs.paged.$refs.criteria.model.f_user_address = ''
|
|
198
|
+
this.$refs.paged.$refs.criteria.model.f_attendant = ''
|
|
199
|
+
this.startDate = ''
|
|
200
|
+
this.endDate = ''
|
|
201
|
+
this.startMsgDate = ''
|
|
202
|
+
this.endMsgDate = ''
|
|
203
|
+
this.$refs.paged.$refs.criteria.search()
|
|
204
|
+
},
|
|
205
|
+
selectAll(event) {
|
|
206
|
+
this.model.rows.forEach(row => {
|
|
207
|
+
row.selected = event.target.checked
|
|
208
|
+
})
|
|
209
|
+
},
|
|
210
|
+
selectRow(event, row) {
|
|
211
|
+
row.selected = event.target.checked
|
|
212
|
+
},
|
|
213
|
+
sort(field) {
|
|
214
|
+
this.orderFields[field] = this.orderFields[field] === 'asc' ? 'desc' : 'asc'
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
computed: {
|
|
218
|
+
getCondition() {
|
|
219
|
+
let condition = ''
|
|
220
|
+
if (this.model.f_user_name) {
|
|
221
|
+
condition += ` and f_user_name like '%${this.model.f_user_name}%'`
|
|
222
|
+
}
|
|
223
|
+
if (this.model.f_user_id) {
|
|
224
|
+
condition += ` and f_user_id like '%${this.model.f_user_id}%'`
|
|
225
|
+
}
|
|
226
|
+
if (this.model.f_user_address) {
|
|
227
|
+
condition += ` and f_user_address like '%${this.model.f_user_address}%'`
|
|
228
|
+
}
|
|
229
|
+
if (this.model.f_attendant) {
|
|
230
|
+
condition += ` and f_attendant like '%${this.model.f_attendant}%'`
|
|
231
|
+
}
|
|
232
|
+
if (this.startDate && this.endDate) {
|
|
233
|
+
condition += ` and f_ivr_time between '${this.startDate}' and '${this.endDate}'`
|
|
234
|
+
}
|
|
235
|
+
if (this.startMsgDate && this.endMsgDate) {
|
|
236
|
+
condition += ` and f_msg_time between '${this.startMsgDate}' and '${this.endMsgDate}'`
|
|
237
|
+
}
|
|
238
|
+
return condition
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
</script>
|
|
243
|
+
|
|
244
|
+
<style scoped>
|
|
245
|
+
.flex-row {
|
|
246
|
+
display: flex;
|
|
247
|
+
flex-direction: row;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.basic-main {
|
|
251
|
+
width: 100%;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.form-group {
|
|
255
|
+
margin-bottom: 15px;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.input_search {
|
|
259
|
+
width: 200px;
|
|
260
|
+
padding: 6px;
|
|
261
|
+
border: 1px solid #ccc;
|
|
262
|
+
border-radius: 4px;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
.button_search {
|
|
266
|
+
background-color: #007bff;
|
|
267
|
+
color: white;
|
|
268
|
+
padding: 6px 12px;
|
|
269
|
+
border: none;
|
|
270
|
+
border-radius: 4px;
|
|
271
|
+
cursor: pointer;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
.button_clear {
|
|
275
|
+
background-color: #6c757d;
|
|
276
|
+
color: white;
|
|
277
|
+
padding: 6px 12px;
|
|
278
|
+
border: none;
|
|
279
|
+
border-radius: 4px;
|
|
280
|
+
cursor: pointer;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.button_spacing {
|
|
284
|
+
margin-left: 10px;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.list_area {
|
|
288
|
+
width: 100%;
|
|
289
|
+
border-collapse: collapse;
|
|
290
|
+
margin-top: 10px;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
.list_area th,
|
|
294
|
+
.list_area td {
|
|
295
|
+
padding: 8px;
|
|
296
|
+
text-align: left;
|
|
297
|
+
border-bottom: 1px solid #ddd;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
.list_area th {
|
|
301
|
+
background-color: #f2f2f2;
|
|
302
|
+
position: sticky;
|
|
303
|
+
top: 0;
|
|
304
|
+
z-index: 1;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
.list_area tr:hover {
|
|
308
|
+
background-color: #f5f5f5;
|
|
309
|
+
}
|
|
310
|
+
</style>
|
|
@@ -4,7 +4,14 @@
|
|
|
4
4
|
<criteria @condition-changed='$parent.selfSearch' partial='criteria' v-ref:cri>
|
|
5
5
|
<div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
|
|
6
6
|
<div class="row">
|
|
7
|
-
<res-select-group :style="$parent.$parent.style" :show-component="['company'
|
|
7
|
+
<res-select-group :style="$parent.$parent.style" :show-component="['company']" :initres="$parent.$parent.initres" @re-res="$parent.$parent.getorg" v-ref:sel></res-select-group>
|
|
8
|
+
<div class="form-group" :class="{'col-sm-2':!$parent.$parent.$parent.isdetail, 'col-sm-3':$parent.$parent.$parent.isdetail}"
|
|
9
|
+
v-if="!$parent.$parent.downshow&&!$parent.$parent.$parent.isdetail">
|
|
10
|
+
<label class="font_normal_body">地  址</label>
|
|
11
|
+
<input :size="model.f_street ? model.f_address.length * 2 : 4" class="input_search" condition="f_street like '%{}%'" placeholder='区/县' style="width:60%"
|
|
12
|
+
type="text"
|
|
13
|
+
v-model="model.f_street">
|
|
14
|
+
</div>
|
|
8
15
|
<div class="form-group" :class="{'col-sm-2':!$parent.$parent.$parent.isdetail, 'col-sm-3':$parent.$parent.$parent.isdetail}">
|
|
9
16
|
<label class="font_normal_body">用户编号</label>
|
|
10
17
|
<input class="input_search" condition="f_userinfo_code like '%{}%'" placeholder="用户编号" style="width:60%"
|
|
@@ -139,7 +146,7 @@
|
|
|
139
146
|
<th style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>卡号</th>
|
|
140
147
|
<th style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>电话</th>
|
|
141
148
|
<th style="text-align: center;">地址</th>
|
|
142
|
-
<th style="text-align: center;"
|
|
149
|
+
<th style="text-align: center;">区/县</th>
|
|
143
150
|
<th style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>安检日期</th>
|
|
144
151
|
<th style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>限购日期</th>
|
|
145
152
|
<th style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>操作人</th>
|
|
@@ -156,7 +163,7 @@
|
|
|
156
163
|
<td style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>{{row.f_card_id}}</td>
|
|
157
164
|
<td style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>{{row.f_user_phone}}</td>
|
|
158
165
|
<td style="text-align: center;">{{row.f_address}}</td>
|
|
159
|
-
<td style="text-align: center;">{{row.
|
|
166
|
+
<td style="text-align: center;">{{row.f_street}}</td>
|
|
160
167
|
<td style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>{{row.f_last_check_date}}</td>
|
|
161
168
|
<td style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>{{row.f_parameter_value}}</td>
|
|
162
169
|
<td style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>{{row.f_operator}}</td>
|
|
@@ -207,8 +214,8 @@
|
|
|
207
214
|
'f_last_check_date': '安检日期',
|
|
208
215
|
'f_parameter_value': '限购日期',
|
|
209
216
|
'f_comments': '限购原因',
|
|
210
|
-
'
|
|
211
|
-
'
|
|
217
|
+
'f_user_type': '用户类型',
|
|
218
|
+
'f_street': '区/县'
|
|
212
219
|
}
|
|
213
220
|
}
|
|
214
221
|
},
|
|
@@ -223,6 +230,7 @@
|
|
|
223
230
|
ready () {
|
|
224
231
|
this.getAuthority()
|
|
225
232
|
this.search()
|
|
233
|
+
this.getAreaAddressList()
|
|
226
234
|
},
|
|
227
235
|
methods: {
|
|
228
236
|
selected (row) {
|
|
@@ -235,6 +243,7 @@
|
|
|
235
243
|
this.blackImport = '黑名单导入'
|
|
236
244
|
}
|
|
237
245
|
},
|
|
246
|
+
|
|
238
247
|
async getRes (condition, obj) {
|
|
239
248
|
console.log('condition =', condition)
|
|
240
249
|
console.log('obj =', obj)
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="basic-main" style="height: 98%">
|
|
3
|
+
<div class="flex">
|
|
4
|
+
<criteria-paged :model="model" v-ref:paged>
|
|
5
|
+
<criteria partial='criteria' v-ref:criteria @condition-changed='$parent.selfSearch'>
|
|
6
|
+
<div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
|
|
7
|
+
<div class="row">
|
|
8
|
+
<!-- 用户姓名查询 -->
|
|
9
|
+
<div class="col-sm-2 form-group">
|
|
10
|
+
<label class="font_normal_body">用户姓名</label>
|
|
11
|
+
<input type="text" class="input_search"
|
|
12
|
+
style="width:60%"
|
|
13
|
+
v-model="model.f_user_name"
|
|
14
|
+
condition="f_user_name like '%{}%'"
|
|
15
|
+
placeholder="请输入用户姓名"/>
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
<!-- 用户标识查询 -->
|
|
19
|
+
<div class="col-sm-2 form-group">
|
|
20
|
+
<label class="font_normal_body">用户标识</label>
|
|
21
|
+
<input type="text" class="input_search"
|
|
22
|
+
style="width:60%"
|
|
23
|
+
v-model="model.f_user_id"
|
|
24
|
+
condition="f_user_id like '%{}%'"
|
|
25
|
+
placeholder="请输入用户标识"/>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<!-- 回复人查询 -->
|
|
29
|
+
<div class="col-sm-2 form-group">
|
|
30
|
+
<label class="font_normal_body">回复人</label>
|
|
31
|
+
<input type="text" class="input_search"
|
|
32
|
+
style="width:60%"
|
|
33
|
+
v-model="model.f_attendant"
|
|
34
|
+
condition="f_attendant like '%{}%'"
|
|
35
|
+
placeholder="请输入回复人"/>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<!-- 查询按钮 -->
|
|
39
|
+
<div class="span col-sm-2 form-group button-range" style="float: right">
|
|
40
|
+
<button class="button_search button_spacing" @click="search()" v-el:cx>查询</button>
|
|
41
|
+
<button class="button_clear button_spacing" @click="clear">清空</button>
|
|
42
|
+
<div style="float: right" class="button_spacing"
|
|
43
|
+
:class="{'button_shrink_top': criteriaShow,'button_shrink_bottom': !criteriaShow}"
|
|
44
|
+
@click="criteriaShow = !criteriaShow"></div>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<!-- 扩展查询条件 -->
|
|
49
|
+
<div class="row" v-show="criteriaShow">
|
|
50
|
+
<!-- 转人工时间范围 -->
|
|
51
|
+
<div class="col-sm-3 form-group">
|
|
52
|
+
<label class="font_normal_body">转人工起始时间</label>
|
|
53
|
+
<datepicker placeholder='转人工起始时间' style="width:60%"
|
|
54
|
+
v-model="model.ivrStartDate"
|
|
55
|
+
:value.sync="model.ivrStartDate"
|
|
56
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
57
|
+
:show-reset-button="true"
|
|
58
|
+
condition="f_ivr_time >= '{}'">
|
|
59
|
+
</datepicker>
|
|
60
|
+
</div>
|
|
61
|
+
<div class="col-sm-3 form-group">
|
|
62
|
+
<label class="font_normal_body">转人工结束时间</label>
|
|
63
|
+
<datepicker placeholder='转人工结束时间' style="width:60%"
|
|
64
|
+
v-model="model.ivrEndDate"
|
|
65
|
+
:value.sync="model.ivrEndDate"
|
|
66
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
67
|
+
:show-reset-button="true"
|
|
68
|
+
condition="f_ivr_time <= '{}'">
|
|
69
|
+
</datepicker>
|
|
70
|
+
</div>
|
|
71
|
+
|
|
72
|
+
<!-- 人工回复时间范围 -->
|
|
73
|
+
<div class="col-sm-3 form-group">
|
|
74
|
+
<label class="font_normal_body">回复起始时间</label>
|
|
75
|
+
<datepicker placeholder='回复起始时间' style="width:60%"
|
|
76
|
+
v-model="model.msgStartDate"
|
|
77
|
+
:value.sync="model.msgStartDate"
|
|
78
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
79
|
+
:show-reset-button="true"
|
|
80
|
+
condition="f_msg_time >= '{}'">
|
|
81
|
+
</datepicker>
|
|
82
|
+
</div>
|
|
83
|
+
<div class="col-sm-3 form-group">
|
|
84
|
+
<label class="font_normal_body">回复结束时间</label>
|
|
85
|
+
<datepicker placeholder='回复结束时间' style="width:60%"
|
|
86
|
+
v-model="model.msgEndDate"
|
|
87
|
+
:value.sync="model.msgEndDate"
|
|
88
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
89
|
+
:show-reset-button="true"
|
|
90
|
+
condition="f_msg_time <= '{}'">
|
|
91
|
+
</datepicker>
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
</criteria>
|
|
96
|
+
|
|
97
|
+
<!-- 数据表格 -->
|
|
98
|
+
<data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
|
|
99
|
+
<template partial='head'>
|
|
100
|
+
<tr>
|
|
101
|
+
<th>序号</th>
|
|
102
|
+
<th>用户姓名</th>
|
|
103
|
+
<th>用户标识</th>
|
|
104
|
+
<th>转人工时间</th>
|
|
105
|
+
<th>人工回复时间</th>
|
|
106
|
+
<th>回复人</th>
|
|
107
|
+
<th>评价等级</th>
|
|
108
|
+
</tr>
|
|
109
|
+
</template>
|
|
110
|
+
<template partial='body'>
|
|
111
|
+
<tr>
|
|
112
|
+
<td style="text-align:center">{{$index+1}}</td>
|
|
113
|
+
<td style="text-align:center">{{row.f_user_name}}</td>
|
|
114
|
+
<td style="text-align:center">{{row.f_user_id}}</td>
|
|
115
|
+
<td style="text-align:center">{{row.f_ivr_time}}</td>
|
|
116
|
+
<td style="text-align:center">{{row.f_msg_time}}</td>
|
|
117
|
+
<td style="text-align:center">{{row.f_attendant}}</td>
|
|
118
|
+
<td style="text-align:center">{{row.f_rate}}</td>
|
|
119
|
+
</tr>
|
|
120
|
+
</template>
|
|
121
|
+
</data-grid>
|
|
122
|
+
</criteria-paged>
|
|
123
|
+
</div>
|
|
124
|
+
</div>
|
|
125
|
+
</template>
|
|
126
|
+
|
|
127
|
+
<script>
|
|
128
|
+
import { PagedList } from 'vue-client'
|
|
129
|
+
|
|
130
|
+
export default {
|
|
131
|
+
title: '转人工管理',
|
|
132
|
+
data() {
|
|
133
|
+
return {
|
|
134
|
+
model: new PagedList('rs/sql/saleSingleTable', 20, {
|
|
135
|
+
tablename: '`t_text_log`',
|
|
136
|
+
items: '`*`'
|
|
137
|
+
}),
|
|
138
|
+
criteriaShow: false,
|
|
139
|
+
condition2: '',
|
|
140
|
+
rateOptions: [
|
|
141
|
+
{label: '全部', value: ''},
|
|
142
|
+
{label: '1星', value: 1},
|
|
143
|
+
{label: '2星', value: 2},
|
|
144
|
+
{label: '3星', value: 3},
|
|
145
|
+
{label: '4星', value: 4},
|
|
146
|
+
{label: '5星', value: 5}
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
ready() {
|
|
151
|
+
this.search()
|
|
152
|
+
},
|
|
153
|
+
methods: {
|
|
154
|
+
search() {
|
|
155
|
+
this.selfSearch({condition: '1=1', model: this.model})
|
|
156
|
+
},
|
|
157
|
+
|
|
158
|
+
clear() {
|
|
159
|
+
// 清空所有查询条件
|
|
160
|
+
this.model.f_user_name = ''
|
|
161
|
+
this.model.f_user_id = ''
|
|
162
|
+
this.model.f_attendant = ''
|
|
163
|
+
this.model.f_rate = ''
|
|
164
|
+
this.model.ivrStartDate = ''
|
|
165
|
+
this.model.ivrEndDate = ''
|
|
166
|
+
this.model.msgStartDate = ''
|
|
167
|
+
this.model.msgEndDate = ''
|
|
168
|
+
|
|
169
|
+
// 清空后自动查询
|
|
170
|
+
this.search()
|
|
171
|
+
},
|
|
172
|
+
|
|
173
|
+
selfSearch(args) {
|
|
174
|
+
let condition = args.condition || '1=1'
|
|
175
|
+
|
|
176
|
+
// 用户姓名条件
|
|
177
|
+
if (this.model.f_user_name) {
|
|
178
|
+
condition += ` and f_user_name like '%${this.model.f_user_name}%'`
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
// 用户标识条件
|
|
182
|
+
if (this.model.f_user_id) {
|
|
183
|
+
condition += ` and f_user_id like '%${this.model.f_user_id}%'`
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// 回复人条件
|
|
187
|
+
if (this.model.f_attendant) {
|
|
188
|
+
condition += ` and f_attendant like '%${this.model.f_attendant}%'`
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
// 转人工时间范围条件 - 使用 SQL Server 兼容的格式
|
|
193
|
+
if (this.model.ivrStartDate && this.model.ivrEndDate) {
|
|
194
|
+
condition += ` and f_ivr_time between '${this.model.ivrStartDate}' and '${this.model.ivrEndDate}'`
|
|
195
|
+
} else if (this.model.ivrStartDate) {
|
|
196
|
+
condition += ` and f_ivr_time >= '${this.model.ivrStartDate}'`
|
|
197
|
+
} else if (this.model.ivrEndDate) {
|
|
198
|
+
condition += ` and f_ivr_time <= '${this.model.ivrEndDate}'`
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// 人工回复时间范围条件 - 使用 SQL Server 兼容的格式
|
|
202
|
+
if (this.model.msgStartDate && this.model.msgEndDate) {
|
|
203
|
+
condition += ` and f_msg_time between '${this.model.msgStartDate}' and '${this.model.msgEndDate}'`
|
|
204
|
+
} else if (this.model.msgStartDate) {
|
|
205
|
+
condition += ` and f_msg_time >= '${this.model.msgStartDate}'`
|
|
206
|
+
} else if (this.model.msgEndDate) {
|
|
207
|
+
condition += ` and f_msg_time <= '${this.model.msgEndDate}'`
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
console.log('转人工管理查询条件:', condition)
|
|
211
|
+
this.condition2 = condition
|
|
212
|
+
this.model.search(condition, args.model)
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
</script>
|
|
217
|
+
|
|
218
|
+
<style lang="less" scoped>
|
|
219
|
+
</style>
|
package/src/main.js
CHANGED
|
@@ -2,7 +2,7 @@ import Vue from 'vue'
|
|
|
2
2
|
import all from 'vue-client/src/all'
|
|
3
3
|
import App from './App'
|
|
4
4
|
import system from 'system-clients/src/system'
|
|
5
|
-
import FilialeSale from './filiale/
|
|
5
|
+
import FilialeSale from './filiale/dexin/sale'
|
|
6
6
|
import sale from './sale'
|
|
7
7
|
import address from 'address-client/src/address'
|
|
8
8
|
import ldap from 'ldap-clients/src/ldap'
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
File without changes
|