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.
Files changed (28) hide show
  1. package/package.json +2 -1
  2. package/src/AndroidApp.vue +2 -2
  3. package/src/apply.js +1 -0
  4. package/src/applyAndroid.js +1 -0
  5. package/src/components/android/AppTakePic.vue +143 -139
  6. package/src/components/android/Process/AppExplorationUser.vue +2 -2
  7. package/src/components/android/Process/AppServiceControl.vue +153 -35
  8. package/src/components/android/Process/Processes/AppChargeManagement.vue +468 -0
  9. package/src/components/android/Process/Processes/AppInstallationDetails.vue +5 -2
  10. package/src/components/product/ApplyCharge/ApplyChargeList.vue +32 -14
  11. package/src/components/product/ApplyCharge/ApplyChargeSearch.vue +30 -30
  12. package/src/components/product/Function/InstallFunction.vue +1 -1
  13. package/src/components/product/Function/Service/FunctionServiceControl.vue +15 -9
  14. package/src/components/product/Order/OrderApplyList.vue +48 -37
  15. package/src/components/product/Order/OrderMessage.vue +20 -5
  16. package/src/components/product/Process/ExplorationSelect.vue +4 -0
  17. package/src/components/product/Process/ExplorationUser.vue +126 -126
  18. package/src/components/product/Process/Processes/InstallationDetails.vue +100 -83
  19. package/src/components/product/Process/Processes/addressAndUserinfoManagement.vue +24 -23
  20. package/src/components/product/Process/Processes/chargeManagement.vue +65 -7
  21. package/src/components/product/Process/Processes/printCharge.vue +130 -126
  22. package/src/components/product/Process/Processes/selectApply.vue +5 -1
  23. package/src/components/product/Process/Service/ServiceControl.vue +211 -47
  24. package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +127 -23
  25. package/src/components/product/Supervisory/SupervisoryControl.vue +100 -100
  26. package/src/components/product/Supervisory/SupervisoryhCart.vue +121 -107
  27. package/src/components/product/VueUtils/ApplyUpload.vue +262 -261
  28. 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>&times;</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
+ 等待支付,剩余&ensp;<span style="color: #ff791a">{{timeLeft}}</span>&ensp;秒
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: " 1=1",
350
- f_process_id: this.selectdata.f_process_id
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='search' v-ref:cri>
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">项目名称:</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='项目名'>
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>收费金额</th>
126
+ <th>收费金额(退款金额)</th>
118
127
  <th>付款方式</th>
119
- <th>收费人员</th>
120
- <th>收费日期</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
- <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>
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">&ensp;{{$refs.query.chargeAll.count}}&ensp;</span>笔,
9
+ 合计金额<span style="color: red">&ensp;{{$refs.query.chargeAll.sum}}&ensp;</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>
@@ -15,7 +15,7 @@
15
15
  :isdelete="true"
16
16
  :isusetype="true"
17
17
  :isremark = "true"
18
- :takeimg="false"
18
+ :takeimg="true"
19
19
  :issearch="true"
20
20
  :defname="show_data.defname"
21
21
  >