sale-client 4.2.17 → 4.2.18

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 (60) hide show
  1. package/.gradle/5.2.1/fileHashes/fileHashes.lock +0 -0
  2. package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  3. package/.gradle/buildOutputCleanup/cache.properties +1 -1
  4. package/build/dev-server.js +5 -2
  5. package/package.json +1 -1
  6. package/src/components/FilesManage/addressts/FileUserFilests.vue +671 -0
  7. package/src/components/FilesManage/ncUserinfoList.vue +315 -0
  8. package/src/components/SellGasCharge/MeterCharge/CardDataRewrite.vue +107 -0
  9. package/src/components/SendCard/SendCardData.vue +208 -0
  10. package/src/components/accounts/accountAdd.vue +276 -0
  11. package/src/components/accounts/accountsList.vue +183 -0
  12. package/src/components/accounts/accountsManage.vue +87 -0
  13. package/src/components/common/chargeinfo/chargeinfo.vue +55 -0
  14. package/src/components/common/userinfo_detail/config/exportConfig.js +85 -0
  15. package/src/components/ncarchives/ncArchivesAdd.vue +468 -0
  16. package/src/components/ncarchives/ncArchivesList.vue +159 -0
  17. package/src/components/ncarchives/ncUserfilesList.vue +373 -0
  18. package/src/components/ncarchives/ncarchivesmanage.vue +80 -0
  19. package/src/components/revenue/IOTArrears/arrears.vue +323 -0
  20. package/src/components/revenue/IOTArrears/iotRechargeAudit.vue +369 -0
  21. package/src/components/revenue/base/rightview/carddetail/cardiotfeeChangeDetail.vue +59 -0
  22. package/src/components/revenue/base/rightview/carddetail/reduceChangeDetail.vue +59 -0
  23. package/src/components/revenue/comprehen/ComprehenOperation/BatchChange/BatchCancellationts.vue +73 -0
  24. package/src/components/revenue/comprehen/ComprehenOperation/BatchChange/BatchEnablets.vue +73 -0
  25. package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/ReduceAddGas.vue +199 -0
  26. package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/icdeductionManage.vue +24 -0
  27. package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/icdeductionYSManage.vue +24 -0
  28. package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/icfeeDeduction.vue +185 -0
  29. package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/icfeeYSDeduction.vue +185 -0
  30. package/src/components/revenue/comprehen/ComprehenOperation/newchangemeter/ChangeFlowMeter.vue +356 -0
  31. package/src/components/revenue/comprehen/ComprehenOperation/newchangemeter/CorrectionMeter.vue +148 -0
  32. package/src/components/revenue/comprehen/SpecialUser/BlackList/BlackUserList.vue +136 -0
  33. package/src/components/revenue/recordMainten/sellinggas/AddWarehousemain.vue +65 -0
  34. package/src/components/revenue/recordMainten/sellinggas/MeterOperateAdd.vue +483 -0
  35. package/src/components/revenue/recordMainten/sellinggas/MeterOperatemain.vue +279 -0
  36. package/src/components/revenue/recordMainten/sellinggas/MeterOperatemainImport.vue +265 -0
  37. package/src/components/thirdapply/thirdAdd.vue +289 -0
  38. package/src/components/thirdapply/thirdList.vue +162 -0
  39. package/src/components/thirdapply/thirdManage.vue +74 -0
  40. package/src/components/webMeter/InstructQuery.vue +414 -0
  41. package/src/components/webMeter/ParamSet/ParamSet.vue +556 -0
  42. package/src/components/webMeter/ParamSet/ParamSetForm.vue +296 -0
  43. package/src/components/webMeter/WebUserHand.vue +483 -0
  44. package/src/components/webMeter/instructionView/NewQueryInstruct.vue +509 -0
  45. package/src/components/webMeter/instructionView/NewQueryInstructMain.vue +48 -0
  46. package/src/components/webMeter/webManage/NewMeterList.vue +461 -0
  47. package/src/filiale/jinhuang/WebHand.vue +1026 -1026
  48. package/src/filiale/yuncheng/IndustryCommerceHand.vue +17 -4
  49. package/src/main.js +1 -1
  50. package/src/plugins/FileManageServicets.js +214 -0
  51. package/src/plugins/GetImg.js +53 -0
  52. package/.gradle/8.10/checksums/checksums.lock +0 -0
  53. package/.gradle/8.10/dependencies-accessors/gc.properties +0 -0
  54. package/.gradle/8.10/executionHistory/executionHistory.bin +0 -0
  55. package/.gradle/8.10/executionHistory/executionHistory.lock +0 -0
  56. package/.gradle/8.10/fileChanges/last-build.bin +0 -0
  57. package/.gradle/8.10/fileHashes/fileHashes.bin +0 -0
  58. package/.gradle/8.10/fileHashes/fileHashes.lock +0 -0
  59. package/.gradle/8.10/gc.properties +0 -0
  60. package/.gradle/file-system.probe +0 -0
@@ -182,6 +182,14 @@
182
182
  condition="f_total_gas <= {} " placeholder="">
183
183
  </div>
184
184
  </div>
185
+ <div class="col-sm-2 form-group">
186
+ <label class="font_normal_body">抄&ensp;表&ensp;册</label>
187
+ <v-select :value.sync="model.f_meter_book" v-model="model.f_meter_book"
188
+ :options='$parent.$parent.meterbooks' placeholder='抄表册'
189
+ style="width:60%"
190
+ :multiple="true"
191
+ condition="f_meter_book_num in {}"></v-select>
192
+ </div>
185
193
 
186
194
  <res-select-group :initres="$parent.$parent.initres"
187
195
  @re-res="$parent.$parent.getRes"
@@ -439,6 +447,8 @@ import {PagedList, HttpResetClass} from 'vue-client'
439
447
  import Vue from 'vue'
440
448
  let readySomething = async function (self) {
441
449
  await self.$LoadParams.loadParam()
450
+ await self.$LoadParams.loadMeterBook(self.f_filialeid)
451
+ self.loadMeterBooks()
442
452
  self.initParams()
443
453
  }
444
454
  let readyGen = async function (self) {
@@ -618,6 +628,9 @@ export default {
618
628
  imgclose () {
619
629
  this.imgshow = false
620
630
  },
631
+ loadMeterBooks () {
632
+ this.meterbooks = this.$GetSaleParam.getMeterBooks()
633
+ },
621
634
  imgShow (val) {
622
635
  this.imgfilename = `api/af-revenue/file/image/` + val
623
636
  this.imgshow = true
@@ -789,12 +802,12 @@ export default {
789
802
  this.rowsdata = []
790
803
  this.radio = []
791
804
  this.checkAll = []
792
-
805
+
793
806
  // 重置DataGrid的选择状态
794
807
  if (this.$refs.paged && this.$refs.paged.$refs.grid && this.$refs.paged.$refs.grid.selectInit) {
795
808
  this.$refs.paged.$refs.grid.selectInit()
796
809
  }
797
-
810
+
798
811
  this.$refs.paged.$refs.criteria.search()
799
812
  },
800
813
  selfSearch (args) {
@@ -1082,12 +1095,12 @@ export default {
1082
1095
 
1083
1096
  await this.$resetpost('api/af-revenue/logic/runSQL', { sql: sql })
1084
1097
  this.$showAlert(`成功删除 ${selectedRows.length} 条记录`, 'success', 2000)
1085
-
1098
+
1086
1099
  // 重置DataGrid的选择状态
1087
1100
  if (this.$refs.paged && this.$refs.paged.$refs.grid && this.$refs.paged.$refs.grid.selectInit) {
1088
1101
  this.$refs.paged.$refs.grid.selectInit()
1089
1102
  }
1090
-
1103
+
1091
1104
  // 直接刷新数据,让界面状态完全重置
1092
1105
  this.search()
1093
1106
  } catch (error) {
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/tonghua/sale'
5
+ import FilialeSale from './filiale/yuncheng/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'
@@ -0,0 +1,214 @@
1
+ import Vue from 'vue'
2
+ import co from 'co'
3
+
4
+ let cancelUserGen = function * (data, type) {
5
+ console.log('销户。。', data)
6
+ if (type === '销户') {
7
+ let owe = yield Vue.resetpost('rs/logic/hasOweWithUser', {data: {f_userinfo_id: data.f_userinfo_id.f_userinfo_id}}, {resolveMsg: null, rejectMsg: null})
8
+ let hasHandplan = yield Vue.resetpost('rs/sql/saleSingleTable', {data: {tablename: 't_handplan', condition: `f_meter_state = '未抄表' and f_userinfo_id = '${data.record_userinfo}'`}}, {resolveMsg: null, rejectMsg: null})
9
+ if (owe.data === 1 && hasHandplan.data.length > 0) {
10
+ Vue.showAlert('该客户还有欠费,不能销户!!', 'danger', 0)
11
+ } else {
12
+ Vue.resetpost('rs/entity/t_cancellation', data, {resolveMsg: `${type}成功`, rejectMsg: `${type}失败`})
13
+ }
14
+ } else {
15
+ Vue.resetpost('rs/entity/t_cancellation', data, {resolveMsg: `${type}成功`, rejectMsg: `${type}失败`})
16
+ }
17
+ }
18
+
19
+ let FileManageServicets = {
20
+ install (Vue, options) {
21
+ // 给vue增添对话框显示方法
22
+ Vue.FileManageServicets = Vue.prototype.$FileManageServicets = FileManageServicets
23
+ },
24
+
25
+ fileSave (data) {
26
+ let result = Object.assign({}, result, data.baseinfo.base)
27
+ if(data.baseinfo.civill && data.baseinfo.civill.f_civill_id){
28
+ result.civill ={};
29
+ result.civill.f_civill_id = data.baseinfo.civill.f_civill_id;
30
+ }
31
+ result.f_userinfo_id = result.f_userinfo_id ? result.f_userinfo_id + '' : null
32
+ result.f_cost_type = result.f_cost_type.length > 0 ? result.f_cost_type[0] : ''
33
+ result.f_credentials = result.f_credentials.length > 0 ? result.f_credentials[0] : ''
34
+ result.f_is_mgq = result.f_is_mgq.length > 0 ? result.f_is_mgq[0] : ''
35
+ if(result.f_out_user instanceof Array){
36
+ result.f_out_user =result.f_out_user && result.f_out_user.length > 0 ? result.f_out_user : '否';
37
+ }else{
38
+ result.f_out_user ==result.f_out_user ? result.f_out_user :'否';
39
+ }
40
+ result.f_paper_type = result.f_paper_type.length > 0 ? result.f_paper_type[0] : ''
41
+ result.f_predeposit = result.f_predeposit ? result.f_predeposit : 0
42
+ result.f_people_num = result.f_people_num ? result.f_people_num : 0
43
+ if (result.f_slice_area instanceof Array) {
44
+ result.f_slice_area = result.f_slice_area.length > 0 ? result.f_slice_area[0] : null
45
+ }
46
+ if (result.f_user_level instanceof Array) {
47
+ result.f_user_level = result.f_user_level.length > 0 ? result.f_user_level[0] : null
48
+ }
49
+ if (data.baseinfo.base.f_cost_type[0] === '银行代扣') {
50
+ let bank = Object.assign({}, bank, data.baseinfo.bank)
51
+ result.infobank = bank
52
+ result.infobank.f_bank_name = bank.f_bank_name.length > 0 ? bank.f_bank_name[0] : ''
53
+ }
54
+ // 获取分公司id (通过ids拆分)
55
+ result.f_filialeid = data.f_filialeid
56
+ if (result.f_userinfo_id === null) {
57
+ result.f_createfile_person = Vue.$login.f.name
58
+ result.f_createfile_date = Vue.$login.toStandardTimeString ()
59
+
60
+ result.f_operator = Vue.$login.f.name
61
+ result.f_operatorid = Vue.$login.f.id
62
+ result.f_orgid = data.f_filialeid
63
+ result.f_orgname = Vue.$login.f.orgs
64
+ result.f_depid = Vue.$login.f.depids
65
+ result.f_depname = Vue.$login.f.deps
66
+ }
67
+
68
+ // 档案变更时,获取档案登录人信息进行操作记录的保存
69
+ result.f_operator_record = Vue.$login.f.name
70
+ result.f_operatorid_record = Vue.$login.f.id
71
+ result.f_orgid_record = Vue.$login.f.orgid
72
+ result.f_orgname_record = Vue.$login.f.orgs
73
+ result.f_depid_record = Vue.$login.f.depids
74
+ result.f_depname_record = Vue.$login.f.deps
75
+ result.f_user_state = result.f_user_state.length > 0 ? result.f_user_state[0] : '正常'
76
+ result.userfiles = []
77
+ // 表具信息
78
+ data.meterinfo.forEach((item) => {
79
+ // item.f_user_id = result.f_user_id ? result.f_user_id : null
80
+ let meter = Object.assign({}, meter, item)
81
+ if (meter.f_user_id) {
82
+ meter.f_user_id = meter.f_user_id
83
+ }
84
+ meter.f_filialeid = data.f_filialeid
85
+ meter.f_position = meter.f_position ? meter.f_position : null
86
+ meter.f_gasbrand_id = meter.gasbrand[0].id
87
+ meter.f_show_way = meter.f_show_way ? meter.f_show_way[0] : null
88
+ meter.f_inputtor = meter.f_inputtor.length > 0 ? meter.f_inputtor[0] : null
89
+ // meter.f_install_person = meter.f_install_person.length > 0 ? meter.f_install_person[0] : null
90
+ meter.f_aroundmeter = meter.f_aroundmeter.length > 0 ? meter.f_aroundmeter[0] : null
91
+ meter.f_garbage_fee = meter.f_garbage_fee.length > 0 ? meter.f_garbage_fee[0] : '否'
92
+ meter.f_valve_state = meter.f_valve_state.length > 0 ? meter.f_valve_state[0] : '开阀'
93
+ meter.f_meter_base = isNaN(meter.f_meter_base) || meter.f_meter_base === '' ? 0.00 : (meter.f_meter_base - 0).toFixed(4)
94
+ meter.f_initial_base = isNaN(meter.f_initial_base) || meter.f_initial_base === '' ? 0.00 : (meter.f_initial_base - 0).toFixed(4)
95
+ meter.f_remanent_gas = isNaN(meter.f_remanent_gas) || meter.f_remanent_gas === '' ? 0.00 : (meter.f_remanent_gas - 0).toFixed(4)
96
+ meter.f_remanent_gas = isNaN(meter.f_remanent_gas) || meter.f_remanent_gas === '' ? 0.00 : (meter.f_remanent_gas - 0).toFixed(4)
97
+ meter.f_meternumber = meter.f_meternumber ? meter.f_meternumber.trim() : null;
98
+ meter.f_cardmeternumber = meter.f_cardmeternumber ? meter.f_cardmeternumber.trim() : meter.f_meternumber;
99
+ meter.f_price_ratio = meter.f_price_ratio ? meter.f_price_ratio : null
100
+ meter.f_fire_state = meter.f_fire_state1 ? '1' : '0'
101
+ meter.f_gasmodel_id = meter.gasmodel[0].id
102
+ meter.f_meter_classify = meter.gasbrand[0].f_meter_type
103
+ meter.f_user_type = meter.f_user_type.length > 0 ? meter.f_user_type[0] : ''
104
+ meter.f_price_id = meter.pricename[0].f_price_id
105
+ meter.f_gasproperties = meter.f_gasproperties.length > 0 ? meter.f_gasproperties[0] : ''
106
+ meter.f_adjustable_id = meter.f_adjustable.length > 0 ? meter.f_adjustable[0].id : null
107
+ meter.f_userfiles_address = meter.f_userfiles_address ? meter.f_userfiles_address : null
108
+ meter.f_total_fee = meter.f_total_fee == null || meter.f_total_fee == '' ? 0:meter.f_total_fee
109
+ meter.f_total_gas = meter.f_total_gas == null || meter.f_total_gas == '' ? 0:meter.f_total_gas
110
+ meter.f_history_gas = meter.f_history_gas == null || meter.f_history_gas == '' ? 0:meter.f_history_gas
111
+ meter.f_history_fee = meter.f_history_fee == null || meter.f_history_fee == '' ? 0:meter.f_history_fee
112
+ if (!meter.f_userfiles_id) {
113
+ // 气表状态需要根据表型判断是否需要开通操作 目前物联网表需要做开通操作
114
+ meter.f_table_state = '正常'
115
+ //meter.f_whether_hairpin = !item.gasbrand[0].f_meter_type.includes('机表') ? '未发' : '无卡'
116
+ //所有表变成未发
117
+ meter.f_whether_hairpin = '未发'
118
+ meter.f_input_person = Vue.$login.f.name
119
+ meter.f_input_date = Vue.$login.toStandardTimeString ()
120
+ meter.f_card_password = item.gasbrand[0].f_card_password
121
+ meter.f_meter_base = isNaN(meter.f_initial_base) || meter.f_initial_base === '' ? 0.00 : (meter.f_initial_base - 0).toFixed(4)
122
+ meter.f_operator = Vue.$login.f.name
123
+ meter.f_operatorid = Vue.$login.f.id
124
+ meter.f_orgid = data.f_filialeid
125
+ meter.f_orgname = Vue.$login.f.orgs
126
+ meter.f_depid = Vue.$login.f.depids
127
+ meter.f_depname = Vue.$login.f.deps
128
+ }
129
+ // 之前建立的是卡表在档案中改成了物联网表(需验证建立的卡表是不是未发,如果是未发,表状态给成待开通)后端处理
130
+
131
+ meter.img = meter.img ? meter.img : {content: null, filename: null}
132
+ meter.img.content = meter.img.content ? meter.img.content : null
133
+ meter.img.filename = meter.img.filename ? meter.img.filename : null
134
+
135
+ // 处理表具的设备信息
136
+ let userfilesdevices = []
137
+ meter.devicesinfo.forEach((devitem) => {
138
+ let userfilesdevice = Object.assign({}, userfilesdevice, devitem)
139
+ userfilesdevice.f_user_id = data.meterinfo[0].f_user_id ? data.meterinfo[0].f_user_id : null
140
+ userfilesdevice.f_devices_type = userfilesdevice.f_devices_type
141
+ userfilesdevice.f_state = userfilesdevice.f_state ? userfilesdevice.f_state : '有效'
142
+ userfilesdevice.f_devices_no = userfilesdevice.f_devices_no ? userfilesdevice.f_devices_no : null
143
+ userfilesdevice.f_brand = userfilesdevice.f_brand ? userfilesdevice.f_brand : null
144
+ userfilesdevice.f_devices_model = userfilesdevice.f_devices_model ? userfilesdevice.f_devices_model : null
145
+ userfilesdevice.f_devices_num = userfilesdevice.f_devices_num ? userfilesdevice.f_devices_num : null
146
+ userfilesdevice.img = userfilesdevice.img ? userfilesdevice.img : {content: null, filename: null}
147
+ userfilesdevice.img.content = userfilesdevice.img.content ? userfilesdevice.img.content : null
148
+ userfilesdevice.img.filename = userfilesdevice.img.filename ? userfilesdevice.img.filename : null
149
+ if (!userfilesdevice.id) {
150
+ userfilesdevice.f_input_person = Vue.$login.f.name
151
+ userfilesdevice.f_input_date = Vue.$login.toStandardTimeString ()
152
+ }
153
+ userfilesdevices.push(userfilesdevice)
154
+ })
155
+ meter.devicesinfo = userfilesdevices
156
+ result.userfiles.push(meter)
157
+ })
158
+
159
+ // 组织地址数据,更新地址管理中的数据
160
+ // 地址信息
161
+ let address = {}
162
+ address = {
163
+ id: data.addressinfo.id,
164
+ }
165
+
166
+ if (data.oldaddressinfo.id) {
167
+ address.oldid = data.oldaddressinfo.id
168
+ }
169
+ if (!data.checkRefund){
170
+ return Vue.resetpost('rs/logic/filemanage_fileSave_ts', {data: {userinfo: result, address: address, limit_gas: data.limit_gas}})
171
+ } else {
172
+ return Vue.resetpost('rs/logic/checkRefund', {data: {userinfo: result, address: address, limit_gas: data.limit_gas}})
173
+ }
174
+
175
+ },
176
+ batchOperate (model, type) {
177
+ let operateType = type
178
+ if (type === '启用') {
179
+ operateType = '销户启用'
180
+ }
181
+ let data = {
182
+ f_operat_type: operateType,
183
+ f_describe: `${Vue.$login.f.name}对客户${model.userinfo.f_user_name}进行销户`,
184
+ f_state: '有效',
185
+ f_user_id: model.userinfo.f_user_id,
186
+ f_user_name: model.userinfo.f_user_name,
187
+ f_comments: model.f_reason,
188
+ f_operator: Vue.$login.f.name,
189
+ f_operatorid: Vue.$login.f.id,
190
+ f_orgid: Vue.$login.f.orgid,
191
+ f_orgname: Vue.$login.f.orgs,
192
+ f_depid: Vue.$login.f.depids,
193
+ f_depname: Vue.$login.f.deps
194
+ }
195
+ if (type === '销户') {
196
+ data.f_userinfo_id = {
197
+ f_userinfo_id: model.userinfo.f_userinfo_id,
198
+ f_user_state: '销户',
199
+ version: model.userinfo.version
200
+ }
201
+ } else if (type === '启用') {
202
+ data.f_describe = `${Vue.$login.f.name}对客户${model.userinfo.f_user_name}进行启用`
203
+ data.f_userinfo_id = {
204
+ f_userinfo_id: model.userinfo.f_userinfo_id,
205
+ f_user_state: '正常',
206
+ version: model.userinfo.version
207
+ }
208
+ }
209
+ let cancelUser = cancelUserGen(data, type)
210
+ return co(cancelUser)
211
+ }
212
+ }
213
+
214
+ export default FileManageServicets
@@ -0,0 +1,53 @@
1
+ import axios from 'axios'
2
+ export async function fetchImage (imagePath, options = {}) {
3
+ const defaultOptions = {
4
+ timeout: 3000, // 默认超时时间,单位为毫秒
5
+ maxRetries: 1, // 默认最大重试次数
6
+ onTimeout: () => {
7
+ console.log('请求超时')
8
+ },
9
+ onError: (error) => {
10
+ console.log('请求失败', error)
11
+ },
12
+ onSuccess: () => {}
13
+ }
14
+ const finalOptions = Object.assign({}, defaultOptions, options)
15
+ let retries = 0
16
+
17
+ const fetch = async () => {
18
+ try {
19
+ const response = await axios.get(imagePath, {
20
+ responseType: 'blob',
21
+ timeout: finalOptions.timeout
22
+ })
23
+ return URL.createObjectURL(response.data)
24
+ } catch (error) {
25
+ finalOptions.onError(error)
26
+ retries++
27
+ if (retries < finalOptions.maxRetries) {
28
+ return fetch()
29
+ } else {
30
+ return ''
31
+ }
32
+ }
33
+ }
34
+ return fetch()
35
+ }
36
+
37
+ export async function fetchImages (imageItems,rowName) {
38
+ const fetchPromises = imageItems.map(async (item) => {
39
+ return fetchImage(item[rowName], {
40
+ onSuccess: () => {
41
+ console.log(`图片 ${item.id} 请求成功`)
42
+ },
43
+ onError: (error) => {
44
+ console.log(`图片 ${item.id} 请求失败`, error)
45
+ }
46
+ })
47
+ })
48
+ const results = await Promise.all(fetchPromises);
49
+ results.forEach((imageUrl, index) => {
50
+ imageItems[index][rowName] = imageUrl
51
+ })
52
+ return imageItems
53
+ }
File without changes
File without changes
Binary file