sale-client 3.6.381 → 3.6.382
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/build/dev-server.js +5 -2
- package/package.json +1 -1
- package/src/components/FilesManage/UserDeviceInfoTest.vue +1 -0
- package/src/components/FilesManage/UserMeterInfoTest.vue +2 -2
- package/src/components/charge/business/refund/IOTRefund.vue +16 -1
- package/src/components/charge/business/refund/machineRefund.vue +18 -7
- package/src/components/revenue/comprehen/ComprehenOperation/GiftFee/icTable.vue +13 -3
- package/src/components/revenue/comprehen/ComprehenOperation/GiftFee/iotTable.vue +22 -5
- package/src/components/revenue/comprehen/ComprehenOperation/removeTable.vue +1 -0
- package/src/components/revenue/comprehen/ComprehenOperation/removeTableCancel.vue +2 -2
- package/src/filiale/qingjian/IOTRefund.vue +424 -0
- package/src/filiale/qingjian/sale.js +2 -0
- package/src/filiale/rongcheng/FilesManageNew/MeterinfoTest.vue +6 -0
- package/src/filiale/rongcheng/MeterinfoTest.vue +6 -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, v4Url ] = ['http://192.168.50.67:30785/', 'http://
|
|
4
|
+
const [ serverRul, localUrl, v4Url ] = ['http://192.168.50.67:30785/', 'http://localhost:8080/', 'http://192.168.50.67:30785']
|
|
5
5
|
var merge = require('webpack-merge')
|
|
6
6
|
var baseConfig = require('./webpack.dev.conf')
|
|
7
7
|
var devConfig = {
|
|
@@ -42,7 +42,7 @@ var devConfig = {
|
|
|
42
42
|
target: serverRul
|
|
43
43
|
},
|
|
44
44
|
'/rs/sql/singleTable': {
|
|
45
|
-
target:
|
|
45
|
+
target: localUrl
|
|
46
46
|
},
|
|
47
47
|
'/invoice': {
|
|
48
48
|
target: serverRul
|
|
@@ -96,6 +96,9 @@ var devConfig = {
|
|
|
96
96
|
'/rs/logic': {
|
|
97
97
|
target: localUrl
|
|
98
98
|
},
|
|
99
|
+
'/rs/entity': {
|
|
100
|
+
target: localUrl
|
|
101
|
+
},
|
|
99
102
|
'/rs/sql': {
|
|
100
103
|
target: localUrl
|
|
101
104
|
},
|
package/package.json
CHANGED
|
@@ -63,6 +63,7 @@
|
|
|
63
63
|
<!-- <input type="text" class="input_search" style="width:60%" v-model="row.f_input_person"-->
|
|
64
64
|
<!-- placeholder='安装人'>-->
|
|
65
65
|
<v-select :value.sync="row.f_input_person" v-model="row.f_input_person"
|
|
66
|
+
:value-single="true"
|
|
66
67
|
:options='installperson' placeholder='安装人'
|
|
67
68
|
close-on-select></v-select>
|
|
68
69
|
</div>
|
|
@@ -35,7 +35,7 @@ export default {
|
|
|
35
35
|
devicesinfo: [],
|
|
36
36
|
show_devices: false,
|
|
37
37
|
fireinfo: {},
|
|
38
|
-
f_input_person:
|
|
38
|
+
f_input_person: '',
|
|
39
39
|
show_fire: false,
|
|
40
40
|
imgdelete: '/images/mainicon/deletedevice.png',
|
|
41
41
|
imgsrc: '/images/mainicon/biaopan.png',
|
|
@@ -111,7 +111,7 @@ export default {
|
|
|
111
111
|
this.devicesinfo = []
|
|
112
112
|
this.devicesinfo = row.devicesinfo
|
|
113
113
|
if (row.f_install_person && row.f_install_person[0]) {
|
|
114
|
-
this.f_input_person = row.f_install_person
|
|
114
|
+
this.f_input_person = row.f_install_person
|
|
115
115
|
}
|
|
116
116
|
this.devicesinfo.forEach((row) => {
|
|
117
117
|
row.devicetypes = this.$appdata.getParam('设备类型')
|
|
@@ -27,6 +27,15 @@
|
|
|
27
27
|
close-on-select clear-button>
|
|
28
28
|
</v-select>
|
|
29
29
|
</div>
|
|
30
|
+
<div class="col-sm-4 form-group">
|
|
31
|
+
<label class="font_normal_body" title="参数值:计入/不计入,计入:更新档案结余及累购,不计入:只保存记录不对档案进行操作">计入累购</label>
|
|
32
|
+
<input v-show="false" v-model="model.f_add_gas" v-validate:f_operat_type='{required: true}'>
|
|
33
|
+
<v-select :value.sync="model.f_add_gas" value-single
|
|
34
|
+
:options='addGas' placeholder='请选择'
|
|
35
|
+
selected="是否计入累购"
|
|
36
|
+
style="width:60%"
|
|
37
|
+
close-on-select></v-select>
|
|
38
|
+
</div>
|
|
30
39
|
<div class="col-sm-4 form-group" v-if="data.f_collection_type === '按气量'">
|
|
31
40
|
<label class="font_normal_body">剩余气量</label>
|
|
32
41
|
<input class="input_search" style="width:60%" type="number" v-model="data.f_balance_gas" readonly>
|
|
@@ -120,6 +129,7 @@
|
|
|
120
129
|
},
|
|
121
130
|
model: {
|
|
122
131
|
f_refund_fee: '',
|
|
132
|
+
f_add_gas: '计入',
|
|
123
133
|
f_refund_gas: '',
|
|
124
134
|
f_comments: '',
|
|
125
135
|
f_payment: '',
|
|
@@ -132,7 +142,7 @@
|
|
|
132
142
|
randomBusinessId: '',
|
|
133
143
|
resid: [], // 存放新增的f_files表中id
|
|
134
144
|
validateOk: false,
|
|
135
|
-
|
|
145
|
+
addGas: [{label: '计入', value: '计入'}, {label: '不计入', value: '不计入'}],
|
|
136
146
|
printModel: {},
|
|
137
147
|
print: false,
|
|
138
148
|
billUrl: '',
|
|
@@ -185,6 +195,7 @@
|
|
|
185
195
|
f_userfiles_id: this.data.f_userfiles_id,
|
|
186
196
|
version: this.data.version,
|
|
187
197
|
f_price: this.model.f_price,
|
|
198
|
+
f_add_gas: this.model.f_add_gas,
|
|
188
199
|
f_refund_gas: this.model.f_refund_gas,
|
|
189
200
|
f_refund_fee: this.model.f_refund_fee,
|
|
190
201
|
f_comments: this.model.f_comments,
|
|
@@ -204,6 +215,10 @@
|
|
|
204
215
|
f_depname: this.$login.f.deps
|
|
205
216
|
}
|
|
206
217
|
}
|
|
218
|
+
if (this.model.f_add_gas !== '计入') {
|
|
219
|
+
param.f_total_fee = this.data.f_total_fee
|
|
220
|
+
param.f_total_gas = this.data.f_total_gas
|
|
221
|
+
}
|
|
207
222
|
console.log('退费传参', param)
|
|
208
223
|
let res = await this.$resetpost('rs/logic/iotRefund', {data: param}, {warnMsg: `确定要对用户${this.data.f_user_name}进行退费吗?`, resolveMsg: '退费成功!!', rejectMsg: '退费失败!!请重试!!'})
|
|
209
224
|
console.log('退费', res)
|
|
@@ -26,7 +26,15 @@
|
|
|
26
26
|
close-on-select clear-button>
|
|
27
27
|
</v-select>
|
|
28
28
|
</div>
|
|
29
|
-
|
|
29
|
+
<div class="col-sm-4 form-group">
|
|
30
|
+
<label class="font_normal_body" title="参数值:计入/不计入,计入:更新档案结余及累购,不计入:只保存记录不对档案进行操作">计入累购</label>
|
|
31
|
+
<input v-show="false" v-model="model.f_add_gas" v-validate:f_operat_type='{required: true}'>
|
|
32
|
+
<v-select :value.sync="model.f_add_gas" value-single
|
|
33
|
+
:options='addGas' placeholder='请选择'
|
|
34
|
+
selected="是否计入累购"
|
|
35
|
+
style="width:60%"
|
|
36
|
+
close-on-select></v-select>
|
|
37
|
+
</div>
|
|
30
38
|
<div class="col-sm-4 form-group">
|
|
31
39
|
<label class="font_normal_body">剩余金额</label>
|
|
32
40
|
<input class="input_search" style="width:60%" type="number" v-model="data.f_balance" readonly>
|
|
@@ -90,18 +98,19 @@
|
|
|
90
98
|
showupload: false, // 默认不上传附件
|
|
91
99
|
hasPrint: false, // 默认打票
|
|
92
100
|
hasBillManage: false, // 默认不启用发票管理
|
|
93
|
-
overBalance: false,
|
|
101
|
+
overBalance: false, // 为true时退费金额可以大于余额
|
|
94
102
|
printType: '普通收据', // 收据/电子票/专用发票/国税发票
|
|
95
103
|
payment: '现金缴费',
|
|
96
104
|
billType: '燃气费'
|
|
97
105
|
},
|
|
98
106
|
model: {
|
|
99
107
|
f_refund_fee: '',
|
|
108
|
+
f_add_gas: '计入',
|
|
100
109
|
f_comments: '',
|
|
101
110
|
f_payment: '',
|
|
102
111
|
f_print: ''
|
|
103
112
|
},
|
|
104
|
-
|
|
113
|
+
addGas: [{label: '计入', value: '计入'}, {label: '不计入', value: '不计入'}],
|
|
105
114
|
blodid: '',
|
|
106
115
|
hasValidateBill: false,
|
|
107
116
|
randomBusinessId: '',
|
|
@@ -155,13 +164,13 @@
|
|
|
155
164
|
f_user_id: this.data.f_user_id,
|
|
156
165
|
f_userfiles_id: this.data.f_userfiles_id,
|
|
157
166
|
version: this.data.version,
|
|
158
|
-
f_refund_fee: this.model.f_refund_fee,
|
|
167
|
+
f_refund_fee: (this.model.f_refund_fee - 0),
|
|
159
168
|
f_comments: this.model.f_comments,
|
|
160
169
|
f_payment: this.model.f_payment[0],
|
|
161
170
|
f_print: this.model.f_print[0],
|
|
162
171
|
f_price_id: this.data.f_price_id,
|
|
163
|
-
|
|
164
|
-
f_total_fee: this.data.f_total_fee,
|
|
172
|
+
f_add_gas: this.model.f_add_gas,
|
|
173
|
+
f_total_fee: parseFloat(this.data.f_total_fee) - parseFloat(this.model.f_refund_fee),
|
|
165
174
|
f_stairprice_id: this.data.f_stairprice_id,
|
|
166
175
|
operInfo: {
|
|
167
176
|
f_operator: this.$login.f.name,
|
|
@@ -172,7 +181,9 @@
|
|
|
172
181
|
f_depname: this.$login.f.deps
|
|
173
182
|
}
|
|
174
183
|
}
|
|
175
|
-
|
|
184
|
+
if (this.model.f_add_gas !== '计入') {
|
|
185
|
+
param.f_total_fee = this.data.f_total_fee
|
|
186
|
+
}
|
|
176
187
|
let res = await this.$resetpost('rs/logic/machineRefund', {data: param}, {warnMsg: `确定要对用户${this.data.f_user_name}进行退费吗?`, resolveMsg: '退费成功!!', rejectMsg: '退费失败!!请重试!!'})
|
|
177
188
|
console.log('机表退费返回的数据==========>', res)
|
|
178
189
|
let param1 = []
|
|
@@ -20,6 +20,16 @@
|
|
|
20
20
|
<!-- </v-select>-->
|
|
21
21
|
<!-- </div>-->
|
|
22
22
|
</div>
|
|
23
|
+
<div class="col-sm-4 form-group">
|
|
24
|
+
<label class="font_normal_body" title="参数值:计入/不计入,计入:更新档案结余及累购,不计入:只保存记录不对档案进行操作">计入累购</label>
|
|
25
|
+
<input v-show="false" v-model="model.f_add_gas" v-validate:f_operat_type='{required: true}'>
|
|
26
|
+
<v-select :value.sync="model.f_add_gas" value-single
|
|
27
|
+
:options='addGas' placeholder='请选择'
|
|
28
|
+
|
|
29
|
+
selected="是否计入累购"
|
|
30
|
+
style="width:60%"
|
|
31
|
+
close-on-select></v-select>
|
|
32
|
+
</div>
|
|
23
33
|
<div class="row" v-if="!isGas">
|
|
24
34
|
<div class="col-sm-4">
|
|
25
35
|
<label for="f_preamount" class=" font_normal_body">金额:</label>
|
|
@@ -131,8 +141,8 @@
|
|
|
131
141
|
model: {
|
|
132
142
|
f_pregas: 0,
|
|
133
143
|
f_preamount: 0,
|
|
134
|
-
f_reason: ''
|
|
135
|
-
|
|
144
|
+
f_reason: '',
|
|
145
|
+
f_add_gas: '不计入'
|
|
136
146
|
},
|
|
137
147
|
print: false
|
|
138
148
|
}
|
|
@@ -191,10 +201,10 @@
|
|
|
191
201
|
f_curbalance: this.row.f_balance,
|
|
192
202
|
f_card_id: this.row.f_card_id,
|
|
193
203
|
f_comments: this.model.f_reason,
|
|
194
|
-
f_add_gas: '计入',
|
|
195
204
|
f_type: this.model.f_pregas != 0 ? '卡表赠气' : '卡表赠费',
|
|
196
205
|
f_user_id: this.row.f_user_id,
|
|
197
206
|
f_userfiles_id: this.row.f_userfiles_id,
|
|
207
|
+
f_add_gas: this.model.f_add_gas,
|
|
198
208
|
f_userinfo_id: this.row.f_userinfo_id,
|
|
199
209
|
f_user_name: this.row.f_user_name,
|
|
200
210
|
f_user_type: this.row.f_user_type,
|
|
@@ -18,6 +18,16 @@
|
|
|
18
18
|
style="width:60%"
|
|
19
19
|
close-on-select></v-select>
|
|
20
20
|
</div>
|
|
21
|
+
<div class="col-sm-4 form-group">
|
|
22
|
+
<label class="font_normal_body" title="参数值:计入/不计入,计入:更新档案结余及累购,不计入:只保存记录不对档案进行操作">计入累购</label>
|
|
23
|
+
<input v-show="false" v-model="model.f_add_gas" v-validate:f_operat_type='{required: true}'>
|
|
24
|
+
<v-select :value.sync="model.f_add_gas" value-single
|
|
25
|
+
:options='addGas' placeholder='请选择'
|
|
26
|
+
|
|
27
|
+
selected="是否计入累购"
|
|
28
|
+
style="width:60%"
|
|
29
|
+
close-on-select></v-select>
|
|
30
|
+
</div>
|
|
21
31
|
<div class="col-sm-4 form-group"></div>
|
|
22
32
|
|
|
23
33
|
<div v-if="this.row.f_collection_type==='按金额'" class="col-sm-4 form-group"
|
|
@@ -52,13 +62,17 @@
|
|
|
52
62
|
<!--<print-bill :show="print" :bill-config='config' :bill-data='billData' v-on:toggle="clean" @printok="printok" :data='printModel' v-ref:printbill></print-bill>-->
|
|
53
63
|
</div>
|
|
54
64
|
<upload :blodid="row.f_userinfo_id" v-ref:upload :businessid="randomBusinessId" :isremark="true" fusetype="赠气"></upload>
|
|
55
|
-
|
|
56
65
|
</template>
|
|
57
|
-
|
|
58
|
-
|
|
59
66
|
<script>
|
|
60
67
|
import Vue from 'vue'
|
|
61
|
-
|
|
68
|
+
let readyGen = async function (self) {
|
|
69
|
+
await self.$getConfig(self, 'iotTable')
|
|
70
|
+
if (self.config.addgas) {
|
|
71
|
+
self.model.f_add_gas = '计入'
|
|
72
|
+
} else {
|
|
73
|
+
self.model.f_add_gas = '计入'
|
|
74
|
+
}
|
|
75
|
+
}
|
|
62
76
|
export default {
|
|
63
77
|
title: '赠气赠费',
|
|
64
78
|
data () {
|
|
@@ -66,6 +80,7 @@ export default {
|
|
|
66
80
|
blodid: '',
|
|
67
81
|
showupload: false,
|
|
68
82
|
randomBusinessId: '',
|
|
83
|
+
addGas: [{label: '计入', value: '计入'}, {label: '不计入', value: '不计入'}],
|
|
69
84
|
resid: [], // 存放新增的f_files表中id
|
|
70
85
|
operator_type: [{label: '赠费', value: '物联网赠费'}],
|
|
71
86
|
operator_type2: [{label: '赠气', value: '物联网赠气'}],
|
|
@@ -73,7 +88,7 @@ export default {
|
|
|
73
88
|
f_operat_type: '',
|
|
74
89
|
f_pregas: 0,
|
|
75
90
|
f_preamount: 0,
|
|
76
|
-
|
|
91
|
+
f_add_gas: '计入',
|
|
77
92
|
f_comments: ''
|
|
78
93
|
}
|
|
79
94
|
|
|
@@ -81,6 +96,7 @@ export default {
|
|
|
81
96
|
},
|
|
82
97
|
props: ['row'],
|
|
83
98
|
ready () {
|
|
99
|
+
readyGen(this)
|
|
84
100
|
// this.blodid = this.row.f_userinfo_id
|
|
85
101
|
this.getRandomId()
|
|
86
102
|
if (this.row.f_collection_type === '按气量') {
|
|
@@ -116,6 +132,7 @@ export default {
|
|
|
116
132
|
f_user_id: this.row.f_user_id,
|
|
117
133
|
f_user_name: this.row.f_user_name,
|
|
118
134
|
f_user_type: this.row.f_user_type,
|
|
135
|
+
f_add_gas: this.model.f_add_gas,
|
|
119
136
|
f_gasproperties: this.row.f_gasproperties,
|
|
120
137
|
f_meter_type: this.row.f_meter_type,
|
|
121
138
|
f_pregas: this.model.f_pregas,
|
|
@@ -211,6 +211,7 @@ export default {
|
|
|
211
211
|
f_userinfo_id: this.row.f_userinfo_id,
|
|
212
212
|
f_user_name: this.row.f_user_name,
|
|
213
213
|
f_operat_type: '拆表',
|
|
214
|
+
f_operate_type: '拆表',
|
|
214
215
|
f_describe: `${this.$login.f.name}对客户${this.row.f_user_name}进行拆表操作`,
|
|
215
216
|
f_state: '有效',
|
|
216
217
|
f_comments: this.model.f_reason,
|
|
@@ -111,8 +111,8 @@ export default {
|
|
|
111
111
|
f_user_id: this.row.f_user_id,
|
|
112
112
|
f_userinfo_id: this.row.f_userinfo_id,
|
|
113
113
|
f_user_name: this.row.f_user_name,
|
|
114
|
-
f_operat_type: '
|
|
115
|
-
f_describe: `${this.$login.f.name}对客户${this.row.f_user_name}
|
|
114
|
+
f_operat_type: '表具复位',
|
|
115
|
+
f_describe: `${this.$login.f.name}对客户${this.row.f_user_name}进行表具复位操作`,
|
|
116
116
|
f_state: '有效',
|
|
117
117
|
f_operator: this.$login.f.name,
|
|
118
118
|
f_operatorid: this.$login.f.id,
|
|
@@ -0,0 +1,424 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="auto">
|
|
3
|
+
<validator name='v'>
|
|
4
|
+
<form novalidate class="form-horizontal">
|
|
5
|
+
<div class="row">
|
|
6
|
+
<div class="col-sm-4 form-group" :class="[$v.payment.required ? 'select-error' : '']">
|
|
7
|
+
<label class="font_normal_body" title="参数名称:付款方式">收款方式</label>
|
|
8
|
+
<input type="text" v-show="false" v-model="$refs.payment.selectedItems" v-validate:payment='{required: true }'>
|
|
9
|
+
<v-select v-model="f_payment"
|
|
10
|
+
placeholder='请选择'
|
|
11
|
+
style="width:60%"
|
|
12
|
+
:value.sync="model.f_payment"
|
|
13
|
+
:options='paytype'
|
|
14
|
+
v-ref:payment
|
|
15
|
+
close-on-select clear-button></v-select>
|
|
16
|
+
|
|
17
|
+
</div>
|
|
18
|
+
<div class="col-sm-4 form-group">
|
|
19
|
+
<label for="f_print" class="font_normal_body">打印格式</label>
|
|
20
|
+
|
|
21
|
+
<v-select id="print"
|
|
22
|
+
v-model="f_print"
|
|
23
|
+
style="width:60%"
|
|
24
|
+
placeholder='请选择'
|
|
25
|
+
:value.sync="model.f_print"
|
|
26
|
+
:options='printstyle'
|
|
27
|
+
close-on-select clear-button>
|
|
28
|
+
</v-select>
|
|
29
|
+
</div>
|
|
30
|
+
<div class="col-sm-4 form-group">
|
|
31
|
+
<label class="font_normal_body" title="参数值:计入/不计入,计入:更新档案结余及累购,不计入:只保存记录不对档案进行操作">计入累购</label>
|
|
32
|
+
<input v-show="false" v-model="model.f_add_gas" v-validate:f_operat_type='{required: true}'>
|
|
33
|
+
<v-select :value.sync="model.f_add_gas" value-single
|
|
34
|
+
:options='addGas' placeholder='请选择'
|
|
35
|
+
selected="是否计入累购"
|
|
36
|
+
style="width:60%"
|
|
37
|
+
close-on-select></v-select>
|
|
38
|
+
</div>
|
|
39
|
+
<div class="col-sm-4 form-group" v-if="data.f_collection_type === '按气量'">
|
|
40
|
+
<label class="font_normal_body">剩余气量</label>
|
|
41
|
+
<input class="input_search" style="width:60%" type="number" v-model="data.f_balance_gas" readonly>
|
|
42
|
+
</div>
|
|
43
|
+
<div class="col-sm-4 form-group" v-if="data.f_collection_type === '按气量'">
|
|
44
|
+
<label class="font_normal_body">核算单价</label>
|
|
45
|
+
<input class="input_search" style="width:60%" type="number" v-model="model.f_price" >
|
|
46
|
+
</div>
|
|
47
|
+
<div class="col-sm-4 form-group" v-if="data.f_collection_type === '按金额'">
|
|
48
|
+
<label class="font_normal_body">剩余金额</label>
|
|
49
|
+
<input class="input_search" style="width:60%" type="number" v-model="data.f_balance_amount" readonly>
|
|
50
|
+
</div>
|
|
51
|
+
<div class="col-sm-4 form-group" v-if="config.overBalance && data.f_collection_type === '按气量'"
|
|
52
|
+
:class="[$v.f_refund_gas.required || $v.f_refund_gas.dctest ? 'has-error' : 'has-success']">
|
|
53
|
+
<label class="font_normal_body">冲减气量</label>
|
|
54
|
+
<input class="input_search" style="width:60%" type="number" v-model="model.f_refund_gas"
|
|
55
|
+
v-validate:f_refund_gas='{required: true, dctest: [0, ">=" ]}' placeholder="冲减气量" >
|
|
56
|
+
</div>
|
|
57
|
+
<div class="col-sm-4 form-group" v-if="!config.overBalance && data.f_collection_type === '按气量'"
|
|
58
|
+
:class="[$v.f_refund_gas.required || $v.f_refund_gas.dctest ? 'has-error' : 'has-success']">
|
|
59
|
+
<label class="font_normal_body">冲减气量</label>
|
|
60
|
+
<input class="input_search" style="width:60%" type="number" v-model="model.f_refund_gas"
|
|
61
|
+
v-validate:f_refund_gas='{required: true, dctest: [data.f_balance_gas, "<=" ]}' placeholder="冲减气量" >
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
<div class="row">
|
|
66
|
+
|
|
67
|
+
<div class="col-sm-8">
|
|
68
|
+
<label for="f_paper_account" class="font_normal_body "> 备注 </label>
|
|
69
|
+
<input class="input_search" style="width:80%" v-model="model.f_comments">
|
|
70
|
+
</div>
|
|
71
|
+
<div class="col-sm-4 form-group" v-if="data.f_collection_type === '按气量'">
|
|
72
|
+
<label class="font_normal_body">退费金额</label>
|
|
73
|
+
<input class="input_search" style="width:60%"
|
|
74
|
+
type="number" v-model="model.f_refund_fee"
|
|
75
|
+
placeholder="退费金额">
|
|
76
|
+
</div>
|
|
77
|
+
<div class="col-sm-4 form-group" v-if="!config.overBalance && data.f_collection_type === '按金额'"
|
|
78
|
+
:class="[$v.f_refund_fee.required || $v.f_refund_fee.dctest ? 'has-error' : 'has-success']">
|
|
79
|
+
<label class="font_normal_body">退费金额</label>
|
|
80
|
+
<input class="input_search" style="width:60%" type="number" v-model="model.f_refund_fee"
|
|
81
|
+
v-validate:f_refund_fee='{required: true, dctest: [data.f_balance_amount, "<=" ]}' placeholder="退费金额">
|
|
82
|
+
</div>
|
|
83
|
+
<div class="col-sm-4 form-group" v-if="config.overBalance && data.f_collection_type === '按金额'"
|
|
84
|
+
:class="[$v.f_refund_fee.required || $v.f_refund_fee.dctest ? 'has-error' : 'has-success']">
|
|
85
|
+
<label class="font_normal_body">退费金额</label>
|
|
86
|
+
<input class="input_search" style="width:60%" type="number" v-model="model.f_refund_fee"
|
|
87
|
+
v-validate:f_refund_fee='{required: true, dctest: [0, ">=" ]}' placeholder="退费金额">
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
</form>
|
|
91
|
+
<div style="text-align:right;">
|
|
92
|
+
<button class="button_search btn-gn" @click="confirm()" :disabled='!$v.valid'>确认</button>
|
|
93
|
+
<button class="button_clear btn-gn" @click="clean()">取消</button>
|
|
94
|
+
</div>
|
|
95
|
+
</validator>
|
|
96
|
+
<validate-bill v-if="hasValidateBill" :data="model" @validate-bill="validateBill"></validate-bill>
|
|
97
|
+
<!--<print-bill :show="print" :bill-manager='config.hasBillManage' v-ref:printbill :bill-url='billUrl' v-on:toggle="clean" @printok="printok" :data='printModel'></print-bill>-->
|
|
98
|
+
<print-bill :show="print" :bill-config='config' :bill-data='billData' v-on:toggle="clean" @printok="printok" :data='printModel' v-ref:printbill></print-bill>
|
|
99
|
+
|
|
100
|
+
<!-- 弹窗结构 -->
|
|
101
|
+
<div v-if="showModal" class="modal-overlay" @click="handleClose">
|
|
102
|
+
<div class="modal-content" @click.stop>
|
|
103
|
+
<button class="close-btn1" @click="handleClose">
|
|
104
|
+
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#858282" >
|
|
105
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
|
|
106
|
+
</svg>
|
|
107
|
+
</button>
|
|
108
|
+
<h3>提示</h3>
|
|
109
|
+
<p class="modal-message"><span class="exclamation-icon">!</span>{{ modalMessage }}</p>
|
|
110
|
+
<button class="confirm-btn" @click="handleConfirm">是</button>
|
|
111
|
+
<button class="cancel-btn" @click="handleClose">否</button>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
|
|
116
|
+
<upload :blodid="data.f_userinfo_id" :businessid="randomBusinessId" isremark="true" fusetype="退费管理"></upload>
|
|
117
|
+
</template>
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
<script>
|
|
121
|
+
let readyGen = async function (self) {
|
|
122
|
+
await self.$getConfig(self, 'IOTRefund')
|
|
123
|
+
// 默认打印格式
|
|
124
|
+
self.model.f_print = self.config.printType instanceof Array ? self.config.printType : [self.config.printType]
|
|
125
|
+
self.model.f_payment = [self.config.payment]
|
|
126
|
+
|
|
127
|
+
self.model.f_use_type = self.config.billType
|
|
128
|
+
self.model.f_bill_type = self.model.f_print
|
|
129
|
+
self.hasValidateBill = self.config.hasBillManage
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export default {
|
|
133
|
+
title: '物联网表退费',
|
|
134
|
+
data () {
|
|
135
|
+
return {
|
|
136
|
+
config: {
|
|
137
|
+
showupload: false, // 默认不上传附件
|
|
138
|
+
hasPrint: false, // 默认打票
|
|
139
|
+
hasBillManage: false, // 默认不启用发票管理
|
|
140
|
+
overBalance: false, // 为true时退费金额可以大于余额
|
|
141
|
+
printType: '普通收据', // 收据/电子票/专用发票/国税发票
|
|
142
|
+
payment: '现金缴费',
|
|
143
|
+
billType: '燃气费'
|
|
144
|
+
},
|
|
145
|
+
model: {
|
|
146
|
+
f_refund_fee: '',
|
|
147
|
+
f_add_gas: '计入',
|
|
148
|
+
f_refund_gas: '',
|
|
149
|
+
f_comments: '',
|
|
150
|
+
f_payment: '',
|
|
151
|
+
f_print: '',
|
|
152
|
+
f_price: 0
|
|
153
|
+
},
|
|
154
|
+
showModal: false,
|
|
155
|
+
modalMessage: '',
|
|
156
|
+
blodid: '',
|
|
157
|
+
hasValidateBill: false,
|
|
158
|
+
randomBusinessId: '',
|
|
159
|
+
resid: [], // 存放新增的f_files表中id
|
|
160
|
+
validateOk: false,
|
|
161
|
+
addGas: [{label: '计入', value: '计入'}, {label: '不计入', value: '不计入'}],
|
|
162
|
+
printModel: {},
|
|
163
|
+
print: false,
|
|
164
|
+
billUrl: '',
|
|
165
|
+
billData: {
|
|
166
|
+
url: 'rs/report/refund_sell',
|
|
167
|
+
bill: ''
|
|
168
|
+
},
|
|
169
|
+
|
|
170
|
+
// 下拉框值
|
|
171
|
+
paytype: this.$appdata.getParam('付款方式'),
|
|
172
|
+
printstyle: this.$appdata.getParam('打印格式')
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
props: ['data'],
|
|
176
|
+
ready () {
|
|
177
|
+
readyGen(this)
|
|
178
|
+
this.getRandomId()
|
|
179
|
+
if (this.data.f_collection_type === '按气量') {
|
|
180
|
+
// this.$showAlert('按气量缴费的物联网表退费功能尚未开放!!', 'warning', 3000)
|
|
181
|
+
this.model.f_price = this.data.f_price
|
|
182
|
+
|
|
183
|
+
// this.$dispatch('refresh')
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
events: {
|
|
187
|
+
// 删除Resid数组元素
|
|
188
|
+
'delResid' (val) {
|
|
189
|
+
this.resid.$remove({id: val, f_biobid: ''})
|
|
190
|
+
// this.resid.splice(this.resid.indexOf({id:val,f_biobid:''}),1);
|
|
191
|
+
},
|
|
192
|
+
// 增加Resid数组元素
|
|
193
|
+
'resid' (val) {
|
|
194
|
+
this.resid.push({id: val, f_biobid: ''})
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
methods: {
|
|
198
|
+
showModalWithMessage(message) {
|
|
199
|
+
this.modalMessage = message;
|
|
200
|
+
this.showModal = true;
|
|
201
|
+
},
|
|
202
|
+
handleClose() {
|
|
203
|
+
this.showModal = false;
|
|
204
|
+
this.model.f_refund_fee = ''; // 重置表单数据
|
|
205
|
+
},
|
|
206
|
+
close() {
|
|
207
|
+
this.showModal = false;
|
|
208
|
+
},
|
|
209
|
+
handleConfirm() {
|
|
210
|
+
// 处理确认逻辑
|
|
211
|
+
console.log('确认按钮被点击');
|
|
212
|
+
this.model.f_refund_fee = '';
|
|
213
|
+
this.close();
|
|
214
|
+
},
|
|
215
|
+
getRandomId () {
|
|
216
|
+
this.randomBusinessId = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
|
217
|
+
let res = Math.random() * 16 | 0
|
|
218
|
+
let v = c == 'x' ? res : (res & 0x3 | 0x8)
|
|
219
|
+
return v.toString(16)
|
|
220
|
+
})
|
|
221
|
+
},
|
|
222
|
+
async confirm () {
|
|
223
|
+
if (this.data.f_meter_brand === '前锋NB物联网表') {
|
|
224
|
+
this.showModalWithMessage('此表不支持扣费,是否进行清表操作!');
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
if (this.data.f_collection_type === '按金额' && this.model.f_price) {
|
|
228
|
+
this.model.f_refund_gas = (this.model.f_refund_fee - 0) / (this.model.f_price - 0)
|
|
229
|
+
}
|
|
230
|
+
let param = {
|
|
231
|
+
f_user_id: this.data.f_user_id,
|
|
232
|
+
f_userfiles_id: this.data.f_userfiles_id,
|
|
233
|
+
version: this.data.version,
|
|
234
|
+
f_price: this.model.f_price,
|
|
235
|
+
f_add_gas: this.model.f_add_gas,
|
|
236
|
+
f_refund_gas: this.model.f_refund_gas,
|
|
237
|
+
f_refund_fee: this.model.f_refund_fee,
|
|
238
|
+
f_comments: this.model.f_comments,
|
|
239
|
+
f_collection_type: this.data.f_collection_type,
|
|
240
|
+
f_payment: this.model.f_payment[0],
|
|
241
|
+
f_print: this.model.f_print[0],
|
|
242
|
+
f_price_id: this.data.f_price_id,
|
|
243
|
+
f_total_gas: parseFloat(this.data.f_total_gas) - parseFloat(this.model.f_refund_gas),
|
|
244
|
+
f_total_fee: parseFloat(this.data.f_total_fee) - parseFloat(this.model.f_refund_fee),
|
|
245
|
+
f_stairprice_id: this.data.f_stairprice_id,
|
|
246
|
+
operInfo: {
|
|
247
|
+
f_operator: this.$login.f.name,
|
|
248
|
+
f_operatorid: this.$login.f.id,
|
|
249
|
+
f_orgid: this.$login.f.orgid,
|
|
250
|
+
f_orgname: this.$login.f.orgs,
|
|
251
|
+
f_depid: this.$login.f.depids,
|
|
252
|
+
f_depname: this.$login.f.deps
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
if (this.model.f_add_gas !== '计入') {
|
|
256
|
+
param.f_total_fee = this.data.f_total_fee
|
|
257
|
+
param.f_total_gas = this.data.f_total_gas
|
|
258
|
+
}
|
|
259
|
+
console.log('退费传参', param)
|
|
260
|
+
let res = await this.$resetpost('rs/logic/iotRefund', {data: param}, {warnMsg: `确定要对用户${this.data.f_user_name}进行退费吗?`, resolveMsg: '退费成功!!', rejectMsg: '退费失败!!请重试!!'})
|
|
261
|
+
console.log('退费', res)
|
|
262
|
+
let param1 = []
|
|
263
|
+
for (let row of this.resid) {
|
|
264
|
+
param1.push({id: row.id})
|
|
265
|
+
}
|
|
266
|
+
let data = {
|
|
267
|
+
param: param1,
|
|
268
|
+
f_blobid: res.data.id
|
|
269
|
+
}
|
|
270
|
+
await this.$resetpost('rs/logic/updatefiles', data)
|
|
271
|
+
console.log('退费this.config', this.config)
|
|
272
|
+
console.log('退费this.model', this.model)
|
|
273
|
+
if (this.config.hasPrint) {
|
|
274
|
+
if (this.model.f_print.indexOf('电子发票') == -1) {
|
|
275
|
+
console.log('this.config.hasBillManage', this.config.hasBillManage)
|
|
276
|
+
if (this.config.hasBillManage) {
|
|
277
|
+
// 启用发票管理,获取票据管理中的票号并存储记录
|
|
278
|
+
this.printModel.id = res.data.id
|
|
279
|
+
this.printModel.f_bill_type = '退费'
|
|
280
|
+
this.printModel.f_bill_style = this.model.f_print[0]
|
|
281
|
+
// this.billUrl = 'rs/report/refund_sell'
|
|
282
|
+
this.print = true
|
|
283
|
+
} else {
|
|
284
|
+
this.printModel.id = res.data.id
|
|
285
|
+
// this.billUrl = 'rs/report/refund_sell'
|
|
286
|
+
this.print = true
|
|
287
|
+
}
|
|
288
|
+
} else if (this.config.printType === '国税发票') {
|
|
289
|
+
// TODO
|
|
290
|
+
this.$dispatch('success')
|
|
291
|
+
} else if (this.config.printType === '电子发票') {
|
|
292
|
+
// TODO
|
|
293
|
+
this.$dispatch('success')
|
|
294
|
+
}
|
|
295
|
+
} else {
|
|
296
|
+
this.$dispatch('success')
|
|
297
|
+
}
|
|
298
|
+
},
|
|
299
|
+
refundChange () {
|
|
300
|
+
this.model.f_refund_fee = (this.model.f_refund_gas - 0) * (this.model.f_price - 0)
|
|
301
|
+
},
|
|
302
|
+
clean () {
|
|
303
|
+
this.$dispatch('refresh')
|
|
304
|
+
},
|
|
305
|
+
printok () {
|
|
306
|
+
this.$dispatch('success')
|
|
307
|
+
},
|
|
308
|
+
validateBill (val) {
|
|
309
|
+
this.validateOk = !val.isOk
|
|
310
|
+
this.billData.bill = val.bill
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
watch: {
|
|
314
|
+
'model.f_price' () {
|
|
315
|
+
if (this.data.f_collection_type === '按气量') {
|
|
316
|
+
this.model.f_refund_fee = (this.model.f_refund_gas - 0) * (this.model.f_price - 0)
|
|
317
|
+
}
|
|
318
|
+
},
|
|
319
|
+
'model.f_refund_gas' () {
|
|
320
|
+
if (this.data.f_collection_type === '按气量') {
|
|
321
|
+
this.model.f_refund_fee = (this.model.f_refund_gas - 0) * (this.model.f_price - 0)
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
</script>
|
|
327
|
+
<style scoped>
|
|
328
|
+
.modal-overlay {
|
|
329
|
+
position: fixed;
|
|
330
|
+
top: 0;
|
|
331
|
+
left: 0;
|
|
332
|
+
width: 100%;
|
|
333
|
+
height: 100%;
|
|
334
|
+
background: rgba(0, 0, 0, 0.5);
|
|
335
|
+
display: flex;
|
|
336
|
+
align-items: center;
|
|
337
|
+
justify-content: center;
|
|
338
|
+
z-index: 1000; /* 确保弹窗在所有内容上面 */
|
|
339
|
+
}
|
|
340
|
+
.modal-content {
|
|
341
|
+
background: #fff;
|
|
342
|
+
padding: 20px;
|
|
343
|
+
border-radius: 8px; /* 增加圆角 */
|
|
344
|
+
height: 200px;
|
|
345
|
+
width: 390px;
|
|
346
|
+
text-align: center;
|
|
347
|
+
}
|
|
348
|
+
.close-btn1 {
|
|
349
|
+
position: absolute;
|
|
350
|
+
top: -9px;
|
|
351
|
+
right: -8px;
|
|
352
|
+
background: transparent;
|
|
353
|
+
border: none;
|
|
354
|
+
color: #aaa; /* 默认颜色 */
|
|
355
|
+
font-size: 24px;
|
|
356
|
+
cursor: pointer;
|
|
357
|
+
transition: color 0.3s ease;
|
|
358
|
+
padding: 0; /* 移除内边距,确保图标对齐 */
|
|
359
|
+
}
|
|
360
|
+
.close-btn1 svg {
|
|
361
|
+
stroke: #858585; /* 使用按钮的颜色 */
|
|
362
|
+
width: 24px;
|
|
363
|
+
height: 24px;
|
|
364
|
+
}
|
|
365
|
+
.close-btn1:hover {
|
|
366
|
+
color: #333; /* 悬停时颜色 */
|
|
367
|
+
}
|
|
368
|
+
.modal-content button {
|
|
369
|
+
margin: 5px;
|
|
370
|
+
margin-top: 20px;
|
|
371
|
+
padding: 4px 17px;
|
|
372
|
+
border: none;
|
|
373
|
+
border-radius: 10px; /* 圆角按钮 */
|
|
374
|
+
color: #fff;
|
|
375
|
+
cursor: pointer;
|
|
376
|
+
font-size: 16px;
|
|
377
|
+
font-weight: bold;
|
|
378
|
+
transition: background-color 0.3s ease, transform 0.2s ease;
|
|
379
|
+
}
|
|
380
|
+
.modal-message {
|
|
381
|
+
font-size: 16px; /* 设置p标签的字体大小 */
|
|
382
|
+
}
|
|
383
|
+
.confirm-btn {
|
|
384
|
+
background-color: #3592EFFF; /* 蓝色背景 */
|
|
385
|
+
}
|
|
386
|
+
.confirm-btn:hover {
|
|
387
|
+
background-color: #1565C0;
|
|
388
|
+
transform: scale(1.05); /* 按钮放大效果 */
|
|
389
|
+
}
|
|
390
|
+
.cancel-btn {
|
|
391
|
+
background-color: #5AC0D9FF; /* 绿色背景 */
|
|
392
|
+
}
|
|
393
|
+
.cancel-btn:hover {
|
|
394
|
+
background-color: #15b3da;
|
|
395
|
+
transform: scale(1.05); /* 按钮放大效果 */
|
|
396
|
+
}
|
|
397
|
+
h3 {
|
|
398
|
+
display: block;
|
|
399
|
+
font-size: 1.4em;
|
|
400
|
+
margin-block-start: 0em;
|
|
401
|
+
margin-block-end: 1em;
|
|
402
|
+
margin-inline-start: 0px;
|
|
403
|
+
margin-inline-end: 0px;
|
|
404
|
+
font-weight: bold;
|
|
405
|
+
unicode-bidi: isolate;
|
|
406
|
+
padding-bottom: 5px; /* 底部内边距 */
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
.exclamation-icon {
|
|
410
|
+
display: inline-flex;
|
|
411
|
+
align-items: center;
|
|
412
|
+
justify-content: center;
|
|
413
|
+
width: 24px;
|
|
414
|
+
height: 24px;
|
|
415
|
+
background-color: red; /* 红底 */
|
|
416
|
+
color: white; /* 白色文字 */
|
|
417
|
+
border-radius: 50%; /* 圆形 */
|
|
418
|
+
font-size: 16px;
|
|
419
|
+
font-weight: bold;
|
|
420
|
+
margin-right: 8px; /* 图标和文字之间的间距 */
|
|
421
|
+
text-align: center;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
</style>
|
|
@@ -13,4 +13,6 @@ export default function () {
|
|
|
13
13
|
// 单个表具信息
|
|
14
14
|
Vue.component('file-meter-info', (resolve) => { require(['./MeterinfoTest'], resolve) })
|
|
15
15
|
Vue.component('user-info-detail-manage-new', (resolve) => { require(['./UserInfoDetailManageNew'], resolve) })
|
|
16
|
+
// 物联网退费管理
|
|
17
|
+
Vue.component('iot-refund', (resolve) => { require(['./IOTRefund'], resolve) })
|
|
16
18
|
}
|
|
@@ -248,6 +248,12 @@
|
|
|
248
248
|
:options='usestate' placeholder='使用状态'
|
|
249
249
|
close-on-select></v-select>
|
|
250
250
|
</div>
|
|
251
|
+
<div class="col-sm-4 form-group" >
|
|
252
|
+
<label class="font_normal_body">表具使用年限</label>
|
|
253
|
+
<input type="number" class="input_search" style="width:60%" v-model="row.f_use_limit"
|
|
254
|
+
:value.sync="row.f_use_limit"
|
|
255
|
+
placeholder='表具使用年限' >
|
|
256
|
+
</div>
|
|
251
257
|
<div style="" class="col-sm-6 form-group">
|
|
252
258
|
<label for="f_userfiles_address" class="font_normal_body ">安装地址 </label>
|
|
253
259
|
<input class="input_search" style="width:80%" v-model="row.f_userfiles_address"/>
|
|
@@ -288,6 +288,12 @@
|
|
|
288
288
|
:options='usestate' placeholder='使用状态'
|
|
289
289
|
close-on-select></v-select>
|
|
290
290
|
</div>
|
|
291
|
+
<div class="col-sm-4 form-group" >
|
|
292
|
+
<label class="font_normal_body">表具使用年限</label>
|
|
293
|
+
<input type="number" class="input_search" style="width:60%" v-model="row.f_use_limit"
|
|
294
|
+
:value.sync="row.f_use_limit"
|
|
295
|
+
placeholder='表具使用年限' >
|
|
296
|
+
</div>
|
|
291
297
|
<div style="" class="col-sm-8 form-group">
|
|
292
298
|
<label for="f_userfiles_address" class="font_normal_body "> 用气点名</label>
|
|
293
299
|
<input class="input_search" style="width:80%" v-model="row.f_userfiles_address"/>
|