apply-clients 4.1.6-weinan → 4.1.8-weinan
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 +1 -1
- package/src/applyAndroid.js +2 -0
- package/src/components/app_apply/AppChargeManagement.vue +62 -63
- package/src/components/app_apply/ApplyToDoList.vue +3 -7
- package/src/components/app_apply/PlaceControler.vue +4 -7
- package/src/components/app_apply/ServiceControl.vue +3 -6
- package/src/components/app_apply/ServiceView.vue +7 -8
- package/src/components/app_apply/materialshoufei.vue +184 -0
- package/src/components/product/ApplyCharge/ApplyChargeList.vue +251 -251
package/package.json
CHANGED
package/src/applyAndroid.js
CHANGED
|
@@ -33,6 +33,8 @@ export default function () {
|
|
|
33
33
|
Vue.component('back-page', (resolve) => { require(['./components/app_apply/ToolsPage'], resolve) })
|
|
34
34
|
// 收费记录
|
|
35
35
|
Vue.component('app-charge-management', (resolve) => { require(['./components/app_apply/AppChargeManagement'], resolve) })
|
|
36
|
+
// 材料收费信息
|
|
37
|
+
Vue.component('app-materialshoufei', (resolve) => { require(['./components/app_apply/materialshoufei'], resolve) })
|
|
36
38
|
|
|
37
39
|
// 业务tab(control层)页
|
|
38
40
|
Vue.component('service-control-app', (resolve) => { require(['./components/app_apply/ServiceControl'], resolve) })
|
|
@@ -90,6 +90,17 @@
|
|
|
90
90
|
<h4 class="modal-title">收费明细</h4>
|
|
91
91
|
</header>
|
|
92
92
|
<article slot="modal-body" class="modal-body clearfix">
|
|
93
|
+
<div class="form-group row vertical-center" :class="charge.f_payment_method ? '':'has-error'">
|
|
94
|
+
<label class="col-xs-4 control-label">付款方式:</label>
|
|
95
|
+
<div class="col-xs-8">
|
|
96
|
+
<input-select class="select select_list"
|
|
97
|
+
v-model="charge.f_payment_method"
|
|
98
|
+
:value.sync="charge.f_payment_method"
|
|
99
|
+
:options='paymentMethod'
|
|
100
|
+
:value-single="true"
|
|
101
|
+
close-on-select ></input-select>
|
|
102
|
+
</div>
|
|
103
|
+
</div>
|
|
93
104
|
<div v-for="(index,payment) in charge.payment_terms">
|
|
94
105
|
<div class="form-group row vertical-center" :class="payment.f_payment_term ? '':'has-error'">
|
|
95
106
|
<label class="col-xs-4 control-label">收费项目:</label>
|
|
@@ -109,7 +120,7 @@
|
|
|
109
120
|
v-model="payment.f_charge_money"
|
|
110
121
|
@keyup="handleInput(index)"
|
|
111
122
|
@change="moneyChange(index)"
|
|
112
|
-
:readonly="
|
|
123
|
+
:readonly="true"/>
|
|
113
124
|
</div>
|
|
114
125
|
</div>
|
|
115
126
|
<div class="form-group row vertical-center">
|
|
@@ -117,36 +128,12 @@
|
|
|
117
128
|
<div class="col-xs-8">
|
|
118
129
|
<input class="form-control input_view" style=""
|
|
119
130
|
v-model="payment.f_amount_words"
|
|
120
|
-
:value="smalltoBIG(
|
|
131
|
+
:value="smalltoBIG(payment.f_charge_money)"
|
|
121
132
|
:readonly="true"/>
|
|
122
133
|
</div>
|
|
123
134
|
</div>
|
|
124
135
|
</div>
|
|
125
|
-
<div class="row" style="display: flex"> <button type="button" style="margin: 0 auto;" class="btn btn-primary" @click.prevent="addPaymentTerms()">增加收费项目</button> </div
|
|
126
|
-
<div class="form-group row vertical-center">
|
|
127
|
-
<label class="col-xs-4 control-label">应交总金额:</label>
|
|
128
|
-
<div class="col-xs-8">
|
|
129
|
-
<input class="form-control input_view" style=""
|
|
130
|
-
v-model="selectdata.f_due_money"
|
|
131
|
-
:readonly="true"/>
|
|
132
|
-
</div>
|
|
133
|
-
</div>
|
|
134
|
-
<div class="form-group row vertical-center">
|
|
135
|
-
<label class="col-xs-4 control-label">缴费总金额:</label>
|
|
136
|
-
<div class="col-xs-8">
|
|
137
|
-
<input class="form-control input_view" style=""
|
|
138
|
-
v-model="selectdata.f_cumulative_payment_money"
|
|
139
|
-
:readonly="true"/>
|
|
140
|
-
</div>
|
|
141
|
-
</div>
|
|
142
|
-
<div class="form-group row vertical-center">
|
|
143
|
-
<label class="col-xs-4 control-label">未结总金额:</label>
|
|
144
|
-
<div class="col-xs-8">
|
|
145
|
-
<input class="form-control input_view" style=""
|
|
146
|
-
v-model="selectdata.f_surplus_money"
|
|
147
|
-
:readonly="true"/>
|
|
148
|
-
</div>
|
|
149
|
-
</div>
|
|
136
|
+
<!-- <div class="row" style="display: flex"> <button type="button" style="margin: 0 auto;" class="btn btn-primary" @click.prevent="addPaymentTerms()">增加收费项目</button> </div>-->
|
|
150
137
|
</article>
|
|
151
138
|
<footer slot="modal-footer" class="modal-footer">
|
|
152
139
|
<button type="button" class="btn btn-primary" @click.prevent="openQrCode()">确认</button>
|
|
@@ -193,6 +180,7 @@ export default {
|
|
|
193
180
|
data () {
|
|
194
181
|
return {
|
|
195
182
|
showCharge: false, // 收费明细
|
|
183
|
+
showCharge1:false, // 付款方式
|
|
196
184
|
showQrCode : false, // 二维码
|
|
197
185
|
model: {
|
|
198
186
|
rows: null
|
|
@@ -202,9 +190,9 @@ export default {
|
|
|
202
190
|
|
|
203
191
|
},*/
|
|
204
192
|
charge: {
|
|
205
|
-
payment_terms:[{f_payment_term: '',f_charge_money: '',f_amount_words:'',f_payment_method : '
|
|
193
|
+
payment_terms:[{f_payment_term: '',f_charge_money: '',f_amount_words:'',f_payment_method : ''}]
|
|
206
194
|
},
|
|
207
|
-
order:
|
|
195
|
+
order: {},
|
|
208
196
|
timeLeft: 120,
|
|
209
197
|
paymentInterval: null,
|
|
210
198
|
orderInterval: null,
|
|
@@ -219,7 +207,7 @@ export default {
|
|
|
219
207
|
},
|
|
220
208
|
methods: {
|
|
221
209
|
addPaymentTerms(){
|
|
222
|
-
this.charge.payment_terms.push({f_payment_term: '',f_charge_money: '',f_payment_method :
|
|
210
|
+
this.charge.payment_terms.push({f_payment_term: '',f_charge_money: '',f_payment_method : this.charge.f_payment_method})
|
|
223
211
|
},
|
|
224
212
|
// 新增收费
|
|
225
213
|
async saveCharge() {
|
|
@@ -253,7 +241,7 @@ export default {
|
|
|
253
241
|
data: {
|
|
254
242
|
items: "id",
|
|
255
243
|
tablename: "t_weixinreturnxml",
|
|
256
|
-
condition: ` f_out_trade_no = '${this.order.f_out_trade_no}' and
|
|
244
|
+
condition: ` f_out_trade_no = '${this.order.f_out_trade_no}' and f_orde_state = '已支付' `,
|
|
257
245
|
orderitem: "id"
|
|
258
246
|
}
|
|
259
247
|
}, {
|
|
@@ -278,21 +266,15 @@ export default {
|
|
|
278
266
|
},
|
|
279
267
|
checkApplyModel(){
|
|
280
268
|
console.log(this.charge.payment_terms)
|
|
281
|
-
if (Number(this.getTotalAmount()) != Number(this.selectdata.f_surplus_money)) {
|
|
282
|
-
this.$showAlert('本次收费金额必须和未交总金额一致!!!', 'warning', 3000)
|
|
283
|
-
//this.charge.f_charge_money = null
|
|
284
|
-
return
|
|
285
|
-
}
|
|
286
|
-
|
|
287
269
|
for(let row = 0;row<this.charge.payment_terms.length; row++){
|
|
288
270
|
console.log(this.charge.payment_terms[row])
|
|
289
271
|
if (isEmpty(this.charge.payment_terms[row].f_payment_term)) {
|
|
290
272
|
console.log(1111)
|
|
291
|
-
this.$
|
|
273
|
+
this.$showMessage('请选择收费项目!!!', 'warning', 3000)
|
|
292
274
|
return
|
|
293
275
|
}else if (isEmpty(this.charge.payment_terms[row].f_charge_money)) {
|
|
294
276
|
console.log(2222)
|
|
295
|
-
this.$
|
|
277
|
+
this.$showMessage('请输入收费金额!!!', 'warning', 3000)
|
|
296
278
|
return
|
|
297
279
|
}
|
|
298
280
|
}
|
|
@@ -302,43 +284,64 @@ export default {
|
|
|
302
284
|
// 打开二维码
|
|
303
285
|
async openQrCode () {
|
|
304
286
|
console.log(this.charge.payment_terms)
|
|
305
|
-
|
|
306
|
-
this.$showAlert('本次收费金额必须和未交总金额一致!!!', 'warning', 3000)
|
|
307
|
-
//this.charge.f_charge_money = null
|
|
308
|
-
return
|
|
309
|
-
}
|
|
310
|
-
|
|
287
|
+
let http = new HttpResetClass()
|
|
311
288
|
for(let row = 0;row<this.charge.payment_terms.length; row++){
|
|
312
289
|
console.log(this.charge.payment_terms[row])
|
|
313
290
|
if (isEmpty(this.charge.payment_terms[row].f_payment_term)) {
|
|
314
291
|
console.log(1111)
|
|
315
|
-
this.$
|
|
292
|
+
this.$showMessage('请选择收费项目!!!', 'warning', 3000)
|
|
316
293
|
return
|
|
317
294
|
}else if (isEmpty(this.charge.payment_terms[row].f_charge_money)) {
|
|
318
295
|
console.log(2222)
|
|
319
|
-
this.$
|
|
296
|
+
this.$showMessage('请输入收费金额!!!', 'warning', 3000)
|
|
320
297
|
return
|
|
321
298
|
}
|
|
322
299
|
}
|
|
300
|
+
|
|
301
|
+
if (this.charge.f_payment_method !== '微信支付' && this.charge.f_payment_method !== '支付宝支付' ){
|
|
302
|
+
let info = {
|
|
303
|
+
apply: this.selectdata,
|
|
304
|
+
charge: this.charge,
|
|
305
|
+
user: Vue.user,
|
|
306
|
+
f_out_trade_no:""
|
|
307
|
+
}
|
|
308
|
+
http.load('POST',`${this.$androidUtil.getProxyUrl()}/rs/logic/beforeAddChargeRecord`,{data:info},{
|
|
309
|
+
resolveMsg: null,
|
|
310
|
+
rejectMsg: null
|
|
311
|
+
}).then(res=>{
|
|
312
|
+
console.log(res.data)
|
|
313
|
+
if (res.data.code == '200'){
|
|
314
|
+
this.$showMessage('缴费成功!')
|
|
315
|
+
this.showCharge=false
|
|
316
|
+
return
|
|
317
|
+
}else {
|
|
318
|
+
this.$showMessage('缴费失败')
|
|
319
|
+
this.showCharge=false
|
|
320
|
+
return
|
|
321
|
+
}
|
|
322
|
+
})
|
|
323
|
+
return
|
|
324
|
+
}
|
|
323
325
|
this.showCharge=false
|
|
324
326
|
//this.$dispatch('changeShowfei','待付款')
|
|
325
327
|
//this.saveCharge()
|
|
326
|
-
let http = new HttpResetClass()
|
|
327
328
|
// 接口金额 单位为:分
|
|
328
329
|
let data = {
|
|
329
|
-
money: this.accMul(this.getTotalAmount() ,
|
|
330
|
+
money: this.accMul(this.getTotalAmount() ,1),
|
|
330
331
|
attach: {
|
|
331
|
-
"
|
|
332
|
+
"f_apply_num": this.selectdata.f_apply_num,
|
|
332
333
|
"f_user": Vue.user.id
|
|
333
334
|
},
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
335
|
+
orderType:'报装收费',
|
|
336
|
+
userfilesid:'',
|
|
337
|
+
flag: 'JsApiWeiNan',
|
|
338
|
+
openid: '',
|
|
339
|
+
filiale: 'weinanchengtou'
|
|
337
340
|
}
|
|
338
341
|
console.log('下单信息')
|
|
339
342
|
console.log(JSON.stringify(data))
|
|
340
343
|
// 下订单
|
|
341
|
-
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/
|
|
344
|
+
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/wx/rs/pay/jsApiPay`, data, {
|
|
342
345
|
resolveMsg: null,
|
|
343
346
|
rejectMsg: '订单生成失败!!!'
|
|
344
347
|
})
|
|
@@ -405,7 +408,7 @@ export default {
|
|
|
405
408
|
},
|
|
406
409
|
qrcode () {
|
|
407
410
|
let qrcode = new QRCode('qrcode',{
|
|
408
|
-
text: this.order.
|
|
411
|
+
text: this.order.appId, // 设置二维码内容或跳转地址
|
|
409
412
|
width: 200, // 设置宽度,单位像素
|
|
410
413
|
height: 200, // 设置高度,单位像素
|
|
411
414
|
correctLevel: QRCode.CorrectLevel.L //容错率,L/M/Hs
|
|
@@ -417,7 +420,7 @@ export default {
|
|
|
417
420
|
moneyChange (index) {
|
|
418
421
|
console.log(`当前下标----${index}`)
|
|
419
422
|
if (isEmpty(this.charge.payment_terms[index].f_charge_money) || Number(this.charge.payment_terms[index].f_charge_money) === 0) {
|
|
420
|
-
this.$
|
|
423
|
+
this.$showMessage('单笔收费不能为0元!!!', 'warning', 3000)
|
|
421
424
|
this.charge.payment_terms[index].f_charge_money = null
|
|
422
425
|
return
|
|
423
426
|
}
|
|
@@ -494,9 +497,6 @@ export default {
|
|
|
494
497
|
rejectMsg: '用户获取失败!!!'
|
|
495
498
|
})
|
|
496
499
|
|
|
497
|
-
if (res.data.length <= 0) {
|
|
498
|
-
this.$showAlert('暂无需要缴费用户!!!', 'warning', 3000)
|
|
499
|
-
}
|
|
500
500
|
|
|
501
501
|
this.useraddresList = res.data.map(item => {
|
|
502
502
|
return {
|
|
@@ -509,9 +509,8 @@ export default {
|
|
|
509
509
|
},
|
|
510
510
|
async showChargeModal() {
|
|
511
511
|
this.getUserAddress()
|
|
512
|
-
|
|
513
|
-
this.charge.
|
|
514
|
-
|
|
512
|
+
console.log("材料费",this.selectdata.f_cost_sum)
|
|
513
|
+
this.charge.payment_terms[0].f_charge_money = this.selectdata.f_cost_sum
|
|
515
514
|
this.showCharge = true
|
|
516
515
|
},
|
|
517
516
|
async search () {
|
|
@@ -531,7 +530,7 @@ export default {
|
|
|
531
530
|
this.showInvalid = false
|
|
532
531
|
this.showPrint = false
|
|
533
532
|
this.charge = {
|
|
534
|
-
payment_terms:[{f_payment_term: '',f_charge_money: '',f_amount_words:'',f_payment_method :
|
|
533
|
+
payment_terms:[{f_payment_term: '',f_charge_money: '',f_amount_words:'',f_payment_method : this.charge.f_payment_method}]
|
|
535
534
|
}
|
|
536
535
|
this.search()
|
|
537
536
|
},
|
|
@@ -29,19 +29,15 @@
|
|
|
29
29
|
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
30
30
|
用户类型: {{row.f_user_type}}
|
|
31
31
|
</div>
|
|
32
|
-
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
33
|
-
用户地址: {{row.f_address}}
|
|
34
|
-
</div>
|
|
35
|
-
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
36
|
-
用户电话: {{row.f_phone}}
|
|
37
|
-
<img src="../../assets/telphonesend.png" style="width: 12px;" @click.stop.prevent='makeAPhoneCall(row.f_phone)'>
|
|
38
|
-
</div>
|
|
39
32
|
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
40
33
|
流程状态: {{row.f_sub_state}}
|
|
41
34
|
</div>
|
|
42
35
|
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
43
36
|
报建类型: {{row.f_apply_type}}
|
|
44
37
|
</div>
|
|
38
|
+
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
39
|
+
办理环节: {{row.defname}}
|
|
40
|
+
</div>
|
|
45
41
|
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
46
42
|
报建日期: {{row.f_apply_date}}
|
|
47
43
|
</div>
|
|
@@ -70,9 +70,6 @@
|
|
|
70
70
|
componentName: 'apply-user-info',
|
|
71
71
|
tabs: {
|
|
72
72
|
// 参数全部设置成空,在ready时,等model处理好了,再添加
|
|
73
|
-
'apply-user-info': {
|
|
74
|
-
header: '基本信息', class: 'apply-user-info-class', props: null
|
|
75
|
-
},
|
|
76
73
|
'apply-info': {
|
|
77
74
|
header: '流程信息', class: 'apply-info-class', props: null
|
|
78
75
|
},
|
|
@@ -115,7 +112,7 @@
|
|
|
115
112
|
}
|
|
116
113
|
this.componentName = name
|
|
117
114
|
console.log('name=>' + name)
|
|
118
|
-
if(
|
|
115
|
+
if( name == 'apply-info'){
|
|
119
116
|
this.tabs[name].props = {service: this.row, shutype: 'shu'}
|
|
120
117
|
}else{
|
|
121
118
|
this.row.defname = this.row.defname
|
|
@@ -129,11 +126,11 @@
|
|
|
129
126
|
},
|
|
130
127
|
setProps() {
|
|
131
128
|
// 给各自组件添加参数
|
|
132
|
-
this.tabs['apply-user-info'].props = {service: this.row, shutype: 'shu'}
|
|
129
|
+
// this.tabs['apply-user-info'].props = {service: this.row, shutype: 'shu'}
|
|
133
130
|
// this.tabs['apply-info'].props = {service: this.row, shutype: 'shu'}
|
|
134
131
|
// this.tabs['apply-defame-work'].props = {model: this.row, shutype: 'shu'}
|
|
135
132
|
|
|
136
|
-
this.$goto('apply-user-info', this.tabs[this.componentName].props, 'apply')
|
|
133
|
+
// this.$goto('apply-user-info', this.tabs[this.componentName].props, 'apply')
|
|
137
134
|
},
|
|
138
135
|
},
|
|
139
136
|
ready () {
|
|
@@ -151,7 +148,7 @@
|
|
|
151
148
|
},
|
|
152
149
|
components: {
|
|
153
150
|
'apply-info': ApplyInfo,
|
|
154
|
-
'apply-user-info':ApplyUserInfo,
|
|
151
|
+
// 'apply-user-info':ApplyUserInfo,
|
|
155
152
|
// 'fieldexploration': FieldExploration,
|
|
156
153
|
// 'acceptance': Acceptance,
|
|
157
154
|
// 'ventilation':Ventilation
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
data: Vue.user,
|
|
42
42
|
workname: this.selectdata.processname
|
|
43
43
|
}
|
|
44
|
-
let res = await http.load('POST', this.$androidUtil.getProxyUrl() +'rs/logic/ApplyGetConfigs', {data: xmldata}, {resolveMsg: null, rejectMsg: null})
|
|
44
|
+
let res = await http.load('POST', this.$androidUtil.getProxyUrl() +'/rs/logic/ApplyGetConfigs', {data: xmldata}, {resolveMsg: null, rejectMsg: null})
|
|
45
45
|
if (res.data.code && res.data.code === 200) {
|
|
46
46
|
Vue.prototype.$workflow_vue = res.data.workflow_vue
|
|
47
47
|
} else {
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
this.data.fields[i].value = this.selectdata[this.data.fields[i].field]
|
|
109
109
|
}
|
|
110
110
|
// 如果配置类型为select,优先从参数列表获取options
|
|
111
|
-
if (this.data.fields[i].type === 'select'
|
|
111
|
+
if (this.data.fields[i].type === 'select') {
|
|
112
112
|
if (this.data.fields[i].param) {
|
|
113
113
|
let temp = this.$appdata.getParam(this.data.fields[i].label)
|
|
114
114
|
|
|
@@ -123,10 +123,7 @@
|
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
-
|
|
127
|
-
if (this.data.fields[i].ready) {
|
|
128
|
-
this.data.fields[i].options = await this[this.data.fields[i].ready]()
|
|
129
|
-
}
|
|
126
|
+
|
|
130
127
|
}
|
|
131
128
|
}
|
|
132
129
|
// 初始化 buttons_fields
|
|
@@ -24,10 +24,11 @@
|
|
|
24
24
|
</div>
|
|
25
25
|
</div>
|
|
26
26
|
<!--时间datepicker-->
|
|
27
|
-
<div v-if="item.type==='datepicker'" :class="[data.fields[index].required&&!(data.fields[index].value) ? 'has-error' : '',data.fields[index].bootstraped?data.fields[index].bootstraped+' form-group':'col-
|
|
28
|
-
<label style="margin-top: 0.7em" :class="item.label_bootstraped?item.label_bootstraped + '':'col-
|
|
29
|
-
<div :class="item.value_bootstraped?item.value_bootstraped:'col-
|
|
27
|
+
<div v-if="item.type==='datepicker'" :class="[data.fields[index].required&&!(data.fields[index].value) ? 'has-error' : '',data.fields[index].bootstraped?data.fields[index].bootstraped+' form-group':'col-sm-4 form-group']">
|
|
28
|
+
<label style="margin-top: 0.7em" :class="item.label_bootstraped?item.label_bootstraped + 'control-label':'control-label col-sm-6'">{{item.label}}:</label>
|
|
29
|
+
<div :class="item.value_bootstraped?item.value_bootstraped:'col-sm-6'">
|
|
30
30
|
<datepicker
|
|
31
|
+
class="form-control"
|
|
31
32
|
:placeholder="item.placeholder"
|
|
32
33
|
:value.sync="data.fields[index].value"
|
|
33
34
|
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
@@ -88,9 +89,6 @@
|
|
|
88
89
|
</div>
|
|
89
90
|
<div class="col-sm-12 col-xs-12" id="test11">
|
|
90
91
|
<accordion one-at-a-time="true">
|
|
91
|
-
<panel v-for="(i,item) in data.onetomany" :header="item.title" :is-open="false" type="primary">
|
|
92
|
-
<app-onetomany :onetomany="item" :index="i" :selectdata="data"></app-onetomany>
|
|
93
|
-
</panel>
|
|
94
92
|
<panel v-for="(i,item) in data.components" :header="item.title" :is-open="true" type="primary" v-if="item.device === 'app' || !item.device">
|
|
95
93
|
<component :is="item.name" :selectdata="data" :mark="item.mark"></component>
|
|
96
94
|
</panel>
|
|
@@ -214,6 +212,7 @@
|
|
|
214
212
|
// 初始化数据
|
|
215
213
|
initializtion(){
|
|
216
214
|
console.log('进入serviceview的initializtion方法')
|
|
215
|
+
console.log('数据aaaa',this.data)
|
|
217
216
|
// let temp = this.data
|
|
218
217
|
// let temp = JSON.parse(JSON.stringify(this.data))
|
|
219
218
|
// this.data = temp
|
|
@@ -229,12 +228,12 @@
|
|
|
229
228
|
if(this.data.filiale){
|
|
230
229
|
this.model.f_filiale = this.data.filiale
|
|
231
230
|
}else{
|
|
232
|
-
this.model.f_filiale = Vue.user.
|
|
231
|
+
this.model.f_filiale = Vue.user.orgs
|
|
233
232
|
}
|
|
234
233
|
if(this.data.f_parentname){
|
|
235
234
|
this.model.f_parentname = this.data.f_parentname
|
|
236
235
|
}else{
|
|
237
|
-
this.model.f_parentname = Vue.user.
|
|
236
|
+
this.model.f_parentname = Vue.user.f_department_name
|
|
238
237
|
}
|
|
239
238
|
if(this.data.operate_date){
|
|
240
239
|
this.model.f_operate_date = this.data.operate_date
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="col-sm-12" style="margin: 20px 0px;">
|
|
3
|
+
<data-grid :model="model" v-ref:grid class="list_area table_sy" style="padding: 0px">
|
|
4
|
+
<template partial='head'>
|
|
5
|
+
<tr>
|
|
6
|
+
<th>序号</th>
|
|
7
|
+
<th>材料名称</th>
|
|
8
|
+
<th>单价(元)</th>
|
|
9
|
+
<th>数量</th>
|
|
10
|
+
<th>金额</th>
|
|
11
|
+
<th>备注</th>
|
|
12
|
+
<th v-if="$parent.$parent.mark === 0">
|
|
13
|
+
<button type="button" class="btn btn-info head-but" @click="$parent.$parent.addshoufei()" >新增收费
|
|
14
|
+
</button>
|
|
15
|
+
</th>
|
|
16
|
+
</tr>
|
|
17
|
+
</template>
|
|
18
|
+
<template partial='body'>
|
|
19
|
+
<td style="text-align: center">{{ $index + 1}}</td>
|
|
20
|
+
<td style="text-align: center">{{ row.f_material_name}}</td>
|
|
21
|
+
<td style="text-align: center">{{ row.f_material_price}}</td>
|
|
22
|
+
<td style="text-align: center">{{ row.f_material_number}}</td>
|
|
23
|
+
<td style="text-align: center">{{ row.f_fee}}</td>
|
|
24
|
+
<td style="text-align: center">{{ row.f_remarks}}</td>
|
|
25
|
+
<td class="flex-around" v-if="$parent.$parent.mark === 0">
|
|
26
|
+
<button type="button" name="button" class="btn btn-link"
|
|
27
|
+
@click.stop="$parent.$parent.modifyParam(row)">修改
|
|
28
|
+
</button>
|
|
29
|
+
<button type="button" name="button" class="btn btn-link"
|
|
30
|
+
@click.stop="$parent.$parent.deleteItem(row)">删除
|
|
31
|
+
</button>
|
|
32
|
+
</td>
|
|
33
|
+
</template>
|
|
34
|
+
</data-grid>
|
|
35
|
+
<span>合计:{{ f_cost_sum }}元</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<modal :show.sync="showpay" v-ref:modal backdrop="false">
|
|
39
|
+
<header slot="modal-header" class="modal-header">
|
|
40
|
+
<button type="button" class="close" @click="close"><span>×</span></button>
|
|
41
|
+
<h4 class="modal-title">新增材料收费</h4>
|
|
42
|
+
</header>
|
|
43
|
+
<article slot="modal-body" class="modal-body">
|
|
44
|
+
<div class="from-group">
|
|
45
|
+
<label>材料名称</label>
|
|
46
|
+
<input type="text" class="form-control" v-model="addItem.f_material_name">
|
|
47
|
+
</div>
|
|
48
|
+
<div class="from-group">
|
|
49
|
+
<label>单价(元)</label>
|
|
50
|
+
<input type="number" class="form-control" v-model="addItem.f_material_price">
|
|
51
|
+
</div>
|
|
52
|
+
<div class="from-group">
|
|
53
|
+
<label>数量</label>
|
|
54
|
+
<input type="number" class="form-control" v-model="addItem.f_material_number">
|
|
55
|
+
</div>
|
|
56
|
+
<div class="from-group">
|
|
57
|
+
<label>金额</label>
|
|
58
|
+
<input type="number" class="form-control" v-model="addItem.f_fee" :value="smalltoBIG()" readonly>
|
|
59
|
+
</div>
|
|
60
|
+
<div class="from-group">
|
|
61
|
+
<label>备注</label>
|
|
62
|
+
<textarea type="text" rows="2" class="form-control" v-model="addItem.f_remarks"></textarea>
|
|
63
|
+
</div>
|
|
64
|
+
</article>
|
|
65
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
66
|
+
<button v-show="showpay" type="button" class="btn btn-default" @click='close'>取消</button>
|
|
67
|
+
<button v-show="showpay" type="button" class="btn btn-success" @click='addpaydipetail'>确认</button>
|
|
68
|
+
</footer>
|
|
69
|
+
</modal>
|
|
70
|
+
</template>
|
|
71
|
+
|
|
72
|
+
<script>
|
|
73
|
+
import {HttpResetClass} from 'vue-client'
|
|
74
|
+
import Vue from "vue";
|
|
75
|
+
import $ from 'jquery'
|
|
76
|
+
|
|
77
|
+
export default {
|
|
78
|
+
title: '材料收费',
|
|
79
|
+
data() {
|
|
80
|
+
return {
|
|
81
|
+
showpay: false, // 新增材料收费开关
|
|
82
|
+
model: {
|
|
83
|
+
rows: [] // 材料收费数据数组
|
|
84
|
+
},
|
|
85
|
+
addItem: {},
|
|
86
|
+
f_cost_sum: 0,
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
props: {
|
|
90
|
+
selectdata: {
|
|
91
|
+
type: Object
|
|
92
|
+
},
|
|
93
|
+
mark: {
|
|
94
|
+
type: Number,
|
|
95
|
+
default: 0
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
ready() {
|
|
99
|
+
this.load()
|
|
100
|
+
},
|
|
101
|
+
methods: {
|
|
102
|
+
async load() {
|
|
103
|
+
let http = new HttpResetClass()
|
|
104
|
+
let data = {
|
|
105
|
+
tablename: 't_material_charges',
|
|
106
|
+
condition: `f_process_id = '${this.selectdata.f_process_id}'`
|
|
107
|
+
}
|
|
108
|
+
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/singleTable`, {data: data}, {resolveMsg: null, rejectMsg: '获取数据失败'})
|
|
109
|
+
.then((res) => {
|
|
110
|
+
this.model.rows = res.data
|
|
111
|
+
this.f_cost_sum = 0
|
|
112
|
+
for (var i = 0; i < this.model.rows.length; i++) {
|
|
113
|
+
this.f_cost_sum += Number(this.model.rows[i].f_fee)
|
|
114
|
+
}
|
|
115
|
+
this.$set('selectdata.f_cost_sum',this.f_cost_sum)
|
|
116
|
+
})
|
|
117
|
+
},
|
|
118
|
+
// 关闭模态框
|
|
119
|
+
close() {
|
|
120
|
+
this.showpay = false
|
|
121
|
+
this.addItem = null
|
|
122
|
+
},
|
|
123
|
+
// 模态框确定按钮保存数据
|
|
124
|
+
async addpaydipetail() {
|
|
125
|
+
let http = new HttpResetClass()
|
|
126
|
+
this.addItem.f_process_id = this.selectdata.f_process_id
|
|
127
|
+
this.addItem.f_apply_num = this.selectdata.f_apply_num
|
|
128
|
+
this.addItem.f_operator = Vue.user.name
|
|
129
|
+
this.addItem.f_department = Vue.user.f_department_name
|
|
130
|
+
this.addItem.f_filiale = Vue.user.orgs
|
|
131
|
+
await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/addmaterialshoufei`, this.addItem, {resolveMsg: '保存成功', rejectMsg: '保存失败'})
|
|
132
|
+
.then((res) => {
|
|
133
|
+
this.close()
|
|
134
|
+
this.load()
|
|
135
|
+
})
|
|
136
|
+
},
|
|
137
|
+
deleteItem(row) {
|
|
138
|
+
let http = new HttpResetClass()
|
|
139
|
+
http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/delectmaterialshoufei`, {data: row}, {resolveMsg: null, rejectMsg: '删除失败'})
|
|
140
|
+
.then((res) => {
|
|
141
|
+
this.load()
|
|
142
|
+
})
|
|
143
|
+
},
|
|
144
|
+
//新增收费 开启模态框
|
|
145
|
+
addshoufei() {
|
|
146
|
+
this.showpay = true
|
|
147
|
+
},
|
|
148
|
+
modifyParam(row) {
|
|
149
|
+
this.addItem = row
|
|
150
|
+
this.showpay = true
|
|
151
|
+
},
|
|
152
|
+
// 金额计算
|
|
153
|
+
smalltoBIG() {
|
|
154
|
+
let num = Number(this.addItem.f_material_price) * Number(this.addItem.f_material_number)
|
|
155
|
+
return num
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
watch: {}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
</script>
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
<style scoped>
|
|
165
|
+
table {
|
|
166
|
+
border-collapse: collapse;
|
|
167
|
+
border-spacing: 0;
|
|
168
|
+
width: 100%;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
table, td, th {
|
|
172
|
+
padding: 0;
|
|
173
|
+
border: 1px solid black
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
tr {
|
|
177
|
+
height: 34px;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
#DynamicForm input {
|
|
181
|
+
text-align: center;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
</style>
|
|
@@ -1,251 +1,251 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<criteria-paged :model="model" v-ref:cp>
|
|
3
|
-
<criteria partial='criteria' @condition-changed='search' v-ref:cri>
|
|
4
|
-
<div class="form-horizontal select-overspread container-fluid auto" partial>
|
|
5
|
-
<div class="row">
|
|
6
|
-
<div class="form-group col-sm-3">
|
|
7
|
-
<label class="font_normal_body">项目名称:</label>
|
|
8
|
-
<input type="text" class="input_search" style="width: 60%" v-model="model.f_entry_name"
|
|
9
|
-
v-on:keyup.enter="$parent.$parent.search()" condition="a.f_entry_name like '%{}%'" placeholder='项目名'>
|
|
10
|
-
</div>
|
|
11
|
-
<div class="form-group col-sm-3">
|
|
12
|
-
<label for="startDate" class="font_normal_body">开始时间:</label>
|
|
13
|
-
<datepicker id="startDate" placeholder="开始日期"
|
|
14
|
-
style="width: 60%!important;"
|
|
15
|
-
v-model="model.startDate"
|
|
16
|
-
:value.sync="model.startDate"
|
|
17
|
-
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
18
|
-
:show-reset-button="true"
|
|
19
|
-
condition="cr.f_charge_date >= '{}'">
|
|
20
|
-
</datepicker>
|
|
21
|
-
</div>
|
|
22
|
-
<div class="form-group col-sm-3">
|
|
23
|
-
<label for="endDate" class="font_normal_body">结束时间:</label>
|
|
24
|
-
<datepicker id="endDate" placeholder="结束日期"
|
|
25
|
-
style="width: 60%!important;"
|
|
26
|
-
v-model="model.endDate"
|
|
27
|
-
:value.sync="model.endDate"
|
|
28
|
-
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
29
|
-
:show-reset-button="true"
|
|
30
|
-
condition="cr.f_charge_date <= '{}'">
|
|
31
|
-
</datepicker>
|
|
32
|
-
</div>
|
|
33
|
-
<div class="form-group col-sm-3 button-range">
|
|
34
|
-
<button class="button_search button_spacing" @click="$parent.$parent.search()" v-el:cx>查询</button>
|
|
35
|
-
<button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
|
|
36
|
-
<export-excel :data="$parent.$parent.getCondition"
|
|
37
|
-
:field="$parent.$parent.getfield"
|
|
38
|
-
sqlurl="rs/logic/applyExportfile"
|
|
39
|
-
sql-name="getApplyCharge"
|
|
40
|
-
template-name='收费记录信息导出'
|
|
41
|
-
:choose-col="true"></export-excel>
|
|
42
|
-
<div
|
|
43
|
-
:class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
|
|
44
|
-
@click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"
|
|
45
|
-
class="button_spacing"
|
|
46
|
-
style="float: right">
|
|
47
|
-
</div>
|
|
48
|
-
</div>
|
|
49
|
-
</div>
|
|
50
|
-
<div class="row" v-show="$parent.$parent.criteriaShow">
|
|
51
|
-
<div class="form-group col-sm-3">
|
|
52
|
-
<label class="font_normal_body">报建编号:</label>
|
|
53
|
-
<input type="text" style="width: 60%" class="input_search" placeholder='报建编号' v-model="model.f_apply_num"
|
|
54
|
-
v-on:keyup.enter="$parent.$parent.search()"
|
|
55
|
-
condition="a.f_apply_num = '{}'">
|
|
56
|
-
</div>
|
|
57
|
-
<div class="form-group col-sm-3">
|
|
58
|
-
<label class="font_normal_body">合同编号:</label>
|
|
59
|
-
<input type="text" style="width: 60%" class="input_search" placeholder='合同编号' v-model="model.f_contract_number"
|
|
60
|
-
v-on:keyup.enter="$parent.$parent.search()"
|
|
61
|
-
condition="a.f_contract_number = '{}'">
|
|
62
|
-
</div>
|
|
63
|
-
<div class="form-group col-sm-3">
|
|
64
|
-
<label class="font_normal_body">报建类型:</label>
|
|
65
|
-
<v-select
|
|
66
|
-
v-model="model.f_apply_type"
|
|
67
|
-
placeholder='请选择'
|
|
68
|
-
condition="a.f_apply_type = '{}'"
|
|
69
|
-
:value.sync="model.f_apply_type"
|
|
70
|
-
:options='$parent.$parent.applytype'
|
|
71
|
-
class="select select_list"
|
|
72
|
-
:value-single="true"
|
|
73
|
-
close-on-select ></v-select>
|
|
74
|
-
</div>
|
|
75
|
-
<div class="form-group col-sm-3">
|
|
76
|
-
<label class="font_normal_body">收费人员:</label>
|
|
77
|
-
<input type="text" class="input_search" style="width: 60%" placeholder='收费人员' v-model="model.f_charge_collectors"
|
|
78
|
-
v-on:keyup.enter="$parent.$parent.search()"
|
|
79
|
-
condition="cr.f_charge_collectors like '%{}%'">
|
|
80
|
-
</div>
|
|
81
|
-
<div class="form-group col-sm-3">
|
|
82
|
-
<label class="font_normal_body">付款方式:</label>
|
|
83
|
-
<v-select
|
|
84
|
-
v-model="model.f_payment_method"
|
|
85
|
-
placeholder='请选择'
|
|
86
|
-
condition="cr.f_payment_method = '{}'"
|
|
87
|
-
:value.sync="model.f_payment_method"
|
|
88
|
-
:options='$parent.$parent.paymentMethod'
|
|
89
|
-
class="select select_list"
|
|
90
|
-
:value-single="true"
|
|
91
|
-
close-on-select ></v-select>
|
|
92
|
-
</div>
|
|
93
|
-
<div class="form-group col-sm-3">
|
|
94
|
-
<label class="font_normal_body">缴费状态:</label>
|
|
95
|
-
<v-select
|
|
96
|
-
v-model="model.f_charge_status"
|
|
97
|
-
placeholder='请选择'
|
|
98
|
-
condition="cr.f_charge_status = '{}'"
|
|
99
|
-
:value.sync="model.f_charge_status"
|
|
100
|
-
:options='$parent.$parent.chargingStatus'
|
|
101
|
-
class="select select_list"
|
|
102
|
-
:value-single="true"
|
|
103
|
-
close-on-select ></v-select>
|
|
104
|
-
</div>
|
|
105
|
-
</div>
|
|
106
|
-
</div>
|
|
107
|
-
</criteria>
|
|
108
|
-
<data-grid :model="model" partial='list' v-ref:grid style="overflow: auto" class="list_area table_sy">
|
|
109
|
-
<template partial='head'>
|
|
110
|
-
<tr>
|
|
111
|
-
<th>序号</th>
|
|
112
|
-
<th>报建编号</th>
|
|
113
|
-
<th>项目名称</th>
|
|
114
|
-
<th>合同编号</th>
|
|
115
|
-
<th>报建类型</th>
|
|
116
|
-
<th>缴费编码</th>
|
|
117
|
-
<th>收费金额</th>
|
|
118
|
-
<th>付款方式</th>
|
|
119
|
-
<th>收费人员</th>
|
|
120
|
-
<th>收费日期</th>
|
|
121
|
-
<th>状态</th>
|
|
122
|
-
<th>地址</th>
|
|
123
|
-
</tr>
|
|
124
|
-
</template>
|
|
125
|
-
<template partial='body'>
|
|
126
|
-
<tr >
|
|
127
|
-
<td style="text-align: center;">
|
|
128
|
-
<nobr><font>{{$index+1}}</font></nobr>
|
|
129
|
-
</td>
|
|
130
|
-
<td style="text-align: center;">
|
|
131
|
-
<nobr><font>{{row.f_apply_num}}</font></nobr>
|
|
132
|
-
</td>
|
|
133
|
-
<td style="text-align: center;">
|
|
134
|
-
<nobr><font>{{row.
|
|
135
|
-
</td>
|
|
136
|
-
<td style="text-align: center;">
|
|
137
|
-
<nobr><font>{{row.f_contract_number}}</font></nobr>
|
|
138
|
-
</td>
|
|
139
|
-
<td style="text-align: center;">
|
|
140
|
-
<nobr><font>{{row.f_apply_type}}</font></nobr>
|
|
141
|
-
</td>
|
|
142
|
-
<td style="text-align: center;">
|
|
143
|
-
<nobr><font>{{row.f_charge_number}}</font></nobr>
|
|
144
|
-
</td>
|
|
145
|
-
<td style="text-align: center;">
|
|
146
|
-
<nobr><font>{{row.f_charge_money}}</font></nobr>
|
|
147
|
-
</td>
|
|
148
|
-
<td style="text-align: center;">
|
|
149
|
-
<nobr><font>{{row.f_payment_method}}</font></nobr>
|
|
150
|
-
</td>
|
|
151
|
-
<td style="text-align: center;">
|
|
152
|
-
<nobr><font>{{row.f_charge_collectors}}</font></nobr>
|
|
153
|
-
</td>
|
|
154
|
-
<td style="text-align: center;">
|
|
155
|
-
<nobr><font>{{row.f_charge_date}}</font></nobr>
|
|
156
|
-
</td>
|
|
157
|
-
<td style="text-align: center;">
|
|
158
|
-
<nobr><font>{{row.f_charge_status}}</font></nobr>
|
|
159
|
-
</td>
|
|
160
|
-
<td style="text-align: center;">
|
|
161
|
-
<nobr><font>{{row.f_address}}</font></nobr>
|
|
162
|
-
</td>
|
|
163
|
-
</tr>
|
|
164
|
-
</template>
|
|
165
|
-
</data-grid>
|
|
166
|
-
</criteria-paged>
|
|
167
|
-
</template>
|
|
168
|
-
|
|
169
|
-
<script>
|
|
170
|
-
import {PagedList} from 'vue-client'
|
|
171
|
-
import {HttpResetClass} from 'vue-client'
|
|
172
|
-
export default {
|
|
173
|
-
title: '报建收费列表',
|
|
174
|
-
data () {
|
|
175
|
-
return {
|
|
176
|
-
model: new PagedList('rs/sql/getApplyCharge', 30, {
|
|
177
|
-
data: {
|
|
178
|
-
orgid: this.$login.f.orgid
|
|
179
|
-
}
|
|
180
|
-
}, {
|
|
181
|
-
f_charge_money: 0
|
|
182
|
-
}),
|
|
183
|
-
applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')],
|
|
184
|
-
paymentMethod: [{label: '全部', value: ''}, ...this.$appdata.getParam('付款方式')],
|
|
185
|
-
chargingStatus: [
|
|
186
|
-
{label: '全部', value: ''},
|
|
187
|
-
{label: '有效', value: '有效'},
|
|
188
|
-
{label: '作废', value: '作废'}
|
|
189
|
-
],
|
|
190
|
-
criteriaShow: false,
|
|
191
|
-
chargeAll: {
|
|
192
|
-
count: 0,
|
|
193
|
-
sum: 0
|
|
194
|
-
},
|
|
195
|
-
getfield: {
|
|
196
|
-
'f_apply_num': '报建编号',
|
|
197
|
-
'f_entry_name': '项目名称',
|
|
198
|
-
'f_contract_number': '合同编号',
|
|
199
|
-
'f_apply_type': '报建类型',
|
|
200
|
-
'f_charge_money': '收费金额',
|
|
201
|
-
'f_payment_method': '付款方式',
|
|
202
|
-
'f_charge_collectors': '收费人员',
|
|
203
|
-
'f_charge_date': '收费日期',
|
|
204
|
-
'f_charge_status': '状态',
|
|
205
|
-
'f_address': '地址'
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
},
|
|
209
|
-
ready () {
|
|
210
|
-
// 调用查询
|
|
211
|
-
this.search()
|
|
212
|
-
},
|
|
213
|
-
methods: {
|
|
214
|
-
clear () {
|
|
215
|
-
Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
|
|
216
|
-
this.$refs.cp.$refs.cri.model[key] = []
|
|
217
|
-
})
|
|
218
|
-
},
|
|
219
|
-
// 查询
|
|
220
|
-
search () {
|
|
221
|
-
this.$refs.cp.$refs.cri.search()
|
|
222
|
-
this.getChargeAll()
|
|
223
|
-
},
|
|
224
|
-
async getChargeAll () {
|
|
225
|
-
let http = new HttpResetClass()
|
|
226
|
-
let data = {
|
|
227
|
-
condition: this.model.condition,
|
|
228
|
-
data: {
|
|
229
|
-
orgid: this.$login.f.orgid
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
let res = await http.load('POST', 'rs/sql/getChargeAll', {data: data}, {resolveMsg: null, rejectMsg: null})
|
|
233
|
-
|
|
234
|
-
this.chargeAll = res.data[0]
|
|
235
|
-
}
|
|
236
|
-
},
|
|
237
|
-
computed: {
|
|
238
|
-
getCondition () {
|
|
239
|
-
return {
|
|
240
|
-
condition: this.$refs.cp.$refs.cri.condition,
|
|
241
|
-
data: {
|
|
242
|
-
orgid: this.$login.f.orgid
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
</script>
|
|
249
|
-
|
|
250
|
-
<style scoped>
|
|
251
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<criteria-paged :model="model" v-ref:cp>
|
|
3
|
+
<criteria partial='criteria' @condition-changed='search' v-ref:cri>
|
|
4
|
+
<div class="form-horizontal select-overspread container-fluid auto" partial>
|
|
5
|
+
<div class="row">
|
|
6
|
+
<div class="form-group col-sm-3">
|
|
7
|
+
<label class="font_normal_body">项目名称:</label>
|
|
8
|
+
<input type="text" class="input_search" style="width: 60%" v-model="model.f_entry_name"
|
|
9
|
+
v-on:keyup.enter="$parent.$parent.search()" condition="a.f_entry_name like '%{}%'" placeholder='项目名'>
|
|
10
|
+
</div>
|
|
11
|
+
<div class="form-group col-sm-3">
|
|
12
|
+
<label for="startDate" class="font_normal_body">开始时间:</label>
|
|
13
|
+
<datepicker id="startDate" placeholder="开始日期"
|
|
14
|
+
style="width: 60%!important;"
|
|
15
|
+
v-model="model.startDate"
|
|
16
|
+
:value.sync="model.startDate"
|
|
17
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
18
|
+
:show-reset-button="true"
|
|
19
|
+
condition="cr.f_charge_date >= '{}'">
|
|
20
|
+
</datepicker>
|
|
21
|
+
</div>
|
|
22
|
+
<div class="form-group col-sm-3">
|
|
23
|
+
<label for="endDate" class="font_normal_body">结束时间:</label>
|
|
24
|
+
<datepicker id="endDate" placeholder="结束日期"
|
|
25
|
+
style="width: 60%!important;"
|
|
26
|
+
v-model="model.endDate"
|
|
27
|
+
:value.sync="model.endDate"
|
|
28
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
29
|
+
:show-reset-button="true"
|
|
30
|
+
condition="cr.f_charge_date <= '{}'">
|
|
31
|
+
</datepicker>
|
|
32
|
+
</div>
|
|
33
|
+
<div class="form-group col-sm-3 button-range">
|
|
34
|
+
<button class="button_search button_spacing" @click="$parent.$parent.search()" v-el:cx>查询</button>
|
|
35
|
+
<button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
|
|
36
|
+
<export-excel :data="$parent.$parent.getCondition"
|
|
37
|
+
:field="$parent.$parent.getfield"
|
|
38
|
+
sqlurl="rs/logic/applyExportfile"
|
|
39
|
+
sql-name="getApplyCharge"
|
|
40
|
+
template-name='收费记录信息导出'
|
|
41
|
+
:choose-col="true"></export-excel>
|
|
42
|
+
<div
|
|
43
|
+
:class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
|
|
44
|
+
@click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"
|
|
45
|
+
class="button_spacing"
|
|
46
|
+
style="float: right">
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="row" v-show="$parent.$parent.criteriaShow">
|
|
51
|
+
<div class="form-group col-sm-3">
|
|
52
|
+
<label class="font_normal_body">报建编号:</label>
|
|
53
|
+
<input type="text" style="width: 60%" class="input_search" placeholder='报建编号' v-model="model.f_apply_num"
|
|
54
|
+
v-on:keyup.enter="$parent.$parent.search()"
|
|
55
|
+
condition="a.f_apply_num = '{}'">
|
|
56
|
+
</div>
|
|
57
|
+
<div class="form-group col-sm-3">
|
|
58
|
+
<label class="font_normal_body">合同编号:</label>
|
|
59
|
+
<input type="text" style="width: 60%" class="input_search" placeholder='合同编号' v-model="model.f_contract_number"
|
|
60
|
+
v-on:keyup.enter="$parent.$parent.search()"
|
|
61
|
+
condition="a.f_contract_number = '{}'">
|
|
62
|
+
</div>
|
|
63
|
+
<div class="form-group col-sm-3">
|
|
64
|
+
<label class="font_normal_body">报建类型:</label>
|
|
65
|
+
<v-select
|
|
66
|
+
v-model="model.f_apply_type"
|
|
67
|
+
placeholder='请选择'
|
|
68
|
+
condition="a.f_apply_type = '{}'"
|
|
69
|
+
:value.sync="model.f_apply_type"
|
|
70
|
+
:options='$parent.$parent.applytype'
|
|
71
|
+
class="select select_list"
|
|
72
|
+
:value-single="true"
|
|
73
|
+
close-on-select ></v-select>
|
|
74
|
+
</div>
|
|
75
|
+
<div class="form-group col-sm-3">
|
|
76
|
+
<label class="font_normal_body">收费人员:</label>
|
|
77
|
+
<input type="text" class="input_search" style="width: 60%" placeholder='收费人员' v-model="model.f_charge_collectors"
|
|
78
|
+
v-on:keyup.enter="$parent.$parent.search()"
|
|
79
|
+
condition="cr.f_charge_collectors like '%{}%'">
|
|
80
|
+
</div>
|
|
81
|
+
<div class="form-group col-sm-3">
|
|
82
|
+
<label class="font_normal_body">付款方式:</label>
|
|
83
|
+
<v-select
|
|
84
|
+
v-model="model.f_payment_method"
|
|
85
|
+
placeholder='请选择'
|
|
86
|
+
condition="cr.f_payment_method = '{}'"
|
|
87
|
+
:value.sync="model.f_payment_method"
|
|
88
|
+
:options='$parent.$parent.paymentMethod'
|
|
89
|
+
class="select select_list"
|
|
90
|
+
:value-single="true"
|
|
91
|
+
close-on-select ></v-select>
|
|
92
|
+
</div>
|
|
93
|
+
<div class="form-group col-sm-3">
|
|
94
|
+
<label class="font_normal_body">缴费状态:</label>
|
|
95
|
+
<v-select
|
|
96
|
+
v-model="model.f_charge_status"
|
|
97
|
+
placeholder='请选择'
|
|
98
|
+
condition="cr.f_charge_status = '{}'"
|
|
99
|
+
:value.sync="model.f_charge_status"
|
|
100
|
+
:options='$parent.$parent.chargingStatus'
|
|
101
|
+
class="select select_list"
|
|
102
|
+
:value-single="true"
|
|
103
|
+
close-on-select ></v-select>
|
|
104
|
+
</div>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
</criteria>
|
|
108
|
+
<data-grid :model="model" partial='list' v-ref:grid style="overflow: auto" class="list_area table_sy">
|
|
109
|
+
<template partial='head'>
|
|
110
|
+
<tr>
|
|
111
|
+
<th>序号</th>
|
|
112
|
+
<th>报建编号</th>
|
|
113
|
+
<th>项目名称</th>
|
|
114
|
+
<th>合同编号</th>
|
|
115
|
+
<th>报建类型</th>
|
|
116
|
+
<th>缴费编码</th>
|
|
117
|
+
<th>收费金额</th>
|
|
118
|
+
<th>付款方式</th>
|
|
119
|
+
<th>收费人员</th>
|
|
120
|
+
<th>收费日期</th>
|
|
121
|
+
<th>状态</th>
|
|
122
|
+
<th>地址</th>
|
|
123
|
+
</tr>
|
|
124
|
+
</template>
|
|
125
|
+
<template partial='body'>
|
|
126
|
+
<tr >
|
|
127
|
+
<td style="text-align: center;">
|
|
128
|
+
<nobr><font>{{$index+1}}</font></nobr>
|
|
129
|
+
</td>
|
|
130
|
+
<td style="text-align: center;">
|
|
131
|
+
<nobr><font>{{row.f_apply_num}}</font></nobr>
|
|
132
|
+
</td>
|
|
133
|
+
<td style="text-align: center;">
|
|
134
|
+
<nobr><font>{{row.f_entry_name}}</font></nobr>
|
|
135
|
+
</td>
|
|
136
|
+
<td style="text-align: center;">
|
|
137
|
+
<nobr><font>{{row.f_contract_number}}</font></nobr>
|
|
138
|
+
</td>
|
|
139
|
+
<td style="text-align: center;">
|
|
140
|
+
<nobr><font>{{row.f_apply_type}}</font></nobr>
|
|
141
|
+
</td>
|
|
142
|
+
<td style="text-align: center;">
|
|
143
|
+
<nobr><font>{{row.f_charge_number}}</font></nobr>
|
|
144
|
+
</td>
|
|
145
|
+
<td style="text-align: center;">
|
|
146
|
+
<nobr><font>{{row.f_charge_money}}</font></nobr>
|
|
147
|
+
</td>
|
|
148
|
+
<td style="text-align: center;">
|
|
149
|
+
<nobr><font>{{row.f_payment_method}}</font></nobr>
|
|
150
|
+
</td>
|
|
151
|
+
<td style="text-align: center;">
|
|
152
|
+
<nobr><font>{{row.f_charge_collectors}}</font></nobr>
|
|
153
|
+
</td>
|
|
154
|
+
<td style="text-align: center;">
|
|
155
|
+
<nobr><font>{{row.f_charge_date}}</font></nobr>
|
|
156
|
+
</td>
|
|
157
|
+
<td style="text-align: center;">
|
|
158
|
+
<nobr><font>{{row.f_charge_status}}</font></nobr>
|
|
159
|
+
</td>
|
|
160
|
+
<td style="text-align: center;">
|
|
161
|
+
<nobr><font>{{row.f_address}}</font></nobr>
|
|
162
|
+
</td>
|
|
163
|
+
</tr>
|
|
164
|
+
</template>
|
|
165
|
+
</data-grid>
|
|
166
|
+
</criteria-paged>
|
|
167
|
+
</template>
|
|
168
|
+
|
|
169
|
+
<script>
|
|
170
|
+
import {PagedList} from 'vue-client'
|
|
171
|
+
import {HttpResetClass} from 'vue-client'
|
|
172
|
+
export default {
|
|
173
|
+
title: '报建收费列表',
|
|
174
|
+
data () {
|
|
175
|
+
return {
|
|
176
|
+
model: new PagedList('rs/sql/getApplyCharge', 30, {
|
|
177
|
+
data: {
|
|
178
|
+
orgid: this.$login.f.orgid
|
|
179
|
+
}
|
|
180
|
+
}, {
|
|
181
|
+
f_charge_money: 0
|
|
182
|
+
}),
|
|
183
|
+
applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')],
|
|
184
|
+
paymentMethod: [{label: '全部', value: ''}, ...this.$appdata.getParam('付款方式')],
|
|
185
|
+
chargingStatus: [
|
|
186
|
+
{label: '全部', value: ''},
|
|
187
|
+
{label: '有效', value: '有效'},
|
|
188
|
+
{label: '作废', value: '作废'}
|
|
189
|
+
],
|
|
190
|
+
criteriaShow: false,
|
|
191
|
+
chargeAll: {
|
|
192
|
+
count: 0,
|
|
193
|
+
sum: 0
|
|
194
|
+
},
|
|
195
|
+
getfield: {
|
|
196
|
+
'f_apply_num': '报建编号',
|
|
197
|
+
'f_entry_name': '项目名称',
|
|
198
|
+
'f_contract_number': '合同编号',
|
|
199
|
+
'f_apply_type': '报建类型',
|
|
200
|
+
'f_charge_money': '收费金额',
|
|
201
|
+
'f_payment_method': '付款方式',
|
|
202
|
+
'f_charge_collectors': '收费人员',
|
|
203
|
+
'f_charge_date': '收费日期',
|
|
204
|
+
'f_charge_status': '状态',
|
|
205
|
+
'f_address': '地址'
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
ready () {
|
|
210
|
+
// 调用查询
|
|
211
|
+
this.search()
|
|
212
|
+
},
|
|
213
|
+
methods: {
|
|
214
|
+
clear () {
|
|
215
|
+
Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
|
|
216
|
+
this.$refs.cp.$refs.cri.model[key] = []
|
|
217
|
+
})
|
|
218
|
+
},
|
|
219
|
+
// 查询
|
|
220
|
+
search () {
|
|
221
|
+
this.$refs.cp.$refs.cri.search()
|
|
222
|
+
this.getChargeAll()
|
|
223
|
+
},
|
|
224
|
+
async getChargeAll () {
|
|
225
|
+
let http = new HttpResetClass()
|
|
226
|
+
let data = {
|
|
227
|
+
condition: this.model.condition,
|
|
228
|
+
data: {
|
|
229
|
+
orgid: this.$login.f.orgid
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
let res = await http.load('POST', 'rs/sql/getChargeAll', {data: data}, {resolveMsg: null, rejectMsg: null})
|
|
233
|
+
|
|
234
|
+
this.chargeAll = res.data[0]
|
|
235
|
+
}
|
|
236
|
+
},
|
|
237
|
+
computed: {
|
|
238
|
+
getCondition () {
|
|
239
|
+
return {
|
|
240
|
+
condition: this.$refs.cp.$refs.cri.condition,
|
|
241
|
+
data: {
|
|
242
|
+
orgid: this.$login.f.orgid
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
</script>
|
|
249
|
+
|
|
250
|
+
<style scoped>
|
|
251
|
+
</style>
|