sale-client 3.4.112 → 3.4.113

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 (93) hide show
  1. package/.gradle/{5.2.1 → 4.4}/fileChanges/last-build.bin +0 -0
  2. package/.gradle/{6.1.1 → 4.4}/fileHashes/fileHashes.bin +0 -0
  3. package/.gradle/4.4/fileHashes/fileHashes.lock +0 -0
  4. package/build/dev-server.js +3 -3
  5. package/{.gradle/5.2.1/gc.properties → npm} +0 -0
  6. package/package.json +1 -1
  7. package/src/components/FilesManage/MeterinfoTest.vue +904 -905
  8. package/src/components/FilesManage/TemplateManage.vue +167 -167
  9. package/src/components/FilesManage/UserGeneralInfoTest.vue +642 -640
  10. package/src/components/charge/business/CardChangeFill.vue +612 -612
  11. package/src/components/charge/business/CardMeterCenter.vue +899 -899
  12. package/src/components/charge/business/FilesComplete.vue +253 -253
  13. package/src/components/charge/business/refund/IOTRefund.vue +236 -236
  14. package/src/components/charge/business/refund/RefundManage.vue +28 -28
  15. package/src/components/charge/gasloss/gasLossOperate.vue +357 -357
  16. package/src/components/chargeNew/thirdSurplus.vue +2 -0
  17. package/src/components/revenue/Common/MeterMessage.vue +184 -184
  18. package/src/components/revenue/HandManager/MeterBookManage.vue +153 -153
  19. package/src/components/revenue/base/leftview/MixPriceInfo.vue +60 -60
  20. package/src/components/revenue/base/leftview/Mulitinfo.vue +74 -74
  21. package/src/components/revenue/base/leftview/SafeCheck.vue +311 -311
  22. package/src/components/revenue/base/leftview/Stairinfo.vue +156 -156
  23. package/src/components/revenue/base/leftview/meterinfodetail.vue +195 -195
  24. package/src/components/revenue/base/rightview/CardList.vue +477 -477
  25. package/src/components/revenue/comprehen/ComprehenOperation/MeterDisable/DisableManage.vue +93 -93
  26. package/src/components/revenue/comprehen/ComprehenOperation/MeterEnable/EnableManage.vue +184 -184
  27. package/src/components/revenue/comprehen/ComprehenOperation/OtherGas/OtherGas.vue +5 -1
  28. package/src/components/revenue/comprehen/ComprehenOperation/removeTable.vue +1 -1
  29. package/src/components/revenue/comprehen/Maintenance/hand/handListMaintain.vue +638 -638
  30. package/src/components/revenue/comprehen/Maintenance/revenue/StockListmain.vue +7 -7
  31. package/src/components/revenue/comprehen/Message/MessageList.vue +587 -587
  32. package/src/components/revenue/comprehen/SpecialUser/BlackList/BlackList.vue +1 -1
  33. package/src/components/revenue/comprehen/SpecialUser/BlackList/BlackListManage.vue +1 -1
  34. package/src/components/revenue/comprehen/StairPrice/GasPriceList.vue +303 -303
  35. package/src/components/revenue/comprehen/replacement/replacementHandInfoRecord.vue +155 -155
  36. package/src/components/revenue/comprehen/wechatpay/WeChat.vue +62 -62
  37. package/src/components/webMeter/MeterManage/WebMeterBatchOperationValve.vue +8 -4
  38. package/src/filiale/alashan/PrintBill.vue +116 -116
  39. package/src/filiale/jingwei/CardHand.vue +742 -742
  40. package/src/filiale/macheng/FilesManageNew/FileUserFiles.vue +743 -0
  41. package/src/filiale/macheng/FilesManageNew/UserEssentialInfoTest.vue +371 -371
  42. package/src/filiale/macheng/FilesManageNew/UserGeneralInfoTest.vue +596 -596
  43. package/src/filiale/macheng/UserEssentialInfoTest.vue +368 -366
  44. package/src/filiale/meihekou/MeterinfoTest.vue +0 -1
  45. package/src/filiale/meihekou/PrintBill.vue +140 -140
  46. package/src/filiale/meihekou/ReissueBill.vue +322 -322
  47. package/src/filiale/qianneng/FilesManage/MeterinfoTest.vue +0 -1
  48. package/src/filiale/qianneng/GasPriceList.vue +330 -330
  49. package/src/filiale/qianneng/HandManager.vue +1838 -1838
  50. package/src/filiale/qianneng/OtherChargeNew.vue +6 -2
  51. package/src/filiale/qianneng/sale.js +30 -32
  52. package/src/filiale/qingtongxia/UserGeneralInfoTest.vue +538 -533
  53. package/src/filiale/rongcheng/FilesManageNew/UserGeneralInfoTest.vue +608 -608
  54. package/src/filiale/rongchuang/OtherGas.vue +329 -329
  55. package/src/filiale/tongchuan/CardList.vue +482 -482
  56. package/src/filiale/tongchuan/MeterinfoTest.vue +892 -892
  57. package/src/filiale/tongchuan/common/userinfo_detail/ic_detail/AutomaticPurse.vue +298 -298
  58. package/src/filiale/tongchuan/common/userinfo_detail/ic_detail/CardHandRecord.vue +267 -267
  59. package/src/filiale/tongchuan/common/userinfo_detail/ic_detail/ChangeMeterQueryUser.vue +240 -240
  60. package/src/filiale/tongchuan/common/userinfo_detail/ic_detail/ChangeRecord.vue +235 -235
  61. package/src/filiale/tongchuan/common/userinfo_detail/ic_detail/ChargeQueryUser.vue +372 -372
  62. package/src/filiale/tongchuan/common/userinfo_detail/ic_detail/DeveiceRecord.vue +251 -251
  63. package/src/filiale/tongchuan/common/userinfo_detail/ic_detail/FillCardQueryUser.vue +209 -209
  64. package/src/filiale/tongchuan/common/userinfo_detail/ic_detail/HandQueryUser.vue +365 -365
  65. package/src/filiale/tongchuan/common/userinfo_detail/ic_detail/MachineRecordQuery.vue +252 -252
  66. package/src/filiale/tongchuan/common/userinfo_detail/ic_detail/OtherChargeQueryUser.vue +250 -250
  67. package/src/filiale/tongchuan/common/userinfo_detail/ic_detail/RecordQueryUser.vue +249 -249
  68. package/src/filiale/tongchuan/common/userinfo_detail/ic_detail/TransferQueryUser.vue +222 -222
  69. package/src/filiale/tongchuan/sale.js +107 -107
  70. package/src/filiale/zhongsheng/rightview/CardList.vue +492 -492
  71. package/src/filiale/zhongsheng/wechatpay/WeChatPayDetail.vue +469 -469
  72. package/src/main.js +1 -1
  73. package/src/plugins/CardService.js +1798 -1798
  74. package/src/plugins/ChangeMeterService.js +756 -756
  75. package/src/plugins/FileManageService.js +366 -366
  76. package/.gradle/5.2.1/fileHashes/fileHashes.lock +0 -0
  77. package/.gradle/6.1.1/executionHistory/executionHistory.bin +0 -0
  78. package/.gradle/6.1.1/executionHistory/executionHistory.lock +0 -0
  79. package/.gradle/6.1.1/fileChanges/last-build.bin +0 -0
  80. package/.gradle/6.1.1/fileHashes/fileHashes.lock +0 -0
  81. package/.gradle/6.1.1/gc.properties +0 -0
  82. package/.gradle/7.1/dependencies-accessors/dependencies-accessors.lock +0 -0
  83. package/.gradle/7.1/dependencies-accessors/gc.properties +0 -0
  84. package/.gradle/7.1/executionHistory/executionHistory.bin +0 -0
  85. package/.gradle/7.1/executionHistory/executionHistory.lock +0 -0
  86. package/.gradle/7.1/fileChanges/last-build.bin +0 -0
  87. package/.gradle/7.1/fileHashes/fileHashes.bin +0 -0
  88. package/.gradle/7.1/fileHashes/fileHashes.lock +0 -0
  89. package/.gradle/7.1/gc.properties +0 -0
  90. package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  91. package/.gradle/buildOutputCleanup/cache.properties +0 -2
  92. package/.gradle/checksums/checksums.lock +0 -0
  93. package/.gradle/vcs-1/gc.properties +0 -0
@@ -1,357 +1,357 @@
1
- <template>
2
- <div class="flex-row auto">
3
- <div class="span auto" style="height: 98%;overflow-y: auto;">
4
- <validator name='v'>
5
- <form novalidate class="form-horizontal">
6
- <div class="flex-auto">
7
- <div style="height:550px;overflow-y: auto;">
8
- <div style="margin-top:10px;" class="auto row" v-for="row in model.gaslossdetail">
9
- <div class="panel panel-primary datapanel" style="background-color: #f4f6f8">
10
- <!-- <div class="auto row">-->
11
- <div class="col-sm-4 form-group" :class="{'has-success':row.f_type,'has-error':!row.f_type}">
12
- <label for="f_brand_spec" class="font_normal_body" title="参数名称:气损分类">气损分类</label>
13
- <v-select placeholder='气损分类'
14
- v-model="row.f_type"
15
- :value.sync="row.f_type"
16
- :options='types'
17
- :value-single="true"
18
- close-on-select clear-button>
19
- </v-select>
20
- </div>
21
- <div class="col-sm-4 form-group" :class="{'has-success':row.f_loss_type,'has-error':!row.f_loss_type}">
22
- <label for="f_brand_spec" class="font_normal_body" title="参数名称:气损类型">气损类型</label>
23
- <v-select id="f_brand_spec"
24
- placeholder='气损类型'
25
- v-model="row.f_loss_type"
26
- :value.sync="row.f_loss_type"
27
- :options='row.f_type?this.$appdata.getParam(row.f_type):[]'
28
- :value-single="true"
29
- close-on-select clear-button>
30
- </v-select>
31
- </div>
32
- <div class="col-sm-4 form-group" :class="{'has-success':row.f_unitprice,'has-error':!row.f_unitprice}">
33
- <label style="" for="f_unitprice" class=" font_normal_body">单&emsp;&emsp;价</label>
34
- <input class="input_search" style="width:60%" type="number" min="0"
35
- v-validate:f_unitprice='{required: true, dctest: [0, ">" ] }'
36
- @blur.prevent="getcollection()"
37
- v-model="row.f_unitprice"
38
- placeholder="单价" >
39
- </div>
40
- <div class="col-sm-4 form-group" :class="{'has-success':row.f_number,'has-error':!row.f_number}">
41
- <label style="" for="f_number" class="font_normal_body">数&emsp;&emsp;量</label>
42
- <input class="input_search" style="width:60%" type="number" min='1' @blur.prevent="getcollection()"
43
- v-validate:f_number='{required: true, dctest: [0, ">" ] }'
44
- v-model="row.f_number"
45
- placeholder="数量" >
46
- </div>
47
- <div class="form-group" style="display: flow-root;width: 60px">
48
- <button type="button" class="glyphicon glyphicon-minus btn-danger" @click.stop="delthisdetail($index)"></button>
49
- <button type="button" class="glyphicon glyphicon-plus btn-success" @click.stop="addadetail()"></button>
50
- </div>
51
- <!-- </div>-->
52
- </div>
53
- </div>
54
- </div>
55
- <div class=" panel panel-primary datapanel" style="height:260px">
56
- <div class="row">
57
- <div class="col-sm-4 form-group">
58
- <label class=" font_normal_body">&emsp;客户编号</label>
59
- <input class="input_search" style="width:60%"
60
- v-model="model.f_userinfo_code"
61
- @blur="codeChange()"
62
- placeholder="客户编号">
63
- </div>
64
- <div class="col-sm-4 form-group" :class="{'has-success':model.f_charge_person,'has-error':!model.f_charge_person}">
65
- <label class=" font_normal_body">&emsp;缴&nbsp;费&nbsp;人&nbsp;</label>
66
- <input class="input_search" style="width:60%"
67
- v-validate:f_charge_person='{required: true }'
68
- v-model="model.f_charge_person"
69
- placeholder="缴费人">
70
- </div>
71
- <div class="col-sm-4 form-group" :class="{'has-success':model.f_charge_phone,'has-error':!model.f_charge_phone}">
72
- <label class=" font_normal_body">&emsp;联系电话</label>
73
- <input class="input_search" style="width:60%"
74
- v-validate:f_charge_phone='{required: true }'
75
- v-model="model.f_charge_phone"
76
- placeholder="联系电话">
77
- </div>
78
- <div class="col-sm-12 form-group" :class="{'has-success':model.f_charge_address,'has-error':!model.f_charge_address}">
79
- <label class=" font_normal_body">缴费人地址</label>
80
- <input class="input_search" style="width:89%"
81
- v-validate:f_charge_address='{required: true }'
82
- v-model="model.f_charge_address"
83
- placeholder="缴费人地址">
84
- </div>
85
- <div class="col-sm-4 form-group">
86
- <label for="f_paytype" class="font_normal_body" title="参数名称:付款方式">&emsp;收款方式</label>
87
- <v-select id="f_payment"
88
- v-model="f_payment"
89
- placeholder='请选择'
90
- :value.sync="model.f_payment"
91
- :value-single="true"
92
- :options='paytype'
93
- close-on-select clear-button>
94
- </v-select>
95
- </div>
96
- <div class="col-sm-4 form-group">
97
- <label for="f_print" class="font_normal_body">&emsp;打印格式</label>
98
- <v-select id="print"
99
- v-model="model.f_print"
100
- placeholder='请选择'
101
- :value.sync="model.f_print"
102
- :options='printstyle'
103
- :value-single="true"
104
- close-on-select clear-button>
105
- </v-select>
106
- </div>
107
- <div class="col-sm-4 auto" style="text-align:right;">
108
- <label for="f_collection" ><font size="6px" style="font-weight:bold;color:darkred">收&emsp;款&emsp;:&emsp;{{model.f_collection}}</font></label>
109
- </div>
110
- <div class="col-sm-12 form-group">
111
- <label class=" font_normal_body">&emsp;备&emsp;&emsp;注</label>
112
- <input class="input_search" style="width:87%"
113
- v-model="model.f_comments"
114
- placeholder="备注">
115
- </div>
116
- <div style="text-align:right;height: 25%;">
117
- <button class="button_search btn-gn" @click="confirm()" :disabled='!$v.valid || validateOk'>确认</button>
118
- <button class="button_clear btn-gn" @click="clean()">取消</button>
119
- </div>
120
- </div>
121
-
122
- <!-- <payment-code-button :clickable="!$v.valid || validateOk"-->
123
- <!-- :payment.sync="model.f_payment" :payment-data="paytype"-->
124
- <!-- @confirm-payment="confirm()">-->
125
- <!-- </payment-code-button>-->
126
-
127
-
128
- </div>
129
- </div>
130
-
131
- </form>
132
- <validate-bill v-if="hasValidateBill" :data="model" @validate-bill="validateBill"></validate-bill>
133
- <print-bill :show="print" :data='model' :bill-config='config' :bill-data='billData' v-on:toggle="close" @printok="printok" v-ref:printbill></print-bill>
134
- <!-- <print-other-charge-bill :show="print" v-ref:printbill :row='row' :logic='model' v-on:success="close" v-on:toggle="close"></print-other-charge-bill> -->
135
- <!-- <tax-other-bill :show="taxprint" v-ref:taxprintbill :row='row' :logic='model' v-on:success="close" v-on:toggle="close"></tax-other-bill> -->
136
-
137
- </validator>
138
-
139
- </div>
140
-
141
- <payment-code v-ref:paymentcode :payment="model.f_payment" :money="model.f_collection"></payment-code>
142
-
143
- </div>
144
- <!-- <div class="auto">-->
145
- <!-- <upload isremark="true" fusetype="气损收费"></upload>-->
146
- <!-- </div>-->
147
- </template>
148
-
149
-
150
- <script>
151
-
152
- import {HttpResetClass} from 'vue-client'
153
- import Vue from 'vue'
154
-
155
- let gasLossGen = async function (self) {
156
- try {
157
- // 加入扫码盒付款码支付流水号
158
- self.model.f_serial_id = self.$refs.paymentcode.paymentCodeReturnData.f_out_trade_no
159
- // let resid = await self.$LogicService.otherCharge(self.model, self.row)
160
- self.model.f_bill_style=self.model.f_print
161
- let http = new HttpResetClass()
162
- self.model.f_describe=`${Vue.$login.f.name}对${self.model.f_charge_person}进行气损收费`
163
- let resid = await http.load('POST', 'rs/logic/gasLoss', self.model, {resolveMsg: '气损收费成功', rejectMsg: '气损收费失败'})
164
- console.log('f_print:', resid)
165
- if (true) {
166
- if (self.model.f_print != '电子发票') {
167
- if (self.config.hasBillManage) {
168
- self.model.id = resid
169
- self.model.f_bill_type = '其他费用'
170
- self.model.f_bill_style = self.model.f_print[0]
171
- self.print = true
172
- } else {
173
- self.model.id = resid
174
- self.print = true
175
- }
176
- } else if (self.model.f_print === '国税发票') {
177
- // TODO
178
- self.clean()
179
- self.$dispatch('refresh')
180
- } else if (self.model.f_print === '电子发票') {
181
- self.$CommonService.openEticket(resid, '其他费用')
182
- self.clean()
183
- self.$dispatch('refresh')
184
- }
185
- } else {
186
- self.clean()
187
- self.$dispatch('refresh')
188
- }
189
- } catch (error) {
190
- self.$showAlert(error, 'danger', 0)
191
- self.$dispatch('refresh')
192
- }
193
- }
194
-
195
- let asyncGasLoss = async function (self) {
196
- try{
197
- await self.$getConfig(self, 'gasLossCharge')
198
- } catch(error){
199
- console.log('无配置文件')
200
- }
201
- self.model.f_print = self.config.printType
202
- self.model.f_payment = self.config.payment
203
- self.model.f_use_type = self.config.billType
204
- self.model.f_bill_type = self.config.f_print
205
- self.hasValidateBill = self.config.hasBillManage
206
- }
207
- export default {
208
- title: '气损收费',
209
- data () {
210
- return {
211
- config: {
212
- showupload: false,
213
- hasPrint: false, // 默认打票
214
- hasBillManage: false, // 默认不启用发票管理
215
- billType: '其他费用', // 票据类型(燃气费,其他费用,调用的发票代码不同)
216
- printType: '普通收据', // 收据/电子票/专用发票/国税发票
217
- payment: '现金缴费', // 付款方式
218
- f_type: '', // 气损分类
219
- f_loss_type: '' // 气损类型
220
-
221
- },
222
- model: {
223
- f_userinfo_id:null,
224
- f_collection: 0,
225
- f_payment: '',
226
- f_bill_style: '',
227
- f_comments: '',
228
- f_charge_person: '',
229
- f_charge_phone: '',
230
- f_charge_address: '',
231
- f_state: '有效',
232
- f_operator: Vue.$login.f.name,
233
- f_operatorid: Vue.$login.f.id,
234
- f_orgid: Vue.$login.f.orgid,
235
- f_orgname: Vue.$login.f.orgs,
236
- f_depid: Vue.$login.f.depids,
237
- f_depname: Vue.$login.f.deps,
238
- f_operat_type: '气损收费',
239
- f_print: '',
240
- gaslossdetail:[{}]
241
- },
242
- print: false,
243
- taxprint: false,
244
- billData: {
245
- url: 'rs/report/gasloss_bill',
246
- bill: ''
247
- },
248
-
249
- // 启用发票管理需要对票号进行验证
250
- hasValidateBill: false,
251
- validateOk: false,
252
- types: this.$appdata.getParam('气损分类'),
253
- printstyle: this.$appdata.getParam('打印格式'),
254
- paytype: this.$appdata.getParam('付款方式'),
255
- feetype: this.$appdata.getParam('其他费用'),
256
- services: this.$appdata.getParam('服务人员')
257
- }
258
- },
259
- ready () {
260
- asyncGasLoss(this)
261
- },
262
-
263
- methods: {
264
- async codeChange(){
265
- if(this.model.f_userinfo_code){
266
- let http = new HttpResetClass()
267
- let res = await http.load('POST', 'rs/sql/singleTable_OrderBy', {
268
- data: {
269
- items: 'u.f_userinfo_id,u.f_user_name,u.f_user_phone,a.f_address',
270
- tablename: 't_userinfo u left join t_user_address a on u.f_userinfo_id = a.f_userinfo_id',
271
- condition: `u.f_userinfo_code = '${this.model.f_userinfo_code}' and u.f_user_state = '正常'`,
272
- orderitem: 'u.f_userinfo_id desc'
273
- }
274
- }, {resolveMsg: null, rejectMsg: '获取用户信息失败'})
275
- if(res.data.length==0){
276
- this.$showAlert('该客户编号不存在,请重新输入','warning',3000)
277
- this.model.f_userinfo_code=null
278
- }else{
279
- this.model.f_userinfo_id=res.data[0].f_userinfo_id
280
- this.model.f_charge_person=res.data[0].f_user_name
281
- this.model.f_charge_phone=res.data[0].f_user_phone
282
- this.model.f_charge_address=res.data[0].f_address
283
- }
284
-
285
- }
286
- },
287
- clean(){
288
- this.model={
289
- f_collection: 0,
290
- f_payment: this.config.payment,
291
- f_print: this.config.printType,
292
- f_bill_style: '',
293
- f_comments: '',
294
- f_charge_person: '',
295
- f_charge_phone: '',
296
- f_charge_address: '',
297
- f_state: '有效',
298
- f_operator: Vue.$login.f.name,
299
- f_operatorid: Vue.$login.f.id,
300
- f_orgid: Vue.$login.f.orgid,
301
- f_orgname: Vue.$login.f.orgs,
302
- f_depid: Vue.$login.f.depids,
303
- f_depname: Vue.$login.f.deps,
304
- f_operat_type: '气损收费',
305
- gaslossdetail:[{}]
306
- }
307
- },
308
- async confirm () {
309
- // // 先调用付款码支付组件流程
310
- let ss = await this.$refs.paymentcode.flowPath()
311
- this.$refs.paymentcode.paymentCodeShow = false
312
- console.log('付款码操作返回', ss)
313
- if (!ss.result) return
314
-
315
- gasLossGen(this)
316
- },
317
- close () {
318
- this.taxprint = false
319
- this.print = false
320
- this.clean()
321
- },
322
- printok () {
323
- this.$dispatch('success')
324
- },
325
- validateBill (val) {
326
- this.validateOk = !val.isOk
327
- this.billData.bill = val.bill
328
- },
329
- getcollection () {
330
- let money = 0
331
- this.model.gaslossdetail.forEach((item) => {
332
- if (item.f_unitprice && item.f_number) {
333
- money += ((item.f_unitprice - 0) * (item.f_number - 0)) - 0
334
- }
335
- })
336
-
337
- if (money != 0) {
338
- this.model.f_collection = money.toFixed(4)
339
- }
340
- },
341
- addadetail () {
342
- this.model.gaslossdetail.push({})
343
- },
344
- delthisdetail (index) {
345
- if (this.model.gaslossdetail.length > 1) {
346
- this.model.gaslossdetail.splice(index, 1)
347
- this.getcollection()
348
- }
349
- },
350
- },
351
- computed: {
352
- }
353
- }
354
- </script>
355
-
356
- <style>
357
- </style>
1
+ <template>
2
+ <div class="flex-row auto">
3
+ <div class="span auto" style="height: 98%;overflow-y: auto;">
4
+ <validator name='v'>
5
+ <form novalidate class="form-horizontal">
6
+ <div class="flex-auto">
7
+ <div style="height:550px;overflow-y: auto;">
8
+ <div style="margin-top:10px;" class="auto row" v-for="row in model.gaslossdetail">
9
+ <div class="panel panel-primary datapanel" style="background-color: #f4f6f8">
10
+ <!-- <div class="auto row">-->
11
+ <div class="col-sm-4 form-group" :class="{'has-success':row.f_type,'has-error':!row.f_type}">
12
+ <label for="f_brand_spec" class="font_normal_body" title="参数名称:气损分类">气损分类</label>
13
+ <v-select placeholder='气损分类'
14
+ v-model="row.f_type"
15
+ :value.sync="row.f_type"
16
+ :options='types'
17
+ :value-single="true"
18
+ close-on-select clear-button>
19
+ </v-select>
20
+ </div>
21
+ <div class="col-sm-4 form-group" :class="{'has-success':row.f_loss_type,'has-error':!row.f_loss_type}">
22
+ <label for="f_brand_spec" class="font_normal_body" title="参数名称:气损类型">气损类型</label>
23
+ <v-select id="f_brand_spec"
24
+ placeholder='气损类型'
25
+ v-model="row.f_loss_type"
26
+ :value.sync="row.f_loss_type"
27
+ :options='row.f_type?this.$appdata.getParam(row.f_type):[]'
28
+ :value-single="true"
29
+ close-on-select clear-button>
30
+ </v-select>
31
+ </div>
32
+ <div class="col-sm-4 form-group" :class="{'has-success':row.f_unitprice,'has-error':!row.f_unitprice}">
33
+ <label style="" for="f_unitprice" class=" font_normal_body">单&emsp;&emsp;价</label>
34
+ <input class="input_search" style="width:60%" type="number" min="0"
35
+ v-validate:f_unitprice='{required: true, dctest: [0, ">" ] }'
36
+ @blur.prevent="getcollection()"
37
+ v-model="row.f_unitprice"
38
+ placeholder="单价" >
39
+ </div>
40
+ <div class="col-sm-4 form-group" :class="{'has-success':row.f_number,'has-error':!row.f_number}">
41
+ <label style="" for="f_number" class="font_normal_body">数&emsp;&emsp;量</label>
42
+ <input class="input_search" style="width:60%" type="number" min='1' @blur.prevent="getcollection()"
43
+ v-validate:f_number='{required: true, dctest: [0, ">" ] }'
44
+ v-model="row.f_number"
45
+ placeholder="数量" >
46
+ </div>
47
+ <div class="form-group" style="display: flow-root;width: 60px">
48
+ <button type="button" class="glyphicon glyphicon-minus btn-danger" @click.stop="delthisdetail($index)"></button>
49
+ <button type="button" class="glyphicon glyphicon-plus btn-success" @click.stop="addadetail()"></button>
50
+ </div>
51
+ <!-- </div>-->
52
+ </div>
53
+ </div>
54
+ </div>
55
+ <div class=" panel panel-primary datapanel" style="height:260px">
56
+ <div class="row">
57
+ <div class="col-sm-4 form-group">
58
+ <label class=" font_normal_body">&emsp;客户编号</label>
59
+ <input class="input_search" style="width:60%"
60
+ v-model="model.f_userinfo_code"
61
+ @blur="codeChange()"
62
+ placeholder="客户编号">
63
+ </div>
64
+ <div class="col-sm-4 form-group" :class="{'has-success':model.f_charge_person,'has-error':!model.f_charge_person}">
65
+ <label class=" font_normal_body">&emsp;缴&nbsp;费&nbsp;人&nbsp;</label>
66
+ <input class="input_search" style="width:60%"
67
+ v-validate:f_charge_person='{required: true }'
68
+ v-model="model.f_charge_person"
69
+ placeholder="缴费人">
70
+ </div>
71
+ <div class="col-sm-4 form-group" :class="{'has-success':model.f_charge_phone,'has-error':!model.f_charge_phone}">
72
+ <label class=" font_normal_body">&emsp;联系电话</label>
73
+ <input class="input_search" style="width:60%"
74
+ v-validate:f_charge_phone='{required: true }'
75
+ v-model="model.f_charge_phone"
76
+ placeholder="联系电话">
77
+ </div>
78
+ <div class="col-sm-12 form-group" :class="{'has-success':model.f_charge_address,'has-error':!model.f_charge_address}">
79
+ <label class=" font_normal_body">缴费人地址</label>
80
+ <input class="input_search" style="width:89%"
81
+ v-validate:f_charge_address='{required: true }'
82
+ v-model="model.f_charge_address"
83
+ placeholder="缴费人地址">
84
+ </div>
85
+ <div class="col-sm-4 form-group">
86
+ <label for="f_paytype" class="font_normal_body" title="参数名称:付款方式">&emsp;收款方式</label>
87
+ <v-select id="f_payment"
88
+ v-model="f_payment"
89
+ placeholder='请选择'
90
+ :value.sync="model.f_payment"
91
+ :value-single="true"
92
+ :options='paytype'
93
+ close-on-select clear-button>
94
+ </v-select>
95
+ </div>
96
+ <div class="col-sm-4 form-group">
97
+ <label for="f_print" class="font_normal_body">&emsp;打印格式</label>
98
+ <v-select id="print"
99
+ v-model="model.f_print"
100
+ placeholder='请选择'
101
+ :value.sync="model.f_print"
102
+ :options='printstyle'
103
+ :value-single="true"
104
+ close-on-select clear-button>
105
+ </v-select>
106
+ </div>
107
+ <div class="col-sm-4 auto" style="text-align:right;">
108
+ <label for="f_collection" ><font size="6px" style="font-weight:bold;color:darkred">收&emsp;款&emsp;:&emsp;{{model.f_collection}}</font></label>
109
+ </div>
110
+ <div class="col-sm-12 form-group">
111
+ <label class=" font_normal_body">&emsp;备&emsp;&emsp;注</label>
112
+ <input class="input_search" style="width:87%"
113
+ v-model="model.f_comments"
114
+ placeholder="备注">
115
+ </div>
116
+ <div style="text-align:right;height: 25%;">
117
+ <button class="button_search btn-gn" @click="confirm()" :disabled='!$v.valid || validateOk'>确认</button>
118
+ <button class="button_clear btn-gn" @click="clean()">取消</button>
119
+ </div>
120
+ </div>
121
+
122
+ <!-- <payment-code-button :clickable="!$v.valid || validateOk"-->
123
+ <!-- :payment.sync="model.f_payment" :payment-data="paytype"-->
124
+ <!-- @confirm-payment="confirm()">-->
125
+ <!-- </payment-code-button>-->
126
+
127
+
128
+ </div>
129
+ </div>
130
+
131
+ </form>
132
+ <validate-bill v-if="hasValidateBill" :data="model" @validate-bill="validateBill"></validate-bill>
133
+ <print-bill :show="print" :data='model' :bill-config='config' :bill-data='billData' v-on:toggle="close" @printok="printok" v-ref:printbill></print-bill>
134
+ <!-- <print-other-charge-bill :show="print" v-ref:printbill :row='row' :logic='model' v-on:success="close" v-on:toggle="close"></print-other-charge-bill> -->
135
+ <!-- <tax-other-bill :show="taxprint" v-ref:taxprintbill :row='row' :logic='model' v-on:success="close" v-on:toggle="close"></tax-other-bill> -->
136
+
137
+ </validator>
138
+
139
+ </div>
140
+
141
+ <payment-code v-ref:paymentcode :payment="model.f_payment" :money="model.f_collection"></payment-code>
142
+
143
+ </div>
144
+ <!-- <div class="auto">-->
145
+ <!-- <upload isremark="true" fusetype="气损收费"></upload>-->
146
+ <!-- </div>-->
147
+ </template>
148
+
149
+
150
+ <script>
151
+
152
+ import {HttpResetClass} from 'vue-client'
153
+ import Vue from 'vue'
154
+
155
+ let gasLossGen = async function (self) {
156
+ try {
157
+ // 加入扫码盒付款码支付流水号
158
+ self.model.f_serial_id = self.$refs.paymentcode.paymentCodeReturnData.f_out_trade_no
159
+ // let resid = await self.$LogicService.otherCharge(self.model, self.row)
160
+ self.model.f_bill_style=self.model.f_print
161
+ let http = new HttpResetClass()
162
+ self.model.f_describe=`${Vue.$login.f.name}对${self.model.f_charge_person}进行气损收费`
163
+ let resid = await http.load('POST', 'rs/logic/gasLoss', self.model, {resolveMsg: '气损收费成功', rejectMsg: '气损收费失败'})
164
+ console.log('f_print:', resid)
165
+ if (true) {
166
+ if (self.model.f_print != '电子发票') {
167
+ if (self.config.hasBillManage) {
168
+ self.model.id = resid
169
+ self.model.f_bill_type = '其他费用'
170
+ self.model.f_bill_style = self.model.f_print[0]
171
+ self.print = true
172
+ } else {
173
+ self.model.id = resid
174
+ self.print = true
175
+ }
176
+ } else if (self.model.f_print === '国税发票') {
177
+ // TODO
178
+ self.clean()
179
+ self.$dispatch('refresh')
180
+ } else if (self.model.f_print === '电子发票') {
181
+ self.$CommonService.openEticket(resid, '其他费用')
182
+ self.clean()
183
+ self.$dispatch('refresh')
184
+ }
185
+ } else {
186
+ self.clean()
187
+ self.$dispatch('refresh')
188
+ }
189
+ } catch (error) {
190
+ self.$showAlert(error, 'danger', 0)
191
+ self.$dispatch('refresh')
192
+ }
193
+ }
194
+
195
+ let asyncGasLoss = async function (self) {
196
+ try{
197
+ await self.$getConfig(self, 'gasLossCharge')
198
+ } catch(error){
199
+ console.log('无配置文件')
200
+ }
201
+ self.model.f_print = self.config.printType
202
+ self.model.f_payment = self.config.payment
203
+ self.model.f_use_type = self.config.billType
204
+ self.model.f_bill_type = self.config.f_print
205
+ self.hasValidateBill = self.config.hasBillManage
206
+ }
207
+ export default {
208
+ title: '气损收费',
209
+ data () {
210
+ return {
211
+ config: {
212
+ showupload: false,
213
+ hasPrint: false, // 默认打票
214
+ hasBillManage: false, // 默认不启用发票管理
215
+ billType: '其他费用', // 票据类型(燃气费,其他费用,调用的发票代码不同)
216
+ printType: '普通收据', // 收据/电子票/专用发票/国税发票
217
+ payment: '现金缴费', // 付款方式
218
+ f_type: '', // 气损分类
219
+ f_loss_type: '' // 气损类型
220
+
221
+ },
222
+ model: {
223
+ f_userinfo_id:null,
224
+ f_collection: 0,
225
+ f_payment: '',
226
+ f_bill_style: '',
227
+ f_comments: '',
228
+ f_charge_person: '',
229
+ f_charge_phone: '',
230
+ f_charge_address: '',
231
+ f_state: '有效',
232
+ f_operator: Vue.$login.f.name,
233
+ f_operatorid: Vue.$login.f.id,
234
+ f_orgid: Vue.$login.f.orgid,
235
+ f_orgname: Vue.$login.f.orgs,
236
+ f_depid: Vue.$login.f.depids,
237
+ f_depname: Vue.$login.f.deps,
238
+ f_operat_type: '气损收费',
239
+ f_print: '',
240
+ gaslossdetail:[{}]
241
+ },
242
+ print: false,
243
+ taxprint: false,
244
+ billData: {
245
+ url: 'rs/report/gasloss_bill',
246
+ bill: ''
247
+ },
248
+
249
+ // 启用发票管理需要对票号进行验证
250
+ hasValidateBill: false,
251
+ validateOk: false,
252
+ types: this.$appdata.getParam('气损分类'),
253
+ printstyle: this.$appdata.getParam('打印格式'),
254
+ paytype: this.$appdata.getParam('付款方式'),
255
+ feetype: this.$appdata.getParam('其他费用'),
256
+ services: this.$appdata.getParam('服务人员')
257
+ }
258
+ },
259
+ ready () {
260
+ asyncGasLoss(this)
261
+ },
262
+
263
+ methods: {
264
+ async codeChange(){
265
+ if(this.model.f_userinfo_code){
266
+ let http = new HttpResetClass()
267
+ let res = await http.load('POST', 'rs/sql/singleTable_OrderBy', {
268
+ data: {
269
+ items: 'u.f_userinfo_id,u.f_user_name,u.f_user_phone,a.f_address',
270
+ tablename: 't_userinfo u left join t_user_address a on u.f_userinfo_id = a.f_userinfo_id',
271
+ condition: `u.f_userinfo_code = '${this.model.f_userinfo_code}' and u.f_user_state = '正常'`,
272
+ orderitem: 'u.f_userinfo_id desc'
273
+ }
274
+ }, {resolveMsg: null, rejectMsg: '获取用户信息失败'})
275
+ if(res.data.length==0){
276
+ this.$showAlert('该客户编号不存在,请重新输入','warning',3000)
277
+ this.model.f_userinfo_code=null
278
+ }else{
279
+ this.model.f_userinfo_id=res.data[0].f_userinfo_id
280
+ this.model.f_charge_person=res.data[0].f_user_name
281
+ this.model.f_charge_phone=res.data[0].f_user_phone
282
+ this.model.f_charge_address=res.data[0].f_address
283
+ }
284
+
285
+ }
286
+ },
287
+ clean(){
288
+ this.model={
289
+ f_collection: 0,
290
+ f_payment: this.config.payment,
291
+ f_print: this.config.printType,
292
+ f_bill_style: '',
293
+ f_comments: '',
294
+ f_charge_person: '',
295
+ f_charge_phone: '',
296
+ f_charge_address: '',
297
+ f_state: '有效',
298
+ f_operator: Vue.$login.f.name,
299
+ f_operatorid: Vue.$login.f.id,
300
+ f_orgid: Vue.$login.f.orgid,
301
+ f_orgname: Vue.$login.f.orgs,
302
+ f_depid: Vue.$login.f.depids,
303
+ f_depname: Vue.$login.f.deps,
304
+ f_operat_type: '气损收费',
305
+ gaslossdetail:[{}]
306
+ }
307
+ },
308
+ async confirm () {
309
+ // // 先调用付款码支付组件流程
310
+ let ss = await this.$refs.paymentcode.flowPath()
311
+ this.$refs.paymentcode.paymentCodeShow = false
312
+ console.log('付款码操作返回', ss)
313
+ if (!ss.result) return
314
+
315
+ gasLossGen(this)
316
+ },
317
+ close () {
318
+ this.taxprint = false
319
+ this.print = false
320
+ this.clean()
321
+ },
322
+ printok () {
323
+ this.$dispatch('success')
324
+ },
325
+ validateBill (val) {
326
+ this.validateOk = !val.isOk
327
+ this.billData.bill = val.bill
328
+ },
329
+ getcollection () {
330
+ let money = 0
331
+ this.model.gaslossdetail.forEach((item) => {
332
+ if (item.f_unitprice && item.f_number) {
333
+ money += ((item.f_unitprice - 0) * (item.f_number - 0)) - 0
334
+ }
335
+ })
336
+
337
+ if (money != 0) {
338
+ this.model.f_collection = money.toFixed(4)
339
+ }
340
+ },
341
+ addadetail () {
342
+ this.model.gaslossdetail.push({})
343
+ },
344
+ delthisdetail (index) {
345
+ if (this.model.gaslossdetail.length > 1) {
346
+ this.model.gaslossdetail.splice(index, 1)
347
+ this.getcollection()
348
+ }
349
+ },
350
+ },
351
+ computed: {
352
+ }
353
+ }
354
+ </script>
355
+
356
+ <style>
357
+ </style>