safecheck-client 3.0.35-gongyi → 3.0.35-gongyi-3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,972 +1,972 @@
1
- <style scoped>
2
- .bg {
3
- background-color: blue;
4
- height: 1px;
5
- border: 0;
6
- }
7
- .app-row {
8
- background-color: white;
9
- padding: 10px 10px 0 10px;
10
- border-bottom: 1px solid rgba(235, 235, 235, 0.5);
11
- }
12
- .search_input {
13
- border: 0;
14
- outline: none;
15
- }
16
- .font{
17
- font: 15px PingFang-SC-Medium;
18
- color: #666666;
19
- }
20
- .input-font{
21
- font: 15px PingFang-SC-Medium;
22
- color: #333333;
23
- }
24
- .btn-font{
25
- font:600 16px PingFang-SC-Bold;
26
- color: #499EDF;
27
- }
28
- .btn-color{
29
- background-color: #FFFFFF;
30
- border-radius: 10px ;
31
- border: 1px solid #499EDF;
32
- }
33
- .app-text {
34
- font-size: 12px;
35
- }
36
- .panel-self{
37
- border-radius: 10px;
38
- border:1px solid #499EDF;
39
- background-color: #F8F8F8;
40
- }
41
- .yybtn-color{
42
- background-color:#499edf;
43
- border-radius: 4px ;
44
- border: 1px solid #499EDF;
45
- color: #FFFFFF;
46
- font: 14px PingFang-SC-Bold;
47
- }
48
- .qxbtn-color{
49
- background-color: #FFFFFF;
50
- border-radius: 4px ;
51
- color: #499edf;
52
- font: 14px PingFang-SC-Bold;
53
- border: 1px solid #499EDF;
54
- }
55
-
56
- .button_shrink_top {width: 35px; height: 35px; background-size:100%;background-image: url("../../../static/newStyle/stretch_top.png")}
57
- .button_shrink_bottom {width: 35px; height: 35px; background-size:100%;background-image: url("../../../static/newStyle/stretch_bottom.png")}
58
- .button_shrink_left {width: 35px; height: 35px; background-size:100%;background-image: url("../../../static/newStyle/stretch_left.png")}
59
- .button_shrink_right {width: 35px; height: 35px; background-size:100%;background-image: url("../../../static/newStyle/stretch_right.png")}
60
- </style>
61
-
62
- <template>
63
- <div style="height: auto;width: 100%">
64
- <criteria-paged :model="model" v-ref:paged>
65
- <criteria partial='criteria' @condition-changed='search' v-ref:cri>
66
- <div partial>
67
- <form>
68
- <div class="row app-row">
69
- <!--小区名称-->
70
- <v-select :value.sync="model.f_residential_area"
71
- class="input-font"
72
- :options='$parent.$parent.residentialAreaOptions'
73
- placeholder='小区名称'
74
- :width="'32.5%'"
75
- v-model="model.f_residential_area"
76
- condition="ti.f_residential_area = '{}'"
77
- @change="$parent.$parent.getbuilds"
78
- close-on-select clear-button>
79
- </v-select>
80
- <!--楼栋-->
81
- <v-select :value.sync="model.f_building"
82
- class="input-font"
83
- :options='$parent.$parent.buildOptions'
84
- placeholder='楼栋'
85
- :width="'32.5%'"
86
- v-model="model.f_building"
87
- condition="ti.f_building = '{}'"
88
- @change="$parent.$parent.getUnits"
89
- close-on-select clear-button>
90
- </v-select>
91
- <!--单元-->
92
- <v-select :value.sync="model.f_unit"
93
- class="input-font"
94
- :options='$parent.$parent.unitOptions'
95
- placeholder='单元'
96
- :width="'32.5%'"
97
- v-model="model.f_unit"
98
- condition="ti.f_unit = '{}'"
99
- close-on-select clear-button>
100
- </v-select>
101
- </div>
102
- <div class="row app-row">
103
- <div class="col-xs-4">
104
- <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
105
- <label for="f_userinfo_code" class="font text-left">用户编号:</label>
106
- </div>
107
- <div class="col-xs-8" >
108
- <input id="f_userinfo_code" class="search_input input-font"
109
- v-model=model.f_userinfo_code condition="f_userinfo_code like '%{}%'" />
110
- </div>
111
- </div>
112
- <div class="row app-row">
113
- <div class="col-xs-4">
114
- <img src="../../assets/用户姓名.png" style="width: 20px;margin-bottom: 5px" alt="">
115
- <label class="font text-left">用户姓名:</label>
116
- </div>
117
- <div class="col-xs-8" >
118
- <input class="search_input input-font" v-model=model.f_user_name condition="f_user_name like '%{}%'" />
119
- </div>
120
- </div>
121
-
122
- <div class="row app-row">
123
- <div class="col-xs-4">
124
- <img src="../../assets/安检状态.png" style="width: 20px;margin-bottom: 5px" alt="">
125
- <label class="font text-left">用户证号:</label>
126
- </div>
127
- <div class="col-xs-8" >
128
- <input class="search_input input-font" v-model=model.f_enter_number condition="f_enter_number like '%{}%'" />
129
- </div>
130
- </div>
131
-
132
- <div class="row app-row" v-if="$parent.$parent.criteriaShow">
133
- <div class="col-xs-4">
134
- <img src="../../assets/安检状态.png" style="width: 20px;margin-bottom: 5px" alt="">
135
- <label for="f_plan_name" class="font text-left">计划名称:</label>
136
- </div>
137
- <v-select
138
- id="f_plan_name"
139
- :value.sync="model.f_plan_name"
140
- class="input-font"
141
- :options='$parent.$parent.planNameOptions'
142
- placeholder='计划名称'
143
- :width="'60%'"
144
- v-model="model.f_plan_name"
145
- condition="f_plan_name like '%{}%'"
146
- close-on-select clear-button>
147
- </v-select>
148
- </div>
149
-
150
- <div class="row app-row" v-if="$parent.$parent.criteriaShow">
151
- <div class="col-xs-4">
152
- <img src="../../assets/是否已检.png" style="width: 20px;margin-bottom: 5px" alt="">
153
- <label for="f_state" class="font text-left">是否已检:</label>
154
- </div>
155
- <v-select id="f_state"
156
- :value.sync="model.f_state"
157
- class="input-font"
158
- :options='$parent.$parent.check_states'
159
- placeholder='是否已检'
160
- :width="'60%'"
161
- v-model="model.f_state"
162
- condition="f_state='{}'"
163
- close-on-select clear-button>
164
- </v-select>
165
- </div>
166
-
167
-
168
-
169
- <!--<div class="row app-row">-->
170
- <!--<div class="col-xs-4">-->
171
- <!--<img src="../../assets/shijian.png" style="width: 20px;margin-bottom: 5px" alt="">-->
172
- <!--<label for="f_plan_year" class="font text-left">计划年份:</label>-->
173
- <!--</div>-->
174
- <!--<div class="col-xs-8" >-->
175
- <!--<input id="f_plan_year" class="search_input input-font"-->
176
- <!--v-model="model.f_plan_year" condition="f_plan_year = '{}'" />-->
177
- <!--</div>-->
178
- <!--</div>-->
179
- <!--<div class="row app-row">-->
180
- <!--<div class="col-xs-4">-->
181
- <!--<img src="../../assets/shijian.png" style="width: 20px;margin-bottom: 5px" alt="">-->
182
- <!--<label for="f_plan_month" class="font text-left">计划月份:</label>-->
183
- <!--</div>-->
184
- <!--<div class="col-xs-8" >-->
185
- <!--<input id="f_plan_month" class="search_input input-font"-->
186
- <!--v-model="model.f_plan_month" condition="f_plan_month = '{}'" />-->
187
- <!--</div>-->
188
- <!--</div>-->
189
-
190
- <div class="row app-row" v-if="$parent.$parent.criteriaShow">
191
- <div class="col-xs-4">
192
- <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
193
- <label class="font text-left">表&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;号:</label>
194
- </div>
195
- <div class="col-xs-8" >
196
- <input class="search_input input-font"
197
- v-model=model.f_meter_no condition="f_meter_no like '%{}%'" />
198
- </div>
199
- </div>
200
-
201
- <div class="row app-row" v-if="$parent.$parent.criteriaShow">
202
- <div class="col-xs-4">
203
- <img src="../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
204
- <label class="font text-left">用户地址:</label>
205
- </div>
206
- <div class="col-xs-8" >
207
- <input class="search_input input-font"
208
- v-model=model.f_keyword condition="f_address like '%{}%'" />
209
- </div>
210
- </div>
211
- <div class="row app-row" v-if="$parent.$parent.criteriaShow">
212
- <div class="col-xs-4">
213
- <img src="../../assets/用户类型.png" style="width: 20px;margin-bottom: 5px" alt="">
214
- <label for="f_user_type" class="font text-left">用户类型:</label>
215
- </div>
216
- <v-select id="f_user_type" :value.sync="model.f_user_type" class="input-font"
217
- :width="'60%'"
218
- :options='$parent.$parent.user_types' placeholder='请选择用户类型'
219
- v-model="model.f_user_type" condition="f_user_type='{}'" close-on-select clear-button></v-select>
220
- </div>
221
- <div class="row app-row" v-if="$parent.$parent.criteriaShow">
222
- <div class="col-xs-6" style="text-align: center">
223
- <span class="font text-left">待办{{$parent.$parent.upcomingCount}}条</span>
224
- </div>
225
- <div class="col-xs-6" style="text-align: center">
226
- <span class="font text-left">已办{{$parent.$parent.doneCount}}条</span>
227
- </div>
228
- <div class="col-xs-6" style="text-align: center">
229
- <span class="font text-left">临时保存{{$parent.$parent.tempSaveCount}}条</span>
230
- </div>
231
- <div class="col-xs-6" style="text-align: center">
232
- <span class="font text-left">总共{{$parent.$parent.allPlanCount}}条</span>
233
- </div>
234
- </div>
235
-
236
- <div class="row text-center" style="margin-top: 20px;">
237
- <button type="button" class="btn btn-lg btn-font btn-color" style="width: 25%;" @click="$parent.$parent.selfSearch">查询</button>
238
- <button type="button" class="btn btn-lg btn-font btn-color" style="width: 25%; margin-left: 10px" @click="$parent.$parent.queryplanmany">转发</button>
239
- <div style="float: right;margin-right: 3% " class="button_spacing" :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}" @click="$parent.$parent.hidden()"></div>
240
- <img style="float: right;margin-right: 3% " @click="$parent.$parent.getNewOrder" src="../../assets/shuaxindaiban1.png" style="width: 40px;padding: 5px; float:right">
241
- </div>
242
- <div class="col-sm-12">
243
-
244
- </div>
245
- <!--<div class="row app-btn">-->
246
- <!--<button class="btn btn-primary col-xs-6" type="button" @click="search"><span class="glyphicon glyphicon-search" style="margin-right: 20px;">查询</span></button>-->
247
- <!--</div>-->
248
- <div style="height:30px;"></div>
249
- </form>
250
- </div>
251
- </criteria>
252
- <list :model="model" partial='list'>
253
- <div partial>
254
- <div class="auto app-text" style="margin-top: 5px;">
255
- <div class="panel" style="padding: 10px 10px 5px 10px;">
256
- <div class="panel-body panel-self">
257
-
258
- <div class="col-xs-12">
259
- <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户编号:</b></p>
260
- <p class="panel-title col-xs-5 text-left input-font" style="width: 74%">{{ row.f_userinfo_code }}</p>
261
- <p class="panel-title col-xs-2 text-left input-font" style="width: 5%;float:right">
262
- <input type="checkbox" @click="$parent.$parent.$parent.setPlanParam(row.id, $event)"/>
263
- </p>
264
- </div>
265
- <div class="col-xs-12">
266
- <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户名称:</b></p>
267
- <p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{ row.f_user_name }}</p>
268
- </div>
269
- <div class="col-xs-6">
270
- <p class="panel-title col-xs-5 text-left font"><b>用户类型:</b></p>
271
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_user_type }}
272
- </p>
273
- </div>
274
- <div class="col-xs-6">
275
- <p class="panel-title col-xs-5 text-left font"><b>计划名称:</b></p>
276
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_plan_name }}</p>
277
- </div>
278
- <!-- <div class="col-xs-6">-->
279
- <!-- <p class="panel-title col-xs-5 text-left font"><b>小区名称:</b></p>-->
280
- <!-- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_residential_area }}</p>-->
281
- <!-- </div>-->
282
- <div class="col-xs-12">
283
- <p class="panel-title text-left font" style="width: 23%;float: left"><b>用户电话:</b></p>
284
- <p class="panel-title text-left input-font" style="width: 77%">{{ row.f_user_phone2 ? row.f_user_phone2 : row.f_user_phone }}
285
- <img src="../../assets/phone.png" style="width: 6%" v-on:click.stop.prevent='$parent.$parent.$parent.makeAPhoneCall(row.f_user_phone2 ? row.f_user_phone2 : row.f_user_phone)'></img>
286
- </p>
287
- </div>
288
-
289
- <div class="col-xs-12">
290
- <p class="panel-title text-left font" style="width: 21%;float: left"><b>用户地址:</b></p>
291
- <p class="panel-title text-left input-font" style="width: 79%">{{ row.f_address }}</p>
292
- </div>
293
-
294
- <!-- <div class="row">-->
295
- <!-- <p class="panel-title col-xs-4 text-left font">计划年份</p>-->
296
- <!-- <p class="panel-title col-xs-8 text-left input-font">{{ row.f_plan_year }}</p>-->
297
- <!-- </div>-->
298
- <!-- <div class="row">-->
299
- <!-- <p class="panel-title col-xs-4 text-left font">计划月份</p>-->
300
- <!-- <p class="panel-title col-xs-8 text-left input-font">{{ row.f_plan_month }}</p>-->
301
- <!-- </div>-->
302
- <!-- <div class="row">-->
303
- <!-- <p class="panel-title col-xs-4 text-left font">预约时间</p>-->
304
- <!-- <p class="panel-title col-xs-8 text-left input-font">{{ row.f_prearranged_date }}</p>-->
305
- <!-- </div>-->
306
- <!--<div class="row">-->
307
- <!--<p class="panel-title col-xs-4 text-left font">上次安检状态</p>-->
308
- <!--<p class="panel-title col-xs-8 text-left input-font">{{ row.f_last_check_state }}</p>-->
309
- <!--</div>-->
310
- <div class="col-xs-6">
311
- <p class="panel-title col-xs-5 text-left font"><b>安检状态:</b></p>
312
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_state == '已检'?'临时保存':row.f_state }}</p>
313
- </div>
314
- <div class="col-xs-6">
315
- <p class="panel-title col-xs-5 text-left font"><b>上传状态:</b></p>
316
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_upload_state }}</p>
317
- </div>
318
- <div class="col-xs-6">
319
- <p class="panel-title col-xs-5 text-left font"><b>安检类型:</b></p>
320
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_safecheck_type }}</p>
321
- </div>
322
- <!--<div class="col-xs-12">-->
323
- <!--<p class="panel-title col-xs-5 text-left font"><b>送气期限:</b></p>-->
324
- <!--<p class="panel-title col-xs-7 text-left input-font">{{timeSet(row.f_issue_time)}}</p>-->
325
- <!--</div>-->
326
- <div class="col-xs-12">
327
- <button type="button" name="button" class="btn btn-primary" style="background-color:#499edf;float: right" @click="$parent.$parent.$parent.inspect(row)">处理</button>
328
- <button type="button" name="button" class="btn btn-primary" style="background-color:#499edf;float: right;margin-right:10px;" @click="$parent.$parent.$parent.queryplan(row.id)">转发</button>
329
- <!--<button type="button" class="btn btn-default" @click="$parent.$parent.$parent.ceshi">确认2</button>-->
330
- </div>
331
- <!-- <div class="row text-right" v-show="row.f_upload_state != '已传'" >-->
332
- <!-- <button type="button" class="btn yybtn-color" v-on:click.stop.prevent='$parent.$parent.$parent.reserve($index)'>预约</button>&nbsp;-->
333
- <!-- <button type="button" class="btn qxbtn-color" v-if ='row.f_prearranged_date'-->
334
- <!-- v-on:click.stop.prevent='$parent.$parent.$parent.cancelReserve($index, row.id)'>取消预约</button>-->
335
- <!-- </div>-->
336
- </div>
337
- </div>
338
- </div>
339
- </div>
340
- </list>
341
- </criteria-paged>
342
- <modal :show.sync="showModal">
343
- <div slot="modal-header" class="modal-header">
344
- <h4 class="modal-title">
345
- 选择预约时间
346
- </h4>
347
- </div>
348
- <div slot="modal-body" class="modal-body">
349
- <input type="datetime-local" v-model="f_preset_dt">
350
- </div>
351
- <div slot="modal-footer" class="modal-footer">
352
- <button type="button" class="btn btn-default" @click="genuineReserve">确认</button>
353
- </div>
354
- </modal>
355
- <!--<back-page :need-back='true' @flag="$back()"></back-page>-->
356
- <modal :show.sync="showModal2" v-ref:modal>
357
- <div slot="modal-header" class="modal-header">
358
- <h4 class="modal-title">
359
- 选择计划
360
- </h4>
361
- </div>
362
- <div slot="modal-body" class="modal-body">
363
- <div class="col-xs-12">
364
-
365
- <div class="col-xs-4">
366
- <v-select :value.sync="check" v-model='check'
367
- :value-single="true"
368
- class="select_list select"
369
- :options='checkers' placeholder='安检员'
370
- close-on-select width="100%"></v-select>
371
- </div>
372
-
373
- <div class="col-xs-1">
374
- <!--<label style="font-size:20px;line-height: 35px">人员 </label>-->
375
- </div>
376
- <div class="col-xs-4" style="padding-left: 2px">
377
- <input class="select-style" placeholder="计划名称" type="text" v-model="plan" style="border: 1px solid #93B2D3;height:34px;width: 100%;line-height: 35px"/>
378
- </div>
379
- <div class="col-xs-1" >
380
- <!--<label style="font-size: 20px;line-height: 35px">计划</label>-->
381
- </div>
382
- <!--<input placeholder="安检员" type="text" v-model="check" style="height:30px;width: 100px"/>-->
383
- <div class="col-xs-2" style="float: right">
384
- <button type="button" class="btn btn-primary" @click="plansearch" style="background-color:#499edf;float: right;margin-right:10px;border: 1px solid #93B2D3;height:34px;width: 100%;line-height: 1px;padding-left: 12px">查询</button>
385
- </div>
386
- </div>
387
- <table class="table table_sy">
388
- <thead>
389
- <tr>
390
- <th style="width: 30px"></th>
391
- <th style="font-family: 'Adobe 黑体 Std R'">计划名称</th>
392
- </tr>
393
- </thead>
394
- <tbody>
395
- <tr v-for="row in planoption">
396
- <td @click="select(row, $index)" >{{row.selected==true ? '☆' : '&nbsp;&nbsp;&nbsp;&nbsp;'}}</td>
397
- <td @click="select(row, $index)" style="text-align: center">{{row.label}}</td>
398
-
399
-
400
- </tr>
401
- </tbody>
402
- </table>
403
- </div>
404
- <div slot="modal-footer" class="modal-footer">
405
- <button class="btn btn-default" @click="isok()">确认</button>
406
- <button class="btn btn-default" @click="iscancel()">取消</button>
407
- </div>
408
- </modal>
409
- <modal :show.sync="showModal3" v-ref:modal>
410
- <div slot="modal-header" class="modal-header">
411
- <h4 class="modal-title">
412
- 选择计划
413
- </h4>
414
- </div>
415
- <div slot="modal-body" class="modal-body">
416
- <div class="col-xs-12">
417
-
418
- <div class="col-xs-4">
419
- <v-select :value.sync="check" v-model='check'
420
- :value-single="true"
421
- class="select_list select"
422
- :options='checkers' placeholder='安检员'
423
- close-on-select width="100%"></v-select>
424
- </div>
425
-
426
- <div class="col-xs-1">
427
- <!--<label style="font-size:20px;line-height: 35px">人员 </label>-->
428
- </div>
429
- <div class="col-xs-4" style="padding-left: 2px">
430
- <input class="select-style" placeholder="计划名称" type="text" v-model="plan" style="border: 1px solid #93B2D3;height:34px;width: 100%;line-height: 35px"/>
431
- </div>
432
- <div class="col-xs-1" >
433
- <!--<label style="font-size: 20px;line-height: 35px">计划</label>-->
434
- </div>
435
- <!--<input placeholder="安检员" type="text" v-model="check" style="height:30px;width: 100px"/>-->
436
- <div class="col-xs-2" style="float: right">
437
- <button type="button" class="btn btn-primary" @click="plansearch" style="background-color:#499edf;float: right;margin-right:10px;border: 1px solid #93B2D3;height:34px;width: 100%;line-height: 1px;padding-left: 12px">查询</button>
438
- </div>
439
- </div>
440
- <table class="table table_sy">
441
- <thead>
442
- <tr>
443
- <th style="width: 30px"></th>
444
- <th style="font-family: 'Adobe 黑体 Std R'">计划名称</th>
445
- </tr>
446
- </thead>
447
- <tbody>
448
- <tr v-for="row in planoption">
449
- <td @click="select(row, $index)" >{{row.selected==true ? '☆' : '&nbsp;&nbsp;&nbsp;&nbsp;'}}</td>
450
- <td @click="select(row, $index)" style="text-align: center">{{row.label}}</td>
451
-
452
-
453
- </tr>
454
- </tbody>
455
- </table>
456
- </div>
457
- <div slot="modal-footer" class="modal-footer">
458
- <button class="btn btn-default" @click="manyisok()">确认</button>
459
- <button class="btn btn-default" @click="iscancel()">取消</button>
460
- </div>
461
- </modal>
462
- </div>
463
-
464
- </template>
465
-
466
- <script>
467
- import LocalPagedList from '../../plugins/LocalPagedList'
468
- import Vue from 'vue'
469
- import { PagedList,HttpResetClass } from 'vue-client'
470
- import * as Util from '../Util'
471
- import co from 'co'
472
- let select = function * (self) {
473
- let http = new HttpResetClass()
474
- http.load('POST', `${self.$androidUtil.getProxyUrl()}/rs/search`, {
475
- source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))',
476
- userid: Vue.user.id
477
- }, {resolveMsg: null, rejectMsg: null}).then((res) => {
478
- console.log('获取安检员', res)
479
- self.checkers.push({label:'全部',value:''})
480
- res.data.forEach((checker)=>{
481
- self.checkers.push({label:checker.name,value:checker.id})
482
- })
483
- })
484
- }
485
- export default {
486
- title: '无计划安检查询',
487
- data() {
488
- return {
489
- f_filialeids:'('+Vue.user.orgid+')',
490
- //f_filialeids:'(305)',
491
- planparam:[],
492
- check:'',
493
- plan:'',
494
- planid:'',
495
- model:Vue.android? new LocalPagedList('androidGetuserinfo',20,{condition:'this.condition'}): new PagedList( 'AndroidRest/rs/sql/androidGetuserinfo',20,{condition:'this.condition'}),
496
- showModal: false,
497
- showModal2:false,
498
- showModal3:false,
499
- needid:'',
500
- criteriaShow: false,
501
- planoption:[],
502
- condition:'',
503
- checkers:[],
504
- param: null,
505
- f_preset_dt : Util.to3339TimeString(),
506
- flow_direction:[
507
- {label: '请选择挂表方式', value: ''},
508
- {label: '左表', value: '左表'},
509
- {label: '右表', value: '右表'}
510
- ],
511
- check_states: [
512
- {label: '请选择安检状态', value: ''},
513
- {label: '未检', value: '未检'},
514
- {label: '临时保存', value: '已检'},
515
- ],
516
- last_check_states: [
517
- {label: '请选择上次安检状态', value: ''},
518
- {label: '入户', value: '入户'},
519
- {label: '拒检', value: '拒检'},
520
- {label: '到访不遇', value: '到访不遇'},
521
- {label: '未使用天然气', value: '未使用天然气'}
522
- ],
523
- upload_states: [
524
- {label: '请选择上传状态', value: ''},
525
- {label: '未传', value: '未传'},
526
- {label: '已传', value: '已传'}
527
- ],
528
- user_types: [
529
- {label: '请选择用户类型', value: ''},
530
- {label: '民用', value: '民用'},
531
- {label: '非民用', value: '非民用'},
532
- ],
533
- verify_state: [
534
- {label: '请选择审核状态', value: ''},
535
- {label: '未审核', value: '未审核'},
536
- {label: '打回', value: '打回'}
537
- ],
538
- residentialAreaOptions: [],
539
- buildOptions: [],
540
- unitOptions: [],
541
- planNameOptions: [],
542
- upcomingCount: 0,
543
- doneCount: 0,
544
- tempSaveCount: 0,
545
- allPlanCount: 0
546
- }
547
- },
548
- ready(){
549
- this.getAllArea()
550
- this.getAllPlanName()
551
- this.selfSearch()
552
- let gen = select(this)
553
- co(gen)
554
- },
555
- mounted(){
556
- console.log('66666监听返回事件')
557
- if (window.history && window.history.pushState) {
558
- history.pushState(null, null, document.URL);
559
- window.addEventListener('popstate', this.fun, false);//false阻止默认事件
560
- }
561
- },
562
- destroyed(){
563
- console.log('页面销毁 取消监听')
564
- window.removeEventListener('popstate', this.fun, false);//false阻止默认事件
565
- },
566
- methods: {
567
- fun () {
568
- console.log('111111111111')
569
- console.log('监听手机返回')
570
- },
571
- iscancel(){
572
- this.showModal2=false
573
- this.showModal3=false
574
- this.planoption=[]
575
- },
576
- timeSet(val){
577
- return val
578
- },
579
- async isok(){
580
- if(this.planoption.length==0){
581
- this.$showMessage("请选择计划")
582
- return false
583
- }
584
- for (let i = 0; i <this.planoption.length ; i++) {
585
- if (this.planoption[i]["selected"]==true){
586
- this.planid=this.planoption[i].value
587
- break
588
- }
589
- }
590
- if(this.planid==''){
591
- this.$showMessage("请选择计划")
592
- return false
593
- }
594
- await this.okput()
595
- },
596
- async manyisok(){
597
- if(this.planoption.length==0){
598
- this.$showMessage("请选择计划")
599
- return false
600
- }
601
- for (let i = 0; i <this.planoption.length ; i++) {
602
- if (this.planoption[i]["selected"]==true){
603
- this.planid=this.planoption[i].value
604
- break
605
- }
606
- }
607
- if(this.planid==''){
608
- this.$showMessage("请选择计划")
609
- return false
610
- }
611
- await this.manyokput()
612
- },
613
- changenull(){
614
- this.showModal2=false
615
- this.showModal3=false
616
- this.planoption=[]
617
- this.plan=''
618
- this.check=''
619
- },
620
- async okput(){
621
- let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/logic/UpCheckPlanItem`, {data:{
622
-
623
- condition:`it.id='`+this.needid+`'`,
624
- f_plan_id:this.planid,
625
- switchCheckAll:false,
626
- checkAll:false,
627
- f_operator:Vue.user.name
628
- }
629
- })
630
- await this.changenull()
631
- await this.getNewOrder()
632
- },
633
- async manyokput(){
634
- let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/logic/UpCheckPlanItem`, {data:{
635
- columnName:"it.id",
636
- condition:"1=1",
637
- f_plan_id:this.planid,
638
- switchCheckAll:true,
639
- param:this.planparam,
640
- checkAll:false,
641
- f_operator:Vue.user.name
642
- }
643
- })
644
- await this.changenull()
645
- await this.getNewOrder()
646
- },
647
- async plansearch(){
648
- this.planoption=[]
649
- let condition=`f_checker_id=`+this.check+` and f_plan_name like '%`+this.plan+`%'`
650
- if (!this.check){
651
- condition=`f_plan_name like '%`+this.plan+`%'`
652
- }
653
- let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/预约计划下发`, {data:{
654
- condition:condition,
655
- f_filialeids:this.f_filialeids,
656
- groupitem:'',
657
- orderitem:'id'
658
- }})
659
- let resoult=res.data
660
- for (let i = 0; i < resoult.length; i++) {
661
- this.planoption.push({label: resoult[i].f_plan_name,selected:false, value: resoult[i].id})
662
- }
663
- },
664
-
665
- select(row, idx) {
666
- this.$set('planoption[' + idx + '].selected', true)
667
- for (let i = 0; i <this.planoption.length ; i++) {
668
- if (i!=idx){
669
- this.planoption[i]["selected"]=false
670
- }
671
- }
672
- },
673
- planclose(){
674
- this.showModal2=false
675
- this.showModal3=false
676
- },
677
- queryplan(val){
678
- this.needid=val
679
- this.showModal2 = true
680
- },
681
- queryplanmany(){
682
-
683
- this.showModal3 = true
684
- },
685
- reload(){
686
- this.getAllArea()
687
- this.getAllPlanName()
688
- this.selfSearch()
689
- },
690
- cancelReserve (idx, id) {
691
- if(Vue.android){
692
- let res = this.$androidUtil.bzLogic('BookingCheck', {dt: '', id: id})
693
- this.$set('model.rows[' + idx + '].f_prearranged_date', null)
694
- if (res.code == 200) {
695
- this.$showMessage("取消预约成功")
696
- }
697
- }else {
698
- this.$androidUtil.bzLogic('PCbookingCheck', {dt: '', id: id}).then((repanse) => {
699
- this.$set('model.rows[' + idx + '].f_prearranged_date', null)
700
- if (repanse.data.code == 200) {
701
- alert("取消预约成功!")
702
- }
703
- })
704
- }},
705
- genuineReserve () {
706
- if(Vue.android){
707
- if (!this.f_preset_dt) {
708
- this.$showMessage('请选择一个日期')
709
- return
710
- }
711
- let pdt = this.f_preset_dt.replace('T', ' ')
712
- let respanse = this.$androidUtil.bzLogic('BookingCheck', {id: this.model.rows[this.param].id, dt: pdt})
713
- this.$set('model.rows[' + this.param + '].f_prearranged_date', pdt)
714
- if(respanse.code == 200) {
715
- this.$showMessage("预约成功!")
716
- }
717
- this.showModal = false
718
- }else {
719
- if (!this.f_preset_dt) {
720
- alert('请选择一个日期')
721
- return
722
- }
723
- let pdt = this.f_preset_dt.replace('T', ' ')
724
- this.$androidUtil.bzLogic('PCbookingCheck', {id: this.model.rows[this.param].id, dt: pdt}).then((res) => {
725
- this.$set('model.rows[' + this.param + '].f_prearranged_date', pdt)
726
- if(res.data.code == 200) {
727
- alert("预约成功!")
728
- }
729
- this.showModal = false
730
- })
731
- }
732
- },
733
- inspect(row) {
734
- var _this = this
735
- console.log('进入inspect')
736
- if (row.f_upload_state == '未传' || (row.f_upload_state == '已传' && row.f_state == '未检' && row.f_no_checkplan != '无计划安检' ) ) {
737
- _this.$resetpost(`${_this.$androidUtil.getProxyUrl()}/rs/sql/查询计划项表信息`, {data: {f_userid: row.f_userinfoid}},{resolveMsg: null,rejectMsg: null}).then((response) => {
738
- console.log(JSON.stringify(response))
739
- row['f_plan_meters'] = response.data
740
- var pardate = {
741
- _this:_this,
742
- title:'安全检查',
743
- safe:true
744
- }
745
- _this.$dispatch('gotoson',pardate)
746
- console.log('进入safecheck-order-v')
747
- _this.$goto('safecheck-order-v', {f_plan_id: row.f_plan_id, item: row, role: 'inspect',parentPage:'CurrentCreate'}, 'self', _this.reload)
748
- }).catch ((msg)=>{
749
- this.$showMessage("网络异常,请检查网络后再试!")
750
- })
751
- }else{
752
- this.$showMessage("该安检单已被上传!")
753
- }
754
- },
755
- makeAPhoneCall(phoneNumber) {
756
- this.$androidUtil.makeAPhoneCall(phoneNumber)
757
- },
758
- reserve (idx) {
759
- this.param = idx
760
- this.showModal = true
761
- },
762
- search(args) {
763
- this.model.rows = []
764
- this.model.search(args.condition, args.model)
765
- },
766
- selfSearch () {
767
- this.getPlanCount()
768
- let condition = ""
769
- if(this.$refs.paged.$refs.cri.model.f_residential_area)
770
- condition += " and ti.f_residential_area like '%"+this.$refs.paged.$refs.cri.model.f_residential_area+"%'"
771
- if(this.$refs.paged.$refs.cri.model.f_building)
772
- condition += " and ti.f_building like '%"+this.$refs.paged.$refs.cri.model.f_building+"%'"
773
- if(this.$refs.paged.$refs.cri.model.f_unit)
774
- condition += " and ti.f_unit like '%"+this.$refs.paged.$refs.cri.model.f_unit+"%'"
775
- if(this.$refs.paged.$refs.cri.model.f_plan_name)
776
- condition += " and f_plan_name like '%"+this.$refs.paged.$refs.cri.model.f_plan_name +"%'"
777
- // if(this.$refs.paged.$refs.cri.model.f_plan_year)
778
- // condition += " and f_plan_year = '"+this.$refs.paged.$refs.cri.model.f_plan_year +"'"
779
- // if(this.$refs.paged.$refs.cri.model.f_plan_month)
780
- // condition += " and f_plan_month = '"+this.$refs.paged.$refs.cri.model.f_plan_month +"'"
781
- if(this.$refs.paged.$refs.cri.model.f_userinfo_code)
782
- condition += " and ti.f_userinfo_code like '%"+this.$refs.paged.$refs.cri.model.f_userinfo_code+"%'"
783
- if(this.$refs.paged.$refs.cri.model.f_keyword)
784
- condition += " and ti.f_address like '%"+this.$refs.paged.$refs.cri.model.f_keyword+"%'"
785
- if(this.$refs.paged.$refs.cri.model.f_user_name)
786
- condition += " and ti.f_user_name like '%"+this.$refs.paged.$refs.cri.model.f_user_name+"%'"
787
- if(this.$refs.paged.$refs.cri.model.f_state[0])
788
- condition += " and ti.f_state='"+this.$refs.paged.$refs.cri.model.f_state[0]+"'"
789
- // if(this.$refs.paged.$refs.cri.model.f_last_state[0])
790
- // condition += " and ti.f_last_check_state='"+this.$refs.paged.$refs.cri.model.f_last_state[0]+"'"
791
- if(this.$refs.paged.$refs.cri.model.f_user_type[0])
792
- condition += " and ti.f_user_type='"+this.$refs.paged.$refs.cri.model.f_user_type[0]+"'"
793
- if(this.$refs.paged.$refs.cri.model.f_meter_no)
794
- condition += " and tm.f_meter_no like '%"+this.$refs.paged.$refs.cri.model.f_meter_no+"%'"
795
- // if(this.$refs.paged.$refs.cri.model.f_flow_direction[0])
796
- // condition += " and tm.f_flow_direction = '"+this.$refs.paged.$refs.cri.model.f_flow_direction[0]+"'"
797
-
798
- if(this.$refs.paged.$refs.cri.model.f_enter_number)
799
- condition += " and ti.f_enter_number like '%"+this.$refs.paged.$refs.cri.model.f_enter_number+"%'"
800
-
801
- console.log('condition ===> '+ condition)
802
- this.model.search("((f_complete = '' or f_complete = null or f_complete = '未完成') or (f_state = '未检')) and ti.f_no_checkplan = '有计划安检'" + condition)
803
- },
804
- getNewOrder(){
805
- HostApp.__this__ = this
806
- HostApp.logicWithHint({
807
- // logic别名,key必须为logic
808
- 'logic': 'SafeCheckServiceTimeOut',
809
- // 回调执行方法名,key必须为callback
810
- 'callback': 'javascript:HostApp.__this__.getNewOrderCallBack()',
811
- // logic执行需要的业务参数
812
- 'data': {params: ''},
813
- // 固定key,代表是否将logic执行结果作为参数传入回调方法,1代表true,0代表false,
814
- // 执行回调方法传入key为backresult
815
- // 如需额外拼接参数,写在logic返回值的params,例如xxlogic返回:{"params": "success"}
816
- 'backresult': 1
817
- })
818
- },
819
- getNewOrderCallBack() {
820
- this.selfSearch()
821
- this.getAllArea()
822
- this.getAllPlanName()
823
- },
824
- hidden() {
825
- this.criteriaShow = !this.criteriaShow
826
- },
827
- getAllArea(){
828
- this.residentialAreaOptions = []
829
- this.buildOptions = []
830
- this.unitOptions = []
831
- this.$refs.paged.$refs.cri.model.f_residential_area = ''
832
- this.$refs.paged.$refs.cri.model.f_building = ''
833
- this.$refs.paged.$refs.cri.model.f_unit = ''
834
- let criteria = {
835
- items: 'f_residential_area',
836
- tablename: 't_check_plan_item',
837
- condition: `f_residential_area IS NOT NULL AND f_residential_area != '' AND f_state <> '已检'`,
838
- groupitem: 'f_residential_area'
839
- }
840
- let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
841
- console.log('result ===> ' + JSON.stringify(result))
842
- if(result.code == 200){
843
- result.data.rows.forEach(item => this.residentialAreaOptions.push({label:item.f_residential_area,value:item.f_residential_area}))
844
- }
845
- console.log('this.residentialAreaOptions ===> ' + JSON.stringify(this.residentialAreaOptions))
846
- },
847
- getbuilds(f_residential_area){
848
- console.log('f_residential_area ===> ' + JSON.stringify(f_residential_area))
849
- this.buildOptions = []
850
- this.unitOptions = []
851
- this.$refs.paged.$refs.cri.model.f_building = ''
852
- this.$refs.paged.$refs.cri.model.f_unit = ''
853
- if(!f_residential_area){
854
- return
855
- }
856
- let criteria = {
857
- items: 'f_building',
858
- tablename: 't_check_plan_item',
859
- condition: `f_building IS NOT NULL AND f_building != '' AND f_state <> '已检' AND f_residential_area = '${f_residential_area}'`,
860
- groupitem: 'f_building'
861
- }
862
- let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
863
- if(result.code == 200){
864
- result.data.rows.forEach(item => this.buildOptions.push({label:item.f_building,value:item.f_building}))
865
- }
866
- console.log('this.buildOptions ===> ' + JSON.stringify(this.buildOptions))
867
- },
868
- getUnits(f_building){
869
- f_building = f_building[0]
870
- console.log('f_building ===> ' + JSON.stringify(f_building))
871
- this.unitOptions = []
872
- this.$refs.paged.$refs.cri.model.f_unit = ''
873
- if(!f_building){
874
- return
875
- }
876
- let criteria = {
877
- items: 'f_unit',
878
- tablename: 't_check_plan_item',
879
- condition: `f_unit IS NOT NULL AND f_unit != '' AND f_state <> '已检' AND f_residential_area = '${this.$refs.paged.$refs.cri.model.f_residential_area}' AND f_building = '${f_building}'`,
880
- groupitem: 'f_unit'
881
- }
882
- let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
883
- if(result.code == 200){
884
- result.data.rows.forEach(item => this.unitOptions.push({label:item.f_unit,value:item.f_unit}))
885
- }
886
- console.log('this.unitOptions ===> ' + JSON.stringify(this.unitOptions))
887
- },
888
- getPlanCount(){
889
- this.upcomingCount = 0
890
- this.tempSaveCount = 0
891
- this.doneCount = 0
892
- this.allPlanCount = 0
893
- if(this.$refs.paged.$refs.cri.model.f_plan_name)
894
- condition += " and f_plan_name like '%"+this.$refs.paged.$refs.cri.model.f_plan_name +"%'"
895
- let criteria = {
896
- items: 'count(id) count',
897
- tablename: 't_check_plan_item it left join t_check_plan cp on it.f_plan_id=cp.id',
898
- condition: `f_state = '未检'`+this.$refs.paged.$refs.cri.model.f_plan_name?` and f_plan_name='${this.$refs.paged.$refs.cri.model.f_plan_name}'`:'',
899
- groupitem: 'f_state'
900
- }
901
- let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
902
- if(result.code && result.code == 200){
903
- if(result.data.rows[0] && !isNaN(result.data.rows[0].count)) {
904
- this.upcomingCount = result.data.rows[0].count
905
- }
906
- }
907
- criteria = {
908
- items: 'count(id) count',
909
- tablename: 't_check_plan_item it left join t_check_plan cp on it.f_plan_id=cp.id',
910
- condition: `(f_complete = '' or f_complete = null or f_complete = '未完成') AND f_state = '已检'`+this.$refs.paged.$refs.cri.model.f_plan_name?` and f_plan_name='${this.$refs.paged.$refs.cri.model.f_plan_name}'`:'',
911
- groupitem: 'f_state'
912
- }
913
- result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
914
- if(result.code && result.code == 200){
915
- if(result.data.rows[0] && !isNaN(result.data.rows[0].count)){
916
- this.tempSaveCount = result.data.rows[0].count
917
- }
918
- }
919
- criteria = {
920
- items: 'count(id) count',
921
- tablename: 't_check_plan_item it left join t_check_plan cp on it.f_plan_id=cp.id',
922
- condition: `f_complete = '已完成' AND f_state = '已检'`+this.$refs.paged.$refs.cri.model.f_plan_name?` and f_plan_name='${this.$refs.paged.$refs.cri.model.f_plan_name}'`:'',
923
- groupitem: 'f_state'
924
- }
925
- result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
926
- if(result.code && result.code == 200){
927
- if(result.data.rows[0] && !isNaN(result.data.rows[0].count)){
928
- this.doneCount = result.data.rows[0].count
929
- }
930
- }
931
- this.allPlanCount = this.upcomingCount + this.tempSaveCount + this.doneCount
932
-
933
- console.log('this.upcomingCount ===> ' + this.upcomingCount)
934
- console.log('this.tempSaveCount ===> ' + this.tempSaveCount)
935
- console.log('this.doneCount ===> ' + this.doneCount)
936
- console.log('this.allPlanCount ===> ' + this.allPlanCount)
937
- },
938
- getAllPlanName(){
939
- this.planNameOptions = []
940
- this.$refs.paged.$refs.cri.model.f_plan_name = ''
941
- let criteria = {
942
- items: 'f_plan_name',
943
- tablename: 't_check_plan',
944
- condition: `f_plan_name IS NOT NULL AND f_plan_name != ''`,
945
- groupitem: 'f_plan_name'
946
- }
947
- let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
948
- console.log('result ===> ' + JSON.stringify(result))
949
- if(result.code == 200){
950
- result.data.rows.forEach(item => this.planNameOptions.push({label:item.f_plan_name,value:item.f_plan_name}))
951
- }
952
- console.log('this.planNameOptions ===> ' + JSON.stringify(this.planNameOptions))
953
- },
954
- setPlanParam(detailsType, event) {
955
- if (event.srcElement.checked) {
956
- this.planparam.push(detailsType)
957
- console.log(this.planparam)
958
- } else {
959
- if(this.planparam.length>0){
960
- let planid= this.planparam.findIndex((value) => {
961
- return value === detailsType
962
- })
963
- this.planparam.splice(planid, 1)
964
- console.log(this.planparam)
965
-
966
- }
967
-
968
- }
969
- }
970
- }
971
- }
972
- </script>
1
+ <style scoped>
2
+ .bg {
3
+ background-color: blue;
4
+ height: 1px;
5
+ border: 0;
6
+ }
7
+ .app-row {
8
+ background-color: white;
9
+ padding: 10px 10px 0 10px;
10
+ border-bottom: 1px solid rgba(235, 235, 235, 0.5);
11
+ }
12
+ .search_input {
13
+ border: 0;
14
+ outline: none;
15
+ }
16
+ .font{
17
+ font: 15px PingFang-SC-Medium;
18
+ color: #666666;
19
+ }
20
+ .input-font{
21
+ font: 15px PingFang-SC-Medium;
22
+ color: #333333;
23
+ }
24
+ .btn-font{
25
+ font:600 16px PingFang-SC-Bold;
26
+ color: #499EDF;
27
+ }
28
+ .btn-color{
29
+ background-color: #FFFFFF;
30
+ border-radius: 10px ;
31
+ border: 1px solid #499EDF;
32
+ }
33
+ .app-text {
34
+ font-size: 12px;
35
+ }
36
+ .panel-self{
37
+ border-radius: 10px;
38
+ border:1px solid #499EDF;
39
+ background-color: #F8F8F8;
40
+ }
41
+ .yybtn-color{
42
+ background-color:#499edf;
43
+ border-radius: 4px ;
44
+ border: 1px solid #499EDF;
45
+ color: #FFFFFF;
46
+ font: 14px PingFang-SC-Bold;
47
+ }
48
+ .qxbtn-color{
49
+ background-color: #FFFFFF;
50
+ border-radius: 4px ;
51
+ color: #499edf;
52
+ font: 14px PingFang-SC-Bold;
53
+ border: 1px solid #499EDF;
54
+ }
55
+
56
+ .button_shrink_top {width: 35px; height: 35px; background-size:100%;background-image: url("../../../static/newStyle/stretch_top.png")}
57
+ .button_shrink_bottom {width: 35px; height: 35px; background-size:100%;background-image: url("../../../static/newStyle/stretch_bottom.png")}
58
+ .button_shrink_left {width: 35px; height: 35px; background-size:100%;background-image: url("../../../static/newStyle/stretch_left.png")}
59
+ .button_shrink_right {width: 35px; height: 35px; background-size:100%;background-image: url("../../../static/newStyle/stretch_right.png")}
60
+ </style>
61
+
62
+ <template>
63
+ <div style="height: auto;width: 100%">
64
+ <criteria-paged :model="model" v-ref:paged>
65
+ <criteria partial='criteria' @condition-changed='search' v-ref:cri>
66
+ <div partial>
67
+ <form>
68
+ <div class="row app-row">
69
+ <!--小区名称-->
70
+ <v-select :value.sync="model.f_residential_area"
71
+ class="input-font"
72
+ :options='$parent.$parent.residentialAreaOptions'
73
+ placeholder='小区名称'
74
+ :width="'32.5%'"
75
+ v-model="model.f_residential_area"
76
+ condition="ti.f_residential_area = '{}'"
77
+ @change="$parent.$parent.getbuilds"
78
+ close-on-select clear-button>
79
+ </v-select>
80
+ <!--楼栋-->
81
+ <v-select :value.sync="model.f_building"
82
+ class="input-font"
83
+ :options='$parent.$parent.buildOptions'
84
+ placeholder='楼栋'
85
+ :width="'32.5%'"
86
+ v-model="model.f_building"
87
+ condition="ti.f_building = '{}'"
88
+ @change="$parent.$parent.getUnits"
89
+ close-on-select clear-button>
90
+ </v-select>
91
+ <!--单元-->
92
+ <v-select :value.sync="model.f_unit"
93
+ class="input-font"
94
+ :options='$parent.$parent.unitOptions'
95
+ placeholder='单元'
96
+ :width="'32.5%'"
97
+ v-model="model.f_unit"
98
+ condition="ti.f_unit = '{}'"
99
+ close-on-select clear-button>
100
+ </v-select>
101
+ </div>
102
+ <div class="row app-row">
103
+ <div class="col-xs-4">
104
+ <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
105
+ <label for="f_userinfo_code" class="font text-left">用户编号:</label>
106
+ </div>
107
+ <div class="col-xs-8" >
108
+ <input id="f_userinfo_code" class="search_input input-font"
109
+ v-model=model.f_userinfo_code condition="f_userinfo_code like '%{}%'" />
110
+ </div>
111
+ </div>
112
+ <div class="row app-row">
113
+ <div class="col-xs-4">
114
+ <img src="../../assets/用户姓名.png" style="width: 20px;margin-bottom: 5px" alt="">
115
+ <label class="font text-left">用户姓名:</label>
116
+ </div>
117
+ <div class="col-xs-8" >
118
+ <input class="search_input input-font" v-model=model.f_user_name condition="f_user_name like '%{}%'" />
119
+ </div>
120
+ </div>
121
+
122
+ <div class="row app-row">
123
+ <div class="col-xs-4">
124
+ <img src="../../assets/安检状态.png" style="width: 20px;margin-bottom: 5px" alt="">
125
+ <label class="font text-left">用户证号:</label>
126
+ </div>
127
+ <div class="col-xs-8" >
128
+ <input class="search_input input-font" v-model=model.f_enter_number condition="f_enter_number like '%{}%'" />
129
+ </div>
130
+ </div>
131
+
132
+ <div class="row app-row" v-if="$parent.$parent.criteriaShow">
133
+ <div class="col-xs-4">
134
+ <img src="../../assets/安检状态.png" style="width: 20px;margin-bottom: 5px" alt="">
135
+ <label for="f_plan_name" class="font text-left">计划名称:</label>
136
+ </div>
137
+ <v-select
138
+ id="f_plan_name"
139
+ :value.sync="model.f_plan_name"
140
+ class="input-font"
141
+ :options='$parent.$parent.planNameOptions'
142
+ placeholder='计划名称'
143
+ :width="'60%'"
144
+ v-model="model.f_plan_name"
145
+ condition="f_plan_name like '%{}%'"
146
+ close-on-select clear-button>
147
+ </v-select>
148
+ </div>
149
+
150
+ <div class="row app-row" v-if="$parent.$parent.criteriaShow">
151
+ <div class="col-xs-4">
152
+ <img src="../../assets/是否已检.png" style="width: 20px;margin-bottom: 5px" alt="">
153
+ <label for="f_state" class="font text-left">是否已检:</label>
154
+ </div>
155
+ <v-select id="f_state"
156
+ :value.sync="model.f_state"
157
+ class="input-font"
158
+ :options='$parent.$parent.check_states'
159
+ placeholder='是否已检'
160
+ :width="'60%'"
161
+ v-model="model.f_state"
162
+ condition="f_state='{}'"
163
+ close-on-select clear-button>
164
+ </v-select>
165
+ </div>
166
+
167
+
168
+
169
+ <!--<div class="row app-row">-->
170
+ <!--<div class="col-xs-4">-->
171
+ <!--<img src="../../assets/shijian.png" style="width: 20px;margin-bottom: 5px" alt="">-->
172
+ <!--<label for="f_plan_year" class="font text-left">计划年份:</label>-->
173
+ <!--</div>-->
174
+ <!--<div class="col-xs-8" >-->
175
+ <!--<input id="f_plan_year" class="search_input input-font"-->
176
+ <!--v-model="model.f_plan_year" condition="f_plan_year = '{}'" />-->
177
+ <!--</div>-->
178
+ <!--</div>-->
179
+ <!--<div class="row app-row">-->
180
+ <!--<div class="col-xs-4">-->
181
+ <!--<img src="../../assets/shijian.png" style="width: 20px;margin-bottom: 5px" alt="">-->
182
+ <!--<label for="f_plan_month" class="font text-left">计划月份:</label>-->
183
+ <!--</div>-->
184
+ <!--<div class="col-xs-8" >-->
185
+ <!--<input id="f_plan_month" class="search_input input-font"-->
186
+ <!--v-model="model.f_plan_month" condition="f_plan_month = '{}'" />-->
187
+ <!--</div>-->
188
+ <!--</div>-->
189
+
190
+ <div class="row app-row" v-if="$parent.$parent.criteriaShow">
191
+ <div class="col-xs-4">
192
+ <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
193
+ <label class="font text-left">表&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;号:</label>
194
+ </div>
195
+ <div class="col-xs-8" >
196
+ <input class="search_input input-font"
197
+ v-model=model.f_meter_no condition="f_meter_no like '%{}%'" />
198
+ </div>
199
+ </div>
200
+
201
+ <div class="row app-row" v-if="$parent.$parent.criteriaShow">
202
+ <div class="col-xs-4">
203
+ <img src="../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
204
+ <label class="font text-left">用户地址:</label>
205
+ </div>
206
+ <div class="col-xs-8" >
207
+ <input class="search_input input-font"
208
+ v-model=model.f_keyword condition="f_address like '%{}%'" />
209
+ </div>
210
+ </div>
211
+ <div class="row app-row" v-if="$parent.$parent.criteriaShow">
212
+ <div class="col-xs-4">
213
+ <img src="../../assets/用户类型.png" style="width: 20px;margin-bottom: 5px" alt="">
214
+ <label for="f_user_type" class="font text-left">用户类型:</label>
215
+ </div>
216
+ <v-select id="f_user_type" :value.sync="model.f_user_type" class="input-font"
217
+ :width="'60%'"
218
+ :options='$parent.$parent.user_types' placeholder='请选择用户类型'
219
+ v-model="model.f_user_type" condition="f_user_type='{}'" close-on-select clear-button></v-select>
220
+ </div>
221
+ <div class="row app-row" v-if="$parent.$parent.criteriaShow">
222
+ <div class="col-xs-6" style="text-align: center">
223
+ <span class="font text-left">待办{{$parent.$parent.upcomingCount}}条</span>
224
+ </div>
225
+ <div class="col-xs-6" style="text-align: center">
226
+ <span class="font text-left">已办{{$parent.$parent.doneCount}}条</span>
227
+ </div>
228
+ <div class="col-xs-6" style="text-align: center">
229
+ <span class="font text-left">临时保存{{$parent.$parent.tempSaveCount}}条</span>
230
+ </div>
231
+ <div class="col-xs-6" style="text-align: center">
232
+ <span class="font text-left">总共{{$parent.$parent.allPlanCount}}条</span>
233
+ </div>
234
+ </div>
235
+
236
+ <div class="row text-center" style="margin-top: 20px;">
237
+ <button type="button" class="btn btn-lg btn-font btn-color" style="width: 25%;" @click="$parent.$parent.selfSearch">查询</button>
238
+ <button type="button" class="btn btn-lg btn-font btn-color" style="width: 25%; margin-left: 10px" @click="$parent.$parent.queryplanmany">转发</button>
239
+ <div style="float: right;margin-right: 3% " class="button_spacing" :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}" @click="$parent.$parent.hidden()"></div>
240
+ <img style="float: right;margin-right: 3% " @click="$parent.$parent.getNewOrder" src="../../assets/shuaxindaiban1.png" style="width: 40px;padding: 5px; float:right">
241
+ </div>
242
+ <div class="col-sm-12">
243
+
244
+ </div>
245
+ <!--<div class="row app-btn">-->
246
+ <!--<button class="btn btn-primary col-xs-6" type="button" @click="search"><span class="glyphicon glyphicon-search" style="margin-right: 20px;">查询</span></button>-->
247
+ <!--</div>-->
248
+ <div style="height:30px;"></div>
249
+ </form>
250
+ </div>
251
+ </criteria>
252
+ <list :model="model" partial='list'>
253
+ <div partial>
254
+ <div class="auto app-text" style="margin-top: 5px;">
255
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
256
+ <div class="panel-body panel-self">
257
+
258
+ <div class="col-xs-12">
259
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户编号:</b></p>
260
+ <p class="panel-title col-xs-5 text-left input-font" style="width: 74%">{{ row.f_userinfo_code }}</p>
261
+ <p class="panel-title col-xs-2 text-left input-font" style="width: 5%;float:right">
262
+ <input type="checkbox" @click="$parent.$parent.$parent.setPlanParam(row.id, $event)"/>
263
+ </p>
264
+ </div>
265
+ <div class="col-xs-12">
266
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户名称:</b></p>
267
+ <p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{ row.f_user_name }}</p>
268
+ </div>
269
+ <div class="col-xs-6">
270
+ <p class="panel-title col-xs-5 text-left font"><b>用户类型:</b></p>
271
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_user_type }}
272
+ </p>
273
+ </div>
274
+ <div class="col-xs-6">
275
+ <p class="panel-title col-xs-5 text-left font"><b>计划名称:</b></p>
276
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_plan_name }}</p>
277
+ </div>
278
+ <!-- <div class="col-xs-6">-->
279
+ <!-- <p class="panel-title col-xs-5 text-left font"><b>小区名称:</b></p>-->
280
+ <!-- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_residential_area }}</p>-->
281
+ <!-- </div>-->
282
+ <div class="col-xs-12">
283
+ <p class="panel-title text-left font" style="width: 23%;float: left"><b>用户电话:</b></p>
284
+ <p class="panel-title text-left input-font" style="width: 77%">{{ row.f_user_phone2 ? row.f_user_phone2 : row.f_user_phone }}
285
+ <img src="../../assets/phone.png" style="width: 6%" v-on:click.stop.prevent='$parent.$parent.$parent.makeAPhoneCall(row.f_user_phone2 ? row.f_user_phone2 : row.f_user_phone)'></img>
286
+ </p>
287
+ </div>
288
+
289
+ <div class="col-xs-12">
290
+ <p class="panel-title text-left font" style="width: 21%;float: left"><b>用户地址:</b></p>
291
+ <p class="panel-title text-left input-font" style="width: 79%">{{ row.f_address }}</p>
292
+ </div>
293
+
294
+ <!-- <div class="row">-->
295
+ <!-- <p class="panel-title col-xs-4 text-left font">计划年份</p>-->
296
+ <!-- <p class="panel-title col-xs-8 text-left input-font">{{ row.f_plan_year }}</p>-->
297
+ <!-- </div>-->
298
+ <!-- <div class="row">-->
299
+ <!-- <p class="panel-title col-xs-4 text-left font">计划月份</p>-->
300
+ <!-- <p class="panel-title col-xs-8 text-left input-font">{{ row.f_plan_month }}</p>-->
301
+ <!-- </div>-->
302
+ <!-- <div class="row">-->
303
+ <!-- <p class="panel-title col-xs-4 text-left font">预约时间</p>-->
304
+ <!-- <p class="panel-title col-xs-8 text-left input-font">{{ row.f_prearranged_date }}</p>-->
305
+ <!-- </div>-->
306
+ <!--<div class="row">-->
307
+ <!--<p class="panel-title col-xs-4 text-left font">上次安检状态</p>-->
308
+ <!--<p class="panel-title col-xs-8 text-left input-font">{{ row.f_last_check_state }}</p>-->
309
+ <!--</div>-->
310
+ <div class="col-xs-6">
311
+ <p class="panel-title col-xs-5 text-left font"><b>安检状态:</b></p>
312
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_state == '已检'?'临时保存':row.f_state }}</p>
313
+ </div>
314
+ <div class="col-xs-6">
315
+ <p class="panel-title col-xs-5 text-left font"><b>上传状态:</b></p>
316
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_upload_state }}</p>
317
+ </div>
318
+ <div class="col-xs-6">
319
+ <p class="panel-title col-xs-5 text-left font"><b>安检类型:</b></p>
320
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_safecheck_type }}</p>
321
+ </div>
322
+ <!--<div class="col-xs-12">-->
323
+ <!--<p class="panel-title col-xs-5 text-left font"><b>送气期限:</b></p>-->
324
+ <!--<p class="panel-title col-xs-7 text-left input-font">{{timeSet(row.f_issue_time)}}</p>-->
325
+ <!--</div>-->
326
+ <div class="col-xs-12">
327
+ <button type="button" name="button" class="btn btn-primary" style="background-color:#499edf;float: right" @click="$parent.$parent.$parent.inspect(row)">处理</button>
328
+ <button type="button" name="button" class="btn btn-primary" style="background-color:#499edf;float: right;margin-right:10px;" @click="$parent.$parent.$parent.queryplan(row.id)">转发</button>
329
+ <!--<button type="button" class="btn btn-default" @click="$parent.$parent.$parent.ceshi">确认2</button>-->
330
+ </div>
331
+ <!-- <div class="row text-right" v-show="row.f_upload_state != '已传'" >-->
332
+ <!-- <button type="button" class="btn yybtn-color" v-on:click.stop.prevent='$parent.$parent.$parent.reserve($index)'>预约</button>&nbsp;-->
333
+ <!-- <button type="button" class="btn qxbtn-color" v-if ='row.f_prearranged_date'-->
334
+ <!-- v-on:click.stop.prevent='$parent.$parent.$parent.cancelReserve($index, row.id)'>取消预约</button>-->
335
+ <!-- </div>-->
336
+ </div>
337
+ </div>
338
+ </div>
339
+ </div>
340
+ </list>
341
+ </criteria-paged>
342
+ <modal :show.sync="showModal">
343
+ <div slot="modal-header" class="modal-header">
344
+ <h4 class="modal-title">
345
+ 选择预约时间
346
+ </h4>
347
+ </div>
348
+ <div slot="modal-body" class="modal-body">
349
+ <input type="datetime-local" v-model="f_preset_dt">
350
+ </div>
351
+ <div slot="modal-footer" class="modal-footer">
352
+ <button type="button" class="btn btn-default" @click="genuineReserve">确认</button>
353
+ </div>
354
+ </modal>
355
+ <!--<back-page :need-back='true' @flag="$back()"></back-page>-->
356
+ <modal :show.sync="showModal2" v-ref:modal>
357
+ <div slot="modal-header" class="modal-header">
358
+ <h4 class="modal-title">
359
+ 选择计划
360
+ </h4>
361
+ </div>
362
+ <div slot="modal-body" class="modal-body">
363
+ <div class="col-xs-12">
364
+
365
+ <div class="col-xs-4">
366
+ <v-select :value.sync="check" v-model='check'
367
+ :value-single="true"
368
+ class="select_list select"
369
+ :options='checkers' placeholder='安检员'
370
+ close-on-select width="100%"></v-select>
371
+ </div>
372
+
373
+ <div class="col-xs-1">
374
+ <!--<label style="font-size:20px;line-height: 35px">人员 </label>-->
375
+ </div>
376
+ <div class="col-xs-4" style="padding-left: 2px">
377
+ <input class="select-style" placeholder="计划名称" type="text" v-model="plan" style="border: 1px solid #93B2D3;height:34px;width: 100%;line-height: 35px"/>
378
+ </div>
379
+ <div class="col-xs-1" >
380
+ <!--<label style="font-size: 20px;line-height: 35px">计划</label>-->
381
+ </div>
382
+ <!--<input placeholder="安检员" type="text" v-model="check" style="height:30px;width: 100px"/>-->
383
+ <div class="col-xs-2" style="float: right">
384
+ <button type="button" class="btn btn-primary" @click="plansearch" style="background-color:#499edf;float: right;margin-right:10px;border: 1px solid #93B2D3;height:34px;width: 100%;line-height: 1px;padding-left: 12px">查询</button>
385
+ </div>
386
+ </div>
387
+ <table class="table table_sy">
388
+ <thead>
389
+ <tr>
390
+ <th style="width: 30px"></th>
391
+ <th style="font-family: 'Adobe 黑体 Std R'">计划名称</th>
392
+ </tr>
393
+ </thead>
394
+ <tbody>
395
+ <tr v-for="row in planoption">
396
+ <td @click="select(row, $index)" >{{row.selected==true ? '☆' : '&nbsp;&nbsp;&nbsp;&nbsp;'}}</td>
397
+ <td @click="select(row, $index)" style="text-align: center">{{row.label}}</td>
398
+
399
+
400
+ </tr>
401
+ </tbody>
402
+ </table>
403
+ </div>
404
+ <div slot="modal-footer" class="modal-footer">
405
+ <button class="btn btn-default" @click="isok()">确认</button>
406
+ <button class="btn btn-default" @click="iscancel()">取消</button>
407
+ </div>
408
+ </modal>
409
+ <modal :show.sync="showModal3" v-ref:modal>
410
+ <div slot="modal-header" class="modal-header">
411
+ <h4 class="modal-title">
412
+ 选择计划
413
+ </h4>
414
+ </div>
415
+ <div slot="modal-body" class="modal-body">
416
+ <div class="col-xs-12">
417
+
418
+ <div class="col-xs-4">
419
+ <v-select :value.sync="check" v-model='check'
420
+ :value-single="true"
421
+ class="select_list select"
422
+ :options='checkers' placeholder='安检员'
423
+ close-on-select width="100%"></v-select>
424
+ </div>
425
+
426
+ <div class="col-xs-1">
427
+ <!--<label style="font-size:20px;line-height: 35px">人员 </label>-->
428
+ </div>
429
+ <div class="col-xs-4" style="padding-left: 2px">
430
+ <input class="select-style" placeholder="计划名称" type="text" v-model="plan" style="border: 1px solid #93B2D3;height:34px;width: 100%;line-height: 35px"/>
431
+ </div>
432
+ <div class="col-xs-1" >
433
+ <!--<label style="font-size: 20px;line-height: 35px">计划</label>-->
434
+ </div>
435
+ <!--<input placeholder="安检员" type="text" v-model="check" style="height:30px;width: 100px"/>-->
436
+ <div class="col-xs-2" style="float: right">
437
+ <button type="button" class="btn btn-primary" @click="plansearch" style="background-color:#499edf;float: right;margin-right:10px;border: 1px solid #93B2D3;height:34px;width: 100%;line-height: 1px;padding-left: 12px">查询</button>
438
+ </div>
439
+ </div>
440
+ <table class="table table_sy">
441
+ <thead>
442
+ <tr>
443
+ <th style="width: 30px"></th>
444
+ <th style="font-family: 'Adobe 黑体 Std R'">计划名称</th>
445
+ </tr>
446
+ </thead>
447
+ <tbody>
448
+ <tr v-for="row in planoption">
449
+ <td @click="select(row, $index)" >{{row.selected==true ? '☆' : '&nbsp;&nbsp;&nbsp;&nbsp;'}}</td>
450
+ <td @click="select(row, $index)" style="text-align: center">{{row.label}}</td>
451
+
452
+
453
+ </tr>
454
+ </tbody>
455
+ </table>
456
+ </div>
457
+ <div slot="modal-footer" class="modal-footer">
458
+ <button class="btn btn-default" @click="manyisok()">确认</button>
459
+ <button class="btn btn-default" @click="iscancel()">取消</button>
460
+ </div>
461
+ </modal>
462
+ </div>
463
+
464
+ </template>
465
+
466
+ <script>
467
+ import LocalPagedList from '../../plugins/LocalPagedList'
468
+ import Vue from 'vue'
469
+ import { PagedList,HttpResetClass } from 'vue-client'
470
+ import * as Util from '../Util'
471
+ import co from 'co'
472
+ let select = function * (self) {
473
+ let http = new HttpResetClass()
474
+ http.load('POST', `${self.$androidUtil.getProxyUrl()}/rs/search`, {
475
+ source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))',
476
+ userid: Vue.user.id
477
+ }, {resolveMsg: null, rejectMsg: null}).then((res) => {
478
+ console.log('获取安检员', res)
479
+ self.checkers.push({label:'全部',value:''})
480
+ res.data.forEach((checker)=>{
481
+ self.checkers.push({label:checker.name,value:checker.id})
482
+ })
483
+ })
484
+ }
485
+ export default {
486
+ title: '无计划安检查询',
487
+ data() {
488
+ return {
489
+ f_filialeids:'('+Vue.user.orgid+')',
490
+ //f_filialeids:'(305)',
491
+ planparam:[],
492
+ check:'',
493
+ plan:'',
494
+ planid:'',
495
+ model:Vue.android? new LocalPagedList('androidGetuserinfo',20,{condition:'this.condition'}): new PagedList( 'AndroidRest/rs/sql/androidGetuserinfo',20,{condition:'this.condition'}),
496
+ showModal: false,
497
+ showModal2:false,
498
+ showModal3:false,
499
+ needid:'',
500
+ criteriaShow: false,
501
+ planoption:[],
502
+ condition:'',
503
+ checkers:[],
504
+ param: null,
505
+ f_preset_dt : Util.to3339TimeString(),
506
+ flow_direction:[
507
+ {label: '请选择挂表方式', value: ''},
508
+ {label: '左表', value: '左表'},
509
+ {label: '右表', value: '右表'}
510
+ ],
511
+ check_states: [
512
+ {label: '请选择安检状态', value: ''},
513
+ {label: '未检', value: '未检'},
514
+ {label: '临时保存', value: '已检'},
515
+ ],
516
+ last_check_states: [
517
+ {label: '请选择上次安检状态', value: ''},
518
+ {label: '入户', value: '入户'},
519
+ {label: '拒检', value: '拒检'},
520
+ {label: '到访不遇', value: '到访不遇'},
521
+ {label: '未使用天然气', value: '未使用天然气'}
522
+ ],
523
+ upload_states: [
524
+ {label: '请选择上传状态', value: ''},
525
+ {label: '未传', value: '未传'},
526
+ {label: '已传', value: '已传'}
527
+ ],
528
+ user_types: [
529
+ {label: '请选择用户类型', value: ''},
530
+ {label: '民用', value: '民用'},
531
+ {label: '非民用', value: '非民用'},
532
+ ],
533
+ verify_state: [
534
+ {label: '请选择审核状态', value: ''},
535
+ {label: '未审核', value: '未审核'},
536
+ {label: '打回', value: '打回'}
537
+ ],
538
+ residentialAreaOptions: [],
539
+ buildOptions: [],
540
+ unitOptions: [],
541
+ planNameOptions: [],
542
+ upcomingCount: 0,
543
+ doneCount: 0,
544
+ tempSaveCount: 0,
545
+ allPlanCount: 0
546
+ }
547
+ },
548
+ ready(){
549
+ this.getAllArea()
550
+ this.getAllPlanName()
551
+ this.selfSearch()
552
+ let gen = select(this)
553
+ co(gen)
554
+ },
555
+ mounted(){
556
+ console.log('66666监听返回事件')
557
+ if (window.history && window.history.pushState) {
558
+ history.pushState(null, null, document.URL);
559
+ window.addEventListener('popstate', this.fun, false);//false阻止默认事件
560
+ }
561
+ },
562
+ destroyed(){
563
+ console.log('页面销毁 取消监听')
564
+ window.removeEventListener('popstate', this.fun, false);//false阻止默认事件
565
+ },
566
+ methods: {
567
+ fun () {
568
+ console.log('111111111111')
569
+ console.log('监听手机返回')
570
+ },
571
+ iscancel(){
572
+ this.showModal2=false
573
+ this.showModal3=false
574
+ this.planoption=[]
575
+ },
576
+ timeSet(val){
577
+ return val
578
+ },
579
+ async isok(){
580
+ if(this.planoption.length==0){
581
+ this.$showMessage("请选择计划")
582
+ return false
583
+ }
584
+ for (let i = 0; i <this.planoption.length ; i++) {
585
+ if (this.planoption[i]["selected"]==true){
586
+ this.planid=this.planoption[i].value
587
+ break
588
+ }
589
+ }
590
+ if(this.planid==''){
591
+ this.$showMessage("请选择计划")
592
+ return false
593
+ }
594
+ await this.okput()
595
+ },
596
+ async manyisok(){
597
+ if(this.planoption.length==0){
598
+ this.$showMessage("请选择计划")
599
+ return false
600
+ }
601
+ for (let i = 0; i <this.planoption.length ; i++) {
602
+ if (this.planoption[i]["selected"]==true){
603
+ this.planid=this.planoption[i].value
604
+ break
605
+ }
606
+ }
607
+ if(this.planid==''){
608
+ this.$showMessage("请选择计划")
609
+ return false
610
+ }
611
+ await this.manyokput()
612
+ },
613
+ changenull(){
614
+ this.showModal2=false
615
+ this.showModal3=false
616
+ this.planoption=[]
617
+ this.plan=''
618
+ this.check=''
619
+ },
620
+ async okput(){
621
+ let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/logic/UpCheckPlanItem`, {data:{
622
+
623
+ condition:`it.id='`+this.needid+`'`,
624
+ f_plan_id:this.planid,
625
+ switchCheckAll:false,
626
+ checkAll:false,
627
+ f_operator:Vue.user.name
628
+ }
629
+ })
630
+ await this.changenull()
631
+ await this.getNewOrder()
632
+ },
633
+ async manyokput(){
634
+ let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/logic/UpCheckPlanItem`, {data:{
635
+ columnName:"it.id",
636
+ condition:"1=1",
637
+ f_plan_id:this.planid,
638
+ switchCheckAll:true,
639
+ param:this.planparam,
640
+ checkAll:false,
641
+ f_operator:Vue.user.name
642
+ }
643
+ })
644
+ await this.changenull()
645
+ await this.getNewOrder()
646
+ },
647
+ async plansearch(){
648
+ this.planoption=[]
649
+ let condition=`f_checker_id=`+this.check+` and f_plan_name like '%`+this.plan+`%'`
650
+ if (!this.check){
651
+ condition=`f_plan_name like '%`+this.plan+`%'`
652
+ }
653
+ let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/预约计划下发`, {data:{
654
+ condition:condition,
655
+ f_filialeids:this.f_filialeids,
656
+ groupitem:'',
657
+ orderitem:'id'
658
+ }})
659
+ let resoult=res.data
660
+ for (let i = 0; i < resoult.length; i++) {
661
+ this.planoption.push({label: resoult[i].f_plan_name,selected:false, value: resoult[i].id})
662
+ }
663
+ },
664
+
665
+ select(row, idx) {
666
+ this.$set('planoption[' + idx + '].selected', true)
667
+ for (let i = 0; i <this.planoption.length ; i++) {
668
+ if (i!=idx){
669
+ this.planoption[i]["selected"]=false
670
+ }
671
+ }
672
+ },
673
+ planclose(){
674
+ this.showModal2=false
675
+ this.showModal3=false
676
+ },
677
+ queryplan(val){
678
+ this.needid=val
679
+ this.showModal2 = true
680
+ },
681
+ queryplanmany(){
682
+
683
+ this.showModal3 = true
684
+ },
685
+ reload(){
686
+ this.getAllArea()
687
+ this.getAllPlanName()
688
+ this.selfSearch()
689
+ },
690
+ cancelReserve (idx, id) {
691
+ if(Vue.android){
692
+ let res = this.$androidUtil.bzLogic('BookingCheck', {dt: '', id: id})
693
+ this.$set('model.rows[' + idx + '].f_prearranged_date', null)
694
+ if (res.code == 200) {
695
+ this.$showMessage("取消预约成功")
696
+ }
697
+ }else {
698
+ this.$androidUtil.bzLogic('PCbookingCheck', {dt: '', id: id}).then((repanse) => {
699
+ this.$set('model.rows[' + idx + '].f_prearranged_date', null)
700
+ if (repanse.data.code == 200) {
701
+ alert("取消预约成功!")
702
+ }
703
+ })
704
+ }},
705
+ genuineReserve () {
706
+ if(Vue.android){
707
+ if (!this.f_preset_dt) {
708
+ this.$showMessage('请选择一个日期')
709
+ return
710
+ }
711
+ let pdt = this.f_preset_dt.replace('T', ' ')
712
+ let respanse = this.$androidUtil.bzLogic('BookingCheck', {id: this.model.rows[this.param].id, dt: pdt})
713
+ this.$set('model.rows[' + this.param + '].f_prearranged_date', pdt)
714
+ if(respanse.code == 200) {
715
+ this.$showMessage("预约成功!")
716
+ }
717
+ this.showModal = false
718
+ }else {
719
+ if (!this.f_preset_dt) {
720
+ alert('请选择一个日期')
721
+ return
722
+ }
723
+ let pdt = this.f_preset_dt.replace('T', ' ')
724
+ this.$androidUtil.bzLogic('PCbookingCheck', {id: this.model.rows[this.param].id, dt: pdt}).then((res) => {
725
+ this.$set('model.rows[' + this.param + '].f_prearranged_date', pdt)
726
+ if(res.data.code == 200) {
727
+ alert("预约成功!")
728
+ }
729
+ this.showModal = false
730
+ })
731
+ }
732
+ },
733
+ inspect(row) {
734
+ var _this = this
735
+ console.log('进入inspect')
736
+ if (row.f_upload_state == '未传' || (row.f_upload_state == '已传' && row.f_state == '未检' && row.f_no_checkplan != '无计划安检' ) ) {
737
+ _this.$resetpost(`${_this.$androidUtil.getProxyUrl()}/rs/sql/查询计划项表信息`, {data: {f_userid: row.f_userinfoid}},{resolveMsg: null,rejectMsg: null}).then((response) => {
738
+ console.log(JSON.stringify(response))
739
+ row['f_plan_meters'] = response.data
740
+ var pardate = {
741
+ _this:_this,
742
+ title:'安全检查',
743
+ safe:true
744
+ }
745
+ _this.$dispatch('gotoson',pardate)
746
+ console.log('进入safecheck-order-v')
747
+ _this.$goto('safecheck-order-v', {f_plan_id: row.f_plan_id, item: row, role: 'inspect',parentPage:'CurrentCreate'}, 'self', _this.reload)
748
+ }).catch ((msg)=>{
749
+ this.$showMessage("网络异常,请检查网络后再试!")
750
+ })
751
+ }else{
752
+ this.$showMessage("该安检单已被上传!")
753
+ }
754
+ },
755
+ makeAPhoneCall(phoneNumber) {
756
+ this.$androidUtil.makeAPhoneCall(phoneNumber)
757
+ },
758
+ reserve (idx) {
759
+ this.param = idx
760
+ this.showModal = true
761
+ },
762
+ search(args) {
763
+ this.model.rows = []
764
+ this.model.search(args.condition, args.model)
765
+ },
766
+ selfSearch () {
767
+ this.getPlanCount()
768
+ let condition = ""
769
+ if(this.$refs.paged.$refs.cri.model.f_residential_area)
770
+ condition += " and ti.f_residential_area like '%"+this.$refs.paged.$refs.cri.model.f_residential_area+"%'"
771
+ if(this.$refs.paged.$refs.cri.model.f_building)
772
+ condition += " and ti.f_building like '%"+this.$refs.paged.$refs.cri.model.f_building+"%'"
773
+ if(this.$refs.paged.$refs.cri.model.f_unit)
774
+ condition += " and ti.f_unit like '%"+this.$refs.paged.$refs.cri.model.f_unit+"%'"
775
+ if(this.$refs.paged.$refs.cri.model.f_plan_name)
776
+ condition += " and f_plan_name like '%"+this.$refs.paged.$refs.cri.model.f_plan_name +"%'"
777
+ // if(this.$refs.paged.$refs.cri.model.f_plan_year)
778
+ // condition += " and f_plan_year = '"+this.$refs.paged.$refs.cri.model.f_plan_year +"'"
779
+ // if(this.$refs.paged.$refs.cri.model.f_plan_month)
780
+ // condition += " and f_plan_month = '"+this.$refs.paged.$refs.cri.model.f_plan_month +"'"
781
+ if(this.$refs.paged.$refs.cri.model.f_userinfo_code)
782
+ condition += " and ti.f_userinfo_code like '%"+this.$refs.paged.$refs.cri.model.f_userinfo_code+"%'"
783
+ if(this.$refs.paged.$refs.cri.model.f_keyword)
784
+ condition += " and ti.f_address like '%"+this.$refs.paged.$refs.cri.model.f_keyword+"%'"
785
+ if(this.$refs.paged.$refs.cri.model.f_user_name)
786
+ condition += " and ti.f_user_name like '%"+this.$refs.paged.$refs.cri.model.f_user_name+"%'"
787
+ if(this.$refs.paged.$refs.cri.model.f_state[0])
788
+ condition += " and ti.f_state='"+this.$refs.paged.$refs.cri.model.f_state[0]+"'"
789
+ // if(this.$refs.paged.$refs.cri.model.f_last_state[0])
790
+ // condition += " and ti.f_last_check_state='"+this.$refs.paged.$refs.cri.model.f_last_state[0]+"'"
791
+ if(this.$refs.paged.$refs.cri.model.f_user_type[0])
792
+ condition += " and ti.f_user_type='"+this.$refs.paged.$refs.cri.model.f_user_type[0]+"'"
793
+ if(this.$refs.paged.$refs.cri.model.f_meter_no)
794
+ condition += " and tm.f_meter_no like '%"+this.$refs.paged.$refs.cri.model.f_meter_no+"%'"
795
+ // if(this.$refs.paged.$refs.cri.model.f_flow_direction[0])
796
+ // condition += " and tm.f_flow_direction = '"+this.$refs.paged.$refs.cri.model.f_flow_direction[0]+"'"
797
+
798
+ if(this.$refs.paged.$refs.cri.model.f_enter_number)
799
+ condition += " and ti.f_enter_number like '%"+this.$refs.paged.$refs.cri.model.f_enter_number+"%'"
800
+
801
+ console.log('condition ===> '+ condition)
802
+ this.model.search("((f_complete = '' or f_complete = null or f_complete = '未完成') or (f_state = '未检')) and ti.f_no_checkplan = '有计划安检'" + condition)
803
+ },
804
+ getNewOrder(){
805
+ HostApp.__this__ = this
806
+ HostApp.logicWithHint({
807
+ // logic别名,key必须为logic
808
+ 'logic': 'SafeCheckServiceTimeOut',
809
+ // 回调执行方法名,key必须为callback
810
+ 'callback': 'javascript:HostApp.__this__.getNewOrderCallBack()',
811
+ // logic执行需要的业务参数
812
+ 'data': {params: ''},
813
+ // 固定key,代表是否将logic执行结果作为参数传入回调方法,1代表true,0代表false,
814
+ // 执行回调方法传入key为backresult
815
+ // 如需额外拼接参数,写在logic返回值的params,例如xxlogic返回:{"params": "success"}
816
+ 'backresult': 1
817
+ })
818
+ },
819
+ getNewOrderCallBack() {
820
+ this.selfSearch()
821
+ this.getAllArea()
822
+ this.getAllPlanName()
823
+ },
824
+ hidden() {
825
+ this.criteriaShow = !this.criteriaShow
826
+ },
827
+ getAllArea(){
828
+ this.residentialAreaOptions = []
829
+ this.buildOptions = []
830
+ this.unitOptions = []
831
+ this.$refs.paged.$refs.cri.model.f_residential_area = ''
832
+ this.$refs.paged.$refs.cri.model.f_building = ''
833
+ this.$refs.paged.$refs.cri.model.f_unit = ''
834
+ let criteria = {
835
+ items: 'f_residential_area',
836
+ tablename: 't_check_plan_item',
837
+ condition: `f_residential_area IS NOT NULL AND f_residential_area != '' AND f_state <> '已检'`,
838
+ groupitem: 'f_residential_area'
839
+ }
840
+ let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
841
+ console.log('result ===> ' + JSON.stringify(result))
842
+ if(result.code == 200){
843
+ result.data.rows.forEach(item => this.residentialAreaOptions.push({label:item.f_residential_area,value:item.f_residential_area}))
844
+ }
845
+ console.log('this.residentialAreaOptions ===> ' + JSON.stringify(this.residentialAreaOptions))
846
+ },
847
+ getbuilds(f_residential_area){
848
+ console.log('f_residential_area ===> ' + JSON.stringify(f_residential_area))
849
+ this.buildOptions = []
850
+ this.unitOptions = []
851
+ this.$refs.paged.$refs.cri.model.f_building = ''
852
+ this.$refs.paged.$refs.cri.model.f_unit = ''
853
+ if(!f_residential_area){
854
+ return
855
+ }
856
+ let criteria = {
857
+ items: 'f_building',
858
+ tablename: 't_check_plan_item',
859
+ condition: `f_building IS NOT NULL AND f_building != '' AND f_state <> '已检' AND f_residential_area = '${f_residential_area}'`,
860
+ groupitem: 'f_building'
861
+ }
862
+ let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
863
+ if(result.code == 200){
864
+ result.data.rows.forEach(item => this.buildOptions.push({label:item.f_building,value:item.f_building}))
865
+ }
866
+ console.log('this.buildOptions ===> ' + JSON.stringify(this.buildOptions))
867
+ },
868
+ getUnits(f_building){
869
+ f_building = f_building[0]
870
+ console.log('f_building ===> ' + JSON.stringify(f_building))
871
+ this.unitOptions = []
872
+ this.$refs.paged.$refs.cri.model.f_unit = ''
873
+ if(!f_building){
874
+ return
875
+ }
876
+ let criteria = {
877
+ items: 'f_unit',
878
+ tablename: 't_check_plan_item',
879
+ condition: `f_unit IS NOT NULL AND f_unit != '' AND f_state <> '已检' AND f_residential_area = '${this.$refs.paged.$refs.cri.model.f_residential_area}' AND f_building = '${f_building}'`,
880
+ groupitem: 'f_unit'
881
+ }
882
+ let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
883
+ if(result.code == 200){
884
+ result.data.rows.forEach(item => this.unitOptions.push({label:item.f_unit,value:item.f_unit}))
885
+ }
886
+ console.log('this.unitOptions ===> ' + JSON.stringify(this.unitOptions))
887
+ },
888
+ getPlanCount(){
889
+ this.upcomingCount = 0
890
+ this.tempSaveCount = 0
891
+ this.doneCount = 0
892
+ this.allPlanCount = 0
893
+ if(this.$refs.paged.$refs.cri.model.f_plan_name)
894
+ condition += " and f_plan_name like '%"+this.$refs.paged.$refs.cri.model.f_plan_name +"%'"
895
+ let criteria = {
896
+ items: 'count(id) count',
897
+ tablename: 't_check_plan_item it left join t_check_plan cp on it.f_plan_id=cp.id',
898
+ condition: `f_state = '未检'`+this.$refs.paged.$refs.cri.model.f_plan_name?` and f_plan_name='${this.$refs.paged.$refs.cri.model.f_plan_name}'`:'',
899
+ groupitem: 'f_state'
900
+ }
901
+ let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
902
+ if(result.code && result.code == 200){
903
+ if(result.data.rows[0] && !isNaN(result.data.rows[0].count)) {
904
+ this.upcomingCount = result.data.rows[0].count
905
+ }
906
+ }
907
+ criteria = {
908
+ items: 'count(id) count',
909
+ tablename: 't_check_plan_item it left join t_check_plan cp on it.f_plan_id=cp.id',
910
+ condition: `(f_complete = '' or f_complete = null or f_complete = '未完成') AND f_state = '已检'`+this.$refs.paged.$refs.cri.model.f_plan_name?` and f_plan_name='${this.$refs.paged.$refs.cri.model.f_plan_name}'`:'',
911
+ groupitem: 'f_state'
912
+ }
913
+ result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
914
+ if(result.code && result.code == 200){
915
+ if(result.data.rows[0] && !isNaN(result.data.rows[0].count)){
916
+ this.tempSaveCount = result.data.rows[0].count
917
+ }
918
+ }
919
+ criteria = {
920
+ items: 'count(id) count',
921
+ tablename: 't_check_plan_item it left join t_check_plan cp on it.f_plan_id=cp.id',
922
+ condition: `f_complete = '已完成' AND f_state = '已检'`+this.$refs.paged.$refs.cri.model.f_plan_name?` and f_plan_name='${this.$refs.paged.$refs.cri.model.f_plan_name}'`:'',
923
+ groupitem: 'f_state'
924
+ }
925
+ result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
926
+ if(result.code && result.code == 200){
927
+ if(result.data.rows[0] && !isNaN(result.data.rows[0].count)){
928
+ this.doneCount = result.data.rows[0].count
929
+ }
930
+ }
931
+ this.allPlanCount = this.upcomingCount + this.tempSaveCount + this.doneCount
932
+
933
+ console.log('this.upcomingCount ===> ' + this.upcomingCount)
934
+ console.log('this.tempSaveCount ===> ' + this.tempSaveCount)
935
+ console.log('this.doneCount ===> ' + this.doneCount)
936
+ console.log('this.allPlanCount ===> ' + this.allPlanCount)
937
+ },
938
+ getAllPlanName(){
939
+ this.planNameOptions = []
940
+ this.$refs.paged.$refs.cri.model.f_plan_name = ''
941
+ let criteria = {
942
+ items: 'f_plan_name',
943
+ tablename: 't_check_plan',
944
+ condition: `f_plan_name IS NOT NULL AND f_plan_name != ''`,
945
+ groupitem: 'f_plan_name'
946
+ }
947
+ let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
948
+ console.log('result ===> ' + JSON.stringify(result))
949
+ if(result.code == 200){
950
+ result.data.rows.forEach(item => this.planNameOptions.push({label:item.f_plan_name,value:item.f_plan_name}))
951
+ }
952
+ console.log('this.planNameOptions ===> ' + JSON.stringify(this.planNameOptions))
953
+ },
954
+ setPlanParam(detailsType, event) {
955
+ if (event.srcElement.checked) {
956
+ this.planparam.push(detailsType)
957
+ console.log(this.planparam)
958
+ } else {
959
+ if(this.planparam.length>0){
960
+ let planid= this.planparam.findIndex((value) => {
961
+ return value === detailsType
962
+ })
963
+ this.planparam.splice(planid, 1)
964
+ console.log(this.planparam)
965
+
966
+ }
967
+
968
+ }
969
+ }
970
+ }
971
+ }
972
+ </script>