homePage.vue 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897
  1. <template>
  2. <div class="home-page-max-big-box">
  3. <div class="home-page-big-box" v-show="pageType=='home'">
  4. <!--左侧盒子-->
  5. <div class="max-big-left-box">
  6. <!--仓库目录-->
  7. <div class="left-top-max-box">
  8. <div class="left-top-title-box">
  9. <img src="~@/assets/images/icon_52.png">
  10. <p>仓库目录</p>
  11. </div>
  12. <!--树结构-->
  13. <el-tree class="max-tree-box TabStrip" :indent="0"
  14. ref="dataConfigTree"
  15. default-expand-all
  16. :expand-on-click-node="false"
  17. node-key="id" :highlight-current="false"
  18. :data="leftTopData" icon-class="none">
  19. <div class="tree-box" slot-scope="{ node, data }" @click="clickTree(data,node)">
  20. <!--<img :class="{'levelImg':node.level==1}" v-if="node.expanded&&node.childNodes[0]"-->
  21. <!--src="~@/assets/images/icon_42.png">-->
  22. <!--<img :class="{'levelImg':node.level==1}" v-if="!node.expanded&&node.childNodes[0]"-->
  23. <!--src="~@/assets/images/icon_43.png">-->
  24. <p class="label-p"
  25. :class="{'level1':node.level==1,'level2':node.level==2,'level3':node.level==3,'levelColorA':node.checked||node.indeterminate,'levelColorB':!node.checked&&!node.indeterminate}"
  26. >{{ node.label }}</p>
  27. </div>
  28. </el-tree>
  29. <p class="position-p"></p>
  30. </div>
  31. <!--战备值班-->
  32. <div class="left-bottom-max-box">
  33. <div class="left-bottom-title-box">
  34. <img src="~@/assets/images/icon_53.png">
  35. <p>战备值班</p>
  36. </div>
  37. <!--视频盒子-->
  38. <div class="left-bottom-big-box">
  39. <div class="left-bottom-for-title-box">
  40. <p>值班人员</p>
  41. <p>仓库名称</p>
  42. <p>视频监控</p>
  43. </div>
  44. <div class="left-bottom-for-big-box TabStrip cursor_pointer">
  45. <div class="left-bottom-for-box" @click="listClick(item)"
  46. v-for="(item,index) in leftBottomData" :key="index">
  47. <img :src="item.photo">
  48. <p>{{item.organizationName}}</p>
  49. <img src="~@/assets/images/icon_20.png">
  50. </div>
  51. </div>
  52. </div>
  53. </div>
  54. </div>
  55. <!--中间盒子-->
  56. <div class="max-big-center-box">
  57. <!--ecsium地图-->
  58. <div class="max-big-center-top-box">
  59. <!--<img class="demo-img" src="~@/assets/images/demo.png">-->
  60. <iframe
  61. class="webMapURL"
  62. :src="webMapURL" scrolling="auto" frameborder="0">
  63. </iframe>
  64. </div>
  65. <!--当前任务状态-->
  66. <div class="max-big-center-bottom-box">
  67. <div class="max-big-center-bottom-title-box">
  68. <img src="~@/assets/images/icon_55.png">
  69. <p>当前任务状态</p>
  70. </div>
  71. <div class="max-big-center-bottom-for-title-box">
  72. <p>序号</p>
  73. <p>任务名称</p>
  74. <p>状态</p>
  75. <p>查看详情</p>
  76. </div>
  77. <div class="max-big-center-bottom-for-big-box TabStrip">
  78. <div class="max-big-center-bottom-for-box" v-for="(item,index) in centerBottomData" :key="index">
  79. <p>{{item.id}}</p>
  80. <p>{{item.task_name}}</p>
  81. <p :class="{'colorA':item.task_status==1,'color2':item.task_status==2,'color3':item.task_status==3,'color4':item.task_status==4,'color5':item.task_status==5,'color6':item.task_status==6,'color7':item.task_status==7,'color8':item.task_status==8}">
  82. {{item.task_status==1?statusList[0].taskName:(item.task_status==2?statusList[1].taskName:(item.task_status==3?statusList[2].taskName:(item.task_status==4?statusList[3].taskName:(item.task_status==5?statusList[4].taskName:(item.task_status==6?statusList[5].taskName:(item.task_status==7?statusList[6].taskName:(item.task_status==8?statusList[7].taskName:"")))))))}}
  83. </p>
  84. <p class="cursor_pointer" @click="openTaskDetails(item)">详情</p>
  85. </div>
  86. <p v-if="!centerBottomData[0]" style="color:#fff;line-height:100px;">暂无执行中的任务</p>
  87. </div>
  88. </div>
  89. </div>
  90. <!--右侧盒子-->
  91. <div class="max-big-right-box">
  92. <div class="max-big-right-title-box">
  93. <img src="~@/assets/images/icon_54.png">
  94. <p>装备物资</p>
  95. </div>
  96. <div class="max-big-right-top-box">
  97. <div class="max-big-right-top-title-box">
  98. <p></p>
  99. <p>各仓库装备数量</p>
  100. </div>
  101. <div class="eCharts-box" id="eChartsOne"></div>
  102. </div>
  103. <div class="max-big-right-bottom-box">
  104. <div class="max-big-right-bottom-title-box">
  105. <p></p>
  106. <p>各仓库耗材数量</p>
  107. </div>
  108. <div class="eCharts-box" id="eChartsTwo"></div>
  109. </div>
  110. </div>
  111. <!--悬浮窗口-->
  112. <div class="position-left-box" v-if="positionLeftData.userName">
  113. <div class="position-left-title-box">
  114. <div class="position-left-title-min-box">
  115. <div>
  116. <img src="~@/assets/images/icon_51.png">
  117. <p>{{positionLeftData.organizationName}}</p>
  118. </div>
  119. <p class="position-left-address">位置:{{positionLeftData.detailAddress}}</p>
  120. </div>
  121. <img class="position-left-button-img cursor_pointer" src="~@/assets/images/icon_20.png" @click="videoClick">
  122. <div class="position-left-button-out-box cursor_pointer" @click="outListClick">
  123. <img src="~@/assets/images/icon_x_01.png">
  124. </div>
  125. </div>
  126. <p class="position-left-text">值班人员信息</p>
  127. <div class="position-left-info-box">
  128. <div>
  129. <p>姓名:</p>
  130. <p>{{positionLeftData.userName}}</p>
  131. </div>
  132. <div>
  133. <p>电话:</p>
  134. <p>{{positionLeftData.phone}}</p>
  135. </div>
  136. <div>
  137. <p>值班时间:</p>
  138. <p>{{positionLeftData.dutyStartTime}}至{{positionLeftData.dutyEndTime}}</p>
  139. </div>
  140. <div>
  141. <p>备注:</p>
  142. <p>{{positionLeftData.remark}}</p>
  143. </div>
  144. </div>
  145. </div>
  146. </div>
  147. <task-details v-if="pageType=='taskDetails'" :taskData="taskData"></task-details>
  148. <warehouse-monitoring v-if="pageType=='warehouseMonitoring'"></warehouse-monitoring>
  149. </div>
  150. </template>
  151. <script>
  152. import { statusInfoList,deptTreeselect,frontRepertoryList,frontdutyInfo,frontTasklist,frontTaskDetailList } from '@/api/userApi'
  153. import { webMap_URL } from '@/api/config'
  154. export default {
  155. name: "homePage.vue",//首页
  156. components:{
  157. taskDetails: resolve => {require(['@/components/home/taskDetails'], resolve)},//任务详细信息查看
  158. warehouseMonitoring: resolve => {require(['@/components/home/warehouseMonitoring'], resolve)},//仓库监控
  159. },
  160. data () {
  161. return {
  162. webMapURL:webMap_URL,
  163. pageType:"home",
  164. //树结构
  165. leftTopData: [],
  166. //值班信息
  167. leftBottomData:[],
  168. //任务状态数据
  169. statusList:[],
  170. //任务数据
  171. centerBottomData:[],
  172. // 图表数据
  173. rightTopData:{},
  174. rightBottomData:{},
  175. //监控选中数据
  176. positionLeftData:{},
  177. //任务详情传参
  178. taskData:{},
  179. //当前选中仓库ID
  180. organizationId:"",
  181. }
  182. },
  183. created(){
  184. },
  185. mounted() {
  186. this.statusInfoList();
  187. this.frontRepertoryList();
  188. },
  189. methods: {
  190. //获取任务状态名称
  191. async statusInfoList(){
  192. let self = this;
  193. const { data } = await statusInfoList();
  194. if(data.code==200){
  195. this.statusList = data.rows;
  196. this.deptTreeselect();
  197. }
  198. },
  199. //获取图表数据
  200. async frontRepertoryList () {
  201. let self = this;
  202. const { data } = await frontRepertoryList();
  203. if(data.code==200){
  204. //装备数据
  205. let equipmentData = {
  206. organizationName:[],
  207. articlesProduct:[],
  208. newProduct:[],
  209. oldProduct:[],
  210. repairedProduct:[],
  211. };
  212. for(let i=0;i<data.data.listMapEquipment.length;i++){
  213. equipmentData.organizationName.push(data.data.listMapEquipment[i].organizationName);
  214. equipmentData.articlesProduct.push(data.data.listMapEquipment[i].articlesProduct);
  215. equipmentData.newProduct.push(data.data.listMapEquipment[i].newProduct);
  216. equipmentData.oldProduct.push(data.data.listMapEquipment[i].oldProduct);
  217. equipmentData.repairedProduct.push(data.data.listMapEquipment[i].repairedProduct);
  218. }
  219. self.rightTopData = equipmentData;
  220. //耗材数据
  221. let productData = {
  222. organizationName:[],
  223. articlesProduct:[],
  224. newProduct:[],
  225. oldProduct:[],
  226. repairedProduct:[],
  227. };
  228. for(let i=0;i<data.data.listMapProduct.length;i++){
  229. productData.organizationName.push(data.data.listMapProduct[i].organizationName);
  230. productData.articlesProduct.push(data.data.listMapProduct[i].articlesProduct);
  231. productData.newProduct.push(data.data.listMapProduct[i].newProduct);
  232. productData.oldProduct.push(data.data.listMapProduct[i].oldProduct);
  233. productData.repairedProduct.push(data.data.listMapProduct[i].repairedProduct);
  234. }
  235. self.rightBottomData = productData;
  236. this.eChartsOne();
  237. this.eChartsTwo();
  238. }
  239. },
  240. //获取组织架构树状数据
  241. async deptTreeselect () {
  242. let self = this;
  243. const { data } = await deptTreeselect();
  244. if(data.code==200){
  245. this.leftTopData = data.data;
  246. this.$refs.dataConfigTree.setCheckedKeys([data.data[0].id]);
  247. self.organizationId = data.data[0].id;
  248. setTimeout(function(){
  249. self.frontdutyInfo();
  250. self.frontTasklist();
  251. },100);
  252. }
  253. },
  254. //获取值班信息
  255. async frontdutyInfo () {
  256. let self = this;
  257. let obj = {
  258. organizationId:self.organizationId,
  259. }
  260. const { data } = await frontdutyInfo(obj);
  261. if(data.code==200){
  262. self.leftBottomData = data.data;
  263. // this.leftTopData = data.data;
  264. }
  265. },
  266. //获取任务信息
  267. async frontTasklist () {
  268. let self = this;
  269. let obj = {
  270. organizationId:self.organizationId,
  271. }
  272. const { data } = await frontTasklist(obj);
  273. if(data.code==200){
  274. this.centerBottomData = data.data;
  275. // this.leftTopData = data.data;
  276. }
  277. },
  278. //左上点击事件
  279. clickTree(data,node){
  280. let self = this;
  281. // if(node.checked){
  282. // this.$refs.dataConfigTree.setCheckedKeys([]);
  283. // }else{
  284. // this.$refs.dataConfigTree.setCheckedKeys([node.data.id]);
  285. // }
  286. if(node.data.id != self.organizationId){
  287. this.$refs.dataConfigTree.setCheckedKeys([node.data.id]);
  288. this.organizationId = node.data.id;
  289. this.frontdutyInfo();
  290. this.frontTasklist();
  291. }
  292. },
  293. // eCharts右上图表
  294. eChartsOne(){
  295. let self = this;
  296. let myChart = this.$echarts.init(document.getElementById('eChartsOne'));
  297. let option = {
  298. color: ["#37A1DA", "#9FE7B8", "#FEDB5B", "#FF9F7F"],
  299. tooltip: {
  300. trigger: 'axis',
  301. axisPointer: { type: 'shadow' }
  302. },
  303. legend: {
  304. // width: "60%",
  305. // top: "10%",
  306. textStyle: {
  307. color: '#fff',
  308. },
  309. },
  310. grid: {
  311. top: "20%",
  312. bottom: "20%",
  313. left: "10%",
  314. right: "10%"
  315. },
  316. xAxis: {
  317. type: 'category',
  318. boundaryGap: true,
  319. axisLine: {
  320. lineStyle: { color: '#fff' }
  321. },
  322. axisLabel: {
  323. interval:0,
  324. rotate:40,
  325. textStyle: { color: '#fff', fontSize: 13 }
  326. },
  327. data: self.rightTopData.organizationName
  328. },
  329. yAxis: {
  330. name: "数量",
  331. nameTextStyle: { color: "#fff", fontSize: 13 },
  332. type: 'value',
  333. splitLine: {
  334. lineStyle: { color: "#fff", type: "dashed" }
  335. },
  336. axisLine: { show: false },
  337. axisTick: { show: false },
  338. axisLabel: {
  339. textStyle: { color: '#fff', fontSize: 13 }
  340. }
  341. },
  342. series: [{
  343. name: "新品",
  344. type: 'bar',
  345. stack: 'all',
  346. barWidth: "40%",
  347. data: self.rightTopData.newProduct
  348. }, {
  349. name: "堪用品",
  350. type: 'bar',
  351. stack: 'all',
  352. barWidth: "40%",
  353. data: self.rightTopData.articlesProduct
  354. }, {
  355. name: "待修品",
  356. type: 'bar',
  357. stack: 'all',
  358. barWidth: "40%",
  359. data: self.rightTopData.repairedProduct
  360. }, {
  361. name: "待报废",
  362. type: 'bar',
  363. stack: 'all',
  364. barWidth: "40%",
  365. data: self.rightTopData.oldProduct
  366. }]
  367. };
  368. myChart.setOption(option);
  369. },
  370. // eCharts右下图表
  371. eChartsTwo(){
  372. let self = this;
  373. let myChart = this.$echarts.init(document.getElementById('eChartsTwo'));
  374. let option = {
  375. color: ["#37A1DA", "#9FE7B8", "#FEDB5B", "#FF9F7F"],
  376. tooltip: {
  377. trigger: 'axis',
  378. axisPointer: { type: 'shadow' }
  379. },
  380. legend: {
  381. // width: "60%",
  382. // top: "10%",
  383. textStyle: {
  384. color: '#fff',
  385. },
  386. },
  387. grid: {
  388. top: "20%",
  389. bottom: "20%",
  390. left: "10%",
  391. right: "10%"
  392. },
  393. xAxis: {
  394. type: 'category',
  395. boundaryGap: true,
  396. axisLine: {
  397. lineStyle: { color: '#fff' }
  398. },
  399. axisLabel: {
  400. interval:0,
  401. rotate:40,
  402. textStyle: { color: '#fff', fontSize: 13 }
  403. },
  404. data: self.rightBottomData.organizationName
  405. },
  406. yAxis: {
  407. name: "数量",
  408. nameTextStyle: { color: "#fff", fontSize: 13 },
  409. type: 'value',
  410. splitLine: {
  411. lineStyle: { color: "#fff", type: "dashed" }
  412. },
  413. axisLine: { show: false },
  414. axisTick: { show: false },
  415. axisLabel: {
  416. textStyle: { color: '#fff', fontSize: 13 }
  417. }
  418. },
  419. series: [{
  420. name: "新品",
  421. type: 'bar',
  422. stack: 'all',
  423. barWidth: "40%",
  424. data: self.rightBottomData.newProduct
  425. }, {
  426. name: "堪用品",
  427. type: 'bar',
  428. stack: 'all',
  429. barWidth: "40%",
  430. data: self.rightBottomData.articlesProduct
  431. }, {
  432. name: "待修品",
  433. type: 'bar',
  434. stack: 'all',
  435. barWidth: "40%",
  436. data: self.rightBottomData.repairedProduct
  437. }, {
  438. name: "待报废",
  439. type: 'bar',
  440. stack: 'all',
  441. barWidth: "40%",
  442. data: self.rightBottomData.oldProduct
  443. }]
  444. };
  445. myChart.setOption(option);
  446. },
  447. // 左侧视频点击事件
  448. listClick(item){
  449. this.positionLeftData = item;
  450. },
  451. // 左侧视频窗口关闭事件
  452. outListClick(){
  453. this.positionLeftData = "";
  454. },
  455. openTaskDetails(item){
  456. let self = this;
  457. let obj = {
  458. processingId : item.id,
  459. taskNameList : []
  460. };
  461. for(let i=0;i<self.statusList.length;i++){
  462. obj.taskNameList.push(self.statusList[i].taskName);
  463. }
  464. this.taskData = obj;
  465. this.pageType = "taskDetails";
  466. },
  467. //视频监控点击跳转
  468. videoClick(){
  469. this.pageType = "warehouseMonitoring";
  470. },
  471. //返回当前页面 供子页面调用
  472. outPage(){
  473. this.pageType = "home";
  474. },
  475. }
  476. }
  477. </script>
  478. <style scoped lang="stylus">
  479. .home-page-max-big-box
  480. flex-direction: inherit;
  481. flex: 1;
  482. .home-page-big-box
  483. padding:46px 23px 31px;
  484. display flex
  485. position relative
  486. /*左侧盒子*/
  487. .max-big-left-box
  488. width:446px;
  489. height:100%
  490. /*仓库目录*/
  491. .left-top-max-box
  492. .left-bottom-max-box
  493. width:446px;
  494. height:448px;
  495. background url("~@/assets/images/min_back_01.png")
  496. background-size 100% 100%
  497. overflow hidden
  498. position relative
  499. .left-top-title-box
  500. .left-bottom-title-box
  501. margin:15px 0 0 30px;
  502. display flex
  503. img
  504. display block
  505. margin-top:5px;
  506. width:20px;
  507. height:20px;
  508. p
  509. font-size:$font_17;
  510. color:$color_ff;
  511. font-weight:700;
  512. margin-left:7px;
  513. line-height:29px;
  514. //树结构
  515. .max-tree-box
  516. z-index:1;
  517. height:400px;
  518. margin:10px 100px 0 100px;
  519. overflow-x:hidden;
  520. overflow-y:scroll;
  521. white-space: nowrap;
  522. .tree-box
  523. display flex
  524. img
  525. display block
  526. width:20px;
  527. height:20px;
  528. p
  529. margin-left:8px;
  530. .position-p
  531. position absolute
  532. top:53px;
  533. left:42px;
  534. background url("~@/assets/images/icon_21.png")
  535. background-size 100% 100%
  536. width:260px;
  537. height:28px;
  538. //战备值班
  539. .left-bottom-max-box
  540. margin-top:10px;
  541. //视频盒子
  542. .left-bottom-big-box
  543. margin:26px 30px 0;
  544. .left-bottom-for-title-box
  545. display flex
  546. p
  547. flex:1;
  548. line-height:30px;
  549. font-size:$font_16;
  550. color:$color_ff;
  551. .left-bottom-for-big-box
  552. height:336px;
  553. width:394px;
  554. overflow-x:hidden;
  555. overflow-y:scroll;
  556. white-space: nowrap;
  557. .left-bottom-for-box
  558. display flex
  559. height:54px;
  560. width:386px;
  561. margin:6px 8px 0 0;
  562. background url("~@/assets/images/icon_21.png")
  563. background-size 100% 100%
  564. img:nth-child(1)
  565. display block
  566. width:59px;
  567. height:47px;
  568. margin:4px 0 0 10px;
  569. border-radius:5px;
  570. p
  571. flex:1;
  572. color:$theme;
  573. font-size:$font_14;
  574. line-height:54px;
  575. img:nth-child(3)
  576. display block
  577. width:58px;
  578. height:30px;
  579. margin:13px 14px 0 0;
  580. .left-bottom-for-box:hover
  581. background-color:rgba(6,177,240,0.3);
  582. .max-big-center-box
  583. width:932px;
  584. height:100%
  585. margin:0 26px;
  586. //ecsium地图
  587. .max-big-center-top-box
  588. height: 561px;
  589. width: 934px;
  590. margin: 11px 0 15px;
  591. border: 1px solid #05BCE9;
  592. .webMapURL
  593. height:559px;
  594. width:932px;
  595. // 当前任务状态
  596. .max-big-center-bottom-box
  597. /*height:286px;*/
  598. height:320px;
  599. width:932px;
  600. background url("~@/assets/images/min_back_02.png")
  601. background-size 100% 100%
  602. overflow hidden
  603. .max-big-center-bottom-title-box
  604. display flex
  605. margin:14px 0 0 30px;
  606. img
  607. display block
  608. height:20px;
  609. width:20px;
  610. margin:5px 12px 0 0;
  611. p
  612. line-height:30px;
  613. font-size:$font_17;
  614. color:$color_ff;
  615. font-weight:700;
  616. .max-big-center-bottom-for-title-box
  617. display flex
  618. margin-top:4px;
  619. width:916px;
  620. p
  621. height:60px;
  622. line-height:60px;
  623. color:$color_ff;
  624. font-size:$font_16;
  625. p:nth-child(1)
  626. width:153px;
  627. p:nth-child(2)
  628. flex:1;
  629. p:nth-child(3)
  630. width:182px;
  631. p:nth-child(4)
  632. width:204px;
  633. .max-big-center-bottom-for-big-box
  634. overflow-x:hidden;
  635. overflow-y:scroll;
  636. white-space: nowrap;
  637. height:168px;
  638. width:916px;
  639. .max-big-center-bottom-for-box
  640. display: flex
  641. p
  642. height:42px;
  643. line-height:42px;
  644. font-size:$font_15;
  645. p:nth-child(1)
  646. width:153px;
  647. color: $color_91
  648. p:nth-child(2)
  649. flex:1;
  650. color: $color_91
  651. p:nth-child(3)
  652. width:182px;
  653. p:nth-child(4)
  654. width:204px;
  655. color:$fontColor_08;
  656. .colorA
  657. color:$theme3;
  658. .color2
  659. color:#4fd1f3;
  660. .color3
  661. color:#72c9d0;
  662. .color4
  663. color:#68a4a5;
  664. .color5
  665. color:#e9ffce;
  666. .color6
  667. color:#f4db87;
  668. .color7
  669. color:#ec9e4b;
  670. .color8
  671. color:#7ce030;
  672. .max-big-center-bottom-for-box:hover
  673. background-color:rgba(6,177,240,0.3);
  674. p:nth-child(1)
  675. color: $theme !important
  676. p:nth-child(2)
  677. color: $theme !important
  678. .max-big-right-box
  679. width:446px;
  680. height:906px
  681. background url("~@/assets/images/min_back_03.png")
  682. background-size 100% 100%
  683. .max-big-right-title-box
  684. display flex
  685. margin:14px 0 0 30px;
  686. img
  687. display block
  688. height:20px;
  689. width:20px;
  690. margin:5px 12px 0 0;
  691. p
  692. line-height:30px;
  693. font-size:$font_17;
  694. color:$color_ff;
  695. font-weight:700;
  696. .max-big-right-top-box
  697. .max-big-right-bottom-box
  698. width:446px;
  699. height:364px;
  700. .max-big-right-top-title-box
  701. .max-big-right-bottom-title-box
  702. height:54px;
  703. display flex
  704. p:nth-child(1)
  705. width:4px;
  706. height:20px;
  707. background:$fontColor_e5;
  708. border-radius:4px;
  709. margin:17px 7px 0 28px;
  710. p:nth-child(2)
  711. color:$fontColor_e5;
  712. font-size:$font_15;
  713. font-weight:700;
  714. line-height:54px;
  715. .eCharts-box
  716. height:310px;
  717. width:447px;
  718. .max-big-right-top-title-box
  719. margin-top:20px;
  720. .max-big-right-bottom-title-box
  721. margin-top:50px;
  722. .position-left-box
  723. position:absolute;
  724. bottom:120px;
  725. left:470px;
  726. height:305px;
  727. width:450px;
  728. background url("~@/assets/images/min_back_06.png")
  729. background-size 100% 100%
  730. .position-left-title-box
  731. display flex
  732. .position-left-title-min-box
  733. height:62px;
  734. width:297px;
  735. margin:14px 0 0 30px;
  736. div
  737. display: flex
  738. img
  739. display block
  740. height:20px;
  741. width:20px;
  742. margin:5px 7px 0 0;
  743. p
  744. flex:1;
  745. text-align left
  746. color:$theme;
  747. font-size:$font_15;
  748. font-weight:700;
  749. line-height 31px
  750. .position-left-address
  751. text-align left
  752. color:$color_ff;
  753. font-size:$font_14;
  754. line-height 31px
  755. .position-left-button-img
  756. width:58px;
  757. height:30px;
  758. margin:29px 26px 0 0;
  759. .position-left-button-out-box
  760. width:32px;
  761. height:32px;
  762. margin:14px 0 0 0;
  763. img
  764. display block
  765. height:14px;
  766. width:14px;
  767. margin:9px;
  768. .position-left-text
  769. margin-top:5px;
  770. height:36px;
  771. line-height 36px
  772. font-size:$font_16;
  773. color:$theme;
  774. .position-left-info-box
  775. margin:19px 64px 0;
  776. div
  777. display flex
  778. p
  779. font-size:$font_14;
  780. text-align left
  781. p:nth-child(1)
  782. width:76px;
  783. padding:4px 0;
  784. line-height:20px;
  785. color:$theme;
  786. p:nth-child(2)
  787. padding:4px 0;
  788. line-height:20px;
  789. width:248px;
  790. word-wrap:break-word;
  791. word-break:break-all;
  792. overflow: hidden;
  793. color:$color_ff;
  794. .el-tree
  795. background rgba(0,0,0,0) !important
  796. /*多层级样式*/
  797. .levelImg{
  798. margin-top: 7px;
  799. }
  800. .level1{
  801. font-size:$font_17;
  802. color:$theme !important;
  803. height:34px;
  804. line-height 34px
  805. }
  806. .level2{
  807. font-size:$font_14;
  808. height:22px;
  809. line-height 22px
  810. }
  811. .level3{
  812. font-size:$font_12;
  813. height:20px;
  814. line-height 20px
  815. }
  816. .levelColorA{
  817. color:$color_ff;
  818. }
  819. .levelColorB{
  820. color:$color_91;
  821. }
  822. /*层级指引线*/
  823. .tree-container /deep/ .el-tree > .el-tree-node :after {
  824. border-top: none;
  825. }
  826. .el-tree /deep/ .el-tree-node .el-tree-node {
  827. position: relative;
  828. padding-left: 16px !important;
  829. }
  830. .el-tree /deep/ .el-tree-node__children {
  831. padding-left: 16px;
  832. }
  833. .el-tree /deep/ .el-tree-node :last-child:before {
  834. height: 38px;
  835. }
  836. .el-tree /deep/ .el-tree > .el-tree-node:before {
  837. border-left: none;
  838. }
  839. .tree-container /deep/ .el-tree > .el-tree-node:after {
  840. border-top: none;
  841. }
  842. .el-tree /deep/ .el-tree-node .el-tree-node:before {
  843. content: "";
  844. left: -4px;
  845. position: absolute;
  846. right: auto;
  847. border-width: 1px;
  848. }
  849. .el-tree /deep/ .el-tree-node .el-tree-node:after {
  850. content: "";
  851. left: -4px;
  852. position: absolute;
  853. right: auto;
  854. border-width: 1px;
  855. }
  856. .el-tree /deep/ .el-tree-node:before {
  857. border-left: 1px dashed #4386c6;
  858. bottom: 0px;
  859. height: 100%;
  860. top: -26px;
  861. width: 1px;
  862. }
  863. .el-tree /deep/ .el-tree-node:after {
  864. border-top: 1px dashed #4386c6;
  865. height: 20px;
  866. top: 12px;
  867. width: 24px;
  868. }
  869. .tree-container { //树的parent,样式自定
  870. }
  871. .el-tree /deep/ .el-tree-node__content .el-tree-node__expand-icon{
  872. padding:1px !important
  873. }
  874. //修改悬浮样式
  875. .el-tree /deep/ .el-tree-node:focus > .el-tree-node__content {
  876. background-color: rgba(0,0,0,0) !important;
  877. }
  878. .el-tree /deep/ .el-tree-node__content:hover { background-color: rgba(0,0,0,0);
  879. }
  880. .el-tree /deep/ .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
  881. background-color: rgba(0,0,0,0);
  882. }
  883. </style>