safecheck-client 3.0.35-13 → 3.0.35-14

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