sale-client 3.5.289 → 3.5.291

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,5 +1,5 @@
1
1
  var path = require('path')
2
- const [localUrl, serverRul] = ['http://192.168.50.4:8400/', 'http://192.168.50.4:8400/']
2
+ const [localUrl, serverRul] = ['https://qnjtkf.cn:7400/#', 'https://qnjtkf.cn:7400/#']
3
3
  var merge = require('webpack-merge')
4
4
  var baseConfig = require('./webpack.dev.conf')
5
5
  var devConfig = {
@@ -20,6 +20,9 @@ var devConfig = {
20
20
  '/rs/file': {
21
21
  target: serverRul
22
22
  },
23
+ '/invoice': {
24
+ target: serverRul
25
+ },
23
26
  // 查找资源服务数据
24
27
  '/rs/search': {
25
28
  target: serverRul
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "3.5.289",
3
+ "version": "3.5.291",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -74,7 +74,7 @@
74
74
  "karma-sourcemap-loader": "^0.3.7",
75
75
  "karma-spec-reporter": "0.0.31",
76
76
  "karma-webpack": "^2.0.2",
77
- "ldap-clients": "3.0.62",
77
+ "ldap-clients": "3.0.48",
78
78
  "less": "^2.7.3",
79
79
  "manage-client": "3.1.8-88",
80
80
  "mkdirp": "^0.5.1",
@@ -89,7 +89,7 @@
89
89
  "sinon-chai": "^2.8.0",
90
90
  "style": "0.0.3",
91
91
  "style-loader": "^0.20.3",
92
- "system-clients": "3.2.64",
92
+ "system-clients": "3.2.55",
93
93
  "url-loader": "^0.5.7",
94
94
  "vue-client": "1.24.79",
95
95
  "vue-clipboard2": "0.3.1",
@@ -14,7 +14,6 @@
14
14
  </template>
15
15
 
16
16
  <script>
17
- import {HttpResetClass} from 'vue-client'
18
17
  export default {
19
18
  title: '气损收费',
20
19
  name: 'gasLossManage',
@@ -22,8 +21,6 @@
22
21
  return {
23
22
  showupload: false,
24
23
  showAddMssage: false,
25
-
26
-
27
24
  showItem: false
28
25
  }
29
26
  },
@@ -7,7 +7,6 @@
7
7
  <div style="height:550px;overflow-y: auto;">
8
8
  <div style="margin-top:10px;" class="auto row" v-for="row in model.gaslossdetail">
9
9
  <div class="panel panel-primary datapanel" style="background-color: #f4f6f8">
10
- <!-- <div class="auto row">-->
11
10
  <div class="col-sm-4 form-group" :class="{'has-success':row.f_type,'has-error':!row.f_type}">
12
11
  <label for="f_brand_spec" class="font_normal_body" title="参数名称:气损分类">气损分类</label>
13
12
  <input v-show="false" v-model="row.f_type" v-validate:f_type='{required: true }'>
@@ -50,107 +49,89 @@
50
49
  <button type="button" class="glyphicon glyphicon-minus btn-danger" @click.stop="delthisdetail($index)"></button>
51
50
  <button type="button" class="glyphicon glyphicon-plus btn-success" @click.stop="addadetail()"></button>
52
51
  </div>
53
- <!-- </div>-->
54
52
  </div>
55
53
  </div>
56
54
  </div>
57
- <div class=" panel panel-primary datapanel" style="height:260px">
58
- <div class="row">
59
- <div class="col-sm-4 form-group">
60
- <label class=" font_normal_body">&emsp;客户编号</label>
61
- <input class="input_search" style="width:60%"
62
- v-model="model.f_userinfo_code"
63
- @blur="codeChange()"
64
- placeholder="客户编号">
65
- </div>
66
- <div class="col-sm-4 form-group" :class="{'has-success':model.f_charge_person,'has-error':!model.f_charge_person}">
67
- <label class=" font_normal_body">&emsp;缴&nbsp;费&nbsp;人&nbsp;</label>
68
- <input class="input_search" style="width:60%"
69
- v-validate:f_charge_person='{required: true }'
70
- v-model="model.f_charge_person"
71
- placeholder="缴费人">
72
- </div>
73
- <div class="col-sm-4 form-group" :class="{'has-success':model.f_charge_phone,'has-error':!model.f_charge_phone}">
74
- <label class=" font_normal_body">&emsp;联系电话</label>
75
- <input class="input_search" style="width:60%"
76
- v-validate:f_charge_phone='{required: true }'
77
- v-model="model.f_charge_phone"
78
- placeholder="联系电话">
79
- </div>
80
- <div class="col-sm-12 form-group" :class="{'has-success':model.f_charge_address,'has-error':!model.f_charge_address}">
81
- <label class=" font_normal_body">缴费人地址</label>
82
- <input class="input_search" style="width:89%"
83
- v-validate:f_charge_address='{required: true }'
84
- v-model="model.f_charge_address"
85
- placeholder="缴费人地址">
86
- </div>
87
- <div class="col-sm-4 form-group">
88
- <label for="f_paytype" class="font_normal_body" title="参数名称:付款方式">&emsp;收款方式</label>
89
- <v-select id="f_payment"
90
- v-model="f_payment"
91
- placeholder='请选择'
92
- :value.sync="model.f_payment"
93
- :value-single="true"
94
- :options='paytype'
95
- close-on-select clear-button>
96
- </v-select>
97
- </div>
98
- <div class="col-sm-4 form-group">
99
- <label for="f_print" class="font_normal_body">&emsp;打印格式</label>
100
- <v-select id="print"
101
- v-model="model.f_print"
102
- placeholder='请选择'
103
- :value.sync="model.f_print"
104
- :options='printstyle'
105
- :value-single="true"
106
- close-on-select clear-button>
107
- </v-select>
108
- </div>
109
- <div class="col-sm-4 auto">
110
- <label for="f_collection" style="text-align:right;"><font size="6px" style="font-weight:bold;color:darkred">收&emsp;款:{{model.f_collection}}</font></label>
111
- </div>
112
- <div class="col-sm-9 form-group">
113
- <label class=" font_normal_body">&emsp;备&emsp;&emsp;注</label>
114
- <input class="input_search" style="width:70%"
115
- v-model="model.f_comments"
116
- placeholder="备注">
117
- </div>
118
- <div style="text-align:right;height: 25%;">
119
- <button class="button_search btn-gn" type="button" @click="confirm()" :disabled='!$v.valid || validateOk'>确认</button>
120
- <button class="button_clear btn-gn" type="button" @click="clean()">取消</button>
121
- </div>
122
- </div>
123
-
124
- <!-- <payment-code-button :clickable="!$v.valid || validateOk"-->
125
- <!-- :payment.sync="model.f_payment" :payment-data="paytype"-->
126
- <!-- @confirm-payment="confirm()">-->
127
- <!-- </payment-code-button>-->
128
-
129
-
55
+ </div>
56
+ <div class=" panel panel-primary datapanel" style="height:260px">
57
+ <div class="row">
58
+ <div class="col-sm-4 form-group">
59
+ <label class=" font_normal_body">&emsp;客户编号</label>
60
+ <input class="input_search" style="width:60%"
61
+ v-model="model.f_userinfo_code"
62
+ @blur="codeChange()"
63
+ placeholder="客户编号">
130
64
  </div>
131
- </div>
132
-
65
+ <div class="col-sm-4 form-group" :class="{'has-success':model.f_charge_person,'has-error':!model.f_charge_person}">
66
+ <label class=" font_normal_body">&emsp;缴&nbsp;费&nbsp;人&nbsp;</label>
67
+ <input class="input_search" style="width:60%"
68
+ v-validate:f_charge_person='{required: true }'
69
+ v-model="model.f_charge_person"
70
+ placeholder="缴费人">
71
+ </div>
72
+ <div class="col-sm-4 form-group" :class="{'has-success':model.f_charge_phone,'has-error':!model.f_charge_phone}">
73
+ <label class=" font_normal_body">&emsp;联系电话</label>
74
+ <input class="input_search" style="width:60%"
75
+ v-validate:f_charge_phone='{required: true }'
76
+ v-model="model.f_charge_phone"
77
+ placeholder="联系电话">
78
+ </div>
79
+ <div class="col-sm-12 form-group" :class="{'has-success':model.f_charge_address,'has-error':!model.f_charge_address}">
80
+ <label class=" font_normal_body">缴费人地址</label>
81
+ <input class="input_search" style="width:89%"
82
+ v-validate:f_charge_address='{required: true }'
83
+ v-model="model.f_charge_address"
84
+ placeholder="缴费人地址">
85
+ </div>
86
+ <div class="col-sm-4 form-group">
87
+ <label for="f_paytype" class="font_normal_body" title="参数名称:付款方式">&emsp;收款方式</label>
88
+ <v-select id="f_payment"
89
+ v-model="f_payment"
90
+ placeholder='请选择'
91
+ :value.sync="model.f_payment"
92
+ :value-single="true"
93
+ :options='paytype'
94
+ close-on-select clear-button>
95
+ </v-select>
96
+ </div>
97
+ <div class="col-sm-4 form-group">
98
+ <label for="f_print" class="font_normal_body">&emsp;打印格式</label>
99
+ <v-select id="print"
100
+ v-model="model.f_print"
101
+ placeholder='请选择'
102
+ :value.sync="model.f_print"
103
+ :options='printstyle'
104
+ :value-single="true"
105
+ close-on-select clear-button>
106
+ </v-select>
107
+ </div>
108
+ <div class="col-sm-4 auto">
109
+ <label for="f_collection" style="text-align:right;"><font size="6px" style="font-weight:bold;color:darkred">收&emsp;款:{{model.f_collection}}</font></label>
110
+ </div>
111
+ <div class="col-sm-9 form-group">
112
+ <label class=" font_normal_body">&emsp;备&emsp;&emsp;注</label>
113
+ <input class="input_search" style="width:70%"
114
+ v-model="model.f_comments"
115
+ placeholder="备注">
116
+ </div>
117
+ <div style="text-align:right;height: 25%;">
118
+ <button class="button_search btn-gn" type="button" @click="checkInvoiceMsg()" :disabled='!$v.valid || validateOk'>确认</button>
119
+ <button class="button_clear btn-gn" type="button" @click="clean()">取消</button>
120
+ </div>
121
+ </div>
122
+ </div>
133
123
  </form>
134
124
  <validate-bill v-if="hasValidateBill" :data="model" @validate-bill="validateBill"></validate-bill>
135
125
  <print-bill :show="print" :data='model' :bill-config='config' :bill-data='billData' v-on:toggle="close" @printok="printok" v-ref:printbill></print-bill>
136
- <!-- <print-other-charge-bill :show="print" v-ref:printbill :row='row' :logic='model' v-on:success="close" v-on:toggle="close"></print-other-charge-bill> -->
137
- <!-- <tax-other-bill :show="taxprint" v-ref:taxprintbill :row='row' :logic='model' v-on:success="close" v-on:toggle="close"></tax-other-bill> -->
138
-
126
+ <ticket-print :show="eticket_show" @toggle="eticket_toggle" v-ref:eticketbill></ticket-print>
127
+ <eticket-modal :show="eticket_msg" @close-modal-show="eticket_msg = false" :row="model" @confirm="confirm"></eticket-modal>
139
128
  </validator>
140
-
141
129
  </div>
142
-
143
130
  <payment-code v-ref:paymentcode :payment="model.f_payment" :money="model.f_collection"></payment-code>
144
-
145
131
  </div>
146
- <!-- <div class="auto">-->
147
- <!-- <upload isremark="true" fusetype="气损收费"></upload>-->
148
- <!-- </div>-->
149
132
  </template>
150
133
 
151
-
152
134
  <script>
153
-
154
135
  import {HttpResetClass} from 'vue-client'
155
136
  import Vue from 'vue'
156
137
 
@@ -158,35 +139,28 @@
158
139
  try {
159
140
  // 加入扫码盒付款码支付流水号
160
141
  self.model.f_serial_id = self.$refs.paymentcode.paymentCodeReturnData.f_out_trade_no
161
- // let resid = await self.$LogicService.otherCharge(self.model, self.row)
162
- self.model.f_bill_style=self.model.f_print
142
+ self.model.f_bill_style = self.model.f_print
163
143
  let http = new HttpResetClass()
164
- self.model.f_describe=`${Vue.$login.f.name}对${self.model.f_charge_person}进行气损收费`
144
+ self.model.f_describe = `${Vue.$login.f.name}对${self.model.f_charge_person}进行气损收费`
165
145
  let resid = await http.load('POST', 'rs/logic/gasLoss', self.model, {resolveMsg: '气损收费成功', rejectMsg: '气损收费失败'})
166
146
  console.log('f_print:', resid)
167
- if (true) {
168
- if (self.model.f_print != '电子发票') {
169
- if (self.config.hasBillManage) {
170
- self.model.id = resid.data
171
- self.model.f_bill_type = '其他费用'
172
- self.model.f_bill_style = self.model.f_print[0]
173
- self.print = true
174
- } else {
175
- self.model.id = resid.data
176
- self.print = true
177
- }
178
- } else if (self.model.f_print === '国税发票') {
179
- // TODO
180
- self.clean()
181
- self.$dispatch('refresh')
182
- } else if (self.model.f_print === '电子发票') {
183
- self.$CommonService.openEticket(resid, '其他费用')
184
- self.clean()
185
- self.$dispatch('refresh')
147
+ if (self.model.f_print !== '电子发票') {
148
+ if (self.config.hasBillManage) {
149
+ self.model.id = resid.data
150
+ self.model.f_bill_type = '其他费用'
151
+ self.model.f_bill_style = self.model.f_print[0]
152
+ self.print = true
153
+ } else {
154
+ self.model.id = resid.data
155
+ self.print = true
186
156
  }
187
- } else {
157
+ } else if (self.model.f_print === '国税发票') {
158
+ // TODO
188
159
  self.clean()
189
160
  self.$dispatch('refresh')
161
+ } else if (self.model.f_print === '电子发票') {
162
+ self.eticket_show = true
163
+ await self.$refs.eticketbill.openETicket([resid.data], self.model, '气损收费')
190
164
  }
191
165
  } catch (error) {
192
166
  self.$showAlert(error, 'danger', 0)
@@ -195,9 +169,9 @@
195
169
  }
196
170
 
197
171
  let asyncGasLoss = async function (self) {
198
- try{
172
+ try {
199
173
  await self.$getConfig(self, 'gasLossCharge')
200
- } catch(error){
174
+ } catch (error) {
201
175
  console.log('无配置文件')
202
176
  }
203
177
  self.model.f_print = self.config.printType
@@ -219,10 +193,13 @@
219
193
  payment: '现金缴费', // 付款方式
220
194
  f_type: '', // 气损分类
221
195
  f_loss_type: '' // 气损类型
222
-
223
196
  },
197
+ eticket_msg: false,
198
+ eticket_show: false,
199
+ invoice_is_pax: '征税',
200
+ is_pax: [{label: '征税', value: '征税'}, {label: '不征税', value: '不征税'}],
224
201
  model: {
225
- f_userinfo_id:null,
202
+ f_userinfo_id: null,
226
203
  f_collection: 0,
227
204
  f_payment: '',
228
205
  f_bill_style: '',
@@ -239,7 +216,15 @@
239
216
  f_depname: Vue.$login.f.deps,
240
217
  f_operat_type: '气损收费',
241
218
  f_print: '',
242
- gaslossdetail:[{}]
219
+ gaslossdetail: [{}],
220
+ f_user_name: '',
221
+ f_user_phone: '',
222
+ f_address: '',
223
+ f_paper_name: '',
224
+ f_paper_account: '',
225
+ f_idnumber: '',
226
+ f_taxpayer_id: '',
227
+ f_address_phone: ''
243
228
  },
244
229
  print: false,
245
230
  taxprint: false,
@@ -263,36 +248,64 @@
263
248
  },
264
249
 
265
250
  methods: {
266
- async codeChange(){
267
- if(this.model.f_userinfo_code){
251
+ checkInvoiceMsg () {
252
+ if (this.model.f_print === '电子发票') {
253
+ if (!this.model.f_taxpayer_id) {
254
+ this.model.f_taxpayer_id = this.model.f_idnumber
255
+ }
256
+ if (!this.model.f_paper_name) {
257
+ this.model.f_paper_name = this.model.f_user_name
258
+ }
259
+ if (!this.model.f_address_phone) {
260
+ this.model.f_address_phone = this.model.f_address + ' ' + this.model.f_user_phone
261
+ }
262
+ this.eticket_msg = true
263
+ } else {
264
+ this.confirm()
265
+ }
266
+ },
267
+ eticket_toggle () {
268
+ this.eticket_show = false
269
+ this.$dispatch('success')
270
+ },
271
+ async codeChange () {
272
+ this.model.f_userinfo_code = this.model.f_userinfo_code.trim()
273
+ if (this.model.f_userinfo_code) {
268
274
  let http = new HttpResetClass()
269
275
  let res = await http.load('POST', 'rs/sql/singleTable_OrderBy', {
270
276
  data: {
271
- items: 'u.f_userinfo_id,u.f_user_name,u.f_user_phone,a.f_address',
277
+ items: 'u.f_userinfo_id,u.f_user_name,u.f_user_phone,a.f_address,u.f_paper_name,u.f_paper_account,u.f_idnumber,u.f_taxpayer_id,u.f_address_phone',
272
278
  tablename: 't_userinfo u left join t_user_address a on u.f_userinfo_id = a.f_userinfo_id',
273
279
  condition: `u.f_userinfo_code = '${this.model.f_userinfo_code}' and u.f_user_state = '正常'`,
274
280
  orderitem: 'u.f_userinfo_id desc'
275
281
  }
276
282
  }, {resolveMsg: null, rejectMsg: '获取用户信息失败'})
277
- if(res.data.length==0){
278
- this.$showAlert('该客户编号不存在,请重新输入','warning',3000)
279
- this.model.f_userinfo_code=null
280
- }else{
281
- this.model.f_userinfo_id=res.data[0].f_userinfo_id
282
- this.model.f_charge_person=res.data[0].f_user_name
283
- this.model.f_charge_phone=res.data[0].f_user_phone
284
- this.model.f_charge_address=res.data[0].f_address
283
+ if (res.data.length == 0) {
284
+ this.$showAlert('该客户编号不存在,请重新输入', 'warning', 3000)
285
+ this.model.f_userinfo_code = null
286
+ } else {
287
+ this.model.f_userinfo_id = res.data[0].f_userinfo_id
288
+ this.model.f_charge_person = res.data[0].f_user_name
289
+ this.model.f_charge_phone = res.data[0].f_user_phone
290
+ this.model.f_charge_address = res.data[0].f_address
291
+ this.model.f_user_name = res.data[0].f_user_name
292
+ this.model.f_user_phone = res.data[0].f_user_phone
293
+ this.model.f_address = res.data[0].f_address
294
+ this.model.f_paper_name = res.data[0].f_paper_name
295
+ this.model.f_paper_account = res.data[0].f_paper_account
296
+ this.model.f_idnumber = res.data[0].f_idnumber
297
+ this.model.f_taxpayer_id = res.data[0].f_taxpayer_id
298
+ this.model.f_address_phone = res.data[0].f_address_phone
285
299
  }
286
-
287
300
  }
288
301
  },
289
- async clean(){
302
+ async clean () {
290
303
  this.model = {}
291
304
  await this.$nextTick()
292
- this.model={
305
+ this.model = {
306
+ f_userinfo_id: null,
293
307
  f_collection: 0,
294
- f_payment: this.config.payment,
295
- f_print: this.config.printType,
308
+ f_payment: '',
296
309
  f_bill_style: '',
297
310
  f_comments: '',
298
311
  f_charge_person: '',
@@ -306,16 +319,25 @@
306
319
  f_depid: Vue.$login.f.depids,
307
320
  f_depname: Vue.$login.f.deps,
308
321
  f_operat_type: '气损收费',
309
- gaslossdetail:[{}]
322
+ f_print: '',
323
+ gaslossdetail: [{}],
324
+ f_user_name: '',
325
+ f_user_phone: '',
326
+ f_address: '',
327
+ f_paper_name: '',
328
+ f_paper_account: '',
329
+ f_idnumber: '',
330
+ f_taxpayer_id: '',
331
+ f_address_phone: ''
310
332
  }
311
333
  },
312
334
  async confirm () {
335
+ this.eticket_msg = false
313
336
  // // 先调用付款码支付组件流程
314
337
  let ss = await this.$refs.paymentcode.flowPath()
315
338
  this.$refs.paymentcode.paymentCodeShow = false
316
339
  console.log('付款码操作返回', ss)
317
340
  if (!ss.result) return
318
-
319
341
  gasLossGen(this)
320
342
  },
321
343
  close () {
@@ -350,7 +372,7 @@
350
372
  this.model.gaslossdetail.splice(index, 1)
351
373
  this.getcollection()
352
374
  }
353
- },
375
+ }
354
376
  },
355
377
  computed: {
356
378
  }
@@ -43,12 +43,9 @@ export default {
43
43
  }
44
44
  },
45
45
  ready () {
46
- let sql = 'singleTable_OrderBy'
46
+ let sql = 'getBlack'
47
47
  let condition = {
48
- items: '*',
49
- tablename: 't_userinfo',
50
- condition: ' f_userinfo_id = ' + this.data.f_userinfo_id,
51
- orderitem: 'f_userinfo_id'
48
+ condition: ' tr.id = ' + this.data.id
52
49
  }
53
50
  this.$info(`加载数据中..., sql:${sql}`)
54
51
  this.$refs.pv.load('rs/logic/getOneData', {data: {sql: sql, params: condition}}).then((a) => {
@@ -45,6 +45,7 @@ export default {
45
45
  id: obj.f_eticket_id,
46
46
  f_bill_code: obj.f_bill_code ? obj.f_bill_code : undefined,
47
47
  f_bill_number: obj.f_bill_number ? obj.f_bill_number : undefined,
48
+ f_fpqqlsh: obj.fpqqlsh ? obj.fpqqlsh : undefined,
48
49
  f_jym: obj.f_jym ? obj.f_jym : undefined,
49
50
  f_bill_url: obj.f_bill_url ? obj.f_bill_url : undefined,
50
51
  f_red_url: obj.f_red_url ? obj.f_red_url : undefined,
@@ -132,12 +133,11 @@ export default {
132
133
  id: ticket_id,
133
134
  f_bill_code: req.fpDm,
134
135
  f_bill_number: req.fpHm,
135
- f_bill_url: req.fileUrl.replace('d:\\qianNengInvoiceFile', '/Download'),
136
- f_sign_url: req.shareurl,
137
- f_sign_result: req.sharecode,
136
+ f_bill_url: req.shareurl.replace('/s/', `/s/downloadPdf?pwd=${req.sharecode}&authCode=`).replace('\\', ''),
137
+ f_sign_result: req.msg,
138
138
  f_bill_state: req.status
139
139
  }
140
- this.eticket_src = 'https://qnjtkf.cn:7400' + model.f_bill_url
140
+ this.eticket_src = req.shareurl.replace('/s/', `/s/downloadPdf?pwd=${req.sharecode}&authCode=`).replace('\\', '')
141
141
  } else if (req.status === '开票中') {
142
142
  model = {
143
143
  id: ticket_id,
@@ -202,6 +202,7 @@ export default {
202
202
  f_eticket_id: ticket_id,
203
203
  f_bill_code: req.fpDm,
204
204
  f_bill_number: req.fpHm,
205
+ fpqqlsh: req.fpqqlsh,
205
206
  f_bill_url: req.shareurl.replace('/s/', `/s/downloadPdf?pwd=${req.sharecode}&authCode=`).replace('\\', ''),
206
207
  f_sign_result: req.msg,
207
208
  f_bill_state: req.status
@@ -304,12 +305,12 @@ export default {
304
305
  f_eticket_id: ticket_id,
305
306
  f_bill_code: req.fpDm,
306
307
  f_bill_number: req.fpHm,
307
- f_bill_url: req.fileUrl.replace('d:\\qianNengInvoiceFile', '/Download'),
308
- f_sign_url: req.shareurl,
309
- f_sign_result: req.sharecode,
308
+ fpqqlsh: req.fpqqlsh,
309
+ f_bill_url: req.shareurl.replace('/s/', `/s/downloadPdf?pwd=${req.sharecode}&authCode=`).replace('\\', ''),
310
+ f_sign_result: req.msg,
310
311
  f_bill_state: req.status
311
312
  })
312
- this.eticket_src = 'https://qnjtkf.cn:7400' + req.fileUrl.replace('d:\\qianNengInvoiceFile', '/Download')
313
+ this.eticket_src = req.shareurl.replace('/s/', `/s/downloadPdf?pwd=${req.sharecode}&authCode=`).replace('\\', '')
313
314
  } else if (req && req.status !== '开票中') {
314
315
  clearInterval(interval)
315
316
  // TODO 失败后保存发票详情
@@ -135,7 +135,7 @@
135
135
  </th>
136
136
  <th style="text-align:center">
137
137
  <template v-if="row.f_invoice_source !== '外部录入'">
138
- <button class="btn btn-link" v-if="row.f_bill_state==='开票成功'"
138
+ <button class="btn btn-link" v-if="row.f_bill_state==='开票成功' && row.f_tax_money > 0"
139
139
  @click="$parent.$parent.$parent.fp_ch(row)">发票冲红
140
140
  </button>
141
141
  <button class="btn btn-link" v-if="row.f_bill_state==='待开票'"
@@ -144,6 +144,9 @@
144
144
  <button class="btn btn-link" v-if="row.f_bill_state==='开票失败'"
145
145
  @click="$parent.$parent.$parent.kp(row)">重新开票
146
146
  </button>
147
+ <button class="btn btn-link" v-if="row.f_bill_state==='冲红失败'"
148
+ @click="$parent.$parent.$parent.kp(row)">重新冲红
149
+ </button>
147
150
  <button class="btn btn-link" v-if="['查询失败','等待查询'].includes(row.f_bill_state)"
148
151
  @click="$parent.$parent.$parent.fp_search(row)">电票查询
149
152
  </button>
@@ -252,6 +255,10 @@ export default {
252
255
  this.eticket_show = true
253
256
  this.$refs.eticketbill.openEticketGen(row.id)
254
257
  },
258
+ ch (row) {
259
+ this.eticket_show = true
260
+ this.$refs.eticketbill.rushRedInvoice(row.id)
261
+ },
255
262
  eticket_toggle () {
256
263
  this.eticket_show = false
257
264
  this.show = false
@@ -73,23 +73,30 @@
73
73
  close-on-select v-ref:slice>
74
74
  </v-select>
75
75
  </div>
76
- <div v-if="!usertype" class="col-sm-6 form-group ">
76
+ <div v-if="!usertype" class="col-sm-6 form-group "
77
+ :class="[$v.f_building.required ? 'has-error' : 'has-success']">
77
78
  <label for="f_address" class="font_normal_body">楼&emsp;&emsp;号</label>
78
79
  <input type="text" style="width:40%" v-model="model.f_building" class="input_search"
80
+ v-validate:f_building='{required: true }'
79
81
  placeholder="楼号"/>
80
82
  <input type="text" style="width:20%" v-model="model.f_building_suffix" class="input_search"
81
83
  />
82
84
 
83
85
  </div>
84
- <div v-if="!usertype" class="col-sm-6 form-group ">
86
+ <div v-if="!usertype" class="col-sm-6 form-group "
87
+ :class="[$v.f_unit.required ? 'has-error' : 'has-success']">
85
88
  <label for="f_address" class="font_normal_body">单&emsp;&emsp;元</label>
86
- <input type="text" style="width:40%" v-model="model.f_unit" class="input_search" placeholder="单元"/>
89
+ <input type="text" style="width:40%" v-model="model.f_unit" class="input_search"
90
+ v-validate:f_unit='{required: true }'
91
+ placeholder="单元"/>
87
92
  <input type="text" style="width:20%" v-model="model.f_unit_suffix" class="input_search"
88
93
  />
89
94
  </div>
90
- <div v-if="!usertype" class="col-sm-6 form-group ">
95
+ <div v-if="!usertype" class="col-sm-6 form-group "
96
+ :class="[$v.f_floor.required ? 'has-error' : 'has-success']">
91
97
  <label for="f_address" class="font_normal_body">楼&emsp;&emsp;层</label>
92
98
  <input type="text" style="width:40%" v-model="model.f_floor" class="input_search"
99
+ v-validate:f_floor='{required: true }'
93
100
  placeholder="楼层" />
94
101
  <input type="text" style="width:20%" v-model="model.f_floor_suffix" class="input_search"
95
102
  />
@@ -156,6 +156,14 @@
156
156
  :options='row.pipetypes' placeholder='管道类型' :value-single="true"
157
157
  close-on-select></v-select>
158
158
  </div>
159
+ <div class="col-sm-6 form-group" style="padding-right: 5px;" title="参数名称:[连接方式]">
160
+ <label class="font_normal_body">连接方式</label>
161
+ <v-select :value.sync="row.f_pipe_way" v-model="row.f_pipe_way"
162
+ :options='row.pipeways' placeholder='连接方式' :value-single="true"
163
+ close-on-select></v-select>
164
+ </div>
165
+ </div>
166
+ <div class="row auto" style="margin-left: 10px;">
159
167
  <div class="col-sm-6 form-group" style="padding-right: 5px;">
160
168
  <label class="font_normal_body" title="连接管安装日期">安装日期</label>
161
169
  <datepicker placeholder="连接管安装日期" style="width: 60%"
@@ -165,8 +173,6 @@
165
173
  :format="'yyyy-MM-dd HH:mm:ss'">
166
174
  </datepicker>
167
175
  </div>
168
- </div>
169
- <div class="row auto" style="margin-left: 10px;">
170
176
  <div class="col-sm-6 form-group" style="padding-right: 5px;" v-if="pipeShow">
171
177
  <label class="font_normal_body" title="连接管到期日期">到期日期</label>
172
178
  <datepicker placeholder="连接管到期日期" style="width: 60%"
@@ -175,21 +181,22 @@
175
181
  :format="'yyyy-MM-dd HH:mm:ss'">
176
182
  </datepicker>
177
183
  </div>
184
+ </div>
185
+ <div class="row auto" style="margin-left: 10px;">
178
186
  <div class="col-sm-6 form-group" style="padding-right: 5px;">
179
187
  <label class="font_normal_body">使用年限</label>
180
188
  <input type="number" class="input_search" style="width: 60%" v-model="row.f_service_liferg"
181
189
  :value.sync="row.f_service_liferg"
182
190
  :onchange="pipeExpireDate($index)" >
183
191
  </div>
184
-
185
- </div>
186
- <div class="row auto" style="margin-left: 10px;">
187
192
  <div class="col-sm-6 form-group" style="padding-right: 5px;">
188
193
  <label class="font_normal_body">&nbsp;&nbsp;&nbsp;米&nbsp;&nbsp;&nbsp;数</label>
189
194
  <input type="text" class="input_search" style="width:60%" v-model="row.f_pipe_length"
190
195
  :value.sync="row.f_pipe_length"
191
196
  placeholder='米数'>
192
197
  </div>
198
+ </div>
199
+ <div class="row auto" style="margin-left: 10px;">
193
200
  <div class="col-sm-6 form-group" style="padding-right: 5px;">
194
201
  <label class="font_normal_body">&nbsp;&nbsp;&nbsp;材&nbsp;&nbsp;&nbsp;质</label>
195
202
  <input type="text" class="input_search" style="width:60%" v-model="row.f_pipe_material"
@@ -225,6 +232,7 @@
225
232
  <th style="text-align: center">设备品牌</th>
226
233
  <th style="text-align: center">设备型号</th>
227
234
  <th style="text-align: center">管道类型</th>
235
+ <th style="text-align: center">连接方式</th>
228
236
  <th style="text-align: center">管道米数</th>
229
237
  <th style="text-align: center">安装人</th>
230
238
  <th style="text-align: center">安装方式</th>
@@ -242,6 +250,7 @@
242
250
  <td style="text-align: center">{{row.f_brand}}</td>
243
251
  <td style="text-align: center">{{row.f_devices_model}}</td>
244
252
  <td style="text-align: center">{{row.f_pipe_type}}</td>
253
+ <td style="text-align: center">{{row.f_pipe_way}}</td>
245
254
  <td style="text-align: center">{{row.f_pipe_length}}</td>
246
255
  <td style="text-align:center">{{row.f_input_person}}</td>
247
256
  <td style="text-align:center">{{row.f_install_type}}</td>
@@ -285,6 +294,7 @@ export default {
285
294
  devicetypes: this.$appdata.getParam('设备类型'),
286
295
  devicebrands: [],
287
296
  pipetypes:[],
297
+ pipeways: this.$appdata.getParam('连接方式'),
288
298
  pipetypeparams: this.$appdata.getParam('管道类型'),
289
299
  WatchPurchases: this.$appdata.getParam('购买方式'),
290
300
  installperson: this.$appdata.getParam('安装人'),
@@ -404,6 +414,7 @@ export default {
404
414
  f_input_date: this.$login.toStandardTimeString(),
405
415
  devicetypes: this.$appdata.getParam('设备类型'),
406
416
  pipetypes:[],
417
+ pipeways: this.$appdata.getParam('连接方式'),
407
418
  devicebrands:[]
408
419
  })
409
420
  },
@@ -172,17 +172,20 @@
172
172
  }
173
173
  console.log('退费传参', param)
174
174
  let res = await this.$resetpost('rs/logic/iotRefund', {data: param}, {warnMsg: `确定要对用户${this.data.f_user_name}进行退费吗?`, resolveMsg: '退费成功!!', rejectMsg: '退费失败!!请重试!!'}).then((res) => {
175
- if (this.config.hasBillManage) {
176
- // 启用发票管理,获取票据管理中的票号并存储记录
177
- this.data.id = res.data.id
178
- this.data.f_bill_type = '退费'
179
- this.print = true
175
+ if (this.config.hasPrint) {
176
+ if (this.config.hasBillManage) {
177
+ // 启用发票管理,获取票据管理中的票号并存储记录
178
+ this.data.id = res.data.id
179
+ this.data.f_bill_type = '退费'
180
+ this.print = true
181
+ } else {
182
+ this.data.id = res.data.id
183
+ this.print = true
184
+ }
180
185
  } else {
181
- this.data.id = res.data.id
182
- this.print = true
186
+ this.$dispatch('success')
183
187
  }
184
188
  })
185
- this.$dispatch('success')
186
189
  },
187
190
  changeChoose () {
188
191
  this.$dispatch('changeChoose')
package/src/main.js CHANGED
@@ -3,7 +3,7 @@ import all from 'vue-client/src/all'
3
3
  import App from './App'
4
4
  import system from 'system-clients/src/system'
5
5
  import sale from './sale'
6
- import wenxi from './filiale/tongchuan/sale'
6
+ import wenxi from './filiale/qianneng/sale'
7
7
  // import FilialeSale from './filiale/yuansheng/sale'
8
8
  import address from 'address-client/src/address'
9
9
  import ldap from 'ldap-clients/src/ldap'