sale-client 4.2.145 → 4.2.147

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 (65) hide show
  1. package/.gradle/5.2.1/fileHashes/fileHashes.lock +0 -0
  2. package/.gradle/8.8/checksums/checksums.lock +0 -0
  3. package/.gradle/8.8/dependencies-accessors/gc.properties +0 -0
  4. package/.gradle/8.8/executionHistory/executionHistory.bin +0 -0
  5. package/.gradle/8.8/executionHistory/executionHistory.lock +0 -0
  6. package/.gradle/8.8/fileChanges/last-build.bin +0 -0
  7. package/.gradle/8.8/fileHashes/fileHashes.bin +0 -0
  8. package/.gradle/8.8/fileHashes/fileHashes.lock +0 -0
  9. package/.gradle/8.8/gc.properties +0 -0
  10. package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  11. package/.gradle/buildOutputCleanup/cache.properties +2 -2
  12. package/.gradle/file-system.probe +0 -0
  13. package/package.json +1 -1
  14. package/src/filiale/meihekou/MeterOperatemain.vue +59 -3
  15. package/src/filiale/meihekou/handAudit/MeterReadAudit.vue +32 -6
  16. package/src/filiale/meihekou/replacementSingleInfoOperation.vue +50 -0
  17. package/src/filiale/ronghao/PaymentCode.vue +60 -42
  18. package/src/filiale/xihu/OffGasAddGas.vue +337 -0
  19. package/src/filiale/xihu/sale.js +2 -0
  20. package/src/filiale/yuncheng/ChangeMeter.vue +1149 -1149
  21. package/src/filiale/yuncheng/FileManageService.js +469 -469
  22. package/hs_err_pid255736.log +0 -796
  23. package/src/components/FilesManage/addressts/FileUserFilests.vue +0 -671
  24. package/src/components/FilesManage/ncUserinfoList.vue +0 -315
  25. package/src/components/SellGasCharge/MeterCharge/CardDataRewrite.vue +0 -107
  26. package/src/components/SendCard/SendCardData.vue +0 -208
  27. package/src/components/accounts/accountAdd.vue +0 -276
  28. package/src/components/accounts/accountsList.vue +0 -183
  29. package/src/components/accounts/accountsManage.vue +0 -87
  30. package/src/components/common/chargeinfo/chargeinfo.vue +0 -55
  31. package/src/components/common/userinfo_detail/config/exportConfig.js +0 -85
  32. package/src/components/ncarchives/ncArchivesAdd.vue +0 -468
  33. package/src/components/ncarchives/ncArchivesList.vue +0 -159
  34. package/src/components/ncarchives/ncUserfilesList.vue +0 -373
  35. package/src/components/ncarchives/ncarchivesmanage.vue +0 -80
  36. package/src/components/revenue/IOTArrears/arrears.vue +0 -323
  37. package/src/components/revenue/IOTArrears/iotRechargeAudit.vue +0 -369
  38. package/src/components/revenue/base/rightview/carddetail/cardiotfeeChangeDetail.vue +0 -59
  39. package/src/components/revenue/base/rightview/carddetail/reduceChangeDetail.vue +0 -59
  40. package/src/components/revenue/comprehen/ComprehenOperation/BatchChange/BatchCancellationts.vue +0 -73
  41. package/src/components/revenue/comprehen/ComprehenOperation/BatchChange/BatchEnablets.vue +0 -73
  42. package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/ReduceAddGas.vue +0 -199
  43. package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/icdeductionManage.vue +0 -24
  44. package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/icdeductionYSManage.vue +0 -24
  45. package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/icfeeDeduction.vue +0 -185
  46. package/src/components/revenue/comprehen/ComprehenOperation/IcFeeDeduction/icfeeYSDeduction.vue +0 -185
  47. package/src/components/revenue/comprehen/ComprehenOperation/newchangemeter/ChangeFlowMeter.vue +0 -356
  48. package/src/components/revenue/comprehen/ComprehenOperation/newchangemeter/CorrectionMeter.vue +0 -148
  49. package/src/components/revenue/comprehen/SpecialUser/BlackList/BlackUserList.vue +0 -136
  50. package/src/components/revenue/recordMainten/sellinggas/AddWarehousemain.vue +0 -65
  51. package/src/components/revenue/recordMainten/sellinggas/MeterOperateAdd.vue +0 -483
  52. package/src/components/revenue/recordMainten/sellinggas/MeterOperatemain.vue +0 -279
  53. package/src/components/revenue/recordMainten/sellinggas/MeterOperatemainImport.vue +0 -265
  54. package/src/components/thirdapply/thirdAdd.vue +0 -289
  55. package/src/components/thirdapply/thirdList.vue +0 -162
  56. package/src/components/thirdapply/thirdManage.vue +0 -74
  57. package/src/components/webMeter/InstructQuery.vue +0 -414
  58. package/src/components/webMeter/ParamSet/ParamSet.vue +0 -556
  59. package/src/components/webMeter/ParamSet/ParamSetForm.vue +0 -296
  60. package/src/components/webMeter/WebUserHand.vue +0 -483
  61. package/src/components/webMeter/instructionView/NewQueryInstruct.vue +0 -509
  62. package/src/components/webMeter/instructionView/NewQueryInstructMain.vue +0 -48
  63. package/src/components/webMeter/webManage/NewMeterList.vue +0 -461
  64. package/src/plugins/FileManageServicets.js +0 -214
  65. package/src/plugins/GetImg.js +0 -53
File without changes
@@ -1,2 +1,2 @@
1
- #Thu Jun 12 13:59:43 CST 2025
2
- gradle.version=5.2.1
1
+ #Mon Dec 22 09:49:15 GMT+08:00 2025
2
+ gradle.version=8.8
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "4.2.145",
3
+ "version": "4.2.147",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -280,6 +280,11 @@ var data
280
280
  methods: {
281
281
  initoperator () {
282
282
  this.foperator = []
283
+ // If a department is selected, fetch operators for that department from server
284
+ if (this.model && this.model.f_depid) {
285
+ this.fetchOperatorsByDep(this.model.f_depid)
286
+ return
287
+ }
283
288
  console.log('this.$login', this.$login, this.oldmodel, this.$GetSaleParam.inputtors)
284
289
  let arr = this.$GetSaleParam.inputtors.filter((res) => {
285
290
  if (res.rolestr != null && res.rolestr !== '') {
@@ -290,6 +295,50 @@ var data
290
295
  this.foperator.push({label: res.name, value: res.id})
291
296
  })
292
297
  },
298
+ // Fetch operators by department id from server, fallback to local inputtors
299
+ fetchOperatorsByDep (depid) {
300
+ if (!depid) return
301
+ let http = new HttpResetClass()
302
+ http.load('POST', 'api/af-revenue/sql/saleSingleTable',
303
+ { data: {tablename: 't_user', condition: `parentid = '${depid}' or f_department_id = '${depid}'`}},
304
+ {resolveMsg: null, rejectMsg: null}).then((res) => {
305
+ if (res.data && res.data.length > 0) {
306
+ this.foperator = []
307
+ res.data.forEach((row) => {
308
+ this.foperator.push({ label: row.name, value: row.id })
309
+ })
310
+ // keep current operator if present, else clear
311
+ if (this.model && this.model.f_operatorid) {
312
+ const exists = this.foperator.some(op => op.value === this.model.f_operatorid)
313
+ if (!exists) {
314
+ this.model.f_operatorid = ''
315
+ this.model.f_operator = ''
316
+ }
317
+ }
318
+ } else {
319
+ // fallback to local inputtors
320
+ this.foperator = []
321
+ if (this.$GetSaleParam && this.$GetSaleParam.inputtors) {
322
+ this.$GetSaleParam.inputtors.forEach((res) => {
323
+ if (res.rolestr && res.rolestr.indexOf('营业员') > -1
324
+ && (res.parentid === depid || res.f_department_id === depid)) {
325
+ this.foperator.push({ label: res.name, value: res.id })
326
+ }
327
+ })
328
+ }
329
+ }
330
+ }).catch(() => {
331
+ this.foperator = []
332
+ if (this.$GetSaleParam && this.$GetSaleParam.inputtors) {
333
+ this.$GetSaleParam.inputtors.forEach((res) => {
334
+ if (res.rolestr && res.rolestr.indexOf('营业员') > -1
335
+ && (res.parentid === depid || res.f_department_id === depid)) {
336
+ this.foperator.push({ label: res.name, value: res.id })
337
+ }
338
+ })
339
+ }
340
+ })
341
+ },
293
342
  initdep () {
294
343
  this.fdep = []
295
344
  // 确保 inputtors 已加载
@@ -363,6 +412,8 @@ var data
363
412
  this.model.f_depid = ''
364
413
  this.$showAlert('部门信息未找到', 'warning', 2000)
365
414
  }
415
+ // fetch operators for selected department
416
+ this.fetchOperatorsByDep(id)
366
417
  })
367
418
  },
368
419
  onDepSelect (resIds, labels) {
@@ -374,7 +425,12 @@ var data
374
425
  this.model.f_depid = ''
375
426
  this.model.f_depname = ''
376
427
  }
377
- // 保持向后兼容:若需要继续使用原 selectdep 逻辑,可补充调用
428
+ // fetch operators for the newly selected department
429
+ if (this.model.f_depid) {
430
+ this.fetchOperatorsByDep(this.model.f_depid)
431
+ } else {
432
+ this.initoperator()
433
+ }
378
434
  },
379
435
  selectoperator () {
380
436
  let id = this.model.f_operatorid
@@ -426,8 +482,8 @@ var data
426
482
  f_operatorid: this.$login.f.id,
427
483
  f_orgid: this.$login.f.orgid,
428
484
  f_orgname: this.$login.f.orgs,
429
- f_depid: this.$login.f.depids,
430
- f_depname: this.$login.f.deps
485
+ f_depid: this.model.f_depid,
486
+ f_depname: this.model.f_depname
431
487
  }
432
488
  this.recordList.push(car)
433
489
  }
@@ -22,16 +22,18 @@
22
22
  </v-select>
23
23
  </div>
24
24
  <div class="col-sm-2 form-group">
25
- <label class="font_normal_body" title="表单抄表员">抄&ensp;表&ensp;员</label>
26
- <v-select :value.sync="model.f_inputtor" v-model='model.f_inputtor'
25
+ <label class="font_normal_body" title="表单抄表员">审 核&ensp;员</label>
26
+ <!-- <input type="text" style="width:60%" class="input_search" v-model="model.f_audit_person"-->
27
+ <!-- placeholder='审核员'-->
28
+ <!-- condition="f_audit_person = '{}'">-->
29
+ <v-select :value.sync="model.f_audit_person" v-model='model.f_audit_person'
27
30
  style="width:60%"
28
31
  multiple="true"
29
- condition="f_inputtor in {}"
30
- :options='$parent.$parent.inputtores' placeholder='抄表员'
32
+ condition="f_audit_person in {}"
33
+ :options='$parent.$parent.foperator' placeholder='审核员'
31
34
  close-on-select
32
35
  v-el:cc></v-select>
33
36
  </div>
34
-
35
37
  <div class="span" style="float:right;">
36
38
  <button class="button_search button_spacing width-60" @click="search()" v-el:cx>查询</button>
37
39
  <button class="button_search button_spacing width-60"
@@ -205,11 +207,14 @@
205
207
  }
206
208
  </style>
207
209
  <script>
208
- import {PagedList} from 'vue-client'
210
+ import {HttpResetClass, PagedList} from 'vue-client'
211
+ import Vue from "vue";
209
212
 
210
213
  let readyGen = async function (self) {
211
214
  await self.$LoadParams.loadMeterBook(self.f_filialeid)
215
+ await self.$GetSaleParam.initinputtor()
212
216
  self.loadMeterBooks()
217
+ self.loadAllOperator()
213
218
  self.getfield = self.config.excelHeaders
214
219
  self.reflash()
215
220
  }
@@ -225,6 +230,7 @@ export default {
225
230
  },
226
231
  orgCondtionStr: '',
227
232
  criteriaShow: false,
233
+ foperator: [{label: '全部', value: ''}],
228
234
  show: false,
229
235
  pushdata: {openid: '', cause: ''},
230
236
  row: null,
@@ -260,6 +266,10 @@ export default {
260
266
  loadMeterBooks () {
261
267
  this.meterbooks = [...this.meterbooks, ...this.$GetSaleParam.getMeterBooks()]
262
268
  },
269
+ loadAllOperator () {
270
+ const orgid = this.$login && this.$login.f && this.$login.f.orgid
271
+ this.foperator = [...this.foperator, ...this.$GetSaleParam.getSaleMan(orgid)]
272
+ },
263
273
  getRes (obj) {
264
274
  this.orgCondtionStr = obj
265
275
  },
@@ -390,6 +400,22 @@ export default {
390
400
  }
391
401
  this.inputtores2 = rs
392
402
  return [...rs]
403
+ },
404
+ audit_person () {
405
+ // 获取抄表员
406
+ console.log('获取抄表员', this.$login.f)
407
+ let rs = []
408
+ if (this.$login.f.f_gasman.length > 0) {
409
+ for (let i = 0; i < this.$login.f.f_gasman.length; i++) {
410
+ let temp = {
411
+ label: this.$login.f.f_gasman[i].name,
412
+ value: this.$login.f.f_gasman[i].name
413
+ }
414
+ rs.push(temp)
415
+ }
416
+ }
417
+ this.inputtores2 = rs
418
+ return [...rs]
393
419
  }
394
420
  }
395
421
  }
@@ -201,6 +201,11 @@
201
201
  methods: {
202
202
  initoperator(){
203
203
  this.foperator=[]
204
+ // If a department is selected, fetch operators from server for that department
205
+ if (this.model && this.model.f_depid) {
206
+ this.fetchOperatorsByDep(this.model.f_depid)
207
+ return
208
+ }
204
209
  console.log("this.$login-------------------------",this.$login,this.oldmodel,this.model)
205
210
  let arr = this.$GetSaleParam.inputtors.filter((res) => {
206
211
  if (res.rolestr != null && res.rolestr != '') {
@@ -218,6 +223,51 @@
218
223
  }
219
224
  }
220
225
  },
226
+ // Fetch operators from server by department id, fallback to local inputtors
227
+ fetchOperatorsByDep (depid) {
228
+ if (!depid) return
229
+ let http = new HttpResetClass()
230
+ http.load('POST', 'api/af-revenue/sql/saleSingleTable',
231
+ {data:{tablename: 't_user',
232
+ condition: `parentid = '${depid}' or f_department_id = '${depid}'`}},
233
+ {resolveMsg: null, rejectMsg: null}).then((res) => {
234
+ if (res.data && res.data.length > 0) {
235
+ this.foperator = []
236
+ res.data.forEach((row) => {
237
+ this.foperator.push({label: row.name, value: row.id})
238
+ })
239
+ // ensure current operator id presence
240
+ if (this.model && this.model.f_operatorid) {
241
+ const exists = this.foperator.some(op => op.value === this.model.f_operatorid)
242
+ if (!exists) {
243
+ this.model.f_operatorid = ''
244
+ this.model.f_operator = ''
245
+ }
246
+ }
247
+ } else {
248
+ // fallback to local
249
+ this.foperator = []
250
+ if (this.$GetSaleParam && this.$GetSaleParam.inputtors) {
251
+ this.$GetSaleParam.inputtors.forEach((res) => {
252
+ if (res.rolestr && res.rolestr.indexOf('营业员') > -1
253
+ && (res.parentid === depid || res.f_department_id === depid)) {
254
+ this.foperator.push({label: res.name, value: res.id})
255
+ }
256
+ })
257
+ }
258
+ }
259
+ }).catch(() => {
260
+ this.foperator = []
261
+ if (this.$GetSaleParam && this.$GetSaleParam.inputtors) {
262
+ this.$GetSaleParam.inputtors.forEach((res) => {
263
+ if (res.rolestr && res.rolestr.indexOf('营业员') > -1
264
+ && (res.parentid === depid || res.f_department_id === depid)) {
265
+ this.foperator.push({label: res.name, value: res.id})
266
+ }
267
+ })
268
+ }
269
+ })
270
+ },
221
271
  initdep () {
222
272
  this.fdep = []
223
273
  if (!this.$GetSaleParam || !this.$GetSaleParam.inputtors) {
@@ -36,7 +36,7 @@
36
36
  },
37
37
  data () {
38
38
  return {
39
- ip:null,
39
+ ip: null,
40
40
  // 付款码弹框显示
41
41
  paymentCodeShow: false,
42
42
  // 付款码值
@@ -76,7 +76,6 @@
76
76
  this.$els.paycode.focus()
77
77
  })
78
78
  },
79
- // 付款码支付流程
80
79
  async ConfirmCode () {
81
80
  // 付款码支付之前取本机mac号对应的柜台号进行下单
82
81
  let equipment = await this.$resetpost('api/af-system/sql/equipmentQuery',
@@ -121,56 +120,74 @@
121
120
  res.f_payment = Array.isArray(this.payment) ? this.payment[0] : this.payment
122
121
  res.f_orgname = this.$login.f.orgs
123
122
  if (res.result_msg == '支付确认成功') {
123
+ if (!this.paymentCodeReturnData) this.paymentCodeReturnData = {f_out_trade_no: ''}
124
124
  this.paycoderesolve({msg: '支付完成', result: true})
125
125
  this.$closeAlert()
126
126
  } else if (res.result_msg == '支付确认未知' || res.result_msg == '支付结果未知') {
127
127
  // 支付结果未知, 根据商户订单号继续查询
128
128
  this.$showAlert(`正在查询用户付款状态,请勿进行任何操作,耐心等待,如长时间未响应可手动取消`, 'warning')
129
- let self = this
129
+ const self = this
130
130
  // 启动定时器之前先关闭定时器,防止之前的定时器未关闭
131
- if (this.timer) {
132
- this.closeTimer()
131
+ if (self.timer) {
132
+ self.closeTimer()
133
133
  }
134
134
  let times = 1
135
- this.timer = setInterval(async () => {
136
- times++
137
- if (this.$login.f.dir !== 'tianchang') {
138
- res.filiale = this.$login.f.dir
139
- res.flag = 'microPayRongHaoJsbc'
140
- }
141
- let res1 = await self.$resetpost(this.$login.f.dir === 'tianchang' ? 'api/af-revenue/logic/WeiXinPayStatus' : 'weixin2/rs/pay/microPayOrderStatus', res, {resolveMsg: null, rejectMsg: '付款码支付查询出错,'})
142
- console.log('self.paymentCodeReturnData', self.paymentCodeReturnData)
143
- self.paymentCodeReturnData = res1.data
144
- res1 = res1.data
145
- // 支付成功关闭定时器
146
- if (this.$login.f.dir === 'tianchang') {
147
- if (res1.result_msg == '支付确认成功') {
148
- self.paymentCodeReturnData.f_out_trade_no = res1.transactionId
149
- self.paycoderesolve({msg: '支付完成', result: true})
150
- self.closeTimer()
151
- return
152
- }
153
- if (res1.result_msg == '支付失败') {
154
- self.$showAlert(`支付失败, 请提醒用户重新付款`, 'danger')
155
- self.closeTimer()
156
- return
135
+ self.timer = setInterval(async () => {
136
+ try {
137
+ times++
138
+ if (self.$login.f.dir !== 'tianchang') {
139
+ res.filiale = self.$login.f.dir
140
+ res.flag = 'microPayRongHaoJsbc'
157
141
  }
158
- } else {
159
- if (res1.trade_state == '已支付') {
160
- self.paycoderesolve({msg: '支付完成', result: true})
161
- self.closeTimer()
162
- return
142
+ let res1 = await self.$resetpost(self.$login.f.dir === 'tianchang' ? 'api/af-revenue/logic/WeiXinPayStatus' : 'weixin2/rs/pay/microPayOrderStatus', res, {resolveMsg: null, rejectMsg: '付款码支付查询出错,'})
143
+ console.log('self.paymentCodeReturnData', self.paymentCodeReturnData)
144
+ const res1Data = res1.data || {}
145
+ self.paymentCodeReturnData = res1Data
146
+ res1 = res1Data
147
+ // 支付成功关闭定时器
148
+ if (self.$login.f.dir === 'tianchang') {
149
+ if (res1.result_msg == '支付确认成功') {
150
+ // 新增:确保对象存在+多层兜底赋值
151
+ if (!self.paymentCodeReturnData) self.paymentCodeReturnData = {f_out_trade_no: ''}
152
+ self.paymentCodeReturnData.f_out_trade_no = res1.transactionId
153
+ if (!self.paymentCodeReturnData.f_out_trade_no) {
154
+ self.$showAlert(`流水号校验失败,请重新扫描付款码完成付款。如上一笔订单已完成扣款操作,系统将在5分钟内自动发起退款`, 'danger', 500)
155
+ self.closeTimer()
156
+ self.paymentCodeShow = false
157
+ return
158
+ }
159
+ self.paycoderesolve({msg: '支付完成', result: true})
160
+ self.closeTimer()
161
+ return
162
+ }
163
+ if (res1.result_msg == '支付失败') {
164
+ self.$showAlert(`支付失败, 请提醒用户重新付款`, 'danger')
165
+ self.closeTimer()
166
+ return
167
+ }
168
+ } else {
169
+ if (res1.trade_state == '已支付') {
170
+ self.paycoderesolve({msg: '支付完成', result: true})
171
+ self.closeTimer()
172
+ return
173
+ }
174
+ if (res1.result_msg == '扣款失败') {
175
+ self.$showAlert(`支付失败, 请提醒用户重新付款`, 'danger')
176
+ self.closeTimer()
177
+ self.paymentCodeShow = false
178
+ return
179
+ }
163
180
  }
164
- if (res1.result_msg == '扣款失败') {
165
- self.$showAlert(`支付失败, 请提醒用户重新付款`, 'danger')
181
+ if (times > 24) {
182
+ self.$showAlert(`多次查询未成功,请重新扫描用户付款码`, 'danger')
166
183
  self.closeTimer()
167
- self.paymentCodeShow = false
168
- return
169
184
  }
170
- }
171
- if (times > 24) {
172
- self.$showAlert(`多次查询未成功,请重新扫描用户付款码`, 'danger')
185
+ } catch (e) {
186
+ // 新增:异常捕获,关闭定时器并提示
187
+ console.error('定时器执行异常', e)
188
+ self.$showAlert(`支付查询异常,请重新操作`, 'danger')
173
189
  self.closeTimer()
190
+ self.paymentCodeShow = false
174
191
  }
175
192
  }, 9000)
176
193
  } else {
@@ -189,9 +206,10 @@
189
206
  },
190
207
  // 关闭定时器
191
208
  closeTimer () {
192
- console.log('关闭定时器')
193
- clearInterval(this.timer)
194
- this.timer = null
209
+ if (this.timer) {
210
+ clearInterval(this.timer)
211
+ this.timer = null
212
+ }
195
213
  },
196
214
  closeCode () {
197
215
  this.$showMessage('取消后无法继续收款,确定取消吗?', ['confirm', 'cancel']).then((res) => {