sale-client 4.2.69 → 4.2.71

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/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  5. package/.gradle/buildOutputCleanup/cache.properties +2 -0
  6. package/.gradle/vcs-1/gc.properties +0 -0
  7. package/package.json +1 -1
  8. package/src/components/FilesManage/addressts/FileUserFilests.vue +671 -0
  9. package/src/components/FilesManage/ncUserinfoList.vue +315 -0
  10. package/src/components/SellGasCharge/MeterCharge/CardDataRewrite.vue +107 -0
  11. package/src/components/SendCard/SendCardData.vue +208 -0
  12. package/src/components/accounts/accountAdd.vue +276 -0
  13. package/src/components/accounts/accountsList.vue +183 -0
  14. package/src/components/accounts/accountsManage.vue +87 -0
  15. package/src/components/charge/business/FilesComplete.vue +17 -5
  16. package/src/components/common/chargeinfo/chargeinfo.vue +55 -0
  17. package/src/components/common/userinfo_detail/config/exportConfig.js +85 -0
  18. package/src/components/ncarchives/ncArchivesAdd.vue +468 -0
  19. package/src/components/ncarchives/ncArchivesList.vue +159 -0
  20. package/src/components/ncarchives/ncUserfilesList.vue +373 -0
  21. package/src/components/ncarchives/ncarchivesmanage.vue +80 -0
  22. package/src/components/revenue/IOTArrears/arrears.vue +323 -0
  23. package/src/components/revenue/IOTArrears/iotRechargeAudit.vue +369 -0
  24. package/src/components/revenue/base/rightview/carddetail/cardiotfeeChangeDetail.vue +59 -0
  25. package/src/components/revenue/base/rightview/carddetail/reduceChangeDetail.vue +59 -0
  26. package/src/components/revenue/comprehen/ComprehenOperation/BatchChange/BatchCancellationts.vue +73 -0
  27. package/src/components/revenue/comprehen/ComprehenOperation/BatchChange/BatchEnablets.vue +73 -0
  28. package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/ReduceAddGas.vue +199 -0
  29. package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/icdeductionManage.vue +24 -0
  30. package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/icdeductionYSManage.vue +24 -0
  31. package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/icfeeDeduction.vue +185 -0
  32. package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/icfeeYSDeduction.vue +185 -0
  33. package/src/components/revenue/comprehen/ComprehenOperation/newchangemeter/ChangeFlowMeter.vue +356 -0
  34. package/src/components/revenue/comprehen/ComprehenOperation/newchangemeter/CorrectionMeter.vue +148 -0
  35. package/src/components/revenue/comprehen/SpecialUser/BlackList/BlackUserList.vue +136 -0
  36. package/src/components/revenue/recordMainten/sellinggas/AddWarehousemain.vue +65 -0
  37. package/src/components/revenue/recordMainten/sellinggas/MeterOperateAdd.vue +483 -0
  38. package/src/components/revenue/recordMainten/sellinggas/MeterOperatemain.vue +279 -0
  39. package/src/components/revenue/recordMainten/sellinggas/MeterOperatemainImport.vue +265 -0
  40. package/src/components/thirdapply/thirdAdd.vue +289 -0
  41. package/src/components/thirdapply/thirdList.vue +162 -0
  42. package/src/components/thirdapply/thirdManage.vue +74 -0
  43. package/src/components/webMeter/InstructQuery.vue +414 -0
  44. package/src/components/webMeter/ParamSet/ParamSet.vue +556 -0
  45. package/src/components/webMeter/ParamSet/ParamSetForm.vue +296 -0
  46. package/src/components/webMeter/WebUserHand.vue +483 -0
  47. package/src/components/webMeter/instructionView/NewQueryInstruct.vue +509 -0
  48. package/src/components/webMeter/instructionView/NewQueryInstructMain.vue +48 -0
  49. package/src/components/webMeter/webManage/NewMeterList.vue +461 -0
  50. package/src/filiale/jinhong/CardMeterCenterInner.vue +7 -0
  51. package/src/filiale/jinhong/FilesComplete.vue +266 -0
  52. package/src/filiale/jinhong/IOTMeterCenterInner.vue +7 -0
  53. package/src/filiale/jinhong/InsuranceTemp.vue +8 -2
  54. package/src/filiale/jinhong/MachineMeterCenter.vue +7 -0
  55. package/src/filiale/jinhong/ShowCardSellGasInner.vue +12 -1
  56. package/src/filiale/jinhong/Userinfo.vue +15 -0
  57. package/src/filiale/jinhong/sale.js +2 -0
  58. package/src/filiale/jinhuang/WebHand.vue +1026 -1026
  59. package/src/filiale/yuncheng/FileManageService.js +469 -469
  60. package/src/filiale/yuncheng/IndustryCommerceHand.vue +5 -0
  61. package/src/filiale/yuncheng/IndustryCommerceHandAudit.vue +38 -0
  62. package/src/plugins/FileManageServicets.js +214 -0
  63. package/src/plugins/GetImg.js +53 -0
@@ -235,6 +235,9 @@
235
235
  <th>
236
236
  <nobr>用气量</nobr>
237
237
  </th>
238
+ <th>
239
+ <nobr>剩余气量</nobr>
240
+ </th>
238
241
  <th>
239
242
  <nobr>
240
243
  <data-order field="f_last_input_date" name="上次抄表录入日期"
@@ -326,6 +329,7 @@
326
329
  {{ row.f_tablebase }}
327
330
  </td>
328
331
  <td style="text-align: center;">{{ $parent.$parent.$parent.calculationBase(row) }}</td>
332
+ <td style="text-align: center;">{{ row.f_surplus_gas }}</td>
329
333
  <td style="text-align: center;">{{ row.f_last_input_date }}</td>
330
334
  <td style="text-align: center;">{{ row.f_hand_date }}</td>
331
335
  <td style="text-align: center;">
@@ -496,6 +500,7 @@ export default {
496
500
  'f_last_tablebase': '上期底数',
497
501
  'f_tablebase': '本期指数',
498
502
  'f_oughtamount': '应交气量',
503
+ 'f_surplus_gas': '剩余气量',
499
504
  'f_input_person': '录入人员',
500
505
  'f_meter_classify': '气表分类',
501
506
  'f_meter_brand': '气表品牌',
@@ -741,6 +741,7 @@
741
741
  // 兼容原有弹窗方式
742
742
  let id = row ? row.id : this.nopassId
743
743
  let reviewReason = reason !== undefined ? reason : this.reasonText
744
+ // 修改现有记录
744
745
  let handplan = {
745
746
  id: id,
746
747
  f_input_date: null,
@@ -755,6 +756,43 @@
755
756
  resolveMsg: null,
756
757
  rejectMsg: '未通过,抄表数据返回未抄表保存出错!!!'
757
758
  })
759
+
760
+ // 先查询这条记录的完整数据
761
+ let originalData = null
762
+ if (id) {
763
+ try {
764
+ let result = await this.$resetpost('api/af-revenue/sql/saleSingleTable', {
765
+ data: {
766
+ tablename: 't_yccustom_handplan',
767
+ condition: `id = '${id}'`
768
+ }
769
+ }, {resolveMsg: null, rejectMsg: '查询原记录失败'})
770
+ if (result.data && result.data.length > 0) {
771
+ originalData = result.data[0]
772
+ }
773
+ } catch (error) {
774
+ console.error('查询原记录失败:', error)
775
+ }
776
+ }
777
+
778
+ // 插入新记录(不传id,让数据库自动生成)
779
+ let newHandplan = {
780
+ f_meter_state: '未通过',
781
+ }
782
+ // 复制原记录的其他字段到新记录
783
+ if (originalData) {
784
+ Object.keys(originalData).forEach(key => {
785
+ if (!newHandplan.hasOwnProperty(key) && key !== 'id') {
786
+ newHandplan[key] = originalData[key]
787
+ }
788
+ })
789
+ }
790
+
791
+ await this.$resetpost('api/af-revenue/entity/save/t_yccustom_handplan', newHandplan, {
792
+ resolveMsg: null,
793
+ rejectMsg: '插入新记录失败!!!'
794
+ })
795
+
758
796
  this.search()
759
797
  },
760
798
  loadMeterBooks () {
@@ -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
+ }