apply-clients 5.0.36 → 5.0.37-2

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 (91) hide show
  1. package/package.json +111 -111
  2. package/src/android.js +1 -1
  3. package/src/apply.js +15 -1
  4. package/src/assets//345/210/240/351/231/244.png +0 -0
  5. package/src/assets//347/224/250/346/210/267/345/234/260/345/235/200.png +0 -0
  6. package/src/assets//347/224/250/346/210/267/345/247/223/345/220/215.png +0 -0
  7. package/src/assets//347/224/250/346/210/267/347/224/265/350/257/235.png +0 -0
  8. package/src/components/app_apply/ApplyApp.vue +6 -6
  9. package/src/components/app_apply/ApplyDownList.vue +18 -16
  10. package/src/components/app_apply/ApplyInfo.vue +2 -2
  11. package/src/components/app_apply/ApplyListUpload.vue +15 -5
  12. package/src/components/app_apply/ApplyToDoList.vue +201 -54
  13. package/src/components/app_apply/ApplyUserInfo.vue +2 -2
  14. package/src/components/app_apply/FieldExploration.vue +0 -1
  15. package/src/components/app_apply/Gongcheng.vue +3631 -0
  16. package/src/components/app_apply/OneToMany.vue +194 -0
  17. package/src/components/app_apply/PlaceControler.vue +230 -189
  18. package/src/components/app_apply/ServiceControl.vue +630 -385
  19. package/src/components/app_apply/ServiceView.vue +44 -17
  20. package/src/components/app_apply/ezhou/FeiMinYongV.vue +109 -0
  21. package/src/components/app_apply/ezhou/FeiMinYongVV.vue +100 -0
  22. package/src/components/app_apply/ezhou/MinYong.vue +92 -0
  23. package/src/components/app_apply/ezhou/ServiceView.vue +745 -0
  24. package/src/components/image/doc.jpg +0 -0
  25. package/src/components/image/dwg.png +0 -0
  26. package/src/components/image/dxf.png +0 -0
  27. package/src/components/image/excel.jpg +0 -0
  28. package/src/components/image/pdf.jpg +0 -0
  29. package/src/components/phone/phoneselect.vue +250 -0
  30. package/src/components/phone/phoneselect2.vue +112 -0
  31. package/src/components/product/Common/ApplyValidateBill.vue +13 -6
  32. package/src/components/product/Common/PrintBill.vue +7 -6
  33. package/src/components/product/EngineeringManagement/EngineerUpload.vue +304 -0
  34. package/src/components/product/EngineeringManagement/EngineeringManagement.vue +137 -0
  35. package/src/components/product/EngineeringManagement/EngineeringSelect.vue +586 -0
  36. package/src/components/product/EngineeringSupervisory/EngineeringApplyStopInfo.vue +281 -0
  37. package/src/components/product/EngineeringSupervisory/EngineeringSupervisoryControl.vue +132 -0
  38. package/src/components/product/EngineeringSupervisory/EngineeringSupervisoryList.vue +340 -0
  39. package/src/components/product/EngineeringSupervisory/EngineeringSupervisoryServiceControl.vue +490 -0
  40. package/src/components/product/Function/InstallInfoSelect.vue +3 -2
  41. package/src/components/product/Function/Service/FunctionServiceControl.vue +37 -1
  42. package/src/components/product/Function/functions/ApplyUpload.vue +556 -0
  43. package/src/components/product/Function/functions/BuyerMessage.vue +1 -1
  44. package/src/components/product/Function/functions/InstallFee.vue +589 -347
  45. package/src/components/product/Function/functions/InstallFeeInfo.vue +6 -1
  46. package/src/components/product/Process/ExplorationSelect.vue +669 -636
  47. package/src/components/product/Process/Processes/CustomerRecordMessage.vue +907 -907
  48. package/src/components/product/Process/Processes/Service/ApplyChargeSearch.vue +126 -39
  49. package/src/components/product/Process/Processes/Service/PaperTicketBill.vue +85 -0
  50. package/src/components/product/Process/Processes/Service/ServiceControl.vue +2200 -1808
  51. package/src/components/product/ServiceView.vue +810 -795
  52. package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +559 -407
  53. package/src/components/product/Supervisory/SupervisoryList.vue +102 -17
  54. package/src/components/product/applyReport/ApplyReport.vue +205 -0
  55. package/src/components/product/applyReport/PrintApplyReport.vue +116 -0
  56. package/src/components/product/stopInfo/ApplyStopInfo.vue +2 -1
  57. package/src/ezhouAndroid.js +48 -0
  58. package/src/index.js +3 -2
  59. package/src/main.js +1 -1
  60. package/src/plugins/commonService.js +11 -7
  61. package/static/newStyle/clear.png +0 -0
  62. package/static/newStyle/fife.png +0 -0
  63. package/static/newStyle/hidden.png +0 -0
  64. package/static/newStyle/label-clear.png +0 -0
  65. package/static/newStyle/left-img.png +0 -0
  66. package/static/newStyle/list_ok.png +0 -0
  67. package/static/newStyle/login-check.png +0 -0
  68. package/static/newStyle/login-con.png +0 -0
  69. package/static/newStyle/login-do.gif +0 -0
  70. package/static/newStyle/login-f.png +0 -0
  71. package/static/newStyle/login-info.png +0 -0
  72. package/static/newStyle/login-left.png +0 -0
  73. package/static/newStyle/login-org.png +0 -0
  74. package/static/newStyle/login-pwd.png +0 -0
  75. package/static/newStyle/login-user.png +0 -0
  76. package/static/newStyle/loginbg.gif +0 -0
  77. package/static/newStyle/loginbg1280.gif +0 -0
  78. package/static/newStyle/loginbg1366.gif +0 -0
  79. package/static/newStyle/loginbg_1.gif +0 -0
  80. package/static/newStyle/searchin.png +0 -0
  81. package/static/newStyle/searchout.png +0 -0
  82. package/static/newStyle/setting.png +0 -0
  83. package/static/newStyle/setting1.png +0 -0
  84. package/static/newStyle/shirk.png +0 -0
  85. package/static/newStyle/stretch_bottom.png +0 -0
  86. package/static/newStyle/stretch_left.png +0 -0
  87. package/static/newStyle/stretch_right.png +0 -0
  88. package/static/newStyle/stretch_top.png +0 -0
  89. package/static/newStyle/system-off.png +0 -0
  90. package/static/newStyle//350/261/252/344/275/263/347/207/203/346/260/224.png +0 -0
  91. package/yarn.lock +0 -8072
@@ -1,636 +1,669 @@
1
- <template>
2
- <div class="d1">
3
- <div class="left col-sm-12">
4
- <criteria-paged :model="model" v-ref:cp>
5
- <criteria partial='criteria' @condition-changed='search' v-ref:cri style="padding: 20px;background-color: #f6f6f6;">
6
- <form novalidate class="" partial>
7
- <div class="col-sm-12">
8
- <div class="col-sm-2">
9
- <label class="col-sm-4 control-label">联&nbsp;&nbsp;系&nbsp;人</label>
10
- <div class="col-sm-8">
11
- <input type="text" class="form-control" placeholder='联系人' v-model="model.f_user_name"
12
- v-on:keyup.enter="search"
13
- condition="f_user_name like '{}%'">
14
- </div>
15
- </div>
16
- <div class="col-sm-2">
17
- <label class="col-sm-4 control-label">项目名称</label>
18
- <div class="col-sm-8">
19
- <input type="text" class="form-control" placeholder='项目名称' v-model="model.f_entry_name"
20
- v-on:keyup.enter="search"
21
- condition="f_entry_name like '{}%'">
22
- </div>
23
- </div>
24
- <div class="col-sm-2">
25
- <label class="col-sm-4 control-label">报建编号</label>
26
- <div class="col-sm-8">
27
- <input type="text" class="form-control" :options="$parent.$parent.fapplytype" placeholder='报建编号' v-model="model.f_apply_num"
28
- v-on:keyup.enter="search"
29
- condition="f_apply_num like '{}%'">
30
- </div>
31
- </div>
32
- <div class="col-sm-2">
33
- <label class="col-sm-4 control-label">用户地址</label>
34
- <div class="col-sm-8">
35
- <input type="text" class="form-control" placeholder='用户地址' v-model="model.f_address"
36
- v-on:keyup.enter="search"
37
- condition="f_address like '{}%'">
38
- </div>
39
- </div>
40
- <div class="col-sm-3 " style="width:30%">
41
- <button class="btn btn-primary btn-sm width-80" type="button" @click="$parent.$parent.searchNow(),$parent.$parent.close()" style="margin-left:5%">
42
- <span class="glyphicon glyphicon-search"></span>{{$parent.$parent.button_name}}
43
- </button>
44
- <button class="btn-primary btn btn-sm" @click.prevent="$parent.$parent.clear()">清空</button>
45
- <button class="btn btn-primary btn-sm" type="button" v-show="$parent.$parent.startFlowonce"
46
- @click="$parent.$parent.addactive('报装申请')">
47
- <span class="glyphicon glyphicon-plus" ></span>报装申请
48
- </button>
49
- <button class="btn btn-primary btn-sm" type="button" v-show="$parent.$parent.startFlowall"
50
- @click="$parent.$parent.addactive('集体报装申请')">
51
- <span class="glyphicon glyphicon-plus" ></span>集体报装申请
52
- </button>
53
- </div>
54
-
55
-
56
- </div>
57
- <div class="col-sm-12 " style="margin-top:5px">
58
- <div class="col-sm-2 form-input-group ">
59
- <label for="startDate" class="control-label" style="width:81px;">开始日期</label>
60
- <datepicker @change="$dispatch('setQueryCondition',model)" id="startDate" placeholder="开始日期"
61
- width='100%'
62
- v-model="model.startDate"
63
- :value.sync="model.startDate"
64
- :format="'yyyy-MM-dd HH:mm:ss'"
65
- :show-reset-button="true"
66
- condition="f_apply_date >= '{}'">
67
- </datepicker>
68
- </div>
69
-
70
- <div class="col-sm-2 ">
71
- <label for="startDate" class="col-sm-4 control-label">终止日期</label>
72
- <div class="col-sm-8">
73
- <datepicker @change="$dispatch('setQueryCondition',model)" id="endDate" placeholder="终止日期"
74
- style="display: block;"
75
- v-model="model.endDate"
76
- :value.sync="model.endDate"
77
- :format="'yyyy-MM-dd HH:mm:ss'"
78
- :show-reset-button="true"
79
- condition="f_apply_date <= '{}'">
80
- </datepicker>
81
- </div>
82
-
83
- </div>
84
- <div class="col-sm-2">
85
- <label class="col-sm-4 control-label">流程状态</label>
86
- <div class="col-sm-8">
87
- <v-select style="min-width: 100%;" @change="$dispatch('setQueryCondition',model)" :options="$parent.$parent.alloptions"
88
- condition="defname = '{}'" placeholder='流程状态'
89
- v-model="model.defname" :value.sync="model.defname" close-on-select>
90
- </v-select>
91
- </div>
92
- </div>
93
- <div class="col-sm-2" >
94
- <label class="col-sm-4 control-label">报建类型</label>
95
- <div class="col-sm-8">
96
- <v-select style="min-width: 100%;" @change="$dispatch('setQueryCondition',model)" :options="[{label:'全部',value:''},{label:'报装申请',value:'报装申请'},{label:'集体报建',value:'集体报建'}]"
97
- condition="f_apply_type = '{}'" placeholder='报建类型' :search="true"
98
- v-model="model.f_apply_type" :value.sync="model.f_apply_type" close-on-select>
99
- </v-select>
100
- </div>
101
- </div>
102
- <div class="col-sm-2" >
103
- <label class="col-sm-4 control-label">业务类型</label>
104
- <div class="col-sm-8">
105
- <v-select style="min-width: 100%;" @change="$dispatch('setQueryCondition',model)" :options="[{label:'全部',value:''},{label:'新报装',value:'新报装'},{label:'改管',value:'改管'}]"
106
- condition="f_work_type = '{}'" placeholder='业务类型'
107
- v-model="model.f_work_type" :value.sync="model.f_work_type" close-on-select>
108
- </v-select>
109
- </div>
110
- </div>
111
-
112
- <div class="col-sm-2" style="float: left">
113
- <label class="col-sm-4 control-label">报装来源</label>
114
- <div class="col-sm-8">
115
- <v-select style="min-width: 100%;" @change="$dispatch('setQueryCondition',model)" :options="[{label:'全部',value:''},{label:'燃气系统',value:'燃气系统'},{label:'微信',value:'微信'}]"
116
- condition="f_apply_source = '{}'" placeholder='报装来源'
117
- v-model="model.f_apply_source" :value.sync="model.f_apply_source" close-on-select>
118
- </v-select>
119
- </div>
120
- </div>
121
-
122
-
123
-
124
- </div>
125
- <div class="col-sm-12 " style="margin-top:5px">
126
- <div class="col-sm-2">
127
- <label class="col-sm-4 control-label ">用户类型</label>
128
- <div class="col-sm-8">
129
- <v-select :options="$parent.$parent.usertype" placeholder='用户类型' condition="f_user_type like '{}'"
130
- :width="100" style="width:100%"
131
- v-model="model.f_user_type" :value.sync="model.f_user_type" close-on-select>
132
- </v-select>
133
- </div>
134
- </div>
135
- </div>
136
-
137
-
138
- <!--<div class="col-sm-1">-->
139
- <!--<button class="btn btn-primary btn-sm" type="button" @click="$parent.$parent.modify()"><span-->
140
- <!--class="glyphicon glyphicon-plus"></span>改装登记-->
141
- <!--</button>-->
142
- <!--</div>-->
143
- <!--</div>-->
144
-
145
- </form>
146
- </criteria>
147
- <data-grid :model="model" partial='list' v-ref:grid class="data-grid" is-fixed='false' style="overflow-x:auto">
148
- <template partial='head'>
149
- <tr class="title">
150
- <th>
151
- <nobr>序号</nobr>
152
- </th>
153
- <th>
154
- <nobr>来源</nobr>
155
- </th>
156
- <th>
157
- <nobr>当前状态</nobr>
158
- </th>
159
- <th>
160
- <nobr>报建编号</nobr>
161
- </th>
162
- <th>
163
- <nobr>业务类型</nobr>
164
- </th>
165
- <th>
166
- <nobr>联系人</nobr>
167
- </th>
168
- <th>
169
- <nobr>项目名称</nobr>
170
- </th>
171
- <th v-if="!this.$login.f.f_fengongsi.includes('中燃')">
172
- <nobr>用户类型</nobr>
173
- </th>
174
- <th>
175
- <nobr>电话</nobr>
176
- </th>
177
- <th>
178
- <nobr>地址</nobr>
179
- </th>
180
- <th>
181
- <nobr>流程状态</nobr>
182
- </th>
183
- <th>
184
- <nobr>报建类型</nobr>
185
- </th>
186
- <th>
187
- <nobr>报建日期</nobr>
188
- </th>
189
- <th>
190
- <nobr>督办信息</nobr>
191
- </th>
192
- <th>
193
- <nobr >申请信息</nobr>
194
- </th>
195
- <th>
196
- <nobr>操作</nobr>
197
- </th>
198
- </tr>
199
- </template>
200
- <template partial='body'>
201
- <tr >
202
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
203
- <nobr><font>{{$index+1}}</font></nobr>
204
- </td>
205
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
206
- <nobr><font>{{row.f_apply_source}}</font></nobr>
207
- </td>
208
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
209
- <nobr><font>{{row.f_sub_state!='完工' ? '未完工' :'完工'}}</font></nobr>
210
- </td>
211
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
212
- <nobr><font>{{row.f_apply_num}}</font></nobr>
213
- </td>
214
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
215
- <nobr><font>{{row.f_work_type}}</font></nobr>
216
- </td>
217
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
218
- <nobr><font>{{row.f_user_name}}</font></nobr>
219
- </td>
220
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
221
- <nobr><font>{{row.f_entry_name}}</font></nobr>
222
- </td>
223
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
224
- <nobr><font>{{row.f_user_type}}</font></nobr>
225
- </td>
226
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
227
- <nobr><font>{{row.f_phone}}</font></nobr>
228
- </td>
229
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
230
- <nobr><font>{{row.f_address}}</font></nobr>
231
- </td>
232
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
233
- <nobr><font>{{row.defname}}</font></nobr>
234
- </td>
235
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
236
- <nobr><font>{{row.f_apply_type}}</font></nobr>
237
- </td>
238
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
239
- <nobr><font>{{row.f_apply_date}}</font></nobr>
240
- </td>
241
- <th >
242
- <nobr v-if="row.f_surpervise_type"><button class="btn btn-danger" @click="$parent.$parent.$parent.stopinfoshow($index)">查看督办信息</button></nobr>
243
- <nobr v-if="!row.f_surpervise_type" >无督办</nobr>
244
- </th>
245
- <th >
246
-
247
- <nobr v-if="row.f_check_state">用户已申请</nobr>
248
- <nobr v-if="!row.f_check_state" >无申请</nobr>
249
- </th>
250
- <td style="text-align: center;">
251
- <dropdown v-if="row.defname != '完工'">
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.check(row)">{{row.defname}}</a>
258
- </li>
259
- </ul>
260
- </dropdown>
261
- </td>
262
- </tr>
263
- </template>
264
- </data-grid>
265
- </criteria-paged>
266
- </div>
267
- <modal :show.sync="showstopinfoflag" v-ref:modal backdrop="false">
268
- <header slot="modal-header" class="modal-header">
269
- <button type="button" class="close" @click="closestopinfo"><span>&times;</span></button>
270
- <h4 class="modal-title">督办信息</h4>
271
- </header>
272
- <article slot="modal-body" class="modal-body">
273
- <p >{{stopremarks}}</p>
274
- </article>
275
- <footer slot="modal-footer" class="modal-footer">
276
- </footer>
277
- </modal>
278
- </div>
279
- </template>
280
- <script>
281
- import * as Util from '../../Util'
282
- import Vue from 'vue'
283
- import {
284
- PagedList
285
- } from 'vue-client'
286
- import getNowDate from '../../getNowDate.js'
287
- import {HttpResetClass} from 'vue-client'
288
- export default {
289
- title: '勘探详情',
290
- data() {
291
- return {
292
- timer: null,
293
- timer1:null,
294
- remindTime:5,//超时提醒时间
295
- isOverNum:0,//报建是否提醒过
296
- model: new PagedList('rs/sql/checkuser', 20, {
297
- data: {
298
- id: this.$login.f.id,
299
- fengongsi: this.$login.f.f_fengongsi
300
- }
301
- }),
302
- fapplytype: this.$appdata.getParam('用户类型'),
303
- applytype: this.$appdata.getParam('报建类型'),
304
- department: this.$appdata.getParam('受理部门'),
305
- derection: this.$appdata.getParam('方向'),
306
- containt: this.$appdata.getParam('工作内容'),
307
- condition: '',
308
- select: '',
309
- alloptions:[],
310
- button_name:"查询",
311
- showstopinfoflag:false,
312
- stopremarks:"",
313
- startFlowonce:true,
314
- startFlowall:true,
315
- usertype: this.$appdata.getParam('用户类型'),
316
- }
317
- },
318
- compiled(){
319
- console.log("开始判断")
320
- },
321
- async ready() {
322
- this.$refs.cp.$refs.cri.model.startDate = Util.toStandardDateString() + ' 00:00:00'
323
- this.$refs.cp.$refs.cri.model.endDate = Util.toStandardDateString() + ' 23:59:59'
324
- await this.getConfig()
325
- let str='报建语音提醒时间'
326
- this.$refs.cp.$refs.cri.search()
327
- str='超时提前提醒时间'
328
- this.loadSingleValue(str)
329
- let self = this
330
- //判断用户是否有权限
331
- this.checkUserOperator();
332
-
333
- },
334
- methods: {
335
- //清空 查询条件项
336
- clear(){
337
- Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
338
- this.$refs.cp.$refs.cri.model[key] = []
339
- })
340
- },
341
- checkUserOperator(){
342
- if(this.$login.r.find(value => value == '报装申请')){
343
- this.startFlowonce=true;
344
- }
345
- if(this.$login.r.find(value => value == '集体报装申请')){
346
- this.startFlowall=true;
347
- }
348
- },
349
- stopinfoshow(index){
350
- this.showstopinfoflag = true;
351
- let remakrs = this.model.rows[index].f_surpervise_info;
352
- console.log(JSON.stringify(remakrs))
353
- console.log(remakrs)
354
-
355
- this.stopremarks= remakrs;
356
- },
357
- closestopinfo(){
358
- this.showstopinfoflag = close;
359
- },
360
- getapplyName(str){
361
- console.log("开始获取所有名")
362
- console.log(JSON.stringify(str.activitys))
363
- let param = [];
364
- // let workflow = JSON.parse(str);
365
- param.push({label:"全部",value:""})
366
- str.activitys.forEach(function(item){
367
- let title = item.title;
368
- console.log(title)
369
- param.push({label:title,value:title});
370
- })
371
- this.alloptions = param;
372
-
373
- },
374
- generateUUID() {
375
- var d = new Date().getTime()
376
- var uuid = 'xxxxxxxx-xxxx-xxxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
377
- var r = (d + Math.random() * 16) % 16 | 0
378
- d = Math.floor(d / 16)
379
- return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16)
380
- })
381
- return uuid
382
- },
383
- searchNow(){
384
- if(this.button_name == "返回"){
385
- this.button_name ="查询";
386
- }
387
- this.$refs.cp.$refs.cri.search()
388
- this.eachFind()
389
- },
390
- async getConfig(){
391
- let http = new HttpResetClass()
392
- await http.load('POST','rs/logic/ApplyGetConfigs', {data:this.$login.f}, {resolveMsg: null, rejectMsg: null}
393
- ).then((res)=>{
394
- if(res.data.code && res.data.code == 200){
395
- Vue.workflow_vue = Vue.prototype.$workflow_vue = res.data.workflow_vue
396
- console.log("$workflow_vue===>"+JSON.stringify(this.$workflow_vue))
397
- this.getapplyName(this.$workflow_vue);
398
- }else{
399
- this.$showMessage('获取报建配置失败,原因:' + res.data.msg)
400
- return
401
- }
402
- })
403
-
404
- },
405
- async addactive(modify) {
406
- this.button_name ="返回"
407
- //await this.getConfig()
408
- this.$workflow_vue.start_activity = modify
409
- let http = new HttpResetClass()
410
- let res = await http.load('POST','rs/logic/ApplyGetProcessID',{data:{filename:this.$workflow_vue.workflow_xmlfilename,start_activity:this.$workflow_vue.start_activity}}, {resolveMsg: null, rejectMsg: '获取流程ID失败,请联系开发人员'})
411
- this.$refs.cp.pager = false
412
- let val = {
413
- defname: this.$workflow_vue.start_activity,
414
- f_process_id: res.data.f_process_id,
415
- f_apply_date: Util.toStandardTimeString(),
416
- f_apply_num: this.generateUUID(),
417
- f_apply_operator_telephone: this.$login.f.f_fgsdianhua
418
- }
419
- // // 如果是改装,将modify装入val
420
- // if(modify){
421
- // modify.f_customer_type = '个人'
422
- // modify.f_apply_type = '改装登记'
423
- // modify.f_phone = modify.f_user_phone
424
- // let temp = modify.f_residential_area
425
- // modify.f_residential_area = modify.f_area
426
- // modify.f_area = temp
427
- // Object.assign(val,modify)
428
- // }
429
-
430
- console.log(112 + JSON.stringify(this.$login.f.f_apply_department))
431
- this.$dispatch('check', val)
432
- this.$dispatch('changeheight')
433
- this.$dispatch('addactive')
434
- },
435
- // 改装申请
436
- modify(){
437
- // 调出改装申请界面
438
- this.$parent.show = false
439
- }
440
- ,
441
- check(val) {
442
- this.button_name="返回"
443
- // if(val.defname.includes("派单")){
444
- // if(val.f_unaccounts_money && parseInt(val.f_unaccounts_money)!=0){
445
- // this.$showAlert('当前用户金额未结余!!!', 'warning', 3000)
446
- // this.button_name ="查询";
447
- // return;
448
- // }
449
- // }
450
- this.$dispatch('check', val)
451
- this.$dispatch('addactive')
452
- }
453
- ,
454
- close() {
455
- this.$dispatch('close')
456
- }
457
- ,
458
- compare(val) {
459
- val === '完工'
460
- console.log('完工', val)
461
- return false
462
- },
463
- // 获取数据
464
- loadSingleValue(str) {
465
- let http = new HttpResetClass()
466
- let data = {
467
- singlename: str,
468
- //预先提醒时间
469
-
470
- }
471
- http.load('POST', 'rs/sql/findsingle', {data: data}, {resolveMsg: null, rejectMsg: '获取语音提醒时间失败'}).then((res) => {
472
- console.log('-----------------进去之前-----------'+JSON.stringify(res))
473
- let flag1=false
474
- let flag2=false
475
- if (res.data.length==0){
476
- flag1=true
477
- console.log('没有单值'+flag1)
478
- flag2=false
479
- }else if (res.data[0].value==0) {
480
- flag2=true
481
- console.log('为0')
482
- flag1=false
483
- }else{
484
- if (str==='报建语音提醒时间'){
485
- this.remindTime = res.data[0].value
486
- }
487
- console.log('为'+res.data[0].value)
488
- flag1=false
489
- flag2=false
490
- }
491
-
492
- if (this.isOverNum==0){
493
- if (flag1){
494
- console.log('不启动定时器')
495
-
496
- }else if (flag2) {
497
- console.log('启动定时器out')
498
- this.setOut()
499
- }else{
500
- console.log('启动定时器timer和out')
501
- this.setTimer()
502
- this.setOut()
503
- }
504
- this.isOverNum++;
505
- } else{
506
- this.isOverNum=0;
507
- }
508
-
509
-
510
- },(res)=>{
511
- //响应错误回调
512
- console.log('响应错误')
513
- })
514
-
515
- },
516
- setTimer() {
517
- if(this.timer == null) {
518
- this.timer = setInterval( () => {
519
- console.log('开始定时...每过5秒执行一次')
520
- this.$refs.cp.$refs.cri.search()
521
- console.log('数据已刷新')
522
- this.eachFind()
523
- console.log('eachfind完毕');
524
- }, 60*1000*this.remindTime)
525
- }
526
- },
527
- setOut() {
528
- if(this.timer1 == null) {
529
- this.timer1 = setTimeout( () => {
530
- console.log('开始setTimeout')
531
- this.eachFind()
532
- console.log('setTimeout完毕');
533
- }, 1000)
534
- }
535
- },
536
- //语音提醒
537
- speckText(str) {
538
- var url= "http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=6&text=" + encodeURI(str);
539
- new Audio(url).play();
540
-
541
- },
542
-
543
- eachFind() {
544
- let arr = this.$refs.cp.$refs.grid.model.rows
545
- let overNumString1=''
546
- let flagNum1=1
547
- let dbflag = 1
548
- let dbinfo = []
549
- let hourfals = 0
550
- let hourstr = ''
551
- for(let val of arr) {
552
- if(val.f_surpervise_type){
553
- dbflag = dbflag+1
554
- dbinfo.push(val.f_user_name)
555
- }
556
- if(val.ishourover =='1'){
557
- hourfals += 1
558
- hourstr+=hourfals+'条'
559
- }
560
- console.log(val.isbeforeover)
561
- if (val.isbeforeover==='预期提醒'){
562
- console.log('flagNUm:'+flagNum1);
563
- if (flagNum1==1){
564
- overNumString1=flagNum1+'条'
565
- flagNum1=flagNum1+1
566
- }else{
567
- overNumString1=overNumString1+'和第'+flagNum1+'条'
568
- flagNum1=flagNum1+1
569
- }
570
- }
571
- }
572
- if(hourfals!=0){
573
- this.speckText('请注意:第:'+overNumString1+'数据一小时后过期')
574
- }
575
- if (flagNum1!=1){
576
- console.log(overNumString1);
577
- this.speckText('请注意:第:'+overNumString1+'数据即将过期')
578
- }
579
- if(dbflag !=1){
580
- this.speckText('请注意: 您有'+dbflag-1+'条数据被督办')
581
- this.$showMessage("用户:"+dbinfo.join(",")+"需要紧急处理!!")
582
- }
583
- console.log('语音播放完毕');
584
- }
585
- },
586
- created: function() {
587
- clearInterval(this.timer)
588
- clearInterval(this.timer1)
589
- this.timer = null
590
- this.timer1 = null
591
- },
592
- beforeDestroy() {
593
- clearInterval(this.timer)
594
- clearInterval(this.timer1)
595
- this.timer = null
596
- this.timer1 = null
597
- },
598
- computed: {
599
- date() {
600
- return getNowDate()
601
- }
602
- ,
603
- selected() {
604
- return this.$refs.cp.$refs.grid.selected
605
- }
606
- }
607
- }
608
- </script>
609
- <style scoped>
610
- label {
611
- display: flex;
612
- justify-content:center;
613
- align-items:Center;
614
- padding-top: 8px;
615
- }
616
- tr.title {
617
- background-color: #6666ff;
618
- }
619
- td{
620
- text-align: center;
621
- }
622
- /* .active{
623
- color: Crimson;
624
- }
625
- .p{
626
- color: green;
627
- }*/
628
-
629
- .p1 {
630
- color: #dc0b12;
631
- font-weight:bold
632
- }
633
- .p {
634
- color: #ffaf4f;
635
- }
636
- </style>
1
+ <template>
2
+ <div class="d1">
3
+ <div class="left col-sm-12">
4
+ <criteria-paged :model="model" v-ref:cp>
5
+ <criteria partial='criteria' @condition-changed='search' v-ref:cri style="padding: 20px;background-color: #f6f6f6;">
6
+ <form novalidate class="" partial>
7
+ <div class="col-sm-12">
8
+ <div class="col-sm-2">
9
+ <label class="col-sm-4 control-label">联&nbsp;&nbsp;系&nbsp;人</label>
10
+ <div class="col-sm-8">
11
+ <input type="text" class="form-control" placeholder='联系人' v-model="model.f_user_name"
12
+ v-on:keyup.enter="search"
13
+ condition="f_user_name like '{}%'">
14
+ </div>
15
+ </div>
16
+ <div class="col-sm-2">
17
+ <label class="col-sm-4 control-label">项目名称</label>
18
+ <div class="col-sm-8">
19
+ <input type="text" class="form-control" placeholder='项目名称' v-model="model.f_entry_name"
20
+ v-on:keyup.enter="search"
21
+ condition="f_entry_name like '{}%'">
22
+ </div>
23
+ </div>
24
+ <div class="col-sm-2">
25
+ <label class="col-sm-4 control-label">报建编号</label>
26
+ <div class="col-sm-8">
27
+ <input type="text" class="form-control" :options="$parent.$parent.fapplytype" placeholder='报建编号' v-model="model.f_apply_num"
28
+ v-on:keyup.enter="search"
29
+ condition="f_apply_num like '{}%'">
30
+ </div>
31
+ </div>
32
+ <div class="col-sm-2">
33
+ <label class="col-sm-4 control-label">用户地址</label>
34
+ <div class="col-sm-8">
35
+ <input type="text" class="form-control" placeholder='用户地址' v-model="model.f_address"
36
+ v-on:keyup.enter="search"
37
+ condition="f_address like '{}%'">
38
+ </div>
39
+ </div>
40
+ <div class="col-sm-3 " style="width:30%">
41
+ <button class="btn btn-primary btn-sm width-80" type="button" @click="$parent.$parent.searchNow(),$parent.$parent.close()" style="margin-left:5%">
42
+ <span class="glyphicon glyphicon-search"></span>{{$parent.$parent.button_name}}
43
+ </button>
44
+ <button class="btn-primary btn btn-sm" @click.prevent="$parent.$parent.clear()">清空</button>
45
+ <button class="btn btn-primary btn-sm" type="button" v-show="$parent.$parent.startFlowonce"
46
+ @click="$parent.$parent.addactive('报装申请')">
47
+ <span class="glyphicon glyphicon-plus" ></span>报装申请
48
+ </button>
49
+ <button class="btn btn-primary btn-sm" type="button" v-show="$parent.$parent.startFlowall"
50
+ @click="$parent.$parent.addactive('集体报装申请')">
51
+ <span class="glyphicon glyphicon-plus" ></span>集体报装申请
52
+ </button>
53
+ </div>
54
+
55
+
56
+ </div>
57
+ <div class="col-sm-12 " style="margin-top:5px">
58
+ <div class="col-sm-2 form-input-group ">
59
+ <label for="startDate" class="control-label" style="width:81px;">开始日期</label>
60
+ <datepicker @change="$dispatch('setQueryCondition',model)" id="startDate" placeholder="开始日期"
61
+ width='100%'
62
+ v-model="model.startDate"
63
+ :value.sync="model.startDate"
64
+ :format="'yyyy-MM-dd HH:mm:ss'"
65
+ :show-reset-button="true"
66
+ condition="f_apply_date >= '{}'">
67
+ </datepicker>
68
+ </div>
69
+
70
+ <div class="col-sm-2 ">
71
+ <label for="startDate" class="col-sm-4 control-label">终止日期</label>
72
+ <div class="col-sm-8">
73
+ <datepicker @change="$dispatch('setQueryCondition',model)" id="endDate" placeholder="终止日期"
74
+ style="display: block;"
75
+ v-model="model.endDate"
76
+ :value.sync="model.endDate"
77
+ :format="'yyyy-MM-dd HH:mm:ss'"
78
+ :show-reset-button="true"
79
+ condition="f_apply_date <= '{}'">
80
+ </datepicker>
81
+ </div>
82
+
83
+ </div>
84
+ <div class="col-sm-2">
85
+ <label class="col-sm-4 control-label">流程状态</label>
86
+ <div class="col-sm-8">
87
+ <v-select style="min-width: 100%;" @change="$dispatch('setQueryCondition',model)" :options="$parent.$parent.alloptions"
88
+ condition="defname = '{}'" placeholder='流程状态'
89
+ v-model="model.defname" :value.sync="model.defname" close-on-select>
90
+ </v-select>
91
+ </div>
92
+ </div>
93
+ <div class="col-sm-2" >
94
+ <label class="col-sm-4 control-label">报建类型</label>
95
+ <div class="col-sm-8">
96
+ <v-select style="min-width: 100%;" @change="$dispatch('setQueryCondition',model)" :options="[{label:'全部',value:''},{label:'报装申请',value:'报装申请'},{label:'集体报建',value:'集体报建'}]"
97
+ condition="f_apply_type = '{}'" placeholder='报建类型' :search="true"
98
+ v-model="model.f_apply_type" :value.sync="model.f_apply_type" close-on-select>
99
+ </v-select>
100
+ </div>
101
+ </div>
102
+ <div class="col-sm-2" >
103
+ <label class="col-sm-4 control-label">业务类型</label>
104
+ <div class="col-sm-8">
105
+ <v-select style="min-width: 100%;" @change="$dispatch('setQueryCondition',model)" :options="[{label:'全部',value:''},{label:'新报装',value:'新报装'},{label:'改管',value:'改管'}]"
106
+ condition="f_work_type = '{}'" placeholder='业务类型'
107
+ v-model="model.f_work_type" :value.sync="model.f_work_type" close-on-select>
108
+ </v-select>
109
+ </div>
110
+ </div>
111
+
112
+ <!-- <div class="col-sm-2" style="float: left">
113
+ <label class="col-sm-4 control-label">报装来源</label>
114
+ <div class="col-sm-8">
115
+ <v-select style="min-width: 100%;" @change="$dispatch('setQueryCondition',model)" :options="$parent.$parent.alloption"
116
+ condition="f_apply_source = '{}'" placeholder='报装来源'
117
+ v-model="model.f_apply_source" :value.sync="model.f_apply_source" close-on-select>
118
+ </v-select>
119
+ </div>
120
+ </div> -->
121
+ <div class="col-sm-2" style="float: left">
122
+ <label class="col-sm-4 control-label">报装来源</label>
123
+ <div class="col-sm-8">
124
+ <v-select style="min-width: 100%;" @change="$dispatch('setQueryCondition',model)" :options="[{label:'住建局',value:'住建局'},{label:'燃气系统',value:'燃气系统'},{label:'电话预约',value:'电话预约'},{label:'微信预约',value:'微信预约'}]"
125
+ condition="f_apply_source = '{}'" placeholder='报装来源'
126
+ v-model="model.f_apply_source" :value.sync="model.f_apply_source" close-on-select>
127
+ </v-select>
128
+ </div>
129
+ </div>
130
+
131
+
132
+ </div>
133
+ <div class="col-sm-12 " style="margin-top:5px">
134
+ <div class="col-sm-2">
135
+ <label class="col-sm-4 control-label ">用户类型</label>
136
+ <div class="col-sm-8">
137
+ <v-select :options="$parent.$parent.usertype" placeholder='用户类型' condition="f_user_type like '{}'"
138
+ :width="100" style="width:100%"
139
+ v-model="model.f_user_type" :value.sync="model.f_user_type" close-on-select>
140
+ </v-select>
141
+ </div>
142
+ </div>
143
+ </div>
144
+
145
+
146
+ <!--<div class="col-sm-1">-->
147
+ <!--<button class="btn btn-primary btn-sm" type="button" @click="$parent.$parent.modify()"><span-->
148
+ <!--class="glyphicon glyphicon-plus"></span>改装登记-->
149
+ <!--</button>-->
150
+ <!--</div>-->
151
+ <!--</div>-->
152
+
153
+ </form>
154
+ </criteria>
155
+ <data-grid :model="model" partial='list' v-ref:grid class="data-grid" is-fixed='false' style="overflow-x:auto">
156
+ <template partial='head'>
157
+ <tr class="title">
158
+ <th>
159
+ <nobr>序号</nobr>
160
+ </th>
161
+ <th>
162
+ <nobr>来源</nobr>
163
+ </th>
164
+ <th>
165
+ <nobr>当前状态</nobr>
166
+ </th>
167
+ <th>
168
+ <nobr>工程编号</nobr>
169
+ </th>
170
+ <th>
171
+ <nobr>报建编号</nobr>
172
+ </th>
173
+ <th>
174
+ <nobr>业务类型</nobr>
175
+ </th>
176
+ <th>
177
+ <nobr>联系人</nobr>
178
+ </th>
179
+ <th>
180
+ <nobr>项目名称</nobr>
181
+ </th>
182
+ <th v-if="!this.$login.f.f_fengongsi.includes('中燃')">
183
+ <nobr>用户类型</nobr>
184
+ </th>
185
+ <th>
186
+ <nobr>电话</nobr>
187
+ </th>
188
+ <th>
189
+ <nobr>地址</nobr>
190
+ </th>
191
+ <th>
192
+ <nobr>流程状态</nobr>
193
+ </th>
194
+ <th>
195
+ <nobr>报建类型</nobr>
196
+ </th>
197
+ <th>
198
+ <nobr>报建日期</nobr>
199
+ </th>
200
+ <th>
201
+ <nobr>督办信息</nobr>
202
+ </th>
203
+ <th>
204
+ <nobr >申请信息</nobr>
205
+ </th>
206
+ <th>
207
+ <nobr>操作</nobr>
208
+ </th>
209
+ </tr>
210
+ </template>
211
+ <template partial='body'>
212
+ <tr >
213
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
214
+ <nobr><font>{{$index+1}}</font></nobr>
215
+ </td>
216
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
217
+ <nobr><font>{{row.f_apply_source}}</font></nobr>
218
+ </td>
219
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
220
+ <nobr><font>{{row.f_sub_state!='完工' ? '未完工' :'完工'}}</font></nobr>
221
+ </td>
222
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
223
+ <nobr><font>{{row.f_project_number}}</font></nobr>
224
+ </td>
225
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
226
+ <nobr><font>{{row.f_apply_num}}</font></nobr>
227
+ </td>
228
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
229
+ <nobr><font>{{row.f_work_type}}</font></nobr>
230
+ </td>
231
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
232
+ <nobr><font>{{row.f_user_name}}</font></nobr>
233
+ </td>
234
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
235
+ <nobr><font>{{row.f_entry_name}}</font></nobr>
236
+ </td>
237
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
238
+ <nobr><font>{{row.f_user_type}}</font></nobr>
239
+ </td>
240
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
241
+ <nobr><font>{{row.f_phone}}</font></nobr>
242
+ </td>
243
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
244
+ <nobr><font>{{row.f_address}}</font></nobr>
245
+ </td>
246
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
247
+ <nobr><font>{{row.defname}}</font></nobr>
248
+ </td>
249
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
250
+ <nobr><font>{{row.f_apply_type}}</font></nobr>
251
+ </td>
252
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
253
+ <nobr><font>{{row.f_apply_date}}</font></nobr>
254
+ </td>
255
+ <th >
256
+ <nobr v-if="row.f_surpervise_type"><button class="btn btn-danger" @click="$parent.$parent.$parent.stopinfoshow($index)">查看督办信息</button></nobr>
257
+ <nobr v-if="!row.f_surpervise_type" >无督办</nobr>
258
+ </th>
259
+ <th >
260
+
261
+ <nobr v-if="row.f_check_state">用户已申请</nobr>
262
+ <nobr v-if="!row.f_check_state" >无申请</nobr>
263
+ </th>
264
+ <td style="text-align: center;">
265
+ <dropdown v-if="row.defname != '完工'">
266
+ <button type="button" data-toggle="dropdown" style="border: 0px;background: none;">
267
+ <span class="glyphicon glyphicon-th-list" style="position: inherit;"></span>
268
+ </button>
269
+ <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-right">
270
+ <li>
271
+ <a href="#" @click="$parent.$parent.$parent.check(row)">{{row.defname}}</a>
272
+ </li>
273
+ </ul>
274
+ </dropdown>
275
+ </td>
276
+ </tr>
277
+ </template>
278
+ </data-grid>
279
+ </criteria-paged>
280
+ </div>
281
+ <modal :show.sync="showstopinfoflag" v-ref:modal backdrop="false">
282
+ <header slot="modal-header" class="modal-header">
283
+ <button type="button" class="close" @click="closestopinfo"><span>&times;</span></button>
284
+ <h4 class="modal-title">督办信息</h4>
285
+ </header>
286
+ <article slot="modal-body" class="modal-body">
287
+ <p >{{stopremarks}}</p>
288
+ </article>
289
+ <footer slot="modal-footer" class="modal-footer">
290
+ </footer>
291
+ </modal>
292
+ </div>
293
+ </template>
294
+ <script>
295
+ import * as Util from '../../Util'
296
+ import Vue from 'vue'
297
+ import {
298
+ PagedList
299
+ } from 'vue-client'
300
+ import getNowDate from '../../getNowDate.js'
301
+ import {HttpResetClass} from 'vue-client'
302
+ export default {
303
+ title: '勘探详情',
304
+ data() {
305
+ return {
306
+ timer: null,
307
+ timer1:null,
308
+ remindTime:5,//超时提醒时间
309
+ isOverNum:0,//报建是否提醒过
310
+ model: new PagedList('rs/sql/checkuser', 20, {
311
+ data: {
312
+ id: this.$login.f.id,
313
+ fengongsi: this.$login.f.f_fengongsi,
314
+ f_product_id: 0
315
+ }
316
+ }),
317
+ fapplytype: this.$appdata.getParam('用户类型'),
318
+ applytype: this.$appdata.getParam('报建类型'),
319
+ department: this.$appdata.getParam('受理部门'),
320
+ derection: this.$appdata.getParam('方向'),
321
+ containt: this.$appdata.getParam('工作内容'),
322
+ condition: '',
323
+ select: '',
324
+ alloptions:[],
325
+ alloption:[],
326
+ button_name:"查询",
327
+ showstopinfoflag:false,
328
+ stopremarks:"",
329
+ startFlowonce:true,
330
+ startFlowall:true,
331
+ usertype: this.$appdata.getParam('用户类型'),
332
+ }
333
+ },
334
+ compiled(){
335
+ console.log("开始判断")
336
+ },
337
+ async ready() {
338
+ this.eachFind();
339
+ this.$refs.cp.$refs.cri.model.startDate = Util.toStandardDateString() + ' 00:00:00'
340
+ this.$refs.cp.$refs.cri.model.endDate = Util.toStandardDateString() + ' 23:59:59'
341
+ await this.getConfig()
342
+ let str='报建语音提醒时间'
343
+ this.$refs.cp.$refs.cri.search()
344
+ str='超时提前提醒时间'
345
+ this.loadSingleValue(str)
346
+ let self = this
347
+ //判断用户是否有权限
348
+ this.checkUserOperator();
349
+ },
350
+ methods: {
351
+ //清空 查询条件项
352
+ clear(){
353
+ Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
354
+ this.$refs.cp.$refs.cri.model[key] = []
355
+ })
356
+ },
357
+ checkUserOperator(){
358
+ if(this.$login.r.find(value => value == '报装申请')){
359
+ this.startFlowonce=true;
360
+ }
361
+ if(this.$login.r.find(value => value == '集体报装申请')){
362
+ this.startFlowall=true;
363
+ }
364
+ },
365
+ stopinfoshow(index){
366
+ this.showstopinfoflag = true;
367
+ let remakrs = this.model.rows[index].f_surpervise_info;
368
+ console.log(JSON.stringify(remakrs))
369
+ console.log(remakrs)
370
+
371
+ this.stopremarks= remakrs;
372
+ },
373
+ closestopinfo(){
374
+ this.showstopinfoflag = close;
375
+ },
376
+ getapplyName(str){
377
+ console.log("开始获取所有名")
378
+ console.log(JSON.stringify(str.activitys))
379
+ let param = [];
380
+ // let workflow = JSON.parse(str);
381
+ param.push({label:"全部",value:""})
382
+ str.activitys.forEach(function(item){
383
+ let title = item.title;
384
+ param.push({label:title,value:title});
385
+ })
386
+ this.alloptions = param;
387
+ },
388
+ generateUUID() {
389
+ var d = new Date().getTime()
390
+ var uuid = 'xxxxxxxx-xxxx-xxxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
391
+ var r = (d + Math.random() * 16) % 16 | 0
392
+ d = Math.floor(d / 16)
393
+ return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16)
394
+ })
395
+ return uuid
396
+ },
397
+ searchNow(){
398
+ if(this.button_name == "返回"){
399
+ this.button_name ="查询";
400
+ }
401
+ this.$refs.cp.$refs.cri.search()
402
+ this.eachFind()
403
+ },
404
+ async getConfig(){
405
+ let http = new HttpResetClass()
406
+ await http.load('POST','rs/logic/ApplyGetConfigs', {data:this.$login.f}, {resolveMsg: null, rejectMsg: null}
407
+ ).then((res)=>{
408
+ if(res.data.code && res.data.code == 200){
409
+ Vue.workflow_vue = Vue.prototype.$workflow_vue = res.data.workflow_vue
410
+ console.log("$workflow_vue===>"+JSON.stringify(this.$workflow_vue))
411
+ this.getapplyName(this.$workflow_vue);
412
+ }else{
413
+ this.$showMessage('获取报建配置失败,原因:' + res.data.msg)
414
+ return
415
+ }
416
+ })
417
+
418
+ },
419
+ async addactive(modify) {
420
+ // 动态获取报装来源
421
+ // let ces = [];
422
+ // http.load('POST', 'rs/sql/findParameter').then((res) => {
423
+ // console.log("这是报装来源:" + res.name)
424
+ // res.forEach(function(res){
425
+ // ces.push({label:res.name,value:res.name});
426
+ // })
427
+ // this.alloption = ces;
428
+ // })
429
+ this.button_name ="返回"
430
+ var workflow_xmlfilename='鄂州报建流程'
431
+ if(this.$login.f.filialenames === '迪泰天然气' && modify==='集体报装申请'){
432
+ workflow_xmlfilename = '鄂州报建流程迪泰'
433
+ }else{
434
+ workflow_xmlfilename = '鄂州报建流程'
435
+ }
436
+ //await this.getConfig()
437
+ this.$workflow_vue.start_activity = modify
438
+ let http = new HttpResetClass()
439
+ let res = await http.load('POST','rs/logic/ApplyGetProcessID',{data:{filename:workflow_xmlfilename,start_activity:this.$workflow_vue.start_activity}}, {resolveMsg: null, rejectMsg: '获取流程ID失败,请联系开发人员'})
440
+ this.$refs.cp.pager = false
441
+ debugger
442
+ let val = {
443
+ defname: this.$workflow_vue.start_activity,
444
+ f_process_id: res.data.f_process_id,
445
+ f_apply_date: Util.toStandardTimeString(),
446
+ f_apply_num: this.generateUUID(),
447
+ f_apply_operator_telephone: this.$login.f.f_fgsdianhua,
448
+ f_product_id: res.data.f_product_id
449
+ }
450
+ // // 如果是改装,将modify装入val
451
+ // if(modify){
452
+ // modify.f_customer_type = '个人'
453
+ // modify.f_apply_type = '改装登记'
454
+ // modify.f_phone = modify.f_user_phone
455
+ // let temp = modify.f_residential_area
456
+ // modify.f_residential_area = modify.f_area
457
+ // modify.f_area = temp
458
+ // Object.assign(val,modify)
459
+ // }
460
+
461
+ console.log(112 + JSON.stringify(this.$login.f.f_apply_department))
462
+ this.$dispatch('check', val)
463
+ this.$dispatch('changeheight')
464
+ this.$dispatch('addactive')
465
+ },
466
+ // 改装申请
467
+ modify(){
468
+ // 调出改装申请界面
469
+ this.$parent.show = false
470
+ }
471
+ ,
472
+ check(val) {
473
+ this.button_name="返回"
474
+ // if(val.defname.includes("派单")){
475
+ // if(val.f_unaccounts_money && parseInt(val.f_unaccounts_money)!=0){
476
+ // this.$showAlert('当前用户金额未结余!!!', 'warning', 3000)
477
+ // this.button_name ="查询";
478
+ // return;
479
+ // }
480
+ // }
481
+ this.$dispatch('check', val)
482
+ this.$dispatch('addactive')
483
+ }
484
+ ,
485
+ close() {
486
+ this.$dispatch('close')
487
+ }
488
+ ,
489
+ compare(val) {
490
+ val === '完工'
491
+ console.log('完工', val)
492
+ return false
493
+ },
494
+ // 获取数据
495
+ loadSingleValue(str) {
496
+ let http = new HttpResetClass()
497
+ let data = {
498
+ singlename: str,
499
+ //预先提醒时间
500
+
501
+ }
502
+ http.load('POST', 'rs/sql/findsingle', {data: data}, {resolveMsg: null, rejectMsg: '获取语音提醒时间失败'}).then((res) => {
503
+ console.log('-----------------进去之前-----------'+JSON.stringify(res))
504
+ let flag1=false
505
+ let flag2=false
506
+ if (res.data.length==0){
507
+ flag1=true
508
+ console.log('没有单值'+flag1)
509
+ flag2=false
510
+ }else if (res.data[0].value==0) {
511
+ flag2=true
512
+ console.log('为0')
513
+ flag1=false
514
+ }else{
515
+ if (str==='报建语音提醒时间'){
516
+ this.remindTime = res.data[0].value
517
+ }
518
+ console.log('为'+res.data[0].value)
519
+ flag1=false
520
+ flag2=false
521
+ }
522
+
523
+ if (this.isOverNum==0){
524
+ if (flag1){
525
+ console.log('不启动定时器')
526
+
527
+ }else if (flag2) {
528
+ console.log('启动定时器out')
529
+ this.setOut()
530
+ }else{
531
+ console.log('启动定时器timer和out')
532
+ this.setTimer()
533
+ this.setOut()
534
+ }
535
+ this.isOverNum++;
536
+ } else{
537
+ this.isOverNum=0;
538
+ }
539
+
540
+
541
+ },(res)=>{
542
+ //响应错误回调
543
+ console.log('响应错误')
544
+ })
545
+
546
+ },
547
+ setTimer() {
548
+ if(this.timer == null) {
549
+ this.timer = setInterval( () => {
550
+ console.log('开始定时...每过5秒执行一次')
551
+ this.$refs.cp.$refs.cri.search()
552
+ console.log('数据已刷新')
553
+ this.eachFind()
554
+ console.log('eachfind完毕');
555
+ }, 60*1000*this.remindTime)
556
+ }
557
+ },
558
+ setOut() {
559
+ if(this.timer1 == null) {
560
+ this.timer1 = setTimeout( () => {
561
+ console.log('开始setTimeout')
562
+ this.eachFind()
563
+ console.log('setTimeout完毕');
564
+ }, 1000)
565
+ }
566
+ },
567
+ //语音提醒
568
+ speckText(str) {
569
+ var url= "http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=6&text=" + encodeURI(str);
570
+ new Audio(url).play();
571
+
572
+ },
573
+
574
+ eachFind() {
575
+ let arr = this.$refs.cp.$refs.grid.model.rows
576
+ let overNumString1=''
577
+ let flagNum1=1
578
+ let dbflag = 1
579
+ let dbinfo = []
580
+ let hourfals = 0
581
+ let hourstr = ''
582
+ for(let val of arr) {
583
+ if(val.f_surpervise_type){
584
+ dbflag = dbflag+1
585
+ dbinfo.push(val.f_user_name)
586
+ }
587
+ if(val.ishourover =='1'){
588
+ hourfals += 1
589
+ hourstr+=hourfals+'条'
590
+ }
591
+ console.log(val.isbeforeover)
592
+ if (val.isbeforeover==='预期提醒'){
593
+ console.log('flagNUm:'+flagNum1);
594
+ if (flagNum1==1){
595
+ overNumString1=flagNum1+'条'
596
+ flagNum1=flagNum1+1
597
+ }else{
598
+ overNumString1=overNumString1+'和第'+flagNum1+'条'
599
+ flagNum1=flagNum1+1
600
+ }
601
+ }
602
+ }
603
+ if(hourfals!=0){
604
+ this.speckText('请注意:第:'+overNumString1+'数据一小时后过期')
605
+ this.$showMessage("请注意:第:" + overNumString1 + "数据一小时后过期")
606
+ }
607
+ if (flagNum1!=1){
608
+ console.log(overNumString1);
609
+ this.speckText('请注意:第:'+overNumString1+'数据即将过期')
610
+ this.$showMessage("请注意:第:" + overNumString1 + "数据即将过期")
611
+ }
612
+ if(dbflag !=1){
613
+ this.speckText('请注意: 您有'+dbflag-1+'条数据被督办')
614
+ this.$showMessage("用户:"+dbinfo.join(",")+"需要紧急处理!!")
615
+ }
616
+ console.log('语音播放完毕');
617
+ }
618
+ },
619
+ created: function() {
620
+ clearInterval(this.timer)
621
+ clearInterval(this.timer1)
622
+ this.timer = null
623
+ this.timer1 = null
624
+ },
625
+ beforeDestroy() {
626
+ clearInterval(this.timer)
627
+ clearInterval(this.timer1)
628
+ this.timer = null
629
+ this.timer1 = null
630
+ },
631
+ computed: {
632
+ date() {
633
+ return getNowDate()
634
+ }
635
+ ,
636
+ selected() {
637
+ return this.$refs.cp.$refs.grid.selected
638
+ }
639
+ }
640
+ }
641
+ </script>
642
+ <style scoped>
643
+ label {
644
+ display: flex;
645
+ justify-content:center;
646
+ align-items:Center;
647
+ padding-top: 8px;
648
+ }
649
+ tr.title {
650
+ background-color: #6666ff;
651
+ }
652
+ td{
653
+ text-align: center;
654
+ }
655
+ /* .active{
656
+ color: Crimson;
657
+ }
658
+ .p{
659
+ color: green;
660
+ }*/
661
+
662
+ .p1 {
663
+ color: #dc0b12;
664
+ font-weight:bold
665
+ }
666
+ .p {
667
+ color: #ffaf4f;
668
+ }
669
+ </style>