apply-clients 7.1.36-yuchuan-40 → 7.1.36-yuchuan-42

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 (68) hide show
  1. package/android.html +27 -27
  2. package/build/dev-server.js +172 -192
  3. package/package.json +119 -119
  4. package/src/apply.js +163 -163
  5. package/src/applyAndroid.js +98 -98
  6. package/src/components/android/AppSign.vue +232 -232
  7. package/src/components/android/Ignition/VentilationIgnition.vue +408 -408
  8. package/src/components/android/Ignition/VentilationIgnitionHandle.vue +472 -472
  9. package/src/components/android/Process/AppExplorationUser.vue +454 -454
  10. package/src/components/android/Process/AppServiceControl.vue +1434 -1434
  11. package/src/components/android/Process/Processes/AppInstallationDetails.vue +1018 -1018
  12. package/src/components/android/Process/Processes/newAppInstallationDetails.vue +671 -671
  13. package/src/components/android/SealManage.vue +278 -278
  14. package/src/components/android/Sign/AppSignTask.vue +183 -183
  15. package/src/components/android/Supervisory/AppProcessSupervisory.vue +344 -344
  16. package/src/components/android/Task/Build/BuildTsak.vue +117 -117
  17. package/src/components/android/Task/BuildIgnition/BuildIgnition.vue +114 -114
  18. package/src/components/android/Task/GuanXianJianShe/AppExplorationGuanXian.vue +317 -317
  19. package/src/components/android/Task/RepairFromSend/RepairFrom.vue +124 -124
  20. package/src/components/android/Task/RepairFromSend/RepairSend.vue +124 -124
  21. package/src/components/android/Task/ShiGongXinXi/AppShowBuildUser.vue +431 -431
  22. package/src/components/android/Task/Survey/SurveyTsak.vue +141 -141
  23. package/src/components/android/Task/yiban/AppShowDone.vue +442 -442
  24. package/src/components/android/newPackage/customerServiceManager.vue +218 -218
  25. package/src/components/android/newPackage/projectPrice.vue +218 -218
  26. package/src/components/product/ApplyCharge/ApplyChargeList.vue +1101 -1101
  27. package/src/components/product/ApplyGuanXian/GuanXianExplorationSelect.vue +325 -325
  28. package/src/components/product/ApplyGuanXian/GuanXianExplorationUser.vue +142 -142
  29. package/src/components/product/ApplyGuanXian/GuanXianSupervisoryhCart.vue +119 -119
  30. package/src/components/product/ApplyMap/AppMapLocation.vue +829 -829
  31. package/src/components/product/ApplyMap/ApplyMapInputSearch.vue +335 -335
  32. package/src/components/product/Function/InstallFunction.vue +132 -132
  33. package/src/components/product/Function/InstallInfoSelect.vue +374 -374
  34. package/src/components/product/GongJianPush/ApplyPushDispose.vue +12 -10
  35. package/src/components/product/GongJianPush/ApplyPushManage.vue +91 -91
  36. package/src/components/product/Ignition/IgnitionDispatch.vue +90 -90
  37. package/src/components/product/Ignition/IgnitionListManage.vue +604 -604
  38. package/src/components/product/Ignition/IgnitionRecord.vue +380 -380
  39. package/src/components/product/InsuranceApply/InsuranceReport.vue +188 -188
  40. package/src/components/product/List/OldShowDevices.vue +271 -271
  41. package/src/components/product/List/ShowAllActivity.vue +541 -541
  42. package/src/components/product/List/ShowDevices.vue +279 -279
  43. package/src/components/product/Print/BuildOrder/buildOrderList.vue +446 -446
  44. package/src/components/product/Process/ExplorationSelect.vue +593 -593
  45. package/src/components/product/Process/ExplorationUser.vue +154 -154
  46. package/src/components/product/Process/New1ExplorationUser.vue +196 -199
  47. package/src/components/product/Process/NewExplorationSelect.vue +587 -587
  48. package/src/components/product/Process/NewExplorationUser.vue +216 -216
  49. package/src/components/product/Process/Processes/InstallationDetails.vue +1159 -1159
  50. package/src/components/product/Process/Processes/Print/printCharge.vue +250 -250
  51. package/src/components/product/Process/Processes/Print/printGaiXianCharge.vue +244 -244
  52. package/src/components/product/Process/Processes/chargeManagement.vue +703 -703
  53. package/src/components/product/Process/Processes/selectApply.vue +250 -250
  54. package/src/components/product/Process/Processes/selectChaiChuUserinfo.vue +230 -230
  55. package/src/components/product/Process/Processes/selectOldUserinfo.vue +241 -241
  56. package/src/components/product/Process/Processes/selectUserinfo.vue +234 -234
  57. package/src/components/product/Process/Service/ServiceControl.vue +2216 -2216
  58. package/src/components/product/ServiceView.vue +644 -644
  59. package/src/components/product/Stop/StopApplyList.vue +224 -224
  60. package/src/components/product/Supervisory/NewSupervisoryhCart.vue +175 -175
  61. package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +593 -593
  62. package/src/components/product/Supervisory/SupervisoryControl.vue +114 -114
  63. package/src/components/product/Supervisory/SupervisoryList.vue +580 -580
  64. package/src/components/product/Supervisory/SupervisoryhCart.vue +120 -120
  65. package/src/components/product/Supervisory/YiBanSupervisoryControl.vue +111 -111
  66. package/src/components/product/Supervisory/YiBanSupervisoryList.vue +539 -539
  67. package/src/components/product/VueUtils/ApplyUpload.vue +303 -303
  68. package/src/main.js +27 -27
@@ -1,374 +1,374 @@
1
- <template>
2
- <div>
3
- <!-- 功能业务 -->
4
- <criteria-paged :model="model" v-ref:cp>
5
- <criteria partial='criteria' @condition-changed='$parent.searchCondition' v-ref:cri>
6
- <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
7
- <div class="row">
8
- <div class="form-group col-sm-2">
9
- <label class="font_normal_body"><strong>工程编号:</strong></label>
10
- <input type="text" style="width:60%" class="input_search" placeholder='工程编号' v-model="model.f_apply_num"
11
- v-on:keyup.enter="$parent.$parent.search()"
12
- condition="f_apply_num like '%{}%'">
13
- </div>
14
- <div class="form-group col-sm-2">
15
- <label class="font_normal_body"><strong>客户名称:</strong></label>
16
- <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
17
- v-on:keyup.enter="$parent.$parent.search()" condition="f_user_name like '%{}%'" placeholder='客户名称'>
18
- </div>
19
- <div class="form-group col-sm-2">
20
- <label class="font_normal_body"><strong>联系电话:</strong></label>
21
- <input type="text" style="width:60%" class="input_search" placeholder='联系电话' v-model="model.f_phone"
22
- v-on:keyup.enter="$parent.$parent.search()"
23
- condition="f_phone like '%{}%'">
24
- </div>
25
- <div class="form-group col-sm-2">
26
- <label class="font_normal_body"><strong>联&ensp;系&ensp;人:</strong></label>
27
- <input type="text" style="width:60%" class="input_search" placeholder='联系人' v-model="model.f_contact"
28
- v-on:keyup.enter="$parent.$parent.search()"
29
- condition="f_contact like '%{}%'">
30
- </div>
31
- <div class="form-group col-sm-2">
32
- <label class="font_normal_body"><strong>设计人员:</strong></label>
33
- <v-select class="select select_list"
34
- placeholder='设计人员'
35
- v-model="model.f_designer_people"
36
- :value.sync="model.f_designer_people"
37
- :options='$parent.$parent.designerPeoples'
38
- :value-single="true"
39
- close-on-select
40
- condition="f_designer_people = '{}'">
41
- </v-select>
42
- </div>
43
- <div class="form-group col-sm-3 button-range">
44
- <button class="button_search button_spacing" @click="$parent.$parent.search()" v-el:cx>查询</button>
45
- <button class="button_search button_spacing" @click="$parent.$parent.loadPage()">返回</button>
46
- <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
47
- <div
48
- :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
49
- @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"
50
- class="button_spacing"
51
- style="float: right">
52
- </div>
53
- </div>
54
- </div>
55
- <div class="row" v-show="$parent.$parent.criteriaShow">
56
- <div class="form-group col-sm-2">
57
- <label class="font_normal_body"><strong>合同编号:</strong></label>
58
- <input type="text" style="width:60%" class="input_search" placeholder='合同编号' v-model="model.f_contract_number"
59
- v-on:keyup.enter="$parent.$parent.search()"
60
- condition="f_contract_number like '%{}%'">
61
- </div>
62
- <div class="form-group col-sm-2">
63
- <label class="font_normal_body"><strong>报建类型:</strong></label>
64
- <v-select
65
- v-model="model.f_apply_type"
66
- placeholder='报建类型'
67
- condition="f_apply_type in {}"
68
- :value.sync="model.f_apply_type"
69
- :options='$parent.$parent.applytype'
70
- class="select select_list"
71
- multiple
72
- @change="$parent.$parent.applyTypeChange()"></v-select>
73
- </div>
74
- <div class="form-group col-sm-2">
75
- <label class="font_normal_body"><strong>办理环节:</strong></label>
76
- <v-select
77
- v-model="model.defname"
78
- placeholder='办理环节'
79
- condition="defname = '{}'"
80
- :value.sync="model.defname"
81
- :options='$parent.$parent.defnames'
82
- class="select select_list"
83
- :value-single="true"
84
- close-on-select ></v-select>
85
- </div>
86
- <div class="form-group col-sm-2" v-if="false">
87
- <label class="font_normal_body"><strong>报建性质:</strong></label>
88
- <v-select
89
- v-model="model.f_apply_nature"
90
- placeholder='报建性质'
91
- condition="f_apply_nature = '{}'"
92
- :value.sync="model.f_apply_nature"
93
- :options='$parent.$parent.applyNatures'
94
- class="select select_list"
95
- :value-single="true"
96
- close-on-select ></v-select>
97
- </div>
98
- <div class="form-group col-sm-2">
99
- <label class="font_normal_body"><strong>用户地址:</strong></label>
100
- <input type="text" style="width:60%" class="input_search" placeholder='用户地址' v-model="model.f_address"
101
- v-on:keyup.enter="$parent.$parent.search()"
102
- condition="f_address like '%{}%'">
103
- </div>
104
- <div class="form-group col-sm-2">
105
- <label for="startDate" class="font_normal_body"><strong>开始时间:</strong></label>
106
- <datepicker id="startDate" placeholder="开始日期"
107
- style="width: 60%!important;"
108
- v-model="model.startDate"
109
- :value.sync="model.startDate"
110
- :format="'yyyy-MM-dd 00:00:00'"
111
- :show-reset-button="true"
112
- condition="f_apply_date >= '{}'">
113
- </datepicker>
114
- </div>
115
- <div class="form-group col-sm-2">
116
- <label for="endDate" class="font_normal_body"><strong>结束时间:</strong></label>
117
- <datepicker id="endDate" placeholder="结束日期"
118
- style="width: 60%!important;"
119
- v-model="model.endDate"
120
- :value.sync="model.endDate"
121
- :format="'yyyy-MM-dd 23:59:59'"
122
- :show-reset-button="true"
123
- condition="f_apply_date <= '{}'">
124
- </datepicker>
125
- </div>
126
- <div class="form-group col-sm-2">
127
- <label class="font_normal_body"><strong>来&emsp;&emsp;源:</strong></label>
128
- <v-select
129
- v-model="model.f_apply_source"
130
- placeholder='来源'
131
- condition="u.f_apply_source = '{}'"
132
- :value.sync="model.f_apply_source"
133
- :options='$parent.$parent.sources'
134
- class="select select_list"
135
- :value-single="true"
136
- close-on-select >
137
- </v-select>
138
- </div>
139
- </div>
140
- </div>
141
- </criteria>
142
- <data-grid v-if="$parent.showData" :model="model" partial='list' v-ref:grid class="list_area table_sy">
143
- <template partial='head'>
144
- <tr class="title">
145
- <th style="white-space: nowrap;">序号</th>
146
- <th style="white-space: nowrap;">工程编号</th>
147
- <th style="white-space: nowrap;">客户名称</th>
148
- <th style="white-space: nowrap;">联系人</th>
149
- <th style="white-space: nowrap;">合同编号</th>
150
- <th style="white-space: nowrap;">电话</th>
151
- <th style="white-space: nowrap;">地址</th>
152
- <th style="white-space: nowrap;">来源</th>
153
- <th style="white-space: nowrap;">报建类型</th>
154
- <th style="white-space: nowrap;">报建性质</th>
155
- <th style="white-space: nowrap;">办理环节</th>
156
- <th style="white-space: nowrap;">流程状态</th>
157
- <th style="white-space: nowrap;">报建日期</th>
158
- <th style="white-space: nowrap;">操作</th>
159
- </tr>
160
- </template>
161
- <template partial='body'>
162
- <tr>
163
- <td style="text-align: center;">
164
- <nobr><font>{{$index+1}}</font></nobr>
165
- </td>
166
- <td style="text-align: center;">
167
- <nobr><font>{{row.f_apply_num}}</font></nobr>
168
- </td>
169
- <td style="text-align: center;">
170
- <nobr><font>{{row.f_user_name}}</font></nobr>
171
- </td>
172
- <td style="text-align: center;">
173
- <nobr><font>{{row.f_contact}}</font></nobr>
174
- </td>
175
- <td style="text-align: center;">
176
- <nobr><font>{{row.f_contract_number}}</font></nobr>
177
- </td>
178
- <td style="text-align: center;">
179
- <nobr><font>{{row.f_phone}}</font></nobr>
180
- </td>
181
- <td style="text-align: center;">
182
- <nobr><font>{{row.f_address}}</font></nobr>
183
- </td>
184
- <td style="text-align: center;">
185
- <nobr><font>{{row.f_apply_source}}</font></nobr>
186
- </td>
187
- <td style="text-align: center;">
188
- <nobr><font>{{row.f_apply_type}}</font></nobr>
189
- </td>
190
- <td style="text-align: center;">
191
- <nobr><font>{{row.f_apply_nature}}</font></nobr>
192
- </td>
193
- <td style="text-align: center;">
194
- <nobr><font>{{row.defname}}</font></nobr>
195
- </td>
196
- <td style="text-align: center;">
197
- <nobr><font>{{row.f_sub_state}}</font></nobr>
198
- </td>
199
- <td style="text-align: center;">
200
- <nobr><font>{{row.f_apply_date}}</font></nobr>
201
- </td>
202
- <td style="text-align: center;">
203
- <dropdown>
204
- <button @click="$parent.$parent.$parent.checkfuncs(row)" type="button" data-toggle="dropdown" style="border: 0px;background: none;">
205
- <span class="glyphicon glyphicon-th-list" style="position: inherit;"></span>
206
- </button>
207
- <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-right">
208
- <li v-for="(index,func) in $parent.$parent.$parent.funcs" v-if="$parent.$parent.$parent.$parent.showFunc(func.personexpression)">
209
- <a href="#" @click="$parent.$parent.$parent.$parent.func(func,row)">{{func.title}}</a>
210
- </li>
211
- </ul>
212
- </dropdown>
213
- </td>
214
- </tr>
215
- </template>
216
- </data-grid>
217
- </criteria-paged>
218
- </div>
219
- </template>
220
- <script>
221
- import {HttpResetClass, PagedList} from 'vue-client'
222
- import {isEmpty} from '../../Util'
223
- import Vue from "vue";
224
- export default {
225
- title: '报建业务信息',
226
- props: ['showData'],
227
- data () {
228
- return {
229
- model: new PagedList('rs/sql/checkuserfunction', 20, {
230
- data: {
231
- f_filiale: "榆林."+this.$login.f.orgs
232
- }
233
- }),
234
- funcs: [], // 功能列表
235
- applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')?this.$appdata.getParam('报建类型'):[]],
236
- defnames: isEmpty(this.$appdata.getParam('办理环节')) ? [{label: '全部', value: ''}] : [{label: '全部', value: ''}, ...this.$appdata.getParam('办理环节')], // 流程节点
237
- criteriaShow: false,
238
- sources:[{label: '微信公众号', value: '微信公众号'},{label: '线下发起', value: '线下发起'}],
239
- designerPeoples: this.getDesigner()
240
- }
241
- },
242
- ready () {
243
- // 调用查询
244
- this.search()
245
- },
246
- methods: {
247
- searchCondition (args) {
248
- args.condition = args.condition
249
- if (args.condition.includes('民用报建')) {
250
- args.condition = args.condition.replace('f_apply_type = \'民用报建\'', '(f_apply_type = \'民用报建\' or f_apply_type = \'分户挂表\')');
251
- }
252
- console.log("args.condition",args.condition)
253
- this.model.search(args.condition, args.model)
254
- },
255
- // 查询
256
- search () {
257
- this.$dispatch('search')
258
- },
259
- loadPage () {
260
- this.$dispatch('loadPage')
261
- },
262
- // 获取配置
263
- async checkfuncs (row) {
264
-
265
- this.funcs = []
266
- let functions = JSON.parse(JSON.stringify(this.$function_vue.functions))
267
-
268
- for (const item of functions) {
269
- // 显示类型
270
- if (item.showApplyTypes) {
271
- if (item.showApplyTypes.indexOf(row.f_apply_type) === -1) {
272
- continue
273
- }
274
- }
275
- // 显示节点
276
- if (item.showDefnames) {
277
- if (item.showDefnames.indexOf(row.defname) === -1) {
278
- continue
279
- }
280
- }
281
- // 显示设备
282
- if (item.device && item.device !== 'pc') {
283
- continue
284
- }
285
- this.funcs.push(item)
286
- }
287
- },
288
- // 点击功能操作
289
- func (func, row) {
290
- this.$dispatch('func', func, row)
291
- },
292
- // 权限控制
293
- showFunc (personexpression) {
294
-
295
- if (isEmpty(personexpression)) {
296
- return true
297
- }
298
-
299
- let mark = personexpression.charAt(0)
300
-
301
- let str = personexpression.substring(2, personexpression.length-1)
302
-
303
- if (mark === 'D' && this.$login.f.f_department_name.includes(str)) {
304
- return true
305
- }
306
- if (mark === 'R' && this.$login.f.rolesnames.includes(str)) {
307
- return true
308
- }
309
- if (personexpression.indexOf('RS') === 0) {
310
- for (str of personexpression.substring(3, personexpression.length-1).split(',')) {
311
- if(this.$login.f.rolesnames.includes(str)){
312
- return true
313
- }
314
- }
315
- }
316
- if (mark === 'P' && this.$login.f.id.includes(str)) {
317
- return true
318
- }
319
-
320
- return false
321
- },
322
- async applyTypeChange () {
323
- if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
324
- let http = new HttpResetClass()
325
- let res = await http.load('POST', 'rs/logic/getDefnameByType', {
326
- f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type
327
- },
328
- {resolveMsg: null, rejectMsg: '流程标识获取失败!!!'}
329
- )
330
-
331
- this.defnames = [{label: '全部', value: ''}, ...res.data]
332
- } else {
333
- this.defnames = isEmpty(this.$appdata.getParam('办理环节')) ? [{label: '全部', value: ''}] : [{label: '全部', value: ''}, ...this.$appdata.getParam('办理环节')]
334
- }
335
- },
336
- async getDesigner() {
337
- let http = new HttpResetClass()
338
- let data = {
339
- source: 'this.getParentByType($organization$).getChildByName($设计人员$).getChildren()',
340
- userid: this.$login.f.id
341
- }
342
- http.load('POST', 'rs/search', {
343
- data
344
- }, {resolveMsg: null, rejectMsg: null}).then((res) => {
345
- console.log("ces",res.data.map(item => {
346
- return {
347
- label: item.name,
348
- value: item.name
349
- }
350
- }))
351
- this.designerPeoples = res.data.map(item => {
352
- return {
353
- label: item.name,
354
- value: item.name
355
- }
356
- })
357
- })
358
-
359
- },
360
- clear () {
361
- Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
362
- this.$refs.cp.$refs.cri.model[key] = null
363
- this.$refs.cp.$refs.cri.model.f_apply_type = []
364
- })
365
- }
366
- },
367
- computed: {
368
- },
369
- events: {
370
- }
371
- }
372
- </script>
373
- <style scoped>
374
- </style>
1
+ <template>
2
+ <div>
3
+ <!-- 功能业务 -->
4
+ <criteria-paged :model="model" v-ref:cp>
5
+ <criteria partial='criteria' @condition-changed='$parent.searchCondition' v-ref:cri>
6
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
7
+ <div class="row">
8
+ <div class="form-group col-sm-2">
9
+ <label class="font_normal_body"><strong>工程编号:</strong></label>
10
+ <input type="text" style="width:60%" class="input_search" placeholder='工程编号' v-model="model.f_apply_num"
11
+ v-on:keyup.enter="$parent.$parent.search()"
12
+ condition="f_apply_num like '%{}%'">
13
+ </div>
14
+ <div class="form-group col-sm-2">
15
+ <label class="font_normal_body"><strong>客户名称:</strong></label>
16
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
17
+ v-on:keyup.enter="$parent.$parent.search()" condition="f_user_name like '%{}%'" placeholder='客户名称'>
18
+ </div>
19
+ <div class="form-group col-sm-2">
20
+ <label class="font_normal_body"><strong>联系电话:</strong></label>
21
+ <input type="text" style="width:60%" class="input_search" placeholder='联系电话' v-model="model.f_phone"
22
+ v-on:keyup.enter="$parent.$parent.search()"
23
+ condition="f_phone like '%{}%'">
24
+ </div>
25
+ <div class="form-group col-sm-2">
26
+ <label class="font_normal_body"><strong>联&ensp;系&ensp;人:</strong></label>
27
+ <input type="text" style="width:60%" class="input_search" placeholder='联系人' v-model="model.f_contact"
28
+ v-on:keyup.enter="$parent.$parent.search()"
29
+ condition="f_contact like '%{}%'">
30
+ </div>
31
+ <div class="form-group col-sm-2">
32
+ <label class="font_normal_body"><strong>设计人员:</strong></label>
33
+ <v-select class="select select_list"
34
+ placeholder='设计人员'
35
+ v-model="model.f_designer_people"
36
+ :value.sync="model.f_designer_people"
37
+ :options='$parent.$parent.designerPeoples'
38
+ :value-single="true"
39
+ close-on-select
40
+ condition="f_designer_people = '{}'">
41
+ </v-select>
42
+ </div>
43
+ <div class="form-group col-sm-3 button-range">
44
+ <button class="button_search button_spacing" @click="$parent.$parent.search()" v-el:cx>查询</button>
45
+ <button class="button_search button_spacing" @click="$parent.$parent.loadPage()">返回</button>
46
+ <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
47
+ <div
48
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
49
+ @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"
50
+ class="button_spacing"
51
+ style="float: right">
52
+ </div>
53
+ </div>
54
+ </div>
55
+ <div class="row" v-show="$parent.$parent.criteriaShow">
56
+ <div class="form-group col-sm-2">
57
+ <label class="font_normal_body"><strong>合同编号:</strong></label>
58
+ <input type="text" style="width:60%" class="input_search" placeholder='合同编号' v-model="model.f_contract_number"
59
+ v-on:keyup.enter="$parent.$parent.search()"
60
+ condition="f_contract_number like '%{}%'">
61
+ </div>
62
+ <div class="form-group col-sm-2">
63
+ <label class="font_normal_body"><strong>报建类型:</strong></label>
64
+ <v-select
65
+ v-model="model.f_apply_type"
66
+ placeholder='报建类型'
67
+ condition="f_apply_type in {}"
68
+ :value.sync="model.f_apply_type"
69
+ :options='$parent.$parent.applytype'
70
+ class="select select_list"
71
+ multiple
72
+ @change="$parent.$parent.applyTypeChange()"></v-select>
73
+ </div>
74
+ <div class="form-group col-sm-2">
75
+ <label class="font_normal_body"><strong>办理环节:</strong></label>
76
+ <v-select
77
+ v-model="model.defname"
78
+ placeholder='办理环节'
79
+ condition="defname = '{}'"
80
+ :value.sync="model.defname"
81
+ :options='$parent.$parent.defnames'
82
+ class="select select_list"
83
+ :value-single="true"
84
+ close-on-select ></v-select>
85
+ </div>
86
+ <div class="form-group col-sm-2" v-if="false">
87
+ <label class="font_normal_body"><strong>报建性质:</strong></label>
88
+ <v-select
89
+ v-model="model.f_apply_nature"
90
+ placeholder='报建性质'
91
+ condition="f_apply_nature = '{}'"
92
+ :value.sync="model.f_apply_nature"
93
+ :options='$parent.$parent.applyNatures'
94
+ class="select select_list"
95
+ :value-single="true"
96
+ close-on-select ></v-select>
97
+ </div>
98
+ <div class="form-group col-sm-2">
99
+ <label class="font_normal_body"><strong>用户地址:</strong></label>
100
+ <input type="text" style="width:60%" class="input_search" placeholder='用户地址' v-model="model.f_address"
101
+ v-on:keyup.enter="$parent.$parent.search()"
102
+ condition="f_address like '%{}%'">
103
+ </div>
104
+ <div class="form-group col-sm-2">
105
+ <label for="startDate" class="font_normal_body"><strong>开始时间:</strong></label>
106
+ <datepicker id="startDate" placeholder="开始日期"
107
+ style="width: 60%!important;"
108
+ v-model="model.startDate"
109
+ :value.sync="model.startDate"
110
+ :format="'yyyy-MM-dd 00:00:00'"
111
+ :show-reset-button="true"
112
+ condition="f_apply_date >= '{}'">
113
+ </datepicker>
114
+ </div>
115
+ <div class="form-group col-sm-2">
116
+ <label for="endDate" class="font_normal_body"><strong>结束时间:</strong></label>
117
+ <datepicker id="endDate" placeholder="结束日期"
118
+ style="width: 60%!important;"
119
+ v-model="model.endDate"
120
+ :value.sync="model.endDate"
121
+ :format="'yyyy-MM-dd 23:59:59'"
122
+ :show-reset-button="true"
123
+ condition="f_apply_date <= '{}'">
124
+ </datepicker>
125
+ </div>
126
+ <div class="form-group col-sm-2">
127
+ <label class="font_normal_body"><strong>来&emsp;&emsp;源:</strong></label>
128
+ <v-select
129
+ v-model="model.f_apply_source"
130
+ placeholder='来源'
131
+ condition="u.f_apply_source = '{}'"
132
+ :value.sync="model.f_apply_source"
133
+ :options='$parent.$parent.sources'
134
+ class="select select_list"
135
+ :value-single="true"
136
+ close-on-select >
137
+ </v-select>
138
+ </div>
139
+ </div>
140
+ </div>
141
+ </criteria>
142
+ <data-grid v-if="$parent.showData" :model="model" partial='list' v-ref:grid class="list_area table_sy">
143
+ <template partial='head'>
144
+ <tr class="title">
145
+ <th style="white-space: nowrap;">序号</th>
146
+ <th style="white-space: nowrap;">工程编号</th>
147
+ <th style="white-space: nowrap;">客户名称</th>
148
+ <th style="white-space: nowrap;">联系人</th>
149
+ <th style="white-space: nowrap;">合同编号</th>
150
+ <th style="white-space: nowrap;">电话</th>
151
+ <th style="white-space: nowrap;">地址</th>
152
+ <th style="white-space: nowrap;">来源</th>
153
+ <th style="white-space: nowrap;">报建类型</th>
154
+ <th style="white-space: nowrap;">报建性质</th>
155
+ <th style="white-space: nowrap;">办理环节</th>
156
+ <th style="white-space: nowrap;">流程状态</th>
157
+ <th style="white-space: nowrap;">报建日期</th>
158
+ <th style="white-space: nowrap;">操作</th>
159
+ </tr>
160
+ </template>
161
+ <template partial='body'>
162
+ <tr>
163
+ <td style="text-align: center;">
164
+ <nobr><font>{{$index+1}}</font></nobr>
165
+ </td>
166
+ <td style="text-align: center;">
167
+ <nobr><font>{{row.f_apply_num}}</font></nobr>
168
+ </td>
169
+ <td style="text-align: center;">
170
+ <nobr><font>{{row.f_user_name}}</font></nobr>
171
+ </td>
172
+ <td style="text-align: center;">
173
+ <nobr><font>{{row.f_contact}}</font></nobr>
174
+ </td>
175
+ <td style="text-align: center;">
176
+ <nobr><font>{{row.f_contract_number}}</font></nobr>
177
+ </td>
178
+ <td style="text-align: center;">
179
+ <nobr><font>{{row.f_phone}}</font></nobr>
180
+ </td>
181
+ <td style="text-align: center;">
182
+ <nobr><font>{{row.f_address}}</font></nobr>
183
+ </td>
184
+ <td style="text-align: center;">
185
+ <nobr><font>{{row.f_apply_source}}</font></nobr>
186
+ </td>
187
+ <td style="text-align: center;">
188
+ <nobr><font>{{row.f_apply_type}}</font></nobr>
189
+ </td>
190
+ <td style="text-align: center;">
191
+ <nobr><font>{{row.f_apply_nature}}</font></nobr>
192
+ </td>
193
+ <td style="text-align: center;">
194
+ <nobr><font>{{row.defname}}</font></nobr>
195
+ </td>
196
+ <td style="text-align: center;">
197
+ <nobr><font>{{row.f_sub_state}}</font></nobr>
198
+ </td>
199
+ <td style="text-align: center;">
200
+ <nobr><font>{{row.f_apply_date}}</font></nobr>
201
+ </td>
202
+ <td style="text-align: center;">
203
+ <dropdown>
204
+ <button @click="$parent.$parent.$parent.checkfuncs(row)" type="button" data-toggle="dropdown" style="border: 0px;background: none;">
205
+ <span class="glyphicon glyphicon-th-list" style="position: inherit;"></span>
206
+ </button>
207
+ <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-right">
208
+ <li v-for="(index,func) in $parent.$parent.$parent.funcs" v-if="$parent.$parent.$parent.$parent.showFunc(func.personexpression)">
209
+ <a href="#" @click="$parent.$parent.$parent.$parent.func(func,row)">{{func.title}}</a>
210
+ </li>
211
+ </ul>
212
+ </dropdown>
213
+ </td>
214
+ </tr>
215
+ </template>
216
+ </data-grid>
217
+ </criteria-paged>
218
+ </div>
219
+ </template>
220
+ <script>
221
+ import {HttpResetClass, PagedList} from 'vue-client'
222
+ import {isEmpty} from '../../Util'
223
+ import Vue from "vue";
224
+ export default {
225
+ title: '报建业务信息',
226
+ props: ['showData'],
227
+ data () {
228
+ return {
229
+ model: new PagedList('rs/sql/checkuserfunction', 20, {
230
+ data: {
231
+ f_filiale: "榆林."+this.$login.f.orgs
232
+ }
233
+ }),
234
+ funcs: [], // 功能列表
235
+ applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')?this.$appdata.getParam('报建类型'):[]],
236
+ defnames: isEmpty(this.$appdata.getParam('办理环节')) ? [{label: '全部', value: ''}] : [{label: '全部', value: ''}, ...this.$appdata.getParam('办理环节')], // 流程节点
237
+ criteriaShow: false,
238
+ sources:[{label: '微信公众号', value: '微信公众号'},{label: '线下发起', value: '线下发起'}],
239
+ designerPeoples: this.getDesigner()
240
+ }
241
+ },
242
+ ready () {
243
+ // 调用查询
244
+ this.search()
245
+ },
246
+ methods: {
247
+ searchCondition (args) {
248
+ args.condition = args.condition
249
+ if (args.condition.includes('民用报建')) {
250
+ args.condition = args.condition.replace('f_apply_type = \'民用报建\'', '(f_apply_type = \'民用报建\' or f_apply_type = \'分户挂表\')');
251
+ }
252
+ console.log("args.condition",args.condition)
253
+ this.model.search(args.condition, args.model)
254
+ },
255
+ // 查询
256
+ search () {
257
+ this.$dispatch('search')
258
+ },
259
+ loadPage () {
260
+ this.$dispatch('loadPage')
261
+ },
262
+ // 获取配置
263
+ async checkfuncs (row) {
264
+
265
+ this.funcs = []
266
+ let functions = JSON.parse(JSON.stringify(this.$function_vue.functions))
267
+
268
+ for (const item of functions) {
269
+ // 显示类型
270
+ if (item.showApplyTypes) {
271
+ if (item.showApplyTypes.indexOf(row.f_apply_type) === -1) {
272
+ continue
273
+ }
274
+ }
275
+ // 显示节点
276
+ if (item.showDefnames) {
277
+ if (item.showDefnames.indexOf(row.defname) === -1) {
278
+ continue
279
+ }
280
+ }
281
+ // 显示设备
282
+ if (item.device && item.device !== 'pc') {
283
+ continue
284
+ }
285
+ this.funcs.push(item)
286
+ }
287
+ },
288
+ // 点击功能操作
289
+ func (func, row) {
290
+ this.$dispatch('func', func, row)
291
+ },
292
+ // 权限控制
293
+ showFunc (personexpression) {
294
+
295
+ if (isEmpty(personexpression)) {
296
+ return true
297
+ }
298
+
299
+ let mark = personexpression.charAt(0)
300
+
301
+ let str = personexpression.substring(2, personexpression.length-1)
302
+
303
+ if (mark === 'D' && this.$login.f.f_department_name.includes(str)) {
304
+ return true
305
+ }
306
+ if (mark === 'R' && this.$login.f.rolesnames.includes(str)) {
307
+ return true
308
+ }
309
+ if (personexpression.indexOf('RS') === 0) {
310
+ for (str of personexpression.substring(3, personexpression.length-1).split(',')) {
311
+ if(this.$login.f.rolesnames.includes(str)){
312
+ return true
313
+ }
314
+ }
315
+ }
316
+ if (mark === 'P' && this.$login.f.id.includes(str)) {
317
+ return true
318
+ }
319
+
320
+ return false
321
+ },
322
+ async applyTypeChange () {
323
+ if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
324
+ let http = new HttpResetClass()
325
+ let res = await http.load('POST', 'rs/logic/getDefnameByType', {
326
+ f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type
327
+ },
328
+ {resolveMsg: null, rejectMsg: '流程标识获取失败!!!'}
329
+ )
330
+
331
+ this.defnames = [{label: '全部', value: ''}, ...res.data]
332
+ } else {
333
+ this.defnames = isEmpty(this.$appdata.getParam('办理环节')) ? [{label: '全部', value: ''}] : [{label: '全部', value: ''}, ...this.$appdata.getParam('办理环节')]
334
+ }
335
+ },
336
+ async getDesigner() {
337
+ let http = new HttpResetClass()
338
+ let data = {
339
+ source: 'this.getParentByType($organization$).getChildByName($设计人员$).getChildren()',
340
+ userid: this.$login.f.id
341
+ }
342
+ http.load('POST', 'rs/search', {
343
+ data
344
+ }, {resolveMsg: null, rejectMsg: null}).then((res) => {
345
+ console.log("ces",res.data.map(item => {
346
+ return {
347
+ label: item.name,
348
+ value: item.name
349
+ }
350
+ }))
351
+ this.designerPeoples = res.data.map(item => {
352
+ return {
353
+ label: item.name,
354
+ value: item.name
355
+ }
356
+ })
357
+ })
358
+
359
+ },
360
+ clear () {
361
+ Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
362
+ this.$refs.cp.$refs.cri.model[key] = null
363
+ this.$refs.cp.$refs.cri.model.f_apply_type = []
364
+ })
365
+ }
366
+ },
367
+ computed: {
368
+ },
369
+ events: {
370
+ }
371
+ }
372
+ </script>
373
+ <style scoped>
374
+ </style>