sale-client 4.2.44 → 4.2.46

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.
Files changed (67) hide show
  1. package/.gradle/5.2.1/fileChanges/last-build.bin +0 -0
  2. package/.gradle/5.2.1/fileHashes/fileHashes.lock +0 -0
  3. package/.gradle/5.2.1/gc.properties +0 -0
  4. package/.gradle/8.10/checksums/checksums.lock +0 -0
  5. package/.gradle/8.10/dependencies-accessors/gc.properties +0 -0
  6. package/.gradle/8.10/executionHistory/executionHistory.bin +0 -0
  7. package/.gradle/8.10/executionHistory/executionHistory.lock +0 -0
  8. package/.gradle/8.10/fileChanges/last-build.bin +0 -0
  9. package/.gradle/8.10/fileHashes/fileHashes.bin +0 -0
  10. package/.gradle/8.10/fileHashes/fileHashes.lock +0 -0
  11. package/.gradle/8.10/gc.properties +0 -0
  12. package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  13. package/.gradle/buildOutputCleanup/cache.properties +2 -0
  14. package/.gradle/file-system.probe +0 -0
  15. package/.gradle/vcs-1/gc.properties +0 -0
  16. package/build/dev-server.js +31 -50
  17. package/index.html +2 -7
  18. package/package.json +1 -1
  19. package/src/App.vue +1 -1
  20. package/src/components/revenue/HandManager/MeterBookUser.vue +726 -726
  21. package/src/components/revenue/comprehen/ComprehenOperation/QrPay/QrPaymentDetailed.vue +423 -423
  22. package/src/components/revenue/comprehen/Maintenance/hand/handOperate.vue +469 -469
  23. package/src/components/revenue/machineHandManage/ArrearsQuery.vue +938 -938
  24. package/src/components/webMeter/MeterManage/WebMeterBatchOperationValve.vue +970 -970
  25. package/src/filiale/alashan/eticket/EticketRecordList.vue +428 -428
  26. package/src/filiale/bayan/ChargeList.vue +1010 -1010
  27. package/src/filiale/bayan/StockListmain.vue +543 -543
  28. package/src/filiale/bazhong/UserInfoDetailManageNew.vue +245 -245
  29. package/src/filiale/bazhong/ic_detail/ChangeMeterQueryUser.vue +370 -370
  30. package/src/filiale/bazhong/sale.js +8 -8
  31. package/src/filiale/beifangshiye/OtherChargeNew.vue +625 -625
  32. package/src/filiale/jinhong/CardMeterCenterInner.vue +5 -0
  33. package/src/filiale/jinhong/IOTMeterCenterInner.vue +597 -592
  34. package/src/filiale/jinhong/InsuranceTemp.vue +2 -3
  35. package/src/filiale/jinhong/MachineMeterCenter.vue +5 -0
  36. package/src/filiale/lixianV3/ArrearsQuery.vue +938 -938
  37. package/src/filiale/lixianV3/InsuranceChargesDetails.vue +425 -425
  38. package/src/filiale/meihekou/common/userinfo_detail/ic_detail/MachineRecordQuery.vue +281 -281
  39. package/src/filiale/qianneng/revenue/sms/AccountMessageList.vue +508 -508
  40. package/src/filiale/qingjian/FileUserFiles.vue +5 -2
  41. package/src/filiale/ronghao/ArrearsQuery.vue +974 -974
  42. package/src/filiale/ronghao/CardService.js +2144 -2144
  43. package/src/filiale/ronghao/InsuranceManage.vue +58 -58
  44. package/src/filiale/ronghao/MachineChargeService.js +149 -149
  45. package/src/filiale/ronghao/NoCardMeterCenter.vue +534 -534
  46. package/src/filiale/ronghao/PaymentCode.vue +174 -174
  47. package/src/filiale/ronghao/PriceChangeCompensation/CompensationManage.vue +26 -26
  48. package/src/filiale/ronghao/PriceChangeCompensation/IotCompensation.vue +318 -318
  49. package/src/filiale/ronghao/PriceChangeCompensation/JbCompensation.vue +343 -343
  50. package/src/filiale/ronghao/PriceChangeCompensation/SurplusRecordDetail.vue +74 -74
  51. package/src/filiale/ronghao/ReplaceCardManage.vue +415 -415
  52. package/src/filiale/ronghao/Upload.vue +654 -654
  53. package/src/filiale/ronghao/cardDown.vue +1141 -1141
  54. package/src/filiale/ronghao/changemeterOperate.vue +315 -315
  55. package/src/filiale/ronghao/fillgasSpecific.vue +313 -313
  56. package/src/filiale/ronghao/ic_detail/ChargeRecordQuery.vue +106 -106
  57. package/src/filiale/ronghao/ic_detail/WatchCollection.vue +115 -115
  58. package/src/filiale/ronghao/ic_detail/WebHandQueryUser.vue +411 -411
  59. package/src/filiale/ronghao/machineDown.vue +1176 -1176
  60. package/src/filiale/ronghao/replacementSingleInfoOperation.vue +315 -315
  61. package/src/filiale/ronghao/specificInformation.vue +537 -537
  62. package/src/filiale/yangchun/ChargeList.vue +954 -954
  63. package/src/filiale/yuncheng/changemeterListMaintain.vue +504 -504
  64. package/src/filiale/zhongsheng/BlackListList.vue +293 -293
  65. package/src/filiale/zhongyi/HandQueryUser.vue +389 -389
  66. package/src/main.js +1 -1
  67. package/src/plugins/CardService.js +2217 -2217
@@ -1,370 +1,370 @@
1
- <template>
2
- <div class="flex" style="justify-content: space-between;">
3
- <div @keyup.enter="search" style="">
4
- <criteria-paged :model="model" v-ref:paged>
5
- <criteria @condition-changed='$parent.search' partial='criteria' v-ref:criteria>
6
- <div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
7
- <div class="row">
8
- <div class="col-sm-2 form-group">
9
- <label class="font_normal_body">开始时间</label>
10
- <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_start_date"
11
- class="datepicker"
12
- condition="f_operate_date >= '{} 00:00:00' "
13
- placeholder="起始时间"
14
- style="width:60%"
15
- v-model="model.f_start_date"
16
- ></datepicker>
17
- </div>
18
- <div class="col-sm-2 form-group">
19
- <label class="font_normal_body">结束时间</label>
20
- <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_end_date"
21
- class="datepicker"
22
- condition="f_operate_date <= '{} 23:59:59'"
23
- placeholder="结束时间"
24
- style="width:60%"
25
- v-model="model.f_end_date"
26
- ></datepicker>
27
- </div>
28
- <div class="col-sm-2 form-group">
29
- <label class="font_normal_body">换表类型</label>
30
- <v-select :options='$parent.$parent.changeType' :value.sync="model.f_type"
31
- close-on-select
32
- condition="f_type='{}'"
33
- placeholder='换表类型'
34
- style="width:60%"
35
- v-model="model.f_type"
36
- ></v-select>
37
- </div>
38
- <div class="col-sm-2 form-group">
39
- <label class="font_normal_body">换表状态</label>
40
- <v-select :value.sync="model.f_state" v-model='model.f_state'
41
- style="width:60%"
42
- :options='$parent.$parent.isstates' placeholder='换表状态'
43
- close-on-select
44
- condition="f_state = '{}'"></v-select>
45
- </div>
46
- <div class="col-sm-2 form-group">
47
- <label class="font_normal_body">新表封号</label>
48
- <input type="text" style="width:60%" class="input_search" v-model="model.f_metertitles"
49
- condition="f_metertitles = '{}' " placeholder="新表封号">
50
- </div>
51
- <div style="float: right">
52
- <button @click="search()" class="button_search" style="margin-right: 10px" v-el:cba>查询</button>
53
- <print-data :defaultfield="$parent.$parent.defaultfield" :field="$parent.$parent.fields"
54
- :is-selected="true" :model="$parent.$parent.printModel"
55
- @print-data="$parent.$parent.print()" print-name="换表流水"></print-data>
56
- </div>
57
- </div>
58
- </div>
59
- </criteria>
60
- <data-grid :model="model" class="list_area table_sy" partial='list' v-ref:grid>
61
- <template partial='head'>
62
- <tr>
63
- <th>
64
- <nobr>换表类型</nobr>
65
- </th>
66
- <th>
67
- <nobr>旧表底数</nobr>
68
- </th>
69
- <th>
70
- <nobr>新表底数</nobr>
71
- </th>
72
- <th>
73
- <nobr>旧表剩余</nobr>
74
- </th>
75
- <th>
76
- <nobr>旧表品牌</nobr>
77
- </th>
78
- <th>
79
- <nobr>新表品牌</nobr>
80
- </th>
81
- <th>
82
- <nobr>旧表号</nobr>
83
- </th>
84
- <th>
85
- <nobr>新表号</nobr>
86
- </th>
87
- <th>
88
- <nobr>换表费</nobr>
89
- </th>
90
- <th>
91
- <nobr>操作人</nobr>
92
- </th>
93
- <th>
94
- <nobr>状态</nobr>
95
- </th>
96
- <th>
97
- <nobr>换表人</nobr>
98
- </th>
99
- <th>
100
- <nobr>换表日期</nobr>
101
- </th>
102
- <th>
103
- <nobr>换表原因</nobr>
104
- </th>
105
- <th>
106
- <nobr>新表封号</nobr>
107
- </th>
108
- <th>
109
- <nobr>旧表图片</nobr>
110
- </th>
111
- <th>
112
- <nobr>新表图片</nobr>
113
- </th>
114
- </tr>
115
- </template>
116
- <template partial='body' partial='list' v-ref:grid>
117
- <tr>
118
- <td style="text-align: center;">
119
- <nobr>{{ row.f_type }}</nobr>
120
- </td>
121
- <td style="text-align: center;">
122
- <nobr>{{ row.f_using_base_old }}</nobr>
123
- </td>
124
- <td style="text-align: center;">
125
- <nobr>{{ row.f_initial_base_new }}</nobr>
126
- </td>
127
- <td style="text-align: center;">
128
- <nobr>{{ row.f_remanent_gas }}</nobr>
129
- </td>
130
- <td style="text-align: center;">
131
- <nobr>{{ row.f_meter_brand_old }}</nobr>
132
- </td>
133
- <td style="text-align: center;">
134
- <nobr>{{ row.f_meter_brand }}</nobr>
135
- </td>
136
- <td style="text-align: center;">
137
- <nobr>{{ row.f_meternumber_old }}</nobr>
138
- </td>
139
- <td style="text-align: center;">
140
- <nobr>{{ row.f_meternumber }}</nobr>
141
- </td>
142
- <td style="text-align: center;">
143
- <nobr>{{ row.f_changemeter_fee }}</nobr>
144
- </td>
145
- <td style="text-align: center;">
146
- <nobr>{{ row.f_operator }}</nobr>
147
- </td>
148
- <td style="text-align: center;">
149
- <nobr>{{ row.f_state }}</nobr>
150
- </td>
151
- <td style="text-align: center;">
152
- <nobr>{{ row.f_change_operator }}</nobr>
153
- </td>
154
- <td style="text-align: center;">
155
- <nobr>{{ row.f_operate_date }}</nobr>
156
- </td>
157
- <td style="text-align: center;">
158
- <nobr>
159
- <span v-if="row.f_changetables_reason">{{ row.f_changetables_reason }}/</span>
160
- <span v-if="row.f_reason">{{ row.f_reason }}/</span>
161
- <span v-if="row.f_othereason">{{ row.f_othereason }}/</span>
162
- <span v-if="row.f_comments">{{ row.f_comments }}</span>
163
- </nobr>
164
- </td>
165
- <td style="text-align: center;">
166
- <nobr>{{ row.f_metertitles }}</nobr>
167
- </td>
168
- <td style="text-align: center;">
169
- <nobr>
170
- <button v-if="row.f_table_path_old"
171
- class="btn btn-link"
172
- @click.stop="$parent.$parent.$parent.imgShow(row.f_table_path_old)">
173
- 旧表图片
174
- </button>
175
- </nobr>
176
- </td>
177
- <td style="text-align: center;">
178
- <nobr>
179
- <button v-if="row.f_table_path_new"
180
- class="btn btn-link"
181
- @click.stop="$parent.$parent.$parent.imgShow(row.f_table_path_new)">
182
- 新表图片
183
- </button>
184
- </nobr>
185
- </td>
186
- </tr>
187
- </template>
188
- <template partial='foot'></template>
189
- </data-grid>
190
- </criteria-paged>
191
- </div>
192
- <modal :show.sync="imageShow" v-ref:modal :backdrop="true" coverstyle="modalContentRight">
193
- <header slot="modal-header" class="modal-header">
194
- 抄表图像识别照片
195
- </header>
196
- <article slot="modal-body" class="modal-body">
197
- <div class="from-group">
198
- <img-self-sale-plus :src="imageSrc" :list="imageSrc" :width="750" :height="750">
199
- </img-self-sale-plus>
200
- </div>
201
- </article>
202
- <footer slot="modal-footer" class="modal-footer">
203
- <button type="button" class="btn btn-success" @click='imgClose'>关闭</button>
204
- </footer>
205
- </modal>
206
- </div>
207
- </template>
208
-
209
- <script>
210
- import {HttpResetClass, PagedList} from 'vue-client'
211
-
212
- export default {
213
- title: '换表查询',
214
- data () {
215
- return {
216
- condition: '1=1',
217
- model: new PagedList('api/af-revenue/sql/sale_ChangeMeterQuery', 20),
218
- // 控制单选
219
- radio: [],
220
- // 选中的页
221
- all: [],
222
- imageSrc: '',
223
- imageShow: false,
224
- isstates: this.$appdata.getParam('是否有效') ? [{
225
- label: '全部',
226
- value: ''
227
- }, ...this.$appdata.getParam('是否有效')] : [],
228
- // row数据
229
- rowsdata: [],
230
- fields: {
231
- 'f_userinfo_code': '客户编号',
232
- 'f_user_name': '客户姓名',
233
- 'f_type': '换表类型',
234
- 'f_meter_base': '旧表底数',
235
- 'f_newmeter_base': '新表底数',
236
- 'f_changemeter_fee': '换表费',
237
- 'f_operator': '操作员',
238
- 'f_metertitles': '新表封号',
239
- 'f_changemeter_date': '换表日期'
240
- },
241
- defaultfield: [
242
- 'f_userinfo_code', 'f_user_name', 'f_type', 'f_meter_base', 'f_newmeter_base', 'f_changemeter_fee', 'f_operator', 'f_changemeter_date'
243
- ],
244
- printModel: {
245
- rows: []
246
- }
247
- }
248
- },
249
- props: ['row'],
250
- ready () {
251
- this.$refs.paged.$refs.criteria.search()
252
- },
253
- methods: {
254
- async search () {
255
- this.condition = `${this.$refs.paged.$refs.criteria.condition} and f_user_id = '${this.row.f_user_id}'`
256
- this.model.search(this.condition, this.model)
257
- let http = new HttpResetClass()
258
- let res = await http.load('POST', 'api/af-revenue/sql/sale_ChangeMeterQuery', {
259
- data: {
260
- condition: this.condition
261
- }
262
- }, {resolveMsg: null, rejectMsg: null})
263
- this.printModel.rows = res.data
264
- },
265
- // 多选框初始化
266
- selectInit () {
267
- this.rowsdata = []
268
- this.all = []
269
- this.radio = []
270
- },
271
- print () {
272
- this.selectInit()
273
- },
274
- imgClose () {
275
- this.imageShow = false
276
- this.imageSrc = ''
277
- },
278
- imgShow (val) {
279
- this.imageSrc = `api/af-revenue/file/image/` + val
280
- this.imageShow = true
281
- },
282
- select () {
283
- let index = this.model.pageIndex - 1
284
- if (!this.radio[index]) {
285
- this.radio.$set(index, [])
286
- }
287
- if (this.all[index]) {
288
- // 数据
289
- this.rowsdata[index] = Object.assign([], this.model.rows)
290
- // 勾选
291
- for (let i = 0; i < this.model.rows.length; i++) {
292
- this.radio[index].$set(i, true)
293
- }
294
- } else {
295
- // 数据
296
- this.rowsdata[index] = []
297
- // 不勾选
298
- for (let i = 0; i < this.model.rows.length; i++) {
299
- this.radio[index].$set(i, false)
300
- }
301
- }
302
- let z = 0
303
- for (let i = 0; i < this.all.length; i++) {
304
- for (let j = 0; this.rowsdata[i] && j < this.rowsdata[i].length; j++) {
305
- this.printModel.rows[z++] = this.rowsdata[i][j]
306
- }
307
- }
308
- },
309
- selectOne (event, row, i) {
310
- let index = this.model.pageIndex - 1
311
- if (!this.rowsdata[index]) {
312
- this.rowsdata[index] = []
313
- }
314
- if (!this.radio[index]) {
315
- this.radio.$set(index, [])
316
- }
317
- if (event.target.checked) {
318
- // 数据
319
- this.rowsdata[index][i] = row
320
- // 勾选
321
- this.radio[index].$set(i, true)
322
- // 判断是否全部选中
323
- var allState = true
324
- if (this.model.rows.length != this.radio[index].length) {
325
- allState = false
326
- }
327
- for (var state of this.radio[index]) {
328
- if (!state) {
329
- allState = false
330
- }
331
- }
332
- if (allState) {
333
- this.all.$set(index, true)
334
- } else {
335
- this.all.$set(index, false)
336
- }
337
- } else {
338
- // 数据
339
- this.rowsdata[index][i] = []
340
- // 不勾选
341
- this.radio[index].$set(i, false)
342
- // 任意取消一个则全选状态设为false
343
- this.all.$set(index, false)
344
- }
345
- let z = 0
346
- this.printModel.rows = []
347
- for (let i = 0; i < this.all.length; i++) {
348
- for (let j = 0; this.rowsdata[i] && j < this.rowsdata[i].length; j++) {
349
- if (this.rowsdata[i][j] && this.rowsdata[i][j].f_user_id) {
350
- this.printModel.rows[z++] = this.rowsdata[i][j]
351
- }
352
- }
353
- }
354
- }
355
- },
356
- computed: {
357
- ischecked () {
358
- return function (index, i) {
359
- if (!this.radio[index]) {
360
- return false
361
- }
362
- return this.radio[index][i]
363
- }
364
- },
365
- changeType () {
366
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('换表类型')]
367
- }
368
- }
369
- }
370
- </script>
1
+ <template>
2
+ <div class="flex" style="justify-content: space-between;">
3
+ <div @keyup.enter="search" style="">
4
+ <criteria-paged :model="model" v-ref:paged>
5
+ <criteria @condition-changed='$parent.search' partial='criteria' v-ref:criteria>
6
+ <div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
7
+ <div class="row">
8
+ <div class="col-sm-2 form-group">
9
+ <label class="font_normal_body">开始时间</label>
10
+ <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_start_date"
11
+ class="datepicker"
12
+ condition="f_operate_date >= '{} 00:00:00' "
13
+ placeholder="起始时间"
14
+ style="width:60%"
15
+ v-model="model.f_start_date"
16
+ ></datepicker>
17
+ </div>
18
+ <div class="col-sm-2 form-group">
19
+ <label class="font_normal_body">结束时间</label>
20
+ <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_end_date"
21
+ class="datepicker"
22
+ condition="f_operate_date <= '{} 23:59:59'"
23
+ placeholder="结束时间"
24
+ style="width:60%"
25
+ v-model="model.f_end_date"
26
+ ></datepicker>
27
+ </div>
28
+ <div class="col-sm-2 form-group">
29
+ <label class="font_normal_body">换表类型</label>
30
+ <v-select :options='$parent.$parent.changeType' :value.sync="model.f_type"
31
+ close-on-select
32
+ condition="f_type='{}'"
33
+ placeholder='换表类型'
34
+ style="width:60%"
35
+ v-model="model.f_type"
36
+ ></v-select>
37
+ </div>
38
+ <div class="col-sm-2 form-group">
39
+ <label class="font_normal_body">换表状态</label>
40
+ <v-select :value.sync="model.f_state" v-model='model.f_state'
41
+ style="width:60%"
42
+ :options='$parent.$parent.isstates' placeholder='换表状态'
43
+ close-on-select
44
+ condition="f_state = '{}'"></v-select>
45
+ </div>
46
+ <div class="col-sm-2 form-group">
47
+ <label class="font_normal_body">新表封号</label>
48
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_metertitles"
49
+ condition="f_metertitles = '{}' " placeholder="新表封号">
50
+ </div>
51
+ <div style="float: right">
52
+ <button @click="search()" class="button_search" style="margin-right: 10px" v-el:cba>查询</button>
53
+ <print-data :defaultfield="$parent.$parent.defaultfield" :field="$parent.$parent.fields"
54
+ :is-selected="true" :model="$parent.$parent.printModel"
55
+ @print-data="$parent.$parent.print()" print-name="换表流水"></print-data>
56
+ </div>
57
+ </div>
58
+ </div>
59
+ </criteria>
60
+ <data-grid :model="model" class="list_area table_sy" partial='list' v-ref:grid>
61
+ <template partial='head'>
62
+ <tr>
63
+ <th>
64
+ <nobr>换表类型</nobr>
65
+ </th>
66
+ <th>
67
+ <nobr>旧表底数</nobr>
68
+ </th>
69
+ <th>
70
+ <nobr>新表底数</nobr>
71
+ </th>
72
+ <th>
73
+ <nobr>旧表剩余</nobr>
74
+ </th>
75
+ <th>
76
+ <nobr>旧表品牌</nobr>
77
+ </th>
78
+ <th>
79
+ <nobr>新表品牌</nobr>
80
+ </th>
81
+ <th>
82
+ <nobr>旧表号</nobr>
83
+ </th>
84
+ <th>
85
+ <nobr>新表号</nobr>
86
+ </th>
87
+ <th>
88
+ <nobr>换表费</nobr>
89
+ </th>
90
+ <th>
91
+ <nobr>操作人</nobr>
92
+ </th>
93
+ <th>
94
+ <nobr>状态</nobr>
95
+ </th>
96
+ <th>
97
+ <nobr>换表人</nobr>
98
+ </th>
99
+ <th>
100
+ <nobr>换表日期</nobr>
101
+ </th>
102
+ <th>
103
+ <nobr>换表原因</nobr>
104
+ </th>
105
+ <th>
106
+ <nobr>新表封号</nobr>
107
+ </th>
108
+ <th>
109
+ <nobr>旧表图片</nobr>
110
+ </th>
111
+ <th>
112
+ <nobr>新表图片</nobr>
113
+ </th>
114
+ </tr>
115
+ </template>
116
+ <template partial='body' partial='list' v-ref:grid>
117
+ <tr>
118
+ <td style="text-align: center;">
119
+ <nobr>{{ row.f_type }}</nobr>
120
+ </td>
121
+ <td style="text-align: center;">
122
+ <nobr>{{ row.f_using_base_old }}</nobr>
123
+ </td>
124
+ <td style="text-align: center;">
125
+ <nobr>{{ row.f_initial_base_new }}</nobr>
126
+ </td>
127
+ <td style="text-align: center;">
128
+ <nobr>{{ row.f_remanent_gas }}</nobr>
129
+ </td>
130
+ <td style="text-align: center;">
131
+ <nobr>{{ row.f_meter_brand_old }}</nobr>
132
+ </td>
133
+ <td style="text-align: center;">
134
+ <nobr>{{ row.f_meter_brand }}</nobr>
135
+ </td>
136
+ <td style="text-align: center;">
137
+ <nobr>{{ row.f_meternumber_old }}</nobr>
138
+ </td>
139
+ <td style="text-align: center;">
140
+ <nobr>{{ row.f_meternumber }}</nobr>
141
+ </td>
142
+ <td style="text-align: center;">
143
+ <nobr>{{ row.f_changemeter_fee }}</nobr>
144
+ </td>
145
+ <td style="text-align: center;">
146
+ <nobr>{{ row.f_operator }}</nobr>
147
+ </td>
148
+ <td style="text-align: center;">
149
+ <nobr>{{ row.f_state }}</nobr>
150
+ </td>
151
+ <td style="text-align: center;">
152
+ <nobr>{{ row.f_change_operator }}</nobr>
153
+ </td>
154
+ <td style="text-align: center;">
155
+ <nobr>{{ row.f_operate_date }}</nobr>
156
+ </td>
157
+ <td style="text-align: center;">
158
+ <nobr>
159
+ <span v-if="row.f_changetables_reason">{{ row.f_changetables_reason }}/</span>
160
+ <span v-if="row.f_reason">{{ row.f_reason }}/</span>
161
+ <span v-if="row.f_othereason">{{ row.f_othereason }}/</span>
162
+ <span v-if="row.f_comments">{{ row.f_comments }}</span>
163
+ </nobr>
164
+ </td>
165
+ <td style="text-align: center;">
166
+ <nobr>{{ row.f_metertitles }}</nobr>
167
+ </td>
168
+ <td style="text-align: center;">
169
+ <nobr>
170
+ <button v-if="row.f_table_path_old"
171
+ class="btn btn-link"
172
+ @click.stop="$parent.$parent.$parent.imgShow(row.f_table_path_old)">
173
+ 旧表图片
174
+ </button>
175
+ </nobr>
176
+ </td>
177
+ <td style="text-align: center;">
178
+ <nobr>
179
+ <button v-if="row.f_table_path_new"
180
+ class="btn btn-link"
181
+ @click.stop="$parent.$parent.$parent.imgShow(row.f_table_path_new)">
182
+ 新表图片
183
+ </button>
184
+ </nobr>
185
+ </td>
186
+ </tr>
187
+ </template>
188
+ <template partial='foot'></template>
189
+ </data-grid>
190
+ </criteria-paged>
191
+ </div>
192
+ <modal :show.sync="imageShow" v-ref:modal :backdrop="true" coverstyle="modalContentRight">
193
+ <header slot="modal-header" class="modal-header">
194
+ 抄表图像识别照片
195
+ </header>
196
+ <article slot="modal-body" class="modal-body">
197
+ <div class="from-group">
198
+ <img-self-sale-plus :src="imageSrc" :list="imageSrc" :width="750" :height="750">
199
+ </img-self-sale-plus>
200
+ </div>
201
+ </article>
202
+ <footer slot="modal-footer" class="modal-footer">
203
+ <button type="button" class="btn btn-success" @click='imgClose'>关闭</button>
204
+ </footer>
205
+ </modal>
206
+ </div>
207
+ </template>
208
+
209
+ <script>
210
+ import {HttpResetClass, PagedList} from 'vue-client'
211
+
212
+ export default {
213
+ title: '换表查询',
214
+ data () {
215
+ return {
216
+ condition: '1=1',
217
+ model: new PagedList('api/af-revenue/sql/sale_ChangeMeterQuery', 20),
218
+ // 控制单选
219
+ radio: [],
220
+ // 选中的页
221
+ all: [],
222
+ imageSrc: '',
223
+ imageShow: false,
224
+ isstates: this.$appdata.getParam('是否有效') ? [{
225
+ label: '全部',
226
+ value: ''
227
+ }, ...this.$appdata.getParam('是否有效')] : [],
228
+ // row数据
229
+ rowsdata: [],
230
+ fields: {
231
+ 'f_userinfo_code': '客户编号',
232
+ 'f_user_name': '客户姓名',
233
+ 'f_type': '换表类型',
234
+ 'f_meter_base': '旧表底数',
235
+ 'f_newmeter_base': '新表底数',
236
+ 'f_changemeter_fee': '换表费',
237
+ 'f_operator': '操作员',
238
+ 'f_metertitles': '新表封号',
239
+ 'f_changemeter_date': '换表日期'
240
+ },
241
+ defaultfield: [
242
+ 'f_userinfo_code', 'f_user_name', 'f_type', 'f_meter_base', 'f_newmeter_base', 'f_changemeter_fee', 'f_operator', 'f_changemeter_date'
243
+ ],
244
+ printModel: {
245
+ rows: []
246
+ }
247
+ }
248
+ },
249
+ props: ['row'],
250
+ ready () {
251
+ this.$refs.paged.$refs.criteria.search()
252
+ },
253
+ methods: {
254
+ async search () {
255
+ this.condition = `${this.$refs.paged.$refs.criteria.condition} and f_user_id = '${this.row.f_user_id}'`
256
+ this.model.search(this.condition, this.model)
257
+ let http = new HttpResetClass()
258
+ let res = await http.load('POST', 'api/af-revenue/sql/sale_ChangeMeterQuery', {
259
+ data: {
260
+ condition: this.condition
261
+ }
262
+ }, {resolveMsg: null, rejectMsg: null})
263
+ this.printModel.rows = res.data
264
+ },
265
+ // 多选框初始化
266
+ selectInit () {
267
+ this.rowsdata = []
268
+ this.all = []
269
+ this.radio = []
270
+ },
271
+ print () {
272
+ this.selectInit()
273
+ },
274
+ imgClose () {
275
+ this.imageShow = false
276
+ this.imageSrc = ''
277
+ },
278
+ imgShow (val) {
279
+ this.imageSrc = `api/af-revenue/file/image/` + val
280
+ this.imageShow = true
281
+ },
282
+ select () {
283
+ let index = this.model.pageIndex - 1
284
+ if (!this.radio[index]) {
285
+ this.radio.$set(index, [])
286
+ }
287
+ if (this.all[index]) {
288
+ // 数据
289
+ this.rowsdata[index] = Object.assign([], this.model.rows)
290
+ // 勾选
291
+ for (let i = 0; i < this.model.rows.length; i++) {
292
+ this.radio[index].$set(i, true)
293
+ }
294
+ } else {
295
+ // 数据
296
+ this.rowsdata[index] = []
297
+ // 不勾选
298
+ for (let i = 0; i < this.model.rows.length; i++) {
299
+ this.radio[index].$set(i, false)
300
+ }
301
+ }
302
+ let z = 0
303
+ for (let i = 0; i < this.all.length; i++) {
304
+ for (let j = 0; this.rowsdata[i] && j < this.rowsdata[i].length; j++) {
305
+ this.printModel.rows[z++] = this.rowsdata[i][j]
306
+ }
307
+ }
308
+ },
309
+ selectOne (event, row, i) {
310
+ let index = this.model.pageIndex - 1
311
+ if (!this.rowsdata[index]) {
312
+ this.rowsdata[index] = []
313
+ }
314
+ if (!this.radio[index]) {
315
+ this.radio.$set(index, [])
316
+ }
317
+ if (event.target.checked) {
318
+ // 数据
319
+ this.rowsdata[index][i] = row
320
+ // 勾选
321
+ this.radio[index].$set(i, true)
322
+ // 判断是否全部选中
323
+ var allState = true
324
+ if (this.model.rows.length != this.radio[index].length) {
325
+ allState = false
326
+ }
327
+ for (var state of this.radio[index]) {
328
+ if (!state) {
329
+ allState = false
330
+ }
331
+ }
332
+ if (allState) {
333
+ this.all.$set(index, true)
334
+ } else {
335
+ this.all.$set(index, false)
336
+ }
337
+ } else {
338
+ // 数据
339
+ this.rowsdata[index][i] = []
340
+ // 不勾选
341
+ this.radio[index].$set(i, false)
342
+ // 任意取消一个则全选状态设为false
343
+ this.all.$set(index, false)
344
+ }
345
+ let z = 0
346
+ this.printModel.rows = []
347
+ for (let i = 0; i < this.all.length; i++) {
348
+ for (let j = 0; this.rowsdata[i] && j < this.rowsdata[i].length; j++) {
349
+ if (this.rowsdata[i][j] && this.rowsdata[i][j].f_user_id) {
350
+ this.printModel.rows[z++] = this.rowsdata[i][j]
351
+ }
352
+ }
353
+ }
354
+ }
355
+ },
356
+ computed: {
357
+ ischecked () {
358
+ return function (index, i) {
359
+ if (!this.radio[index]) {
360
+ return false
361
+ }
362
+ return this.radio[index][i]
363
+ }
364
+ },
365
+ changeType () {
366
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('换表类型')]
367
+ }
368
+ }
369
+ }
370
+ </script>