apply-clients 3.5.6-2 → 3.5.6-21

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 (25) hide show
  1. package/build/dev-server.js +4 -4
  2. package/package.json +1 -1
  3. package/src/filiale/dingcheng/android/AppInstallationDetails.vue +477 -478
  4. package/src/filiale/dingcheng/pc/InstallationDetails.vue +607 -608
  5. package/src/filiale/fugou/android/AppDevicesManagement.vue +516 -521
  6. package/src/filiale/fugou/android/AppInstallationDetails.vue +541 -542
  7. package/src/filiale/fugou/pc/ServiceControl.vue +9 -0
  8. package/src/filiale/gongyi/pc/chargeManagement.vue +765 -765
  9. package/src/filiale/jinhuang/pc/Applybatchdispatch.vue +770 -0
  10. package/src/filiale/jinhuang/pc/ContractList.vue +222 -220
  11. package/src/filiale/jinhuang/pc/ServiceControl.vue +2016 -2016
  12. package/src/filiale/jinhuang/pc/SupervisoryList.vue +478 -459
  13. package/src/filiale/jinhuang/pc.js +2 -1
  14. package/src/filiale/shexian/android/AppServiceControl.vue +18 -1
  15. package/src/filiale/yangchunboneng/android/AppChargeManagement.vue +1 -1
  16. package/src/filiale/yangchunboneng/android/AppInstallationMaterial.vue +1 -1
  17. package/src/filiale/yangchunboneng/android/AppOtherChargeList.vue +281 -0
  18. package/src/filiale/yangchunboneng/android/AppServiceControl.vue +4 -0
  19. package/src/filiale/yangchunboneng/android.js +2 -1
  20. package/src/filiale/yangchunboneng/pc/ExplorationSelect.vue +622 -612
  21. package/src/filiale/yangchunboneng/pc/InstallInfoSelect.vue +400 -365
  22. package/src/filiale/yangchunboneng/pc/ServiceControl.vue +4 -0
  23. package/src/filiale/yangchunboneng/pc/SupervisoryList.vue +30 -3
  24. package/src/filiale/yangchunboneng/pc/chargeManagement.vue +9 -6
  25. package/src/main.js +1 -1
@@ -1,612 +1,622 @@
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.projectTemplate"
23
- href="/apply/download/excel/散户报装模板.xlsx" download>模板下载</a>
24
- <button class="button_new button_spacing" style="width: max-content"
25
- v-if="$parent.$parent.projectImport"
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" placeholder='用户编号' v-model="model.f_userinfo_code"
45
- v-on:keyup.enter="$parent.$parent.search()"
46
- condition="u.f_userinfo_code like '%{}%'">
47
- </div>
48
- <div class="form-group col-sm-3">
49
- <label class="font_normal_body">工程编号:</label>
50
- <input type="text" style="width:60%" class="input_search" placeholder='工程编号' v-model="model.f_apply_num"
51
- v-on:keyup.enter="$parent.$parent.search()"
52
- condition="u.f_apply_num like '%{}%'">
53
- </div>
54
- <div class="form-group col-sm-3">
55
- <label for="bookstart" class="font_normal_body">计划通气日期:</label>
56
- <datepicker id="bookstart" placeholder="计划通气开始日期"
57
- style="width: 60%!important;"
58
- v-model="model.jihuastart"
59
- :value.sync="model.jihuastart"
60
- :format="'yyyy-MM-dd'"
61
- :show-reset-button="true"
62
- condition="f_reconnaissance_time >= '{}'">
63
- </datepicker>
64
- </div>
65
- <div class="form-group col-sm-3">
66
- <label for="bookend" class="font_normal_body">计划通气日期:</label>
67
- <datepicker id="bookend" placeholder="计划通气结束日期"
68
- style="width: 60%!important;"
69
- v-model="model.jihuaend"
70
- :value.sync="model.jihuaend"
71
- :format="'yyyy-MM-dd'"
72
- :show-reset-button="true"
73
- condition="f_reconnaissance_time <= '{}'">
74
- </datepicker>
75
- </div>
76
- <div class="form-group col-sm-3">
77
- <label class="font_normal_body">合同编号:</label>
78
- <input type="text" style="width:60%" class="input_search" placeholder='合同编号' v-model="model.f_contract_money"
79
- v-on:keyup.enter="$parent.$parent.search()"
80
- condition="u.f_contract_money like '%{}%'">
81
- </div>
82
- <div class="form-group col-sm-3">
83
- <label class="font_normal_body">联系电话:</label>
84
- <input type="text" style="width:60%" class="input_search" placeholder='联系电话' v-model="model.f_phone"
85
- v-on:keyup.enter="$parent.$parent.search()"
86
- condition="f_phone like '%{}%'">
87
- </div>
88
- <div class="form-group col-sm-3">
89
- <label for="bookend" class="font_normal_body">预计通气时间:</label>
90
- <datepicker id="bookend" placeholder="预计通气开始时间"
91
- style="width: 60%!important;"
92
- v-model="model.yujistart"
93
- :value.sync="model.yujistart"
94
- :format="'yyyy-MM-dd'"
95
- :show-reset-button="true"
96
- condition="f_yjgase_time >= '{}'">
97
- </datepicker>
98
- </div>
99
- <div class="form-group col-sm-3">
100
- <label for="bookend" class="font_normal_body">预计通气时间:</label>
101
- <datepicker id="bookend" placeholder="预计通气结束时间"
102
- style="width: 60%!important;"
103
- v-model="model.yujiend"
104
- :value.sync="model.yujiend"
105
- :format="'yyyy-MM-dd'"
106
- :show-reset-button="true"
107
- condition="f_yjgase_time <= '{}'">
108
- </datepicker>
109
- </div>
110
- <div class="form-group col-sm-3">
111
- <label class="font_normal_body">报建类型:</label>
112
- <v-select
113
- v-model="model.f_apply_type"
114
- placeholder='报建类型'
115
- condition="f_apply_type in {}"
116
- :value.sync="model.f_apply_type"
117
- :options='$parent.$parent.applytype'
118
- class="select select_list"
119
- :multiple="true"
120
- ></v-select>
121
- </div>
122
- <div class="form-group col-sm-3">
123
- <label class="font_normal_body">办理环节:</label>
124
- <v-select
125
- v-model="model.defname"
126
- placeholder='办理环节'
127
- condition="act.defname = '{}'"
128
- :value.sync="model.defname"
129
- :options='$parent.$parent.defnames'
130
- class="select select_list"
131
- :value-single="true"
132
- close-on-select ></v-select>
133
- </div>
134
- <div class="form-group col-sm-3">
135
- <label for="startDate" class="font_normal_body">报建开始日期:</label>
136
- <datepicker id="startDate" placeholder="报建开始日期"
137
- style="width: 60%!important;"
138
- v-model="model.startDate"
139
- :value.sync="model.startDate"
140
- :format="'yyyy-MM-dd 00:00:00'"
141
- :show-reset-button="true"
142
- condition="f_apply_date >= '{}'">
143
- </datepicker>
144
- </div>
145
- <div class="form-group col-sm-3">
146
- <label for="endDate" class="font_normal_body">报建结束日期:</label>
147
- <datepicker id="endDate" placeholder="报建结束日期"
148
- style="width: 60%!important;"
149
- v-model="model.endDate"
150
- :value.sync="model.endDate"
151
- :format="'yyyy-MM-dd 23:59:59'"
152
- :show-reset-button="true"
153
- condition="f_apply_date <= '{}'">
154
- </datepicker>
155
- </div>
156
- <div class="form-group col-sm-3">
157
- <label class="font_normal_body">用户地址:</label>
158
- <input type="text" style="width:60%" class="input_search" placeholder='用户地址' v-model="model.f_address"
159
- v-on:keyup.enter="$parent.$parent.search()"
160
- condition="f_address like '%{}%'">
161
- </div>
162
- <div class="form-group col-sm-3">
163
- <label class="font_normal_body">报建性质:</label>
164
- <v-select
165
- v-model="model.f_apply_nature"
166
- placeholder='报建性质'
167
- condition="f_apply_nature = '{}'"
168
- :value.sync="model.f_apply_nature"
169
- :options='$parent.$parent.applyNatures'
170
- class="select select_list"
171
- :value-single="true"
172
- close-on-select ></v-select>
173
- </div>
174
- <div class="form-group col-sm-3">
175
- <label for="bookstart" class="font_normal_body">预约开始日期:</label>
176
- <datepicker id="bookstart" placeholder="预约开始日期"
177
- style="width: 60%!important;"
178
- v-model="model.bookstart"
179
- :value.sync="model.bookstart"
180
- :format="'yyyy-MM-dd 00:00:00'"
181
- :show-reset-button="true"
182
- condition="f_order_date >= '{}'">
183
- </datepicker>
184
- </div>
185
- <div class="form-group col-sm-3">
186
- <label for="bookend" class="font_normal_body">预约结束日期:</label>
187
- <datepicker id="bookend" placeholder="预约结束日期"
188
- style="width: 60%!important;"
189
- v-model="model.bookend"
190
- :value.sync="model.bookend"
191
- :format="'yyyy-MM-dd 23:59:59'"
192
- :show-reset-button="true"
193
- condition="f_order_date <= '{}'">
194
- </datepicker>
195
- </div>
196
- <div class="form-group col-sm-3">
197
- <label class="font_normal_body">用户评价:</label>
198
- <input type="text" style="width:60%" class="input_search" placeholder='用户评价' v-model="model.f_user_appraise"
199
- v-on:keyup.enter="$parent.$parent.search()"
200
- condition="f_user_appraise like '%{}%'">
201
- </div>
202
- <div class="form-group col-sm-3">
203
- <label class="font_normal_body">稍后处理:</label>
204
- <v-select
205
- v-model="model.f_no_valid"
206
- placeholder='稍后处理'
207
- condition="lp.f_no_valid = '{}'"
208
- :value.sync="model.f_no_valid"
209
- :options='$parent.$parent.laterList'
210
- class="select select_list"
211
- :value-single="true"
212
- close-on-select ></v-select>
213
- </div>
214
- <div class="form-group col-sm-3">
215
- <label class="font_normal_body">已收金额>= :</label>
216
- <input type="text" style="width:60%" class="input_search" placeholder='已收金额>=' v-model="model.f_cumulative_payment_money"
217
- condition="f_cumulative_payment_money >= '{}'">
218
- </div>
219
- <div class="form-group col-sm-3">
220
- <label class="font_normal_body">已收金额<= :</label>
221
- <input type="text" style="width:60%" class="input_search" placeholder='已收金额=' v-model="model.f_cumulative_payment_money2"
222
- condition="f_cumulative_payment_money <= '{}'">
223
- </div>
224
- <div class="form-group col-sm-3">
225
- <label class="font_normal_body">节点发起人:</label>
226
- <input type="text" style="width:60%" class="input_search" v-model="model.act_sender"
227
- v-on:keyup.enter="$parent.$parent.search()" condition="act.sender like '%{}%'" placeholder='节点发起人'>
228
- </div>
229
- </div>
230
- </div>
231
- </criteria>
232
- <data-grid v-if="$parent.showData" :model="model" partial='list' v-ref:grid class="list_area table_sy" style="height: 100%">
233
- <template partial='head'>
234
- <tr>
235
- <th style="white-space: nowrap;">操作</th>
236
- <th style="white-space: nowrap;">序号</th>
237
- <th style="white-space: nowrap;">工程编号</th>
238
- <th style="white-space: nowrap;">用户编号</th>
239
- <th style="white-space: nowrap;">客户名称</th>
240
- <th style="white-space: nowrap;">合同编号</th>
241
- <th style="white-space: nowrap;">合同金额</th>
242
- <th style="white-space: nowrap;">已收金额</th>
243
- <th style="white-space: nowrap;">未收金额</th>
244
- <th style="white-space: nowrap;">电话</th>
245
- <th style="white-space: nowrap;">地址</th>
246
- <th style="white-space: nowrap;">来源</th>
247
- <th style="white-space: nowrap;">报建类型</th>
248
- <th style="white-space: nowrap;">办理环节</th>
249
- <th style="white-space: nowrap;">流程状态</th>
250
- <th style="white-space: nowrap;">计划通气时间</th>
251
- <th style="white-space: nowrap;">预计通气时间</th>
252
- <th style="white-space: nowrap;">报建日期</th>
253
- <th style="white-space: nowrap;">用户评价</th>
254
- </tr>
255
- </template>
256
- <template partial='body'>
257
- <tr class="back-style">
258
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
259
- <dropdown>
260
- <button type="button" data-toggle="dropdown" style="border: 0px;background: none;">
261
- <span class="glyphicon glyphicon-th-list" style="position: inherit;"></span>
262
- </button>
263
- <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-left">
264
- <li>
265
- <a href="#" @click="$parent.$parent.$parent.click(row)">{{row.defname}}</a>
266
- </li>
267
- </ul>
268
- </dropdown>
269
- </td>
270
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'', row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
271
- <nobr><font>{{$index+1}}</font></nobr>
272
- </td>
273
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
274
- <nobr><font>{{row.f_apply_num}}</font></nobr>
275
- </td>
276
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
277
- <nobr><font>{{row.f_userinfo_code}}</font></nobr>
278
- </td>
279
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
280
- <nobr><font>{{row.f_user_name}}</font></nobr>
281
- </td>
282
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
283
- <nobr><font>{{row.f_contract_number}}</font></nobr>
284
- </td>
285
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
286
- <nobr><font>{{row.f_contract_money}}</font></nobr>
287
- </td>
288
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
289
- <nobr><font>{{row.f_cumulative_payment_money}}</font></nobr>
290
- </td>
291
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
292
- <nobr><font>{{row.f_surplus_money}}</font></nobr>
293
- </td>
294
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
295
- <nobr><font>{{row.f_phone}}</font></nobr>
296
- </td>
297
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
298
- <nobr><font>{{row.f_address}}</font></nobr>
299
- </td>
300
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
301
- <nobr><font>{{row.f_apply_source}}</font></nobr>
302
- </td>
303
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
304
- <nobr><font>{{row.f_apply_type}}</font></nobr>
305
- </td>
306
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
307
- <nobr><font>{{row.defname}}</font></nobr>
308
- </td>
309
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
310
- <nobr><font>{{row.f_sub_state}}</font></nobr>
311
- </td>
312
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
313
- <nobr><font>{{row.f_reconnaissance_time}}</font></nobr>
314
- </td>
315
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
316
- <nobr><font>{{row.f_yjgase_time}}</font></nobr>
317
- </td>
318
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
319
- <nobr><font>{{row.f_apply_date}}</font></nobr>
320
- </td>
321
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
322
- <nobr><font>{{row.f_user_appraise}}</font></nobr>
323
- </td>
324
- </tr>
325
- </template>
326
- </data-grid>
327
- </criteria-paged>
328
-
329
- <modal
330
- v-if="showModal"
331
- :show.sync="showModal"
332
- backdrop="false"
333
- title="工程类型"
334
- cancel-text="取消"
335
- ok-text="确认"
336
- :callback="apply"
337
- >
338
- <div class="form-horizontal" slot="modal-body">
339
- <div class="form-group" style="margin: 10px auto">
340
- <label class="col-sm-3 control-label">报建类型:</label>
341
- <div class="col-sm-9">
342
- <v-select
343
- v-model="applyType"
344
- placeholder='请选择需要发起的工程类型'
345
- :value.sync="applyType"
346
- :options='$appdata.getParam("报建类型")'
347
- :value-single="true"
348
- class="select select_list"
349
- :search="false"
350
- close-on-select ></v-select>
351
- </div>
352
- </div>
353
- </div>
354
- </modal>
355
-
356
- <modal v-if="showFile" :show.sync="showFile" v-ref:modal :backdrop="false" title="选择文件">
357
- <header slot="modal-header" class="modal-header">
358
- <button type="button" class="close" @click="closeFile"><span>&times;</span></button>
359
- <h4 class="modal-title">选择文件</h4>
360
- </header>
361
- <article slot="modal-body" class="modal-body">
362
- <div class="form-group">
363
- <file-upload class="my-file-uploader" action="rs/file/uploadFile" tagname="确定" v-ref:file></file-upload>
364
- </div>
365
- </article>
366
- <footer slot="modal-footer" class="modal-footer"></footer>
367
- </modal>
368
- </div>
369
- </template>
370
- <script>
371
- import {HttpResetClass, PagedList} from 'vue-client'
372
- import {isEmpty} from '../../../components/Util'
373
-
374
- export default {
375
- title: '工程列表',
376
- props: ['showData'],
377
- data () {
378
- return {
379
- model: new PagedList('rs/sql/checkuser', 20, {
380
- data: {
381
- id: this.$login.f.id,
382
- orgid: this.$login.f.orgid
383
- }
384
- }),
385
- showModal: false, // 控制发起类型选择
386
- applyType: '', // 报建类型
387
- curorgid: [this.$login.f.orgid],
388
- applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')],
389
- defnames: [{label: '全部', value: ''}, ...this.$appdata.getParam('办理环节')], // 流程节点
390
- applyNatures: [{label: '全部', value: ''},...this.$appdata.getParam('报建性质')], // 报建性质
391
- criteriaShow: false,
392
- showFile: false,
393
- laterList: [
394
- {label: '全部', value: ''},
395
- {label: '有效', value: '有效'}
396
- ]
397
- }
398
- },
399
- ready () {
400
- // 调用查询
401
- this.search()
402
- },
403
- methods: {
404
- openLater (row) {
405
- this.$dispatch('openLater', row)
406
- },
407
- closeFile () {
408
- this.showFile = false
409
- // 将选的文件清空
410
- this.$refs.file.$el.querySelector('input').value = ''
411
- this.search()
412
- },
413
- // 点击操作
414
- click (val) {
415
- this.$dispatch('apply', val)
416
- },
417
- // 获取流程id
418
- async getProcessId(processname) {
419
- let data = {
420
- workname: processname
421
- }
422
- let http = new HttpResetClass()
423
- let res = await http.load(
424
- 'POST',
425
- 'rs/logic/getProcessId',
426
- {data: data},
427
- {resolveMsg: null, rejectMsg: '流程标识获取失败!!!'}
428
- )
429
-
430
- return res.data
431
- },
432
- // 报装申请
433
- async apply () {
434
- if (this.applyType === '' || this.applyType === null) {
435
- this.$showAlert('请选择需要发起的类型', 'warning', 3000)
436
- return
437
- }
438
- let data = {
439
- f_apply_type: this.applyType
440
- }
441
- if (this.applyType === '民用散户报建流程') {
442
- data.processname = '民用散户报建流程'
443
- data.defname = '报装申请'
444
- }
445
- else if (this.applyType === '民用预留户报建流程') {
446
- data.processname = '民用预留户报建流程'
447
- data.defname = '报装申请'
448
- }
449
- else if (this.applyType === '民用集体报建流程') {
450
- data.processname = '民用集体报建流程'
451
- data.defname = '报装申请'
452
- } else if (this.applyType === '非民用报建流程') {
453
- data.processname = '非民用报建流程'
454
- data.defname = '报装申请'
455
- } else if (this.applyType === '启封通气') {
456
- data.processname = '启封通气流程'
457
- data.defname = '通气申请'
458
- }else if (this.applyType === '整改报建') {
459
- data.processname = '整改报建流程'
460
- data.defname = '报装申请'
461
- }else {
462
- this.$showMessage('暂无此类报装')
463
- return
464
- }
465
-
466
- data.f_sub_state = "新增"
467
- data.f_apply_source = "线下发起"
468
- data.f_process_id = await this.getProcessId(data.processname)
469
-
470
- // 调用ExplorationUser事件
471
- this.$dispatch('apply', data)
472
-
473
- this.applyType = null
474
- this.showModal = false
475
- },
476
- loadPage () {
477
- this.$dispatch('loadPage')
478
- },
479
- search () {
480
- this.$dispatch('search')
481
- },
482
- async applyTypeChange () {
483
- //判断this.$refs.cp.$refs.cri.model.f_apply_type是不是数组
484
- if (Array.isArray(this.$refs.cp.$refs.cri.model.f_apply_type)) {
485
- if(this.$refs.cp.$refs.cri.model.f_apply_type.length>0){
486
- for (let i = 0; i < this.$refs.cp.$refs.cri.model.f_apply_type.length; i++) {
487
- let res = await this.$resetpost('rs/logic/getDefnameByType',
488
- { f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type[i] },
489
- {resolveMsg: null, rejectMsg: '节点信息获取失败!!!'}
490
- )
491
- if (!isEmpty(res.data)) {
492
- const newDefnames = [{ label: '全部', value: '' }, ...res.data];
493
- const newApplyNatures = isEmpty(this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type[i]}性质`))
494
- ? [{ label: '全部', value: '' }]
495
- : [{ label: '全部', value: '' }, ...this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type[i]}性质`)];
496
- // 检查并追加 defnames
497
- newDefnames.forEach(item => {
498
- if (!this.defnames.some(defname => defname.value === item.value)) {
499
- this.defnames.push(item);
500
- }
501
- });
502
- // 检查并追加 applyNatures
503
- newApplyNatures.forEach(item => {
504
- if (!this.applyNatures.some(applyNature => applyNature.value === item.value)) {
505
- this.applyNatures.push(item);
506
- }
507
- });
508
- }
509
- }
510
- }
511
- }else{
512
- if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
513
- let res = await this.$resetpost('rs/logic/getDefnameByType',
514
- { f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type },
515
- {resolveMsg: null, rejectMsg: '节点信息获取失败!!!'}
516
- )
517
-
518
- this.defnames = [{label: '全部', value: ''}, ...res.data]
519
-
520
- 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}性质`)]
521
- } else {
522
- this.defnames = [{label: '全部', value: ''}]
523
-
524
- this.applyNatures = [{label: '全部', value: ''}]
525
- }
526
- }
527
- },
528
- clear () {
529
- Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
530
- if (Array.isArray(this.$refs.cp.$refs.cri.model[key])) {
531
- this.$refs.cp.$refs.cri.model[key] = [];
532
- } else {
533
- this.$refs.cp.$refs.cri.model[key] = null;
534
- }
535
- })
536
- },
537
- getorg (val) {
538
- if (val.length <= 0) {
539
- return
540
- }
541
- this.model.params.data.orgid = val[0]
542
- }
543
- },
544
- computed: {
545
- projectStart () {
546
- return this.$login.r.includes('报建发起')
547
- },
548
- projectTemplate () {
549
- return this.$login.r.includes('报建流程-模板下载')
550
- },
551
- projectImport () {
552
- return this.$login.r.includes('报建流程-批量散户导入')
553
- }
554
- },
555
- watch: {
556
- 'model.rows': {
557
- handler: function () {
558
- let isover = [] // 过期(超时)数据
559
- let isbeforeover = [] // 未过期 提前提醒
560
- for (let i = 0; i < this.model.rows.length; i++) {
561
- let item = this.model.rows[i]
562
- if (item.isover === '过期') {
563
- isover.push(i + 1)
564
- }
565
- if (item.isbeforeover === '预期提醒') {
566
- isbeforeover.push(i + 1)
567
- }
568
- }
569
- let msg = null
570
- if (isover.length > 0) {
571
- msg = `第${isover.toString()}条数据已过期`
572
- this.$showAlert(msg, 'warning', 3000)
573
- }
574
-
575
- if (isbeforeover.length > 0) {
576
- msg = `第${isbeforeover.toString()}条数据即将过期`
577
- if (isover.length > 0) {
578
- setTimeout(() => {
579
- this.$showAlert(msg, 'warning', 3000)
580
- }, 4000)
581
- } else {
582
- this.$showAlert(msg, 'warning', 3000)
583
- }
584
- }
585
- }
586
- }
587
- },
588
- events: {
589
- async 'onFileUpload'(file, result) {
590
- let data = {
591
- filepath: result.f_downloadpath,
592
- user: this.$login.f
593
- }
594
- let res = await this.$resetpost(`rs/logic/importApply`, {data:data}, {resolveMsg: null, rejectMsg: '导入失败!!!', silent: true}, 0)
595
-
596
- this.closeFile()
597
- }
598
- }
599
- }
600
- </script>
601
- <style scoped>
602
- .back-style{
603
- background-color: #ffa726;
604
- }
605
- .p1 {
606
- color: #dc0b12;
607
- font-weight:bold
608
- }
609
- .p {
610
- color: #ffaf4f;
611
- }
612
- </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.projectTemplate"
23
+ href="/apply/download/excel/散户报装模板.xlsx" download>模板下载</a>
24
+ <button class="button_new button_spacing" style="width: max-content"
25
+ v-if="$parent.$parent.projectImport"
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" placeholder='用户编号' v-model="model.f_userinfo_code"
45
+ v-on:keyup.enter="$parent.$parent.search()"
46
+ condition="u.f_userinfo_code like '%{}%'">
47
+ </div>
48
+ <div class="form-group col-sm-3">
49
+ <label class="font_normal_body">工程编号:</label>
50
+ <input type="text" style="width:60%" class="input_search" placeholder='工程编号' v-model="model.f_apply_num"
51
+ v-on:keyup.enter="$parent.$parent.search()"
52
+ condition="u.f_apply_num like '%{}%'">
53
+ </div>
54
+ <div class="form-group col-sm-3">
55
+ <label for="bookstart" class="font_normal_body">计划通气日期:</label>
56
+ <datepicker id="bookstart" placeholder="计划通气开始日期"
57
+ style="width: 60%!important;"
58
+ v-model="model.jihuastart"
59
+ :value.sync="model.jihuastart"
60
+ :format="'yyyy-MM-dd'"
61
+ :show-reset-button="true"
62
+ condition="f_reconnaissance_time >= '{}'">
63
+ </datepicker>
64
+ </div>
65
+ <div class="form-group col-sm-3">
66
+ <label for="bookend" class="font_normal_body">计划通气日期:</label>
67
+ <datepicker id="bookend" placeholder="计划通气结束日期"
68
+ style="width: 60%!important;"
69
+ v-model="model.jihuaend"
70
+ :value.sync="model.jihuaend"
71
+ :format="'yyyy-MM-dd'"
72
+ :show-reset-button="true"
73
+ condition="f_reconnaissance_time <= '{}'">
74
+ </datepicker>
75
+ </div>
76
+ <div class="form-group col-sm-3">
77
+ <label class="font_normal_body">合同编号:</label>
78
+ <input type="text" style="width:60%" class="input_search" placeholder='合同编号' v-model="model.f_contract_money"
79
+ v-on:keyup.enter="$parent.$parent.search()"
80
+ condition="u.f_contract_money like '%{}%'">
81
+ </div>
82
+ <div class="form-group col-sm-3">
83
+ <label class="font_normal_body">联系电话:</label>
84
+ <input type="text" style="width:60%" class="input_search" placeholder='联系电话' v-model="model.f_phone"
85
+ v-on:keyup.enter="$parent.$parent.search()"
86
+ condition="f_phone like '%{}%'">
87
+ </div>
88
+ <div class="form-group col-sm-3">
89
+ <label for="bookend" class="font_normal_body">预计通气时间:</label>
90
+ <datepicker id="bookend" placeholder="预计通气开始时间"
91
+ style="width: 60%!important;"
92
+ v-model="model.yujistart"
93
+ :value.sync="model.yujistart"
94
+ :format="'yyyy-MM-dd'"
95
+ :show-reset-button="true"
96
+ condition="f_yjgase_time >= '{}'">
97
+ </datepicker>
98
+ </div>
99
+ <div class="form-group col-sm-3">
100
+ <label for="bookend" class="font_normal_body">预计通气时间:</label>
101
+ <datepicker id="bookend" placeholder="预计通气结束时间"
102
+ style="width: 60%!important;"
103
+ v-model="model.yujiend"
104
+ :value.sync="model.yujiend"
105
+ :format="'yyyy-MM-dd'"
106
+ :show-reset-button="true"
107
+ condition="f_yjgase_time <= '{}'">
108
+ </datepicker>
109
+ </div>
110
+ <div class="form-group col-sm-3">
111
+ <label class="font_normal_body">报建类型:</label>
112
+ <v-select
113
+ v-model="model.f_apply_type"
114
+ placeholder='报建类型'
115
+ condition="f_apply_type in {}"
116
+ :value.sync="model.f_apply_type"
117
+ :options='$parent.$parent.applytype'
118
+ class="select select_list"
119
+ :multiple="true"
120
+ ></v-select>
121
+ </div>
122
+ <div class="form-group col-sm-3">
123
+ <label class="font_normal_body">办理环节:</label>
124
+ <v-select
125
+ v-model="model.defname"
126
+ placeholder='办理环节'
127
+ condition="act.defname = '{}'"
128
+ :value.sync="model.defname"
129
+ :options='$parent.$parent.defnames'
130
+ class="select select_list"
131
+ :value-single="true"
132
+ close-on-select ></v-select>
133
+ </div>
134
+ <div class="form-group col-sm-3">
135
+ <label for="startDate" class="font_normal_body">报建开始日期:</label>
136
+ <datepicker id="startDate" placeholder="报建开始日期"
137
+ style="width: 60%!important;"
138
+ v-model="model.startDate"
139
+ :value.sync="model.startDate"
140
+ :format="'yyyy-MM-dd 00:00:00'"
141
+ :show-reset-button="true"
142
+ condition="f_apply_date >= '{}'">
143
+ </datepicker>
144
+ </div>
145
+ <div class="form-group col-sm-3">
146
+ <label for="endDate" class="font_normal_body">报建结束日期:</label>
147
+ <datepicker id="endDate" placeholder="报建结束日期"
148
+ style="width: 60%!important;"
149
+ v-model="model.endDate"
150
+ :value.sync="model.endDate"
151
+ :format="'yyyy-MM-dd 23:59:59'"
152
+ :show-reset-button="true"
153
+ condition="f_apply_date <= '{}'">
154
+ </datepicker>
155
+ </div>
156
+ <div class="form-group col-sm-3">
157
+ <label class="font_normal_body">用户地址:</label>
158
+ <input type="text" style="width:60%" class="input_search" placeholder='用户地址' v-model="model.f_address"
159
+ v-on:keyup.enter="$parent.$parent.search()"
160
+ condition="f_address like '%{}%'">
161
+ </div>
162
+ <div class="form-group col-sm-3">
163
+ <label class="font_normal_body">报建性质:</label>
164
+ <v-select
165
+ v-model="model.f_apply_nature"
166
+ placeholder='报建性质'
167
+ condition="f_apply_nature = '{}'"
168
+ :value.sync="model.f_apply_nature"
169
+ :options='$parent.$parent.applyNatures'
170
+ class="select select_list"
171
+ :value-single="true"
172
+ close-on-select ></v-select>
173
+ </div>
174
+ <div class="form-group col-sm-3">
175
+ <label for="bookstart" class="font_normal_body">预约开始日期:</label>
176
+ <datepicker id="bookstart" placeholder="预约开始日期"
177
+ style="width: 60%!important;"
178
+ v-model="model.bookstart"
179
+ :value.sync="model.bookstart"
180
+ :format="'yyyy-MM-dd 00:00:00'"
181
+ :show-reset-button="true"
182
+ condition="f_order_date >= '{}'">
183
+ </datepicker>
184
+ </div>
185
+ <div class="form-group col-sm-3">
186
+ <label for="bookend" class="font_normal_body">预约结束日期:</label>
187
+ <datepicker id="bookend" placeholder="预约结束日期"
188
+ style="width: 60%!important;"
189
+ v-model="model.bookend"
190
+ :value.sync="model.bookend"
191
+ :format="'yyyy-MM-dd 23:59:59'"
192
+ :show-reset-button="true"
193
+ condition="f_order_date <= '{}'">
194
+ </datepicker>
195
+ </div>
196
+ <div class="form-group col-sm-3">
197
+ <label class="font_normal_body">用户评价:</label>
198
+ <input type="text" style="width:60%" class="input_search" placeholder='用户评价' v-model="model.f_user_appraise"
199
+ v-on:keyup.enter="$parent.$parent.search()"
200
+ condition="f_user_appraise like '%{}%'">
201
+ </div>
202
+ <div class="form-group col-sm-3">
203
+ <label class="font_normal_body">稍后处理:</label>
204
+ <v-select
205
+ v-model="model.f_no_valid"
206
+ placeholder='稍后处理'
207
+ condition="lp.f_no_valid = '{}'"
208
+ :value.sync="model.f_no_valid"
209
+ :options='$parent.$parent.laterList'
210
+ class="select select_list"
211
+ :value-single="true"
212
+ close-on-select ></v-select>
213
+ </div>
214
+ <div class="form-group col-sm-3">
215
+ <label class="font_normal_body">已收金额>= :</label>
216
+ <input type="text" style="width:60%" class="input_search" placeholder='已收金额>=' v-model="model.f_cumulative_payment_money"
217
+ condition="f_cumulative_payment_money >= '{}'">
218
+ </div>
219
+ <div class="form-group col-sm-3">
220
+ <label class="font_normal_body">已收金额<= :</label>
221
+ <input type="text" style="width:60%" class="input_search" placeholder='已收金额=' v-model="model.f_cumulative_payment_money2"
222
+ condition="f_cumulative_payment_money <= '{}'">
223
+ </div>
224
+ <div class="form-group col-sm-3">
225
+ <label class="font_normal_body">节点发起人:</label>
226
+ <input type="text" style="width:60%" class="input_search" v-model="model.act_sender"
227
+ v-on:keyup.enter="$parent.$parent.search()" condition="act.sender like '%{}%'" placeholder='节点发起人'>
228
+ </div>
229
+ <div class="form-group col-sm-3">
230
+ <label class="font_normal_body">发起人:</label>
231
+ <input type="text" style="width:60%" class="input_search" placeholder='发起人' v-model="model.f_operator"
232
+ v-on:keyup.enter="$parent.$parent.search()"
233
+ condition="u.f_operator like '%{}%'">
234
+ </div>
235
+ </div>
236
+ </div>
237
+ </criteria>
238
+ <data-grid v-if="$parent.showData" :model="model" partial='list' v-ref:grid class="list_area table_sy" style="height: 100%">
239
+ <template partial='head'>
240
+ <tr>
241
+ <th style="white-space: nowrap;">操作</th>
242
+ <th style="white-space: nowrap;">序号</th>
243
+ <th style="white-space: nowrap;">工程编号</th>
244
+ <th style="white-space: nowrap;">用户编号</th>
245
+ <th style="white-space: nowrap;">客户名称</th>
246
+ <th style="white-space: nowrap;">合同编号</th>
247
+ <th style="white-space: nowrap;">合同金额</th>
248
+ <th style="white-space: nowrap;">已收金额</th>
249
+ <th style="white-space: nowrap;">未收金额</th>
250
+ <th style="white-space: nowrap;">电话</th>
251
+ <th style="white-space: nowrap;">地址</th>
252
+ <th style="white-space: nowrap;">来源</th>
253
+ <th style="white-space: nowrap;">报建类型</th>
254
+ <th style="white-space: nowrap;">办理环节</th>
255
+ <th style="white-space: nowrap;">流程状态</th>
256
+ <th style="white-space: nowrap;">计划通气时间</th>
257
+ <th style="white-space: nowrap;">预计通气时间</th>
258
+ <th style="white-space: nowrap;">报建日期</th>
259
+ <th style="white-space: nowrap;">用户评价</th>
260
+ <th style="white-space: nowrap;">发起人</th>
261
+ </tr>
262
+ </template>
263
+ <template partial='body'>
264
+ <tr class="back-style">
265
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
266
+ <dropdown>
267
+ <button type="button" data-toggle="dropdown" style="border: 0px;background: none;">
268
+ <span class="glyphicon glyphicon-th-list" style="position: inherit;"></span>
269
+ </button>
270
+ <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-left">
271
+ <li>
272
+ <a href="#" @click="$parent.$parent.$parent.click(row)">{{row.defname}}</a>
273
+ </li>
274
+ </ul>
275
+ </dropdown>
276
+ </td>
277
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'', row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
278
+ <nobr><font>{{$index+1}}</font></nobr>
279
+ </td>
280
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
281
+ <nobr><font>{{row.f_apply_num}}</font></nobr>
282
+ </td>
283
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
284
+ <nobr><font>{{row.f_userinfo_code}}</font></nobr>
285
+ </td>
286
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
287
+ <nobr><font>{{row.f_user_name}}</font></nobr>
288
+ </td>
289
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
290
+ <nobr><font>{{row.f_contract_number}}</font></nobr>
291
+ </td>
292
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
293
+ <nobr><font>{{row.f_contract_money}}</font></nobr>
294
+ </td>
295
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
296
+ <nobr><font>{{row.f_cumulative_payment_money}}</font></nobr>
297
+ </td>
298
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
299
+ <nobr><font>{{row.f_surplus_money}}</font></nobr>
300
+ </td>
301
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
302
+ <nobr><font>{{row.f_phone}}</font></nobr>
303
+ </td>
304
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
305
+ <nobr><font>{{row.f_address}}</font></nobr>
306
+ </td>
307
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
308
+ <nobr><font>{{row.f_apply_source}}</font></nobr>
309
+ </td>
310
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
311
+ <nobr><font>{{row.f_apply_type}}</font></nobr>
312
+ </td>
313
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
314
+ <nobr><font>{{row.defname}}</font></nobr>
315
+ </td>
316
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
317
+ <nobr><font>{{row.f_sub_state}}</font></nobr>
318
+ </td>
319
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
320
+ <nobr><font>{{row.f_reconnaissance_time}}</font></nobr>
321
+ </td>
322
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
323
+ <nobr><font>{{row.f_yjgase_time}}</font></nobr>
324
+ </td>
325
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
326
+ <nobr><font>{{row.f_apply_date}}</font></nobr>
327
+ </td>
328
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
329
+ <nobr><font>{{row.f_user_appraise}}</font></nobr>
330
+ </td>
331
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
332
+ <nobr><font>{{row.f_operator}}</font></nobr>
333
+ </td>
334
+ </tr>
335
+ </template>
336
+ </data-grid>
337
+ </criteria-paged>
338
+
339
+ <modal
340
+ v-if="showModal"
341
+ :show.sync="showModal"
342
+ backdrop="false"
343
+ title="工程类型"
344
+ cancel-text="取消"
345
+ ok-text="确认"
346
+ :callback="apply"
347
+ >
348
+ <div class="form-horizontal" slot="modal-body">
349
+ <div class="form-group" style="margin: 10px auto">
350
+ <label class="col-sm-3 control-label">报建类型:</label>
351
+ <div class="col-sm-9">
352
+ <v-select
353
+ v-model="applyType"
354
+ placeholder='请选择需要发起的工程类型'
355
+ :value.sync="applyType"
356
+ :options='$appdata.getParam("报建类型")'
357
+ :value-single="true"
358
+ class="select select_list"
359
+ :search="false"
360
+ close-on-select ></v-select>
361
+ </div>
362
+ </div>
363
+ </div>
364
+ </modal>
365
+
366
+ <modal v-if="showFile" :show.sync="showFile" v-ref:modal :backdrop="false" title="选择文件">
367
+ <header slot="modal-header" class="modal-header">
368
+ <button type="button" class="close" @click="closeFile"><span>&times;</span></button>
369
+ <h4 class="modal-title">选择文件</h4>
370
+ </header>
371
+ <article slot="modal-body" class="modal-body">
372
+ <div class="form-group">
373
+ <file-upload class="my-file-uploader" action="rs/file/uploadFile" tagname="确定" v-ref:file></file-upload>
374
+ </div>
375
+ </article>
376
+ <footer slot="modal-footer" class="modal-footer"></footer>
377
+ </modal>
378
+ </div>
379
+ </template>
380
+ <script>
381
+ import {HttpResetClass, PagedList} from 'vue-client'
382
+ import {isEmpty} from '../../../components/Util'
383
+
384
+ export default {
385
+ title: '工程列表',
386
+ props: ['showData'],
387
+ data () {
388
+ return {
389
+ model: new PagedList('rs/sql/checkuser', 20, {
390
+ data: {
391
+ id: this.$login.f.id,
392
+ orgid: this.$login.f.orgid
393
+ }
394
+ }),
395
+ showModal: false, // 控制发起类型选择
396
+ applyType: '', // 报建类型
397
+ curorgid: [this.$login.f.orgid],
398
+ applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')],
399
+ defnames: [{label: '全部', value: ''}, ...this.$appdata.getParam('办理环节')], // 流程节点
400
+ applyNatures: [{label: '全部', value: ''},...this.$appdata.getParam('报建性质')], // 报建性质
401
+ criteriaShow: false,
402
+ showFile: false,
403
+ laterList: [
404
+ {label: '全部', value: ''},
405
+ {label: '有效', value: '有效'}
406
+ ]
407
+ }
408
+ },
409
+ ready () {
410
+ // 调用查询
411
+ this.search()
412
+ },
413
+ methods: {
414
+ openLater (row) {
415
+ this.$dispatch('openLater', row)
416
+ },
417
+ closeFile () {
418
+ this.showFile = false
419
+ // 将选的文件清空
420
+ this.$refs.file.$el.querySelector('input').value = ''
421
+ this.search()
422
+ },
423
+ // 点击操作
424
+ click (val) {
425
+ this.$dispatch('apply', val)
426
+ },
427
+ // 获取流程id
428
+ async getProcessId(processname) {
429
+ let data = {
430
+ workname: processname
431
+ }
432
+ let http = new HttpResetClass()
433
+ let res = await http.load(
434
+ 'POST',
435
+ 'rs/logic/getProcessId',
436
+ {data: data},
437
+ {resolveMsg: null, rejectMsg: '流程标识获取失败!!!'}
438
+ )
439
+
440
+ return res.data
441
+ },
442
+ // 报装申请
443
+ async apply () {
444
+ if (this.applyType === '' || this.applyType === null) {
445
+ this.$showAlert('请选择需要发起的类型', 'warning', 3000)
446
+ return
447
+ }
448
+ let data = {
449
+ f_apply_type: this.applyType
450
+ }
451
+ if (this.applyType === '民用散户报建流程') {
452
+ data.processname = '民用散户报建流程'
453
+ data.defname = '报装申请'
454
+ }
455
+ else if (this.applyType === '民用预留户报建流程') {
456
+ data.processname = '民用预留户报建流程'
457
+ data.defname = '报装申请'
458
+ }
459
+ else if (this.applyType === '民用集体报建流程') {
460
+ data.processname = '民用集体报建流程'
461
+ data.defname = '报装申请'
462
+ } else if (this.applyType === '非民用报建流程') {
463
+ data.processname = '非民用报建流程'
464
+ data.defname = '报装申请'
465
+ } else if (this.applyType === '启封通气') {
466
+ data.processname = '启封通气流程'
467
+ data.defname = '通气申请'
468
+ }else if (this.applyType === '整改报建') {
469
+ data.processname = '整改报建流程'
470
+ data.defname = '报装申请'
471
+ }else {
472
+ this.$showMessage('暂无此类报装')
473
+ return
474
+ }
475
+
476
+ data.f_sub_state = "新增"
477
+ data.f_apply_source = "线下发起"
478
+ data.f_process_id = await this.getProcessId(data.processname)
479
+
480
+ // 调用ExplorationUser事件
481
+ this.$dispatch('apply', data)
482
+
483
+ this.applyType = null
484
+ this.showModal = false
485
+ },
486
+ loadPage () {
487
+ this.$dispatch('loadPage')
488
+ },
489
+ search () {
490
+ this.$dispatch('search')
491
+ },
492
+ async applyTypeChange () {
493
+ //判断this.$refs.cp.$refs.cri.model.f_apply_type是不是数组
494
+ if (Array.isArray(this.$refs.cp.$refs.cri.model.f_apply_type)) {
495
+ if(this.$refs.cp.$refs.cri.model.f_apply_type.length>0){
496
+ for (let i = 0; i < this.$refs.cp.$refs.cri.model.f_apply_type.length; i++) {
497
+ let res = await this.$resetpost('rs/logic/getDefnameByType',
498
+ { f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type[i] },
499
+ {resolveMsg: null, rejectMsg: '节点信息获取失败!!!'}
500
+ )
501
+ if (!isEmpty(res.data)) {
502
+ const newDefnames = [{ label: '全部', value: '' }, ...res.data];
503
+ const newApplyNatures = isEmpty(this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type[i]}性质`))
504
+ ? [{ label: '全部', value: '' }]
505
+ : [{ label: '全部', value: '' }, ...this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type[i]}性质`)];
506
+ // 检查并追加 defnames
507
+ newDefnames.forEach(item => {
508
+ if (!this.defnames.some(defname => defname.value === item.value)) {
509
+ this.defnames.push(item);
510
+ }
511
+ });
512
+ // 检查并追加 applyNatures
513
+ newApplyNatures.forEach(item => {
514
+ if (!this.applyNatures.some(applyNature => applyNature.value === item.value)) {
515
+ this.applyNatures.push(item);
516
+ }
517
+ });
518
+ }
519
+ }
520
+ }
521
+ }else{
522
+ if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
523
+ let res = await this.$resetpost('rs/logic/getDefnameByType',
524
+ { f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type },
525
+ {resolveMsg: null, rejectMsg: '节点信息获取失败!!!'}
526
+ )
527
+
528
+ this.defnames = [{label: '全部', value: ''}, ...res.data]
529
+
530
+ 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}性质`)]
531
+ } else {
532
+ this.defnames = [{label: '全部', value: ''}]
533
+
534
+ this.applyNatures = [{label: '全部', value: ''}]
535
+ }
536
+ }
537
+ },
538
+ clear () {
539
+ Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
540
+ if (Array.isArray(this.$refs.cp.$refs.cri.model[key])) {
541
+ this.$refs.cp.$refs.cri.model[key] = [];
542
+ } else {
543
+ this.$refs.cp.$refs.cri.model[key] = null;
544
+ }
545
+ })
546
+ },
547
+ getorg (val) {
548
+ if (val.length <= 0) {
549
+ return
550
+ }
551
+ this.model.params.data.orgid = val[0]
552
+ }
553
+ },
554
+ computed: {
555
+ projectStart () {
556
+ return this.$login.r.includes('报建发起')
557
+ },
558
+ projectTemplate () {
559
+ return this.$login.r.includes('报建流程-模板下载')
560
+ },
561
+ projectImport () {
562
+ return this.$login.r.includes('报建流程-批量散户导入')
563
+ }
564
+ },
565
+ watch: {
566
+ 'model.rows': {
567
+ handler: function () {
568
+ let isover = [] // 过期(超时)数据
569
+ let isbeforeover = [] // 未过期 提前提醒
570
+ for (let i = 0; i < this.model.rows.length; i++) {
571
+ let item = this.model.rows[i]
572
+ if (item.isover === '过期') {
573
+ isover.push(i + 1)
574
+ }
575
+ if (item.isbeforeover === '预期提醒') {
576
+ isbeforeover.push(i + 1)
577
+ }
578
+ }
579
+ let msg = null
580
+ if (isover.length > 0) {
581
+ msg = `第${isover.toString()}条数据已过期`
582
+ this.$showAlert(msg, 'warning', 3000)
583
+ }
584
+
585
+ if (isbeforeover.length > 0) {
586
+ msg = `第${isbeforeover.toString()}条数据即将过期`
587
+ if (isover.length > 0) {
588
+ setTimeout(() => {
589
+ this.$showAlert(msg, 'warning', 3000)
590
+ }, 4000)
591
+ } else {
592
+ this.$showAlert(msg, 'warning', 3000)
593
+ }
594
+ }
595
+ }
596
+ }
597
+ },
598
+ events: {
599
+ async 'onFileUpload'(file, result) {
600
+ let data = {
601
+ filepath: result.f_downloadpath,
602
+ user: this.$login.f
603
+ }
604
+ let res = await this.$resetpost(`rs/logic/importApply`, {data:data}, {resolveMsg: null, rejectMsg: '导入失败!!!', silent: true}, 0)
605
+
606
+ this.closeFile()
607
+ }
608
+ }
609
+ }
610
+ </script>
611
+ <style scoped>
612
+ .back-style{
613
+ background-color: #ffa726;
614
+ }
615
+ .p1 {
616
+ color: #dc0b12;
617
+ font-weight:bold
618
+ }
619
+ .p {
620
+ color: #ffaf4f;
621
+ }
622
+ </style>