apply-clients 3.3.2 → 3.3.6
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 +2 -1
- package/src/AndroidApp.vue +2 -2
- package/src/apply.js +1 -0
- package/src/applyAndroid.js +1 -0
- package/src/components/android/AppTakePic.vue +143 -139
- package/src/components/android/Process/AppExplorationUser.vue +2 -2
- package/src/components/android/Process/AppServiceControl.vue +153 -35
- package/src/components/android/Process/Processes/AppChargeManagement.vue +468 -0
- package/src/components/android/Process/Processes/AppInstallationDetails.vue +5 -2
- package/src/components/product/ApplyCharge/ApplyChargeList.vue +32 -14
- package/src/components/product/ApplyCharge/ApplyChargeSearch.vue +30 -30
- package/src/components/product/Function/InstallFunction.vue +1 -1
- package/src/components/product/Function/Service/FunctionServiceControl.vue +15 -9
- package/src/components/product/Order/OrderApplyList.vue +48 -37
- package/src/components/product/Order/OrderMessage.vue +20 -5
- package/src/components/product/Process/ExplorationSelect.vue +4 -0
- package/src/components/product/Process/ExplorationUser.vue +126 -126
- package/src/components/product/Process/Processes/InstallationDetails.vue +100 -83
- package/src/components/product/Process/Processes/addressAndUserinfoManagement.vue +24 -23
- package/src/components/product/Process/Processes/chargeManagement.vue +65 -7
- package/src/components/product/Process/Processes/printCharge.vue +130 -126
- package/src/components/product/Process/Processes/selectApply.vue +5 -1
- package/src/components/product/Process/Service/ServiceControl.vue +211 -47
- package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +127 -23
- package/src/components/product/Supervisory/SupervisoryControl.vue +100 -100
- package/src/components/product/Supervisory/SupervisoryhCart.vue +121 -107
- package/src/components/product/VueUtils/ApplyUpload.vue +262 -261
- package/src/components/product/VueUtils/GaoPaiYi/HighMeter.vue +1090 -0
|
@@ -0,0 +1,468 @@
|
|
|
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="showChargeModal()">新增收费</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" v-if="selectdata.f_apply_type !== '开发商集体报建'">
|
|
11
|
+
<p class="col-xs-4 text-left font"><b>地址</b></p>
|
|
12
|
+
<p class="col-xs-8 text-left input-font">{{ row.f_useraddres }}</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_charge_number }}</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_charge_money }}</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_amount_words }}</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_payment_term }}</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_payment_method }}</p>
|
|
33
|
+
</div>
|
|
34
|
+
<div class="row" v-if="row.f_payment_method === '银行转账'">
|
|
35
|
+
<p class="col-xs-4 text-left font"><b>付款方名称</b></p>
|
|
36
|
+
<p class="col-xs-8 text-left input-font">{{ row.f_payer_name }}</p>
|
|
37
|
+
</div>
|
|
38
|
+
<div class="row" v-if="row.f_payment_method === '银行转账'">
|
|
39
|
+
<p class="col-xs-4 text-left font"><b>付款方账号</b></p>
|
|
40
|
+
<p class="col-xs-8 text-left input-font">{{ row.f_payer_account }}</p>
|
|
41
|
+
</div>
|
|
42
|
+
<div class="row" v-if="row.f_payment_method === '银行转账'">
|
|
43
|
+
<p class="col-xs-4 text-left font"><b>付款流水号</b></p>
|
|
44
|
+
<p class="col-xs-8 text-left input-font">{{ row.f_payer_number }}</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_charge_collectors }}</p>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="row">
|
|
51
|
+
<p class="col-xs-4 text-left font"><b>收费日期</b></p>
|
|
52
|
+
<p class="col-xs-8 text-left input-font">{{ row.f_charge_date }}</p>
|
|
53
|
+
</div>
|
|
54
|
+
<div class="row">
|
|
55
|
+
<p class="col-xs-4 text-left font"><b>备注</b></p>
|
|
56
|
+
<p class="col-xs-8 text-left input-font">{{ row.f_charge_remarks }}</p>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
</list>
|
|
61
|
+
</div>
|
|
62
|
+
|
|
63
|
+
<modal v-if="showCharge" :show.sync="showCharge" v-ref:modal :large="true" :backdrop="false" title="收费明细">
|
|
64
|
+
<header slot="modal-header" class="modal-header">
|
|
65
|
+
<button type="button" class="close" @click="closeModal"><span>×</span></button>
|
|
66
|
+
<h4 class="modal-title">收费明细</h4>
|
|
67
|
+
</header>
|
|
68
|
+
<article slot="modal-body" class="modal-body clearfix">
|
|
69
|
+
<div class="form-group row vertical-center" :class="charge.f_payment_term ? '':'has-error'">
|
|
70
|
+
<label class="col-xs-4 control-label">收费项目:</label>
|
|
71
|
+
<div class="col-xs-8">
|
|
72
|
+
<input-select class="select select_list"
|
|
73
|
+
v-model="charge.f_payment_term"
|
|
74
|
+
:value.sync="charge.f_payment_term"
|
|
75
|
+
:options='paymentTerm'
|
|
76
|
+
:value-single="true"
|
|
77
|
+
close-on-select ></input-select>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
<div class="form-group row vertical-center" :class="charge.f_charge_money ? '':'has-error'">
|
|
81
|
+
<label class="col-xs-4 control-label">收费金额:</label>
|
|
82
|
+
<div class="col-xs-8">
|
|
83
|
+
<input class="form-control input_view" style="" type="number"
|
|
84
|
+
v-model="charge.f_charge_money"
|
|
85
|
+
@keyup="handleInput"
|
|
86
|
+
@change="moneyChange"
|
|
87
|
+
:readonly="false"/>
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
<div class="form-group row vertical-center">
|
|
91
|
+
<label class="col-xs-4 control-label">金额大写:</label>
|
|
92
|
+
<div class="col-xs-8">
|
|
93
|
+
<input class="form-control input_view" style=""
|
|
94
|
+
v-model="charge.f_amount_words"
|
|
95
|
+
:value="smalltoBIG(0)"
|
|
96
|
+
:readonly="true"/>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
<div class="form-group row vertical-center">
|
|
100
|
+
<label class="col-xs-4 control-label">应交总金额:</label>
|
|
101
|
+
<div class="col-xs-8">
|
|
102
|
+
<input class="form-control input_view" style=""
|
|
103
|
+
v-model="selectdata.f_due_money"
|
|
104
|
+
:readonly="true"/>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
<div class="form-group row vertical-center">
|
|
108
|
+
<label class="col-xs-4 control-label">缴费总金额:</label>
|
|
109
|
+
<div class="col-xs-8">
|
|
110
|
+
<input class="form-control input_view" style=""
|
|
111
|
+
v-model="selectdata.f_cumulative_payment_money"
|
|
112
|
+
:readonly="true"/>
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
<div class="form-group row vertical-center">
|
|
116
|
+
<label class="col-xs-4 control-label">未结总金额:</label>
|
|
117
|
+
<div class="col-xs-8">
|
|
118
|
+
<input class="form-control input_view" style=""
|
|
119
|
+
v-model="selectdata.f_surplus_money"
|
|
120
|
+
:readonly="true"/>
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
</article>
|
|
124
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
125
|
+
<button type="button" class="btn btn-primary" @click.prevent="openQrCode()">确认</button>
|
|
126
|
+
</footer>
|
|
127
|
+
</modal>
|
|
128
|
+
|
|
129
|
+
<modal v-if="showCharge" :show.sync="showQrCode" v-ref:qrcodemodal :large="true" :backdrop="false" style="height: 100%">
|
|
130
|
+
<header slot="modal-header" class="modal-header">
|
|
131
|
+
<h4 class="modal-title">微信扫码支付</h4>
|
|
132
|
+
</header>
|
|
133
|
+
<article slot="modal-body" class="modal-body clearfix">
|
|
134
|
+
<div class="text-center">
|
|
135
|
+
<p><b>收费金额:{{ charge.f_charge_money }}¥</b></p>
|
|
136
|
+
<p><b>收费项目:{{ charge.f_payment_term }}</b></p>
|
|
137
|
+
<div id="qrcode" class="qrcode" v-ref:qrcode></div>
|
|
138
|
+
<p>
|
|
139
|
+
等待支付,剩余 <span style="color: #ff791a">{{timeLeft}}</span> 秒
|
|
140
|
+
</p>
|
|
141
|
+
</div>
|
|
142
|
+
</article>
|
|
143
|
+
<footer slot="modal-footer"></footer>
|
|
144
|
+
</modal>
|
|
145
|
+
</div>
|
|
146
|
+
</template>
|
|
147
|
+
<script>
|
|
148
|
+
import {getNowDate,isEmpty} from '../../../Util'
|
|
149
|
+
import {PagedList} from 'vue-client'
|
|
150
|
+
import {HttpResetClass} from 'vue-client'
|
|
151
|
+
import QRCode from 'qrcodejs2'
|
|
152
|
+
import Vue from "vue";
|
|
153
|
+
|
|
154
|
+
export default {
|
|
155
|
+
title: '收费管理',
|
|
156
|
+
props: {
|
|
157
|
+
selectdata: {
|
|
158
|
+
type: Object
|
|
159
|
+
},
|
|
160
|
+
mark: {
|
|
161
|
+
type: Number,
|
|
162
|
+
default: 0
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
data () {
|
|
166
|
+
return {
|
|
167
|
+
showCharge: false, // 收费明细
|
|
168
|
+
showQrCode : false, // 二维码
|
|
169
|
+
model: {
|
|
170
|
+
rows: null
|
|
171
|
+
}, // 记录
|
|
172
|
+
useraddresList: [], // 地址列表
|
|
173
|
+
charge: {
|
|
174
|
+
|
|
175
|
+
},
|
|
176
|
+
order: null,
|
|
177
|
+
timeLeft: 60,
|
|
178
|
+
paymentInterval: null,
|
|
179
|
+
orderInterval: null,
|
|
180
|
+
config: {
|
|
181
|
+
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
ready () {
|
|
186
|
+
this.search()
|
|
187
|
+
this.getConfig()
|
|
188
|
+
},
|
|
189
|
+
methods: {
|
|
190
|
+
// 新增收费
|
|
191
|
+
async saveCharge() {
|
|
192
|
+
let http = new HttpResetClass()
|
|
193
|
+
let data = {
|
|
194
|
+
apply: this.selectdata,
|
|
195
|
+
charge: this.charge,
|
|
196
|
+
user: Vue.user
|
|
197
|
+
// user: {"f_show_department_name":"","parentname":"周口运营部","functions":[{"pagenames":"公共通讯录维护模板","processnames":"发邮件流程","parentname":"客服系统","icon":"/images/lefticon/档案管理.png","hasright":false,"resourcetype":"function","parentid":"27","children":[{"pagenames":"公共通讯录维护模板","processnames":"发邮件流程","parentname":"档案管理","link":"city-manage","hasright":true,"resourcetype":"function","parentid":"212","children":[],"selfid":"231","name":"街道管理","templatename":"functionedit","id":"230","position":"1","fullname":"资源管理.功能模块.客服系统.档案管理.街道管理","fullid":"3.21.27.212.230","tablename":"t_function"},{"pagenames":"公共通讯录维护模板","processnames":"发邮件流程","parentname":"档案管理","link":"area-manage","hasright":true,"resourcetype":"function","parentid":"212","children":[],"selfid":"219","name":"小区管理","templatename":"functionedit","id":"218","position":"3","fullname":"资源管理.功能模块.客服系统.档案管理.小区管理","fullid":"3.21.27.212.218","tablename":"t_function"},{"pagenames":"公共通讯录维护模板","processnames":"发邮件流程","parentname":"档案管理","link":"address-manage","hasright":true,"resourcetype":"function","parentid":"212","children":[],"selfid":"33664","name":"地址管理","templatename":"functionedit","id":"33663","position":"5","fullname":"资源管理.功能模块.客服系统.档案管理.地址管理","fullid":"3.21.27.212.33663","tablename":"t_function"},{"pagenames":"公共通讯录维护模板","processnames":"发邮件流程","parentname":"档案管理","link":"file-user-files","hasright":true,"resourcetype":"function","parentid":"212","children":[],"selfid":"237","name":"用户档案","templatename":"functionedit","id":"236","position":"5","fullname":"资源管理.功能模块.客服系统.档案管理.用户档案","fullid":"3.21.27.212.236","tablename":"t_function"},{"pagenames":"公共通讯录维护模板","processnames":"发邮件流程","loginid":"15","parentname":"档案管理","link":"file-user-files-new","hasright":true,"resourcetype":"function","parentid":"212","f_parentname":"档案管理","children":[],"selfid":"39450","name":"预备户管理","templatename":"functionedit","id":"39449","position":"6","fullname":"资源管理.功能模块.客服系统.档案管理.预备户管理","fullid":"3.21.27.212.39449","tablename":"t_function"}],"selfid":"213","name":"档案管理","templatename":"functionedit","id":"212","position":"2","fullname":"资源管理.功能模块.客服系统.档案管理","fullid":"3.21.27.212","tablename":"t_function"},{"pagenames":"公共通讯录维护模板","processnames":"发邮件流程","loginid":"15","parentname":"客服系统","icon":"/images/lefticon/报建系统.png","hasright":true,"resourcetype":"function","parentid":"27","f_parentname":"客服系统","children":[{"pagenames":"公共通讯录维护模板","processnames":"发邮件流程","loginid":"15","parentname":"报建业务","link":"install-function","hasright":true,"resourcetype":"function","parentid":"34673","f_parentname":"报建业务","children":[],"selfid":"34680","name":"功能业务","templatename":"functionedit","id":"34679","position":"1","fullname":"资源管理.功能模块.客服系统.报建业务.功能业务","fullid":"3.21.27.34673.34679","tablename":"t_function"},{"pagenames":"公共通讯录维护模板","processnames":"发邮件流程","loginid":"15","parentname":"报建业务","link":"exploration-user","hasright":true,"resourcetype":"function","parentid":"34673","f_parentname":"报建业务","children":[],"selfid":"34686","name":"流程业务","templatename":"functionedit","id":"34685","position":"2","fullname":"资源管理.功能模块.客服系统.报建业务.流程业务","fullid":"3.21.27.34673.34685","tablename":"t_function"},{"pagenames":"公共通讯录维护模板","processnames":"发邮件流程","loginid":"15","parentname":"报建业务","link":"supervisory-control","hasright":true,"resourcetype":"function","parentid":"34673","f_parentname":"报建业务","children":[],"selfid":"34692","name":"流程监控","templatename":"functionedit","id":"34691","position":"3","fullname":"资源管理.功能模块.客服系统.报建业务.流程监控","fullid":"3.21.27.34673.34691","tablename":"t_function"},{"pagenames":"公共通讯录维护模板","processnames":"发邮件流程","loginid":"15","parentname":"报建业务","link":"apply-charge-search","hasright":true,"resourcetype":"function","parentid":"34673","f_parentname":"报建业务","children":[],"selfid":"34698","name":"收费明细","templatename":"functionedit","id":"34697","position":"4","fullname":"资源管理.功能模块.客服系统.报建业务.收费明细","fullid":"3.21.27.34673.34697","tablename":"t_function"},{"pagenames":"公共通讯录维护模板","processnames":"发邮件流程","loginid":"15","parentname":"报建业务","link":"order-apply","hasright":true,"resourcetype":"function","parentid":"34673","f_parentname":"报建业务","children":[],"selfid":"34704","name":"预约申请","templatename":"functionedit","id":"34703","position":"5","fullname":"资源管理.功能模块.客服系统.报建业务.预约申请","fullid":"3.21.27.34673.34703","tablename":"t_function"},{"pagenames":"公共通讯录维护模板","processnames":"发邮件流程","loginid":"15","parentname":"报建业务","link":"stop-apply","hasright":true,"resourcetype":"function","parentid":"34673","f_parentname":"报建业务","children":[],"selfid":"34710","name":"终止报建","templatename":"functionedit","id":"34709","position":"6","fullname":"资源管理.功能模块.客服系统.报建业务.终止报建","fullid":"3.21.27.34673.34709","tablename":"t_function"}],"selfid":"34674","name":"报建业务","templatename":"functionedit","id":"34673","position":"12","fullname":"资源管理.功能模块.客服系统.报建业务","fullid":"3.21.27.34673","tablename":"t_function"}],"qrcode":"/rs/user/getQRcode?QRCODE=12b2-1631604191812-03447","rolesnames":"营业厅报装,市场部报装,设计部报装,工程部报装,运营部报装,财务部报装,角色监控","f_sex":"男","roles":"51383,51485,51707,51767,51833,51905,52289","f_icon":"tree_user","fullnames":"河南亿星集团实业有限公司.周口市天然气有限公司.周口运营部.报建测试","dir":"ZhouKou","userid":"12b2-1631604191812-03447","accesstime":"1631606085945","parentid":"46569","f_show_rolestr":"","fullids":"30463.10101.46569.51953.","number":"10101","f_dep_id":"1010101203","f_idnumber":{},"selfid":"51954","templatename":"useredit","id":"51953","state":"在职","tablename":"t_user","deptype":"部门","depids":"46569","loginid":"15","imgid":{},"f_user_telephone":{},"rolestr":"营业厅报装,市场部报装,设计部报装,工程部报装,运营部报装,财务部报装,角色监控","deps":"周口运营部","f_age":{},"resourcetype":"user","orgid":"10101","f_department_name":"周口运营部","ename":"bjcs","deleted":"false","entitytype":"t_user","f_description":{},"loginip":"192.168.66.37","name":"报建测试","position":"1","orgs":"周口市天然气有限公司","haslicense":true,"f_role_name":"营业厅报装 市场部报装 设计部报装 工程部报装 运营部报装 财务部报装 角色监控 ","f_allArea":[],"f_gasman":[],"lics":[]}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/addApplyChargeRecord`, {data:data}, {
|
|
201
|
+
resolveMsg: null,
|
|
202
|
+
rejectMsg: '缴费失败!!!'
|
|
203
|
+
})
|
|
204
|
+
this.selectdata = res.data
|
|
205
|
+
|
|
206
|
+
this.$dispatch('breakControl')
|
|
207
|
+
},
|
|
208
|
+
// 获取订单信息
|
|
209
|
+
async getOrderInformation () {
|
|
210
|
+
// 查询订单信息
|
|
211
|
+
console.log('查询订单信息!!!')
|
|
212
|
+
let data = {
|
|
213
|
+
out_trade_no: this.order.out_trade_no,
|
|
214
|
+
filiale: this.config[Vue.user.number]
|
|
215
|
+
}
|
|
216
|
+
// 查询订单状态
|
|
217
|
+
let http = new HttpResetClass()
|
|
218
|
+
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/wx/rs/weixin/queryBzIsPay`, data, {
|
|
219
|
+
resolveMsg: null,
|
|
220
|
+
rejectMsg: '订单查询失败!!!'
|
|
221
|
+
})
|
|
222
|
+
|
|
223
|
+
// 支付成功
|
|
224
|
+
if (res.data.trade_state === 'SUCCESS') {
|
|
225
|
+
clearTimeout(this.paymentInterval)
|
|
226
|
+
clearTimeout(this.orderInterval)
|
|
227
|
+
this.timeLeft = 10
|
|
228
|
+
// 清除二维码
|
|
229
|
+
this.clearQrCode()
|
|
230
|
+
this.showQrCode = false
|
|
231
|
+
|
|
232
|
+
this.saveCharge()
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
// 打开二维码
|
|
236
|
+
async openQrCode () {
|
|
237
|
+
if (isEmpty(this.charge.f_payment_term)) {
|
|
238
|
+
this.$showAlert('请选择收费项目!!!', 'warning', 3000)
|
|
239
|
+
return
|
|
240
|
+
}
|
|
241
|
+
if (isEmpty(this.charge.f_charge_money)) {
|
|
242
|
+
this.$showAlert('请输入收费金额!!!', 'warning', 3000)
|
|
243
|
+
return
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
let http = new HttpResetClass()
|
|
247
|
+
// 接口金额 单位为:分
|
|
248
|
+
let data = {
|
|
249
|
+
money: this.charge.f_charge_money * 100,
|
|
250
|
+
attach: {},
|
|
251
|
+
str: this.charge.f_payment_term,
|
|
252
|
+
filiale: this.config[Vue.user.number]
|
|
253
|
+
}
|
|
254
|
+
// 下订单
|
|
255
|
+
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/wx/rs/weixin/bzgetcode`, data, {
|
|
256
|
+
resolveMsg: null,
|
|
257
|
+
rejectMsg: '订单生成失败!!!'
|
|
258
|
+
})
|
|
259
|
+
|
|
260
|
+
console.log('=================================')
|
|
261
|
+
console.log(res.data)
|
|
262
|
+
this.order = res.data
|
|
263
|
+
|
|
264
|
+
this.showQrCode = true
|
|
265
|
+
|
|
266
|
+
this.$nextTick(()=>{
|
|
267
|
+
this.qrcode()
|
|
268
|
+
})
|
|
269
|
+
|
|
270
|
+
// 剩余支付时间
|
|
271
|
+
this.paymentInterval = setInterval(() => {
|
|
272
|
+
this.timeLeft = this.timeLeft - 1
|
|
273
|
+
},1000)
|
|
274
|
+
|
|
275
|
+
// 3秒查询一次订单支付信息
|
|
276
|
+
this.orderInterval = setInterval(() => {
|
|
277
|
+
this.getOrderInformation()
|
|
278
|
+
},3000)
|
|
279
|
+
|
|
280
|
+
},
|
|
281
|
+
qrcode () {
|
|
282
|
+
let qrcode = new QRCode('qrcode',{
|
|
283
|
+
text: this.order.url, // 设置二维码内容或跳转地址
|
|
284
|
+
width: 200, // 设置宽度,单位像素
|
|
285
|
+
height: 200, // 设置高度,单位像素
|
|
286
|
+
correctLevel: QRCode.CorrectLevel.L //容错率,L/M/Hs
|
|
287
|
+
})
|
|
288
|
+
},
|
|
289
|
+
clearQrCode () {
|
|
290
|
+
document.getElementById('qrcode').innerHTML = ''
|
|
291
|
+
},
|
|
292
|
+
moneyChange () {
|
|
293
|
+
if (isEmpty(this.charge.f_charge_money) || Number(this.charge.f_charge_money) === 0) {
|
|
294
|
+
this.$showAlert('单笔收费不能为0元!!!', 'warning', 3000)
|
|
295
|
+
this.charge.f_charge_money = null
|
|
296
|
+
return
|
|
297
|
+
}
|
|
298
|
+
if (this.selectdata.f_apply_type === '散户集体报建' && Number(this.charge.f_charge_money) > Number(this.charge.f_outstanding_amount)) {
|
|
299
|
+
this.$showAlert('单笔收费不能超过未交金额!!!', 'warning', 3000)
|
|
300
|
+
this.charge.f_charge_money = null
|
|
301
|
+
return
|
|
302
|
+
}
|
|
303
|
+
if (Number(this.charge.f_charge_money) > Number(this.selectdata.f_surplus_money)) {
|
|
304
|
+
this.$showAlert('单笔收费不能超过未交总金额!!!', 'warning', 3000)
|
|
305
|
+
this.charge.f_charge_money = null
|
|
306
|
+
return
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
// 金额转大写
|
|
310
|
+
handleInput(e) {
|
|
311
|
+
// 通过正则过滤小数点后两位
|
|
312
|
+
e.target.value = (e.target.value.match(/^\d*(\.?\d{0,2})/g)[0]) || null
|
|
313
|
+
this.charge.f_amount_words = this.smalltoBIG(e.target.value)
|
|
314
|
+
},
|
|
315
|
+
// 金额转大写
|
|
316
|
+
smalltoBIG(n) {
|
|
317
|
+
let fraction = ['角', '分'];
|
|
318
|
+
let digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
|
|
319
|
+
let unit = [['元', '万', '亿'], ['', '拾', '佰', '仟']];
|
|
320
|
+
let head = n < 0 ? '欠' : '';
|
|
321
|
+
n = Math.abs(n);
|
|
322
|
+
|
|
323
|
+
let s = '';
|
|
324
|
+
|
|
325
|
+
for (var i = 0; i < fraction.length; i++) {
|
|
326
|
+
s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
|
|
327
|
+
}
|
|
328
|
+
s = s || '整';
|
|
329
|
+
n = Math.floor(n);
|
|
330
|
+
|
|
331
|
+
for (var i = 0; i < unit[0].length && n > 0; i++) {
|
|
332
|
+
let p = '';
|
|
333
|
+
for (var j = 0; j < unit[1].length && n > 0; j++) {
|
|
334
|
+
p = digit[n % 10] + unit[1][j] + p;
|
|
335
|
+
n = Math.floor(n / 10);
|
|
336
|
+
}
|
|
337
|
+
s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
|
|
338
|
+
}
|
|
339
|
+
return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整')
|
|
340
|
+
},
|
|
341
|
+
async getUserAddress() {
|
|
342
|
+
let http = new HttpResetClass()
|
|
343
|
+
let data = {}
|
|
344
|
+
let url = null
|
|
345
|
+
if (this.selectdata.f_apply_type === '改管报建' || this.selectdata.f_apply_type === '增容报建') {
|
|
346
|
+
data = {
|
|
347
|
+
condition: `ui.f_userinfo_id = ${this.selectdata.f_userinfo_id}`
|
|
348
|
+
}
|
|
349
|
+
url = `${this.$androidUtil.getProxyUrl()}/rs/sql/applyGetUserinfos`
|
|
350
|
+
} else {
|
|
351
|
+
data = {
|
|
352
|
+
condition: this.selectdata.f_apply_type === '散户集体报建' ? `nvl(cr.f_cumulative_payment_money, 0) < ${this.selectdata.f_price}` : '1=1',
|
|
353
|
+
f_process_id: this.selectdata.f_process_id
|
|
354
|
+
}
|
|
355
|
+
url = `${this.$androidUtil.getProxyUrl()}/rs/sql/getAddresAndCumulativePayment`
|
|
356
|
+
}
|
|
357
|
+
let res = await http.load('POST', url, {data:data}, {
|
|
358
|
+
resolveMsg: null,
|
|
359
|
+
rejectMsg: '用户获取失败!!!'
|
|
360
|
+
})
|
|
361
|
+
|
|
362
|
+
if (res.data.length <= 0) {
|
|
363
|
+
this.$showAlert('暂无需要缴费用户!!!', 'warning', 3000)
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
this.useraddresList = res.data.map(item => {
|
|
367
|
+
return {
|
|
368
|
+
// 有用户姓名地址后拼接姓名
|
|
369
|
+
label: `${item.f_address} ${isEmpty(item.f_user_name) ? '' : '--- ' + item.f_user_name}`,
|
|
370
|
+
value: item
|
|
371
|
+
}
|
|
372
|
+
})
|
|
373
|
+
|
|
374
|
+
},
|
|
375
|
+
async showChargeModal() {
|
|
376
|
+
this.getUserAddress()
|
|
377
|
+
|
|
378
|
+
this.charge.f_payment_method = '掌上营业厅'
|
|
379
|
+
|
|
380
|
+
this.showCharge = true
|
|
381
|
+
},
|
|
382
|
+
async search () {
|
|
383
|
+
let http = new HttpResetClass()
|
|
384
|
+
let data = {
|
|
385
|
+
f_process_id: this.selectdata.f_process_id
|
|
386
|
+
}
|
|
387
|
+
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/getApplyChargeRecord`, {data:data}, {
|
|
388
|
+
resolveMsg: null,
|
|
389
|
+
rejectMsg: '收费记录查询失败!!!'
|
|
390
|
+
})
|
|
391
|
+
this.model.rows = res.data
|
|
392
|
+
},
|
|
393
|
+
// 关闭对话框
|
|
394
|
+
closeModal () {
|
|
395
|
+
this.showCharge = false
|
|
396
|
+
this.showInvalid = false
|
|
397
|
+
this.showPrint = false
|
|
398
|
+
this.charge = {}
|
|
399
|
+
this.search()
|
|
400
|
+
},
|
|
401
|
+
async getConfig () {
|
|
402
|
+
let http = new HttpResetClass()
|
|
403
|
+
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/getWeiXinConfig`, null, {
|
|
404
|
+
resolveMsg: null,
|
|
405
|
+
rejectMsg: '获取配置失败!!!'
|
|
406
|
+
})
|
|
407
|
+
|
|
408
|
+
console.log('==============================')
|
|
409
|
+
console.log(res.data)
|
|
410
|
+
|
|
411
|
+
this.config = res.data
|
|
412
|
+
|
|
413
|
+
this.timeLeft = this.config.timeLeft
|
|
414
|
+
},
|
|
415
|
+
},
|
|
416
|
+
events: {
|
|
417
|
+
},
|
|
418
|
+
computed: {
|
|
419
|
+
paymentMethod() {
|
|
420
|
+
return this.$appdata.getParam("付款方式")
|
|
421
|
+
},
|
|
422
|
+
paymentTerm() {
|
|
423
|
+
return this.$appdata.getParam("收费项目")
|
|
424
|
+
// return [{label: '安装费', value: '安装费'}]
|
|
425
|
+
}
|
|
426
|
+
},
|
|
427
|
+
watch: {
|
|
428
|
+
timeLeft () {
|
|
429
|
+
if (this.timeLeft <= 0) {
|
|
430
|
+
clearTimeout(this.paymentInterval)
|
|
431
|
+
clearTimeout(this.orderInterval)
|
|
432
|
+
|
|
433
|
+
this.timeLeft = this.config.timeLeft
|
|
434
|
+
|
|
435
|
+
// 清除二维码
|
|
436
|
+
this.clearQrCode()
|
|
437
|
+
|
|
438
|
+
this.showQrCode = false
|
|
439
|
+
|
|
440
|
+
this.$showMessage('订单支付超时!!!')
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
</script>
|
|
446
|
+
<style scoped lang="less">
|
|
447
|
+
.qrcode {
|
|
448
|
+
display: inline-block !important;
|
|
449
|
+
margin: 10px 0px;
|
|
450
|
+
}
|
|
451
|
+
.panel-self{
|
|
452
|
+
border-radius: 10px;
|
|
453
|
+
border:1px solid #499EDF;
|
|
454
|
+
background-color: #F8F8F8;
|
|
455
|
+
}
|
|
456
|
+
.vertical-center {
|
|
457
|
+
display: flex;
|
|
458
|
+
align-items: center;
|
|
459
|
+
text-align: center;
|
|
460
|
+
}
|
|
461
|
+
/*清除model中的浮动*/
|
|
462
|
+
.clearfix:after,.clearfix:before{
|
|
463
|
+
display: table;
|
|
464
|
+
}
|
|
465
|
+
.clearfix:after{
|
|
466
|
+
clear: both;
|
|
467
|
+
}
|
|
468
|
+
</style>
|
|
@@ -346,8 +346,11 @@ export default {
|
|
|
346
346
|
async search () {
|
|
347
347
|
let http = new HttpResetClass()
|
|
348
348
|
let data = {
|
|
349
|
-
condition:
|
|
350
|
-
|
|
349
|
+
condition: `ua.f_process_id = '${this.selectdata.f_process_id}'`
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
if (this.selectdata.f_apply_type === '团购转散户') {
|
|
353
|
+
data.condition = `ui.f_userinfo_id = '${this.selectdata.f_userinfo_id}'`
|
|
351
354
|
}
|
|
352
355
|
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/getAddresAndUserinfoAndUserfilesAmount`, {data:data}, {
|
|
353
356
|
// let res = await http.load('POST', `rs/sql/getAddresAndUserinfoAndUserfilesAmount`, {data:data}, {
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<criteria-paged :model="model" v-ref:cp>
|
|
3
|
-
<criteria partial='criteria' @condition-changed='
|
|
3
|
+
<criteria partial='criteria' @condition-changed='$parent.searchCondition' v-ref:cri>
|
|
4
4
|
<div class="form-horizontal select-overspread container-fluid auto" partial>
|
|
5
5
|
<div class="row">
|
|
6
6
|
<div class="form-group col-sm-3">
|
|
7
|
-
<label class="font_normal_body"
|
|
8
|
-
<
|
|
9
|
-
|
|
7
|
+
<label class="font_normal_body">组织机构:</label>
|
|
8
|
+
<res-select
|
|
9
|
+
restype='organization'
|
|
10
|
+
:initresid='$parent.$parent.curorgid'
|
|
11
|
+
@res-select="$parent.$parent.getorg"
|
|
12
|
+
is-mul="false"
|
|
13
|
+
></res-select>
|
|
10
14
|
</div>
|
|
11
15
|
<div class="form-group col-sm-3">
|
|
12
16
|
<label for="startDate" class="font_normal_body">开始时间:</label>
|
|
@@ -54,6 +58,11 @@
|
|
|
54
58
|
v-on:keyup.enter="$parent.$parent.search()"
|
|
55
59
|
condition="a.f_apply_num = '{}'">
|
|
56
60
|
</div>
|
|
61
|
+
<div class="form-group col-sm-3">
|
|
62
|
+
<label class="font_normal_body">项目名称:</label>
|
|
63
|
+
<input type="text" class="input_search" style="width: 60%" v-model="model.f_entry_name"
|
|
64
|
+
v-on:keyup.enter="$parent.$parent.search()" condition="a.f_entry_name like '%{}%'" placeholder='项目名'>
|
|
65
|
+
</div>
|
|
57
66
|
<div class="form-group col-sm-3">
|
|
58
67
|
<label class="font_normal_body">合同编号:</label>
|
|
59
68
|
<input type="text" style="width: 60%" class="input_search" placeholder='合同编号' v-model="model.f_contract_number"
|
|
@@ -114,10 +123,10 @@
|
|
|
114
123
|
<th>合同编号</th>
|
|
115
124
|
<th>报建类型</th>
|
|
116
125
|
<th>缴费编码</th>
|
|
117
|
-
<th
|
|
126
|
+
<th>收费金额(退款金额)</th>
|
|
118
127
|
<th>付款方式</th>
|
|
119
|
-
<th
|
|
120
|
-
<th
|
|
128
|
+
<th>收费人员(退款人员)</th>
|
|
129
|
+
<th>收费日期(退款日期)</th>
|
|
121
130
|
<th>状态</th>
|
|
122
131
|
</tr>
|
|
123
132
|
</template>
|
|
@@ -169,19 +178,17 @@ export default {
|
|
|
169
178
|
title: '报建收费列表',
|
|
170
179
|
data () {
|
|
171
180
|
return {
|
|
172
|
-
model: new PagedList('rs/sql/getApplyCharge', 30, {
|
|
173
|
-
data: {
|
|
174
|
-
orgid: this.$login.f.orgid
|
|
175
|
-
}
|
|
176
|
-
}, {
|
|
181
|
+
model: new PagedList('rs/sql/getApplyCharge', 30, null, {
|
|
177
182
|
f_charge_money: 0
|
|
178
183
|
}),
|
|
184
|
+
curorgid: [this.$login.f.orgid],
|
|
179
185
|
applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')],
|
|
180
186
|
paymentMethod: [{label: '全部', value: ''}, ...this.$appdata.getParam('付款方式')],
|
|
181
187
|
chargeStatus: [
|
|
182
188
|
{label: '全部', value: ''},
|
|
183
189
|
{label: '有效', value: '有效'},
|
|
184
|
-
{label: '作废', value: '作废'}
|
|
190
|
+
{label: '作废', value: '作废'},
|
|
191
|
+
{label: '退款', value: '退款'}
|
|
185
192
|
],
|
|
186
193
|
criteriaShow: false,
|
|
187
194
|
chargeAll: {
|
|
@@ -208,9 +215,13 @@ export default {
|
|
|
208
215
|
methods: {
|
|
209
216
|
clear () {
|
|
210
217
|
Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
|
|
211
|
-
this.$refs.cp.$refs.cri.model[key] =
|
|
218
|
+
this.$refs.cp.$refs.cri.model[key] = ''
|
|
212
219
|
})
|
|
213
220
|
},
|
|
221
|
+
searchCondition (args) {
|
|
222
|
+
args.condition = args.condition + ` and cr.f_orgid = '${this.curorgid[0]}'`
|
|
223
|
+
this.model.search(args.condition, args.model)
|
|
224
|
+
},
|
|
214
225
|
// 查询
|
|
215
226
|
search () {
|
|
216
227
|
this.$refs.cp.$refs.cri.search()
|
|
@@ -227,6 +238,13 @@ export default {
|
|
|
227
238
|
let res = await http.load('POST', 'rs/sql/getChargeAll', {data: data}, {resolveMsg: null, rejectMsg: null})
|
|
228
239
|
|
|
229
240
|
this.chargeAll = res.data[0]
|
|
241
|
+
},
|
|
242
|
+
getorg (val) {
|
|
243
|
+
if (val.length <= 0) {
|
|
244
|
+
return
|
|
245
|
+
}
|
|
246
|
+
this.curorgid = val
|
|
247
|
+
this.search()
|
|
230
248
|
}
|
|
231
249
|
},
|
|
232
250
|
computed: {
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="flex-row">
|
|
3
|
-
<div class="basic-main">
|
|
4
|
-
<div style="height: 95%">
|
|
5
|
-
<apply-charge-list v-ref:query ></apply-charge-list>
|
|
6
|
-
</div>
|
|
7
|
-
<p class="bg-info text-center" style="font-size: 20px;height: 5%"
|
|
8
|
-
|
|
9
|
-
合计金额<span style="color: red"
|
|
10
|
-
</p>
|
|
11
|
-
</div>
|
|
12
|
-
</div>
|
|
13
|
-
</template>
|
|
14
|
-
|
|
15
|
-
<script>
|
|
16
|
-
export default {
|
|
17
|
-
title: '报建收费明细',
|
|
18
|
-
data () {
|
|
19
|
-
return {
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
ready () {
|
|
23
|
-
},
|
|
24
|
-
methods: {
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
</script>
|
|
28
|
-
|
|
29
|
-
<style scoped>
|
|
30
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="flex-row">
|
|
3
|
+
<div class="basic-main">
|
|
4
|
+
<div style="height: 95%">
|
|
5
|
+
<apply-charge-list v-ref:query ></apply-charge-list>
|
|
6
|
+
</div>
|
|
7
|
+
<p class="bg-info text-center" style="font-size: 20px;height: 5%">
|
|
8
|
+
合计记录共<span style="color: red"> {{$refs.query.chargeAll.count}} </span>笔,
|
|
9
|
+
合计金额<span style="color: red"> {{$refs.query.chargeAll.sum}} </span>元
|
|
10
|
+
</p>
|
|
11
|
+
</div>
|
|
12
|
+
</div>
|
|
13
|
+
</template>
|
|
14
|
+
|
|
15
|
+
<script>
|
|
16
|
+
export default {
|
|
17
|
+
title: '报建收费明细',
|
|
18
|
+
data () {
|
|
19
|
+
return {
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
ready () {
|
|
23
|
+
},
|
|
24
|
+
methods: {
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<style scoped>
|
|
30
|
+
</style>
|