safecheck-client 3.0.34-7 → 3.0.34-71

Sign up to get free protection for your applications and to get access to all the features.
Files changed (143) 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/AndroidDefectDeal.vue +1 -0
  8. package/src/components/android/AndroidDefectDealBeforeSafe.vue +502 -0
  9. package/src/components/android/AreaSelect.vue +198 -0
  10. package/src/components/android/BuildingSelect.vue +192 -0
  11. package/src/components/android/CheckPlanSelect.vue +229 -0
  12. package/src/components/android/PaperFeedback.vue +1514 -1481
  13. package/src/components/android/PaperFeedbackTemp.vue +1470 -1470
  14. package/src/components/android/QRCode/QRCodeBinding.vue +300 -0
  15. package/src/components/android/QRCode/QRCodePage.vue +212 -0
  16. package/src/components/android/SafePlanItem.vue +509 -509
  17. package/src/components/android/SafecheckDevices.vue +1298 -1298
  18. package/src/components/android/SafecheckDevicesTemp.vue +1333 -1333
  19. package/src/components/android/SafecheckOrderV.vue +8 -12
  20. package/src/components/android/UserinfoSelect.vue +714 -0
  21. package/src/components/android/examples/SafeListExamples.vue +96 -0
  22. package/src/components/android/examples/UserExamples.vue +130 -0
  23. package/src/components/android/userinfo/SafecheckUserInfo.vue +776 -776
  24. package/src/components/rongcheng/AddPlanItem.vue +4 -0
  25. package/src/components/rongcheng/AspiratedUserInfo.vue +1 -1
  26. package/src/components/rongcheng/CheckSearchUser.vue +40 -14
  27. package/src/components/rongcheng/PaperStatem.vue +6 -1
  28. package/src/components/rongcheng/PhoneDevicesInfo.vue +16 -1
  29. package/src/components/rongcheng/PhoneUpUserinfo.vue +0 -92
  30. package/src/components/rongcheng/SafecheckOrderV.vue +12 -3
  31. package/src/components/rongcheng/SafecheckOrderVCli.vue +9 -0
  32. package/src/components/safecheckNew/android/SafecheckOrderV.vue +2731 -2731
  33. package/src/filiale/baiyin/android/AndroidDefectDeal.vue +4 -4
  34. package/src/filiale/baiyin/android/SafecheckOrderV.vue +2785 -0
  35. package/src/filiale/baiyin/android.js +1 -0
  36. package/src/filiale/baiyin/pc/CheckSearchUser.vue +2 -2
  37. package/src/filiale/baiyin/pc/DefectListNew.vue +3 -3
  38. package/src/filiale/baiyin/pc/PaperList.vue +7 -7
  39. package/src/filiale/bayan/android/PaperFeedback.vue +1651 -1651
  40. package/src/filiale/bayan/android/SafecheckDevices.vue +1303 -1303
  41. package/src/filiale/bayan/android/SafecheckOrderV.vue +52 -29
  42. package/src/filiale/bayan/android/SafecheckUserInfo.vue +863 -863
  43. package/src/filiale/bayan/pc/PaperList.vue +1 -0
  44. package/src/filiale/dexin/android/SafecheckDevices.vue +1305 -1305
  45. package/src/filiale/fugou/pc/CheckBookSearchUser.vue +35 -15
  46. package/src/filiale/hanzhong/android/PaperFeedback.vue +1477 -1477
  47. package/src/filiale/hanzhong/android/SafecheckDevices.vue +1313 -1313
  48. package/src/filiale/hanzhong/android/SafecheckUserInfo.vue +786 -786
  49. package/src/filiale/huaran/android/SafecheckOrderV.vue +2803 -0
  50. package/src/filiale/huaran/android.js +12 -0
  51. package/src/filiale/huaran/pc/CheckBook.vue +313 -0
  52. package/src/filiale/huaran/pc/CheckBookAll.vue +69 -0
  53. package/src/filiale/huaran/pc/CheckBookArea.vue +170 -0
  54. package/src/filiale/huaran/pc/CheckBookCompany.vue +166 -0
  55. package/src/filiale/huaran/pc/CheckBookDetails.vue +196 -0
  56. package/src/filiale/huaran/pc/CheckBookEntry.vue +61 -0
  57. package/src/filiale/huaran/pc/CheckBookList.vue +386 -0
  58. package/src/filiale/huaran/pc/CheckBookSearchArea.vue +564 -0
  59. package/src/filiale/huaran/pc/CheckBookSearchUnit.vue +229 -0
  60. package/src/filiale/huaran/pc/CheckBookSearchUser.vue +604 -0
  61. package/src/filiale/huaran/pc/CheckBookUser.vue +112 -0
  62. package/src/filiale/huaran/pc/PaperList.vue +822 -0
  63. package/src/filiale/huaran/pc/PlanManage.vue +887 -0
  64. package/src/filiale/huaran/pc/checkPlanList.vue +419 -0
  65. package/src/filiale/huaran/pc/checkUserList.vue +867 -0
  66. package/src/filiale/huaran/pc.js +27 -0
  67. package/src/filiale/jiaxian/android/AddPlanItem.vue +447 -0
  68. package/src/filiale/jiaxian/android/PhoneUpUserinfo.vue +1229 -0
  69. package/src/filiale/jiaxian/android/SafecheckDevices.vue +1298 -1298
  70. package/src/filiale/jiaxian/android/SafecheckOrderV.vue +2807 -0
  71. package/src/filiale/jiaxian/android/SafecheckUserInfo.vue +784 -0
  72. package/src/filiale/jiaxian/android.js +4 -0
  73. package/src/filiale/jingyang/android/PaperFeedback.vue +1493 -1493
  74. package/src/filiale/jingyang/android/SafecheckUserInfo.vue +781 -781
  75. package/src/filiale/kelai/pc/CheckPlanAreaList.vue +15 -7
  76. package/src/filiale/pingxiang/android/PaperFeedback.vue +1399 -1399
  77. package/src/filiale/qingjian/android/SafecheckDevices.vue +1269 -1269
  78. package/src/filiale/qingjian/android/SafecheckUserInfo.vue +800 -800
  79. package/src/filiale/qingtongxia/android/AddPlanItem.vue +450 -0
  80. package/src/filiale/qingtongxia/android/CurrentCreate.vue +1053 -0
  81. package/src/filiale/qingtongxia/android/PhoneUpUserinfo.vue +1230 -0
  82. package/src/filiale/qingtongxia/android/SafecheckUserInfo.vue +782 -0
  83. package/src/filiale/qingtongxia/android.js +4 -0
  84. package/src/filiale/rongchuang/android/SafecheckOrderV.vue +2696 -2696
  85. package/src/filiale/ruihua/android/SafecheckOrderV.vue +2747 -0
  86. package/src/filiale/ruihua/android/SafecheckUserInfo.vue +804 -0
  87. package/src/filiale/ruihua/android.js +11 -0
  88. package/src/filiale/shanxian/pc/checkUserList.vue +4 -4
  89. package/src/filiale/shiquan/android/SafecheckDevices.vue +1269 -1269
  90. package/src/filiale/siyang/android/AddPlanItem.vue +446 -0
  91. package/src/filiale/siyang/android/SafecheckUserInfo.vue +789 -789
  92. package/src/filiale/siyang/android.js +1 -0
  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/NewCheckpaper.vue +1938 -1938
  98. package/src/filiale/siyang/pc/checkPlanList.vue +367 -0
  99. package/src/filiale/siyang/pc/checkUserList.vue +790 -786
  100. package/src/filiale/siyang/pc.js +21 -16
  101. package/src/filiale/tongchuan/android/Select.vue +421 -0
  102. package/src/filiale/tongchuan/android.js +1 -0
  103. package/src/filiale/tongchuan/pc/CheckPlanCountChartArea.vue +3 -1
  104. package/src/filiale/tongchuan/pc/DefectPaperWeiXiu.vue +6 -2
  105. package/src/filiale/tongchuan/pc/HiddenSituation.vue +3 -1
  106. package/src/filiale/tongchuan/pc/NewCheckpaper.vue +13 -22
  107. package/src/filiale/tongchuan/pc/PaperDefectMain.vue +1 -1
  108. package/src/filiale/tongchuan/pc/SelectCheckPlan.vue +5 -2
  109. package/src/filiale/tongchuan/utils/EventListener.js +29 -0
  110. package/src/filiale/tongchuan/utils/coerceBoolean.js +7 -0
  111. package/src/filiale/weinan/android/SafecheckDevices.vue +1295 -1295
  112. package/src/filiale/weinan/android/SafecheckOrderV.vue +1 -1
  113. package/src/filiale/weinan/pc/CheckBookSearchUserList.vue +75 -62
  114. package/src/filiale/weinan/pc/CheckDetail.vue +11 -11
  115. package/src/filiale/weinan/pc/DefectPaperNew.vue +31 -0
  116. package/src/filiale/weinan/pc/DeviceChange.vue +1088 -0
  117. package/src/filiale/weinan/pc/checkUserList.vue +49 -113
  118. package/src/filiale/weinan/pc.js +1 -0
  119. package/src/filiale/wuan/android/SafecheckOrderV.vue +2241 -2240
  120. package/src/filiale/wuan/android/SafecheckUserInfo.vue +596 -592
  121. package/src/filiale/yangchunboneng/android/PaperFeedback.vue +1731 -1731
  122. package/src/filiale/yangchunboneng/android/SafecheckDevices.vue +1332 -1332
  123. package/src/filiale/yangchunboneng/android/SafecheckUserInfo.vue +887 -887
  124. package/src/filiale/yangchunboneng/pc/CheckBookSearchUser.vue +13 -11
  125. package/src/filiale/yangchunboneng/pc/CheckBookUser.vue +269 -269
  126. package/src/filiale/yangchunboneng/pc/CheckPlanAreaList.vue +96 -30
  127. package/src/filiale/yangchunboneng/pc/CheckSearchUser.vue +10 -10
  128. package/src/filiale/yangchunboneng/pc/DefectPaperNew.vue +1128 -1128
  129. package/src/filiale/yangchunboneng/pc/PaperDefectMain.vue +972 -972
  130. package/src/filiale/yangchunboneng/pc/PaperList.vue +773 -773
  131. package/src/filiale/yongzhou/android/PaperFeedback.vue +1519 -1519
  132. package/src/filiale/yongzhou/android/SafecheckDevices.vue +1294 -1294
  133. package/src/filiale/yongzhou/android/SafecheckUserInfo.vue +776 -776
  134. package/src/filiale/yuansheng/android/SafecheckDevices.vue +11 -1
  135. package/src/filiale/yuansheng/android/SwitchValve.vue +322 -322
  136. package/src/filiale/yuansheng/android.js +17 -17
  137. package/src/filiale/yuansheng/pc/NewCheckpaper.vue +10 -2
  138. package/src/filiale/yunchengminsheng/android/PaperFeedback.vue +1508 -1508
  139. package/src/filiale/yunchengminsheng/android/SafecheckDevices.vue +1270 -1270
  140. package/src/filiale/yunchengminsheng/android/SafecheckUserInfo.vue +784 -784
  141. package/src/main-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.js +24 -0
  142. package/src/safecheck-android.js +9 -0
  143. package/src/safecheck-page.js +10 -0
@@ -0,0 +1,982 @@
1
+ <template>
2
+ <div class="flex">
3
+ <criteria-paged :model="model" v-ref:paged>
4
+ <criteria partial='criteria' @condition-changed='$parent.search' v-ref:criteria>
5
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
+ <div class="row" v-show="!$parent.$parent.$parent.showItem">
7
+ <div :class="$parent.$parent.style">
8
+ <label class="font_normal_body">用户编号</label>
9
+ <input style="width: 60%" type="text" class="input_search" v-model="model.f_userinfo_code"
10
+ id="f_userinfo_code" placeholder="用户编号" condition="f_userinfo_code like '%{}%'">
11
+ </div>
12
+ <div :class="$parent.$parent.style">
13
+ <label class="font_normal_body">用户姓名</label>
14
+ <input style="width: 60%" type="text" class="input_search" v-model="model.f_user_name" id="f_user_name"
15
+ placeholder="用户姓名" condition="f_user_name like '%{}%'">
16
+ </div>
17
+ <div :class="$parent.$parent.style">
18
+ <label class="font_normal_body">小&emsp;&emsp;区</label>
19
+ <input style="width: 60%" type="text" class="input_search" v-model="model.f_residential_area"
20
+ id="f_residential_area" placeholder="小区" condition="f_residential_area like '%{}%'">
21
+ </div>
22
+ <div :class="$parent.$parent.style">
23
+ <label class="font_normal_body">地&emsp;&emsp;址</label>
24
+ <input style="width: 60%" type="text" class="input_search" v-model="model.f_address" id="f_address"
25
+ placeholder="地址" condition="f_address like '%{}%'">
26
+ </div>
27
+ <div :class="$parent.$parent.style" style="width: auto;margin-top:8px;float: right">
28
+ <export-excel-safe :data="$parent.$parent.searchData" :field="$parent.$parent.excelHeaders"
29
+ :choose-col="true" sqlurl="rs/logic/SafeExportExcel" sql-name="根据安检员查询用户档案"
30
+ template-name='用户安检情况'></export-excel-safe>
31
+ <button type="button" class="button_search button_spacing" @click="search()">查询</button>
32
+ <div style="float: right" class="button_spacing"
33
+ :class="{ 'button_shrink_left': $parent.$parent.$parent.showItem, 'button_shrink_right': !$parent.$parent.$parent.showItem }"
34
+ @click="$parent.$parent.hiddenr()"></div>
35
+ <div style="float: right" class="button_spacing"
36
+ :class="{ 'button_shrink_top': $parent.$parent.criteriaShow, 'button_shrink_bottom': !$parent.$parent.criteriaShow }"
37
+ @click="$parent.$parent.hidden()">
38
+
39
+ </div>
40
+ </div>
41
+
42
+
43
+ </div>
44
+ <div class="row" v-show="!$parent.$parent.$parent.showItem">
45
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
46
+ <label class="font_normal_body">用户类型</label>
47
+ <v-select id="f_usertype" placeholder='用户类型' class="select select_list" :value.sync="model.f_usertype"
48
+ :value-single="true" :options='$parent.$parent.usertypes' v-model="model.f_usertype"
49
+ condition="f_user_type = '{}'" close-on-select clear-button></v-select>
50
+ </div>
51
+ <!-- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow && !$parent.$parent.$parent.showItem"></div>-->
52
+
53
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
54
+ <label class="font_normal_body" style="color: red;">安检筛选</label>
55
+ <v-select placeholder='安检筛选' :value-single="true" class="select select_list"
56
+ :value.sync="$parent.$parent.SafeCheckXZ" :options='$parent.$parent.SafeCheckXZs'
57
+ v-model="$parent.$parent.SafeCheckXZ" close-on-select clear-button></v-select>
58
+ </div>
59
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
60
+ <label class="font_normal_body">安检起始</label>
61
+ <datepicker :value.sync="model.f_check_start" placeholder='最后安检时间起始' style="width: 60%"
62
+ :format="'yyyy-MM-dd 00:00:00'" :show-rest-button="reset" v-model="model.f_check_start">
63
+ </datepicker>
64
+ </div>
65
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
66
+ <label class="font_normal_body">安检结束</label>
67
+ <datepicker :value.sync="model.f_check_end" placeholder='最后安检时间结束' style="width: 60%"
68
+ :format="'yyyy-MM-dd 23:59:59'" :show-rest-button="reset" v-model="model.f_check_end">
69
+ </datepicker>
70
+ </div>
71
+
72
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
73
+ <label class="font_normal_body">安检状态</label>
74
+ <v-select id="f_entry" placeholder='安检状态' :multiple="true" class="select select_list"
75
+ :value.sync="$parent.$parent.checkStates" :options='$parent.$parent.checkstatus'></v-select>
76
+ </div>
77
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
78
+ <label class="font_normal_body">隐患情况</label>
79
+ <v-select placeholder='隐患情况' class="select select_list" :value-single="true"
80
+ v-model='model.f_check_result' :value.sync="model.f_check_result"
81
+ :options='$parent.$parent.f_check_results' condition="f_defect_content like '%{}%'" close-on-select
82
+ clear-button></v-select>
83
+ </div>
84
+ <!-- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow && !$parent.$parent.$parent.showItem"></div>-->
85
+ </div>
86
+ <div class="row" v-show="!$parent.$parent.$parent.showItem">
87
+
88
+ <div class="col-sm-4 form-group" v-show="$parent.$parent.criteriaShow" style="margin: 0">
89
+ <role-selector-safe role-name="安检员" role-lable="安&nbsp;检&nbsp;员&nbsp;" @re-res="$parent.$parent.getRes"
90
+ :value.sync="model.f_checker_id" v-model="model.f_checker_id" :value-multiple="true"
91
+ condition=" f_checker_name in {}">
92
+ </role-selector-safe>
93
+ </div>
94
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
95
+ <label class="font_normal_body">片&emsp;&emsp;区</label>
96
+ <v-select class="select_list select" placeholder='片区/管理站' style="width: 60%"
97
+ :value.sync="model.f_slice_area" v-model="model.f_slice_area" :options='$parent.$parent.sliceArea'
98
+ filer-key="name" close-on-select clear-button condition="f_slice_area='{}'"
99
+ @change="$parent.$parent.getmeterbook(model.f_slice_area)" :value-single="true">
100
+ </v-select>
101
+ </div>
102
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
103
+ <label class="font_normal_body">抄&ensp;表&ensp;册</label>
104
+ <v-select class="select_list select" placeholder='抄表册' style="width: 60%"
105
+ :value.sync="model.f_meter_book_num" v-model="model.f_meter_book_num" :options='$parent.$parent.cbc'
106
+ filer-key="name" close-on-select clear-button condition="f_meter_book_num={}" :value-single="true">
107
+ </v-select>
108
+ </div>
109
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
110
+ <label class="font_normal_body">省&ensp;市&ensp;区</label>
111
+ <v-select class="select_list select" placeholder='请选择' style="width: 60%" :value.sync="model.f_pcd"
112
+ v-model="model.f_pcd" :options='$parent.$parent.pcds' filer-key="name" close-on-select clear-button
113
+ condition="f_pcd='{}'" :value-single="true">
114
+ </v-select>
115
+ </div>
116
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
117
+ <label class="font_normal_body">用户状态</label>
118
+ <v-select class="select_list select" placeholder='用户状态' style="width: 60%"
119
+ :value.sync="model.f_user_state" v-model="model.f_user_state" :options='$parent.$parent.userstates'
120
+ close-on-select clear-button condition="f_user_state = '{}'" :value-single="true">
121
+ </v-select>
122
+ </div>
123
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
124
+ <label class="font_normal_body">距上次安检天数</label>
125
+ <input type="number" class="input_search" v-model="model.f_check_date" style="width: 60%"
126
+ placeholder="距上次安检天数">
127
+ </div>
128
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
129
+ <label class="font_normal_body">到访不遇次数</label>
130
+ <input type="number" class="input_search" v-model="model.f_check_version" style="width: 60%"
131
+ placeholder="到访不遇次数">
132
+ </div>
133
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
134
+ <label class="font_normal_body">安检次数</label>
135
+ <input style="width: 60%" type="text" class="input_search" v-model="model.anjiancishu" placeholder="安检次数"
136
+ condition="anjiancishu = '{}'">
137
+ </div>
138
+ </div>
139
+ <div class="row" v-show="$parent.$parent.$parent.showItem">
140
+ <div :class="$parent.$parent.style">
141
+ <label class="font_normal_body">用户编号</label>
142
+ <input style="width: 60%" type="text" class="input_search" v-model="model.f_userinfo_code"
143
+ placeholder="用户编号" condition="f_userinfo_code like '%{}%'">
144
+ </div>
145
+ <div :class="$parent.$parent.style">
146
+ <label class="font_normal_body">用户姓名</label>
147
+ <input style="width: 60%" type="text" class="input_search" v-model="model.f_user_name" placeholder="用户姓名"
148
+ condition="f_user_name like '%{}%'">
149
+ </div>
150
+ <div :class="$parent.$parent.style" style="width: auto;margin-top:8px;float: right">
151
+ <export-excel-safe :data="$parent.$parent.searchData" :field="$parent.$parent.excelHeaders"
152
+ sqlurl="rs/logic/SafeExportExcel" sql-name="根据安检员查询用户档案" template-name='用户安检情况'></export-excel-safe>
153
+ <button type="button" class="button_search button_spacing" @click="search()">查询</button>
154
+ <div style="float: right" class="button_spacing"
155
+ :class="{ 'button_shrink_left': $parent.$parent.$parent.showItem, 'button_shrink_right': !$parent.$parent.$parent.showItem }"
156
+ @click="$parent.$parent.hiddenr()"></div>
157
+ <div style="float: right" class="button_spacing"
158
+ :class="{ 'button_shrink_top': $parent.$parent.criteriaShow, 'button_shrink_bottom': !$parent.$parent.criteriaShow }"
159
+ @click="$parent.$parent.hidden()">
160
+
161
+ </div>
162
+ </div>
163
+
164
+ </div>
165
+ <div class="row" v-show="$parent.$parent.$parent.showItem">
166
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
167
+ <label class="font_normal_body">小&emsp;&emsp;区</label>
168
+ <input style="width: 60%" type="text" class="input_search" v-model="model.f_residential_area"
169
+ placeholder="小区" condition="f_residential_area like '%{}%'">
170
+ </div>
171
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
172
+ <label class="font_normal_body">地&emsp;&emsp;址</label>
173
+ <input style="width: 60%" type="text" class="input_search" v-model="model.f_address" placeholder="地址"
174
+ condition="f_address like '%{}%'">
175
+ </div>
176
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
177
+ <label class="font_normal_body">用户类型</label>
178
+ <v-select placeholder='用户类型' class="select select_list" :value.sync="model.f_usertype"
179
+ :value-single="true" :options='$parent.$parent.usertypes' v-model="model.f_usertype"
180
+ condition="f_user_type = '{}'" close-on-select clear-button></v-select>
181
+ </div>
182
+ <!-- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow && !$parent.$parent.$parent.showItem"></div>-->
183
+
184
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
185
+ <label class="font_normal_body" style="color: red;">安检筛选</label>
186
+ <v-select placeholder='安检筛选' :value-single="true" class="select select_list"
187
+ :value.sync="$parent.$parent.SafeCheckXZ" :options='$parent.$parent.SafeCheckXZs'
188
+ v-model="$parent.$parent.SafeCheckXZ" close-on-select clear-button></v-select>
189
+ </div>
190
+
191
+ </div>
192
+ <div class="row" v-show="$parent.$parent.$parent.showItem">
193
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
194
+ <label class="font_normal_body">安检起始</label>
195
+ <datepicker :value.sync="model.f_check_start" placeholder='最后安检时间起始' :disabled-days-of-week="[]"
196
+ style="width: 60%" :format="'yyyy-MM-dd'" :show-rest-button="reset" v-model="model.f_check_start">
197
+ </datepicker>
198
+ </div>
199
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
200
+ <label class="font_normal_body">安检结束</label>
201
+ <datepicker :value.sync="model.f_check_end" placeholder='最后安检时间结束' style="width: 60%"
202
+ :disabled-days-of-week="[]" :format="'yyyy-MM-dd'" :show-rest-button="reset"
203
+ v-model="model.f_check_end">
204
+ </datepicker>
205
+ </div>
206
+
207
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
208
+ <label class="font_normal_body">安检状态</label>
209
+ <v-select placeholder='安检状态' class="select select_list" :value.sync="$parent.$parent.checkStates"
210
+ :options='$parent.$parent.checkstatus' :multiple="true" close-on-select clear-button></v-select>
211
+ </div>
212
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
213
+ <label class="font_normal_body">隐患情况</label>
214
+ <v-select placeholder='隐患情况' class="select select_list" :value-single="true"
215
+ v-model='model.f_check_result' :value.sync="model.f_check_result"
216
+ :options='$parent.$parent.f_check_results' condition="f_defect_content like '%{}%'" close-on-select
217
+ clear-button></v-select>
218
+ </div>
219
+
220
+ </div>
221
+ <!--<div class="row" v-show="$parent.$parent.$parent.showItem">
222
+ <div :class="$parent.$parent.style" v-show="$parent.$parent.criteriaShow">
223
+ <label class="font_normal_body">公&emsp;&emsp;司</label>
224
+ <right-tree @re-res="$parent.$parent.getRes" :initresid="$parent.$parent.$login.f.orgid">
225
+ </right-tree>
226
+ </div>
227
+
228
+ </div>-->
229
+ </div>
230
+ </criteria>
231
+ <data-grid :model="model" partial="list" class="list_area table_sy" v-ref:grid>
232
+ <template partial='head'>
233
+ <tr>
234
+ <th>
235
+ <nobr>用户编号</nobr>
236
+ </th>
237
+ <th>
238
+ <nobr>用户名称</nobr>
239
+ </th>
240
+ <th>
241
+ <nobr>已安检天数</nobr>
242
+ </th>
243
+ <th>
244
+ <nobr>用户电话</nobr>
245
+ </th>
246
+ <th>
247
+ <nobr>用户表号</nobr>
248
+ </th>
249
+ <!-- <th>-->
250
+ <!-- <nobr>气表品牌</nobr>-->
251
+ <!-- </th>-->
252
+ <th>
253
+ <nobr>用户类型</nobr>
254
+ </th>
255
+ <!-- <th>-->
256
+ <!-- <nobr>壁挂炉</nobr>-->
257
+ <!-- </th>-->
258
+ <!-- <th>-->
259
+ <!-- <nobr>灶具</nobr>-->
260
+ <!-- </th>-->
261
+ <th>
262
+ <nobr>小区名称</nobr>
263
+ </th>
264
+ <th style="padding: 0 40px">
265
+ <nobr>地址</nobr>
266
+ </th>
267
+ <th>
268
+ <nobr>安检员</nobr>
269
+ </th>
270
+ <!-- <th>-->
271
+ <!-- <nobr>安检员备注</nobr>-->
272
+ <!-- </th>-->
273
+ <th>
274
+ <nobr>安检日期</nobr>
275
+ </th>
276
+ <th>
277
+ <nobr>安检状态</nobr>
278
+ </th>
279
+ <th>
280
+ <nobr>安检结果</nobr>
281
+ </th>
282
+ <th>
283
+ <nobr>建档日期</nobr>
284
+ </th>
285
+ <th>
286
+ <nobr>通气日期</nobr>
287
+ </th>
288
+ <th v-show="$parent.$parent.$parent.showcode">
289
+ <nobr>二维码</nobr>
290
+ </th>
291
+ </tr>
292
+ </template>
293
+ <template partial='body'>
294
+ <td v-bind:class="{ newcolor: row.code == 1 }" style="text-align: center;">{{ row.f_userinfo_code }}</td>
295
+ <td v-bind:class="{ newcolor: row.code == 1 }" style="text-align: center;">{{ row.f_user_name }}</td>
296
+ <td v-bind:class="{ newcolor: row.code == 1 }" style="text-align: center;">
297
+ {{ $parent.$parent.$parent.dateDiff(row.f_last_check_date) }}</td>
298
+ <td v-bind:class="{ newcolor: row.code == 1 }" style="text-align: center;">{{ row.f_user_phone }}</td>
299
+ <td v-bind:class="{ newcolor: row.code == 1 }" style="text-align: center;">{{ row.f_meternumber }}</td>
300
+ <!-- <td v-bind:class="{newcolor:row.code==1}" style="text-align: center;">{{row.f_meter_brand}}</td>-->
301
+ <td v-bind:class="{ newcolor: row.code == 1 }" style="text-align: center">{{ row.f_user_type }}</td>
302
+ <!-- <td v-bind:class="{newcolor:row.code==1}" style="text-align: center">{{ row.f_safe_hasfurnace }}</td>-->
303
+ <!-- <td v-bind:class="{newcolor:row.code==1}" style="text-align: center">{{ row.f_safe_haskitchen }}</td>-->
304
+ <td v-bind:class="{ newcolor: row.code == 1 }" style="text-align: center">{{ row.f_residential_area }}</td>
305
+ <td v-bind:class="{ newcolor: row.code == 1 }" style="text-align: center">{{ row.f_address }}</td>
306
+ <td v-bind:class="{ newcolor: row.code == 1 }" style="text-align: center">{{ row.f_checker_name }}</td>
307
+ <td v-bind:class="{ newcolor: row.code == 1 }" style="text-align: center">{{ row.f_last_check_date }}</td>
308
+ <td v-bind:class="{ newcolor: row.code == 1 }" style="text-align: center">{{ row.f_last_check_state }}</td>
309
+ <td v-bind:class="{ newcolor: row.code == 1 }" style="text-align: center">
310
+ {{ row.f_last_check_state != '入户' ? '' : (row.f_last_check_result == '无隐患' ? '无问题' : row.f_last_check_result) }}
311
+ </td>
312
+ <td v-bind:class="{ newcolor: row.code == 1 }" style="text-align: center">{{ row.f_createfile_date }}</td>
313
+ <td v-bind:class="{ newcolor: row.code == 1 }" style="text-align: center">{{ row.f_gas_date }}</td>
314
+ <td v-bind:class="{ newcolor: row.code == 1 }" style="text-align: center"
315
+ v-show="$parent.$parent.$parent.showcode">
316
+ <button class="button_spacing button_search-1"
317
+ @click.stop='$parent.$parent.$parent.searchInfo(row.f_userinfo_code)'>点击</button>
318
+ </td>
319
+ </template>
320
+ </data-grid>
321
+ </criteria-paged>
322
+ <modal :show.sync="dialogVisible" style="text-align: center" destroyOnClose={true} v-ref:modal v-if="dialogVisible">
323
+ <div slot="modal-header" class="modal-header">
324
+ <h4 class="modal-title">
325
+ 二维码
326
+ </h4>
327
+ </div>
328
+ <div slot="modal-body" class="modal-body">
329
+ <div id="dd"></div>
330
+ </div>
331
+ <div slot="modal-footer" class="modal-footer">
332
+ <print-element class="btn btn-success width-80" id="dd" styleid='style1' top='40' left='60' width='100%'
333
+ height='100%' v-ref:printelement>打印</print-element>
334
+ <button type="button" class="btn btn-success width-80" @click="dialogVisible = false">确认</button>
335
+ <button type="button" class="btn btn-success width-80" @click="dialogVisible = false">取消</button>
336
+ </div>
337
+ </modal>
338
+ </div>
339
+
340
+ </template>
341
+
342
+ <script>
343
+ import { PagedList } from 'vue-client'
344
+ import { HttpResetClass } from 'vue-client'
345
+ import co from 'co'
346
+ import * as Util from './../../Util'
347
+ import Vue from 'vue'
348
+
349
+ // let select = function * (self,userid) {
350
+ // let http = new HttpResetClass()
351
+ // let getGasman = yield http.load('POST','/rs/search', {
352
+ // source: 'this.getChildByName($安检员$).getUsers()',
353
+ // userid: userid
354
+ // }, {resolveMsg: null, rejectMsg: null})
355
+ // //tag
356
+ // getGasman.data.forEach((checker)=>{
357
+ // self.checkersid.push({label:checker.name,value:checker.id})
358
+ // })
359
+ // self.checkersid.push({label:'全部',value:''})
360
+ // }
361
+
362
+
363
+ export default {
364
+ title: '用户安检情况',
365
+ data() {
366
+ let options = []
367
+ let year = (new Date()).getFullYear()
368
+ for (let i = year; i <= year + 3; i++)
369
+ options.push({ label: i + '', value: i + '' })
370
+ let moptions = []
371
+ for (let i = 1; i <= 12; i++)
372
+ moptions.push({ label: i + '', value: i + '' })
373
+
374
+ return {
375
+ dialogVisible: false,
376
+ searchData: {
377
+ condition: '1=1',
378
+ orderitem: "f_last_check_date",
379
+ timetype: "dd",
380
+ f_defect_content: "CASE WHEN CHARINDEX( '\"result\":\"正常\"', tp.f_defect_content ) > 0 THEN '正常' ELSE replace(replace(replace( replace( RIGHT ( tp.f_defect_content, len( tp.f_defect_content ) - 26 ), substring('{}',2,1), '' ), substring('{}',1,1), '' ),']',''),'\"','') END"
381
+ },
382
+ excelHeaders: {
383
+ //用户编号 用户名称 用户电话 安检次数 用户类型 小区名称 地址 安检日期 安检状态 安检结果
384
+
385
+ 'f_userinfo_code': '用户编号',
386
+ 'f_user_name': '用户名称',
387
+ 'f_user_phone': '用户电话',
388
+ 'f_meternumber': '用户表号',
389
+ 'f_user_type': '用户类型',
390
+ 'f_checker_name': '安检员',
391
+ 'f_residential_area': '小区名称',
392
+ 'f_address': '地址',
393
+ 'f_last_check_date': '安检日期',
394
+ 'f_last_check_state': '安检状态',
395
+ 'f_last_check_result': '安检结果',
396
+ 'f_createfile_date': '建档日期',
397
+ 'f_gas_date': '通气日期'
398
+ },
399
+ model: new PagedList('rs/sql/根据安检员查询用户档案', 20, {
400
+ orderitem: "'f_last_check_date'",
401
+ timetype: "'dd'",
402
+ f_defect_content: 'this.f_defect_content'
403
+ }),
404
+ f_defect_content: "CASE WHEN CHARINDEX( '\"result\":\"正常\"', tp.f_defect_content ) > 0 THEN '无隐患' ELSE replace(replace(replace( replace( RIGHT ( tp.f_defect_content, len( tp.f_defect_content ) - 26 ), substring('{}',2,1), '' ), substring('{}',1,1), '' ),']',''),'\"','') END",
405
+ orgstrs: [{ label: '全部', value: '' }],
406
+ checkersid: [],
407
+ checkStates: [],
408
+ SafeCheckXZ: '',
409
+ civil: '', //民用安检周期
410
+ civilian: '', //非民用安检周期
411
+ SafeCheckXZs: [{ label: '全部', value: '' }, { label: '未安检', value: '未安检' }, { label: '已安检', value: '已安检' }], // 安检筛选选项
412
+ SafeCheckSXs: [{ label: '是', value: '是' }, { label: '否', value: '否' }, { label: '全部', value: '' }],
413
+ // user_states:[{label: '全部', value: ''}, ...this.$appdata.getParam('用户状态')],
414
+ IsShares: [{ label: '是', value: '是' }, { label: '否', value: '否' }],
415
+ IsShare: '否',
416
+ checker: {},
417
+ NoBuys: [{ label: '是', value: '是' }, { label: '否', value: '否' }],
418
+ criteriaShow: false,
419
+ checkers: [],
420
+ showcode: false,
421
+ chosenOrg: { id: 0 },
422
+ showModal: false,
423
+ checkedAll: false,
424
+ checkrows: [],
425
+ adjustables: [],
426
+ f_plan_year: year + '',
427
+ f_plan_month: moptions[new Date().getMonth()].value,
428
+ f_effective_start_time: '', //计划有效起始时间
429
+ f_effective_end_time: '', //计划有效结束时间
430
+ checkboxModel: {},
431
+ c_year_list: options,
432
+ c_month_list: moptions,
433
+ // areas: this.areas(),
434
+ checkstatus: this.checkstatus(),
435
+ usertypes: this.usertypes(),
436
+ userstates: this.userstates(),
437
+ sqlname: '',
438
+ f_check_results: [{ label: '全部', value: '' }, { label: '正常', value: '正常' }, { label: '有隐患', value: '有隐患' }],
439
+ creatPlanWay: '',
440
+ sliceArea: [],
441
+ cbcs: [],
442
+ cbc: [],
443
+ pcds: []
444
+ }
445
+ },
446
+ props: {
447
+ style: {
448
+ type: String,
449
+ default: 'col-sm-2 form-group'
450
+ },
451
+ style2: {
452
+ type: String,
453
+ default: 'col-sm-4 form-group'
454
+ },
455
+ checkplan: { // 传入一条安检计划信息
456
+ type: Object
457
+ },
458
+ additemshow: {
459
+ type: Boolean,
460
+ default: false
461
+ }
462
+ },
463
+ ready() {
464
+ // 获取分公司信息
465
+ this.model.f_defect_content = this.f_defect_content
466
+ this.showcode = this.$appdata.getSingleValue('用户安检情况二维码')
467
+ //this.getfengongsi()
468
+ this.model.chosenOrg = { id: 0 }
469
+ this.model.f_filialeids = this.$login.f.f_orgids
470
+ this.model.f_filiale = this.$login.f.f_fengongsi
471
+ this.model.f_OrgStr = this.$login.f.orgpathstr
472
+ this.Mreadibook(`('${this.$login.f.orgid}')`)
473
+ this.getAllMeterBook(`('${this.$login.f.orgid}')`)
474
+ },
475
+ methods: {
476
+
477
+ dateDiff(date1Str) {
478
+ // 确保传入的date1Str是有效的字符串格式
479
+ if (typeof date1Str !== 'string' || !/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(date1Str)) {
480
+ throw new Error('Invalid date format. Expected format: yyyy-mm-dd hh:mm:ss');
481
+ }
482
+ // 将date1Str格式化为Date对象,并提取日期部分
483
+ const date1 = new Date(date1Str);
484
+ const year = date1.getFullYear();
485
+ const month = String(date1.getMonth() + 1).padStart(2, '0'); // 月份从0开始,所以需要加1
486
+ const day = String(date1.getDate()).padStart(2, '0');
487
+ const formattedDate1 = `${year}-${month}-${day}`;
488
+ // 获取当前日期,并同样格式化为yyyy-mm-dd
489
+ const date2 = new Date();
490
+ const currentYear = date2.getFullYear();
491
+ const currentMonth = String(date2.getMonth() + 1).padStart(2, '0');
492
+ const currentDay = String(date2.getDate()).padStart(2, '0');
493
+ const formattedDate2 = `${currentYear}-${currentMonth}-${currentDay}`;
494
+ // 将格式化后的日期字符串转换为Date对象,以便比较
495
+ const formattedDate1Obj = new Date(`${formattedDate1}T00:00:00`); // 添加时间部分以确保比较准确
496
+ const formattedDate2Obj = new Date(`${formattedDate2}T00:00:00`);
497
+ // 计算两个日期之间的差值(以毫秒为单位),然后转换为天数
498
+ const diffInMilliseconds = Math.abs(formattedDate2Obj - formattedDate1Obj);
499
+ const diffInDays = Math.ceil(diffInMilliseconds / (1000 * 60 * 60 * 24));
500
+ // 返回天数差
501
+ return diffInDays;
502
+ },
503
+ //查询二维码
504
+ searchInfo(val) {
505
+ this.dialogVisible = true
506
+ //tag
507
+ new HttpResetClass().load('POST', 'rs/logic/QrcodeUtil', {
508
+ data: {
509
+ id: val
510
+ }
511
+ }, { resolveMsg: null, rejectMsg: null }).then(res => {
512
+ //tag
513
+ //tag
514
+ let imageer = new Image()
515
+ imageer.src = "data:image/jpg;base64," + res.data.result
516
+ document.getElementById("dd").appendChild(imageer);
517
+ //tag
518
+ })
519
+
520
+ },
521
+ //获取省市区列表
522
+ getPcd(val) {
523
+ this.pcds = [{ label: '全部', value: '' }]
524
+ new HttpResetClass().load("POST", `/rs/sql/safe_singleTable_OrderBy`,
525
+ { data: { items: "*", tablename: "t_pcd", orderitem: "id", condition: `f_orgid in ${val}` } },
526
+ { resolveMsg: null, rejectMsg: null }).then((pcdlist) => {
527
+ pcdlist.data.forEach((result) => {
528
+ this.pcds.push({ label: result.f_pcd, value: result.f_pcd })
529
+ })
530
+ })
531
+ },
532
+ getmeterbook(val) {
533
+
534
+ //tag
535
+ this.cbc = []
536
+ this.cbc.push({
537
+ label: '全部',
538
+ value: ''
539
+ })
540
+ if (val == '') {
541
+
542
+ this.cbcs.forEach(res => {
543
+ this.cbc.push({
544
+ label: res.f_book_name,
545
+ value: res.id
546
+ })
547
+ })
548
+ } else {
549
+ this.cbcs.forEach(res => {
550
+ if (res.f_book_slice_area == val) {
551
+ this.cbc.push({
552
+ label: res.f_book_name,
553
+ value: res.id
554
+ })
555
+ }
556
+ })
557
+ }
558
+ },
559
+ Mreadibook(val) {
560
+ ////tag
561
+ ////tag
562
+ if (val) {
563
+ new HttpResetClass().load('POST', `/rs/sql/tel_singleTable_OrderBy`, {
564
+ data: {
565
+ items: 'name',
566
+ tablename: 't_zone',
567
+ condition: `parentid in ${val}`,
568
+ orderitem: 'id'
569
+ }
570
+ }, { resolveMsg: null, rejectMsg: null }).then((res) => {
571
+ this.sliceArea = []
572
+ this.sliceArea.push({
573
+ label: '全部',
574
+ value: ''
575
+ })
576
+ res.data.forEach(ress => {
577
+ this.sliceArea.push({
578
+ label: ress.name,
579
+ value: ress.name
580
+ })
581
+ })
582
+
583
+ })
584
+ }
585
+ },
586
+ // 获取县域分公司内容
587
+ getfengongsi() {
588
+ let val = {
589
+ source: 'this.getParentByType($organization$).getSpecialResByType($organization$)',
590
+ userid: `${this.$login.f.id}`
591
+ }
592
+ let http = new HttpResetClass()
593
+ http.load('POST', '/rs/search', { data: val }, { resolveMsg: null, rejectMsg: null }).then((res) => {
594
+ res.data.forEach((item) => {
595
+ this.orgstrs.push({ label: item.name, value: item.id })
596
+ })
597
+ //tag
598
+ })
599
+ },
600
+ // 县域分公司发生改变
601
+ // orgstrchange(val){
602
+ // if(val == undefined || val == ''){
603
+ // return
604
+ // }else {
605
+ // this.checkersid = []
606
+ // let gen = select(this,val)
607
+ // return co(gen)
608
+ // }
609
+ // },
610
+ getDefect(val) {
611
+ if (val) {
612
+ try {
613
+ var defect = JSON.parse(val)
614
+ return defect.result
615
+ } catch (e) {
616
+ //tag
617
+ return '正常'
618
+ }
619
+ }
620
+ return '正常'
621
+ },
622
+ checkerchange(val) {
623
+ this.checkboxModel.f_checker = val.name
624
+ this.checkboxModel.f_checker_id = val.id
625
+ },
626
+ search(args) {
627
+ if (this.SafeCheckXZ && (args.model.f_check_start == '' || args.model.f_check_end == '')) {
628
+ this.$showMessage('如果选择 已安检/未安检 选项,需要选择 安检起始时间!')
629
+ return
630
+ }
631
+ if ((args.model.f_check_start || args.model.f_check_end) && !this.SafeCheckXZ) {
632
+ this.$showMessage('如果录入 安检起始时间,需要选择 安检筛选条件!')
633
+ return
634
+ }
635
+ /*if (this.SafeCheckXZ == '未安检') {
636
+ args.condition += " and ( f_last_check_date >= '" + args.model.f_check_start + "' or f_last_check_date <= '" + args.model.f_check_end + "' or f_last_check_date is null)"
637
+ } else {
638
+ if (args.model.f_check_start) {
639
+ args.condition += " and f_last_check_date >= '" + args.model.f_check_start + "'"
640
+ }
641
+ if (args.model.f_check_end) {
642
+ args.condition += " and f_last_check_date <= '" + args.model.f_check_end + "'"
643
+ }
644
+ }*/
645
+ args.condition += " and f_filialeid in " + (this.model.f_filialeids ? this.model.f_filialeids : `(${this.$login.f.orgid})`)
646
+ let con = ' f_filialeid in ' + (this.model.f_filialeids ? this.model.f_filialeids : `(${this.$login.f.orgid})`)
647
+ con += args.model.f_userinfo_code ? ` and f_userinfo_code like '%${args.model.f_userinfo_code}%'` : ''
648
+ /*con += args.model.f_user_name ? ` and f_user_name like '%${args.model.f_user_name}%'` : ''
649
+ con += args.model.f_residential_area ? ` and f_residential_area like '%${args.model.f_residential_area}%'` : ''
650
+ con += args.model.f_address ? ` and f_address like '%${args.model.f_address}%'` : ''
651
+ con += args.model.f_usertype ? ` and f_check_type = '${args.model.f_usertype}'` : ''*/
652
+ if (this.SafeCheckXZ) {
653
+ con += ` and f_offsite_time >= '${args.model.f_check_start}' and f_offsite_time <= '${args.model.f_check_end}' `
654
+ if (this.SafeCheckXZ == '未安检') {
655
+ args.condition += ' and ruhuid is null'
656
+ } else {
657
+ args.condition += ' and ruhuid is not null'
658
+ }
659
+ }
660
+ let states = ` (`
661
+ if (this.checkStates.length > 0) {
662
+ for (let i = 0; i < this.checkStates.length; i++) {
663
+ if (this.checkStates[i]) {
664
+ states += `'${this.checkStates[i]}',`
665
+ } else {
666
+ states = ''
667
+ break
668
+ }
669
+ }
670
+ if (states) {
671
+ states = states.substring(0, states.length - 1)
672
+ states += `) `
673
+ args.condition += ` and f_last_check_state in ${states}`
674
+ }
675
+ } else {
676
+ states = ''
677
+ }
678
+ if (args.model.f_check_date) {
679
+ const daysBefore = Number(args.model.f_check_date);
680
+ if (daysBefore > 0) {
681
+ // 获取当前日期
682
+ const now = new Date();
683
+ // 计算三天前的日期
684
+ const threeDaysBefore = new Date(now.getTime() - (daysBefore * 24 * 60 * 60 * 1000));
685
+ // 如果需要格式化日期,可以使用Date对象的方法
686
+ var formattedDate = threeDaysBefore.toISOString().split('T')[0];
687
+ args.condition += ` and f_last_check_date<='${formattedDate} 23:59:59'`;
688
+ } else {
689
+ console.error('f_check_date不是一个有效的正整数');
690
+ }
691
+ }
692
+ if (args.model.f_check_version) {
693
+ con += ` and f_check_version = '${args.model.f_check_version}'`
694
+ }
695
+ con += args.model.f_checker_id ? ` and f_checker_name in ${args.model.f_checker_id}` : ' and 1=1'
696
+ let condition = {
697
+ condition1: args.condition,
698
+ condition2: con
699
+ }
700
+ this.searchData.condition = condition
701
+ return this.model.search(condition, args.model)
702
+ },
703
+ checkstatus() {
704
+ return this.$appdata.getParam('安检状态') ? [{
705
+ label: '全部',
706
+ value: ''
707
+ }, ...this.$appdata.getParam('安检状态')] : [{ label: '全部', value: '' }]
708
+ },
709
+ usertypes() {
710
+ return this.$appdata.getParam('用户类型') ? [{
711
+ label: '全部',
712
+ value: ''
713
+ }, ...this.$appdata.getParam('用户类型')] : [{ label: '全部', value: '' }]
714
+ },
715
+ userstates() {
716
+ return this.$appdata.getParam('用户状态') ? [{
717
+ label: '全部',
718
+ value: ''
719
+ }, ...this.$appdata.getParam('用户状态')] : [{ label: '全部', value: '' }]
720
+ },
721
+ hiddenr() {
722
+ this.$parent.showItem = !this.$parent.showItem
723
+ },
724
+ hidden() {
725
+ this.criteriaShow = !this.criteriaShow
726
+ },
727
+ confirm() {
728
+ if (!this.checkboxModel.f_plan_name) {
729
+ this.$showMessage('请填写安检计划名称!')
730
+ return
731
+ }
732
+ // if(this.f_effective_start_time == ''){
733
+ // this.$showMessage('请选择有效起始日期!')
734
+ // return
735
+ // }
736
+ // if(this.f_effective_end_time == ''){
737
+ // this.$showMessage('请选择有效结束日期!')
738
+ // return
739
+ // }
740
+ if (this.IsShare == '否') {
741
+ if (!this.checkboxModel.f_checker_id) {
742
+ this.$showMessage('请选择安检员!')
743
+ return
744
+ }
745
+ }
746
+ let gen = saveGen(this)
747
+ return co(gen)
748
+ },
749
+ changeStates() {
750
+ if (this.checkedAll) {//实现反选/
751
+ this.checkrows = [];
752
+ for (let i = 0; i < this.$refs.paged.model.rows.length; i++) {
753
+ this.$set('$refs.paged.model.rows[' + i + '].checked', false)
754
+ }
755
+ } else {//实现全选
756
+ for (let i = 0; i < this.$refs.paged.model.rows.length; i++) {
757
+ this.$set('$refs.paged.model.rows[' + i + '].checked', true)
758
+ }
759
+ let _this = this
760
+ let condition = this.$refs.paged.$refs.criteria.condition
761
+ let url = this.model.url
762
+ this.$resetpost(`${url}?pageSize=9999999`, {
763
+ data: {
764
+ condition: condition,
765
+ groupitem: '',
766
+ orderitem: 'f_residential_area',
767
+ f_usertype: this.model.f_usertype,
768
+ f_filialeids: this.model.f_filialeids,
769
+ month: this.model.month,
770
+ safeCycle: this.model.safeCycle,
771
+ f_checktime_start: this.model.f_checktime_start,
772
+ f_checktime_end: this.model.f_checktime_end,
773
+ SafeCheckSX: this.model.SafeCheckSX,
774
+ f_last_check_state: this.model.f_last_check_state
775
+ },
776
+ }, { resolveMsg: null, rejectMsg: null }, -1).then(
777
+ (respanse) => {
778
+ if (respanse.data.length >= 5000) {
779
+ this.$showMessage("数据量太大,请重新选择")
780
+ } else {
781
+ _this.checkrows = []
782
+ for (let j = 0; j < respanse.data.length; j++) {
783
+ _this.checkrows.push(respanse.data[j])
784
+ }
785
+ //tag;
786
+ }
787
+ })
788
+ }
789
+ },
790
+ addChecked(item) {
791
+ //tag;
792
+ if (!item.checked) {
793
+ this.checkrows.push(item);
794
+ //tag;
795
+ } else {
796
+ for (let i = 0; i < this.checkrows.length; i++) {
797
+ if (item.f_userinfo_id == this.checkrows[i].f_userinfo_id) {
798
+ this.checkrows.splice(i, 1)
799
+ }
800
+ }
801
+ }
802
+ },
803
+ ToshowModal() {
804
+ this.creatPlanWay = 'single'
805
+ if (this.checkrows.length > 0) {
806
+ this.showModal = true
807
+ } else {
808
+ this.$showMessage("请选择需要安检的用户!")
809
+ }
810
+ },
811
+ FiltrationPlan() {
812
+ if (this.model.rows.length == 0) {
813
+ this.$showMessage("暂无可生成的计划!")
814
+ return
815
+ }
816
+ this.creatPlanWay = 'filtration'
817
+ this.showModal = true
818
+ },
819
+ AllPlan() {
820
+ if (this.model.rows.length == 0) {
821
+ this.$showMessage("暂无可生成的计划!")
822
+ return
823
+ }
824
+ this.creatPlanWay = 'all'
825
+ this.showModal = true
826
+ },
827
+ cancel() {
828
+ this.showModal = false
829
+ },
830
+ /*areas() {
831
+ let rs = []
832
+ for (let i = 0; i < this.$login.f.f_allArea.length; i++) {
833
+ let temp = {
834
+ label: this.$login.f.f_allArea[i].label,
835
+ value: this.$login.f.f_allArea[i].label
836
+ }
837
+ rs.push(temp)
838
+ }
839
+ return [{label: '全部', value: ''}, ...rs]
840
+ },*/
841
+ initAdjustables() {
842
+ //tag
843
+ let arr = []
844
+ let filter = this.$login.f.f_orgids
845
+ this.$GetSaleParam.getAdjustable(filter).forEach((item) => {
846
+ let temp = {}
847
+ temp.label = `[${item.value.f_adjustable_id}]-${item.label}`
848
+ temp.value = `${item.value.id}`
849
+ arr.push(temp)
850
+ })
851
+ this.adjustables = [{ label: '全部', value: '' }, ...arr]
852
+ },
853
+ getAllMeterBook(val) {
854
+ ////tag
855
+ ////tag
856
+ this.cbcs = []
857
+ if (val) {
858
+ new HttpResetClass().load('POST', `/rs/sql/tel_singleTable_OrderBy`, {
859
+ data: {
860
+ items: 'f_book_name,f_book_slice_area,id',
861
+ tablename: 't_meter_book',
862
+ condition: `f_filiale_id in ${val}`,
863
+ orderitem: 'id'
864
+ }
865
+ }, { resolveMsg: null, rejectMsg: null }).then((res) => {
866
+ res.data.forEach(ress => {
867
+ this.cbcs.push({
868
+ id: ress.id,
869
+ f_book_name: ress.f_book_name,
870
+ f_book_slice_area: ress.f_book_slice_area
871
+ })
872
+ })
873
+ this.cbc = []
874
+ this.cbc.push({
875
+ label: '全部',
876
+ value: ''
877
+ })
878
+ this.cbcs.forEach(res => {
879
+ this.cbc.push({
880
+ label: res.f_book_name,
881
+ value: res.id
882
+ })
883
+ })
884
+ })
885
+ }
886
+ },
887
+ getRes(obj) {
888
+ this.model.f_filialeids = this.$login.convertToIn(obj.resids);
889
+ this.Mreadibook(this.model.f_filialeids)
890
+ this.getAllMeterBook(this.model.f_filialeids)
891
+ this.getPcd(this.model.f_filialeids)
892
+ }
893
+ },
894
+
895
+ watch: {
896
+ 'model.f_usertype'(val) {
897
+ if (val == '民用') {
898
+ this.model.safeCycle = this.civil
899
+ } else if (val == '非民用') {
900
+ this.model.safeCycle = this.civilian
901
+ }
902
+ },
903
+ 'model.SafeCheckXZ'(val) {
904
+ this.model.SafeCheckSC = ''
905
+ if (val == '已安检') {
906
+ this.model.SafeCheckCQ = ''
907
+ this.model.SafeCheckSX = {
908
+ f_check_end: '', // 安检时间 查询起始条件
909
+ f_check_start: ''// 安检时间 查询终止条件
910
+ }
911
+ } else {
912
+ // 当使用筛选条件时,清空不需要的条件选项
913
+ this.model.f_issue_start = ''
914
+ this.model.f_issue_end = ''
915
+ this.$refs.paged.$refs.criteria.model.f_check_start = ''
916
+ this.$refs.paged.$refs.criteria.model.f_check_end = ''
917
+ this.$refs.paged.$refs.criteria.model.f_last_check_state = ''
918
+ this.model.month = ''
919
+ if (val == '应安检') {
920
+ this.model.SafeCheckSC = '否'
921
+
922
+ this.model.f_issue_start = Util.toStartDateString()
923
+ this.model.f_issue_end = Util.toStandardDateString()
924
+ }
925
+ // this.model.f_checktime_start = ''
926
+ // this.model.f_checktime_end = ''
927
+ }
928
+ },
929
+ 'model.SafeCheckSC'(val) {
930
+ if (val == '') {
931
+ this.model.f_issue_start = ''
932
+ this.model.f_issue_end = ''
933
+ }
934
+ },
935
+ // 'checker'(val){
936
+ // //tag
937
+ // if(val){
938
+ // this.checkboxModel.f_checker = this.checker[0].name
939
+ // this.checkboxModel.f_checker_id = this.checker[0].id
940
+ // }
941
+ // },
942
+ 'model.rows'() {
943
+ // if (!this.checkedAll) {//实现反选/
944
+ // this.checkrows = [];
945
+ for (let i = 0; i < this.$refs.paged.model.rows.length; i++) {
946
+ var k = false
947
+ for (let j = 0; j < this.checkrows.length; j++) {
948
+ if (this.$refs.paged.model.rows[i].f_userinfo_id == this.checkrows[j].f_userinfo_id) {
949
+ this.$set('$refs.paged.model.rows[' + i + '].checked', true)
950
+ k = true
951
+ continue
952
+ }
953
+ }
954
+ if (!k) {
955
+ this.$set('$refs.paged.model.rows[' + i + '].checked', false)
956
+ }
957
+ }
958
+ // } else {//实现全选
959
+ // // this.checkboxModel = {};
960
+ // for (let i = 0; i < this.$refs.paged.model.rows.length; i++) {
961
+ // this.$set('$refs.paged.model.rows[' + i + '].checked', true)
962
+ // }
963
+ // }
964
+ }
965
+ },
966
+ computed: {
967
+ selected() {
968
+ return this.$refs.paged.$refs.grid.selected
969
+ }
970
+ }
971
+ }
972
+ </script>
973
+ <style scoped>
974
+ .newcolor {
975
+ color: red;
976
+ }
977
+
978
+ .table th {
979
+ background-color: #f2f6fa;
980
+ color: black;
981
+ }
982
+ </style>