Cockpit.vue 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158
  1. <!--可视化公共模板 林业-->
  2. <template>
  3. <div class="visual-con lifeline-con">
  4. <!--主体-->
  5. <div class="visual-body">
  6. <div class="life-header ">
  7. <span>四平市城市生命线监管平台</span>
  8. </div>
  9. <div class="con_left"></div>
  10. <div class="con_right">
  11. <div class="con_tckz">
  12. <div class="con_tit">图层控制</div>
  13. <div class="map_tab">
  14. <span v-for="(item,index) in tabList"
  15. :key="index"
  16. :class="{on:currentClass==index}"
  17. @click="toggleTab(index)">{{item}}</span>
  18. </div>
  19. <div class="con_tckz_div">
  20. <div class="tab_con" v-show="currentTab==0">
  21. <el-tabs v-model="activeName">
  22. <el-tab-pane label="燃气" name="first">
  23. <div class="rq_div tekz_div">
  24. <div class="tc_div">
  25. <div class="scrollx">
  26. <span>华生燃气:</span>
  27. <div class="scroll-container">
  28. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  29. <el-checkbox v-for="city in cities1_1" :label="city.url" :key="city.type">{{ city.type }}
  30. </el-checkbox>
  31. </el-checkbox-group>
  32. </div>
  33. </div>
  34. </div>
  35. <div class="tc_div">
  36. <div class="scrollx"><span>港华燃气:</span>
  37. <div class="scroll-container">
  38. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  39. <el-checkbox v-for="city in cities1_2" :label="city.url" :key="city.type">{{ city.type }}
  40. </el-checkbox>
  41. </el-checkbox-group>
  42. </div>
  43. </div>
  44. </div>
  45. <div class="tc_div">
  46. <div class="scrollx"><span>奥德燃气:</span>
  47. <div class="scroll-container">
  48. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  49. <el-checkbox v-for="city in cities1_3" :label="city.url" :key="city.type">{{ city.type }}
  50. </el-checkbox>
  51. </el-checkbox-group>
  52. </div>
  53. </div>
  54. </div>
  55. <div class="tc_div">
  56. <div class="scrollx"><span>润发燃气:</span>
  57. <div class="scroll-container">
  58. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  59. <el-checkbox v-for="city in cities1_4" :label="city.url" :key="city.type">{{ city.type }}
  60. </el-checkbox>
  61. </el-checkbox-group>
  62. </div>
  63. </div>
  64. </div>
  65. </div>
  66. <div class="map_btn">
  67. <button class="map_btn_span on" @click="showExcavation()">开挖</button>
  68. <button class="map_btn_span" @click="choseMeasuringDistance()">测距</button>
  69. <button class="map_btn_span" @click="choseMeasuringArea()">测面</button>
  70. <button class="map_btn_span" @click="choseMeasuringHeight()">测高</button>
  71. <!-- <button class="map_btn_span" @click="showExcavationAnalyze()">填挖方分析</button>-->
  72. </div>
  73. <a class="map_clear" @click="clearAll()">清除</a>
  74. </el-tab-pane>
  75. <el-tab-pane label="热力" name="second">
  76. <div class="gl_div tekz_div">
  77. <div class="tc_div">
  78. <div class="scrollx"><span>四平热力:</span>
  79. <div class="scroll-container">
  80. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  81. <el-checkbox v-for="city in cities5" :label="city.url" :key="city.type">{{ city.type }}
  82. </el-checkbox>
  83. </el-checkbox-group>
  84. </div>
  85. </div>
  86. </div>
  87. <div class="tc_div">
  88. <div class="scrollx"><span>四平电厂:</span>
  89. <div class="scroll-container">
  90. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  91. <el-checkbox v-for="city in cities6" :label="city.url" :key="city.type">{{ city.type }}
  92. </el-checkbox>
  93. </el-checkbox-group>
  94. </div>
  95. </div>
  96. </div>
  97. </div>
  98. <div class="map_btn">
  99. <button class="map_btn_span on" @click="showExcavation()">开挖</button>
  100. <button class="map_btn_span" @click="choseMeasuringDistance()">测距</button>
  101. <button class="map_btn_span" @click="choseMeasuringArea()">测面</button>
  102. <button class="map_btn_span" @click="choseMeasuringHeight()">测高</button>
  103. </div>
  104. <!-- <button class="map_btn_span" @click="showExcavationAnalyze()">填挖方分析</button>-->
  105. <a class="map_clear" @click="clearAll()">清除</a>
  106. </el-tab-pane>
  107. <el-tab-pane label="管廊" name="three">
  108. <div class="gs_div tekz_div">
  109. <div class="tc_div">
  110. <div class="scrollx"><span>管廊公司:</span>
  111. <div class="scroll-container">
  112. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  113. <el-checkbox v-for="city in cities2" :label="city.url" :key="city.type">{{ city.type }}
  114. </el-checkbox>
  115. </el-checkbox-group>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. <div class="map_btn">
  121. <button class="map_btn_span on" @click="showExcavation()">开挖</button>
  122. <button class="map_btn_span" @click="choseMeasuringDistance()">测距</button>
  123. <button class="map_btn_span" @click="choseMeasuringArea()">测面</button>
  124. <button class="map_btn_span" @click="choseMeasuringHeight()">测高</button>
  125. <!-- <button class="map_btn_span" @click="showExcavationAnalyze()">填挖方分析</button>-->
  126. </div>
  127. <a class="map_clear" @click="clearAll()">清除</a>
  128. </el-tab-pane>
  129. <el-tab-pane label="供水" name="four">
  130. <div class="ps_div tekz_div">
  131. <div class="tc_div">
  132. <div class="scrollx"><span>水务集团:</span>
  133. <div class="scroll-container">
  134. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  135. <el-checkbox v-for="city in cities3" :label="city.url" :key="city.type">{{ city.type }}
  136. </el-checkbox>
  137. </el-checkbox-group>
  138. </div>
  139. </div>
  140. </div>
  141. </div>
  142. <div class="map_btn">
  143. <button class="map_btn_span on" @click="showExcavation()">开挖</button>
  144. <button class="map_btn_span" @click="choseMeasuringDistance()">测距</button>
  145. <button class="map_btn_span" @click="choseMeasuringArea()">测面</button>
  146. <button class="map_btn_span" @click="choseMeasuringHeight()">测高</button>
  147. <!-- <button class="map_btn_span" @click="showExcavationAnalyze()">填挖方分析</button>-->
  148. </div>
  149. <a class="map_clear" @click="clearAll()">清除</a>
  150. </el-tab-pane>
  151. <el-tab-pane label="排水" name="five">
  152. <div class="rl_div tekz_div">
  153. <div class="tc_div">
  154. <div class="scrollx"><span>排水部门:</span>
  155. <div class="scroll-container">
  156. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  157. <el-checkbox v-for="city in cities4" :label="city.url" :key="city.type">{{ city.type }}
  158. </el-checkbox>
  159. </el-checkbox-group>
  160. </div>
  161. </div>
  162. </div>
  163. </div>
  164. <div class="map_btn">
  165. <button class="map_btn_span on" @click="showExcavation()">开挖</button>
  166. <button class="map_btn_span" @click="choseMeasuringDistance()">测距</button>
  167. <button class="map_btn_span" @click="choseMeasuringArea()">测面</button>
  168. <button class="map_btn_span" @click="choseMeasuringHeight()">测高</button>
  169. <!-- <button class="map_btn_span" @click="showExcavationAnalyze()">填挖方分析</button>-->
  170. </div>
  171. <a class="map_clear" @click="clearAll()">清除</a>
  172. </el-tab-pane>
  173. </el-tabs>
  174. </div>
  175. <div class="tab_con" v-show="currentTab==1">
  176. <el-tabs v-model="activeName">
  177. <el-tab-pane label="燃气2" name="first">
  178. <div class="rq_div tekz_div">
  179. <div class="tc_div">
  180. <div class="scrollx">
  181. <span>华生燃气:</span>
  182. <div class="scroll-container">
  183. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  184. <el-checkbox v-for="city in cities1_1" :label="city.url" :key="city.type">{{ city.type }}
  185. </el-checkbox>
  186. </el-checkbox-group>
  187. </div>
  188. </div>
  189. </div>
  190. <div class="tc_div">
  191. <div class="scrollx"><span>港华燃气:</span>
  192. <div class="scroll-container">
  193. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  194. <el-checkbox v-for="city in cities1_2" :label="city.url" :key="city.type">{{ city.type }}
  195. </el-checkbox>
  196. </el-checkbox-group>
  197. </div>
  198. </div>
  199. </div>
  200. <div class="tc_div">
  201. <div class="scrollx"><span>奥德燃气:</span>
  202. <div class="scroll-container">
  203. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  204. <el-checkbox v-for="city in cities1_3" :label="city.url" :key="city.type">{{ city.type }}
  205. </el-checkbox>
  206. </el-checkbox-group>
  207. </div>
  208. </div>
  209. </div>
  210. <div class="tc_div">
  211. <div class="scrollx"><span>润发燃气:</span>
  212. <div class="scroll-container">
  213. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  214. <el-checkbox v-for="city in cities1_4" :label="city.url" :key="city.type">{{ city.type }}
  215. </el-checkbox>
  216. </el-checkbox-group>
  217. </div>
  218. </div>
  219. </div>
  220. </div>
  221. <div class="map_btn">
  222. <button class="map_btn_span on" @click="showExcavation()">开挖</button>
  223. <button class="map_btn_span" @click="choseMeasuringDistance()">测距</button>
  224. <button class="map_btn_span" @click="choseMeasuringArea()">测面</button>
  225. <button class="map_btn_span" @click="choseMeasuringHeight()">测高</button>
  226. <!-- <button class="map_btn_span" @click="showExcavationAnalyze()">填挖方分析</button>-->
  227. </div>
  228. <a class="map_clear" @click="clearAll()">清除</a>
  229. </el-tab-pane>
  230. <el-tab-pane label="热力" name="second">
  231. <div class="gl_div tekz_div">
  232. <div class="tc_div">
  233. <div class="scrollx"><span>四平热力:</span>
  234. <div class="scroll-container">
  235. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  236. <el-checkbox v-for="city in cities5" :label="city.url" :key="city.type">{{ city.type }}
  237. </el-checkbox>
  238. </el-checkbox-group>
  239. </div>
  240. </div>
  241. </div>
  242. <div class="tc_div">
  243. <div class="scrollx"><span>四平电厂:</span>
  244. <div class="scroll-container">
  245. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  246. <el-checkbox v-for="city in cities6" :label="city.url" :key="city.type">{{ city.type }}
  247. </el-checkbox>
  248. </el-checkbox-group>
  249. </div>
  250. </div>
  251. </div>
  252. </div>
  253. <div class="map_btn">
  254. <button class="map_btn_span on" @click="showExcavation()">开挖</button>
  255. <button class="map_btn_span" @click="choseMeasuringDistance()">测距</button>
  256. <button class="map_btn_span" @click="choseMeasuringArea()">测面</button>
  257. <button class="map_btn_span" @click="choseMeasuringHeight()">测高</button>
  258. </div>
  259. <!-- <button class="map_btn_span" @click="showExcavationAnalyze()">填挖方分析</button>-->
  260. <a class="map_clear" @click="clearAll()">清除</a>
  261. </el-tab-pane>
  262. <el-tab-pane label="管廊" name="three">
  263. <div class="gs_div tekz_div">
  264. <div class="tc_div">
  265. <div class="scrollx"><span>管廊公司:</span>
  266. <div class="scroll-container">
  267. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  268. <el-checkbox v-for="city in cities2" :label="city.url" :key="city.type">{{ city.type }}
  269. </el-checkbox>
  270. </el-checkbox-group>
  271. </div>
  272. </div>
  273. </div>
  274. </div>
  275. <div class="map_btn">
  276. <button class="map_btn_span on" @click="showExcavation()">开挖</button>
  277. <button class="map_btn_span" @click="choseMeasuringDistance()">测距</button>
  278. <button class="map_btn_span" @click="choseMeasuringArea()">测面</button>
  279. <button class="map_btn_span" @click="choseMeasuringHeight()">测高</button>
  280. <!-- <button class="map_btn_span" @click="showExcavationAnalyze()">填挖方分析</button>-->
  281. </div>
  282. <a class="map_clear" @click="clearAll()">清除</a>
  283. </el-tab-pane>
  284. <el-tab-pane label="供水" name="four">
  285. <div class="ps_div tekz_div">
  286. <div class="tc_div">
  287. <div class="scrollx"><span>水务集团:</span>
  288. <div class="scroll-container">
  289. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  290. <el-checkbox v-for="city in cities3" :label="city.url" :key="city.type">{{ city.type }}
  291. </el-checkbox>
  292. </el-checkbox-group>
  293. </div>
  294. </div>
  295. </div>
  296. </div>
  297. <div class="map_btn">
  298. <button class="map_btn_span on" @click="showExcavation()">开挖</button>
  299. <button class="map_btn_span" @click="choseMeasuringDistance()">测距</button>
  300. <button class="map_btn_span" @click="choseMeasuringArea()">测面</button>
  301. <button class="map_btn_span" @click="choseMeasuringHeight()">测高</button>
  302. <!-- <button class="map_btn_span" @click="showExcavationAnalyze()">填挖方分析</button>-->
  303. </div>
  304. <a class="map_clear" @click="clearAll()">清除</a>
  305. </el-tab-pane>
  306. <el-tab-pane label="排水" name="five">
  307. <div class="rl_div tekz_div">
  308. <div class="tc_div">
  309. <div class="scrollx"><span>排水部门:</span>
  310. <div class="scroll-container">
  311. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  312. <el-checkbox v-for="city in cities4" :label="city.url" :key="city.type">{{ city.type }}
  313. </el-checkbox>
  314. </el-checkbox-group>
  315. </div>
  316. </div>
  317. </div>
  318. </div>
  319. <div class="map_btn">
  320. <button class="map_btn_span on" @click="showExcavation()">开挖</button>
  321. <button class="map_btn_span" @click="choseMeasuringDistance()">测距</button>
  322. <button class="map_btn_span" @click="choseMeasuringArea()">测面</button>
  323. <button class="map_btn_span" @click="choseMeasuringHeight()">测高</button>
  324. <!-- <button class="map_btn_span" @click="showExcavationAnalyze()">填挖方分析</button>-->
  325. </div>
  326. <a class="map_clear" @click="clearAll()">清除</a>
  327. </el-tab-pane>
  328. </el-tabs>
  329. </div>
  330. <div class="tab_con" v-show="currentTab==2">
  331. <el-tabs v-model="activeName">
  332. <el-tab-pane label="燃气3" name="first">
  333. <div class="rq_div tekz_div">
  334. <div class="tc_div">
  335. <div class="scrollx">
  336. <span>华生燃气:</span>
  337. <div class="scroll-container">
  338. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  339. <el-checkbox v-for="city in cities1_1" :label="city.url" :key="city.type">{{ city.type }}
  340. </el-checkbox>
  341. </el-checkbox-group>
  342. </div>
  343. </div>
  344. </div>
  345. <div class="tc_div">
  346. <div class="scrollx"><span>港华燃气:</span>
  347. <div class="scroll-container">
  348. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  349. <el-checkbox v-for="city in cities1_2" :label="city.url" :key="city.type">{{ city.type }}
  350. </el-checkbox>
  351. </el-checkbox-group>
  352. </div>
  353. </div>
  354. </div>
  355. <div class="tc_div">
  356. <div class="scrollx"><span>奥德燃气:</span>
  357. <div class="scroll-container">
  358. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  359. <el-checkbox v-for="city in cities1_3" :label="city.url" :key="city.type">{{ city.type }}
  360. </el-checkbox>
  361. </el-checkbox-group>
  362. </div>
  363. </div>
  364. </div>
  365. <div class="tc_div">
  366. <div class="scrollx"><span>润发燃气:</span>
  367. <div class="scroll-container">
  368. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  369. <el-checkbox v-for="city in cities1_4" :label="city.url" :key="city.type">{{ city.type }}
  370. </el-checkbox>
  371. </el-checkbox-group>
  372. </div>
  373. </div>
  374. </div>
  375. </div>
  376. <div class="map_btn">
  377. <button class="map_btn_span on" @click="showExcavation()">开挖</button>
  378. <button class="map_btn_span" @click="choseMeasuringDistance()">测距</button>
  379. <button class="map_btn_span" @click="choseMeasuringArea()">测面</button>
  380. <button class="map_btn_span" @click="choseMeasuringHeight()">测高</button>
  381. <!-- <button class="map_btn_span" @click="showExcavationAnalyze()">填挖方分析</button>-->
  382. </div>
  383. <a class="map_clear" @click="clearAll()">清除</a>
  384. </el-tab-pane>
  385. <el-tab-pane label="热力" name="second">
  386. <div class="gl_div tekz_div">
  387. <div class="tc_div">
  388. <div class="scrollx"><span>四平热力:</span>
  389. <div class="scroll-container">
  390. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  391. <el-checkbox v-for="city in cities5" :label="city.url" :key="city.type">{{ city.type }}
  392. </el-checkbox>
  393. </el-checkbox-group>
  394. </div>
  395. </div>
  396. </div>
  397. <div class="tc_div">
  398. <div class="scrollx"><span>四平电厂:</span>
  399. <div class="scroll-container">
  400. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  401. <el-checkbox v-for="city in cities6" :label="city.url" :key="city.type">{{ city.type }}
  402. </el-checkbox>
  403. </el-checkbox-group>
  404. </div>
  405. </div>
  406. </div>
  407. </div>
  408. <div class="map_btn">
  409. <button class="map_btn_span on" @click="showExcavation()">开挖</button>
  410. <button class="map_btn_span" @click="choseMeasuringDistance()">测距</button>
  411. <button class="map_btn_span" @click="choseMeasuringArea()">测面</button>
  412. <button class="map_btn_span" @click="choseMeasuringHeight()">测高</button>
  413. </div>
  414. <!-- <button class="map_btn_span" @click="showExcavationAnalyze()">填挖方分析</button>-->
  415. <a class="map_clear" @click="clearAll()">清除</a>
  416. </el-tab-pane>
  417. <el-tab-pane label="管廊" name="three">
  418. <div class="gs_div tekz_div">
  419. <div class="tc_div">
  420. <div class="scrollx"><span>管廊公司:</span>
  421. <div class="scroll-container">
  422. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  423. <el-checkbox v-for="city in cities2" :label="city.url" :key="city.type">{{ city.type }}
  424. </el-checkbox>
  425. </el-checkbox-group>
  426. </div>
  427. </div>
  428. </div>
  429. </div>
  430. <div class="map_btn">
  431. <button class="map_btn_span on" @click="showExcavation()">开挖</button>
  432. <button class="map_btn_span" @click="choseMeasuringDistance()">测距</button>
  433. <button class="map_btn_span" @click="choseMeasuringArea()">测面</button>
  434. <button class="map_btn_span" @click="choseMeasuringHeight()">测高</button>
  435. <!-- <button class="map_btn_span" @click="showExcavationAnalyze()">填挖方分析</button>-->
  436. </div>
  437. <a class="map_clear" @click="clearAll()">清除</a>
  438. </el-tab-pane>
  439. <el-tab-pane label="供水" name="four">
  440. <div class="ps_div tekz_div">
  441. <div class="tc_div">
  442. <div class="scrollx"><span>水务集团:</span>
  443. <div class="scroll-container">
  444. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  445. <el-checkbox v-for="city in cities3" :label="city.url" :key="city.type">{{ city.type }}
  446. </el-checkbox>
  447. </el-checkbox-group>
  448. </div>
  449. </div>
  450. </div>
  451. </div>
  452. <div class="map_btn">
  453. <button class="map_btn_span on" @click="showExcavation()">开挖</button>
  454. <button class="map_btn_span" @click="choseMeasuringDistance()">测距</button>
  455. <button class="map_btn_span" @click="choseMeasuringArea()">测面</button>
  456. <button class="map_btn_span" @click="choseMeasuringHeight()">测高</button>
  457. <!-- <button class="map_btn_span" @click="showExcavationAnalyze()">填挖方分析</button>-->
  458. </div>
  459. <a class="map_clear" @click="clearAll()">清除</a>
  460. </el-tab-pane>
  461. <el-tab-pane label="排水" name="five">
  462. <div class="rl_div tekz_div">
  463. <div class="tc_div">
  464. <div class="scrollx"><span>排水部门:</span>
  465. <div class="scroll-container">
  466. <el-checkbox-group v-model="checkedCities" @change="handleCheckedCities">
  467. <el-checkbox v-for="city in cities4" :label="city.url" :key="city.type">{{ city.type }}
  468. </el-checkbox>
  469. </el-checkbox-group>
  470. </div>
  471. </div>
  472. </div>
  473. </div>
  474. <div class="map_btn">
  475. <button class="map_btn_span on" @click="showExcavation()">开挖</button>
  476. <button class="map_btn_span" @click="choseMeasuringDistance()">测距</button>
  477. <button class="map_btn_span" @click="choseMeasuringArea()">测面</button>
  478. <button class="map_btn_span" @click="choseMeasuringHeight()">测高</button>
  479. <!-- <button class="map_btn_span" @click="showExcavationAnalyze()">填挖方分析</button>-->
  480. </div>
  481. <a class="map_clear" @click="clearAll()">清除</a>
  482. </el-tab-pane>
  483. </el-tabs>
  484. </div>
  485. </div>
  486. </div>
  487. </div>
  488. <!-- 地图 -->
  489. <supermap ref="supermap" style="width: 100%;height: 100vh;">
  490. </supermap>
  491. <!-- 底部按钮 -->
  492. <div class="life-btm-btn">
  493. <div class="btn-span on">
  494. <span>驾驶舱</span>
  495. </div>
  496. <div class="btn-span">
  497. <span>监测系统</span>
  498. </div>
  499. <div class="btn-span">
  500. <span>风险清单</span>
  501. </div>
  502. <div class="btn-span">
  503. <span>数据库</span>
  504. </div>
  505. <div class="btn-span">
  506. <span>监管平台</span>
  507. </div>
  508. <div class="btn-span">
  509. <span>运管体系</span>
  510. </div>
  511. </div>
  512. </div>
  513. </div>
  514. </template>
  515. <script>
  516. import Cookies from 'js-cookie'
  517. import supermap from '@/components/supermap-2.5d' //超图
  518. import {
  519. getUserProfile
  520. } from "@/api/system/user";
  521. import '../assets/styles/hz_body.css';
  522. import {
  523. selectConfigKey
  524. } from "@/api/system/config";
  525. let echarts = require('echarts')
  526. const cityOptions1_1 = [{ type: '企业', url: '' }, { type: '厂站', url: '' }, { type: '阀门', url: '' }, { type: '次高压管网', url: '/3D-huashengranqi-2/rest/realspace' }, { type: '中压管网', url: '' }];
  527. const cityOptions1_2 = [{ type: '企业', url: '' }, { type: '厂站', url: '' }, { type: '阀门', url: '' }, { type: '次高压管网', url: '/3D-ganghuaranqi/rest/realspace' }, { type: '中压管网', url: '' }];
  528. const cityOptions1_3 = [{ type: '企业', url: '' }, { type: '厂站', url: '' }, { type: '阀门', url: '' }, { type: '次高压管网', url: '/3D-aode/rest/realspace' }, { type: '中压管网', url: '' }];
  529. const cityOptions1_4 = [{ type: '企业', url: '' }, { type: '厂站', url: '' }, { type: '阀门', url: '' }, { type: '次高压管网', url: '' }, { type: '中压管网', url: '' }];
  530. const cityOptions2 = [{ type: '企业', url: '' }, { type: '管廊', url: '' }];
  531. const cityOptions3 = [{ type: '企业', url: '' }, { type: '阀门', url: '' }, { type: '泵站', url: '' }, { type: '管网', url: '' }];
  532. const cityOptions4 = [{ type: '企业', url: '' }, { type: '合流管', url: '/3D-PaiShui/rest/realspace' }, { type: '污水管', url: '' }, { type: '雨水管', url: '' }, { type: '雨水篦子', url: '' }];
  533. const cityOptions5 = [{ type: '企业', url: '' }, { type: '一次网', url: '/3D-reli_yici_erci_guanduan-2/rest/realspace' }, { type: '二次网', url: '' }, { type: '阀门', url: '' }];
  534. const cityOptions6 = [{ type: '企业', url: '' }, { type: '直供网', url: '' }];
  535. export default {
  536. components: {
  537. supermap,
  538. },
  539. metaInfo() {
  540. return {
  541. title: '全域视联态势感知平台',
  542. meta: [{
  543. charset: "utf-8"
  544. },
  545. {
  546. name: "viewport",
  547. content: "width=device-width, initial-scale=1.0,minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"
  548. }
  549. ]
  550. }
  551. },
  552. created() {
  553. },
  554. mounted() {
  555. // 初始化地图数据
  556. this.getSuperMapUrl();
  557. setTimeout(() => {
  558. this.title = '全域视联态势感知平台'
  559. }, 1000)
  560. },
  561. data() {
  562. return {
  563. input: '',
  564. activeName: 'first',
  565. checkedCities: [],
  566. cities1_1: cityOptions1_1,
  567. cities1_2: cityOptions1_2,
  568. cities1_3: cityOptions1_3,
  569. cities1_4: cityOptions1_4,
  570. cities2: cityOptions2,
  571. cities3: cityOptions3,
  572. cities4: cityOptions4,
  573. cities5: cityOptions5,
  574. cities6: cityOptions6,
  575. currentTab: 0,
  576. currentClass: 0,
  577. tabList:[ '四平市', '铁东区', '铁西区']
  578. }
  579. },
  580. methods: {
  581. getSuperMapUrl() {
  582. getUserProfile().then(response => {
  583. let mapDeptId = response.mapDeptId
  584. let num = 0;
  585. if (mapDeptId == "365") {
  586. num = 0;
  587. } else if (mapDeptId == "369") {
  588. num = 1;
  589. } else if (mapDeptId == "371") {
  590. num = 2;
  591. } else if (mapDeptId == "373") {
  592. num = 3;
  593. } else if (mapDeptId == "372") {
  594. num = 4;
  595. } else if (mapDeptId == "370") {
  596. num = 5;
  597. }
  598. this.$refs.supermap.removeAllviewer(mapDeptId, -1);
  599. });
  600. },
  601. toggleTab(current){
  602. this.currentTab = current;
  603. this.currentClass = current;
  604. },
  605. handleCheckedCities(checkedCities) {
  606. // checkedCities 是当前选中的所有选项的数组
  607. this.$refs.supermap.addLifelineOpen(this.checkedCities)
  608. },
  609. //开挖
  610. showExcavation() {
  611. this.$refs.supermap.excavation()
  612. },
  613. //开挖
  614. showExcavationAnalyze() {
  615. this.$refs.supermap.excavationAnalyze()
  616. },
  617. //测距
  618. choseMeasuringDistance() {
  619. this.$refs.supermap.choseMeasuringDistance()
  620. },
  621. //测面
  622. choseMeasuringArea() {
  623. this.$refs.supermap.choseMeasuringArea()
  624. },
  625. //测高
  626. choseMeasuringHeight() {
  627. this.$refs.supermap.choseMeasuringHeight()
  628. },
  629. //清除
  630. clearAll() {
  631. this.$refs.supermap.closeMeasuringAll()
  632. this.$refs.supermap.closeExcavationAll()
  633. this.checkedCities = []
  634. this.$refs.supermap.addLifelineOpen(this.checkedCities)
  635. }
  636. }
  637. }
  638. </script>
  639. <style>
  640. .el-tabs__item {
  641. border-radius: 25px;
  642. height: 33px;
  643. line-height: 33px;
  644. }
  645. .el-tabs__nav-next, .el-tabs__nav-prev {
  646. line-height: 33px;
  647. }
  648. .el-tabs__item.is-active {
  649. background: -webkit-gradient(linear, right top, left top, from(#051d2b4f), color-stop(#006ec861), to(#051d2b96));
  650. background: linear-gradient(to left, #051d2b4f, #006ec861, #051d2b96);
  651. -webkit-box-shadow: rgba(5, 103, 194, 0.8) 0px 0px 15px inset;
  652. box-shadow: rgb(5 103 194 / 80%) 0px 0px 15px inset;
  653. }
  654. .el-checkbox {
  655. margin-right: 15px !important;
  656. }
  657. .el-checkbox__inner {
  658. border: 1px solid #0fc5f2;
  659. width: 13px;
  660. height: 13px;
  661. background: none;
  662. }
  663. .el-checkbox__label {
  664. color: #b9e4ef;
  665. }
  666. .el-checkbox__inner::after {
  667. border-color: #0fc5f2;
  668. }
  669. .el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner {
  670. border-color: #0fc0ee;
  671. background: none;
  672. }
  673. .el-checkbox__input.is-checked + .el-checkbox__label {
  674. color: #0fc5f2;
  675. }
  676. .el-checkbox__input.is-disabled .el-checkbox__inner {
  677. background-color: #628c91;
  678. border-color: #407983;
  679. cursor: not-allowed;
  680. }
  681. </style>
  682. <style rel="stylesheet/scss" lang="scss" scoped>
  683. @import '@/assets/styles/base.scss';
  684. .lifeline-con {
  685. .life-header {
  686. width: 100%;
  687. height: 109px;
  688. background: url('../assets/index_img/header-img.png') no-repeat center;
  689. position: fixed;
  690. top: 0;
  691. font-family: pmzd;
  692. font-size: 42px;
  693. text-align: center;
  694. line-height: 80px;
  695. animation: headermove 1s ease-out;
  696. z-index: 999;
  697. span {
  698. line-height: 22px;
  699. font-weight: 400;
  700. color: #EFF8FC;
  701. background: linear-gradient(0deg, rgba(119, 186, 255, 1), rgba(255, 255, 255, 1));
  702. opacity: 1;
  703. -webkit-background-clip: text;
  704. -webkit-text-fill-color: transparent;
  705. }
  706. }
  707. //左右侧按钮
  708. .btn {
  709. display: flex;
  710. justify-content: center;
  711. width: 300px;
  712. height: 195px;
  713. transition: all 0.5s ease-in-out;
  714. .btn-left {
  715. display: flex;
  716. flex-direction: column;
  717. justify-content: center;
  718. align-items: center;
  719. cursor: pointer;
  720. img {
  721. width: 160px;
  722. height: 155px;
  723. margin-top: 1.25rem;
  724. }
  725. span {
  726. font-weight: 400;
  727. font-size: 24px;
  728. color: #EFF8FC;
  729. line-height: 28px;
  730. font-family: pmzd;
  731. }
  732. }
  733. .btn-right {
  734. display: flex;
  735. flex-direction: column;
  736. justify-content: center;
  737. .btn-right-con {
  738. cursor: pointer;
  739. width: 131px;
  740. height: 37px;
  741. text-align: center;
  742. background: url('../assets/index_img/name-bg.png') no-repeat center;
  743. font-weight: 400;
  744. font-size: 14px;
  745. line-height: 32px;
  746. color: #EFF8FC;
  747. transition: all .2s ease-in-out;
  748. }
  749. .btn-right-con:hover {
  750. filter: hue-rotate(-70deg);
  751. }
  752. }
  753. }
  754. .con_right{
  755. position: absolute;
  756. right: 20px;
  757. top:100px;
  758. z-index: 999;
  759. background: rgba(0, 10, 24, 0.67);
  760. width: 360px;
  761. .con_tckz {
  762. .con_tckz_div {
  763. margin: 0px 10px;
  764. .tekz_div {
  765. font-size: 14px;
  766. text-align: left;
  767. color: #fff;
  768. padding-bottom: 15px;
  769. border-bottom: 1px dashed #4a5958;
  770. margin-bottom: 15px;
  771. .tc_div {
  772. line-height: 40px;
  773. padding-left: 15px;
  774. display: flex;
  775. flex-direction: row;
  776. width: 100%;
  777. .scrollx {
  778. width: 100%;
  779. white-space: nowrap;
  780. display: flex;
  781. flex-direction: row;
  782. /*height: 40px;*/
  783. span {
  784. display: block;
  785. width: 80px;
  786. }
  787. .scroll-container {
  788. display: block;
  789. /*height: 40px;*/
  790. /*overflow-y: scroll;*/
  791. width: 220px;
  792. .el-checkbox-group {
  793. label {
  794. display: block;
  795. float: left;
  796. }
  797. }
  798. }
  799. }
  800. }
  801. }
  802. .scroll-container::-webkit-scrollbar {
  803. /*滚动条整体样式*/
  804. width: 6px !important; /*高宽分别对应横竖滚动条的尺寸*/
  805. height: 1px !important;
  806. display: block !important;
  807. cursor: pointer;
  808. }
  809. .scroll-container::-webkit-scrollbar-thumb {
  810. /*滚动条里面小方块*/
  811. border-radius: 10px;
  812. height: 15px;
  813. -webkit-box-shadow: inset 0 0 5px rgba(0, 22, 55, 0.87);
  814. // background: #E5E5E5;
  815. background: rgba(38, 235, 255, 0.5);
  816. }
  817. .scroll-container::-webkit-scrollbar-track {
  818. /*滚动条里面轨道*/
  819. -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
  820. border-radius: 10px;
  821. background: rgba(10, 37, 64, 0.75);
  822. }
  823. .map_btn button {
  824. display: inline-block;
  825. background: url("../assets/images/sixZ/sixzbtn1.png") no-repeat center;
  826. background-size: 100% 100%;
  827. padding: 8px 20px;
  828. margin: 8px 8px 8px 0px;
  829. font-size: 14px;
  830. color: #fff;
  831. cursor: pointer;
  832. }
  833. .map_btn button.on {
  834. background: url("../assets/images/sixZ/sixzbtn1_on.png") no-repeat center;
  835. background-size: 100% 100%;
  836. box-shadow: none;
  837. }
  838. .map_clear {
  839. background: #09335f;
  840. color: #a4bfe2;
  841. font-size: 14px;
  842. float: right;
  843. margin: 20px 0px;
  844. display: inline-block;
  845. padding: 6px 18px;
  846. }
  847. .map_clear:hover {
  848. background: #0a5184;
  849. }
  850. }
  851. }
  852. }
  853. .btn:hover {
  854. filter: brightness(180%);
  855. }
  856. .btn-r {
  857. position: absolute;
  858. left: 16%;
  859. top: 15%;
  860. animation: btnRun 1s , movetop 3.5s 1s infinite;
  861. }
  862. .btn-rq {
  863. position: absolute;
  864. right: 12%;
  865. top: 12%;
  866. animation: btnRun 1s ,movetop 4s 1s infinite;
  867. }
  868. .btn-ps {
  869. position: absolute;
  870. left: 5%;
  871. top: 38%;
  872. animation: btnRun 1s ,movetop2 5s 1s infinite;
  873. }
  874. .btn-ql {
  875. position: absolute;
  876. left: 12%;
  877. top: 60%;
  878. animation: btnRun 1s ,movetop2 3s 1s infinite;
  879. }
  880. .btn-gl {
  881. position: absolute;
  882. right: 6%;
  883. top: 38%;
  884. animation: btnRun 1s ,movetop2 4s 1s infinite;
  885. }
  886. .btn-gs {
  887. position: absolute;
  888. right: 16%;
  889. top: 59%;
  890. animation: btnRun 1s , movetop2 2s 1s infinite;
  891. }
  892. //雷达
  893. .radar {
  894. display: flex;
  895. position: absolute;
  896. left: 50%;
  897. top: 40%;
  898. transform: translate(-50%, -40%);
  899. justify-content: center;
  900. align-items: center;
  901. width: 726px;
  902. height: 726px;
  903. animation: radarOP 1s ease-in;
  904. }
  905. .rotating-bg {
  906. position: relative;
  907. z-index: 100;
  908. animation: rotatebg 2s infinite linear;
  909. }
  910. .rotating-image {
  911. position: relative;
  912. animation: rotate 5s infinite linear;
  913. z-index: 150;
  914. }
  915. //底部按钮5个
  916. .life-btm-btn{
  917. position: absolute;
  918. bottom: 0;
  919. width: 100%;
  920. display: flex;
  921. justify-content: center;
  922. align-items: center;
  923. .btn-span:nth-child(1){
  924. animation: btnmove 1s ;
  925. }
  926. .btn-span:nth-child(2){
  927. animation: btnmove 1.2s ;
  928. }
  929. .btn-span:nth-child(3){
  930. animation: btnmove 1.4s ;
  931. }
  932. .btn-span:nth-child(4){
  933. animation: btnmove 1.6s ;
  934. }
  935. .btn-span:nth-child(5){
  936. animation: btnmove 1.8s ;
  937. }
  938. .btn-span:nth-child(6){
  939. animation: btnmove 2s ;
  940. }
  941. .btn-span{
  942. width: 166px;
  943. height: 50px;
  944. background:url('../assets/index_img/btm-btn.png') no-repeat center;
  945. text-align: center;
  946. display: flex;
  947. justify-content: center;
  948. align-items: center;
  949. margin: 10px 5px;
  950. transition: all 0.3s ease-in-out ;
  951. cursor: pointer;
  952. span{
  953. font-size: 20px;
  954. color: #EFF2FF;
  955. font-family: ysbth;
  956. line-height: 40px;
  957. background: linear-gradient(0deg, rgba(49,190,255,1), rgba(239,252,254,1), rgba(239,252,254,1));
  958. -webkit-background-clip: text;
  959. -webkit-text-fill-color: transparent;
  960. }
  961. }
  962. .btn-span:hover{
  963. filter: brightness(170%) hue-rotate(-20deg);
  964. transform: translateY(-10px);
  965. }
  966. .btn-span.on{
  967. filter: brightness(170%) hue-rotate(-20deg);
  968. box-shadow: none;
  969. }
  970. }
  971. .btm-btn2{
  972. position: absolute;
  973. bottom: 80px;
  974. width: 100%;
  975. display: flex;
  976. justify-content: center;
  977. align-items: center;
  978. cursor: pointer;
  979. animation: btmmove2 1s ease-out;
  980. .btn-span2{
  981. margin: 0 10px;
  982. display: flex;
  983. flex-direction: column;
  984. align-items: center;
  985. transition: all 0.3s;
  986. img{
  987. width: 150px;
  988. height: 100px;
  989. }
  990. span{
  991. font-size: 20px;
  992. color: #EFF2FF;
  993. font-family: ysbth;
  994. line-height: 40px;
  995. background: linear-gradient(0deg, rgba(49,190,255,1), rgba(239,252,254,1), rgba(239,252,254,1));
  996. -webkit-background-clip: text;
  997. -webkit-text-fill-color: transparent;
  998. margin-top: -10px;
  999. display: block;
  1000. text-align: center;
  1001. }
  1002. }
  1003. .btn-span2:hover{
  1004. filter: brightness(170%) hue-rotate(-20deg);
  1005. transform: translateY(-10px);
  1006. }
  1007. }
  1008. }
  1009. .con_tit {
  1010. font-size: 18px;
  1011. font-family: 'ysbth';
  1012. color: #fff;
  1013. padding-left: 30px;
  1014. background: url("../assets/images/sixZ/sixztit.png") no-repeat left;
  1015. background-size: 100% 100%;
  1016. height: 35px;
  1017. line-height: 35px;
  1018. margin-bottom: 15px;
  1019. }
  1020. .map_tab {
  1021. display: flex;
  1022. flex-direction: row;
  1023. justify-content: space-around;
  1024. margin-bottom: 25px !important;
  1025. border-bottom: 2px solid rgba(13, 107, 179, 0.53);
  1026. span {
  1027. display: block;
  1028. /*background: rgba(13, 107, 179, 0.53);*/
  1029. padding: 8px 20px;
  1030. color: #fff;
  1031. font-size: 16px;
  1032. text-shadow: 0px 0px 4px #0bf3f7;
  1033. cursor: pointer;
  1034. }
  1035. .on {
  1036. color: #0bf3f7;
  1037. background: none !important;
  1038. box-shadow: none;
  1039. font-weight: bold;
  1040. position: relative;
  1041. }
  1042. .on::after {
  1043. content: '';
  1044. display: block;
  1045. position: absolute;
  1046. bottom: -10px; /* 下三角位于链接的底部 */
  1047. left: 50%; /* 水平居中 */
  1048. width: 0;
  1049. height: 0;
  1050. border-left: 9px solid transparent; /* 左边透明 */
  1051. border-right: 9px solid transparent; /* 右边透明 */
  1052. border-top: 10px solid rgba(13, 107, 179, 0.53); /* 上边是三角形颜色 */
  1053. transform: translateX(-50%); /* 确保三角形中心对齐链接的中心 */
  1054. }
  1055. }
  1056. </style>