sale-client 4.2.83 → 4.2.84
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.
- package/.gradle/5.2.1/fileHashes/fileHashes.lock +0 -0
- package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/.gradle/buildOutputCleanup/cache.properties +1 -1
- package/package.json +1 -1
- package/src/components/FilesManage/addressts/FileUserFilests.vue +671 -0
- package/src/components/FilesManage/ncUserinfoList.vue +315 -0
- package/src/components/SellGasCharge/MeterCharge/CardDataRewrite.vue +107 -0
- package/src/components/SendCard/SendCardData.vue +208 -0
- package/src/components/accounts/accountAdd.vue +276 -0
- package/src/components/accounts/accountsList.vue +183 -0
- package/src/components/accounts/accountsManage.vue +87 -0
- package/src/components/common/chargeinfo/chargeinfo.vue +55 -0
- package/src/components/common/userinfo_detail/config/exportConfig.js +85 -0
- package/src/components/ncarchives/ncArchivesAdd.vue +468 -0
- package/src/components/ncarchives/ncArchivesList.vue +159 -0
- package/src/components/ncarchives/ncUserfilesList.vue +373 -0
- package/src/components/ncarchives/ncarchivesmanage.vue +80 -0
- package/src/components/revenue/IOTArrears/arrears.vue +323 -0
- package/src/components/revenue/IOTArrears/iotRechargeAudit.vue +369 -0
- package/src/components/revenue/base/rightview/carddetail/cardiotfeeChangeDetail.vue +59 -0
- package/src/components/revenue/base/rightview/carddetail/reduceChangeDetail.vue +59 -0
- package/src/components/revenue/comprehen/ComprehenOperation/BatchChange/BatchCancellationts.vue +73 -0
- package/src/components/revenue/comprehen/ComprehenOperation/BatchChange/BatchEnablets.vue +73 -0
- package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/ReduceAddGas.vue +199 -0
- package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/icdeductionManage.vue +24 -0
- package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/icdeductionYSManage.vue +24 -0
- package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/icfeeDeduction.vue +185 -0
- package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/icfeeYSDeduction.vue +185 -0
- package/src/components/revenue/comprehen/ComprehenOperation/newchangemeter/ChangeFlowMeter.vue +356 -0
- package/src/components/revenue/comprehen/ComprehenOperation/newchangemeter/CorrectionMeter.vue +148 -0
- package/src/components/revenue/comprehen/SpecialUser/BlackList/BlackUserList.vue +136 -0
- package/src/components/revenue/recordMainten/sellinggas/AddWarehousemain.vue +65 -0
- package/src/components/revenue/recordMainten/sellinggas/MeterOperateAdd.vue +483 -0
- package/src/components/revenue/recordMainten/sellinggas/MeterOperatemain.vue +279 -0
- package/src/components/revenue/recordMainten/sellinggas/MeterOperatemainImport.vue +265 -0
- package/src/components/thirdapply/thirdAdd.vue +289 -0
- package/src/components/thirdapply/thirdList.vue +162 -0
- package/src/components/thirdapply/thirdManage.vue +74 -0
- package/src/components/webMeter/InstructQuery.vue +414 -0
- package/src/components/webMeter/ParamSet/ParamSet.vue +556 -0
- package/src/components/webMeter/ParamSet/ParamSetForm.vue +296 -0
- package/src/components/webMeter/WebUserHand.vue +483 -0
- package/src/components/webMeter/instructionView/NewQueryInstruct.vue +509 -0
- package/src/components/webMeter/instructionView/NewQueryInstructMain.vue +48 -0
- package/src/components/webMeter/webManage/NewMeterList.vue +461 -0
- package/src/filiale/yuncheng/ChangeMeter.vue +1 -0
- package/src/filiale/yuncheng/FileManageService.js +469 -469
- package/src/plugins/FileManageServicets.js +214 -0
- package/src/plugins/GetImg.js +53 -0
|
@@ -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
|
+
}
|