main.vue 27 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027
  1. <template>
  2. <div class="main-data data-building">
  3. <div class="left">
  4. <div class="left-cont" v-if="leftShow">
  5. <div class="left-top" @click="showDialog(1)" @mouseover="showDialog(1)">
  6. <div class="cont-title-area">
  7. <img
  8. class="cont-title-bg"
  9. src="@/assets/images/main/cont_title_bg.png"
  10. alt=""
  11. />
  12. <div class="cont-title">楼宇中控</div>
  13. </div>
  14. <div class="components-itemLong">
  15. <energy-rate :appOrg="appOrg"></energy-rate>
  16. </div>
  17. </div>
  18. <!-- <div class="left-bottom" @click="showDialog(2)" @mouseover="showDialog(2)">
  19. <div class="cont-title-area">
  20. <img
  21. class="cont-title-bg"
  22. src="@/assets/images/main/cont_title_bg.png"
  23. alt=""
  24. />
  25. <div class="cont-title">物业巡更信息</div>
  26. </div>
  27. <div class="components-item bg3">
  28. <building-save :key="appOrg"></building-save>
  29. </div>
  30. </div> -->
  31. </div>
  32. </div>
  33. <div class="middle">
  34. <img v-if="showMap" src="@/assets/zhang/building/building.png" width="50" style="position: absolute;top: 125px;left: 20px;cursor: pointer">
  35. <!-- <province v-if="showMap"
  36. ref="province"
  37. @mapClick="onMapClick"></province> -->
  38. <img
  39. v-if="showMap"
  40. class="build"
  41. src="@/assets/images/build.png"
  42. alt=""
  43. />
  44. <img
  45. v-if="showLocal && curBodex == 0"
  46. class="build"
  47. src="@/assets/images/layers23.png"
  48. alt=""
  49. />
  50. <img
  51. v-if="showLocal && curBodex == 1"
  52. class="build"
  53. src="@/assets/images/layers22.png"
  54. alt=""
  55. />
  56. <img
  57. v-if="showLocal && curBodex == 2"
  58. class="build"
  59. src="@/assets/images/layers21.png"
  60. alt=""
  61. />
  62. <img
  63. v-if="showLocal && curBodex == 3"
  64. class="build"
  65. src="@/assets/images/layers20.png"
  66. alt=""
  67. />
  68. <img
  69. v-if="showLocal && curBodex == 4"
  70. class="build"
  71. src="@/assets/images/layers19.png"
  72. alt=""
  73. />
  74. <img
  75. v-if="showLocal && curBodex == 5"
  76. class="build"
  77. src="@/assets/images/layers18.png"
  78. alt=""
  79. />
  80. <img
  81. v-if="showLocal && curBodex == 6"
  82. class="build"
  83. src="@/assets/images/layers17.png"
  84. alt=""
  85. />
  86. <img
  87. v-if="showLocal && curBodex == 7"
  88. class="build"
  89. src="@/assets/images/layers16.png"
  90. alt=""
  91. />
  92. <img
  93. v-if="showLocal && curBodex == 8"
  94. class="build"
  95. src="@/assets/images/layers15.png"
  96. alt=""
  97. />
  98. <img
  99. v-if="showLocal && curBodex == 9"
  100. class="build"
  101. src="@/assets/images/layers14.png"
  102. alt=""
  103. />
  104. <img
  105. v-if="showLocal && curBodex == 10"
  106. class="build"
  107. src="@/assets/images/layers13.png"
  108. alt=""
  109. />
  110. <img
  111. v-if="showLocal && curBodex == 11"
  112. class="build"
  113. src="@/assets/images/layers12.png"
  114. alt=""
  115. />
  116. <img
  117. v-if="showLocal && curBodex == 12"
  118. class="build"
  119. src="@/assets/images/layers11.png"
  120. alt=""
  121. />
  122. <img
  123. v-if="showLocal && curBodex == 13"
  124. class="build"
  125. src="@/assets/images/layers10.png"
  126. alt=""
  127. />
  128. <img
  129. v-if="showLocal && curBodex == 14"
  130. class="build"
  131. src="@/assets/images/layers9.png"
  132. alt=""
  133. />
  134. <img
  135. v-if="showLocal && curBodex == 15"
  136. class="build"
  137. src="@/assets/images/layers8.png"
  138. alt=""
  139. />
  140. <img
  141. v-if="showLocal && curBodex == 16"
  142. class="build"
  143. src="@/assets/images/layers7.png"
  144. alt=""
  145. />
  146. <img
  147. v-if="showLocal && curBodex == 17"
  148. class="build"
  149. src="@/assets/images/layers6.png"
  150. alt=""
  151. />
  152. <img
  153. v-if="showLocal && curBodex == 18"
  154. class="build"
  155. src="@/assets/images/layers5.png"
  156. alt=""
  157. />
  158. <img
  159. v-if="showLocal && curBodex == 19"
  160. class="build"
  161. src="@/assets/images/layers4.png"
  162. alt=""
  163. />
  164. <img
  165. v-if="showLocal && curBodex == 20"
  166. class="build"
  167. src="@/assets/images/layers3.png"
  168. alt=""
  169. />
  170. <img
  171. v-if="showLocal && curBodex == 21"
  172. class="build"
  173. src="@/assets/images/layers2.png"
  174. alt=""
  175. />
  176. <img
  177. v-if="showLocal && curBodex == 22"
  178. class="build"
  179. src="@/assets/images/layers1.png"
  180. alt=""
  181. />
  182. <img
  183. v-if="showLocal && curBodex == 23"
  184. class="build"
  185. src="@/assets/images/layers-1.png"
  186. alt=""
  187. />
  188. <img
  189. v-if="showLocal && curBodex == 24"
  190. class="build"
  191. src="@/assets/images/layers-2.png"
  192. alt=""
  193. />
  194. <img
  195. v-if="showLocal && curBodex == 25"
  196. class="build"
  197. src="@/assets/images/layers-3.png"
  198. alt=""
  199. />
  200. <!-- 楼层按钮 -->
  201. <div class="right-area">
  202. <div class="leftNav" v-if="leftNav">
  203. <div
  204. :class="['model1', 0 == curBodex ? 'cur' : '']"
  205. @click="chooseBox(0, 'showMap')"
  206. >
  207. 23层
  208. </div>
  209. <div
  210. :class="['model1', 1 == curBodex ? 'cur' : '']"
  211. @click="chooseBox(1, 'showLocal')"
  212. >
  213. 22层
  214. </div>
  215. <div
  216. :class="['model1', 2 == curBodex ? 'cur' : '']"
  217. @click="chooseBox(2, 'showLocal')"
  218. >
  219. 21层
  220. </div>
  221. <div
  222. :class="['model1', 3 == curBodex ? 'cur' : '']"
  223. @click="chooseBox(3, 'showLocal')"
  224. >
  225. 20层
  226. </div>
  227. <div
  228. :class="['model1', 4 == curBodex ? 'cur' : '']"
  229. @click="chooseBox(4, 'showLocal')"
  230. >
  231. 19层
  232. </div>
  233. <div
  234. :class="['model1', 5 == curBodex ? 'cur' : '']"
  235. @click="chooseBox(5, 'showLocal')"
  236. >
  237. 18层
  238. </div>
  239. <div
  240. :class="['model1', 6 == curBodex ? 'cur' : '']"
  241. @click="chooseBox(6, 'showLocal')"
  242. >
  243. 17层
  244. </div>
  245. <div
  246. :class="['model1', 7 == curBodex ? 'cur' : '']"
  247. @click="chooseBox(7, 'showLocal')"
  248. >
  249. 16层
  250. </div>
  251. <div
  252. :class="['model1', 8 == curBodex ? 'cur' : '']"
  253. @click="chooseBox(8, 'showLocal')"
  254. >
  255. 15层
  256. </div>
  257. <div
  258. :class="['model1', 9 == curBodex ? 'cur' : '']"
  259. @click="chooseBox(9, 'showLocal')"
  260. >
  261. 14层
  262. </div>
  263. <div
  264. :class="['model1', 10 == curBodex ? 'cur' : '']"
  265. @click="chooseBox(10, 'showLocal')"
  266. >
  267. 13层
  268. </div>
  269. <div
  270. :class="['model1', 11 == curBodex ? 'cur' : '']"
  271. @click="chooseBox(11, 'showLocal')"
  272. >
  273. 12层
  274. </div>
  275. <div
  276. :class="['model1', 12 == curBodex ? 'cur' : '']"
  277. @click="chooseBox(12, 'showLocal')"
  278. >
  279. 11层
  280. </div>
  281. <div
  282. :class="['model1', 13 == curBodex ? 'cur' : '']"
  283. @click="chooseBox(13, 'showLocal')"
  284. >
  285. 10层
  286. </div>
  287. <div
  288. :class="['model1', 14 == curBodex ? 'cur' : '']"
  289. @click="chooseBox(14, 'showLocal')"
  290. >
  291. 09层
  292. </div>
  293. <div
  294. :class="['model1', 15 == curBodex ? 'cur' : '']"
  295. @click="chooseBox(15, 'showLocal')"
  296. >
  297. 08层
  298. </div>
  299. <div
  300. :class="['model1', 16 == curBodex ? 'cur' : '']"
  301. @click="chooseBox(16, 'showLocal')"
  302. >
  303. 07层
  304. </div>
  305. <div
  306. :class="['model1', 17 == curBodex ? 'cur' : '']"
  307. @click="chooseBox(17, 'showLocal')"
  308. >
  309. 06层
  310. </div>
  311. <div
  312. :class="['model1', 18 == curBodex ? 'cur' : '']"
  313. @click="chooseBox(18, 'showLocal')"
  314. >
  315. 05层
  316. </div>
  317. <div
  318. :class="['model1', 19== curBodex ? 'cur' : '']"
  319. @click="chooseBox(19, 'showLocal')"
  320. >
  321. 04层
  322. </div>
  323. <div
  324. :class="['model1', 20 == curBodex ? 'cur' : '']"
  325. @click="chooseBox(20, 'showLocal')"
  326. >
  327. 03层
  328. </div>
  329. <div
  330. :class="['model1', 21 == curBodex ? 'cur' : '']"
  331. @click="chooseBox(21, 'showLocal')"
  332. >
  333. 02层
  334. </div>
  335. <div
  336. :class="['model1',22 == curBodex ? 'cur' : '']"
  337. @click="chooseBox(22, 'showLocal')"
  338. >
  339. 01层
  340. </div>
  341. <div
  342. :class="['model1', 23 == curBodex ? 'cur' : '']"
  343. @click="chooseBox(23, 'showLocal')"
  344. >
  345. B1层
  346. </div>
  347. <div
  348. :class="['model1', 24 == curBodex ? 'cur' : '']"
  349. @click="chooseBox(24, 'showLocal')"
  350. >
  351. B2层
  352. </div>
  353. <div
  354. :class="['model1', 25 == curBodex ? 'cur' : '']"
  355. @click="chooseBox(25, 'showLocal')"
  356. >
  357. B3层
  358. </div>
  359. </div>
  360. </div>
  361. <!-- 返回按钮 -->
  362. <div class="bottom-area flex-row align-items-center space-between">
  363. <!-- <div class="bottom-left flex-row align-items-center">
  364. <div class="left-item">
  365. <el-cascader
  366. v-model="curCompany"
  367. :options="company"
  368. @change="handleCompanyChange"
  369. placeholder="单位"
  370. :show-all-levels="false"
  371. >
  372. <template slot-scope="{ node, data }">
  373. <div style="display: flex; align-items: center">
  374. <img
  375. v-if="data.label == '山西省公司(本部)'"
  376. src="../../../assets/images/main/tiaozhuanlouyu.png"
  377. style="width: 15px; margin-right: 10px"
  378. />
  379. <span
  380. v-else-if="data.value == '1A001' || data.value == '1A002' || data.value == '1A004' || data.value == '1A005'"
  381. style="
  382. display: inline-block;
  383. width: 10px;
  384. height: 10px;
  385. border-radius: 50%;
  386. margin-right: 10px;
  387. background: rgb(255, 180, 74);
  388. "
  389. ></span>
  390. <span
  391. v-else-if="data.value.length == 5 && data.value != '10001'"
  392. style="
  393. display: inline-block;
  394. width: 10px;
  395. height: 10px;
  396. border-radius: 50%;
  397. margin-right: 10px;
  398. background: rgb(74, 194, 29);
  399. "
  400. ></span>
  401. <span
  402. v-else-if="data.value.length == 7"
  403. style="
  404. display: inline-block;
  405. width: 10px;
  406. height: 10px;
  407. border-radius: 50%;
  408. margin-right: 10px;
  409. background: rgb(99, 235, 255);
  410. "
  411. ></span>
  412. <span>{{ data.label }}</span>
  413. </div>
  414. </template>
  415. </el-cascader>
  416. </div>
  417. <div class="office" disabled>办公区</div>
  418. </div> -->
  419. <div class="bottom-right">
  420. <img
  421. v-if="showBack"
  422. @click="onBack"
  423. src="@/assets/images/main/back.png"
  424. class="back"
  425. />
  426. </div>
  427. </div>
  428. </div>
  429. <div class="right">
  430. <div class="right-cont" v-if="rightShow">
  431. <div class="right-top" @click="showDialog(5)" @mouseover="showDialog(5)">
  432. <div class="cont-title-area">
  433. <img
  434. class="cont-title-bg"
  435. src="@/assets/images/main/cont_title_bg.png"
  436. alt=""
  437. />
  438. <div class="cont-title">办公能耗</div>
  439. </div>
  440. <div class="components-item">
  441. <camera-data :key="appOrg"></camera-data>
  442. </div>
  443. </div>
  444. <div class="right-bottom" @click="showDialog(4)" @mouseover="showDialog(4)">
  445. <div class="cont-title-area">
  446. <img
  447. class="cont-title-bg"
  448. src="@/assets/images/main/cont_title_bg.png"
  449. alt=""
  450. />
  451. <div class="cont-title">物业巡更信息</div>
  452. </div>
  453. <div class="components-item bg3">
  454. <unit-monitor :key="appOrg"></unit-monitor>
  455. </div>
  456. </div>
  457. </div>
  458. </div>
  459. <!--弹出层-->
  460. <div :class="dialogType < 3 ? 'dialog':'dialog-r'" v-if="dialogShow" @click="closeDialog">
  461. <energy-rate-dialog v-if="dialogType === 1" @abnormalClick="onAbnormalClick" @closeDialog="closeDialog" :appOrg="appOrg"></energy-rate-dialog>
  462. <building-save-dialog v-if="dialogType === 2" @closeDialog="closeDialog"></building-save-dialog>
  463. <camera-data-dialog v-if="dialogType === 5" @closeDialog="closeDialog"></camera-data-dialog >
  464. <unit-monitor-dialog v-if="dialogType === 4" @closeDialog="closeDialog" :monitorName="monitorName"></unit-monitor-dialog>
  465. </div>
  466. <!-- 监控区域 -->
  467. <!-- <div v-if="showCenter" class="dialog-2">
  468. <div class="dialog-center">
  469. <monitor-live
  470. v-if="showType === 1"
  471. @closeMonitor="onCloseMonitor"
  472. @chooseAllMonitor="onChooseAllMonitor"
  473. :monitorInfo="this.monitorInfo"
  474. ></monitor-live>
  475. <monitor-live-list
  476. v-if="showType === 2"
  477. @closeMonitor="onCloseMonitor"
  478. @chooseMonitor="chooseMonitorBack"
  479. :monitorInfo="this.monitorInfo"
  480. :monitorName="monitorName"
  481. ></monitor-live-list>
  482. </div>
  483. </div> -->
  484. <!-- 设备列表 -->
  485. <div v-if="showCenter" class="dialog-2">
  486. <!-- 告警设备列表 -->
  487. <div class="dialog-center">
  488. <alarm-Device
  489. v-if="showType === 1"
  490. @closeFoods="onCloseFoods"
  491. :appOrg="appOrg"
  492. :power="power"
  493. ></alarm-Device>
  494. <consumption-List
  495. v-if="showType === 2"
  496. @closeFoods="onCloseFoods"
  497. :appOrg="appOrg"
  498. :power="power"
  499. >
  500. </consumption-List>
  501. <distribution-List
  502. v-if="showType === 3"
  503. @closeFoods="onCloseFoods"
  504. :appOrg="appOrg"
  505. :power="power"
  506. :customParams="customParams"
  507. >
  508. </distribution-List>
  509. </div>
  510. </div>
  511. </div>
  512. </template>
  513. <script>
  514. import EnergyRate from "./energyRate.vue";
  515. import BuildingSave from "./buildingSave.vue";
  516. import CameraData from "./cameraData.vue";
  517. import CameraDataDialog from "./cameraDataDialog.vue";
  518. import UnitMonitor from "./unitMonitor.vue";
  519. import Province from "../map/province.vue";
  520. import EnergyRateDialog from "./energyRateDialog.vue";
  521. import BuildingSaveDialog from "./buildingSaveDialog.vue";
  522. import UnitMonitorDialog from "./unitMonitorDialog.vue";
  523. import MonitorLiveList from "@/views/pad/building/monitorLiveList.vue";
  524. import MonitorLive from "@/views/pad/building/monitorLive.vue";
  525. import AlarmDevice from "./alarmDevice.vue";
  526. import ConsumptionList from "@/views/pad/building/consumptionList.vue";
  527. import DistributionList from "@/views/pad/building/distributionList.vue";
  528. // 引入json数据
  529. import company from "../data/company.json";
  530. import EmployeeProfile from "@/views/pad/service/employeeProfile.vue";
  531. export default {
  532. name: "BuildingMain",
  533. components: {
  534. EmployeeProfile,
  535. MonitorLive, MonitorLiveList,
  536. EnergyRate,
  537. CameraDataDialog,
  538. BuildingSave,
  539. CameraData,
  540. UnitMonitor,
  541. Province,
  542. EnergyRateDialog,
  543. BuildingSaveDialog,
  544. UnitMonitorDialog,
  545. AlarmDevice,
  546. ConsumptionList,
  547. DistributionList
  548. },
  549. props:'',
  550. data() {
  551. return {
  552. curBodex:30,
  553. leftNav:true,
  554. leftShow: true,
  555. rightShow: true,
  556. dialogShow: false,
  557. dialogType: 1,
  558. showMap: true,
  559. showLocal: false,
  560. appOrg:'0000',
  561. curDeep: 1,
  562. showBack: false,
  563. curCompany: [],
  564. company: company,
  565. showCenter:false,
  566. showType:0,//设备列表
  567. monitorInfo: {},
  568. monitorName: '',
  569. power: '',
  570. customParams:''
  571. };
  572. },
  573. created() {
  574. },
  575. destroyed() {},
  576. beforeDestroy() {},
  577. mounted() {},
  578. methods: {
  579. //切换菜单
  580. chooseBox(index) {
  581. this.curBodex = index;
  582. this.showMap = false;
  583. this.showLocal = true;
  584. // this.leftNav=false;
  585. this.showBack=true
  586. // this.showBox = this.Boxtabs[index].tab;
  587. },
  588. showDialog(type){
  589. if(type < 4){
  590. this.leftShow = false;
  591. this.rightShow = true;
  592. }else{
  593. this.rightShow = false;
  594. this.leftShow = true;
  595. }
  596. this.dialogShow = true;
  597. this.dialogType = type;
  598. },
  599. closeDialog(){
  600. this.leftShow = true;
  601. this.rightShow = true;
  602. this.dialogShow = false;
  603. },
  604. //点击地图事件
  605. onMapClick(e) {
  606. this.curDeep = e.deep;
  607. if (e.deep > 1) {
  608. this.showBack = true;
  609. } else {
  610. this.showBack = false;
  611. }
  612. //点击山西省本部
  613. if (e.name == "山西省公司(本部)") {
  614. this.showMap = false;
  615. this.showLocal = true;
  616. this.curCompany = ["10001", "10001"];
  617. this.appOrg = "10001";
  618. } else {
  619. this.showMap = true;
  620. this.showLocal = false;
  621. this.curCompany = e.curCompany;
  622. }
  623. //判断是否点击了子单位
  624. if(e.curCompany && e.curCompany.length > 0){
  625. let appOrg = e.curCompany[e.curCompany.length - 1];
  626. this.appOrg = appOrg;
  627. }
  628. this.monitorName = e.name;
  629. },
  630. //返回操作
  631. onBack() {
  632. this.showBack = false;
  633. this.showMap = true;
  634. this.showLocal = false;
  635. // this.leftNav=true;
  636. this.curBodex=30
  637. // this.curDeep = 1;
  638. // if (this.curDeep <= 1) {
  639. // this.showBack = false;
  640. // this.showMap = true;
  641. // this.showLocal = false;
  642. // this.curCompany = [];
  643. // }
  644. // this.appOrg = '0000';
  645. // this.monitorName = "";
  646. // this.$refs.province.reloadMap(this.curDeep);
  647. },
  648. //选择公司
  649. handleCompanyChange(e) {
  650. console.log(e,"====");
  651. if (e && e.length > 0) {
  652. if (e[1] == "10001") {
  653. this.showMap = false;
  654. this.showLocal = true;
  655. this.showBack = true;
  656. } else {
  657. this.showMap = true;
  658. this.showLocal = false;
  659. }
  660. let appOrg = e[e.length - 1];
  661. this.appOrg = appOrg;
  662. }
  663. if(e[0] == "10001" && e[1] == "1A001"){
  664. this.monitorName = "营销服务中心";
  665. }
  666. if(e[1] == "1A001" || e[1] == "1A002" || e[1] == "1A004" || e[1] == "1A005"){
  667. this.showMap = true;
  668. this.showLocal = false;
  669. this.showBack = true;
  670. // return;
  671. }
  672. this.$refs.province.chooseUnit(e);
  673. },
  674. //点击列表
  675. onAbnormalClick(e,f,g) {
  676. this.power=f
  677. this.customParams=g
  678. this.showCenter = true;
  679. if (e === 0) {
  680. this.showType = 1;
  681. } else if(e === 1){
  682. this.showType = 2;
  683. }else{
  684. this.showType = 3;
  685. }
  686. },
  687. //关闭列表
  688. onCloseFoods() {
  689. this.showCenter = false;
  690. },
  691. //关闭监控视频
  692. // onCloseMonitor(){
  693. // this.showCenter = false;
  694. // this.showType = 0;
  695. // },
  696. //显示列表
  697. // onChooseAllMonitor(){
  698. // this.showType = 2;
  699. // },
  700. //选择视频列表
  701. // chooseMonitorBack(data){
  702. // this.showCenter = true;
  703. // this.showType = 1;
  704. // this.monitorInfo = data;
  705. // },
  706. },
  707. };
  708. </script>
  709. <style lang="scss">
  710. .el-popper {
  711. border: 1px solid #00ffff;
  712. .el-cascader-node:hover,
  713. .el-cascader-node:visited {
  714. background: #15696b !important;
  715. }
  716. .el-cascader-menu {
  717. background: #15696b !important;
  718. color: #fff !important;
  719. border-right: solid 1px #00ffff !important;
  720. }
  721. .el-cascader-node.in-active-path,
  722. .el-cascader-node.is-selectable.in-checked-path,
  723. .el-cascader-node.is-active {
  724. color: #00ffff;
  725. }
  726. .el-cascader-node__label {
  727. font-size: 12px;
  728. }
  729. .el-cascader-node {
  730. padding: 0 20px 0 0 !important;
  731. }
  732. .el-cascader-node__prefix {
  733. display: none !important;
  734. }
  735. }
  736. .components-itemLong {
  737. width: 550px;
  738. height: 920px;
  739. background: url("../../../assets/images/main/components_long_bg.png") no-repeat;
  740. background-size: 100% 100%;
  741. margin-bottom: 28px;
  742. margin-left: 15px;
  743. overflow: hidden;
  744. }
  745. .components-itemLong .bg4{
  746. background: url("../../../assets/images/main/components_long_bg.png") no-repeat;
  747. }
  748. .data-building {
  749. width: 100%;
  750. height: 100%;
  751. margin: 0 auto;
  752. // background-image: url("../../../assets/images/building_guarantee/bg.png");
  753. // background-size: cover;
  754. display: flex;
  755. flex-direction: row;
  756. justify-content: space-between;
  757. .left {
  758. margin: 125px 0 0 40px;
  759. width: 580px;
  760. .left-cont{
  761. width: 100%;
  762. height: 1000px;
  763. padding-top: 19px;
  764. background: url("../../../assets/images/main/main_bg.png") no-repeat;
  765. background-size: 100% 100%;
  766. }
  767. .components-item {
  768. width: 550px;
  769. height:428px;
  770. background: url("../../../assets/images/main/components_mid_bg.png") no-repeat;
  771. background-size: cover;
  772. margin-bottom: 28px;
  773. margin-left: 15px;
  774. overflow: hidden;
  775. background-size: 100% 100%;
  776. }
  777. .components-item.bg3{
  778. background: url("../../../assets/images/main/components_mid_bg2.png") no-repeat;
  779. }
  780. .left-top {
  781. //width: 550px;
  782. //height: 444px;
  783. //background: url("../../../assets/images/service_new/left_top_2.png") no-repeat;
  784. //background-size: cover;
  785. //margin-bottom: 21px;
  786. }
  787. .left-bottom {
  788. //width: 550px;
  789. //height: 444px;
  790. //background: url("../../../assets/images/service_new/left_top_2.png") no-repeat;
  791. //background-size: cover;
  792. }
  793. }
  794. .middle{
  795. display: flex;
  796. flex: 1;
  797. // align-items: center;
  798. justify-content: center;
  799. padding: 125px 0 0 0px;
  800. position: relative;
  801. .right-area {
  802. position: absolute;
  803. right: 10px;
  804. // top: 50px;
  805. z-index: 10;
  806. .leftNav{
  807. margin: 10px 0px 0px 15px;
  808. .model1 {
  809. width: 65px;
  810. height: 32px;
  811. margin-bottom: 6px;
  812. line-height: 25px;
  813. text-align: center;
  814. font-family: "PingFangSc";
  815. font-size: 13px;
  816. font-weight: bold;
  817. background: url("../../../assets/images/main/choose_short_small.png") no-repeat;
  818. // background-size: 95% 95%;
  819. color: #CED6D6;
  820. cursor: pointer;
  821. }
  822. .model:last-child {
  823. margin-right: 0;
  824. }
  825. .cur {
  826. color: #05FEFE;
  827. // background: url("../../../../assets/images/main/menu_chooe.png") no-repeat;
  828. }
  829. }
  830. }
  831. .bottom-area {
  832. position: absolute;
  833. right: 50px;
  834. //left: 50px;
  835. bottom: 50px;
  836. z-index: 10;
  837. .bottom-left {
  838. .left-item {
  839. width: 180px;
  840. height: 30px;
  841. background: url("../../../assets/images/main/choose_bg_long.png")
  842. no-repeat;
  843. background-size: cover;
  844. input {
  845. background: rgba(255, 255, 255, 0);
  846. border: none;
  847. color: #00ffff;
  848. }
  849. .el-input__icon {
  850. color: #00ffff;
  851. }
  852. }
  853. .office {
  854. margin-left: 10px;
  855. width: 180px;
  856. height: 30px;
  857. line-height: 30px;
  858. padding-left: 15px;
  859. color: #898989;
  860. background: url("../../../assets/images/main/choose_bg_long.png")
  861. no-repeat;
  862. background-size: cover;
  863. font-size: 14px;
  864. }
  865. }
  866. .bottom-right {
  867. margin-right: 50px;
  868. .back {
  869. width: 34px;
  870. height: 30px;
  871. cursor: pointer;
  872. }
  873. }
  874. }
  875. }
  876. .build {
  877. margin: 0 auto;
  878. width: 90%;
  879. height: auto;
  880. object-fit: contain;
  881. }
  882. .right {
  883. margin: 125px 40px 0 0px;
  884. width: 580px;
  885. .right-cont {
  886. width: 100%;
  887. height: 1000px;
  888. padding-top: 19px;
  889. background: url("../../../assets/images/main/main_bg.png") no-repeat;
  890. background-size: 100% 100%;
  891. }
  892. .components-item {
  893. width: 550px;
  894. height: 428px;
  895. background: url("../../../assets/images/main/components_mid_bg.png") no-repeat;
  896. background-size: cover;
  897. margin-bottom: 28px;
  898. margin-left: 15px;
  899. overflow: hidden;
  900. background-size: 100% 100%;
  901. }
  902. .components-item.bg3{
  903. background: url("../../../assets/images/main/components_mid_bg2.png") no-repeat;
  904. }
  905. .right-top {
  906. //width: 550px;
  907. //height: 444px;
  908. //background: url("../../../assets/images/service_new/left_top_2.png") no-repeat;
  909. //background-size: cover;
  910. //margin-bottom: 21px;
  911. }
  912. .right-bottom {
  913. //width: 550px;
  914. //height: 444px;
  915. //background: url("../../../assets/images/service_new/left_top_2.png") no-repeat;
  916. //background-size: cover;
  917. }
  918. }
  919. .dialog{
  920. position: fixed;
  921. top:125px;
  922. left:40px;
  923. z-index:10;
  924. width:100%;
  925. }
  926. .dialog-r{
  927. position: fixed;
  928. top:125px;
  929. right:40px;
  930. z-index:10;
  931. width: 100%;
  932. display: flex;
  933. justify-content: flex-end;
  934. }
  935. .dialog-2 {
  936. position: fixed;
  937. left: 0;
  938. top: 0;
  939. right: 0;
  940. bottom: 0;
  941. z-index: 9999;
  942. display: flex;
  943. flex-direction: row;
  944. align-items: center;
  945. justify-content: center;
  946. background: rgba(0, 0, 0, 0.7);
  947. }
  948. .cont-title-area {
  949. display: flex;
  950. flex-direction: row;
  951. align-items: center;
  952. justify-content: center;
  953. position: relative;
  954. margin-bottom: 10px;
  955. img {
  956. width: 284px;
  957. height: 32px;
  958. }
  959. .cont-title {
  960. font-size: 20px;
  961. font-weight: 900;
  962. font-family: "PingFangSC";
  963. width: 100%;
  964. position: absolute;
  965. display: flex;
  966. align-items: center;
  967. justify-content: center;
  968. top: -5px;
  969. color: #fff;
  970. }
  971. }
  972. ::-webkit-scrollbar {
  973. width: 3px;
  974. height: 3px;
  975. }
  976. ::-webkit-scrollbar-thumb {
  977. //滑块部分
  978. // border-radius: 5px;
  979. background-color: #58cbbb;
  980. }
  981. ::-webkit-scrollbar-track {
  982. //轨道部分
  983. // box-shadow: inset 0 0 5px #ddd;
  984. background: #ddd;
  985. // border-radius: 5px;
  986. }
  987. }
  988. </style>