sale-client 4.2.94 → 4.2.95

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 (63) 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/.npmignore +12 -0
  17. package/build/dev-server.js +34 -50
  18. package/index.html +2 -7
  19. package/package.json +1 -1
  20. package/src/.npmignore +1 -0
  21. package/src/App.vue +1 -1
  22. package/src/components/revenue/HandManager/MeterBookUser.vue +726 -726
  23. package/src/components/revenue/comprehen/ComprehenOperation/QrPay/QrPaymentDetailed.vue +423 -423
  24. package/src/components/revenue/comprehen/Maintenance/hand/handOperate.vue +469 -469
  25. package/src/components/revenue/machineHandManage/ArrearsQuery.vue +938 -938
  26. package/src/filiale/alashan/eticket/EticketRecordList.vue +428 -428
  27. package/src/filiale/bayan/ChargeList.vue +1010 -1010
  28. package/src/filiale/bayan/StockListmain.vue +543 -543
  29. package/src/filiale/bazhong/UserInfoDetailManageNew.vue +245 -245
  30. package/src/filiale/bazhong/ic_detail/ChangeMeterQueryUser.vue +370 -370
  31. package/src/filiale/bazhong/sale.js +8 -8
  32. package/src/filiale/beifangshiye/OtherChargeNew.vue +625 -625
  33. package/src/filiale/lixianV3/ArrearsQuery.vue +938 -938
  34. package/src/filiale/lixianV3/InsuranceChargesDetails.vue +425 -425
  35. package/src/filiale/meihekou/common/userinfo_detail/ic_detail/MachineRecordQuery.vue +281 -281
  36. package/src/filiale/ronghao/ArrearsQuery.vue +974 -974
  37. package/src/filiale/ronghao/CardService.js +2144 -2144
  38. package/src/filiale/ronghao/InsuranceManage.vue +58 -58
  39. package/src/filiale/ronghao/MachineChargeService.js +149 -149
  40. package/src/filiale/ronghao/PaymentCode.vue +174 -174
  41. package/src/filiale/ronghao/PriceChangeCompensation/CompensationManage.vue +26 -26
  42. package/src/filiale/ronghao/PriceChangeCompensation/IotCompensation.vue +318 -318
  43. package/src/filiale/ronghao/PriceChangeCompensation/JbCompensation.vue +343 -343
  44. package/src/filiale/ronghao/PriceChangeCompensation/SurplusRecordDetail.vue +74 -74
  45. package/src/filiale/ronghao/ReplaceCardManage.vue +415 -415
  46. package/src/filiale/ronghao/Upload.vue +654 -654
  47. package/src/filiale/ronghao/cardDown.vue +1141 -1141
  48. package/src/filiale/ronghao/changemeterOperate.vue +315 -315
  49. package/src/filiale/ronghao/fillgasSpecific.vue +313 -313
  50. package/src/filiale/ronghao/ic_detail/ChargeRecordQuery.vue +106 -106
  51. package/src/filiale/ronghao/ic_detail/WatchCollection.vue +115 -115
  52. package/src/filiale/ronghao/ic_detail/WebHandQueryUser.vue +411 -411
  53. package/src/filiale/ronghao/machineDown.vue +1176 -1176
  54. package/src/filiale/ronghao/replacementSingleInfoOperation.vue +315 -315
  55. package/src/filiale/ronghao/specificInformation.vue +537 -537
  56. package/src/filiale/xinkang/UserEssentialInfoTest.vue +383 -107
  57. package/src/filiale/xinkang/sale.js +2 -2
  58. package/src/filiale/yangchun/ChargeList.vue +954 -954
  59. package/src/filiale/yuncheng/changemeterListMaintain.vue +504 -504
  60. package/src/filiale/zhongsheng/BlackListList.vue +293 -293
  61. package/src/filiale/zhongyi/HandQueryUser.vue +389 -389
  62. package/src/main.js +2 -2
  63. package/yarn.lock +12221 -0
@@ -1,281 +1,281 @@
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
-
7
- <div class="form-horizontal select-overspread container-fluid auto " novalidate partial>
8
- <div class="row">
9
-
10
- <div class="col-sm-2 form-group">
11
- <label class="font_normal_body">开始时间</label>
12
- <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_start_date"
13
- class="datepicker"
14
- condition="f_operate_date >= '{} 00:00:00' "
15
- placeholder="起始时间"
16
- style="width:60%"
17
- v-model="model.f_start_date"
18
- ></datepicker>
19
- </div>
20
- <div class="col-sm-2 form-group" >
21
- <label class="font_normal_body" >结束时间</label>
22
- <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_end_date"
23
- class="datepicker"
24
- condition="f_operate_date <= '{} 23:59:59' "
25
- placeholder="结束时间"
26
- style="width:60%"
27
- v-model="model.f_end_date"
28
- ></datepicker>
29
- </div>
30
- <div class="col-sm-2 form-group">
31
- <label class="font_normal_body">是否有效</label>
32
- <v-select :value.sync="model.f_state" v-model='model.f_state'
33
- style="width:60%"
34
- :options='$parent.$parent.isstates' placeholder='是否有效'
35
- close-on-select
36
- condition="f_state = '{}'"></v-select>
37
- </div>
38
-
39
-
40
- <div style="float: right">
41
- <button @click="search()" class="button_search" style="margin-right: 10px" v-el:cba>查询</button>
42
- <print-data :defaultfield="$parent.$parent.defaultfield" :field="$parent.$parent.fields" :printview="true" :is-selected="true" :model="$parent.$parent.model"
43
- @print-close="$parent.$parent.print()" @print-data="$parent.$parent.print()" print-name="购气流水"></print-data>
44
- <export-excel
45
- :data="{condition: $parent.$parent.model.condition}"
46
- :field="$parent.$parent.fields"
47
- sqlurl="api/af-revenue/logic/saleExport"sql-name="machineRecordQuery"
48
- template-name='机表流水查询'
49
- :choose-col="true">
50
- </export-excel>
51
- </div>
52
- </div>
53
-
54
- </div>
55
- </criteria>
56
- <data-grid :model="model" class="list_area table_sy" partial='list' v-ref:grid>
57
- <template partial='head'>
58
- <tr>
59
- <th><nobr>用户编号</nobr></th>
60
- <th><nobr>姓名</nobr></th>
61
- <th><nobr>住址</nobr></th>
62
- <th><nobr>上期底数</nobr></th>
63
- <th><nobr>本期底数</nobr></th>
64
- <th><nobr>气量</nobr></th>
65
- <th><nobr>应交</nobr></th>
66
- <th><nobr>缴费金额 </nobr></th>
67
- <th><nobr>上期结余</nobr></th>
68
- <th><nobr>本期结余</nobr></th>
69
- <th><nobr>操作类型</nobr></th>
70
- <th><nobr>操作员 </nobr></th>
71
- <th><nobr>操作时间 </nobr></th>
72
- <th><nobr>状态 </nobr></th>
73
- <th><nobr>备注</nobr></th>
74
- </tr>
75
- </template>
76
- <template partial='body' partial='list' v-ref:grid>
77
- <tr >
78
- <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_userinfo_code}}</td>
79
- <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_user_name}}</td>
80
- <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_address}}</td>
81
- <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_last_tablebase}}</td>
82
- <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_tablebase}}</td>
83
- <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_type== '机表收费'? '' : row.gas}}</td>
84
- <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center;white-space:nowrap;">{{row.f_type == '机表收费'? '' : row.fee}}</td>
85
- <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center;white-space:nowrap;">{{row.f_type == '抄表记录'? '' : row.f_collection}}</td>
86
- <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center;white-space:nowrap;">{{row.f_balance}}</td>
87
- <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center;white-space:nowrap;">{{ row.f_curbalance }}</td>
88
- <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_type}}</td>
89
- <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_operator}}</td>
90
- <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_operate_date}}</td>
91
- <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_state}}</td>
92
- <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_comments}}</td>
93
- </tr>
94
- </template>
95
- <template partial='foot'></template>
96
- </data-grid>
97
- </criteria-paged>
98
- </div>
99
- <table class="table-hover">
100
- <tr class="table-bordered" style="position: relative">
101
- <td
102
- style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">
103
- 汇总信息
104
- </td>
105
- <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px">
106
- 气量合计:&emsp;{{model.sums.gas.toFixed(2)}}
107
- </td>
108
- <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px">
109
- 金额合计:&emsp;{{model.sums.fee.toFixed(2)}}
110
- </td>
111
- <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px">
112
- 缴费合计:&emsp;{{model.sums.collection.toFixed(2)}}
113
- </td>
114
- </tr>
115
- </table>
116
- </div>
117
- </template>
118
-
119
- <script>
120
- import {HttpResetClass, PagedList} from 'vue-client'
121
-
122
- export default {
123
- title: '操作查询',
124
- data () {
125
- return {
126
- condition: '1=1',
127
- model: new PagedList('api/af-revenue/sql/machineRecordQuery', 20, {}, {
128
- fee: 0,
129
- gas: 0
130
- }),
131
- isstates: this.$appdata.getParam('是否有效') ? [{
132
- label: '全部',
133
- value: ''
134
- }, ...this.$appdata.getParam('是否有效')] : [],
135
- // 控制单选
136
- radio: [],
137
- // 选中的页
138
- all: [],
139
- searchValue: 'f_userfiles_id',
140
- // row数据
141
- rowsdata: [],
142
- fields: {'f_userinfo_code': '客户编号', 'f_user_name': '客户姓名', 'f_address': '地址','f_last_tablebase': '上期底数','f_tablebase': '本期底数', 'fee': '金额', 'gas': '气量', 'f_type': '类型', 'f_operator': '操作员', 'f_operate_date': '操作时间'},
143
- defaultfield: [
144
- 'f_userinfo_code', 'f_user_name', 'fee', 'gas', 'f_type', 'f_operate_date'
145
- ],
146
- printModel: {
147
- rows: []
148
- }
149
- }
150
- },
151
- props: ['row'],
152
- ready () {
153
- this.$refs.paged.$refs.criteria.model.f_state = ['有效']
154
- this.$refs.paged.$refs.criteria.search()
155
- },
156
- methods: {
157
- async search () {
158
- this.condition = `${this.$refs.paged.$refs.criteria.condition} and ${this.searchValue} = '${this.row[this.searchValue]}' `
159
- this.model.search(this.condition, this.model)
160
- let http = new HttpResetClass()
161
- let res = await http.load('POST', 'api/af-revenue/sql/machineRecordQuery', {
162
- data: {
163
- condition: this.condition
164
- }
165
- }, {resolveMsg: null, rejectMsg: null})
166
- // 计算不包含 "机表收费" 的 gas 总和
167
- let gasTotal = res.data.reduce((sum, row) => {
168
- return row.f_type === '机表收费' ? sum : sum + (row.gas || 0);
169
- }, 0);
170
-
171
- // 计算费用总和
172
- let feeTotal = res.data.reduce((sum, row) => {
173
- return row.f_type === '机表收费' ? sum : sum + (row.fee || 0);
174
- }, 0);
175
- // 计算缴费总和
176
- let collectionTotal = res.data.reduce((sum, row) => {
177
- return sum + (row.f_collection || 0)
178
- }, 0)
179
-
180
- this.printModel.rows = res.data
181
- this.model.sums = {
182
- gas: gasTotal,
183
- fee: feeTotal,
184
- collection: collectionTotal
185
- }
186
- },
187
- // 多选框初始化
188
- selectInit () {
189
- this.rowsdata = []
190
- this.all = []
191
- this.radio = []
192
- },
193
- print () {
194
- this.selectInit()
195
- },
196
- select () {
197
- let index = this.model.pageIndex - 1
198
- if (!this.radio[index]) {
199
- this.radio.$set(index, [])
200
- }
201
- if (this.all[index]) {
202
- // 数据
203
- this.rowsdata[index] = Object.assign([], this.model.rows)
204
- // 勾选
205
- for (var i = 0; i < this.model.rows.length; i++) {
206
- this.radio[index].$set(i, true)
207
- }
208
- } else {
209
- // 数据
210
- this.rowsdata[index] = []
211
- // 不勾选
212
- for (var i = 0; i < this.model.rows.length; i++) {
213
- this.radio[index].$set(i, false)
214
- }
215
- }
216
- let z = 0
217
- this.printModel.rows = []
218
- for (let i = 0; i < this.all.length; i++) {
219
- for (let j = 0; this.rowsdata[i] && j < this.rowsdata[i].length; j++) {
220
- if (this.rowsdata[i][j] && this.rowsdata[i][j].f_user_id) {
221
- this.printModel.rows[z++] = this.rowsdata[i][j]
222
- }
223
- }
224
- }
225
- },
226
- selectOne (event, row, i) {
227
- let index = this.model.pageIndex - 1
228
- if (!this.rowsdata[index]) {
229
- this.rowsdata[index] = []
230
- }
231
- if (!this.radio[index]) {
232
- this.radio.$set(index, [])
233
- }
234
- if (event.target.checked) {
235
- // 数据
236
- this.rowsdata[index][i] = row
237
- // 勾选
238
- this.radio[index].$set(i, true)
239
- // 判断是否全部选中
240
- var allState = true
241
- if (this.model.rows.length != this.radio[index].length) {
242
- allState = false
243
- }
244
- for (var state of this.radio[index]) {
245
- if (!state) {
246
- allState = false
247
- }
248
- }
249
- this.all.$set(index, allState)
250
- } else {
251
- // 数据
252
- this.rowsdata[index][i] = []
253
- // 不勾选
254
- this.radio[index].$set(i, false)
255
- // 任意取消一个则全选状态设为false
256
- this.all.$set(index, false)
257
- }
258
- let z = 0
259
- this.printModel.rows = []
260
- for (let i = 0; i < this.all.length; i++) {
261
- for (let j = 0; this.rowsdata[i] && j < this.rowsdata[i].length; j++) {
262
- if (this.rowsdata[i][j] && this.rowsdata[i][j].f_user_id) {
263
- this.printModel.rows[z++] = this.rowsdata[i][j]
264
- }
265
- }
266
- }
267
- }
268
- },
269
- computed: {
270
- ischecked () {
271
- return function (index, i) {
272
- if (!this.radio[index]) {
273
- return false
274
- }
275
- return this.radio[index][i]
276
- }
277
- }
278
- }
279
- }
280
- </script>
281
-
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
+
7
+ <div class="form-horizontal select-overspread container-fluid auto " novalidate partial>
8
+ <div class="row">
9
+
10
+ <div class="col-sm-2 form-group">
11
+ <label class="font_normal_body">开始时间</label>
12
+ <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_start_date"
13
+ class="datepicker"
14
+ condition="f_operate_date >= '{} 00:00:00' "
15
+ placeholder="起始时间"
16
+ style="width:60%"
17
+ v-model="model.f_start_date"
18
+ ></datepicker>
19
+ </div>
20
+ <div class="col-sm-2 form-group" >
21
+ <label class="font_normal_body" >结束时间</label>
22
+ <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_end_date"
23
+ class="datepicker"
24
+ condition="f_operate_date <= '{} 23:59:59' "
25
+ placeholder="结束时间"
26
+ style="width:60%"
27
+ v-model="model.f_end_date"
28
+ ></datepicker>
29
+ </div>
30
+ <div class="col-sm-2 form-group">
31
+ <label class="font_normal_body">是否有效</label>
32
+ <v-select :value.sync="model.f_state" v-model='model.f_state'
33
+ style="width:60%"
34
+ :options='$parent.$parent.isstates' placeholder='是否有效'
35
+ close-on-select
36
+ condition="f_state = '{}'"></v-select>
37
+ </div>
38
+
39
+
40
+ <div style="float: right">
41
+ <button @click="search()" class="button_search" style="margin-right: 10px" v-el:cba>查询</button>
42
+ <print-data :defaultfield="$parent.$parent.defaultfield" :field="$parent.$parent.fields" :printview="true" :is-selected="true" :model="$parent.$parent.model"
43
+ @print-close="$parent.$parent.print()" @print-data="$parent.$parent.print()" print-name="购气流水"></print-data>
44
+ <export-excel
45
+ :data="{condition: $parent.$parent.model.condition}"
46
+ :field="$parent.$parent.fields"
47
+ sqlurl="api/af-revenue/logic/saleExport"sql-name="machineRecordQuery"
48
+ template-name='机表流水查询'
49
+ :choose-col="true">
50
+ </export-excel>
51
+ </div>
52
+ </div>
53
+
54
+ </div>
55
+ </criteria>
56
+ <data-grid :model="model" class="list_area table_sy" partial='list' v-ref:grid>
57
+ <template partial='head'>
58
+ <tr>
59
+ <th><nobr>用户编号</nobr></th>
60
+ <th><nobr>姓名</nobr></th>
61
+ <th><nobr>住址</nobr></th>
62
+ <th><nobr>上期底数</nobr></th>
63
+ <th><nobr>本期底数</nobr></th>
64
+ <th><nobr>气量</nobr></th>
65
+ <th><nobr>应交</nobr></th>
66
+ <th><nobr>缴费金额 </nobr></th>
67
+ <th><nobr>上期结余</nobr></th>
68
+ <th><nobr>本期结余</nobr></th>
69
+ <th><nobr>操作类型</nobr></th>
70
+ <th><nobr>操作员 </nobr></th>
71
+ <th><nobr>操作时间 </nobr></th>
72
+ <th><nobr>状态 </nobr></th>
73
+ <th><nobr>备注</nobr></th>
74
+ </tr>
75
+ </template>
76
+ <template partial='body' partial='list' v-ref:grid>
77
+ <tr >
78
+ <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_userinfo_code}}</td>
79
+ <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_user_name}}</td>
80
+ <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_address}}</td>
81
+ <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_last_tablebase}}</td>
82
+ <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_tablebase}}</td>
83
+ <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_type== '机表收费'? '' : row.gas}}</td>
84
+ <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center;white-space:nowrap;">{{row.f_type == '机表收费'? '' : row.fee}}</td>
85
+ <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center;white-space:nowrap;">{{row.f_type == '抄表记录'? '' : row.f_collection}}</td>
86
+ <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center;white-space:nowrap;">{{row.f_balance}}</td>
87
+ <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center;white-space:nowrap;">{{ row.f_curbalance }}</td>
88
+ <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_type}}</td>
89
+ <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_operator}}</td>
90
+ <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_operate_date}}</td>
91
+ <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_state}}</td>
92
+ <td :class="{'bg-danger' : row.f_whether_pay === '否' }" style="text-align:center">{{row.f_comments}}</td>
93
+ </tr>
94
+ </template>
95
+ <template partial='foot'></template>
96
+ </data-grid>
97
+ </criteria-paged>
98
+ </div>
99
+ <table class="table-hover">
100
+ <tr class="table-bordered" style="position: relative">
101
+ <td
102
+ style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">
103
+ 汇总信息
104
+ </td>
105
+ <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px">
106
+ 气量合计:&emsp;{{model.sums.gas.toFixed(2)}}
107
+ </td>
108
+ <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px">
109
+ 金额合计:&emsp;{{model.sums.fee.toFixed(2)}}
110
+ </td>
111
+ <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px">
112
+ 缴费合计:&emsp;{{model.sums.collection.toFixed(2)}}
113
+ </td>
114
+ </tr>
115
+ </table>
116
+ </div>
117
+ </template>
118
+
119
+ <script>
120
+ import {HttpResetClass, PagedList} from 'vue-client'
121
+
122
+ export default {
123
+ title: '操作查询',
124
+ data () {
125
+ return {
126
+ condition: '1=1',
127
+ model: new PagedList('api/af-revenue/sql/machineRecordQuery', 20, {}, {
128
+ fee: 0,
129
+ gas: 0
130
+ }),
131
+ isstates: this.$appdata.getParam('是否有效') ? [{
132
+ label: '全部',
133
+ value: ''
134
+ }, ...this.$appdata.getParam('是否有效')] : [],
135
+ // 控制单选
136
+ radio: [],
137
+ // 选中的页
138
+ all: [],
139
+ searchValue: 'f_userfiles_id',
140
+ // row数据
141
+ rowsdata: [],
142
+ fields: {'f_userinfo_code': '客户编号', 'f_user_name': '客户姓名', 'f_address': '地址','f_last_tablebase': '上期底数','f_tablebase': '本期底数', 'fee': '金额', 'gas': '气量', 'f_type': '类型', 'f_operator': '操作员', 'f_operate_date': '操作时间'},
143
+ defaultfield: [
144
+ 'f_userinfo_code', 'f_user_name', 'fee', 'gas', 'f_type', 'f_operate_date'
145
+ ],
146
+ printModel: {
147
+ rows: []
148
+ }
149
+ }
150
+ },
151
+ props: ['row'],
152
+ ready () {
153
+ this.$refs.paged.$refs.criteria.model.f_state = ['有效']
154
+ this.$refs.paged.$refs.criteria.search()
155
+ },
156
+ methods: {
157
+ async search () {
158
+ this.condition = `${this.$refs.paged.$refs.criteria.condition} and ${this.searchValue} = '${this.row[this.searchValue]}' `
159
+ this.model.search(this.condition, this.model)
160
+ let http = new HttpResetClass()
161
+ let res = await http.load('POST', 'api/af-revenue/sql/machineRecordQuery', {
162
+ data: {
163
+ condition: this.condition
164
+ }
165
+ }, {resolveMsg: null, rejectMsg: null})
166
+ // 计算不包含 "机表收费" 的 gas 总和
167
+ let gasTotal = res.data.reduce((sum, row) => {
168
+ return row.f_type === '机表收费' ? sum : sum + (row.gas || 0);
169
+ }, 0);
170
+
171
+ // 计算费用总和
172
+ let feeTotal = res.data.reduce((sum, row) => {
173
+ return row.f_type === '机表收费' ? sum : sum + (row.fee || 0);
174
+ }, 0);
175
+ // 计算缴费总和
176
+ let collectionTotal = res.data.reduce((sum, row) => {
177
+ return sum + (row.f_collection || 0)
178
+ }, 0)
179
+
180
+ this.printModel.rows = res.data
181
+ this.model.sums = {
182
+ gas: gasTotal,
183
+ fee: feeTotal,
184
+ collection: collectionTotal
185
+ }
186
+ },
187
+ // 多选框初始化
188
+ selectInit () {
189
+ this.rowsdata = []
190
+ this.all = []
191
+ this.radio = []
192
+ },
193
+ print () {
194
+ this.selectInit()
195
+ },
196
+ select () {
197
+ let index = this.model.pageIndex - 1
198
+ if (!this.radio[index]) {
199
+ this.radio.$set(index, [])
200
+ }
201
+ if (this.all[index]) {
202
+ // 数据
203
+ this.rowsdata[index] = Object.assign([], this.model.rows)
204
+ // 勾选
205
+ for (var i = 0; i < this.model.rows.length; i++) {
206
+ this.radio[index].$set(i, true)
207
+ }
208
+ } else {
209
+ // 数据
210
+ this.rowsdata[index] = []
211
+ // 不勾选
212
+ for (var i = 0; i < this.model.rows.length; i++) {
213
+ this.radio[index].$set(i, false)
214
+ }
215
+ }
216
+ let z = 0
217
+ this.printModel.rows = []
218
+ for (let i = 0; i < this.all.length; i++) {
219
+ for (let j = 0; this.rowsdata[i] && j < this.rowsdata[i].length; j++) {
220
+ if (this.rowsdata[i][j] && this.rowsdata[i][j].f_user_id) {
221
+ this.printModel.rows[z++] = this.rowsdata[i][j]
222
+ }
223
+ }
224
+ }
225
+ },
226
+ selectOne (event, row, i) {
227
+ let index = this.model.pageIndex - 1
228
+ if (!this.rowsdata[index]) {
229
+ this.rowsdata[index] = []
230
+ }
231
+ if (!this.radio[index]) {
232
+ this.radio.$set(index, [])
233
+ }
234
+ if (event.target.checked) {
235
+ // 数据
236
+ this.rowsdata[index][i] = row
237
+ // 勾选
238
+ this.radio[index].$set(i, true)
239
+ // 判断是否全部选中
240
+ var allState = true
241
+ if (this.model.rows.length != this.radio[index].length) {
242
+ allState = false
243
+ }
244
+ for (var state of this.radio[index]) {
245
+ if (!state) {
246
+ allState = false
247
+ }
248
+ }
249
+ this.all.$set(index, allState)
250
+ } else {
251
+ // 数据
252
+ this.rowsdata[index][i] = []
253
+ // 不勾选
254
+ this.radio[index].$set(i, false)
255
+ // 任意取消一个则全选状态设为false
256
+ this.all.$set(index, false)
257
+ }
258
+ let z = 0
259
+ this.printModel.rows = []
260
+ for (let i = 0; i < this.all.length; i++) {
261
+ for (let j = 0; this.rowsdata[i] && j < this.rowsdata[i].length; j++) {
262
+ if (this.rowsdata[i][j] && this.rowsdata[i][j].f_user_id) {
263
+ this.printModel.rows[z++] = this.rowsdata[i][j]
264
+ }
265
+ }
266
+ }
267
+ }
268
+ },
269
+ computed: {
270
+ ischecked () {
271
+ return function (index, i) {
272
+ if (!this.radio[index]) {
273
+ return false
274
+ }
275
+ return this.radio[index][i]
276
+ }
277
+ }
278
+ }
279
+ }
280
+ </script>
281
+