Index.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887
  1. <template>
  2. <el-container class="container" style="height: 100%">
  3. <el-header class="header">
  4. <img class="RTlogo" src="../assets/images/RTlogo.png" />
  5. <!-- <div v-if="userinfo.logo">
  6. <img
  7. :src="userinfo.logo"
  8. alt=""
  9. style="position: absolute; left: 20px; top: 20px; width: 250px"
  10. />
  11. </div> -->
  12. <!-- 用户 -->
  13. <div class="userinfo">欢迎您,{{ username }}</div>
  14. <!-- 标题 -->
  15. <div class="sysName">
  16. <h2 v-if="userinfo.user_header">{{ userinfo.user_header }}</h2>
  17. <h2 v-else>苗情监测应用系统</h2>
  18. <p style="font-size: 12px;letter-spacing: 0px;">Plants Growth Status Monitoring System</p>
  19. </div>
  20. <div class="site" v-if="userinfo.site">
  21. <i class="iconfont icon-jidi" style="color: white;font-size: 26px;"></i>
  22. <span style="letter-spacing: 1px;font-size: 22px;">{{ userinfo.site }}</span>
  23. </div>
  24. <span class="header_btn" @click="toggle">{{flag?'隐藏':'展开'}}</span>
  25. </el-header>
  26. <!-- <el-header class="header2" v-show="!flag">
  27. <h3 v-if="userinfo.user_header">{{ userinfo.user_header }}</h3>
  28. <h3 v-else>苗情监测应用系统</h3>
  29. <div class="site" v-if="userinfo.site && flag">
  30. <i class="iconfont icon-jidi"></i>
  31. <span>{{ userinfo.site }}</span>
  32. </div>
  33. <span class="header_btn" @click="hCheckFun">[展开]</span>
  34. </el-header> -->
  35. <!-- <div style="background: #397b0c" v-show="flag">
  36. <ul class="header_ul">
  37. <li
  38. style="padding: 15px 20px 15px 20px; color: #fff; cursor: pointer"
  39. @click="headerTitle(index)"
  40. :class="{ indexActive: tltIndex == index }"
  41. v-for="(item, index) in menuList1"
  42. :key="index"
  43. >
  44. {{ item.purview_name }}
  45. </li>
  46. </ul>
  47. </div> -->
  48. <el-container style="overflow: auto">
  49. <el-aside width="250px">
  50. <!-- 选中站点标题 -->
  51. <!-- <div
  52. style="
  53. background: #397b0c;
  54. line-height: 46px;
  55. height: 46px;
  56. color: #fff;
  57. "
  58. >
  59. <img
  60. style="
  61. width: 12px;
  62. height: 16px;
  63. margin: -3.5px 0 0 12.5%;
  64. vertical-align: middle;
  65. cursor: pointer;
  66. "
  67. src="../assets/images/dingwei.png"
  68. title="点击获取全部站点名称列表"
  69. @click="allSiteListData()"
  70. alt=""
  71. />
  72. <span style="font-size: 13px; margin: 0 0 0 -0.5px">{{
  73. siteNameTitle
  74. }}</span>
  75. </div> -->
  76. <el-menu
  77. :default-active="$route.path"
  78. :collapse-transition="false"
  79. class="el-menu-vertical-demo"
  80. :router="isRouter"
  81. @select="handleOpen"
  82. active-text-color="#fff"
  83. style="padding-top: 20px;background-color: initial;width: 100%;"
  84. >
  85. <el-menu-item index="/index/monitor">
  86. <i :class="iconObj[20]"></i>
  87. <span slot="title">苗情监测应用系统</span>
  88. </el-menu-item>
  89. <el-menu-item index="/index/list">
  90. <i :class="iconObj[22]"></i>
  91. <span slot="title">设备列表</span>
  92. </el-menu-item>
  93. <el-menu-item index="/index/userManger">
  94. <i :class="iconObj[23]"></i>
  95. <span slot="title">用户管理</span>
  96. </el-menu-item>
  97. </el-menu>
  98. <div v-if="isTree" style="margin: 13px 0 0 0; width: 95%">
  99. <ul>
  100. <li style="display: flex; justify-content: space-between">
  101. <div style="display: flex; margin: 0 0 0 5px">
  102. <img
  103. style="width: 20px; height: 20px; margin: 4px 3px 0 0"
  104. src="../assets/images/zhankai.png"
  105. alt=""
  106. />
  107. <div
  108. style="
  109. font-weight: 550;
  110. font-size: 20px;
  111. color: white;
  112. margin: 0px 0px 0px 4px;
  113. "
  114. >
  115. 站点管理
  116. </div>
  117. </div>
  118. <img
  119. style="
  120. width: 22px;
  121. height: 22px;
  122. margin: 3px 0 0 0;
  123. cursor: pointer;
  124. "
  125. src="../assets/images/tianjia.png"
  126. alt=""
  127. @click="addStation"
  128. v-if="userinfo.staff == '1'"
  129. />
  130. </li>
  131. <li id="tree">
  132. <el-tree
  133. ref="treeRef"
  134. :data="data"
  135. :props="defaultProps"
  136. node-key="id"
  137. :current-node-key="firstItem"
  138. :default-expand-all="true"
  139. @node-click="handleNodeClick"
  140. @node-contextmenu="rightClick"
  141. highlight-current
  142. style="background-color: transparent;color: rgba(255, 255, 255, 0.5);"
  143. ></el-tree>
  144. </li>
  145. </ul>
  146. </div>
  147. </el-aside>
  148. <!-- 右键信息 -->
  149. <div v-show="menuVisible">
  150. <ul id="menuList" class="menu">
  151. <li class="menu_item" @click="addrInformation()">增加</li>
  152. </ul>
  153. </div>
  154. <el-main>
  155. <router-view ref="mychild" :siteId="firstItem" :flag="dataObj"></router-view>
  156. </el-main>
  157. </el-container>
  158. <!-- 添加站点 -->
  159. <el-dialog
  160. :close-on-click-modal="false"
  161. :close-on-press-escape="false"
  162. title="新增站点"
  163. :visible.sync="addSite"
  164. width="25%"
  165. >
  166. <ul>
  167. <li style="margin: 10px 0 0 0">
  168. <span>站点名称:</span>
  169. <el-input style="width: 49%" v-model="siteName"></el-input>
  170. </li>
  171. <li style="margin: 10px 0 0 0">
  172. <span>站点地址:</span>
  173. <el-cascader
  174. clearable
  175. v-model="siteAddr"
  176. :options="options"
  177. ></el-cascader>
  178. </li>
  179. </ul>
  180. <span slot="footer" class="dialog-footer">
  181. <el-button @click="addSite = false">取 消</el-button>
  182. <el-button type="primary" @click="addrData()">确 定</el-button>
  183. </span>
  184. </el-dialog>
  185. </el-container>
  186. </template>
  187. <script>
  188. import city from "../components/citydata.js";
  189. export default {
  190. data() {
  191. return {
  192. isTree:true,
  193. firstItem: "",
  194. firstShow: true,
  195. isRouter: true,
  196. iconObj: {
  197. 20: "iconfont icon-jiankong",
  198. 22: "iconfont icon-shebei",
  199. 23: "iconfont icon-xitong",
  200. },
  201. flag: true,
  202. active: 1,
  203. userinfo: {},
  204. username: "",
  205. userphoto: "",
  206. // 站点
  207. menuList1: [
  208. {
  209. purview_name: "苗情监测应用系统",
  210. menu: "monitor",
  211. parent_perm_id: 1,
  212. pur_id: 1,
  213. },
  214. {
  215. purview_name: "设备列表",
  216. menu: "list",
  217. parent_perm_id: 2,
  218. pur_id: 2,
  219. },
  220. {
  221. purview_name: "用户管理",
  222. menu: "userManger",
  223. parent_perm_id: 3,
  224. pur_id: 3,
  225. },
  226. ],
  227. tltIndex: 0,
  228. siteName: "", // 站点名称
  229. siteAddr: [], // 站点地址
  230. options: [],
  231. addSite: false,
  232. data: [], // 树形插件数据
  233. defaultProps: {
  234. children: "children",
  235. label: "label",
  236. },
  237. dataObj: {
  238. flag: true,
  239. siteID: null,
  240. allList: [],
  241. cid :null,
  242. siteNameTitle:this.siteNameTitle
  243. },
  244. menuVisible: false,
  245. operateObj: {}, // 右键点击时获取当前的数据信息
  246. siteNameTitle: "全 部",
  247. req: "", // 站点列表是否显示有无设备的站点
  248. equip_type: "", //选中的设备类型
  249. };
  250. },
  251. created: function () {
  252. this.getuserinfo();
  253. },
  254. mounted() {
  255. document.querySelector('.header').style.height = '250px'
  256. // this.$nextTick(()=>{
  257. document.querySelector('.header').style.transition = '.4s'
  258. // })
  259. this.siteListData();
  260. if (sessionStorage.getItem("tltIndex")) {
  261. this.tltIndex = sessionStorage.getItem("tltIndex");
  262. }
  263. this.options = city;
  264. var url = this.$route.path;
  265. url = url.split("/index", 2);
  266. // 获取当前点击的设备类型
  267. if (url[1] == "/monitor") {
  268. // 性诱测报
  269. this.req = "hide";
  270. this.equip_type = "6";
  271. } else {
  272. this.req = "";
  273. this.equip_type = "";
  274. }
  275. },
  276. watch: {
  277. addSite(val) {
  278. if (val == false) {
  279. this.siteName = "";
  280. this.siteAddr = [];
  281. this.operateObj = {};
  282. }
  283. // else if (val == true) {
  284. // if (this.operateObj.label) {
  285. // console.log(this.operateObj)
  286. // } else {
  287. // }
  288. // }
  289. },
  290. // 监听路由变化,如果变化就将展示选中的站点名称归零为全部
  291. $route(to, from) {
  292. this.siteNameTitle = "全 部";
  293. },
  294. equip_type(val) {
  295. console.log(val);
  296. this.siteListData();
  297. },
  298. },
  299. methods: {
  300. toggle(){
  301. this.flag = !this.flag
  302. if(!this.flag){
  303. document.querySelector('.header').style.height = '140px'
  304. this.dataObj.flag = this.flag
  305. } else{
  306. document.querySelector('.header').style.height = '250px'
  307. setTimeout(()=>{
  308. this.dataObj.flag = this.flag
  309. },400)
  310. }
  311. },
  312. hCheckFun() {
  313. this.flag = !this.flag;
  314. },
  315. getuserinfo() {
  316. this.$axios({
  317. method: "post",
  318. url: "userinfo_",
  319. }).then((res) => {
  320. this.username = res.data.username;
  321. this.userphoto = res.data.userphoto;
  322. localStorage.setItem("username", res.data.username); // 0管理员 1用户
  323. });
  324. this.$axios({
  325. method: "get",
  326. url: "user_detail",
  327. }).then((res) => {
  328. this.userinfo = res.data;
  329. localStorage.setItem("have_type", this.userinfo.have_type); // 0管理员 1用户
  330. localStorage.setItem("staff", this.userinfo.staff); // 1是admin
  331. localStorage.setItem('site_id', this.userinfo.site_id) // 站点id
  332. localStorage.setItem('siteName', this.userinfo.site) // 站点name
  333. });
  334. },
  335. headerTitle(i) {
  336. this.tltIndex = i;
  337. console.log(i);
  338. sessionStorage.setItem("tltIndex", i);
  339. this.$router.push("/index/" + this.menuList1[i].menu);
  340. },
  341. // 添加新站点
  342. addStation() {
  343. this.addSite = true;
  344. },
  345. // 树形插件
  346. handleNodeClick(data) {
  347. // this.operateObj = data
  348. // this.$refs.mychild.getEquipList(data, 1)
  349. var url = this.$route.path;
  350. this.siteNameTitle = data.label;
  351. url = url.split("/index/", 2);
  352. console.log(url);
  353. if (url[1] == "monitor") {
  354. this.$refs.mychild.getJkList(data, 1);
  355. } else {
  356. this.$refs.mychild.getList(data, 1);
  357. }
  358. this.dataObj.siteNameTitle = data.label
  359. },
  360. // 获取站点名称列表
  361. siteListData() {
  362. this.$axios({
  363. method: "GET",
  364. url: "site_manage",
  365. params: {
  366. req: this.req,
  367. equip_type: this.equip_type,
  368. jk_type: "1",
  369. },
  370. })
  371. .then((res) => {
  372. if (res.data) {
  373. var data = res.data;
  374. console.log("数据数据", this.firstItem, res.data);
  375. var arrList = [];
  376. var list = data.forEach((item) => {
  377. if (
  378. item.self_site_name !== undefined &&
  379. item.self_site_name == ""
  380. ) {
  381. } else {
  382. if (item.self_site_name == undefined) {
  383. if (item.child) {
  384. var obj = {};
  385. var a = [];
  386. obj["label"] = item.site_name;
  387. obj["id"] = item.site_id;
  388. for (var j in item.child) {
  389. var obja = {};
  390. obja["label"] = item.child[j].site_name;
  391. obja["id"] = item.child[j].site_id;
  392. if (
  393. item.child[j].child &&
  394. item.child[j].child.length == 0
  395. ) {
  396. obja["children"] = item.child[j].child;
  397. } else if (
  398. item.child[j].child &&
  399. item.child[j].child.length !== 0
  400. ) {
  401. for (var k in item.child[j].child) {
  402. var objb = {};
  403. objb["label"] = item.child[j].child[k].site_name;
  404. objb["id"] = item.child[j].child[k].site_id;
  405. }
  406. obja["children"] = [objb];
  407. }
  408. a.push(obja);
  409. obj["children"] = a;
  410. }
  411. }
  412. arrList.push(obj);
  413. } else if (item.self_site_name !== undefined) {
  414. }
  415. }
  416. });
  417. this.data = arrList;
  418. console.log(arrList);
  419. // 默认选中第一个站点
  420. // this.siteNameTitle = data[0].child[0].site_name;
  421. // this.firstItem = data[0].child[0].site_id;
  422. if(localStorage.getItem('siteName')=='超级管理员'){
  423. this.siteNameTitle = "瑞通集团总站"
  424. }else{
  425. this.siteNameTitle = localStorage.getItem('siteName');
  426. }
  427. if(localStorage.getItem('site_id')=="0"){
  428. this.firstItem = ""
  429. }else{
  430. this.firstItem = localStorage.getItem('site_id');
  431. }
  432. let data = {};
  433. this.treeIterator(arrList,res => {
  434. if(res.id==this.firstItem){
  435. data = res
  436. }
  437. })
  438. this.$nextTick(() => {
  439. this.$refs.treeRef.setCurrentKey(this.firstItem);
  440. // const childrenItem = arrList[0].children[0];
  441. const childrenItem = data;
  442. if (this.firstShow) {
  443. this.handleNodeClick(childrenItem);
  444. this.firstShow = false;
  445. }
  446. });
  447. }
  448. })
  449. .catch((err) => {
  450. console.log(err);
  451. });
  452. },
  453. treeIterator(tree, func) {
  454. let node, curTree = [...tree]
  455. while ((node = curTree.shift())) {
  456. func(node)
  457. node.children && curTree.push(...node.children)
  458. }
  459. },
  460. // 树形插件右键点击事件
  461. rightClick(MouseEvent, object, Node, element) {
  462. console.log(object);
  463. this.menuVisible = false; // 先把模态框关死,目的是 第二次或者第n次右键鼠标的时候 它默认的是true
  464. this.menuVisible = true; // 显示模态窗口,跳出自定义菜单栏
  465. var menu = document.querySelector("#menuList");
  466. document.addEventListener("click", this.foo); // 给整个document添加监听鼠标事件,点击任何位置执行foo方法
  467. menu.style.display = "block";
  468. menu.style.left = MouseEvent.clientX - 0 + "px";
  469. menu.style.top = MouseEvent.clientY - 0 + "px";
  470. this.operateObj = object;
  471. },
  472. foo() {
  473. // 取消鼠标监听事件 菜单栏
  474. this.menuVisible = false;
  475. document.removeEventListener("click", this.foo); // 要及时关掉监听,不关掉的是一个坑,不信你试试,虽然前台显示的时候没有啥毛病,加一个alert你就知道了
  476. },
  477. // 指定新增
  478. addrInformation() {
  479. this.addSite = true;
  480. },
  481. addrData() {
  482. if (this.siteName == "") {
  483. this.$message({
  484. message: "未填写站点名称,请填写!",
  485. type: "warning",
  486. duration: 1500,
  487. });
  488. } else if (this.siteAddr.length == 0) {
  489. this.$message({
  490. message: "未填写站点地址,请填写!",
  491. type: "warning",
  492. duration: 1500,
  493. });
  494. } else {
  495. if (this.siteAddr.length < 3) {
  496. var sheng = "";
  497. var shi = this.siteAddr[0];
  498. var xian = this.siteAddr[1];
  499. } else {
  500. var sheng = this.siteAddr[0];
  501. var shi = this.siteAddr[1];
  502. var xian = this.siteAddr[2];
  503. }
  504. var postData = this.qs.stringify({
  505. site_name: this.siteName, // 站点名称
  506. site_pro: sheng, // 省
  507. site_city: shi, // 市
  508. site_area: xian, // 县或区
  509. site_parent_id:
  510. this.operateObj.id !== undefined ? this.operateObj.id : "", // id
  511. });
  512. this.$axios({
  513. method: "POST",
  514. url: "/site_manage",
  515. data: postData,
  516. })
  517. .then((res) => {
  518. console.log(res.data);
  519. if (res.data.status == 0) {
  520. this.$message({
  521. message: res.data.msg,
  522. type: "success",
  523. duration: 1500,
  524. });
  525. this.addSite = false;
  526. this.siteListData();
  527. } else {
  528. this.$message({
  529. message: res.data.msg,
  530. type: "error",
  531. duration: 1500,
  532. });
  533. }
  534. })
  535. .catch((err) => {
  536. console.log(err);
  537. this.$message({
  538. message: "添加失败请重试!",
  539. type: "error",
  540. duration: 1500,
  541. });
  542. });
  543. }
  544. },
  545. // 获取到当前点击菜单的数据userManger
  546. handleOpen(key, keyPath) {
  547. this.isTree = true;
  548. var data = key;
  549. var typeIndex = data.split("/index/");
  550. if (typeIndex[1] == "monitor") {
  551. // 性诱测报
  552. // this.req = 'hide'
  553. // this.equip_type = '4'
  554. // 苗情
  555. this.req = "hide";
  556. this.equip_type = "6";
  557. } else if(typeIndex[1]=='userManger'){
  558. this.isTree = false;
  559. }
  560. else {
  561. this.req = "";
  562. this.equip_type = "";
  563. }
  564. },
  565. // 点击获取全部站点名称列表
  566. allSiteListData() {
  567. this.req = "";
  568. this.equip_type = "";
  569. this.siteListData();
  570. },
  571. },
  572. };
  573. </script>
  574. <style scoped lang="less">
  575. .header {
  576. position: relative;
  577. width: 100%;
  578. height: 250px;
  579. // border-bottom: 2px solid #272b3a;
  580. // background: #397b0c no-repeat center / 100% 100%
  581. // url(../assets/images/monitor/h_bg.jpg);
  582. .RTlogo{
  583. position: absolute;
  584. width: 90px;
  585. left: 190px;
  586. top: 30px;
  587. }
  588. .userinfo {
  589. color: #fff;
  590. font-size: 22px;
  591. text-align: right;
  592. margin-top: 10px;
  593. position: relative;
  594. top: 20px;
  595. .userheadImg {
  596. width: 35px;
  597. height: 35px;
  598. border-radius: 50%;
  599. vertical-align: middle;
  600. margin-right: 6px;
  601. }
  602. }
  603. .sysName {
  604. // font-size: 30px;
  605. color: #fff;
  606. text-align: left;
  607. margin-top: 7px;
  608. padding-left: 280px;
  609. font-size: 16px;
  610. letter-spacing: 0.5px;
  611. h2 {
  612. font-size: 30px;
  613. line-height: 46px;
  614. font-weight: 700;
  615. letter-spacing: 7px;
  616. margin: 0;
  617. }
  618. p {
  619. font-size: 14px;
  620. }
  621. }
  622. .logInfo {
  623. color: #fff;
  624. position: absolute;
  625. top: 10px;
  626. left: 20px;
  627. display: flex;
  628. flex-direction: row;
  629. align-items: center;
  630. img {
  631. width: auto;
  632. height: 40px;
  633. }
  634. h3 {
  635. margin: 0;
  636. margin-left: 20px;
  637. }
  638. }
  639. }
  640. .container{
  641. background: url(../assets/images/headBj.png) no-repeat center top;
  642. background-size: 100% 250px;
  643. }
  644. .header2 {
  645. border-bottom: 2px solid #397b0c;
  646. position: relative;
  647. background-color: #397b0c;
  648. color: #fff;
  649. }
  650. .site {
  651. position: absolute;
  652. right: 16px;
  653. top: 70px;
  654. z-index: 8;
  655. font-size: 14px;
  656. color: #ffffff;
  657. span {
  658. color: #fff;
  659. letter-spacing: 1px;
  660. font-size: 13px;
  661. }
  662. }
  663. .header_btn {
  664. position: absolute;
  665. color: #fff;
  666. font-size: 20px;
  667. right: 20px;
  668. bottom: 10px;
  669. // z-index: 999;
  670. cursor: pointer;
  671. }
  672. .header_btn:hover {
  673. color: #fff;
  674. }
  675. .el-aside {
  676. color: #333;
  677. background: url(../assets/images/asideBG.png) no-repeat center;
  678. background-size: cover;
  679. .el-menu{
  680. background: transparent;
  681. }
  682. .el-menu-item {
  683. color: rgba(255, 255, 255, 0.5);
  684. height: 56px;
  685. line-height: 56px;
  686. font-size: 18px;
  687. .iconfont{
  688. // color: rgba(255, 255, 255, 0.5);
  689. color: inherit;
  690. font-size: 24px;
  691. position: relative;
  692. top: 1px;
  693. margin-right: 10px;
  694. }
  695. }
  696. .is-active {
  697. background: #409EFF;
  698. font-weight: bold;
  699. }
  700. .el-menu-item:focus,
  701. .el-menu-item:hover {
  702. // color: #39f9be;
  703. background: #409EFF;
  704. i {
  705. // color: #39f9be;
  706. }
  707. }
  708. i {
  709. color: #000;
  710. }
  711. // .is-active {
  712. // span {
  713. // color: #fff;
  714. // }
  715. // background: #5aae22;
  716. // i {
  717. // color: #fff;
  718. // }
  719. // }
  720. // .el-menu-item:focus,
  721. // .el-menu-item:hover {
  722. // i {
  723. // color: #fff;
  724. // }
  725. // color: #fff;
  726. // background: #5aae22;
  727. // }
  728. }
  729. .el-aside::-webkit-scrollbar {/*滚动条整体样式*/
  730. width: 6px;
  731. /* height: 10px; */
  732. }
  733. /*滚动条轨道样式*/
  734. .el-aside::-webkit-scrollbar-track {
  735. background-color: #f5f5f5;
  736. }
  737. /*滚动条滑块样式*/
  738. .el-aside::-webkit-scrollbar-thumb {
  739. background-color: #4983FB;
  740. border-radius: 5px;
  741. }
  742. /*滚动条按钮样式*/
  743. .el-aside::-webkit-scrollbar-button {
  744. background-color: #4983FB;
  745. }
  746. /*滚动条角样式*/
  747. .el-aside::-webkit-scrollbar-corner {
  748. background-color: #4983FB;
  749. }
  750. /*滚动条上下箭头样式*/
  751. .el-aside::-webkit-scrollbar-arrow {
  752. background-color: #4983FB;
  753. }
  754. /*滚动条下拉按钮样式*/
  755. .el-aside::-webkit-scrollbar-dropdown {
  756. background-color: #4983FB;
  757. }
  758. /*滚动条滑块被点击时的样式*/
  759. .el-aside::-webkit-scrollbar-thumb:active {
  760. background-color: #4983FB;
  761. }
  762. /*滚动条滑块被hover时的样式*/
  763. .el-aside::-webkit-scrollbar-thumb:hover {
  764. background-color: #4983FB;
  765. }
  766. .el-main {
  767. padding: 0;
  768. }
  769. /*滚动条整体样式*/
  770. .el-main::-webkit-scrollbar {
  771. width: 6px;
  772. /* height: 10px; */
  773. }
  774. /*滚动条轨道样式*/
  775. .el-main::-webkit-scrollbar-track {
  776. background-color: #f5f5f5;
  777. }
  778. /*滚动条滑块样式*/
  779. .el-main::-webkit-scrollbar-thumb {
  780. background-color: #4983FB;
  781. border-radius: 5px;
  782. }
  783. /*滚动条按钮样式*/
  784. .el-main::-webkit-scrollbar-button {
  785. background-color: #4983FB;
  786. }
  787. /*滚动条角样式*/
  788. .el-main::-webkit-scrollbar-corner {
  789. background-color: #4983FB;
  790. }
  791. /*滚动条上下箭头样式*/
  792. .el-main::-webkit-scrollbar-arrow {
  793. background-color: #4983FB;
  794. }
  795. /*滚动条下拉按钮样式*/
  796. .el-main::-webkit-scrollbar-dropdown {
  797. background-color: #4983FB;
  798. }
  799. /*滚动条滑块被点击时的样式*/
  800. .el-main::-webkit-scrollbar-thumb:active {
  801. background-color: #4983FB;
  802. }
  803. /*滚动条滑块被hover时的样式*/
  804. .el-main::-webkit-scrollbar-thumb:hover {
  805. background-color: #4983FB;
  806. }
  807. // 新改
  808. .header_ul {
  809. display: flex;
  810. justify-content: flex-end;
  811. margin: 0 85px 0 0;
  812. }
  813. .indexActive {
  814. border-bottom: 2px solid #fff;
  815. }
  816. #tree {
  817. margin: 15px 0 0 0;
  818. div {
  819. background: #474e60;
  820. }
  821. /deep/.el-tree-node__content{
  822. background: transparent;
  823. }
  824. /deep/.is-current{
  825. color: white;
  826. }
  827. }
  828. // 右键信息
  829. #menuList {
  830. height: 40px;
  831. width: 80px;
  832. position: absolute;
  833. border-radius: 10px;
  834. border: 1px solid #d8d6d6;
  835. background-color: #fff;
  836. z-index: 1;
  837. .menu_item {
  838. line-height: 20px;
  839. text-align: center;
  840. margin-top: 10px;
  841. cursor: pointer;
  842. }
  843. li:hover {
  844. background-color: #14a478;
  845. color: white;
  846. }
  847. li {
  848. font-size: 15px;
  849. }
  850. }
  851. </style>