apply-clients 3.5.4-93 → 3.5.4-95

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 (52) hide show
  1. package/build/dev-server.js +6 -11
  2. package/package.json +1 -1
  3. package/src/apply.js +139 -139
  4. package/src/components/android/AppCheckTakePic.vue +168 -168
  5. package/src/components/android/AppTakePic.vue +182 -182
  6. package/src/components/android/Process/AppServiceControl.vue +1755 -1755
  7. package/src/components/product/Material/MaterialDetailed.vue +268 -268
  8. package/src/components/product/PcZhihuanManagement.vue +160 -160
  9. package/src/components/product/Print/BuildOrder/buildOrderList.vue +339 -339
  10. package/src/components/product/Process/Processes/selectApply.vue +251 -251
  11. package/src/components/product/Process/Processes/selectBcakApply.vue +250 -250
  12. package/src/filiale/fugou/android/AppAddMaterialScience.vue +440 -440
  13. package/src/filiale/fugou/android/AppAddReplacement.vue +341 -341
  14. package/src/filiale/fugou/android/AppChargeManagement.vue +739 -739
  15. package/src/filiale/fugou/android/AppDevicesManagement.vue +519 -519
  16. package/src/filiale/fugou/android/AppInstallationDetails.vue +541 -541
  17. package/src/filiale/fugou/android/AppServiceControl.vue +1845 -1845
  18. package/src/filiale/fugou/android/AppZhihuanManagement.vue +33 -0
  19. package/src/filiale/fugou/android/printCharge.vue +162 -162
  20. package/src/filiale/fugou/android.js +16 -16
  21. package/src/filiale/fugou/pc/AddReplacement.vue +340 -340
  22. package/src/filiale/fugou/pc/ApplyChargeList.vue +480 -480
  23. package/src/filiale/fugou/pc/ExplorationSelect.vue +525 -525
  24. package/src/filiale/fugou/pc/ServiceControl.vue +1705 -1705
  25. package/src/filiale/fugou/pc/ServiceView.vue +941 -941
  26. package/src/filiale/fugou/pc/addMaterialScience.vue +481 -481
  27. package/src/filiale/fugou/pc/addressAndUserinfoManagement.vue +216 -216
  28. package/src/filiale/fugou/pc/chargeReport.vue +143 -143
  29. package/src/filiale/fugou/pc/devicesManagement.vue +483 -483
  30. package/src/filiale/fugou/pc/printChargepc.vue +148 -148
  31. package/src/filiale/fugou/pc.js +16 -16
  32. package/src/filiale/gongyi/android/AppAddMaterialScience.vue +493 -493
  33. package/src/filiale/qianneng/android/AppChargeManagement.vue +686 -686
  34. package/src/filiale/qianneng/android/AppServiceView.vue +1 -0
  35. package/src/filiale/qianneng/android.js +15 -15
  36. package/src/filiale/qianneng/pc/ApplyMaterialDetailed.vue +261 -261
  37. package/src/filiale/qianneng/pc/Applydetail.vue +378 -378
  38. package/src/filiale/qianneng/pc/InstallFunction.vue +188 -188
  39. package/src/filiale/qianneng/pc.js +29 -29
  40. package/src/filiale/yangchunboneng/android/AppChargeManagement.vue +520 -520
  41. package/src/filiale/yangchunboneng/android/AppDevicesManagement.vue +645 -645
  42. package/src/filiale/yangchunboneng/android/AppServiceControl.vue +1703 -1681
  43. package/src/filiale/yangchunboneng/pc/ExplorationSelect.vue +547 -547
  44. package/src/filiale/yangchunboneng/pc/ServiceControl.vue +2112 -2112
  45. package/src/filiale/yangchunboneng/pc/SupervisoryList.vue +605 -605
  46. package/src/filiale/yangchunboneng/pc/SupervisoryListNew.vue +683 -683
  47. package/src/filiale/yangchunboneng/pc/chargeManagement.vue +1052 -1052
  48. package/src/filiale/yangchunboneng/pc/devicesManagement.vue +574 -574
  49. package/src/main.js +3 -4
  50. package/src/test/SessionTestServlet.java +69 -0
  51. package/webapp/WEB-INF/web.xml +52 -0
  52. package/webapp/session-test.jsp +59 -0
@@ -1,525 +1,525 @@
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">-->
22
- <!-- <label class="font_normal_body">工程编号:</label>-->
23
- <!-- <input type="text" style="width:60%" class="input_search" placeholder='工程编号' v-model="model.f_apply_num"-->
24
- <!-- v-on:keyup.enter="$parent.$parent.search()"-->
25
- <!-- condition="u.f_apply_num = '{}'">-->
26
- <!-- </div>-->
27
- <div class="form-group col-sm-3 button-range">
28
- <a type="button" class="button_new button_spacing" v-if="$parent.$parent.projectStart"
29
- href="/apply/download/excel/散户报装模板.xlsx" download>模板下载</a>
30
- <button class="button_new button_spacing" style="width: max-content"
31
- v-if="$parent.$parent.projectStart"
32
- @click="$parent.$parent.showFile = !$parent.$parent.showFile">批量散户导入</button>
33
- <button class="button_new button_spacing" style="width: max-content"
34
- v-if="$parent.$parent.projectStart"
35
- @click="$parent.$parent.showModal = !$parent.$parent.showModal">工程发起</button>
36
- <button class="button_search button_spacing" @click="$parent.$parent.search()" v-el:cx>查询</button>
37
- <button class="button_search button_spacing" @click="$parent.$parent.loadPage()">返回</button>
38
- <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
39
- <div
40
- :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
41
- @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"
42
- class="button_spacing"
43
- style="float: right">
44
- </div>
45
- </div>
46
- </div>
47
- <div class="row" v-show="$parent.$parent.criteriaShow">
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" v-model="model.f_user_name"-->
51
- <!-- v-on:keyup.enter="$parent.$parent.search()" condition="f_user_name like '%{}%'" placeholder='客户名称'>-->
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_userinfo_code"
56
- v-on:keyup.enter="$parent.$parent.search()"
57
- condition="ui.f_userinfo_code 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_apply_num"
62
- v-on:keyup.enter="$parent.$parent.search()"
63
- condition="u.f_apply_num 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_parent_apply_num"
68
- v-on:keyup.enter="$parent.$parent.search()"
69
- condition="u.f_parent_apply_num 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_money"
74
- v-on:keyup.enter="$parent.$parent.search()"
75
- condition="u.f_contract_money like '%{}%'">
76
- </div>
77
- <div class="form-group col-sm-3">
78
- <label class="font_normal_body">联系电话:</label>
79
- <input type="text" style="width:60%" class="input_search" placeholder='联系电话' v-model="model.f_phone"
80
- v-on:keyup.enter="$parent.$parent.search()"
81
- condition="f_phone like '%{}%'">
82
- </div>
83
- <div class="form-group col-sm-3">
84
- <label class="font_normal_body">合同编号:</label>
85
- <input type="text" style="width:60%" class="input_search" placeholder='合同编号' v-model="model.f_contract_number"
86
- v-on:keyup.enter="$parent.$parent.search()"
87
- condition="f_contract_number = '{}'">
88
- </div>
89
- <div class="form-group col-sm-3">
90
- <label class="font_normal_body">报建类型:</label>
91
- <v-select
92
- v-model="model.f_apply_type"
93
- placeholder='报建类型'
94
- condition="f_apply_type = '{}'"
95
- :value.sync="model.f_apply_type"
96
- :options='$parent.$parent.applytype'
97
- class="select select_list"
98
- :value-single="true"
99
- @change="$parent.$parent.applyTypeChange()"
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.defname"
106
- placeholder='办理环节'
107
- condition="act.defname = '{}'"
108
- :value.sync="model.defname"
109
- :options='$parent.$parent.defnames'
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
- <v-select
117
- v-model="model.f_apply_nature"
118
- placeholder='报建性质'
119
- condition="f_apply_nature = '{}'"
120
- :value.sync="model.f_apply_nature"
121
- :options='$parent.$parent.applyNatures'
122
- class="select select_list"
123
- :value-single="true"
124
- close-on-select ></v-select>
125
- </div>
126
- <div class="form-group col-sm-3">
127
- <label class="font_normal_body">是否室内:</label>
128
- <v-select
129
- v-model="model.f_no_indoors"
130
- placeholder='是否室内'
131
- condition="f_no_indoors = '{}'"
132
- :value.sync="model.f_no_indoors"
133
- :options='$parent.$parent.noindoors'
134
- class="select select_list"
135
- :value-single="true"
136
- close-on-select ></v-select>
137
- </div>
138
- <div class="form-group col-sm-3">
139
- <label class="font_normal_body">用户地址:</label>
140
- <input type="text" style="width:60%" class="input_search" placeholder='用户地址' v-model="model.f_address"
141
- v-on:keyup.enter="$parent.$parent.search()"
142
- condition="f_address like '%{}%'">
143
- </div>
144
- <div class="form-group col-sm-3">
145
- <label for="startDate" class="font_normal_body">开始时间:</label>
146
- <datepicker id="startDate" placeholder="开始日期"
147
- style="width: 60%!important;"
148
- v-model="model.startDate"
149
- :value.sync="model.startDate"
150
- :format="'yyyy-MM-dd 00:00:00'"
151
- :show-reset-button="true"
152
- condition="f_apply_date >= '{}'">
153
- </datepicker>
154
- </div>
155
- <div class="form-group col-sm-3">
156
- <label for="endDate" class="font_normal_body">结束时间:</label>
157
- <datepicker id="endDate" placeholder="结束日期"
158
- style="width: 60%!important;"
159
- v-model="model.endDate"
160
- :value.sync="model.endDate"
161
- :format="'yyyy-MM-dd 23:59:59'"
162
- :show-reset-button="true"
163
- condition="f_apply_date <= '{}'">
164
- </datepicker>
165
- </div>
166
- <div class="form-group col-sm-3">
167
- <label class="font_normal_body">稍后处理:</label>
168
- <v-select
169
- v-model="model.f_no_valid"
170
- placeholder='稍后处理'
171
- condition="lp.f_no_valid = '{}'"
172
- :value.sync="model.f_no_valid"
173
- :options='$parent.$parent.laterList'
174
- class="select select_list"
175
- :value-single="true"
176
- close-on-select ></v-select>
177
- </div>
178
- <div class="form-group col-sm-3">
179
- <label class="font_normal_body">节点发起人:</label>
180
- <input type="text" style="width:60%" class="input_search" v-model="model.act_sender"
181
- v-on:keyup.enter="$parent.$parent.search()" condition="act.sender like '%{}%'" placeholder='节点发起人'>
182
- </div>
183
- </div>
184
- </div>
185
- </criteria>
186
- <data-grid v-if="$parent.showData" :model="model" partial='list' v-ref:grid class="list_area table_sy" style="height: 100%">
187
- <template partial='head'>
188
- <tr>
189
- <th style="white-space: nowrap;">序号</th>
190
- <th style="white-space: nowrap;">父工程编号</th>
191
- <th style="white-space: nowrap;">工程编号</th>
192
- <th style="white-space: nowrap;">客户名称</th>
193
- <th style="white-space: nowrap;">合同编号</th>
194
- <th style="white-space: nowrap;">电话</th>
195
- <th style="white-space: nowrap;">地址</th>
196
- <th style="white-space: nowrap;">来源</th>
197
- <th style="white-space: nowrap;">报建类型</th>
198
- <th style="white-space: nowrap;">办理环节</th>
199
- <th style="white-space: nowrap;">流程状态</th>
200
- <th style="white-space: nowrap;">报建日期</th>
201
- <th style="white-space: nowrap;">室内</th>
202
- <th style="white-space: nowrap;">地埋</th>
203
- <th style="white-space: nowrap;">操作</th>
204
- </tr>
205
- </template>
206
- <template partial='body'>
207
- <tr class="back-style">
208
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'', row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
209
- <nobr><font>{{$index+1}}</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_parent_apply_num}}</font></nobr>
213
- </td>
214
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
215
- <nobr><font>{{row.f_apply_num}}</font></nobr>
216
- </td>
217
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
218
- <nobr><font>{{row.f_user_name}}</font></nobr>
219
- </td>
220
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
221
- <nobr><font>{{row.f_contract_number}}</font></nobr>
222
- </td>
223
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
224
- <nobr><font>{{row.f_phone}}</font></nobr>
225
- </td>
226
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
227
- <nobr><font>{{row.f_address}}</font></nobr>
228
- </td>
229
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
230
- <nobr><font>{{row.f_apply_source}}</font></nobr>
231
- </td>
232
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
233
- <nobr><font>{{row.f_apply_type}}</font></nobr>
234
- </td>
235
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
236
- <nobr><font>{{row.defname}}</font></nobr>
237
- </td>
238
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
239
- <nobr><font>{{row.f_sub_state}}</font></nobr>
240
- </td>
241
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
242
- <nobr><font>{{row.f_apply_date}}</font></nobr>
243
- </td>
244
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
245
- <nobr><font>{{row.f_no_indoors}}</font></nobr>
246
- </td>
247
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
248
- <nobr><font>{{row.f_no_buried}}</font></nobr>
249
- </td>
250
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
251
- <dropdown>
252
- <button type="button" data-toggle="dropdown" style="border: 0px;background: none;">
253
- <span class="glyphicon glyphicon-th-list" style="position: inherit;"></span>
254
- </button>
255
- <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-right">
256
- <li>
257
- <a href="#" @click="$parent.$parent.$parent.click(row)">{{row.defname}}</a>
258
- <a href="#" @click="$parent.$parent.$parent.openLater(row)" v-if="row.f_no_valid !== '有效'">稍后处理</a>
259
- </li>
260
- </ul>
261
- </dropdown>
262
- </td>
263
- </tr>
264
- </template>
265
- </data-grid>
266
- </criteria-paged>
267
-
268
- <modal
269
- v-if="showModal"
270
- :show.sync="showModal"
271
- backdrop="false"
272
- title="工程类型"
273
- cancel-text="取消"
274
- ok-text="确认"
275
- :callback="apply"
276
- >
277
- <div class="form-horizontal" slot="modal-body">
278
- <div class="form-group" style="margin: 10px auto">
279
- <label class="col-sm-3 control-label">报建类型:</label>
280
- <div class="col-sm-9">
281
- <v-select
282
- v-model="applyType"
283
- placeholder='请选择需要发起的工程类型'
284
- :value.sync="applyType"
285
- :options='$appdata.getParam("报建类型")'
286
- :value-single="true"
287
- class="select select_list"
288
- :search="false"
289
- close-on-select ></v-select>
290
- </div>
291
- </div>
292
- </div>
293
- </modal>
294
-
295
- <modal v-if="showFile" :show.sync="showFile" v-ref:modal :backdrop="false" title="选择文件">
296
- <header slot="modal-header" class="modal-header">
297
- <button type="button" class="close" @click="closeFile"><span>&times;</span></button>
298
- <h4 class="modal-title">选择文件</h4>
299
- </header>
300
- <article slot="modal-body" class="modal-body">
301
- <div class="form-group">
302
- <file-upload class="my-file-uploader" action="rs/file/uploadFile" tagname="确定" v-ref:file></file-upload>
303
- </div>
304
- </article>
305
- <footer slot="modal-footer" class="modal-footer"></footer>
306
- </modal>
307
- </div>
308
- </template>
309
- <script>
310
- import {HttpResetClass, PagedList} from 'vue-client'
311
- import {isEmpty} from '../../../components/Util'
312
-
313
- export default {
314
- title: '工程列表',
315
- props: ['showData'],
316
- data () {
317
- return {
318
- model: new PagedList('rs/sql/checkuser', 20, {
319
- data: {
320
- id: this.$login.f.id,
321
- orgid: this.$login.f.orgid
322
- }
323
- }),
324
- showModal: false, // 控制发起类型选择
325
- applyType: '', // 报建类型
326
- curorgid: [this.$login.f.orgid],
327
- applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')],
328
- defnames: [{label: '全部', value: ''}], // 流程节点
329
- applyNatures: [{label: '全部', value: ''}], // 报建性质
330
- noindoors: [{label: '全部', value: ''},{label: '是', value: '是'},{label: '否', value: '否'}], // 是否室内
331
- criteriaShow: false,
332
- showFile: false,
333
- laterList: [
334
- {label: '全部', value: ''},
335
- {label: '有效', value: '有效'}
336
- ]
337
- }
338
- },
339
- ready () {
340
- // 调用查询
341
- this.search()
342
- },
343
- methods: {
344
- openLater (row) {
345
- this.$dispatch('openLater', row)
346
- },
347
- closeFile () {
348
- this.showFile = false
349
- // 将选的文件清空
350
- this.$refs.file.$el.querySelector('input').value = ''
351
- this.search()
352
- },
353
- // 点击操作
354
- click (val) {
355
- this.$dispatch('apply', val)
356
- },
357
- // 获取流程id
358
- async getProcessId(processname) {
359
- let data = {
360
- workname: processname
361
- }
362
- let http = new HttpResetClass()
363
- let res = await http.load(
364
- 'POST',
365
- 'rs/logic/getProcessId',
366
- {data: data},
367
- {resolveMsg: null, rejectMsg: '流程标识获取失败!!!'}
368
- )
369
-
370
- return res.data
371
- },
372
- // 报装申请
373
- async apply () {
374
- if (this.applyType === '' || this.applyType === null) {
375
- this.$showAlert('请选择需要发起的类型', 'warning', 3000)
376
- return
377
- }
378
- let data = {
379
- f_apply_type: this.applyType
380
- }
381
- if (this.applyType === '散户报建') {
382
- data.processname = '散户报建流程'
383
- data.defname = '报装申请'
384
- } else if (this.applyType === '工商户报建') {
385
- data.processname = '工商户报建流程'
386
- data.defname = '报装申请'
387
- } else if (this.applyType === '改管报建') {
388
- data.processname = '改管报建流程'
389
- data.defname = '报装申请'
390
- } else if (this.applyType === '增容报建') {
391
- data.processname = '增容报建流程'
392
- data.defname = '报装申请'
393
- } else if (this.applyType === '团购报建') {
394
- data.processname = '团购报建流程'
395
- data.defname = '报装申请'
396
- } else if (this.applyType === '退款报建') {
397
- data.processname = '退款报建流程'
398
- data.defname = '终止报建'
399
- } else if (this.applyType === '团购转散户') {
400
- data.processname = '团购转散户报建流程'
401
- data.defname = '信息确认'
402
- }else if (this.applyType === '报警器报建') {
403
- data.processname = '报警器报建流程'
404
- data.defname = '报装申请'
405
- }else if (this.applyType === '工商业报警器报建') {
406
- data.processname = '工商业报警器报建流程'
407
- data.defname = '报装申请'
408
- }else if (this.applyType === '集体报建') {
409
- data.processname = '集体报建流程'
410
- data.defname = '报装申请'
411
- } else if (this.applyType === '工商业报建') {
412
- data.processname = '工商业报建流程'
413
- data.defname = '报装申请'
414
- } else {
415
- this.$showMessage('暂无此类报装')
416
- return
417
- }
418
-
419
- data.f_sub_state = "新增"
420
- data.f_apply_source = "线下发起"
421
- data.f_process_id = await this.getProcessId(data.processname)
422
-
423
- // 调用ExplorationUser事件
424
- this.$dispatch('apply', data)
425
-
426
- this.applyType = null
427
- this.showModal = false
428
- },
429
- loadPage () {
430
- this.$dispatch('loadPage')
431
- },
432
- search () {
433
- this.$dispatch('search')
434
- },
435
- async applyTypeChange () {
436
- if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
437
- let res = await this.$resetpost('rs/logic/getDefnameByType',
438
- { f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type },
439
- {resolveMsg: null, rejectMsg: '节点信息获取失败!!!'}
440
- )
441
-
442
- this.defnames = [{label: '全部', value: ''}, ...res.data]
443
-
444
- 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}性质`)]
445
- } else {
446
- this.defnames = [{label: '全部', value: ''}]
447
-
448
- this.applyNatures = [{label: '全部', value: ''}]
449
- }
450
- },
451
- clear () {
452
- Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
453
- this.$refs.cp.$refs.cri.model[key] = null
454
- })
455
- },
456
- getorg (val) {
457
- if (val.length <= 0) {
458
- return
459
- }
460
- this.model.params.data.orgid = val[0]
461
- }
462
- },
463
- computed: {
464
- projectStart () {
465
- return this.$login.r.includes('报建发起')
466
- }
467
- },
468
- watch: {
469
- 'model.rows': {
470
- handler: function () {
471
- let isover = [] // 过期(超时)数据
472
- let isbeforeover = [] // 未过期 提前提醒
473
- for (let i = 0; i < this.model.rows.length; i++) {
474
- let item = this.model.rows[i]
475
- if (item.isover === '过期') {
476
- isover.push(i + 1)
477
- }
478
- if (item.isbeforeover === '预期提醒') {
479
- isbeforeover.push(i + 1)
480
- }
481
- }
482
- let msg = null
483
- if (isover.length > 0) {
484
- msg = `第${isover.toString()}条数据已过期`
485
- this.$showAlert(msg, 'warning', 3000)
486
- }
487
-
488
- if (isbeforeover.length > 0) {
489
- msg = `第${isbeforeover.toString()}条数据即将过期`
490
- if (isover.length > 0) {
491
- setTimeout(() => {
492
- this.$showAlert(msg, 'warning', 3000)
493
- }, 4000)
494
- } else {
495
- this.$showAlert(msg, 'warning', 3000)
496
- }
497
- }
498
- }
499
- }
500
- },
501
- events: {
502
- async 'onFileUpload'(file, result) {
503
- let data = {
504
- filepath: result.f_downloadpath,
505
- user: this.$login.f
506
- }
507
- let res = await this.$resetpost(`rs/logic/importApply`, {data:data}, {resolveMsg: null, rejectMsg: '导入失败!!!', silent: true}, 0)
508
-
509
- this.closeFile()
510
- }
511
- }
512
- }
513
- </script>
514
- <style scoped>
515
- .back-style{
516
- background-color: #ffa726;
517
- }
518
- .p1 {
519
- color: #dc0b12;
520
- font-weight:bold
521
- }
522
- .p {
523
- color: #ffaf4f;
524
- }
525
- </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">-->
22
+ <!-- <label class="font_normal_body">工程编号:</label>-->
23
+ <!-- <input type="text" style="width:60%" class="input_search" placeholder='工程编号' v-model="model.f_apply_num"-->
24
+ <!-- v-on:keyup.enter="$parent.$parent.search()"-->
25
+ <!-- condition="u.f_apply_num = '{}'">-->
26
+ <!-- </div>-->
27
+ <div class="form-group col-sm-3 button-range">
28
+ <a type="button" class="button_new button_spacing" v-if="$parent.$parent.projectStart"
29
+ href="/apply/download/excel/散户报装模板.xlsx" download>模板下载</a>
30
+ <button class="button_new button_spacing" style="width: max-content"
31
+ v-if="$parent.$parent.projectStart"
32
+ @click="$parent.$parent.showFile = !$parent.$parent.showFile">批量散户导入</button>
33
+ <button class="button_new button_spacing" style="width: max-content"
34
+ v-if="$parent.$parent.projectStart"
35
+ @click="$parent.$parent.showModal = !$parent.$parent.showModal">工程发起</button>
36
+ <button class="button_search button_spacing" @click="$parent.$parent.search()" v-el:cx>查询</button>
37
+ <button class="button_search button_spacing" @click="$parent.$parent.loadPage()">返回</button>
38
+ <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
39
+ <div
40
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
41
+ @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"
42
+ class="button_spacing"
43
+ style="float: right">
44
+ </div>
45
+ </div>
46
+ </div>
47
+ <div class="row" v-show="$parent.$parent.criteriaShow">
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" v-model="model.f_user_name"-->
51
+ <!-- v-on:keyup.enter="$parent.$parent.search()" condition="f_user_name like '%{}%'" placeholder='客户名称'>-->
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_userinfo_code"
56
+ v-on:keyup.enter="$parent.$parent.search()"
57
+ condition="ui.f_userinfo_code 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_apply_num"
62
+ v-on:keyup.enter="$parent.$parent.search()"
63
+ condition="u.f_apply_num 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_parent_apply_num"
68
+ v-on:keyup.enter="$parent.$parent.search()"
69
+ condition="u.f_parent_apply_num 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_money"
74
+ v-on:keyup.enter="$parent.$parent.search()"
75
+ condition="u.f_contract_money like '%{}%'">
76
+ </div>
77
+ <div class="form-group col-sm-3">
78
+ <label class="font_normal_body">联系电话:</label>
79
+ <input type="text" style="width:60%" class="input_search" placeholder='联系电话' v-model="model.f_phone"
80
+ v-on:keyup.enter="$parent.$parent.search()"
81
+ condition="f_phone like '%{}%'">
82
+ </div>
83
+ <div class="form-group col-sm-3">
84
+ <label class="font_normal_body">合同编号:</label>
85
+ <input type="text" style="width:60%" class="input_search" placeholder='合同编号' v-model="model.f_contract_number"
86
+ v-on:keyup.enter="$parent.$parent.search()"
87
+ condition="f_contract_number = '{}'">
88
+ </div>
89
+ <div class="form-group col-sm-3">
90
+ <label class="font_normal_body">报建类型:</label>
91
+ <v-select
92
+ v-model="model.f_apply_type"
93
+ placeholder='报建类型'
94
+ condition="f_apply_type = '{}'"
95
+ :value.sync="model.f_apply_type"
96
+ :options='$parent.$parent.applytype'
97
+ class="select select_list"
98
+ :value-single="true"
99
+ @change="$parent.$parent.applyTypeChange()"
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.defname"
106
+ placeholder='办理环节'
107
+ condition="act.defname = '{}'"
108
+ :value.sync="model.defname"
109
+ :options='$parent.$parent.defnames'
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
+ <v-select
117
+ v-model="model.f_apply_nature"
118
+ placeholder='报建性质'
119
+ condition="f_apply_nature = '{}'"
120
+ :value.sync="model.f_apply_nature"
121
+ :options='$parent.$parent.applyNatures'
122
+ class="select select_list"
123
+ :value-single="true"
124
+ close-on-select ></v-select>
125
+ </div>
126
+ <div class="form-group col-sm-3">
127
+ <label class="font_normal_body">是否室内:</label>
128
+ <v-select
129
+ v-model="model.f_no_indoors"
130
+ placeholder='是否室内'
131
+ condition="f_no_indoors = '{}'"
132
+ :value.sync="model.f_no_indoors"
133
+ :options='$parent.$parent.noindoors'
134
+ class="select select_list"
135
+ :value-single="true"
136
+ close-on-select ></v-select>
137
+ </div>
138
+ <div class="form-group col-sm-3">
139
+ <label class="font_normal_body">用户地址:</label>
140
+ <input type="text" style="width:60%" class="input_search" placeholder='用户地址' v-model="model.f_address"
141
+ v-on:keyup.enter="$parent.$parent.search()"
142
+ condition="f_address like '%{}%'">
143
+ </div>
144
+ <div class="form-group col-sm-3">
145
+ <label for="startDate" class="font_normal_body">开始时间:</label>
146
+ <datepicker id="startDate" placeholder="开始日期"
147
+ style="width: 60%!important;"
148
+ v-model="model.startDate"
149
+ :value.sync="model.startDate"
150
+ :format="'yyyy-MM-dd 00:00:00'"
151
+ :show-reset-button="true"
152
+ condition="f_apply_date >= '{}'">
153
+ </datepicker>
154
+ </div>
155
+ <div class="form-group col-sm-3">
156
+ <label for="endDate" class="font_normal_body">结束时间:</label>
157
+ <datepicker id="endDate" placeholder="结束日期"
158
+ style="width: 60%!important;"
159
+ v-model="model.endDate"
160
+ :value.sync="model.endDate"
161
+ :format="'yyyy-MM-dd 23:59:59'"
162
+ :show-reset-button="true"
163
+ condition="f_apply_date <= '{}'">
164
+ </datepicker>
165
+ </div>
166
+ <div class="form-group col-sm-3">
167
+ <label class="font_normal_body">稍后处理:</label>
168
+ <v-select
169
+ v-model="model.f_no_valid"
170
+ placeholder='稍后处理'
171
+ condition="lp.f_no_valid = '{}'"
172
+ :value.sync="model.f_no_valid"
173
+ :options='$parent.$parent.laterList'
174
+ class="select select_list"
175
+ :value-single="true"
176
+ close-on-select ></v-select>
177
+ </div>
178
+ <div class="form-group col-sm-3">
179
+ <label class="font_normal_body">节点发起人:</label>
180
+ <input type="text" style="width:60%" class="input_search" v-model="model.act_sender"
181
+ v-on:keyup.enter="$parent.$parent.search()" condition="act.sender like '%{}%'" placeholder='节点发起人'>
182
+ </div>
183
+ </div>
184
+ </div>
185
+ </criteria>
186
+ <data-grid v-if="$parent.showData" :model="model" partial='list' v-ref:grid class="list_area table_sy" style="height: 100%">
187
+ <template partial='head'>
188
+ <tr>
189
+ <th style="white-space: nowrap;">序号</th>
190
+ <th style="white-space: nowrap;">父工程编号</th>
191
+ <th style="white-space: nowrap;">工程编号</th>
192
+ <th style="white-space: nowrap;">客户名称</th>
193
+ <th style="white-space: nowrap;">合同编号</th>
194
+ <th style="white-space: nowrap;">电话</th>
195
+ <th style="white-space: nowrap;">地址</th>
196
+ <th style="white-space: nowrap;">来源</th>
197
+ <th style="white-space: nowrap;">报建类型</th>
198
+ <th style="white-space: nowrap;">办理环节</th>
199
+ <th style="white-space: nowrap;">流程状态</th>
200
+ <th style="white-space: nowrap;">报建日期</th>
201
+ <th style="white-space: nowrap;">室内</th>
202
+ <th style="white-space: nowrap;">地埋</th>
203
+ <th style="white-space: nowrap;">操作</th>
204
+ </tr>
205
+ </template>
206
+ <template partial='body'>
207
+ <tr class="back-style">
208
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'', row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
209
+ <nobr><font>{{$index+1}}</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_parent_apply_num}}</font></nobr>
213
+ </td>
214
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
215
+ <nobr><font>{{row.f_apply_num}}</font></nobr>
216
+ </td>
217
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
218
+ <nobr><font>{{row.f_user_name}}</font></nobr>
219
+ </td>
220
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
221
+ <nobr><font>{{row.f_contract_number}}</font></nobr>
222
+ </td>
223
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
224
+ <nobr><font>{{row.f_phone}}</font></nobr>
225
+ </td>
226
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
227
+ <nobr><font>{{row.f_address}}</font></nobr>
228
+ </td>
229
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
230
+ <nobr><font>{{row.f_apply_source}}</font></nobr>
231
+ </td>
232
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
233
+ <nobr><font>{{row.f_apply_type}}</font></nobr>
234
+ </td>
235
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
236
+ <nobr><font>{{row.defname}}</font></nobr>
237
+ </td>
238
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
239
+ <nobr><font>{{row.f_sub_state}}</font></nobr>
240
+ </td>
241
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
242
+ <nobr><font>{{row.f_apply_date}}</font></nobr>
243
+ </td>
244
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
245
+ <nobr><font>{{row.f_no_indoors}}</font></nobr>
246
+ </td>
247
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
248
+ <nobr><font>{{row.f_no_buried}}</font></nobr>
249
+ </td>
250
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' , row.f_back_reason ? 'back-style':'' ]" style="text-align: center;">
251
+ <dropdown>
252
+ <button type="button" data-toggle="dropdown" style="border: 0px;background: none;">
253
+ <span class="glyphicon glyphicon-th-list" style="position: inherit;"></span>
254
+ </button>
255
+ <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-right">
256
+ <li>
257
+ <a href="#" @click="$parent.$parent.$parent.click(row)">{{row.defname}}</a>
258
+ <a href="#" @click="$parent.$parent.$parent.openLater(row)" v-if="row.f_no_valid !== '有效'">稍后处理</a>
259
+ </li>
260
+ </ul>
261
+ </dropdown>
262
+ </td>
263
+ </tr>
264
+ </template>
265
+ </data-grid>
266
+ </criteria-paged>
267
+
268
+ <modal
269
+ v-if="showModal"
270
+ :show.sync="showModal"
271
+ backdrop="false"
272
+ title="工程类型"
273
+ cancel-text="取消"
274
+ ok-text="确认"
275
+ :callback="apply"
276
+ >
277
+ <div class="form-horizontal" slot="modal-body">
278
+ <div class="form-group" style="margin: 10px auto">
279
+ <label class="col-sm-3 control-label">报建类型:</label>
280
+ <div class="col-sm-9">
281
+ <v-select
282
+ v-model="applyType"
283
+ placeholder='请选择需要发起的工程类型'
284
+ :value.sync="applyType"
285
+ :options='$appdata.getParam("报建类型")'
286
+ :value-single="true"
287
+ class="select select_list"
288
+ :search="false"
289
+ close-on-select ></v-select>
290
+ </div>
291
+ </div>
292
+ </div>
293
+ </modal>
294
+
295
+ <modal v-if="showFile" :show.sync="showFile" v-ref:modal :backdrop="false" title="选择文件">
296
+ <header slot="modal-header" class="modal-header">
297
+ <button type="button" class="close" @click="closeFile"><span>&times;</span></button>
298
+ <h4 class="modal-title">选择文件</h4>
299
+ </header>
300
+ <article slot="modal-body" class="modal-body">
301
+ <div class="form-group">
302
+ <file-upload class="my-file-uploader" action="rs/file/uploadFile" tagname="确定" v-ref:file></file-upload>
303
+ </div>
304
+ </article>
305
+ <footer slot="modal-footer" class="modal-footer"></footer>
306
+ </modal>
307
+ </div>
308
+ </template>
309
+ <script>
310
+ import {HttpResetClass, PagedList} from 'vue-client'
311
+ import {isEmpty} from '../../../components/Util'
312
+
313
+ export default {
314
+ title: '工程列表',
315
+ props: ['showData'],
316
+ data () {
317
+ return {
318
+ model: new PagedList('rs/sql/checkuser', 20, {
319
+ data: {
320
+ id: this.$login.f.id,
321
+ orgid: this.$login.f.orgid
322
+ }
323
+ }),
324
+ showModal: false, // 控制发起类型选择
325
+ applyType: '', // 报建类型
326
+ curorgid: [this.$login.f.orgid],
327
+ applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')],
328
+ defnames: [{label: '全部', value: ''}], // 流程节点
329
+ applyNatures: [{label: '全部', value: ''}], // 报建性质
330
+ noindoors: [{label: '全部', value: ''},{label: '是', value: '是'},{label: '否', value: '否'}], // 是否室内
331
+ criteriaShow: false,
332
+ showFile: false,
333
+ laterList: [
334
+ {label: '全部', value: ''},
335
+ {label: '有效', value: '有效'}
336
+ ]
337
+ }
338
+ },
339
+ ready () {
340
+ // 调用查询
341
+ this.search()
342
+ },
343
+ methods: {
344
+ openLater (row) {
345
+ this.$dispatch('openLater', row)
346
+ },
347
+ closeFile () {
348
+ this.showFile = false
349
+ // 将选的文件清空
350
+ this.$refs.file.$el.querySelector('input').value = ''
351
+ this.search()
352
+ },
353
+ // 点击操作
354
+ click (val) {
355
+ this.$dispatch('apply', val)
356
+ },
357
+ // 获取流程id
358
+ async getProcessId(processname) {
359
+ let data = {
360
+ workname: processname
361
+ }
362
+ let http = new HttpResetClass()
363
+ let res = await http.load(
364
+ 'POST',
365
+ 'rs/logic/getProcessId',
366
+ {data: data},
367
+ {resolveMsg: null, rejectMsg: '流程标识获取失败!!!'}
368
+ )
369
+
370
+ return res.data
371
+ },
372
+ // 报装申请
373
+ async apply () {
374
+ if (this.applyType === '' || this.applyType === null) {
375
+ this.$showAlert('请选择需要发起的类型', 'warning', 3000)
376
+ return
377
+ }
378
+ let data = {
379
+ f_apply_type: this.applyType
380
+ }
381
+ if (this.applyType === '散户报建') {
382
+ data.processname = '散户报建流程'
383
+ data.defname = '报装申请'
384
+ } else if (this.applyType === '工商户报建') {
385
+ data.processname = '工商户报建流程'
386
+ data.defname = '报装申请'
387
+ } else if (this.applyType === '改管报建') {
388
+ data.processname = '改管报建流程'
389
+ data.defname = '报装申请'
390
+ } else if (this.applyType === '增容报建') {
391
+ data.processname = '增容报建流程'
392
+ data.defname = '报装申请'
393
+ } else if (this.applyType === '团购报建') {
394
+ data.processname = '团购报建流程'
395
+ data.defname = '报装申请'
396
+ } else if (this.applyType === '退款报建') {
397
+ data.processname = '退款报建流程'
398
+ data.defname = '终止报建'
399
+ } else if (this.applyType === '团购转散户') {
400
+ data.processname = '团购转散户报建流程'
401
+ data.defname = '信息确认'
402
+ }else if (this.applyType === '报警器报建') {
403
+ data.processname = '报警器报建流程'
404
+ data.defname = '报装申请'
405
+ }else if (this.applyType === '工商业报警器报建') {
406
+ data.processname = '工商业报警器报建流程'
407
+ data.defname = '报装申请'
408
+ }else if (this.applyType === '集体报建') {
409
+ data.processname = '集体报建流程'
410
+ data.defname = '报装申请'
411
+ } else if (this.applyType === '工商业报建') {
412
+ data.processname = '工商业报建流程'
413
+ data.defname = '报装申请'
414
+ } else {
415
+ this.$showMessage('暂无此类报装')
416
+ return
417
+ }
418
+
419
+ data.f_sub_state = "新增"
420
+ data.f_apply_source = "线下发起"
421
+ data.f_process_id = await this.getProcessId(data.processname)
422
+
423
+ // 调用ExplorationUser事件
424
+ this.$dispatch('apply', data)
425
+
426
+ this.applyType = null
427
+ this.showModal = false
428
+ },
429
+ loadPage () {
430
+ this.$dispatch('loadPage')
431
+ },
432
+ search () {
433
+ this.$dispatch('search')
434
+ },
435
+ async applyTypeChange () {
436
+ if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
437
+ let res = await this.$resetpost('rs/logic/getDefnameByType',
438
+ { f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type },
439
+ {resolveMsg: null, rejectMsg: '节点信息获取失败!!!'}
440
+ )
441
+
442
+ this.defnames = [{label: '全部', value: ''}, ...res.data]
443
+
444
+ 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}性质`)]
445
+ } else {
446
+ this.defnames = [{label: '全部', value: ''}]
447
+
448
+ this.applyNatures = [{label: '全部', value: ''}]
449
+ }
450
+ },
451
+ clear () {
452
+ Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
453
+ this.$refs.cp.$refs.cri.model[key] = null
454
+ })
455
+ },
456
+ getorg (val) {
457
+ if (val.length <= 0) {
458
+ return
459
+ }
460
+ this.model.params.data.orgid = val[0]
461
+ }
462
+ },
463
+ computed: {
464
+ projectStart () {
465
+ return this.$login.r.includes('报建发起')
466
+ }
467
+ },
468
+ watch: {
469
+ 'model.rows': {
470
+ handler: function () {
471
+ let isover = [] // 过期(超时)数据
472
+ let isbeforeover = [] // 未过期 提前提醒
473
+ for (let i = 0; i < this.model.rows.length; i++) {
474
+ let item = this.model.rows[i]
475
+ if (item.isover === '过期') {
476
+ isover.push(i + 1)
477
+ }
478
+ if (item.isbeforeover === '预期提醒') {
479
+ isbeforeover.push(i + 1)
480
+ }
481
+ }
482
+ let msg = null
483
+ if (isover.length > 0) {
484
+ msg = `第${isover.toString()}条数据已过期`
485
+ this.$showAlert(msg, 'warning', 3000)
486
+ }
487
+
488
+ if (isbeforeover.length > 0) {
489
+ msg = `第${isbeforeover.toString()}条数据即将过期`
490
+ if (isover.length > 0) {
491
+ setTimeout(() => {
492
+ this.$showAlert(msg, 'warning', 3000)
493
+ }, 4000)
494
+ } else {
495
+ this.$showAlert(msg, 'warning', 3000)
496
+ }
497
+ }
498
+ }
499
+ }
500
+ },
501
+ events: {
502
+ async 'onFileUpload'(file, result) {
503
+ let data = {
504
+ filepath: result.f_downloadpath,
505
+ user: this.$login.f
506
+ }
507
+ let res = await this.$resetpost(`rs/logic/importApply`, {data:data}, {resolveMsg: null, rejectMsg: '导入失败!!!', silent: true}, 0)
508
+
509
+ this.closeFile()
510
+ }
511
+ }
512
+ }
513
+ </script>
514
+ <style scoped>
515
+ .back-style{
516
+ background-color: #ffa726;
517
+ }
518
+ .p1 {
519
+ color: #dc0b12;
520
+ font-weight:bold
521
+ }
522
+ .p {
523
+ color: #ffaf4f;
524
+ }
525
+ </style>