safecheck-client 3.0.34-62 → 3.0.34-65

Sign up to get free protection for your applications and to get access to all the features.
Files changed (260) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/android.html +18 -18
  4. package/config/dev.env.js +6 -6
  5. package/config/index.js +38 -38
  6. package/config/prod.env.js +3 -3
  7. package/config/test.env.js +6 -6
  8. package/docs/AppBase.md +22 -22
  9. package/docs/Busy.md +14 -14
  10. package/docs/CriteriaPaged.md +47 -47
  11. package/docs/DataGrid.md +54 -54
  12. package/docs/DataModel.md +22 -22
  13. package/docs/Dynamic.md +42 -42
  14. package/docs/GetParams.md +11 -11
  15. package/docs/HttpBusy.md +13 -13
  16. package/docs/HttpStore.md +29 -29
  17. package/docs/MessageBox.md +28 -28
  18. package/docs/PagedList.md +29 -29
  19. package/docs/Pager.md +21 -21
  20. package/docs/Project.md +23 -23
  21. package/docs/Route.md +105 -105
  22. package/docs/SafetyCheck/AdjustPlan.md +13 -13
  23. package/docs/SafetyCheck/CheckerPlan.md +12 -12
  24. package/docs/Task.md +46 -46
  25. package/docs/TreeList.md +28 -28
  26. package/docs/TreeMixin.md +18 -18
  27. package/docs/all.md +10 -10
  28. package/docs/list.md +42 -42
  29. package/docs/partial.md +75 -75
  30. package/docs/selector.md +82 -82
  31. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/Snippets.md +28 -28
  32. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/vue-strap/345/217/230/346/233/264/350/256/260/345/275/225.md +7 -7
  33. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/vue/345/217/230/346/233/264/350/256/260/345/275/225.md +13 -13
  34. package/docs//345/274/200/345/217/221/346/226/207/346/241/243//345/274/200/345/217/221/347/216/257/345/242/203/350/256/276/347/275/256.md +77 -77
  35. package/docs//347/225/214/351/235/242/345/210/266/344/275/234/350/247/204/350/214/203.md +54 -54
  36. package/examples/AddressList/App.vue +13 -13
  37. package/examples/AddressList/index.html +11 -11
  38. package/examples/DispatchList/App.vue +10 -10
  39. package/examples/DispatchList/BaseTree.vue +13 -13
  40. package/examples/DispatchList/Init.vue +22 -22
  41. package/examples/DispatchList/Test.vue +20 -20
  42. package/examples/DispatchList/index.html +11 -11
  43. package/examples/DispatchList/main.js +18 -18
  44. package/home.html +16 -16
  45. package/package.json +1 -1
  46. package/publish.bat +7 -7
  47. package/release.bat +5 -5
  48. package/src/Widget.vue +13 -13
  49. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  50. package/src/android-bootstrap/less/.csscomb.json +304 -304
  51. package/src/android-bootstrap/less/.csslintrc +19 -19
  52. package/src/android-bootstrap/less/alerts.less +73 -73
  53. package/src/android-bootstrap/less/badges.less +66 -66
  54. package/src/android-bootstrap/less/bootstrap.less +56 -56
  55. package/src/android-bootstrap/less/breadcrumbs.less +26 -26
  56. package/src/android-bootstrap/less/button-groups.less +247 -247
  57. package/src/android-bootstrap/less/buttons.less +173 -173
  58. package/src/android-bootstrap/less/carousel.less +269 -269
  59. package/src/android-bootstrap/less/close.less +34 -34
  60. package/src/android-bootstrap/less/code.less +69 -69
  61. package/src/android-bootstrap/less/component-animations.less +33 -33
  62. package/src/android-bootstrap/less/grid.less +84 -84
  63. package/src/android-bootstrap/less/input-groups.less +167 -167
  64. package/src/android-bootstrap/less/jumbotron.less +52 -52
  65. package/src/android-bootstrap/less/labels.less +64 -64
  66. package/src/android-bootstrap/less/list-group.less +141 -141
  67. package/src/android-bootstrap/less/media.less +66 -66
  68. package/src/android-bootstrap/less/mixins/alerts.less +14 -14
  69. package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
  70. package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
  71. package/src/android-bootstrap/less/mixins/buttons.less +69 -69
  72. package/src/android-bootstrap/less/mixins/center-block.less +7 -7
  73. package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
  74. package/src/android-bootstrap/less/mixins/forms.less +90 -90
  75. package/src/android-bootstrap/less/mixins/gradients.less +59 -59
  76. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
  77. package/src/android-bootstrap/less/mixins/grid.less +122 -122
  78. package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
  79. package/src/android-bootstrap/less/mixins/image.less +33 -33
  80. package/src/android-bootstrap/less/mixins/labels.less +12 -12
  81. package/src/android-bootstrap/less/mixins/list-group.less +30 -30
  82. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
  83. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
  84. package/src/android-bootstrap/less/mixins/opacity.less +8 -8
  85. package/src/android-bootstrap/less/mixins/pagination.less +24 -24
  86. package/src/android-bootstrap/less/mixins/panels.less +24 -24
  87. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
  88. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
  89. package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
  90. package/src/android-bootstrap/less/mixins/resize.less +6 -6
  91. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
  92. package/src/android-bootstrap/less/mixins/size.less +10 -10
  93. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
  94. package/src/android-bootstrap/less/mixins/table-row.less +44 -44
  95. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
  96. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
  97. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
  98. package/src/android-bootstrap/less/mixins.less +40 -40
  99. package/src/android-bootstrap/less/modals.less +151 -151
  100. package/src/android-bootstrap/less/navbar.less +660 -660
  101. package/src/android-bootstrap/less/navs.less +290 -290
  102. package/src/android-bootstrap/less/normalize.less +424 -424
  103. package/src/android-bootstrap/less/pager.less +76 -76
  104. package/src/android-bootstrap/less/pagination.less +89 -89
  105. package/src/android-bootstrap/less/panels.less +274 -274
  106. package/src/android-bootstrap/less/popovers.less +131 -131
  107. package/src/android-bootstrap/less/print.less +101 -101
  108. package/src/android-bootstrap/less/progress-bars.less +87 -87
  109. package/src/android-bootstrap/less/responsive-embed.less +35 -35
  110. package/src/android-bootstrap/less/responsive-utilities.less +194 -194
  111. package/src/android-bootstrap/less/scaffolding.less +161 -161
  112. package/src/android-bootstrap/less/tables.less +262 -262
  113. package/src/android-bootstrap/less/theme.less +291 -291
  114. package/src/android-bootstrap/less/thumbnails.less +36 -36
  115. package/src/android-bootstrap/less/tooltip.less +102 -102
  116. package/src/android-bootstrap/less/type.less +303 -303
  117. package/src/android-bootstrap/less/utilities.less +55 -55
  118. package/src/android-bootstrap/less/variables.less +896 -896
  119. package/src/android-bootstrap/less/wells.less +29 -29
  120. package/src/androidTest.js +20 -20
  121. package/src/bootstrap/less/.csscomb.json +304 -304
  122. package/src/bootstrap/less/.csslintrc +19 -19
  123. package/src/bootstrap/less/alerts.less +73 -73
  124. package/src/bootstrap/less/badges.less +66 -66
  125. package/src/bootstrap/less/breadcrumbs.less +26 -26
  126. package/src/bootstrap/less/button-groups.less +247 -247
  127. package/src/bootstrap/less/buttons.less +172 -172
  128. package/src/bootstrap/less/carousel.less +269 -269
  129. package/src/bootstrap/less/close.less +34 -34
  130. package/src/bootstrap/less/code.less +69 -69
  131. package/src/bootstrap/less/component-animations.less +33 -33
  132. package/src/bootstrap/less/dropdowns.less +216 -216
  133. package/src/bootstrap/less/forms.less +626 -626
  134. package/src/bootstrap/less/grid.less +84 -84
  135. package/src/bootstrap/less/input-groups.less +167 -167
  136. package/src/bootstrap/less/jumbotron.less +52 -52
  137. package/src/bootstrap/less/labels.less +64 -64
  138. package/src/bootstrap/less/list-group.less +141 -141
  139. package/src/bootstrap/less/media.less +66 -66
  140. package/src/bootstrap/less/mixins/alerts.less +14 -14
  141. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  142. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  143. package/src/bootstrap/less/mixins/buttons.less +69 -69
  144. package/src/bootstrap/less/mixins/center-block.less +7 -7
  145. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  146. package/src/bootstrap/less/mixins/forms.less +90 -90
  147. package/src/bootstrap/less/mixins/gradients.less +59 -59
  148. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  149. package/src/bootstrap/less/mixins/grid.less +122 -122
  150. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  151. package/src/bootstrap/less/mixins/image.less +33 -33
  152. package/src/bootstrap/less/mixins/labels.less +12 -12
  153. package/src/bootstrap/less/mixins/list-group.less +30 -30
  154. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  155. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  156. package/src/bootstrap/less/mixins/opacity.less +8 -8
  157. package/src/bootstrap/less/mixins/pagination.less +24 -24
  158. package/src/bootstrap/less/mixins/panels.less +24 -24
  159. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  160. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  161. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  162. package/src/bootstrap/less/mixins/resize.less +6 -6
  163. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  164. package/src/bootstrap/less/mixins/size.less +10 -10
  165. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  166. package/src/bootstrap/less/mixins/table-row.less +44 -44
  167. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  168. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  169. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  170. package/src/bootstrap/less/mixins.less +40 -40
  171. package/src/bootstrap/less/modals.less +151 -151
  172. package/src/bootstrap/less/navbar.less +660 -660
  173. package/src/bootstrap/less/normalize.less +424 -424
  174. package/src/bootstrap/less/pager.less +76 -76
  175. package/src/bootstrap/less/pagination.less +89 -89
  176. package/src/bootstrap/less/panels.less +275 -275
  177. package/src/bootstrap/less/popovers.less +131 -131
  178. package/src/bootstrap/less/print.less +101 -101
  179. package/src/bootstrap/less/progress-bars.less +87 -87
  180. package/src/bootstrap/less/responsive-embed.less +35 -35
  181. package/src/bootstrap/less/responsive-utilities.less +194 -194
  182. package/src/bootstrap/less/scaffolding.less +161 -161
  183. package/src/bootstrap/less/theme.less +291 -291
  184. package/src/bootstrap/less/thumbnails.less +36 -36
  185. package/src/bootstrap/less/tooltip.less +102 -102
  186. package/src/bootstrap/less/type.less +303 -303
  187. package/src/bootstrap/less/utilities.less +55 -55
  188. package/src/bootstrap/less/wells.less +29 -29
  189. package/src/components/FileUpload.vue +696 -696
  190. package/src/components/Hello.vue +39 -39
  191. package/src/components/LeftTree.vue +27 -27
  192. package/src/components/NewDefectList/DefectListNew.vue +617 -617
  193. package/src/components/android/AddressList.vue +61 -61
  194. package/src/components/android/AreaSelect.vue +198 -208
  195. package/src/components/android/AttendanceTally.vue +116 -116
  196. package/src/components/android/Blank.vue +10 -10
  197. package/src/components/android/BuildingSelect.vue +192 -217
  198. package/src/components/android/CheckPlanSelect.vue +229 -248
  199. package/src/components/android/CheckUnplanPage.vue +56 -56
  200. package/src/components/android/Checker.vue +12 -12
  201. package/src/components/android/CheckerAnnual.vue +81 -81
  202. package/src/components/android/CheckerAvarta.vue +82 -82
  203. package/src/components/android/EquipmentInspection.vue +348 -348
  204. package/src/components/android/FootprintMap.vue +120 -120
  205. package/src/components/android/HiddentroubleInvestigation.vue +192 -192
  206. package/src/components/android/MasterMain.vue +77 -77
  207. package/src/components/android/Menu.vue +132 -132
  208. package/src/components/android/NavBottom.vue +157 -157
  209. package/src/components/android/PaperAlarm.vue +85 -85
  210. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  211. package/src/components/android/PlumberAnnual.vue +83 -83
  212. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  213. package/src/components/android/PlumberMonthly.vue +84 -84
  214. package/src/components/android/PostMap.vue +83 -83
  215. package/src/components/android/QueryCheckHistory.vue +122 -122
  216. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  217. package/src/components/android/RepairMain.vue +60 -60
  218. package/src/components/android/Repairman.vue +12 -12
  219. package/src/components/android/SafecheckDevices.vue +1298 -1298
  220. package/src/components/android/SafecheckOrderV.vue +2805 -2805
  221. package/src/components/android/StationMaster.vue +12 -12
  222. package/src/components/android/UserinfoSelect.vue +672 -0
  223. package/src/components/defects/DefectModal.vue +101 -101
  224. package/src/components/defects/DevicesAndItem.vue +39 -39
  225. package/src/components/issueplan/IssuePlanMain.vue +23 -23
  226. package/src/components/notice/NoticeForm.vue +100 -100
  227. package/src/components/notice/NoticeIssue.vue +20 -20
  228. package/src/components/paper/PicViewer.vue +18 -18
  229. package/src/components/phonestate/MonthlyTraffic.vue +66 -66
  230. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  231. package/src/components/phonestate/PostMap.vue +82 -82
  232. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  233. package/src/components/userfile/MeterFile.vue +145 -145
  234. package/src/components/userfile/MeterModify.vue +46 -46
  235. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  236. package/src/filiale/baiyin/android/AndroidDefectDeal.vue +633 -633
  237. package/src/filiale/baiyin/android/SafecheckOrderV.vue +2785 -2785
  238. package/src/filiale/baiyin/pc/CheckSearchUser.vue +1067 -1067
  239. package/src/filiale/baiyin/pc/DefectListNew.vue +597 -597
  240. package/src/filiale/baiyin/pc/PaperList.vue +790 -790
  241. package/src/filiale/jiaxian/android/SafecheckDevices.vue +1298 -1298
  242. package/src/filiale/jiaxian/android/SafecheckOrderV.vue +2807 -2807
  243. package/src/filiale/shanxian/pc/checkUserList.vue +700 -700
  244. package/src/filiale/tongchuan/pc/PaperDefectMain.vue +1060 -1060
  245. package/src/filiale/weinan/pc/CheckBookSearchUserList.vue +735 -735
  246. package/src/filiale/weinan/pc/CheckDetail.vue +278 -278
  247. package/src/filiale/weinan/pc/checkUserList.vue +712 -712
  248. package/src/plugins/LoadData.js +10 -10
  249. package/src/plugins/LoadParams.js +24 -24
  250. package/src/safecheck-android.js +304 -303
  251. package/src/stores/wxconfig.js +10 -10
  252. package/src/utils/getNowDate.js +33 -33
  253. package/test/e2e/custom-assertions/elementCount.js +26 -26
  254. package/test/e2e/nightwatch.conf.js +40 -40
  255. package/test/e2e/runner.js +30 -30
  256. package/test/e2e/specs/test.js +13 -13
  257. package/test/unit/.eslintrc +5 -5
  258. package/test/unit/TestUtil.js +62 -62
  259. package/test/unit/context.html +20 -20
  260. package/test/unit/index.js +13 -13
@@ -0,0 +1,672 @@
1
+ <style scoped>
2
+ .app-row {
3
+ background-color: white;
4
+ padding: 10px 10px 0 10px;
5
+ border-bottom: 1px solid rgba(235, 235, 235, 0.5);
6
+ }
7
+
8
+ .search_input {
9
+ border: 0;
10
+ outline: none;
11
+ }
12
+
13
+ .font {
14
+ font: 15px PingFang-SC-Medium;
15
+ color: #666666;
16
+ }
17
+
18
+ .input-font {
19
+ font: 15px PingFang-SC-Medium;
20
+ color: #333333;
21
+ }
22
+
23
+ .btn-font {
24
+ font: 600 16px PingFang-SC-Bold;
25
+ color: #499EDF;
26
+ }
27
+
28
+ .btn-color {
29
+ background-color: #FFFFFF;
30
+ border-radius: 10px;
31
+ border: 1px solid #499EDF;
32
+ }
33
+
34
+ .app-text {
35
+ font-size: 12px;
36
+ }
37
+
38
+ .panel-self {
39
+ border-radius: 10px;
40
+ border: 1px solid #499EDF;
41
+ background-color: #F8F8F8;
42
+ }
43
+
44
+ .button_shrink_top {
45
+ width: 35px;
46
+ height: 35px;
47
+ background-size: 100%;
48
+ background-image: url("../../../static/newStyle/stretch_top.png")
49
+ }
50
+
51
+ .button_shrink_bottom {
52
+ width: 35px;
53
+ height: 35px;
54
+ background-size: 100%;
55
+ background-image: url("../../../static/newStyle/stretch_bottom.png")
56
+ }
57
+ </style>
58
+ <template>
59
+ <div style="height: auto;width: 100%">
60
+ <criteria-paged :model="model" v-ref:paged>
61
+ <criteria partial='criteria' @condition-changed='search' v-ref:cri>
62
+ <div partial>
63
+ <form>
64
+ <div class="row app-row">
65
+ <div class="col-xs-4">
66
+ <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
67
+ <label for="f_userinfo_code" class="font text-left">用户编号:</label>
68
+ </div>
69
+ <div class="col-xs-8">
70
+ <input id="f_userinfo_code" class="search_input input-font"
71
+ v-model=model.f_userinfo_code condition="f_userinfo_code like '%{}%'" />
72
+ </div>
73
+ </div>
74
+ <div class="row app-row">
75
+ <div class="col-xs-4">
76
+ <img src="../../assets/用户姓名.png" style="width: 20px;margin-bottom: 5px" alt="">
77
+ <label class="font text-left">用户姓名:</label>
78
+ </div>
79
+ <div class="col-xs-8">
80
+ <input class="search_input input-font" v-model=model.f_user_name
81
+ condition="f_user_name like '%{}%'" />
82
+ </div>
83
+ </div>
84
+
85
+ <div class="row app-row">
86
+ <div class="col-xs-4">
87
+ <img src="../../assets/安检状态.png" style="width: 20px;margin-bottom: 5px" alt="">
88
+ <label class="font text-left">用户证号:</label>
89
+ </div>
90
+ <div class="col-xs-8">
91
+ <input class="search_input input-font" v-model=model.f_enter_number
92
+ condition="f_enter_number like '%{}%'" />
93
+ </div>
94
+ </div>
95
+ <div class="row app-row" v-if="$parent.$parent.criteriaShow">
96
+ <div class="col-xs-4">
97
+ <img src="../../assets/是否已检.png" style="width: 20px;margin-bottom: 5px" alt="">
98
+ <label for="f_state" class="font text-left">是否已检:</label>
99
+ </div>
100
+ <v-select id="f_state" :value.sync="model.f_state" class="input-font"
101
+ :options='$parent.$parent.check_states' placeholder='是否已检' :width="'60%'"
102
+ v-model="model.f_state" condition="f_state='{}'" close-on-select clear-button>
103
+ </v-select>
104
+ </div>
105
+ <div class="row app-row" v-if="$parent.$parent.criteriaShow">
106
+ <div class="col-xs-4">
107
+ <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
108
+ <label class="font text-left">表&emsp;&emsp;号:</label>
109
+ </div>
110
+ <div class="col-xs-5">
111
+ <input class="search_input input-font" v-model=model.f_meter_no
112
+ condition="f_meter_no like '%{}%'" />
113
+ </div>
114
+ <div class="col-xs-3">
115
+ <button type="button" class="btn btn-lg btn-font btn-color"
116
+ @click="$parent.$parent.scan()">扫码</button>
117
+ </div>
118
+ </div>
119
+ <div class="row app-row" v-if="$parent.$parent.criteriaShow">
120
+ <div class="col-xs-4">
121
+ <img src="../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
122
+ <label class="font text-left">客户电话:</label>
123
+ </div>
124
+ <div class="col-xs-8">
125
+ <input class="search_input input-font" v-model=model.f_user_phone
126
+ condition="f_user_phone like '%{}%'" />
127
+ </div>
128
+ </div>
129
+
130
+ <div class="row app-row" v-if="$parent.$parent.criteriaShow">
131
+ <div class="col-xs-4">
132
+ <img src="../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
133
+ <label class="font text-left">用户地址:</label>
134
+ </div>
135
+ <div class="col-xs-8">
136
+ <input class="search_input input-font" v-model=model.f_keyword
137
+ condition="f_address like '%{}%'" />
138
+ </div>
139
+ </div>
140
+ <div class="row app-row" v-if="$parent.$parent.criteriaShow">
141
+ <div class="col-xs-4">
142
+ <img src="../../assets/用户类型.png" style="width: 20px;margin-bottom: 5px" alt="">
143
+ <label for="f_user_type" class="font text-left">用户类型:</label>
144
+ </div>
145
+ <v-select id="f_user_type" :value.sync="model.f_user_type" class="input-font" :width="'60%'"
146
+ :options='$parent.$parent.user_types' placeholder='请选择用户类型' v-model="model.f_user_type"
147
+ condition="f_user_type='{}'" close-on-select clear-button></v-select>
148
+ </div>
149
+ <div class="row app-row" v-if="$parent.$parent.criteriaShow">
150
+ <div class="col-xs-6">
151
+ <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
152
+ <label class="font text-left">到访不遇:</label>
153
+ </div>
154
+ <div class="col-xs-8">
155
+ <input class="search_input input-font" type="number" v-model=model.f_check_version
156
+ condition="f_check_version <= '{}'" />
157
+ </div>
158
+ </div>
159
+ <div class="row text-center" style="margin-top: 20px;">
160
+ <button type="button" class="btn btn-lg btn-font btn-color" style="width: 25%;"
161
+ @click="$parent.$parent.selfSearch">查询</button>
162
+ <div style="float: right;margin-right: 3% " class="button_spacing"
163
+ :class="{ 'button_shrink_top': $parent.$parent.criteriaShow, 'button_shrink_bottom': !$parent.$parent.criteriaShow }"
164
+ @click="$parent.$parent.hidden()"></div>
165
+ <img v-if="!$parent.$parent.planName" style="float: right;margin-right: 3% "
166
+ @click="$parent.$parent.getNewOrder" src="../../assets/shuaxindaiban1.png"
167
+ style="width: 40px;padding: 5px; float:right">
168
+ </div>
169
+ <div class="col-sm-12">
170
+
171
+ </div>
172
+ <div style="height:30px;"></div>
173
+ </form>
174
+ </div>
175
+ </criteria>
176
+ <list :model="model" partial='list'>
177
+ <div partial>
178
+ <div class="auto app-text" style="margin-top: 5px;">
179
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
180
+ <div class="panel-body panel-self">
181
+ <div class="col-xs-12">
182
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left">
183
+ <b>用户编号:</b></p>
184
+ <p class="panel-title col-xs-5 text-left input-font" style="width: 74%">{{
185
+ row.f_userinfo_code }}</p>
186
+ <p class="panel-title col-xs-2 text-left input-font" style="width: 5%;float:right">
187
+ <input type="checkbox"
188
+ @click="$parent.$parent.$parent.setPlanParam(row.id, $event)" />
189
+ </p>
190
+ </div>
191
+ <div class="col-xs-12">
192
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left">
193
+ <b>用户名称:</b></p>
194
+ <p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{
195
+ row.f_user_name }}</p>
196
+ </div>
197
+ <div class="col-xs-6">
198
+ <p class="panel-title col-xs-5 text-left font"><b>用户类型:</b></p>
199
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_user_type }}
200
+ </p>
201
+ </div>
202
+ <div class="col-xs-6">
203
+ <p class="panel-title col-xs-5 text-left font"><b>计划名称:</b></p>
204
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_plan_name }}</p>
205
+ </div>
206
+ <div class="col-xs-12">
207
+ <p class="panel-title text-left font" style="width: 23%;float: left"><b>用户电话:</b>
208
+ </p>
209
+ <p class="panel-title text-left input-font" style="width: 77%">{{ row.f_user_phone
210
+ }}
211
+ <img src="../../assets/phone.png" style="width: 6%"
212
+ v-on:click.stop.prevent='$parent.$parent.$parent.makeAPhoneCall(row.f_user_phone)' />
213
+ </p>
214
+ </div>
215
+ <div class="col-xs-12">
216
+ <p class="panel-title text-left font" style="width: 23%;float: left"><b>备用电话:</b>
217
+ </p>
218
+ <p class="panel-title text-left input-font" style="width: 77%">{{ row.f_rent_phone }}
219
+ <img v-if="row.f_rent_phone" src="../../assets/phone.png" style="width: 6%"
220
+ v-on:click.stop.prevent='$parent.$parent.$parent.makeAPhoneCall(row.f_rent_phone)' />
221
+ </p>
222
+ </div>
223
+ <div class="col-xs-12">
224
+ <p class="panel-title text-left font" style="width: 23%;float: left"><b>租户电话:</b>
225
+ </p>
226
+ <p class="panel-title text-left input-font" style="width: 77%">{{ row.f_zuhu_phone
227
+ }}
228
+ <img v-if="row.f_zuhu_phone" src="../../assets/phone.png" style="width: 6%"
229
+ v-on:click.stop.prevent='$parent.$parent.$parent.makeAPhoneCall(row.f_zuhu_phone)' />
230
+ </p>
231
+ </div>
232
+ <div class="col-xs-12">
233
+ <p class="panel-title text-left font" style="width: 21%;float: left"><b>用户地址:</b>
234
+ </p>
235
+ <p class="panel-title text-left input-font" style="width: 79%">{{ row.f_address }}
236
+ </p>
237
+ </div>
238
+ <div class="col-xs-6">
239
+ <p class="panel-title col-xs-5 text-left font"><b>安检状态:</b></p>
240
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_state ==
241
+ '已检'?'临时保存':row.f_state }}</p>
242
+ </div>
243
+ <div class="col-xs-6">
244
+ <p class="panel-title col-xs-5 text-left font"><b>上传状态:</b></p>
245
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_upload_state }}</p>
246
+ </div>
247
+ <div class="col-xs-12" v-if="row.f_prearranged_date != null">
248
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left">
249
+ <b>预约时间:</b></p>
250
+ <p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{
251
+ row.f_prearranged_date }}</p>
252
+ </div>
253
+ <div class="col-xs-6">
254
+ <p class="panel-title col-xs-5 text-left font"><b>安检类型:</b></p>
255
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_safecheck_type }}</p>
256
+ </div>
257
+ <div class="col-xs-12">
258
+ <p class="panel-title col-xs-5 text-left font"><b>到访不遇次数:</b></p>
259
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_check_version }}</p>
260
+ </div>
261
+ <div class="col-xs-12">
262
+ <button type="button" name="button" class="btn btn-primary"
263
+ style="background-color:#499edf;float: right"
264
+ @click="$parent.$parent.$parent.inspect(row)">处理</button>
265
+ </div>
266
+ </div>
267
+ </div>
268
+ </div>
269
+ </div>
270
+ </list>
271
+ </criteria-paged>
272
+ </div>
273
+ </template>
274
+
275
+ <script>
276
+ import LocalPagedList from '../../plugins/LocalPagedList'
277
+ import Vue from 'vue'
278
+ import { PagedList, HttpResetClass } from 'vue-client'
279
+ import * as Util from '../Util'
280
+ import co from 'co'
281
+ let select = function* (self) {
282
+ let http = new HttpResetClass()
283
+ http.load('POST', `${self.$androidUtil.getProxyUrl()}/rs/search`, {
284
+ source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))',
285
+ userid: Vue.user.id
286
+ }, { resolveMsg: null, rejectMsg: null }).then((res) => {
287
+ self.checkers.push({ label: '全部', value: '' })
288
+ res.data.forEach((checker) => {
289
+ self.checkers.push({ label: checker.name, value: checker.id })
290
+ })
291
+ })
292
+ }
293
+ export default {
294
+ title: 'userinfo-select',
295
+ props: ['row'],
296
+ data() {
297
+ return {
298
+ f_filialeids: '(' + Vue.user.orgid + ')',
299
+ planparam: [],
300
+ check: '',
301
+ plan: '',
302
+ planid: '',
303
+ model: Vue.android ? new LocalPagedList('androidGetuserinfo', 20, { condition: 'this.condition' }) : new PagedList('AndroidRest/rs/sql/androidGetuserinfo', 20, { condition: 'this.condition' }),
304
+ showModal: false,
305
+ showModal2: false,
306
+ showModal3: false,
307
+ needid: '',
308
+ criteriaShow: false,
309
+ planoption: [],
310
+ condition: '',
311
+ checkers: [],
312
+ param: null,
313
+ f_preset_dt: Util.to3339TimeString(),
314
+ flow_direction: [
315
+ { label: '请选择挂表方式', value: '' },
316
+ { label: '左表', value: '左表' },
317
+ { label: '右表', value: '右表' }
318
+ ],
319
+ check_states: [
320
+ { label: '请选择安检状态', value: '' },
321
+ { label: '未检', value: '未检' },
322
+ { label: '临时保存', value: '已检' },
323
+ ],
324
+ last_check_states: [
325
+ { label: '请选择上次安检状态', value: '' },
326
+ { label: '入户', value: '入户' },
327
+ { label: '拒检', value: '拒检' },
328
+ { label: '到访不遇', value: '到访不遇' },
329
+ { label: '未使用天然气', value: '未使用天然气' }
330
+ ],
331
+ upload_states: [
332
+ { label: '请选择上传状态', value: '' },
333
+ { label: '未传', value: '未传' },
334
+ { label: '已传', value: '已传' }
335
+ ],
336
+ user_types: [
337
+ { label: '请选择用户类型', value: '' },
338
+ { label: '民用', value: '民用' },
339
+ { label: '非民用', value: '非民用' },
340
+ ],
341
+ verify_state: [
342
+ { label: '请选择审核状态', value: '' },
343
+ { label: '未审核', value: '未审核' },
344
+ { label: '打回', value: '打回' }
345
+ ],
346
+ residentialAreaOptions: [],
347
+ buildOptions: [],
348
+ unitOptions: [],
349
+ planNameOptions: [],
350
+ upcomingCount: 0,
351
+ doneCount: 0,
352
+ tempSaveCount: 0,
353
+ allPlanCount: 0
354
+ }
355
+ },
356
+ ready() {
357
+ this.selfSearch()
358
+ let gen = select(this)
359
+ co(gen)
360
+ },
361
+ mounted() {
362
+ if (window.history && window.history.pushState) {
363
+ history.pushState(null, null, document.URL);
364
+ window.addEventListener('popstate', this.fun, false)
365
+ }
366
+ },
367
+ destroyed() {
368
+ window.removeEventListener('popstate', this.fun, false)
369
+ },
370
+ methods: {
371
+ scan() {
372
+ HostApp.__this__ = this,
373
+ HostApp.scanCode({ callback: "javascript:HostApp.__this__.getCode();" })
374
+ },
375
+ getCode() {
376
+ const datapa = HostApp.getCode().data;
377
+ this.$refs.paged.$refs.cri.model.f_meter_no = datapa
378
+
379
+ },
380
+ fun() {
381
+
382
+ },
383
+ iscancel() {
384
+ this.showModal2 = false
385
+ this.showModal3 = false
386
+ this.planoption = []
387
+ },
388
+ timeSet(val) {
389
+ return val
390
+ },
391
+ async isok() {
392
+ if (this.planoption.length == 0) {
393
+ this.$showMessage("请选择计划")
394
+ return false
395
+ }
396
+ for (let i = 0; i < this.planoption.length; i++) {
397
+ if (this.planoption[i]["selected"] == true) {
398
+ this.planid = this.planoption[i].value
399
+ break
400
+ }
401
+ }
402
+ if (this.planid == '') {
403
+ this.$showMessage("请选择计划")
404
+ return false
405
+ }
406
+ await this.okput()
407
+ },
408
+ async manyisok() {
409
+ if (this.planoption.length == 0) {
410
+ this.$showMessage("请选择计划")
411
+ return false
412
+ }
413
+ for (let i = 0; i < this.planoption.length; i++) {
414
+ if (this.planoption[i]["selected"] == true) {
415
+ this.planid = this.planoption[i].value
416
+ break
417
+ }
418
+ }
419
+ if (this.planid == '') {
420
+ this.$showMessage("请选择计划")
421
+ return false
422
+ }
423
+ await this.manyokput()
424
+ },
425
+ changenull() {
426
+ this.showModal2 = false
427
+ this.showModal3 = false
428
+ this.planoption = []
429
+ this.plan = ''
430
+ this.check = ''
431
+ },
432
+ async okput() {
433
+ let res = await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/logic/UpCheckPlanItem`, {
434
+ data: {
435
+ condition: `i.id='` + this.needid + `'`,
436
+ f_plan_id: this.planid,
437
+ switchCheckAll: false,
438
+ checkAll: false,
439
+ f_operator: Vue.user.name
440
+ }
441
+ })
442
+ this.$showMessage("上传成功,请等待审核")
443
+ await this.changenull()
444
+ await this.getNewOrder()
445
+ },
446
+ async manyokput() {
447
+ let res = await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/logic/UpCheckPlanItem`, {
448
+ data: {
449
+ columnName: "i.id",
450
+ condition: "1=1",
451
+ f_plan_id: this.planid,
452
+ switchCheckAll: true,
453
+ param: this.planparam,
454
+ checkAll: false,
455
+ f_operator: Vue.user.name
456
+ }
457
+ })
458
+ await this.changenull()
459
+ await this.getNewOrder()
460
+ },
461
+ async plansearch() {
462
+ this.planoption = []
463
+ let condition = ` f_plan_year=${new Date().getFullYear()}`
464
+ if (this.check) {
465
+ condition += ` and f_checker_id= '${this.check}'`
466
+ }
467
+ if (this.plan) {
468
+ condition += ` and f_plan_name like '%${this.plan}%'`
469
+ }
470
+ let res = await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/预约计划下发`, {
471
+ data: {
472
+ condition: condition,
473
+ f_filialeids: this.f_filialeids,
474
+ groupitem: '',
475
+ orderitem: 'id'
476
+ }
477
+ })
478
+ let resoult = res.data
479
+ for (let i = 0; i < resoult.length; i++) {
480
+ this.planoption.push({ label: resoult[i].f_plan_name, selected: false, value: resoult[i].id })
481
+ }
482
+ },
483
+
484
+ select(row, idx) {
485
+ this.$set('planoption[' + idx + '].selected', true)
486
+ for (let i = 0; i < this.planoption.length; i++) {
487
+ if (i != idx) {
488
+ this.planoption[i]["selected"] = false
489
+ }
490
+ }
491
+ },
492
+ planclose() {
493
+ this.showModal2 = false
494
+ this.showModal3 = false
495
+ },
496
+ queryplan(val) {
497
+ this.needid = val
498
+ this.showModal2 = true
499
+ },
500
+ queryplanmany() {
501
+
502
+ this.showModal3 = true
503
+ },
504
+ reload() {
505
+ this.selfSearch()
506
+ },
507
+ cancelReserve(idx, id) {
508
+ if (Vue.android) {
509
+ let res = this.$androidUtil.bzLogic('BookingCheck', { dt: '', id: id })
510
+ this.$set('model.rows[' + idx + '].f_prearranged_date', null)
511
+ if (res.code == 200) {
512
+ this.$showMessage("取消预约成功")
513
+ }
514
+ } else {
515
+ this.$androidUtil.bzLogic('PCbookingCheck', { dt: '', id: id }).then((repanse) => {
516
+ this.$set('model.rows[' + idx + '].f_prearranged_date', null)
517
+ if (repanse.data.code == 200) {
518
+ alert("取消预约成功!")
519
+ }
520
+ })
521
+ }
522
+ },
523
+ genuineReserve() {
524
+ if (Vue.android) {
525
+ if (!this.f_preset_dt) {
526
+ this.$showMessage('请选择一个日期')
527
+ return
528
+ }
529
+ let pdt = this.f_preset_dt.replace('T', ' ')
530
+ let respanse = this.$androidUtil.bzLogic('BookingCheck', { id: this.model.rows[this.param].id, dt: pdt })
531
+ this.$set('model.rows[' + this.param + '].f_prearranged_date', pdt)
532
+ if (respanse.code == 200) {
533
+ this.$showMessage("预约成功!")
534
+ }
535
+ this.showModal = false
536
+ } else {
537
+ if (!this.f_preset_dt) {
538
+ alert('请选择一个日期')
539
+ return
540
+ }
541
+ let pdt = this.f_preset_dt.replace('T', ' ')
542
+ this.$androidUtil.bzLogic('PCbookingCheck', { id: this.model.rows[this.param].id, dt: pdt }).then((res) => {
543
+ this.$set('model.rows[' + this.param + '].f_prearranged_date', pdt)
544
+ if (res.data.code == 200) {
545
+ alert("预约成功!")
546
+ }
547
+ this.showModal = false
548
+ })
549
+ }
550
+ },
551
+ inspect(row) {
552
+ var _this = this
553
+ let http = new HttpResetClass()
554
+ http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {
555
+ data: {
556
+ items: 'id',
557
+ tablename: 't_check_plan_item',
558
+ condition: `id = '${row.id}'`,
559
+ orderitem: ' id '
560
+ }
561
+ }, { resolveMsg: null, rejectMsg: null }).then((getcheckplan) => {
562
+ console.log('getcheckplan=', JSON.stringify(getcheckplan))
563
+ this.getcheckplandata = getcheckplan.data[0]
564
+ if (this.getcheckplandata) {
565
+ if (row.f_upload_state == '未传' || (row.f_upload_state == '已传' && row.f_state == '未检' && row.f_no_checkplan != '无计划安检')) {
566
+ _this.$resetpost(`${_this.$androidUtil.getProxyUrl()}/rs/sql/查询计划项表信息`, { data: { f_userid: row.f_userinfoid } }, { resolveMsg: null, rejectMsg: null }).then((response) => {
567
+ row['f_plan_meters'] = response.data
568
+ var pardate = {
569
+ _this: _this,
570
+ title: '安全检查',
571
+ safe: true
572
+ }
573
+ _this.$dispatch('gotoson', pardate)
574
+ _this.$goto('safecheck-order-v', { f_plan_id: row.f_plan_id, item: row, role: 'inspect', parentPage: 'CurrentCreate' }, 'self', _this.reload)
575
+ }).catch((msg) => {
576
+ this.$showMessage("网络异常,请检查网络后再试!")
577
+ })
578
+ } else {
579
+ this.$showMessage("该安检单已被上传!")
580
+ }
581
+ } else {
582
+ this.$showMessage("该用户安检单已被移除,请联系管理员确认!")
583
+ }
584
+ })
585
+ },
586
+ makeAPhoneCall(phoneNumber) {
587
+ this.$androidUtil.makeAPhoneCall(phoneNumber)
588
+ },
589
+ reserve(idx) {
590
+ this.param = idx
591
+ this.showModal = true
592
+ },
593
+ search(args) {
594
+ this.model.rows = []
595
+ this.model.search(args.condition, args.model)
596
+ },
597
+ selfSearch() {
598
+ let condition = ""
599
+ if (Array.isArray(this.$refs.paged.$refs.cri.model.f_residential_area) && this.$refs.paged.$refs.cri.model.f_residential_area.length > 0) {
600
+ condition += " and ti.f_residential_area = '" + this.$refs.paged.$refs.cri.model.f_residential_area[0] + "'"
601
+ } else if (this.$refs.paged.$refs.cri.model.f_residential_area instanceof String && this.$refs.paged.$refs.cri.model.f_residential_area) {
602
+ condition += " and ti.f_residential_area = '" + this.$refs.paged.$refs.cri.model.f_residential_area + "'"
603
+ }
604
+ if (this.$refs.paged.$refs.cri.model.f_building)
605
+ condition += ` and ti.f_building = '${this.$refs.paged.$refs.cri.model.f_building}'`
606
+ if (this.$refs.paged.$refs.cri.model.f_unit)
607
+ condition += ` and ti.f_unit = '${this.$refs.paged.$refs.cri.model.f_unit}'`
608
+ if (this.planName) {
609
+ condition += " and f_plan_name like '%" + this.planName + "%'"
610
+ } else {
611
+ if (this.$refs.paged.$refs.cri.model.f_plan_name)
612
+ condition += " and f_plan_name like '%" + this.$refs.paged.$refs.cri.model.f_plan_name + "%'"
613
+ }
614
+ condition += " and ti.f_userinfo_code like '%" + this.$refs.paged.$refs.cri.model.f_userinfo_code + "%'"
615
+ if (this.$refs.paged.$refs.cri.model.f_keyword)
616
+ condition += " and ti.f_address like '%" + this.$refs.paged.$refs.cri.model.f_keyword + "%'"
617
+ if (this.$refs.paged.$refs.cri.model.f_user_name)
618
+ condition += " and ti.f_user_name like '%" + this.$refs.paged.$refs.cri.model.f_user_name + "%'"
619
+ if (this.$refs.paged.$refs.cri.model.f_state[0])
620
+ condition += " and ti.f_state='" + this.$refs.paged.$refs.cri.model.f_state[0] + "'"
621
+ if (this.$refs.paged.$refs.cri.model.f_user_type[0])
622
+ condition += " and ti.f_user_type='" + this.$refs.paged.$refs.cri.model.f_user_type[0] + "'"
623
+ if (this.$refs.paged.$refs.cri.model.f_meter_no)
624
+ condition += " and tm.f_meter_no like '%" + this.$refs.paged.$refs.cri.model.f_meter_no + "%'"
625
+ if (this.$refs.paged.$refs.cri.model.f_user_phone) {
626
+ condition += `and ti.f_user_phone like '%${this.$refs.paged.$refs.cri.model.f_user_phone}%'`
627
+ }
628
+ if (this.$refs.paged.$refs.cri.model.f_enter_number)
629
+ condition += " and ti.f_enter_number like '%" + this.$refs.paged.$refs.cri.model.f_enter_number + "%'"
630
+ if (this.$refs.paged.$refs.cri.model.f_check_version)
631
+ condition += " and ti.f_check_version <= " + this.$refs.paged.$refs.cri.model.f_check_version
632
+ condition += ` and ti.f_plan_id = '${this.row.f_plan_id}' and ti.f_residential_area = '${this.row.f_residential_area}' and ti.f_building = '${this.row.f_building}'`
633
+ this.model.search("((f_complete = '' or f_complete = null or f_complete = '未完成') or (f_state = '未检')) and ti.f_no_checkplan = '有计划安检'" + condition)
634
+ },
635
+ getNewOrder() {
636
+ HostApp.__this__ = this
637
+ HostApp.logicWithHint({
638
+ 'logic': 'SafeCheckServiceTimeOut',
639
+ 'callback': 'javascript:HostApp.__this__.getNewOrderCallBack()',
640
+ 'data': { params: '' },
641
+ 'backresult': 1
642
+ })
643
+ HostApp.logicWithHint({
644
+ 'logic': 'FreshPlanItem',
645
+ 'callback': 'javascript:HostApp.__this__.getNewOrderCallBack()',
646
+ 'data': { params: '' },
647
+ 'backresult': 1
648
+ })
649
+ },
650
+ getNewOrderCallBack() {
651
+ this.selfSearch()
652
+ },
653
+ hidden() {
654
+ this.criteriaShow = !this.criteriaShow
655
+ },
656
+ setPlanParam(detailsType, event) {
657
+ if (event.srcElement.checked) {
658
+ this.planparam.push(detailsType)
659
+ } else {
660
+ if (this.planparam.length > 0) {
661
+ let planid = this.planparam.findIndex((value) => {
662
+ return value === detailsType
663
+ })
664
+ this.planparam.splice(planid, 1)
665
+
666
+ }
667
+
668
+ }
669
+ }
670
+ }
671
+ }
672
+ </script>