apply-clients 3.4.96 → 3.4.98-1

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.
@@ -8,8 +8,8 @@ var compiler = webpack(config)
8
8
  // var proxy = httpProxy.createProxyServer()
9
9
  // var ldap = 'http://121.36.79.201:8400'
10
10
  // var applyinstall = 'http://121.36.79.201:8400'
11
- var ldap = 'http://192.168.50.4:8400'
12
- var applyinstall = 'http://192.168.50.4:8400'
11
+ var ldap = 'http://121.36.106.17:8400'
12
+ var applyinstall = 'http://121.36.106.17:8400'
13
13
 
14
14
  var proxyTable = {
15
15
  '/apply/rs/entity': {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apply-clients",
3
- "version": "3.4.96",
3
+ "version": "3.4.98-1",
4
4
  "description": "报建前端模块",
5
5
  "main": "src/index.js",
6
6
  "directories": {
@@ -1,466 +1,469 @@
1
- <template>
2
- <div>
3
- <criteria-paged :model="model" v-ref:cp>
4
- <criteria partial='criteria' @condition-changed='search' v-ref:cri>
5
- <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
- <div class="row">
7
- <div class="form-group col-sm-3">
8
- <label class="font_normal_body">客户名称:</label>
9
- <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
10
- v-on:keyup.enter="$parent.$parent.search()" condition="f_user_name like '%{}%'" placeholder='客户名称'>
11
- </div>
12
- <div class="form-group col-sm-3">
13
- <label class="font_normal_body">组织机构:</label>
14
- <res-select
15
- restype='organization'
16
- :initresid='$parent.$parent.curorgid'
17
- @res-select="$parent.$parent.getorg"
18
- is-mul="false"
19
- ></res-select>
20
- </div>
21
- <div class="form-group col-sm-3 button-range">
22
- <a type="button" class="button_new button_spacing" v-if="$parent.$parent.projectStart"
23
- href="/apply/download/excel/散户报装模板.xlsx" download>模板下载</a>
24
- <button class="button_new button_spacing" style="width: max-content"
25
- v-if="$parent.$parent.projectStart"
26
- @click="$parent.$parent.showFile = !$parent.$parent.showFile">批量散户导入</button>
27
- <button class="button_new button_spacing" style="width: max-content"
28
- v-if="$parent.$parent.projectStart"
29
- @click="$parent.$parent.showModal = !$parent.$parent.showModal">工程发起</button>
30
- <button class="button_search button_spacing" @click="$parent.$parent.search()" v-el:cx>查询</button>
31
- <button class="button_search button_spacing" @click="$parent.$parent.loadPage()">返回</button>
32
- <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
33
- <div
34
- :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
35
- @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"
36
- class="button_spacing"
37
- style="float: right">
38
- </div>
39
- </div>
40
- </div>
41
- <div class="row" v-show="$parent.$parent.criteriaShow">
42
- <!-- <div class="form-group col-sm-3">-->
43
- <!-- <label class="font_normal_body">客户名称:</label>-->
44
- <!-- <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"-->
45
- <!-- v-on:keyup.enter="$parent.$parent.search()" condition="f_user_name like '%{}%'" placeholder='客户名称'>-->
46
- <!-- </div>-->
47
- <div class="form-group col-sm-3">
48
- <label class="font_normal_body">用户编号:</label>
49
- <input type="text" style="width:60%" class="input_search" placeholder='用户编号' v-model="model.f_userinfo_code"
50
- v-on:keyup.enter="$parent.$parent.search()"
51
- condition="ui.f_userinfo_code like '%{}%'">
52
- </div>
53
- <div class="form-group col-sm-3">
54
- <label class="font_normal_body">工程编号:</label>
55
- <input type="text" style="width:60%" class="input_search" placeholder='工程编号' v-model="model.f_apply_num"
56
- v-on:keyup.enter="$parent.$parent.search()"
57
- condition="u.f_apply_num like '%{}%'">
58
- </div>
59
- <div class="form-group col-sm-3">
60
- <label class="font_normal_body">合同编号:</label>
61
- <input type="text" style="width:60%" class="input_search" placeholder='合同编号' v-model="model.f_contract_money"
62
- v-on:keyup.enter="$parent.$parent.search()"
63
- condition="u.f_contract_money like '%{}%'">
64
- </div>
65
- <div class="form-group col-sm-3">
66
- <label class="font_normal_body">联系电话:</label>
67
- <input type="text" style="width:60%" class="input_search" placeholder='联系电话' v-model="model.f_phone"
68
- v-on:keyup.enter="$parent.$parent.search()"
69
- condition="f_phone like '%{}%'">
70
- </div>
71
- <div class="form-group col-sm-3">
72
- <label class="font_normal_body">合同编号:</label>
73
- <input type="text" style="width:60%" class="input_search" placeholder='合同编号' v-model="model.f_contract_number"
74
- v-on:keyup.enter="$parent.$parent.search()"
75
- condition="f_contract_number = '{}'">
76
- </div>
77
- <div class="form-group col-sm-3">
78
- <label class="font_normal_body">报建类型:</label>
79
- <v-select
80
- v-model="model.f_apply_type"
81
- placeholder='报建类型'
82
- condition="f_apply_type = '{}'"
83
- :value.sync="model.f_apply_type"
84
- :options='$parent.$parent.applytype'
85
- class="select select_list"
86
- :value-single="true"
87
- @change="$parent.$parent.applyTypeChange()"
88
- close-on-select ></v-select>
89
- </div>
90
- <div class="form-group col-sm-3">
91
- <label class="font_normal_body">办理环节:</label>
92
- <v-select
93
- v-model="model.defname"
94
- placeholder='办理环节'
95
- condition="act.defname = '{}'"
96
- :value.sync="model.defname"
97
- :options='$parent.$parent.defnames'
98
- class="select select_list"
99
- :value-single="true"
100
- close-on-select ></v-select>
101
- </div>
102
- <div class="form-group col-sm-3">
103
- <label class="font_normal_body">报建性质:</label>
104
- <v-select
105
- v-model="model.f_apply_nature"
106
- placeholder='报建性质'
107
- condition="f_apply_nature = '{}'"
108
- :value.sync="model.f_apply_nature"
109
- :options='$parent.$parent.applyNatures'
110
- class="select select_list"
111
- :value-single="true"
112
- close-on-select ></v-select>
113
- </div>
114
- <div class="form-group col-sm-3">
115
- <label class="font_normal_body">用户地址:</label>
116
- <input type="text" style="width:60%" class="input_search" placeholder='用户地址' v-model="model.f_address"
117
- v-on:keyup.enter="$parent.$parent.search()"
118
- condition="f_address like '%{}%'">
119
- </div>
120
- <div class="form-group col-sm-3">
121
- <label for="startDate" class="font_normal_body">开始时间:</label>
122
- <datepicker id="startDate" placeholder="开始日期"
123
- style="width: 60%!important;"
124
- v-model="model.startDate"
125
- :value.sync="model.startDate"
126
- :format="'yyyy-MM-dd 00:00:00'"
127
- :show-reset-button="true"
128
- condition="f_apply_date >= '{}'">
129
- </datepicker>
130
- </div>
131
- <div class="form-group col-sm-3">
132
- <label for="endDate" class="font_normal_body">结束时间:</label>
133
- <datepicker id="endDate" placeholder="结束日期"
134
- style="width: 60%!important;"
135
- v-model="model.endDate"
136
- :value.sync="model.endDate"
137
- :format="'yyyy-MM-dd 23:59:59'"
138
- :show-reset-button="true"
139
- condition="f_apply_date <= '{}'">
140
- </datepicker>
141
- </div>
142
- <div class="form-group col-sm-3">
143
- <label class="font_normal_body">稍后处理:</label>
144
- <v-select
145
- v-model="model.f_no_valid"
146
- placeholder='稍后处理'
147
- condition="lp.f_no_valid = '{}'"
148
- :value.sync="model.f_no_valid"
149
- :options='$parent.$parent.laterList'
150
- class="select select_list"
151
- :value-single="true"
152
- close-on-select ></v-select>
153
- </div>
154
- <div class="form-group col-sm-3">
155
- <label class="font_normal_body">节点发起人:</label>
156
- <input type="text" style="width:60%" class="input_search" v-model="model.act_sender"
157
- v-on:keyup.enter="$parent.$parent.search()" condition="act.sender like '%{}%'" placeholder='节点发起人'>
158
- </div>
159
- </div>
160
- </div>
161
- </criteria>
162
- <data-grid v-if="$parent.showData" :model="model" partial='list' v-ref:grid class="list_area table_sy" style="height: 100%">
163
- <template partial='head'>
164
- <tr>
165
- <th style="white-space: nowrap;">序号</th>
166
- <th style="white-space: nowrap;">工程编号</th>
167
- <th style="white-space: nowrap;">客户名称</th>
168
- <th style="white-space: nowrap;">合同编号</th>
169
- <th style="white-space: nowrap;">电话</th>
170
- <th style="white-space: nowrap;">地址</th>
171
- <th style="white-space: nowrap;">来源</th>
172
- <th style="white-space: nowrap;">报建类型</th>
173
- <th style="white-space: nowrap;">办理环节</th>
174
- <th style="white-space: nowrap;">流程状态</th>
175
- <th style="white-space: nowrap;">报建日期</th>
176
- <th style="white-space: nowrap;">操作</th>
177
- </tr>
178
- </template>
179
- <template partial='body'>
180
- <tr class="back-style">
181
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'', row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
182
- <nobr><font>{{$index+1}}</font></nobr>
183
- </td>
184
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
185
- <nobr><font>{{row.f_apply_num}}</font></nobr>
186
- </td>
187
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
188
- <nobr><font>{{row.f_user_name}}</font></nobr>
189
- </td>
190
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
191
- <nobr><font>{{row.f_contract_number}}</font></nobr>
192
- </td>
193
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
194
- <nobr><font>{{row.f_phone}}</font></nobr>
195
- </td>
196
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
197
- <nobr><font>{{row.f_address}}</font></nobr>
198
- </td>
199
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
200
- <nobr><font>{{row.f_apply_source}}</font></nobr>
201
- </td>
202
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
203
- <nobr><font>{{row.f_apply_type}}</font></nobr>
204
- </td>
205
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
206
- <nobr><font>{{row.defname}}</font></nobr>
207
- </td>
208
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
209
- <nobr><font>{{row.f_sub_state}}</font></nobr>
210
- </td>
211
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
212
- <nobr><font>{{row.f_apply_date}}</font></nobr>
213
- </td>
214
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
215
- <dropdown>
216
- <button type="button" data-toggle="dropdown" style="border: 0px;background: none;">
217
- <span class="glyphicon glyphicon-th-list" style="position: inherit;"></span>
218
- </button>
219
- <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-right">
220
- <li>
221
- <a href="#" @click="$parent.$parent.$parent.click(row)">{{row.defname}}</a>
222
- </li>
223
- </ul>
224
- </dropdown>
225
- </td>
226
- </tr>
227
- </template>
228
- </data-grid>
229
- </criteria-paged>
230
-
231
- <modal
232
- v-if="showModal"
233
- :show.sync="showModal"
234
- backdrop="false"
235
- title="工程类型"
236
- cancel-text="取消"
237
- ok-text="确认"
238
- :callback="apply"
239
- >
240
- <div class="form-horizontal" slot="modal-body">
241
- <div class="form-group" style="margin: 10px auto">
242
- <label class="col-sm-3 control-label">报建类型:</label>
243
- <div class="col-sm-9">
244
- <v-select
245
- v-model="applyType"
246
- placeholder='请选择需要发起的工程类型'
247
- :value.sync="applyType"
248
- :options='$appdata.getParam("报建类型")'
249
- :value-single="true"
250
- class="select select_list"
251
- :search="false"
252
- close-on-select ></v-select>
253
- </div>
254
- </div>
255
- </div>
256
- </modal>
257
-
258
- <modal v-if="showFile" :show.sync="showFile" v-ref:modal :backdrop="false" title="选择文件">
259
- <header slot="modal-header" class="modal-header">
260
- <button type="button" class="close" @click="closeFile"><span>&times;</span></button>
261
- <h4 class="modal-title">选择文件</h4>
262
- </header>
263
- <article slot="modal-body" class="modal-body">
264
- <div class="form-group">
265
- <file-upload class="my-file-uploader" action="rs/file/uploadFile" tagname="确定" v-ref:file></file-upload>
266
- </div>
267
- </article>
268
- <footer slot="modal-footer" class="modal-footer"></footer>
269
- </modal>
270
- </div>
271
- </template>
272
- <script>
273
- import {HttpResetClass, PagedList} from 'vue-client'
274
- import {isEmpty} from '../../../components/Util'
275
-
276
- export default {
277
- title: '工程列表',
278
- props: ['showData'],
279
- data () {
280
- return {
281
- model: new PagedList('rs/sql/checkuser', 20, {
282
- data: {
283
- id: this.$login.f.id,
284
- orgid: this.$login.f.orgid
285
- }
286
- }),
287
- showModal: false, // 控制发起类型选择
288
- applyType: '', // 报建类型
289
- curorgid: [this.$login.f.orgid],
290
- applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')],
291
- defnames: [{label: '全部', value: ''}], // 流程节点
292
- applyNatures: [{label: '全部', value: ''}], // 报建性质
293
- criteriaShow: false,
294
- showFile: false,
295
- laterList: [
296
- {label: '全部', value: ''},
297
- {label: '有效', value: '有效'}
298
- ]
299
- }
300
- },
301
- ready () {
302
- // 调用查询
303
- this.search()
304
- },
305
- methods: {
306
- openLater (row) {
307
- this.$dispatch('openLater', row)
308
- },
309
- closeFile () {
310
- this.showFile = false
311
- // 将选的文件清空
312
- this.$refs.file.$el.querySelector('input').value = ''
313
- this.search()
314
- },
315
- // 点击操作
316
- click (val) {
317
- this.$dispatch('apply', val)
318
- },
319
- // 获取流程id
320
- async getProcessId(processname) {
321
- let data = {
322
- workname: processname
323
- }
324
- let http = new HttpResetClass()
325
- let res = await http.load(
326
- 'POST',
327
- 'rs/logic/getProcessId',
328
- {data: data},
329
- {resolveMsg: null, rejectMsg: '流程标识获取失败!!!'}
330
- )
331
-
332
- return res.data
333
- },
334
- // 报装申请
335
- async apply () {
336
- if (this.applyType === '' || this.applyType === null) {
337
- this.$showAlert('请选择需要发起的类型', 'warning', 3000)
338
- return
339
- }
340
- let data = {
341
- f_apply_type: this.applyType
342
- }
343
- if (this.applyType === '民用散户报建流程') {
344
- data.processname = '民用散户报建流程'
345
- data.defname = '报装申请'
346
- } else if (this.applyType === '民用集体报建流程') {
347
- data.processname = '民用集体报建流程'
348
- data.defname = '报装申请'
349
- } else if (this.applyType === '非民用报建流程') {
350
- data.processname = '非民用报建流程'
351
- data.defname = '报装申请'
352
- } else if (this.applyType === '启封通气') {
353
- data.processname = '启封通气流程'
354
- data.defname = '通气申请'
355
- }else {
356
- this.$showMessage('暂无此类报装')
357
- return
358
- }
359
-
360
- data.f_sub_state = "新增"
361
- data.f_apply_source = "线下发起"
362
- data.f_process_id = await this.getProcessId(data.processname)
363
-
364
- // 调用ExplorationUser事件
365
- this.$dispatch('apply', data)
366
-
367
- this.applyType = null
368
- this.showModal = false
369
- },
370
- loadPage () {
371
- this.$dispatch('loadPage')
372
- },
373
- search () {
374
- this.$dispatch('search')
375
- },
376
- async applyTypeChange () {
377
- if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
378
- let res = await this.$resetpost('rs/logic/getDefnameByType',
379
- { f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type },
380
- {resolveMsg: null, rejectMsg: '节点信息获取失败!!!'}
381
- )
382
-
383
- this.defnames = [{label: '全部', value: ''}, ...res.data]
384
-
385
- this.applyNatures = isEmpty(this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)) ? [{label: '全部', value: ''}] : [{label: '全部', value: ''}, ...this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)]
386
- } else {
387
- this.defnames = [{label: '全部', value: ''}]
388
-
389
- this.applyNatures = [{label: '全部', value: ''}]
390
- }
391
- },
392
- clear () {
393
- Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
394
- this.$refs.cp.$refs.cri.model[key] = null
395
- })
396
- },
397
- getorg (val) {
398
- if (val.length <= 0) {
399
- return
400
- }
401
- this.model.params.data.orgid = val[0]
402
- }
403
- },
404
- computed: {
405
- projectStart () {
406
- return this.$login.r.includes('报建发起')
407
- }
408
- },
409
- watch: {
410
- 'model.rows': {
411
- handler: function () {
412
- let isover = [] // 过期(超时)数据
413
- let isbeforeover = [] // 未过期 提前提醒
414
- for (let i = 0; i < this.model.rows.length; i++) {
415
- let item = this.model.rows[i]
416
- if (item.isover === '过期') {
417
- isover.push(i + 1)
418
- }
419
- if (item.isbeforeover === '预期提醒') {
420
- isbeforeover.push(i + 1)
421
- }
422
- }
423
- let msg = null
424
- if (isover.length > 0) {
425
- msg = `第${isover.toString()}条数据已过期`
426
- this.$showAlert(msg, 'warning', 3000)
427
- }
428
-
429
- if (isbeforeover.length > 0) {
430
- msg = `第${isbeforeover.toString()}条数据即将过期`
431
- if (isover.length > 0) {
432
- setTimeout(() => {
433
- this.$showAlert(msg, 'warning', 3000)
434
- }, 4000)
435
- } else {
436
- this.$showAlert(msg, 'warning', 3000)
437
- }
438
- }
439
- }
440
- }
441
- },
442
- events: {
443
- async 'onFileUpload'(file, result) {
444
- let data = {
445
- filepath: result.f_downloadpath,
446
- user: this.$login.f
447
- }
448
- let res = await this.$resetpost(`rs/logic/importApply`, {data:data}, {resolveMsg: null, rejectMsg: '导入失败!!!', silent: true}, 0)
449
-
450
- this.closeFile()
451
- }
452
- }
453
- }
454
- </script>
455
- <style scoped>
456
- .back-style{
457
- background-color: #ffa726;
458
- }
459
- .p1 {
460
- color: #dc0b12;
461
- font-weight:bold
462
- }
463
- .p {
464
- color: #ffaf4f;
465
- }
466
- </style>
1
+ <template>
2
+ <div>
3
+ <criteria-paged :model="model" v-ref:cp>
4
+ <criteria partial='criteria' @condition-changed='search' v-ref:cri>
5
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
+ <div class="row">
7
+ <div class="form-group col-sm-3">
8
+ <label class="font_normal_body">客户名称:</label>
9
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
10
+ v-on:keyup.enter="$parent.$parent.search()" condition="f_user_name like '%{}%'" placeholder='客户名称'>
11
+ </div>
12
+ <div class="form-group col-sm-3">
13
+ <label class="font_normal_body">组织机构:</label>
14
+ <res-select
15
+ restype='organization'
16
+ :initresid='$parent.$parent.curorgid'
17
+ @res-select="$parent.$parent.getorg"
18
+ is-mul="false"
19
+ ></res-select>
20
+ </div>
21
+ <div class="form-group col-sm-3 button-range">
22
+ <a type="button" class="button_new button_spacing" v-if="$parent.$parent.projectStart"
23
+ href="/apply/download/excel/散户报装模板.xlsx" download>模板下载</a>
24
+ <button class="button_new button_spacing" style="width: max-content"
25
+ v-if="$parent.$parent.projectStart"
26
+ @click="$parent.$parent.showFile = !$parent.$parent.showFile">批量散户导入</button>
27
+ <button class="button_new button_spacing" style="width: max-content"
28
+ v-if="$parent.$parent.projectStart"
29
+ @click="$parent.$parent.showModal = !$parent.$parent.showModal">工程发起</button>
30
+ <button class="button_search button_spacing" @click="$parent.$parent.search()" v-el:cx>查询</button>
31
+ <button class="button_search button_spacing" @click="$parent.$parent.loadPage()">返回</button>
32
+ <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
33
+ <div
34
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
35
+ @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"
36
+ class="button_spacing"
37
+ style="float: right">
38
+ </div>
39
+ </div>
40
+ </div>
41
+ <div class="row" v-show="$parent.$parent.criteriaShow">
42
+ <!-- <div class="form-group col-sm-3">-->
43
+ <!-- <label class="font_normal_body">客户名称:</label>-->
44
+ <!-- <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"-->
45
+ <!-- v-on:keyup.enter="$parent.$parent.search()" condition="f_user_name like '%{}%'" placeholder='客户名称'>-->
46
+ <!-- </div>-->
47
+ <div class="form-group col-sm-3">
48
+ <label class="font_normal_body">用户编号:</label>
49
+ <input type="text" style="width:60%" class="input_search" placeholder='用户编号' v-model="model.f_userinfo_code"
50
+ v-on:keyup.enter="$parent.$parent.search()"
51
+ condition="ui.f_userinfo_code like '%{}%'">
52
+ </div>
53
+ <div class="form-group col-sm-3">
54
+ <label class="font_normal_body">工程编号:</label>
55
+ <input type="text" style="width:60%" class="input_search" placeholder='工程编号' v-model="model.f_apply_num"
56
+ v-on:keyup.enter="$parent.$parent.search()"
57
+ condition="u.f_apply_num like '%{}%'">
58
+ </div>
59
+ <div class="form-group col-sm-3">
60
+ <label class="font_normal_body">合同编号:</label>
61
+ <input type="text" style="width:60%" class="input_search" placeholder='合同编号' v-model="model.f_contract_money"
62
+ v-on:keyup.enter="$parent.$parent.search()"
63
+ condition="u.f_contract_money like '%{}%'">
64
+ </div>
65
+ <div class="form-group col-sm-3">
66
+ <label class="font_normal_body">联系电话:</label>
67
+ <input type="text" style="width:60%" class="input_search" placeholder='联系电话' v-model="model.f_phone"
68
+ v-on:keyup.enter="$parent.$parent.search()"
69
+ condition="f_phone like '%{}%'">
70
+ </div>
71
+ <div class="form-group col-sm-3">
72
+ <label class="font_normal_body">合同编号:</label>
73
+ <input type="text" style="width:60%" class="input_search" placeholder='合同编号' v-model="model.f_contract_number"
74
+ v-on:keyup.enter="$parent.$parent.search()"
75
+ condition="f_contract_number = '{}'">
76
+ </div>
77
+ <div class="form-group col-sm-3">
78
+ <label class="font_normal_body">报建类型:</label>
79
+ <v-select
80
+ v-model="model.f_apply_type"
81
+ placeholder='报建类型'
82
+ condition="f_apply_type = '{}'"
83
+ :value.sync="model.f_apply_type"
84
+ :options='$parent.$parent.applytype'
85
+ class="select select_list"
86
+ :value-single="true"
87
+ @change="$parent.$parent.applyTypeChange()"
88
+ close-on-select ></v-select>
89
+ </div>
90
+ <div class="form-group col-sm-3">
91
+ <label class="font_normal_body">办理环节:</label>
92
+ <v-select
93
+ v-model="model.defname"
94
+ placeholder='办理环节'
95
+ condition="act.defname = '{}'"
96
+ :value.sync="model.defname"
97
+ :options='$parent.$parent.defnames'
98
+ class="select select_list"
99
+ :value-single="true"
100
+ close-on-select ></v-select>
101
+ </div>
102
+ <div class="form-group col-sm-3">
103
+ <label class="font_normal_body">报建性质:</label>
104
+ <v-select
105
+ v-model="model.f_apply_nature"
106
+ placeholder='报建性质'
107
+ condition="f_apply_nature = '{}'"
108
+ :value.sync="model.f_apply_nature"
109
+ :options='$parent.$parent.applyNatures'
110
+ class="select select_list"
111
+ :value-single="true"
112
+ close-on-select ></v-select>
113
+ </div>
114
+ <div class="form-group col-sm-3">
115
+ <label class="font_normal_body">用户地址:</label>
116
+ <input type="text" style="width:60%" class="input_search" placeholder='用户地址' v-model="model.f_address"
117
+ v-on:keyup.enter="$parent.$parent.search()"
118
+ condition="f_address like '%{}%'">
119
+ </div>
120
+ <div class="form-group col-sm-3">
121
+ <label for="startDate" class="font_normal_body">开始时间:</label>
122
+ <datepicker id="startDate" placeholder="开始日期"
123
+ style="width: 60%!important;"
124
+ v-model="model.startDate"
125
+ :value.sync="model.startDate"
126
+ :format="'yyyy-MM-dd 00:00:00'"
127
+ :show-reset-button="true"
128
+ condition="f_apply_date >= '{}'">
129
+ </datepicker>
130
+ </div>
131
+ <div class="form-group col-sm-3">
132
+ <label for="endDate" class="font_normal_body">结束时间:</label>
133
+ <datepicker id="endDate" placeholder="结束日期"
134
+ style="width: 60%!important;"
135
+ v-model="model.endDate"
136
+ :value.sync="model.endDate"
137
+ :format="'yyyy-MM-dd 23:59:59'"
138
+ :show-reset-button="true"
139
+ condition="f_apply_date <= '{}'">
140
+ </datepicker>
141
+ </div>
142
+ <div class="form-group col-sm-3">
143
+ <label class="font_normal_body">稍后处理:</label>
144
+ <v-select
145
+ v-model="model.f_no_valid"
146
+ placeholder='稍后处理'
147
+ condition="lp.f_no_valid = '{}'"
148
+ :value.sync="model.f_no_valid"
149
+ :options='$parent.$parent.laterList'
150
+ class="select select_list"
151
+ :value-single="true"
152
+ close-on-select ></v-select>
153
+ </div>
154
+ <div class="form-group col-sm-3">
155
+ <label class="font_normal_body">节点发起人:</label>
156
+ <input type="text" style="width:60%" class="input_search" v-model="model.act_sender"
157
+ v-on:keyup.enter="$parent.$parent.search()" condition="act.sender like '%{}%'" placeholder='节点发起人'>
158
+ </div>
159
+ </div>
160
+ </div>
161
+ </criteria>
162
+ <data-grid v-if="$parent.showData" :model="model" partial='list' v-ref:grid class="list_area table_sy" style="height: 100%">
163
+ <template partial='head'>
164
+ <tr>
165
+ <th style="white-space: nowrap;">序号</th>
166
+ <th style="white-space: nowrap;">工程编号</th>
167
+ <th style="white-space: nowrap;">客户名称</th>
168
+ <th style="white-space: nowrap;">合同编号</th>
169
+ <th style="white-space: nowrap;">电话</th>
170
+ <th style="white-space: nowrap;">地址</th>
171
+ <th style="white-space: nowrap;">来源</th>
172
+ <th style="white-space: nowrap;">报建类型</th>
173
+ <th style="white-space: nowrap;">办理环节</th>
174
+ <th style="white-space: nowrap;">流程状态</th>
175
+ <th style="white-space: nowrap;">报建日期</th>
176
+ <th style="white-space: nowrap;">操作</th>
177
+ </tr>
178
+ </template>
179
+ <template partial='body'>
180
+ <tr class="back-style">
181
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'', row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
182
+ <nobr><font>{{$index+1}}</font></nobr>
183
+ </td>
184
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
185
+ <nobr><font>{{row.f_apply_num}}</font></nobr>
186
+ </td>
187
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
188
+ <nobr><font>{{row.f_user_name}}</font></nobr>
189
+ </td>
190
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
191
+ <nobr><font>{{row.f_contract_number}}</font></nobr>
192
+ </td>
193
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
194
+ <nobr><font>{{row.f_phone}}</font></nobr>
195
+ </td>
196
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
197
+ <nobr><font>{{row.f_address}}</font></nobr>
198
+ </td>
199
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
200
+ <nobr><font>{{row.f_apply_source}}</font></nobr>
201
+ </td>
202
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
203
+ <nobr><font>{{row.f_apply_type}}</font></nobr>
204
+ </td>
205
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
206
+ <nobr><font>{{row.defname}}</font></nobr>
207
+ </td>
208
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
209
+ <nobr><font>{{row.f_sub_state}}</font></nobr>
210
+ </td>
211
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
212
+ <nobr><font>{{row.f_apply_date}}</font></nobr>
213
+ </td>
214
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
215
+ <dropdown>
216
+ <button type="button" data-toggle="dropdown" style="border: 0px;background: none;">
217
+ <span class="glyphicon glyphicon-th-list" style="position: inherit;"></span>
218
+ </button>
219
+ <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-right">
220
+ <li>
221
+ <a href="#" @click="$parent.$parent.$parent.click(row)">{{row.defname}}</a>
222
+ </li>
223
+ </ul>
224
+ </dropdown>
225
+ </td>
226
+ </tr>
227
+ </template>
228
+ </data-grid>
229
+ </criteria-paged>
230
+
231
+ <modal
232
+ v-if="showModal"
233
+ :show.sync="showModal"
234
+ backdrop="false"
235
+ title="工程类型"
236
+ cancel-text="取消"
237
+ ok-text="确认"
238
+ :callback="apply"
239
+ >
240
+ <div class="form-horizontal" slot="modal-body">
241
+ <div class="form-group" style="margin: 10px auto">
242
+ <label class="col-sm-3 control-label">报建类型:</label>
243
+ <div class="col-sm-9">
244
+ <v-select
245
+ v-model="applyType"
246
+ placeholder='请选择需要发起的工程类型'
247
+ :value.sync="applyType"
248
+ :options='$appdata.getParam("报建类型")'
249
+ :value-single="true"
250
+ class="select select_list"
251
+ :search="false"
252
+ close-on-select ></v-select>
253
+ </div>
254
+ </div>
255
+ </div>
256
+ </modal>
257
+
258
+ <modal v-if="showFile" :show.sync="showFile" v-ref:modal :backdrop="false" title="选择文件">
259
+ <header slot="modal-header" class="modal-header">
260
+ <button type="button" class="close" @click="closeFile"><span>&times;</span></button>
261
+ <h4 class="modal-title">选择文件</h4>
262
+ </header>
263
+ <article slot="modal-body" class="modal-body">
264
+ <div class="form-group">
265
+ <file-upload class="my-file-uploader" action="rs/file/uploadFile" tagname="确定" v-ref:file></file-upload>
266
+ </div>
267
+ </article>
268
+ <footer slot="modal-footer" class="modal-footer"></footer>
269
+ </modal>
270
+ </div>
271
+ </template>
272
+ <script>
273
+ import {HttpResetClass, PagedList} from 'vue-client'
274
+ import {isEmpty} from '../../../components/Util'
275
+
276
+ export default {
277
+ title: '工程列表',
278
+ props: ['showData'],
279
+ data () {
280
+ return {
281
+ model: new PagedList('rs/sql/checkuser', 20, {
282
+ data: {
283
+ id: this.$login.f.id,
284
+ orgid: this.$login.f.orgid
285
+ }
286
+ }),
287
+ showModal: false, // 控制发起类型选择
288
+ applyType: '', // 报建类型
289
+ curorgid: [this.$login.f.orgid],
290
+ applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')],
291
+ defnames: [{label: '全部', value: ''}], // 流程节点
292
+ applyNatures: [{label: '全部', value: ''}], // 报建性质
293
+ criteriaShow: false,
294
+ showFile: false,
295
+ laterList: [
296
+ {label: '全部', value: ''},
297
+ {label: '有效', value: '有效'}
298
+ ]
299
+ }
300
+ },
301
+ ready () {
302
+ // 调用查询
303
+ this.search()
304
+ },
305
+ methods: {
306
+ openLater (row) {
307
+ this.$dispatch('openLater', row)
308
+ },
309
+ closeFile () {
310
+ this.showFile = false
311
+ // 将选的文件清空
312
+ this.$refs.file.$el.querySelector('input').value = ''
313
+ this.search()
314
+ },
315
+ // 点击操作
316
+ click (val) {
317
+ this.$dispatch('apply', val)
318
+ },
319
+ // 获取流程id
320
+ async getProcessId(processname) {
321
+ let data = {
322
+ workname: processname
323
+ }
324
+ let http = new HttpResetClass()
325
+ let res = await http.load(
326
+ 'POST',
327
+ 'rs/logic/getProcessId',
328
+ {data: data},
329
+ {resolveMsg: null, rejectMsg: '流程标识获取失败!!!'}
330
+ )
331
+
332
+ return res.data
333
+ },
334
+ // 报装申请
335
+ async apply () {
336
+ if (this.applyType === '' || this.applyType === null) {
337
+ this.$showAlert('请选择需要发起的类型', 'warning', 3000)
338
+ return
339
+ }
340
+ let data = {
341
+ f_apply_type: this.applyType
342
+ }
343
+ if (this.applyType === '民用散户报建流程') {
344
+ data.processname = '民用散户报建流程'
345
+ data.defname = '报装申请'
346
+ } else if (this.applyType === '民用集体报建流程') {
347
+ data.processname = '民用集体报建流程'
348
+ data.defname = '报装申请'
349
+ } else if (this.applyType === '非民用报建流程') {
350
+ data.processname = '非民用报建流程'
351
+ data.defname = '报装申请'
352
+ } else if (this.applyType === '启封通气') {
353
+ data.processname = '启封通气流程'
354
+ data.defname = '通气申请'
355
+ }else if (this.applyType === '整改报建') {
356
+ data.processname = '整改报建流程'
357
+ data.defname = '报装申请'
358
+ }else {
359
+ this.$showMessage('暂无此类报装')
360
+ return
361
+ }
362
+
363
+ data.f_sub_state = "新增"
364
+ data.f_apply_source = "线下发起"
365
+ data.f_process_id = await this.getProcessId(data.processname)
366
+
367
+ // 调用ExplorationUser事件
368
+ this.$dispatch('apply', data)
369
+
370
+ this.applyType = null
371
+ this.showModal = false
372
+ },
373
+ loadPage () {
374
+ this.$dispatch('loadPage')
375
+ },
376
+ search () {
377
+ this.$dispatch('search')
378
+ },
379
+ async applyTypeChange () {
380
+ if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
381
+ let res = await this.$resetpost('rs/logic/getDefnameByType',
382
+ { f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type },
383
+ {resolveMsg: null, rejectMsg: '节点信息获取失败!!!'}
384
+ )
385
+
386
+ this.defnames = [{label: '全部', value: ''}, ...res.data]
387
+
388
+ this.applyNatures = isEmpty(this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)) ? [{label: '全部', value: ''}] : [{label: '全部', value: ''}, ...this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)]
389
+ } else {
390
+ this.defnames = [{label: '全部', value: ''}]
391
+
392
+ this.applyNatures = [{label: '全部', value: ''}]
393
+ }
394
+ },
395
+ clear () {
396
+ Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
397
+ this.$refs.cp.$refs.cri.model[key] = null
398
+ })
399
+ },
400
+ getorg (val) {
401
+ if (val.length <= 0) {
402
+ return
403
+ }
404
+ this.model.params.data.orgid = val[0]
405
+ }
406
+ },
407
+ computed: {
408
+ projectStart () {
409
+ return this.$login.r.includes('报建发起')
410
+ }
411
+ },
412
+ watch: {
413
+ 'model.rows': {
414
+ handler: function () {
415
+ let isover = [] // 过期(超时)数据
416
+ let isbeforeover = [] // 未过期 提前提醒
417
+ for (let i = 0; i < this.model.rows.length; i++) {
418
+ let item = this.model.rows[i]
419
+ if (item.isover === '过期') {
420
+ isover.push(i + 1)
421
+ }
422
+ if (item.isbeforeover === '预期提醒') {
423
+ isbeforeover.push(i + 1)
424
+ }
425
+ }
426
+ let msg = null
427
+ if (isover.length > 0) {
428
+ msg = `第${isover.toString()}条数据已过期`
429
+ this.$showAlert(msg, 'warning', 3000)
430
+ }
431
+
432
+ if (isbeforeover.length > 0) {
433
+ msg = `第${isbeforeover.toString()}条数据即将过期`
434
+ if (isover.length > 0) {
435
+ setTimeout(() => {
436
+ this.$showAlert(msg, 'warning', 3000)
437
+ }, 4000)
438
+ } else {
439
+ this.$showAlert(msg, 'warning', 3000)
440
+ }
441
+ }
442
+ }
443
+ }
444
+ },
445
+ events: {
446
+ async 'onFileUpload'(file, result) {
447
+ let data = {
448
+ filepath: result.f_downloadpath,
449
+ user: this.$login.f
450
+ }
451
+ let res = await this.$resetpost(`rs/logic/importApply`, {data:data}, {resolveMsg: null, rejectMsg: '导入失败!!!', silent: true}, 0)
452
+
453
+ this.closeFile()
454
+ }
455
+ }
456
+ }
457
+ </script>
458
+ <style scoped>
459
+ .back-style{
460
+ background-color: #ffa726;
461
+ }
462
+ .p1 {
463
+ color: #dc0b12;
464
+ font-weight:bold
465
+ }
466
+ .p {
467
+ color: #ffaf4f;
468
+ }
469
+ </style>
@@ -30,7 +30,7 @@
30
30
  type="button"
31
31
  class="btn btn-info head-but"
32
32
  @click="$parent.$parent.showChargeModal()"
33
- :disabled="$parent.$parent.mark === 1 || ($parent.$parent.selectdata.f_cumulative_payment_money >= $parent.$parent.selectdata.f_due_money || $parent.$parent.selectdata.f_surplus_money === 0)"
33
+
34
34
  >新增收费</button>
35
35
  </th>
36
36
  </tr>
@@ -163,20 +163,89 @@
163
163
  close-on-select ></input-select>
164
164
  </div>
165
165
  </div>
166
- <!-- <div class="form-group col-sm-12" :class="[$v.paymentterm.required ? 'has-error' : '']">
167
- <label class="col-sm-2 control-label">收费项目:</label>
168
- <div class="col-sm-10">
169
- <input type="text" class="input_search" style="width:60%" v-show="false" v-model="$refs.paymentterm.selectedItems" v-validate:paymentterm='{required: true }'>
170
- <v-select width="100%" class="select select_list" placeholder='请选择'
171
- v-model="charge.f_payment_term"
172
- :value.sync="charge.f_payment_term"
173
- :options='paymentTerm'
174
- :multiple="true"
175
- v-ref:paymentterm
176
- ></v-select>
166
+ <div v-for="(i, item) in charge.charges" class="form-group col-sm-12 panel panel-info">
167
+ <div class="panel-heading head col-sm-12" style="background-color: #e8f4ff;margin-bottom: 10px">
168
+ <div class="col-sm-6 text-left">收费项目{{$index+1}}信息</div>
169
+ <div class="col-sm-6 text-right"><button
170
+ class="button_delete button_spacing"
171
+ v-if="!item.f_userfiles_id"
172
+ @click.prevent="deleteUserFile(i)"
173
+ >删除</button></div>
177
174
  </div>
178
- </div>-->
179
- <div class="form-group col-sm-12" :class="[$v.f_payment_term.required ? 'has-error' : '']">
175
+ <div class="form-group col-sm-12" :class="[$v.item.f_payment_term.required ? 'has-error' : '']">
176
+ <label class="col-sm-2 control-label">收费项目:</label>
177
+ <div class="col-sm-10">
178
+ <input type="text" v-show="false" v-model="item.f_payment_term" v-validate:f_payment_term = "['required']" >
179
+ <input-select width="100%" class="select select_list" placeholder='请选择'
180
+ v-model="item.f_payment_term"
181
+ :value.sync="item.f_payment_term"
182
+ :options='paymentTerm'
183
+ :value-single="true"
184
+ close-on-select ></input-select>
185
+ </div>
186
+ </div>
187
+ <div class="form-group col-sm-12" :class="[$v.item.f_charge_money.required ? 'has-error' : '']">
188
+ <label class="col-sm-2 control-label">收费金额:</label>
189
+ <div class="col-sm-10">
190
+ <input type="text"
191
+ class="form-control input_view"
192
+ style="width: 100%"
193
+ placeholder="0.00"
194
+ @change="moneyChange(i)"
195
+ v-validate:f_charge_money = "['required']"
196
+ v-model="item.f_charge_money" />
197
+ </div>
198
+ </div>
199
+ <div class="form-group col-sm-12" :class="[$v.item.f_payment_method.required ? 'has-error' : '']">
200
+ <label class="col-sm-2 control-label">付款方式:</label>
201
+ <div class="col-sm-10">
202
+ <input type="text" v-show="false" v-model="item.f_payment_method" v-validate:f_payment_method = "['required']" >
203
+ <input-select
204
+ placeholder='请选择' width="100%"
205
+ v-model="item.f_payment_method"
206
+ :value.sync="item.f_payment_method"
207
+ :options='paymentMethod'
208
+ class="select select_list"
209
+ :value-single="true"
210
+ @change="changePaymentMethod()"
211
+ close-on-select ></input-select>
212
+ </div>
213
+ </div>
214
+ <div class="form-group col-sm-12">
215
+ <label class="col-sm-2 control-label">金额大写:</label>
216
+ <div class="col-sm-10">
217
+ <input type="text"
218
+ class="form-control input_view"
219
+ style="width: 100%"
220
+ :value="smalltoBIG(0)"
221
+ readonly
222
+ v-model.sync="item.f_amount_words" />
223
+ </div>
224
+ </div>
225
+ <div class="form-group col-sm-12">
226
+ <label class="col-sm-2 control-label">备注:</label>
227
+ <div class="col-sm-10">
228
+ <input type="text"
229
+ class="form-control input_view"
230
+ style="width: 100%"
231
+ v-model="item.f_charge_remarks" />
232
+ </div>
233
+ </div>
234
+ <div class="form-group col-sm-12">
235
+ <label class="col-sm-2 control-label">实际收款时间:</label>
236
+ <div class="col-sm-10">
237
+ <datepicker id="startDate" placeholder="实际收款时间"
238
+ style="width: 60%!important;"
239
+ v-model="item.f_actual_date"
240
+ :value.sync="item.f_actual_date"
241
+ :format="'yyyy-MM-dd HH:mm:ss'"
242
+ :show-reset-button="true"
243
+ >
244
+ </datepicker>
245
+ </div>
246
+ </div>
247
+ </div>
248
+ <!-- <div class="form-group col-sm-12" :class="[$v.f_payment_term.required ? 'has-error' : '']">
180
249
  <label class="col-sm-2 control-label">收费项目:</label>
181
250
  <div class="col-sm-10">
182
251
  <input type="text" v-show="false" v-model="charge.f_payment_term" v-validate:f_payment_term = "['required']" >
@@ -216,34 +285,6 @@
216
285
  close-on-select ></input-select>
217
286
  </div>
218
287
  </div>
219
- <div class="form-group col-sm-12" v-if="charge.f_payment_method === '银行转账'" :class="[$v.f_payer_name.required ? 'has-error' : '']">
220
- <label class="col-sm-2 control-label">付款方名称:</label>
221
- <div class="col-sm-10">
222
- <input type="text"
223
- class="form-control input_view"
224
- style="width: 100%"
225
- v-validate:f_payer_name = "['required']"
226
- v-model="charge.f_payer_name" value="" />
227
- </div>
228
- </div>
229
- <div class="form-group col-sm-12" v-if="charge.f_payment_method === '银行转账'" :class="[$v.f_payer_account.required ? 'has-error' : '']">
230
- <label class="col-sm-2 control-label">付款方账号:</label>
231
- <div class="col-sm-10">
232
- <input type="text" style="width: 100%" class="form-control input_view"
233
- v-validate:f_payer_account = "['required']"
234
- v-model="charge.f_payer_account" value=""/>
235
- </div>
236
- </div>
237
- <div class="form-group col-sm-12" v-if="charge.f_payment_method === '银行转账'" :class="[$v.f_payer_number.required ? 'has-error' : '']">
238
- <label class="col-sm-2 control-label">付款流水号:</label>
239
- <div class="col-sm-10">
240
- <input type="text"
241
- class="form-control input_view"
242
- style="width: 100%" @change="payerNumberChange()"
243
- v-validate:f_payer_number = "['required']"
244
- v-model="charge.f_payer_number" value="" />
245
- </div>
246
- </div>
247
288
  <div class="form-group col-sm-12">
248
289
  <label class="col-sm-2 control-label">金额大写:</label>
249
290
  <div class="col-sm-10">
@@ -254,45 +295,8 @@
254
295
  readonly
255
296
  v-model.sync="charge.f_amount_words" />
256
297
  </div>
257
- </div>
258
- <div class="form-group col-sm-12"
259
- v-if="selectdata.f_apply_type === '散户集体报建'"
260
- >
261
- <label class="col-sm-2 control-label">单价(户):</label>
262
- <div class="col-sm-10">
263
- <input type="text"
264
- class="form-control input_view"
265
- style="width: 100%"
266
- readonly
267
- v-model="selectdata.f_price" />
268
- </div>
269
- </div>
270
- <div class="form-group col-sm-12"
271
- v-if="selectdata.f_apply_type === '散户集体报建'"
272
- >
273
- <label class="col-sm-2 control-label">累计缴费金额:</label>
274
- <div class="col-sm-10">
275
- <input type="text"
276
- class="form-control input_view"
277
- style="width: 100%"
278
- readonly
279
- v-model="charge.f_cumulative_payment_money"
280
- :value="charge.f_cumulative_payment_money || 0" />
281
- </div>
282
- </div>
283
- <div class="form-group col-sm-12"
284
- v-if="selectdata.f_apply_type === '散户集体报建'"
285
- >
286
- <label class="col-sm-2 control-label">未结金额:</label>
287
- <div class="col-sm-10">
288
- <input type="text"
289
- class="form-control input_view"
290
- style="width: 100%"
291
- readonly
292
- v-model="charge.f_outstanding_amount"
293
- :value="charge.f_outstanding_amount || 0" />
294
- </div>
295
- </div>
298
+ </div>-->
299
+
296
300
  <div class="form-group col-sm-12">
297
301
  <label class="col-sm-2 control-label">应交总金额:</label>
298
302
  <div class="col-sm-10">
@@ -323,7 +327,7 @@
323
327
  v-model="selectdata.f_surplus_money" />
324
328
  </div>
325
329
  </div>
326
- <div class="form-group col-sm-12">
330
+ <!-- <div class="form-group col-sm-12">
327
331
  <label class="col-sm-2 control-label">备注:</label>
328
332
  <div class="col-sm-10">
329
333
  <input type="text"
@@ -344,9 +348,10 @@
344
348
  >
345
349
  </datepicker>
346
350
  </div>
347
- </div>
351
+ </div>-->
348
352
  </article>
349
353
  <footer slot="modal-footer" class="modal-footer">
354
+ <button type="button" class="btn btn-primary" @click="addcharges" >添加收费项目</button>
350
355
  <button type="button" class="btn btn-primary" :disabled='!$v.valid' @click="saveCharge()">新增收费</button>
351
356
  </footer>
352
357
  </modal>
@@ -677,7 +682,7 @@ export default {
677
682
  }, // 记录
678
683
  useraddresList: [], // 地址列表
679
684
  charge: {
680
-
685
+ charges:[]
681
686
  }
682
687
  }
683
688
  },
@@ -685,6 +690,12 @@ export default {
685
690
  this.search()
686
691
  },
687
692
  methods: {
693
+ addcharges(){
694
+ this.charge.charges.push({})
695
+ },
696
+ deleteUserFile (index) {
697
+ this.charge.charges.splice(index, 1)
698
+ },
688
699
  async payerNumberChange () {
689
700
  if (isEmpty(this.charge.f_payer_number)) {
690
701
  return
@@ -836,22 +847,24 @@ export default {
836
847
 
837
848
  this.$dispatch('breakControl', this.selectdata)
838
849
  },
839
- moneyChange () {
840
- if (isEmpty(this.charge.f_charge_money) || Number(this.charge.f_charge_money) === 0) {
850
+ moneyChange (i) {
851
+ if (isEmpty(this.charge.charges[i].f_charge_money) || Number(this.charge.charges[i].f_charge_money) === 0) {
841
852
  this.$showAlert('单笔收费不能为0元!!!', 'warning', 3000)
842
- this.charge.f_charge_money = null
853
+ this.charge.charges[i].f_charge_money = null
843
854
  return
844
855
  }
845
- if (this.selectdata.f_apply_type === '散户集体报建' && Number(this.charge.f_charge_money) > Number(this.charge.f_outstanding_amount)) {
856
+ if (this.selectdata.f_apply_type === '散户集体报建' && Number(this.charge.charges[i].f_charge_money) > Number(this.charge.charges[i].f_outstanding_amount)) {
846
857
  this.$showAlert('单笔收费不能超过未交金额!!!', 'warning', 3000)
847
- this.charge.f_charge_money = null
858
+ this.charge.charges[i].f_charge_money = null
848
859
  return
849
860
  }
850
- if (Number(this.charge.f_charge_money) > Number(this.selectdata.f_surplus_money)) {
861
+ if (Number(this.charge.charges[i].f_charge_money) > Number(this.selectdata.f_surplus_money)) {
851
862
  this.$showAlert('单笔收费不能超过未交总金额!!!', 'warning', 3000)
852
- this.charge.f_charge_money = null
863
+ this.charge.charges[i].f_charge_money = null
853
864
  return
854
865
  }
866
+ this.charge.charges[i].f_charge_money = (this.charge.charges[i].f_charge_money.match(/^\d*(\.?\d{0,2})/g)[0]) || null
867
+ this.charge.charges[i].f_amount_words = this.smalltoBIG(this.charge.charges[i].f_charge_money)
855
868
  },
856
869
  // 金额转大写
857
870
  handleInput(e) {
@@ -963,7 +976,9 @@ export default {
963
976
  this.showPrint = false
964
977
  this.showConfirm = false
965
978
  this.showauditor = false
966
- this.charge = {}
979
+ this.charge = {
980
+ charges:[]
981
+ }
967
982
  this.search()
968
983
  }
969
984
  },