sale-client 3.6.501 → 3.6.502

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.
@@ -1,2 +1,2 @@
1
- #Wed Jan 22 10:06:39 CST 2025
1
+ #Thu Feb 27 12:01:45 CST 2025
2
2
  gradle.version=5.2.1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "3.6.501",
3
+ "version": "3.6.502",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -84,14 +84,14 @@ export default {
84
84
  eticket_id: retry ? model.id : null,
85
85
  invoice_kind: invoice_type,
86
86
  f_buy_openbank: model.f_paper_account,
87
- f_buy_phone: model.f_buy_phone,
87
+ f_buy_phone: model.f_user_phone,
88
88
  bill_type: model.f_print ? model.f_print : null,
89
89
  f_paper_name: model.f_paper_name,
90
90
  f_taxpayer_id: model.f_taxpayer_id,
91
91
  f_address_phone: model.f_address_phone,
92
92
  f_email: model.f_email,
93
- f_start_date: model.f_start_date,
94
- f_end_date: model.f_end_date,
93
+ // f_start_date: model.f_start_date,
94
+ // f_end_date: model.f_end_date,
95
95
  f_userinfo_id: model.f_userinfo_id,
96
96
  org_id: this.$login.f.orgid,
97
97
  bz: model.f_eticket_reason ? model.f_eticket_reason : null,
@@ -157,6 +157,11 @@
157
157
  <input class="form-control col-sm-2"
158
158
  v-model="row.f_address_phone" placeholder="开票地址">
159
159
  </div>
160
+ <div class="col-sm-12 form-group form-input-group">
161
+ <label class="control-label" style="width: 100px">手机推送:</label>
162
+ <input class="form-control col-sm-2"
163
+ v-model="row.f_user_phone" placeholder="手机推送">
164
+ </div>
160
165
  <div class="col-sm-12 form-group form-input-group">
161
166
  <label class="control-label" style="width: 100px">邮箱推送:</label>
162
167
  <input class="form-control col-sm-2"
@@ -15,6 +15,9 @@
15
15
  <tabs header="自定义开票" v-if="permission('自定义开票')">
16
16
  <cust-query-eticket-query-v4></cust-query-eticket-query-v4>
17
17
  </tabs>
18
+ <tabs header="特殊开票" v-if="permission('特殊开票')">
19
+ <e-ticket-special-query-v4></e-ticket-special-query-v4>
20
+ </tabs>
18
21
  </tab-button>
19
22
  </template>
20
23
 
@@ -154,6 +154,11 @@
154
154
  <input class="form-control col-sm-2"
155
155
  v-model="row.f_address_phone" placeholder="开票地址">
156
156
  </div>
157
+ <div class="col-sm-12 form-group form-input-group">
158
+ <label class="control-label" style="width: 100px">手机推送:</label>
159
+ <input class="form-control col-sm-2"
160
+ v-model="row.f_user_phone" placeholder="手机推送">
161
+ </div>
157
162
  <div class="col-sm-12 form-group form-input-group">
158
163
  <label class="control-label" style="width: 100px">邮箱推送:</label>
159
164
  <input class="form-control col-sm-2"
@@ -153,6 +153,11 @@
153
153
  <input class="form-control col-sm-2"
154
154
  v-model="row.f_address_phone" placeholder="开票地址">
155
155
  </div>
156
+ <div class="col-sm-12 form-group form-input-group">
157
+ <label class="control-label" style="width: 100px">手机推送:</label>
158
+ <input class="form-control col-sm-2"
159
+ v-model="row.f_user_phone" placeholder="手机推送">
160
+ </div>
156
161
  <div class="col-sm-12 form-group form-input-group">
157
162
  <label class="control-label" style="width: 100px">邮箱推送:</label>
158
163
  <input class="form-control col-sm-2"
@@ -139,6 +139,11 @@
139
139
  <input class="form-control col-sm-2"
140
140
  v-model="row.f_address_phone" placeholder="开票地址">
141
141
  </div>
142
+ <div class="col-sm-12 form-group form-input-group">
143
+ <label class="control-label" style="width: 100px">手机推送:</label>
144
+ <input class="form-control col-sm-2"
145
+ v-model="row.f_user_phone" placeholder="手机推送">
146
+ </div>
142
147
  <div class="col-sm-12 form-group form-input-group">
143
148
  <label class="control-label" style="width: 100px">邮箱推送:</label>
144
149
  <input class="form-control col-sm-2"
@@ -278,8 +283,6 @@ export default {
278
283
  }
279
284
  }, {resolveMsg: null, rejectMsg: '获取地址失败!'})
280
285
  console.log('查询到的记录:', row)
281
- this.row.f_start_date = `${this.model.model.f_start_date} 00:00:00`
282
- this.row.f_end_date = `${this.model.model.f_end_date} 23:59:59`
283
286
  this.$refs.eticketbill.openETicket(row.data.map(item => item.id), this.row, '物联网结算', this.row.f_paper_type, false, this.invoice_is_pax, 't_web_handplan')
284
287
  },
285
288
  selfSearch (args) {
@@ -0,0 +1,365 @@
1
+ <template>
2
+ <div class="auto basic-main" style="height:95%">
3
+ <criteria-paged :model="model" v-ref:paged>
4
+ <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
5
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
+ <div class="row">
7
+ <div class="col-sm-2 form-group">
8
+ <label class="font_normal_body">组织机构</label>
9
+ <res-select restype='organization'
10
+ @res-select="$parent.$parent.getorg"
11
+ is-mul="false"
12
+ :initresid='$parent.$parent.curorgid'>
13
+ </res-select>
14
+ </div>
15
+ <div class="form-group col-sm-2">
16
+ <label class="font_normal_body">客户编号</label>
17
+ <input type="text" class="form-control" v-model="model.f_userinfo_code" style="width:60%"
18
+ condition="f_userinfo_code = '{}' " placeholder="客户编号"
19
+ >
20
+ </div>
21
+ <div class="form-group col-sm-2">
22
+ <label class="font_normal_body">用户姓名</label>
23
+ <input type="text" class="form-control" v-model="model.f_user_name" style="width:60%"
24
+ condition="f_user_name = '{}'" placeholder="用户姓名"
25
+ >
26
+ </div>
27
+ <div style="float: right">
28
+ <button class="button_search" @click="search()">查 询</button>
29
+ <button class="button_search" @click="$parent.$parent.open_eTicket()">批量开票</button>
30
+ <div
31
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
32
+ @click="$parent.$parent.criteriaShow=!$parent.$parent.criteriaShow"
33
+ class="button_spacing"
34
+ style="float: right"></div>
35
+ </div>
36
+ </div>
37
+ <div class="row" v-show="$parent.$parent.criteriaShow">
38
+ <div class="form-group col-sm-2" >
39
+ <label class="font_normal_body">业务类型</label>
40
+ <v-select id="f_charge_type"
41
+ style="width:60%"
42
+ v-model="model.f_type"
43
+ placeholder='业务类型'
44
+ condition="f_type ='{}'"
45
+ :value.sync="model.f_type"
46
+ :options='$parent.$parent.chargetypes'
47
+ close-on-select clear-button>
48
+ </v-select>
49
+ </div>
50
+ <div class="form-group col-sm-2">
51
+ <label for="startDate" class="font_normal_body">开始日期</label>
52
+ <datepicker placeholder="开始日期"
53
+ v-model="model.startDate"
54
+ :value.sync="model.startDate"
55
+ :disabled-days-of-Week="[]"
56
+ style="width:60%"
57
+ class="datepicker"
58
+ >
59
+ </datepicker>
60
+ </div>
61
+ <div class="form-group col-sm-2">
62
+ <label for="endDate" class="font_normal_body">结束日期</label>
63
+ <datepicker id="endDate" placeholder="结束日期"
64
+ v-model="model.endDate"
65
+ :value.sync="model.endDate"
66
+ :disabled-days-of-Week="[]"
67
+ style="width:60%"
68
+ >
69
+ </datepicker>
70
+ </div>
71
+ </div>
72
+ </div>
73
+ </criteria>
74
+ <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
75
+ <template partial='head'>
76
+ <th>
77
+ <input type="checkbox" @click="$parent.$parent.$parent.addOrRemove($parent.$parent.$parent.selectAll)"
78
+ style="width: 22px;height: 22px" :checked="$parent.$parent.$parent.selectAll">
79
+ </th>
80
+ <tr>
81
+ <th>序号</th>
82
+ <th>客户编号</th>
83
+ <th>用户姓名</th>
84
+ <th>用户地址</th>
85
+ <th>气量</th>
86
+ <th>应交金额</th>
87
+ <th>实收金额</th>
88
+ <th>收费类型</th>
89
+ <th>收费时间</th>
90
+ <th>操作</th>
91
+ </tr>
92
+ </template>
93
+ <template partial='body' >
94
+ <td style="text-align:center">
95
+ <input type="checkbox" v-model="$parent.$parent.$parent.selecteds" :value="row"
96
+ style="width: 22px;height: 22px" @click="$parent.$parent.$parent.checkbox($index, $event)">
97
+ </td>
98
+ <td style="text-align:center">{{$index+1}}</td>
99
+ <td style="text-align:center">{{row.f_userinfo_code}}</td>
100
+ <td style="text-align:center">{{row.f_user_name}}</td>
101
+ <td style="text-align:center">{{row.f_address}}</td>
102
+ <td style="text-align:center">{{row.f_pregas}}</td>
103
+ <td style="text-align:center">{{row.f_preamount}}</td>
104
+ <td style="text-align:center">{{row.f_collection}}</td>
105
+ <td style="text-align:center">{{row.f_type}}</td>
106
+ <td style="text-align:center">{{row.f_operate_date}}</td>
107
+ <td>
108
+ <button class="btn btn-link" @click="$parent.$parent.$parent.kp(row)">开具发票</button>
109
+ </td>
110
+ </template>
111
+ <template partial='foot'></template>
112
+ </data-grid>
113
+ </criteria-paged>
114
+ </div>
115
+ <modal :show.sync="eticket_msg" v-ref:modal large backdrop="false" :width="900">
116
+ <header slot="modal-header" class="modal-header">
117
+ <button type="button" class="close" @click="eticket_msg = false"><span>&times;</span></button>
118
+ <h4 class="modal-title">发票信息</h4>
119
+ </header>
120
+ <article slot="modal-body" class="modal-body">
121
+ <div class="auto select-overspread form-horizontal">
122
+ <div class="row auto">
123
+ <div class="col-sm-6 form-group form-input-group" :class="[!row.f_paper_name ? 'has-error' : '']">
124
+ <label class="control-label" style="width: 100px">开票名称:</label>
125
+ <input class="form-control col-sm-2"
126
+ v-model="row.f_paper_name" placeholder="开票名称" :disabled="true">
127
+ </div>
128
+ <div class="col-sm-6 form-group form-input-group" :class="[!invoice_is_pax ? 'has-error' : '']">
129
+ <nobr class="col-sm-4"><label class="control-label" style="width: 100px">是否征税:</label></nobr>
130
+ <v-select v-model="invoice_is_pax"
131
+ placeholder='请选择'
132
+ :value.sync="invoice_is_pax"
133
+ close-on-select
134
+ :width="60"
135
+ :value-single="true"
136
+ :search="false"
137
+ :options='is_pax' clear-button>
138
+ </v-select>
139
+ </div>
140
+ <div class="col-sm-6 form-group form-input-group" :class="[!row.f_paper_type || !row.f_paper_type === '' ? 'has-error' : '']">
141
+ <label class="control-label" style="width: 100px">发票种类:</label>
142
+ <v-select v-model="row.f_paper_type"
143
+ placeholder='请选择'
144
+ :value.sync="row.f_paper_type"
145
+ close-on-select
146
+ :width="60"
147
+ :value-single="true"
148
+ :search="false"
149
+ :options='invoice_types' clear-button>
150
+ </v-select>
151
+ </div>
152
+ <div class="col-sm-12 form-group form-input-group">
153
+ <label class="control-label" style="width: 100px">开户行及账号:</label>
154
+ <input class="form-control col-sm-2"
155
+ v-model="row.f_paper_account" placeholder="购方开户行及账号">
156
+ </div>
157
+ <div class="col-sm-12 form-group form-input-group" >
158
+ <label class="control-label" style="width: 100px">纳税人识别号:</label>
159
+ <input class="form-control col-sm-2"
160
+ v-model="row.f_taxpayer_id" placeholder="纳税人识别号">
161
+ </div>
162
+ <div class="col-sm-12 form-group form-input-group" :class="[!row.f_address_phone ? 'has-error' : '']">
163
+ <label class="control-label" style="width: 100px">开票地址电话:</label>
164
+ <input class="form-control col-sm-2"
165
+ v-model="row.f_address_phone" placeholder="开票地址">
166
+ </div>
167
+ <div class="col-sm-12 form-group form-input-group">
168
+ <label class="control-label" style="width: 100px">手机推送:</label>
169
+ <input class="form-control col-sm-2"
170
+ v-model="row.f_user_phone" placeholder="手机推送">
171
+ </div>
172
+ <div class="col-sm-12 form-group form-input-group">
173
+ <label class="control-label" style="width: 100px">邮箱推送:</label>
174
+ <input class="form-control col-sm-2"
175
+ v-model="row.f_email" placeholder="邮箱推送">
176
+ </div>
177
+ <div class="col-sm-12 form-group form-input-group">
178
+ <label class="control-label" style="width: 100px">备注:</label>
179
+ <input class="form-control col-sm-2"
180
+ v-model="row.f_remarks" placeholder="备注">
181
+ </div>
182
+ </div>
183
+ </div>
184
+ </article>
185
+ <footer slot="modal-footer" class="modal-footer">
186
+ <button type="button" class="btn button_search"
187
+ :disabled="!(row.f_paper_name&&row.f_paper_type&&invoice_is_pax&&row.f_paper_type!== '')"
188
+ @click='confirm'>确认开票
189
+ </button>
190
+ </footer>
191
+ </modal>
192
+ <ticket-print :show="eticket_show" @toggle="eticket_toggle" v-ref:eticketbill></ticket-print>
193
+ </template>
194
+
195
+ <script>
196
+ /**
197
+ *发票冲红管理
198
+ */
199
+ import {HttpResetClass, PagedList} from 'vue-client'
200
+ import Vue from 'vue'
201
+ export default {
202
+ title: '结算开票',
203
+ data () {
204
+ return {
205
+ criteriaShow: false,
206
+ f_filialeids: Vue.$login.f.orgids,
207
+ model: new PagedList('rs/sql/open_eTicket_special_query', 50, {startDate: 'this.model.startDate', endDate: 'this.model.endDate'}),
208
+ f_outlets: Vue.$login.f.f_parentname,
209
+ f_filiale: Vue.$login.f.f_fengongsi,
210
+ f_operator: Vue.$login.f.name,
211
+ f_orgstr: Vue.$login.f.orgpathstr,
212
+ invoice_types: this.$appdata.getParam('发票种类'),
213
+ invoice_is_pax: '征税',
214
+ is_pax: [{label: '征税', value: '征税'}, {label: '不征税', value: '不征税'}],
215
+ selecteds: [],
216
+ eticket_show: false,
217
+ eticket_msg: false,
218
+ invoice_show_gas: '否',
219
+ show_gas: [{label: '是', value: '是'}, {label: '否', value: '否'}],
220
+ row: {},
221
+ disabled: false,
222
+ printstyle: this.$appdata.getParam('打印电子格式') ? this.$appdata.getParam('打印电子格式') : [{label: '电子发票', value: '电子发票'}],
223
+ mid: [{label: '全部', value: ''}, {label: '是', value: ' > 0 '}, {label: '否', value: ' is null'}]
224
+ }
225
+ },
226
+ ready () {
227
+ this.$refs.paged.$refs.cri.model.startDate = this.$login.toStandardDateString() + ' 00:00:00'
228
+ this.$refs.paged.$refs.cri.model.endDate = this.$login.toStandardDateString() + ' 23:59:59'
229
+ },
230
+ methods: {
231
+ async kp (row) {
232
+ let HttpReset = new HttpResetClass()
233
+ let _row = await HttpReset.load('POST', 'rs/sql/sale_getUser', {
234
+ data: {
235
+ orderitem: 'f_userinfo_code',
236
+ condition: `f_userinfo_code = '${row.f_userinfo_code}'`
237
+ }
238
+ }, {resolveMsg: null, rejectMsg: '获取地址失败!'})
239
+ this.row = _row.data[0]
240
+ this.row.id = row.id
241
+ this.row.f_type = row.f_type
242
+ this.invoice_show_gas = this.row.f_collection_type === '按气量' ? '是' : '否'
243
+ if (!this.row.f_paper_name) {
244
+ this.row.f_paper_name = this.row.f_user_name
245
+ }
246
+ if (!this.row.f_address_phone) {
247
+ this.row.f_address_phone = this.row.f_address + ' ' + this.row.f_user_phone
248
+ }
249
+ this.eticket_msg = true
250
+ },
251
+ closeEticket () {
252
+ this.eticket_msg = false
253
+ this.disabled = false
254
+ },
255
+ getorg (val) {
256
+ this.f_orgid = this.$login.convertToIn(val)
257
+ this.f_filialeids = val[0]
258
+ },
259
+ cancel () {
260
+ this.show = false
261
+ this.info = {}
262
+ },
263
+ async open_eTicket () {
264
+ if (this.selecteds.length === 0) {
265
+ this.$showAlert('请先选择需要开票的记录!!', 'warning', 2000)
266
+ return
267
+ }
268
+ // 获取所有选中的收费类型
269
+ const chargeType = this.selecteds.map(item => item.f_type)
270
+ if (new Set(chargeType).size !== 1) {
271
+ this.$showAlert('选择的多条记录业务类型不一致!!', 'warning', 2000)
272
+ return
273
+ }
274
+
275
+ // 获取所有选中用户的用户编号,使用 IN 查询
276
+ const userInfoCodes = [...new Set(this.selecteds.map(item => item.f_userinfo_code))].join("','");
277
+
278
+ // 获取第一条记录的用户信息
279
+ let HttpReset = new HttpResetClass()
280
+ let row = await HttpReset.load('POST', 'rs/sql/sale_getUser', {
281
+ data: {
282
+ orderitem: 'f_userinfo_code',
283
+ condition: `f_userinfo_code in ('${userInfoCodes}')`
284
+ }
285
+ }, {resolveMsg: null, rejectMsg: '获取用户信息失败!'})
286
+
287
+ // 提取所有用户的税号
288
+ const taxpayerIds = row.data.map(item => item.f_taxpayer_id)
289
+ // 检查所有税号是否一致
290
+ if (new Set(taxpayerIds).size !== 1) {
291
+ this.$showAlert('多条用户税号不一致或该用户不正常!!', 'warning', 2000)
292
+ return
293
+ }else if (taxpayerIds[0] === null || taxpayerIds[0] === '') {
294
+ this.$showAlert('用户税号为空,无法判断是否同一税号!!', 'warning', 2000)
295
+ return
296
+ }
297
+
298
+ this.row = row.data[0]
299
+ this.row.f_type = chargeType[0]
300
+ this.row.id = this.selecteds.map(item => item.id) // 设置为所有选中的ID
301
+
302
+ // 设置发票默认信息
303
+ this.invoice_show_gas = this.row.f_collection_type === '按气量' ? '是' : '否'
304
+ this.row.f_paper_name = this.row.f_user_name
305
+ this.row.f_address_phone = this.row.f_address + ' ' + this.row.f_user_phone
306
+
307
+ // 如果税号为空,则使用用户的身份证号(或其他默认值)
308
+ if (!this.row.f_taxpayer_id) {
309
+ this.row.f_taxpayer_id = this.row.f_idnumber
310
+ }
311
+
312
+ this.eticket_msg = true
313
+ },
314
+ confirm () {
315
+ console.log('确认开票', this.row)
316
+ // this.row.f_print = this.invoice_is_pax
317
+ this.row.invoice_is_pax = this.invoice_is_pax
318
+ this.eticket_msg = false
319
+ this.disabled = false
320
+ this.eticket_show = true
321
+ this.$refs.eticketbill.openETicket(this.row.id, this.row, this.row.f_type, this.row.f_paper_type, false, this.invoice_is_pax)
322
+ },
323
+ eticket_toggle () {
324
+ this.eticket_show = false
325
+ this.search()
326
+ },
327
+ async selfSearch (args) {
328
+ if (!this.f_orgid) {
329
+ this.getorg([this.$login.f.orgid])
330
+ }
331
+ args.condition = ` f_orgid='${this.f_filialeids}' and ${args.condition}`
332
+
333
+ await this.model.search(args.condition, this.model, {startDate: args.model.startDate, endDate: args.model.endDate})
334
+ this.addOrRemove(true)
335
+ },
336
+ search () {
337
+ this.$refs.paged.$refs.cri.search()
338
+ this.$dispatch('refresh')
339
+ },
340
+ addOrRemove (is) {
341
+ this.selecteds = []
342
+ if (!is) { // 添加本页所有数据到ids中
343
+ this.model.rows.forEach((row) => {
344
+ this.selecteds.push(row)
345
+ })
346
+ this.selectAll = true
347
+ } else { // 从ids中取消所有的数据
348
+ this.selecteds = []
349
+ this.selectAll = false
350
+ }
351
+ console.log('selectdde', this.selecteds)
352
+ }
353
+ },
354
+ computed: {
355
+ chargetypes () {
356
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('收费类型')]
357
+ }
358
+ },
359
+ watch: {
360
+ selecteds () {
361
+ console.log('框框的长度', this.selecteds.length)
362
+ }
363
+ }
364
+ }
365
+ </script>
@@ -439,6 +439,7 @@ export default {
439
439
  this.data.baseinfo.base.f_user_name = Util.removerUnnecessary(this.data.baseinfo.base.f_user_name)
440
440
  this.data.baseinfo.base.f_user_phone = Util.removerUnnecessary(this.data.baseinfo.base.f_user_phone)
441
441
  this.data.baseinfo.base.f_paper_name = Util.removerUnnecessary(this.data.baseinfo.base.f_user_name)
442
+ this.data.baseinfo.base.f_is_special = this.data.baseinfo.base.f_is_special
442
443
  console.log('档案保存之前,再看下。。。', this.data.baseinfo.base.f_paper_name)
443
444
  this.data.meterinfo.forEach((item) => {
444
445
  item.f_meternumber = Util.removerUnnecessary(item.f_meternumber)
@@ -46,6 +46,15 @@
46
46
  v-model="baseinfo.base.f_email">
47
47
  </div>
48
48
  </div>
49
+ <div class="row">
50
+ <div class="col-sm-4 form-group">
51
+ <label class="font_normal_body" for="f_is_special">是否特殊用户</label>
52
+ <v-select :options='isSpecial'
53
+ :value-single="true"
54
+ :value.sync="baseinfo.base.f_is_special" close-on-select
55
+ placeholder='是否特殊用户'></v-select>
56
+ </div>
57
+ </div>
49
58
 
50
59
  </form>
51
60
  </div>
@@ -55,7 +64,8 @@ export default {
55
64
  title: '基本信息',
56
65
  data () {
57
66
  return {
58
- papertype: this.$appdata.getParam('票据类型') ? [{label: '请选择', value: ''}, ...this.$appdata.getParam('票据类型')] : []
67
+ papertype: this.$appdata.getParam('票据类型') ? [{label: '请选择', value: ''}, ...this.$appdata.getParam('票据类型')] : [],
68
+ isSpecial :[{label: '是', value: 1}, {label: '否', value: 2}]
59
69
  }
60
70
  },
61
71
  props: ['baseinfo']
@@ -70,6 +70,7 @@ export default function () {
70
70
  Vue.component('e-ticket-open-card-query-v4', (resolve) => { require(['./EticketV4/EticketOpenCard'], resolve) })
71
71
  // 自定义开票
72
72
  Vue.component('cust-query-eticket-query-v4', (resolve) => { require(['./EticketV4/CustQueryEticket'], resolve) })
73
+ Vue.component('e-ticket-special-query-v4', (resolve) => { require(['./EticketV4/SpecialQueryEticket'], resolve) })
73
74
  // 发票打印
74
75
  Vue.component('ticket-print', (resolve) => { require(['./EticketPrint'], resolve) })
75
76
  // 发票记录列表
Binary file