sale-client 4.1.1 → 4.1.3

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 (55) hide show
  1. package/build/dev-server.js +32 -15
  2. package/package.json +1 -1
  3. package/src/components/charge/ChargeModal.vue +9 -1
  4. package/src/components/common/searchuploadfile/uploadFilesHistory.vue +1 -1
  5. package/src/components/common/userinfo_detail/ic_detail/ChangeMeterQueryUser.vue +242 -242
  6. package/src/components/revenue/HandManager/MeterBookUser.vue +726 -726
  7. package/src/components/revenue/HandManager/WebHand.vue +996 -996
  8. package/src/components/revenue/comprehen/ComprehenOperation/QrPay/QrPaymentDetailed.vue +423 -423
  9. package/src/components/revenue/comprehen/ComprehenOperation/ReplaceCard/ReplaceCardManage.vue +434 -434
  10. package/src/components/revenue/comprehen/Maintenance/hand/handOperate.vue +469 -469
  11. package/src/components/revenue/machineHandManage/ArrearsQuery.vue +938 -938
  12. package/src/components/webMeter/MeterManage/WebMeterBatchOperationValve.vue +970 -970
  13. package/src/filiale/alashan/eticket/EticketRecordList.vue +428 -428
  14. package/src/filiale/bayan/ChargeList.vue +1010 -1010
  15. package/src/filiale/bayan/StockListmain.vue +543 -543
  16. package/src/filiale/beifangshiye/OtherChargeNew.vue +625 -625
  17. package/src/filiale/jiaxian/ChangeRecord.vue +235 -0
  18. package/src/filiale/jiaxian/UserInfoDetailManageNew.vue +1 -1
  19. package/src/filiale/lixianV3/ArrearsQuery.vue +938 -938
  20. package/src/filiale/lixianV3/InsuranceChargesDetails.vue +425 -425
  21. package/src/filiale/meihekou/common/userinfo_detail/ic_detail/MachineRecordQuery.vue +281 -281
  22. package/src/filiale/qianneng/revenue/sms/AccountMessageList.vue +508 -508
  23. package/src/filiale/ronghao/ArrearsQuery.vue +974 -974
  24. package/src/filiale/ronghao/CardService.js +2144 -2144
  25. package/src/filiale/ronghao/InsuranceManage.vue +58 -58
  26. package/src/filiale/ronghao/MachineChargeService.js +149 -149
  27. package/src/filiale/ronghao/NoCardMeterCenter.vue +534 -534
  28. package/src/filiale/ronghao/PaymentCode.vue +174 -174
  29. package/src/filiale/ronghao/PriceChangeCompensation/CompensationManage.vue +26 -26
  30. package/src/filiale/ronghao/PriceChangeCompensation/IotCompensation.vue +318 -318
  31. package/src/filiale/ronghao/PriceChangeCompensation/JbCompensation.vue +343 -343
  32. package/src/filiale/ronghao/PriceChangeCompensation/SurplusRecordDetail.vue +74 -74
  33. package/src/filiale/ronghao/ReplaceCardManage.vue +415 -415
  34. package/src/filiale/ronghao/Upload.vue +654 -654
  35. package/src/filiale/ronghao/cardDown.vue +1141 -1141
  36. package/src/filiale/ronghao/changemeterOperate.vue +315 -315
  37. package/src/filiale/ronghao/fillgasSpecific.vue +313 -313
  38. package/src/filiale/ronghao/ic_detail/ChargeRecordQuery.vue +106 -106
  39. package/src/filiale/ronghao/ic_detail/WatchCollection.vue +115 -115
  40. package/src/filiale/ronghao/ic_detail/WebHandQueryUser.vue +411 -411
  41. package/src/filiale/ronghao/machineDown.vue +1176 -1176
  42. package/src/filiale/ronghao/replacementSingleInfoOperation.vue +315 -315
  43. package/src/filiale/ronghao/specificInformation.vue +537 -537
  44. package/src/filiale/yangchun/ChargeList.vue +954 -954
  45. package/src/filiale/yangchun/EticketV4/EticketRecordList.vue +427 -427
  46. package/src/filiale/yuncheng/changemeterListMaintain.vue +504 -504
  47. package/src/filiale/zhongsheng/BlackListList.vue +293 -293
  48. package/src/filiale/zhongyi/HandQueryUser.vue +389 -389
  49. package/src/plugins/CardService.js +2217 -2217
  50. package/.gradle/5.2.1/fileChanges/last-build.bin +0 -0
  51. package/.gradle/5.2.1/fileHashes/fileHashes.lock +0 -0
  52. package/.gradle/5.2.1/gc.properties +0 -0
  53. package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  54. package/.gradle/buildOutputCleanup/cache.properties +0 -2
  55. package/.gradle/vcs-1/gc.properties +0 -0
@@ -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://192.168.50.67:31467/', 'http://localhost:9026/']
4
+ const [ serverRul, localUrl ] = ['http://218.93.226.210:31467/', 'http://218.93.226.210:31467/']
5
5
  var merge = require('webpack-merge')
6
6
  var baseConfig = require('./webpack.dev.conf')
7
7
  var devConfig = {
@@ -19,16 +19,16 @@ var devConfig = {
19
19
  children: false // 不输出子模块构建信息
20
20
  },
21
21
  proxy: {
22
- '/api/af-revenue/batchdeduction/all': {
23
- pathRewrite: {
24
- '/api/af-revenue/batchdeduction/all': '/batchdeduction/all'
25
- },
26
- target: localUrl
27
- },
22
+ // '/api/af-revenue/logic/depositCharge': {
23
+ // // pathRewrite: {ca'h
24
+ // // '/api/af-revenue/logic': '/logic'
25
+ // // },
26
+ // target: 'http://127.0.0.1:9026'
27
+ // },
28
28
  '/api/af-revenue/logic': {
29
- pathRewrite: {
30
- '/api/af-revenue/logic': '/logic'
31
- },
29
+ // pathRewrite: {
30
+ // '/api/af-revenue/logic': '/logic'
31
+ // },
32
32
  target: localUrl
33
33
  },
34
34
  '/api/af-revenue/file': {
@@ -37,22 +37,39 @@ var devConfig = {
37
37
  // },
38
38
  target: localUrl
39
39
  },
40
- '/weixin2/rs':{
41
-
42
- target: 'http://410663id1ia4.vicp.fun'
40
+ 'api/af-revenue/entity/save': {
41
+ // pathRewrite: {
42
+ // '/api/af-revenue/entity/save': '/entity/save'
43
+ // },
44
+ target: localUrl
43
45
  },
44
- '/api/af-revenue/sql': {
46
+ '/singlepage': {
47
+ // pathRewrite: {
48
+ // '/weixin2/rs': '/rs'
49
+ // },
50
+ target: localUrl
51
+ },
52
+ '/weixin2/rs': {
45
53
  pathRewrite: {
46
- '/api/af-revenue/sql': '/sql'
54
+ '/weixin2/rs': '/singlepage/weixin2/rs'
47
55
  },
48
56
  target: localUrl
49
57
  },
58
+ '/api/af-revenue/sql': {
59
+ // pathRewrite: {
60
+ // '/api/af-revenue/sql': '/sql'
61
+ // },
62
+ target: localUrl
63
+ },
50
64
  '/rs/pay': {
51
65
  target: 'http://localhost:8080'
52
66
  },
53
67
  '/api': {
54
68
  target: serverRul
55
69
  },
70
+ '/resource': {
71
+ target: serverRul
72
+ },
56
73
  '/rs': {
57
74
  target: serverRul
58
75
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "4.1.1",
3
+ "version": "4.1.3",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -8,7 +8,8 @@
8
8
  <button class="button_search" v-show="!warninginfo.data.state.info" @click="operational('files_complete')" style="width: max-content;">完善信息</button>
9
9
  <button class="button_search" v-show="warninginfo.data.state.blacklist&&!warninginfo.data.state.dibao" @click="operational('basic-living')" style="width: max-content;">低保续保</button>
10
10
  <button class="button_search" v-show="warninginfo.data.state.blacklist&&!warninginfo.data.state.dibao && warninginfo.data.state.dibaoend" @click="operational('stop-basic-living')" style="width: max-content;">停止续保</button>
11
- <button class="button_search" v-show="!(!warninginfo.data.state.dibao&&warninginfo.data.state.dibaoend)" @click="success()">确认</button>
11
+ <button class="button_search" v-show="!(!warninginfo.data.state.dibao&&warninginfo.data.state.dibaoend) && warninginfo.data.state.chargeAccount" @click="success()">确认</button>
12
+ <button class="button_search" v-show="!warninginfo.data.state.chargeAccount" @click="goToAccount()">去挂账管理</button>
12
13
  </span>
13
14
  </div>
14
15
  <p>{{authorityInformation}}</p>
@@ -65,6 +66,13 @@
65
66
  }
66
67
  },
67
68
  methods: {
69
+ goToAccount () {
70
+ console.log('点击了去挂帐管理')
71
+ if (window.parent !== window) {
72
+ window.parent.postMessage({type: 'route', path:'/duizhang/credit'}, '*')
73
+ this.close()
74
+ }
75
+ },
68
76
  close () {
69
77
  this.$emit('close')
70
78
  },
@@ -154,7 +154,7 @@ export default {
154
154
  let temp = res.data.array[j].f_downloadpath
155
155
  let URL = temp.substring(temp.lastIndexOf(':\\') + 2)
156
156
  if (res.data.array[j].fusetype == '安检照片') {
157
- res.data.array[j].f_downloadURL = location.protocol + '//' + location.host + '/api/af-revenue/file/image/' + res.data.array[j].f_filename
157
+ res.data.array[j].f_downloadURL = location.protocol + '//' + location.host + '/rs/image/file/' + res.data.array[j].f_filename
158
158
  } else {
159
159
  res.data.array[j].f_downloadURL = location.protocol + '//' + location.host + '/' + URL
160
160
  }
@@ -1,242 +1,242 @@
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
-
9
- <div class="col-sm-2 form-group">
10
- <label class="font_normal_body">开始时间</label>
11
- <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_start_date"
12
- class="datepicker"
13
- condition="f_operate_date >= '{} 00:00:00' "
14
- placeholder="起始时间"
15
- style="width:60%"
16
- v-model="model.f_start_date"
17
- ></datepicker>
18
- </div>
19
- <div class="col-sm-2 form-group" >
20
- <label class="font_normal_body" >结束时间</label>
21
- <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_end_date"
22
- class="datepicker"
23
- condition="f_operate_date <= '{} 23:59:59'"
24
- placeholder="结束时间"
25
- style="width:60%"
26
- v-model="model.f_end_date"
27
- ></datepicker>
28
- </div>
29
- <div class="col-sm-2 form-group">
30
- <label class="font_normal_body">换表类型</label>
31
- <v-select :options='$parent.$parent.changeType' :value.sync="model.f_type"
32
- close-on-select
33
- condition="f_type='{}'"
34
- placeholder='换表类型'
35
- style="width:60%"
36
- v-model="model.f_type"
37
- ></v-select>
38
- </div>
39
- <div class="col-sm-2 form-group">
40
- <label class="font_normal_body">换表状态</label>
41
- <v-select :value.sync="model.f_state" v-model='model.f_state'
42
- style="width:60%"
43
- :options='$parent.$parent.isstates' placeholder='换表状态'
44
- close-on-select
45
- condition="f_state = '{}'"></v-select>
46
- </div>
47
- <div style="float: right">
48
- <button @click="search()" class="button_search" style="margin-right: 10px" v-el:cba>查询</button>
49
- <print-data :defaultfield="$parent.$parent.defaultfield" :field="$parent.$parent.fields" :is-selected="true" :model="$parent.$parent.printModel"
50
- @print-data="$parent.$parent.print()" print-name="换表流水" ></print-data>
51
- </div>
52
-
53
-
54
- </div>
55
- </div>
56
- </criteria>
57
- <data-grid :model="model" class="list_area table_sy" partial='list' v-ref:grid>
58
- <template partial='head'>
59
- <tr>
60
-
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
-
79
- <td style="text-align: center;"><nobr>{{row.f_type}}</nobr></td>
80
- <td style="text-align: center;"><nobr>{{row.f_using_base_old}}</nobr></td>
81
- <td style="text-align: center;"><nobr>{{row.f_remanent_gas}}</nobr></td>
82
- <td style="text-align: center;"><nobr>{{row.f_meter_brand_old}}</nobr></td>
83
- <td style="text-align: center;"><nobr>{{row.f_meter_brand}}</nobr></td>
84
- <td style="text-align: center;"><nobr>{{row.f_meternumber_old}}</nobr></td>
85
- <td style="text-align: center;"><nobr>{{row.f_meternumber}}</nobr></td>
86
- <td style="text-align: center;"><nobr>{{row.f_changemeter_fee}}</nobr></td>
87
- <td style="text-align: center;"><nobr>{{row.f_operator}}</nobr></td>
88
- <td style="text-align: center;"><nobr>{{row.f_state}}</nobr></td>
89
- <td style="text-align: center;"><nobr>{{row.f_change_operator}}</nobr></td>
90
- <td style="text-align: center;"><nobr>{{row.f_operate_date}}</nobr></td>
91
- <td style="text-align: center;"><nobr>{{row.f_changetables_reason}}/{{row.f_reason}}/{{row.f_othereason}}</nobr></td>
92
- </tr>
93
- </template>
94
- <template partial='foot'></template>
95
- </data-grid>
96
- </criteria-paged>
97
- </div>
98
- </div>
99
- </template>
100
-
101
- <script>
102
- import {HttpResetClass, PagedList} from 'vue-client'
103
-
104
- export default {
105
- title: '收费',
106
- data () {
107
- return {
108
- condition: '1=1',
109
- model: new PagedList('api/af-revenue/sql/sale_ChangeMeterQuery', 20),
110
- // 控制单选
111
- radio: [],
112
- // 选中的页
113
- all: [],
114
- isstates: this.$appdata.getParam('是否有效') ? [{
115
- label: '全部',
116
- value: ''
117
- }, ...this.$appdata.getParam('是否有效')] : [],
118
- // row数据
119
- rowsdata: [],
120
- fields: {'f_userinfo_code': '客户编号', 'f_user_name': '客户姓名', 'f_type': '换表类型', 'f_meter_base': '旧表底数', 'f_newmeter_base': '新表底数', 'f_changemeter_fee': '换表费', 'f_operator': '操作员', 'f_changemeter_date': '换表日期'},
121
- defaultfield: [
122
- 'f_userinfo_code', 'f_user_name', 'f_type', 'f_meter_base', 'f_newmeter_base', 'f_changemeter_fee', 'f_operator', 'f_changemeter_date'
123
- ],
124
- printModel: {
125
- rows: []
126
- }
127
- }
128
- },
129
- props: ['row'],
130
- ready () {
131
- this.$refs.paged.$refs.criteria.search()
132
- },
133
- methods: {
134
- async search () {
135
- this.condition = `${this.$refs.paged.$refs.criteria.condition} and f_user_id = '${this.row.f_user_id}'`
136
- this.model.search(this.condition, this.model)
137
- let http = new HttpResetClass()
138
- let res = await http.load('POST', 'api/af-revenue/sql/sale_ChangeMeterQuery', {
139
- data: {
140
- condition: this.condition
141
- }
142
- }, {resolveMsg: null, rejectMsg: null})
143
- this.printModel.rows = res.data
144
- },
145
- // 多选框初始化
146
- selectInit () {
147
- this.rowsdata = []
148
- this.all = []
149
- this.radio = []
150
- },
151
- print () {
152
- this.selectInit()
153
- },
154
- select () {
155
- let index = this.model.pageIndex - 1
156
- if (!this.radio[index]) {
157
- this.radio.$set(index, [])
158
- }
159
- if (this.all[index]) {
160
- // 数据
161
- this.rowsdata[index] = Object.assign([], this.model.rows)
162
- // 勾选
163
- for (var i = 0; i < this.model.rows.length; i++) {
164
- this.radio[index].$set(i, true)
165
- }
166
- } else {
167
- // 数据
168
- this.rowsdata[index] = []
169
- // 不勾选
170
- for (var i = 0; i < this.model.rows.length; i++) {
171
- this.radio[index].$set(i, false)
172
- }
173
- }
174
- let z = 0
175
- for (let i = 0; i < this.all.length; i++) {
176
- for (let j = 0; this.rowsdata[i] && j < this.rowsdata[i].length; j++) {
177
- this.printModel.rows[z++] = this.rowsdata[i][j]
178
- }
179
- }
180
- },
181
- selectOne (event, row, i) {
182
- let index = this.model.pageIndex - 1
183
- if (!this.rowsdata[index]) {
184
- this.rowsdata[index] = []
185
- }
186
- if (!this.radio[index]) {
187
- this.radio.$set(index, [])
188
- }
189
- if (event.target.checked) {
190
- // 数据
191
- this.rowsdata[index][i] = row
192
- // 勾选
193
- this.radio[index].$set(i, true)
194
- // 判断是否全部选中
195
- var allState = true
196
- if (this.model.rows.length != this.radio[index].length) {
197
- allState = false
198
- }
199
- for (var state of this.radio[index]) {
200
- if (!state) {
201
- allState = false
202
- }
203
- }
204
- if (allState) {
205
- this.all.$set(index, true)
206
- } else {
207
- this.all.$set(index, false)
208
- }
209
- } else {
210
- // 数据
211
- this.rowsdata[index][i] = []
212
- // 不勾选
213
- this.radio[index].$set(i, false)
214
- // 任意取消一个则全选状态设为false
215
- this.all.$set(index, false)
216
- }
217
- let z = 0
218
- this.printModel.rows = []
219
- for (let i = 0; i < this.all.length; i++) {
220
- for (let j = 0; this.rowsdata[i] && j < this.rowsdata[i].length; j++) {
221
- if (this.rowsdata[i][j] && this.rowsdata[i][j].f_user_id) {
222
- this.printModel.rows[z++] = this.rowsdata[i][j]
223
- }
224
- }
225
- }
226
- }
227
- },
228
- computed: {
229
- ischecked () {
230
- return function (index, i) {
231
- if (!this.radio[index]) {
232
- return false
233
- }
234
- return this.radio[index][i]
235
- }
236
- },
237
- changeType () {
238
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('换表类型')]
239
- }
240
- }
241
- }
242
- </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
+
9
+ <div class="col-sm-2 form-group">
10
+ <label class="font_normal_body">开始时间</label>
11
+ <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_start_date"
12
+ class="datepicker"
13
+ condition="f_operate_date >= '{} 00:00:00' "
14
+ placeholder="起始时间"
15
+ style="width:60%"
16
+ v-model="model.f_start_date"
17
+ ></datepicker>
18
+ </div>
19
+ <div class="col-sm-2 form-group" >
20
+ <label class="font_normal_body" >结束时间</label>
21
+ <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_end_date"
22
+ class="datepicker"
23
+ condition="f_operate_date <= '{} 23:59:59'"
24
+ placeholder="结束时间"
25
+ style="width:60%"
26
+ v-model="model.f_end_date"
27
+ ></datepicker>
28
+ </div>
29
+ <div class="col-sm-2 form-group">
30
+ <label class="font_normal_body">换表类型</label>
31
+ <v-select :options='$parent.$parent.changeType' :value.sync="model.f_type"
32
+ close-on-select
33
+ condition="f_type='{}'"
34
+ placeholder='换表类型'
35
+ style="width:60%"
36
+ v-model="model.f_type"
37
+ ></v-select>
38
+ </div>
39
+ <div class="col-sm-2 form-group">
40
+ <label class="font_normal_body">换表状态</label>
41
+ <v-select :value.sync="model.f_state" v-model='model.f_state'
42
+ style="width:60%"
43
+ :options='$parent.$parent.isstates' placeholder='换表状态'
44
+ close-on-select
45
+ condition="f_state = '{}'"></v-select>
46
+ </div>
47
+ <div style="float: right">
48
+ <button @click="search()" class="button_search" style="margin-right: 10px" v-el:cba>查询</button>
49
+ <print-data :defaultfield="$parent.$parent.defaultfield" :field="$parent.$parent.fields" :is-selected="true" :model="$parent.$parent.printModel"
50
+ @print-data="$parent.$parent.print()" print-name="换表流水" ></print-data>
51
+ </div>
52
+
53
+
54
+ </div>
55
+ </div>
56
+ </criteria>
57
+ <data-grid :model="model" class="list_area table_sy" partial='list' v-ref:grid>
58
+ <template partial='head'>
59
+ <tr>
60
+
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
+
79
+ <td style="text-align: center;"><nobr>{{row.f_type}}</nobr></td>
80
+ <td style="text-align: center;"><nobr>{{row.f_using_base_old}}</nobr></td>
81
+ <td style="text-align: center;"><nobr>{{row.f_remanent_gas}}</nobr></td>
82
+ <td style="text-align: center;"><nobr>{{row.f_meter_brand_old}}</nobr></td>
83
+ <td style="text-align: center;"><nobr>{{row.f_meter_brand}}</nobr></td>
84
+ <td style="text-align: center;"><nobr>{{row.f_meternumber_old}}</nobr></td>
85
+ <td style="text-align: center;"><nobr>{{row.f_meternumber}}</nobr></td>
86
+ <td style="text-align: center;"><nobr>{{row.f_changemeter_fee}}</nobr></td>
87
+ <td style="text-align: center;"><nobr>{{row.f_operator}}</nobr></td>
88
+ <td style="text-align: center;"><nobr>{{row.f_state}}</nobr></td>
89
+ <td style="text-align: center;"><nobr>{{row.f_change_operator}}</nobr></td>
90
+ <td style="text-align: center;"><nobr>{{row.f_operate_date}}</nobr></td>
91
+ <td style="text-align: center;"><nobr>{{row.f_changetables_reason}}/{{row.f_reason}}/{{row.f_othereason}}</nobr></td>
92
+ </tr>
93
+ </template>
94
+ <template partial='foot'></template>
95
+ </data-grid>
96
+ </criteria-paged>
97
+ </div>
98
+ </div>
99
+ </template>
100
+
101
+ <script>
102
+ import {HttpResetClass, PagedList} from 'vue-client'
103
+
104
+ export default {
105
+ title: '收费',
106
+ data () {
107
+ return {
108
+ condition: '1=1',
109
+ model: new PagedList('api/af-revenue/sql/sale_ChangeMeterQuery', 20),
110
+ // 控制单选
111
+ radio: [],
112
+ // 选中的页
113
+ all: [],
114
+ isstates: this.$appdata.getParam('是否有效') ? [{
115
+ label: '全部',
116
+ value: ''
117
+ }, ...this.$appdata.getParam('是否有效')] : [],
118
+ // row数据
119
+ rowsdata: [],
120
+ fields: {'f_userinfo_code': '客户编号', 'f_user_name': '客户姓名', 'f_type': '换表类型', 'f_meter_base': '旧表底数', 'f_newmeter_base': '新表底数', 'f_changemeter_fee': '换表费', 'f_operator': '操作员', 'f_changemeter_date': '换表日期'},
121
+ defaultfield: [
122
+ 'f_userinfo_code', 'f_user_name', 'f_type', 'f_meter_base', 'f_newmeter_base', 'f_changemeter_fee', 'f_operator', 'f_changemeter_date'
123
+ ],
124
+ printModel: {
125
+ rows: []
126
+ }
127
+ }
128
+ },
129
+ props: ['row'],
130
+ ready () {
131
+ this.$refs.paged.$refs.criteria.search()
132
+ },
133
+ methods: {
134
+ async search () {
135
+ this.condition = `${this.$refs.paged.$refs.criteria.condition} and f_user_id = '${this.row.f_user_id}'`
136
+ this.model.search(this.condition, this.model)
137
+ let http = new HttpResetClass()
138
+ let res = await http.load('POST', 'api/af-revenue/sql/sale_ChangeMeterQuery', {
139
+ data: {
140
+ condition: this.condition
141
+ }
142
+ }, {resolveMsg: null, rejectMsg: null})
143
+ this.printModel.rows = res.data
144
+ },
145
+ // 多选框初始化
146
+ selectInit () {
147
+ this.rowsdata = []
148
+ this.all = []
149
+ this.radio = []
150
+ },
151
+ print () {
152
+ this.selectInit()
153
+ },
154
+ select () {
155
+ let index = this.model.pageIndex - 1
156
+ if (!this.radio[index]) {
157
+ this.radio.$set(index, [])
158
+ }
159
+ if (this.all[index]) {
160
+ // 数据
161
+ this.rowsdata[index] = Object.assign([], this.model.rows)
162
+ // 勾选
163
+ for (var i = 0; i < this.model.rows.length; i++) {
164
+ this.radio[index].$set(i, true)
165
+ }
166
+ } else {
167
+ // 数据
168
+ this.rowsdata[index] = []
169
+ // 不勾选
170
+ for (var i = 0; i < this.model.rows.length; i++) {
171
+ this.radio[index].$set(i, false)
172
+ }
173
+ }
174
+ let z = 0
175
+ for (let i = 0; i < this.all.length; i++) {
176
+ for (let j = 0; this.rowsdata[i] && j < this.rowsdata[i].length; j++) {
177
+ this.printModel.rows[z++] = this.rowsdata[i][j]
178
+ }
179
+ }
180
+ },
181
+ selectOne (event, row, i) {
182
+ let index = this.model.pageIndex - 1
183
+ if (!this.rowsdata[index]) {
184
+ this.rowsdata[index] = []
185
+ }
186
+ if (!this.radio[index]) {
187
+ this.radio.$set(index, [])
188
+ }
189
+ if (event.target.checked) {
190
+ // 数据
191
+ this.rowsdata[index][i] = row
192
+ // 勾选
193
+ this.radio[index].$set(i, true)
194
+ // 判断是否全部选中
195
+ var allState = true
196
+ if (this.model.rows.length != this.radio[index].length) {
197
+ allState = false
198
+ }
199
+ for (var state of this.radio[index]) {
200
+ if (!state) {
201
+ allState = false
202
+ }
203
+ }
204
+ if (allState) {
205
+ this.all.$set(index, true)
206
+ } else {
207
+ this.all.$set(index, false)
208
+ }
209
+ } else {
210
+ // 数据
211
+ this.rowsdata[index][i] = []
212
+ // 不勾选
213
+ this.radio[index].$set(i, false)
214
+ // 任意取消一个则全选状态设为false
215
+ this.all.$set(index, false)
216
+ }
217
+ let z = 0
218
+ this.printModel.rows = []
219
+ for (let i = 0; i < this.all.length; i++) {
220
+ for (let j = 0; this.rowsdata[i] && j < this.rowsdata[i].length; j++) {
221
+ if (this.rowsdata[i][j] && this.rowsdata[i][j].f_user_id) {
222
+ this.printModel.rows[z++] = this.rowsdata[i][j]
223
+ }
224
+ }
225
+ }
226
+ }
227
+ },
228
+ computed: {
229
+ ischecked () {
230
+ return function (index, i) {
231
+ if (!this.radio[index]) {
232
+ return false
233
+ }
234
+ return this.radio[index][i]
235
+ }
236
+ },
237
+ changeType () {
238
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('换表类型')]
239
+ }
240
+ }
241
+ }
242
+ </script>