safecheck-client 3.0.35-3 → 3.0.35-31

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