Menu.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834
  1. <template>
  2. <div class="menu" v-if="currentMenu.length">
  3. <ul class="menu-list">
  4. <li
  5. class="menu-item"
  6. v-for="(menu, index) of currentMenu"
  7. :key="menu"
  8. @click="click(index)"
  9. :class="{ active: activeIndex == index }"
  10. @mouseenter="subMenuShow(menu.children, index)"
  11. >
  12. <router-link v-if="!menu.children" :to="menu.path">
  13. <el-tooltip
  14. class="item"
  15. effect="dark"
  16. :content="menu.text"
  17. placement="bottom"
  18. :show-after="500"
  19. :enterable="false"
  20. hide-after="10"
  21. >
  22. <div
  23. class="menu-icon svg-icon"
  24. :class="activeIndex == index ? 'svg-icon-green' : 'svg-icon-gray'"
  25. >
  26. <SvgIcon :svgid="menu.icon"></SvgIcon>
  27. </div>
  28. </el-tooltip>
  29. </router-link>
  30. <el-tooltip
  31. v-else
  32. class="item"
  33. effect="dark"
  34. :content="menu.text"
  35. placement="bottom"
  36. :show-after="500"
  37. :enterable="false"
  38. hide-after="10"
  39. >
  40. <div
  41. class="menu-icon svg-icon"
  42. :class="activeIndex == index ? 'svg-icon-green' : 'svg-icon-gray'"
  43. >
  44. <SvgIcon :svgid="menu.icon"></SvgIcon>
  45. </div>
  46. </el-tooltip>
  47. <!-- <div v-if="menu.children" class="sub-menu-item">
  48. <div class="menu-icon svg-icon" :class="activeIndex == index ? 'svg-icon-green' : 'svg-icon-gray'">
  49. <SvgIcon :svgid="menu.icon"></SvgIcon>
  50. </div>
  51. </div> -->
  52. </li>
  53. </ul>
  54. </div>
  55. <div
  56. class="sub-menu"
  57. v-show="isShowSubMenu"
  58. @mouseleave="subMenuHide"
  59. v-if="$store.state.themeName === 'dark'"
  60. >
  61. <ul class="menu-list">
  62. <li
  63. v-show="!menu.path.includes('decision1Mx')"
  64. class="menu-item"
  65. v-for="(menu, index) of subMenu"
  66. @click="subclick(index)"
  67. :key="menu"
  68. :class="{ active: subIndex == index }"
  69. >
  70. <router-link :to="menu.path">
  71. <div class="menu-icon svg-icon">
  72. <!-- <SvgIcon :svgid="menu.icon"></SvgIcon> -->
  73. </div>
  74. <div
  75. class="sub-menu-text"
  76. :class="subIndex == index ? 'green' : 'gray'"
  77. >
  78. {{ menu.text }}
  79. </div>
  80. </router-link>
  81. </li>
  82. </ul>
  83. </div>
  84. <div
  85. class="icon-fixed svg-icon"
  86. :class="fixed ? 'svg-icon-green' : 'svg-icon-gray'"
  87. @click="handleClickFixed"
  88. >
  89. <SvgIcon svgid="svg-unfixed" v-if="fixed == false"></SvgIcon>
  90. <SvgIcon svgid="svg-fixed" v-if="fixed == true"></SvgIcon>
  91. </div>
  92. </template>
  93. <script>
  94. import SvgIcon from "@com/coms/icon/svg-icon.vue";
  95. import { fillterMenuRoutes } from "@/utills/handleRoutes.js";
  96. export default {
  97. components: {
  98. SvgIcon,
  99. },
  100. props: {},
  101. data() {
  102. return {
  103. currRoot: "home",
  104. menuData: [
  105. {
  106. id: "stateMonitor",
  107. text: "全景监视",
  108. data: [],
  109. },
  110. {
  111. id: "economicsOperation",
  112. text: "经济运行",
  113. data: [],
  114. },
  115. {
  116. id: "health",
  117. text: "智慧检修",
  118. data: [],
  119. },
  120. {
  121. id: "others",
  122. text: "其他",
  123. data: [
  124. // {
  125. // text: "自定制报表管理",
  126. // icon: "svg-自定制报表管理",
  127. // path: "/others/report",
  128. // children: [
  129. // {
  130. // text: "日报表",
  131. // icon: "",
  132. // path: "/others/report/gjyrbb",
  133. // },
  134. // {
  135. // text: "风电场站自定义",
  136. // icon: "",
  137. // path: "/others/report/fdczzdy",
  138. // },
  139. // {
  140. // text: "风电项目自定义",
  141. // icon: "",
  142. // path: "/others/report/fdxmzdy",
  143. // },
  144. // ],
  145. // },
  146. // {
  147. // text: "统计分析",
  148. // icon: "svg-统计分析",
  149. // path: "/others/tjfx",
  150. // children: [
  151. // {
  152. // text: "统计分析",
  153. // icon: "svg-matrix",
  154. // path: "/others/tjfx",
  155. // },
  156. // {
  157. // text: "表底值查询",
  158. // icon: "svg-matrix",
  159. // path: "/others/bdzcx",
  160. // },
  161. // ],
  162. // },
  163. // {
  164. // text: "报表管理",
  165. // icon: "svg-报表管理",
  166. // path: "/others/oafd",
  167. // children: [
  168. // {
  169. // text: "OA日报",
  170. // icon: "svg-matrix",
  171. // path: "/others/oafd",
  172. // },
  173. // {
  174. // text: "OA日报(光伏)",
  175. // icon: "svg-matrix",
  176. // path: "/others/oagf",
  177. // },
  178. // {
  179. // text: "新能源日报",
  180. // icon: "svg-matrix",
  181. // path: "/others/xnyrb",
  182. // },
  183. // {
  184. // text: "国电MIS日报(风电)",
  185. // icon: "svg-matrix",
  186. // path: "/others/missfdrb",
  187. // },
  188. // {
  189. // text: "国电MIS日报(光伏)",
  190. // icon: "svg-matrix",
  191. // path: "/others/missgfrb",
  192. // },
  193. // {
  194. // text: "新能源风电生产月报",
  195. // icon: "svg-matrix",
  196. // path: "/others/xnyfdscyb",
  197. // },
  198. // {
  199. // text: "麻黄山生产月报",
  200. // icon: "svg-matrix",
  201. // path: "/others/mhsscyb",
  202. // },
  203. // {
  204. // text: "牛首山生产月报",
  205. // icon: "svg-matrix",
  206. // path: "/others/nssscyb",
  207. // },
  208. // {
  209. // text: "青山生产月报",
  210. // icon: "svg-matrix",
  211. // path: "/others/qsscyb",
  212. // },
  213. // {
  214. // text: "石板泉生产月报",
  215. // icon: "svg-matrix",
  216. // path: "/others/sbqscyb",
  217. // },
  218. // {
  219. // text: "香山生产月报",
  220. // icon: "svg-matrix",
  221. // path: "/others/xsscyb",
  222. // },
  223. // {
  224. // text: "新能源光伏生产月报",
  225. // icon: "svg-matrix",
  226. // path: "/others/xnygfscyb",
  227. // },
  228. // {
  229. // text: "大武口生产月报",
  230. // icon: "svg-matrix",
  231. // path: "/others/dwkscyb",
  232. // },
  233. // {
  234. // text: "平罗生产月报",
  235. // icon: "svg-matrix",
  236. // path: "/others/plscyb",
  237. // },
  238. // {
  239. // text: "宣和生产月报",
  240. // icon: "svg-matrix",
  241. // path: "/others/xhscyb",
  242. // },
  243. // ],
  244. // },
  245. // {
  246. // text: "原始数据查询",
  247. // icon: "svg-报表首页",
  248. // path: "/others/realSearch",
  249. // children: [
  250. // {
  251. // text: "测点数据查询",
  252. // icon: "svg-wind-site",
  253. // path: "/others/realSearch",
  254. // },
  255. // {
  256. // text: "测点历史数据查询",
  257. // icon: "svg-wind-site",
  258. // path: "/others/historySearch",
  259. // },
  260. // {
  261. // text: "气象历史数据",
  262. // icon: "svg-wind-site",
  263. // path: "/others/weather",
  264. // },
  265. // {
  266. // text: "数据导出",
  267. // icon: "svg-wind-site",
  268. // path: "/others/ExportExcel",
  269. // },
  270. // {
  271. // text: "设备管理",
  272. // icon: "svg-wind-site",
  273. // path: "/device/device",
  274. // },
  275. // ],
  276. // },
  277. // {
  278. // text: "预警记录",
  279. // icon: "svg-预警记录",
  280. // path: "/others/alarmCenter/alarmcenter",
  281. // children: [
  282. // {
  283. // text: "预警管理",
  284. // icon: "svg-wind-site",
  285. // path: "/others/alarmCenter/alarmcenter",
  286. // },
  287. // {
  288. // text: "停机事件管理",
  289. // icon: "svg-wind-site",
  290. // path: "/others/alarmCenter/tjsj",
  291. // },
  292. // {
  293. // text: "限电管理",
  294. // icon: "svg-wind-site",
  295. // path: "/others/alarmCenter/xdgl",
  296. // },
  297. // {
  298. // text: "升压站报警",
  299. // icon: "svg-wind-site",
  300. // path: "/others/alarmCenter/boosterAlarm",
  301. // },
  302. // {
  303. // text: "SCADA报警",
  304. // icon: "svg-wind-site",
  305. // path: "/others/alarmCenter/scadaAlarm",
  306. // },
  307. // {
  308. // text: "自定义报警",
  309. // icon: "svg-wind-site",
  310. // path: "/others/alarmCenter/customAlarm",
  311. // },
  312. // {
  313. // text: "自定义报警统计",
  314. // icon: "svg-wind-site",
  315. // path: "/others/alarmCenter/customStatistics",
  316. // },
  317. // ],
  318. // },
  319. // {
  320. // text: "专家知识",
  321. // icon: "svg-专家知识",
  322. // path: "/others/knowledge/knowledge",
  323. // children: [
  324. // {
  325. // text: "故障知识列表",
  326. // icon: "svg-matrix",
  327. // path: "/others/knowledge/knowledge",
  328. // },
  329. // {
  330. // text: "安全措施知识",
  331. // icon: "svg-matrix",
  332. // path: "/others/knowledge/knowledge2",
  333. // },
  334. // {
  335. // text: "排查检修方案",
  336. // icon: "svg-matrix",
  337. // path: "/others/knowledge/knowledge6",
  338. // },
  339. // {
  340. // text: "预警知识",
  341. // icon: "svg-matrix",
  342. // path: "/others/knowledge/knowledge7",
  343. // },
  344. // {
  345. // text: "特征参数",
  346. // icon: "svg-matrix",
  347. // path: "/others/knowledge/knowledge5",
  348. // },
  349. // {
  350. // text: "风险辨识知识",
  351. // icon: "svg-matrix",
  352. // path: "/others/knowledge/knowledge3",
  353. // },
  354. // {
  355. // text: "作业指导知识",
  356. // icon: "svg-matrix",
  357. // path: "/others/knowledge/knowledge4",
  358. // },
  359. // ],
  360. // },
  361. // {
  362. // text: "样本库",
  363. // icon: "svg-报表管理",
  364. // path: "/others/fault",
  365. // children: [
  366. // {
  367. // text: "故障训练样本库",
  368. // icon: "svg-matrix",
  369. // path: "/others/fault",
  370. // },
  371. // {
  372. // text: "性能下降样本库",
  373. // icon: "svg-matrix",
  374. // path: "/others/performance",
  375. // },
  376. // {
  377. // text: "预警分析样本库",
  378. // icon: "svg-matrix",
  379. // path: "/others/warning",
  380. // },
  381. // {
  382. // text: "性能预警综合分析",
  383. // icon: "svg-matrix",
  384. // path: "/others/analysis",
  385. // },
  386. // // {
  387. // // text: "功率曲线综合分析",
  388. // // icon: "svg-matrix",
  389. // // path: "/others/powerline/analysis",
  390. // // },
  391. // {
  392. // text: "知识库",
  393. // icon: "svg-matrix",
  394. // path: "/others/knowledgeBase",
  395. // },
  396. // // {
  397. // // text: "发电能力分析",
  398. // // icon: "svg-matrix",
  399. // // path: "/others/abilityAnalysis",
  400. // // },
  401. // // {
  402. // // text: "风电营销样本库",
  403. // // icon: "svg-matrix",
  404. // // path: "/others/market",
  405. // // }
  406. // {
  407. // text: "风机检修规则",
  408. // icon: "svg-matrix",
  409. // path: "/others/overhaulRule",
  410. // },
  411. // {
  412. // text: "故障手册",
  413. // icon: "svg-matrix",
  414. // path: "/others/faultManual",
  415. // },
  416. // ],
  417. // },
  418. ],
  419. },
  420. {
  421. id: "save",
  422. text: "安全管控",
  423. data: [
  424. {
  425. text: "安全管控",
  426. icon: "svg-安全管控",
  427. path: "/save/personnel",
  428. children: [
  429. {
  430. text: "人员矩阵",
  431. icon: "svg-wind-site",
  432. path: "/save/personnel",
  433. },
  434. {
  435. text: "全局监视",
  436. icon: "svg-wind-site",
  437. path: "/globalMonitor",
  438. },
  439. ],
  440. },
  441. ],
  442. },
  443. // {
  444. // id: "znbb",
  445. // text: "智能报表",
  446. // data: [
  447. // {
  448. // text: '报表首页',
  449. // icon: 'svg-wind-site',
  450. // path: '/reportPandect'
  451. // },
  452. // // 统计分析
  453. // {
  454. // text: "统计分析",
  455. // icon: "svg-matrix",
  456. // path: "/tjfx",
  457. // children: [
  458. // {
  459. // text: "统计分析",
  460. // icon: "svg-matrix",
  461. // path: "/tjfx",
  462. // },
  463. // {
  464. // text: "表底值查询",
  465. // icon: "svg-matrix",
  466. // path: "/bdzcx",
  467. // },
  468. // ],
  469. // },
  470. // {
  471. // text: "报表管理",
  472. // icon: "svg-matrix",
  473. // path: "/bdzcx",
  474. // children: [
  475. // {
  476. // text: "OA日报",
  477. // icon: "svg-matrix",
  478. // path: "/oafd",
  479. // },
  480. // {
  481. // text: "OA日报(光伏)",
  482. // icon: "svg-matrix",
  483. // path: "/oagf",
  484. // },
  485. // {
  486. // text: "新能源日报",
  487. // icon: "svg-matrix",
  488. // path: "/xnyrb",
  489. // },
  490. // {
  491. // text: "山西晋能MISS日报(风电)",
  492. // icon: "svg-matrix",
  493. // path: "/missfdrb",
  494. // },
  495. // {
  496. // text: "山西晋能MISS日报(光伏)",
  497. // icon: "svg-matrix",
  498. // path: "/missgfrb",
  499. // },
  500. // {
  501. // text: "新能源风电生产月报",
  502. // icon: "svg-matrix",
  503. // path: "/xnyfdscyb",
  504. // },
  505. // {
  506. // text: "麻黄山生产月报",
  507. // icon: "svg-matrix",
  508. // path: "/mhsscyb",
  509. // },
  510. // {
  511. // text: "牛首山生产月报",
  512. // icon: "svg-matrix",
  513. // path: "/nssscyb",
  514. // },
  515. // {
  516. // text: "青山生产月报",
  517. // icon: "svg-matrix",
  518. // path: "/qsscyb",
  519. // },
  520. // {
  521. // text: "石板泉生产月报",
  522. // icon: "svg-matrix",
  523. // path: "/sbqscyb",
  524. // },
  525. // {
  526. // text: "香山生产月报",
  527. // icon: "svg-matrix",
  528. // path: "/xsscyb",
  529. // },
  530. // {
  531. // text: "新能源光伏生产月报",
  532. // icon: "svg-matrix",
  533. // path: "/xnygfscyb",
  534. // },
  535. // {
  536. // text: "大武口生产月报",
  537. // icon: "svg-matrix",
  538. // path: "/dwkscyb",
  539. // },
  540. // {
  541. // text: "平罗生产月报",
  542. // icon: "svg-matrix",
  543. // path: "/plscyb",
  544. // },
  545. // {
  546. // text: "宣和生产月报",
  547. // icon: "svg-matrix",
  548. // path: "/xhscyb",
  549. // },
  550. // ],
  551. // },
  552. // {
  553. // text: "自定制报表管理",
  554. // icon: "svg-matrix",
  555. // path: "/fdczzdy",
  556. // children: [
  557. // {
  558. // text: "风电场站自定义",
  559. // icon: "svg-matrix",
  560. // path: "/fdczzdy",
  561. // },
  562. // {
  563. // text: "风电项目自定义",
  564. // icon: "svg-matrix",
  565. // path: "/fdxmzdy",
  566. // },
  567. // {
  568. // text: "光伏场站自定义",
  569. // icon: "svg-matrix",
  570. // path: "/gfczzdy",
  571. // },
  572. // {
  573. // text: "光伏项目自定义",
  574. // icon: "svg-matrix",
  575. // path: "/gfxmzdy",
  576. // },
  577. // ],
  578. // },
  579. // ],
  580. // },
  581. ],
  582. activeIndex: 0,
  583. isShowSubMenu: false,
  584. parentIndex: null,
  585. subMenu: [],
  586. subIndex: null,
  587. fixed: false,
  588. };
  589. },
  590. methods: {
  591. handleClickFixed() {
  592. this.fixed = !this.fixed;
  593. this.$store.commit("changeIsFixed", this.fixed);
  594. },
  595. fillterMenuRoutes,
  596. click(index) {
  597. this.activeIndex = index;
  598. this.subIndex = null;
  599. },
  600. subMenuShow(children, index) {
  601. if (children) {
  602. this.isShowSubMenu = true;
  603. this.parentIndex = index;
  604. } else {
  605. this.isShowSubMenu = false;
  606. this.parentIndex = null;
  607. }
  608. this.subMenu = children;
  609. },
  610. subMenuHide() {
  611. this.isShowSubMenu = false;
  612. this.parentIndex = null;
  613. // this.subMenu = [];
  614. },
  615. subclick(index) {
  616. this.activeIndex = this.parentIndex;
  617. this.subIndex = index;
  618. },
  619. },
  620. computed: {
  621. currentMenu() {
  622. let stateRoutes = this.$store.state.routes.routes;
  623. if (stateRoutes.length) {
  624. let routeObj = this.$store.state.routes.routes.find(
  625. (i) => i.path == "/" + this.currRoot
  626. );
  627. let currData = [];
  628. if (Object.keys(routeObj).length) {
  629. let a = JSON.parse(JSON.stringify(routeObj));
  630. if (a.children) {
  631. a.children.forEach((path) => {
  632. if (!path.hidden) {
  633. if (path.children) {
  634. currData.push({
  635. text: path.meta.title,
  636. icon: path.meta.icon,
  637. path: `/${this.currRoot}/${path.path}`,
  638. children: [],
  639. });
  640. let cu = currData.find((i) => i.text == path.meta.title);
  641. path.children.forEach((cputh) => {
  642. let caputh = "";
  643. if (cputh.path.includes(":")) {
  644. caputh = `${cputh.path.substring(
  645. 0,
  646. cputh.path.indexOf("/:")
  647. )}/SXJ_KGDL_GJY_FDC_STA/SXJ_KGDL_GJY_F_WT_0001_EQ`;
  648. } else {
  649. caputh = cputh.path;
  650. }
  651. cu["children"].push({
  652. text: cputh.meta.title,
  653. icon: cputh.meta.icon,
  654. path: `/${this.currRoot}/${path.path}/${caputh}`,
  655. });
  656. });
  657. cu.path = cu.children[0].path;
  658. } else {
  659. currData.push({
  660. text: path.meta.title,
  661. icon: path.meta.icon,
  662. path: `/${this.currRoot}/${path.path}`,
  663. });
  664. }
  665. }
  666. });
  667. this.$store.dispatch("changeMenuData", currData);
  668. return currData;
  669. } else {
  670. this.$store.dispatch("changeMenuData", []);
  671. return [];
  672. }
  673. } else {
  674. this.$store.dispatch("changeMenuData", []);
  675. return [];
  676. }
  677. } else {
  678. this.$store.dispatch("changeMenuData", []);
  679. return [];
  680. }
  681. },
  682. isFixed() {
  683. return JSON.parse(localStorage.getItem("isFixed"));
  684. },
  685. },
  686. watch: {
  687. isFixed: {
  688. handler(val) {
  689. if (!val) {
  690. this.$store.commit("changeIsFixed", false);
  691. } else {
  692. this.fixed = val;
  693. }
  694. },
  695. immediate: true,
  696. },
  697. // 监听路由
  698. $route: {
  699. handler: function (val, oldVal) {
  700. this.menuData.some((element, index) => {
  701. if (val.path.includes(element.id)) {
  702. this.$nextTick(() => {
  703. this.currRoot = element.id;
  704. this.$nextTick(() => {
  705. this.currentMenu.some((element, index) => {
  706. if (val.path == element.path) {
  707. this.activeIndex = index;
  708. }
  709. });
  710. });
  711. });
  712. return true;
  713. } else {
  714. this.currRoot = "home";
  715. this.activeIndex = 0;
  716. }
  717. });
  718. },
  719. //深度观察监听
  720. deep: true,
  721. },
  722. },
  723. };
  724. </script>
  725. <style lang="less">
  726. .menu {
  727. padding-top: 20px;
  728. z-index: 3001;
  729. .menu-list {
  730. margin: 0;
  731. padding: 0;
  732. list-style: none;
  733. .menu-item {
  734. padding: 20px 0;
  735. text-align: center;
  736. .menu-icon {
  737. display: flex;
  738. justify-content: center;
  739. }
  740. &.active i {
  741. color: #05bb4c;
  742. transition: color 1s;
  743. }
  744. }
  745. }
  746. i {
  747. font-size: 16px;
  748. color: rgba(255, 255, 255, 50%);
  749. }
  750. }
  751. .sub-menu {
  752. position: absolute;
  753. top: 0;
  754. left: 50px;
  755. width: 184px;
  756. height: 100%;
  757. padding-top: 10px;
  758. background: fade(#192a26, 75);
  759. border-right: 1px solid fade(@green, 50);
  760. box-shadow: inset 11px 0px 20px 0px fade(#021412, 60);
  761. .menu-list {
  762. margin: 0;
  763. padding: 0;
  764. list-style: none;
  765. .menu-item {
  766. display: flex;
  767. text-align: center;
  768. line-height: 1.5;
  769. padding: 8px 0;
  770. background: #121d1c;
  771. a {
  772. display: flex;
  773. width: 100%;
  774. height: 100%;
  775. padding: 0 10px;
  776. font-size: 14px;
  777. text-decoration: unset;
  778. white-space: nowrap;
  779. .menu-icon {
  780. display: flex;
  781. align-items: center;
  782. svg {
  783. width: 14px;
  784. height: 14px;
  785. use {
  786. fill: fade(@green, 75);
  787. }
  788. }
  789. }
  790. }
  791. &.active {
  792. background: #323e70;
  793. .menu-icon {
  794. display: flex;
  795. svg use {
  796. fill: fade(@white, 75);
  797. }
  798. }
  799. }
  800. .sub-menu-text {
  801. margin-left: 10px;
  802. color: @gray-l;
  803. }
  804. & + .menu-item {
  805. border-top: 1px solid fade(@darkgray, 40);
  806. }
  807. }
  808. }
  809. i {
  810. font-size: 2.222vh;
  811. color: rgba(255, 255, 255, 50%);
  812. }
  813. }
  814. .icon-fixed {
  815. padding-bottom: 20px;
  816. }
  817. </style>