sale-client 3.6.21 → 3.6.23

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 (88) hide show
  1. package/build/dev-server.js +1 -1
  2. package/package.json +2 -2
  3. package/src/components/FilesManage/FileUserFiles.vue +1014 -1014
  4. package/src/components/FilesManage/FileUserMerge.vue +203 -203
  5. package/src/components/FilesManage/UserPaperInfoTest.vue +58 -51
  6. package/src/components/FilesManageNew/FileUserFiles.vue +756 -756
  7. package/src/components/FilesManageNew/FileUserMerge.vue +202 -202
  8. package/src/components/charge/business/CardMeterCenter.vue +944 -944
  9. package/src/components/charge/business/IOTMeterCenter.vue +793 -793
  10. package/src/components/charge/business/OtherChargeNew.vue +550 -550
  11. package/src/components/charge/business/machine/MachineMeterCenter.vue +676 -676
  12. package/src/components/charge/gasloss/gasLossOperate.vue +383 -383
  13. package/src/components/newBill/CardMeterCenter.vue +902 -902
  14. package/src/components/newBill/IOTMeterCenter.vue +797 -797
  15. package/src/components/revenue/Common/EticketModal.vue +95 -90
  16. package/src/components/revenue/comprehen/Maintenance/T+MoneyDocking/moneyDocking.vue +202 -202
  17. package/src/components/revenue/comprehen/SpecialUser/BasicLiving/BasicLivingList.vue +280 -280
  18. package/src/filiale/alashan/business/CardMeterCenter.vue +897 -897
  19. package/src/filiale/ancheng/FilesManage/FileUserFiles.vue +1010 -1010
  20. package/src/filiale/ancheng/FilesManageNew/FileUserFiles.vue +763 -763
  21. package/src/filiale/chengtou/components/FilesManage/FileUserFiles.vue +1019 -1019
  22. package/src/filiale/chengtou/components/OtherChargeNew.vue +549 -549
  23. package/src/filiale/dongguan/components/FilesManage/FileUserFiles.vue +1037 -1037
  24. package/src/filiale/gaomi/components/FilesManage/FileUserFiles.vue +934 -934
  25. package/src/filiale/gehua/CardMeterCenter.vue +898 -898
  26. package/src/filiale/gehua/FileManageNew/FileUserFiles.vue +769 -769
  27. package/src/filiale/gehua/FileUserFiles.vue +1007 -1007
  28. package/src/filiale/gehua/IOTMeterCenter.vue +791 -791
  29. package/src/filiale/gehua/MachineMeterCenter.vue +685 -685
  30. package/src/filiale/gehua/OtherChargeNew.vue +558 -558
  31. package/src/filiale/guangxi/CardMeterCenter.vue +891 -891
  32. package/src/filiale/guangxi/IOTMeterCenter.vue +774 -774
  33. package/src/filiale/guangxi/MachineMeterCenter.vue +622 -622
  34. package/src/filiale/haile/MachineMeterCenter.vue +762 -762
  35. package/src/filiale/huayin/CardMeterCenter.vue +903 -903
  36. package/src/filiale/huayin/FileUserFiles.vue +1007 -1007
  37. package/src/filiale/huayin/IOTMeterCenter.vue +796 -796
  38. package/src/filiale/huayin/MachineMeterCenter.vue +680 -680
  39. package/src/filiale/jingwei/CardMeterCenter.vue +870 -870
  40. package/src/filiale/jingwei/FileUserFiles.vue +905 -905
  41. package/src/filiale/jingwei/ShowCardSellGas.vue +903 -903
  42. package/src/filiale/kelai/CardMeterCenter.vue +934 -934
  43. package/src/filiale/kelai/FileUserFiles.vue +762 -762
  44. package/src/filiale/kelai/IOTMeterCenter.vue +833 -833
  45. package/src/filiale/kelai/MachineMeterCenter.vue +705 -705
  46. package/src/filiale/konggang/FileUserFiles.vue +990 -990
  47. package/src/filiale/liaoyuan/FileUserFiles.vue +844 -844
  48. package/src/filiale/macheng/CardMeterCenter.vue +939 -939
  49. package/src/filiale/macheng/FileUserFiles.vue +930 -930
  50. package/src/filiale/meihekou/FileUserFiles.vue +995 -995
  51. package/src/filiale/ningjin/FileUserFiles.vue +1020 -1020
  52. package/src/filiale/qianneng/OtherChargeNew.vue +544 -544
  53. package/src/filiale/qianneng/eticket/EticketModal.vue +96 -91
  54. package/src/filiale/qianneng/eticket/EticketPrint.vue +377 -376
  55. package/src/filiale/qianneng/eticket/EticketRecordList.vue +309 -289
  56. package/src/filiale/qianneng/machine/MachineMeterCenter.vue +676 -676
  57. package/src/filiale/rizhao/FileUserFiles.vue +984 -984
  58. package/src/filiale/rizhao/IOTMeterCenter.vue +795 -795
  59. package/src/filiale/rongcheng/FileUserFiles.vue +881 -881
  60. package/src/filiale/rongcheng/FilesManageNew/FileUserFiles.vue +732 -732
  61. package/src/filiale/rongcheng/FilesManageNew/FileUserMerge.vue +202 -202
  62. package/src/filiale/shanggao/FileUserFiles.vue +995 -995
  63. package/src/filiale/shangluo/CardMeterCenter.vue +892 -892
  64. package/src/filiale/shangluo/IOTMeterCenter.vue +797 -797
  65. package/src/filiale/shangluo/MachineMeterCenter.vue +734 -734
  66. package/src/filiale/shanxian/OtherChargeNew.vue +561 -561
  67. package/src/filiale/shanxian/components/FilesManage/FileUserFiles.vue +1004 -1004
  68. package/src/filiale/shanxian/components/FilesManageNew/FileUserFiles.vue +756 -756
  69. package/src/filiale/shanxian/components/revenue/CardMeterCenter.vue +944 -944
  70. package/src/filiale/shaoguan/FilesManage/FileUserFiles.vue +881 -881
  71. package/src/filiale/shaoguan/FilesManageNew/FileUserFiles.vue +734 -734
  72. package/src/filiale/shexian/FilesManage/FileUserFiles.vue +991 -991
  73. package/src/filiale/tongchuan/BasicLivingList.vue +253 -253
  74. package/src/filiale/tongchuan/CardMeterCenter.vue +923 -923
  75. package/src/filiale/tongchuan/FileUserFiles.vue +1206 -1206
  76. package/src/filiale/tongchuan/bill/EticketModal.vue +90 -90
  77. package/src/filiale/tongchuan/filemanagenew/FileUserFiles.vue +842 -842
  78. package/src/filiale/wenxi/CardMeterCenter.vue +942 -942
  79. package/src/filiale/wenxi/FileUserFiles.vue +1032 -1032
  80. package/src/filiale/wenxi/IOTMeterCenter.vue +774 -774
  81. package/src/filiale/wuan/FileUserFiles.vue +1006 -1006
  82. package/src/filiale/wuhai/CardMeterCenter.vue +945 -945
  83. package/src/filiale/wuhai/IOTMeterCenter.vue +757 -757
  84. package/src/filiale/yuansheng/CardMeterCenter.vue +950 -950
  85. package/src/filiale/yuansheng/IOTMeterCenter.vue +788 -788
  86. package/src/filiale/zhongsheng/FilesManage/FileUserFiles.vue +1038 -1038
  87. package/src/filiale/zhongyi/FileUserFiles.vue +1020 -1020
  88. package/src/main.js +27 -27
@@ -1,376 +1,377 @@
1
- <template>
2
- <div class="auto form-horizontal">
3
- <modal :show.sync="show" v-ref:modal large backdrop="false">
4
- <header slot="modal-header" class="modal-header">
5
- <h3 style="color:black" class="modal-title">收费电子发票</h3>
6
- </header>
7
- <article slot="modal-body" class="modal-body">
8
- <div class="row" style="display: flex;justify-content: center;" v-if="!eticket_src">
9
- {{ return_msg }}
10
- </div>
11
- <iframe :src="eticket_src" v-if="eticket_src" width="100%" height="500px">
12
- </iframe>
13
- </article>
14
- <footer slot="modal-footer" class="modal-footer">
15
- <button type="button" class="btn btn-default" @click="cancel">{{ '关闭' }}</button>
16
- </footer>
17
- </modal>
18
- </div>
19
- </template>
20
- <script>
21
- import {HttpResetClass} from 'vue-client'
22
-
23
- export default {
24
- title: '电子发票',
25
- data () {
26
- return {
27
- eticket_src: '',
28
- return_msg: '航信收到开票请求,正在查询开票状态,请稍后',
29
- show: true
30
- }
31
- },
32
- props: ['show'],
33
- ready () {
34
- },
35
- methods: {
36
- cancel () {
37
- console.log('电子哈哈哈,你走了没')
38
- this.eticket_src = ''
39
- this.return_msg = '正在查询中,请稍后'
40
- this.$dispatch('toggle')
41
- },
42
- //* 公用保存信息接口
43
- async save_msg (obj) {
44
- let model = {
45
- id: obj.f_eticket_id,
46
- f_bill_code: obj.f_bill_code ? obj.f_bill_code : undefined,
47
- f_bill_number: obj.f_bill_number ? obj.f_bill_number : undefined,
48
- f_fpqqlsh: obj.fpqqlsh ? obj.fpqqlsh : undefined,
49
- f_jym: obj.f_jym ? obj.f_jym : undefined,
50
- f_bill_url: obj.f_bill_url ? obj.f_bill_url : undefined,
51
- f_red_url: obj.f_red_url ? obj.f_red_url : undefined,
52
- f_bill_state: obj.f_bill_state,
53
- f_sign_result: obj.f_sign_result ? obj.f_sign_result : undefined,
54
- f_sign_time: obj.f_sign_time ? obj.f_sign_time : undefined
55
- }
56
- await this.$resetpost('rs/entity/t_eticket', model, {resolveMsg: null, rejectMsg: '保存发票记录失败'})
57
- },
58
- async openETicket (sellId, row, type) {
59
- try {
60
- let model = {
61
- id: sellId,
62
- f_charge_type: type,
63
- f_dept_id: this.$login.f.depids,
64
- f_operator: this.$login.f.name,
65
- f_orgid: this.$login.f.orgid,
66
- f_orgname: this.$login.f.orgs,
67
- f_depname: this.$login.f.deps,
68
- f_operatorid: this.$login.f.id,
69
- f_filialeids: this.$login.f.f_orgids,
70
- f_buy_name: row.f_paper_name,
71
- f_pay_id: row.f_taxpayer_id,
72
- f_buy_address: row.f_address_phone,
73
- f_buy_openbank: row.f_paper_accoun
74
- }
75
- console.log('组织开票数据并保存', model)
76
- // TODO 组织开票数据并保存
77
- let ticket_id = await this.$resetpost('rs/logic/combineData', model, {resolveMsg: null, rejectMsg: '保存开票信息失败'})
78
- return this.openEticketGen(ticket_id.data)
79
- } catch (error) {
80
- this.$showAlert(`电子发票开票失败!!请到发票管理重新开票。错误原因: ${JSON.stringify(error)}。`, 'danger', 0)
81
- }
82
- },
83
- async openCustETicket (custModel, invoice_is_pax) {
84
- try {
85
- let model = Object.assign({
86
- f_dept_id: this.$login.f.depids,
87
- f_operator: this.$login.f.name,
88
- f_orgid: this.$login.f.orgid,
89
- f_orgname: this.$login.f.orgs,
90
- f_depname: this.$login.f.deps,
91
- f_operatorid: this.$login.f.id,
92
- f_filialeids: this.$login.f.f_orgids,
93
- f_buy_name: custModel.f_paper_name,
94
- f_pay_id: custModel.f_taxpayer_id,
95
- f_buy_address: custModel.f_address_phone,
96
- f_mail_push: custModel.f_email,
97
- f_buy_openbank: custModel.f_paper_account,
98
- invoice_show_gas: !!(custModel.amount && custModel.price),
99
- detail_price: {amount: custModel.amount, price: custModel.price, name: custModel.name, money: custModel.money},
100
- is_pax: invoice_is_pax === '征税'
101
- }, custModel)
102
- // TODO 组织开票数据并保存
103
- let ticket_id = await this.$resetpost('rs/logic/TCcombineCustData', model, {resolveMsg: null, rejectMsg: '保存开票信息失败'})
104
- return this.openEticketGen(ticket_id.data)
105
- } catch (error) {
106
- this.$showAlert(`电子发票开票失败!!请到发票管理重新开票。错误原因: ${JSON.stringify(error)}。`, 'danger', 0)
107
- }
108
- },
109
- /**
110
- * src赋值 外部调用
111
- * */
112
- watch_ch (src) {
113
- this.eticket_src = src
114
- },
115
- get_bill_src (src, sharecode) {
116
- let authCode = src.split('/s/')[1].split('?')[0]
117
- let tenantId = src.split('tenantId=')[1]
118
- let b = 'https://yonbip.diwork.com/yonbip-fi-taxweb/ucf-wh/ent-views/fpExtract/get_fapiao.html?pwd=' + sharecode + '&authCode=' + authCode + '&tenantId=' + tenantId
119
- return b
120
- },
121
- /**
122
- * 电票查询 外部调用
123
- * */
124
- fp_search (row, ticket_id) {
125
- // 通过收费记录id查询
126
- let http = new HttpResetClass()
127
- http.load('POST', '/invoice/rs/logic/YYGetInvoiceStatus', {eticket_id: ticket_id}, {
128
- resolveMsg: null,
129
- rejectMsg: null
130
- }).then((req) => {
131
- if (!req.data.code) {
132
- this.$showAlert('电子票查询出错,暂无错误信息.请联系管理员', 'danger', 5000)
133
- return
134
- }
135
- req = req.data
136
- let model
137
- if (req.status === '开票成功') {
138
- model = {
139
- id: ticket_id,
140
- f_bill_code: req.fpDm,
141
- f_bill_number: req.fpHm,
142
- f_bill_url: this.get_bill_src(req.shareurl, req.sharecode),
143
- f_sign_result: req.msg,
144
- f_bill_state: req.status
145
- }
146
- this.eticket_src = this.get_bill_src(req.shareurl, req.sharecode)
147
- } else if (req.status === '开票中') {
148
- model = {
149
- id: ticket_id,
150
- f_bill_state: '等待查询',
151
- f_sign_result: req.msg
152
- }
153
- this.return_msg = '请稍后再试,发票正在开具中。。。'
154
- } else {
155
- model = {
156
- id: ticket_id,
157
- f_bill_state: '开票失败',
158
- f_sign_result: req.msg
159
- }
160
- this.return_msg = ' 开票失败。' + req.msg
161
- }
162
- this.$resetpost('rs/entity/t_eticket', model, {resolveMsg: null, rejectMsg: '保存发票记录失败'}).then(
163
- res => this.$dispatch('search')
164
- )
165
- })
166
- },
167
- /** 冲红
168
- * */
169
- async rushRedInvoice (ticket_id) {
170
- try {
171
- // 否则正常打票
172
- let time = 0
173
- let result = await this.$resetpost('/invoice/rs/logic/YYInvoiceRushRed', {eticket_id: ticket_id}, {
174
- resolveMsg: null,
175
- rejectMsg: '发票冲红失败!!'
176
- })
177
- result = result.data
178
- if (result && result.code === '0000') {
179
- // TODO 开票成功 保存发票详情
180
- await this.save_msg({
181
- f_eticket_id: ticket_id,
182
- f_bill_state: '等待查询'
183
- })
184
- // TODO 开票成功 进行查询
185
- let interval = await setInterval(() => {
186
- // 2秒一轮回
187
- let http = new HttpResetClass()
188
- http.load('POST', '/invoice/rs/logic/YYGetInvoiceStatus', {eticket_id: ticket_id}, {
189
- resolveMsg: null,
190
- rejectMsg: null
191
- }).then(req => {
192
- if (!req.data.status) {
193
- clearInterval(interval)
194
- this.save_msg({
195
- f_eticket_id: ticket_id,
196
- f_sign_result: '查询超时请再次尝试。',
197
- f_bill_state: '查询失败'
198
- })
199
- this.$showAlert('电子票查询出错,暂无错误信息,请前往发票管理重新尝试', 'danger', 5000)
200
- return
201
- }
202
- req = req.data
203
- if (req && req.status === '开票成功') {
204
- // 组织数据
205
- clearInterval(interval)
206
- // TODO 成功后保存发票详情
207
- this.save_msg({
208
- f_eticket_id: ticket_id,
209
- f_bill_code: req.fpDm,
210
- f_bill_number: req.fpHm,
211
- fpqqlsh: req.fpqqlsh,
212
- f_bill_url: this.get_bill_src(req.shareurl, req.sharecode),
213
- f_sign_result: req.msg,
214
- f_bill_state: req.status
215
- })
216
- this.eticket_src = this.get_bill_src(req.shareurl, req.sharecode)
217
- } else if (req && req.status === '开票失败') {
218
- clearInterval(interval)
219
- // TODO 失败后保存发票详情
220
- this.save_msg({
221
- f_eticket_id: ticket_id,
222
- f_sign_result: req.msg,
223
- f_bill_state: '开票失败'
224
- })
225
- this.return_msg = '电子票查询出错,错误【' + req.msg + '】,请前往发票管理重新尝试'
226
- } else {
227
- if (time == 80) {
228
- // 三十秒后无效
229
- // TODO 查询失败后保存发票详情
230
- this.save_msg({
231
- f_eticket_id: ticket_id,
232
- f_sign_result: '查询超时请再次尝试。',
233
- f_bill_state: '等待查询'
234
- })
235
- this.return_msg = '发票已经开具,查询发票状态超时,请前往发票管理重新尝试'
236
- clearInterval(interval)
237
- }
238
- time = time + 1
239
- }
240
- })
241
- }, 1 * 2000)
242
- } else if (result) {
243
- // TODO 查询失败后保存发票详情
244
- await this.save_msg({
245
- f_eticket_id: ticket_id,
246
- f_sign_result: result.msg,
247
- f_bill_state: '冲红失败'
248
- })
249
- this.return_msg = '电子票冲红出错,错误【' + result.msg + '】,请前往发票管理重新尝试'
250
- } else {
251
- await this.save_msg({
252
- f_eticket_id: ticket_id,
253
- f_sign_result: '电子票冲红出错,需要查询日志。',
254
- f_bill_state: '冲红失败'
255
- })
256
- this.$showAlert('电子票冲红出错,暂无错误信息,请前往发票管理重新尝试', 'danger', 5000)
257
- }
258
- } catch (error) {
259
- await this.save_msg({
260
- f_eticket_id: ticket_id,
261
- f_return_msg: '冲红失败,需要查询日志。',
262
- f_bill_state: '冲红失败'
263
- })
264
- this.$showAlert('电子票冲红出现异常,请联系管理员!!!', 'warning', 5000)
265
- }
266
- },
267
- /**
268
- *
269
- * @param id 收费id
270
- * @param ticket_id 票据信息 id
271
- * @returns {Promise<void>} 如果查到返回url
272
- */
273
- async openEticketGen (ticket_id) {
274
- try {
275
- let time = 0
276
- let result = await this.$resetpost('/invoice/rs/logic/YYGetInvoice', {eticket_id: ticket_id}, {
277
- resolveMsg: null,
278
- rejectMsg: '发票打印失败!!'
279
- })
280
- result = result.data
281
- if (result && result.code === '0000') {
282
- // TODO 开票成功 保存发票详情
283
- await this.save_msg({
284
- f_eticket_id: ticket_id,
285
- f_bill_state: '等待查询'
286
- })
287
- // TODO 开票成功 进行查询
288
- let interval = await setInterval(() => {
289
- // 2秒一轮回
290
- let http = new HttpResetClass()
291
- http.load('POST', '/invoice/rs/logic/YYGetInvoiceStatus', {eticket_id: ticket_id}, {
292
- resolveMsg: null,
293
- rejectMsg: null
294
- }).then(req => {
295
- if (!req.data.code) {
296
- clearInterval(interval)
297
- this.save_msg({
298
- f_eticket_id: ticket_id,
299
- f_sign_result: '查询超时请再次尝试。',
300
- f_bill_state: '查询失败'
301
- })
302
- this.$showAlert('电子票查询出错,暂无错误信息,请前往发票管理重新尝试', 'danger', 5000)
303
- return
304
- }
305
- req = req.data
306
- if (req && req.status === '开票成功') {
307
- // 组织数据
308
- clearInterval(interval)
309
- // TODO 成功后保存发票详情
310
- this.save_msg({
311
- f_eticket_id: ticket_id,
312
- f_bill_code: req.fpDm,
313
- f_bill_number: req.fpHm,
314
- fpqqlsh: req.fpqqlsh,
315
- f_bill_url: this.get_bill_src(req.shareurl, req.sharecode),
316
- f_sign_result: req.msg,
317
- f_bill_state: req.status
318
- })
319
- this.eticket_src = this.get_bill_src(req.shareurl, req.sharecode)
320
- } else if (req && req.status !== '开票中') {
321
- clearInterval(interval)
322
- // TODO 失败后保存发票详情
323
- this.save_msg({
324
- f_eticket_id: ticket_id,
325
- f_sign_result: req.msg,
326
- f_bill_state: '开票失败'
327
- })
328
- this.return_msg = '电子票查询出错,错误【' + req.msg + '】,请前往发票管理重新尝试'
329
- } else {
330
- if (time == 50) {
331
- // 三十秒后无效
332
- // TODO 查询失败后保存发票详情
333
- this.save_msg({
334
- f_eticket_id: ticket_id,
335
- f_sign_result: '查询超时请再次尝试。',
336
- f_bill_state: '查询失败'
337
- })
338
- this.return_msg = '发票已经开具,查询发票状态超时,请前往发票管理重新尝试'
339
- clearInterval(interval)
340
- }
341
- time = time + 1
342
- }
343
- })
344
- }, 1 * 2000)
345
- } else if (result) {
346
- // TODO 查询失败后保存发票详情
347
- await this.save_msg({
348
- f_eticket_id: ticket_id,
349
- f_sign_result: result.msg,
350
- f_bill_state: '开票失败'
351
- })
352
- this.return_msg = '电子票开票出错,错误【' + result.msg + '】,请前往发票管理重新尝试'
353
- } else {
354
- await this.save_msg({
355
- f_eticket_id: ticket_id,
356
- f_sign_result: '开票失败,需要查询日志。',
357
- f_bill_state: '开票失败'
358
- })
359
- this.$showAlert('电子票开票出错,暂无错误信息,请前往发票管理重新尝试', 'danger', 5000)
360
- }
361
- } catch (error) {
362
- await this.save_msg({
363
- f_eticket_id: ticket_id,
364
- f_return_msg: '开票失败,需要查询日志。',
365
- f_bill_state: '开票失败'
366
- })
367
- this.$showAlert('电子发票打印出现异常,请联系管理员!!!', 'warning', 5000)
368
- }
369
- }
370
- },
371
- watch: {},
372
- events: {}
373
- }
374
- </script>
375
- <style>
376
- </style>
1
+ <template>
2
+ <div class="auto form-horizontal">
3
+ <modal :show.sync="show" v-ref:modal large backdrop="false">
4
+ <header slot="modal-header" class="modal-header">
5
+ <h3 style="color:black" class="modal-title">收费电子发票</h3>
6
+ </header>
7
+ <article slot="modal-body" class="modal-body">
8
+ <div class="row" style="display: flex;justify-content: center;" v-if="!eticket_src">
9
+ {{ return_msg }}
10
+ </div>
11
+ <iframe :src="eticket_src" v-if="eticket_src" width="100%" height="500px">
12
+ </iframe>
13
+ </article>
14
+ <footer slot="modal-footer" class="modal-footer">
15
+ <button type="button" class="btn btn-default" @click="cancel">{{ '关闭' }}</button>
16
+ </footer>
17
+ </modal>
18
+ </div>
19
+ </template>
20
+ <script>
21
+ import {HttpResetClass} from 'vue-client'
22
+
23
+ export default {
24
+ title: '电子发票',
25
+ data () {
26
+ return {
27
+ eticket_src: '',
28
+ return_msg: '航信收到开票请求,正在查询开票状态,请稍后',
29
+ show: true
30
+ }
31
+ },
32
+ props: ['show'],
33
+ ready () {
34
+ },
35
+ methods: {
36
+ cancel () {
37
+ console.log('电子哈哈哈,你走了没')
38
+ this.eticket_src = ''
39
+ this.return_msg = '正在查询中,请稍后'
40
+ this.$dispatch('toggle')
41
+ },
42
+ //* 公用保存信息接口
43
+ async save_msg (obj) {
44
+ let model = {
45
+ id: obj.f_eticket_id,
46
+ f_bill_code: obj.f_bill_code ? obj.f_bill_code : undefined,
47
+ f_bill_number: obj.f_bill_number ? obj.f_bill_number : undefined,
48
+ f_fpqqlsh: obj.fpqqlsh ? obj.fpqqlsh : undefined,
49
+ f_jym: obj.f_jym ? obj.f_jym : undefined,
50
+ f_bill_url: obj.f_bill_url ? obj.f_bill_url : undefined,
51
+ f_red_url: obj.f_red_url ? obj.f_red_url : undefined,
52
+ f_bill_state: obj.f_bill_state,
53
+ f_sign_result: obj.f_sign_result ? obj.f_sign_result : undefined,
54
+ f_sign_time: obj.f_sign_time ? obj.f_sign_time : undefined
55
+ }
56
+ await this.$resetpost('rs/entity/t_eticket', model, {resolveMsg: null, rejectMsg: '保存发票记录失败'})
57
+ },
58
+ async openETicket (sellId, row, type) {
59
+ try {
60
+ let model = {
61
+ id: sellId,
62
+ f_charge_type: type,
63
+ f_dept_id: this.$login.f.depids,
64
+ f_operator: this.$login.f.name,
65
+ f_orgid: this.$login.f.orgid,
66
+ f_orgname: this.$login.f.orgs,
67
+ f_depname: this.$login.f.deps,
68
+ f_operatorid: this.$login.f.id,
69
+ f_filialeids: this.$login.f.f_orgids,
70
+ f_buy_name: row.f_paper_name,
71
+ f_email: row.f_email,
72
+ f_pay_id: row.f_taxpayer_id,
73
+ f_buy_address: row.f_address_phone,
74
+ f_buy_openbank: row.f_paper_accoun
75
+ }
76
+ console.log('组织开票数据并保存', model)
77
+ // TODO 组织开票数据并保存
78
+ let ticket_id = await this.$resetpost('rs/logic/combineData', model, {resolveMsg: null, rejectMsg: '保存开票信息失败'})
79
+ return this.openEticketGen(ticket_id.data)
80
+ } catch (error) {
81
+ this.$showAlert(`电子发票开票失败!!请到发票管理重新开票。错误原因: ${JSON.stringify(error)}。`, 'danger', 0)
82
+ }
83
+ },
84
+ async openCustETicket (custModel, invoice_is_pax) {
85
+ try {
86
+ let model = Object.assign({
87
+ f_dept_id: this.$login.f.depids,
88
+ f_operator: this.$login.f.name,
89
+ f_orgid: this.$login.f.orgid,
90
+ f_orgname: this.$login.f.orgs,
91
+ f_depname: this.$login.f.deps,
92
+ f_operatorid: this.$login.f.id,
93
+ f_filialeids: this.$login.f.f_orgids,
94
+ f_buy_name: custModel.f_paper_name,
95
+ f_pay_id: custModel.f_taxpayer_id,
96
+ f_buy_address: custModel.f_address_phone,
97
+ f_mail_push: custModel.f_email,
98
+ f_buy_openbank: custModel.f_paper_account,
99
+ invoice_show_gas: !!(custModel.amount && custModel.price),
100
+ detail_price: {amount: custModel.amount, price: custModel.price, name: custModel.name, money: custModel.money},
101
+ is_pax: invoice_is_pax === '征税'
102
+ }, custModel)
103
+ // TODO 组织开票数据并保存
104
+ let ticket_id = await this.$resetpost('rs/logic/TCcombineCustData', model, {resolveMsg: null, rejectMsg: '保存开票信息失败'})
105
+ return this.openEticketGen(ticket_id.data)
106
+ } catch (error) {
107
+ this.$showAlert(`电子发票开票失败!!请到发票管理重新开票。错误原因: ${JSON.stringify(error)}。`, 'danger', 0)
108
+ }
109
+ },
110
+ /**
111
+ * src赋值 外部调用
112
+ * */
113
+ watch_ch (src) {
114
+ this.eticket_src = src
115
+ },
116
+ get_bill_src (src, sharecode) {
117
+ let authCode = src.split('/s/')[1].split('?')[0]
118
+ let tenantId = src.split('tenantId=')[1]
119
+ let b = 'https://yonbip.diwork.com/yonbip-fi-taxweb/ucf-wh/ent-views/fpExtract/get_fapiao.html?pwd=' + sharecode + '&authCode=' + authCode + '&tenantId=' + tenantId
120
+ return b
121
+ },
122
+ /**
123
+ * 电票查询 外部调用
124
+ * */
125
+ fp_search (row, ticket_id) {
126
+ // 通过收费记录id查询
127
+ let http = new HttpResetClass()
128
+ http.load('POST', '/invoice/rs/logic/YYGetInvoiceStatus', {eticket_id: ticket_id}, {
129
+ resolveMsg: null,
130
+ rejectMsg: null
131
+ }).then((req) => {
132
+ if (!req.data.code) {
133
+ this.$showAlert('电子票查询出错,暂无错误信息.请联系管理员', 'danger', 5000)
134
+ return
135
+ }
136
+ req = req.data
137
+ let model
138
+ if (req.status === '开票成功') {
139
+ model = {
140
+ id: ticket_id,
141
+ f_bill_code: req.fpDm,
142
+ f_bill_number: req.fpHm,
143
+ f_bill_url: this.get_bill_src(req.shareurl, req.sharecode),
144
+ f_sign_result: req.msg,
145
+ f_bill_state: req.status
146
+ }
147
+ this.eticket_src = this.get_bill_src(req.shareurl, req.sharecode)
148
+ } else if (req.status === '开票中') {
149
+ model = {
150
+ id: ticket_id,
151
+ f_bill_state: '等待查询',
152
+ f_sign_result: req.msg
153
+ }
154
+ this.return_msg = '请稍后再试,发票正在开具中。。。'
155
+ } else {
156
+ model = {
157
+ id: ticket_id,
158
+ f_bill_state: '开票失败',
159
+ f_sign_result: req.msg
160
+ }
161
+ this.return_msg = ' 开票失败。' + req.msg
162
+ }
163
+ this.$resetpost('rs/entity/t_eticket', model, {resolveMsg: null, rejectMsg: '保存发票记录失败'}).then(
164
+ res => this.$dispatch('search')
165
+ )
166
+ })
167
+ },
168
+ /** 冲红
169
+ * */
170
+ async rushRedInvoice (ticket_id) {
171
+ try {
172
+ // 否则正常打票
173
+ let time = 0
174
+ let result = await this.$resetpost('/invoice/rs/logic/YYInvoiceRushRed', {eticket_id: ticket_id}, {
175
+ resolveMsg: null,
176
+ rejectMsg: '发票冲红失败!!'
177
+ })
178
+ result = result.data
179
+ if (result && result.code === '0000') {
180
+ // TODO 开票成功 保存发票详情
181
+ await this.save_msg({
182
+ f_eticket_id: ticket_id,
183
+ f_bill_state: '等待查询'
184
+ })
185
+ // TODO 开票成功 进行查询
186
+ let interval = await setInterval(() => {
187
+ // 2秒一轮回
188
+ let http = new HttpResetClass()
189
+ http.load('POST', '/invoice/rs/logic/YYGetInvoiceStatus', {eticket_id: ticket_id}, {
190
+ resolveMsg: null,
191
+ rejectMsg: null
192
+ }).then(req => {
193
+ if (!req.data.status) {
194
+ clearInterval(interval)
195
+ this.save_msg({
196
+ f_eticket_id: ticket_id,
197
+ f_sign_result: '查询超时请再次尝试。',
198
+ f_bill_state: '查询失败'
199
+ })
200
+ this.$showAlert('电子票查询出错,暂无错误信息,请前往发票管理重新尝试', 'danger', 5000)
201
+ return
202
+ }
203
+ req = req.data
204
+ if (req && req.status === '开票成功') {
205
+ // 组织数据
206
+ clearInterval(interval)
207
+ // TODO 成功后保存发票详情
208
+ this.save_msg({
209
+ f_eticket_id: ticket_id,
210
+ f_bill_code: req.fpDm,
211
+ f_bill_number: req.fpHm,
212
+ fpqqlsh: req.fpqqlsh,
213
+ f_bill_url: this.get_bill_src(req.shareurl, req.sharecode),
214
+ f_sign_result: req.msg,
215
+ f_bill_state: req.status
216
+ })
217
+ this.eticket_src = this.get_bill_src(req.shareurl, req.sharecode)
218
+ } else if (req && req.status === '开票失败') {
219
+ clearInterval(interval)
220
+ // TODO 失败后保存发票详情
221
+ this.save_msg({
222
+ f_eticket_id: ticket_id,
223
+ f_sign_result: req.msg,
224
+ f_bill_state: '开票失败'
225
+ })
226
+ this.return_msg = '电子票查询出错,错误【' + req.msg + '】,请前往发票管理重新尝试'
227
+ } else {
228
+ if (time == 80) {
229
+ // 三十秒后无效
230
+ // TODO 查询失败后保存发票详情
231
+ this.save_msg({
232
+ f_eticket_id: ticket_id,
233
+ f_sign_result: '查询超时请再次尝试。',
234
+ f_bill_state: '等待查询'
235
+ })
236
+ this.return_msg = '发票已经开具,查询发票状态超时,请前往发票管理重新尝试'
237
+ clearInterval(interval)
238
+ }
239
+ time = time + 1
240
+ }
241
+ })
242
+ }, 1 * 2000)
243
+ } else if (result) {
244
+ // TODO 查询失败后保存发票详情
245
+ await this.save_msg({
246
+ f_eticket_id: ticket_id,
247
+ f_sign_result: result.msg,
248
+ f_bill_state: '冲红失败'
249
+ })
250
+ this.return_msg = '电子票冲红出错,错误【' + result.msg + '】,请前往发票管理重新尝试'
251
+ } else {
252
+ await this.save_msg({
253
+ f_eticket_id: ticket_id,
254
+ f_sign_result: '电子票冲红出错,需要查询日志。',
255
+ f_bill_state: '冲红失败'
256
+ })
257
+ this.$showAlert('电子票冲红出错,暂无错误信息,请前往发票管理重新尝试', 'danger', 5000)
258
+ }
259
+ } catch (error) {
260
+ await this.save_msg({
261
+ f_eticket_id: ticket_id,
262
+ f_return_msg: '冲红失败,需要查询日志。',
263
+ f_bill_state: '冲红失败'
264
+ })
265
+ this.$showAlert('电子票冲红出现异常,请联系管理员!!!', 'warning', 5000)
266
+ }
267
+ },
268
+ /**
269
+ *
270
+ * @param id 收费id
271
+ * @param ticket_id 票据信息 id
272
+ * @returns {Promise<void>} 如果查到返回url
273
+ */
274
+ async openEticketGen (ticket_id) {
275
+ try {
276
+ let time = 0
277
+ let result = await this.$resetpost('/invoice/rs/logic/YYGetInvoice', {eticket_id: ticket_id}, {
278
+ resolveMsg: null,
279
+ rejectMsg: '发票打印失败!!'
280
+ })
281
+ result = result.data
282
+ if (result && result.code === '0000') {
283
+ // TODO 开票成功 保存发票详情
284
+ await this.save_msg({
285
+ f_eticket_id: ticket_id,
286
+ f_bill_state: '等待查询'
287
+ })
288
+ // TODO 开票成功 进行查询
289
+ let interval = await setInterval(() => {
290
+ // 2秒一轮回
291
+ let http = new HttpResetClass()
292
+ http.load('POST', '/invoice/rs/logic/YYGetInvoiceStatus', {eticket_id: ticket_id}, {
293
+ resolveMsg: null,
294
+ rejectMsg: null
295
+ }).then(req => {
296
+ if (!req.data.code) {
297
+ clearInterval(interval)
298
+ this.save_msg({
299
+ f_eticket_id: ticket_id,
300
+ f_sign_result: '查询超时请再次尝试。',
301
+ f_bill_state: '查询失败'
302
+ })
303
+ this.$showAlert('电子票查询出错,暂无错误信息,请前往发票管理重新尝试', 'danger', 5000)
304
+ return
305
+ }
306
+ req = req.data
307
+ if (req && req.status === '开票成功') {
308
+ // 组织数据
309
+ clearInterval(interval)
310
+ // TODO 成功后保存发票详情
311
+ this.save_msg({
312
+ f_eticket_id: ticket_id,
313
+ f_bill_code: req.fpDm,
314
+ f_bill_number: req.fpHm,
315
+ fpqqlsh: req.fpqqlsh,
316
+ f_bill_url: this.get_bill_src(req.shareurl, req.sharecode),
317
+ f_sign_result: req.msg,
318
+ f_bill_state: req.status
319
+ })
320
+ this.eticket_src = this.get_bill_src(req.shareurl, req.sharecode)
321
+ } else if (req && req.status !== '开票中') {
322
+ clearInterval(interval)
323
+ // TODO 失败后保存发票详情
324
+ this.save_msg({
325
+ f_eticket_id: ticket_id,
326
+ f_sign_result: req.msg,
327
+ f_bill_state: '开票失败'
328
+ })
329
+ this.return_msg = '电子票查询出错,错误【' + req.msg + '】,请前往发票管理重新尝试'
330
+ } else {
331
+ if (time == 50) {
332
+ // 三十秒后无效
333
+ // TODO 查询失败后保存发票详情
334
+ this.save_msg({
335
+ f_eticket_id: ticket_id,
336
+ f_sign_result: '查询超时请再次尝试。',
337
+ f_bill_state: '查询失败'
338
+ })
339
+ this.return_msg = '发票已经开具,查询发票状态超时,请前往发票管理重新尝试'
340
+ clearInterval(interval)
341
+ }
342
+ time = time + 1
343
+ }
344
+ })
345
+ }, 1 * 2000)
346
+ } else if (result) {
347
+ // TODO 查询失败后保存发票详情
348
+ await this.save_msg({
349
+ f_eticket_id: ticket_id,
350
+ f_sign_result: result.msg,
351
+ f_bill_state: '开票失败'
352
+ })
353
+ this.return_msg = '电子票开票出错,错误【' + result.msg + '】,请前往发票管理重新尝试'
354
+ } else {
355
+ await this.save_msg({
356
+ f_eticket_id: ticket_id,
357
+ f_sign_result: '开票失败,需要查询日志。',
358
+ f_bill_state: '开票失败'
359
+ })
360
+ this.$showAlert('电子票开票出错,暂无错误信息,请前往发票管理重新尝试', 'danger', 5000)
361
+ }
362
+ } catch (error) {
363
+ await this.save_msg({
364
+ f_eticket_id: ticket_id,
365
+ f_return_msg: '开票失败,需要查询日志。',
366
+ f_bill_state: '开票失败'
367
+ })
368
+ this.$showAlert('电子发票打印出现异常,请联系管理员!!!', 'warning', 5000)
369
+ }
370
+ }
371
+ },
372
+ watch: {},
373
+ events: {}
374
+ }
375
+ </script>
376
+ <style>
377
+ </style>