sale-client 4.2.174 → 4.2.176
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.
- package/.arts/settings.json +3 -0
- package/build/dev-server.js +1 -1
- package/package.json +1 -1
- package/src/components/charge/business/CardMeterCenter.vue +38 -4
- package/src/components/charge/business/NoCardMeterCenter.vue +169 -11
- package/src/components/charge/business/ShowCardSellGas.vue +40 -3
- package/src/components/manualsemmary/ManualSummaryManage.vue +310 -0
- package/src/filiale/dexin/BlackList/BlackListList.vue +14 -5
- package/src/filiale/tongchuan/ManualSummaryManage.vue +219 -0
- package/src/main.js +1 -1
- package/src/plugins/CardService.js +8 -0
package/build/dev-server.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var path = require('path')
|
|
2
2
|
var checkVersion = require('./versionCheck.js')
|
|
3
3
|
checkVersion()
|
|
4
|
-
const [ serverRul, localUrl ] = ['http://
|
|
4
|
+
const [ serverRul, localUrl ] = ['http://222.83.114.229:31785/', 'http://222.83.114.229:31785/']
|
|
5
5
|
var merge = require('webpack-merge')
|
|
6
6
|
var baseConfig = require('./webpack.dev.conf')
|
|
7
7
|
var devConfig = {
|
package/package.json
CHANGED
|
@@ -152,8 +152,8 @@
|
|
|
152
152
|
</div>
|
|
153
153
|
</div>
|
|
154
154
|
|
|
155
|
-
<div class="row" style="margin-top:5px;" v-show="authArr.includes('优惠权限')">
|
|
156
|
-
<div class="col-sm-4">
|
|
155
|
+
<div class="row" style="margin-top:5px;" v-show="authArr.includes('优惠权限')|| hasDisCount">
|
|
156
|
+
<div class="col-sm-4" v-if="!hasDisCount">
|
|
157
157
|
<label class="font_normal_body">优惠方式</label>
|
|
158
158
|
<v-select v-model="model.f_privilege_id" @blur.native.capture="privilegeCalculate"
|
|
159
159
|
placeholder='请选择'
|
|
@@ -466,6 +466,7 @@
|
|
|
466
466
|
}
|
|
467
467
|
let getLimit = await self.$resetpost('api/af-revenue/logic/sale_getLimitGas', {data: limit_param}, {
|
|
468
468
|
resolveMsg: null,
|
|
469
|
+
newly: true,
|
|
469
470
|
rejectMsg: '获取限购值失败!!'
|
|
470
471
|
})
|
|
471
472
|
console.log('获取限购值', getLimit)
|
|
@@ -516,6 +517,18 @@
|
|
|
516
517
|
}
|
|
517
518
|
})
|
|
518
519
|
}
|
|
520
|
+
// 获取优惠信息
|
|
521
|
+
if (self.config.newDiscount) {
|
|
522
|
+
let getDiscount = await self.$resetpost('api/af-revenue/logic/getDiscountInfo', {data: nowrite_param}, {
|
|
523
|
+
resolveMsg: null,
|
|
524
|
+
newly: true,
|
|
525
|
+
rejectMsg: '获取优惠信息失败!!'
|
|
526
|
+
})
|
|
527
|
+
if (getDiscount.data.leftDiscount > 0) {
|
|
528
|
+
self.disCountInfo = getDiscount.data
|
|
529
|
+
self.hasDisCount = true
|
|
530
|
+
}
|
|
531
|
+
}
|
|
519
532
|
}
|
|
520
533
|
export default {
|
|
521
534
|
title: '卡表收费',
|
|
@@ -524,12 +537,15 @@
|
|
|
524
537
|
mjshow: false,
|
|
525
538
|
serialShow: false,
|
|
526
539
|
randomBusinessId: '',
|
|
540
|
+
hasDisCount: false,
|
|
541
|
+
disCountInfo: {},
|
|
527
542
|
resid: [], // 存放新增的f_files表中id
|
|
528
543
|
config: {
|
|
529
544
|
calculatePreByCollection: false, // 可以更具收款来反向计算预购
|
|
530
545
|
notShowFormula: false, // 不显示计算公式,默认显示
|
|
531
546
|
autoCollection: true, // 自动填写收款
|
|
532
547
|
quickSale: false,
|
|
548
|
+
newDiscount: false, // 新优惠
|
|
533
549
|
showupload: true, // 显示上传
|
|
534
550
|
hasPrint: true, // 默认打票
|
|
535
551
|
MinSellGas: 0,
|
|
@@ -561,6 +577,7 @@
|
|
|
561
577
|
f_banktransfer_person: '',
|
|
562
578
|
f_banktransfer_date: '',
|
|
563
579
|
f_privilege_id: 0,
|
|
580
|
+
f_privilege_gas: 0,
|
|
564
581
|
f_privilege_money: 0,
|
|
565
582
|
f_after_discount: 0,
|
|
566
583
|
getDeduct: 0
|
|
@@ -705,8 +722,8 @@
|
|
|
705
722
|
this.model.getDeduct = 0
|
|
706
723
|
if (this.row.f_project_money && this.row.f_project_money > 0) {
|
|
707
724
|
this.model.getDeduct = (this.$CommonService.getDeduct(this.row, this.model.f_pregas) - 0)
|
|
708
|
-
this.model.f_totalcost = (this.model.f_totalcost - 0
|
|
709
|
-
this.model.f_collection = (this.model.f_collection - 0
|
|
725
|
+
this.model.f_totalcost = (this.model.f_totalcost - 0) + (this.model.getDeduct - 0)
|
|
726
|
+
this.model.f_collection = (this.model.f_collection - 0) + (this.model.getDeduct - 0)
|
|
710
727
|
}
|
|
711
728
|
this.calText(dymoney2.data.chargeprice, this.model.getDeduct)
|
|
712
729
|
} catch (error) {
|
|
@@ -899,6 +916,23 @@
|
|
|
899
916
|
}
|
|
900
917
|
this.privilegeCalculate()
|
|
901
918
|
}
|
|
919
|
+
if (this.hasDisCount) {
|
|
920
|
+
this.calDisCount()
|
|
921
|
+
}
|
|
922
|
+
},
|
|
923
|
+
async calDisCount () {
|
|
924
|
+
// 初始化减免金额
|
|
925
|
+
this.model.f_privilege_money = 0
|
|
926
|
+
this.model.f_after_discount = this.model.f_collection
|
|
927
|
+
let param = this.disCountInfo
|
|
928
|
+
param.f_collection = this.model.f_collection
|
|
929
|
+
param.f_pregas = this.model.f_pregas
|
|
930
|
+
let privilegeData = await this.$resetpost('api/af-revenue/logic/calculateDiscount', param, {resolveMsg: null, rejectMsg: '计算优惠金额出错'})
|
|
931
|
+
// 减免金额
|
|
932
|
+
this.model.f_privilege_money = privilegeData.data.f_privilege_money
|
|
933
|
+
this.model.f_privilege_gas = privilegeData.data.f_privilege_gas
|
|
934
|
+
// 减免后收款金额
|
|
935
|
+
this.model.f_after_discount = privilegeData.data.f_collection
|
|
902
936
|
},
|
|
903
937
|
// 优惠计算
|
|
904
938
|
async privilegeCalculate () {
|
|
@@ -128,6 +128,26 @@
|
|
|
128
128
|
<span v-if="$v.f_collection.dctest" style="color:red ">收款不能小于应收金额</span>
|
|
129
129
|
</div>
|
|
130
130
|
</div>
|
|
131
|
+
<div class="row" style="margin-top:5px;" v-show="authArr.includes('优惠权限')|| hasDisCount">
|
|
132
|
+
<div class="col-sm-4" v-if="!hasDisCount">
|
|
133
|
+
<label class="font_normal_body">优惠方式</label>
|
|
134
|
+
<v-select v-model="model.f_privilege_id" @blur.native.capture="privilegeCalculate"
|
|
135
|
+
placeholder='请选择'
|
|
136
|
+
:value.sync="model.f_privilege_id"
|
|
137
|
+
:options='privilegeList' clear-button value-single>
|
|
138
|
+
</v-select>
|
|
139
|
+
</div>
|
|
140
|
+
<div class="col-sm-4">
|
|
141
|
+
<label for="f_preamount" class=" font_normal_body"> 优惠金额</label>
|
|
142
|
+
<input class="input_search" style="width:60%" type="number" v-model="model.f_privilege_money"
|
|
143
|
+
v-scale="[model.f_privilege_money, row.f_fee_decimal||4]" placeholder="优惠金额" disabled>
|
|
144
|
+
</div>
|
|
145
|
+
<div class="col-sm-4">
|
|
146
|
+
<label for="f_preamount" class=" font_normal_body"> 实际收款</label>
|
|
147
|
+
<input class="input_search" style="width:60%" type="number" v-model="model.f_after_discount"
|
|
148
|
+
v-scale="[model.f_after_discount, row.f_fee_decimal||4]" placeholder="优惠后收款" disabled>
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
131
151
|
<div class="row" v-if="model.f_payment[0].includes('POS')">
|
|
132
152
|
<div class="col-sm-4">
|
|
133
153
|
<label for="f_voucher_number" class="font_normal_body">凭证号</label>
|
|
@@ -159,18 +179,19 @@
|
|
|
159
179
|
<button class="button_clear btn-gn" @click="clean()">取消</button>
|
|
160
180
|
</div>
|
|
161
181
|
</validator>
|
|
162
|
-
<payment-code v-ref:paymentcode :payment="model.f_payment" :row="row" :money="model.
|
|
182
|
+
<payment-code v-ref:paymentcode :payment="model.f_payment" :row="row" :money="model.f_after_discount"></payment-code>
|
|
163
183
|
<upload :blodid="row.f_userinfo_id" v-if="config.showupload" :businessid="randomBusinessId" isremark="true" fusetype="无卡收费"></upload>
|
|
164
184
|
</div>
|
|
165
185
|
</div>
|
|
166
186
|
</template>
|
|
167
187
|
<script>
|
|
168
|
-
|
|
188
|
+
/**
|
|
169
189
|
*综合业务
|
|
170
190
|
*卡表收费组件
|
|
171
|
-
|
|
191
|
+
*/
|
|
192
|
+
import {HttpResetClass} from 'vue-client'
|
|
172
193
|
|
|
173
|
-
|
|
194
|
+
// 输入金额,换算气量
|
|
174
195
|
let preamountGen = async function (self) {
|
|
175
196
|
let dymoney = 0
|
|
176
197
|
let calFee = (self.model.f_totalcost - 0) + (self.row.f_balance - 0)
|
|
@@ -194,8 +215,8 @@
|
|
|
194
215
|
Object.assign(self.model, self.model, getGas.data)
|
|
195
216
|
self.model.f_totalcost = ((self.model.f_totalcost - 0) - (dymoney - 0)).toFixed(4)
|
|
196
217
|
// self.model.f_totalcost=Math.ceil(self.model.f_totalcost)
|
|
197
|
-
if(self.config.floor){
|
|
198
|
-
self.model.f_totalcost=Math.ceil(self.model.f_totalcost)
|
|
218
|
+
if (self.config.floor) {
|
|
219
|
+
self.model.f_totalcost = Math.ceil(self.model.f_totalcost)
|
|
199
220
|
}
|
|
200
221
|
self.calText(getGas.data.chargeprice)
|
|
201
222
|
}
|
|
@@ -215,8 +236,8 @@
|
|
|
215
236
|
Object.assign(self.model, self.model, getAmount.data)
|
|
216
237
|
self.model.chargeprice = getAmount.data.chargeprice
|
|
217
238
|
self.model.f_collection = self.model.f_totalcost
|
|
218
|
-
if(self.config.floor){
|
|
219
|
-
self.model.f_collection=Math.ceil(self.model.f_collection)
|
|
239
|
+
if (self.config.floor) {
|
|
240
|
+
self.model.f_collection = Math.ceil(self.model.f_collection)
|
|
220
241
|
}
|
|
221
242
|
self.calText(getAmount.data.chargeprice)
|
|
222
243
|
}
|
|
@@ -294,7 +315,7 @@
|
|
|
294
315
|
f_user_id: self.row.f_user_id,
|
|
295
316
|
f_stairprice_id: self.row.f_stairprice_id
|
|
296
317
|
}
|
|
297
|
-
let getLimit = await self.$resetpost('api/af-revenue/logic/sale_getLimitGas', {data: limit_param}, {resolveMsg: null, rejectMsg: '获取限购值失败!!'})
|
|
318
|
+
let getLimit = await self.$resetpost('api/af-revenue/logic/sale_getLimitGas', {data: limit_param}, {resolveMsg: null, newly: true, rejectMsg: '获取限购值失败!!'})
|
|
298
319
|
console.log('获取限购值', getLimit)
|
|
299
320
|
self.hasLimit = getLimit.data.hasLimit
|
|
300
321
|
if (self.hasLimit) {
|
|
@@ -314,6 +335,21 @@
|
|
|
314
335
|
}
|
|
315
336
|
}
|
|
316
337
|
}
|
|
338
|
+
// 获取优惠信息
|
|
339
|
+
if (self.config.newDiscount) {
|
|
340
|
+
let nowrite_param = {
|
|
341
|
+
f_userfiles_id: self.row.f_userfiles_id
|
|
342
|
+
}
|
|
343
|
+
let getDiscount = await self.$resetpost('api/af-revenue/logic/getDiscountInfo', {data: nowrite_param}, {
|
|
344
|
+
resolveMsg: null,
|
|
345
|
+
newly: true,
|
|
346
|
+
rejectMsg: '获取优惠信息失败!!'
|
|
347
|
+
})
|
|
348
|
+
if (getDiscount.data.leftDiscount > 0) {
|
|
349
|
+
self.disCountInfo = getDiscount.data
|
|
350
|
+
self.hasDisCount = true
|
|
351
|
+
}
|
|
352
|
+
}
|
|
317
353
|
}
|
|
318
354
|
export default {
|
|
319
355
|
title: '无卡收费',
|
|
@@ -321,10 +357,13 @@
|
|
|
321
357
|
return {
|
|
322
358
|
serialShow: false,
|
|
323
359
|
resid: [], // 存放新增的f_files表中id
|
|
360
|
+
hasDisCount: false,
|
|
361
|
+
disCountInfo: {},
|
|
324
362
|
config: {
|
|
325
363
|
calculatePreByCollection: false, // 可以更具收款来反向计算预购
|
|
326
364
|
notShowFormula: false, // 不显示计算公式,默认显示
|
|
327
365
|
hasPrint: true, // 默认打票
|
|
366
|
+
newDiscount: false,
|
|
328
367
|
hasBillManage: false, // 默认不启用发票管理
|
|
329
368
|
floor: false, // 是否取整收费
|
|
330
369
|
billType: '燃气费', // 票据类型(燃气费,其他费用,调用的发票代码不同)
|
|
@@ -340,6 +379,11 @@
|
|
|
340
379
|
f_preamount: 0,
|
|
341
380
|
f_totalcost: 0,
|
|
342
381
|
f_curbalance: 0,
|
|
382
|
+
f_privilege_id: 0,
|
|
383
|
+
f_privilege_gas: 0,
|
|
384
|
+
f_privilege_money: 0,
|
|
385
|
+
f_after_discount: 0,
|
|
386
|
+
getDeduct: 0,
|
|
343
387
|
f_collection: '',
|
|
344
388
|
f_balance: 0,
|
|
345
389
|
f_print: [],
|
|
@@ -363,7 +407,7 @@
|
|
|
363
407
|
// 下拉框值
|
|
364
408
|
paytype: this.$appdata.getParam('付款方式'),
|
|
365
409
|
printstyle: this.$appdata.getParam('打印格式'),
|
|
366
|
-
writecard: [{label: '写卡',value:'写卡'},{label: '不写卡',value:'不写卡'}],
|
|
410
|
+
writecard: [{label: '写卡', value: '写卡'}, {label: '不写卡', value: '不写卡'}],
|
|
367
411
|
mjshow: false
|
|
368
412
|
}
|
|
369
413
|
},
|
|
@@ -443,6 +487,86 @@
|
|
|
443
487
|
}
|
|
444
488
|
})
|
|
445
489
|
},
|
|
490
|
+
// 根据选择的付款方式 获取优惠列表
|
|
491
|
+
async getPrivilegeList () {
|
|
492
|
+
// 初始化下拉选择列表
|
|
493
|
+
this.privilegeList = [{label: '无优惠', value: '0'}]
|
|
494
|
+
// 初始为无优惠
|
|
495
|
+
this.model.f_privilege_id = '0'
|
|
496
|
+
if (this.model.f_payment && this.model.f_payment.length) {
|
|
497
|
+
// 查询条件
|
|
498
|
+
let payments = JSON.stringify(this.model.f_payment)
|
|
499
|
+
payments = payments.replace('[', '(').replace(']', ')').replace(/"/g, '\'')
|
|
500
|
+
let HttpReset = new HttpResetClass()
|
|
501
|
+
let privilege = await HttpReset.load('POST', 'api/af-revenue/sql/singleTable_OrderBy', {
|
|
502
|
+
data: {
|
|
503
|
+
items: 'id,f_privilege_name,f_privilege_type',
|
|
504
|
+
tablename: 't_privilege',
|
|
505
|
+
condition: `f_payment in ${payments} and f_gasproperties = '${this.row.f_gasproperties}' and f_user_type = '${this.row.f_user_type}' and f_perform_date <= GETDATE() and f_end_date >= GETDATE() and f_state = '有效'`,
|
|
506
|
+
orderitem: 'id'
|
|
507
|
+
}
|
|
508
|
+
}, {resolveMsg: null, rejectMsg: '查询优惠信息失败'})
|
|
509
|
+
// 查询结果放到下拉列表
|
|
510
|
+
for (let p of privilege.data) {
|
|
511
|
+
this.privilegeList.push({label: p.f_privilege_name, value: p.id, type: p.f_privilege_type})
|
|
512
|
+
}
|
|
513
|
+
this.privilegeCalculate()
|
|
514
|
+
}
|
|
515
|
+
if (this.hasDisCount) {
|
|
516
|
+
this.calDisCount()
|
|
517
|
+
}
|
|
518
|
+
},
|
|
519
|
+
async calDisCount () {
|
|
520
|
+
// 初始化减免金额
|
|
521
|
+
this.model.f_privilege_money = 0
|
|
522
|
+
this.model.f_after_discount = this.model.f_collection
|
|
523
|
+
let param = this.disCountInfo
|
|
524
|
+
param.f_collection = this.model.f_collection
|
|
525
|
+
param.f_pregas = this.model.f_pregas
|
|
526
|
+
let privilegeData = await this.$resetpost('api/af-revenue/logic/calculateDiscount', param, {resolveMsg: null, rejectMsg: '计算优惠金额出错'})
|
|
527
|
+
// 减免金额
|
|
528
|
+
this.model.f_privilege_money = privilegeData.data.f_privilege_money
|
|
529
|
+
this.model.f_privilege_gas = privilegeData.data.f_privilege_gas
|
|
530
|
+
// 减免后收款金额
|
|
531
|
+
this.model.f_after_discount = privilegeData.data.f_collection
|
|
532
|
+
},
|
|
533
|
+
// 优惠计算
|
|
534
|
+
async privilegeCalculate () {
|
|
535
|
+
// 初始化减免金额
|
|
536
|
+
this.model.f_privilege_money = 0
|
|
537
|
+
this.model.f_after_discount = this.model.f_collection
|
|
538
|
+
// 判断是否是自定义优惠
|
|
539
|
+
if (parseInt(this.model.f_privilege_id)) {
|
|
540
|
+
for (let p of this.privilegeList) {
|
|
541
|
+
if (p.value == this.model.f_privilege_id && p.type == '自定义') {
|
|
542
|
+
this.model.f_privilege_money = window.prompt('请输入你想优惠的金额')
|
|
543
|
+
if (!(/^[1-9]\d*(\.\d+)?$/).test(this.model.f_privilege_money) || !(/^[1-9]\d*(\.\d+)?$/).test(this.model.f_privilege_money)) {
|
|
544
|
+
this.$showMessage('金额输入格式不正确!')
|
|
545
|
+
this.model.f_privilege_money = 0
|
|
546
|
+
return
|
|
547
|
+
}
|
|
548
|
+
if ((this.model.f_privilege_money - 0) >= this.model.f_collection) {
|
|
549
|
+
this.$showMessage('减免金额不能大于等于收款金额')
|
|
550
|
+
this.model.f_privilege_money = 0
|
|
551
|
+
return
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
// 优惠方式, 收款 缺一不计算
|
|
557
|
+
if (this.model.f_payment && this.model.f_payment.length && parseInt(this.model.f_privilege_id) && this.model.f_collection) {
|
|
558
|
+
let c = {
|
|
559
|
+
f_privilege_id: this.model.f_privilege_id,
|
|
560
|
+
f_collection: this.model.f_collection,
|
|
561
|
+
f_privilege_money: this.model.f_privilege_money
|
|
562
|
+
}
|
|
563
|
+
let privilegeData = await this.$resetpost('api/af-revenue/logic/calculatePrivilege', c, {resolveMsg: null, rejectMsg: '计算优惠金额出错'})
|
|
564
|
+
// 减免金额
|
|
565
|
+
this.model.f_privilege_money = privilegeData.data.f_privilege_money
|
|
566
|
+
// 减免后收款金额
|
|
567
|
+
this.model.f_after_discount = privilegeData.data.f_collection
|
|
568
|
+
}
|
|
569
|
+
},
|
|
446
570
|
clean () {
|
|
447
571
|
this.$info('取消操作')
|
|
448
572
|
this.$dispatch('refresh', this.row)
|
|
@@ -496,15 +620,49 @@
|
|
|
496
620
|
}
|
|
497
621
|
},
|
|
498
622
|
watch: {
|
|
623
|
+
'model.f_payment.length' (val) {
|
|
624
|
+
console.log('付款方式多选。。', val)
|
|
625
|
+
if (val > 1 && !this.model.f_preamount) {
|
|
626
|
+
this.model.f_payment = ['现金缴费']
|
|
627
|
+
this.$showAlert('请先计算付款金额', 'warning', 2000)
|
|
628
|
+
} else {
|
|
629
|
+
this.paymentModel = []
|
|
630
|
+
|
|
631
|
+
this.model.f_payment.forEach((res) => {
|
|
632
|
+
let temp = {
|
|
633
|
+
f_payment: res,
|
|
634
|
+
f_money: 0
|
|
635
|
+
}
|
|
636
|
+
this.paymentModel.push(temp)
|
|
637
|
+
})
|
|
638
|
+
this.$resetValidation()
|
|
639
|
+
|
|
640
|
+
// 获取计算优惠
|
|
641
|
+
this.getPrivilegeList()
|
|
642
|
+
}
|
|
643
|
+
},
|
|
499
644
|
'model.f_payment' (val) {
|
|
500
|
-
|
|
645
|
+
let _payment = this.$appdata.getSingleValue('需要输入业务单号的付款方式') || ''
|
|
646
|
+
if (val == '免交' || _payment.includes(val)) {
|
|
501
647
|
this.mjshow = true
|
|
502
648
|
} else {
|
|
503
649
|
this.mjshow = false
|
|
504
650
|
}
|
|
651
|
+
// if(this.row.f_collection_type == '按气量'){
|
|
652
|
+
// this.pregas();
|
|
653
|
+
// }else{
|
|
654
|
+
// this.preamount();
|
|
655
|
+
// }
|
|
656
|
+
},
|
|
657
|
+
'model.f_collection' (val) {
|
|
658
|
+
// 获取计算优惠
|
|
659
|
+
this.getPrivilegeList()
|
|
505
660
|
}
|
|
506
661
|
},
|
|
507
662
|
computed: {
|
|
663
|
+
authArr () {
|
|
664
|
+
return this.$login.r ? this.$login.r : []
|
|
665
|
+
},
|
|
508
666
|
'curbalance' () {
|
|
509
667
|
if (this.model.f_preamount) {
|
|
510
668
|
if (this.config.calculatePreByCollection) {
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
v-ref:givechange></give-change>
|
|
110
110
|
</div>
|
|
111
111
|
</div>
|
|
112
|
-
<div class="row" style="margin-top:5px;" v-show="authArr.includes('优惠权限')">
|
|
112
|
+
<div class="row" style="margin-top:5px;" v-show="authArr.includes('优惠权限') || hasDisCount">
|
|
113
113
|
<div class="col-sm-4 form-group">
|
|
114
114
|
<label class="font_normal_body">优惠方式</label>
|
|
115
115
|
<v-select v-model="model.f_privilege_id" @blur.native.capture="privilegeCalculate"
|
|
@@ -318,7 +318,7 @@ let preamountGen = async function (self) {
|
|
|
318
318
|
}
|
|
319
319
|
self.model.f_preamount = (calFee - (self.dymoney - 0)).toFixed(self.row.f_fee_decimal || 4)
|
|
320
320
|
self.calText(getGas.data.chargeprice)
|
|
321
|
-
self.pricetext = getGas.data.chargeprice[0].pricetext ? getGas.data.chargeprice[0].pricetext:null
|
|
321
|
+
self.pricetext = getGas.data.chargeprice[0].pricetext ? getGas.data.chargeprice[0].pricetext : null
|
|
322
322
|
}
|
|
323
323
|
|
|
324
324
|
// 输入气量,换算金额
|
|
@@ -339,7 +339,7 @@ let pregasGen = async function (self) {
|
|
|
339
339
|
if (self.config.floor) {
|
|
340
340
|
self.model.f_collection = Math.ceil(self.model.f_collection)
|
|
341
341
|
}
|
|
342
|
-
self.pricetext = getAmount.data.chargeprice[0].pricetext?getAmount.data.chargeprice[0].pricetext:null
|
|
342
|
+
self.pricetext = getAmount.data.chargeprice[0].pricetext ? getAmount.data.chargeprice[0].pricetext : null
|
|
343
343
|
self.calText(getAmount.data.chargeprice)
|
|
344
344
|
}
|
|
345
345
|
}
|
|
@@ -447,6 +447,7 @@ let asyncShowCardSellGas = async function (self) {
|
|
|
447
447
|
let http = new HttpResetClass()
|
|
448
448
|
let getLimit = await http.load('POST', 'api/af-revenue/logic/sale_getLimitGas', {data: limit_param}, {
|
|
449
449
|
resolveMsg: null,
|
|
450
|
+
newly: true,
|
|
450
451
|
rejectMsg: '获取限购值失败!!'
|
|
451
452
|
})
|
|
452
453
|
console.log('获取限购值', getLimit)
|
|
@@ -472,6 +473,21 @@ let asyncShowCardSellGas = async function (self) {
|
|
|
472
473
|
}
|
|
473
474
|
}
|
|
474
475
|
}
|
|
476
|
+
// 获取优惠信息
|
|
477
|
+
if (self.config.newDiscount) {
|
|
478
|
+
let nowrite_param = {
|
|
479
|
+
f_userfiles_id: self.row.f_userfiles_id
|
|
480
|
+
}
|
|
481
|
+
let getDiscount = await self.$resetpost('api/af-revenue/logic/getDiscountInfo', {data: nowrite_param}, {
|
|
482
|
+
resolveMsg: null,
|
|
483
|
+
newly: true,
|
|
484
|
+
rejectMsg: '获取优惠信息失败!!'
|
|
485
|
+
})
|
|
486
|
+
if (getDiscount.data.leftDiscount > 0) {
|
|
487
|
+
self.disCountInfo = getDiscount.data
|
|
488
|
+
self.hasDisCount = true
|
|
489
|
+
}
|
|
490
|
+
}
|
|
475
491
|
}
|
|
476
492
|
|
|
477
493
|
export default {
|
|
@@ -480,12 +496,15 @@ export default {
|
|
|
480
496
|
return {
|
|
481
497
|
serialShow: false,
|
|
482
498
|
pricetext: null,
|
|
499
|
+
hasDisCount: false,
|
|
500
|
+
disCountInfo: {},
|
|
483
501
|
resid: [],
|
|
484
502
|
config: {
|
|
485
503
|
notShowFormula: false, // 不显示计算公式,默认显示
|
|
486
504
|
calculatePreByCollection: false, // 可以更具收款来反向计算预购
|
|
487
505
|
showupload: true, // 默认不显示上传附件
|
|
488
506
|
hasPrint: false, // 默认打票
|
|
507
|
+
newDiscount: false,
|
|
489
508
|
floor: true, // 是否取整收费
|
|
490
509
|
hasBillManage: false, // 默认不启用发票管理
|
|
491
510
|
billType: '燃气费', // 票据类型(燃气费,其他费用,调用的发票代码不同)
|
|
@@ -506,6 +525,7 @@ export default {
|
|
|
506
525
|
f_meter_type: '',
|
|
507
526
|
f_voucher_number: '',
|
|
508
527
|
f_privilege_id: 0,
|
|
528
|
+
f_privilege_gas: 0,
|
|
509
529
|
f_privilege_money: 0,
|
|
510
530
|
f_after_discount: 0
|
|
511
531
|
},
|
|
@@ -842,6 +862,23 @@ export default {
|
|
|
842
862
|
}
|
|
843
863
|
this.privilegeCalculate()
|
|
844
864
|
}
|
|
865
|
+
if (this.hasDisCount) {
|
|
866
|
+
this.calDisCount()
|
|
867
|
+
}
|
|
868
|
+
},
|
|
869
|
+
async calDisCount () {
|
|
870
|
+
// 初始化减免金额
|
|
871
|
+
this.model.f_privilege_money = 0
|
|
872
|
+
this.model.f_after_discount = this.model.f_collection
|
|
873
|
+
let param = this.disCountInfo
|
|
874
|
+
param.f_collection = this.model.f_collection
|
|
875
|
+
param.f_pregas = this.model.f_pregas
|
|
876
|
+
let privilegeData = await this.$resetpost('api/af-revenue/logic/calculateDiscount', param, {resolveMsg: null, rejectMsg: '计算优惠金额出错'})
|
|
877
|
+
// 减免金额
|
|
878
|
+
this.model.f_privilege_money = privilegeData.data.f_privilege_money
|
|
879
|
+
this.model.f_privilege_gas = privilegeData.data.f_privilege_gas
|
|
880
|
+
// 减免后收款金额
|
|
881
|
+
this.model.f_after_discount = privilegeData.data.f_collection
|
|
845
882
|
},
|
|
846
883
|
// 优惠计算
|
|
847
884
|
async privilegeCalculate () {
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="flex-row">
|
|
3
|
+
<div class="basic-main">
|
|
4
|
+
<criteria-paged :model="model" v-ref:paged @sort="sort">
|
|
5
|
+
<criteria partial='criteria' v-ref:criteria @condition-changed="$parent.selfSearch">
|
|
6
|
+
<div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
|
|
7
|
+
<div class="row">
|
|
8
|
+
<div class="col-sm-3 form-group">
|
|
9
|
+
<label class="font_normal_body">用户姓名:</label>
|
|
10
|
+
<input type="text" class="input_search" v-model="model.f_user_name"
|
|
11
|
+
condition="f_user_name like '%{}%'" placeholder='请输入用户姓名'>
|
|
12
|
+
</div>
|
|
13
|
+
<div class="col-sm-3 form-group">
|
|
14
|
+
<label class="font_normal_body">用户标识:</label>
|
|
15
|
+
<input type="text" class="input_search" v-model="model.f_user_id"
|
|
16
|
+
condition="f_user_id like '%{}%'" placeholder='请输入用户标识'>
|
|
17
|
+
</div>
|
|
18
|
+
<div class="col-sm-3 form-group">
|
|
19
|
+
<label class="font_normal_body">用户地址:</label>
|
|
20
|
+
<input type="text" class="input_search" v-model="model.f_user_address"
|
|
21
|
+
condition="f_user_address like '%{}%'" placeholder='请输入用户地址'>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="col-sm-3 form-group">
|
|
24
|
+
<label class="font_normal_body">回复人:</label>
|
|
25
|
+
<input type="text" class="input_search" v-model="model.f_attendant"
|
|
26
|
+
condition="f_attendant like '%{}%'" placeholder='请输入回复人'>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
<div class="row">
|
|
30
|
+
<div class="col-sm-3 form-group">
|
|
31
|
+
<label class="font_normal_body">转人工时间:</label>
|
|
32
|
+
<div style="display: flex; align-items: center;">
|
|
33
|
+
<datepicker placeholder="开始日期"
|
|
34
|
+
style="width: 100px; margin-right: 5px;"
|
|
35
|
+
v-model="model.startDate"
|
|
36
|
+
:value.sync="model.startDate"
|
|
37
|
+
:format="'yyyy-MM-dd'"></datepicker>
|
|
38
|
+
<span style="margin: 0 5px;">~</span>
|
|
39
|
+
<datepicker placeholder="结束日期"
|
|
40
|
+
style="width: 100px;"
|
|
41
|
+
v-model="model.endDate"
|
|
42
|
+
:value.sync="model.endDate"
|
|
43
|
+
:format="'yyyy-MM-dd'"></datepicker>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
<div class="col-sm-3 form-group">
|
|
47
|
+
<label class="font_normal_body">人工回复时间:</label>
|
|
48
|
+
<div style="display: flex; align-items: center;">
|
|
49
|
+
<datepicker placeholder="开始日期"
|
|
50
|
+
style="width: 100px; margin-right: 5px;"
|
|
51
|
+
v-model="model.startMsgDate"
|
|
52
|
+
:value.sync="model.startMsgDate"
|
|
53
|
+
:format="'yyyy-MM-dd'"></datepicker>
|
|
54
|
+
<span style="margin: 0 5px;">~</span>
|
|
55
|
+
<datepicker placeholder="结束日期"
|
|
56
|
+
style="width: 100px;"
|
|
57
|
+
v-model="model.endMsgDate"
|
|
58
|
+
:value.sync="model.endMsgDate"
|
|
59
|
+
:format="'yyyy-MM-dd'"></datepicker>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
<div class="col-sm-6 form-group" style="text-align: right;">
|
|
63
|
+
<button class="button_search button_spacing" @click="search()">查询</button>
|
|
64
|
+
<button class="button_clear button_spacing" @click="clear()">重置</button>
|
|
65
|
+
<export-excel
|
|
66
|
+
:data="getCondition"
|
|
67
|
+
:field="getfield"
|
|
68
|
+
sqlurl="rs/logic/userExport"
|
|
69
|
+
sql-name="userQuery"
|
|
70
|
+
template-name='用户导出'
|
|
71
|
+
:choose-col="true">
|
|
72
|
+
</export-excel>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
</criteria>
|
|
77
|
+
|
|
78
|
+
<data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
|
|
79
|
+
<template partial='head'>
|
|
80
|
+
<tr>
|
|
81
|
+
<th><input type='checkbox' v-model="allSelect" @change="selectAll"></th>
|
|
82
|
+
<th>序号</th>
|
|
83
|
+
<th>
|
|
84
|
+
<nobr>
|
|
85
|
+
<data-order field="f_user_name" name="用户姓名"
|
|
86
|
+
:order.sync="orderFields.f_user_name"></data-order>
|
|
87
|
+
</nobr>
|
|
88
|
+
</th>
|
|
89
|
+
<th>
|
|
90
|
+
<nobr>
|
|
91
|
+
<data-order field="f_user_id" name="用户标识"
|
|
92
|
+
:order.sync="orderFields.f_user_id"></data-order>
|
|
93
|
+
</nobr>
|
|
94
|
+
</th>
|
|
95
|
+
<th>
|
|
96
|
+
<nobr>
|
|
97
|
+
<data-order field="f_user_address" name="用户地址"
|
|
98
|
+
:order.sync="orderFields.f_user_address"></data-order>
|
|
99
|
+
</nobr>
|
|
100
|
+
</th>
|
|
101
|
+
<th>
|
|
102
|
+
<nobr>
|
|
103
|
+
<data-order field="f_ivr_time" name="转人工时间"
|
|
104
|
+
:order.sync="orderFields.f_ivr_time"></data-order>
|
|
105
|
+
</nobr>
|
|
106
|
+
</th>
|
|
107
|
+
<th>
|
|
108
|
+
<nobr>
|
|
109
|
+
<data-order field="f_msg_time" name="人工回复时间"
|
|
110
|
+
:order.sync="orderFields.f_msg_time"></data-order>
|
|
111
|
+
</nobr>
|
|
112
|
+
</th>
|
|
113
|
+
<th>
|
|
114
|
+
<nobr>
|
|
115
|
+
<data-order field="f_attendant" name="回复人"
|
|
116
|
+
:order.sync="orderFields.f_attendant"></data-order>
|
|
117
|
+
</nobr>
|
|
118
|
+
</th>
|
|
119
|
+
<th>
|
|
120
|
+
<nobr>
|
|
121
|
+
<data-order field="f_rate" name="评价等级"
|
|
122
|
+
:order.sync="orderFields.f_rate"></data-order>
|
|
123
|
+
</nobr>
|
|
124
|
+
</th>
|
|
125
|
+
</tr>
|
|
126
|
+
</template>
|
|
127
|
+
|
|
128
|
+
<template partial='body' scope="row">
|
|
129
|
+
<tr>
|
|
130
|
+
<td><input type='checkbox' @change="selectRow($event, row)" :checked="row.selected"></td>
|
|
131
|
+
<td>{{ $index + 1 }}</td>
|
|
132
|
+
<td>{{ row.f_user_name }}</td>
|
|
133
|
+
<td>{{ row.f_user_id }}</td>
|
|
134
|
+
<td>{{ row.f_user_address }}</td>
|
|
135
|
+
<td>{{ row.f_ivr_time }}</td>
|
|
136
|
+
<td>{{ row.f_msg_time }}</td>
|
|
137
|
+
<td>{{ row.f_attendant }}</td>
|
|
138
|
+
<td>{{ row.f_rate }}</td>
|
|
139
|
+
</tr>
|
|
140
|
+
</template>
|
|
141
|
+
</data-grid>
|
|
142
|
+
</criteria-paged>
|
|
143
|
+
</div>
|
|
144
|
+
</div>
|
|
145
|
+
</template>
|
|
146
|
+
|
|
147
|
+
<script>
|
|
148
|
+
import { PagedList } from 'vue-client'
|
|
149
|
+
|
|
150
|
+
export default {
|
|
151
|
+
data() {
|
|
152
|
+
return {
|
|
153
|
+
model: new PagedList('rs/sql/saleSingleTable', 20, {
|
|
154
|
+
tablename: 't_text_log'
|
|
155
|
+
}, {
|
|
156
|
+
f_user_name: '',
|
|
157
|
+
f_user_id: '',
|
|
158
|
+
f_user_address: '',
|
|
159
|
+
f_ivr_time: '',
|
|
160
|
+
f_msg_time: '',
|
|
161
|
+
f_attendant: '',
|
|
162
|
+
f_rate: ''
|
|
163
|
+
}),
|
|
164
|
+
allSelect: false,
|
|
165
|
+
orderFields: {
|
|
166
|
+
f_user_name: 'no',
|
|
167
|
+
f_user_id: 'no',
|
|
168
|
+
f_user_address: 'no',
|
|
169
|
+
f_ivr_time: 'no',
|
|
170
|
+
f_msg_time: 'no',
|
|
171
|
+
f_attendant: 'no',
|
|
172
|
+
f_rate: 'no'
|
|
173
|
+
},
|
|
174
|
+
getfield: {
|
|
175
|
+
'f_user_name': '用户姓名',
|
|
176
|
+
'f_user_id': '用户标识',
|
|
177
|
+
'f_user_address': '用户地址',
|
|
178
|
+
'f_ivr_time': '转人工时间',
|
|
179
|
+
'f_msg_time': '人工回复时间',
|
|
180
|
+
'f_attendant': '回复人',
|
|
181
|
+
'f_rate': '评价等级'
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
methods: {
|
|
186
|
+
search() {
|
|
187
|
+
this.$refs.paged.$refs.criteria.search()
|
|
188
|
+
},
|
|
189
|
+
clear() {
|
|
190
|
+
Object.keys(this.model).forEach(key => {
|
|
191
|
+
if (key !== 'items' && key !== 'tablename') {
|
|
192
|
+
this.model[key] = ''
|
|
193
|
+
}
|
|
194
|
+
})
|
|
195
|
+
this.$refs.paged.$refs.criteria.model.f_user_name = ''
|
|
196
|
+
this.$refs.paged.$refs.criteria.model.f_user_id = ''
|
|
197
|
+
this.$refs.paged.$refs.criteria.model.f_user_address = ''
|
|
198
|
+
this.$refs.paged.$refs.criteria.model.f_attendant = ''
|
|
199
|
+
this.startDate = ''
|
|
200
|
+
this.endDate = ''
|
|
201
|
+
this.startMsgDate = ''
|
|
202
|
+
this.endMsgDate = ''
|
|
203
|
+
this.$refs.paged.$refs.criteria.search()
|
|
204
|
+
},
|
|
205
|
+
selectAll(event) {
|
|
206
|
+
this.model.rows.forEach(row => {
|
|
207
|
+
row.selected = event.target.checked
|
|
208
|
+
})
|
|
209
|
+
},
|
|
210
|
+
selectRow(event, row) {
|
|
211
|
+
row.selected = event.target.checked
|
|
212
|
+
},
|
|
213
|
+
sort(field) {
|
|
214
|
+
this.orderFields[field] = this.orderFields[field] === 'asc' ? 'desc' : 'asc'
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
computed: {
|
|
218
|
+
getCondition() {
|
|
219
|
+
let condition = ''
|
|
220
|
+
if (this.model.f_user_name) {
|
|
221
|
+
condition += ` and f_user_name like '%${this.model.f_user_name}%'`
|
|
222
|
+
}
|
|
223
|
+
if (this.model.f_user_id) {
|
|
224
|
+
condition += ` and f_user_id like '%${this.model.f_user_id}%'`
|
|
225
|
+
}
|
|
226
|
+
if (this.model.f_user_address) {
|
|
227
|
+
condition += ` and f_user_address like '%${this.model.f_user_address}%'`
|
|
228
|
+
}
|
|
229
|
+
if (this.model.f_attendant) {
|
|
230
|
+
condition += ` and f_attendant like '%${this.model.f_attendant}%'`
|
|
231
|
+
}
|
|
232
|
+
if (this.startDate && this.endDate) {
|
|
233
|
+
condition += ` and f_ivr_time between '${this.startDate}' and '${this.endDate}'`
|
|
234
|
+
}
|
|
235
|
+
if (this.startMsgDate && this.endMsgDate) {
|
|
236
|
+
condition += ` and f_msg_time between '${this.startMsgDate}' and '${this.endMsgDate}'`
|
|
237
|
+
}
|
|
238
|
+
return condition
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
</script>
|
|
243
|
+
|
|
244
|
+
<style scoped>
|
|
245
|
+
.flex-row {
|
|
246
|
+
display: flex;
|
|
247
|
+
flex-direction: row;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.basic-main {
|
|
251
|
+
width: 100%;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.form-group {
|
|
255
|
+
margin-bottom: 15px;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.input_search {
|
|
259
|
+
width: 200px;
|
|
260
|
+
padding: 6px;
|
|
261
|
+
border: 1px solid #ccc;
|
|
262
|
+
border-radius: 4px;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
.button_search {
|
|
266
|
+
background-color: #007bff;
|
|
267
|
+
color: white;
|
|
268
|
+
padding: 6px 12px;
|
|
269
|
+
border: none;
|
|
270
|
+
border-radius: 4px;
|
|
271
|
+
cursor: pointer;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
.button_clear {
|
|
275
|
+
background-color: #6c757d;
|
|
276
|
+
color: white;
|
|
277
|
+
padding: 6px 12px;
|
|
278
|
+
border: none;
|
|
279
|
+
border-radius: 4px;
|
|
280
|
+
cursor: pointer;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.button_spacing {
|
|
284
|
+
margin-left: 10px;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.list_area {
|
|
288
|
+
width: 100%;
|
|
289
|
+
border-collapse: collapse;
|
|
290
|
+
margin-top: 10px;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
.list_area th,
|
|
294
|
+
.list_area td {
|
|
295
|
+
padding: 8px;
|
|
296
|
+
text-align: left;
|
|
297
|
+
border-bottom: 1px solid #ddd;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
.list_area th {
|
|
301
|
+
background-color: #f2f2f2;
|
|
302
|
+
position: sticky;
|
|
303
|
+
top: 0;
|
|
304
|
+
z-index: 1;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
.list_area tr:hover {
|
|
308
|
+
background-color: #f5f5f5;
|
|
309
|
+
}
|
|
310
|
+
</style>
|
|
@@ -4,7 +4,14 @@
|
|
|
4
4
|
<criteria @condition-changed='$parent.selfSearch' partial='criteria' v-ref:cri>
|
|
5
5
|
<div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
|
|
6
6
|
<div class="row">
|
|
7
|
-
<res-select-group :style="$parent.$parent.style" :show-component="['company'
|
|
7
|
+
<res-select-group :style="$parent.$parent.style" :show-component="['company']" :initres="$parent.$parent.initres" @re-res="$parent.$parent.getorg" v-ref:sel></res-select-group>
|
|
8
|
+
<div class="form-group" :class="{'col-sm-2':!$parent.$parent.$parent.isdetail, 'col-sm-3':$parent.$parent.$parent.isdetail}"
|
|
9
|
+
v-if="!$parent.$parent.downshow&&!$parent.$parent.$parent.isdetail">
|
|
10
|
+
<label class="font_normal_body">地  址</label>
|
|
11
|
+
<input :size="model.f_street ? model.f_address.length * 2 : 4" class="input_search" condition="f_street like '%{}%'" placeholder='区/县' style="width:60%"
|
|
12
|
+
type="text"
|
|
13
|
+
v-model="model.f_street">
|
|
14
|
+
</div>
|
|
8
15
|
<div class="form-group" :class="{'col-sm-2':!$parent.$parent.$parent.isdetail, 'col-sm-3':$parent.$parent.$parent.isdetail}">
|
|
9
16
|
<label class="font_normal_body">用户编号</label>
|
|
10
17
|
<input class="input_search" condition="f_userinfo_code like '%{}%'" placeholder="用户编号" style="width:60%"
|
|
@@ -139,7 +146,7 @@
|
|
|
139
146
|
<th style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>卡号</th>
|
|
140
147
|
<th style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>电话</th>
|
|
141
148
|
<th style="text-align: center;">地址</th>
|
|
142
|
-
<th style="text-align: center;"
|
|
149
|
+
<th style="text-align: center;">区/县</th>
|
|
143
150
|
<th style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>安检日期</th>
|
|
144
151
|
<th style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>限购日期</th>
|
|
145
152
|
<th style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>操作人</th>
|
|
@@ -156,7 +163,7 @@
|
|
|
156
163
|
<td style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>{{row.f_card_id}}</td>
|
|
157
164
|
<td style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>{{row.f_user_phone}}</td>
|
|
158
165
|
<td style="text-align: center;">{{row.f_address}}</td>
|
|
159
|
-
<td style="text-align: center;">{{row.
|
|
166
|
+
<td style="text-align: center;">{{row.f_street}}</td>
|
|
160
167
|
<td style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>{{row.f_last_check_date}}</td>
|
|
161
168
|
<td style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>{{row.f_parameter_value}}</td>
|
|
162
169
|
<td style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>{{row.f_operator}}</td>
|
|
@@ -207,8 +214,8 @@
|
|
|
207
214
|
'f_last_check_date': '安检日期',
|
|
208
215
|
'f_parameter_value': '限购日期',
|
|
209
216
|
'f_comments': '限购原因',
|
|
210
|
-
'
|
|
211
|
-
'
|
|
217
|
+
'f_user_type': '用户类型',
|
|
218
|
+
'f_street': '区/县'
|
|
212
219
|
}
|
|
213
220
|
}
|
|
214
221
|
},
|
|
@@ -223,6 +230,7 @@
|
|
|
223
230
|
ready () {
|
|
224
231
|
this.getAuthority()
|
|
225
232
|
this.search()
|
|
233
|
+
this.getAreaAddressList()
|
|
226
234
|
},
|
|
227
235
|
methods: {
|
|
228
236
|
selected (row) {
|
|
@@ -235,6 +243,7 @@
|
|
|
235
243
|
this.blackImport = '黑名单导入'
|
|
236
244
|
}
|
|
237
245
|
},
|
|
246
|
+
|
|
238
247
|
async getRes (condition, obj) {
|
|
239
248
|
console.log('condition =', condition)
|
|
240
249
|
console.log('obj =', obj)
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="basic-main" style="height: 98%">
|
|
3
|
+
<div class="flex">
|
|
4
|
+
<criteria-paged :model="model" v-ref:paged>
|
|
5
|
+
<criteria partial='criteria' v-ref:criteria @condition-changed='$parent.selfSearch'>
|
|
6
|
+
<div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
|
|
7
|
+
<div class="row">
|
|
8
|
+
<!-- 用户姓名查询 -->
|
|
9
|
+
<div class="col-sm-2 form-group">
|
|
10
|
+
<label class="font_normal_body">用户姓名</label>
|
|
11
|
+
<input type="text" class="input_search"
|
|
12
|
+
style="width:60%"
|
|
13
|
+
v-model="model.f_user_name"
|
|
14
|
+
condition="f_user_name like '%{}%'"
|
|
15
|
+
placeholder="请输入用户姓名"/>
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
<!-- 用户标识查询 -->
|
|
19
|
+
<div class="col-sm-2 form-group">
|
|
20
|
+
<label class="font_normal_body">用户标识</label>
|
|
21
|
+
<input type="text" class="input_search"
|
|
22
|
+
style="width:60%"
|
|
23
|
+
v-model="model.f_user_id"
|
|
24
|
+
condition="f_user_id like '%{}%'"
|
|
25
|
+
placeholder="请输入用户标识"/>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<!-- 回复人查询 -->
|
|
29
|
+
<div class="col-sm-2 form-group">
|
|
30
|
+
<label class="font_normal_body">回复人</label>
|
|
31
|
+
<input type="text" class="input_search"
|
|
32
|
+
style="width:60%"
|
|
33
|
+
v-model="model.f_attendant"
|
|
34
|
+
condition="f_attendant like '%{}%'"
|
|
35
|
+
placeholder="请输入回复人"/>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<!-- 查询按钮 -->
|
|
39
|
+
<div class="span col-sm-2 form-group button-range" style="float: right">
|
|
40
|
+
<button class="button_search button_spacing" @click="search()" v-el:cx>查询</button>
|
|
41
|
+
<button class="button_clear button_spacing" @click="clear">清空</button>
|
|
42
|
+
<div style="float: right" class="button_spacing"
|
|
43
|
+
:class="{'button_shrink_top': criteriaShow,'button_shrink_bottom': !criteriaShow}"
|
|
44
|
+
@click="criteriaShow = !criteriaShow"></div>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<!-- 扩展查询条件 -->
|
|
49
|
+
<div class="row" v-show="criteriaShow">
|
|
50
|
+
<!-- 转人工时间范围 -->
|
|
51
|
+
<div class="col-sm-3 form-group">
|
|
52
|
+
<label class="font_normal_body">转人工起始时间</label>
|
|
53
|
+
<datepicker placeholder='转人工起始时间' style="width:60%"
|
|
54
|
+
v-model="model.ivrStartDate"
|
|
55
|
+
:value.sync="model.ivrStartDate"
|
|
56
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
57
|
+
:show-reset-button="true"
|
|
58
|
+
condition="f_ivr_time >= '{}'">
|
|
59
|
+
</datepicker>
|
|
60
|
+
</div>
|
|
61
|
+
<div class="col-sm-3 form-group">
|
|
62
|
+
<label class="font_normal_body">转人工结束时间</label>
|
|
63
|
+
<datepicker placeholder='转人工结束时间' style="width:60%"
|
|
64
|
+
v-model="model.ivrEndDate"
|
|
65
|
+
:value.sync="model.ivrEndDate"
|
|
66
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
67
|
+
:show-reset-button="true"
|
|
68
|
+
condition="f_ivr_time <= '{}'">
|
|
69
|
+
</datepicker>
|
|
70
|
+
</div>
|
|
71
|
+
|
|
72
|
+
<!-- 人工回复时间范围 -->
|
|
73
|
+
<div class="col-sm-3 form-group">
|
|
74
|
+
<label class="font_normal_body">回复起始时间</label>
|
|
75
|
+
<datepicker placeholder='回复起始时间' style="width:60%"
|
|
76
|
+
v-model="model.msgStartDate"
|
|
77
|
+
:value.sync="model.msgStartDate"
|
|
78
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
79
|
+
:show-reset-button="true"
|
|
80
|
+
condition="f_msg_time >= '{}'">
|
|
81
|
+
</datepicker>
|
|
82
|
+
</div>
|
|
83
|
+
<div class="col-sm-3 form-group">
|
|
84
|
+
<label class="font_normal_body">回复结束时间</label>
|
|
85
|
+
<datepicker placeholder='回复结束时间' style="width:60%"
|
|
86
|
+
v-model="model.msgEndDate"
|
|
87
|
+
:value.sync="model.msgEndDate"
|
|
88
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
89
|
+
:show-reset-button="true"
|
|
90
|
+
condition="f_msg_time <= '{}'">
|
|
91
|
+
</datepicker>
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
</criteria>
|
|
96
|
+
|
|
97
|
+
<!-- 数据表格 -->
|
|
98
|
+
<data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
|
|
99
|
+
<template partial='head'>
|
|
100
|
+
<tr>
|
|
101
|
+
<th>序号</th>
|
|
102
|
+
<th>用户姓名</th>
|
|
103
|
+
<th>用户标识</th>
|
|
104
|
+
<th>转人工时间</th>
|
|
105
|
+
<th>人工回复时间</th>
|
|
106
|
+
<th>回复人</th>
|
|
107
|
+
<th>评价等级</th>
|
|
108
|
+
</tr>
|
|
109
|
+
</template>
|
|
110
|
+
<template partial='body'>
|
|
111
|
+
<tr>
|
|
112
|
+
<td style="text-align:center">{{$index+1}}</td>
|
|
113
|
+
<td style="text-align:center">{{row.f_user_name}}</td>
|
|
114
|
+
<td style="text-align:center">{{row.f_user_id}}</td>
|
|
115
|
+
<td style="text-align:center">{{row.f_ivr_time}}</td>
|
|
116
|
+
<td style="text-align:center">{{row.f_msg_time}}</td>
|
|
117
|
+
<td style="text-align:center">{{row.f_attendant}}</td>
|
|
118
|
+
<td style="text-align:center">{{row.f_rate}}</td>
|
|
119
|
+
</tr>
|
|
120
|
+
</template>
|
|
121
|
+
</data-grid>
|
|
122
|
+
</criteria-paged>
|
|
123
|
+
</div>
|
|
124
|
+
</div>
|
|
125
|
+
</template>
|
|
126
|
+
|
|
127
|
+
<script>
|
|
128
|
+
import { PagedList } from 'vue-client'
|
|
129
|
+
|
|
130
|
+
export default {
|
|
131
|
+
title: '转人工管理',
|
|
132
|
+
data() {
|
|
133
|
+
return {
|
|
134
|
+
model: new PagedList('rs/sql/saleSingleTable', 20, {
|
|
135
|
+
tablename: '`t_text_log`',
|
|
136
|
+
items: '`*`'
|
|
137
|
+
}),
|
|
138
|
+
criteriaShow: false,
|
|
139
|
+
condition2: '',
|
|
140
|
+
rateOptions: [
|
|
141
|
+
{label: '全部', value: ''},
|
|
142
|
+
{label: '1星', value: 1},
|
|
143
|
+
{label: '2星', value: 2},
|
|
144
|
+
{label: '3星', value: 3},
|
|
145
|
+
{label: '4星', value: 4},
|
|
146
|
+
{label: '5星', value: 5}
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
ready() {
|
|
151
|
+
this.search()
|
|
152
|
+
},
|
|
153
|
+
methods: {
|
|
154
|
+
search() {
|
|
155
|
+
this.selfSearch({condition: '1=1', model: this.model})
|
|
156
|
+
},
|
|
157
|
+
|
|
158
|
+
clear() {
|
|
159
|
+
// 清空所有查询条件
|
|
160
|
+
this.model.f_user_name = ''
|
|
161
|
+
this.model.f_user_id = ''
|
|
162
|
+
this.model.f_attendant = ''
|
|
163
|
+
this.model.f_rate = ''
|
|
164
|
+
this.model.ivrStartDate = ''
|
|
165
|
+
this.model.ivrEndDate = ''
|
|
166
|
+
this.model.msgStartDate = ''
|
|
167
|
+
this.model.msgEndDate = ''
|
|
168
|
+
|
|
169
|
+
// 清空后自动查询
|
|
170
|
+
this.search()
|
|
171
|
+
},
|
|
172
|
+
|
|
173
|
+
selfSearch(args) {
|
|
174
|
+
let condition = args.condition || '1=1'
|
|
175
|
+
|
|
176
|
+
// 用户姓名条件
|
|
177
|
+
if (this.model.f_user_name) {
|
|
178
|
+
condition += ` and f_user_name like '%${this.model.f_user_name}%'`
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
// 用户标识条件
|
|
182
|
+
if (this.model.f_user_id) {
|
|
183
|
+
condition += ` and f_user_id like '%${this.model.f_user_id}%'`
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// 回复人条件
|
|
187
|
+
if (this.model.f_attendant) {
|
|
188
|
+
condition += ` and f_attendant like '%${this.model.f_attendant}%'`
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
// 转人工时间范围条件 - 使用 SQL Server 兼容的格式
|
|
193
|
+
if (this.model.ivrStartDate && this.model.ivrEndDate) {
|
|
194
|
+
condition += ` and f_ivr_time between '${this.model.ivrStartDate}' and '${this.model.ivrEndDate}'`
|
|
195
|
+
} else if (this.model.ivrStartDate) {
|
|
196
|
+
condition += ` and f_ivr_time >= '${this.model.ivrStartDate}'`
|
|
197
|
+
} else if (this.model.ivrEndDate) {
|
|
198
|
+
condition += ` and f_ivr_time <= '${this.model.ivrEndDate}'`
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// 人工回复时间范围条件 - 使用 SQL Server 兼容的格式
|
|
202
|
+
if (this.model.msgStartDate && this.model.msgEndDate) {
|
|
203
|
+
condition += ` and f_msg_time between '${this.model.msgStartDate}' and '${this.model.msgEndDate}'`
|
|
204
|
+
} else if (this.model.msgStartDate) {
|
|
205
|
+
condition += ` and f_msg_time >= '${this.model.msgStartDate}'`
|
|
206
|
+
} else if (this.model.msgEndDate) {
|
|
207
|
+
condition += ` and f_msg_time <= '${this.model.msgEndDate}'`
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
console.log('转人工管理查询条件:', condition)
|
|
211
|
+
this.condition2 = condition
|
|
212
|
+
this.model.search(condition, args.model)
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
</script>
|
|
217
|
+
|
|
218
|
+
<style lang="less" scoped>
|
|
219
|
+
</style>
|
package/src/main.js
CHANGED
|
@@ -2,7 +2,7 @@ import Vue from 'vue'
|
|
|
2
2
|
import all from 'vue-client/src/all'
|
|
3
3
|
import App from './App'
|
|
4
4
|
import system from 'system-clients/src/system'
|
|
5
|
-
import FilialeSale from './filiale/
|
|
5
|
+
import FilialeSale from './filiale/dexin/sale'
|
|
6
6
|
import sale from './sale'
|
|
7
7
|
import address from 'address-client/src/address'
|
|
8
8
|
import ldap from 'ldap-clients/src/ldap'
|
|
@@ -455,6 +455,7 @@ let CardService = {
|
|
|
455
455
|
// 无卡收费
|
|
456
456
|
noCardSellGas (model, row) {
|
|
457
457
|
let f_serial_number = ''
|
|
458
|
+
let f_privilege_gas = 0
|
|
458
459
|
if (model.f_serial_number) {
|
|
459
460
|
f_serial_number = model.f_serial_number
|
|
460
461
|
}
|
|
@@ -462,6 +463,9 @@ let CardService = {
|
|
|
462
463
|
if (model.f_write_card) {
|
|
463
464
|
f_write_card = model.f_write_card
|
|
464
465
|
}
|
|
466
|
+
if (model.f_privilege_gas) {
|
|
467
|
+
f_privilege_gas = model.f_privilege_gas
|
|
468
|
+
}
|
|
465
469
|
let param = {
|
|
466
470
|
f_userinfo_id: row.f_userinfo_id,
|
|
467
471
|
f_serial_number: f_serial_number,
|
|
@@ -470,6 +474,10 @@ let CardService = {
|
|
|
470
474
|
f_pregas: model.f_pregas,
|
|
471
475
|
f_write_money: model.f_write_money,
|
|
472
476
|
f_balance: row.f_balance,
|
|
477
|
+
// 优惠金额
|
|
478
|
+
f_privilege_money: model.f_privilege_money,
|
|
479
|
+
f_privilege_gas: f_privilege_gas,
|
|
480
|
+
f_after_discount: model.f_after_discount,
|
|
473
481
|
f_preamount: model.f_preamount,
|
|
474
482
|
f_total_gas: (row.f_total_gas - 0) + (model.f_pregas - 0),
|
|
475
483
|
f_write_totalgas: (row.f_write_totalgas - 0) + (model.f_pregas - 0),
|