sale-client 4.2.38 → 4.2.40

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 (58) hide show
  1. package/.gradle/5.2.1/fileChanges/last-build.bin +0 -0
  2. package/.gradle/5.2.1/fileHashes/fileHashes.lock +0 -0
  3. package/.gradle/5.2.1/gc.properties +0 -0
  4. package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  5. package/.gradle/buildOutputCleanup/cache.properties +2 -0
  6. package/.gradle/vcs-1/gc.properties +0 -0
  7. package/build/dev-server.js +36 -50
  8. package/hs_err_pid32452.log +625 -0
  9. package/hs_err_pid36896.log +249 -0
  10. package/package.json +1 -1
  11. package/src/App.vue +1 -1
  12. package/src/components/FilesManage/FileUserFiles.vue +5 -6
  13. package/src/components/revenue/HandManager/MeterBookUser.vue +726 -726
  14. package/src/components/revenue/comprehen/ComprehenOperation/QrPay/QrPaymentDetailed.vue +423 -423
  15. package/src/components/revenue/comprehen/Maintenance/hand/handOperate.vue +469 -469
  16. package/src/components/revenue/machineHandManage/ArrearsQuery.vue +938 -938
  17. package/src/components/webMeter/MeterManage/WebMeterBatchOperationValve.vue +970 -970
  18. package/src/filiale/alashan/eticket/EticketRecordList.vue +428 -428
  19. package/src/filiale/bayan/ChargeList.vue +1010 -1010
  20. package/src/filiale/bayan/StockListmain.vue +543 -543
  21. package/src/filiale/bazhong/UserInfoDetailManageNew.vue +245 -245
  22. package/src/filiale/bazhong/ic_detail/ChangeMeterQueryUser.vue +370 -370
  23. package/src/filiale/bazhong/sale.js +8 -8
  24. package/src/filiale/beifangshiye/OtherChargeNew.vue +625 -625
  25. package/src/filiale/jinhong/machineHand.vue +2099 -2099
  26. package/src/filiale/jinhong/plugins/GetSaleParams.js +302 -302
  27. package/src/filiale/lixianV3/ArrearsQuery.vue +938 -938
  28. package/src/filiale/lixianV3/InsuranceChargesDetails.vue +425 -425
  29. package/src/filiale/meihekou/batch/batchEditFiles.vue +1 -0
  30. package/src/filiale/meihekou/common/userinfo_detail/ic_detail/MachineRecordQuery.vue +281 -281
  31. package/src/filiale/qianneng/revenue/sms/AccountMessageList.vue +508 -508
  32. package/src/filiale/ronghao/ArrearsQuery.vue +974 -974
  33. package/src/filiale/ronghao/CardService.js +2144 -2144
  34. package/src/filiale/ronghao/InsuranceManage.vue +58 -58
  35. package/src/filiale/ronghao/MachineChargeService.js +149 -149
  36. package/src/filiale/ronghao/NoCardMeterCenter.vue +534 -534
  37. package/src/filiale/ronghao/PaymentCode.vue +174 -174
  38. package/src/filiale/ronghao/PriceChangeCompensation/CompensationManage.vue +26 -26
  39. package/src/filiale/ronghao/PriceChangeCompensation/IotCompensation.vue +318 -318
  40. package/src/filiale/ronghao/PriceChangeCompensation/JbCompensation.vue +343 -343
  41. package/src/filiale/ronghao/PriceChangeCompensation/SurplusRecordDetail.vue +74 -74
  42. package/src/filiale/ronghao/ReplaceCardManage.vue +415 -415
  43. package/src/filiale/ronghao/Upload.vue +654 -654
  44. package/src/filiale/ronghao/cardDown.vue +1141 -1141
  45. package/src/filiale/ronghao/changemeterOperate.vue +315 -315
  46. package/src/filiale/ronghao/fillgasSpecific.vue +313 -313
  47. package/src/filiale/ronghao/ic_detail/ChargeRecordQuery.vue +106 -106
  48. package/src/filiale/ronghao/ic_detail/WatchCollection.vue +115 -115
  49. package/src/filiale/ronghao/ic_detail/WebHandQueryUser.vue +411 -411
  50. package/src/filiale/ronghao/machineDown.vue +1176 -1176
  51. package/src/filiale/ronghao/replacementSingleInfoOperation.vue +315 -315
  52. package/src/filiale/ronghao/specificInformation.vue +537 -537
  53. package/src/filiale/yangchun/ChargeList.vue +954 -954
  54. package/src/filiale/yuncheng/changemeterListMaintain.vue +504 -504
  55. package/src/filiale/zhongsheng/BlackListList.vue +293 -293
  56. package/src/filiale/zhongyi/HandQueryUser.vue +389 -389
  57. package/src/main.js +1 -1
  58. package/src/plugins/CardService.js +2217 -2217
@@ -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>