safecheck-client 3.0.33-91 → 3.0.33-92

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/android.html +18 -18
  4. package/build/css-loaders.js +34 -34
  5. package/build/dev-android.js +151 -151
  6. package/build/dev-client.js +8 -8
  7. package/build/release.sh +28 -28
  8. package/build/utils.js +71 -71
  9. package/build/webpack.baseandroid.conf.js +83 -83
  10. package/build/webpack.devandroid.conf.js +33 -33
  11. package/build/webpack.hanwei.conf.js +57 -57
  12. package/build/webpack.hwbase.conf.js +78 -78
  13. package/build/webpack.prodandroid.conf.js +60 -60
  14. package/build/webpack.test.conf.js +31 -31
  15. package/config/dev.env.js +6 -6
  16. package/config/index.js +38 -38
  17. package/config/prod.env.js +3 -3
  18. package/config/test.env.js +6 -6
  19. package/docs/AppBase.md +22 -22
  20. package/docs/Busy.md +14 -14
  21. package/docs/Criteria.md +47 -47
  22. package/docs/CriteriaPaged.md +47 -47
  23. package/docs/DataGrid.md +54 -54
  24. package/docs/DataModel.md +22 -22
  25. package/docs/Dynamic.md +42 -42
  26. package/docs/FormPrint.md +18 -18
  27. package/docs/GetParams.md +11 -11
  28. package/docs/GridTree.md +47 -47
  29. package/docs/HttpBusy.md +13 -13
  30. package/docs/HttpStore.md +29 -29
  31. package/docs/MessageBox.md +28 -28
  32. package/docs/PagedList.md +29 -29
  33. package/docs/Pager.md +21 -21
  34. package/docs/PrintFile.md +38 -38
  35. package/docs/Project.md +23 -23
  36. package/docs/Route.md +105 -105
  37. package/docs/SafetyCheck/AdjustPlan.md +13 -13
  38. package/docs/SafetyCheck/CheckerPlan.md +12 -12
  39. package/docs/Task.md +46 -46
  40. package/docs/TreeList.md +28 -28
  41. package/docs/TreeMixin.md +18 -18
  42. package/docs/all.md +10 -10
  43. package/docs/list.md +42 -42
  44. package/docs/partial.md +75 -75
  45. package/docs/selector.md +82 -82
  46. package/docs/tree.md +40 -40
  47. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/Snippets.md +28 -28
  48. 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
  49. 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
  50. 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
  51. package/docs//347/225/214/351/235/242/345/210/266/344/275/234/350/247/204/350/214/203.md +54 -54
  52. package/examples/AddressList/App.vue +13 -13
  53. package/examples/AddressList/index.html +11 -11
  54. package/examples/DispatchList/App.vue +10 -10
  55. package/examples/DispatchList/BaseTree.vue +13 -13
  56. package/examples/DispatchList/Init.vue +22 -22
  57. package/examples/DispatchList/Test.vue +20 -20
  58. package/examples/DispatchList/index.html +11 -11
  59. package/examples/DispatchList/main.js +18 -18
  60. package/home.html +16 -16
  61. package/package.json +2 -1
  62. package/publish.bat +7 -7
  63. package/release.bat +5 -5
  64. package/src/Widget.vue +13 -13
  65. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  66. package/src/android-bootstrap/less/.csscomb.json +304 -304
  67. package/src/android-bootstrap/less/.csslintrc +19 -19
  68. package/src/android-bootstrap/less/alerts.less +73 -73
  69. package/src/android-bootstrap/less/badges.less +66 -66
  70. package/src/android-bootstrap/less/bootstrap.less +56 -56
  71. package/src/android-bootstrap/less/breadcrumbs.less +26 -26
  72. package/src/android-bootstrap/less/button-groups.less +247 -247
  73. package/src/android-bootstrap/less/buttons.less +173 -173
  74. package/src/android-bootstrap/less/carousel.less +269 -269
  75. package/src/android-bootstrap/less/close.less +34 -34
  76. package/src/android-bootstrap/less/code.less +69 -69
  77. package/src/android-bootstrap/less/component-animations.less +33 -33
  78. package/src/android-bootstrap/less/dropdowns.less +216 -216
  79. package/src/android-bootstrap/less/forms.less +626 -626
  80. package/src/android-bootstrap/less/grid.less +84 -84
  81. package/src/android-bootstrap/less/input-groups.less +167 -167
  82. package/src/android-bootstrap/less/jumbotron.less +52 -52
  83. package/src/android-bootstrap/less/labels.less +64 -64
  84. package/src/android-bootstrap/less/list-group.less +141 -141
  85. package/src/android-bootstrap/less/media.less +66 -66
  86. package/src/android-bootstrap/less/mixins/alerts.less +14 -14
  87. package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
  88. package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
  89. package/src/android-bootstrap/less/mixins/buttons.less +69 -69
  90. package/src/android-bootstrap/less/mixins/center-block.less +7 -7
  91. package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
  92. package/src/android-bootstrap/less/mixins/forms.less +90 -90
  93. package/src/android-bootstrap/less/mixins/gradients.less +59 -59
  94. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
  95. package/src/android-bootstrap/less/mixins/grid.less +122 -122
  96. package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
  97. package/src/android-bootstrap/less/mixins/image.less +33 -33
  98. package/src/android-bootstrap/less/mixins/labels.less +12 -12
  99. package/src/android-bootstrap/less/mixins/list-group.less +30 -30
  100. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
  101. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
  102. package/src/android-bootstrap/less/mixins/opacity.less +8 -8
  103. package/src/android-bootstrap/less/mixins/pagination.less +24 -24
  104. package/src/android-bootstrap/less/mixins/panels.less +24 -24
  105. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
  106. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
  107. package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
  108. package/src/android-bootstrap/less/mixins/resize.less +6 -6
  109. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
  110. package/src/android-bootstrap/less/mixins/size.less +10 -10
  111. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
  112. package/src/android-bootstrap/less/mixins/table-row.less +44 -44
  113. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
  114. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
  115. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
  116. package/src/android-bootstrap/less/mixins.less +40 -40
  117. package/src/android-bootstrap/less/modals.less +151 -151
  118. package/src/android-bootstrap/less/navbar.less +660 -660
  119. package/src/android-bootstrap/less/navs.less +290 -290
  120. package/src/android-bootstrap/less/normalize.less +424 -424
  121. package/src/android-bootstrap/less/pager.less +76 -76
  122. package/src/android-bootstrap/less/pagination.less +89 -89
  123. package/src/android-bootstrap/less/panels.less +274 -274
  124. package/src/android-bootstrap/less/popovers.less +131 -131
  125. package/src/android-bootstrap/less/print.less +101 -101
  126. package/src/android-bootstrap/less/progress-bars.less +87 -87
  127. package/src/android-bootstrap/less/responsive-embed.less +35 -35
  128. package/src/android-bootstrap/less/responsive-utilities.less +194 -194
  129. package/src/android-bootstrap/less/scaffolding.less +161 -161
  130. package/src/android-bootstrap/less/tables.less +262 -262
  131. package/src/android-bootstrap/less/theme.less +291 -291
  132. package/src/android-bootstrap/less/thumbnails.less +36 -36
  133. package/src/android-bootstrap/less/tooltip.less +102 -102
  134. package/src/android-bootstrap/less/type.less +303 -303
  135. package/src/android-bootstrap/less/utilities.less +55 -55
  136. package/src/android-bootstrap/less/variables.less +896 -896
  137. package/src/android-bootstrap/less/wells.less +29 -29
  138. package/src/androidTest.js +20 -20
  139. package/src/bootstrap/less/.csscomb.json +304 -304
  140. package/src/bootstrap/less/.csslintrc +19 -19
  141. package/src/bootstrap/less/alerts.less +73 -73
  142. package/src/bootstrap/less/badges.less +66 -66
  143. package/src/bootstrap/less/breadcrumbs.less +26 -26
  144. package/src/bootstrap/less/button-groups.less +247 -247
  145. package/src/bootstrap/less/buttons.less +172 -172
  146. package/src/bootstrap/less/carousel.less +269 -269
  147. package/src/bootstrap/less/close.less +34 -34
  148. package/src/bootstrap/less/code.less +69 -69
  149. package/src/bootstrap/less/component-animations.less +33 -33
  150. package/src/bootstrap/less/dropdowns.less +216 -216
  151. package/src/bootstrap/less/forms.less +626 -626
  152. package/src/bootstrap/less/grid.less +84 -84
  153. package/src/bootstrap/less/input-groups.less +167 -167
  154. package/src/bootstrap/less/jumbotron.less +52 -52
  155. package/src/bootstrap/less/labels.less +64 -64
  156. package/src/bootstrap/less/list-group.less +141 -141
  157. package/src/bootstrap/less/media.less +66 -66
  158. package/src/bootstrap/less/mixins/alerts.less +14 -14
  159. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  160. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  161. package/src/bootstrap/less/mixins/buttons.less +69 -69
  162. package/src/bootstrap/less/mixins/center-block.less +7 -7
  163. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  164. package/src/bootstrap/less/mixins/forms.less +90 -90
  165. package/src/bootstrap/less/mixins/gradients.less +59 -59
  166. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  167. package/src/bootstrap/less/mixins/grid.less +122 -122
  168. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  169. package/src/bootstrap/less/mixins/image.less +33 -33
  170. package/src/bootstrap/less/mixins/labels.less +12 -12
  171. package/src/bootstrap/less/mixins/list-group.less +30 -30
  172. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  173. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  174. package/src/bootstrap/less/mixins/opacity.less +8 -8
  175. package/src/bootstrap/less/mixins/pagination.less +24 -24
  176. package/src/bootstrap/less/mixins/panels.less +24 -24
  177. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  178. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  179. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  180. package/src/bootstrap/less/mixins/resize.less +6 -6
  181. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  182. package/src/bootstrap/less/mixins/size.less +10 -10
  183. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  184. package/src/bootstrap/less/mixins/table-row.less +44 -44
  185. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  186. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  187. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  188. package/src/bootstrap/less/mixins.less +40 -40
  189. package/src/bootstrap/less/modals.less +151 -151
  190. package/src/bootstrap/less/navbar.less +660 -660
  191. package/src/bootstrap/less/normalize.less +424 -424
  192. package/src/bootstrap/less/pager.less +76 -76
  193. package/src/bootstrap/less/pagination.less +89 -89
  194. package/src/bootstrap/less/panels.less +275 -275
  195. package/src/bootstrap/less/popovers.less +131 -131
  196. package/src/bootstrap/less/print.less +101 -101
  197. package/src/bootstrap/less/progress-bars.less +87 -87
  198. package/src/bootstrap/less/responsive-embed.less +35 -35
  199. package/src/bootstrap/less/responsive-utilities.less +194 -194
  200. package/src/bootstrap/less/scaffolding.less +161 -161
  201. package/src/bootstrap/less/tables.less +262 -262
  202. package/src/bootstrap/less/theme.less +291 -291
  203. package/src/bootstrap/less/thumbnails.less +36 -36
  204. package/src/bootstrap/less/tooltip.less +102 -102
  205. package/src/bootstrap/less/type.less +303 -303
  206. package/src/bootstrap/less/utilities.less +55 -55
  207. package/src/bootstrap/less/wells.less +29 -29
  208. package/src/components/AloneLoadParams.vue +25 -25
  209. package/src/components/FileUpload.vue +696 -696
  210. package/src/components/Hello.vue +39 -39
  211. package/src/components/LeftTree.vue +27 -27
  212. package/src/components/Main.vue +393 -393
  213. package/src/components/android/AddGas.vue +147 -147
  214. package/src/components/android/AddressList.vue +61 -61
  215. package/src/components/android/AttendanceTally.vue +116 -116
  216. package/src/components/android/Blank.vue +10 -10
  217. package/src/components/android/CheckUnplanPage.vue +56 -56
  218. package/src/components/android/Checker.vue +12 -12
  219. package/src/components/android/CheckerAnnual.vue +81 -81
  220. package/src/components/android/CheckerAvarta.vue +82 -82
  221. package/src/components/android/CheckerMonthly.vue +84 -84
  222. package/src/components/android/DevicesNoncivil.vue +214 -214
  223. package/src/components/android/EquipmentInspection.vue +348 -348
  224. package/src/components/android/FootprintMap.vue +120 -120
  225. package/src/components/android/HiddentroubleInvestigation.vue +192 -192
  226. package/src/components/android/LcheckUnplan.vue +108 -108
  227. package/src/components/android/MasterMain.vue +77 -77
  228. package/src/components/android/Menu.vue +132 -132
  229. package/src/components/android/NavBottom.vue +157 -157
  230. package/src/components/android/PaperAlarm.vue +85 -85
  231. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  232. package/src/components/android/PlumberAnnual.vue +83 -83
  233. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  234. package/src/components/android/PlumberMonthly.vue +84 -84
  235. package/src/components/android/PostMap.vue +83 -83
  236. package/src/components/android/QueryCheckHistory.vue +122 -122
  237. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  238. package/src/components/android/RepairMain.vue +60 -60
  239. package/src/components/android/Repairman.vue +12 -12
  240. package/src/components/android/StationMaster.vue +12 -12
  241. package/src/components/android/SwitchValve.vue +323 -323
  242. package/src/components/checkerphonestate/Checker.vue +32 -32
  243. package/src/components/checkerphonestate/CheckerState.vue +97 -97
  244. package/src/components/defects/AddDefectModal.vue +120 -120
  245. package/src/components/defects/AddDevice.vue +95 -95
  246. package/src/components/defects/DefectModal.vue +101 -101
  247. package/src/components/defects/DefectSeting.vue +98 -98
  248. package/src/components/defects/DevicesAndItem.vue +39 -39
  249. package/src/components/defects/DevicesSeting.vue +106 -106
  250. package/src/components/equipment/BoilerUsage.vue +105 -105
  251. package/src/components/equipment/CookerUsage.vue +105 -105
  252. package/src/components/equipment/DeviceUsage.vue +105 -105
  253. package/src/components/equipment/FurnaceUsage.vue +105 -105
  254. package/src/components/equipment/GasMeterUsage.vue +109 -109
  255. package/src/components/equipment/HeaterUsage.vue +105 -105
  256. package/src/components/gasusage/GasUsage.vue +126 -126
  257. package/src/components/issueplan/IssuePlanMain.vue +23 -23
  258. package/src/components/metterfiles/AddUserfiles.vue +246 -246
  259. package/src/components/metterfiles/MetterFiles.vue +104 -104
  260. package/src/components/notice/NoticeForm.vue +100 -100
  261. package/src/components/notice/NoticeIssue.vue +20 -20
  262. package/src/components/notice/NoticeQuery.vue +76 -76
  263. package/src/components/paper/PicViewer.vue +18 -18
  264. package/src/components/paper/RepairVerify.vue +139 -139
  265. package/src/components/paper/RepairVerifyForm.vue +76 -76
  266. package/src/components/paper/VerifyForm.vue +107 -107
  267. package/src/components/phonestate/DailyTraffic.vue +57 -57
  268. package/src/components/phonestate/LastKnownState.vue +74 -74
  269. package/src/components/phonestate/MonthlyTraffic.vue +66 -66
  270. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  271. package/src/components/phonestate/PostMap.vue +82 -82
  272. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  273. package/src/components/task/RepairAnnual.vue +79 -79
  274. package/src/components/task/RepairAnnualDetail.vue +49 -49
  275. package/src/components/task/RepairMonthly.vue +91 -91
  276. package/src/components/task/TaskAnnual.vue +77 -77
  277. package/src/components/task/TaskAnnualDetail.vue +47 -47
  278. package/src/components/task/TaskMonthly.vue +89 -89
  279. package/src/components/userfile/MeterFile.vue +145 -145
  280. package/src/components/userfile/MeterModify.vue +46 -46
  281. package/src/components/userfile/UserFile.vue +118 -118
  282. package/src/components/userfile/UserfileChange.vue +277 -277
  283. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  284. package/src/expandcss.less +571 -571
  285. package/src/filiale/kelai/pc/CheckPlanAreaList.vue +468 -468
  286. package/src/filiale/tianke/pc/checkScreen.vue +786 -781
  287. package/src/filiale/weinan/android/SafecheckDevices.vue +1295 -1295
  288. package/src/filiale/yangchunboneng/android/SafecheckDevices.vue +1332 -1332
  289. package/src/filiale/yangchunboneng/pc/CheckBookList.vue +347 -347
  290. package/src/filiale/yangchunboneng/pc/CheckBookUser.vue +269 -269
  291. package/src/filiale/yangchunboneng/pc/CheckSearchUser.vue +1192 -1192
  292. package/src/filiale/yongzhou/pc/communityTypeDetailG.vue +138 -138
  293. package/src/main.js +33 -33
  294. package/src/plugins/LoadData.js +10 -10
  295. package/src/plugins/LoadParams.js +24 -24
  296. package/src/stores/AppData.js +46 -46
  297. package/src/stores/wxconfig.js +10 -10
  298. package/src/utils/getNowDate.js +33 -33
  299. package/test/e2e/custom-assertions/elementCount.js +26 -26
  300. package/test/e2e/nightwatch.conf.js +40 -40
  301. package/test/e2e/runner.js +30 -30
  302. package/test/e2e/specs/test.js +13 -13
  303. package/test/unit/.eslintrc +5 -5
  304. package/test/unit/TestUtil.js +62 -62
  305. package/test/unit/context.html +20 -20
  306. package/test/unit/index.js +13 -13
@@ -1,781 +1,786 @@
1
- <template>
2
- <div class="flex-row">
3
- <div class="basic-main" style="flex:7">
4
- <div id="check_map" style="height:100%">
5
- <img-self-safe :src="imgSrc" width="45" style="z-index: 0"
6
- height="50" class="img-rounded" v-ref:defectimg></img-self-safe>
7
- </div>
8
- </div>
9
- <modal :styles="'width:1230px'" width="1230px" :show.sync="showModal" v-ref:modal backdrop="false">
10
- <header slot="modal-header" class="modal-header" v-show="false"></header>
11
- <article slot="modal-body" class="modal-body" style="width: 1200px;">
12
- <div class="auto">
13
- <img style="height:800px;width: 1200px;" src="./cq.jpg"
14
- v-show="city_properEnable" alt="图片加载失败"/>
15
- <img style="height:800px;width: 1200px;" src="./qy.jpg"
16
- v-show="townshipEnable" alt="图片加载失败"/>
17
- </div>
18
- </article>
19
- <footer slot="modal-footer" class="modal-footer">
20
- <button type="button" class="btn btn-success" @click='closeModal()'>关闭</button>
21
- </footer>
22
- </modal>
23
-
24
- <div id="zzz" class="basic-main" style="flex:1;margin-left: 0px;overflow: hidden">
25
- <div class="flex">
26
- <div class="panel panel-info" style="flex: 1;margin-top:0px">
27
- <div class="panel-heading" style="height: auto">
28
- <h3 class="panel-title">图层设置</h3>
29
- </div>
30
- <div class="panel-body">
31
- <ul class="safe_ul_sty">
32
- <li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="layers.satelliteEnable" @change="enableChange('satelliteEnable',layers.satelliteEnable)" type="checkbox"/>卫星图层</li>
33
- <li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="layers.roadNetEnable" @change="enableChange('roadNetEnable',layers.roadNetEnable)" type="checkbox"/>网路图层</li>
34
- <li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="layers.townshipEnable" @click="enableChange('townshipEnable')" type="checkbox"/>乡镇管网图层</li>
35
- <li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="layers.city_properEnable" @click="enableChange('city_properEnable')" type="checkbox"/>城区管网图层</li>
36
- <!--<button @click="safeRefresh">刷新111</button>-->
37
- </ul>
38
- </div>
39
- </div>
40
- <div class="panel panel-info" style="flex: 2;margin-top:0px;">
41
- <div class="panel-heading" style="height: auto">
42
- <h3 class="panel-title">覆盖物设置</h3>
43
- </div>
44
- <div class="panel-body">
45
- <ul class="safe_ul_sty">
46
- <li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="mulchs.checker" @change="enableChange('checker',mulchs.checker)" type="checkbox"/><img class="safe_deimg" src="../../../assets/anjianyuan.png"/>工作人员</li>
47
- <li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="mulchs.level1" @change="enableChange('level1',mulchs.level1)" type="checkbox"/><img class="safe_deimg" src="../../../assets/level1.png"/>一级隐患</li>
48
- <li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="mulchs.level2" @change="enableChange('level2',mulchs.level2)" type="checkbox"/><img class="safe_deimg" src="../../../assets/level2.png"/>二级隐患</li>
49
- <li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="mulchs.level3" @change="enableChange('level3',mulchs.level3)" type="checkbox"/><img class="safe_deimg" src="../../../assets/level3.png"/>三级隐患</li>
50
- <li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="mulchs.problems" @change="enableChange('problems',mulchs.problems)" type="checkbox"/><img class="safe_deimg" src="../../../assets/ordinary.png"/>普通问题</li>
51
- </ul>
52
- <!--<data-grid :model="defectList" partial='list' class="table_sy" >
53
- <template partial='body' style="height:100%">
54
- <td @click="$parent.$parent.setDefectPos(row)">
55
- <div style="width: 100%;"class="flex-row">
56
- <img src="../../../assets/星球背景.jpg" style="width:45px;height: 50px" class="img-rounded">
57
- <div >
58
- <p class="safe_p" :title="row.f_item_name"><nobr>{{row.f_item_name}}</nobr></p>
59
- <p class="safe_p" :title="row.f_checker_name"><nobr>{{row.f_checker_name}}</nobr></p>
60
- <p class="safe_p" :title="row.f_upload_date"><nobr>{{row.f_upload_date.substring(11)}}</nobr></p>
61
- </div>
62
- </div>
63
- </td>
64
- </template>
65
- </data-grid>-->
66
- </div>
67
- </div>
68
- <div class="panel panel-info" style="flex: 4;margin-top:0px;height: 50%">
69
- <div class="panel-heading" style="height: auto">
70
- <h3 class="panel-title">今日隐患</h3>
71
- </div>
72
- <div class="panel-body" style="overflow: scroll">
73
- <ul class="safe_ul_sty">
74
- <li v-for="row in todayDefectList" track-by="$index" class="safe_li_sty safe_list_li" @click="setDefectPos(row)" style="border: 1px #4d4d4d solid;border-radius: 2px" >
75
- <div style="width: 100%;" class="flex-row">
76
- <div style="width:35%">
77
- <!--<img-self-safe :src="'/rs/image/file/'+row.f_path" style="float: left" width="45"
78
- height="50" class="img-rounded"></img-self-safe>-->
79
- <img :src="'/rs/image/file/'+row.f_path" style="width:45px;height: 50px" @click.stop="seePhotos(row.f_path)" class="img-rounded">
80
- </div>
81
- <div style="width:65%">
82
- <p class="safe_p" :title="row.f_item_name">{{row.f_item_name}}</p>
83
- <p class="safe_p" :title="row.f_checker_name">{{row.f_checker_name}}</p>
84
- <p class="safe_p" :title="row.f_upload_date">{{row.f_upload_date.substring(11)}}</p>
85
- </div>
86
- </div>
87
- </li>
88
- </ul>
89
- </div>
90
- </div>
91
- </div>
92
- </div>
93
-
94
- </div>
95
- </template>
96
-
97
- <script>
98
- import Vue from 'vue'
99
- import * as Util from '../../Util'
100
- import {HttpResetClass,trans} from 'vue-client'
101
-
102
- export default {
103
- title: '安检实时监控中心',
104
- data() {
105
- return {
106
- map:null,
107
- infoWindow:null,
108
- satellite:null,
109
- roadNet:null,
110
- checkerMulchs:null,//安检员点位
111
- level1Mulchs:null,//一级隐患点位
112
- level2Mulchs:null,//二级隐患点位
113
- level3Mulchs:null,//三级隐患点位
114
- problemsMulchs:null,//普通问题点位
115
- checkers:[],
116
- employeeList:[],
117
- level1:[],
118
- level2:[],
119
- level3:[],
120
- problems:[],
121
- chekckOps:null,
122
- defectList:{rows:[]},
123
- todayDefectList:[],
124
- intervalNum:'',
125
- layers:{//图层控制显示
126
- satelliteEnable:false,
127
- roadNetEnable:false,
128
- townshipEnable:false,
129
- city_properEnable:false
130
- },
131
- imgSrc:'',
132
- geocoder:null,//逆地理编码
133
- mulchs:{//覆盖物控制显示
134
- checker:true,
135
- level1:true,
136
- level2:true,
137
- level3:true,
138
- problems:true
139
- },
140
- styleObject :[
141
- {
142
- url: '/images/anjianyuan.png', //人员图标URL
143
- anchor: new AMap.Pixel(14, 8), // 图标偏移位置
144
- size: new AMap.Size(26, 28) //图标大小
145
- },
146
- {
147
- url: '/images/level1.png', //一级隐患图标URL
148
- anchor: new AMap.Pixel(14, 8), // 图标偏移位置
149
- size: new AMap.Size(26, 28) //图标大小
150
- },
151
- {
152
- url: '/images/level2.png', //二级隐患图标URL
153
- anchor: new AMap.Pixel(14, 8), // 图标偏移位置
154
- size: new AMap.Size(26, 28) //图标大小
155
- },
156
- {
157
- url: '/images/level3.png', //三级隐患图标URL
158
- anchor: new AMap.Pixel(14, 8), // 图标偏移位置
159
- size: new AMap.Size(26, 28) //图标大小
160
- },
161
- {
162
- url: '/images/ordinary.png', //普通问题图标URL
163
- anchor: new AMap.Pixel(14, 8), // 图标偏移位置
164
- size: new AMap.Size(26, 28) //图标大小
165
- }
166
- ],
167
- showModal:false,
168
- city_properEnable:false,
169
- townshipEnable:false
170
- }
171
- },
172
- async ready(){
173
- this.initMap()
174
- //tag)
175
- await this.getNewData()
176
- //tag
177
- this.assemblyData()
178
- //tag
179
- window.safe_closeInfoWindow=this.closeInfoWindow
180
- this.intervalNum=window.setInterval(this.safeRefresh, 240000)
181
- },
182
- methods: {
183
- seePhotos(path){
184
- if(path){
185
- this.imgSrc='/rs/image/file/'+path
186
- this.infoWindow.close()
187
- this.$refs.defectimg.open()
188
- }
189
- },
190
- setDefectPos(row){
191
- this.map.setZoomAndCenter(15,[row.f_longitude,row.f_latitude])
192
- let defectContent=this.getDefectContent(row)
193
- this.infoWindow.setContent(defectContent)
194
- this.infoWindow.open(this.map, [row.f_longitude,row.f_latitude]);
195
- },
196
- //获取定位人员类表
197
- async getNewData(){
198
- let res=await new HttpResetClass().load('POST', '/rs/search', {
199
- source: `root.getResourceById($${this.$login.f.orgid}$,$organization$).getSpecialResByType($user$).where(row.getAttributes().get($rolestr$).indexOf($需要定位人员$) != -1)`,
200
- userid: this.$login.f.id
201
- }, {resolveMsg: null, rejectMsg: null})
202
- let arr1=await new HttpResetClass().load("GET", `/rs/safePosition/getPosition`, {},{resolveMsg: null, rejectMsg: null})
203
- //tag+'---------'+typeof arr1)
204
- //let d=this.toStandardTimeString()
205
- this.checkers=[]
206
- console.log("res.data",res.data)
207
- console.log("arr1",arr1)
208
- if(res.data){
209
- res.data.forEach((checker)=>{
210
- ////tag)
211
-
212
- for(let check in arr1.data){
213
- let checkerpos=JSON.parse(arr1.data[check])
214
- ////tag+check)
215
- if(this.$login.f.rolestr.includes('定位管理员')==true){
216
- checkerpos.userid=checker.userid
217
- checkerpos.f_user_telephone=checker.f_user_telephone
218
- checkerpos.rolestr=checker.rolestr
219
- this.checkers.push(checkerpos)
220
- }else{
221
- if(checker.id==check){
222
- //tag
223
- console.log("zhaodao;e",checkerpos)
224
- checkerpos.userid=checker.userid
225
- checkerpos.f_user_telephone=checker.f_user_telephone
226
- checkerpos.rolestr=checker.rolestr
227
- this.checkers.push(checkerpos)
228
- }
229
- }
230
- }
231
- })
232
- }
233
- let td=Util.toStandardDateString()
234
- //获取今天上传的所有隐患
235
- let arr=await new HttpResetClass().load("POST", `rs/sql/defectDetails`, {data:{condition:` f_filialeid in ('${this.$login.f.orgid}') and f_upload_date>'${Util.toStartDateYearString()} 00:00:00' and f_longitude is not null`}},
236
- {resolveMsg: null, rejectMsg: null})
237
- //tag)
238
- if(arr.data){
239
- this.todayDefectList=[]
240
- arr.data.forEach((defect)=>{
241
- //拿出今天的隐患放到今日隐患列表中
242
- console.log("td",td)
243
- console.log("defect",defect)
244
- console.log("defect",defect)
245
- if(defect.f_upload_date.indexOf(td)!=-1){
246
- this.todayDefectList.push(defect)
247
- }
248
- //取出一二三级隐患
249
- console.log("二级隐患",defect.f_defect_level=='二级隐患')
250
- if(defect.f_defect_level=='一级隐患'){
251
- this.level1.push(defect)
252
- }else if(defect.f_defect_level=='二级隐患'){
253
- this.level2.push(defect)
254
- }else if(defect.f_defect_level=='三级隐患'){
255
- this.level3.push(defect)
256
- }else{
257
- this.problems.push(defect)
258
- }
259
- })
260
- }
261
- this.defectList.rows=arr.data
262
- },
263
- getDefectContent(row){
264
- return `
265
- <div style="padding:0px;margin-left: 8px;"><b>隐患详情</b></div>
266
- <div class="panel panel-default" style="background-color: azure;border-radius: 5px;margin-left: 8px;">
267
- <div class="panel-body">
268
- <ul style="list-style-type: none;font-size: 15px;">
269
- <li style="margin: 3px 0;">隐患内容: ${row.f_item_name}-${row.f_item_value}</li>
270
- <li style="margin: 3px 0;">隐患级别: ${row.f_defect_level}</li>
271
- <li style="margin: 3px 0;">发现人员: ${row.f_checker_name}</li>
272
- <li style="margin: 3px 0;">上报时间: ${row.f_upload_date}</li>
273
- <li style="margin: 3px 0;">是否处理: ${row.F_IS_REPAIRED?row.F_IS_REPAIRED:'未处理'}</li>
274
- <li style="margin: 3px 0;">隐患位置: ${row.f_address}</li>
275
- </ul>
276
- </div>
277
- </div>`
278
- },
279
- getCheckerContent(row){
280
- return `
281
- <div style="padding:0px;margin-left: 8px;"><b>员工信息</b></div>
282
- <div class="panel panel-default" style="background-color: azure;border-radius: 5px;margin-left: 8px;">
283
- <div class="panel-body">
284
- <ul style="list-style-type: none;font-size: 15px;">
285
- <li style="margin: 3px 0;">员工工号: ${row.userid}</li>
286
- <li style="margin: 3px 0;">员工姓名: ${row.name}</li>
287
- <li style="margin: 3px 0;">员工电话: ${row.f_user_telephone?row.f_user_telephone:'未查到电话'}</li>
288
- <li style="margin: 3px 0;">角色列表: ${row.rolestr}</li>
289
- <li style="margin: 3px 0;">剩余电量: ${row.f_battery_level} %</li>
290
- <li style="margin: 3px 0;">剩余内存: ${row.f_internal_quote} MB</li>
291
- <li style="margin: 3px 0;">信号强度: ${row.f_signal_strength}</li>
292
- <li style="margin: 3px 0;">实时位置: ${row.checkAddress}</li>
293
- <li style="margin: 3px 0;">状态更新时间: ${row.uploadTime}</li>
294
- <!--<li style="margin: 3px 0;">客户地址: 河南省周口市工农南路xx酒店302</li>-->
295
- </ul>
296
- </div>
297
- </div>`
298
- },
299
- assemblyData(){
300
- let that=this
301
- this.checkerInit()
302
- /*this.checkers=[
303
- {f_longitude:114.718285,f_latitude:33.610584},
304
- {f_longitude:114.713736,f_latitude:33.642387}
305
- ]*/
306
- /*this.level1=[
307
- {f_longitude:114.68736,f_latitude:33.655248},
308
- {f_longitude:114.716736,f_latitude:33.627523}
309
- ]*/
310
- /*this.level2=[
311
- {f_longitude:114.676833,f_latitude:33.609726},
312
- {f_longitude:114.684013,f_latitude:33.642387}
313
- ]
314
- this.level3=[
315
- {f_longitude:114.71502,f_latitude:33.648675},
316
- {f_longitude:114.725002,f_latitude:33.637242}
317
- ]
318
- this.problems=[
319
- {f_longitude:114.696969,f_latitude:33.635241},
320
- {f_longitude:114.68836,f_latitude:33.655248}
321
- ]*/
322
- /*let a1=[]
323
- for(let i=0;i<this.checkers.length;i++){
324
- a1.push({
325
- lnglat: [this.checkers[i].f_longitude,this.checkers[i].f_latitude], //点标记位置
326
- name: '安检员',
327
- id:i,
328
- rowstr:this.checkers[i]
329
- })
330
- }
331
- // 将数组设置到 massMarks 图层
332
- this.checkerMulchs.setData(a1);
333
- // 将 massMarks 添加到地图实例
334
- this.checkerMulchs.setMap(this.map);*/
335
- let a2=[]
336
- for(let i=0;i<this.level1.length;i++){
337
- a2.push({
338
- lnglat: [this.level1[i].f_longitude, this.level1[i].f_latitude], //点标记位置
339
- name: '一级隐患',
340
- id:i,
341
- rowstr:this.level1[i]
342
- })
343
- }
344
- // 将数组设置到 massMarks 图层
345
- this.level1Mulchs.setData(a2);
346
- // 将 massMarks 添加到地图实例
347
- this.level1Mulchs.setMap(this.map);
348
-
349
-
350
- let a3=[]
351
- for(let i=0;i<this.level2.length;i++){
352
- a3.push({
353
- lnglat: [this.level2[i].f_longitude,this.level2[i].f_latitude], //点标记位置
354
- name: '二级隐患',
355
- id:i,
356
- rowstr:this.level2[i]
357
- })
358
- }
359
- // 将数组设置到 massMarks 图层
360
- this.level2Mulchs.setData(a3);
361
- // 将 massMarks 添加到地图实例
362
- this.level2Mulchs.setMap(this.map);
363
-
364
- let a4=[]
365
- for(let i=0;i<this.level3.length;i++){
366
- a4.push({
367
- lnglat: [this.level3[i].f_longitude, this.level3[i].f_latitude], //点标记位置
368
- name: '三级隐患',
369
- id:i,
370
- rowstr:this.level3[i]
371
- })
372
- }
373
- // 将数组设置到 massMarks 图层
374
- this.level3Mulchs.setData(a4);
375
- // 将 massMarks 添加到地图实例
376
- this.level3Mulchs.setMap(this.map);
377
-
378
-
379
- let a5=[]
380
- for(let i=0;i<this.problems.length;i++){
381
- a5.push({
382
- lnglat: [this.problems[i].f_longitude, this.problems[i].f_latitude], //点标记位置
383
- name: '普通问题',
384
- id:i,
385
- rowstr:this.problems[i]
386
- })
387
- }
388
- // 将数组设置到 massMarks 图层
389
- this.problemsMulchs.setData(a5);
390
- // 将 massMarks 添加到地图实例
391
- this.problemsMulchs.setMap(this.map);
392
- //组装安检员点位集合
393
- },
394
- //处理图层和覆盖物的显示隐藏
395
- enableChange(vname,val){
396
- //tag
397
- //tag
398
- switch(vname){
399
- case 'satelliteEnable':
400
- if(val){
401
- this.map.add(this.satellite)
402
- }else{
403
- this.map.remove(this.satellite)
404
- }
405
- break;
406
- case 'roadNetEnable':
407
- if(val){
408
- this.map.add(this.roadNet)
409
- }else{
410
- this.map.remove(this.roadNet)
411
- }
412
- break;
413
- case 'checker':
414
- if(val){
415
- this.chekckOps.show()
416
- }else{
417
- this.chekckOps.hide()
418
- }
419
- break;
420
- case 'level1':
421
- if(val){
422
- this.level1Mulchs.show()
423
- }else{
424
- this.level1Mulchs.hide()
425
- }
426
- break;
427
- case 'level2':
428
- if(val){
429
- this.level2Mulchs.show()
430
- }else{
431
- this.level2Mulchs.hide()
432
- }
433
- break;
434
- case 'level3':
435
- if(val){
436
- this.level3Mulchs.show()
437
- }else{
438
- this.level3Mulchs.hide()
439
- }
440
- break;
441
- case 'problems':
442
- if(val){
443
- this.problemsMulchs.show()
444
- }else{
445
- this.problemsMulchs.hide()
446
- }
447
- break;
448
- case 'townshipEnable':
449
- this.showModal=true
450
- this.townshipEnable=true
451
- this.city_properEnable=false
452
- break;
453
- case 'city_properEnable':
454
- this.showModal=true
455
- this.city_properEnable=true
456
- this.townshipEnable=false
457
- break;
458
- default:
459
- }
460
- },
461
- closeModal(){
462
- this.showModal=false
463
- this.city_properEnable=false
464
- this.townshipEnable=false
465
- this.layers.townshipEnable=false
466
- this.layers.city_properEnable=false
467
- },
468
- initMap(){
469
- let that=this
470
- this.map = new AMap.Map('check_map', {
471
- zoom: 12,
472
- viewMode: '2D', //设置地图模式
473
- lang: 'zh_cn', //设置地图语言类型
474
- zindex: 99
475
- });
476
- // 异步加载地图插件
477
- AMap.plugin(
478
- ['AMap.ToolBar','AMap.Geolocation','AMap.Geocoder'], () => {//异步加载插件
479
- // 自动定位插件
480
- var geolocation = new AMap.Geolocation({
481
- // 是否使用高精度定位,默认:true
482
- enableHighAccuracy: true,
483
- // 设置定位超时时间,默认:无穷大
484
- showbutton: true,
485
- //控制按钮的显示
486
- timeout: 10000,
487
- // 定位按钮的停靠位置的偏移量,默认:Pixel(10, 20)
488
- buttonOffset: new AMap.Pixel(10, 20),
489
- // 定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
490
- //zoomToAccuracy: true,
491
- // 定位按钮的排放位置, RB表示右下
492
- buttonPosition: 'LB'
493
- })
494
- that.geocoder = new AMap.Geocoder({
495
- radius: 500 //范围,默认:500
496
- });
497
- that.map.addControl(geolocation)
498
- geolocation.getCurrentPosition();
499
- that.map.addControl(new AMap.ToolBar()) //初始化工具插件
500
- });
501
- this.map.setDefaultCursor('move');
502
- //this.map.setMapStyle('amap://styles/whitesmoke');
503
- this.satellite=new AMap.TileLayer.Satellite()//卫星图层
504
- this.roadNet=new AMap.TileLayer.RoadNet({opacity:0.8})//网路图层
505
- //安检员位置集合
506
- this.chekckOps=new AMap.OverlayGroup()
507
- //初始化窗体
508
- this.infoWindow = new AMap.InfoWindow({
509
- anchor: 'bottom-center',
510
- //isCustom: true, //使用自定义窗体
511
- autoMove:true,
512
- content: '',
513
- offset: new AMap.Pixel(0, -25)
514
- });
515
- //安检员点位
516
- /*this.checkerMulchs = new AMap.MassMarks([], {
517
- opacity: 0.8, // 图层的透明度,取值范围[0,1],1代表完全不透明,0代表完全透明
518
- zIndex: 111, //图层叠加的顺序值,0表示最底层。默认zIndex:5
519
- cursor: 'pointer', //指定鼠标悬停时的鼠标样式,自定义cursor,IE仅支持cur/ani/ico格式,Opera不支持自定义cursor
520
- //alwaysRender:false,
521
- style: this.styleObject[0]
522
- });
523
- //tag
524
- this.checkerMulchs.on('click',function (e) {
525
- //tag)
526
- let checkAddress='未获取到实时位置'
527
- that.geocoder.getAddress(e.data.lnglat, function(status, result) {
528
- if (status === 'complete'&& result.regeocode) {
529
- checkAddress = result.regeocode.formattedAddress;
530
- }else{
531
- log.error('根据经纬度查询地址失败')
532
- }
533
- e.data.rowstr.checkAddress=checkAddress
534
- let defectContent=that.getCheckerContent(e.data.rowstr)
535
- that.infoWindow.setContent(defectContent)
536
- that.infoWindow.open(that.map, e.data.lnglat);
537
- });
538
- })*/
539
- //一级隐患点位
540
- this.level1Mulchs=new AMap.MassMarks([], {
541
- opacity: 0.8, // 图层的透明度,取值范围[0,1],1代表完全不透明,0代表完全透明
542
- zIndex: 111, //图层叠加的顺序值,0表示最底层。默认zIndex:5
543
- cursor: 'pointer', //指定鼠标悬停时的鼠标样式,自定义cursor,IE仅支持cur/ani/ico格式,Opera不支持自定义cursor
544
- //alwaysRender:false,
545
- style: this.styleObject[1]
546
- });
547
- this.level1Mulchs.on('click',function (e) {
548
- //tag)
549
- let defectContent=that.getDefectContent(e.data.rowstr)
550
- that.infoWindow.setContent(defectContent)
551
- that.infoWindow.open(that.map, e.data.lnglat);
552
- })
553
- //二级隐患点位
554
- this.level2Mulchs=new AMap.MassMarks([], {
555
- opacity: 0.8, // 图层的透明度,取值范围[0,1],1代表完全不透明,0代表完全透明
556
- zIndex: 111, //图层叠加的顺序值,0表示最底层。默认zIndex:5
557
- cursor: 'pointer', //指定鼠标悬停时的鼠标样式,自定义cursor,IE仅支持cur/ani/ico格式,Opera不支持自定义cursor
558
- //alwaysRender:false,
559
- style: this.styleObject[2]
560
- });
561
- this.level2Mulchs.on('click',function (e) {
562
- //tag)
563
- let defectContent=that.getDefectContent(e.data.rowstr)
564
- that.infoWindow.setContent(defectContent)
565
- that.infoWindow.open(that.map, e.data.lnglat);
566
- })
567
- //三级隐患点位
568
- this.level3Mulchs=new AMap.MassMarks([], {
569
- opacity: 0.8, // 图层的透明度,取值范围[0,1],1代表完全不透明,0代表完全透明
570
- zIndex: 111, //图层叠加的顺序值,0表示最底层。默认zIndex:5
571
- cursor: 'pointer', //指定鼠标悬停时的鼠标样式,自定义cursor,IE仅支持cur/ani/ico格式,Opera不支持自定义cursor
572
- //alwaysRender:false,
573
- style: this.styleObject[3]
574
- });
575
- this.level3Mulchs.on('click',function (e) {
576
- //tag)
577
- let defectContent=that.getDefectContent(e.data.rowstr)
578
- that.infoWindow.setContent(defectContent)
579
- that.infoWindow.open(that.map, e.data.lnglat);
580
- })
581
- //普通问题点位
582
- this.problemsMulchs=new AMap.MassMarks([], {
583
- opacity: 0.8, // 图层的透明度,取值范围[0,1],1代表完全不透明,0代表完全透明
584
- zIndex: 111, //图层叠加的顺序值,0表示最底层。默认zIndex:5
585
- cursor: 'pointer', //指定鼠标悬停时的鼠标样式,自定义cursor,IE仅支持cur/ani/ico格式,Opera不支持自定义cursor
586
- //alwaysRender:false,
587
- style: this.styleObject[4]
588
- });
589
- this.problemsMulchs.on('click',function (e) {
590
- //tag)
591
- let defectContent=that.getDefectContent(e.data.rowstr)
592
- that.infoWindow.setContent(defectContent)
593
- that.infoWindow.open(that.map, e.data.lnglat);
594
- })
595
-
596
-
597
- },
598
- closeInfoWindow(){
599
- this.infoWindow.close()
600
- },
601
- checkerInit(){
602
- /*let marker1 = new AMap.Marker({
603
- position: [114.574809,33.621501],
604
- icon:'http://192.168.20.28:8400/image/anjianyuan.png'
605
- });
606
- //tag
607
- marker1.setLabel({
608
- //offset: new AMap.Pixel(20, 20), //设置文本标注偏移量
609
- content: "<div class='info' style='background-color: #0b87e2'>何文强</div>", //设置文本标注内容
610
- direction: 'bottom' //设置文本标注方位
611
- })*/
612
- let that = this
613
- this.chekckOps.clearOverlays()
614
- for(let j=0;j<this.checkers.length;j++){
615
- //tag+"---"+this.checkers[j].f_longitude+"---"+this.checkers[j].f_latitude)
616
- //let o={f_longitude:"114.72"+(Math.floor(Math.random()*(9999-1000))+1000),f_latitude:"33.56"+(Math.floor(Math.random()*(9999-1000))+1000),name:"hwq3",f_provider:"lbs",f_battery_level:38,f_bearing:"210.0",uploadTime:"2021-11-17 17:28:35",f_signal_strength:4,userid:"141701",f_speed:"0.0",f_internal_quote:8535,f_altitude:"9.72", f_traffic:345865}
617
- let marker=new AMap.Marker({
618
- //map: that.map,
619
- offset:new AMap.Pixel(-18, -10),
620
- position: [this.checkers[j].f_longitude,this.checkers[j].f_latitude],
621
- icon:new AMap.Icon({
622
- image: '/images/anjianyuan.png', //人员图标URL
623
- imageOffset: new AMap.Pixel(0, 0), // 图标偏移位置
624
- imageSize: new AMap.Size(36, 36) //图标大小
625
- }),
626
- label:{
627
- //offset: new AMap.Pixel(20, 20), //设置文本标注偏移量
628
- content: `<div class='info' style='background-color: rgb(0,185,255);color: #ffffff;padding: 5px;border-radius: 4px'>${this.checkers[j].name}</div>`, //设置文本标注内容
629
- direction: 'bottom', //设置文本标注方位
630
- offset:new AMap.Pixel(0, -4)
631
- },
632
- extData:this.checkers[j]
633
- })
634
- this.chekckOps.addOverlay(marker)
635
-
636
- }
637
- this.chekckOps.setMap(this.map)
638
- this.chekckOps.on('click',function (e) {
639
- let pe=e.target.getExtData()
640
- for(let obj in pe){
641
- //tag
642
- }
643
- let checkAddress='未获取到实时位置'
644
- that.geocoder.getAddress([pe.f_longitude,pe.f_latitude], function(status, result) {
645
- if (status === 'complete'&& result.regeocode) {
646
- checkAddress = result.regeocode.formattedAddress;
647
- }/*else{
648
- log.error('根据经纬度查询地址失败')
649
- }*/
650
- pe.checkAddress=checkAddress
651
- let defectContent=that.getCheckerContent(pe)
652
- that.infoWindow.setContent(defectContent)
653
- that.infoWindow.open(that.map, [pe.f_longitude,pe.f_latitude])
654
- })
655
- })
656
- /*AMap.event.addListener(this.ops, 'click', function (e) {
657
- //tag)
658
- //that.infoWindow.open(that.map, marker.getPosition());
659
- })*/
660
- },
661
- //获取当前时间的前两个小时
662
- getNowFormatDate(house=0) {
663
- //tag
664
- let date = new Date();
665
- let seperator1 = "-";
666
- let seperator2 = ":";
667
- if(house != 0){
668
- date.setHours(date.getHours()-house)
669
- }
670
- let month = date.getMonth() + 1;
671
- let strDate = date.getDate();
672
- let hour = date.getHours();
673
- let min = date.getMinutes();
674
- let second = date.getSeconds();
675
- if (month >= 1 && month <= 9) {
676
- month = "0" + month;
677
- }
678
- if (strDate >= 0 && strDate <= 9) {
679
- strDate = "0" + strDate;
680
- }
681
- if (hour >= 0 && hour <= 9) {
682
- hour = "0" + hour;
683
- }
684
- if (min >= 0 && min <= 9) {
685
- min = "0" + min;
686
- }
687
- if (second >= 0 && second <= 9) {
688
- second = "0" + second;
689
- }
690
- let currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
691
- + " " + hour + seperator2 + min
692
- + seperator2 + second;
693
- return currentdate;
694
- },
695
- toStandardTimeString() {
696
- let dt = new Date()
697
- let month = dt.getMonth()+1
698
- let date = dt.getDate()
699
- let hour = dt.getHours()
700
- let min = dt.getMinutes()
701
- let sec = dt.getSeconds()
702
- return dt.getFullYear() + '-' + (month<10? '0'+ month : month) + '-' + (date<10? '0'+ date : date)
703
- + ' ' + (hour<10? '0'+ hour : hour)
704
- },
705
- async safeRefresh(){
706
- //tag
707
- //获取所有安检员的点位集合-----测试数据
708
- /*this.checkers=[]
709
- this.checkers.push({f_longitude:114.7318,f_latitude:33.567126,name:"hwq1",f_provider:"lbs",f_battery_level:38,f_bearing:"210.0",uploadTime:"2021-11-17 17:28:35",f_signal_strength:4,userid:"141701",f_speed:"0.0",f_internal_quote:8535,f_altitude:"9.72", f_traffic:345865})
710
- this.checkers.push({f_longitude:114.726801,f_latitude:33.566912,name:"hwq2",f_provider:"lbs",f_battery_level:38,f_bearing:"210.0",uploadTime:"2021-11-17 17:28:35",f_signal_strength:4,userid:"141701",f_speed:"0.0",f_internal_quote:8535,f_altitude:"9.72", f_traffic:345865})
711
- this.checkers.push({f_longitude:114.723346,f_latitude:33.568932,name:"hwq3",f_provider:"lbs",f_battery_level:38,f_bearing:"210.0",uploadTime:"2021-11-17 17:28:35",f_signal_strength:4,userid:"141701",f_speed:"0.0",f_internal_quote:8535,f_altitude:"9.72", f_traffic:345865})
712
- this.checkers.push({f_longitude:114.711741,f_latitude:33.585519,name:"hwq4",f_provider:"lbs",f_battery_level:38,f_bearing:"210.0",uploadTime:"2021-11-17 17:28:35",f_signal_strength:4,userid:"141701",f_speed:"0.0",f_internal_quote:8535,f_altitude:"9.72", f_traffic:345865})
713
- this.checkers.push({f_longitude:114.756716,f_latitude:33.594528,name:"hwq5",f_provider:"lbs",f_battery_level:38,f_bearing:"210.0",uploadTime:"2021-11-17 17:28:35",f_signal_strength:4,userid:"141701",f_speed:"0.0",f_internal_quote:8535,f_altitude:"9.72", f_traffic:345865})
714
- this.defectList.rows=[]
715
- this.defectList.rows.push({"f_longitude":114.661358,"f_latitude":33.596897,"f_checker_name":"hwq2","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})
716
- this.defectList.rows.push({"f_longitude":114.659985,"f_latitude":33.62892,"f_checker_name":"hwq3","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})
717
- this.defectList.rows.push({"f_longitude":114.634579,"f_latitude":33.616627,"f_checker_name":"hwq4","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})
718
- this.defectList.rows.push({"f_longitude":114.690197,"f_latitude":33.604332,"f_checker_name":"hwq5","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})
719
- this.defectList.rows.push({"f_longitude":114.690197,"f_latitude":33.604332,"f_checker_name":"hwq5","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})
720
- this.defectList.rows.push({"f_longitude":114.690197,"f_latitude":33.604332,"f_checker_name":"hwq5","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})
721
- this.defectList.rows.push({"f_longitude":114.690197,"f_latitude":33.604332,"f_checker_name":"hwq5","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})
722
- this.defectList.rows.push({"f_longitude":114.690197,"f_latitude":33.604332,"f_checker_name":"hwq5","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})
723
- this.defectList.rows.push({"f_longitude":114.690197,"f_latitude":33.604332,"f_checker_name":"hwq5","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})
724
- this.defectList.rows.push({"f_longitude":114.690197,"f_latitude":33.604332,"f_checker_name":"hwq5","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})*/
725
- await this.getNewData()
726
- this.assemblyData()
727
- }
728
- },
729
- computed:{
730
-
731
- },
732
- destroyed(){
733
- window.clearInterval(this.intervalNum)
734
- }
735
- }
736
-
737
- </script>
738
-
739
- <style lang="less" scoped>
740
-
741
- .safe_checkbox_sty{
742
- vertical-align:text-bottom;
743
- margin-right: 3px;
744
-
745
- }
746
- .safe_ul_sty{
747
- list-style-type: none;
748
- font-size: 13px;
749
- padding-left: 5px;
750
- }
751
- .safe_li_sty{
752
- font-size: 13px;
753
- margin-top: 5px;
754
- }
755
- .safe_p{
756
- white-space: nowrap;
757
- overflow: hidden;
758
- text-overflow: ellipsis;
759
- margin: 0 0 0 10px;
760
-
761
- font-size: 12px;
762
- }
763
- .safe_list_li{
764
- margin-top: 5px;
765
- background-color: #ffffff;
766
- border: solid 1px #f0f4fa !important;
767
- color: #666666 !important;
768
- font-size: 1.3rem !important;
769
- font-family: PINGFANG-MEDIUM !important;
770
- padding: 8px;
771
- }
772
- .safe_list_li:hover{
773
- background-color: rgb(203,234,241);
774
- }
775
- .safe_deimg{
776
- vertical-align: text-bottom;
777
- width: 15px;
778
- margin-right: 3px;
779
- }
780
- </style>
781
-
1
+ <template>
2
+ <div class="flex-row">
3
+ <div class="basic-main" style="flex:7">
4
+ <div id="check_map" style="height:100%">
5
+ <img-self-safe :src="imgSrc" width="45" style="z-index: 0"
6
+ height="50" class="img-rounded" v-ref:defectimg></img-self-safe>
7
+ </div>
8
+ </div>
9
+ <modal :styles="'width:1230px'" width="1230px" :show.sync="showModal" v-ref:modal backdrop="false">
10
+ <header slot="modal-header" class="modal-header" v-show="false"></header>
11
+ <article slot="modal-body" class="modal-body" style="width: 1200px;">
12
+ <div class="auto">
13
+ <img style="height:800px;width: 1200px;" src="./cq.jpg"
14
+ v-show="city_properEnable" alt="图片加载失败"/>
15
+ <img style="height:800px;width: 1200px;" src="./qy.jpg"
16
+ v-show="townshipEnable" alt="图片加载失败"/>
17
+ </div>
18
+ </article>
19
+ <footer slot="modal-footer" class="modal-footer">
20
+ <button type="button" class="btn btn-success" @click='closeModal()'>关闭</button>
21
+ </footer>
22
+ </modal>
23
+
24
+ <div id="zzz" class="basic-main" style="flex:1;margin-left: 0px;overflow: hidden">
25
+ <div class="flex">
26
+ <div class="panel panel-info" style="flex: 1;margin-top:0px">
27
+ <div class="panel-heading" style="height: auto">
28
+ <h3 class="panel-title">图层设置</h3>
29
+ </div>
30
+ <div class="panel-body">
31
+ <ul class="safe_ul_sty">
32
+ <li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="layers.satelliteEnable" @change="enableChange('satelliteEnable',layers.satelliteEnable)" type="checkbox"/>卫星图层</li>
33
+ <li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="layers.roadNetEnable" @change="enableChange('roadNetEnable',layers.roadNetEnable)" type="checkbox"/>网路图层</li>
34
+ <li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="layers.townshipEnable" @click="enableChange('townshipEnable')" type="checkbox"/>乡镇管网图层</li>
35
+ <li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="layers.city_properEnable" @click="enableChange('city_properEnable')" type="checkbox"/>城区管网图层</li>
36
+ <!--<button @click="safeRefresh">刷新111</button>-->
37
+ </ul>
38
+ </div>
39
+ </div>
40
+ <div class="panel panel-info" style="flex: 2;margin-top:0px;">
41
+ <div class="panel-heading" style="height: auto">
42
+ <h3 class="panel-title">覆盖物设置</h3>
43
+ </div>
44
+ <div class="panel-body">
45
+ <ul class="safe_ul_sty">
46
+ <li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="mulchs.checker" @change="enableChange('checker',mulchs.checker)" type="checkbox"/><img class="safe_deimg" src="../../../assets/anjianyuan.png"/>工作人员</li>
47
+ <li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="mulchs.level1" @change="enableChange('level1',mulchs.level1)" type="checkbox"/><img class="safe_deimg" src="../../../assets/level1.png"/>一级隐患</li>
48
+ <li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="mulchs.level2" @change="enableChange('level2',mulchs.level2)" type="checkbox"/><img class="safe_deimg" src="../../../assets/level2.png"/>二级隐患</li>
49
+ <li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="mulchs.level3" @change="enableChange('level3',mulchs.level3)" type="checkbox"/><img class="safe_deimg" src="../../../assets/level3.png"/>三级隐患</li>
50
+ <li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="mulchs.problems" @change="enableChange('problems',mulchs.problems)" type="checkbox"/><img class="safe_deimg" src="../../../assets/ordinary.png"/>普通问题</li>
51
+ </ul>
52
+ <!--<data-grid :model="defectList" partial='list' class="table_sy" >
53
+ <template partial='body' style="height:100%">
54
+ <td @click="$parent.$parent.setDefectPos(row)">
55
+ <div style="width: 100%;"class="flex-row">
56
+ <img src="../../../assets/星球背景.jpg" style="width:45px;height: 50px" class="img-rounded">
57
+ <div >
58
+ <p class="safe_p" :title="row.f_item_name"><nobr>{{row.f_item_name}}</nobr></p>
59
+ <p class="safe_p" :title="row.f_checker_name"><nobr>{{row.f_checker_name}}</nobr></p>
60
+ <p class="safe_p" :title="row.f_upload_date"><nobr>{{row.f_upload_date.substring(11)}}</nobr></p>
61
+ </div>
62
+ </div>
63
+ </td>
64
+ </template>
65
+ </data-grid>-->
66
+ </div>
67
+ </div>
68
+ <div class="panel panel-info" style="flex: 4;margin-top:0px;height: 50%">
69
+ <div class="panel-heading" style="height: auto">
70
+ <h3 class="panel-title">今日隐患</h3>
71
+ </div>
72
+ <div class="panel-body" style="overflow: scroll">
73
+ <ul class="safe_ul_sty">
74
+ <li v-for="row in todayDefectList" track-by="$index" class="safe_li_sty safe_list_li" @click="setDefectPos(row)" style="border: 1px #4d4d4d solid;border-radius: 2px" >
75
+ <div style="width: 100%;" class="flex-row">
76
+ <div style="width:35%">
77
+ <!--<img-self-safe :src="'/rs/image/file/'+row.f_path" style="float: left" width="45"
78
+ height="50" class="img-rounded"></img-self-safe>-->
79
+ <img :src="'/rs/image/file/'+row.f_path" style="width:45px;height: 50px" @click.stop="seePhotos(row.f_path)" class="img-rounded">
80
+ </div>
81
+ <div style="width:65%">
82
+ <p class="safe_p" :title="row.f_item_name">{{row.f_item_name}}</p>
83
+ <p class="safe_p" :title="row.f_checker_name">{{row.f_checker_name}}</p>
84
+ <p class="safe_p" :title="row.f_upload_date">{{row.f_upload_date.substring(11)}}</p>
85
+ </div>
86
+ </div>
87
+ </li>
88
+ </ul>
89
+ </div>
90
+ </div>
91
+ </div>
92
+ </div>
93
+
94
+ </div>
95
+ </template>
96
+
97
+ <script>
98
+ import Vue from 'vue'
99
+ import * as Util from '../../Util'
100
+ import {HttpResetClass,trans} from 'vue-client'
101
+
102
+ export default {
103
+ title: '安检实时监控中心',
104
+ data() {
105
+ return {
106
+ map:null,
107
+ infoWindow:null,
108
+ satellite:null,
109
+ roadNet:null,
110
+ checkerMulchs:null,//安检员点位
111
+ level1Mulchs:null,//一级隐患点位
112
+ level2Mulchs:null,//二级隐患点位
113
+ level3Mulchs:null,//三级隐患点位
114
+ problemsMulchs:null,//普通问题点位
115
+ checkers:[],
116
+ employeeList:[],
117
+ level1:[],
118
+ level2:[],
119
+ level3:[],
120
+ problems:[],
121
+ chekckOps:null,
122
+ defectList:{rows:[]},
123
+ todayDefectList:[],
124
+ intervalNum:'',
125
+ layers:{//图层控制显示
126
+ satelliteEnable:false,
127
+ roadNetEnable:false,
128
+ townshipEnable:false,
129
+ city_properEnable:false
130
+ },
131
+ imgSrc:'',
132
+ geocoder:null,//逆地理编码
133
+ mulchs:{//覆盖物控制显示
134
+ checker:true,
135
+ level1:true,
136
+ level2:true,
137
+ level3:true,
138
+ problems:true
139
+ },
140
+ styleObject :[
141
+ {
142
+ url: '/images/anjianyuan.png', //人员图标URL
143
+ anchor: new AMap.Pixel(14, 8), // 图标偏移位置
144
+ size: new AMap.Size(26, 28) //图标大小
145
+ },
146
+ {
147
+ url: '/images/level1.png', //一级隐患图标URL
148
+ anchor: new AMap.Pixel(14, 8), // 图标偏移位置
149
+ size: new AMap.Size(26, 28) //图标大小
150
+ },
151
+ {
152
+ url: '/images/level2.png', //二级隐患图标URL
153
+ anchor: new AMap.Pixel(14, 8), // 图标偏移位置
154
+ size: new AMap.Size(26, 28) //图标大小
155
+ },
156
+ {
157
+ url: '/images/level3.png', //三级隐患图标URL
158
+ anchor: new AMap.Pixel(14, 8), // 图标偏移位置
159
+ size: new AMap.Size(26, 28) //图标大小
160
+ },
161
+ {
162
+ url: '/images/ordinary.png', //普通问题图标URL
163
+ anchor: new AMap.Pixel(14, 8), // 图标偏移位置
164
+ size: new AMap.Size(26, 28) //图标大小
165
+ }
166
+ ],
167
+ showModal:false,
168
+ city_properEnable:false,
169
+ townshipEnable:false
170
+ }
171
+ },
172
+ async ready(){
173
+ this.initMap()
174
+ //tag)
175
+ await this.getNewData()
176
+ //tag
177
+ this.assemblyData()
178
+ //tag
179
+ window.safe_closeInfoWindow=this.closeInfoWindow
180
+ this.intervalNum=window.setInterval(this.safeRefresh, 240000)
181
+ },
182
+ methods: {
183
+ seePhotos(path){
184
+ if(path){
185
+ this.imgSrc='/rs/image/file/'+path
186
+ this.infoWindow.close()
187
+ this.$refs.defectimg.open()
188
+ }
189
+ },
190
+ setDefectPos(row){
191
+ this.map.setZoomAndCenter(15,[row.f_longitude,row.f_latitude])
192
+ let defectContent=this.getDefectContent(row)
193
+ this.infoWindow.setContent(defectContent)
194
+ this.infoWindow.open(this.map, [row.f_longitude,row.f_latitude]);
195
+ },
196
+ //获取定位人员类表
197
+ async getNewData(){
198
+ let res=await new HttpResetClass().load('POST', '/rs/search', {
199
+ source: `root.getResourceById($${this.$login.f.orgid}$,$organization$).getSpecialResByType($user$).where(row.getAttributes().get($rolestr$).indexOf($需要定位人员$) != -1)`,
200
+ userid: this.$login.f.id
201
+ }, {resolveMsg: null, rejectMsg: null})
202
+ let arr1=await new HttpResetClass().load("GET", `/rs/safePosition/getPosition`, {},{resolveMsg: null, rejectMsg: null})
203
+ //tag+'---------'+typeof arr1)
204
+ //let d=this.toStandardTimeString()
205
+ this.checkers=[]
206
+ console.log("res.data",res.data)
207
+ console.log("arr1",arr1)
208
+ if(res.data){
209
+ res.data.forEach((checker)=>{
210
+ ////tag)
211
+
212
+ for(let check in arr1.data){
213
+ let checkerpos=JSON.parse(arr1.data[check])
214
+ ////tag+check)
215
+ if(this.$login.f.rolestr.includes('定位管理员')==true){
216
+ checkerpos.userid=checker.userid
217
+ checkerpos.f_user_telephone=checker.f_user_telephone
218
+ checkerpos.rolestr=checker.rolestr
219
+ this.checkers.push(checkerpos)
220
+ }else{
221
+ if(checker.id==check){
222
+ //tag
223
+ console.log("zhaodao;e",checkerpos)
224
+ checkerpos.userid=checker.userid
225
+ checkerpos.f_user_telephone=checker.f_user_telephone
226
+ checkerpos.rolestr=checker.rolestr
227
+ this.checkers.push(checkerpos)
228
+ }
229
+ }
230
+ }
231
+ })
232
+ }
233
+ let td=Util.toStandardDateString()
234
+ //获取今天上传的所有隐患
235
+ let arr=await new HttpResetClass().load("POST", `rs/sql/defectDetails`, {data:{condition:` f_filialeid in ('${this.$login.f.orgid}') and f_upload_date>'${Util.toStartDateYearString()} 00:00:00' and f_longitude is not null`}},
236
+ {resolveMsg: null, rejectMsg: null})
237
+ //tag)
238
+ if(arr.data){
239
+ this.todayDefectList=[]
240
+ arr.data.forEach((defect)=>{
241
+ //拿出今天的隐患放到今日隐患列表中
242
+ console.log("td",td)
243
+ console.log("defect",defect)
244
+ console.log("defect",defect)
245
+ if(defect.f_upload_date.indexOf(td)!=-1){
246
+ this.todayDefectList.push(defect)
247
+ }
248
+ //取出一二三级隐患
249
+ console.log("二级隐患",defect.f_defect_level=='二级隐患')
250
+ if(defect.f_defect_level=='一级隐患'){
251
+ this.level1.push(defect)
252
+ }else if(defect.f_defect_level=='二级隐患'){
253
+ this.level2.push(defect)
254
+ }else if(defect.f_defect_level=='三级隐患'){
255
+ this.level3.push(defect)
256
+ }else{
257
+ this.problems.push(defect)
258
+ }
259
+ })
260
+ }
261
+ this.defectList.rows=arr.data
262
+ },
263
+ getDefectContent(row){
264
+ return `
265
+ <div style="padding:0px;margin-left: 8px;"><b>隐患详情</b></div>
266
+ <div class="panel panel-default" style="background-color: azure;border-radius: 5px;margin-left: 8px;">
267
+ <div class="panel-body">
268
+ <ul style="list-style-type: none;font-size: 15px;">
269
+ <li style="margin: 3px 0;">隐患内容: ${row.f_item_name}-${row.f_item_value}</li>
270
+ <li style="margin: 3px 0;">隐患级别: ${row.f_defect_level}</li>
271
+ <li style="margin: 3px 0;">发现人员: ${row.f_checker_name}</li>
272
+ <li style="margin: 3px 0;">上报时间: ${row.f_upload_date}</li>
273
+ <li style="margin: 3px 0;">是否处理: ${row.F_IS_REPAIRED?row.F_IS_REPAIRED:'未处理'}</li>
274
+ <li style="margin: 3px 0;">隐患位置: ${row.f_address}</li>
275
+ </ul>
276
+ </div>
277
+ </div>`
278
+ },
279
+ getCheckerContent(row){
280
+ return `
281
+ <div style="padding:0px;margin-left: 8px;"><b>员工信息</b></div>
282
+ <div class="panel panel-default" style="background-color: azure;border-radius: 5px;margin-left: 8px;">
283
+ <div class="panel-body">
284
+ <ul style="list-style-type: none;font-size: 15px;">
285
+ <li style="margin: 3px 0;">员工工号: ${row.userid}</li>
286
+ <li style="margin: 3px 0;">员工姓名: ${row.name}</li>
287
+ <li style="margin: 3px 0;">员工电话: ${row.f_user_telephone?row.f_user_telephone:'未查到电话'}</li>
288
+ <li style="margin: 3px 0;">角色列表: ${row.rolestr}</li>
289
+ <li style="margin: 3px 0;">剩余电量: ${row.f_battery_level} %</li>
290
+ <li style="margin: 3px 0;">剩余内存: ${row.f_internal_quote} MB</li>
291
+ <li style="margin: 3px 0;">信号强度: ${row.f_signal_strength}</li>
292
+ <li style="margin: 3px 0;">实时位置: ${row.checkAddress}</li>
293
+ <li style="margin: 3px 0;">状态更新时间: ${row.uploadTime}</li>
294
+ <!--<li style="margin: 3px 0;">客户地址: 河南省周口市工农南路xx酒店302</li>-->
295
+ </ul>
296
+ </div>
297
+ </div>`
298
+ },
299
+ assemblyData(){
300
+ let that=this
301
+ this.checkerInit()
302
+ /*this.checkers=[
303
+ {f_longitude:114.718285,f_latitude:33.610584},
304
+ {f_longitude:114.713736,f_latitude:33.642387}
305
+ ]*/
306
+ /*this.level1=[
307
+ {f_longitude:114.68736,f_latitude:33.655248},
308
+ {f_longitude:114.716736,f_latitude:33.627523}
309
+ ]*/
310
+ /*this.level2=[
311
+ {f_longitude:114.676833,f_latitude:33.609726},
312
+ {f_longitude:114.684013,f_latitude:33.642387}
313
+ ]
314
+ this.level3=[
315
+ {f_longitude:114.71502,f_latitude:33.648675},
316
+ {f_longitude:114.725002,f_latitude:33.637242}
317
+ ]
318
+ this.problems=[
319
+ {f_longitude:114.696969,f_latitude:33.635241},
320
+ {f_longitude:114.68836,f_latitude:33.655248}
321
+ ]*/
322
+ /*let a1=[]
323
+ for(let i=0;i<this.checkers.length;i++){
324
+ a1.push({
325
+ lnglat: [this.checkers[i].f_longitude,this.checkers[i].f_latitude], //点标记位置
326
+ name: '安检员',
327
+ id:i,
328
+ rowstr:this.checkers[i]
329
+ })
330
+ }
331
+ // 将数组设置到 massMarks 图层
332
+ this.checkerMulchs.setData(a1);
333
+ // 将 massMarks 添加到地图实例
334
+ this.checkerMulchs.setMap(this.map);*/
335
+ let a2=[]
336
+ for(let i=0;i<this.level1.length;i++){
337
+ a2.push({
338
+ lnglat: [this.level1[i].f_longitude, this.level1[i].f_latitude], //点标记位置
339
+ name: '一级隐患',
340
+ id:i,
341
+ rowstr:this.level1[i]
342
+ })
343
+ }
344
+ // 将数组设置到 massMarks 图层
345
+ this.level1Mulchs.setData(a2);
346
+ // 将 massMarks 添加到地图实例
347
+ this.level1Mulchs.setMap(this.map);
348
+
349
+
350
+ let a3=[]
351
+ for(let i=0;i<this.level2.length;i++){
352
+ a3.push({
353
+ lnglat: [this.level2[i].f_longitude,this.level2[i].f_latitude], //点标记位置
354
+ name: '二级隐患',
355
+ id:i,
356
+ rowstr:this.level2[i]
357
+ })
358
+ }
359
+ // 将数组设置到 massMarks 图层
360
+ this.level2Mulchs.setData(a3);
361
+ // 将 massMarks 添加到地图实例
362
+ this.level2Mulchs.setMap(this.map);
363
+
364
+ let a4=[]
365
+ for(let i=0;i<this.level3.length;i++){
366
+ a4.push({
367
+ lnglat: [this.level3[i].f_longitude, this.level3[i].f_latitude], //点标记位置
368
+ name: '三级隐患',
369
+ id:i,
370
+ rowstr:this.level3[i]
371
+ })
372
+ }
373
+ // 将数组设置到 massMarks 图层
374
+ this.level3Mulchs.setData(a4);
375
+ // 将 massMarks 添加到地图实例
376
+ this.level3Mulchs.setMap(this.map);
377
+
378
+
379
+ let a5=[]
380
+ for(let i=0;i<this.problems.length;i++){
381
+ a5.push({
382
+ lnglat: [this.problems[i].f_longitude, this.problems[i].f_latitude], //点标记位置
383
+ name: '普通问题',
384
+ id:i,
385
+ rowstr:this.problems[i]
386
+ })
387
+ }
388
+ // 将数组设置到 massMarks 图层
389
+ this.problemsMulchs.setData(a5);
390
+ // 将 massMarks 添加到地图实例
391
+ this.problemsMulchs.setMap(this.map);
392
+ //组装安检员点位集合
393
+ },
394
+ //处理图层和覆盖物的显示隐藏
395
+ enableChange(vname,val){
396
+ //tag
397
+ //tag
398
+ switch(vname){
399
+ case 'satelliteEnable':
400
+ if(val){
401
+ this.map.add(this.satellite)
402
+ }else{
403
+ this.map.remove(this.satellite)
404
+ }
405
+ break;
406
+ case 'roadNetEnable':
407
+ if(val){
408
+ this.map.add(this.roadNet)
409
+ }else{
410
+ this.map.remove(this.roadNet)
411
+ }
412
+ break;
413
+ case 'checker':
414
+ if(val){
415
+ this.chekckOps.show()
416
+ }else{
417
+ this.chekckOps.hide()
418
+ }
419
+ break;
420
+ case 'level1':
421
+ if(val){
422
+ this.level1Mulchs.show()
423
+ }else{
424
+ this.level1Mulchs.hide()
425
+ }
426
+ break;
427
+ case 'level2':
428
+ if(val){
429
+ this.level2Mulchs.show()
430
+ }else{
431
+ this.level2Mulchs.hide()
432
+ }
433
+ break;
434
+ case 'level3':
435
+ if(val){
436
+ this.level3Mulchs.show()
437
+ }else{
438
+ this.level3Mulchs.hide()
439
+ }
440
+ break;
441
+ case 'problems':
442
+ if(val){
443
+ this.problemsMulchs.show()
444
+ }else{
445
+ this.problemsMulchs.hide()
446
+ }
447
+ break;
448
+ case 'townshipEnable':
449
+ this.showModal=true
450
+ this.townshipEnable=true
451
+ this.city_properEnable=false
452
+ break;
453
+ case 'city_properEnable':
454
+ this.showModal=true
455
+ this.city_properEnable=true
456
+ this.townshipEnable=false
457
+ break;
458
+ default:
459
+ }
460
+ },
461
+ closeModal(){
462
+ this.showModal=false
463
+ this.city_properEnable=false
464
+ this.townshipEnable=false
465
+ this.layers.townshipEnable=false
466
+ this.layers.city_properEnable=false
467
+ },
468
+ initMap(){
469
+ let that=this
470
+ this.map = new AMap.Map('check_map', {
471
+ zoom: 12,
472
+ center: [116.80030599999998, 37.65219],
473
+ showIndoorMap: false,
474
+ viewMode: '2D', //设置地图模式
475
+ lang: 'zh_cn', //设置地图语言类型
476
+ zindex: 99
477
+ });
478
+
479
+ let bounds = this.map.getBounds();
480
+ this.map.setLimitBounds(bounds);
481
+ // 异步加载地图插件
482
+ AMap.plugin(
483
+ ['AMap.ToolBar','AMap.Geolocation','AMap.Geocoder'], () => {//异步加载插件
484
+ // 自动定位插件
485
+ var geolocation = new AMap.Geolocation({
486
+ // 是否使用高精度定位,默认:true
487
+ enableHighAccuracy: true,
488
+ // 设置定位超时时间,默认:无穷大
489
+ showbutton: true,
490
+ //控制按钮的显示
491
+ timeout: 10000,
492
+ // 定位按钮的停靠位置的偏移量,默认:Pixel(10, 20)
493
+ buttonOffset: new AMap.Pixel(10, 20),
494
+ // 定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
495
+ //zoomToAccuracy: true,
496
+ // 定位按钮的排放位置, RB表示右下
497
+ buttonPosition: 'LB'
498
+ })
499
+ that.geocoder = new AMap.Geocoder({
500
+ radius: 500 //范围,默认:500
501
+ });
502
+ that.map.addControl(geolocation)
503
+ geolocation.getCurrentPosition();
504
+ that.map.addControl(new AMap.ToolBar()) //初始化工具插件
505
+ });
506
+ this.map.setDefaultCursor('move');
507
+ //this.map.setMapStyle('amap://styles/whitesmoke');
508
+ this.satellite=new AMap.TileLayer.Satellite()//卫星图层
509
+ this.roadNet=new AMap.TileLayer.RoadNet({opacity:0.8})//网路图层
510
+ //安检员位置集合
511
+ this.chekckOps=new AMap.OverlayGroup()
512
+ //初始化窗体
513
+ this.infoWindow = new AMap.InfoWindow({
514
+ anchor: 'bottom-center',
515
+ //isCustom: true, //使用自定义窗体
516
+ autoMove:true,
517
+ content: '',
518
+ offset: new AMap.Pixel(0, -25)
519
+ });
520
+ //安检员点位
521
+ /*this.checkerMulchs = new AMap.MassMarks([], {
522
+ opacity: 0.8, // 图层的透明度,取值范围[0,1],1代表完全不透明,0代表完全透明
523
+ zIndex: 111, //图层叠加的顺序值,0表示最底层。默认zIndex:5
524
+ cursor: 'pointer', //指定鼠标悬停时的鼠标样式,自定义cursor,IE仅支持cur/ani/ico格式,Opera不支持自定义cursor
525
+ //alwaysRender:false,
526
+ style: this.styleObject[0]
527
+ });
528
+ //tag
529
+ this.checkerMulchs.on('click',function (e) {
530
+ //tag)
531
+ let checkAddress='未获取到实时位置'
532
+ that.geocoder.getAddress(e.data.lnglat, function(status, result) {
533
+ if (status === 'complete'&& result.regeocode) {
534
+ checkAddress = result.regeocode.formattedAddress;
535
+ }else{
536
+ log.error('根据经纬度查询地址失败')
537
+ }
538
+ e.data.rowstr.checkAddress=checkAddress
539
+ let defectContent=that.getCheckerContent(e.data.rowstr)
540
+ that.infoWindow.setContent(defectContent)
541
+ that.infoWindow.open(that.map, e.data.lnglat);
542
+ });
543
+ })*/
544
+ //一级隐患点位
545
+ this.level1Mulchs=new AMap.MassMarks([], {
546
+ opacity: 0.8, // 图层的透明度,取值范围[0,1],1代表完全不透明,0代表完全透明
547
+ zIndex: 111, //图层叠加的顺序值,0表示最底层。默认zIndex:5
548
+ cursor: 'pointer', //指定鼠标悬停时的鼠标样式,自定义cursor,IE仅支持cur/ani/ico格式,Opera不支持自定义cursor
549
+ //alwaysRender:false,
550
+ style: this.styleObject[1]
551
+ });
552
+ this.level1Mulchs.on('click',function (e) {
553
+ //tag)
554
+ let defectContent=that.getDefectContent(e.data.rowstr)
555
+ that.infoWindow.setContent(defectContent)
556
+ that.infoWindow.open(that.map, e.data.lnglat);
557
+ })
558
+ //二级隐患点位
559
+ this.level2Mulchs=new AMap.MassMarks([], {
560
+ opacity: 0.8, // 图层的透明度,取值范围[0,1],1代表完全不透明,0代表完全透明
561
+ zIndex: 111, //图层叠加的顺序值,0表示最底层。默认zIndex:5
562
+ cursor: 'pointer', //指定鼠标悬停时的鼠标样式,自定义cursor,IE仅支持cur/ani/ico格式,Opera不支持自定义cursor
563
+ //alwaysRender:false,
564
+ style: this.styleObject[2]
565
+ });
566
+ this.level2Mulchs.on('click',function (e) {
567
+ //tag)
568
+ let defectContent=that.getDefectContent(e.data.rowstr)
569
+ that.infoWindow.setContent(defectContent)
570
+ that.infoWindow.open(that.map, e.data.lnglat);
571
+ })
572
+ //三级隐患点位
573
+ this.level3Mulchs=new AMap.MassMarks([], {
574
+ opacity: 0.8, // 图层的透明度,取值范围[0,1],1代表完全不透明,0代表完全透明
575
+ zIndex: 111, //图层叠加的顺序值,0表示最底层。默认zIndex:5
576
+ cursor: 'pointer', //指定鼠标悬停时的鼠标样式,自定义cursor,IE仅支持cur/ani/ico格式,Opera不支持自定义cursor
577
+ //alwaysRender:false,
578
+ style: this.styleObject[3]
579
+ });
580
+ this.level3Mulchs.on('click',function (e) {
581
+ //tag)
582
+ let defectContent=that.getDefectContent(e.data.rowstr)
583
+ that.infoWindow.setContent(defectContent)
584
+ that.infoWindow.open(that.map, e.data.lnglat);
585
+ })
586
+ //普通问题点位
587
+ this.problemsMulchs=new AMap.MassMarks([], {
588
+ opacity: 0.8, // 图层的透明度,取值范围[0,1],1代表完全不透明,0代表完全透明
589
+ zIndex: 111, //图层叠加的顺序值,0表示最底层。默认zIndex:5
590
+ cursor: 'pointer', //指定鼠标悬停时的鼠标样式,自定义cursor,IE仅支持cur/ani/ico格式,Opera不支持自定义cursor
591
+ //alwaysRender:false,
592
+ style: this.styleObject[4]
593
+ });
594
+ this.problemsMulchs.on('click',function (e) {
595
+ //tag)
596
+ let defectContent=that.getDefectContent(e.data.rowstr)
597
+ that.infoWindow.setContent(defectContent)
598
+ that.infoWindow.open(that.map, e.data.lnglat);
599
+ })
600
+
601
+
602
+ },
603
+ closeInfoWindow(){
604
+ this.infoWindow.close()
605
+ },
606
+ checkerInit(){
607
+ /*let marker1 = new AMap.Marker({
608
+ position: [114.574809,33.621501],
609
+ icon:'http://192.168.20.28:8400/image/anjianyuan.png'
610
+ });
611
+ //tag
612
+ marker1.setLabel({
613
+ //offset: new AMap.Pixel(20, 20), //设置文本标注偏移量
614
+ content: "<div class='info' style='background-color: #0b87e2'>何文强</div>", //设置文本标注内容
615
+ direction: 'bottom' //设置文本标注方位
616
+ })*/
617
+ let that = this
618
+ this.chekckOps.clearOverlays()
619
+ for(let j=0;j<this.checkers.length;j++){
620
+ //tag+"---"+this.checkers[j].f_longitude+"---"+this.checkers[j].f_latitude)
621
+ //let o={f_longitude:"114.72"+(Math.floor(Math.random()*(9999-1000))+1000),f_latitude:"33.56"+(Math.floor(Math.random()*(9999-1000))+1000),name:"hwq3",f_provider:"lbs",f_battery_level:38,f_bearing:"210.0",uploadTime:"2021-11-17 17:28:35",f_signal_strength:4,userid:"141701",f_speed:"0.0",f_internal_quote:8535,f_altitude:"9.72", f_traffic:345865}
622
+ let marker=new AMap.Marker({
623
+ //map: that.map,
624
+ offset:new AMap.Pixel(-18, -10),
625
+ position: [this.checkers[j].f_longitude,this.checkers[j].f_latitude],
626
+ icon:new AMap.Icon({
627
+ image: '/images/anjianyuan.png', //人员图标URL
628
+ imageOffset: new AMap.Pixel(0, 0), // 图标偏移位置
629
+ imageSize: new AMap.Size(36, 36) //图标大小
630
+ }),
631
+ label:{
632
+ //offset: new AMap.Pixel(20, 20), //设置文本标注偏移量
633
+ content: `<div class='info' style='background-color: rgb(0,185,255);color: #ffffff;padding: 5px;border-radius: 4px'>${this.checkers[j].name}</div>`, //设置文本标注内容
634
+ direction: 'bottom', //设置文本标注方位
635
+ offset:new AMap.Pixel(0, -4)
636
+ },
637
+ extData:this.checkers[j]
638
+ })
639
+ this.chekckOps.addOverlay(marker)
640
+
641
+ }
642
+ this.chekckOps.setMap(this.map)
643
+ this.chekckOps.on('click',function (e) {
644
+ let pe=e.target.getExtData()
645
+ for(let obj in pe){
646
+ //tag
647
+ }
648
+ let checkAddress='未获取到实时位置'
649
+ that.geocoder.getAddress([pe.f_longitude,pe.f_latitude], function(status, result) {
650
+ if (status === 'complete'&& result.regeocode) {
651
+ checkAddress = result.regeocode.formattedAddress;
652
+ }/*else{
653
+ log.error('根据经纬度查询地址失败')
654
+ }*/
655
+ pe.checkAddress=checkAddress
656
+ let defectContent=that.getCheckerContent(pe)
657
+ that.infoWindow.setContent(defectContent)
658
+ that.infoWindow.open(that.map, [pe.f_longitude,pe.f_latitude])
659
+ })
660
+ })
661
+ /*AMap.event.addListener(this.ops, 'click', function (e) {
662
+ //tag)
663
+ //that.infoWindow.open(that.map, marker.getPosition());
664
+ })*/
665
+ },
666
+ //获取当前时间的前两个小时
667
+ getNowFormatDate(house=0) {
668
+ //tag
669
+ let date = new Date();
670
+ let seperator1 = "-";
671
+ let seperator2 = ":";
672
+ if(house != 0){
673
+ date.setHours(date.getHours()-house)
674
+ }
675
+ let month = date.getMonth() + 1;
676
+ let strDate = date.getDate();
677
+ let hour = date.getHours();
678
+ let min = date.getMinutes();
679
+ let second = date.getSeconds();
680
+ if (month >= 1 && month <= 9) {
681
+ month = "0" + month;
682
+ }
683
+ if (strDate >= 0 && strDate <= 9) {
684
+ strDate = "0" + strDate;
685
+ }
686
+ if (hour >= 0 && hour <= 9) {
687
+ hour = "0" + hour;
688
+ }
689
+ if (min >= 0 && min <= 9) {
690
+ min = "0" + min;
691
+ }
692
+ if (second >= 0 && second <= 9) {
693
+ second = "0" + second;
694
+ }
695
+ let currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
696
+ + " " + hour + seperator2 + min
697
+ + seperator2 + second;
698
+ return currentdate;
699
+ },
700
+ toStandardTimeString() {
701
+ let dt = new Date()
702
+ let month = dt.getMonth()+1
703
+ let date = dt.getDate()
704
+ let hour = dt.getHours()
705
+ let min = dt.getMinutes()
706
+ let sec = dt.getSeconds()
707
+ return dt.getFullYear() + '-' + (month<10? '0'+ month : month) + '-' + (date<10? '0'+ date : date)
708
+ + ' ' + (hour<10? '0'+ hour : hour)
709
+ },
710
+ async safeRefresh(){
711
+ //tag
712
+ //获取所有安检员的点位集合-----测试数据
713
+ /*this.checkers=[]
714
+ this.checkers.push({f_longitude:114.7318,f_latitude:33.567126,name:"hwq1",f_provider:"lbs",f_battery_level:38,f_bearing:"210.0",uploadTime:"2021-11-17 17:28:35",f_signal_strength:4,userid:"141701",f_speed:"0.0",f_internal_quote:8535,f_altitude:"9.72", f_traffic:345865})
715
+ this.checkers.push({f_longitude:114.726801,f_latitude:33.566912,name:"hwq2",f_provider:"lbs",f_battery_level:38,f_bearing:"210.0",uploadTime:"2021-11-17 17:28:35",f_signal_strength:4,userid:"141701",f_speed:"0.0",f_internal_quote:8535,f_altitude:"9.72", f_traffic:345865})
716
+ this.checkers.push({f_longitude:114.723346,f_latitude:33.568932,name:"hwq3",f_provider:"lbs",f_battery_level:38,f_bearing:"210.0",uploadTime:"2021-11-17 17:28:35",f_signal_strength:4,userid:"141701",f_speed:"0.0",f_internal_quote:8535,f_altitude:"9.72", f_traffic:345865})
717
+ this.checkers.push({f_longitude:114.711741,f_latitude:33.585519,name:"hwq4",f_provider:"lbs",f_battery_level:38,f_bearing:"210.0",uploadTime:"2021-11-17 17:28:35",f_signal_strength:4,userid:"141701",f_speed:"0.0",f_internal_quote:8535,f_altitude:"9.72", f_traffic:345865})
718
+ this.checkers.push({f_longitude:114.756716,f_latitude:33.594528,name:"hwq5",f_provider:"lbs",f_battery_level:38,f_bearing:"210.0",uploadTime:"2021-11-17 17:28:35",f_signal_strength:4,userid:"141701",f_speed:"0.0",f_internal_quote:8535,f_altitude:"9.72", f_traffic:345865})
719
+ this.defectList.rows=[]
720
+ this.defectList.rows.push({"f_longitude":114.661358,"f_latitude":33.596897,"f_checker_name":"hwq2","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})
721
+ this.defectList.rows.push({"f_longitude":114.659985,"f_latitude":33.62892,"f_checker_name":"hwq3","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})
722
+ this.defectList.rows.push({"f_longitude":114.634579,"f_latitude":33.616627,"f_checker_name":"hwq4","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})
723
+ this.defectList.rows.push({"f_longitude":114.690197,"f_latitude":33.604332,"f_checker_name":"hwq5","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})
724
+ this.defectList.rows.push({"f_longitude":114.690197,"f_latitude":33.604332,"f_checker_name":"hwq5","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})
725
+ this.defectList.rows.push({"f_longitude":114.690197,"f_latitude":33.604332,"f_checker_name":"hwq5","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})
726
+ this.defectList.rows.push({"f_longitude":114.690197,"f_latitude":33.604332,"f_checker_name":"hwq5","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})
727
+ this.defectList.rows.push({"f_longitude":114.690197,"f_latitude":33.604332,"f_checker_name":"hwq5","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})
728
+ this.defectList.rows.push({"f_longitude":114.690197,"f_latitude":33.604332,"f_checker_name":"hwq5","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})
729
+ this.defectList.rows.push({"f_longitude":114.690197,"f_latitude":33.604332,"f_checker_name":"hwq5","f_address":"人民路东段百昌家园路西北1栋西单元4层西户","f_item_value":"是","f_item_name":"过墙、暗封等隐蔽部位锈蚀","f_upload_date":"2021-11-16 20:07:24","f_defect_level":"一级隐患","f_is_repaired":null})*/
730
+ await this.getNewData()
731
+ this.assemblyData()
732
+ }
733
+ },
734
+ computed:{
735
+
736
+ },
737
+ destroyed(){
738
+ window.clearInterval(this.intervalNum)
739
+ }
740
+ }
741
+
742
+ </script>
743
+
744
+ <style lang="less" scoped>
745
+
746
+ .safe_checkbox_sty{
747
+ vertical-align:text-bottom;
748
+ margin-right: 3px;
749
+
750
+ }
751
+ .safe_ul_sty{
752
+ list-style-type: none;
753
+ font-size: 13px;
754
+ padding-left: 5px;
755
+ }
756
+ .safe_li_sty{
757
+ font-size: 13px;
758
+ margin-top: 5px;
759
+ }
760
+ .safe_p{
761
+ white-space: nowrap;
762
+ overflow: hidden;
763
+ text-overflow: ellipsis;
764
+ margin: 0 0 0 10px;
765
+
766
+ font-size: 12px;
767
+ }
768
+ .safe_list_li{
769
+ margin-top: 5px;
770
+ background-color: #ffffff;
771
+ border: solid 1px #f0f4fa !important;
772
+ color: #666666 !important;
773
+ font-size: 1.3rem !important;
774
+ font-family: PINGFANG-MEDIUM !important;
775
+ padding: 8px;
776
+ }
777
+ .safe_list_li:hover{
778
+ background-color: rgb(203,234,241);
779
+ }
780
+ .safe_deimg{
781
+ vertical-align: text-bottom;
782
+ width: 15px;
783
+ margin-right: 3px;
784
+ }
785
+ </style>
786
+