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