sale-client 3.7.13 → 3.7.15
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/package.json +1 -1
- package/src/components/manualsemmary/ManualSummaryManage.vue +310 -0
- package/src/filiale/jingyang/EticketV4/CustQueryEticket.vue +2 -1
- package/src/filiale/jingyang/EticketV4/EticketOpenCard.vue +2 -1
- package/src/filiale/jingyang/EticketV4/EticketOpenPage.vue +2 -1
- package/src/filiale/tongchuan/ManualSummaryManage.vue +219 -0
- package/src/filiale/wuan/BankPayment.vue +378 -0
- package/src/filiale/wuan/sale.js +2 -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/8.5/checksums/checksums.lock +0 -0
- package/.gradle/8.5/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/.gradle/8.5/dependencies-accessors/gc.properties +0 -0
- package/.gradle/8.5/executionHistory/executionHistory.bin +0 -0
- package/.gradle/8.5/executionHistory/executionHistory.lock +0 -0
- package/.gradle/8.5/fileChanges/last-build.bin +0 -0
- package/.gradle/8.5/fileHashes/fileHashes.bin +0 -0
- package/.gradle/8.5/fileHashes/fileHashes.lock +0 -0
- package/.gradle/8.5/gc.properties +0 -0
- package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/.gradle/buildOutputCleanup/cache.properties +0 -2
- package/.gradle/file-system.probe +0 -0
- package/.gradle/vcs-1/gc.properties +0 -0
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,8 @@
|
|
|
4
4
|
<criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
|
|
5
5
|
<div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
|
|
6
6
|
<div class="row">
|
|
7
|
-
<res-select-group :show-component="['company','department', 'operator']" :initres="$parent.$parent.initres"
|
|
7
|
+
<!-- <res-select-group :show-component="['company','department', 'operator']" :initres="$parent.$parent.initres"-->
|
|
8
|
+
<res-select-group :show-component="['department', 'operator']" :initres="$parent.$parent.initres"
|
|
8
9
|
@re-res="$parent.$parent.getRes" v-ref:sel></res-select-group>
|
|
9
10
|
<div class="form-group col-sm-2">
|
|
10
11
|
<label class="font_normal_body">客户编号</label>
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
<div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
|
|
6
6
|
<div class="row">
|
|
7
7
|
<div class="row" width="100%">
|
|
8
|
-
<res-select-group :show-component="['company','department', 'operator']" :initres="$parent.$parent.initres"
|
|
8
|
+
<!-- <res-select-group :show-component="['company','department', 'operator']" :initres="$parent.$parent.initres"-->
|
|
9
|
+
<res-select-group :show-component="['department', 'operator']" :initres="$parent.$parent.initres"
|
|
9
10
|
@re-res="$parent.$parent.getRes" v-ref:sel></res-select-group>
|
|
10
11
|
<div class="form-group col-sm-2">
|
|
11
12
|
<label class="font_normal_body">客户编号</label>
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
<div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
|
|
6
6
|
<div class="row">
|
|
7
7
|
<div class="row" width="100%">
|
|
8
|
-
<res-select-group :show-component="['company','department', 'operator']" :initres="$parent.$parent.initres"
|
|
8
|
+
<!-- <res-select-group :show-component="['company','department', 'operator']" :initres="$parent.$parent.initres"-->
|
|
9
|
+
<res-select-group :show-component="['department', 'operator']" :initres="$parent.$parent.initres"
|
|
9
10
|
@re-res="$parent.$parent.getRes" v-ref:sel></res-select-group>
|
|
10
11
|
<div class="form-group col-sm-2">
|
|
11
12
|
<label class="font_normal_body">客户编号</label>
|
|
@@ -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>
|
|
@@ -0,0 +1,378 @@
|
|
|
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' @condition-changed='$parent.selfSearch' v-ref:cri>
|
|
6
|
+
<div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
|
|
7
|
+
<div class="row">
|
|
8
|
+
<div
|
|
9
|
+
:class="{'col-sm-2':!$parent.$parent.editList,'col-sm-4':$parent.$parent.editList}"
|
|
10
|
+
class="form-group">
|
|
11
|
+
<label class="font_normal_body">组织机构</label>
|
|
12
|
+
<res-select :initresid='$parent.$parent.curorgid'
|
|
13
|
+
@res-select="$parent.$parent.getorg"
|
|
14
|
+
class="select select_list"
|
|
15
|
+
restype='organization'
|
|
16
|
+
style="width: 60%">
|
|
17
|
+
</res-select>
|
|
18
|
+
</div>
|
|
19
|
+
<div class="col-sm-2 form-group">
|
|
20
|
+
<label for="f_bank_name" class="font_normal_body">银行名称:</label>
|
|
21
|
+
<v-select id="f_bank_name"
|
|
22
|
+
v-model="model.f_bank_name"
|
|
23
|
+
placeholder='银行名称'
|
|
24
|
+
condition="(s.f_bank_name= '{}' or s.bankname='{}') "
|
|
25
|
+
:value.sync="model.f_bank_name"
|
|
26
|
+
:options='$parent.$parent.bankname'
|
|
27
|
+
close-on-select ></v-select>
|
|
28
|
+
</div>
|
|
29
|
+
<div class="col-sm-2 form-group">
|
|
30
|
+
<label for="msg" class="font_normal_body" title="对账信息">对账信息:</label>
|
|
31
|
+
<v-select id="msg"
|
|
32
|
+
v-model="model.msg"
|
|
33
|
+
placeholder='对账信息'
|
|
34
|
+
condition="msg = '{}' "
|
|
35
|
+
:value.sync="model.msg"
|
|
36
|
+
:options='$parent.$parent.msg'
|
|
37
|
+
close-on-select ></v-select>
|
|
38
|
+
</div>
|
|
39
|
+
<div class="col-sm-2 form-group">
|
|
40
|
+
<label for="startDate" class="font_normal_body">开始日期:</label>
|
|
41
|
+
<datepicker id="startDate" placeholder="开始日期"
|
|
42
|
+
v-model="model.startDate" style="width: 55%"
|
|
43
|
+
:value.sync="model.startDate"
|
|
44
|
+
condition="(f_trade_date >= '{} 00:00:00' or f_operate_date >= '{} 00:00:00')"
|
|
45
|
+
:disabled-days-of-Week="[]"
|
|
46
|
+
:format="'yyyy-MM-dd'"
|
|
47
|
+
:show-reset-button="reset">
|
|
48
|
+
</datepicker>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="col-sm-2 form-group">
|
|
51
|
+
<label for="endDate" class="font_normal_body"> 结束日期:</label>
|
|
52
|
+
<datepicker id="endDate" placeholder="结束日期"
|
|
53
|
+
v-model="model.endDate" style="width: 55%"
|
|
54
|
+
:value.sync="model.endDate"
|
|
55
|
+
condition="(f_trade_date < '{} 23:59:59' or f_operate_date < '{} 23:59:59' )"
|
|
56
|
+
:disabled-days-of-Week="[]"
|
|
57
|
+
:format="'yyyy-MM-dd'"
|
|
58
|
+
:show-reset-button="reset">
|
|
59
|
+
</datepicker>
|
|
60
|
+
|
|
61
|
+
</div>
|
|
62
|
+
<div class="form-group button-range" style="float: right">
|
|
63
|
+
<button class="button_search button_spacing width-60" @click="search()" v-el:cx>查询</button>
|
|
64
|
+
<!-- <export-excel :data="{orderitem: 'msg_id,f_delivery_date DESC',condition: condition,startDate: this.model.startDate,endDate: this.model.endDate,bankname: this.model.f_bank_name[0]}"-->
|
|
65
|
+
<!-- bean="银行对账查询导出" sqlurl="rs/logic/exportfile"></export-excel>-->
|
|
66
|
+
<export-excel :data="$parent.$parent.getCondition" sql-name="bankPayment"
|
|
67
|
+
template-name="银行对账查询导出" sqlurl="rs/logic/saleExport"
|
|
68
|
+
:field="$parent.$parent.getfield" :choose-col="true"></export-excel>
|
|
69
|
+
<div style="float: right" class="button_spacing"
|
|
70
|
+
:class="{'button_shrink_top': $parent.$parent.criteriaShow,'button_shrink_bottom': !$parent.$parent.criteriaShow}"
|
|
71
|
+
@click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"></div>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
<div class="row" v-show="$parent.$parent.criteriaShow">
|
|
75
|
+
|
|
76
|
+
<div class="col-sm-2 form-group">
|
|
77
|
+
<label class="font_normal_body">用户编号:</label>
|
|
78
|
+
<input type="text" class="input_search" style="width:60%" v-model="model.f_userinfo_code"
|
|
79
|
+
condition="f_userinfo_code = '{}'" placeholder='用户编号'>
|
|
80
|
+
</div>
|
|
81
|
+
<div class="col-sm-2 form-group">
|
|
82
|
+
<label class="font_normal_body"> 订单号:</label>
|
|
83
|
+
<input type="text" class="input_search" style="width:60%" v-model="model.f_serial_id"
|
|
84
|
+
condition="(f_serial_id = '{}' or f_trade_number = '{}')" placeholder='订单号'>
|
|
85
|
+
</div>
|
|
86
|
+
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
</criteria>
|
|
90
|
+
<data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
|
|
91
|
+
<template partial='head'>
|
|
92
|
+
<tr>
|
|
93
|
+
<th>序号</th>
|
|
94
|
+
<th>用户编号</th>
|
|
95
|
+
<th>用户姓名</th>
|
|
96
|
+
<th>气表类型</th>
|
|
97
|
+
<th>银行名称</th>
|
|
98
|
+
<th>燃气方订单号</th>
|
|
99
|
+
<th>银行方订单号</th>
|
|
100
|
+
<th>燃气方金额</th>
|
|
101
|
+
<th>银行金额</th>
|
|
102
|
+
<th>燃气方日期</th>
|
|
103
|
+
<th>银行日期</th>
|
|
104
|
+
<th>燃气方记录是否有效</th>
|
|
105
|
+
<th>对账信息</th>
|
|
106
|
+
<th>状态</th>
|
|
107
|
+
</tr>
|
|
108
|
+
</template>
|
|
109
|
+
<template partial='body'>
|
|
110
|
+
<td style="text-align: center;">{{$index+1}}</td>
|
|
111
|
+
<td>{{row.f_userinfo_code}}</td>
|
|
112
|
+
<td>{{row.f_user_name}}</td>
|
|
113
|
+
<td>{{row.f_meter_classify}}</td>
|
|
114
|
+
<th>{{row.f_bank_name?row.f_bank_name:row.bankname}}</th>
|
|
115
|
+
<td>{{row.f_serial_id}}</td>
|
|
116
|
+
<td>{{row.f_trade_number}}</td>
|
|
117
|
+
<td>{{row.f_collection}}</td>
|
|
118
|
+
<td>{{row.f_total_charge}}</td>
|
|
119
|
+
<td>{{row.f_operate_date}}</td>
|
|
120
|
+
<td>{{row.f_trade_date}}</td>
|
|
121
|
+
<td>{{row.f_state}}</td>
|
|
122
|
+
<td>{{row.msg}}</td>
|
|
123
|
+
<td>
|
|
124
|
+
<!-- <button type="button" name="button" class="button_search button_spacing width-60" @click="$parent.$parent.$parent.chargecal(row)"-->
|
|
125
|
+
<!-- v-if="row.msg === '燃气方单方面账单' && row.maxid !== '' && row.maxid!== null">冲正</button>-->
|
|
126
|
+
<!--<!– <button type="button" name="button" class="button_search button_spacing width-60" @click="$parent.$parent.$parent.charge(row)"–>-->
|
|
127
|
+
<!--<!– v-if="row.msg === '银行方单方面账单'&& row.f_userinfo_id !=='' && row.f_userinfo_id !==null" >缴费</button>–>-->
|
|
128
|
+
<!-- <button type="button" name="button" class="button_search button_spacing width-60" @click="$parent.$parent.$parent.charge(row)"-->
|
|
129
|
+
<!-- v-if="row.msg === '银行方单方面账单'" >缴费</button>-->
|
|
130
|
+
<!--<!– <span v-if="row.f_type !== 1 && row.msg !== '对账成功' && row.msg !== '燃气方单方面账单'">需人工处理</span>–>-->
|
|
131
|
+
<span v-if="row.msg === '对账成功'">正常</span>
|
|
132
|
+
</td>
|
|
133
|
+
</template>
|
|
134
|
+
<!--<template partial='foot'>-->
|
|
135
|
+
<!--<td style="text-align: center;">合计</td>-->
|
|
136
|
+
<!--<td style="text-align: center;"></td>-->
|
|
137
|
+
<!--<td style="text-align: center;"></td>-->
|
|
138
|
+
<!--<td style="text-align: center;"></td>-->
|
|
139
|
+
<!--<td style="text-align: center;"></td>-->
|
|
140
|
+
<!--<td style="text-align: center;">{{model.sums.f_collection.toFixed(2)}}</td>-->
|
|
141
|
+
<!--<td style="text-align: center;">{{model.sums.f_total_charge.toFixed(2)}}</td>-->
|
|
142
|
+
<!--<td style="text-align: center;"></td>-->
|
|
143
|
+
<!--<td style="text-align: center;"></td>-->
|
|
144
|
+
<!--<td style="text-align: center;"></td>-->
|
|
145
|
+
<!--<td style="text-align: center;"></td>-->
|
|
146
|
+
<!--<td style="text-align: center;"></td>-->
|
|
147
|
+
<!--</template>-->
|
|
148
|
+
</data-grid>
|
|
149
|
+
</criteria-paged>
|
|
150
|
+
<table class="table-hover">
|
|
151
|
+
<tr style="position: relative" class="table-bordered">
|
|
152
|
+
<td
|
|
153
|
+
style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">
|
|
154
|
+
汇总信息
|
|
155
|
+
</td>
|
|
156
|
+
<td
|
|
157
|
+
style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
|
|
158
|
+
燃气方金额汇总: {{model.sums.f_collection.toFixed(2)}}
|
|
159
|
+
</td>
|
|
160
|
+
<td
|
|
161
|
+
style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
|
|
162
|
+
银行金额汇总: {{model.sums.f_total_charge.toFixed(2)}}
|
|
163
|
+
</td>
|
|
164
|
+
<td
|
|
165
|
+
style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
|
|
166
|
+
差额汇总: {{((model.sums.f_total_charge -0) - (model.sums.f_collection.toFixed(2) -0)).toFixed(2)}}
|
|
167
|
+
</td>
|
|
168
|
+
</tr>
|
|
169
|
+
</table>
|
|
170
|
+
</div>
|
|
171
|
+
</div>
|
|
172
|
+
</template>
|
|
173
|
+
<script>
|
|
174
|
+
import { PagedList } from 'vue-client'
|
|
175
|
+
import Vue from 'vue'
|
|
176
|
+
|
|
177
|
+
export default {
|
|
178
|
+
title: '银行对账',
|
|
179
|
+
data () {
|
|
180
|
+
return {
|
|
181
|
+
resid: [], // 存放新增的f_files表中id
|
|
182
|
+
criteriaShow: false,
|
|
183
|
+
f_orgid: this.$login.f.orgid,
|
|
184
|
+
curorgid: [this.$login.f.orgid],
|
|
185
|
+
model: new PagedList('rs/sql/bankPayment', 20, {bankname: 'this.model.f_bank_name[0]', startDate: 'this.model.startDate', endDate: 'this.model.endDate', orderitem: '"delivery_date DESC "'}, {f_collection: '', f_total_charge: ''}),
|
|
186
|
+
bodydata: ['f_userinfo_code', 'f_user_name', 'f_bank_name', 'f_serial_id', 'f_trade_number', 'f_collection', 'f_total_charge', 'f_operate_date', 'f_state', 'msg'],
|
|
187
|
+
header: ['用户编号', '用户姓名', '银行名称', '燃气方流水号', '银行流水号', '燃气方金额', '银行金额', '燃气方日期', '银行日期', '燃气方记录是否有效', '对账信息']
|
|
188
|
+
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
props: [],
|
|
192
|
+
ready () {
|
|
193
|
+
this.$refs.paged.$refs.cri.model.startDate = this.$login.toStandardDateString()
|
|
194
|
+
this.$refs.paged.$refs.cri.model.endDate = this.$login.toStandardDateString()
|
|
195
|
+
},
|
|
196
|
+
methods: {
|
|
197
|
+
search () {
|
|
198
|
+
this.$refs.paged.$refs.cri.search()
|
|
199
|
+
},
|
|
200
|
+
selfSearch (args) {
|
|
201
|
+
if (!this.f_orgid) {
|
|
202
|
+
this.getorg([this.$login.f.orgid])
|
|
203
|
+
}
|
|
204
|
+
if (!this.$refs.paged.$refs.cri.model.startDate) {
|
|
205
|
+
this.$refs.paged.$refs.cri.model.startDate = this.$login.toStandardDateString()
|
|
206
|
+
}
|
|
207
|
+
if (!this.$refs.paged.$refs.cri.model.endDate) {
|
|
208
|
+
this.$refs.paged.$refs.cri.model.endDate = this.$login.toStandardDateString()
|
|
209
|
+
}
|
|
210
|
+
console.log('查询。。。', this.f_orgid)
|
|
211
|
+
if (this.f_orgid) {
|
|
212
|
+
args.condition = `${args.condition} and (f_orgid in ${this.f_orgid} or s.f_filialeid in ${this.f_orgid}) `
|
|
213
|
+
}
|
|
214
|
+
this.model.search(args.condition, args.model)
|
|
215
|
+
},
|
|
216
|
+
async chargecal (row) {
|
|
217
|
+
let param = {
|
|
218
|
+
f_operator: Vue.$login.f.name,
|
|
219
|
+
f_sell_id: row.maxid,
|
|
220
|
+
f_cancel_reason: '',
|
|
221
|
+
f_orgid: Vue.$login.f.orgid,
|
|
222
|
+
f_orgname: Vue.$login.f.orgs,
|
|
223
|
+
f_depid: Vue.$login.f.depids,
|
|
224
|
+
f_depname: Vue.$login.f.deps,
|
|
225
|
+
f_zoneid: Vue.$login.f.zoneid,
|
|
226
|
+
f_zones: Vue.$login.f.zones
|
|
227
|
+
}
|
|
228
|
+
await Vue.resetpost('rs/logic/commonCancel', {data: param}, {resolveMsg: '撤销成功', rejectMsg: '撤销失败'})
|
|
229
|
+
this.$refs.paged.$refs.cri.search()
|
|
230
|
+
},
|
|
231
|
+
getorg (val) {
|
|
232
|
+
this.f_orgid = this.$login.convertToIn(val)
|
|
233
|
+
this.f_filialeid = val[0]
|
|
234
|
+
},
|
|
235
|
+
// 微信单方账单,系统可缴费
|
|
236
|
+
async charge (row) {
|
|
237
|
+
console.log('单边账补缴:', row)
|
|
238
|
+
row.f_operator = Vue.$login.f.name
|
|
239
|
+
|
|
240
|
+
// 判断表类型
|
|
241
|
+
if (row.f_meter_classify === '气量卡表' || row.f_meter_classify === '金额卡表') {
|
|
242
|
+
console.log('卡表补缴')
|
|
243
|
+
// 查询用户信息,获取卡号和卡表厂商别名
|
|
244
|
+
const userInfo = await this.$resetpost('rs/sql/sale_getUser', {
|
|
245
|
+
data: {
|
|
246
|
+
orderitem: 'f_userinfo_code',
|
|
247
|
+
condition: `f_userinfo_code = '${row.f_userinfo_code}'`
|
|
248
|
+
}
|
|
249
|
+
}, {resolveMsg: null, rejectMsg: '获取卡表用户信息失败'})
|
|
250
|
+
const f_card_id = userInfo.data[0].f_card_id
|
|
251
|
+
const f_alias = userInfo.data[0].f_alias
|
|
252
|
+
// 先按照金额进行划价
|
|
253
|
+
const pricingParams = {
|
|
254
|
+
data: {
|
|
255
|
+
model: {
|
|
256
|
+
f_card_id: f_card_id,
|
|
257
|
+
f_alias: f_alias
|
|
258
|
+
},
|
|
259
|
+
value: row.f_total_charge,
|
|
260
|
+
isGasValue: 1
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
const pricingRes = await this.$resetpost('rs/logic/commonCal', pricingParams, {resolveMsg: null, rejectMsg: '卡表划价失败'})
|
|
264
|
+
console.log('卡表划价结果:', pricingRes)
|
|
265
|
+
const chargeLength = pricingRes.data.chargeprice.length
|
|
266
|
+
let gasFee = 0
|
|
267
|
+
let gasAmountApproved = 0
|
|
268
|
+
|
|
269
|
+
if (chargeLength === 1) {
|
|
270
|
+
gasFee = pricingRes.data.chargeprice[0].f_money
|
|
271
|
+
gasAmountApproved = pricingRes.data.chargeprice[0].f_gas
|
|
272
|
+
} else if (chargeLength === 2) {
|
|
273
|
+
gasFee = pricingRes.data.f_stair1fee + pricingRes.data.f_stair2fee
|
|
274
|
+
gasAmountApproved = pricingRes.data.oughtamount
|
|
275
|
+
} else if (chargeLength === 3) {
|
|
276
|
+
gasFee = pricingRes.data.f_stair1fee + pricingRes.data.f_stair2fee + pricingRes.data.f_stair3fee
|
|
277
|
+
gasAmountApproved = pricingRes.data.oughtamount
|
|
278
|
+
}
|
|
279
|
+
// 缴费
|
|
280
|
+
const cardSellParams = {
|
|
281
|
+
f_card_id: f_card_id,
|
|
282
|
+
f_pregas: gasAmountApproved,
|
|
283
|
+
f_preamount: gasFee,
|
|
284
|
+
f_totalcost: row.f_total_charge,
|
|
285
|
+
isGasValue: 1,
|
|
286
|
+
f_unit: 'yuan',
|
|
287
|
+
f_write_card: '未写卡',
|
|
288
|
+
f_payment: '银行',
|
|
289
|
+
f_bank_name: row.f_bank_name,
|
|
290
|
+
f_print: '普通收据',
|
|
291
|
+
f_operator: row.f_bank_name,
|
|
292
|
+
f_userinfo_code: row.f_userinfo_code,
|
|
293
|
+
f_userfiles_id: userInfo.data[0].f_userfiles_id,
|
|
294
|
+
f_user_id: userInfo.data[0].f_user_id,
|
|
295
|
+
f_filialeids: `('${row.f_filialeid}')`,
|
|
296
|
+
f_serial_id: row.f_trade_number,
|
|
297
|
+
f_collection: row.f_total_charge,
|
|
298
|
+
f_operate_date: row.delivery_date,
|
|
299
|
+
f_comments: `本次缴费由 ${row.f_operator} 进行单边账补缴操作`
|
|
300
|
+
}
|
|
301
|
+
const res = await this.$resetpost('rs/logic/thirdPay', cardSellParams, {resolveMsg: '补缴成功', rejectMsg: '补缴失败'})
|
|
302
|
+
console.log('缴费结果:', res)
|
|
303
|
+
} else {
|
|
304
|
+
const requestSellData = {
|
|
305
|
+
f_userinfo_code: row.f_userinfo_code,
|
|
306
|
+
f_filialeids: `('${row.f_filialeid}')`,
|
|
307
|
+
f_serial_id: row.f_trade_number,
|
|
308
|
+
f_userfiles_id: row.f_userfiles_id,
|
|
309
|
+
f_payment: '银行',
|
|
310
|
+
f_print: '普通收据',
|
|
311
|
+
f_collection: row.f_total_charge,
|
|
312
|
+
f_bank_name: row.f_bank_name,
|
|
313
|
+
f_unit: 'yuan',
|
|
314
|
+
f_operator: row.f_bank_name,
|
|
315
|
+
f_operate_date: row.delivery_date,
|
|
316
|
+
f_comments: `本次缴费由 ${row.f_operator} 进行单边账补缴操作`
|
|
317
|
+
}
|
|
318
|
+
let url = 'rs/logic/'
|
|
319
|
+
|
|
320
|
+
if (row.f_meter_classify === '机表') {
|
|
321
|
+
console.log('机表补缴')
|
|
322
|
+
url += 'machinePay'
|
|
323
|
+
} else if (row.f_meter_classify === '物联网表') {
|
|
324
|
+
console.log('物联网表补缴')
|
|
325
|
+
url += 'iotPay'
|
|
326
|
+
requestSellData.f_preamount = row.f_total_charge
|
|
327
|
+
requestSellData.f_totalcost = row.f_total_charge
|
|
328
|
+
} else {
|
|
329
|
+
this.$showAlert('气表类型错误,无法进行补缴', 'warning', 3000)
|
|
330
|
+
}
|
|
331
|
+
const res = await this.$resetpost(url, requestSellData, {resolveMsg: '补缴成功', rejectMsg: '补缴失败'})
|
|
332
|
+
console.log('缴费结果:', res)
|
|
333
|
+
}
|
|
334
|
+
this.$refs.paged.$refs.cri.search()
|
|
335
|
+
}
|
|
336
|
+
// })
|
|
337
|
+
},
|
|
338
|
+
events: {
|
|
339
|
+
// 删除Resid数组元素
|
|
340
|
+
'delResid' (val) {
|
|
341
|
+
this.resid.$remove({id: val, f_biobid: ''})
|
|
342
|
+
// this.resid.splice(this.resid.indexOf({id:val,f_biobid:''}),1);
|
|
343
|
+
},
|
|
344
|
+
// 增加Resid数组元素
|
|
345
|
+
'resid' (val) {
|
|
346
|
+
console.log('-=', val)
|
|
347
|
+
this.resid.push({id: val, f_biobid: ''})
|
|
348
|
+
}
|
|
349
|
+
},
|
|
350
|
+
computed: {
|
|
351
|
+
bankname () {
|
|
352
|
+
return [{label: '全部', value: ''}, ...this.$appdata.getParam('银行名称')]
|
|
353
|
+
},
|
|
354
|
+
msg () {
|
|
355
|
+
return [{label: '全部', value: ''}, ...this.$appdata.getParam('对账信息')]
|
|
356
|
+
},
|
|
357
|
+
filiales () {
|
|
358
|
+
return [{label: '全部', value: ''}, ...this.$appdata.getParam('分公司')]
|
|
359
|
+
},
|
|
360
|
+
getCondition () {
|
|
361
|
+
return {
|
|
362
|
+
condition: this.$refs.paged.$refs.cri.condition,
|
|
363
|
+
orderitem: 'delivery_date DESC ',
|
|
364
|
+
startDate: this.$refs.paged.$refs.cri.model.startDate,
|
|
365
|
+
endDate: this.$refs.paged.$refs.cri.model.endDate
|
|
366
|
+
}
|
|
367
|
+
},
|
|
368
|
+
getfield () {
|
|
369
|
+
let data = {}
|
|
370
|
+
this.bodydata.forEach((value, index) => {
|
|
371
|
+
data[this.bodydata[index]] = this.header[index]
|
|
372
|
+
})
|
|
373
|
+
return data
|
|
374
|
+
console.log('field' + data)
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
</script>
|
package/src/filiale/wuan/sale.js
CHANGED
|
@@ -32,4 +32,6 @@ export default function () {
|
|
|
32
32
|
Vue.component('black-list', (resolve) => { require(['./BlackList/BlackList'], resolve) })
|
|
33
33
|
Vue.component('black-list-record', (resolve) => { require(['./BlackList/BlackListRecord'], resolve) })
|
|
34
34
|
Vue.component('black-list-detail', (resolve) => { require(['./BlackList/BlackListDetail'], resolve) })
|
|
35
|
+
// 银行对账
|
|
36
|
+
Vue.component('bank-payment', (resolve) => { require(['./BankPayment'], resolve) })
|
|
35
37
|
}
|
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/jingyang/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
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
File without changes
|