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,722 +1,735 @@
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
- <div class="form-group col-sm-2" >
8
- <label class="font_normal_body">用户信息</label>
9
- <input type="text" class="input_search" v-model="model.f_userinfo_code"
10
- style="width: 60%" placeholder="客户编号" condition="ui.f_userinfo_code='{}'">
11
- </div>
12
- <div class="form-group col-sm-2" >
13
- <label class="font_normal_body" title="参数名称:安检用户状态">用户状态:</label>
14
- <v-select
15
- class="select select_list"
16
- :value.sync="model.f_user_state"
17
- v-model="model.f_user_state"
18
- :options='$parent.$parent.userStates'
19
- placeholder='请选择'
20
- condition="ui.f_user_state='{}'"
21
- :search="false"
22
- close-on-select
23
- value-single
24
- >
25
- </v-select>
26
- </div>
27
- <div class="form-group col-sm-2" >
28
- <label class="font_normal_body"title="参数名称:用气性质">用气性质:</label>
29
- <v-select
30
- class="select select_list"
31
- :value.sync="model.f_gasproperties"
32
- v-model="model.f_gasproperties"
33
- :options='$parent.$parent.gasproperties'
34
- placeholder='请选择'
35
- condition="uf.f_gasproperties in {}"
36
- :search="false"
37
- :multiple="true"
38
- close-on-select
39
- >
40
- </v-select>
41
- </div>
42
- <div class="form-group col-sm-2" >
43
- <label class="font_normal_body">气表品牌:</label>
44
- <v-select
45
- class="select select_list"
46
- :value.sync="model.metergasbrand"
47
- v-model="model.metergasbrand"
48
- :options='$parent.$parent.meter_gasbrand'
49
- placeholder='气表品牌'
50
- condition="uf.f_gasbrand_id in {}"
51
- :search="false"
52
- :multiple="true"
53
- close-on-select
54
- >
55
- </v-select>
56
- </div>
57
- <div class="form-group col-sm-4" >
58
- <button class="button_new" style="margin-right: 10px" @click="$parent.$parent.showUserCondition()">更多条件</button>
59
- <button class="button_search" style="margin-right: 10px" @click="search()">查询</button>
60
- <button class="button_search" style="margin-right: 10px" @click="$parent.$parent.createAndSend()">下发</button>
61
- </div>
62
- <modal :show.sync="$parent.$parent.showCondtion" v-ref:modal :width="'50%'" :backdrop="false">
63
- <div slot="modal-header" class="modal-header">
64
- <h4 class="modal-title">
65
- 用户查询条件
66
- </h4>
67
- </div>
68
- <div slot="modal-body" class="modal-body">
69
- <div class="row">
70
- <div class="form-group col-sm-4" >
71
- <label class="font_normal_body">楼&ensp;栋&ensp;号:</label>
72
- <input type="text" class="input_search" v-model="model.f_building"
73
- style="width: 60%" placeholder="请选择" condition="ua.f_building='{}'">
74
- </div>
75
- <div class="form-group col-sm-4" >
76
- <label class="font_normal_body">单&ensp;元&ensp;号:</label>
77
- <input type="text" class="input_search" v-model="model.f_unit"
78
- style="width: 60%" placeholder="请选择" condition="ua.f_unit='{}'">
79
- </div>
80
- <div class="form-group col-sm-4" >
81
- <label class="font_normal_body">派发情况:</label>
82
- <v-select
83
- class="select select_list"
84
- :value.sync="model.yearCheck"
85
- v-model="model.yearCheck"
86
- :options='$parent.$parent.yearCheckList'
87
- placeholder='请选择'
88
- condition="{}"
89
- :search="false"
90
- close-on-select
91
- value-single
92
- >
93
- </v-select>
94
- </div>
95
- <div class="form-group col-sm-4" >
96
- <label class="font_normal_body">安检状态:</label>
97
- <v-select
98
- class="select select_list"
99
- :multiple="true"
100
- :value.sync="model.f_last_check_state"
101
- v-model="model.f_last_check_state"
102
- :options='$parent.$parent.entry_status'
103
- placeholder='请选择'
104
- :search="false"
105
- >
106
- </v-select>
107
- </div>
108
- <div class="form-group col-sm-4" >
109
- <label class="font_normal_body">安检起始:</label>
110
- <datepicker
111
- placeholder='请选择'
112
- style="width:60%;text-align: center"
113
- :disabled-days-of-week="[]"
114
- :format="'yyyy-MM-dd'"
115
- :show-rest-button="reset"
116
- :value.sync="model.f_check_start"
117
- v-model="model.f_check_start">
118
- </datepicker>
119
- </div>
120
- <div class="form-group col-sm-4" >
121
- <label class="font_normal_body">安检截止:</label>
122
- <datepicker
123
- placeholder='请选择'
124
- :disabled-days-of-week="[]"
125
- style="width:60%;text-align: center"
126
- :format="'yyyy-MM-dd'"
127
- :show-rest-button="reset"
128
- :value.sync="model.f_check_end"
129
- v-model="model.f_check_end">
130
- </datepicker>
131
- </div>
132
-
133
- </div>
134
- </div>
135
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
136
- <button class="button_search" style="margin-right: 15px" @click="search()">查询</button>
137
- <button class="button_search" @click="$parent.$parent.cancel">取消</button>
138
- </div>
139
- </modal>
140
- <modal :show.sync="$parent.$parent.excelUserCondtion" width="500px" v-ref:modal1 >
141
- <div slot="modal-header" class="modal-header">
142
- <h4 class="modal-title">
143
- 导入用户编号
144
- </h4>
145
- </div>
146
- <div slot="modal-body" class="modal-body">
147
- <div class="row">
148
- <file-upload class="my-file-uploader " name="UploadFile" class="btn btn-success" style="border-radius: 2px;"
149
- action="rs/file/uploadFile" tagname="档案信息导入" v-ref:file :headers="headers" multiple></file-upload>
150
- <img src="../../../assets/Excelformat.png" style="width: 100%"/>
151
- </div>
152
- </div>
153
- <footer slot="modal-footer" class="modal-footer">
154
- </footer>
155
- </modal>
156
- </div>
157
- </div>
158
- </criteria>
159
- <data-grid :model="model" partial='list' class="table_sy">
160
-
161
- <template partial='head'>
162
- <tr>
163
- <th><nobr><input type="checkbox" @dblclick.stop="" onClick="event.cancelBubble = true" :checked="$parent.$parent.$parent.checkAll" @change="$parent.$parent.$parent.setCheckAll()"/> 全选</nobr></th>
164
- <th><nobr>用户编号</nobr></th>
165
- <th><nobr>用户名称</nobr></th>
166
- <th><nobr>用户类型</nobr></th>
167
- <th><nobr>小区名称</nobr></th>
168
- <!-- <th><nobr>片区</nobr></th>-->
169
- <!-- <th><nobr>抄表册</nobr></th>-->
170
- <!-- <th title="当前所在的安检计划名称"><nobr>所属计划</nobr></th>-->
171
- <th title="最后一次安检日期"><nobr>安检日期</nobr></th>
172
- <th title="最后一次安检状态"><nobr>安检状态</nobr></th>
173
- <th><nobr>详细地址</nobr></th>
174
- </tr>
175
- </template>
176
- <template partial='body'>
177
- <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>
178
- <td style="text-align: center"><nobr>{{row.f_userinfo_code}}</nobr></td>
179
- <td style="text-align: center"><nobr>{{row.f_user_name}}</nobr></td>
180
- <td style="text-align: center"><nobr>{{row.f_user_type}}</nobr></td>
181
- <td style="text-align: center"><nobr>{{row.f_residential_area}}</nobr></td>
182
- <!-- <td style="text-align: center"><nobr>{{row.f_slice_area}}</nobr></td>-->
183
- <!-- <td style="text-align: center"><nobr>{{row.f_book_name}}</nobr></td>-->
184
- <!-- <td style="text-align: center"><nobr>{{row.f_plan_name}}</nobr></td>-->
185
- <td style="text-align: center"><nobr>{{row.f_last_check_date}}</nobr></td>
186
- <td style="text-align: center"><nobr>{{row.f_last_check_state}}</nobr></td>
187
- <td style="text-align: center"><nobr>{{row.f_address}}</nobr></td>
188
- </template>
189
- </data-grid>
190
- </criteria-paged>
191
- <modal :show.sync="showCreatePlan" v-ref:modal1 :width="'50%'" :backdrop="false">
192
- <div slot="modal-header" class="modal-header">
193
- <h4 class="modal-title">
194
- 新建计划
195
- </h4>
196
- </div>
197
- <div slot="modal-body" class="modal-body">
198
- <div class="row">
199
- <div class="form-group col-sm-4" >
200
- <label class="font_normal_body">计划名称:</label>
201
- <input type="text" class="input_search" v-model="createPlan.f_plan_name"
202
- style="width: 60%" placeholder="请选择" />
203
- </div>
204
- <div class="form-group col-sm-4" >
205
- <label class="font_normal_body">计划年份:</label>
206
- <v-select
207
- class="select select_list"
208
- :value.sync="createPlan.f_plan_year"
209
- v-model="createPlan.f_plan_year"
210
- :search="false"
211
- :options='yearList'
212
- close-on-select
213
- value-single
214
- >
215
- </v-select>
216
- </div>
217
- <div class="form-group col-sm-4" >
218
- <label class="font_normal_body">计划月份:</label>
219
- <v-select
220
- class="select select_list"
221
- :value.sync="createPlan.f_plan_month"
222
- v-model="createPlan.f_plan_month"
223
- :search="false"
224
- :options='monthList'
225
- close-on-select
226
- value-single>
227
- </v-select>
228
- </div>
229
- <div class="form-group col-sm-4" >
230
- <label class="font_normal_body">计划开始:</label>
231
- <datepicker
232
- placeholder='请选择'
233
- style="width:60%"
234
- :disabled-days-of-week="[]"
235
- :format="'yyyy-MM-dd'"
236
- :show-rest-button="reset"
237
- :value.sync="createPlan.f_start_time"
238
- v-model="createPlan.f_start_time">
239
- </datepicker>
240
- </div>
241
- <div class="form-group col-sm-4" >
242
- <label class="font_normal_body">计划结束:</label>
243
- <datepicker
244
- placeholder='请选择'
245
- style="width:60%"
246
- :disabled-days-of-week="[]"
247
- :format="'yyyy-MM-dd'"
248
- :show-rest-button="reset"
249
- :value.sync="createPlan.f_end_time"
250
- v-model="createPlan.f_end_time">
251
- </datepicker>
252
- </div>
253
- </div>
254
- </div>
255
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
256
- <button class="button_search" style="margin-right: 15px" @click="addNewPlan()">创建计划</button>
257
- <button class="button_search" @click="cancelCreatePlan">取消</button>
258
- </div>
259
- </modal>
260
- </div>
261
- </template>
262
-
263
- <script>
264
- import {HttpResetClass, PagedList} from "vue-client";
265
- import * as Util from "../../../components/Util";
266
- import Vue from "vue";
267
- import {toStandardDateString} from "../../../components/Util";
268
-
269
- export default {
270
- title: '计划管理',
271
- data() {
272
- return {
273
- createPlan:{
274
- f_safecheck_type:"年度普检",
275
- checker:"",
276
- isShare:"否",
277
- f_usertype:"",
278
- f_issued:'是',
279
- f_end_time:Util.toStandardDateString().replace(new Date().getFullYear().toString(),(new Date().getFullYear()+1).toString()),
280
- f_start_time:Util.toStandardDateString(),
281
- f_plan_month:(new Date().getMonth()+1).toString(),
282
- f_plan_year:new Date().getFullYear().toString(),
283
- f_plan_name:""
284
- },
285
- yearList:[{label:"2020",value:"2020"},{label:"2021",value:"2021"},{label:"2022",value:"2022"},{label:"2023",value:"2023"},{label:"2024",value:"2024"},{label:"2025",value:"2025"},{label:"2026",value:"2026"},{label:"2027",value:"2027"},{label:"2028",value:"2028"},{label:"2029",value:"2029"},{label:"2030",value:"2030"}],
286
- monthList:[{label:"1",value:"1"},{label:"2",value:"2"},{label:"3",value:"3"},{label:"4",value:"4"},{label:"5",value:"5"},{label:"6",value:"6"},{label:"7",value:"7"},{label:"8",value:"8"},{label:"9",value:"9"},{label:"10",value:"10"},{label:"11",value:"11"},{label:"12",value:"12"}],
287
- showCreatePlan:false,
288
- model:new PagedList('/rs/sql/FetchUserFileByOrgNoRuHuSXQ', 20, {
289
- "orderitem": "'f_residential_area,f_building,f_unit,f_floor,f_room'",
290
- "f_usertype": "''",
291
- "month": "''",
292
- "SafeCheckSX": {"f_check_start": '', "f_check_end": ''},
293
- "SafeCheckCQ": "''",
294
- "startday":"''",
295
- "endday":"''"}),
296
- a:'1',
297
- opt:[{label:"测试",value:"测试"}],
298
- showCondtion:false,
299
- userTypes:[],//用户类型
300
- entry_status:[],
301
- userStates:[],//用户状态
302
- gasproperties:[],//用气性质
303
- meter_gasbrand:[],//气表品牌
304
- hasHousehold:[{label:"全部",value:""},{label:"已入户",value:"已入户"},{label:"未入户",value:"未入户"}],
305
- yearCheckList:[{label:"全部",value:""},{label:"已在计划中",value:"ua.f_plan_id is not null"},{label:"未在计划中",value:"ua.f_plan_id is null"}],
306
- checkStateList:[{label:"全部",value:""},{label:"两年内已检",value:"DATEDIFF(day,isnull(ui.f_last_check_date,'2010-01-01'),GETDATE())<=730"},{label:"两年内未检",value:"DATEDIFF(day,isnull(ui.f_last_check_date,'2010-01-01'),GETDATE())>730"},{label:"从未安检",value:"从未安检"}],
307
- hasResidentialArea:[{label:"全部",value:""},{label:"有名称",value:"有名称"},{label:"无名称",value:"无名称"}],
308
- sliceArea:[],
309
- meterbooks:[],
310
- checkBooks:[{label:'sss',value:'1-用户'},{label:'ssssss',value:'1-小区'}],
311
- cbc:[],
312
- areaList:[],
313
- checkAll:false,
314
- checkes:[],
315
- areaen:[],//片区
316
- excelUserCondtion:false,
317
- uploadCodeCondition:''
318
- }
319
- },
320
- props:["userlogin","bookrow","needprops","row","bookrowsdata","addcondata"],
321
- ready(){
322
- console.log("this.bookrow",this.bookrow)
323
- console.log("this.row",this.row)
324
- console.log("this.needprops",this.needprops)
325
- this.createPlan.checker = this.needprops.checker.filter(item=>item.label == this.row.f_checker_name)[0].value
326
- this.createPlan.f_checker_id=this.createPlan.checker.id
327
- this.createPlan.f_checker=this.createPlan.checker.name
328
- this.createPlan.f_usertype = this.row.f_user_type
329
- if(this.row.f_user_type == '非民用'){
330
- this.createPlan.f_plan_name = `${this.row.f_check_book_name}${this.createPlan.f_plan_year}年${this.createPlan.f_plan_month}月`
331
- }else{
332
- this.createPlan.f_plan_name = `${this.row.f_check_book_name}${this.createPlan.f_plan_year}年`
333
- }
334
- this.$refs.paged.$refs.criteria.model.f_user_state='正常'
335
- this.meter_gasbrand=this.needprops.meter_gasbrand,
336
- this.checkBooks=this.needprops.checkBooks,
337
- this.entry_status=this.needprops.entry_status,
338
- this.userTypes=this.needprops.userTypes,
339
- this.userStates=this.needprops.userStates,
340
- this.gasproperties=this.needprops.gasproperties,
341
- this.areaList=this.needprops.areaList,
342
- this.sliceArea=this.needprops.sliceArea,
343
- this.cbc=this.needprops.cbc,
344
- this.meterbooks=this.needprops.meterbooks
345
- },
346
- methods: {
347
- async addNewPlan(){
348
- this.createPlan.f_plan_type='预约计划'
349
- this.createPlan.f_subcompany=this.userlogin.orgstr
350
- this.createPlan.f_filialeid=this.userlogin.orgid
351
- this.createPlan.f_create_operator=this.userlogin.name
352
- this.createPlan.f_create_time=Util.toStandardTimeString()
353
- this.createPlan.f_check_book_id = this.row.id
354
- console.log(this.createPlan)
355
- const addPlan = {
356
- f_operator:this.userlogin.name,
357
- f_filialeid:this.userlogin.orgid,
358
- f_subscribe_date:'',
359
- condition:this.model.condition,
360
- switchCheckAll:true,
361
- checkAll:this.checkAll,
362
- param:this.checkes,
363
- columnName: "ua.id"
364
- }
365
- new HttpResetClass().load("POST",'/rs/logic/createAndAddPlan',{createPlan:this.createPlan,addPlan}).then(res=>{
366
- if(res.data.code==200){
367
- this.$showMessage("计划下发成功!"+(res.data.result.length>0?"有"+res.data.result.length+"条用户地址已经存在于其他计划中":""))
368
- this.cancelCreatePlan()
369
- }else{
370
- this.$showMessage("计划下发失败!")
371
- }
372
- })
373
- },
374
- cancelCreatePlan(){
375
- this.showCreatePlan = false
376
- },
377
- createAndSend(){
378
- if(this.model.rows.length==0){
379
- Vue.showMessage("未检测到列表中有用户!")
380
- return
381
- }
382
- if(!this.checkAll && this.checkes.length==0){
383
- Vue.showMessage("请先勾选你要添入到上方计划中的用户!")
384
- return
385
- }
386
- this.showCreatePlan = true
387
- },
388
- cancel(){
389
- this.showCondtion=false
390
- this.excelUserCondtion=false
391
- },
392
- //清空用户编号
393
- clearUserInfoId(){
394
- this.uploadCodeCondition=''
395
- Vue.showMessage("已清空用户编号")
396
- },
397
- showUploadCodeCondition(){
398
- this.excelUserCondtion=true
399
- },
400
- selfSearch (args) {
401
- console.log(this.bookrow,"6666")
402
- //tag)
403
- // 判断时间和状态匹配条件
404
- let f_last_check_state = ''
405
-
406
- if(args.model.f_last_check_state.length > 0){
407
- let zzcon = ''
408
- if( Util.isEmpty(args.model.f_check_start) && Util.isEmpty(args.model.f_check_end)){
409
- this.$showMessage("选择安检状态时,需要选择安检时间区间!")
410
- return
411
- }
412
- for(let i = 0;i<args.model.f_last_check_state.length;i++){
413
- if(args.model.f_last_check_state[i] == '未检'){
414
- let lscon = args.model.f_check_start ? ` or ui.f_last_check_date <= '${args.model.f_check_start} 00:00:00'` :''
415
- lscon += lscon ? (args.model.f_check_end ? ` or ui.f_last_check_date >= '${args.model.f_check_end} 23:59:59'` :''): (args.model.f_check_end ? `ui.f_last_check_date >= '${args.model.f_check_end} 23:59:59'` :'')
416
- if(i == args.model.f_last_check_state.length-1){
417
- zzcon += `( ui.f_last_check_state is null or ua.f_last_check_state ='' ${lscon} ) `
418
- }else{
419
- zzcon += `( ui.f_last_check_state is null or ua.f_last_check_state ='' ${lscon} ) or `
420
- }
421
- } else{
422
- let lscon = args.model.f_check_start ? ` and ui.f_last_check_date >= '${args.model.f_check_start} 00:00:00'` :''
423
- lscon += lscon ? (args.model.f_check_end ? ` and ui.f_last_check_date <= '${args.model.f_check_end} 23:59:59'` :'') : (args.model.f_check_end ? ` ui.f_last_check_date <= '${args.model.f_check_end} 23:59:59'` :'')
424
- if(i == args.model.f_last_check_state.length-1){
425
- zzcon += `(ui.f_last_check_state = '${args.model.f_last_check_state[i]}' ${lscon} ) `
426
- }else{
427
- zzcon += `(ui.f_last_check_state = '${args.model.f_last_check_state[i]}' ${lscon} ) or `
428
- }
429
- }
430
- }
431
- args.condition += `and ( ${zzcon} )`
432
- }else if(args.model.f_last_check_state.length == 0 && (!Util.isEmpty(args.model.f_check_start) || !Util.isEmpty(args.model.f_check_end) )){
433
- let lscon = args.model.f_check_start ? ` and ui.f_last_check_date >= '${args.model.f_check_start} 00:00:00'` :''
434
- lscon += lscon ? (args.model.f_check_end ? ` and ui.f_last_check_date <= '${args.model.f_check_end} 23:59:59'` :'') : (args.model.f_check_end ? ` ui.f_last_check_date <= '${args.model.f_check_end} 23:59:59'` :'')
435
- args.condition += lscon
436
- }else{
437
- console.log('这块无条件')
438
- }
439
-
440
- // if (!Util.isEmpty(args.model.f_last_check_state) && (!Util.isEmpty(args.model.f_check_start) || !Util.isEmpty(args.model.f_check_end) )){
441
- // if (args.model.f_last_check_state == '未检'){
442
- // var lscon = args.model.f_check_start ? ` or ua.f_last_check_date <= '${args.model.f_check_start} 00:00:00'` :''
443
- // lscon += lscon ? (args.model.f_check_end ? ` or ua.f_last_check_date >= '${args.model.f_check_end} 23:59:59'` :''): (args.model.f_check_end ? `ua.f_last_check_date >= '${args.model.f_check_end} 23:59:59'` :'')
444
- // args.condition +=`and (ua.f_last_check_state is null or ua.f_last_check_state ='' ${lscon} ) `
445
- // }else {
446
- // var lscon = args.model.f_check_start ? ` and ua.f_last_check_date >= '${args.model.f_check_start} 00:00:00'` :''
447
- // lscon += lscon ? (args.model.f_check_end ? ` and ua.f_last_check_date <= '${args.model.f_check_end} 23:59:59'` :'') : (args.model.f_check_end ? ` ua.f_last_check_date <= '${args.model.f_check_end} 23:59:59'` :'')
448
- // args.condition += `and ua.f_last_check_state = '${args.model.f_last_check_state}' ${lscon}`
449
- // }
450
- //
451
- // }else if (Util.isEmpty(args.model.f_last_check_state) && (!Util.isEmpty(args.model.f_check_start) || !Util.isEmpty(args.model.f_check_end) )) {
452
- // var lscon = args.model.f_check_start ? ` and ua.f_last_check_date >= '${args.model.f_check_start} 00:00:00'` :''
453
- // lscon += lscon ? (args.model.f_check_end ? ` and ua.f_last_check_date <= '${args.model.f_check_end} 23:59:59'` :'') : (args.model.f_check_end ? ` ua.f_last_check_date <= '${args.model.f_check_end} 23:59:59'` :'')
454
- // args.condition += lscon
455
- // }else if (!Util.isEmpty(args.model.f_last_check_state) && Util.isEmpty(args.model.f_check_start) && Util.isEmpty(args.model.f_check_end)){
456
- // this.$showMessage("选择安检状态时,需要选择安检时间区间!")
457
- // return
458
- // }else{
459
- // console.log('这块无条件')
460
- // }
461
- let condition1=`(ui.f_last_check_date is null or ui.f_last_check_date ='')`
462
- let arge = args.condition.replace('从未安检',condition1)
463
- args.condition = arge
464
- // 上一个界面条件拼接进来
465
- if(this.addcondata){
466
- args.condition += this.addcondata
467
- }
468
- var checkallcond = ''
469
- // 判断小区或者单位是否是多选 全选
470
- if(this.bookrowsdata.checkAll){
471
- if(this.row.f_user_type === '民用'){
472
- checkallcond = ` and area.f_check_book_id = ${this.row.id} `
473
- if(this.bookrowsdata.checkallconres){
474
- checkallcond += ` and area.f_residential_area = '${this.bookrowsdata.checkallconres} '`
475
- }
476
- if(this.bookrowsdata.checkallconuse){
477
- checkallcond += ` and area.f_use_institution = '${this.bookrowsdata.checkallconuse}' `
478
- }
479
- }else{
480
- checkallcond = ` and tc.f_check_book_id = ${this.row.id} `
481
- }
482
-
483
- if(this.bookrowsdata.bookrows.length > 0){
484
- this.bookrowsdata.bookrows.forEach((item) => {
485
- if(this.row.f_user_type === '民用'){
486
- checkallcond += ` and area.id != ${item}`
487
- }else{
488
- checkallcond += ` and tc.id != ${item}`
489
- }
490
- })
491
- }
492
- }else{
493
- var nums = '('
494
- this.bookrowsdata.bookrows.forEach((item) => {
495
- if(this.bookrowsdata.bookrows[this.bookrowsdata.bookrows.length -1] == item){
496
- nums += item +')'
497
- }else{
498
- nums += item +','
499
- }
500
- })
501
- if(this.row.f_user_type === '民用'){
502
- checkallcond += ` and area.id in ${nums}`
503
- }else{
504
- checkallcond += ` and tc.id in ${nums}`
505
- }
506
- }
507
- args.condition += checkallcond
508
- args.condition += ` and ui.f_filialeid='${this.userlogin.orgid}'`
509
- if (args.model.f_residential_area == "无名称"){
510
- args.condition +=" and (ua.f_residential_area is null or ua.f_residential_area ='')"
511
- }else if (args.model.f_residential_area == "有名称"){
512
- args.condition +=" and (ua.f_residential_area is not null and ua.f_residential_area !='')"
513
- }
514
- if(this.uploadCodeCondition){
515
- args.condition +=` and ${this.uploadCodeCondition}`
516
- }
517
- this.cancel()
518
- this.checkes=[]
519
- this.checkAll=false
520
- this.model.search(args.condition, args.model, args.condValue)
521
- },
522
- showUserCondition(){
523
- this.showCondtion=true
524
- },
525
- setConList(){
526
- this.entry_status=this.$appdata.getParam('安检状态') ? [{
527
- label: '全部',
528
- value: ''
529
- }, ...this.$appdata.getParam('安检状态')] : [{label: '全部', value: ''}]
530
-
531
- this.userTypes=this.$appdata.getParam('用户类型') ? [{
532
- label: '全部',
533
- value: ''
534
- }, ...this.$appdata.getParam('用户类型')] : [{label: '全部', value: ''}]
535
- this.userStates=this.$appdata.getParam('安检用户状态') ? [{
536
- label: '全部',
537
- value: ''
538
- }, ...this.$appdata.getParam('安检用户状态')] : [{label: '全部', value: ''}]
539
- this.gasproperties=this.$appdata.getParam('用气性质') ? [{
540
- label: '全部',
541
- value: ''
542
- }, ...this.$appdata.getParam('用气性质')] : [{label: '全部', value: ''}]
543
- // this.meter_classifys=this.$appdata.getParam('气表类型') ? [{
544
- // label: '全部',
545
- // value: ''
546
- // }, ...this.$appdata.getParam('气表类型')] : [{label: '全部', value: ''}]
547
- },
548
- select_search(text, type){
549
- //tag
550
- let pcdText=text?` and f_residential_area like '%${text}%'`:''
551
- if (type == 'pqId'){
552
- if(text.length==0){
553
- pcdText=text?` and 1=1`:''
554
- }else {
555
- pcdText =text?`and f_check_book_id in (${text})`:''
556
- }
557
-
558
- }
559
- new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {data:{items:"*",tablename:"t_area",orderitem:"id",condition:`f_orgid = '${this.userlogin.orgid}' ${pcdText} `}}, {resolveMsg: null, rejectMsg: null}).then((res)=>{
560
- //tag)
561
- this.areaList=[]
562
- this.areaList.push({label:"全部",value:""})
563
- res.data.forEach((result)=>{
564
- this.areaList.push({label:result.f_residential_area,value:result.f_residential_area})
565
- //console.log('this.areaList=', JSON.stringify(this.areaList))
566
- })
567
- //tag)
568
- })
569
-
570
-
571
- },
572
- //获取抄表册
573
- async Mreadibook(){
574
- this.cbc=[]
575
- this.sliceArea=[]
576
- let http = new HttpResetClass()
577
- let getMeterReadingBooks = await http.load('POST','rs/logic/getMeterBooksData',
578
- {data: {f_orgid: "('"+this.userlogin.orgid+"')"}},
579
- {resolveMsg: null, rejectMsg: '获取失败!!!'})
580
- this.cbc = [{label: '全部', value: ''}]
581
- //tag
582
- //tag)
583
- //tag
584
- this.meterbooks=[]
585
- this.meterbooks=getMeterReadingBooks.data.meterbooks
586
- this.meterbooks.forEach((res) => {
587
- this.cbc.push({label: res.f_book_name, value: res.id})
588
- /*if(res.f_book_slice_area){
589
- if(this.sliceArea.indexOf(res.f_book_slice_area)<0){
590
- this.sliceArea.push(res.f_book_slice_area)
591
- }
592
- }*/
593
- })
594
-
595
- },
596
- //片区获取
597
- async getSliceArea() {
598
- let http = new HttpResetClass()
599
- let getAllArea = await http.load('POST', '/rs/search', {
600
- source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
601
- userid: this.userlogin.id
602
- }, {resolveMsg: null, rejectMsg: '获取片区出错!!!'})
603
- this.sliceArea = [{label: '全部', value: ''}]
604
- //tag
605
- //tag
606
- //tag
607
- getAllArea.data.forEach((res) => {
608
- if(res.parentid==this.userlogin.orgid){
609
- this.sliceArea.push({label:res.name,value:res.name})
610
- }
611
- })
612
- //tag
613
- },
614
- //片区改变-对应抄表册下拉重新赋值
615
- slice_areaChange(value) {
616
- //tag
617
- if(!value){
618
- this.cbc=[]
619
- this.meterbooks.forEach((res) => {
620
- this.cbc.push({label: res.f_book_name, value: res.id})
621
- })
622
- }else{
623
- this.cbc=[]
624
- this.meterbooks.forEach((res) => {
625
- if(res.f_book_slice_area==value){
626
- this.cbc.push({label: res.f_book_name, value: res.id})
627
- }
628
- })
629
- }
630
- },
631
- isChecked(v) {
632
- // 如果全选,不在的按选中算,否则,在的按选中算
633
- if (this.checkAll) {
634
- return this.checkes.indexOf(v) == -1
635
- } else {
636
- return this.checkes.indexOf(v) != -1
637
- }
638
- },
639
- setCheckAll() {
640
- this.checkAll=this.checkAll?false:true;
641
- // 全选改变后,清空选中数据
642
- this.checkes = []
643
- },
644
- setCheckes(id) {
645
- let index=this.checkes.indexOf(id)
646
- if(index<0){
647
- this.checkes.push(id)
648
- }else{
649
- this.checkes.splice(index,1)
650
- }
651
- },
652
- },
653
- watch: {
654
- 'areaen'(val) {
655
- //console.log('val=', JSON.stringify(val))
656
- this.select_search(val, 'pqId')
657
- }
658
- },
659
- events: {
660
- onFileUpload: function (file, res) {
661
- //tag)
662
- //tag)
663
- let data = {
664
- filepath: res.f_downloadpath
665
- }
666
- new HttpResetClass().load('POST','/rs/logic/safe_GetUserInfoFromExcel', {data: data}, {
667
- resolveMsg: '导入成功!已生成条件,若要去除导入条件请点击旁边 ‘清空用户编号’ 按钮。',
668
- rejectMsg: '导入失败'
669
- }).then((res) => {
670
- this.uploadCodeCondition=res.data.condition
671
- this.excelUserCondtion = false
672
- })
673
- },
674
-
675
- }
676
- }
677
- </script>
678
-
679
- <style scoped>
680
- .safe-planfont{
681
- font-family: MicrosoftYaHei;
682
- font-size: 15px;
683
- font-weight: normal;
684
- font-stretch: normal;
685
- letter-spacing: 2px;
686
- color: #333333;
687
- line-height: 25px;
688
- }
689
- .safe-bodyfont{
690
- font-family: MicrosoftYaHei;
691
- font-size: 14px;
692
- font-weight: normal;
693
- font-stretch: normal;
694
- letter-spacing: 0px;
695
- color: #999999;
696
- line-height: 30px;
697
- }
698
- .safe-leftplan{
699
- height:auto;
700
- border-bottom:1px solid #ececec;
701
- padding: 10px 5px
702
- }
703
- .leftplan-center{
704
- border-top:1px solid #ececec;
705
- border-bottom:1px solid #ececec;
706
- }
707
- .safe_p{
708
- white-space: nowrap;
709
- overflow: hidden;
710
- text-overflow: ellipsis;
711
- }
712
- .safe-div-p{
713
- color: #4792de;
714
- text-align: end;
715
- padding: 8px 15px;
716
- }
717
- </style>
718
- <style lang="less">
719
- .upuserinfo_sel ul{
720
- width: 150% !important;
721
- }
722
- </style>
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
+ <div class="form-group col-sm-2" >
8
+ <label class="font_normal_body">用户信息</label>
9
+ <input type="text" class="input_search" v-model="model.f_userinfo_code"
10
+ style="width: 60%" placeholder="客户编号" condition="ui.f_userinfo_code='{}'">
11
+ </div>
12
+ <div class="form-group col-sm-2" >
13
+ <label class="font_normal_body" title="参数名称:安检用户状态">用户状态:</label>
14
+ <v-select
15
+ class="select select_list"
16
+ :value.sync="model.f_user_state"
17
+ v-model="model.f_user_state"
18
+ :options='$parent.$parent.userStates'
19
+ placeholder='请选择'
20
+ condition="ui.f_user_state='{}'"
21
+ :search="false"
22
+ close-on-select
23
+ value-single
24
+ >
25
+ </v-select>
26
+ </div>
27
+ <div class="form-group col-sm-2" >
28
+ <label class="font_normal_body"title="参数名称:用气性质">用气性质:</label>
29
+ <v-select
30
+ class="select select_list"
31
+ :value.sync="model.f_gasproperties"
32
+ v-model="model.f_gasproperties"
33
+ :options='$parent.$parent.gasproperties'
34
+ placeholder='请选择'
35
+ condition="uf.f_gasproperties in {}"
36
+ :search="false"
37
+ :multiple="true"
38
+ close-on-select
39
+ >
40
+ </v-select>
41
+ </div>
42
+ <div class="form-group col-sm-2" >
43
+ <label class="font_normal_body">气表品牌:</label>
44
+ <v-select
45
+ class="select select_list"
46
+ :value.sync="model.metergasbrand"
47
+ v-model="model.metergasbrand"
48
+ :options='$parent.$parent.meter_gasbrand'
49
+ placeholder='气表品牌'
50
+ condition="uf.f_gasbrand_id in {}"
51
+ :search="false"
52
+ :multiple="true"
53
+ close-on-select
54
+ >
55
+ </v-select>
56
+ </div>
57
+ <div class="form-group col-sm-4" >
58
+ <button class="button_new" style="margin-right: 10px" @click="$parent.$parent.showUserCondition()">更多条件</button>
59
+ <export-excel-safe :data="$parent.$parent.searchData"
60
+ :field="$parent.$parent.excelHeaders"
61
+ :choose-col="true"
62
+ sqlurl="rs/logic/SafeExportExcel" sql-name="FetchUserFileByOrgNoRuHuSXQ" template-name='安检筛选用户信息导出'></export-excel-safe>
63
+ <button class="button_search" style="margin-right: 10px" @click="search()">查询</button>
64
+ <button class="button_search" style="margin-right: 10px" @click="$parent.$parent.createAndSend()">下发</button>
65
+ </div>
66
+ <modal :show.sync="$parent.$parent.showCondtion" v-ref:modal :width="'50%'" :backdrop="false">
67
+ <div slot="modal-header" class="modal-header">
68
+ <h4 class="modal-title">
69
+ 用户查询条件
70
+ </h4>
71
+ </div>
72
+ <div slot="modal-body" class="modal-body">
73
+ <div class="row">
74
+ <div class="form-group col-sm-4" >
75
+ <label class="font_normal_body">楼&ensp;栋&ensp;号:</label>
76
+ <input type="text" class="input_search" v-model="model.f_building"
77
+ style="width: 60%" placeholder="请选择" condition="ua.f_building='{}'">
78
+ </div>
79
+ <div class="form-group col-sm-4" >
80
+ <label class="font_normal_body">单&ensp;元&ensp;号:</label>
81
+ <input type="text" class="input_search" v-model="model.f_unit"
82
+ style="width: 60%" placeholder="请选择" condition="ua.f_unit='{}'">
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.yearCheck"
89
+ v-model="model.yearCheck"
90
+ :options='$parent.$parent.yearCheckList'
91
+ placeholder='请选择'
92
+ condition="{}"
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
+ :multiple="true"
104
+ :value.sync="model.f_last_check_state"
105
+ v-model="model.f_last_check_state"
106
+ :options='$parent.$parent.entry_status'
107
+ placeholder='请选择'
108
+ :search="false"
109
+ >
110
+ </v-select>
111
+ </div>
112
+ <div class="form-group col-sm-4" >
113
+ <label class="font_normal_body">安检起始:</label>
114
+ <datepicker
115
+ placeholder='请选择'
116
+ style="width:60%;text-align: center"
117
+ :disabled-days-of-week="[]"
118
+ :format="'yyyy-MM-dd 00:00:00'"
119
+ :show-rest-button="reset"
120
+ :value.sync="model.f_check_start"
121
+ v-model="model.f_check_start">
122
+ </datepicker>
123
+ </div>
124
+ <div class="form-group col-sm-4" >
125
+ <label class="font_normal_body">安检截止:</label>
126
+ <datepicker
127
+ placeholder='请选择'
128
+ :disabled-days-of-week="[]"
129
+ style="width:60%;text-align: center"
130
+ :format="'yyyy-MM-dd 23:59:59'"
131
+ :show-rest-button="reset"
132
+ :value.sync="model.f_check_end"
133
+ v-model="model.f_check_end">
134
+ </datepicker>
135
+ </div>
136
+ <div class="form-group col-sm-4" >
137
+ <label class="font_normal_body">入户截止:</label>
138
+ <datepicker
139
+ placeholder='请选择'
140
+ :disabled-days-of-week="[]"
141
+ style="width:60%;text-align: center"
142
+ :format="'yyyy-MM-dd 23:59:59'"
143
+ :show-rest-button="reset"
144
+ :value.sync="model.f_ruhu_end"
145
+ v-model="model.f_ruhu_end">
146
+ </datepicker>
147
+ </div>
148
+
149
+ </div>
150
+ </div>
151
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
152
+ <button class="button_search" style="margin-right: 15px" @click="search()">查询</button>
153
+ <button class="button_search" @click="$parent.$parent.cancel">取消</button>
154
+ </div>
155
+ </modal>
156
+ <modal :show.sync="$parent.$parent.excelUserCondtion" width="500px" v-ref:modal1 >
157
+ <div slot="modal-header" class="modal-header">
158
+ <h4 class="modal-title">
159
+ 导入用户编号
160
+ </h4>
161
+ </div>
162
+ <div slot="modal-body" class="modal-body">
163
+ <div class="row">
164
+ <file-upload class="my-file-uploader " name="UploadFile" class="btn btn-success" style="border-radius: 2px;"
165
+ action="rs/file/uploadFile" tagname="档案信息导入" v-ref:file :headers="headers" multiple></file-upload>
166
+ <img src="../../../assets/Excelformat.png" style="width: 100%"/>
167
+ </div>
168
+ </div>
169
+ <footer slot="modal-footer" class="modal-footer">
170
+ </footer>
171
+ </modal>
172
+ </div>
173
+ </div>
174
+ </criteria>
175
+ <data-grid :model="model" partial='list' class="table_sy">
176
+
177
+ <template partial='head'>
178
+ <tr>
179
+ <th><nobr><input type="checkbox" @dblclick.stop="" onClick="event.cancelBubble = true" :checked="$parent.$parent.$parent.checkAll" @change="$parent.$parent.$parent.setCheckAll()"/> 全选</nobr></th>
180
+ <th><nobr>用户编号</nobr></th>
181
+ <th><nobr>用户名称</nobr></th>
182
+ <th><nobr>用户类型</nobr></th>
183
+ <th><nobr>小区名称</nobr></th>
184
+ <!-- <th><nobr>片区</nobr></th>-->
185
+ <!-- <th><nobr>抄表册</nobr></th>-->
186
+ <!-- <th title="当前所在的安检计划名称"><nobr>所属计划</nobr></th>-->
187
+ <th title="最后一次安检日期"><nobr>安检日期</nobr></th>
188
+ <th title="最后一次安检状态"><nobr>安检状态</nobr></th>
189
+ <th><nobr>详细地址</nobr></th>
190
+ </tr>
191
+ </template>
192
+ <template partial='body'>
193
+ <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>
194
+ <td style="text-align: center"><nobr>{{row.f_userinfo_code}}</nobr></td>
195
+ <td style="text-align: center"><nobr>{{row.f_user_name}}</nobr></td>
196
+ <td style="text-align: center"><nobr>{{row.f_user_type}}</nobr></td>
197
+ <td style="text-align: center"><nobr>{{row.f_residential_area}}</nobr></td>
198
+ <!-- <td style="text-align: center"><nobr>{{row.f_slice_area}}</nobr></td>-->
199
+ <!-- <td style="text-align: center"><nobr>{{row.f_book_name}}</nobr></td>-->
200
+ <!-- <td style="text-align: center"><nobr>{{row.f_plan_name}}</nobr></td>-->
201
+ <td style="text-align: center"><nobr>{{row.f_last_check_date}}</nobr></td>
202
+ <td style="text-align: center"><nobr>{{row.f_last_check_state}}</nobr></td>
203
+ <td style="text-align: center"><nobr>{{row.f_address}}</nobr></td>
204
+ </template>
205
+ </data-grid>
206
+ </criteria-paged>
207
+ <modal :show.sync="showCreatePlan" v-ref:modal1 :width="'50%'" :backdrop="false">
208
+ <div slot="modal-header" class="modal-header">
209
+ <h4 class="modal-title">
210
+ 新建计划
211
+ </h4>
212
+ </div>
213
+ <div slot="modal-body" class="modal-body">
214
+ <div class="row">
215
+ <div class="form-group col-sm-4" >
216
+ <label class="font_normal_body">计划名称:</label>
217
+ <input type="text" class="input_search" v-model="createPlan.f_plan_name"
218
+ style="width: 60%" placeholder="请选择" />
219
+ </div>
220
+ <div class="form-group col-sm-4" >
221
+ <label class="font_normal_body">计划年份:</label>
222
+ <v-select
223
+ class="select select_list"
224
+ :value.sync="createPlan.f_plan_year"
225
+ v-model="createPlan.f_plan_year"
226
+ :search="false"
227
+ :options='yearList'
228
+ close-on-select
229
+ value-single
230
+ >
231
+ </v-select>
232
+ </div>
233
+ <div class="form-group col-sm-4" >
234
+ <label class="font_normal_body">计划月份:</label>
235
+ <v-select
236
+ class="select select_list"
237
+ :value.sync="createPlan.f_plan_month"
238
+ v-model="createPlan.f_plan_month"
239
+ :search="false"
240
+ :options='monthList'
241
+ close-on-select
242
+ value-single>
243
+ </v-select>
244
+ </div>
245
+ <div class="form-group col-sm-4" >
246
+ <label class="font_normal_body">计划开始:</label>
247
+ <datepicker
248
+ placeholder='请选择'
249
+ style="width:60%"
250
+ :disabled-days-of-week="[]"
251
+ :format="'yyyy-MM-dd'"
252
+ :show-rest-button="reset"
253
+ :value.sync="createPlan.f_start_time"
254
+ v-model="createPlan.f_start_time">
255
+ </datepicker>
256
+ </div>
257
+ <div class="form-group col-sm-4" >
258
+ <label class="font_normal_body">计划结束:</label>
259
+ <datepicker
260
+ placeholder='请选择'
261
+ style="width:60%"
262
+ :disabled-days-of-week="[]"
263
+ :format="'yyyy-MM-dd'"
264
+ :show-rest-button="reset"
265
+ :value.sync="createPlan.f_end_time"
266
+ v-model="createPlan.f_end_time">
267
+ </datepicker>
268
+ </div>
269
+ </div>
270
+ </div>
271
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
272
+ <button class="button_search" style="margin-right: 15px" @click="addNewPlan()">创建计划</button>
273
+ <button class="button_search" @click="cancelCreatePlan">取消</button>
274
+ </div>
275
+ </modal>
276
+ </div>
277
+ </template>
278
+
279
+ <script>
280
+ import {HttpResetClass, PagedList} from "vue-client";
281
+ import * as Util from "../../../components/Util";
282
+ import Vue from "vue";
283
+ import {toStandardDateString} from "../../../components/Util";
284
+
285
+ export default {
286
+ title: '计划管理',
287
+ data() {
288
+ let model = new PagedList('/rs/sql/FetchUserFileByOrgNoRuHuSXQ', 20, {
289
+ "orderitem": "'f_residential_area,f_building,f_unit,f_floor,f_room'",
290
+ "f_usertype": "''",
291
+ "month": "''",
292
+ "SafeCheckSX": 'this.SafeCheckSX',
293
+ "SafeCheckCQ": "''",
294
+ "startday":"''",
295
+ "endday":"''"})
296
+ model.SafeCheckSX = '1 = 1'
297
+ return {
298
+ searchData: {
299
+ condition: "1=1",
300
+ orderitem: "f_residential_area,f_building,f_unit,f_floor,f_room",
301
+ SafeCheckSX:""
302
+ },
303
+ excelHeaders: {
304
+ 'f_userinfo_code': '用户编号',
305
+ 'f_user_name': '用户姓名',
306
+ 'f_user_type': '用户类型',
307
+ 'f_residential_area': '小区名称',
308
+ 'f_last_check_date': '最后一次安检日期',
309
+ 'f_last_check_state': '最后一次安检状态',
310
+ 'f_address': '详细地址'
311
+ },
312
+ model: model,
313
+ createPlan:{
314
+ f_safecheck_type:"年度普检",
315
+ checker:"",
316
+ isShare:"否",
317
+ f_usertype:"",
318
+ f_issued:'是',
319
+ f_end_time:Util.toStandardDateString().replace(new Date().getFullYear().toString(),(new Date().getFullYear()+1).toString()),
320
+ f_start_time:Util.toStandardDateString(),
321
+ f_plan_month:(new Date().getMonth()+1).toString(),
322
+ f_plan_year:new Date().getFullYear().toString(),
323
+ f_plan_name:""
324
+ },
325
+ yearList:[{label:"2020",value:"2020"},{label:"2021",value:"2021"},{label:"2022",value:"2022"},{label:"2023",value:"2023"},{label:"2024",value:"2024"},{label:"2025",value:"2025"},{label:"2026",value:"2026"},{label:"2027",value:"2027"},{label:"2028",value:"2028"},{label:"2029",value:"2029"},{label:"2030",value:"2030"}],
326
+ monthList:[{label:"1",value:"1"},{label:"2",value:"2"},{label:"3",value:"3"},{label:"4",value:"4"},{label:"5",value:"5"},{label:"6",value:"6"},{label:"7",value:"7"},{label:"8",value:"8"},{label:"9",value:"9"},{label:"10",value:"10"},{label:"11",value:"11"},{label:"12",value:"12"}],
327
+ showCreatePlan:false,
328
+ a:'1',
329
+ opt:[{label:"测试",value:"测试"}],
330
+ showCondtion:false,
331
+ userTypes:[],//用户类型
332
+ entry_status:[],
333
+ userStates:[],//用户状态
334
+ gasproperties:[],//用气性质
335
+ meter_gasbrand:[],//气表品牌
336
+ hasHousehold:[{label:"全部",value:""},{label:"已入户",value:"已入户"},{label:"未入户",value:"未入户"}],
337
+ yearCheckList:[{label:"全部",value:""},{label:"已在计划中",value:"ua.f_plan_id is not null"},{label:"未在计划中",value:"ua.f_plan_id is null"}],
338
+ checkStateList:[{label:"全部",value:""},{label:"两年内已检",value:"DATEDIFF(day,isnull(ui.f_last_check_date,'2010-01-01'),GETDATE())<=730"},{label:"两年内未检",value:"DATEDIFF(day,isnull(ui.f_last_check_date,'2010-01-01'),GETDATE())>730"},{label:"从未安检",value:"从未安检"}],
339
+ hasResidentialArea:[{label:"全部",value:""},{label:"有名称",value:"有名称"},{label:"无名称",value:"无名称"}],
340
+ sliceArea:[],
341
+ meterbooks:[],
342
+ checkBooks:[{label:'sss',value:'1-用户'},{label:'ssssss',value:'1-小区'}],
343
+ cbc:[],
344
+ areaList:[],
345
+ checkAll:false,
346
+ checkes:[],
347
+ areaen:[],//片区
348
+ excelUserCondtion:false,
349
+ uploadCodeCondition:''
350
+ }
351
+ },
352
+ props:["userlogin","bookrow","needprops","row","bookrowsdata","addcondata"],
353
+ ready(){
354
+ console.log("this.bookrow",this.bookrow)
355
+ console.log("this.row",this.row)
356
+ console.log("this.needprops",this.needprops)
357
+ this.createPlan.checker = this.needprops.checker.filter(item=>item.label == this.row.f_checker_name)[0].value
358
+ this.createPlan.f_checker_id=this.createPlan.checker.id
359
+ this.createPlan.f_checker=this.createPlan.checker.name
360
+ this.createPlan.f_usertype = this.row.f_user_type
361
+ if(this.row.f_user_type == '非民用'){
362
+ this.createPlan.f_plan_name = `${this.row.f_check_book_name}${this.createPlan.f_plan_year}年${this.createPlan.f_plan_month}月`
363
+ }else{
364
+ this.createPlan.f_plan_name = `${this.row.f_check_book_name}${this.createPlan.f_plan_year}年`
365
+ }
366
+ this.$refs.paged.$refs.criteria.model.f_user_state='正常'
367
+ this.meter_gasbrand=this.needprops.meter_gasbrand,
368
+ this.checkBooks=this.needprops.checkBooks,
369
+ this.entry_status=this.needprops.entry_status,
370
+ this.userTypes=this.needprops.userTypes,
371
+ this.userStates=this.needprops.userStates,
372
+ this.gasproperties=this.needprops.gasproperties,
373
+ this.areaList=this.needprops.areaList,
374
+ this.sliceArea=this.needprops.sliceArea,
375
+ this.cbc=this.needprops.cbc,
376
+ this.meterbooks=this.needprops.meterbooks
377
+ },
378
+ methods: {
379
+ async addNewPlan(){
380
+ this.createPlan.f_plan_type='预约计划'
381
+ this.createPlan.f_subcompany=this.userlogin.orgstr
382
+ this.createPlan.f_filialeid=this.userlogin.orgid
383
+ this.createPlan.f_create_operator=this.userlogin.name
384
+ this.createPlan.f_create_time=Util.toStandardTimeString()
385
+ this.createPlan.f_check_book_id = this.row.id
386
+ console.log(this.createPlan)
387
+ const addPlan = {
388
+ f_operator:this.userlogin.name,
389
+ f_filialeid:this.userlogin.orgid,
390
+ f_subscribe_date:'',
391
+ condition:this.model.condition,
392
+ SafeCheckSX: this.model.SafeCheckSX,
393
+ switchCheckAll:true,
394
+ checkAll:this.checkAll,
395
+ param:this.checkes,
396
+ columnName: "ua.id"
397
+ }
398
+ new HttpResetClass().load("POST",'/rs/logic/createAndAddPlan',{createPlan:this.createPlan,addPlan}).then(res=>{
399
+ if(res.data.code==200){
400
+ this.$showMessage("计划下发成功!"+(res.data.result.length>0?"有"+res.data.result.length+"条用户地址已经存在于其他计划中":""))
401
+ this.cancelCreatePlan()
402
+ }else{
403
+ this.$showMessage("计划下发失败!")
404
+ }
405
+ })
406
+ },
407
+ cancelCreatePlan(){
408
+ this.showCreatePlan = false
409
+ },
410
+ createAndSend(){
411
+ if(this.model.rows.length==0){
412
+ Vue.showMessage("未检测到列表中有用户!")
413
+ return
414
+ }
415
+ if(!this.checkAll && this.checkes.length==0){
416
+ Vue.showMessage("请先勾选你要添入到上方计划中的用户!")
417
+ return
418
+ }
419
+ this.showCreatePlan = true
420
+ },
421
+ cancel(){
422
+ this.showCondtion=false
423
+ this.excelUserCondtion=false
424
+ },
425
+ //清空用户编号
426
+ clearUserInfoId(){
427
+ this.uploadCodeCondition=''
428
+ Vue.showMessage("已清空用户编号")
429
+ },
430
+ showUploadCodeCondition(){
431
+ this.excelUserCondtion=true
432
+ },
433
+ selfSearch (args) {
434
+ if(args.model.f_last_check_state.length == 1 && args.model.f_last_check_state[0] == '入户' && args.model.f_ruhu_end) {
435
+ args.condition += `and DATEADD(YEAR, 2, CAST(ruhuend.f_offsite_time AS datetime)) < '${args.model.f_ruhu_end}'`
436
+ }
437
+ if(args.model.f_last_check_state.length > 0 && Util.isEmpty(args.model.f_ruhu_end) && (Util.isEmpty(args.model.f_check_start) || Util.isEmpty(args.model.f_check_end))) {
438
+ this.$showMessage("选择安检状态时,需要选择安检时间区间!")
439
+ return
440
+ }
441
+ if(args.model.f_last_check_state.length > 0 && Util.isEmpty(args.model.f_ruhu_end)) {
442
+ let zzcon = ''
443
+ this.model.SafeCheckSX = ` f_offsite_time > '${args.model.f_check_start}' and f_offsite_time < '${args.model.f_check_end}'`
444
+ for (let i = 0; i < args.model.f_last_check_state.length; i++) {
445
+ if (args.model.f_last_check_state[i] == '未检') {
446
+ zzcon += ' tcp.ruhu is null '
447
+ if (i != args.model.f_last_check_state.length - 1) {
448
+ zzcon += ' or'
449
+ }
450
+ } else if (args.model.f_last_check_state[i] == '入户') {
451
+ zzcon += `tcp.ruhu > 0`
452
+ if (i != args.model.f_last_check_state.length - 1) {
453
+ zzcon += ' or'
454
+ }
455
+ } else if (args.model.f_last_check_state[i] == '拒检') {
456
+ zzcon += `(tcp.jujian > 0 and tcp.ruhu = 0 and tcp.daofang >= 0) `
457
+ if (i != args.model.f_last_check_state.length - 1) {
458
+ zzcon += ' or'
459
+ }
460
+ } else if (args.model.f_last_check_state[i] == '到访不遇') {
461
+ zzcon += `(tcp.daofang > 0 and tcp.ruhu = 0 and tcp.jujian = 0) `
462
+ if (i != args.model.f_last_check_state.length - 1) {
463
+ zzcon += ' or'
464
+ }
465
+ }
466
+ }
467
+ args.condition += `and ( ${zzcon} )`
468
+ }else{
469
+ //无条件
470
+ this.model.SafeCheckSX = ` 1 != 1 `
471
+ }
472
+ this.searchData.SafeCheckSX = this.model.SafeCheckSX
473
+ let condition1=`(ui.f_last_check_date is null or ui.f_last_check_date ='')`
474
+ let arge = args.condition.replace('从未安检',condition1)
475
+ args.condition = arge
476
+ // 上一个界面条件拼接进来
477
+ if(this.addcondata){
478
+ args.condition += this.addcondata
479
+ }
480
+ var checkallcond = ''
481
+ // 判断小区或者单位是否是多选 全选
482
+ if(this.bookrowsdata.checkAll){
483
+ if(this.row.f_user_type === '民用'){
484
+ checkallcond = ` and area.f_check_book_id = ${this.row.id} `
485
+ if(this.bookrowsdata.checkallconres){
486
+ checkallcond += ` and area.f_residential_area = '${this.bookrowsdata.checkallconres} '`
487
+ }
488
+ if(this.bookrowsdata.checkallconuse){
489
+ checkallcond += ` and area.f_use_institution = '${this.bookrowsdata.checkallconuse}' `
490
+ }
491
+ }else{
492
+ checkallcond = ` and tc.f_check_book_id = ${this.row.id} `
493
+ }
494
+
495
+ if(this.bookrowsdata.bookrows.length > 0){
496
+ this.bookrowsdata.bookrows.forEach((item) => {
497
+ if(this.row.f_user_type === '民用'){
498
+ checkallcond += ` and area.id != ${item}`
499
+ }else{
500
+ checkallcond += ` and tc.id != ${item}`
501
+ }
502
+ })
503
+ }
504
+ }else{
505
+ var nums = '('
506
+ this.bookrowsdata.bookrows.forEach((item) => {
507
+ if(this.bookrowsdata.bookrows[this.bookrowsdata.bookrows.length -1] == item){
508
+ nums += item +')'
509
+ }else{
510
+ nums += item +','
511
+ }
512
+ })
513
+ if(this.row.f_user_type === '民用'){
514
+ checkallcond += ` and area.id in ${nums}`
515
+ }else{
516
+ checkallcond += ` and tc.id in ${nums}`
517
+ }
518
+ }
519
+ args.condition += checkallcond
520
+ args.condition += ` and ui.f_filialeid='${this.userlogin.orgid}'`
521
+ if (args.model.f_residential_area == "无名称"){
522
+ args.condition +=" and (ua.f_residential_area is null or ua.f_residential_area ='')"
523
+ }else if (args.model.f_residential_area == "有名称"){
524
+ args.condition +=" and (ua.f_residential_area is not null and ua.f_residential_area !='')"
525
+ }
526
+ if(this.uploadCodeCondition){
527
+ args.condition +=` and ${this.uploadCodeCondition}`
528
+ }
529
+ this.cancel()
530
+ this.checkes=[]
531
+ this.checkAll=false
532
+ this.searchData.condition = args.condition
533
+ this.model.search(args.condition, args.model, args.condValue)
534
+ },
535
+ showUserCondition(){
536
+ this.showCondtion=true
537
+ },
538
+ setConList(){
539
+ this.entry_status=this.$appdata.getParam('安检状态') ? [{
540
+ label: '全部',
541
+ value: ''
542
+ }, ...this.$appdata.getParam('安检状态')] : [{label: '全部', value: ''}]
543
+
544
+ this.userTypes=this.$appdata.getParam('用户类型') ? [{
545
+ label: '全部',
546
+ value: ''
547
+ }, ...this.$appdata.getParam('用户类型')] : [{label: '全部', value: ''}]
548
+ this.userStates=this.$appdata.getParam('安检用户状态') ? [{
549
+ label: '全部',
550
+ value: ''
551
+ }, ...this.$appdata.getParam('安检用户状态')] : [{label: '全部', value: ''}]
552
+ this.gasproperties=this.$appdata.getParam('用气性质') ? [{
553
+ label: '全部',
554
+ value: ''
555
+ }, ...this.$appdata.getParam('用气性质')] : [{label: '全部', value: ''}]
556
+ // this.meter_classifys=this.$appdata.getParam('气表类型') ? [{
557
+ // label: '全部',
558
+ // value: ''
559
+ // }, ...this.$appdata.getParam('气表类型')] : [{label: '全部', value: ''}]
560
+ },
561
+ select_search(text, type){
562
+ //tag
563
+ let pcdText=text?` and f_residential_area like '%${text}%'`:''
564
+ if (type == 'pqId'){
565
+ if(text.length==0){
566
+ pcdText=text?` and 1=1`:''
567
+ }else {
568
+ pcdText =text?`and f_check_book_id in (${text})`:''
569
+ }
570
+
571
+ }
572
+ new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {data:{items:"*",tablename:"t_area",orderitem:"id",condition:`f_orgid = '${this.userlogin.orgid}' ${pcdText} `}}, {resolveMsg: null, rejectMsg: null}).then((res)=>{
573
+ //tag)
574
+ this.areaList=[]
575
+ this.areaList.push({label:"全部",value:""})
576
+ res.data.forEach((result)=>{
577
+ this.areaList.push({label:result.f_residential_area,value:result.f_residential_area})
578
+ //console.log('this.areaList=', JSON.stringify(this.areaList))
579
+ })
580
+ //tag)
581
+ })
582
+
583
+
584
+ },
585
+ //获取抄表册
586
+ async Mreadibook(){
587
+ this.cbc=[]
588
+ this.sliceArea=[]
589
+ let http = new HttpResetClass()
590
+ let getMeterReadingBooks = await http.load('POST','rs/logic/getMeterBooksData',
591
+ {data: {f_orgid: "('"+this.userlogin.orgid+"')"}},
592
+ {resolveMsg: null, rejectMsg: '获取失败!!!'})
593
+ this.cbc = [{label: '全部', value: ''}]
594
+ //tag
595
+ //tag)
596
+ //tag
597
+ this.meterbooks=[]
598
+ this.meterbooks=getMeterReadingBooks.data.meterbooks
599
+ this.meterbooks.forEach((res) => {
600
+ this.cbc.push({label: res.f_book_name, value: res.id})
601
+ /*if(res.f_book_slice_area){
602
+ if(this.sliceArea.indexOf(res.f_book_slice_area)<0){
603
+ this.sliceArea.push(res.f_book_slice_area)
604
+ }
605
+ }*/
606
+ })
607
+
608
+ },
609
+ //片区获取
610
+ async getSliceArea() {
611
+ let http = new HttpResetClass()
612
+ let getAllArea = await http.load('POST', '/rs/search', {
613
+ source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
614
+ userid: this.userlogin.id
615
+ }, {resolveMsg: null, rejectMsg: '获取片区出错!!!'})
616
+ this.sliceArea = [{label: '全部', value: ''}]
617
+ //tag
618
+ //tag
619
+ //tag
620
+ getAllArea.data.forEach((res) => {
621
+ if(res.parentid==this.userlogin.orgid){
622
+ this.sliceArea.push({label:res.name,value:res.name})
623
+ }
624
+ })
625
+ //tag
626
+ },
627
+ //片区改变-对应抄表册下拉重新赋值
628
+ slice_areaChange(value) {
629
+ //tag
630
+ if(!value){
631
+ this.cbc=[]
632
+ this.meterbooks.forEach((res) => {
633
+ this.cbc.push({label: res.f_book_name, value: res.id})
634
+ })
635
+ }else{
636
+ this.cbc=[]
637
+ this.meterbooks.forEach((res) => {
638
+ if(res.f_book_slice_area==value){
639
+ this.cbc.push({label: res.f_book_name, value: res.id})
640
+ }
641
+ })
642
+ }
643
+ },
644
+ isChecked(v) {
645
+ // 如果全选,不在的按选中算,否则,在的按选中算
646
+ if (this.checkAll) {
647
+ return this.checkes.indexOf(v) == -1
648
+ } else {
649
+ return this.checkes.indexOf(v) != -1
650
+ }
651
+ },
652
+ setCheckAll() {
653
+ this.checkAll=this.checkAll?false:true;
654
+ // 全选改变后,清空选中数据
655
+ this.checkes = []
656
+ },
657
+ setCheckes(id) {
658
+ let index=this.checkes.indexOf(id)
659
+ if(index<0){
660
+ this.checkes.push(id)
661
+ }else{
662
+ this.checkes.splice(index,1)
663
+ }
664
+ },
665
+ },
666
+ watch: {
667
+ 'areaen'(val) {
668
+ //console.log('val=', JSON.stringify(val))
669
+ this.select_search(val, 'pqId')
670
+ }
671
+ },
672
+ events: {
673
+ onFileUpload: function (file, res) {
674
+ //tag)
675
+ //tag)
676
+ let data = {
677
+ filepath: res.f_downloadpath
678
+ }
679
+ new HttpResetClass().load('POST','/rs/logic/safe_GetUserInfoFromExcel', {data: data}, {
680
+ resolveMsg: '导入成功!已生成条件,若要去除导入条件请点击旁边 ‘清空用户编号’ 按钮。',
681
+ rejectMsg: '导入失败'
682
+ }).then((res) => {
683
+ this.uploadCodeCondition=res.data.condition
684
+ this.excelUserCondtion = false
685
+ })
686
+ },
687
+
688
+ }
689
+ }
690
+ </script>
691
+
692
+ <style scoped>
693
+ .safe-planfont{
694
+ font-family: MicrosoftYaHei;
695
+ font-size: 15px;
696
+ font-weight: normal;
697
+ font-stretch: normal;
698
+ letter-spacing: 2px;
699
+ color: #333333;
700
+ line-height: 25px;
701
+ }
702
+ .safe-bodyfont{
703
+ font-family: MicrosoftYaHei;
704
+ font-size: 14px;
705
+ font-weight: normal;
706
+ font-stretch: normal;
707
+ letter-spacing: 0px;
708
+ color: #999999;
709
+ line-height: 30px;
710
+ }
711
+ .safe-leftplan{
712
+ height:auto;
713
+ border-bottom:1px solid #ececec;
714
+ padding: 10px 5px
715
+ }
716
+ .leftplan-center{
717
+ border-top:1px solid #ececec;
718
+ border-bottom:1px solid #ececec;
719
+ }
720
+ .safe_p{
721
+ white-space: nowrap;
722
+ overflow: hidden;
723
+ text-overflow: ellipsis;
724
+ }
725
+ .safe-div-p{
726
+ color: #4792de;
727
+ text-align: end;
728
+ padding: 8px 15px;
729
+ }
730
+ </style>
731
+ <style lang="less">
732
+ .upuserinfo_sel ul{
733
+ width: 150% !important;
734
+ }
735
+ </style>