telephone-clients 4.0.0-1-79 → 4.0.0-1-81

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,19 +1,19 @@
1
- // 分公司特殊组件页面注册
2
- import Vue from "vue";
3
-
4
- //pc和手机分别注册到两个文件中
5
- let specialComp = {
6
-
7
- // 工单详情子组件
8
- 'complain-work': (resolve) => {
9
- require(['./pc/ComplainWork'], resolve)
10
- },
11
- 'handplan-info': (resolve) => {
12
- require(['./pc/HandplanInfo'], resolve)
13
- }
14
- }
15
- exports.specialComp = specialComp
16
-
17
-
18
-
19
-
1
+ // 分公司特殊组件页面注册
2
+ import Vue from "vue";
3
+
4
+ //pc和手机分别注册到两个文件中
5
+ let specialComp = {
6
+
7
+ // 工单详情子组件
8
+ 'complain-work': (resolve) => {
9
+ require(['./pc/ComplainWork'], resolve)
10
+ },
11
+ 'handplan-info': (resolve) => {
12
+ require(['./pc/HandplanInfo'], resolve)
13
+ }
14
+ }
15
+ exports.specialComp = specialComp
16
+
17
+
18
+
19
+
@@ -118,7 +118,7 @@ export default {
118
118
  payState: false,
119
119
  zfCode: false,
120
120
  f_out_trade_no: '',
121
- payTypes: [{label: '二维码支付', value: '二维码支付'},{label: '微信支付', value: '微信支付'}],
121
+ payTypes: this.$appdata.getParam('材料收费方式'),
122
122
  payType: '',
123
123
  payNumber: 0,
124
124
  button_state: false,
@@ -127,7 +127,6 @@ export default {
127
127
  },
128
128
  showFile: false,
129
129
  material: [],
130
- positions: this.$appdata.getParam('品名及规格'), // 获取材料名称
131
130
  charge: {
132
131
  payment_terms: [{f_payment_term: '', f_charge_money: '', f_amount_words: '', f_payment_method: ''}]
133
132
  }, // 收费内容
@@ -401,6 +400,7 @@ export default {
401
400
  this.payState= true
402
401
  await this.saveUserFile('save')
403
402
  }
403
+ this.$emit('close')
404
404
  },
405
405
  async saveUserFile(type) {
406
406
  for (let i = 0; i < this.material.length; i++) {
@@ -0,0 +1,619 @@
1
+ <template>
2
+ <div style="height: auto;width: 100%">
3
+ <div partial v-for="(index, row) in model.otherdetail">
4
+ <div class="row app-row">
5
+ <span style="text-align: center;font-weight: bolder;">类型{{ index + 1 }}信息</span>
6
+ <button
7
+ style="float: right"
8
+ class="btn btn-danger"
9
+ type="button"
10
+ @click.prevent="deleteChargeDetail(index)"
11
+ >删除
12
+ </button>
13
+ </div>
14
+ <div class="row app-row">
15
+ <div class="col-xs-4" style="margin-top: 5px;">
16
+ <img src="../../../assets/购气缴费.png" style="width: 20px;margin-bottom: 5px" alt="">
17
+ <label class="font text-left">收费类型</label>
18
+ </div>
19
+ <div class="col-xs-8">
20
+ <v-select placeholder='请选择'
21
+ :options='category.typeoptions'
22
+ :value.sync="row.f_brand_spec"
23
+ v-model="row.f_brand_spec"
24
+ close-on-select
25
+ @change="setTypename(row,index)"
26
+ width="78%"
27
+ value-single
28
+ style="margin-bottom: 15px"
29
+ ></v-select>
30
+ </div>
31
+ </div>
32
+ <div class="row app-row">
33
+ <div class="col-xs-4" style="margin-top: 5px;">
34
+ <img src="../../../assets/购气缴费.png" style="width: 20px;margin-bottom: 5px" alt="">
35
+ <label class="font text-left">品名规格</label>
36
+ </div>
37
+ <div class="col-xs-8">
38
+ <v-select placeholder='请选择'
39
+ :options='category.options'
40
+ :value.sync="row.f_typename"
41
+ v-model="row.f_typename"
42
+ close-on-select
43
+ @change="setTypenumber(row,index)"
44
+ style="margin-bottom: 10px;"
45
+ width="78%"
46
+ value-single
47
+ ></v-select>
48
+ </div>
49
+ </div>
50
+ <div class="row app-row">
51
+ <div class="col-xs-4" style="margin-top: 5px;">
52
+ <img src="../../../assets/购气缴费.png" style="width: 20px;margin-bottom: 5px" alt="">
53
+ <label class="font text-left">型&nbsp;&nbsp;号</label>
54
+ </div>
55
+ <div class="col-xs-8">
56
+ <v-select placeholder='请选择'
57
+ :options='category.children[row.f_typename] ? category.children[row.f_typename].options : []'
58
+ :value.sync="row.f_typenumber"
59
+ v-model="row.f_typenumber"
60
+ close-on-select
61
+ @change="setTypeprice(index)"
62
+ style="margin-bottom: 10px;"
63
+ width="78%"
64
+ value-single
65
+ ></v-select>
66
+ </div>
67
+ </div>
68
+
69
+ <div class="row app-row">
70
+ <div class="col-xs-4">
71
+ <img src="../../../assets/购气缴费.png" style="width: 20px;margin-bottom: 5px" alt="">
72
+ <label class="font text-left">单&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;价</label>
73
+ </div>
74
+ <div class="col-xs-8">
75
+ <input type="number" class="search_input input-font" v-model="row.f_unitprice"
76
+ @input.prevent="getcollection()"/>
77
+ </div>
78
+ </div>
79
+ <div class="row app-row">
80
+ <div class="col-xs-4">
81
+ <img src="../../../assets/购气缴费.png" style="width: 20px;margin-bottom: 5px" alt="">
82
+ <label class="font text-left">数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;量</label>
83
+ </div>
84
+ <div class="col-xs-8">
85
+ <input type="number" class="search_input input-font" v-model="row.f_number" @input.prevent="getcollection()"/>
86
+ </div>
87
+ </div>
88
+ </div>
89
+ <div partial>
90
+ <div class="row app-row" style="padding: 10px;display: flex;justify-content: space-around;">
91
+ <button type="button" class="btn btn-primary" @click="addChargeDetail">添加</button>
92
+ </div>
93
+ <div class="row app-row">
94
+ <div class="col-xs-4">
95
+ <img src="../../../assets/购气缴费.png" style="width: 20px;margin-bottom: 5px" alt="">
96
+ <label class="font text-left">&nbsp;收&emsp;&emsp;款</label>
97
+ </div>
98
+ <div class="col-xs-8">
99
+ <input type="number" class="search_input input-font" v-model="model.f_collection"/>
100
+ </div>
101
+ </div>
102
+ <div class="row app-row">
103
+ <div class="col-xs-4" style="margin-top: 5px;">
104
+ <img src="../../../assets/购气缴费.png" style="width: 20px;margin-bottom: 5px" alt="">
105
+ <label class="font text-left">收款方式</label>
106
+ </div>
107
+ <div class="col-xs-8">
108
+ <v-select placeholder='请选择'
109
+ :options='paytype'
110
+ :value.sync="model.f_payment"
111
+ v-model="model.f_payment"
112
+ close-on-select
113
+ style="margin-bottom: 10px;"
114
+ width="78%"
115
+ value-single
116
+ style="margin-bottom: 15px"
117
+ ></v-select>
118
+ </div>
119
+ </div>
120
+ <div class="row app-row" v-if="config.printType==='电子发票'">
121
+ <div class="col-xs-4">
122
+ <label for="isOpen" class="font text-left">是否开具发票</label>
123
+ </div>
124
+ <div class="col-xs-9">
125
+ <v-select v-model="model.isOpen"
126
+ style="width: 145%;"
127
+ placeholder='请选择'
128
+ :value.sync="model.isOpen"
129
+ :search="false"
130
+ :value-single="true"
131
+ :options='[{label:"是",value:"是"},{label:"否",value:"否"}]'
132
+ v-ref:isopen
133
+ close-on-select clear-button>
134
+ </v-select>
135
+ </div>
136
+ </div>
137
+ <div class="row app-row">
138
+ <div class="col-xs-4" style="margin-top: 5px;">
139
+ <img src="../../../assets/购气缴费.png" style="width: 20px;margin-bottom: 5px" alt="">
140
+ <label class="font text-left">&nbsp;备&emsp;&emsp;注</label>
141
+ </div>
142
+ <div class="clo-xs-8">
143
+ <input type="text" class="search_input input-font" v-model="model.f_comments" rows="1">
144
+ </div>
145
+ </div>
146
+ <!--<div class="row app-row">
147
+ <label class="font text-left">付款方式</label>
148
+ </div>-->
149
+ <div class="row text-center" style="margin-top: 25px;">
150
+ <button type="button"
151
+ id="determine"
152
+ class="btn btn-lg btn-font btn-color"
153
+ style="width: 28%;border-radius: 5px"
154
+ :disabled="isDetermine"
155
+ @click="confirm()">确认
156
+ </button>
157
+ <button type="button" class="btn btn-lg btn-font btn-color" style="width: 25%;" @click="clean()">取消</button>
158
+ </div>
159
+ </div>
160
+ </div>
161
+ </template>
162
+
163
+ <script>
164
+ import Vue from 'vue'
165
+ import {HttpResetClass} from "vue-client";
166
+
167
+ export default {
168
+ title: "购气缴费",
169
+ prop:['row'],
170
+
171
+ data() {
172
+ return {
173
+ isDetermine:false,
174
+ paytype: [{label: "现金缴费", value: "现金缴费"}, {label: "建行支付", value: "建行支付"}],
175
+ chargesize: [{label: "三通费", value: "三通费"}, {label: "报警器", value: "报警器"}, {label: "材料费", value: "材料费"}, {label: "其他费用", value: "其他费用"}],
176
+ shuclass: 'col-xs-12 col-sm-12 col-md-12 form-input-group mg8 css_div',
177
+ originalOptions: [], // 用于保存原始数据
178
+ category: {
179
+ typeoptions: [],
180
+ options: [],
181
+ children: {}
182
+ },
183
+ model: {
184
+ f_unitprice: 0,
185
+ f_number: 0,
186
+ f_collection: 0,//付款额
187
+ f_brand_spec: '',// 类型
188
+ f_typename: '',// 品名
189
+ f_typenumber: '',// 型号
190
+ f_comments: '',
191
+ f_payment: '建行支付',
192
+ otherdetail: [{
193
+ f_brand_spec: '',
194
+ f_typename: '',
195
+ f_typenumber: '',
196
+ f_unitprice: '',
197
+ f_number: ''
198
+ }]
199
+ },
200
+ config:{
201
+ printType:'普通收据'
202
+ },
203
+ filiale: '', // 支付的分公司
204
+ othercharge_id: ''
205
+
206
+ }
207
+ },
208
+ ready() {
209
+ //tag
210
+ this.paytype = this.$appdata.getParam('支付方式')
211
+ this.chargesize = this.$appdata.getParam('其他收费类型')
212
+ if(Vue.config.mobileReadMeter){
213
+ if(Vue.config.mobileReadMeter.EticketJson && Vue.config.mobileReadMeter.EticketJson.printType){
214
+ this.config.printType=Vue.config.mobileReadMeter.EticketJson.printType
215
+ }
216
+ }
217
+ this.loadOptions()
218
+ },
219
+ methods: {
220
+ loadOptions () {
221
+ const data = {
222
+ tablename: 't_material_management',
223
+ condition: `1=1 and f_orgid='${Vue.user.orgid}'`
224
+ }
225
+ this.$resetpost(this.$androidUtil.getProxyUrl() + '/af-telephone/rs/sql/tel_singleTable', {data}, {
226
+ resolveMsg: null,
227
+ rejectMsg: '获取数据失败'
228
+ }).then((res) => {
229
+ const categories = []
230
+ const types = []
231
+ for (let material of res.data) {
232
+ if (material.f_material_stype == '分类') {
233
+ categories.push(material)
234
+ } else if (material.f_material_stype == '型号') {
235
+ types.push(material)
236
+ }
237
+ }
238
+ this.category.typeoptions = []
239
+ const seen = new Set(); // 用于记录已出现的 f_material_type
240
+ for (let category of categories) {
241
+ const type = category.f_material_type;
242
+ if (!seen.has(type)) {
243
+ seen.add(type);
244
+ this.category.typeoptions.push({
245
+ label: type,
246
+ value: type
247
+ });
248
+ }
249
+ }
250
+ this.originalOptions = []
251
+ for (let category of categories) {
252
+ this.originalOptions.push({
253
+ key: category.f_material_type,
254
+ label: category.f_material_name,
255
+ value: category.f_material_name
256
+ })
257
+ }
258
+
259
+ this.category.children = {}
260
+ for (let category of categories) {
261
+ this.category.children[category.f_material_name] = {
262
+ options: [],
263
+ children: {}
264
+ }
265
+
266
+ for (let type of types) {
267
+ if (type.parent_id == category.id) {
268
+ this.category.children[category.f_material_name].options.push({
269
+ label: type.f_material_name,
270
+ value: type.f_material_name
271
+ })
272
+ this.category.children[category.f_material_name].children[type.f_material_name] = type
273
+ }
274
+ }
275
+ }
276
+ })
277
+ },
278
+ addChargeDetail () {
279
+ this.$set(`model.otherdetail[${this.model.otherdetail.length}]`, {
280
+ f_brand_spec: '',
281
+ f_typename: '',
282
+ f_typenumber: '',
283
+ f_unitprice: '',
284
+ f_number: '1'
285
+ })
286
+ console.log(JSON.stringify(this.model.otherdetail))
287
+ },
288
+ deleteChargeDetail (index) {
289
+ if (this.model.otherdetail.length > 1) {
290
+ this.model.otherdetail.splice(index, 1)
291
+ this.getcollection()
292
+ }
293
+ },
294
+ getcollection () {
295
+ let money = 0
296
+ let flag = true
297
+ this.model.otherdetail.forEach((item) => {
298
+ if (!item.f_number || item.f_number == '0') flag = false
299
+ if (!item.f_unitprice || item.f_unitprice == '0') flag = false
300
+ if (item.f_unitprice && item.f_number) {
301
+ money += ((item.f_unitprice - 0) * (item.f_number - 0)) - 0
302
+ } else {
303
+ flag = false
304
+ this.model.f_collection = 0
305
+ }
306
+ })
307
+ if (money != 0) {
308
+ console.log(money)
309
+ this.model.f_collection = money.toFixed(2)
310
+ }
311
+ if (!flag) this.model.f_collection = ''
312
+ },
313
+ setTypeprice (val) {
314
+ console.log('单价变化:', val)
315
+ if (this.model.otherdetail[val] && this.model.otherdetail[val].f_typenumber) {
316
+ if(this.model.otherdetail[val].f_typename){
317
+ const materialName = this.model.otherdetail[val].f_typename;
318
+ const typeNumber = this.model.otherdetail[val].f_typenumber;
319
+ if(this.category.children[materialName] &&
320
+ this.category.children[materialName].children[typeNumber]) {
321
+ this.model.otherdetail[val].f_unitprice = this.category.children[materialName].children[typeNumber].f_material_price;
322
+ }
323
+ }
324
+ }
325
+ },
326
+ setTypenumber (val, index) {
327
+ this.model.otherdetail[index].f_typenumber = undefined
328
+ this.model.otherdetail[index].f_unitprice = ''
329
+ },
330
+ materialChange (typename) {
331
+ this.category.options=[]
332
+ if(!typename || typename === ''){
333
+ this.category.options=[]
334
+ }else{
335
+ for (let i = 0; i < this.originalOptions.length; i++) {
336
+ if (this.originalOptions[i].key === typename) {
337
+ this.category.options.push({
338
+ label: this.originalOptions[i].label,
339
+ value: this.originalOptions[i].value
340
+ })
341
+ }
342
+ }
343
+ }
344
+ },
345
+ async setTypename (val, index) {
346
+ console.log('111', val)
347
+ this.model.otherdetail[index].f_typenumber = ''
348
+ this.materialChange(val.f_brand_spec)
349
+ this.model.otherdetail[index].f_unitprice = ''
350
+ },
351
+ myverify () {
352
+ let flag = false
353
+ for(let i = 0; i < this.model.otherdetail.length; i++) {
354
+ console.log('===========>', this.model.otherdetail[i])
355
+ if (!this.model.otherdetail[i].f_brand_spec || this.model.otherdetail[i].f_brand_spec == '') {
356
+ this.$showMessage(`类型${i + 1}请选择收费类型`)
357
+ return flag
358
+ }
359
+ if (!this.model.otherdetail[i].f_unitprice || this.model.otherdetail[i].f_unitprice <= 0) {
360
+ this.$showMessage(`类型${i + 1}单价异常!`)
361
+ return flag
362
+ }
363
+ if (!this.model.otherdetail[i].f_number || this.model.otherdetail[i].f_number <= 0) {
364
+ this.$showMessage(`类型${i + 1}数量异常!`)
365
+ return flag
366
+ }
367
+ }
368
+ if (!this.model.f_collection || this.model.f_collection <= 0) {
369
+ this.$showMessage('收款异常!')
370
+ return flag
371
+ }
372
+ if (!this.model.f_payment || this.model.f_payment == '') {
373
+ this.$showMessage('请选择收费类型!')
374
+ return flag
375
+ }
376
+ flag = true
377
+ return flag
378
+ },
379
+ f_collection() {
380
+ //tag;
381
+ //tag;
382
+ return this.model.f_collection = this.model.f_number * this.model.f_unitprice;
383
+ },
384
+ async confirm() {
385
+ //tag
386
+ if (this.myverify()) {
387
+ this.$showMessage(`确定对客户${this.row.f_user_name}进行其他收费吗?`, ['confirm', 'cancel']).then(async (res) => {
388
+ if (res === 'confirm') {
389
+ if (this.model.f_payment == '建行支付') {
390
+ this.isDetermine = true
391
+ // 去支付界面
392
+ let _this = this
393
+ let pardate = {
394
+ _this: _this,
395
+ title: '二维码收款',
396
+ safe: true
397
+ }
398
+ _this.$dispatch('gotoson', pardate)
399
+ //tag
400
+ let parameter = {
401
+ money: this.model.f_collection
402
+ }
403
+ //tag)
404
+ _this.$goto('create_qrcode', {row: parameter}, 'self', _this.payback)
405
+ } else {
406
+ this.isDetermine = true
407
+ //tag
408
+ this.saveCharges()
409
+
410
+ }
411
+ }
412
+ })
413
+ }
414
+
415
+ },
416
+ payback(msg) {
417
+ //tag
418
+ //tag
419
+ if (msg) {
420
+ //tag
421
+ this.model.f_serial_id = msg
422
+ this.saveCharges()
423
+ }else {
424
+ //tag
425
+ this.$showMessage('支付失败!')
426
+ }
427
+ },
428
+ saveCharges () {
429
+ //tag
430
+ //tag
431
+ let data = {
432
+ f_userfiles_id: this.row.f_userfiles_id, // id
433
+ f_user_id: this.row.f_user_id,
434
+ f_userinfo_id: this.row.f_userinfo_id,
435
+ f_collection: this.model.f_collection,
436
+ f_comments: this.model.f_comments,
437
+ f_payment: this.model.f_payment,
438
+ f_user_name: this.row.f_user_name,
439
+ f_depname: Vue.user.deps,
440
+ f_depid : Vue.user.depids,
441
+ f_orgid : Vue.user.orgid,
442
+ f_orgname : Vue.user.orgs,
443
+ f_operator: Vue.user.name,
444
+ f_operatorid: Vue.user.id,
445
+ otherdetail: this.model.otherdetail
446
+ }
447
+ //tag)
448
+ let http4 = new HttpResetClass()
449
+ // http4.load('POST',`/af-telephone/rs/logic/wxthirdothercharge`, data, {}
450
+ http4.load('POST',`${this.$androidUtil.getProxyUrl()}/api/af-revenue/logic/wxthirdothercharge`, data, {}
451
+ ).then(res => {
452
+ //tag
453
+ //tag)
454
+ this.othercharge_id = res
455
+ if (res) {
456
+ if (this.config.printType === '电子发票' && this.model.isOpen === '是') {
457
+ this.$resetpost(`${this.$androidUtil.getProxyUrl()}/invoice/rs/logic/getInvoice`, {
458
+ id:res.data.othercharge_id,
459
+ f_charge_type:'其他收费',
460
+ loginInfo: {
461
+ operator:Vue.user.name,
462
+ operator_id: Vue.user.id,
463
+ org_id: Vue.user.orgid,
464
+ orgname: Vue.user.orgs,
465
+ dep_id: Vue.user.depids,
466
+ depname: Vue.user.deps
467
+ },
468
+ f_invoice_type:0
469
+ },{aoteEncrypt:'无',encryKey:'无'}).then((res) => {
470
+ this.$showMessage('电子票开具成功,请联系用户使用微信公众号查看发票', ['confirm']).then((res) => {
471
+ console.log("===res,开票失败",res)
472
+ this.$dispatch('confirm')
473
+ })
474
+ }).catch(e=>{
475
+ this.$showMessage('缴费成功,电子票开具失败,请联系用户使用微信公众号尝试开票,或者前往营业厅!', ['confirm']).then((res) => {
476
+ console.log("===e,开票失败",e)
477
+ this.$dispatch('confirm')
478
+ })
479
+ })
480
+ }else {
481
+ this.$showMessage('购气缴费成功!是否打印小票?', ['confirm', 'cancel']).then((res) => {
482
+ if (res === 'confirm') {
483
+ this.PrintReceipt()
484
+ }else {
485
+ this.$dispatch('confirm')
486
+ // //tag
487
+ // this.$back(this.othercharge_id)
488
+ }
489
+ })
490
+ }
491
+ }else {
492
+ this.$showMessage('购气缴费失败!!!')
493
+ // 是否进行退费
494
+ }
495
+ })
496
+ },
497
+ PrintReceipt() {
498
+ //tag
499
+ // 清空打印内容
500
+ let printContent = []
501
+ // 抬头
502
+ var comName = '梅河口天然气'
503
+ printContent.push({type: 3, text: comName, fontsize: 3, isbold: true, align: 'center'})
504
+ printContent.push({type: 3, text: '手 持 POS 其 他 收 费 凭 证', fontsize: 3, isbold: true, align: 'center'})
505
+ printContent.push({type: 3, text: '----------------------------', fontsize: 3, isbold: true, align: 'center'})
506
+ // 小票信息
507
+ printContent.push({type: 3, text: '用户编号:' + this.row.f_userinfo_code, fontsize: 2, isbold: true, align: 'left'})
508
+ // 卡表用户显示卡号
509
+ if (this.row.f_meter_type !== '机表' && this.row.f_meter_type !== '物联网表') {
510
+ printContent.push({type: 3, text: '用户卡号:' + this.row.f_card_id, fontsize: 2, isbold: true, align: 'left'})
511
+ }
512
+ printContent.push({type: 3, text: '用户姓名:' + this.row.f_user_name, fontsize: 2, isbold: true, align: 'left'})
513
+ printContent.push({type: 3, text: '用户地址:' + this.row.f_address, fontsize: 2, isbold: true, align: 'left'})
514
+ // 机表物联网表显示购买金额
515
+ printContent.push({type: 3, text: '收费类型:'+ this.model.f_brand_spec , fontsize: 2, isbold: true, align: 'left'})
516
+ printContent.push({type: 3, text: '本次缴费:' + this.model.f_collection + '元', fontsize: 2, isbold: true, align: 'left'})
517
+ printContent.push({type: 3, text: '大写金额:' + Vue.PosUtil.convertCurrency(this.model.f_collection), fontsize: 2, isbold: true, align: 'left'})
518
+ printContent.push({type: 3, text: '支付日期:' + Vue.PosUtil.getNowDate('yyyy-MM-dd'), fontsize: 2, isbold: true, align: 'left'})
519
+ printContent.push({type: 3, text: '支付流水号:' + this.model.f_serial_id, fontsize: 2, isbold: true, align: 'left'})
520
+ printContent.push({type: 3, text: '----------------------------', fontsize: 3, isbold: true, align: 'center'})
521
+ printContent.push({type: 3, text: '', fontsize: 3, isbold: true, align: 'center'})
522
+ // 走纸
523
+ printContent.push({type: 4, value: 5, unit: 'pixel'})
524
+ // 打印
525
+ let print = HostApp.print(JSON.stringify(printContent))
526
+ if (print.code === 200) {
527
+ this.$showMessage('打印成功!是否返回上一层?', ['confirm', 'cancel']).then((res) => {
528
+ if (res === 'confirm') {
529
+ //tag
530
+ this.$dispatch('confirm')
531
+ // //tag
532
+ // this.$back(this.othercharge_id)
533
+ }
534
+ })
535
+
536
+ }else {
537
+ this.$showMessage('打印失败!请检查POS纸张、电量等,确认无误点击确认再次打印', ['confirm', 'cancel']).then((res) => {
538
+ if (res === 'confirm') {
539
+ //tag
540
+ let print2 = HostApp.print(JSON.stringify(printContent))
541
+ if (print2.code === 200) {
542
+ this.$showMessage('打印成功!')
543
+ this.$dispatch('confirm')
544
+ // //tag
545
+ // this.$back(this.othercharge_id)
546
+ }else {
547
+ this.$showMessage('打印失败!')
548
+ }
549
+ }
550
+ })
551
+ }
552
+ },
553
+ clean() {
554
+ //tag
555
+ this.model.f_brand_spec = '请选择';
556
+ this.model.f_payment = '微信支付';
557
+ this.model.f_number = '';
558
+ this.model.f_unitprice = '';
559
+ this.model.f_collection = '';
560
+ this.model.f_comments = '';
561
+ },
562
+ },
563
+ computed:{
564
+ specification (){
565
+ return this.$appdata.getParam(this.model.f_brand_spec)?this.$appdata.getParam(this.model.f_brand_spec):[]
566
+ },
567
+ modeltype (){
568
+ return this.$appdata.getParam(this.model.f_typename)?this.$appdata.getParam(this.model.f_typename):[]
569
+ }
570
+ },
571
+ watch: {
572
+ 'model.f_number' (val) {
573
+ if (val) {
574
+ //tag;
575
+ //tag;
576
+ this.model.f_collection = this.model.f_number * this.model.f_unitprice;
577
+ }
578
+ },
579
+ 'model.f_unitprice' (val) {
580
+ if (val) {
581
+ //tag;
582
+ //tag;
583
+ this.model.f_collection = this.model.f_number * this.model.f_unitprice;
584
+ }
585
+ }
586
+ }
587
+ }
588
+
589
+ </script>
590
+
591
+ <style scoped>
592
+ .app-row {
593
+ background-color: white;
594
+ padding: 10px 10px 0 10px;
595
+ border-bottom: 1px solid rgba(235, 235, 235, 0.7);
596
+ }
597
+ .search_input {
598
+ border: 0;
599
+ outline: none;
600
+ }
601
+ .font{
602
+ font: 15px PingFang-SC-Medium;
603
+ color: #666666;
604
+ }
605
+ .input-font{
606
+ font: 15px PingFang-SC-Medium;
607
+ color: #333333;
608
+ }
609
+ .btn-color{
610
+ background-color: #FFFFFF;
611
+ border-radius: 10px ;
612
+ border: 1px solid #499EDF;
613
+ }
614
+ .btn-font{
615
+ font:600 16px PingFang-SC-Bold;
616
+ color: #499EDF;
617
+ }
618
+ </style>
619
+
@@ -3,6 +3,7 @@ let specialComp={
3
3
  'fault-all': (resolve) => { require(['./android/FaultAll'], resolve) },
4
4
  'repair-first': (resolve) => { require(['./android/RepairFirstV'], resolve) },
5
5
  'repair-orderT': (resolve) => { require(['./android/RepairOrderT'], resolve) },
6
+ 'other_charge': (resolve) => { require(['./android/Othercharge'], resolve) },
6
7
  }
7
8
  exports.specialComp = specialComp
8
9