apply-clients 3.5.5-56 → 3.5.5-58
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/package.json
CHANGED
|
@@ -1123,14 +1123,14 @@
|
|
|
1123
1123
|
// 搜索楼号
|
|
1124
1124
|
async 'searchbuilding' (index) {
|
|
1125
1125
|
this.setLabelValue('楼号/组', null)
|
|
1126
|
-
if (isEmpty(this.
|
|
1126
|
+
if (isEmpty(this.show_data.f_residential_area)){
|
|
1127
1127
|
return
|
|
1128
1128
|
}
|
|
1129
1129
|
let data = {
|
|
1130
1130
|
items:'b.f_building',
|
|
1131
1131
|
orderitem: 'b.id',
|
|
1132
1132
|
tablename: 't_building b left join t_area a on b.f_residential_area_id = a.id',
|
|
1133
|
-
condition: `b.f_filialeid = '${this.$login.f.orgid}' and b.f_residential_area like '%${this.
|
|
1133
|
+
condition: `b.f_filialeid = '${this.$login.f.orgid}' and b.f_residential_area like '%${this.show_data.f_residential_area}' and a.f_street = '${this.show_data.f_street}'`
|
|
1134
1134
|
}
|
|
1135
1135
|
let http = new HttpResetClass()
|
|
1136
1136
|
let res = await http.load(
|
|
@@ -1,524 +1,524 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div>
|
|
3
|
-
<div class="col-sm-12 col-xs-12 form-group app-btn">
|
|
4
|
-
<button v-show="Vue.user.f_role_name.includes('报建收费')" class="btn btn-info" @click.prevent="showCharge = true">收费</button>
|
|
5
|
-
</div>
|
|
6
|
-
<div class="col-sm-12 col-xs-12">
|
|
7
|
-
<list :model="model" partial='list'>
|
|
8
|
-
<div partial class="auto app-text panel">
|
|
9
|
-
<div class="panel-body panel-self">
|
|
10
|
-
<div class="row">
|
|
11
|
-
<p class="col-xs-4 text-left font"><b>收费金额</b></p>
|
|
12
|
-
<p class="col-xs-8 text-left input-font">{{ row.f_charge_money }}</p>
|
|
13
|
-
</div>
|
|
14
|
-
<div class="row">
|
|
15
|
-
<p class="col-xs-4 text-left font"><b>收费环节</b></p>
|
|
16
|
-
<p class="col-xs-8 text-left input-font">{{ row.defname }}</p>
|
|
17
|
-
</div>
|
|
18
|
-
<div class="row">
|
|
19
|
-
<p class="col-xs-4 text-left font"><b>收费项目</b></p>
|
|
20
|
-
<p class="col-xs-8 text-left input-font">{{ row.f_payment_term }}</p>
|
|
21
|
-
</div>
|
|
22
|
-
<div class="row">
|
|
23
|
-
<p class="col-xs-4 text-left font"><b>付款方式</b></p>
|
|
24
|
-
<p class="col-xs-8 text-left input-font">{{ row.f_payment_method }}</p>
|
|
25
|
-
</div>
|
|
26
|
-
<div class="row">
|
|
27
|
-
<p class="col-xs-4 text-left font"><b>收费人员</b></p>
|
|
28
|
-
<p class="col-xs-8 text-left input-font">{{ row.f_charge_collectors }}</p>
|
|
29
|
-
</div>
|
|
30
|
-
<div class="row">
|
|
31
|
-
<p class="col-xs-4 text-left font"><b>实际收款日期</b></p>
|
|
32
|
-
<p class="col-xs-8 text-left input-font">{{row.f_actual_date}}</p>
|
|
33
|
-
</div>
|
|
34
|
-
<div class="row">
|
|
35
|
-
<p class="col-xs-4 text-left font"><b>收费日期</b></p>
|
|
36
|
-
<p class="col-xs-8 text-left input-font">{{ row.f_charge_date }}</p>
|
|
37
|
-
</div>
|
|
38
|
-
<div class="row">
|
|
39
|
-
<p class="col-xs-4 text-left font"><b>收费状态</b></p>
|
|
40
|
-
<p class="col-xs-8 text-left input-font">{{ row.f_charge_status }}</p>
|
|
41
|
-
</div>
|
|
42
|
-
<div class="row">
|
|
43
|
-
<p class="col-xs-4 text-left font"><b>确认人</b></p>
|
|
44
|
-
<p class="col-xs-8 text-left input-font">{{ row.f_confirm_person }}</p>
|
|
45
|
-
</div>
|
|
46
|
-
<div class="row">
|
|
47
|
-
<p class="col-xs-4 text-left font"><b>确认时间</b></p>
|
|
48
|
-
<p class="col-xs-8 text-left input-font">{{ row.f_confirm_date }}</p>
|
|
49
|
-
</div>
|
|
50
|
-
<div class="row">
|
|
51
|
-
<button v-if="row.f_charge_status !== '退款'&& row.f_charge_status !== '作废' && $parent.$parent.isEmpty1(row.f_confirm_person)&& Vue.user.f_role_name.includes('确认收款')" style="background-color:#499edf;float: right" class="btn btn-info" @click="$parent.$parent.showConfirmModal(row)">确认收款</button>
|
|
52
|
-
</div>
|
|
53
|
-
</div>
|
|
54
|
-
</div>
|
|
55
|
-
</list>
|
|
56
|
-
</div>
|
|
57
|
-
<modal v-if="showCharge" :show.sync="showCharge" v-ref:modal :large="true" :backdrop="false" title="收费明细">
|
|
58
|
-
<header slot="modal-header" class="modal-header">
|
|
59
|
-
<button type="button" class="close" @click="closeModal"><span>×</span></button>
|
|
60
|
-
<h4 class="modal-title">收费明细</h4>
|
|
61
|
-
</header>
|
|
62
|
-
<article slot="modal-body" class="modal-body clearfix">
|
|
63
|
-
<div v-for="(i, item) in charge.charges" class="form-group col-sm-12 panel panel-info">
|
|
64
|
-
<div class="panel-heading head col-sm-12" style="background-color: #e8f4ff;margin-bottom: 10px">
|
|
65
|
-
<div class="col-sm-6 text-left">收费项目{{$index+1}}信息</div>
|
|
66
|
-
<div class="col-sm-6 text-right"><button
|
|
67
|
-
class="button_delete button_spacing"
|
|
68
|
-
v-if="!item.f_userfiles_id"
|
|
69
|
-
@click.prevent="deleteUserFile(i)"
|
|
70
|
-
>删除</button></div>
|
|
71
|
-
</div>
|
|
72
|
-
<div class="form-group col-sm-12">
|
|
73
|
-
<label class="col-sm-2 control-label">收费项目:</label>
|
|
74
|
-
<div class="col-sm-10">
|
|
75
|
-
<input-select width="100%" class="select select_list" placeholder='请选择'
|
|
76
|
-
v-model="item.f_payment_term"
|
|
77
|
-
:value.sync="item.f_payment_term"
|
|
78
|
-
:options='paymentTerm'
|
|
79
|
-
:value-single="true"
|
|
80
|
-
close-on-select ></input-select>
|
|
81
|
-
</div>
|
|
82
|
-
</div>
|
|
83
|
-
<div class="form-group col-sm-12">
|
|
84
|
-
<label class="col-sm-2 control-label">收费金额:</label>
|
|
85
|
-
<div class="col-sm-10">
|
|
86
|
-
<input type="text"
|
|
87
|
-
class="form-control input_view"
|
|
88
|
-
style="width: 100%"
|
|
89
|
-
placeholder="0.00"
|
|
90
|
-
@change="moneyChange(i)"
|
|
91
|
-
v-model="item.f_charge_money" />
|
|
92
|
-
</div>
|
|
93
|
-
</div>
|
|
94
|
-
<div class="form-group col-sm-12" >
|
|
95
|
-
<label class="col-sm-2 control-label">付款方式:</label>
|
|
96
|
-
<div class="col-sm-10">
|
|
97
|
-
<input-select
|
|
98
|
-
placeholder='请选择' width="100%"
|
|
99
|
-
v-model="item.f_payment_method"
|
|
100
|
-
:value.sync="item.f_payment_method"
|
|
101
|
-
:options='paymentMethod'
|
|
102
|
-
class="select select_list"
|
|
103
|
-
:value-single="true"
|
|
104
|
-
close-on-select ></input-select>
|
|
105
|
-
</div>
|
|
106
|
-
</div>
|
|
107
|
-
<div class="form-group col-sm-12">
|
|
108
|
-
<label class="col-sm-2 control-label">金额大写:</label>
|
|
109
|
-
<div class="col-sm-10">
|
|
110
|
-
<input type="text"
|
|
111
|
-
class="form-control input_view"
|
|
112
|
-
style="width: 100%"
|
|
113
|
-
:value="smalltoBIG(0)"
|
|
114
|
-
readonly
|
|
115
|
-
v-model.sync="item.f_amount_words" />
|
|
116
|
-
</div>
|
|
117
|
-
</div>
|
|
118
|
-
<div class="form-group col-sm-12">
|
|
119
|
-
<label class="col-sm-2 control-label">备注:</label>
|
|
120
|
-
<div class="col-sm-10">
|
|
121
|
-
<input type="text"
|
|
122
|
-
class="form-control input_view"
|
|
123
|
-
style="width: 100%"
|
|
124
|
-
v-model="item.f_charge_remarks" />
|
|
125
|
-
</div>
|
|
126
|
-
</div>
|
|
127
|
-
<div class="form-group col-sm-12">
|
|
128
|
-
<label class="col-sm-2 control-label">实际收款时间:</label>
|
|
129
|
-
<div class="col-sm-10">
|
|
130
|
-
<datepicker id="startDate" placeholder="实际收款时间"
|
|
131
|
-
style="width: 100%!important;"
|
|
132
|
-
v-model="item.f_actual_date"
|
|
133
|
-
:value.sync="item.f_actual_date"
|
|
134
|
-
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
135
|
-
:show-reset-button="true"
|
|
136
|
-
>
|
|
137
|
-
</datepicker>
|
|
138
|
-
</div>
|
|
139
|
-
</div>
|
|
140
|
-
</div>
|
|
141
|
-
<div class="form-group col-sm-12">
|
|
142
|
-
<label class="col-sm-2 control-label">应交总金额:</label>
|
|
143
|
-
<div class="col-sm-10">
|
|
144
|
-
<input type="text"
|
|
145
|
-
class="form-control input_view"
|
|
146
|
-
style="width: 100%"
|
|
147
|
-
readonly
|
|
148
|
-
v-model="selectdata.f_due_money" />
|
|
149
|
-
</div>
|
|
150
|
-
</div>
|
|
151
|
-
<div class="form-group col-sm-12">
|
|
152
|
-
<label class="col-sm-2 control-label">累计缴费总金额:</label>
|
|
153
|
-
<div class="col-sm-10">
|
|
154
|
-
<input type="text"
|
|
155
|
-
class="form-control input_view"
|
|
156
|
-
style="width: 100%"
|
|
157
|
-
readonly
|
|
158
|
-
v-model="selectdata.f_cumulative_payment_money" />
|
|
159
|
-
</div>
|
|
160
|
-
</div>
|
|
161
|
-
<div class="form-group col-sm-12">
|
|
162
|
-
<label class="col-sm-2 control-label">未结总金额:</label>
|
|
163
|
-
<div class="col-sm-10">
|
|
164
|
-
<input type="text"
|
|
165
|
-
class="form-control input_view"
|
|
166
|
-
style="width: 100%"
|
|
167
|
-
readonly
|
|
168
|
-
v-model="selectdata.f_surplus_money" />
|
|
169
|
-
</div>
|
|
170
|
-
</div>
|
|
171
|
-
<div class="form-group col-sm-12">
|
|
172
|
-
<label class="col-sm-2 control-label">收费环节:</label>
|
|
173
|
-
<div class="col-sm-10">
|
|
174
|
-
<input-select width="100%" class="select select_list" placeholder='请选择'
|
|
175
|
-
v-model="charge.defname"
|
|
176
|
-
:value.sync="charge.defname"
|
|
177
|
-
:options='defnames'
|
|
178
|
-
:value-single="true"
|
|
179
|
-
close-on-select ></input-select>
|
|
180
|
-
</div>
|
|
181
|
-
</div>
|
|
182
|
-
|
|
183
|
-
</article>
|
|
184
|
-
<footer slot="modal-footer" class="modal-footer">
|
|
185
|
-
<button type="button" class="btn btn-primary" @click="addcharges" >添加收费项目</button>
|
|
186
|
-
<button type="button" class="btn btn-primary" @click="saveCharge()">新增收费</button>
|
|
187
|
-
</footer>
|
|
188
|
-
</modal>
|
|
189
|
-
<modal v-if="showConfirm" :show.sync="showConfirm" v-ref:modal :backdrop="false" title="确认收款">
|
|
190
|
-
<header slot="modal-header" class="modal-header">
|
|
191
|
-
<button type="button" class="close" @click="closeModal"><span>×</span></button>
|
|
192
|
-
<h4 class="modal-title">确认收款</h4>
|
|
193
|
-
</header>
|
|
194
|
-
<article slot="modal-body" class="modal-body clearfix">
|
|
195
|
-
<div class="form-group col-sm-12">
|
|
196
|
-
<label class="col-sm-2 control-label">收费金额:</label>
|
|
197
|
-
<div class="col-sm-10">
|
|
198
|
-
<input type="text"
|
|
199
|
-
class="form-control input_view"
|
|
200
|
-
style="width: 100%"
|
|
201
|
-
readonly
|
|
202
|
-
v-model="charge.f_charge_money" />
|
|
203
|
-
</div>
|
|
204
|
-
</div>
|
|
205
|
-
<div class="form-group col-sm-12">
|
|
206
|
-
<label class="col-sm-2 control-label">付款方式:</label>
|
|
207
|
-
<div class="col-sm-10">
|
|
208
|
-
<input type="text"
|
|
209
|
-
class="form-control input_view"
|
|
210
|
-
style="width: 100%"
|
|
211
|
-
readonly
|
|
212
|
-
v-model="charge.f_payment_method" />
|
|
213
|
-
</div>
|
|
214
|
-
</div>
|
|
215
|
-
<div class="form-group col-sm-12">
|
|
216
|
-
<label class="col-sm-2 control-label">金额大写:</label>
|
|
217
|
-
<div class="col-sm-10">
|
|
218
|
-
<input type="text"
|
|
219
|
-
class="form-control input_view"
|
|
220
|
-
style="width: 100%"
|
|
221
|
-
readonly
|
|
222
|
-
v-model="charge.f_amount_words" />
|
|
223
|
-
</div>
|
|
224
|
-
</div>
|
|
225
|
-
<div class="form-group col-sm-12">
|
|
226
|
-
<label class="col-sm-2 control-label">收费人员:</label>
|
|
227
|
-
<div class="col-sm-10">
|
|
228
|
-
<input type="text"
|
|
229
|
-
class="form-control input_view"
|
|
230
|
-
style="width: 100%"
|
|
231
|
-
readonly
|
|
232
|
-
v-model="charge.f_charge_collectors" />
|
|
233
|
-
</div>
|
|
234
|
-
</div>
|
|
235
|
-
<div class="form-group col-sm-12">
|
|
236
|
-
<label class="col-sm-2 control-label">确认人:</label>
|
|
237
|
-
<div class="col-sm-10">
|
|
238
|
-
<input type="text"
|
|
239
|
-
class="form-control input_view"
|
|
240
|
-
style="width: 100%"
|
|
241
|
-
v-model="charge.f_confirm_person" />
|
|
242
|
-
</div>
|
|
243
|
-
</div>
|
|
244
|
-
<div class="form-group col-sm-12">
|
|
245
|
-
<label class="col-sm-2 control-label">确认时间:</label>
|
|
246
|
-
<div class="col-sm-10">
|
|
247
|
-
<datepicker id="startDate" placeholder="确认时间"
|
|
248
|
-
style="width: 100%!important;"
|
|
249
|
-
v-model="charge.f_confirm_date"
|
|
250
|
-
:value.sync="charge.f_confirm_date"
|
|
251
|
-
:default="true"
|
|
252
|
-
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
253
|
-
:show-reset-button="true"
|
|
254
|
-
>
|
|
255
|
-
</datepicker>
|
|
256
|
-
</div>
|
|
257
|
-
</div>
|
|
258
|
-
<div class="form-group col-sm-12">
|
|
259
|
-
<label class="col-sm-2 control-label">备注:</label>
|
|
260
|
-
<div class="col-sm-10">
|
|
261
|
-
<input type="text"
|
|
262
|
-
class="form-control input_view"
|
|
263
|
-
style="width: 100%"
|
|
264
|
-
v-model="charge.f_charge_remarks" />
|
|
265
|
-
</div>
|
|
266
|
-
</div>
|
|
267
|
-
</article>
|
|
268
|
-
<footer slot="modal-footer" class="modal-footer">
|
|
269
|
-
<button type="button" class="btn btn-primary" @click="ConfirmPayment()">确认收款</button>
|
|
270
|
-
</footer>
|
|
271
|
-
</modal>
|
|
272
|
-
</div>
|
|
273
|
-
</template>
|
|
274
|
-
<script>
|
|
275
|
-
import {getNowDate,isEmpty} from '../../../components/Util'
|
|
276
|
-
import {PagedList} from 'vue-client'
|
|
277
|
-
import {HttpResetClass} from 'vue-client'
|
|
278
|
-
import Vue from "vue";
|
|
279
|
-
|
|
280
|
-
export default {
|
|
281
|
-
title: '收费管理',
|
|
282
|
-
props: {
|
|
283
|
-
selectdata: {
|
|
284
|
-
type: Object
|
|
285
|
-
},
|
|
286
|
-
mark: {
|
|
287
|
-
type: Number,
|
|
288
|
-
default: 0
|
|
289
|
-
}
|
|
290
|
-
},
|
|
291
|
-
data () {
|
|
292
|
-
return {
|
|
293
|
-
model: {
|
|
294
|
-
rows: null
|
|
295
|
-
},
|
|
296
|
-
showCharge:false,
|
|
297
|
-
showConfirm:false,
|
|
298
|
-
charge: {
|
|
299
|
-
charges:[]
|
|
300
|
-
},
|
|
301
|
-
defnames: this.$appdata.getParam(this.selectdata.f_apply_type + '付款预设')
|
|
302
|
-
}
|
|
303
|
-
},
|
|
304
|
-
ready () {
|
|
305
|
-
this.search()
|
|
306
|
-
},
|
|
307
|
-
methods: {
|
|
308
|
-
isEmpty1 (str) {
|
|
309
|
-
return str === undefined || str === null || str.toString().trim() === ''
|
|
310
|
-
},
|
|
311
|
-
// 关闭对话框
|
|
312
|
-
closeModal() {
|
|
313
|
-
this.showCharge = false
|
|
314
|
-
this.showConfirm = false
|
|
315
|
-
this.charge = {
|
|
316
|
-
charges:[]
|
|
317
|
-
}
|
|
318
|
-
this.search()
|
|
319
|
-
},
|
|
320
|
-
addcharges(){
|
|
321
|
-
this.charge.charges.push({})
|
|
322
|
-
},
|
|
323
|
-
deleteUserFile (index) {
|
|
324
|
-
this.charge.charges.splice(index, 1)
|
|
325
|
-
},
|
|
326
|
-
moneyChange (i) {
|
|
327
|
-
if (isEmpty(this.charge.charges[i].f_charge_money) || Number(this.charge.charges[i].f_charge_money) === 0) {
|
|
328
|
-
this.$showAlert('单笔收费不能为0元!!!', 'warning', 3000)
|
|
329
|
-
this.charge.charges[i].f_charge_money = null
|
|
330
|
-
return
|
|
331
|
-
}
|
|
332
|
-
if (this.selectdata.f_apply_type === '散户集体报建' && Number(this.charge.charges[i].f_charge_money) > Number(this.charge.charges[i].f_outstanding_amount)) {
|
|
333
|
-
this.$showAlert('单笔收费不能超过未交金额!!!', 'warning', 3000)
|
|
334
|
-
this.charge.charges[i].f_charge_money = null
|
|
335
|
-
return
|
|
336
|
-
}
|
|
337
|
-
if (Number(this.charge.charges[i].f_charge_money) > Number(this.selectdata.f_surplus_money)) {
|
|
338
|
-
this.$showAlert('单笔收费不能超过未交总金额!!!', 'warning', 3000)
|
|
339
|
-
this.charge.charges[i].f_charge_money = null
|
|
340
|
-
return
|
|
341
|
-
}
|
|
342
|
-
this.charge.charges[i].f_charge_money = (this.charge.charges[i].f_charge_money.match(/^\d*(\.?\d{0,2})/g)[0]) || null
|
|
343
|
-
this.charge.charges[i].f_amount_words = this.smalltoBIG(this.charge.charges[i].f_charge_money)
|
|
344
|
-
},
|
|
345
|
-
// 金额转大写
|
|
346
|
-
smalltoBIG(n) {
|
|
347
|
-
let fraction = ['角', '分'];
|
|
348
|
-
let digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
|
|
349
|
-
let unit = [['元', '万', '亿'], ['', '拾', '佰', '仟']];
|
|
350
|
-
let head = n < 0 ? '欠' : '';
|
|
351
|
-
n = Math.abs(n);
|
|
352
|
-
|
|
353
|
-
let s = '';
|
|
354
|
-
|
|
355
|
-
for (var i = 0; i < fraction.length; i++) {
|
|
356
|
-
s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
|
|
357
|
-
}
|
|
358
|
-
s = s || '整';
|
|
359
|
-
n = Math.floor(n);
|
|
360
|
-
|
|
361
|
-
for (var i = 0; i < unit[0].length && n > 0; i++) {
|
|
362
|
-
let p = '';
|
|
363
|
-
for (var j = 0; j < unit[1].length && n > 0; j++) {
|
|
364
|
-
p = digit[n % 10] + unit[1][j] + p;
|
|
365
|
-
n = Math.floor(n / 10);
|
|
366
|
-
}
|
|
367
|
-
s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
|
|
368
|
-
}
|
|
369
|
-
return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整')
|
|
370
|
-
},
|
|
371
|
-
// 新增收费
|
|
372
|
-
async saveCharge() {
|
|
373
|
-
if(this.charge.charges.length <= 0){
|
|
374
|
-
return this.$showMessage('收费项目不能为空,请添加收费项目!!')
|
|
375
|
-
}
|
|
376
|
-
if(isEmpty(this.charge.defname )){
|
|
377
|
-
return this.$showMessage('收费环节不能为空!!')
|
|
378
|
-
}
|
|
379
|
-
let http = new HttpResetClass()
|
|
380
|
-
let data = {
|
|
381
|
-
apply: this.selectdata,
|
|
382
|
-
user: Vue.user,
|
|
383
|
-
charge: this.charge
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/addApplyChargeRecord`, {data:data}, {
|
|
387
|
-
resolveMsg: null,
|
|
388
|
-
rejectMsg: '缴费失败!!!'
|
|
389
|
-
})
|
|
390
|
-
this.selectdata = res.data
|
|
391
|
-
|
|
392
|
-
this.$dispatch('breakControl', this.selectdata)
|
|
393
|
-
},
|
|
394
|
-
showConfirmModal(row){
|
|
395
|
-
this.charge = row
|
|
396
|
-
this.charge.f_confirm_person = Vue.user.name
|
|
397
|
-
this.showConfirm= true
|
|
398
|
-
},
|
|
399
|
-
async ConfirmPayment() {
|
|
400
|
-
let http = new HttpResetClass()
|
|
401
|
-
let data = {
|
|
402
|
-
apply: this.selectdata,
|
|
403
|
-
user: Vue.user,
|
|
404
|
-
charge: this.charge
|
|
405
|
-
}
|
|
406
|
-
let res = await http.load('POST', this.$androidUtil.getProxyUrl()+'/rs/logic/confirmCharge', {data: data}, {
|
|
407
|
-
resolveMsg: null,
|
|
408
|
-
rejectMsg: '提交失败!!!'
|
|
409
|
-
})
|
|
410
|
-
if(res.data==200){
|
|
411
|
-
this.$showAlert('提交成功!!!', 'success', 3000)
|
|
412
|
-
//延时1s
|
|
413
|
-
setTimeout(() => {
|
|
414
|
-
this.showConfirm= false
|
|
415
|
-
this.showauditor= false
|
|
416
|
-
}, 1000)
|
|
417
|
-
}
|
|
418
|
-
//重新查询
|
|
419
|
-
this.search()
|
|
420
|
-
if (
|
|
421
|
-
(this.selectdata.defname == '合同审批' && !isEmpty(this.selectdata.f_is_have) ) ||
|
|
422
|
-
(this.selectdata.defname == '方案设计' && !isEmpty(this.selectdata.f_designer_people) ) ||
|
|
423
|
-
(this.selectdata.defname == '方案审批' && !isEmpty(this.selectdata.f_position)) ||
|
|
424
|
-
(this.selectdata.defname == '工程审批' && !isEmpty(this.selectdata.f_survey_opinion)) ||
|
|
425
|
-
(this.selectdata.defname == '工程派工' && !isEmpty(this.selectdata.f_budget_peoples)) ||
|
|
426
|
-
(this.selectdata.defname == '工程验收' && !isEmpty(this.selectdata.f_acceptor)) ||
|
|
427
|
-
(this.selectdata.defname == '验收审批' && !isEmpty(this.selectdata.f_prospecting_result)) ||
|
|
428
|
-
(this.selectdata.defname == '工程决算' && !isEmpty(this.selectdata.f_price_other)) ||
|
|
429
|
-
(this.selectdata.defname == '收费确认' )
|
|
430
|
-
){
|
|
431
|
-
this.getbutton()
|
|
432
|
-
}
|
|
433
|
-
},
|
|
434
|
-
async getbutton(){
|
|
435
|
-
if (this.selectdata.f_payment_ratio == "100%") {
|
|
436
|
-
let http = new HttpResetClass()
|
|
437
|
-
let data = {
|
|
438
|
-
tablename: 't_charge_record',
|
|
439
|
-
condition: `f_process_id = '${this.selectdata.f_process_id}' and f_charge_status = '有效'`
|
|
440
|
-
}
|
|
441
|
-
let flag = true
|
|
442
|
-
let res1 = await http.load(
|
|
443
|
-
'POST',
|
|
444
|
-
`${this.$androidUtil.getProxyUrl()}/rs/sql/apply_singleTable`,
|
|
445
|
-
{data: data},
|
|
446
|
-
{resolveMsg: null, rejectMsg: '查询失败!!!'}
|
|
447
|
-
)
|
|
448
|
-
for (let i =0;i<res1.data.length;i++){
|
|
449
|
-
if (isEmpty(res1.data[i].f_confirm_person)){
|
|
450
|
-
flag = false
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
|
-
if (flag){
|
|
454
|
-
let show_data = this.selectdata
|
|
455
|
-
show_data.user =
|
|
456
|
-
show_data.start_activity ='报装申请'
|
|
457
|
-
show_data.xmlfilename =this.selectdata.f_apply_type
|
|
458
|
-
if (((show_data.f_apply_type == '民用散户报建流程' || show_data.f_apply_type == '民用预留户报建流程') && show_data.defname == '工程审批') || this.show_data.defname === '工程决算'){
|
|
459
|
-
show_data.button = {button_name:'跳过'}
|
|
460
|
-
}else {
|
|
461
|
-
show_data.button = {button_name:'提交'}
|
|
462
|
-
}
|
|
463
|
-
await this.$resetpost(
|
|
464
|
-
`${this.$androidUtil.getProxyUrl()}/rs/logic/ApplyProductService`,
|
|
465
|
-
{data: show_data},
|
|
466
|
-
{resolveMsg: null, rejectMsg: '数据保存失败'}
|
|
467
|
-
)
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
},
|
|
471
|
-
async search () {
|
|
472
|
-
let http = new HttpResetClass()
|
|
473
|
-
let data = {
|
|
474
|
-
f_process_id: this.selectdata.f_process_id
|
|
475
|
-
}
|
|
476
|
-
if (this.selectdata.f_apply_type === '启封通气' && this.selectdata.f_apply_type !== '线下发起'){
|
|
477
|
-
data = {
|
|
478
|
-
f_process_id: this.selectdata.f_parent_process_id
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/getApplyChargeRecord`, {data:data}, {
|
|
482
|
-
resolveMsg: null,
|
|
483
|
-
rejectMsg: '收费记录查询失败!!!'
|
|
484
|
-
})
|
|
485
|
-
this.model.rows = res.data
|
|
486
|
-
},
|
|
487
|
-
},
|
|
488
|
-
events: {
|
|
489
|
-
},
|
|
490
|
-
computed: {
|
|
491
|
-
paymentMethod() {
|
|
492
|
-
return this.$appdata.getParam("付款方式")
|
|
493
|
-
},
|
|
494
|
-
paymentTerm() {
|
|
495
|
-
return this.$appdata.getParam("收费项目")
|
|
496
|
-
}
|
|
497
|
-
},
|
|
498
|
-
watch: {
|
|
499
|
-
}
|
|
500
|
-
}
|
|
501
|
-
</script>
|
|
502
|
-
<style scoped lang="less">
|
|
503
|
-
.qrcode {
|
|
504
|
-
display: inline-block !important;
|
|
505
|
-
margin: 10px 0px;
|
|
506
|
-
}
|
|
507
|
-
.panel-self{
|
|
508
|
-
border-radius: 10px;
|
|
509
|
-
border:1px solid #499EDF;
|
|
510
|
-
background-color: #F8F8F8;
|
|
511
|
-
}
|
|
512
|
-
.vertical-center {
|
|
513
|
-
display: flex;
|
|
514
|
-
align-items: center;
|
|
515
|
-
text-align: center;
|
|
516
|
-
}
|
|
517
|
-
/*清除model中的浮动*/
|
|
518
|
-
.clearfix:after,.clearfix:before{
|
|
519
|
-
display: table;
|
|
520
|
-
}
|
|
521
|
-
.clearfix:after{
|
|
522
|
-
clear: both;
|
|
523
|
-
}
|
|
524
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<div class="col-sm-12 col-xs-12 form-group app-btn">
|
|
4
|
+
<button v-show="Vue.user.f_role_name.includes('报建收费')" class="btn btn-info" @click.prevent="showCharge = true">收费</button>
|
|
5
|
+
</div>
|
|
6
|
+
<div class="col-sm-12 col-xs-12">
|
|
7
|
+
<list :model="model" partial='list'>
|
|
8
|
+
<div partial class="auto app-text panel">
|
|
9
|
+
<div class="panel-body panel-self">
|
|
10
|
+
<div class="row">
|
|
11
|
+
<p class="col-xs-4 text-left font"><b>收费金额</b></p>
|
|
12
|
+
<p class="col-xs-8 text-left input-font">{{ row.f_charge_money }}</p>
|
|
13
|
+
</div>
|
|
14
|
+
<div class="row">
|
|
15
|
+
<p class="col-xs-4 text-left font"><b>收费环节</b></p>
|
|
16
|
+
<p class="col-xs-8 text-left input-font">{{ row.defname }}</p>
|
|
17
|
+
</div>
|
|
18
|
+
<div class="row">
|
|
19
|
+
<p class="col-xs-4 text-left font"><b>收费项目</b></p>
|
|
20
|
+
<p class="col-xs-8 text-left input-font">{{ row.f_payment_term }}</p>
|
|
21
|
+
</div>
|
|
22
|
+
<div class="row">
|
|
23
|
+
<p class="col-xs-4 text-left font"><b>付款方式</b></p>
|
|
24
|
+
<p class="col-xs-8 text-left input-font">{{ row.f_payment_method }}</p>
|
|
25
|
+
</div>
|
|
26
|
+
<div class="row">
|
|
27
|
+
<p class="col-xs-4 text-left font"><b>收费人员</b></p>
|
|
28
|
+
<p class="col-xs-8 text-left input-font">{{ row.f_charge_collectors }}</p>
|
|
29
|
+
</div>
|
|
30
|
+
<div class="row">
|
|
31
|
+
<p class="col-xs-4 text-left font"><b>实际收款日期</b></p>
|
|
32
|
+
<p class="col-xs-8 text-left input-font">{{row.f_actual_date}}</p>
|
|
33
|
+
</div>
|
|
34
|
+
<div class="row">
|
|
35
|
+
<p class="col-xs-4 text-left font"><b>收费日期</b></p>
|
|
36
|
+
<p class="col-xs-8 text-left input-font">{{ row.f_charge_date }}</p>
|
|
37
|
+
</div>
|
|
38
|
+
<div class="row">
|
|
39
|
+
<p class="col-xs-4 text-left font"><b>收费状态</b></p>
|
|
40
|
+
<p class="col-xs-8 text-left input-font">{{ row.f_charge_status }}</p>
|
|
41
|
+
</div>
|
|
42
|
+
<div class="row">
|
|
43
|
+
<p class="col-xs-4 text-left font"><b>确认人</b></p>
|
|
44
|
+
<p class="col-xs-8 text-left input-font">{{ row.f_confirm_person }}</p>
|
|
45
|
+
</div>
|
|
46
|
+
<div class="row">
|
|
47
|
+
<p class="col-xs-4 text-left font"><b>确认时间</b></p>
|
|
48
|
+
<p class="col-xs-8 text-left input-font">{{ row.f_confirm_date }}</p>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="row">
|
|
51
|
+
<button v-if="row.f_charge_status !== '退款'&& row.f_charge_status !== '作废' && $parent.$parent.isEmpty1(row.f_confirm_person)&& Vue.user.f_role_name.includes('确认收款')" style="background-color:#499edf;float: right" class="btn btn-info" @click="$parent.$parent.showConfirmModal(row)">确认收款</button>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
</list>
|
|
56
|
+
</div>
|
|
57
|
+
<modal v-if="showCharge" :show.sync="showCharge" v-ref:modal :large="true" :backdrop="false" title="收费明细">
|
|
58
|
+
<header slot="modal-header" class="modal-header">
|
|
59
|
+
<button type="button" class="close" @click="closeModal"><span>×</span></button>
|
|
60
|
+
<h4 class="modal-title">收费明细</h4>
|
|
61
|
+
</header>
|
|
62
|
+
<article slot="modal-body" class="modal-body clearfix">
|
|
63
|
+
<div v-for="(i, item) in charge.charges" class="form-group col-sm-12 panel panel-info">
|
|
64
|
+
<div class="panel-heading head col-sm-12" style="background-color: #e8f4ff;margin-bottom: 10px">
|
|
65
|
+
<div class="col-sm-6 text-left">收费项目{{$index+1}}信息</div>
|
|
66
|
+
<div class="col-sm-6 text-right"><button
|
|
67
|
+
class="button_delete button_spacing"
|
|
68
|
+
v-if="!item.f_userfiles_id"
|
|
69
|
+
@click.prevent="deleteUserFile(i)"
|
|
70
|
+
>删除</button></div>
|
|
71
|
+
</div>
|
|
72
|
+
<div class="form-group col-sm-12">
|
|
73
|
+
<label class="col-sm-2 control-label">收费项目:</label>
|
|
74
|
+
<div class="col-sm-10">
|
|
75
|
+
<input-select width="100%" class="select select_list" placeholder='请选择'
|
|
76
|
+
v-model="item.f_payment_term"
|
|
77
|
+
:value.sync="item.f_payment_term"
|
|
78
|
+
:options='paymentTerm'
|
|
79
|
+
:value-single="true"
|
|
80
|
+
close-on-select ></input-select>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
<div class="form-group col-sm-12">
|
|
84
|
+
<label class="col-sm-2 control-label">收费金额:</label>
|
|
85
|
+
<div class="col-sm-10">
|
|
86
|
+
<input type="text"
|
|
87
|
+
class="form-control input_view"
|
|
88
|
+
style="width: 100%"
|
|
89
|
+
placeholder="0.00"
|
|
90
|
+
@change="moneyChange(i)"
|
|
91
|
+
v-model="item.f_charge_money" />
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
<div class="form-group col-sm-12" >
|
|
95
|
+
<label class="col-sm-2 control-label">付款方式:</label>
|
|
96
|
+
<div class="col-sm-10">
|
|
97
|
+
<input-select
|
|
98
|
+
placeholder='请选择' width="100%"
|
|
99
|
+
v-model="item.f_payment_method"
|
|
100
|
+
:value.sync="item.f_payment_method"
|
|
101
|
+
:options='paymentMethod'
|
|
102
|
+
class="select select_list"
|
|
103
|
+
:value-single="true"
|
|
104
|
+
close-on-select ></input-select>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
<div class="form-group col-sm-12">
|
|
108
|
+
<label class="col-sm-2 control-label">金额大写:</label>
|
|
109
|
+
<div class="col-sm-10">
|
|
110
|
+
<input type="text"
|
|
111
|
+
class="form-control input_view"
|
|
112
|
+
style="width: 100%"
|
|
113
|
+
:value="smalltoBIG(0)"
|
|
114
|
+
readonly
|
|
115
|
+
v-model.sync="item.f_amount_words" />
|
|
116
|
+
</div>
|
|
117
|
+
</div>
|
|
118
|
+
<div class="form-group col-sm-12">
|
|
119
|
+
<label class="col-sm-2 control-label">备注:</label>
|
|
120
|
+
<div class="col-sm-10">
|
|
121
|
+
<input type="text"
|
|
122
|
+
class="form-control input_view"
|
|
123
|
+
style="width: 100%"
|
|
124
|
+
v-model="item.f_charge_remarks" />
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
<div class="form-group col-sm-12">
|
|
128
|
+
<label class="col-sm-2 control-label">实际收款时间:</label>
|
|
129
|
+
<div class="col-sm-10">
|
|
130
|
+
<datepicker id="startDate" placeholder="实际收款时间"
|
|
131
|
+
style="width: 100%!important;"
|
|
132
|
+
v-model="item.f_actual_date"
|
|
133
|
+
:value.sync="item.f_actual_date"
|
|
134
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
135
|
+
:show-reset-button="true"
|
|
136
|
+
>
|
|
137
|
+
</datepicker>
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
<div class="form-group col-sm-12">
|
|
142
|
+
<label class="col-sm-2 control-label">应交总金额:</label>
|
|
143
|
+
<div class="col-sm-10">
|
|
144
|
+
<input type="text"
|
|
145
|
+
class="form-control input_view"
|
|
146
|
+
style="width: 100%"
|
|
147
|
+
readonly
|
|
148
|
+
v-model="selectdata.f_due_money" />
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
<div class="form-group col-sm-12">
|
|
152
|
+
<label class="col-sm-2 control-label">累计缴费总金额:</label>
|
|
153
|
+
<div class="col-sm-10">
|
|
154
|
+
<input type="text"
|
|
155
|
+
class="form-control input_view"
|
|
156
|
+
style="width: 100%"
|
|
157
|
+
readonly
|
|
158
|
+
v-model="selectdata.f_cumulative_payment_money" />
|
|
159
|
+
</div>
|
|
160
|
+
</div>
|
|
161
|
+
<div class="form-group col-sm-12">
|
|
162
|
+
<label class="col-sm-2 control-label">未结总金额:</label>
|
|
163
|
+
<div class="col-sm-10">
|
|
164
|
+
<input type="text"
|
|
165
|
+
class="form-control input_view"
|
|
166
|
+
style="width: 100%"
|
|
167
|
+
readonly
|
|
168
|
+
v-model="selectdata.f_surplus_money" />
|
|
169
|
+
</div>
|
|
170
|
+
</div>
|
|
171
|
+
<div class="form-group col-sm-12">
|
|
172
|
+
<label class="col-sm-2 control-label">收费环节:</label>
|
|
173
|
+
<div class="col-sm-10">
|
|
174
|
+
<input-select width="100%" class="select select_list" placeholder='请选择'
|
|
175
|
+
v-model="charge.defname"
|
|
176
|
+
:value.sync="charge.defname"
|
|
177
|
+
:options='defnames'
|
|
178
|
+
:value-single="true"
|
|
179
|
+
close-on-select ></input-select>
|
|
180
|
+
</div>
|
|
181
|
+
</div>
|
|
182
|
+
|
|
183
|
+
</article>
|
|
184
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
185
|
+
<button type="button" class="btn btn-primary" @click="addcharges" >添加收费项目</button>
|
|
186
|
+
<button type="button" class="btn btn-primary" @click="saveCharge()">新增收费</button>
|
|
187
|
+
</footer>
|
|
188
|
+
</modal>
|
|
189
|
+
<modal v-if="showConfirm" :show.sync="showConfirm" v-ref:modal :backdrop="false" title="确认收款">
|
|
190
|
+
<header slot="modal-header" class="modal-header">
|
|
191
|
+
<button type="button" class="close" @click="closeModal"><span>×</span></button>
|
|
192
|
+
<h4 class="modal-title">确认收款</h4>
|
|
193
|
+
</header>
|
|
194
|
+
<article slot="modal-body" class="modal-body clearfix">
|
|
195
|
+
<div class="form-group col-sm-12">
|
|
196
|
+
<label class="col-sm-2 control-label">收费金额:</label>
|
|
197
|
+
<div class="col-sm-10">
|
|
198
|
+
<input type="text"
|
|
199
|
+
class="form-control input_view"
|
|
200
|
+
style="width: 100%"
|
|
201
|
+
readonly
|
|
202
|
+
v-model="charge.f_charge_money" />
|
|
203
|
+
</div>
|
|
204
|
+
</div>
|
|
205
|
+
<div class="form-group col-sm-12">
|
|
206
|
+
<label class="col-sm-2 control-label">付款方式:</label>
|
|
207
|
+
<div class="col-sm-10">
|
|
208
|
+
<input type="text"
|
|
209
|
+
class="form-control input_view"
|
|
210
|
+
style="width: 100%"
|
|
211
|
+
readonly
|
|
212
|
+
v-model="charge.f_payment_method" />
|
|
213
|
+
</div>
|
|
214
|
+
</div>
|
|
215
|
+
<div class="form-group col-sm-12">
|
|
216
|
+
<label class="col-sm-2 control-label">金额大写:</label>
|
|
217
|
+
<div class="col-sm-10">
|
|
218
|
+
<input type="text"
|
|
219
|
+
class="form-control input_view"
|
|
220
|
+
style="width: 100%"
|
|
221
|
+
readonly
|
|
222
|
+
v-model="charge.f_amount_words" />
|
|
223
|
+
</div>
|
|
224
|
+
</div>
|
|
225
|
+
<div class="form-group col-sm-12">
|
|
226
|
+
<label class="col-sm-2 control-label">收费人员:</label>
|
|
227
|
+
<div class="col-sm-10">
|
|
228
|
+
<input type="text"
|
|
229
|
+
class="form-control input_view"
|
|
230
|
+
style="width: 100%"
|
|
231
|
+
readonly
|
|
232
|
+
v-model="charge.f_charge_collectors" />
|
|
233
|
+
</div>
|
|
234
|
+
</div>
|
|
235
|
+
<div class="form-group col-sm-12">
|
|
236
|
+
<label class="col-sm-2 control-label">确认人:</label>
|
|
237
|
+
<div class="col-sm-10">
|
|
238
|
+
<input type="text"
|
|
239
|
+
class="form-control input_view"
|
|
240
|
+
style="width: 100%"
|
|
241
|
+
v-model="charge.f_confirm_person" />
|
|
242
|
+
</div>
|
|
243
|
+
</div>
|
|
244
|
+
<div class="form-group col-sm-12">
|
|
245
|
+
<label class="col-sm-2 control-label">确认时间:</label>
|
|
246
|
+
<div class="col-sm-10">
|
|
247
|
+
<datepicker id="startDate" placeholder="确认时间"
|
|
248
|
+
style="width: 100%!important;"
|
|
249
|
+
v-model="charge.f_confirm_date"
|
|
250
|
+
:value.sync="charge.f_confirm_date"
|
|
251
|
+
:default="true"
|
|
252
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
253
|
+
:show-reset-button="true"
|
|
254
|
+
>
|
|
255
|
+
</datepicker>
|
|
256
|
+
</div>
|
|
257
|
+
</div>
|
|
258
|
+
<div class="form-group col-sm-12">
|
|
259
|
+
<label class="col-sm-2 control-label">备注:</label>
|
|
260
|
+
<div class="col-sm-10">
|
|
261
|
+
<input type="text"
|
|
262
|
+
class="form-control input_view"
|
|
263
|
+
style="width: 100%"
|
|
264
|
+
v-model="charge.f_charge_remarks" />
|
|
265
|
+
</div>
|
|
266
|
+
</div>
|
|
267
|
+
</article>
|
|
268
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
269
|
+
<button type="button" class="btn btn-primary" @click="ConfirmPayment()">确认收款</button>
|
|
270
|
+
</footer>
|
|
271
|
+
</modal>
|
|
272
|
+
</div>
|
|
273
|
+
</template>
|
|
274
|
+
<script>
|
|
275
|
+
import {getNowDate,isEmpty} from '../../../components/Util'
|
|
276
|
+
import {PagedList} from 'vue-client'
|
|
277
|
+
import {HttpResetClass} from 'vue-client'
|
|
278
|
+
import Vue from "vue";
|
|
279
|
+
|
|
280
|
+
export default {
|
|
281
|
+
title: '收费管理',
|
|
282
|
+
props: {
|
|
283
|
+
selectdata: {
|
|
284
|
+
type: Object
|
|
285
|
+
},
|
|
286
|
+
mark: {
|
|
287
|
+
type: Number,
|
|
288
|
+
default: 0
|
|
289
|
+
}
|
|
290
|
+
},
|
|
291
|
+
data () {
|
|
292
|
+
return {
|
|
293
|
+
model: {
|
|
294
|
+
rows: null
|
|
295
|
+
},
|
|
296
|
+
showCharge:false,
|
|
297
|
+
showConfirm:false,
|
|
298
|
+
charge: {
|
|
299
|
+
charges:[]
|
|
300
|
+
},
|
|
301
|
+
defnames: this.$appdata.getParam(this.selectdata.f_apply_type + '付款预设')
|
|
302
|
+
}
|
|
303
|
+
},
|
|
304
|
+
ready () {
|
|
305
|
+
this.search()
|
|
306
|
+
},
|
|
307
|
+
methods: {
|
|
308
|
+
isEmpty1 (str) {
|
|
309
|
+
return str === undefined || str === null || str.toString().trim() === ''
|
|
310
|
+
},
|
|
311
|
+
// 关闭对话框
|
|
312
|
+
closeModal() {
|
|
313
|
+
this.showCharge = false
|
|
314
|
+
this.showConfirm = false
|
|
315
|
+
this.charge = {
|
|
316
|
+
charges:[]
|
|
317
|
+
}
|
|
318
|
+
this.search()
|
|
319
|
+
},
|
|
320
|
+
addcharges(){
|
|
321
|
+
this.charge.charges.push({})
|
|
322
|
+
},
|
|
323
|
+
deleteUserFile (index) {
|
|
324
|
+
this.charge.charges.splice(index, 1)
|
|
325
|
+
},
|
|
326
|
+
moneyChange (i) {
|
|
327
|
+
if (isEmpty(this.charge.charges[i].f_charge_money) || Number(this.charge.charges[i].f_charge_money) === 0) {
|
|
328
|
+
this.$showAlert('单笔收费不能为0元!!!', 'warning', 3000)
|
|
329
|
+
this.charge.charges[i].f_charge_money = null
|
|
330
|
+
return
|
|
331
|
+
}
|
|
332
|
+
if (this.selectdata.f_apply_type === '散户集体报建' && Number(this.charge.charges[i].f_charge_money) > Number(this.charge.charges[i].f_outstanding_amount)) {
|
|
333
|
+
this.$showAlert('单笔收费不能超过未交金额!!!', 'warning', 3000)
|
|
334
|
+
this.charge.charges[i].f_charge_money = null
|
|
335
|
+
return
|
|
336
|
+
}
|
|
337
|
+
if (Number(this.charge.charges[i].f_charge_money) > Number(this.selectdata.f_surplus_money)) {
|
|
338
|
+
this.$showAlert('单笔收费不能超过未交总金额!!!', 'warning', 3000)
|
|
339
|
+
this.charge.charges[i].f_charge_money = null
|
|
340
|
+
return
|
|
341
|
+
}
|
|
342
|
+
this.charge.charges[i].f_charge_money = (this.charge.charges[i].f_charge_money.match(/^\d*(\.?\d{0,2})/g)[0]) || null
|
|
343
|
+
this.charge.charges[i].f_amount_words = this.smalltoBIG(this.charge.charges[i].f_charge_money)
|
|
344
|
+
},
|
|
345
|
+
// 金额转大写
|
|
346
|
+
smalltoBIG(n) {
|
|
347
|
+
let fraction = ['角', '分'];
|
|
348
|
+
let digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
|
|
349
|
+
let unit = [['元', '万', '亿'], ['', '拾', '佰', '仟']];
|
|
350
|
+
let head = n < 0 ? '欠' : '';
|
|
351
|
+
n = Math.abs(n);
|
|
352
|
+
|
|
353
|
+
let s = '';
|
|
354
|
+
|
|
355
|
+
for (var i = 0; i < fraction.length; i++) {
|
|
356
|
+
s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
|
|
357
|
+
}
|
|
358
|
+
s = s || '整';
|
|
359
|
+
n = Math.floor(n);
|
|
360
|
+
|
|
361
|
+
for (var i = 0; i < unit[0].length && n > 0; i++) {
|
|
362
|
+
let p = '';
|
|
363
|
+
for (var j = 0; j < unit[1].length && n > 0; j++) {
|
|
364
|
+
p = digit[n % 10] + unit[1][j] + p;
|
|
365
|
+
n = Math.floor(n / 10);
|
|
366
|
+
}
|
|
367
|
+
s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
|
|
368
|
+
}
|
|
369
|
+
return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整')
|
|
370
|
+
},
|
|
371
|
+
// 新增收费
|
|
372
|
+
async saveCharge() {
|
|
373
|
+
if(this.charge.charges.length <= 0){
|
|
374
|
+
return this.$showMessage('收费项目不能为空,请添加收费项目!!')
|
|
375
|
+
}
|
|
376
|
+
if(isEmpty(this.charge.defname )){
|
|
377
|
+
return this.$showMessage('收费环节不能为空!!')
|
|
378
|
+
}
|
|
379
|
+
let http = new HttpResetClass()
|
|
380
|
+
let data = {
|
|
381
|
+
apply: this.selectdata,
|
|
382
|
+
user: Vue.user,
|
|
383
|
+
charge: this.charge
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/addApplyChargeRecord`, {data:data}, {
|
|
387
|
+
resolveMsg: null,
|
|
388
|
+
rejectMsg: '缴费失败!!!'
|
|
389
|
+
})
|
|
390
|
+
this.selectdata = res.data
|
|
391
|
+
|
|
392
|
+
this.$dispatch('breakControl', this.selectdata)
|
|
393
|
+
},
|
|
394
|
+
showConfirmModal(row){
|
|
395
|
+
this.charge = row
|
|
396
|
+
this.charge.f_confirm_person = Vue.user.name
|
|
397
|
+
this.showConfirm= true
|
|
398
|
+
},
|
|
399
|
+
async ConfirmPayment() {
|
|
400
|
+
let http = new HttpResetClass()
|
|
401
|
+
let data = {
|
|
402
|
+
apply: this.selectdata,
|
|
403
|
+
user: Vue.user,
|
|
404
|
+
charge: this.charge
|
|
405
|
+
}
|
|
406
|
+
let res = await http.load('POST', this.$androidUtil.getProxyUrl()+'/rs/logic/confirmCharge', {data: data}, {
|
|
407
|
+
resolveMsg: null,
|
|
408
|
+
rejectMsg: '提交失败!!!'
|
|
409
|
+
})
|
|
410
|
+
if(res.data==200){
|
|
411
|
+
this.$showAlert('提交成功!!!', 'success', 3000)
|
|
412
|
+
//延时1s
|
|
413
|
+
setTimeout(() => {
|
|
414
|
+
this.showConfirm= false
|
|
415
|
+
this.showauditor= false
|
|
416
|
+
}, 1000)
|
|
417
|
+
}
|
|
418
|
+
//重新查询
|
|
419
|
+
this.search()
|
|
420
|
+
if (
|
|
421
|
+
(this.selectdata.defname == '合同审批' && !isEmpty(this.selectdata.f_is_have) ) ||
|
|
422
|
+
(this.selectdata.defname == '方案设计' && !isEmpty(this.selectdata.f_designer_people) ) ||
|
|
423
|
+
(this.selectdata.defname == '方案审批' && !isEmpty(this.selectdata.f_position)) ||
|
|
424
|
+
(this.selectdata.defname == '工程审批' && !isEmpty(this.selectdata.f_survey_opinion)) ||
|
|
425
|
+
(this.selectdata.defname == '工程派工' && !isEmpty(this.selectdata.f_budget_peoples)) ||
|
|
426
|
+
(this.selectdata.defname == '工程验收' && !isEmpty(this.selectdata.f_acceptor)) ||
|
|
427
|
+
(this.selectdata.defname == '验收审批' && !isEmpty(this.selectdata.f_prospecting_result)) ||
|
|
428
|
+
(this.selectdata.defname == '工程决算' && !isEmpty(this.selectdata.f_price_other)) ||
|
|
429
|
+
(this.selectdata.defname == '收费确认' )
|
|
430
|
+
){
|
|
431
|
+
this.getbutton()
|
|
432
|
+
}
|
|
433
|
+
},
|
|
434
|
+
async getbutton(){
|
|
435
|
+
if (this.selectdata.f_payment_ratio == "100%") {
|
|
436
|
+
let http = new HttpResetClass()
|
|
437
|
+
let data = {
|
|
438
|
+
tablename: 't_charge_record',
|
|
439
|
+
condition: `f_process_id = '${this.selectdata.f_process_id}' and f_charge_status = '有效'`
|
|
440
|
+
}
|
|
441
|
+
let flag = true
|
|
442
|
+
let res1 = await http.load(
|
|
443
|
+
'POST',
|
|
444
|
+
`${this.$androidUtil.getProxyUrl()}/rs/sql/apply_singleTable`,
|
|
445
|
+
{data: data},
|
|
446
|
+
{resolveMsg: null, rejectMsg: '查询失败!!!'}
|
|
447
|
+
)
|
|
448
|
+
for (let i =0;i<res1.data.length;i++){
|
|
449
|
+
if (isEmpty(res1.data[i].f_confirm_person)){
|
|
450
|
+
flag = false
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
if (flag){
|
|
454
|
+
let show_data = this.selectdata
|
|
455
|
+
show_data.user = Vue.user
|
|
456
|
+
show_data.start_activity ='报装申请'
|
|
457
|
+
show_data.xmlfilename =this.selectdata.f_apply_type
|
|
458
|
+
if (((show_data.f_apply_type == '民用散户报建流程' || show_data.f_apply_type == '民用预留户报建流程') && show_data.defname == '工程审批') || this.show_data.defname === '工程决算'){
|
|
459
|
+
show_data.button = {button_name:'跳过'}
|
|
460
|
+
}else {
|
|
461
|
+
show_data.button = {button_name:'提交'}
|
|
462
|
+
}
|
|
463
|
+
await this.$resetpost(
|
|
464
|
+
`${this.$androidUtil.getProxyUrl()}/rs/logic/ApplyProductService`,
|
|
465
|
+
{data: show_data},
|
|
466
|
+
{resolveMsg: null, rejectMsg: '数据保存失败'}
|
|
467
|
+
)
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
},
|
|
471
|
+
async search () {
|
|
472
|
+
let http = new HttpResetClass()
|
|
473
|
+
let data = {
|
|
474
|
+
f_process_id: this.selectdata.f_process_id
|
|
475
|
+
}
|
|
476
|
+
if (this.selectdata.f_apply_type === '启封通气' && this.selectdata.f_apply_type !== '线下发起'){
|
|
477
|
+
data = {
|
|
478
|
+
f_process_id: this.selectdata.f_parent_process_id
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/getApplyChargeRecord`, {data:data}, {
|
|
482
|
+
resolveMsg: null,
|
|
483
|
+
rejectMsg: '收费记录查询失败!!!'
|
|
484
|
+
})
|
|
485
|
+
this.model.rows = res.data
|
|
486
|
+
},
|
|
487
|
+
},
|
|
488
|
+
events: {
|
|
489
|
+
},
|
|
490
|
+
computed: {
|
|
491
|
+
paymentMethod() {
|
|
492
|
+
return this.$appdata.getParam("付款方式")
|
|
493
|
+
},
|
|
494
|
+
paymentTerm() {
|
|
495
|
+
return this.$appdata.getParam("收费项目")
|
|
496
|
+
}
|
|
497
|
+
},
|
|
498
|
+
watch: {
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
</script>
|
|
502
|
+
<style scoped lang="less">
|
|
503
|
+
.qrcode {
|
|
504
|
+
display: inline-block !important;
|
|
505
|
+
margin: 10px 0px;
|
|
506
|
+
}
|
|
507
|
+
.panel-self{
|
|
508
|
+
border-radius: 10px;
|
|
509
|
+
border:1px solid #499EDF;
|
|
510
|
+
background-color: #F8F8F8;
|
|
511
|
+
}
|
|
512
|
+
.vertical-center {
|
|
513
|
+
display: flex;
|
|
514
|
+
align-items: center;
|
|
515
|
+
text-align: center;
|
|
516
|
+
}
|
|
517
|
+
/*清除model中的浮动*/
|
|
518
|
+
.clearfix:after,.clearfix:before{
|
|
519
|
+
display: table;
|
|
520
|
+
}
|
|
521
|
+
.clearfix:after{
|
|
522
|
+
clear: both;
|
|
523
|
+
}
|
|
524
|
+
</style>
|
|
@@ -338,6 +338,7 @@
|
|
|
338
338
|
<th style="white-space: nowrap;">热水器品牌</th>-->
|
|
339
339
|
<th style="white-space: nowrap;">缴费金额</th>
|
|
340
340
|
<th style="white-space: nowrap;">验收时间</th>
|
|
341
|
+
<th style="white-space: nowrap;">开工时间</th>
|
|
341
342
|
<th style="white-space: nowrap;">施工人</th>
|
|
342
343
|
<th style="white-space: nowrap;">用户评价</th>
|
|
343
344
|
<th style="white-space: nowrap;">发起人</th>
|
|
@@ -432,6 +433,9 @@
|
|
|
432
433
|
<td @click="$parent.$parent.$parent.check(row)" style="text-align: center;">
|
|
433
434
|
<nobr>{{row.f_acceptance_time}}</nobr>
|
|
434
435
|
</td>
|
|
436
|
+
<td @click="$parent.$parent.$parent.check(row)" style="text-align: center;">
|
|
437
|
+
<nobr>{{row.f_completion_time}}</nobr>
|
|
438
|
+
</td>
|
|
435
439
|
<td @click="$parent.$parent.$parent.check(row)" style="text-align: center;">
|
|
436
440
|
<nobr>{{row.f_budget_people}}</nobr>
|
|
437
441
|
</td>
|
|
@@ -506,6 +510,7 @@
|
|
|
506
510
|
'f_construction_unit': '施工单位',
|
|
507
511
|
'f_construction_date': '施工时间',
|
|
508
512
|
'f_construction_remarks': '施工备注',
|
|
513
|
+
'f_completion_time': '开工时间',
|
|
509
514
|
'f_budget_people':'施工人',
|
|
510
515
|
'f_acceptance_time':'验收时间',
|
|
511
516
|
'f_user_satisfied':'服务评价'
|