safecheck-client 3.0.34-6 → 3.0.34-61

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. package/docs/FormPrint.md +18 -18
  2. package/docs/GridTree.md +47 -47
  3. package/docs/PrintFile.md +38 -38
  4. package/docs/tree.md +40 -40
  5. package/package.json +1 -1
  6. package/src/App-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.vue +55 -0
  7. package/src/assets/123.png +0 -0
  8. package/src/assets/f8632d3c8c4c1cb68e99da754cab1a7.png +0 -0
  9. package/src/components/LoadData.vue +62 -0
  10. package/src/components/NewDefectList/DefectListNew.vue +617 -616
  11. package/src/components/android/AddGas.vue +147 -147
  12. package/src/components/android/AndroidDefectDeal.vue +1 -0
  13. package/src/components/android/AreaPlan.vue +566 -566
  14. package/src/components/android/AreaSelect.vue +208 -0
  15. package/src/components/android/BuildingSelect.vue +217 -0
  16. package/src/components/android/CheckPlanSelect.vue +248 -0
  17. package/src/components/android/CheckerMonthly.vue +84 -84
  18. package/src/components/android/LcheckUnplan.vue +108 -108
  19. package/src/components/android/PaperFeedback.vue +33 -0
  20. package/src/components/android/QRCode/QRCodeBinding.vue +300 -0
  21. package/src/components/android/QRCode/QRCodePage.vue +212 -0
  22. package/src/components/android/SafecheckDevices.vue +2 -2
  23. package/src/components/android/SafecheckOrderV.vue +8 -12
  24. package/src/components/android/SwitchValve.vue +323 -323
  25. package/src/components/android/examples/SafeListExamples.vue +96 -0
  26. package/src/components/android/examples/UserExamples.vue +130 -0
  27. package/src/components/checkerphonestate/Checker.vue +32 -32
  28. package/src/components/checkerphonestate/CheckerState.vue +97 -97
  29. package/src/components/defects/AddDefectModal.vue +120 -120
  30. package/src/components/defects/AddDevice.vue +95 -95
  31. package/src/components/defects/DevicesSeting.vue +106 -106
  32. package/src/components/metterfiles/AddUserfiles.vue +246 -246
  33. package/src/components/metterfiles/MetterFiles.vue +104 -104
  34. package/src/components/notice/NoticeQuery.vue +76 -76
  35. package/src/components/paper/RepairVerifyForm.vue +76 -76
  36. package/src/components/phonestate/DailyTraffic.vue +57 -57
  37. package/src/components/phonestate/LastKnownState.vue +74 -74
  38. package/src/components/rongcheng/AddPlanItem.vue +4 -0
  39. package/src/components/rongcheng/AspiratedUserInfo.vue +1 -1
  40. package/src/components/rongcheng/CheckSearchUser.vue +40 -14
  41. package/src/components/rongcheng/PaperStatem.vue +6 -1
  42. package/src/components/rongcheng/PhoneDevicesInfo.vue +16 -1
  43. package/src/components/rongcheng/PhoneUpUserinfo.vue +0 -92
  44. package/src/components/rongcheng/SafecheckOrderV.vue +12 -3
  45. package/src/components/rongcheng/SafecheckOrderVCli.vue +9 -0
  46. package/src/components/task/RepairAnnual.vue +79 -79
  47. package/src/components/task/RepairAnnualDetail.vue +49 -49
  48. package/src/components/task/RepairMonthly.vue +91 -91
  49. package/src/components/task/TaskAnnual.vue +77 -77
  50. package/src/components/task/TaskAnnualDetail.vue +47 -47
  51. package/src/components/task/TaskMonthly.vue +89 -89
  52. package/src/components/userfile/UserfileChange.vue +277 -277
  53. package/src/filiale/baiyin/android/AndroidDefectDeal.vue +4 -4
  54. package/src/filiale/baiyin/android/SafecheckOrderV.vue +2785 -0
  55. package/src/filiale/baiyin/android.js +1 -0
  56. package/src/filiale/baiyin/pc/CheckSearchUser.vue +2 -2
  57. package/src/filiale/baiyin/pc/DefectListNew.vue +3 -3
  58. package/src/filiale/baiyin/pc/PaperList.vue +7 -7
  59. package/src/filiale/baiyin/pc/checkUserList.vue +771 -771
  60. package/src/filiale/baiyin/pc.js +21 -21
  61. package/src/filiale/bayan/android/SafecheckOrderV.vue +52 -29
  62. package/src/filiale/bayan/pc/PaperList.vue +1 -0
  63. package/src/filiale/fugou/pc/CheckBookSearchUser.vue +35 -15
  64. package/src/filiale/huaran/android/SafecheckOrderV.vue +2803 -0
  65. package/src/filiale/huaran/android.js +12 -0
  66. package/src/filiale/huaran/pc/CheckBook.vue +313 -0
  67. package/src/filiale/huaran/pc/CheckBookAll.vue +69 -0
  68. package/src/filiale/huaran/pc/CheckBookArea.vue +170 -0
  69. package/src/filiale/huaran/pc/CheckBookCompany.vue +166 -0
  70. package/src/filiale/huaran/pc/CheckBookDetails.vue +196 -0
  71. package/src/filiale/huaran/pc/CheckBookEntry.vue +61 -0
  72. package/src/filiale/huaran/pc/CheckBookList.vue +386 -0
  73. package/src/filiale/huaran/pc/CheckBookSearchArea.vue +564 -0
  74. package/src/filiale/huaran/pc/CheckBookSearchUnit.vue +229 -0
  75. package/src/filiale/huaran/pc/CheckBookSearchUser.vue +604 -0
  76. package/src/filiale/huaran/pc/CheckBookUser.vue +112 -0
  77. package/src/filiale/huaran/pc/PaperList.vue +822 -0
  78. package/src/filiale/huaran/pc/PlanManage.vue +887 -0
  79. package/src/filiale/huaran/pc/checkPlanList.vue +419 -0
  80. package/src/filiale/huaran/pc/checkUserList.vue +867 -0
  81. package/src/filiale/huaran/pc.js +27 -0
  82. package/src/filiale/jiaxian/android/AddPlanItem.vue +447 -0
  83. package/src/filiale/jiaxian/android/PhoneUpUserinfo.vue +1229 -0
  84. package/src/filiale/jiaxian/android/SafecheckDevices.vue +6 -6
  85. package/src/filiale/jiaxian/android/SafecheckOrderV.vue +2807 -0
  86. package/src/filiale/jiaxian/android/SafecheckUserInfo.vue +784 -0
  87. package/src/filiale/jiaxian/android.js +4 -0
  88. package/src/filiale/kelai/pc/CheckPlanAreaList.vue +15 -7
  89. package/src/filiale/ruihua/android/SafecheckOrderV.vue +2747 -0
  90. package/src/filiale/ruihua/android/SafecheckUserInfo.vue +804 -0
  91. package/src/filiale/ruihua/android.js +11 -0
  92. package/src/filiale/shanxian/pc/checkUserList.vue +700 -700
  93. package/src/filiale/siyang/pc/CheckBookSearchArea.vue +645 -0
  94. package/src/filiale/siyang/pc/CheckPlanAreaList.vue +512 -0
  95. package/src/filiale/siyang/pc/CheckSearchUser.vue +982 -0
  96. package/src/filiale/siyang/pc/HiddenSituation.vue +167 -0
  97. package/src/filiale/siyang/pc/checkPlanList.vue +367 -0
  98. package/src/filiale/siyang/pc/checkUserList.vue +22 -18
  99. package/src/filiale/siyang/pc.js +5 -0
  100. package/src/filiale/tongchuan/android/Select.vue +421 -0
  101. package/src/filiale/tongchuan/android.js +1 -0
  102. package/src/filiale/tongchuan/pc/CheckPlanCountChartArea.vue +3 -1
  103. package/src/filiale/tongchuan/pc/DefectPaperWeiXiu.vue +6 -2
  104. package/src/filiale/tongchuan/pc/HiddenSituation.vue +3 -1
  105. package/src/filiale/tongchuan/pc/NewCheckpaper.vue +13 -22
  106. package/src/filiale/tongchuan/pc/PaperDefectMain.vue +1060 -1060
  107. package/src/filiale/tongchuan/pc/SelectCheckPlan.vue +5 -2
  108. package/src/filiale/tongchuan/utils/EventListener.js +29 -0
  109. package/src/filiale/tongchuan/utils/coerceBoolean.js +7 -0
  110. package/src/filiale/weinan/android/SafecheckDevices.vue +1 -1
  111. package/src/filiale/weinan/android/SafecheckOrderV.vue +1 -1
  112. package/src/filiale/weinan/pc/CheckBookSearchUserList.vue +735 -722
  113. package/src/filiale/weinan/pc/CheckDetail.vue +278 -278
  114. package/src/filiale/weinan/pc/DefectListNew.vue +617 -617
  115. package/src/filiale/weinan/pc/DefectMainNew.vue +63 -63
  116. package/src/filiale/weinan/pc/DefectPaperNew.vue +31 -0
  117. package/src/filiale/weinan/pc/DeviceChange.vue +1088 -0
  118. package/src/filiale/weinan/pc/checkUserList.vue +712 -776
  119. package/src/filiale/weinan/pc.js +47 -46
  120. package/src/filiale/wuan/android/SafecheckOrderV.vue +1 -0
  121. package/src/filiale/wuan/android/SafecheckUserInfo.vue +4 -0
  122. package/src/filiale/yangchunboneng/android/CurrentCreate.vue +1192 -1192
  123. package/src/filiale/yangchunboneng/android/DailyworkloadQuery.vue +472 -472
  124. package/src/filiale/yangchunboneng/android/safeHistoryLook.vue +473 -473
  125. package/src/filiale/yangchunboneng/pc/CheckBookSearchUser.vue +13 -11
  126. package/src/filiale/yangchunboneng/pc/CheckBookUser.vue +6 -6
  127. package/src/filiale/yangchunboneng/pc/CheckSearchUser.vue +10 -10
  128. package/src/filiale/yangchunboneng/pc/DefectPaperNew.vue +10 -10
  129. package/src/filiale/yangchunboneng/pc/PaperDefectMain.vue +6 -6
  130. package/src/filiale/yangchunboneng/pc/PaperList.vue +6 -6
  131. package/src/filiale/yuansheng/android/SafecheckDevices.vue +11 -1
  132. package/src/filiale/yuansheng/pc/NewCheckpaper.vue +10 -2
  133. package/src/main-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.js +24 -0
  134. package/src/safecheck-android.js +7 -0
  135. package/src/safecheck-page.js +10 -0
@@ -1,1192 +1,1192 @@
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/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
110
- <label class="font text-left">模糊查询</label>
111
- </div>
112
- <div class="col-xs-8" >
113
- <input class="search_input input-font"
114
- v-model=model.userinfo></input>
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"
124
- v-model=model.f_keyword condition="f_address like '%{}%'" />
125
- </div>
126
- </div>
127
- <div class="row app-row">
128
- <div class="col-xs-4">
129
- <img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
130
- <label for="f_userinfo_code" class="font text-left">用户编号:</label>
131
- </div>
132
- <div class="col-xs-8" >
133
- <input id="f_userinfo_code" class="search_input input-font"
134
- v-model=model.f_userinfo_code condition="f_userinfo_code like '%{}%'" />
135
- </div>
136
- </div>
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_user_name condition="f_user_name like '%{}%'" />
144
- </div>
145
- </div>
146
- <div class="row app-row">
147
- <div class="col-xs-4">
148
- <img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
149
- <label for="f_user_phone" class="font text-left">用户电话:</label>
150
- </div>
151
- <div class="col-xs-8" >
152
- <input id="f_user_phone" class="search_input input-font"
153
- v-model=model.f_user_phone condition="(f_user_phone like '%{}%' or f_user_phone2 like '%{}%')" />
154
- </div>
155
- </div>
156
- <div class="row app-row">
157
- <div class="col-xs-4">
158
- <img src="../../../assets/安检状态.png" style="width: 20px;margin-bottom: 5px" alt="">
159
- <label class="font text-left">用户证号:</label>
160
- </div>
161
- <div class="col-xs-8" >
162
- <input class="search_input input-font" v-model=model.f_enter_number condition="f_enter_number like '%{}%'" />
163
- </div>
164
- </div>
165
-
166
- <div class="row app-row" v-if="$parent.$parent.criteriaShow && !$parent.$parent.planName">
167
- <div class="col-xs-4">
168
- <img src="../../../assets/安检状态.png" style="width: 20px;margin-bottom: 5px" alt="">
169
- <label for="f_plan_name" class="font text-left">计划名称:</label>
170
- </div>
171
- <v-select
172
- id="f_plan_name"
173
- :value.sync="model.f_plan_name"
174
- class="input-font"
175
- :options='$parent.$parent.planNameOptions'
176
- placeholder='计划名称'
177
- :width="'60%'"
178
- v-model="model.f_plan_name"
179
- condition="f_plan_name like '%{}%'"
180
- close-on-select clear-button>
181
- </v-select>
182
- </div>
183
-
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 for="f_state" class="font text-left">是否已检:</label>
188
- </div>
189
- <v-select id="f_state"
190
- :value.sync="model.f_state"
191
- class="input-font"
192
- :options='$parent.$parent.check_states'
193
- placeholder='是否已检'
194
- :width="'60%'"
195
- v-model="model.f_state"
196
- condition="f_state='{}'"
197
- close-on-select clear-button>
198
- </v-select>
199
- </div>
200
- <div class="row app-row" v-if="$parent.$parent.criteriaShow">
201
- <div class="col-xs-4">
202
- <img src="../../../assets/是否已检.png" style="width: 20px;margin-bottom: 5px" alt="">
203
- <label for="f_state" class="font text-left">入户状态:</label>
204
- </div>
205
- <v-select id="f_state"
206
- :value.sync="model.f_last_check_state"
207
- :multiple="true"
208
- class="input-font"
209
- :options='$parent.$parent.last_check_states'
210
- placeholder='入户状态'
211
- :width="'60%'"
212
- v-model="model.f_last_check_state"
213
- condition="f_last_check_state in {}">
214
- </v-select>
215
- </div>
216
- <div class="row app-row" v-if="$parent.$parent.criteriaShow">
217
- <div class="col-xs-4">
218
- <img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
219
- <label class="font text-left">表&emsp;&emsp;号:</label>
220
- </div>
221
- <div class="col-xs-5" >
222
- <input class="search_input input-font"
223
- v-model=model.f_meter_no condition="f_meter_no like '%{}%'" />
224
- </div>
225
- <div class="col-xs-3">
226
- <button type="button" class="btn btn-lg btn-font btn-color" @click="$parent.$parent.scan()">扫码</button>
227
- </div>
228
- </div>
229
- <div class="row app-row" v-show="$parent.$parent.criteriaShow">
230
- <div class="col-xs-4">
231
- <img src="../../../assets/是否已检.png" style="width: 20px;margin-bottom: 5px" alt="">
232
- <label class="font text-left">预约时间:</label>
233
- </div>
234
- <datepicker id="f_start_date"
235
- placeholder= '起始时间'
236
- :value.sync="model.f_start_date"
237
- :disabled-days-of-Week="[]"
238
- v-model="model.f_start_date"
239
- class="input-font"
240
- :format="'yyyy-MM-dd HH:mm:ss'"
241
- :show-reset-button="reset"
242
- condition="f_prearranged_date > '{}'"
243
- >
244
- </datepicker>
245
- </div>
246
- <div class="row app-row" v-show="$parent.$parent.criteriaShow">
247
- <div class="col-xs-4">
248
- <img src="../../../assets/是否已检.png" style="width: 20px;margin-bottom: 5px" alt="">
249
- <label class="font text-left">预约时间:</label>
250
- </div>
251
- <datepicker id="f_end_date"
252
- placeholder= '结束时间'
253
- :value.sync="model.f_end_date"
254
- :disabled-days-of-Week="[]"
255
- v-model="model.f_end_date"
256
- class="input-font"
257
- :format="'yyyy-MM-dd HH:mm:ss'"
258
- :show-reset-button="reset"
259
- condition="f_prearranged_date < '{}'"
260
- >
261
- </datepicker>
262
- </div>
263
- <div class="row app-row" v-show="$parent.$parent.criteriaShow">
264
- <div class="col-xs-4">
265
- <img src="../../../assets/是否已检.png" style="width: 20px;margin-bottom: 5px" alt="">
266
- <label class="font text-left">首次通气时间:</label>
267
- </div>
268
- <datepicker id="f_start_date"
269
- placeholder= '起始时间'
270
- :value.sync="model.f_start_date1"
271
- :disabled-days-of-Week="[]"
272
- v-model="model.f_start_date1"
273
- class="input-font"
274
- :format="'yyyy-MM-dd HH:mm:ss'"
275
- :show-reset-button="reset"
276
- condition="f_subscribe_date > '{}'"
277
- >
278
- </datepicker>
279
- </div>
280
- <div class="row app-row" v-show="$parent.$parent.criteriaShow">
281
- <div class="col-xs-4">
282
- <img src="../../../assets/是否已检.png" style="width: 20px;margin-bottom: 5px" alt="">
283
- <label class="font text-left">首次通气时间:</label>
284
- </div>
285
- <datepicker id="f_end_date"
286
- placeholder= '结束时间'
287
- :value.sync="model.f_end_date1"
288
- :disabled-days-of-Week="[]"
289
- v-model="model.f_end_date1"
290
- class="input-font"
291
- :format="'yyyy-MM-dd HH:mm:ss'"
292
- :show-reset-button="reset"
293
- condition="f_subscribe_date < '{}'"
294
- >
295
- </datepicker>
296
- </div>
297
-
298
- <div class="row app-row" v-if="$parent.$parent.criteriaShow">
299
- <div class="col-xs-4">
300
- <img src="../../../assets/用户类型.png" style="width: 20px;margin-bottom: 5px" alt="">
301
- <label for="f_user_type" class="font text-left">用户类型:</label>
302
- </div>
303
- <v-select id="f_user_type" :value.sync="model.f_user_type" class="input-font"
304
- :width="'60%'"
305
- :options='$parent.$parent.user_types' placeholder='请选择用户类型'
306
- v-model="model.f_user_type" condition="f_user_type='{}'" close-on-select clear-button></v-select>
307
- </div>
308
- <div class="row app-row" v-if="$parent.$parent.criteriaShow">
309
- <div class="col-xs-6">
310
- <img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
311
- <label class="font text-left">到访不遇:</label>
312
- </div>
313
- <div class="col-xs-4" >
314
- <input class="search_input input-font" type="number"
315
- v-model=model.f_check_version condition="f_check_version >= '{}'" style="width:20%;display: inline" />
316
- <span><=x<=</span>
317
- <input class="search_input input-font" type="number"
318
- v-model=model.f_check_version1 condition="f_check_version <= '{}'" style="width:20%;display: inline"/>
319
- </div>
320
- </div>
321
- <div class="row app-row" v-if="$parent.$parent.criteriaShow">
322
- <div class="col-xs-6" style="text-align: center">
323
- <span class="font text-left">待办{{$parent.$parent.upcomingCount}}条</span>
324
- </div>
325
- <div class="col-xs-6" style="text-align: center">
326
- <span class="font text-left">已办{{$parent.$parent.doneCount}}条</span>
327
- </div>
328
- <div class="col-xs-6" style="text-align: center">
329
- <span class="font text-left">临时保存{{$parent.$parent.tempSaveCount}}条</span>
330
- </div>
331
- <div class="col-xs-6" style="text-align: center">
332
- <span class="font text-left">总共{{$parent.$parent.allPlanCount}}条</span>
333
- </div>
334
- </div>
335
-
336
- <div class="row text-center" style="margin-top: 20px;">
337
- <button type="button" class="btn btn-lg btn-font btn-color" style="width: 25%;" @click="$parent.$parent.selfSearch">查询</button>
338
- <!-- <button type="button" class="btn btn-lg btn-font btn-color" style="width: 25%; margin-left: 10px" @click="$parent.$parent.queryplanmany">转发</button>-->
339
- <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>
340
- <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">
341
- </div>
342
- <div class="col-sm-12">
343
-
344
- </div>
345
- <!--<div class="row app-btn">-->
346
- <!--<button class="btn btn-primary col-xs-6" type="button" @click="search"><span class="glyphicon glyphicon-search" style="margin-right: 20px;">查询</span></button>-->
347
- <!--</div>-->
348
- <div style="height:30px;"></div>
349
- </form>
350
- </div>
351
- </criteria>
352
- <list :model="model" partial='list'>
353
- <div partial>
354
- <div class="auto app-text" style="margin-top: 5px;">
355
- <div class="panel" style="padding: 10px 10px 5px 10px;">
356
- <div class="panel-body panel-self">
357
-
358
- <div class="col-xs-12">
359
- <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户编号:</b></p>
360
- <p class="panel-title col-xs-5 text-left input-font" style="width: 74%">{{ row.f_userinfo_code }}</p>
361
- <p class="panel-title col-xs-2 text-left input-font" style="width: 5%;float:right">
362
- <input type="checkbox" @click="$parent.$parent.$parent.setPlanParam(row.id, $event)"/>
363
- </p>
364
- </div>
365
- <div class="col-xs-12">
366
- <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户名称:</b></p>
367
- <p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{ row.f_user_name }}</p>
368
- </div>
369
- <div class="col-xs-12">
370
- <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>表号:</b></p>
371
- <p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{ row.f_meter_no }}</p>
372
- </div>
373
- <div class="col-xs-6">
374
- <p class="panel-title col-xs-5 text-left font"><b>用户类型:</b></p>
375
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_user_type }}
376
- </p>
377
- </div>
378
- <div class="col-xs-6">
379
- <p class="panel-title col-xs-5 text-left font"><b>计划名称:</b></p>
380
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_plan_name }}</p>
381
- </div>
382
- <!-- <div class="col-xs-6">-->
383
- <!-- <p class="panel-title col-xs-5 text-left font"><b>小区名称:</b></p>-->
384
- <!-- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_residential_area }}</p>-->
385
- <!-- </div>-->
386
- <div class="col-xs-12">
387
- <p class="panel-title text-left font" style="width: 23%;float: left"><b>用户电话:</b></p>
388
- <p class="panel-title text-left input-font" style="width: 77%">{{ row.f_user_phone2 ? row.f_user_phone2 : row.f_user_phone }}
389
- <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>
390
- </p>
391
- </div>
392
- <div class="col-xs-12">
393
- <p class="panel-title text-left font" style="width: 23%;float: left"><b>备用电话:</b></p>
394
- <p class="panel-title text-left input-font" style="width: 77%">{{ row.f_rent_phone}}
395
- <img v-if="row.f_rent_phone" src="../../../assets/phone.png" style="width: 6%" v-on:click.stop.prevent='$parent.$parent.$parent.makeAPhoneCall(row.f_rent_phone)'></img>
396
- </p>
397
- </div>
398
- <div class="col-xs-12">
399
- <p class="panel-title text-left font" style="width: 23%;float: left"><b>租户电话:</b></p>
400
- <p class="panel-title text-left input-font" style="width: 77%">{{ row.f_zuhu_phone }}
401
- <img v-if="row.f_zuhu_phone" src="../../../assets/phone.png" style="width: 6%" v-on:click.stop.prevent='$parent.$parent.$parent.makeAPhoneCall(row.f_zuhu_phone)'></img>
402
- </p>
403
- </div>
404
-
405
- <div class="col-xs-12">
406
- <p class="panel-title text-left font" style="width: 21%;float: left"><b>用户地址:</b></p>
407
- <p class="panel-title text-left input-font" style="width: 79%">{{ row.f_address }}</p>
408
- </div>
409
-
410
- <!-- <div class="row">-->
411
- <!-- <p class="panel-title col-xs-4 text-left font">计划年份</p>-->
412
- <!-- <p class="panel-title col-xs-8 text-left input-font">{{ row.f_plan_year }}</p>-->
413
- <!-- </div>-->
414
- <!-- <div class="row">-->
415
- <!-- <p class="panel-title col-xs-4 text-left font">计划月份</p>-->
416
- <!-- <p class="panel-title col-xs-8 text-left input-font">{{ row.f_plan_month }}</p>-->
417
- <!-- </div>-->
418
- <!-- <div class="row">-->
419
- <!-- <p class="panel-title col-xs-4 text-left font">预约时间</p>-->
420
- <!-- <p class="panel-title col-xs-8 text-left input-font">{{ row.f_prearranged_date }}</p>-->
421
- <!-- </div>-->
422
- <!--<div class="row">-->
423
- <!--<p class="panel-title col-xs-4 text-left font">上次安检状态</p>-->
424
- <!--<p class="panel-title col-xs-8 text-left input-font">{{ row.f_last_check_state }}</p>-->
425
- <!--</div>-->
426
- <div class="col-xs-6">
427
- <p class="panel-title col-xs-5 text-left font"><b>安检状态:</b></p>
428
- <p class="panel-title col-xs-7 text-left input-font">{{$parent.$parent.$parent.safeState(row.f_last_check_state)}}</p>
429
- </div>
430
- <div class="col-xs-6">
431
- <p class="panel-title col-xs-5 text-left font"><b>入户状态:</b></p>
432
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_last_check_state}}</p>
433
- </div>
434
- <div class="col-xs-6">
435
- <p class="panel-title col-xs-5 text-left font"><b>上传状态:</b></p>
436
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_upload_state }}</p>
437
- </div>
438
- <div class="col-xs-12" v-if="row.f_prearranged_date !=null && row.f_prearranged_date != ''" style="color: red">
439
- <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>预约时间:</b></p>
440
- <p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{ row.f_prearranged_date }}</p>
441
- </div>
442
- <div class="col-xs-6">
443
- <p class="panel-title col-xs-5 text-left font"><b>安检类型:</b></p>
444
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_safecheck_type }}</p>
445
- </div>
446
- <div class="col-xs-12">
447
- <p class="panel-title col-xs-5 text-left font"><b>到访不遇次数:</b></p>
448
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_check_version }}</p>
449
- </div>
450
- <div class="col-xs-12">
451
- <p class="panel-title col-xs-5 text-left font"><b>首次通气时间:</b></p>
452
- <p class="panel-title col-xs-7 text-left input-font ">{{ row.f_subscribe_date}}</p>
453
- </div>
454
- <div class="col-xs-12">
455
- <p class="panel-title col-xs-5 text-left font"><b>保费到期时间:</b></p>
456
- <p class="panel-title col-xs-7 text-left input-font " :style="$parent.$parent.$parent.compare(row.f_expiration_date)?'color:black':'color: red'">{{ row.f_expiration_date}}</p>
457
- </div>
458
- <!--<div class="col-xs-12">-->
459
- <!--<p class="panel-title col-xs-5 text-left font"><b>送气期限:</b></p>-->
460
- <!--<p class="panel-title col-xs-7 text-left input-font">{{timeSet(row.f_issue_time)}}</p>-->
461
- <!--</div>-->
462
- <div class="col-xs-12">
463
- <button type="button" name="button" class="btn btn-primary" style="background-color:#499edf;float: right" @click="$parent.$parent.$parent.inspect(row)">处理</button>
464
- <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>
465
- <button v-show="row.f_upload_state != '已传'" type="button" name="button" class="btn btn-primary" style="background-color:#499edf;float: right;margin-right:10px;" @click="$parent.$parent.$parent.reserve(row,$index)">预约</button>
466
- </div>
467
- <!-- <div class="row text-right" v-show="row.f_upload_state != '已传'" >-->
468
- <!-- <button type="button" class="btn yybtn-color" v-on:click.stop.prevent='$parent.$parent.$parent.reserve($index)'>预约</button>&nbsp;-->
469
- <!-- <button type="button" class="btn qxbtn-color" v-if ='row.f_prearranged_date'-->
470
- <!-- v-on:click.stop.prevent='$parent.$parent.$parent.cancelReserve($index, row.id)'>取消预约</button>-->
471
- <!-- </div>-->
472
- </div>
473
- </div>
474
- </div>
475
- </div>
476
- </list>
477
- </criteria-paged>
478
- <modal :show.sync="showModal">
479
- <div slot="modal-header" class="modal-header">
480
- <h4 class="modal-title">
481
- 选择预约时间
482
- </h4>
483
- </div>
484
- <div slot="modal-body" class="modal-body">
485
- <datepicker
486
- placeholder= '预约时间'
487
- :value.sync="f_preset_dt"
488
- :disabled-days-of-Week="[]"
489
- v-model="f_preset_dt"
490
- class="input-font"
491
- style="width: 60%"
492
- :show-rest-button="reset"
493
- :format="'yyyy-MM-dd HH:mm:ss'"
494
- >
495
- </datepicker>
496
- </div>
497
- <div slot="modal-footer" class="modal-footer">
498
- <button type="button" class="btn btn-default" @click="genuineReserve">确认</button>
499
- <button type="button" class="btn btn-default" @click="ReserveNodo">确认</button>
500
- </div>
501
- </modal>
502
- <!--<back-page :need-back='true' @flag="$back()"></back-page>-->
503
- <modal :show.sync="showModal2" v-ref:modal>
504
- <div slot="modal-header" class="modal-header">
505
- <h4 class="modal-title">
506
- 选择计划
507
- </h4>
508
- </div>
509
- <div slot="modal-body" class="modal-body">
510
- <div class="col-xs-12">
511
-
512
- <div class="col-xs-4">
513
- <v-select :value.sync="check" v-model='check'
514
- :value-single="true"
515
- class="select_list select"
516
- :options='checkers' placeholder='安检员'
517
- close-on-select width="100%"></v-select>
518
- </div>
519
-
520
- <div class="col-xs-1">
521
- <!--<label style="font-size:20px;line-height: 35px">人员 </label>-->
522
- </div>
523
- <div class="col-xs-4" style="padding-left: 2px">
524
- <input class="select-style" placeholder="计划名称" type="text" v-model="plan" style="border: 1px solid #93B2D3;height:34px;width: 100%;line-height: 35px"/>
525
- </div>
526
- <div class="col-xs-1" >
527
- <!--<label style="font-size: 20px;line-height: 35px">计划</label>-->
528
- </div>
529
- <!--<input placeholder="安检员" type="text" v-model="check" style="height:30px;width: 100px"/>-->
530
- <div class="col-xs-2" style="float: right">
531
- <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>
532
- </div>
533
- </div>
534
- <table class="table table_sy">
535
- <thead>
536
- <tr>
537
- <th style="width: 30px"></th>
538
- <th style="font-family: 'Adobe 黑体 Std R'">计划名称</th>
539
- </tr>
540
- </thead>
541
- <tbody>
542
- <tr v-for="row in planoption">
543
- <td @click="select(row, $index)" >{{row.selected==true ? '☆' : '&nbsp;&nbsp;&nbsp;&nbsp;'}}</td>
544
- <td @click="select(row, $index)" style="text-align: center">{{row.label}}</td>
545
-
546
-
547
- </tr>
548
- </tbody>
549
- </table>
550
- </div>
551
- <div slot="modal-footer" class="modal-footer">
552
- <button class="btn btn-default" @click="isok()">确认</button>
553
- <button class="btn btn-default" @click="iscancel()">取消</button>
554
- </div>
555
- </modal>
556
- <modal :show.sync="showModal3" v-ref:modal>
557
- <div slot="modal-header" class="modal-header">
558
- <h4 class="modal-title">
559
- 选择计划
560
- </h4>
561
- </div>
562
- <div slot="modal-body" class="modal-body">
563
- <div class="col-xs-12">
564
-
565
- <div class="col-xs-4">
566
- <v-select :value.sync="check" v-model='check'
567
- :value-single="true"
568
- class="select_list select"
569
- :options='checkers' placeholder='安检员'
570
- close-on-select width="100%"></v-select>
571
- </div>
572
-
573
- <div class="col-xs-1">
574
- <!--<label style="font-size:20px;line-height: 35px">人员 </label>-->
575
- </div>
576
- <div class="col-xs-4" style="padding-left: 2px">
577
- <input class="select-style" placeholder="计划名称" type="text" v-model="plan" style="border: 1px solid #93B2D3;height:34px;width: 100%;line-height: 35px"/>
578
- </div>
579
- <div class="col-xs-1" >
580
- <!--<label style="font-size: 20px;line-height: 35px">计划</label>-->
581
- </div>
582
- <!--<input placeholder="安检员" type="text" v-model="check" style="height:30px;width: 100px"/>-->
583
- <div class="col-xs-2" style="float: right">
584
- <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>
585
- </div>
586
- </div>
587
- <table class="table table_sy">
588
- <thead>
589
- <tr>
590
- <th style="width: 30px"></th>
591
- <th style="font-family: 'Adobe 黑体 Std R'">计划名称</th>
592
- </tr>
593
- </thead>
594
- <tbody>
595
- <tr v-for="row in planoption">
596
- <td @click="select(row, $index)" >{{row.selected==true ? '☆' : '&nbsp;&nbsp;&nbsp;&nbsp;'}}</td>
597
- <td @click="select(row, $index)" style="text-align: center">{{row.label}}</td>
598
-
599
-
600
- </tr>
601
- </tbody>
602
- </table>
603
- </div>
604
- <div slot="modal-footer" class="modal-footer">
605
- <button class="btn btn-default" @click="manyisok()">确认</button>
606
- <button class="btn btn-default" @click="iscancel()">取消</button>
607
- </div>
608
- </modal>
609
- </div>
610
-
611
- </template>
612
-
613
- <script>
614
- import LocalPagedList from '../../../plugins/LocalPagedList'
615
- import Vue from 'vue'
616
- import { PagedList,HttpResetClass } from 'vue-client'
617
- import * as Util from '../../Util'
618
- import co from 'co'
619
- import {toStandardTimeString} from "safecheck-client/src/filiale/Util";
620
- let select = function * (self) {
621
- let http = new HttpResetClass()
622
- http.load('POST', `${self.$androidUtil.getProxyUrl()}/rs/search`, {
623
- source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))',
624
- userid: Vue.user.id
625
- }, {resolveMsg: null, rejectMsg: null}).then((res) => {
626
- //tag
627
- self.checkers.push({label:'全部',value:''})
628
- res.data.forEach((checker)=>{
629
- self.checkers.push({label:checker.name,value:checker.id})
630
- })
631
- })
632
- }
633
- export default {
634
- title: '无计划安检查询',
635
- props: ['planName'],
636
- data() {
637
- return {
638
- f_filialeids:'('+Vue.user.orgid+')',
639
- //f_filialeids:'(305)',
640
- planparam:[],
641
- check:'',
642
- plan:'',
643
- planid:'',
644
- model:Vue.android? new LocalPagedList('androidGetuserinfo',20,{condition:'this.condition'}): new PagedList( 'AndroidRest/rs/sql/androidGetuserinfo',20,{condition:'this.condition'}),
645
- showModal: false,
646
- showModal2:false,
647
- showModal3:false,
648
- needid:'',
649
- criteriaShow: false,
650
- planoption:[],
651
- condition:'',
652
- checkers:[],
653
- param: null,
654
- f_preset_dt : Util.toStandardTimeString(),
655
- flow_direction:[
656
- {label: '请选择挂表方式', value: ''},
657
- {label: '左表', value: '左表'},
658
- {label: '右表', value: '右表'}
659
- ],
660
- check_states: [
661
- {label: '请选择安检状态', value: ''},
662
- {label: '未检', value: '未检'},
663
- {label: '已检', value: '已检'},
664
- ],
665
- last_check_states: Vue.$appdata.getParam('安检状态'),
666
- upload_states: [
667
- {label: '请选择上传状态', value: ''},
668
- {label: '未传', value: '未传'},
669
- {label: '已传', value: '已传'}
670
- ],
671
- user_types: [
672
- {label: '请选择用户类型', value: ''},
673
- {label: '民用', value: '民用'},
674
- {label: '非民用', value: '非民用'},
675
- ],
676
- verify_state: [
677
- {label: '请选择审核状态', value: ''},
678
- {label: '未审核', value: '未审核'},
679
- {label: '打回', value: '打回'}
680
- ],
681
- residentialAreaOptions: [],
682
- buildOptions: [],
683
- unitOptions: [],
684
- planNameOptions: [],
685
- upcomingCount: 0,
686
- doneCount: 0,
687
- tempSaveCount: 0,
688
- allPlanCount: 0
689
- }
690
- },
691
- ready(){
692
- this.getAllArea()
693
- this.getAllPlanName()
694
- this.selfSearch()
695
- let gen = select(this)
696
- co(gen)
697
- },
698
- mounted(){
699
- //tag
700
- if (window.history && window.history.pushState) {
701
- history.pushState(null, null, document.URL);
702
- window.addEventListener('popstate', this.fun, false);//false阻止默认事件
703
- }
704
- },
705
- destroyed(){
706
- //tag
707
- window.removeEventListener('popstate', this.fun, false);//false阻止默认事件
708
- },
709
- methods: {
710
- safeState(state){
711
- if(state=='' ||state=='到访不遇' ||state=='拒检' ||state==null){
712
- return '未检'
713
- }else{
714
- return '已检'
715
- }
716
- },
717
- compare(val){
718
- //判断是否超期,val格式为 yyyy-MM-dd HH:mm:ss的字符串
719
- if(val){
720
- let now = new Date()
721
- let last = new Date(val)
722
- if(last.getTime() >now.getTime() ){
723
- return true
724
- }else{
725
- return false
726
- }
727
- }
728
- },
729
- ReserveNodo(){
730
- this.showModal=false
731
- this.f_preset_dt = Util.toStandardTimeString()
732
- },
733
- scan(){
734
- HostApp.__this__=this,
735
- HostApp.scanCode({callback:"javascript:HostApp.__this__.getCode();"})
736
- },
737
- getCode(){
738
- const datapa = HostApp.getCode().data;
739
- //tag
740
- this.$refs.paged.$refs.cri.model.f_meter_no = datapa
741
-
742
- },
743
- fun () {
744
- //tag
745
- //tag
746
- },
747
- iscancel(){
748
- this.showModal2=false
749
- this.showModal3=false
750
- this.planoption=[]
751
- },
752
- timeSet(val){
753
- return val
754
- },
755
- async isok(){
756
- if(this.planoption.length==0){
757
- this.$showMessage("请选择计划")
758
- return false
759
- }
760
- for (let i = 0; i <this.planoption.length ; i++) {
761
- if (this.planoption[i]["selected"]==true){
762
- this.planid=this.planoption[i].value
763
- break
764
- }
765
- }
766
- if(this.planid==''){
767
- this.$showMessage("请选择计划")
768
- return false
769
- }
770
- await this.okput()
771
- },
772
- async manyisok(){
773
- if(this.planoption.length==0){
774
- this.$showMessage("请选择计划")
775
- return false
776
- }
777
- for (let i = 0; i <this.planoption.length ; i++) {
778
- if (this.planoption[i]["selected"]==true){
779
- this.planid=this.planoption[i].value
780
- break
781
- }
782
- }
783
- if(this.planid==''){
784
- this.$showMessage("请选择计划")
785
- return false
786
- }
787
- await this.manyokput()
788
- },
789
- changenull(){
790
- this.showModal2=false
791
- this.showModal3=false
792
- this.planoption=[]
793
- this.plan=''
794
- this.check=''
795
- },
796
- async okput(){
797
- let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/logic/UpCheckPlanItem`, {data:{
798
-
799
- condition:`i.id='`+this.needid+`'`,
800
- f_plan_id:this.planid,
801
- switchCheckAll:false,
802
- checkAll:false,
803
- f_operator:Vue.user.name
804
- }
805
- })
806
- await this.changenull()
807
- await this.getNewOrder()
808
- },
809
- async manyokput(){
810
- let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/logic/UpCheckPlanItem`, {data:{
811
- columnName:"i.id",
812
- condition:"1=1",
813
- f_plan_id:this.planid,
814
- switchCheckAll:true,
815
- param:this.planparam,
816
- checkAll:false,
817
- f_operator:Vue.user.name
818
- }
819
- })
820
- await this.changenull()
821
- await this.getNewOrder()
822
- },
823
- async plansearch(){
824
- this.planoption=[]
825
- let condition= ` f_plan_year=${new Date().getFullYear()}`
826
- if(this.check){
827
- condition += ` and f_checker_id= '${this.check}'`
828
- }
829
- if(this.plan){
830
- condition += ` and f_plan_name like '%${this.plan}%'`
831
- }
832
- let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/预约计划下发`, {data:{
833
- condition:condition,
834
- f_filialeids:this.f_filialeids,
835
- groupitem:'',
836
- orderitem:'id'
837
- }})
838
- let resoult=res.data
839
- for (let i = 0; i < resoult.length; i++) {
840
- this.planoption.push({label: resoult[i].f_plan_name,selected:false, value: resoult[i].id})
841
- }
842
- },
843
-
844
- select(row, idx) {
845
- this.$set('planoption[' + idx + '].selected', true)
846
- for (let i = 0; i <this.planoption.length ; i++) {
847
- if (i!=idx){
848
- this.planoption[i]["selected"]=false
849
- }
850
- }
851
- },
852
- planclose(){
853
- this.showModal2=false
854
- this.showModal3=false
855
- },
856
- queryplan(val){
857
- this.needid=val
858
- this.showModal2 = true
859
- },
860
- queryplanmany(){
861
-
862
- this.showModal3 = true
863
- },
864
- reload(){
865
- // this.getAllArea()
866
- // this.getAllPlanName()
867
- this.selfSearch()
868
- },
869
- cancelReserve (idx, id) {
870
- if(Vue.android){
871
- let res = this.$androidUtil.bzLogic('BookingCheck', {dt: '', id: id})
872
- this.$set('model.rows[' + idx + '].f_prearranged_date', null)
873
- if (res.code == 200) {
874
- this.$showMessage("取消预约成功")
875
- }
876
- }else {
877
- this.$androidUtil.bzLogic('PCbookingCheck', {dt: '', id: id}).then((repanse) => {
878
- this.$set('model.rows[' + idx + '].f_prearranged_date', null)
879
- if (repanse.data.code == 200) {
880
- alert("取消预约成功!")
881
- }
882
- })
883
- }},
884
- genuineReserve () {
885
- if (!this.f_preset_dt) {
886
- this.$showMessage('请选择一个日期')
887
- return
888
- }
889
- let res = this.$androidUtil.bzLogic('PCbookingCheck', {id: this.model.rows[this.param].id, dt: this.f_preset_dt})
890
- if(res.code == 200) {
891
- this.$set('model.rows[' + this.param + '].f_prearranged_date', this.f_preset_dt)
892
- this.showModal = false
893
- this.$showMessage("预约成功!")
894
- }else{
895
- this.$showMessage("预约失败,请重新预约!")
896
- }
897
- },
898
- inspect(row) {
899
- var _this = this
900
- let http = new HttpResetClass()
901
- http.load('POST',`${this.$androidUtil.getProxyUrl()}/rs/sql/singleTable`, {data: {
902
- items: 'id',
903
- tablename: 't_check_plan_item',
904
- condition: `id = '${row.id}'`
905
- }}, {resolveMsg: null, rejectMsg: null}).then((getcheckplan) => {
906
- console.log('getcheckplan=', JSON.stringify(getcheckplan))
907
- this.getcheckplandata = getcheckplan.data[0]
908
- if(this.getcheckplandata){
909
- if (row.f_upload_state == '未传' || row.f_last_check_state === '到访不遇' || row.f_last_check_state === '拒检'|| (row.f_upload_state == '已传' && row.f_no_checkplan != '无计划安检' ) ) {
910
- _this.$resetpost(`${_this.$androidUtil.getProxyUrl()}/rs/sql/查询计划项表信息`, {data: {f_userid: row.f_userinfoid}},{resolveMsg: null,rejectMsg: null}).then((response) => {
911
- row['f_plan_meters'] = response.data
912
- var pardate = {
913
- _this:_this,
914
- title:'安全检查',
915
- safe:true
916
- }
917
- _this.$dispatch('gotoson',pardate)
918
- //tag
919
- _this.$goto('safecheck-order-v', {f_plan_id: row.f_plan_id, item: row, role: 'inspect',parentPage:'CurrentCreate'}, 'self', _this.reload)
920
- }).catch ((msg)=>{
921
- this.$showMessage("网络异常,请检查网络后再试!")
922
- })
923
- }else{
924
- this.$showMessage("该安检单已被上传!")
925
- }
926
- }else {
927
- this.$showMessage("该用户安检单已被移除,请联系管理员确认!")
928
- }
929
- })
930
- },
931
- makeAPhoneCall(phoneNumber) {
932
- this.$androidUtil.makeAPhoneCall(phoneNumber)
933
- },
934
- reserve (rowdata,idx) {
935
- this.param = idx
936
- this.showModal = true
937
- },
938
- search(args) {
939
- this.model.rows = []
940
- this.model.search(args.condition, args.model)
941
- },
942
- selfSearch () {
943
- this.getPlanCount()
944
- let condition = ""
945
- if (Array.isArray(this.$refs.paged.$refs.cri.model.f_residential_area) && this.$refs.paged.$refs.cri.model.f_residential_area.length >0){
946
- condition += " and ti.f_residential_area = '"+this.$refs.paged.$refs.cri.model.f_residential_area[0]+"'"
947
- }else if(this.$refs.paged.$refs.cri.model.f_residential_area instanceof String && this.$refs.paged.$refs.cri.model.f_residential_area){
948
- condition += " and ti.f_residential_area = '"+this.$refs.paged.$refs.cri.model.f_residential_area+"'"
949
- }
950
- if(this.$refs.paged.$refs.cri.model.f_building)
951
- condition += ` and ti.f_building = '${this.$refs.paged.$refs.cri.model.f_building}'`
952
- if(this.$refs.paged.$refs.cri.model.f_unit)
953
- condition += ` and ti.f_unit = '${this.$refs.paged.$refs.cri.model.f_unit}'`
954
- if (this.planName){
955
- condition += " and f_plan_name like '%"+this.planName +"%'"
956
- }else {
957
- if(this.$refs.paged.$refs.cri.model.f_plan_name)
958
- condition += " and f_plan_name like '%"+this.$refs.paged.$refs.cri.model.f_plan_name +"%'"
959
- }
960
- // if(this.$refs.paged.$refs.cri.model.f_plan_year)
961
- // condition += " and f_plan_year = '"+this.$refs.paged.$refs.cri.model.f_plan_year +"'"
962
- // if(this.$refs.paged.$refs.cri.model.f_plan_month)
963
- // condition += " and f_plan_month = '"+this.$refs.paged.$refs.cri.model.f_plan_month +"'"
964
- if(this.$refs.paged.$refs.cri.model.f_userinfo_code)
965
- condition += " and ti.f_userinfo_code like '%"+this.$refs.paged.$refs.cri.model.f_userinfo_code+"%'"
966
- if(this.$refs.paged.$refs.cri.model.f_keyword)
967
- condition += " and ti.f_address like '%"+this.$refs.paged.$refs.cri.model.f_keyword+"%'"
968
- if(this.$refs.paged.$refs.cri.model.f_user_name)
969
- condition += " and ti.f_user_name like '%"+this.$refs.paged.$refs.cri.model.f_user_name+"%'"
970
- if(this.$refs.paged.$refs.cri.model.f_state[0] =='已检'){
971
- condition += " and ti.f_last_check_state in ('入户','停用','拆除','未通气')"
972
- }
973
- if(this.$refs.paged.$refs.cri.model.f_state[0] =='未检'){
974
- condition += " and ti.f_last_check_state not in ('入户','停用','拆除','未通气')"
975
- }
976
- // if(this.$refs.paged.$refs.cri.model.f_last_state[0])
977
- // condition += " and ti.f_last_check_state='"+this.$refs.paged.$refs.cri.model.f_last_state[0]+"'"
978
- if(this.$refs.paged.$refs.cri.model.f_user_type[0])
979
- condition += " and ti.f_user_type='"+this.$refs.paged.$refs.cri.model.f_user_type[0]+"'"
980
- if(this.$refs.paged.$refs.cri.model.f_meter_no)
981
- condition += " and tm.f_meter_no like '%"+this.$refs.paged.$refs.cri.model.f_meter_no+"%'"
982
- // if(this.$refs.paged.$refs.cri.model.f_flow_direction[0])
983
- // condition += " and tm.f_flow_direction = '"+this.$refs.paged.$refs.cri.model.f_flow_direction[0]+"'"
984
-
985
- if(this.$refs.paged.$refs.cri.model.f_enter_number)
986
- condition += " and ti.f_enter_number like '%"+this.$refs.paged.$refs.cri.model.f_enter_number+"%'"
987
- if(this.$refs.paged.$refs.cri.model.f_check_version)
988
- condition += " and ti.f_check_version >= "+this.$refs.paged.$refs.cri.model.f_check_version
989
- if(this.$refs.paged.$refs.cri.model.f_start_date)
990
- condition += " and ti.f_prearranged_date > '"+this.$refs.paged.$refs.cri.model.f_start_date + "'"
991
- if(this.$refs.paged.$refs.cri.model.f_end_date)
992
- condition += " and ti.f_prearranged_date < '"+this.$refs.paged.$refs.cri.model.f_end_date + "'"
993
- if(this.$refs.paged.$refs.cri.model.f_start_date1)
994
- condition += " and f_subscribe_date > '"+this.$refs.paged.$refs.cri.model.f_start_date1 + "'"
995
- if(this.$refs.paged.$refs.cri.model.f_end_date1)
996
- condition += " and f_subscribe_date < '"+this.$refs.paged.$refs.cri.model.f_end_date1 + "'"
997
- if(this.$refs.paged.$refs.cri.model.f_check_version1)
998
- condition += " and ti.f_check_version <= "+this.$refs.paged.$refs.cri.model.f_check_version1
999
-
1000
- if(this.$refs.paged.$refs.cri.model.f_user_phone){
1001
- condition += ` and (ti.f_user_phone like '%${this.$refs.paged.$refs.cri.model.f_user_phone}%' or f_zuhu_phone like '%${this.$refs.paged.$refs.cri.model.f_user_phone}%' or f_rent_phone like '%${this.$refs.paged.$refs.cri.model.f_user_phone}%' or f_user_phone2 like '%${this.$refs.paged.$refs.cri.model.f_user_phone}%')`
1002
- }
1003
-
1004
- if(this.$refs.paged.$refs.cri.model.f_last_check_state.length > 0){
1005
- let last_check_state = ''
1006
- this.$refs.paged.$refs.cri.model.f_last_check_state.forEach((item) => {
1007
- last_check_state = last_check_state + `'${item}',`
1008
- })
1009
- last_check_state = last_check_state.slice(0, -1)
1010
- condition += " and ti.f_last_check_state in ("+last_check_state+")"
1011
- }
1012
- if(this.$refs.paged.$refs.cri.model.userinfo){
1013
- condition += ` and (f_userinfo_code like '%${this.$refs.paged.$refs.cri.model.userinfo}%' or f_user_name like '%${this.$refs.paged.$refs.cri.model.userinfo}%' or f_user_phone like '%${this.$refs.paged.$refs.cri.model.userinfo}%' or f_meter_no like '%${this.$refs.paged.$refs.cri.model.userinfo}%' or f_address like '%${this.$refs.paged.$refs.cri.model.userinfo}%' or f_zuhu_phone like '%${this.$refs.paged.$refs.cri.model.userinfo}%' or f_rent_phone like '%${this.$refs.paged.$refs.cri.model.userinfo}%' or f_user_phone2 like '%${this.$refs.paged.$refs.cri.model.userinfo}%')`
1014
- }
1015
- if(this.$refs.paged.$refs.cri.model.f_state[0] ==''){
1016
- this.model.search("((f_complete = '' or f_complete = null or f_complete = '未完成' or f_complete = '已完成') or (f_state = '未检' or f_state = '已检') or (f_last_check_state = '到访不遇' or f_last_check_state = '拒检' )) and ti.f_no_checkplan = '有计划安检'" + condition)
1017
- }else{
1018
- this.model.search("((f_complete = '' or f_complete = null or f_complete = '未完成' or f_complete = '已完成') or (f_state = '未检' or f_state = '已检')) and ti.f_no_checkplan = '有计划安检'" + condition)
1019
- }
1020
- },
1021
- getNewOrder(){
1022
- HostApp.__this__ = this
1023
- HostApp.logicWithHint({
1024
- // logic别名,key必须为logic
1025
- 'logic': 'SafeCheckServiceTimeOut',
1026
- // 回调执行方法名,key必须为callback
1027
- 'callback': 'javascript:HostApp.__this__.getNewOrderCallBack()',
1028
- // logic执行需要的业务参数
1029
- 'data': {params: ''},
1030
- // 固定key,代表是否将logic执行结果作为参数传入回调方法,1代表true,0代表false,
1031
- // 执行回调方法传入key为backresult
1032
- // 如需额外拼接参数,写在logic返回值的params,例如xxlogic返回:{"params": "success"}
1033
- 'backresult': 1
1034
- })
1035
- },
1036
- getNewOrderCallBack() {
1037
- this.selfSearch()
1038
- this.getAllArea()
1039
- this.getAllPlanName()
1040
- },
1041
- hidden() {
1042
- this.criteriaShow = !this.criteriaShow
1043
- },
1044
- getAllArea(){
1045
- this.residentialAreaOptions = []
1046
- this.buildOptions = []
1047
- this.unitOptions = []
1048
- this.$refs.paged.$refs.cri.model.f_residential_area = ''
1049
- this.$refs.paged.$refs.cri.model.f_building = ''
1050
- this.$refs.paged.$refs.cri.model.f_unit = ''
1051
- let criteria = {
1052
- items: 'f_residential_area',
1053
- tablename: 't_check_plan_item',
1054
- condition: `f_residential_area IS NOT NULL AND f_residential_area != '' `,
1055
- groupitem: 'f_residential_area'
1056
- }
1057
- let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
1058
- //tag)
1059
- if(result.code == 200){
1060
- result.data.rows.forEach(item => this.residentialAreaOptions.push({label:item.f_residential_area,value:item.f_residential_area}))
1061
- }
1062
- //tag)
1063
- },
1064
- getbuilds(f_residential_area){
1065
- //tag)
1066
- this.buildOptions = []
1067
- this.unitOptions = []
1068
- this.$refs.paged.$refs.cri.model.f_building = ''
1069
- this.$refs.paged.$refs.cri.model.f_unit = ''
1070
- if(!f_residential_area){
1071
- return
1072
- }
1073
- let criteria = {
1074
- items: 'f_building',
1075
- tablename: 't_check_plan_item',
1076
- condition: `f_building IS NOT NULL AND f_building != '' AND f_residential_area = '${f_residential_area}'`,
1077
- groupitem: 'f_building order by f_building+0'
1078
- }
1079
- let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
1080
- if(result.code == 200){
1081
- result.data.rows.forEach(item => this.buildOptions.push({label:item.f_building,value:item.f_building}))
1082
- }
1083
- this.buildOptions.sort((a,b)=>{
1084
- return Number(a.label)- Number(b.label)
1085
- })
1086
- //tag)
1087
- },
1088
- getUnits(f_building){
1089
- f_building = f_building[0]
1090
- //tag)
1091
- this.unitOptions = []
1092
- this.$refs.paged.$refs.cri.model.f_unit = ''
1093
- if(!f_building){
1094
- return
1095
- }
1096
- let criteria = {
1097
- items: 'f_unit',
1098
- tablename: 't_check_plan_item',
1099
- condition: `f_unit IS NOT NULL AND f_unit != '' AND f_residential_area = '${this.$refs.paged.$refs.cri.model.f_residential_area}' AND f_building = '${f_building}'`,
1100
- groupitem: 'f_unit'
1101
- }
1102
- let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
1103
- if(result.code == 200){
1104
- result.data.rows.forEach(item => this.unitOptions.push({label:item.f_unit,value:item.f_unit}))
1105
- }
1106
- this.unitOptions.sort((a,b)=>{
1107
- return Number(a.label)- Number(b.label)
1108
- })
1109
- },
1110
- getPlanCount(){
1111
- this.upcomingCount = 0
1112
- this.tempSaveCount = 0
1113
- this.doneCount = 0
1114
- this.allPlanCount = 0
1115
- let criteria = {
1116
- items: 'count(id) count',
1117
- tablename: 't_check_plan_item',
1118
- condition: `f_state = '未检'`,
1119
- groupitem: 'f_state'
1120
- }
1121
- let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
1122
- if(result.code && result.code == 200){
1123
- if(result.data.rows[0] && !isNaN(result.data.rows[0].count)) {
1124
- this.upcomingCount = result.data.rows[0].count
1125
- }
1126
- }
1127
- criteria = {
1128
- items: 'count(id) count',
1129
- tablename: 't_check_plan_item',
1130
- condition: `(f_complete = '' or f_complete is null or f_complete = '未完成') AND f_state = '已检'`,
1131
- groupitem: 'f_state'
1132
- }
1133
- result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
1134
- if(result.code && result.code == 200){
1135
- if(result.data.rows[0] && !isNaN(result.data.rows[0].count)){
1136
- this.tempSaveCount = result.data.rows[0].count
1137
- }
1138
- }
1139
- criteria = {
1140
- items: 'count(id) count',
1141
- tablename: 't_check_plan_item',
1142
- condition: `f_complete = '已完成' AND f_state = '已检'`,
1143
- groupitem: 'f_state'
1144
- }
1145
- result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
1146
- if(result.code && result.code == 200){
1147
- if(result.data.rows[0] && !isNaN(result.data.rows[0].count)){
1148
- this.doneCount = result.data.rows[0].count
1149
- }
1150
- }
1151
- this.allPlanCount = this.upcomingCount + this.tempSaveCount + this.doneCount
1152
-
1153
- //tag
1154
- //tag
1155
- //tag
1156
- //tag
1157
- },
1158
- getAllPlanName(){
1159
- this.planNameOptions = []
1160
- this.$refs.paged.$refs.cri.model.f_plan_name = ''
1161
- let criteria = {
1162
- items: 'f_plan_name',
1163
- tablename: 't_check_plan',
1164
- condition: `f_plan_name IS NOT NULL AND f_plan_name != ''`,
1165
- groupitem: 'f_plan_name'
1166
- }
1167
- let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
1168
- //tag)
1169
- if(result.code == 200){
1170
- result.data.rows.forEach(item => this.planNameOptions.push({label:item.f_plan_name,value:item.f_plan_name}))
1171
- }
1172
- //tag)
1173
- },
1174
- setPlanParam(detailsType, event) {
1175
- if (event.srcElement.checked) {
1176
- this.planparam.push(detailsType)
1177
- //tag
1178
- } else {
1179
- if(this.planparam.length>0){
1180
- let planid= this.planparam.findIndex((value) => {
1181
- return value === detailsType
1182
- })
1183
- this.planparam.splice(planid, 1)
1184
- //tag
1185
-
1186
- }
1187
-
1188
- }
1189
- }
1190
- }
1191
- }
1192
- </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/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
110
+ <label class="font text-left">模糊查询</label>
111
+ </div>
112
+ <div class="col-xs-8" >
113
+ <input class="search_input input-font"
114
+ v-model=model.userinfo></input>
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"
124
+ v-model=model.f_keyword condition="f_address like '%{}%'" />
125
+ </div>
126
+ </div>
127
+ <div class="row app-row">
128
+ <div class="col-xs-4">
129
+ <img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
130
+ <label for="f_userinfo_code" class="font text-left">用户编号:</label>
131
+ </div>
132
+ <div class="col-xs-8" >
133
+ <input id="f_userinfo_code" class="search_input input-font"
134
+ v-model=model.f_userinfo_code condition="f_userinfo_code like '%{}%'" />
135
+ </div>
136
+ </div>
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_user_name condition="f_user_name like '%{}%'" />
144
+ </div>
145
+ </div>
146
+ <div class="row app-row">
147
+ <div class="col-xs-4">
148
+ <img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
149
+ <label for="f_user_phone" class="font text-left">用户电话:</label>
150
+ </div>
151
+ <div class="col-xs-8" >
152
+ <input id="f_user_phone" class="search_input input-font"
153
+ v-model=model.f_user_phone condition="(f_user_phone like '%{}%' or f_user_phone2 like '%{}%')" />
154
+ </div>
155
+ </div>
156
+ <div class="row app-row">
157
+ <div class="col-xs-4">
158
+ <img src="../../../assets/安检状态.png" style="width: 20px;margin-bottom: 5px" alt="">
159
+ <label class="font text-left">用户证号:</label>
160
+ </div>
161
+ <div class="col-xs-8" >
162
+ <input class="search_input input-font" v-model=model.f_enter_number condition="f_enter_number like '%{}%'" />
163
+ </div>
164
+ </div>
165
+
166
+ <div class="row app-row" v-if="$parent.$parent.criteriaShow && !$parent.$parent.planName">
167
+ <div class="col-xs-4">
168
+ <img src="../../../assets/安检状态.png" style="width: 20px;margin-bottom: 5px" alt="">
169
+ <label for="f_plan_name" class="font text-left">计划名称:</label>
170
+ </div>
171
+ <v-select
172
+ id="f_plan_name"
173
+ :value.sync="model.f_plan_name"
174
+ class="input-font"
175
+ :options='$parent.$parent.planNameOptions'
176
+ placeholder='计划名称'
177
+ :width="'60%'"
178
+ v-model="model.f_plan_name"
179
+ condition="f_plan_name like '%{}%'"
180
+ close-on-select clear-button>
181
+ </v-select>
182
+ </div>
183
+
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 for="f_state" class="font text-left">是否已检:</label>
188
+ </div>
189
+ <v-select id="f_state"
190
+ :value.sync="model.f_state"
191
+ class="input-font"
192
+ :options='$parent.$parent.check_states'
193
+ placeholder='是否已检'
194
+ :width="'60%'"
195
+ v-model="model.f_state"
196
+ condition="f_state='{}'"
197
+ close-on-select clear-button>
198
+ </v-select>
199
+ </div>
200
+ <div class="row app-row" v-if="$parent.$parent.criteriaShow">
201
+ <div class="col-xs-4">
202
+ <img src="../../../assets/是否已检.png" style="width: 20px;margin-bottom: 5px" alt="">
203
+ <label for="f_state" class="font text-left">入户状态:</label>
204
+ </div>
205
+ <v-select id="f_state"
206
+ :value.sync="model.f_last_check_state"
207
+ :multiple="true"
208
+ class="input-font"
209
+ :options='$parent.$parent.last_check_states'
210
+ placeholder='入户状态'
211
+ :width="'60%'"
212
+ v-model="model.f_last_check_state"
213
+ condition="f_last_check_state in {}">
214
+ </v-select>
215
+ </div>
216
+ <div class="row app-row" v-if="$parent.$parent.criteriaShow">
217
+ <div class="col-xs-4">
218
+ <img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
219
+ <label class="font text-left">表&emsp;&emsp;号:</label>
220
+ </div>
221
+ <div class="col-xs-5" >
222
+ <input class="search_input input-font"
223
+ v-model=model.f_meter_no condition="f_meter_no like '%{}%'" />
224
+ </div>
225
+ <div class="col-xs-3">
226
+ <button type="button" class="btn btn-lg btn-font btn-color" @click="$parent.$parent.scan()">扫码</button>
227
+ </div>
228
+ </div>
229
+ <div class="row app-row" v-show="$parent.$parent.criteriaShow">
230
+ <div class="col-xs-4">
231
+ <img src="../../../assets/是否已检.png" style="width: 20px;margin-bottom: 5px" alt="">
232
+ <label class="font text-left">预约时间:</label>
233
+ </div>
234
+ <datepicker id="f_start_date"
235
+ placeholder= '起始时间'
236
+ :value.sync="model.f_start_date"
237
+ :disabled-days-of-Week="[]"
238
+ v-model="model.f_start_date"
239
+ class="input-font"
240
+ :format="'yyyy-MM-dd HH:mm:ss'"
241
+ :show-reset-button="reset"
242
+ condition="f_prearranged_date > '{}'"
243
+ >
244
+ </datepicker>
245
+ </div>
246
+ <div class="row app-row" v-show="$parent.$parent.criteriaShow">
247
+ <div class="col-xs-4">
248
+ <img src="../../../assets/是否已检.png" style="width: 20px;margin-bottom: 5px" alt="">
249
+ <label class="font text-left">预约时间:</label>
250
+ </div>
251
+ <datepicker id="f_end_date"
252
+ placeholder= '结束时间'
253
+ :value.sync="model.f_end_date"
254
+ :disabled-days-of-Week="[]"
255
+ v-model="model.f_end_date"
256
+ class="input-font"
257
+ :format="'yyyy-MM-dd HH:mm:ss'"
258
+ :show-reset-button="reset"
259
+ condition="f_prearranged_date < '{}'"
260
+ >
261
+ </datepicker>
262
+ </div>
263
+ <div class="row app-row" v-show="$parent.$parent.criteriaShow">
264
+ <div class="col-xs-4">
265
+ <img src="../../../assets/是否已检.png" style="width: 20px;margin-bottom: 5px" alt="">
266
+ <label class="font text-left">首次通气时间:</label>
267
+ </div>
268
+ <datepicker id="f_start_date"
269
+ placeholder= '起始时间'
270
+ :value.sync="model.f_start_date1"
271
+ :disabled-days-of-Week="[]"
272
+ v-model="model.f_start_date1"
273
+ class="input-font"
274
+ :format="'yyyy-MM-dd HH:mm:ss'"
275
+ :show-reset-button="reset"
276
+ condition="f_subscribe_date > '{}'"
277
+ >
278
+ </datepicker>
279
+ </div>
280
+ <div class="row app-row" v-show="$parent.$parent.criteriaShow">
281
+ <div class="col-xs-4">
282
+ <img src="../../../assets/是否已检.png" style="width: 20px;margin-bottom: 5px" alt="">
283
+ <label class="font text-left">首次通气时间:</label>
284
+ </div>
285
+ <datepicker id="f_end_date"
286
+ placeholder= '结束时间'
287
+ :value.sync="model.f_end_date1"
288
+ :disabled-days-of-Week="[]"
289
+ v-model="model.f_end_date1"
290
+ class="input-font"
291
+ :format="'yyyy-MM-dd HH:mm:ss'"
292
+ :show-reset-button="reset"
293
+ condition="f_subscribe_date < '{}'"
294
+ >
295
+ </datepicker>
296
+ </div>
297
+
298
+ <div class="row app-row" v-if="$parent.$parent.criteriaShow">
299
+ <div class="col-xs-4">
300
+ <img src="../../../assets/用户类型.png" style="width: 20px;margin-bottom: 5px" alt="">
301
+ <label for="f_user_type" class="font text-left">用户类型:</label>
302
+ </div>
303
+ <v-select id="f_user_type" :value.sync="model.f_user_type" class="input-font"
304
+ :width="'60%'"
305
+ :options='$parent.$parent.user_types' placeholder='请选择用户类型'
306
+ v-model="model.f_user_type" condition="f_user_type='{}'" close-on-select clear-button></v-select>
307
+ </div>
308
+ <div class="row app-row" v-if="$parent.$parent.criteriaShow">
309
+ <div class="col-xs-6">
310
+ <img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
311
+ <label class="font text-left">到访不遇:</label>
312
+ </div>
313
+ <div class="col-xs-4" >
314
+ <input class="search_input input-font" type="number"
315
+ v-model=model.f_check_version condition="f_check_version >= '{}'" style="width:20%;display: inline" />
316
+ <span><=x<=</span>
317
+ <input class="search_input input-font" type="number"
318
+ v-model=model.f_check_version1 condition="f_check_version <= '{}'" style="width:20%;display: inline"/>
319
+ </div>
320
+ </div>
321
+ <div class="row app-row" v-if="$parent.$parent.criteriaShow">
322
+ <div class="col-xs-6" style="text-align: center">
323
+ <span class="font text-left">待办{{$parent.$parent.upcomingCount}}条</span>
324
+ </div>
325
+ <div class="col-xs-6" style="text-align: center">
326
+ <span class="font text-left">已办{{$parent.$parent.doneCount}}条</span>
327
+ </div>
328
+ <div class="col-xs-6" style="text-align: center">
329
+ <span class="font text-left">临时保存{{$parent.$parent.tempSaveCount}}条</span>
330
+ </div>
331
+ <div class="col-xs-6" style="text-align: center">
332
+ <span class="font text-left">总共{{$parent.$parent.allPlanCount}}条</span>
333
+ </div>
334
+ </div>
335
+
336
+ <div class="row text-center" style="margin-top: 20px;">
337
+ <button type="button" class="btn btn-lg btn-font btn-color" style="width: 25%;" @click="$parent.$parent.selfSearch">查询</button>
338
+ <!-- <button type="button" class="btn btn-lg btn-font btn-color" style="width: 25%; margin-left: 10px" @click="$parent.$parent.queryplanmany">转发</button>-->
339
+ <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>
340
+ <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">
341
+ </div>
342
+ <div class="col-sm-12">
343
+
344
+ </div>
345
+ <!--<div class="row app-btn">-->
346
+ <!--<button class="btn btn-primary col-xs-6" type="button" @click="search"><span class="glyphicon glyphicon-search" style="margin-right: 20px;">查询</span></button>-->
347
+ <!--</div>-->
348
+ <div style="height:30px;"></div>
349
+ </form>
350
+ </div>
351
+ </criteria>
352
+ <list :model="model" partial='list'>
353
+ <div partial>
354
+ <div class="auto app-text" style="margin-top: 5px;">
355
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
356
+ <div class="panel-body panel-self">
357
+
358
+ <div class="col-xs-12">
359
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户编号:</b></p>
360
+ <p class="panel-title col-xs-5 text-left input-font" style="width: 74%">{{ row.f_userinfo_code }}</p>
361
+ <p class="panel-title col-xs-2 text-left input-font" style="width: 5%;float:right">
362
+ <input type="checkbox" @click="$parent.$parent.$parent.setPlanParam(row.id, $event)"/>
363
+ </p>
364
+ </div>
365
+ <div class="col-xs-12">
366
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户名称:</b></p>
367
+ <p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{ row.f_user_name }}</p>
368
+ </div>
369
+ <div class="col-xs-12">
370
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>表号:</b></p>
371
+ <p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{ row.f_meter_no }}</p>
372
+ </div>
373
+ <div class="col-xs-6">
374
+ <p class="panel-title col-xs-5 text-left font"><b>用户类型:</b></p>
375
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_user_type }}
376
+ </p>
377
+ </div>
378
+ <div class="col-xs-6">
379
+ <p class="panel-title col-xs-5 text-left font"><b>计划名称:</b></p>
380
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_plan_name }}</p>
381
+ </div>
382
+ <!-- <div class="col-xs-6">-->
383
+ <!-- <p class="panel-title col-xs-5 text-left font"><b>小区名称:</b></p>-->
384
+ <!-- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_residential_area }}</p>-->
385
+ <!-- </div>-->
386
+ <div class="col-xs-12">
387
+ <p class="panel-title text-left font" style="width: 23%;float: left"><b>用户电话:</b></p>
388
+ <p class="panel-title text-left input-font" style="width: 77%">{{ row.f_user_phone2 ? row.f_user_phone2 : row.f_user_phone }}
389
+ <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>
390
+ </p>
391
+ </div>
392
+ <div class="col-xs-12">
393
+ <p class="panel-title text-left font" style="width: 23%;float: left"><b>备用电话:</b></p>
394
+ <p class="panel-title text-left input-font" style="width: 77%">{{ row.f_rent_phone}}
395
+ <img v-if="row.f_rent_phone" src="../../../assets/phone.png" style="width: 6%" v-on:click.stop.prevent='$parent.$parent.$parent.makeAPhoneCall(row.f_rent_phone)'></img>
396
+ </p>
397
+ </div>
398
+ <div class="col-xs-12">
399
+ <p class="panel-title text-left font" style="width: 23%;float: left"><b>租户电话:</b></p>
400
+ <p class="panel-title text-left input-font" style="width: 77%">{{ row.f_zuhu_phone }}
401
+ <img v-if="row.f_zuhu_phone" src="../../../assets/phone.png" style="width: 6%" v-on:click.stop.prevent='$parent.$parent.$parent.makeAPhoneCall(row.f_zuhu_phone)'></img>
402
+ </p>
403
+ </div>
404
+
405
+ <div class="col-xs-12">
406
+ <p class="panel-title text-left font" style="width: 21%;float: left"><b>用户地址:</b></p>
407
+ <p class="panel-title text-left input-font" style="width: 79%">{{ row.f_address }}</p>
408
+ </div>
409
+
410
+ <!-- <div class="row">-->
411
+ <!-- <p class="panel-title col-xs-4 text-left font">计划年份</p>-->
412
+ <!-- <p class="panel-title col-xs-8 text-left input-font">{{ row.f_plan_year }}</p>-->
413
+ <!-- </div>-->
414
+ <!-- <div class="row">-->
415
+ <!-- <p class="panel-title col-xs-4 text-left font">计划月份</p>-->
416
+ <!-- <p class="panel-title col-xs-8 text-left input-font">{{ row.f_plan_month }}</p>-->
417
+ <!-- </div>-->
418
+ <!-- <div class="row">-->
419
+ <!-- <p class="panel-title col-xs-4 text-left font">预约时间</p>-->
420
+ <!-- <p class="panel-title col-xs-8 text-left input-font">{{ row.f_prearranged_date }}</p>-->
421
+ <!-- </div>-->
422
+ <!--<div class="row">-->
423
+ <!--<p class="panel-title col-xs-4 text-left font">上次安检状态</p>-->
424
+ <!--<p class="panel-title col-xs-8 text-left input-font">{{ row.f_last_check_state }}</p>-->
425
+ <!--</div>-->
426
+ <div class="col-xs-6">
427
+ <p class="panel-title col-xs-5 text-left font"><b>安检状态:</b></p>
428
+ <p class="panel-title col-xs-7 text-left input-font">{{$parent.$parent.$parent.safeState(row.f_last_check_state)}}</p>
429
+ </div>
430
+ <div class="col-xs-6">
431
+ <p class="panel-title col-xs-5 text-left font"><b>入户状态:</b></p>
432
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_last_check_state}}</p>
433
+ </div>
434
+ <div class="col-xs-6">
435
+ <p class="panel-title col-xs-5 text-left font"><b>上传状态:</b></p>
436
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_upload_state }}</p>
437
+ </div>
438
+ <div class="col-xs-12" v-if="row.f_prearranged_date !=null && row.f_prearranged_date != ''" style="color: red">
439
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>预约时间:</b></p>
440
+ <p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{ row.f_prearranged_date }}</p>
441
+ </div>
442
+ <div class="col-xs-6">
443
+ <p class="panel-title col-xs-5 text-left font"><b>安检类型:</b></p>
444
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_safecheck_type }}</p>
445
+ </div>
446
+ <div class="col-xs-12">
447
+ <p class="panel-title col-xs-5 text-left font"><b>到访不遇次数:</b></p>
448
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_check_version }}</p>
449
+ </div>
450
+ <div class="col-xs-12">
451
+ <p class="panel-title col-xs-5 text-left font"><b>首次通气时间:</b></p>
452
+ <p class="panel-title col-xs-7 text-left input-font ">{{ row.f_subscribe_date}}</p>
453
+ </div>
454
+ <div class="col-xs-12">
455
+ <p class="panel-title col-xs-5 text-left font"><b>保费到期时间:</b></p>
456
+ <p class="panel-title col-xs-7 text-left input-font " :style="$parent.$parent.$parent.compare(row.f_expiration_date)?'color:black':'color: red'">{{ row.f_expiration_date}}</p>
457
+ </div>
458
+ <!--<div class="col-xs-12">-->
459
+ <!--<p class="panel-title col-xs-5 text-left font"><b>送气期限:</b></p>-->
460
+ <!--<p class="panel-title col-xs-7 text-left input-font">{{timeSet(row.f_issue_time)}}</p>-->
461
+ <!--</div>-->
462
+ <div class="col-xs-12">
463
+ <button type="button" name="button" class="btn btn-primary" style="background-color:#499edf;float: right" @click="$parent.$parent.$parent.inspect(row)">处理</button>
464
+ <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>
465
+ <button v-show="row.f_upload_state != '已传'" type="button" name="button" class="btn btn-primary" style="background-color:#499edf;float: right;margin-right:10px;" @click="$parent.$parent.$parent.reserve(row,$index)">预约</button>
466
+ </div>
467
+ <!-- <div class="row text-right" v-show="row.f_upload_state != '已传'" >-->
468
+ <!-- <button type="button" class="btn yybtn-color" v-on:click.stop.prevent='$parent.$parent.$parent.reserve($index)'>预约</button>&nbsp;-->
469
+ <!-- <button type="button" class="btn qxbtn-color" v-if ='row.f_prearranged_date'-->
470
+ <!-- v-on:click.stop.prevent='$parent.$parent.$parent.cancelReserve($index, row.id)'>取消预约</button>-->
471
+ <!-- </div>-->
472
+ </div>
473
+ </div>
474
+ </div>
475
+ </div>
476
+ </list>
477
+ </criteria-paged>
478
+ <modal :show.sync="showModal">
479
+ <div slot="modal-header" class="modal-header">
480
+ <h4 class="modal-title">
481
+ 选择预约时间
482
+ </h4>
483
+ </div>
484
+ <div slot="modal-body" class="modal-body">
485
+ <datepicker
486
+ placeholder= '预约时间'
487
+ :value.sync="f_preset_dt"
488
+ :disabled-days-of-Week="[]"
489
+ v-model="f_preset_dt"
490
+ class="input-font"
491
+ style="width: 60%"
492
+ :show-rest-button="reset"
493
+ :format="'yyyy-MM-dd HH:mm:ss'"
494
+ >
495
+ </datepicker>
496
+ </div>
497
+ <div slot="modal-footer" class="modal-footer">
498
+ <button type="button" class="btn btn-default" @click="genuineReserve">确认</button>
499
+ <button type="button" class="btn btn-default" @click="ReserveNodo">确认</button>
500
+ </div>
501
+ </modal>
502
+ <!--<back-page :need-back='true' @flag="$back()"></back-page>-->
503
+ <modal :show.sync="showModal2" v-ref:modal>
504
+ <div slot="modal-header" class="modal-header">
505
+ <h4 class="modal-title">
506
+ 选择计划
507
+ </h4>
508
+ </div>
509
+ <div slot="modal-body" class="modal-body">
510
+ <div class="col-xs-12">
511
+
512
+ <div class="col-xs-4">
513
+ <v-select :value.sync="check" v-model='check'
514
+ :value-single="true"
515
+ class="select_list select"
516
+ :options='checkers' placeholder='安检员'
517
+ close-on-select width="100%"></v-select>
518
+ </div>
519
+
520
+ <div class="col-xs-1">
521
+ <!--<label style="font-size:20px;line-height: 35px">人员 </label>-->
522
+ </div>
523
+ <div class="col-xs-4" style="padding-left: 2px">
524
+ <input class="select-style" placeholder="计划名称" type="text" v-model="plan" style="border: 1px solid #93B2D3;height:34px;width: 100%;line-height: 35px"/>
525
+ </div>
526
+ <div class="col-xs-1" >
527
+ <!--<label style="font-size: 20px;line-height: 35px">计划</label>-->
528
+ </div>
529
+ <!--<input placeholder="安检员" type="text" v-model="check" style="height:30px;width: 100px"/>-->
530
+ <div class="col-xs-2" style="float: right">
531
+ <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>
532
+ </div>
533
+ </div>
534
+ <table class="table table_sy">
535
+ <thead>
536
+ <tr>
537
+ <th style="width: 30px"></th>
538
+ <th style="font-family: 'Adobe 黑体 Std R'">计划名称</th>
539
+ </tr>
540
+ </thead>
541
+ <tbody>
542
+ <tr v-for="row in planoption">
543
+ <td @click="select(row, $index)" >{{row.selected==true ? '☆' : '&nbsp;&nbsp;&nbsp;&nbsp;'}}</td>
544
+ <td @click="select(row, $index)" style="text-align: center">{{row.label}}</td>
545
+
546
+
547
+ </tr>
548
+ </tbody>
549
+ </table>
550
+ </div>
551
+ <div slot="modal-footer" class="modal-footer">
552
+ <button class="btn btn-default" @click="isok()">确认</button>
553
+ <button class="btn btn-default" @click="iscancel()">取消</button>
554
+ </div>
555
+ </modal>
556
+ <modal :show.sync="showModal3" v-ref:modal>
557
+ <div slot="modal-header" class="modal-header">
558
+ <h4 class="modal-title">
559
+ 选择计划
560
+ </h4>
561
+ </div>
562
+ <div slot="modal-body" class="modal-body">
563
+ <div class="col-xs-12">
564
+
565
+ <div class="col-xs-4">
566
+ <v-select :value.sync="check" v-model='check'
567
+ :value-single="true"
568
+ class="select_list select"
569
+ :options='checkers' placeholder='安检员'
570
+ close-on-select width="100%"></v-select>
571
+ </div>
572
+
573
+ <div class="col-xs-1">
574
+ <!--<label style="font-size:20px;line-height: 35px">人员 </label>-->
575
+ </div>
576
+ <div class="col-xs-4" style="padding-left: 2px">
577
+ <input class="select-style" placeholder="计划名称" type="text" v-model="plan" style="border: 1px solid #93B2D3;height:34px;width: 100%;line-height: 35px"/>
578
+ </div>
579
+ <div class="col-xs-1" >
580
+ <!--<label style="font-size: 20px;line-height: 35px">计划</label>-->
581
+ </div>
582
+ <!--<input placeholder="安检员" type="text" v-model="check" style="height:30px;width: 100px"/>-->
583
+ <div class="col-xs-2" style="float: right">
584
+ <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>
585
+ </div>
586
+ </div>
587
+ <table class="table table_sy">
588
+ <thead>
589
+ <tr>
590
+ <th style="width: 30px"></th>
591
+ <th style="font-family: 'Adobe 黑体 Std R'">计划名称</th>
592
+ </tr>
593
+ </thead>
594
+ <tbody>
595
+ <tr v-for="row in planoption">
596
+ <td @click="select(row, $index)" >{{row.selected==true ? '☆' : '&nbsp;&nbsp;&nbsp;&nbsp;'}}</td>
597
+ <td @click="select(row, $index)" style="text-align: center">{{row.label}}</td>
598
+
599
+
600
+ </tr>
601
+ </tbody>
602
+ </table>
603
+ </div>
604
+ <div slot="modal-footer" class="modal-footer">
605
+ <button class="btn btn-default" @click="manyisok()">确认</button>
606
+ <button class="btn btn-default" @click="iscancel()">取消</button>
607
+ </div>
608
+ </modal>
609
+ </div>
610
+
611
+ </template>
612
+
613
+ <script>
614
+ import LocalPagedList from '../../../plugins/LocalPagedList'
615
+ import Vue from 'vue'
616
+ import { PagedList,HttpResetClass } from 'vue-client'
617
+ import * as Util from '../../Util'
618
+ import co from 'co'
619
+ import {toStandardTimeString} from "safecheck-client/src/filiale/Util";
620
+ let select = function * (self) {
621
+ let http = new HttpResetClass()
622
+ http.load('POST', `${self.$androidUtil.getProxyUrl()}/rs/search`, {
623
+ source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))',
624
+ userid: Vue.user.id
625
+ }, {resolveMsg: null, rejectMsg: null}).then((res) => {
626
+ //tag
627
+ self.checkers.push({label:'全部',value:''})
628
+ res.data.forEach((checker)=>{
629
+ self.checkers.push({label:checker.name,value:checker.id})
630
+ })
631
+ })
632
+ }
633
+ export default {
634
+ title: '无计划安检查询',
635
+ props: ['planName'],
636
+ data() {
637
+ return {
638
+ f_filialeids:'('+Vue.user.orgid+')',
639
+ //f_filialeids:'(305)',
640
+ planparam:[],
641
+ check:'',
642
+ plan:'',
643
+ planid:'',
644
+ model:Vue.android? new LocalPagedList('androidGetuserinfo',20,{condition:'this.condition'}): new PagedList( 'AndroidRest/rs/sql/androidGetuserinfo',20,{condition:'this.condition'}),
645
+ showModal: false,
646
+ showModal2:false,
647
+ showModal3:false,
648
+ needid:'',
649
+ criteriaShow: false,
650
+ planoption:[],
651
+ condition:'',
652
+ checkers:[],
653
+ param: null,
654
+ f_preset_dt : Util.toStandardTimeString(),
655
+ flow_direction:[
656
+ {label: '请选择挂表方式', value: ''},
657
+ {label: '左表', value: '左表'},
658
+ {label: '右表', value: '右表'}
659
+ ],
660
+ check_states: [
661
+ {label: '请选择安检状态', value: ''},
662
+ {label: '未检', value: '未检'},
663
+ {label: '已检', value: '已检'},
664
+ ],
665
+ last_check_states: Vue.$appdata.getParam('安检状态'),
666
+ upload_states: [
667
+ {label: '请选择上传状态', value: ''},
668
+ {label: '未传', value: '未传'},
669
+ {label: '已传', value: '已传'}
670
+ ],
671
+ user_types: [
672
+ {label: '请选择用户类型', value: ''},
673
+ {label: '民用', value: '民用'},
674
+ {label: '非民用', value: '非民用'},
675
+ ],
676
+ verify_state: [
677
+ {label: '请选择审核状态', value: ''},
678
+ {label: '未审核', value: '未审核'},
679
+ {label: '打回', value: '打回'}
680
+ ],
681
+ residentialAreaOptions: [],
682
+ buildOptions: [],
683
+ unitOptions: [],
684
+ planNameOptions: [],
685
+ upcomingCount: 0,
686
+ doneCount: 0,
687
+ tempSaveCount: 0,
688
+ allPlanCount: 0
689
+ }
690
+ },
691
+ ready(){
692
+ this.getAllArea()
693
+ this.getAllPlanName()
694
+ this.selfSearch()
695
+ let gen = select(this)
696
+ co(gen)
697
+ },
698
+ mounted(){
699
+ //tag
700
+ if (window.history && window.history.pushState) {
701
+ history.pushState(null, null, document.URL);
702
+ window.addEventListener('popstate', this.fun, false);//false阻止默认事件
703
+ }
704
+ },
705
+ destroyed(){
706
+ //tag
707
+ window.removeEventListener('popstate', this.fun, false);//false阻止默认事件
708
+ },
709
+ methods: {
710
+ safeState(state){
711
+ if(state=='' ||state=='到访不遇' ||state=='拒检' ||state==null){
712
+ return '未检'
713
+ }else{
714
+ return '已检'
715
+ }
716
+ },
717
+ compare(val){
718
+ //判断是否超期,val格式为 yyyy-MM-dd HH:mm:ss的字符串
719
+ if(val){
720
+ let now = new Date()
721
+ let last = new Date(val)
722
+ if(last.getTime() >now.getTime() ){
723
+ return true
724
+ }else{
725
+ return false
726
+ }
727
+ }
728
+ },
729
+ ReserveNodo(){
730
+ this.showModal=false
731
+ this.f_preset_dt = Util.toStandardTimeString()
732
+ },
733
+ scan(){
734
+ HostApp.__this__=this,
735
+ HostApp.scanCode({callback:"javascript:HostApp.__this__.getCode();"})
736
+ },
737
+ getCode(){
738
+ const datapa = HostApp.getCode().data;
739
+ //tag
740
+ this.$refs.paged.$refs.cri.model.f_meter_no = datapa
741
+
742
+ },
743
+ fun () {
744
+ //tag
745
+ //tag
746
+ },
747
+ iscancel(){
748
+ this.showModal2=false
749
+ this.showModal3=false
750
+ this.planoption=[]
751
+ },
752
+ timeSet(val){
753
+ return val
754
+ },
755
+ async isok(){
756
+ if(this.planoption.length==0){
757
+ this.$showMessage("请选择计划")
758
+ return false
759
+ }
760
+ for (let i = 0; i <this.planoption.length ; i++) {
761
+ if (this.planoption[i]["selected"]==true){
762
+ this.planid=this.planoption[i].value
763
+ break
764
+ }
765
+ }
766
+ if(this.planid==''){
767
+ this.$showMessage("请选择计划")
768
+ return false
769
+ }
770
+ await this.okput()
771
+ },
772
+ async manyisok(){
773
+ if(this.planoption.length==0){
774
+ this.$showMessage("请选择计划")
775
+ return false
776
+ }
777
+ for (let i = 0; i <this.planoption.length ; i++) {
778
+ if (this.planoption[i]["selected"]==true){
779
+ this.planid=this.planoption[i].value
780
+ break
781
+ }
782
+ }
783
+ if(this.planid==''){
784
+ this.$showMessage("请选择计划")
785
+ return false
786
+ }
787
+ await this.manyokput()
788
+ },
789
+ changenull(){
790
+ this.showModal2=false
791
+ this.showModal3=false
792
+ this.planoption=[]
793
+ this.plan=''
794
+ this.check=''
795
+ },
796
+ async okput(){
797
+ let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/logic/UpCheckPlanItem`, {data:{
798
+
799
+ condition:`i.id='`+this.needid+`'`,
800
+ f_plan_id:this.planid,
801
+ switchCheckAll:false,
802
+ checkAll:false,
803
+ f_operator:Vue.user.name
804
+ }
805
+ })
806
+ await this.changenull()
807
+ await this.getNewOrder()
808
+ },
809
+ async manyokput(){
810
+ let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/logic/UpCheckPlanItem`, {data:{
811
+ columnName:"i.id",
812
+ condition:"1=1",
813
+ f_plan_id:this.planid,
814
+ switchCheckAll:true,
815
+ param:this.planparam,
816
+ checkAll:false,
817
+ f_operator:Vue.user.name
818
+ }
819
+ })
820
+ await this.changenull()
821
+ await this.getNewOrder()
822
+ },
823
+ async plansearch(){
824
+ this.planoption=[]
825
+ let condition= ` f_plan_year=${new Date().getFullYear()}`
826
+ if(this.check){
827
+ condition += ` and f_checker_id= '${this.check}'`
828
+ }
829
+ if(this.plan){
830
+ condition += ` and f_plan_name like '%${this.plan}%'`
831
+ }
832
+ let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/预约计划下发`, {data:{
833
+ condition:condition,
834
+ f_filialeids:this.f_filialeids,
835
+ groupitem:'',
836
+ orderitem:'id'
837
+ }})
838
+ let resoult=res.data
839
+ for (let i = 0; i < resoult.length; i++) {
840
+ this.planoption.push({label: resoult[i].f_plan_name,selected:false, value: resoult[i].id})
841
+ }
842
+ },
843
+
844
+ select(row, idx) {
845
+ this.$set('planoption[' + idx + '].selected', true)
846
+ for (let i = 0; i <this.planoption.length ; i++) {
847
+ if (i!=idx){
848
+ this.planoption[i]["selected"]=false
849
+ }
850
+ }
851
+ },
852
+ planclose(){
853
+ this.showModal2=false
854
+ this.showModal3=false
855
+ },
856
+ queryplan(val){
857
+ this.needid=val
858
+ this.showModal2 = true
859
+ },
860
+ queryplanmany(){
861
+
862
+ this.showModal3 = true
863
+ },
864
+ reload(){
865
+ // this.getAllArea()
866
+ // this.getAllPlanName()
867
+ this.selfSearch()
868
+ },
869
+ cancelReserve (idx, id) {
870
+ if(Vue.android){
871
+ let res = this.$androidUtil.bzLogic('BookingCheck', {dt: '', id: id})
872
+ this.$set('model.rows[' + idx + '].f_prearranged_date', null)
873
+ if (res.code == 200) {
874
+ this.$showMessage("取消预约成功")
875
+ }
876
+ }else {
877
+ this.$androidUtil.bzLogic('PCbookingCheck', {dt: '', id: id}).then((repanse) => {
878
+ this.$set('model.rows[' + idx + '].f_prearranged_date', null)
879
+ if (repanse.data.code == 200) {
880
+ alert("取消预约成功!")
881
+ }
882
+ })
883
+ }},
884
+ genuineReserve () {
885
+ if (!this.f_preset_dt) {
886
+ this.$showMessage('请选择一个日期')
887
+ return
888
+ }
889
+ let res = this.$androidUtil.bzLogic('PCbookingCheck', {id: this.model.rows[this.param].id, dt: this.f_preset_dt})
890
+ if(res.code == 200) {
891
+ this.$set('model.rows[' + this.param + '].f_prearranged_date', this.f_preset_dt)
892
+ this.showModal = false
893
+ this.$showMessage("预约成功!")
894
+ }else{
895
+ this.$showMessage("预约失败,请重新预约!")
896
+ }
897
+ },
898
+ inspect(row) {
899
+ var _this = this
900
+ let http = new HttpResetClass()
901
+ http.load('POST',`${this.$androidUtil.getProxyUrl()}/rs/sql/singleTable`, {data: {
902
+ items: 'id',
903
+ tablename: 't_check_plan_item',
904
+ condition: `id = '${row.id}'`
905
+ }}, {resolveMsg: null, rejectMsg: null}).then((getcheckplan) => {
906
+ console.log('getcheckplan=', JSON.stringify(getcheckplan))
907
+ this.getcheckplandata = getcheckplan.data[0]
908
+ if(this.getcheckplandata){
909
+ if (row.f_upload_state == '未传' || row.f_last_check_state === '到访不遇' || row.f_last_check_state === '拒检'|| (row.f_upload_state == '已传' && row.f_no_checkplan != '无计划安检' ) ) {
910
+ _this.$resetpost(`${_this.$androidUtil.getProxyUrl()}/rs/sql/查询计划项表信息`, {data: {f_userid: row.f_userinfoid}},{resolveMsg: null,rejectMsg: null}).then((response) => {
911
+ row['f_plan_meters'] = response.data
912
+ var pardate = {
913
+ _this:_this,
914
+ title:'安全检查',
915
+ safe:true
916
+ }
917
+ _this.$dispatch('gotoson',pardate)
918
+ //tag
919
+ _this.$goto('safecheck-order-v', {f_plan_id: row.f_plan_id, item: row, role: 'inspect',parentPage:'CurrentCreate'}, 'self', _this.reload)
920
+ }).catch ((msg)=>{
921
+ this.$showMessage("网络异常,请检查网络后再试!")
922
+ })
923
+ }else{
924
+ this.$showMessage("该安检单已被上传!")
925
+ }
926
+ }else {
927
+ this.$showMessage("该用户安检单已被移除,请联系管理员确认!")
928
+ }
929
+ })
930
+ },
931
+ makeAPhoneCall(phoneNumber) {
932
+ this.$androidUtil.makeAPhoneCall(phoneNumber)
933
+ },
934
+ reserve (rowdata,idx) {
935
+ this.param = idx
936
+ this.showModal = true
937
+ },
938
+ search(args) {
939
+ this.model.rows = []
940
+ this.model.search(args.condition, args.model)
941
+ },
942
+ selfSearch () {
943
+ this.getPlanCount()
944
+ let condition = ""
945
+ if (Array.isArray(this.$refs.paged.$refs.cri.model.f_residential_area) && this.$refs.paged.$refs.cri.model.f_residential_area.length >0){
946
+ condition += " and ti.f_residential_area = '"+this.$refs.paged.$refs.cri.model.f_residential_area[0]+"'"
947
+ }else if(this.$refs.paged.$refs.cri.model.f_residential_area instanceof String && this.$refs.paged.$refs.cri.model.f_residential_area){
948
+ condition += " and ti.f_residential_area = '"+this.$refs.paged.$refs.cri.model.f_residential_area+"'"
949
+ }
950
+ if(this.$refs.paged.$refs.cri.model.f_building)
951
+ condition += ` and ti.f_building = '${this.$refs.paged.$refs.cri.model.f_building}'`
952
+ if(this.$refs.paged.$refs.cri.model.f_unit)
953
+ condition += ` and ti.f_unit = '${this.$refs.paged.$refs.cri.model.f_unit}'`
954
+ if (this.planName){
955
+ condition += " and f_plan_name like '%"+this.planName +"%'"
956
+ }else {
957
+ if(this.$refs.paged.$refs.cri.model.f_plan_name)
958
+ condition += " and f_plan_name like '%"+this.$refs.paged.$refs.cri.model.f_plan_name +"%'"
959
+ }
960
+ // if(this.$refs.paged.$refs.cri.model.f_plan_year)
961
+ // condition += " and f_plan_year = '"+this.$refs.paged.$refs.cri.model.f_plan_year +"'"
962
+ // if(this.$refs.paged.$refs.cri.model.f_plan_month)
963
+ // condition += " and f_plan_month = '"+this.$refs.paged.$refs.cri.model.f_plan_month +"'"
964
+ if(this.$refs.paged.$refs.cri.model.f_userinfo_code)
965
+ condition += " and ti.f_userinfo_code like '%"+this.$refs.paged.$refs.cri.model.f_userinfo_code+"%'"
966
+ if(this.$refs.paged.$refs.cri.model.f_keyword)
967
+ condition += " and ti.f_address like '%"+this.$refs.paged.$refs.cri.model.f_keyword+"%'"
968
+ if(this.$refs.paged.$refs.cri.model.f_user_name)
969
+ condition += " and ti.f_user_name like '%"+this.$refs.paged.$refs.cri.model.f_user_name+"%'"
970
+ if(this.$refs.paged.$refs.cri.model.f_state[0] =='已检'){
971
+ condition += " and ti.f_last_check_state in ('入户','停用','拆除','未通气')"
972
+ }
973
+ if(this.$refs.paged.$refs.cri.model.f_state[0] =='未检'){
974
+ condition += " and ti.f_last_check_state not in ('入户','停用','拆除','未通气')"
975
+ }
976
+ // if(this.$refs.paged.$refs.cri.model.f_last_state[0])
977
+ // condition += " and ti.f_last_check_state='"+this.$refs.paged.$refs.cri.model.f_last_state[0]+"'"
978
+ if(this.$refs.paged.$refs.cri.model.f_user_type[0])
979
+ condition += " and ti.f_user_type='"+this.$refs.paged.$refs.cri.model.f_user_type[0]+"'"
980
+ if(this.$refs.paged.$refs.cri.model.f_meter_no)
981
+ condition += " and tm.f_meter_no like '%"+this.$refs.paged.$refs.cri.model.f_meter_no+"%'"
982
+ // if(this.$refs.paged.$refs.cri.model.f_flow_direction[0])
983
+ // condition += " and tm.f_flow_direction = '"+this.$refs.paged.$refs.cri.model.f_flow_direction[0]+"'"
984
+
985
+ if(this.$refs.paged.$refs.cri.model.f_enter_number)
986
+ condition += " and ti.f_enter_number like '%"+this.$refs.paged.$refs.cri.model.f_enter_number+"%'"
987
+ if(this.$refs.paged.$refs.cri.model.f_check_version)
988
+ condition += " and ti.f_check_version >= "+this.$refs.paged.$refs.cri.model.f_check_version
989
+ if(this.$refs.paged.$refs.cri.model.f_start_date)
990
+ condition += " and ti.f_prearranged_date > '"+this.$refs.paged.$refs.cri.model.f_start_date + "'"
991
+ if(this.$refs.paged.$refs.cri.model.f_end_date)
992
+ condition += " and ti.f_prearranged_date < '"+this.$refs.paged.$refs.cri.model.f_end_date + "'"
993
+ if(this.$refs.paged.$refs.cri.model.f_start_date1)
994
+ condition += " and f_subscribe_date > '"+this.$refs.paged.$refs.cri.model.f_start_date1 + "'"
995
+ if(this.$refs.paged.$refs.cri.model.f_end_date1)
996
+ condition += " and f_subscribe_date < '"+this.$refs.paged.$refs.cri.model.f_end_date1 + "'"
997
+ if(this.$refs.paged.$refs.cri.model.f_check_version1)
998
+ condition += " and ti.f_check_version <= "+this.$refs.paged.$refs.cri.model.f_check_version1
999
+
1000
+ if(this.$refs.paged.$refs.cri.model.f_user_phone){
1001
+ condition += ` and (ti.f_user_phone like '%${this.$refs.paged.$refs.cri.model.f_user_phone}%' or f_zuhu_phone like '%${this.$refs.paged.$refs.cri.model.f_user_phone}%' or f_rent_phone like '%${this.$refs.paged.$refs.cri.model.f_user_phone}%' or f_user_phone2 like '%${this.$refs.paged.$refs.cri.model.f_user_phone}%')`
1002
+ }
1003
+
1004
+ if(this.$refs.paged.$refs.cri.model.f_last_check_state.length > 0){
1005
+ let last_check_state = ''
1006
+ this.$refs.paged.$refs.cri.model.f_last_check_state.forEach((item) => {
1007
+ last_check_state = last_check_state + `'${item}',`
1008
+ })
1009
+ last_check_state = last_check_state.slice(0, -1)
1010
+ condition += " and ti.f_last_check_state in ("+last_check_state+")"
1011
+ }
1012
+ if(this.$refs.paged.$refs.cri.model.userinfo){
1013
+ condition += ` and (f_userinfo_code like '%${this.$refs.paged.$refs.cri.model.userinfo}%' or f_user_name like '%${this.$refs.paged.$refs.cri.model.userinfo}%' or f_user_phone like '%${this.$refs.paged.$refs.cri.model.userinfo}%' or f_meter_no like '%${this.$refs.paged.$refs.cri.model.userinfo}%' or f_address like '%${this.$refs.paged.$refs.cri.model.userinfo}%' or f_zuhu_phone like '%${this.$refs.paged.$refs.cri.model.userinfo}%' or f_rent_phone like '%${this.$refs.paged.$refs.cri.model.userinfo}%' or f_user_phone2 like '%${this.$refs.paged.$refs.cri.model.userinfo}%')`
1014
+ }
1015
+ if(this.$refs.paged.$refs.cri.model.f_state[0] ==''){
1016
+ this.model.search("((f_complete = '' or f_complete = null or f_complete = '未完成' or f_complete = '已完成') or (f_state = '未检' or f_state = '已检') or (f_last_check_state = '到访不遇' or f_last_check_state = '拒检' )) and ti.f_no_checkplan = '有计划安检'" + condition)
1017
+ }else{
1018
+ this.model.search("((f_complete = '' or f_complete = null or f_complete = '未完成' or f_complete = '已完成') or (f_state = '未检' or f_state = '已检')) and ti.f_no_checkplan = '有计划安检'" + condition)
1019
+ }
1020
+ },
1021
+ getNewOrder(){
1022
+ HostApp.__this__ = this
1023
+ HostApp.logicWithHint({
1024
+ // logic别名,key必须为logic
1025
+ 'logic': 'SafeCheckServiceTimeOut',
1026
+ // 回调执行方法名,key必须为callback
1027
+ 'callback': 'javascript:HostApp.__this__.getNewOrderCallBack()',
1028
+ // logic执行需要的业务参数
1029
+ 'data': {params: ''},
1030
+ // 固定key,代表是否将logic执行结果作为参数传入回调方法,1代表true,0代表false,
1031
+ // 执行回调方法传入key为backresult
1032
+ // 如需额外拼接参数,写在logic返回值的params,例如xxlogic返回:{"params": "success"}
1033
+ 'backresult': 1
1034
+ })
1035
+ },
1036
+ getNewOrderCallBack() {
1037
+ this.selfSearch()
1038
+ this.getAllArea()
1039
+ this.getAllPlanName()
1040
+ },
1041
+ hidden() {
1042
+ this.criteriaShow = !this.criteriaShow
1043
+ },
1044
+ getAllArea(){
1045
+ this.residentialAreaOptions = []
1046
+ this.buildOptions = []
1047
+ this.unitOptions = []
1048
+ this.$refs.paged.$refs.cri.model.f_residential_area = ''
1049
+ this.$refs.paged.$refs.cri.model.f_building = ''
1050
+ this.$refs.paged.$refs.cri.model.f_unit = ''
1051
+ let criteria = {
1052
+ items: 'f_residential_area',
1053
+ tablename: 't_check_plan_item',
1054
+ condition: `f_residential_area IS NOT NULL AND f_residential_area != '' `,
1055
+ groupitem: 'f_residential_area'
1056
+ }
1057
+ let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
1058
+ //tag)
1059
+ if(result.code == 200){
1060
+ result.data.rows.forEach(item => this.residentialAreaOptions.push({label:item.f_residential_area,value:item.f_residential_area}))
1061
+ }
1062
+ //tag)
1063
+ },
1064
+ getbuilds(f_residential_area){
1065
+ //tag)
1066
+ this.buildOptions = []
1067
+ this.unitOptions = []
1068
+ this.$refs.paged.$refs.cri.model.f_building = ''
1069
+ this.$refs.paged.$refs.cri.model.f_unit = ''
1070
+ if(!f_residential_area){
1071
+ return
1072
+ }
1073
+ let criteria = {
1074
+ items: 'f_building',
1075
+ tablename: 't_check_plan_item',
1076
+ condition: `f_building IS NOT NULL AND f_building != '' AND f_residential_area = '${f_residential_area}'`,
1077
+ groupitem: 'f_building order by f_building+0'
1078
+ }
1079
+ let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
1080
+ if(result.code == 200){
1081
+ result.data.rows.forEach(item => this.buildOptions.push({label:item.f_building,value:item.f_building}))
1082
+ }
1083
+ this.buildOptions.sort((a,b)=>{
1084
+ return Number(a.label)- Number(b.label)
1085
+ })
1086
+ //tag)
1087
+ },
1088
+ getUnits(f_building){
1089
+ f_building = f_building[0]
1090
+ //tag)
1091
+ this.unitOptions = []
1092
+ this.$refs.paged.$refs.cri.model.f_unit = ''
1093
+ if(!f_building){
1094
+ return
1095
+ }
1096
+ let criteria = {
1097
+ items: 'f_unit',
1098
+ tablename: 't_check_plan_item',
1099
+ condition: `f_unit IS NOT NULL AND f_unit != '' AND f_residential_area = '${this.$refs.paged.$refs.cri.model.f_residential_area}' AND f_building = '${f_building}'`,
1100
+ groupitem: 'f_unit'
1101
+ }
1102
+ let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
1103
+ if(result.code == 200){
1104
+ result.data.rows.forEach(item => this.unitOptions.push({label:item.f_unit,value:item.f_unit}))
1105
+ }
1106
+ this.unitOptions.sort((a,b)=>{
1107
+ return Number(a.label)- Number(b.label)
1108
+ })
1109
+ },
1110
+ getPlanCount(){
1111
+ this.upcomingCount = 0
1112
+ this.tempSaveCount = 0
1113
+ this.doneCount = 0
1114
+ this.allPlanCount = 0
1115
+ let criteria = {
1116
+ items: 'count(id) count',
1117
+ tablename: 't_check_plan_item',
1118
+ condition: `f_state = '未检'`,
1119
+ groupitem: 'f_state'
1120
+ }
1121
+ let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
1122
+ if(result.code && result.code == 200){
1123
+ if(result.data.rows[0] && !isNaN(result.data.rows[0].count)) {
1124
+ this.upcomingCount = result.data.rows[0].count
1125
+ }
1126
+ }
1127
+ criteria = {
1128
+ items: 'count(id) count',
1129
+ tablename: 't_check_plan_item',
1130
+ condition: `(f_complete = '' or f_complete is null or f_complete = '未完成') AND f_state = '已检'`,
1131
+ groupitem: 'f_state'
1132
+ }
1133
+ result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
1134
+ if(result.code && result.code == 200){
1135
+ if(result.data.rows[0] && !isNaN(result.data.rows[0].count)){
1136
+ this.tempSaveCount = result.data.rows[0].count
1137
+ }
1138
+ }
1139
+ criteria = {
1140
+ items: 'count(id) count',
1141
+ tablename: 't_check_plan_item',
1142
+ condition: `f_complete = '已完成' AND f_state = '已检'`,
1143
+ groupitem: 'f_state'
1144
+ }
1145
+ result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
1146
+ if(result.code && result.code == 200){
1147
+ if(result.data.rows[0] && !isNaN(result.data.rows[0].count)){
1148
+ this.doneCount = result.data.rows[0].count
1149
+ }
1150
+ }
1151
+ this.allPlanCount = this.upcomingCount + this.tempSaveCount + this.doneCount
1152
+
1153
+ //tag
1154
+ //tag
1155
+ //tag
1156
+ //tag
1157
+ },
1158
+ getAllPlanName(){
1159
+ this.planNameOptions = []
1160
+ this.$refs.paged.$refs.cri.model.f_plan_name = ''
1161
+ let criteria = {
1162
+ items: 'f_plan_name',
1163
+ tablename: 't_check_plan',
1164
+ condition: `f_plan_name IS NOT NULL AND f_plan_name != ''`,
1165
+ groupitem: 'f_plan_name'
1166
+ }
1167
+ let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_GroupBy', 'criteria': criteria}})
1168
+ //tag)
1169
+ if(result.code == 200){
1170
+ result.data.rows.forEach(item => this.planNameOptions.push({label:item.f_plan_name,value:item.f_plan_name}))
1171
+ }
1172
+ //tag)
1173
+ },
1174
+ setPlanParam(detailsType, event) {
1175
+ if (event.srcElement.checked) {
1176
+ this.planparam.push(detailsType)
1177
+ //tag
1178
+ } else {
1179
+ if(this.planparam.length>0){
1180
+ let planid= this.planparam.findIndex((value) => {
1181
+ return value === detailsType
1182
+ })
1183
+ this.planparam.splice(planid, 1)
1184
+ //tag
1185
+
1186
+ }
1187
+
1188
+ }
1189
+ }
1190
+ }
1191
+ }
1192
+ </script>