sale-client 4.2.21 → 4.2.22

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 (50) hide show
  1. package/build/dev-server.js +52 -32
  2. package/package.json +1 -1
  3. package/src/App.vue +1 -1
  4. package/src/components/revenue/HandManager/MeterBookUser.vue +726 -726
  5. package/src/components/revenue/comprehen/ComprehenOperation/QrPay/QrPaymentDetailed.vue +423 -423
  6. package/src/components/revenue/comprehen/ComprehenOperation/newchangemeter/ChangeMeter.vue +2 -0
  7. package/src/components/revenue/comprehen/Maintenance/hand/handOperate.vue +469 -469
  8. package/src/components/revenue/machineHandManage/ArrearsQuery.vue +938 -938
  9. package/src/components/webMeter/MeterManage/WebMeterBatchOperationValve.vue +970 -970
  10. package/src/filiale/alashan/eticket/EticketRecordList.vue +428 -428
  11. package/src/filiale/bayan/ChargeList.vue +1010 -1010
  12. package/src/filiale/bayan/StockListmain.vue +543 -543
  13. package/src/filiale/beifangshiye/OtherChargeNew.vue +625 -625
  14. package/src/filiale/lixianV3/ArrearsQuery.vue +938 -938
  15. package/src/filiale/lixianV3/InsuranceChargesDetails.vue +425 -425
  16. package/src/filiale/meihekou/common/userinfo_detail/ic_detail/MachineRecordQuery.vue +281 -281
  17. package/src/filiale/qianneng/revenue/sms/AccountMessageList.vue +508 -508
  18. package/src/filiale/ronghao/ArrearsQuery.vue +974 -974
  19. package/src/filiale/ronghao/CardService.js +2144 -2144
  20. package/src/filiale/ronghao/InsuranceManage.vue +58 -58
  21. package/src/filiale/ronghao/MachineChargeService.js +149 -149
  22. package/src/filiale/ronghao/NoCardMeterCenter.vue +534 -534
  23. package/src/filiale/ronghao/PaymentCode.vue +174 -174
  24. package/src/filiale/ronghao/PriceChangeCompensation/CompensationManage.vue +26 -26
  25. package/src/filiale/ronghao/PriceChangeCompensation/IotCompensation.vue +318 -318
  26. package/src/filiale/ronghao/PriceChangeCompensation/JbCompensation.vue +343 -343
  27. package/src/filiale/ronghao/PriceChangeCompensation/SurplusRecordDetail.vue +74 -74
  28. package/src/filiale/ronghao/ReplaceCardManage.vue +415 -415
  29. package/src/filiale/ronghao/Upload.vue +654 -654
  30. package/src/filiale/ronghao/cardDown.vue +1141 -1141
  31. package/src/filiale/ronghao/changemeterOperate.vue +315 -315
  32. package/src/filiale/ronghao/fillgasSpecific.vue +313 -313
  33. package/src/filiale/ronghao/ic_detail/ChargeRecordQuery.vue +106 -106
  34. package/src/filiale/ronghao/ic_detail/WatchCollection.vue +115 -115
  35. package/src/filiale/ronghao/ic_detail/WebHandQueryUser.vue +411 -411
  36. package/src/filiale/ronghao/machineDown.vue +1176 -1176
  37. package/src/filiale/ronghao/replacementSingleInfoOperation.vue +315 -315
  38. package/src/filiale/ronghao/specificInformation.vue +537 -537
  39. package/src/filiale/yangchun/ChargeList.vue +954 -954
  40. package/src/filiale/yuncheng/changemeterListMaintain.vue +504 -504
  41. package/src/filiale/zhongsheng/BlackListList.vue +293 -293
  42. package/src/filiale/zhongyi/HandQueryUser.vue +389 -389
  43. package/src/main.js +1 -1
  44. package/src/plugins/CardService.js +2217 -2217
  45. package/.gradle/5.2.1/fileChanges/last-build.bin +0 -0
  46. package/.gradle/5.2.1/fileHashes/fileHashes.lock +0 -0
  47. package/.gradle/5.2.1/gc.properties +0 -0
  48. package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  49. package/.gradle/buildOutputCleanup/cache.properties +0 -2
  50. package/.gradle/vcs-1/gc.properties +0 -0
@@ -1,415 +1,415 @@
1
- <template>
2
- <div class="auto">
3
- <validator name='v'>
4
- <form novalidate class="form-horizontal">
5
- <div class="row" style="margin-top:5px;" v-if="config.isPickTable">
6
-
7
- <div class="col-sm-3" :class="[$v.pick.required ? 'select-error' : '']">
8
- <label class=" font_normal_body">是否过表</label>
9
- <input type="text" v-show="false" v-model="$refs.pick.selectedItems"
10
- v-validate:pick='{required: true }'>
11
- <v-select v-model="f_ispick_table"
12
- placeholder='请选择'
13
- :value.sync="model.f_ispick_table"
14
- :options='pickTables'
15
- :value-single="true"
16
- close-on-select clear-button v-ref:pick></v-select>
17
- </div>
18
- </div>
19
-
20
- <div class="row" style="margin-top:5px;">
21
- <label class="radio-inline col-sm-3">
22
- <input type="radio" value="IC卡丢失或损坏" v-model="model.f_type" class="magic-radio" checked id="type_two">
23
- <label for="type_two">IC卡丢失或损坏</label>
24
- <!-- <strong>IC卡丢失或损坏</strong> -->
25
- </label>
26
- <label class="radio-inline col-sm-4" v-if="row.f_meter_type !== '机表'">
27
- <input type="radio" value="IC卡信息错乱" v-model="model.f_type" class="magic-radio" id="type_three">
28
- <label for="type_three">IC卡信息错乱</label>
29
- <!-- <strong>IC卡信息错乱</strong> -->
30
- </label>
31
- <label class="radio-inline col-sm-3" v-if="row.f_meter_type !== '机表'">
32
- <input type="radio" value="其他" v-model="model.f_type" class="magic-radio" id="type_four">
33
- <label for="type_four">其他</label>
34
- <!-- <strong>其他</strong> -->
35
- </label>
36
- </div>
37
-
38
- <div class="row" style="margin-top:10px;" v-if='lose'>
39
- <!-- <div class="col-sm-4" :class="[$v.payment.required ? 'has-error' : '']">-->
40
- <!-- <label class=" font_normal_body" title="参数名称:付款方式">收款方式</label>-->
41
- <!-- <input type="text" v-show="false" v-model="$refs.payment.selectedItems" v-validate:payment='{required: true }'>-->
42
- <!-- <v-select v-model="model.f_payment"-->
43
- <!-- placeholder='请选择'-->
44
- <!-- :value.sync="model.f_payment"-->
45
- <!-- :options='paytype'-->
46
- <!-- v-ref:payment-->
47
- <!-- close-on-select clear-button></v-select>-->
48
- <!-- </div>-->
49
-
50
- <div class="col-sm-4" :class="[$v.printstyle.required ? 'select-error' : '']">
51
- <label for="f_print" class="font_normal_body">打印格式</label>
52
- <input type="text" v-show="false" v-model="$refs.printstyle.selectedItems" v-validate:printstyle='{required: true }'>
53
- <v-select id="print"
54
- v-model="model.f_print"
55
- placeholder='请选择'
56
- :multiple="mulPrint"
57
- :value.sync="model.f_print"
58
- :options='printstyle'
59
- close-on-select clear-button v-ref:printstyle>
60
- </v-select>
61
- </div>
62
- <div class="col-sm-4" :class="[$v.f_cardfees.required ? 'has-error' : '']">
63
- <label class=" font_normal_body">补&emsp;卡&emsp;费</label>
64
- <input class="input_search" style="width:60%" v-validate:f_cardfees='{required: true }' type="number" v-model="model.f_cardfees">
65
- </div>
66
- </div>
67
- <div class="row" style="margin-top:5px;">
68
- <div class="col-sm-4" :class="[$v.f_fill_type.required ? 'select-error' : '']">
69
- <label for="f_print" title="参数名称:补卡种类" class="font_normal_body">补卡种类</label>
70
- <input type="text" v-show="false" v-model="model.f_fill_type" v-validate:f_fill_type='{required: true }'>
71
- <v-select v-model="model.f_fill_type"
72
- placeholder='请选择'
73
- :value.sync="model.f_fill_type"
74
- :options='filltypes'
75
- v-ref:f_fill_type
76
- close-on-select clear-button>
77
- </v-select>
78
- </div>
79
- </div>
80
- <!--<div class="row" style="margin-top:10px;" v-if="model.f_type === '其他'" :class="[$v.f_reason.required ? 'has-error' : 'has-success']">-->
81
- <!--<label for="f_reason" class=" font_normal_body">*补卡原因</label>-->
82
- <!--<input class="input_search" style="width:60%" v-model="model.f_reason" v-validate:f_reason='{required: true }'-->
83
- <!--placeholder="补卡原因" />-->
84
- <!--</div>-->
85
-
86
-
87
-
88
- <div class="row" style="margin-top:5px;">
89
- <label for="f_comments" class="font_normal_body">备&emsp;&emsp;注</label>
90
- <input class="input_search" style="width:87%" v-model="model.f_comments" placeholder="备注">
91
- </div>
92
- </form>
93
- <accept-bill :show="acceptprint" :bill-url='acceptUrl' v-on:toggle="close" :data='row' :billdata="printData" @closeaccept="closeAccept" v-ref:acceptbill></accept-bill>
94
- <validate-bill v-if="hasValidateBill && lose" :data="model" @validate-bill="validateBill"></validate-bill>
95
- <print-bill :show="print" :bill-config='config' :bill-data='billData' v-on:toggle="close" @printok="printok" :data='row' v-ref:printbill></print-bill>
96
- <ticket-print :show="eticket_show" @toggle="eticket_toggle" v-ref:eticketbill></ticket-print>
97
- <modal :show.sync="eticket_msg" v-ref:modal large backdrop="false" :width="900">
98
- <header slot="modal-header" class="modal-header">
99
- <button type="button" class="close" @click="eticket_msg = false"><span>&times;</span></button>
100
- <h4 class="modal-title">发票信息</h4>
101
- </header>
102
- <article slot="modal-body" class="modal-body">
103
- <div class="auto select-overspread form-horizontal">
104
- <div class="row auto">
105
- <div class="col-sm-6 form-group form-input-group" :class="[!row.f_paper_name ? 'has-error' : '']">
106
- <label class="control-label">开票名称:</label>
107
- <input class="form-control col-sm-2" :disabled="true"
108
- v-model="row.f_paper_name" placeholder="开票名称">
109
- </div>
110
- <div class="col-sm-6 form-group form-input-group">
111
- <nobr class="col-sm-4"><label class="control-label">是否征税:</label></nobr>
112
- <v-select v-model="invoice_is_pax"
113
- placeholder='请选择'
114
- :value.sync="invoice_is_pax"
115
- close-on-select
116
- :width="60"
117
- :value-single="true"
118
- :search="false"
119
- :options='is_pax' clear-button>
120
- </v-select>
121
- </div>
122
- <div class="col-sm-12 form-group form-input-group">
123
- <label class="control-label">开户行及账号:</label>
124
- <input class="form-control col-sm-2" :disabled="true"
125
- v-model="row.f_paper_account" placeholder="购方开户行及账号">
126
- </div>
127
- <div class="col-sm-12 form-group form-input-group" >
128
- <label class="control-label">纳税人识别号:</label>
129
- <input class="form-control col-sm-2" :disabled="true"
130
- v-model="row.f_taxpayer_id" placeholder="纳税人识别号">
131
- </div>
132
- <div class="col-sm-12 form-group form-input-group" :class="[!row.f_address_phone ? 'has-error' : '']">
133
- <label class="control-label">开票地址电话:</label>
134
- <input class="form-control col-sm-2" :disabled="true"
135
- v-model="row.f_address_phone" placeholder="开票地址">
136
- </div>
137
- <div class="col-sm-12 form-group form-input-group">
138
- <label class="control-label">邮箱推送:</label>
139
- <input class="form-control col-sm-2" :disabled="true"
140
- v-model="row.f_email" placeholder="邮箱推送">
141
- </div>
142
- </div>
143
- </div>
144
- </article>
145
- <footer slot="modal-footer" class="modal-footer">
146
- <button type="button" class="btn button_search"
147
- :disabled="!(row.f_paper_name&&row.f_address_phone)"
148
- @click='confirm'>确认收费
149
- </button>
150
- </footer>
151
- </modal>
152
- <div style="text-align:right;height:auto;margin-top:30px;margin-right:50px;">
153
- <button class="button_clear" @click="accept()" v-if="config.hasAcceptance">受理单</button>
154
- <payment-code-button :clickable="!$v.valid || validateOk"
155
- :payment.sync="model.f_payment" :payment-data="paytype"
156
- @confirm-payment="confirm()">
157
- </payment-code-button>
158
- <button class="button_search" @click="checkInvoiceMsg()" :disabled='!$v.valid || validateOk'>确认</button>
159
- <button class="button_clear" @click="clean()" >取消</button>
160
- </div>
161
- </validator>
162
-
163
- <payment-code v-ref:paymentcode :payment="model.f_payment" :row="row" :money="model.f_cardfees"></payment-code>
164
- </div>
165
- <upload :blodid="row.f_userinfo_id" v-if="config.showupload" isremark="true" fusetype="补卡"></upload>
166
-
167
- </template>
168
- <script>
169
- import XML from '../../plugins/ObjTree'
170
- import {HttpResetClass} from 'vue-client'
171
- /**
172
- *综合业务
173
- *补卡管理组件
174
- */
175
-
176
- let asyncReplaceManage = async function (self) {
177
- await self.$getConfig(self, 'ReplaceCardManage')
178
- console.log('补卡config', self.config)
179
- self.model.f_print = self.config.printType instanceof Array ? self.config.printType : [self.config.printType]
180
- self.model.f_payment = [self.config.payment]
181
- if (self.config.isPickTable) {
182
- self.model.f_ispick_table = '已过表'
183
- }
184
- self.model.f_fill_type = [self.config.filltype]
185
- self.model.f_use_type = self.config.billType
186
- self.model.f_bill_type = self.model.f_print
187
- self.hasValidateBill = self.config.hasBillManage
188
-
189
- self.fillcardChange(self.model.f_type)
190
- }
191
-
192
- export default {
193
- title: '补卡管理',
194
- data () {
195
- return {
196
- config: {
197
- showupload: false, // 控制附件显示
198
- hasPrint: true, // 默认打票
199
- hasBillManage: false, // 默认不启用发票管理
200
- billType: '其他费用', // 票据类型(燃气费,其他费用,调用的发票代码不同)
201
- printType: '普通收据', // 收据/电子票/专用发票/国税发票
202
- payment: '现金缴费',
203
- filltype: '原卡补卡',
204
- hasAcceptance: false, // 是否需要打印受理单
205
- isPickTable: false // 是否添加接表判断(对于那些对次数严格限制的表)
206
- },
207
- resid: [], // 存放新增的f_files表中id
208
- eticket_msg: false,
209
- eticket_show: false,
210
- invoice_is_pax: '征税',
211
- is_pax: [{label: '征税', value: '征税'}, {label: '不征税', value: '不征税'}],
212
- model: {
213
- f_comments: '',
214
- f_type: 'IC卡丢失或损坏',
215
- f_cardfees: '',
216
- f_payment: [],
217
- f_print: [],
218
- f_fill_type: [],
219
- f_replace_time: ''
220
- },
221
- printData: {
222
- reason: '',
223
- cardfee: ''
224
- },
225
- cardallot: null,
226
- lose: false,
227
- f_payment: [],
228
- f_ispick_table: '',
229
- print: false,
230
- billData: {
231
- url: 'api/af-revenue/report/replace_sell',
232
- bill: ''
233
- },
234
- paytype: this.$appdata.getParam('付款方式') ? this.$appdata.getParam('付款方式') : [],
235
- printstyle: this.$appdata.getParam('打印格式') ? this.$appdata.getParam('打印格式') : [],
236
- pickTables: [{label: '已过表', value: '已过表'}, {label: '未过表', value: '未过表'}],
237
- // 启用发票管理需要对票号进行验证
238
- hasValidateBill: false,
239
- validateOk: false,
240
-
241
- acceptprint: false,
242
- acceptUrl: '',
243
- filltypes: this.$appdata.getParam('补卡种类') ? this.$appdata.getParam('补卡种类') : []
244
- }
245
- },
246
- props: ['row', 'cardData'],
247
- ready () {
248
- asyncReplaceManage(this).then(() => {
249
- this.$emit(ready())
250
- }).catch((error) => {
251
- this.$emit('error', error)
252
- })
253
- },
254
- watch: {
255
- 'model.f_type' (val) {
256
- this.fillcardChange(val)
257
- }
258
- },
259
- methods: {
260
- // 校验发票信息
261
- checkInvoiceMsg () {
262
- if (this.model.f_print[0] === '电子发票') {
263
- if (!this.row.f_taxpayer_id) {
264
- this.row.f_taxpayer_id = this.row.f_idnumber
265
- }
266
- if (!this.row.f_paper_name) {
267
- this.row.f_paper_name = this.row.f_user_name
268
- }
269
- if (!this.row.f_address_phone) {
270
- this.row.f_address_phone = this.row.f_address + ' ' + this.row.f_user_phone
271
- }
272
- if(!this.row.f_email){
273
- this.row.f_email = this.row.f_email
274
- }
275
- this.eticket_msg = true
276
- } else {
277
- this.confirm()
278
- }
279
- },
280
- eticket_toggle () {
281
- this.eticket_show = false
282
- this.$dispatch('success')
283
- },
284
- confirm () {
285
- this.eticket_msg = false
286
- this.$dispatch('no-button')
287
- // 判断是否接表提示
288
- if (this.config.isPickTable) {
289
- this.$showMessage(`您确定客户${this.model.f_ispick_table}了吗?`, ['confirm', 'cancel']).then((res) => {
290
- if (res === 'confirm') {
291
- this.writeCard()
292
- }
293
- })
294
- } else if (this.row.f_meter_type.indexOf('卡表') === -1) {
295
- this.writeCard()
296
- } else {
297
- this.$showMessage(`请确保你已经插入了IC卡`, ['confirm', 'cancel']).then((res) => {
298
- if (res === 'confirm') {
299
- this.writeCard()
300
- }
301
- })
302
- }
303
- },
304
- // 写卡保存数据 迁至此处'
305
- async writeCard () {
306
- // 如果是付款码支付则显示界面扫用户付款码收钱
307
- if (this.model.f_type == 'IC卡丢失或损坏' && this.model.f_cardfees - 0 > 0) {
308
- // 先调用付款码支付组件流程
309
- let ss = await this.$refs.paymentcode.flowPath()
310
- this.$refs.paymentcode.paymentCodeShow = false
311
- console.log('付款码操作返回', ss)
312
- if (!ss.result) return
313
- }
314
- // 加入扫码盒付款码支付流水号
315
- this.model.f_serial_id = this.$refs.paymentcode.paymentCodeReturnData.f_out_trade_no
316
- this.row.cardInfo = this.cardData
317
- this.$CardService.replaceCard(this.model, this.row).then(async (res) => {
318
- if (this.config.showupload) {
319
- let param = []
320
- for (let row of this.resid) {
321
- param.push({id: row.id})
322
- }
323
- let data = {
324
- param: param,
325
- f_blobid: res.data.id
326
- }
327
- let http = new HttpResetClass()
328
- await http.load('POST', 'api/af-revenue/logic/updatefiles', data, {resolveMsg: null, rejectMsg: '补卡上传附件失败!!'})
329
-
330
- }
331
- console.log('补卡返回。。', res)
332
- if (this.config.hasPrint && this.lose) {
333
- if (this.config.hasBillManage) {
334
- this.row.id = res.data.id
335
- this.row.f_bill_type = '补卡'
336
- this.row.f_bill_style = this.model.f_print[0]
337
- this.print = true
338
- } else if (this.model.f_print[0] === '电子发票') {
339
- this.row.id = res.data.id
340
- this.eticket_show = true
341
- await this.$refs.eticketbill.openETicket([res.data.id], this.row, '是', this.invoice_is_pax, '补卡费')
342
- } else {
343
- console.log('不保存打票记录')
344
- this.row.id = res.data.id
345
- this.print = true
346
- }
347
- } else {
348
- console.log('我没走打票')
349
- this.$dispatch('success', '补卡管理', this.row, res)
350
- }
351
- }
352
- ).catch(
353
- (error) => {
354
- if (error.status === 603) {
355
- this.$error('重复提交')
356
- return
357
- }
358
- this.$dispatch('error', '补卡管理', this.row, error)
359
- }
360
- )
361
- },
362
- closeAccept () {
363
- this.acceptprint = false
364
- },
365
- accept () {
366
- // 打印受理单
367
- console.log('受累单中model', this.model)
368
- this.printData.reason = this.model.f_comments ? `'${this.model.f_reason}'` : `'${this.model.f_type}'`
369
- this.printData.cardfee = this.model.f_cardfees ? `'${this.model.f_cardfees}'` : `'${0}'`
370
- console.log('受累单中printData', this.printData)
371
- this.acceptUrl = 'api/af-revenue/report/acceptcard_bill'
372
- this.acceptprint = true
373
- },
374
- clean () {
375
- this.$dispatch('refresh')
376
- },
377
- close () {
378
- this.print = false
379
- this.acceptprint = false
380
- this.clean()
381
- },
382
- validateBill (val) {
383
- this.validateOk = !val.isOk
384
- this.billData.bill = val.bill
385
- },
386
- printok () {
387
- // 收据打完,判断是否还有其他票据进行请求 TODO
388
- this.$dispatch('success')
389
- },
390
- fillcardChange (val) {
391
- if (val === 'IC卡丢失或损坏') {
392
- this.lose = true
393
- this.model.f_cardfees = this.$appdata.getSingleValue('默认卡费')
394
- } else {
395
- this.model.f_cardfees = 0
396
- this.lose = false
397
- }
398
- }
399
- },
400
- events: {
401
- // 删除Resid数组元素
402
- 'delResid' (val) {
403
- this.resid.$remove({id: val, f_biobid: ''})
404
- // this.resid.splice(this.resid.indexOf({id:val,f_biobid:''}),1);
405
- },
406
- // 增加Resid数组元素
407
- 'resid' (val) {
408
- this.resid.push({id: val, f_biobid: ''})
409
- }
410
- }
411
- }
412
- </script>
413
-
414
- <style>
415
- </style>
1
+ <template>
2
+ <div class="auto">
3
+ <validator name='v'>
4
+ <form novalidate class="form-horizontal">
5
+ <div class="row" style="margin-top:5px;" v-if="config.isPickTable">
6
+
7
+ <div class="col-sm-3" :class="[$v.pick.required ? 'select-error' : '']">
8
+ <label class=" font_normal_body">是否过表</label>
9
+ <input type="text" v-show="false" v-model="$refs.pick.selectedItems"
10
+ v-validate:pick='{required: true }'>
11
+ <v-select v-model="f_ispick_table"
12
+ placeholder='请选择'
13
+ :value.sync="model.f_ispick_table"
14
+ :options='pickTables'
15
+ :value-single="true"
16
+ close-on-select clear-button v-ref:pick></v-select>
17
+ </div>
18
+ </div>
19
+
20
+ <div class="row" style="margin-top:5px;">
21
+ <label class="radio-inline col-sm-3">
22
+ <input type="radio" value="IC卡丢失或损坏" v-model="model.f_type" class="magic-radio" checked id="type_two">
23
+ <label for="type_two">IC卡丢失或损坏</label>
24
+ <!-- <strong>IC卡丢失或损坏</strong> -->
25
+ </label>
26
+ <label class="radio-inline col-sm-4" v-if="row.f_meter_type !== '机表'">
27
+ <input type="radio" value="IC卡信息错乱" v-model="model.f_type" class="magic-radio" id="type_three">
28
+ <label for="type_three">IC卡信息错乱</label>
29
+ <!-- <strong>IC卡信息错乱</strong> -->
30
+ </label>
31
+ <label class="radio-inline col-sm-3" v-if="row.f_meter_type !== '机表'">
32
+ <input type="radio" value="其他" v-model="model.f_type" class="magic-radio" id="type_four">
33
+ <label for="type_four">其他</label>
34
+ <!-- <strong>其他</strong> -->
35
+ </label>
36
+ </div>
37
+
38
+ <div class="row" style="margin-top:10px;" v-if='lose'>
39
+ <!-- <div class="col-sm-4" :class="[$v.payment.required ? 'has-error' : '']">-->
40
+ <!-- <label class=" font_normal_body" title="参数名称:付款方式">收款方式</label>-->
41
+ <!-- <input type="text" v-show="false" v-model="$refs.payment.selectedItems" v-validate:payment='{required: true }'>-->
42
+ <!-- <v-select v-model="model.f_payment"-->
43
+ <!-- placeholder='请选择'-->
44
+ <!-- :value.sync="model.f_payment"-->
45
+ <!-- :options='paytype'-->
46
+ <!-- v-ref:payment-->
47
+ <!-- close-on-select clear-button></v-select>-->
48
+ <!-- </div>-->
49
+
50
+ <div class="col-sm-4" :class="[$v.printstyle.required ? 'select-error' : '']">
51
+ <label for="f_print" class="font_normal_body">打印格式</label>
52
+ <input type="text" v-show="false" v-model="$refs.printstyle.selectedItems" v-validate:printstyle='{required: true }'>
53
+ <v-select id="print"
54
+ v-model="model.f_print"
55
+ placeholder='请选择'
56
+ :multiple="mulPrint"
57
+ :value.sync="model.f_print"
58
+ :options='printstyle'
59
+ close-on-select clear-button v-ref:printstyle>
60
+ </v-select>
61
+ </div>
62
+ <div class="col-sm-4" :class="[$v.f_cardfees.required ? 'has-error' : '']">
63
+ <label class=" font_normal_body">补&emsp;卡&emsp;费</label>
64
+ <input class="input_search" style="width:60%" v-validate:f_cardfees='{required: true }' type="number" v-model="model.f_cardfees">
65
+ </div>
66
+ </div>
67
+ <div class="row" style="margin-top:5px;">
68
+ <div class="col-sm-4" :class="[$v.f_fill_type.required ? 'select-error' : '']">
69
+ <label for="f_print" title="参数名称:补卡种类" class="font_normal_body">补卡种类</label>
70
+ <input type="text" v-show="false" v-model="model.f_fill_type" v-validate:f_fill_type='{required: true }'>
71
+ <v-select v-model="model.f_fill_type"
72
+ placeholder='请选择'
73
+ :value.sync="model.f_fill_type"
74
+ :options='filltypes'
75
+ v-ref:f_fill_type
76
+ close-on-select clear-button>
77
+ </v-select>
78
+ </div>
79
+ </div>
80
+ <!--<div class="row" style="margin-top:10px;" v-if="model.f_type === '其他'" :class="[$v.f_reason.required ? 'has-error' : 'has-success']">-->
81
+ <!--<label for="f_reason" class=" font_normal_body">*补卡原因</label>-->
82
+ <!--<input class="input_search" style="width:60%" v-model="model.f_reason" v-validate:f_reason='{required: true }'-->
83
+ <!--placeholder="补卡原因" />-->
84
+ <!--</div>-->
85
+
86
+
87
+
88
+ <div class="row" style="margin-top:5px;">
89
+ <label for="f_comments" class="font_normal_body">备&emsp;&emsp;注</label>
90
+ <input class="input_search" style="width:87%" v-model="model.f_comments" placeholder="备注">
91
+ </div>
92
+ </form>
93
+ <accept-bill :show="acceptprint" :bill-url='acceptUrl' v-on:toggle="close" :data='row' :billdata="printData" @closeaccept="closeAccept" v-ref:acceptbill></accept-bill>
94
+ <validate-bill v-if="hasValidateBill && lose" :data="model" @validate-bill="validateBill"></validate-bill>
95
+ <print-bill :show="print" :bill-config='config' :bill-data='billData' v-on:toggle="close" @printok="printok" :data='row' v-ref:printbill></print-bill>
96
+ <ticket-print :show="eticket_show" @toggle="eticket_toggle" v-ref:eticketbill></ticket-print>
97
+ <modal :show.sync="eticket_msg" v-ref:modal large backdrop="false" :width="900">
98
+ <header slot="modal-header" class="modal-header">
99
+ <button type="button" class="close" @click="eticket_msg = false"><span>&times;</span></button>
100
+ <h4 class="modal-title">发票信息</h4>
101
+ </header>
102
+ <article slot="modal-body" class="modal-body">
103
+ <div class="auto select-overspread form-horizontal">
104
+ <div class="row auto">
105
+ <div class="col-sm-6 form-group form-input-group" :class="[!row.f_paper_name ? 'has-error' : '']">
106
+ <label class="control-label">开票名称:</label>
107
+ <input class="form-control col-sm-2" :disabled="true"
108
+ v-model="row.f_paper_name" placeholder="开票名称">
109
+ </div>
110
+ <div class="col-sm-6 form-group form-input-group">
111
+ <nobr class="col-sm-4"><label class="control-label">是否征税:</label></nobr>
112
+ <v-select v-model="invoice_is_pax"
113
+ placeholder='请选择'
114
+ :value.sync="invoice_is_pax"
115
+ close-on-select
116
+ :width="60"
117
+ :value-single="true"
118
+ :search="false"
119
+ :options='is_pax' clear-button>
120
+ </v-select>
121
+ </div>
122
+ <div class="col-sm-12 form-group form-input-group">
123
+ <label class="control-label">开户行及账号:</label>
124
+ <input class="form-control col-sm-2" :disabled="true"
125
+ v-model="row.f_paper_account" placeholder="购方开户行及账号">
126
+ </div>
127
+ <div class="col-sm-12 form-group form-input-group" >
128
+ <label class="control-label">纳税人识别号:</label>
129
+ <input class="form-control col-sm-2" :disabled="true"
130
+ v-model="row.f_taxpayer_id" placeholder="纳税人识别号">
131
+ </div>
132
+ <div class="col-sm-12 form-group form-input-group" :class="[!row.f_address_phone ? 'has-error' : '']">
133
+ <label class="control-label">开票地址电话:</label>
134
+ <input class="form-control col-sm-2" :disabled="true"
135
+ v-model="row.f_address_phone" placeholder="开票地址">
136
+ </div>
137
+ <div class="col-sm-12 form-group form-input-group">
138
+ <label class="control-label">邮箱推送:</label>
139
+ <input class="form-control col-sm-2" :disabled="true"
140
+ v-model="row.f_email" placeholder="邮箱推送">
141
+ </div>
142
+ </div>
143
+ </div>
144
+ </article>
145
+ <footer slot="modal-footer" class="modal-footer">
146
+ <button type="button" class="btn button_search"
147
+ :disabled="!(row.f_paper_name&&row.f_address_phone)"
148
+ @click='confirm'>确认收费
149
+ </button>
150
+ </footer>
151
+ </modal>
152
+ <div style="text-align:right;height:auto;margin-top:30px;margin-right:50px;">
153
+ <button class="button_clear" @click="accept()" v-if="config.hasAcceptance">受理单</button>
154
+ <payment-code-button :clickable="!$v.valid || validateOk"
155
+ :payment.sync="model.f_payment" :payment-data="paytype"
156
+ @confirm-payment="confirm()">
157
+ </payment-code-button>
158
+ <button class="button_search" @click="checkInvoiceMsg()" :disabled='!$v.valid || validateOk'>确认</button>
159
+ <button class="button_clear" @click="clean()" >取消</button>
160
+ </div>
161
+ </validator>
162
+
163
+ <payment-code v-ref:paymentcode :payment="model.f_payment" :row="row" :money="model.f_cardfees"></payment-code>
164
+ </div>
165
+ <upload :blodid="row.f_userinfo_id" v-if="config.showupload" isremark="true" fusetype="补卡"></upload>
166
+
167
+ </template>
168
+ <script>
169
+ import XML from '../../plugins/ObjTree'
170
+ import {HttpResetClass} from 'vue-client'
171
+ /**
172
+ *综合业务
173
+ *补卡管理组件
174
+ */
175
+
176
+ let asyncReplaceManage = async function (self) {
177
+ await self.$getConfig(self, 'ReplaceCardManage')
178
+ console.log('补卡config', self.config)
179
+ self.model.f_print = self.config.printType instanceof Array ? self.config.printType : [self.config.printType]
180
+ self.model.f_payment = [self.config.payment]
181
+ if (self.config.isPickTable) {
182
+ self.model.f_ispick_table = '已过表'
183
+ }
184
+ self.model.f_fill_type = [self.config.filltype]
185
+ self.model.f_use_type = self.config.billType
186
+ self.model.f_bill_type = self.model.f_print
187
+ self.hasValidateBill = self.config.hasBillManage
188
+
189
+ self.fillcardChange(self.model.f_type)
190
+ }
191
+
192
+ export default {
193
+ title: '补卡管理',
194
+ data () {
195
+ return {
196
+ config: {
197
+ showupload: false, // 控制附件显示
198
+ hasPrint: true, // 默认打票
199
+ hasBillManage: false, // 默认不启用发票管理
200
+ billType: '其他费用', // 票据类型(燃气费,其他费用,调用的发票代码不同)
201
+ printType: '普通收据', // 收据/电子票/专用发票/国税发票
202
+ payment: '现金缴费',
203
+ filltype: '原卡补卡',
204
+ hasAcceptance: false, // 是否需要打印受理单
205
+ isPickTable: false // 是否添加接表判断(对于那些对次数严格限制的表)
206
+ },
207
+ resid: [], // 存放新增的f_files表中id
208
+ eticket_msg: false,
209
+ eticket_show: false,
210
+ invoice_is_pax: '征税',
211
+ is_pax: [{label: '征税', value: '征税'}, {label: '不征税', value: '不征税'}],
212
+ model: {
213
+ f_comments: '',
214
+ f_type: 'IC卡丢失或损坏',
215
+ f_cardfees: '',
216
+ f_payment: [],
217
+ f_print: [],
218
+ f_fill_type: [],
219
+ f_replace_time: ''
220
+ },
221
+ printData: {
222
+ reason: '',
223
+ cardfee: ''
224
+ },
225
+ cardallot: null,
226
+ lose: false,
227
+ f_payment: [],
228
+ f_ispick_table: '',
229
+ print: false,
230
+ billData: {
231
+ url: 'api/af-revenue/report/replace_sell',
232
+ bill: ''
233
+ },
234
+ paytype: this.$appdata.getParam('付款方式') ? this.$appdata.getParam('付款方式') : [],
235
+ printstyle: this.$appdata.getParam('打印格式') ? this.$appdata.getParam('打印格式') : [],
236
+ pickTables: [{label: '已过表', value: '已过表'}, {label: '未过表', value: '未过表'}],
237
+ // 启用发票管理需要对票号进行验证
238
+ hasValidateBill: false,
239
+ validateOk: false,
240
+
241
+ acceptprint: false,
242
+ acceptUrl: '',
243
+ filltypes: this.$appdata.getParam('补卡种类') ? this.$appdata.getParam('补卡种类') : []
244
+ }
245
+ },
246
+ props: ['row', 'cardData'],
247
+ ready () {
248
+ asyncReplaceManage(this).then(() => {
249
+ this.$emit(ready())
250
+ }).catch((error) => {
251
+ this.$emit('error', error)
252
+ })
253
+ },
254
+ watch: {
255
+ 'model.f_type' (val) {
256
+ this.fillcardChange(val)
257
+ }
258
+ },
259
+ methods: {
260
+ // 校验发票信息
261
+ checkInvoiceMsg () {
262
+ if (this.model.f_print[0] === '电子发票') {
263
+ if (!this.row.f_taxpayer_id) {
264
+ this.row.f_taxpayer_id = this.row.f_idnumber
265
+ }
266
+ if (!this.row.f_paper_name) {
267
+ this.row.f_paper_name = this.row.f_user_name
268
+ }
269
+ if (!this.row.f_address_phone) {
270
+ this.row.f_address_phone = this.row.f_address + ' ' + this.row.f_user_phone
271
+ }
272
+ if(!this.row.f_email){
273
+ this.row.f_email = this.row.f_email
274
+ }
275
+ this.eticket_msg = true
276
+ } else {
277
+ this.confirm()
278
+ }
279
+ },
280
+ eticket_toggle () {
281
+ this.eticket_show = false
282
+ this.$dispatch('success')
283
+ },
284
+ confirm () {
285
+ this.eticket_msg = false
286
+ this.$dispatch('no-button')
287
+ // 判断是否接表提示
288
+ if (this.config.isPickTable) {
289
+ this.$showMessage(`您确定客户${this.model.f_ispick_table}了吗?`, ['confirm', 'cancel']).then((res) => {
290
+ if (res === 'confirm') {
291
+ this.writeCard()
292
+ }
293
+ })
294
+ } else if (this.row.f_meter_type.indexOf('卡表') === -1) {
295
+ this.writeCard()
296
+ } else {
297
+ this.$showMessage(`请确保你已经插入了IC卡`, ['confirm', 'cancel']).then((res) => {
298
+ if (res === 'confirm') {
299
+ this.writeCard()
300
+ }
301
+ })
302
+ }
303
+ },
304
+ // 写卡保存数据 迁至此处'
305
+ async writeCard () {
306
+ // 如果是付款码支付则显示界面扫用户付款码收钱
307
+ if (this.model.f_type == 'IC卡丢失或损坏' && this.model.f_cardfees - 0 > 0) {
308
+ // 先调用付款码支付组件流程
309
+ let ss = await this.$refs.paymentcode.flowPath()
310
+ this.$refs.paymentcode.paymentCodeShow = false
311
+ console.log('付款码操作返回', ss)
312
+ if (!ss.result) return
313
+ }
314
+ // 加入扫码盒付款码支付流水号
315
+ this.model.f_serial_id = this.$refs.paymentcode.paymentCodeReturnData.f_out_trade_no
316
+ this.row.cardInfo = this.cardData
317
+ this.$CardService.replaceCard(this.model, this.row).then(async (res) => {
318
+ if (this.config.showupload) {
319
+ let param = []
320
+ for (let row of this.resid) {
321
+ param.push({id: row.id})
322
+ }
323
+ let data = {
324
+ param: param,
325
+ f_blobid: res.data.id
326
+ }
327
+ let http = new HttpResetClass()
328
+ await http.load('POST', 'api/af-revenue/logic/updatefiles', data, {resolveMsg: null, rejectMsg: '补卡上传附件失败!!'})
329
+
330
+ }
331
+ console.log('补卡返回。。', res)
332
+ if (this.config.hasPrint && this.lose) {
333
+ if (this.config.hasBillManage) {
334
+ this.row.id = res.data.id
335
+ this.row.f_bill_type = '补卡'
336
+ this.row.f_bill_style = this.model.f_print[0]
337
+ this.print = true
338
+ } else if (this.model.f_print[0] === '电子发票') {
339
+ this.row.id = res.data.id
340
+ this.eticket_show = true
341
+ await this.$refs.eticketbill.openETicket([res.data.id], this.row, '是', this.invoice_is_pax, '补卡费')
342
+ } else {
343
+ console.log('不保存打票记录')
344
+ this.row.id = res.data.id
345
+ this.print = true
346
+ }
347
+ } else {
348
+ console.log('我没走打票')
349
+ this.$dispatch('success', '补卡管理', this.row, res)
350
+ }
351
+ }
352
+ ).catch(
353
+ (error) => {
354
+ if (error.status === 603) {
355
+ this.$error('重复提交')
356
+ return
357
+ }
358
+ this.$dispatch('error', '补卡管理', this.row, error)
359
+ }
360
+ )
361
+ },
362
+ closeAccept () {
363
+ this.acceptprint = false
364
+ },
365
+ accept () {
366
+ // 打印受理单
367
+ console.log('受累单中model', this.model)
368
+ this.printData.reason = this.model.f_comments ? `'${this.model.f_reason}'` : `'${this.model.f_type}'`
369
+ this.printData.cardfee = this.model.f_cardfees ? `'${this.model.f_cardfees}'` : `'${0}'`
370
+ console.log('受累单中printData', this.printData)
371
+ this.acceptUrl = 'api/af-revenue/report/acceptcard_bill'
372
+ this.acceptprint = true
373
+ },
374
+ clean () {
375
+ this.$dispatch('refresh')
376
+ },
377
+ close () {
378
+ this.print = false
379
+ this.acceptprint = false
380
+ this.clean()
381
+ },
382
+ validateBill (val) {
383
+ this.validateOk = !val.isOk
384
+ this.billData.bill = val.bill
385
+ },
386
+ printok () {
387
+ // 收据打完,判断是否还有其他票据进行请求 TODO
388
+ this.$dispatch('success')
389
+ },
390
+ fillcardChange (val) {
391
+ if (val === 'IC卡丢失或损坏') {
392
+ this.lose = true
393
+ this.model.f_cardfees = this.$appdata.getSingleValue('默认卡费')
394
+ } else {
395
+ this.model.f_cardfees = 0
396
+ this.lose = false
397
+ }
398
+ }
399
+ },
400
+ events: {
401
+ // 删除Resid数组元素
402
+ 'delResid' (val) {
403
+ this.resid.$remove({id: val, f_biobid: ''})
404
+ // this.resid.splice(this.resid.indexOf({id:val,f_biobid:''}),1);
405
+ },
406
+ // 增加Resid数组元素
407
+ 'resid' (val) {
408
+ this.resid.push({id: val, f_biobid: ''})
409
+ }
410
+ }
411
+ }
412
+ </script>
413
+
414
+ <style>
415
+ </style>