sale-client 4.1.230 → 4.2.1-ronghao

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 (171) hide show
  1. package/build/dev-server.js +29 -46
  2. package/package.json +2 -2
  3. package/src/App.vue +3 -3
  4. package/src/components/FilesManage/UserGeneralInfoTest.vue +4 -4
  5. package/src/components/FilesManageNew/FileUserFiles.vue +2 -4
  6. package/src/components/FilesManageNew/MeterinfoTest.vue +9 -9
  7. package/src/components/FilesManageNew/UserEssentialInfoTest.vue +201 -227
  8. package/src/components/FilesManageNew/UserGeneralInfoTest.vue +0 -2
  9. package/src/components/charge/business/CardMeterCenter.vue +1 -1
  10. package/src/components/charge/business/FilesComplete.vue +3 -3
  11. package/src/components/charge/business/IOTMeterCenter.vue +1 -1
  12. package/src/components/charge/business/OtherChargeNew.vue +68 -48
  13. package/src/components/common/userinfo_detail/UserInfoDetailManageNew.vue +10 -1
  14. package/src/components/common/userinfo_detail/ic_detail/CardHandRecord.vue +1 -1
  15. package/src/components/common/userinfo_detail/ic_detail/ChangeMeterQueryUser.vue +1 -1
  16. package/src/components/common/userinfo_detail/ic_detail/GarbageRecordList.vue +69 -0
  17. package/src/components/common/userinfo_detail/ic_detail/InsuranceChargesRecord.vue +384 -0
  18. package/src/components/common/userinfo_detail/ic_detail/WebHandQueryUser.vue +1 -1
  19. package/src/components/revenue/Common/MeterMessage.vue +1 -1
  20. package/src/components/revenue/HandManager/MeterBookUser.vue +726 -726
  21. package/src/components/revenue/HandManager/WebHand.vue +7 -4
  22. package/src/components/revenue/base/leftview/SafeCheck.vue +41 -3
  23. package/src/components/revenue/base/leftview/UserFeeInfo.vue +76 -0
  24. package/src/components/revenue/base/leftview/otherinfo.vue +1 -0
  25. package/src/components/revenue/base/rightview/CardList.vue +7 -3
  26. package/src/components/revenue/batchDeduction/batchDeductionList.vue +1 -1
  27. package/src/components/revenue/cardHandManage/cardDown.vue +18 -0
  28. package/src/components/revenue/changeInsurance/InsuranceAdd.vue +1 -0
  29. package/src/components/revenue/changeInsurance/InsuranceRecord.vue +2 -1
  30. package/src/components/revenue/comprehen/ComprehenOperation/BankPayment/BankPayment.vue +1 -1
  31. package/src/components/revenue/comprehen/ComprehenOperation/GiftFee/icTable.vue +4 -2
  32. package/src/components/revenue/comprehen/ComprehenOperation/QrPay/QrPaymentDetailed.vue +423 -423
  33. package/src/components/revenue/comprehen/Maintenance/hand/handOperate.vue +469 -469
  34. package/src/components/revenue/comprehen/Maintenance/revenue/MeterOperatemain.vue +2 -2
  35. package/src/components/revenue/machineHandManage/ArrearsQuery.vue +938 -938
  36. package/src/components/revenue/machineHandManage/HandplanQuery.vue +1 -1
  37. package/src/components/revenue/machineHandManage/machineHand.vue +3 -2
  38. package/src/components/webMeter/MeterManage/WebMeterBatchOperationValve.vue +970 -970
  39. package/src/filiale/alashan/eticket/EticketRecordList.vue +428 -428
  40. package/src/filiale/bayan/ChargeList.vue +1010 -1010
  41. package/src/filiale/bayan/StockListmain.vue +543 -543
  42. package/src/filiale/beifangshiye/OtherChargeNew.vue +625 -625
  43. package/src/filiale/dexin/MeterinfoTest.vue +1239 -0
  44. package/src/filiale/dexin/UserEssentialInfoTest.vue +602 -0
  45. package/src/filiale/dexin/sale.js +5 -0
  46. package/src/filiale/fugou/MeterinfoTest.vue +1 -1
  47. package/src/filiale/jiaxian/AutomaticPurse.vue +349 -0
  48. package/src/filiale/jiaxian/ChangeMeterQueryUser.vue +303 -0
  49. package/src/filiale/jiaxian/ChangeRecord.vue +44 -2
  50. package/src/filiale/jiaxian/FillCardQueryUser.vue +250 -0
  51. package/src/filiale/jiaxian/FillGasQueryUser.vue +270 -0
  52. package/src/filiale/jiaxian/OtherChargeQueryUser.vue +305 -0
  53. package/src/filiale/jiaxian/PriceAdjustmentQueryUser.vue +368 -0
  54. package/src/filiale/jiaxian/PriceChangeQueryUser.vue +243 -0
  55. package/src/filiale/jiaxian/QueryInstruct.vue +436 -0
  56. package/src/filiale/jiaxian/RecordQueryUser.vue +321 -0
  57. package/src/filiale/jiaxian/Repurchase.vue +181 -0
  58. package/src/filiale/jiaxian/TransferQueryUser.vue +274 -0
  59. package/src/filiale/jiaxian/UserInfoDetailManageNew.vue +11 -11
  60. package/src/filiale/jiaxian/Userinfo.vue +426 -0
  61. package/src/filiale/jiaxian/WatchCollection.vue +54 -1
  62. package/src/filiale/jiaxian/WebAutomaticPurse.vue +348 -0
  63. package/src/filiale/jiaxian/contractSigningList.vue +149 -0
  64. package/src/filiale/jiaxian/sale.js +5 -0
  65. package/src/filiale/jinhong/AutoAccountsDetail.vue +63 -0
  66. package/src/filiale/jinhong/CardList.vue +572 -0
  67. package/src/filiale/jinhong/CardMeterCenter.vue +1 -1
  68. package/src/filiale/jinhong/CardMeterCenterInner.vue +61 -22
  69. package/src/filiale/jinhong/GarbageCharge.vue +1 -1
  70. package/src/filiale/jinhong/HandplanQuery.vue +1430 -0
  71. package/src/filiale/jinhong/IOTMeterCenterInner.vue +42 -14
  72. package/src/filiale/jinhong/InsuranceAdd.vue +27 -5
  73. package/src/filiale/jinhong/InsuranceChargesDetails.vue +11 -5
  74. package/src/filiale/jinhong/InsuranceRecord.vue +4 -5
  75. package/src/filiale/jinhong/InsuranceTemp.vue +33 -5
  76. package/src/filiale/jinhong/MachineChargeService.js +8 -0
  77. package/src/filiale/jinhong/MachineMeterCenter.vue +38 -11
  78. package/src/filiale/jinhong/ShowCardSellGasInner.vue +46 -14
  79. package/src/filiale/jinhong/Userinfo.vue +75 -1
  80. package/src/filiale/jinhong/insuranceGuanL.vue +349 -0
  81. package/src/filiale/jinhong/machineDown.vue +1205 -0
  82. package/src/filiale/jinhong/sale.js +9 -0
  83. package/src/filiale/jinhuang/UserInfoDetailManageNew.vue +259 -0
  84. package/src/filiale/jinhuang/WebHand.vue +1026 -0
  85. package/src/filiale/jinhuang/WebHandQueryUser.vue +413 -0
  86. package/src/filiale/jinhuang/cardsHand.vue +911 -0
  87. package/src/filiale/jinhuang/sale.js +8 -0
  88. package/src/filiale/lixianV3/ArrearsQuery.vue +938 -938
  89. package/src/filiale/lixianV3/InsuranceAdd.vue +1 -0
  90. package/src/filiale/lixianV3/InsuranceChargesDetails.vue +425 -425
  91. package/src/filiale/meihekou/CardMeterCenter.vue +991 -0
  92. package/src/filiale/meihekou/ChargeManage.vue +3 -2
  93. package/src/filiale/meihekou/ChargeOper.vue +279 -169
  94. package/src/filiale/meihekou/HandManager.vue +57 -2
  95. package/src/filiale/meihekou/NoCardMeterCenter.vue +542 -0
  96. package/src/filiale/meihekou/OverUseCharge.vue +1 -1
  97. package/src/filiale/meihekou/PrintBill.vue +48 -41
  98. package/src/filiale/meihekou/ReissueBill.vue +4 -1
  99. package/src/filiale/meihekou/ShowCardSellGas.vue +935 -0
  100. package/src/filiale/meihekou/TransferManage.vue +704 -0
  101. package/src/filiale/meihekou/Userinfo.vue +233 -5
  102. package/src/filiale/meihekou/common/userinfo_detail/ic_detail/MachineRecordQuery.vue +281 -281
  103. package/src/filiale/meihekou/icTable.vue +233 -0
  104. package/src/filiale/meihekou/machineHand.vue +2158 -0
  105. package/src/filiale/meihekou/manualChargeCenter.vue +394 -0
  106. package/src/filiale/meihekou/meterTable.vue +220 -0
  107. package/src/filiale/meihekou/sale.js +15 -0
  108. package/src/filiale/qianneng/MeterMessage.vue +1 -1
  109. package/src/filiale/qianneng/revenue/sms/AccountMessageList.vue +508 -508
  110. package/src/filiale/rizhao/InsuranceAdd.vue +1 -0
  111. package/src/filiale/ronghao/ArrearsQuery.vue +974 -974
  112. package/src/filiale/ronghao/CardList.vue +19 -17
  113. package/src/filiale/ronghao/CardMeterChargeCancel.vue +5 -0
  114. package/src/filiale/ronghao/CardService.js +2144 -2144
  115. package/src/filiale/ronghao/ChangeMeterService.js +1 -1
  116. package/src/filiale/ronghao/ChargeList.vue +17 -17
  117. package/src/filiale/ronghao/ChargeManage.vue +325 -0
  118. package/src/filiale/ronghao/ChargeOper.vue +330 -0
  119. package/src/filiale/ronghao/FilesManageNew/UserEssentialInfoTest.vue +457 -0
  120. package/src/filiale/ronghao/FilesManageNew/UserGeneralInfoTest.vue +690 -0
  121. package/src/filiale/ronghao/HandplanQuery.vue +13 -14
  122. package/src/filiale/ronghao/IOTMeterCenter.vue +15 -6
  123. package/src/filiale/ronghao/InsuranceAdd.vue +1 -0
  124. package/src/filiale/ronghao/InsuranceManage.vue +58 -58
  125. package/src/filiale/ronghao/MachineChargeService.js +149 -149
  126. package/src/filiale/ronghao/NoCardMeterCenter.vue +534 -534
  127. package/src/filiale/ronghao/PaymentCode.vue +174 -174
  128. package/src/filiale/ronghao/PriceChangeCompensation/CompensationManage.vue +26 -26
  129. package/src/filiale/ronghao/PriceChangeCompensation/IotCompensation.vue +318 -318
  130. package/src/filiale/ronghao/PriceChangeCompensation/JbCompensation.vue +343 -343
  131. package/src/filiale/ronghao/PriceChangeCompensation/SurplusRecordDetail.vue +74 -74
  132. package/src/filiale/ronghao/ReplaceCardManage.vue +415 -415
  133. package/src/filiale/ronghao/Upload.vue +654 -654
  134. package/src/filiale/ronghao/Userinfo.vue +18 -18
  135. package/src/filiale/ronghao/cardDown.vue +1141 -1141
  136. package/src/filiale/ronghao/changemeterOperate.vue +315 -315
  137. package/src/filiale/ronghao/fillgasSpecific.vue +313 -313
  138. package/src/filiale/ronghao/ic_detail/ChargeRecordQuery.vue +106 -106
  139. package/src/filiale/ronghao/ic_detail/WatchCollection.vue +115 -115
  140. package/src/filiale/ronghao/ic_detail/WebHandQueryUser.vue +411 -411
  141. package/src/filiale/ronghao/machineDown.vue +1176 -1176
  142. package/src/filiale/ronghao/machineRefund.vue +3 -1
  143. package/src/filiale/ronghao/replacementSingleInfoOperation.vue +315 -315
  144. package/src/filiale/ronghao/sale.js +11 -0
  145. package/src/filiale/ronghao/specificInformation.vue +537 -537
  146. package/src/filiale/ronghao/uploadFilesHistory.vue +214 -0
  147. package/src/filiale/ruihua/FilesManage/MeterinfoTest.vue +10 -0
  148. package/src/filiale/shanxian/components/revenue/InsuranceAdd.vue +1 -0
  149. package/src/filiale/wuan/MeterMessage.vue +1 -1
  150. package/src/filiale/yangchun/BasicLivingList.vue +281 -0
  151. package/src/filiale/yangchun/BlackList/BlackRecordQuery.vue +1 -0
  152. package/src/filiale/yangchun/CardChangeFill.vue +1 -1
  153. package/src/filiale/yangchun/ChargeList.vue +954 -954
  154. package/src/filiale/yangchun/FilesManage/UserPaperInfoTest.vue +3 -3
  155. package/src/filiale/yangchun/NewMeterList.vue +742 -0
  156. package/src/filiale/yangchun/sale.js +3 -0
  157. package/src/filiale/yuncheng/CardList.vue +1 -1
  158. package/src/filiale/yuncheng/IndustryCommerceHand.vue +1145 -0
  159. package/src/filiale/yuncheng/IndustryCommerceHandAudit.vue +794 -0
  160. package/src/filiale/yuncheng/IndustryCommerceHandManager.vue +64 -0
  161. package/src/filiale/yuncheng/InsuranceAdd.vue +1 -0
  162. package/src/filiale/yuncheng/MeterBookUser.vue +781 -0
  163. package/src/filiale/yuncheng/UserDeviceInfoTest.vue +2 -2
  164. package/src/filiale/yuncheng/changemeterListMaintain.vue +504 -504
  165. package/src/filiale/yuncheng/industryDown.vue +1118 -0
  166. package/src/filiale/yuncheng/sale.js +11 -0
  167. package/src/filiale/yuncheng/uploadFilesHistory.vue +185 -0
  168. package/src/filiale/zhongsheng/BlackListList.vue +293 -293
  169. package/src/filiale/zhongyi/HandQueryUser.vue +389 -389
  170. package/src/plugins/CardService.js +2217 -2217
  171. package/src/sale.js +3 -1
@@ -118,8 +118,9 @@ export default {
118
118
  {data: {
119
119
  f_userfiles_id: obj.f_userfiles_id,
120
120
  f_userinfo_code: obj.f_userinfo_code,
121
- f_userinfo_id: obj.f_userinfo_id
122
- }
121
+ f_userinfo_id: obj.f_userinfo_id,
122
+ f_end_day: this.$appdata.getSingleValue('表具临期时间') ? this.$appdata.getSingleValue('表具临期时间') : '7'
123
+ }
123
124
  }
124
125
  , {resolveMsg: '', rejectMsg: '获取提示失败'})
125
126
  return warningInfo
@@ -1,218 +1,328 @@
1
1
  <template>
2
- <div class="form-inline" style="height: auto">
3
- <div class="form-group" v-for="btn in operBtns">
4
- <button :id="btn.name" type="button" :class="[($index === 0) ? 'btn btn-click' : 'btn btn-un-click']" @click="business(btn)" :disabled="noButton" >{{btn.name}}</button>
5
- </div>
6
- </div>
7
- <div v-show="isBusiness" style="height: auto" class="select-overspread">
8
- <route v-ref:route></route>
2
+ <div class="form-inline" style="height: auto">
3
+ <div class="form-group" v-for="btn in operBtns">
4
+ <button :id="btn.name" type="button"
5
+ :style="['其他欠费','调价补差'].includes(btn.name) ?'color:#CA2C16':'color:black'"
6
+ :class="[($index === 0) ? 'btn btn-click' : 'btn btn-un-click']" @click="business(btn)"
7
+ :disabled="noButton"><span
8
+ :style="['其他欠费','调价补差'].includes(btn.name) ?'color:#CA2C16':'color:black'">{{ btn.name }}</span>
9
+ </button>
10
+
9
11
  </div>
12
+ </div>
13
+ <div v-show="isBusiness" style="height: auto" class="select-overspread">
14
+ <route v-ref:route></route>
15
+ </div>
10
16
  </template>
11
17
 
12
18
  <script>
13
- import { HttpResetClass } from 'vue-client'
14
- let getNewmetermsg = async function (self, row) {
15
- self.cardInfo = undefined
16
- if (row.f_userfiles_id && row.f_userfiles_id.length > 0) {
17
- // 获取用户信息
18
- let getUser = await self.$resetpost('api/af-revenue/sql/sale_getUser', {
19
- data: {
20
- condition: `u.f_userfiles_id='${row.f_userfiles_id}' `,
21
- orderitem: `u.f_userfiles_id Desc`
22
- }
23
- }, {resolveMsg: '读卡新的用户成功', rejectMsg: '读卡新的用户失败'})
24
- if (getUser.data.length > 0) {
25
- await self.$showAlert('换表成功', 'success', 200)
26
- self.data = getUser.data[0]
19
+ import {HttpResetClass} from 'vue-client'
20
+ import Vue from 'vue'
21
+
22
+ let getNewmetermsg = async function (self, row) {
23
+ // self.cardInfo = undefined
24
+ if (row.f_userfiles_id && row.f_userfiles_id.length > 0) {
25
+ // 获取用户信息
26
+ let getUser = await self.$resetpost('api/af-revenue/sql/sale_getUser', {
27
+ data: {
28
+ condition: `u.f_userfiles_id='${row.f_userfiles_id}' `,
29
+ orderitem: `u.f_userfiles_id Desc`
27
30
  }
31
+ }, {resolveMsg: '读卡新的用户成功', rejectMsg: '读卡新的用户失败'})
32
+ if (getUser.data.length > 0) {
33
+ await self.$showAlert('换表成功', 'success', 200)
34
+ self.data = getUser.data[0]
28
35
  }
29
36
  }
30
- let getBtnsGen = async function (self) {
31
- let http = new HttpResetClass()
32
- let param = {
33
- f_userfiles_id: self.data.f_userfiles_id
34
- }
35
- if (self.cardInfo) {
36
- param.cardInfo = self.cardInfo
37
+ }
38
+ let getBtnsGen = async function (self) {
39
+ let http = new HttpResetClass()
40
+ let param = {
41
+ f_userfiles_id: self.data.f_userfiles_id
42
+ }
43
+ if (self.cardInfo) {
44
+ param.cardInfo = self.cardInfo
45
+ }
46
+ let res = await http.load('POST', 'api/af-revenue/logic/getOperBtns', {
47
+ data: param
48
+ }, {
49
+ resolveMsg: null,
50
+ rejectMsg: '获取业务按钮失败!!'
51
+ })
52
+ let http2 = new HttpResetClass()
53
+ let getWriteError = await http2.load('POST', 'api/af-revenue/sql/singleTable_OrderBy', {
54
+ data: {
55
+ condition: `f_state = '有效' and (f_write_card = '写卡失败' and f_operate_date >= DATEADD(HOUR, -3, GETDATE())) and f_userfiles_id = '${self.data.f_userfiles_id}'`,
56
+ tablename: 't_fillcard',
57
+ items: '*',
58
+ orderitem: 'id desc'
37
59
  }
38
- let res = await http.load('POST', 'api/af-revenue/logic/getOperBtns', {
39
- data: param
40
- }, {
41
- resolveMsg: null,
42
- rejectMsg: '获取业务按钮失败!!'
43
- })
44
- let getBtns = res.data
45
- console.log('获取的业务按钮', getBtns)
46
- console.log('有没有用户信息', self.data)
47
- if (self.$login.r.length === 0) {
48
- self.$showAlert('您没有相关的业务操作权限, 请联系管理员!!', 'warning', 2000)
49
- } else {
50
- self.temp = []
51
- for (let i = 0; i < getBtns.length; i++) {
52
- if (self.$login.r.includes(getBtns[i].name)) {
53
- // 进行权限验证
54
- self.temp.push(getBtns[i])
60
+ }, {resolveMsg: null, rejectMsg: '获取写卡失败的补卡记录失败'})
61
+ console.log('获取写卡失败的补卡记录', getWriteError)
62
+ let getBtns = res.data
63
+ console.log('获取的业务按钮', getBtns)
64
+ console.log('有没有用户信息', self.data)
65
+ for(let i = 0; i < getBtns.length; i++){
66
+ if(getBtns[i].name === '其他欠费'){
67
+ self.$showMessage('请先完成待缴费的材料费',["confirm","cancel"]).then(res =>{
68
+ if(res === 'confirm'){
69
+ self.business(getBtns[i])
55
70
  }
56
- }
57
- // 如果有未写卡记录,添加线下写卡按钮
58
- if (self.data.unWriteSell) {
59
- if (self.data.unWriteSell.length > 0) {
60
- self.temp.push({name: '线下写卡',
61
- value: {
62
- 'weight': 0,
63
- 'routeName': 'un-write-card-center'
64
- }})
65
- }
66
- }
67
- if (self.data.f_user_nature == '单位') {
68
- self.temp.push({name: '维管收费',
69
- value: {
70
- 'weight': 5,
71
- 'routeName': 'repair-charge'
72
- }})
73
- }
74
- if (self.data.f_meter_type == '物联网表') {
75
- if (self.data.f_hascard == '是') {
76
- if (self.data.f_whether_hairpin == '未发') {
71
+ })
72
+ }
73
+ }
74
+ if (self.$login.r.length === 0) {
75
+ self.$showAlert('您没有相关的业务操作权限, 请联系管理员!!', 'warning', 2000)
76
+ } else {
77
+ self.temp = []
78
+ for (let i = 0; i < getBtns.length; i++) {
79
+ // 不需要权限的按钮
80
+ let noInclude = getBtns[i].name === '垃圾费收费'
81
+ if (noInclude || self.$login.r.includes(getBtns[i].name)) {
82
+ // 进行权限验证
83
+ if (getBtns[i].name === '换表&清零') {
84
+ self.temp.push({
85
+ name: '换表',
86
+ value: getBtns[i].value
87
+ })
88
+ if (self.data.f_totalsplit_type !== '总表') {
77
89
  self.temp.push({
78
- name: '发卡售气',
90
+ name: '清零',
79
91
  value: {
80
- 'weight': 8,
81
- 'routeName': 'show-card-sell-gas'
82
- }
83
- })
84
- } else {
85
- /* self.temp.push({
86
- name: '补气', value: {
87
- "weight": 8,
88
- "routeName": "replace-card-manage"
92
+ 'weight': getBtns[i].value.weight,
93
+ 'routeName': 'reset-meter'
89
94
  }
90
- }) */
95
+ })
91
96
  }
97
+ } else {
98
+ self.temp.push(getBtns[i])
92
99
  }
100
+ console.log(self.temp[i])
93
101
  }
94
- // 如果卡上有气,添加购气撤销按钮
95
- if (self.cardInfo && (self.cardInfo.Gas > 0 || self.cardInfo.Money > 0 || (self.cardInfo.TotalMoney > 0 && self.data.f_support_purchase === '是'))) {
102
+ }
103
+ // // 检查是否需要展示限制购气按钮
104
+ // if (self.$login.r.includes('限制购气')) {
105
+ // let limitGasButton = getBtns.find(btn => btn.name === '限制购气')
106
+ // if (limitGasButton) {
107
+ // self.temp.push(limitGasButton)
108
+ // }
109
+ // }
110
+ // 如果有未写卡记录,添加线下写卡按钮
111
+ if (self.data.unWriteSell) {
112
+ if (self.data.unWriteSell.length > 0) {
96
113
  self.temp.push({
97
- name: '购气撤销',
114
+ name: '线下写卡',
98
115
  value: {
99
116
  'weight': 0,
100
- 'routeName': 'card-meter-charge-cancel'
117
+ 'routeName': 'un-write-card-center'
101
118
  }
102
119
  })
103
- if (self.data.unWriteSell && self.data.unWriteSell.length > 0) {
104
- // 过滤掉线下写卡
105
- self.temp = self.temp.filter((item) => {
106
- return item.name !== '线下写卡'
107
- })
108
- self.data.unWriteSell.forEach(
109
- async (item) => {
110
- let sql = `update t_sellinggas set f_write_card = null where id = '${item.id}' and f_write_card ='写卡失败'`
111
- await self.$resetpost('api/af-revenue/logic/runSQL', { sql: sql })
112
- }
113
- )
120
+ }
121
+ }
122
+ if (self.data.f_user_nature === '单位') {
123
+ self.temp.push({
124
+ name: '维管收费',
125
+ value: {
126
+ 'weight': 5,
127
+ 'routeName': 'repair-charge'
128
+ }
129
+ })
130
+ }
131
+ if (self.data.f_meter_type === '物联网表') {
132
+ if (self.data.f_hascard === '是') {
133
+ if (self.data.f_whether_hairpin === '未发') {
134
+ if (self.data.f_share_times !== '' && self.data.f_share_times === '是' && self.data.f_times > 0) {
135
+ self.temp.push({
136
+ name: '补卡',
137
+ value: {
138
+ 'weight': 2,
139
+ 'routeName': 'replace-card-manage'
140
+ }
141
+ })
142
+ } else {
143
+ }
114
144
  }
115
145
  }
116
- // 如果是预备户,删除发卡售气按钮
117
- if (self.data.f_user_state == '预备') {
118
- self.temp.splice(self.temp.findIndex(item => item.name === '发卡售气'), 1)
146
+ }
147
+ // 如果卡上有气,添加购气撤销按钮
148
+ if (self.cardInfo && (self.cardInfo.Gas > 0 || self.cardInfo.Money > 0 || (self.cardInfo.TotalMoney > 0 && self.data.f_support_purchase === ''))) {
149
+ self.temp.push({
150
+ name: '购气撤销',
151
+ value: {
152
+ 'weight': 0,
153
+ 'routeName': 'card-meter-charge-cancel'
154
+ }
155
+ })
156
+ if (self.data.unWriteSell && self.data.unWriteSell.length > 0) {
157
+ // 过滤掉线下写卡
158
+ self.temp = self.temp.filter((item) => {
159
+ return item.name !== '线下写卡'
160
+ })
161
+ self.data.unWriteSell.forEach(
162
+ async (item) => {
163
+ let sql = `update t_sellinggas set f_write_card = null where id = '${item.id}' and f_write_card ='写卡失败'`
164
+ await self.$resetpost('api/af-revenue/logic/runSQL', { sql: sql })
165
+ }
166
+ )
119
167
  }
168
+ }
169
+ /* // 如果是预备户,删除发卡售气按钮
170
+ if (self.data.f_user_state == '预备') {
171
+ self.temp.splice(self.temp.findIndex(item => item.name === '发卡售气'), 1)
172
+ } */
120
173
 
121
- // 根据权重将业务按钮排序
122
- self.operBtns = self.temp.sort((a, b) => {
123
- return a.value.weight - b.value.weight
124
- })
174
+ // 根据权重将业务按钮排序
175
+ self.operBtns = self.temp.sort((a, b) => {
176
+ return a.value.weight - b.value.weight
177
+ })
125
178
 
126
- if (self.operBtns.length > 0) {
127
- self.isBusiness = true
128
- self.$refs.route.init(self.operBtns[0].value.routeName, {row: self.data, cardData: self.cardInfo})
129
- self.styleChange(self.operBtns[0])
130
- }
179
+ // 当有调价补差时,只展示调价补差按钮
180
+ let adjustSenders = self.operBtns.find((row) => {
181
+ return row.name == '调价补差'
182
+ })
183
+ if (adjustSenders) {
184
+ self.operBtns = []
185
+ self.operBtns.push(adjustSenders)
186
+ }
187
+ if (getWriteError.data.length > 0) {
188
+ self.operBtns = [{
189
+ name: '补卡',
190
+ value: {
191
+ 'weight': 0,
192
+ 'routeName': 'replace-card-manage'
193
+ }
194
+ }]
195
+ }
196
+
197
+ if (self.operBtns.length > 0) {
198
+ self.isBusiness = true
199
+ self.$refs.route.init(self.operBtns[0].value.routeName, {row: self.data, cardData: self.cardInfo, writeError: getWriteError.data})
200
+ self.styleChange(self.operBtns[0])
131
201
  }
132
202
  }
203
+ // // 添加“限制购气”按钮
204
+ // self.operBtns.push({
205
+ // name: '限制购气',
206
+ // value: {
207
+ // 'weight': 0,
208
+ // 'routeName': 'limit-gas-manages'
209
+ // }
210
+ // })
211
+ }
133
212
 
134
- export default {
135
- title: '业务操作',
136
- data () {
137
- return {
138
- operBtns: [],
139
- isBusiness: false,
213
+ export default {
214
+ title: '业务操作',
215
+ data () {
216
+ return {
217
+ operBtns: [],
218
+ isBusiness: false,
219
+ noButton: false // 业务请求时禁止按钮点击
220
+ }
221
+ },
222
+ props: ['data', 'cardInfo'],
223
+ ready () {
224
+ getBtnsGen(this)
225
+ console.log('data,cardInfo', this.data, this.cardInfo)
226
+ },
227
+ methods: {
228
+ business (btn) {
229
+ // // 处理按钮样式
230
+ // this.styleChange(btn.name)
231
+ // this.isBusiness = true
232
+ // this.$refs.route.init(btn.value.routeName, {row: this.data, cardData: this.cardInfo})
233
+ if (this.$refs.route.cards.length > 0) {
234
+ if (this.$refs.route.cards[0].title == '增值服务管理') {
235
+ this.$showMessage('切换页面后,当前页面数据会丢失,是否切换?', ['confirm', 'cancel']).then(res => {
236
+ if (res == 'cancel') {
140
237
 
141
- noButton: false // 业务请求时禁止按钮点击
238
+ } else {
239
+ // 处理按钮样式
240
+ this.styleChange(btn.name)
241
+ this.isBusiness = true
242
+ this.$refs.route.init(btn.value.routeName, {row: this.data, cardData: this.cardInfo})
243
+ }
244
+ })
245
+ } else {
246
+ // 处理按钮样式
247
+ this.styleChange(btn.name)
248
+ this.isBusiness = true
249
+ this.$refs.route.init(btn.value.routeName, {row: this.data, cardData: this.cardInfo})
250
+ }
142
251
  }
143
252
  },
144
- props: ['data', 'cardInfo'],
145
- ready () {
146
- getBtnsGen(this)
147
- },
148
- methods: {
149
- business (btn) {
150
- // 处理按钮样式
151
- this.styleChange(btn.name)
152
- this.isBusiness = true
153
- this.$refs.route.init(btn.value.routeName, {row: this.data, cardData: this.cardInfo})
154
- },
155
253
 
156
- styleChange (name) {
157
- this.operBtns.forEach((res) => {
158
- if (res.name === name) {
159
- if (document.getElementById(res.name)) {
160
- document.getElementById(res.name).style.backgroundColor = '#6aa6e2'
161
- document.getElementById(res.name).style.color = 'white'
162
- }
163
- } else {
164
- if (document.getElementById(res.name)) {
165
- document.getElementById(res.name).style.backgroundColor = 'white'
166
- document.getElementById(res.name).style.color = 'black'
167
- }
254
+ styleChange (name) {
255
+ this.operBtns.forEach((res) => {
256
+ if (res.name === name) {
257
+ if (document.getElementById(res.name)) {
258
+ document.getElementById(res.name).style.backgroundColor = '#6aa6e2'
259
+ document.getElementById(res.name).style.color = 'white'
168
260
  }
169
- })
170
- }
261
+ } else {
262
+ if (document.getElementById(res.name)) {
263
+ document.getElementById(res.name).style.backgroundColor = 'white'
264
+ document.getElementById(res.name).style.color = 'black'
265
+ }
266
+ }
267
+ })
268
+ }
269
+ },
270
+ watch: {
271
+ 'data' () {
272
+ getBtnsGen(this)
273
+ }
274
+ },
275
+ events: {
276
+ 'no-button' () {
277
+ this.noButton = true
171
278
  },
172
- watch: {
173
- 'data' () {
174
- getBtnsGen(this)
175
- }
279
+ 'has-button' () {
280
+ this.noButton = false
176
281
  },
177
- events: {
178
- 'no-button' () {
179
- this.noButton = true
180
- },
181
- 'has-button' () {
182
- this.noButton = false
183
- },
184
- 'get-new-row' (row) {
185
- console.log('xxxxxx', row)
282
+ 'get-new-row' (row) {
283
+ console.log('xxxxxx', row)
186
284
  // 发生换表成功
187
- getNewmetermsg(this, row)
188
- },
189
- 'button-specifies' (buttonObj, data) {
190
- console.log('指定按钮。。', buttonObj)
191
- // buttonObj 格式: {name:'机表收费', value: 'machine-meter-center'}
285
+ getNewmetermsg(this, row)
286
+ },
287
+ 'toroute' (buttonObj, data) {
288
+ console.log('指定按钮。。', buttonObj)
289
+ this.$resetpost('api/af-revenue/sql/sale_getUser', {
290
+ data: {condition: `i.f_userinfo_code='${data.f_userinfo_code}' and u.f_filialeid = '${data.f_filialeid}'`, orderitem: `f_userinfo_id Desc`}
291
+ }, {resolveMsg: null, rejectMsg: '获取用户信息失败'}).then((res) => {
192
292
  if (buttonObj) {
293
+ this.$dispatch('resflushdata', res.data[0])
193
294
  this.styleChange(buttonObj.name)
194
- this.$refs.route.init(buttonObj.value, {row: data})
295
+ this.$refs.route.init(buttonObj.value, {row: res.data[0]})
195
296
  }
297
+ })
298
+ },
299
+ 'button-specifies' (buttonObj, data) {
300
+ console.log('指定按钮。。', buttonObj)
301
+ // buttonObj 格式: {name:'机表收费', value: 'machine-meter-center'}
302
+ if (buttonObj) {
303
+ this.styleChange(buttonObj.name)
304
+ this.$refs.route.init(buttonObj.value, {row: data})
196
305
  }
197
306
  }
198
307
  }
308
+ }
199
309
  </script>
200
310
 
201
311
  <style scoped>
202
312
 
203
- .btn-click{
204
- background-color: #6aa6e2;
205
- border-radius: 5px;
206
- color: white;
207
- /*border-color: black;*/
208
- border: solid 1px #c7c7c7;
209
- }
313
+ .btn-click {
314
+ background-color: #6aa6e2;
315
+ border-radius: 5px;
316
+ color: white;
317
+ /*border-color: black;*/
318
+ border: solid 1px #c7c7c7;
319
+ }
210
320
 
211
- .btn-un-click{
212
- background-color: white;
213
- border-radius: 5px;
214
- color: black;
215
- /*border-color: black;*/
216
- border: solid 1px #c7c7c7;
217
- }
321
+ .btn-un-click {
322
+ background-color: white;
323
+ border-radius: 5px;
324
+ color: black;
325
+ /*border-color: black;*/
326
+ border: solid 1px #c7c7c7;
327
+ }
218
328
  </style>
@@ -42,7 +42,7 @@
42
42
  </div>
43
43
 
44
44
  <div class="span" style="float:right;">
45
- <button class="button_search button_spacing" style="width:90px" @click="$parent.$parent.danhuShow()">单户抄表</button>
45
+ <button class="button_search button_spacing" style="width:90px" @click="$parent.$parent.danhuShow()">4单户抄表</button>
46
46
 
47
47
  <button class="button_search button_spacing" @click="$parent.$parent.search()">查询</button>
48
48
  <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
@@ -924,6 +924,21 @@
924
924
  this.$showAlert(`输入表底数信息有误上期底数为 ${this.danhu.info.f_tablebase}`, 'warning', 2000)
925
925
  return
926
926
  }
927
+
928
+ // 检查是否跨阶梯
929
+ let gasAmount = this.danhu.f_tablebase - this.danhu.info.f_tablebase
930
+ if (gasAmount > 0) {
931
+ // 计算阶梯信息
932
+ let calculatedetail = await this.calculateStairDetail(gasAmount)
933
+ if (calculatedetail && calculatedetail.num > 1) {
934
+ // 跨阶梯,显示提示
935
+ let result = await this.$showMessage('友好提示:本次抄表已跨阶梯 计算公式:' + (calculatedetail.str ? calculatedetail.str : ' 暂无'), ['confirm', 'cancel'])
936
+ if (result !== 'confirm') {
937
+ return // 用户取消
938
+ }
939
+ }
940
+ }
941
+
927
942
  let param = {
928
943
  downDate: this.downModel.downDate,
929
944
  startDate: this.model.params.startDate,
@@ -1611,7 +1626,47 @@
1611
1626
  this.model.paramSource.orderitem = `'${field} ${rule}'`
1612
1627
  }
1613
1628
  this.search()
1614
- }
1629
+ },
1630
+ // 计算阶梯信息和生成计算公式
1631
+ async calculateStairDetail (gasAmount) {
1632
+ try {
1633
+ // 构建计算参数
1634
+ let model = {
1635
+ f_userinfo_id: this.danhu.info.f_userinfo_id,
1636
+ f_user_id: this.danhu.info.f_user_id,
1637
+ f_userfiles_id: this.danhu.info.f_userfiles_id,
1638
+ f_price_id: this.danhu.info.f_price_id,
1639
+ f_stairprice_id: this.danhu.info.f_stairprice_id,
1640
+ f_pregas: gasAmount
1641
+ }
1642
+
1643
+ // 调用气量计算接口获取阶梯信息
1644
+ let getAmount = await this.$CommonService.gasCalculate(model, gasAmount)
1645
+ if (getAmount.data && getAmount.data.chargeprice) {
1646
+ let chargeprice = getAmount.data.chargeprice
1647
+ let str = ''
1648
+ let num = 0
1649
+
1650
+ chargeprice.forEach((item) => {
1651
+ if (item.f_gas > 0) {
1652
+ num = num + 1
1653
+ }
1654
+ if (this.danhu.info.f_isdecimal === '是') {
1655
+ str = str + item.f_price + ' x ' + item.f_gas + '+'
1656
+ } else {
1657
+ str = str + item.f_price + ' x ' + Math.floor(item.f_gas) + '+'
1658
+ }
1659
+ })
1660
+
1661
+ str = str.slice(0, str.length - 1)
1662
+ return { str: str, num: num }
1663
+ }
1664
+ return null
1665
+ } catch (error) {
1666
+ console.log('计算阶梯信息失败:', error)
1667
+ return null
1668
+ }
1669
+ },
1615
1670
  },
1616
1671
  watch: {
1617
1672
  'downModel.downWay' (val) {