safecheck-client 3.0.34-9 → 3.0.34-90

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. package/package.json +1 -1
  2. package/src/App-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.vue +55 -0
  3. package/src/assets/123.png +0 -0
  4. package/src/assets/f8632d3c8c4c1cb68e99da754cab1a7.png +0 -0
  5. package/src/components/LoadData.vue +62 -0
  6. package/src/components/NewDefectList/DefectListNew.vue +1 -0
  7. package/src/components/android/AddPlanItemYy.vue +451 -0
  8. package/src/components/android/AndroidDefectDeal.vue +634 -634
  9. package/src/components/android/AndroidDefectDealBeforeSafe.vue +502 -0
  10. package/src/components/android/AreaSelect.vue +198 -0
  11. package/src/components/android/BuildingSelect.vue +192 -0
  12. package/src/components/android/CheckPlanSelect.vue +229 -0
  13. package/src/components/android/CurrentCreateYy.vue +1051 -0
  14. package/src/components/android/PaperFeedback.vue +33 -0
  15. package/src/components/android/QRCode/QRCodeBinding.vue +300 -0
  16. package/src/components/android/QRCode/QRCodePage.vue +212 -0
  17. package/src/components/android/SafecheckDevices.vue +2 -2
  18. package/src/components/android/SafecheckOrderV.vue +8 -12
  19. package/src/components/android/UserinfoSelect.vue +714 -0
  20. package/src/components/android/examples/410.png +0 -0
  21. package/src/components/android/examples/SafeListExamples.vue +279 -0
  22. package/src/components/android/examples/UserExamples.vue +137 -0
  23. package/src/components/android/examples/ViewDetailsExamples.vue +1235 -0
  24. package/src/components/android/examples/touxiang.png +0 -0
  25. package/src/components/pc/SafeVisitInfo.vue +261 -0
  26. package/src/components/rongcheng/AddPlanItem.vue +8 -0
  27. package/src/components/rongcheng/AspiratedUserInfo.vue +1 -1
  28. package/src/components/rongcheng/CheckSearchUser.vue +46 -16
  29. package/src/components/rongcheng/PaperStatem.vue +6 -1
  30. package/src/components/rongcheng/PhoneDevicesInfo.vue +16 -1
  31. package/src/components/rongcheng/PhoneUpUserinfo.vue +0 -92
  32. package/src/components/rongcheng/SafecheckOrderV.vue +12 -3
  33. package/src/components/rongcheng/SafecheckOrderVCli.vue +9 -0
  34. package/src/filiale/baiyin/android/AndroidDefectDeal.vue +4 -4
  35. package/src/filiale/baiyin/android/SafecheckOrderV.vue +2785 -0
  36. package/src/filiale/baiyin/android.js +1 -0
  37. package/src/filiale/baiyin/pc/CheckSearchUser.vue +2 -2
  38. package/src/filiale/baiyin/pc/DefectListNew.vue +3 -3
  39. package/src/filiale/baiyin/pc/PaperList.vue +7 -7
  40. package/src/filiale/bayan/android/AddPlanItem.vue +8 -0
  41. package/src/filiale/bayan/android/PaperFeedback.vue +63 -49
  42. package/src/filiale/bayan/android/PhoneUpUserinfo.vue +40 -40
  43. package/src/filiale/bayan/android/SafecheckOrderV.vue +58 -58
  44. package/src/filiale/bayan/android/SafecheckUserInfo.vue +5 -0
  45. package/src/filiale/bayan/pc/PaperList.vue +1 -0
  46. package/src/filiale/fugou/pc/CheckBookSearchUser.vue +35 -15
  47. package/src/filiale/huaran/android/SafecheckOrderV.vue +2803 -0
  48. package/src/filiale/huaran/android.js +12 -0
  49. package/src/filiale/huaran/pc/CheckBook.vue +313 -0
  50. package/src/filiale/huaran/pc/CheckBookAll.vue +69 -0
  51. package/src/filiale/huaran/pc/CheckBookArea.vue +170 -0
  52. package/src/filiale/huaran/pc/CheckBookCompany.vue +166 -0
  53. package/src/filiale/huaran/pc/CheckBookDetails.vue +196 -0
  54. package/src/filiale/huaran/pc/CheckBookEntry.vue +61 -0
  55. package/src/filiale/huaran/pc/CheckBookList.vue +386 -0
  56. package/src/filiale/huaran/pc/CheckBookSearchArea.vue +564 -0
  57. package/src/filiale/huaran/pc/CheckBookSearchUnit.vue +229 -0
  58. package/src/filiale/huaran/pc/CheckBookSearchUser.vue +604 -0
  59. package/src/filiale/huaran/pc/CheckBookUser.vue +112 -0
  60. package/src/filiale/huaran/pc/PaperList.vue +822 -0
  61. package/src/filiale/huaran/pc/PlanManage.vue +887 -0
  62. package/src/filiale/huaran/pc/checkPlanList.vue +419 -0
  63. package/src/filiale/huaran/pc/checkUserList.vue +867 -0
  64. package/src/filiale/huaran/pc.js +27 -0
  65. package/src/filiale/jiaxian/android/AddPlanItem.vue +447 -0
  66. package/src/filiale/jiaxian/android/PhoneUpUserinfo.vue +1229 -0
  67. package/src/filiale/jiaxian/android/SafecheckDevices.vue +6 -6
  68. package/src/filiale/jiaxian/android/SafecheckOrderV.vue +2807 -0
  69. package/src/filiale/jiaxian/android/SafecheckUserInfo.vue +784 -0
  70. package/src/filiale/jiaxian/android.js +4 -0
  71. package/src/filiale/jingyang/android/AddPlanItem.vue +458 -458
  72. package/src/filiale/jingyang/android/CurrentCreate.vue +1080 -1080
  73. package/src/filiale/jingyang/android/SafecheckOrderV.vue +2734 -2734
  74. package/src/filiale/jingyang/android.js +15 -15
  75. package/src/filiale/kelai/pc/CheckPlanAreaList.vue +15 -7
  76. package/src/filiale/qianneng/android/SafecheckOrderV.vue +1 -1
  77. package/src/filiale/qingtongxia/android/AddPlanItem.vue +450 -0
  78. package/src/filiale/qingtongxia/android/CurrentCreate.vue +1053 -0
  79. package/src/filiale/qingtongxia/android/PhoneUpUserinfo.vue +1230 -0
  80. package/src/filiale/qingtongxia/android/SafecheckUserInfo.vue +782 -0
  81. package/src/filiale/qingtongxia/android.js +14 -10
  82. package/src/filiale/ruihua/android/SafecheckOrderV.vue +2747 -0
  83. package/src/filiale/ruihua/android/SafecheckUserInfo.vue +804 -0
  84. package/src/filiale/ruihua/android.js +11 -0
  85. package/src/filiale/shanxian/android/SafecheckOrderV.vue +1 -1
  86. package/src/filiale/shanxian/pc/checkUserList.vue +4 -4
  87. package/src/filiale/siyang/android/AddPlanItem.vue +450 -0
  88. package/src/filiale/siyang/android/AppCheckPlan.vue +246 -0
  89. package/src/filiale/siyang/android/CurrentCreate.vue +1051 -0
  90. package/src/filiale/siyang/android.js +15 -11
  91. package/src/filiale/siyang/pc/CheckBookList.vue +396 -0
  92. package/src/filiale/siyang/pc/CheckBookSearchArea.vue +667 -0
  93. package/src/filiale/siyang/pc/CheckPlanAreaList.vue +512 -0
  94. package/src/filiale/siyang/pc/CheckSearchUser.vue +1035 -0
  95. package/src/filiale/siyang/pc/HiddenSituation.vue +167 -0
  96. package/src/filiale/siyang/pc/checkPlanList.vue +367 -0
  97. package/src/filiale/siyang/pc/checkUserList.vue +22 -18
  98. package/src/filiale/siyang/pc.js +22 -16
  99. package/src/filiale/tongchuan/android/Select.vue +421 -0
  100. package/src/filiale/tongchuan/android.js +1 -0
  101. package/src/filiale/tongchuan/pc/CheckPlanCountChartArea.vue +3 -1
  102. package/src/filiale/tongchuan/pc/DefectPaperWeiXiu.vue +6 -2
  103. package/src/filiale/tongchuan/pc/HiddenSituation.vue +3 -1
  104. package/src/filiale/tongchuan/pc/NewCheckpaper.vue +13 -22
  105. package/src/filiale/tongchuan/pc/PaperDefectMain.vue +1 -1
  106. package/src/filiale/tongchuan/pc/SelectCheckPlan.vue +5 -2
  107. package/src/filiale/tongchuan/utils/EventListener.js +29 -0
  108. package/src/filiale/tongchuan/utils/coerceBoolean.js +7 -0
  109. package/src/filiale/weinan/android/SafecheckDevices.vue +1 -1
  110. package/src/filiale/weinan/android/SafecheckOrderV.vue +6 -2
  111. package/src/filiale/weinan/pc/CheckBookSearchUserList.vue +75 -62
  112. package/src/filiale/weinan/pc/CheckDetail.vue +11 -11
  113. package/src/filiale/weinan/pc/DefectPaperNew.vue +31 -0
  114. package/src/filiale/weinan/pc/DeviceChange.vue +1088 -0
  115. package/src/filiale/weinan/pc/checkUserList.vue +49 -113
  116. package/src/filiale/weinan/pc.js +1 -0
  117. package/src/filiale/wuan/android/SafecheckOrderV.vue +2241 -2240
  118. package/src/filiale/wuan/android/SafecheckUserInfo.vue +596 -592
  119. package/src/filiale/xilan/pc/checkUserList.vue +772 -0
  120. package/src/filiale/xilan/pc.js +12 -0
  121. package/src/filiale/yangchunboneng/android/SafecheckDevices.vue +10 -6
  122. package/src/filiale/yangchunboneng/android/SafecheckOrderV.vue +21 -1
  123. package/src/filiale/yangchunboneng/pc/CheckBookSearchUser.vue +23 -11
  124. package/src/filiale/yangchunboneng/pc/CheckBookUser.vue +6 -6
  125. package/src/filiale/yangchunboneng/pc/CheckPlanAreaList.vue +96 -30
  126. package/src/filiale/yangchunboneng/pc/CheckSearchUser.vue +10 -10
  127. package/src/filiale/yangchunboneng/pc/DefectPaperNew.vue +10 -10
  128. package/src/filiale/yangchunboneng/pc/PaperDefectMain.vue +84 -10
  129. package/src/filiale/yangchunboneng/pc/PaperList.vue +6 -6
  130. package/src/filiale/yuansheng/android/SafecheckDevices.vue +11 -1
  131. package/src/filiale/yuansheng/pc/NewCheckpaper.vue +10 -2
  132. package/src/main-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.js +24 -0
  133. package/src/main.js +34 -33
  134. package/src/safecheck-android.js +11 -0
  135. package/src/safecheck-page.js +12 -0
  136. package/src/safecheck.js +3 -0
@@ -0,0 +1,772 @@
1
+ <template>
2
+ <div>
3
+ <criteria-paged :model="model" v-ref:paged>
4
+ <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:criteria>
5
+ <div partial>
6
+ <div class="row " >
7
+ <label class="form-group font_normal_body"><b>用户信息</b></label>
8
+
9
+ <div class="form-group col-sm-1" >
10
+ <input type="text" class="input_search" v-model="model.f_userinfo_code"
11
+ style="width: 95%" placeholder="客户编号" condition="ui.f_userinfo_code='{}'">
12
+ </div>
13
+ <div class="form-group col-sm-1" >
14
+ <input type="text" class="input_search" v-model="model.f_user_name"
15
+ style="width: 95%" placeholder="客户名称" condition="ui.f_user_name like '%{}%'">
16
+ </div>
17
+ <div class="form-group col-sm-1" >
18
+ <input type="text" class="input_search" v-model="model.f_address"
19
+ style="width: 95%" placeholder="客户地址" condition="ua.f_address like '%{}%'">
20
+ </div>
21
+ <div class="form-group col-sm-1 upuserinfo_sel" >
22
+ <v-select
23
+ class="select select_list"
24
+ :width="'95%'"
25
+ :value.sync="model.f_area"
26
+ v-model="model.f_area"
27
+ :options='$parent.$parent.areaList'
28
+ :timeout="500"
29
+ @select-search="$parent.$parent.select_search"
30
+ placeholder='小区选择'
31
+ condition="ua.f_residential_area = '{}'"
32
+ close-on-select
33
+ value-single
34
+ >
35
+ </v-select>
36
+ </div>
37
+ <div class="form-group col-sm-4" >
38
+ <button class="button_new" style="margin-right: 10px" @click="$parent.$parent.showUserCondition()">更多条件</button>
39
+ <button class="button_new" style="margin-right: 10px" @click="$parent.$parent.showUploadCodeCondition()">导入编号</button>
40
+ <button class="button_new" style="margin-right: 10px" @click="$parent.$parent.clearUserInfoId()">清空编号</button>
41
+ <button class="button_search" style="margin-right: 10px" @click="search()">查询</button>
42
+ </div>
43
+ <div class="form-group col-sm-1" style="float: right">
44
+ <button class="button_search" style="margin-right: 10px" @click="$parent.$parent.dragtoPlanItem()">添入计划</button>
45
+ </div>
46
+ <modal :show.sync="$parent.$parent.showCondtion" v-ref:modal :width="'50%'" :backdrop="false">
47
+ <div slot="modal-header" class="modal-header">
48
+ <h4 class="modal-title">
49
+ 用户查询条件
50
+ </h4>
51
+ </div>
52
+ <div slot="modal-body" class="modal-body">
53
+ <div class="row">
54
+ <div class="form-group col-sm-4" >
55
+ <label class="font_normal_body">用户类型:</label>
56
+ <v-select
57
+ class="select select_list"
58
+ :value.sync="model.f_user_type"
59
+ v-model="model.f_user_type"
60
+ :options='$parent.$parent.userTypes'
61
+ placeholder='请选择'
62
+ condition="uf.f_user_type='{}'"
63
+ :search="false"
64
+ close-on-select
65
+ value-single
66
+ >
67
+ </v-select>
68
+ </div>
69
+ <div class="form-group col-sm-4" >
70
+ <label class="font_normal_body">用户状态:</label>
71
+ <v-select
72
+ class="select select_list"
73
+ :value.sync="model.f_user_state"
74
+ v-model="model.f_user_state"
75
+ :options='$parent.$parent.userStates'
76
+ placeholder='请选择'
77
+ condition="ui.f_user_state='{}'"
78
+ :search="false"
79
+ close-on-select
80
+ value-single
81
+ >
82
+ </v-select>
83
+ </div>
84
+ <div class="form-group col-sm-4" >
85
+ <label class="font_normal_body">用气性质:</label>
86
+ <v-select
87
+ class="select select_list"
88
+ :value.sync="model.f_gasproperties"
89
+ v-model="model.f_gasproperties"
90
+ :options='$parent.$parent.gasproperties'
91
+ placeholder='请选择'
92
+ condition="uf.f_gasproperties='{}'"
93
+ :search="false"
94
+ close-on-select
95
+ value-single
96
+ >
97
+ </v-select>
98
+ </div>
99
+ <div class="form-group col-sm-4" >
100
+ <label class="font_normal_body">气表类型:</label>
101
+ <v-select
102
+ class="select select_list"
103
+ :value.sync="model.meter_classify"
104
+ v-model="model.meter_classify"
105
+ :options='$parent.$parent.meter_classifys'
106
+ placeholder='请选择'
107
+ condition="uf.F_METER_CLASSIFY='{}'"
108
+ :search="false"
109
+ close-on-select
110
+ value-single
111
+ >
112
+ </v-select>
113
+ </div>
114
+ <div class="form-group col-sm-4" >
115
+ <label class="font_normal_body">街&emsp;&emsp;道:</label>
116
+ <v-select
117
+ class="select select_list"
118
+ :value.sync="model.f_street"
119
+ v-model="model.f_street"
120
+ :options='$parent.$parent.streets'
121
+ placeholder='请选择'
122
+ condition="ua.f_street_id='{}'"
123
+ close-on-select
124
+ value-single
125
+ >
126
+ </v-select>
127
+ </div>
128
+ <!--<div class="form-group col-sm-4" >
129
+ <label class="font_normal_body">小区名称:</label>
130
+ <input type="text" class="input_search" v-model="model.f_userinfo_code"
131
+ style="width: 60%" placeholder="请选择" condition="ua.f_residential_area = '{}'">
132
+ </div>-->
133
+ <div class="form-group col-sm-4" >
134
+ <label class="font_normal_body">楼&ensp;栋&ensp;号:</label>
135
+ <input type="text" class="input_search" v-model="model.f_building"
136
+ style="width: 60%" placeholder="请选择" condition="ua.f_building='{}'">
137
+ </div>
138
+ <div class="form-group col-sm-4" >
139
+ <label class="font_normal_body">单&ensp;元&ensp;号:</label>
140
+ <input type="text" class="input_search" v-model="model.f_unit"
141
+ style="width: 60%" placeholder="请选择" condition="ua.f_unit='{}'">
142
+ </div>
143
+ <div class="form-group col-sm-4" >
144
+ <label class="font_normal_body">楼&ensp;层&ensp;号:</label>
145
+ <input type="text" class="input_search" v-model="model.f_floor"
146
+ style="width: 60%" placeholder="请选择" condition="ua.f_floor='{}'">
147
+ </div>
148
+ <div class="form-group col-sm-4" >
149
+ <label class="font_normal_body">开户起始:</label>
150
+ <datepicker
151
+ placeholder='请选择'
152
+ style="width:60%"
153
+ :disabled-days-of-week="[]"
154
+ :format="'yyyy-MM-dd'"
155
+ :show-rest-button="reset"
156
+ :value.sync="model.f_startfile_time"
157
+ v-model="model.f_startfile_time"
158
+ condition="ui.f_createfile_date >= '{} 00:00:00'">
159
+ </datepicker>
160
+ </div>
161
+ <div class="form-group col-sm-4" >
162
+ <label class="font_normal_body">开户截止:</label>
163
+ <datepicker
164
+ placeholder='请选择'
165
+ :disabled-days-of-week="[]"
166
+ style="width:60%"
167
+ :format="'yyyy-MM-dd'"
168
+ :show-rest-button="reset"
169
+ :value.sync="model.f_endfile_time"
170
+ v-model="model.f_endfile_time"
171
+ condition="ui.f_createfile_date <= '{} 23:59:59'">
172
+ </datepicker>
173
+ </div>
174
+ <div class="form-group col-sm-4" >
175
+ <label class="font_normal_body">表&ensp;箱&ensp;号:</label>
176
+ <input type="text" class="input_search" v-model="model.f_metertitles"
177
+ style="width: 60%" placeholder="请输入" condition="uf.f_metertitles='{}'">
178
+ </div>
179
+ <div class="form-group col-sm-4" >
180
+ <label class="font_normal_body">用户电话:</label>
181
+ <input type="text" class="input_search" v-model="model.f_user_phone"
182
+ style="width: 60%" placeholder="请输入" condition="ui.f_user_phone='{}'">
183
+ </div>
184
+ <div class="form-group col-sm-4" >
185
+ <label class="font_normal_body">片&ensp;&ensp;&ensp;&ensp;区:</label>
186
+ <v-select
187
+ class="select select_list"
188
+ :value.sync="model.f_book_slice_area"
189
+ v-model="model.f_book_slice_area"
190
+ :options='$parent.$parent.sliceArea'
191
+ @change="$parent.$parent.slice_areaChange(model.f_book_slice_area)"
192
+ placeholder='请选择'
193
+ condition="ua.f_slice_area ='{}'"
194
+ close-on-select
195
+ value-single
196
+ >
197
+ </v-select>
198
+ </div>
199
+ <div class="form-group col-sm-4" >
200
+ <label class="font_normal_body">抄&ensp;表&ensp;册:</label>
201
+ <v-select
202
+ class="select select_list"
203
+ :value.sync="model.f_meter_book_num"
204
+ v-model="model.f_meter_book_num"
205
+ :options='$parent.$parent.cbc'
206
+ placeholder='请选择'
207
+ condition="uf.f_meter_book_num='{}'"
208
+ close-on-select
209
+ value-single
210
+ >
211
+ </v-select>
212
+ </div>
213
+ <div class="form-group col-sm-4" >
214
+ <label class="font_normal_body">派发情况:</label>
215
+ <v-select
216
+ class="select select_list"
217
+ :value.sync="model.yearCheck"
218
+ v-model="model.yearCheck"
219
+ :options='$parent.$parent.yearCheckList'
220
+ placeholder='请选择'
221
+ condition="{}"
222
+ :search="false"
223
+ close-on-select
224
+ value-single
225
+ >
226
+ </v-select>
227
+ </div>
228
+ <div class="form-group col-sm-4" >
229
+ <label class="font_normal_body">安检起始:</label>
230
+ <datepicker
231
+ placeholder='请选择'
232
+ style="width:60%"
233
+ :disabled-days-of-week="[]"
234
+ :format="'yyyy-MM-dd'"
235
+ :show-rest-button="reset"
236
+ :value.sync="model.f_start_time"
237
+ v-model="model.f_start_time"
238
+ >
239
+ </datepicker>
240
+ </div>
241
+ <div class="form-group col-sm-4" >
242
+ <label class="font_normal_body">安检截止:</label>
243
+ <datepicker
244
+ placeholder='请选择'
245
+ :disabled-days-of-week="[]"
246
+ style="width:60%"
247
+ :format="'yyyy-MM-dd'"
248
+ :show-rest-button="reset"
249
+ :value.sync="model.f_end_time"
250
+ v-model="model.f_end_time"
251
+ >
252
+ </datepicker>
253
+ </div>
254
+ <div class="form-group col-sm-4">
255
+ <label class="font_normal_body">安检状态:</label>
256
+ <v-select
257
+ class="select select_list"
258
+ :value.sync="model.f_last_check_state"
259
+ v-model="model.f_last_check_state"
260
+ :options='$parent.$parent.entry_status'
261
+ placeholder='请选择'
262
+ :search="false"
263
+ close-on-select
264
+ value-single
265
+ >
266
+ </v-select>
267
+ </div>
268
+ <div class="form-group col-sm-4" v-if="$parent.$parent.hasCheckBooks == '是'">
269
+ <label class="font_normal_body">安检册:</label>
270
+ <v-select
271
+ class="select select_list"
272
+ :value.sync="model.checkBook"
273
+ v-model="model.checkBook"
274
+ :options='$parent.$parent.checkBooks'
275
+ placeholder='请选择'
276
+ :search="false"
277
+ close-on-select
278
+ value-single
279
+ >
280
+ </v-select>
281
+ </div>
282
+ <div class="form-group col-sm-4" >
283
+ <label class="font_normal_body">通气起始:</label>
284
+ <datepicker
285
+ placeholder='通气开始时间'
286
+ style="width:60%"
287
+ :disabled-days-of-week="[]"
288
+ :format="'yyyy-MM-dd'"
289
+ :show-rest-button="reset"
290
+ :value.sync="model.f_startgas_time"
291
+ v-model="model.f_startgas_time"
292
+ condition="ui.f_uservent_date >= '{} 00:00:00'">
293
+ </datepicker>
294
+ </div>
295
+ <div class="form-group col-sm-4" >
296
+ <label class="font_normal_body">通气截止:</label>
297
+ <datepicker
298
+ placeholder='通气结束时间'
299
+ :disabled-days-of-week="[]"
300
+ style="width:60%"
301
+ :format="'yyyy-MM-dd'"
302
+ :show-rest-button="reset"
303
+ :value.sync="model.f_endgas_time"
304
+ v-model="model.f_endgas_time"
305
+ condition="ui.f_uservent_date <= '{} 23:59:59'">
306
+ </datepicker>
307
+ </div>
308
+ <!--<div class="form-group col-sm-4" >
309
+ <label class="font_normal_body">入户情况:</label>
310
+ <v-select
311
+ class="select select_list"
312
+ :value.sync="model.f_hasHousehold"
313
+ v-model="model.f_hasHousehold"
314
+ :options='$parent.$parent.hasHousehold'
315
+ placeholder='请选择'
316
+ close-on-select
317
+ :search="false"
318
+ value-single
319
+ >
320
+ </v-select>
321
+ </div>-->
322
+
323
+ </div>
324
+ </div>
325
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
326
+ <button class="button_search" style="margin-right: 15px" @click="search()">查询</button>
327
+ <button class="button_search" @click="$parent.$parent.cancel">取消</button>
328
+ </div>
329
+ </modal>
330
+ <modal :show.sync="$parent.$parent.excelUserCondtion" width="500px" v-ref:modal1 >
331
+ <div slot="modal-header" class="modal-header">
332
+ <h4 class="modal-title">
333
+ 导入用户编号
334
+ </h4>
335
+ </div>
336
+ <div slot="modal-body" class="modal-body">
337
+ <div class="row">
338
+ <file-upload class="my-file-uploader " name="UploadFile" class="btn btn-success" style="border-radius: 2px;"
339
+ action="rs/file/uploadFile" tagname="档案信息导入" v-ref:file :headers="headers" multiple></file-upload>
340
+ <img src="../../../assets/Excelformat.png" style="width: 100%"/>
341
+ </div>
342
+ </div>
343
+ <footer slot="modal-footer" class="modal-footer">
344
+ </footer>
345
+ </modal>
346
+ <!--<div class="form-group col-sm-4 button-range" >
347
+
348
+ <button class="button_search" style="margin-right: 10px" @click="search()">查询</button>
349
+ <export-excel-safe :data="$parent.$parent.exportParameter"
350
+ :field="$parent.$parent.excelHeaders"
351
+ sqlurl="rs/logic/SafeExportExcel" sql-name="planItem"
352
+ template-name='安检计划明细' :choose-col="true">
353
+ </export-excel-safe>
354
+
355
+ </div>-->
356
+ </div>
357
+ </div>
358
+ </criteria>
359
+ <data-grid :model="model" partial='list' class="table_sy">
360
+
361
+ <template partial='head'>
362
+ <tr>
363
+ <th><nobr><input type="checkbox" onClick="event.cancelBubble = true" :checked="$parent.$parent.$parent.checkAll" @change="$parent.$parent.$parent.setCheckAll()"/> 全选</nobr></th>
364
+ <th><nobr>用户编号</nobr></th>
365
+ <th><nobr>用户名称</nobr></th>
366
+ <th><nobr>用户类型</nobr></th>
367
+ <th><nobr>用户电话</nobr></th>
368
+ <th><nobr>表具类型</nobr></th>
369
+ <th><nobr>小区名称</nobr></th>
370
+ <th><nobr>片区</nobr></th>
371
+ <th><nobr>抄表册</nobr></th>
372
+ <th title="当前所在的安检计划名称"><nobr>所属计划</nobr></th>
373
+ <th title="最后一次安检日期"><nobr>安检日期</nobr></th>
374
+ <th><nobr>首次通气时间</nobr></th>
375
+ <th><nobr>详细地址</nobr></th>
376
+ </tr>
377
+ </template>
378
+ <template partial='body'>
379
+ <td style="text-align: center;white-space:nowrap;"><input type="checkbox" onClick="event.cancelBubble = true" :checked="$parent.$parent.$parent.isChecked(row.id)" @change="$parent.$parent.$parent.setCheckes(row.id)" /></td>
380
+ <td style="text-align: center"><nobr>{{row.f_userinfo_code}}</nobr></td>
381
+ <td style="text-align: center"><nobr>{{row.f_user_name}}</nobr></td>
382
+ <td style="text-align: center"><nobr>{{row.f_user_type}}</nobr></td>
383
+ <td style="text-align: center"><nobr>{{row.f_user_phone}}</nobr></td>
384
+ <td style="text-align: center"><nobr>{{row.f_meter_classify}}</nobr></td>
385
+ <td style="text-align: center"><nobr>{{row.f_residential_area}}</nobr></td>
386
+ <td style="text-align: center"><nobr>{{row.f_book_slice_area}}</nobr></td>
387
+ <td style="text-align: center"><nobr>{{row.f_book_name}}</nobr></td>
388
+ <td style="text-align: center"><nobr>{{row.f_plan_name}}</nobr></td>
389
+ <td style="text-align: center"><nobr>{{row.f_last_check_date}}</nobr></td>
390
+ <td style="text-align: center"><nobr>{{row.f_uservent_date}}</nobr></td>
391
+ <td style="text-align: center"><nobr>{{row.f_address}}</nobr></td>
392
+ </template>
393
+ </data-grid>
394
+ </criteria-paged>
395
+ </div>
396
+ </template>
397
+
398
+ <script>
399
+ import {HttpResetClass, PagedList} from "vue-client";
400
+ import Vue from "vue";
401
+
402
+ export default {
403
+ name: "PlanManage",
404
+ title: '计划管理',
405
+ data() {
406
+ return {
407
+ model:new PagedList('/rs/sql/FetchUserFileByOrgNoRuHuSXQ', 100, {
408
+ "orderitem": "'f_residential_area,f_building,f_unit,f_floor,f_room'",
409
+ "f_usertype": "''",
410
+ "month": "''",
411
+ "SafeCheckSX": {"f_check_start": '', "f_check_end": ''},
412
+ "SafeCheckCQ": "''",
413
+ "startday":"''",
414
+ "endday":"''"}),
415
+ a:'1',
416
+ opt:[{label:"测试",value:"测试"}],
417
+ showCondtion:false,
418
+ userTypes:[],//用户类型
419
+ userStates:[],//用户状态
420
+ gasproperties:[],//用气性质
421
+ meter_classifys:[],//气表类型
422
+ hasHousehold:[{label:"全部",value:""},{label:"已入户",value:"已入户"},{label:"未入户",value:"未入户"}],
423
+ yearCheckList:[{label:"全部",value:""},{label:"已在计划中",value:"ua.f_plan_id is not null"},{label:"未在计划中",value:"ua.f_plan_id is null"}],
424
+ entry_status: this.$appdata.getParam('安检状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检状态')]:[{label: '全部', value: ''}],
425
+ sliceArea:[],
426
+ meterbooks:[],
427
+ hasCheckBooks:'否',
428
+ checkBooks:[],
429
+ cbc:[],
430
+ areaList:[],
431
+ checkAll:false,
432
+ checkes:[],
433
+ excelUserCondtion:false,
434
+ uploadCodeCondition:'',
435
+ streets:[]
436
+ }
437
+ },
438
+ props:["selectplan","userlogin"],
439
+ ready(){
440
+ this.$refs.paged.$refs.criteria.model.f_user_state='正常'
441
+ this.hasCheckBooks=this.$appdata.getSingleValue('是否使用安检册')
442
+ // this.$refs.paged.$refs.criteria.model.f_endfile_time=Util.toStartDateYearString()
443
+ //this.$refs.paged.$refs.criteria.model.f_hasHousehold='未入户'
444
+ this.getCheckBook()
445
+ this.setConList()
446
+ this.loadpage()
447
+
448
+ },
449
+ methods: {
450
+ getCheckBook(){
451
+ this.checkBooks=[]
452
+ new HttpResetClass().load('POST', `/rs/sql/safe_singleTable_OrderBy`, {
453
+ data: {
454
+ items: 'id,f_check_book_name,f_check_book_type',
455
+ tablename: 't_check_book',
456
+ condition: `f_orgid = '${this.userlogin.orgid}'`,
457
+ orderitem: 'id desc'
458
+ }
459
+ }, {resolveMsg: null, rejectMsg: null}).then(res => {
460
+ this.checkBooks.push({label: '全部', value: ''})
461
+ res.data.forEach(ress => {
462
+ this.checkBooks.push({
463
+ label: ress.f_check_book_name,
464
+ value: `${ress.id}-${ress.f_check_book_type}`
465
+ })
466
+ })
467
+ })
468
+ },
469
+ loadpage(){
470
+ this.select_search()
471
+ this.select_street()
472
+ this.Mreadibook()
473
+ this.getSliceArea()
474
+ },
475
+ cancel(){
476
+ this.showCondtion=false
477
+ this.excelUserCondtion=false
478
+ },
479
+ //清空用户编号
480
+ clearUserInfoId(){
481
+ this.uploadCodeCondition=''
482
+ Vue.showMessage("已清空用户编号")
483
+ },
484
+ showUploadCodeCondition(){
485
+ this.excelUserCondtion=true
486
+ },
487
+ selfSearch (args) {
488
+ //tag)
489
+ args.condition += ` and ui.f_filialeid='${this.userlogin.orgid}'`
490
+ /*if(args.model.f_hasHousehold=='已入户'){
491
+ args.condition +=` and Extract(year from TO_DATE(ua.f_last_check_date,'yyyy-mm-dd hh24:mi:ss'))=2021 and ua.F_LAST_CHECK_STATE='入户'`
492
+ }else if(args.model.f_hasHousehold=='未入户'){
493
+ args.condition +=` and (Extract(year from nvl(TO_DATE(ua.f_last_check_date,'yyyy-mm-dd hh24:mi:ss'),'1990-01-01 00:00:00'))!=2021 or nvl(ua.F_LAST_CHECK_STATE,'未入户')!='入户')`
494
+ }*/
495
+
496
+ if (args.model.f_last_check_state == '未检') {
497
+ let nocheckcon = 'and ( ui.f_last_check_date is null '
498
+ if(args.model.f_start_time){
499
+ nocheckcon += ` or ui.f_last_check_date <='${args.model.f_start_time} 00:00:00' `
500
+ }
501
+ if(args.model.f_end_time){
502
+ nocheckcon += ` or ui.f_last_check_date >='${args.model.f_end_time} 23:59:59' `
503
+ }
504
+ nocheckcon += ')'
505
+ args.condition += nocheckcon
506
+ }else{
507
+ if(args.model.f_last_check_state){
508
+ args.condition += ` and ui.f_last_check_state = '${args.model.f_last_check_state}'`
509
+ }
510
+ if(args.model.f_start_time){
511
+ args.condition += ` and ui.f_last_check_date >='${args.model.f_start_time} 00:00:00' `
512
+ }
513
+ if(args.model.f_end_time){
514
+ args.condition += ` and ui.f_last_check_date <='${args.model.f_end_time} 23:59:59' `
515
+ }
516
+ }
517
+
518
+ if(args.model.checkBook){
519
+ let arr=args.model.checkBook.split('-')
520
+ if(arr[1] == '用户'){
521
+ args.condition +=` and ua.f_check_book_id='${arr[0]}'`
522
+ }else{
523
+ args.condition +=` and area.f_check_book_id=${arr[0]} and ua.f_check_book_id is null`
524
+ }
525
+ }
526
+ if(this.uploadCodeCondition){
527
+ args.condition +=` and ${this.uploadCodeCondition}`
528
+ }
529
+ this.cancel()
530
+ this.checkes=[]
531
+ this.checkAll=false
532
+ this.model.search(args.condition, args.model, args.condValue)
533
+ },
534
+ showUserCondition(){
535
+ this.showCondtion=true
536
+ },
537
+ setConList(){
538
+ this.userTypes=this.$appdata.getParam('用户类型') ? [{
539
+ label: '全部',
540
+ value: ''
541
+ }, ...this.$appdata.getParam('用户类型')] : [{label: '全部', value: ''}]
542
+
543
+ this.userStates=this.$appdata.getParam('安检用户状态') ? [{
544
+ label: '全部',
545
+ value: ''
546
+ },...this.$appdata.getParam('安检用户状态')] : [{label: '全部', value: ''}]
547
+ this.gasproperties=this.$appdata.getParam('用气性质') ? [{
548
+ label: '全部',
549
+ value: ''
550
+ }, ...this.$appdata.getParam('用气性质')] : [{label: '全部', value: ''}]
551
+ this.meter_classifys=this.$appdata.getParam('气表类型') ? [{
552
+ label: '全部',
553
+ value: ''
554
+ }, ...this.$appdata.getParam('气表类型')] : [{label: '全部', value: ''}]
555
+ },
556
+ select_search(text){
557
+ let pcdText=text?` and f_residential_area like '%${text}%'`:'1=1'
558
+ new HttpResetClass().load('POST', 'rs/sql/safe_singleTable_GroupBy', {
559
+ data: {
560
+ items: 'f_residential_area',
561
+ tablename: 't_user_address',
562
+ condition: pcdText,
563
+ groupitem: 'f_residential_area'
564
+ }
565
+ }, {resolveMsg: null, rejectMsg: null}).then((res)=>{
566
+ res.data.forEach((result)=>{
567
+ this.areaList.push({label:result.f_residential_area,value:result.f_residential_area})
568
+ })
569
+ })
570
+ },
571
+ select_street(){
572
+ //tag
573
+ new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {data:{items:"id,f_street",tablename:"t_street",orderitem:"id",condition:`f_orgid = '${this.userlogin.orgid}'`}}, {resolveMsg: null, rejectMsg: null}).then((res)=>{
574
+ //tag)
575
+ if(res.data.length>0){
576
+ this.streets=[]
577
+ this.streets.push({label:"全部",value:""})
578
+ res.data.forEach((result)=>{
579
+ this.streets.push({label:result.f_street,value:result.id})
580
+ })
581
+ }
582
+ })
583
+ },
584
+ //获取抄表册
585
+ async Mreadibook(){
586
+ this.cbc=[]
587
+ this.sliceArea=[]
588
+ let http = new HttpResetClass()
589
+ let getMeterReadingBooks = await http.load('POST','rs/logic/getMeterBooksData',
590
+ {data: {f_orgid: "('"+this.userlogin.orgid+"')"}},
591
+ {resolveMsg: null, rejectMsg: '获取失败!!!'})
592
+ this.cbc = [{label: '全部', value: ''}]
593
+ //tag
594
+ //tag)
595
+ //tag
596
+ this.meterbooks=[]
597
+ this.meterbooks=getMeterReadingBooks.data.meterbooks
598
+ this.meterbooks.forEach((res) => {
599
+ this.cbc.push({label: res.f_book_name, value: res.id})
600
+ /*if(res.f_book_slice_area){
601
+ if(this.sliceArea.indexOf(res.f_book_slice_area)<0){
602
+ this.sliceArea.push(res.f_book_slice_area)
603
+ }
604
+ }*/
605
+ })
606
+
607
+ },
608
+ //片区获取
609
+ async getSliceArea() {
610
+ let http = new HttpResetClass()
611
+ let getAllArea = await http.load('POST', '/rs/search', {
612
+ source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
613
+ userid: this.userlogin.id
614
+ }, {resolveMsg: null, rejectMsg: '获取片区出错!!!'})
615
+ this.sliceArea = [{label: '全部', value: ''}]
616
+ //tag
617
+ //tag
618
+ //tag
619
+ getAllArea.data.forEach((res) => {
620
+ if(res.parentid==this.userlogin.orgid){
621
+ this.sliceArea.push({label:res.name,value:res.name})
622
+ }
623
+ })
624
+ //tag
625
+ },
626
+ //片区改变-对应抄表册下拉重新赋值
627
+ slice_areaChange(value) {
628
+ //tag
629
+ if(!value){
630
+ this.cbc=[]
631
+ this.meterbooks.forEach((res) => {
632
+ this.cbc.push({label: res.f_book_name, value: res.id})
633
+ })
634
+ }else{
635
+ this.cbc=[]
636
+ this.meterbooks.forEach((res) => {
637
+ if(res.f_book_slice_area==value){
638
+ this.cbc.push({label: res.f_book_name, value: res.id})
639
+ }
640
+ })
641
+ }
642
+ },
643
+ isChecked(v) {
644
+ // 如果全选,不在的按选中算,否则,在的按选中算
645
+ if (this.checkAll) {
646
+ return this.checkes.indexOf(v) == -1
647
+ } else {
648
+ return this.checkes.indexOf(v) != -1
649
+ }
650
+ },
651
+ setCheckAll() {
652
+ this.checkAll=this.checkAll?false:true;
653
+ // 全选改变后,清空选中数据
654
+ this.checkes = []
655
+ },
656
+ setCheckes(id) {
657
+ let index=this.checkes.indexOf(id)
658
+ if(index<0){
659
+ this.checkes.push(id)
660
+ }else{
661
+ this.checkes.splice(index,1)
662
+ }
663
+ },
664
+ //将客户信息拖至计划中
665
+ async dragtoPlanItem() {
666
+ if(this.model.rows.length==0){
667
+ Vue.showMessage("未检测到列表中有用户!")
668
+ return
669
+ }
670
+ if(!this.checkAll && this.checkes.length==0){
671
+ Vue.showMessage("请先勾选你要添入到上方计划中的用户!")
672
+ return
673
+ }
674
+ if(this.selectplan && this.selectplan.id){
675
+ this.$parent.isSend=true
676
+ try{
677
+ let res=await new HttpResetClass().load("POST", "/rs/logic/AddCheckPlanItem", {
678
+ data:{
679
+ f_operator:this.userlogin.name,
680
+ f_plan_id:this.selectplan.id,
681
+ f_safecheck_type:this.selectplan.f_safecheck_type,
682
+ f_filialeid:this.userlogin.orgid,
683
+ f_subscribe_date:'',
684
+ condition:this.model.condition,
685
+ switchCheckAll:true,
686
+ checkAll:this.checkAll,
687
+ param:this.checkes,
688
+ columnName: "ua.id"
689
+ }
690
+ }, {resolveMsg: null, rejectMsg: null})
691
+ //tag+"---"+res.data.result.length)
692
+ this.$parent.isSend=false
693
+ if(res.data.code==200){
694
+ //alert("添加成功!有"+res.data.result.length+"条用户地址已经存在于其他计划中: \n"+res.data.result.reduce((c,v)=>{c += v.f_user_name+":"+v.f_address+"\n"}),0)
695
+ this.$showMessage("添加成功!"+(res.data.result.length>0?"有"+res.data.result.length+"条用户地址已经存在于其他计划中":""))
696
+ this.$parent.refresh()
697
+ }else{
698
+ this.$showMessage("添加失败!")
699
+ }
700
+ }catch (e) {
701
+ this.$showMessage("添加失败!")
702
+ }
703
+ }else{
704
+ this.$parent.isSend=false
705
+ this.$showMessage("请先打开一个计划再进行操作")
706
+ }
707
+ }
708
+ },
709
+ events: {
710
+ onFileUpload: function (file, res) {
711
+ //tag)
712
+ //tag)
713
+ let data = {
714
+ filepath: res.f_downloadpath
715
+ }
716
+ new HttpResetClass().load('POST','/rs/logic/safe_GetUserInfoFromExcel', {data: data}, {
717
+ resolveMsg: '导入成功!已生成条件,若要去除导入条件请点击旁边 ‘清空用户编号’ 按钮。',
718
+ rejectMsg: '导入失败'
719
+ }).then((res) => {
720
+ this.uploadCodeCondition=res.data.condition
721
+ this.excelUserCondtion = false
722
+ })
723
+ },
724
+
725
+ }
726
+ }
727
+ </script>
728
+
729
+ <style scoped>
730
+ .safe-planfont{
731
+ font-family: MicrosoftYaHei;
732
+ font-size: 15px;
733
+ font-weight: normal;
734
+ font-stretch: normal;
735
+ letter-spacing: 2px;
736
+ color: #333333;
737
+ line-height: 25px;
738
+ }
739
+ .safe-bodyfont{
740
+ font-family: MicrosoftYaHei;
741
+ font-size: 14px;
742
+ font-weight: normal;
743
+ font-stretch: normal;
744
+ letter-spacing: 0px;
745
+ color: #999999;
746
+ line-height: 30px;
747
+ }
748
+ .safe-leftplan{
749
+ height:auto;
750
+ border-bottom:1px solid #ececec;
751
+ padding: 10px 5px
752
+ }
753
+ .leftplan-center{
754
+ border-top:1px solid #ececec;
755
+ border-bottom:1px solid #ececec;
756
+ }
757
+ .safe_p{
758
+ white-space: nowrap;
759
+ overflow: hidden;
760
+ text-overflow: ellipsis;
761
+ }
762
+ .safe-div-p{
763
+ color: #4792de;
764
+ text-align: end;
765
+ padding: 8px 15px;
766
+ }
767
+ </style>
768
+ <style lang="less">
769
+ .upuserinfo_sel ul{
770
+ width: 150% !important;
771
+ }
772
+ </style>