Menu.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937
  1. <template>
  2. <div class="menu">
  3. <ul class="menu-list">
  4. <li class="menu-item"
  5. v-for="(menu, index) of currentMenu"
  6. :key="menu"
  7. @click="click(index)"
  8. :class="{ active: activeIndex == index }"
  9. @mouseenter="subMenuShow(menu.children, index)">
  10. <router-link :to="menu.path">
  11. <el-tooltip class="item"
  12. effect="dark"
  13. :content="menu.text"
  14. placement="bottom"
  15. :show-after="500">
  16. <div class="menu-icon svg-icon"
  17. :class="activeIndex == index ? 'svg-icon-green' : 'svg-icon-gray'">
  18. <SvgIcon :svgid="menu.icon"></SvgIcon>
  19. </div>
  20. </el-tooltip>
  21. </router-link>
  22. <!-- <div v-if="menu.children" class="sub-menu-item">
  23. <div class="menu-icon svg-icon" :class="activeIndex == index ? 'svg-icon-green' : 'svg-icon-gray'">
  24. <SvgIcon :svgid="menu.icon"></SvgIcon>
  25. </div>
  26. </div> -->
  27. </li>
  28. </ul>
  29. </div>
  30. <div class="sub-menu"
  31. v-show="isShowSubMenu"
  32. @mouseleave="subMenuHide">
  33. <ul class="menu-list">
  34. <li class="menu-item"
  35. v-for="(menu, index) of subMenu"
  36. @click="subclick(index)"
  37. :key="menu"
  38. :class="{ active: subIndex == index }">
  39. <router-link :to="menu.path">
  40. <div class="menu-icon svg-icon">
  41. <SvgIcon :svgid="menu.icon"></SvgIcon>
  42. </div>
  43. <div class="sub-menu-text"
  44. :class="subIndex == index ? 'green' : 'gray'">{{ menu.text }}</div>
  45. </router-link>
  46. </li>
  47. </ul>
  48. </div>
  49. </template>
  50. <script>
  51. import SvgIcon from '@com/coms/icon/svg-icon.vue'
  52. export default {
  53. components: {
  54. SvgIcon
  55. },
  56. props: {},
  57. data() {
  58. return {
  59. currRoot: 'monitor',
  60. menuData: [
  61. {
  62. id: 'monitor',
  63. text: '状态监视',
  64. data: [
  65. {
  66. text: '驾驶舱',
  67. icon: 'svg-lead-cockpit',
  68. path: '/monitor/home'
  69. },
  70. {
  71. text: '基础矩阵',
  72. icon: 'svg-matrix',
  73. path: '/monitor/lightmatrix1'
  74. },
  75. {
  76. text: '明细矩阵',
  77. icon: 'svg-mx-matrix',
  78. path: '/monitor/lightmatrix3'
  79. },
  80. {
  81. text: '欠发矩阵',
  82. icon: 'svg-qf-matrix',
  83. path: '/monitor/lightmatrix2'
  84. },
  85. {
  86. text: '光伏矩阵',
  87. icon: 'svg-gf-matrix',
  88. path: '/monitor/lightmatrix'
  89. },
  90. {
  91. text: '状态监视',
  92. icon: 'svg-state-watch',
  93. path: '/monitor/status'
  94. },
  95. {
  96. text: 'Agc',
  97. icon: 'svg-agc',
  98. path: '/monitor/agc'
  99. },
  100. {
  101. text: '风场',
  102. icon: 'svg-wind-site',
  103. path: '/monitor/windsite/home/MHS_FDC'
  104. }
  105. ]
  106. }
  107. ,
  108. {
  109. id: 'decision1',
  110. text: '经济运行',
  111. data: [
  112. ,
  113. {
  114. text: '对标管理',
  115. icon: 'svg-matrix',
  116. path: '/decision1',
  117. children: [
  118. {
  119. text: '风机绩效榜',
  120. icon: 'svg-wind-site',
  121. path: '/decision1'
  122. },
  123. {
  124. text: '五项损失率',
  125. icon: 'svg-wind-site',
  126. path: '/decision2'
  127. },
  128. {
  129. text: '场内对标',
  130. icon: 'svg-wind-site',
  131. path: '/decision2Cndb'
  132. },
  133. {
  134. text: '场际对标',
  135. icon: 'svg-wind-site',
  136. path: '/decision2Cjdb'
  137. },
  138. {
  139. text: '项目对标',
  140. icon: 'svg-wind-site',
  141. path: '/decision2Xmdb'
  142. },
  143. {
  144. text: '线路对标',
  145. icon: 'svg-wind-site',
  146. path: '/decision2Xldb'
  147. },
  148. {
  149. text: '性能对标',
  150. icon: 'svg-wind-site',
  151. path: '/decision3'
  152. },
  153. {
  154. text: '值际对标',
  155. icon: 'svg-wind-site',
  156. path: '/decision4'
  157. },
  158. {
  159. text: '单机横向对比',
  160. icon: 'svg-matrix',
  161. path: '/decision3db'
  162. },
  163. {
  164. text: '操作指令统计',
  165. icon: 'svg-matrix',
  166. path: '/decision4czzl'
  167. }
  168. ]
  169. }, // 三率管理
  170. {
  171. text: '三率管理',
  172. icon: 'svg-matrix',
  173. path: '/fwjsl',
  174. children: [
  175. {
  176. text: '复位及时率',
  177. icon: 'svg-wind-site',
  178. path: '/fwjsl'
  179. },
  180. {
  181. text: '状态转换率',
  182. icon: 'svg-wind-site',
  183. path: '/ztzhl'
  184. },
  185. {
  186. text: '消缺及时率',
  187. icon: 'svg-wind-site',
  188. path: '/xqjsl'
  189. }
  190. ]
  191. } ,
  192. {
  193. text: "排行榜",
  194. icon: "svg-matrix",
  195. path: "/phb",
  196. children: [
  197. {
  198. text: "发电效率排行",
  199. icon: "svg-wind-site",
  200. path: "/powerRank",
  201. },
  202. {
  203. text: "总发电效率排行",
  204. icon: "svg-wind-site",
  205. path: "/totalPowerRank",
  206. },
  207. {
  208. text: "报警排行",
  209. icon: "svg-wind-site",
  210. path: "/warningRank",
  211. },
  212. ],
  213. },
  214. {
  215. text: '专题分析',
  216. icon: 'svg-wind-site',
  217. path: '/new/ztfx',
  218. children: [
  219. {
  220. text: '综合分析',
  221. icon: 'svg-wind-site',
  222. path: '/new/ztfx'
  223. },
  224. {
  225. text: '风能利用率',
  226. icon: 'svg-wind-site',
  227. path: '/new/fnlyl'
  228. },
  229. {
  230. text: '维护损失率',
  231. icon: 'svg-wind-site',
  232. path: '/new/whssl'
  233. },
  234. {
  235. text: '故障损失率',
  236. icon: 'svg-wind-site',
  237. path: '/new/gzssl'
  238. },
  239. {
  240. text: '限电损失率',
  241. icon: 'svg-wind-site',
  242. path: '/new/xdssl'
  243. },
  244. {
  245. text: '性能损失率',
  246. icon: 'svg-wind-site',
  247. path: '/new/xnssl'
  248. },
  249. {
  250. text: '受累损失率',
  251. icon: 'svg-wind-site',
  252. path: '/new/slssl'
  253. },
  254. {
  255. text: 'MTBF分析',
  256. icon: 'svg-wind-site',
  257. path: '/new/mtbf'
  258. },
  259. {
  260. text: 'MTTR分析',
  261. icon: 'svg-wind-site',
  262. path: '/new/mttr'
  263. },
  264. {
  265. text: '复位及时率',
  266. icon: 'svg-wind-site',
  267. path: '/new/zfwjsl'
  268. },
  269. {
  270. text: '状态转换率',
  271. icon: 'svg-wind-site',
  272. path: '/new/zztzhl'
  273. },
  274. {
  275. text: '消缺及时率',
  276. icon: 'svg-wind-site',
  277. path: '/new/zxqjsl'
  278. },
  279. {
  280. text: '发电量分析',
  281. icon: 'svg-wind-site',
  282. path: '/new/zfdl'
  283. },
  284. {
  285. text: '综合场用电量',
  286. icon: 'svg-wind-site',
  287. path: '/new/zzhcydl'
  288. }
  289. ]
  290. } ,
  291. {
  292. text: "风机分析",
  293. icon: "svg-matrix",
  294. path: "/fjfx",
  295. children: [
  296. {
  297. text: '单机性能分析',
  298. icon: 'svg-wind-site',
  299. path: '/performanceAnalysis'
  300. },
  301. {
  302. text: '单机月度分析',
  303. icon: 'svg-wind-site',
  304. path: '/singleAnalysis'
  305. },
  306. ],
  307. }
  308. // {
  309. // text: "单机分析",
  310. // icon: "svg-wind-site",
  311. // path: "/fgzyfx",
  312. // children: [
  313. // {
  314. // text: "单机分析详细",
  315. // icon: "svg-wind-site",
  316. // path: "/new/dj1",
  317. // },
  318. // {
  319. // text: "电量预测",
  320. // icon: "svg-wind-site",
  321. // path: "/new/pf1",
  322. // },
  323. // {
  324. // text: "气象预测",
  325. // icon: "svg-wind-site",
  326. // path: "/new/fs",
  327. // }
  328. // ]
  329. // }
  330. ]
  331. },
  332. {
  333. id: 'health',
  334. text: '智慧检修',
  335. data: [
  336. {
  337. text: '沙盘',
  338. icon: 'svg-wind-site',
  339. path: '/spt'
  340. },
  341. {
  342. text: '等级评估',
  343. icon: 'svg-wind-site',
  344. path: '/djpg'
  345. },
  346. {
  347. text: '健康管理',
  348. icon: 'svg-wind-site',
  349. path: '/health',
  350. children: [
  351. {
  352. text: '健康推荐',
  353. icon: 'svg-wind-site',
  354. path: '/health'
  355. },
  356. {
  357. text: '健康首页',
  358. icon: 'svg-wind-site',
  359. path: '/health/health2'
  360. },
  361. {
  362. text: '健康总览',
  363. icon: 'svg-wind-site',
  364. path: '/health/health6'
  365. },
  366. {
  367. text: '健康矩阵',
  368. icon: 'svg-wind-site',
  369. path: '/health/health5'
  370. },
  371. // {
  372. // text: "健康列表",
  373. // icon: "svg-wind-site",
  374. // path: "/health/health6",
  375. // },
  376. {
  377. text: '健康列表',
  378. icon: 'svg-wind-site',
  379. path: '/health/health8'
  380. }
  381. ]
  382. },
  383. {
  384. text: '全生命周期',
  385. icon: 'svg-wind-site',
  386. path: '/allLifeManage'
  387. }, {
  388. text: '能效分析',
  389. icon: 'svg-wind-site',
  390. path: '/powerCurve',
  391. children: [
  392. {
  393. text: '功率曲线拟合',
  394. icon: 'svg-wind-site',
  395. path: '/powerCurve'
  396. },
  397. {
  398. text: '偏航对风分析',
  399. icon: 'svg-wind-site',
  400. path: '/nxfx2'
  401. },
  402. {
  403. text: '切入切出分析',
  404. icon: 'svg-wind-site',
  405. path: '/cutAnalyse'
  406. },
  407. {
  408. text: '曲线偏差率分析',
  409. icon: 'svg-wind-site',
  410. path: '/qxpclfx'
  411. },
  412. {
  413. text: '单机饱和度',
  414. icon: 'svg-wind-site',
  415. path: '/wtSaturability'
  416. }
  417. ]
  418. },
  419. {
  420. text: '可靠性分析',
  421. icon: 'svg-wind-site',
  422. path: '/new/alarmcenter1',
  423. children: [
  424. {
  425. text: '预警分析',
  426. icon: 'svg-wind-site',
  427. path: '/new/alarmcenter1'
  428. },
  429. {
  430. text: '故障分析',
  431. icon: 'svg-wind-site',
  432. path: '/new/alarmcenter2'
  433. },
  434. {
  435. text: '预警评判分析',
  436. icon: 'svg-wind-site',
  437. path: '/warnStatistics'
  438. },
  439. {
  440. text: '故障评判分析',
  441. icon: 'svg-wind-site',
  442. path: '/malfunctionStatistics'
  443. }
  444. ]
  445. },
  446. {
  447. text: '风光资源分析',
  448. icon: 'svg-wind-site',
  449. path: '/windAnalysis',
  450. children: [
  451. {
  452. text: '风资源散点',
  453. icon: 'svg-wind-site',
  454. path: '/windAnalysis'
  455. },
  456. {
  457. text: '风资源风向',
  458. icon: 'svg-wind-site',
  459. path: '/windAnalysis/fx'
  460. }
  461. ]
  462. }
  463. ]
  464. },
  465. {
  466. id: 'personnel',
  467. text: '安全管控',
  468. data: [
  469. // ,
  470. // {
  471. // text: "五项损失率",
  472. // icon: "svg-matrix",
  473. // path: "/decision/decision2",
  474. // },
  475. // {
  476. // text: "场内对标",
  477. // icon: "svg-matrix",
  478. // path: "/decision/decision2Cndb",
  479. // },
  480. // {
  481. // text: "场际对标",
  482. // icon: "svg-matrix",
  483. // path: "/decision/decision2Cjdb",
  484. // },
  485. // {
  486. // text: "项目对标",
  487. // icon: "svg-matrix",
  488. // path: "/decision/decision2Xmdb",
  489. // },
  490. // {
  491. // text: "线路对标",
  492. // icon: "svg-matrix",
  493. // path: "/decision/decision2Xldb",
  494. // },
  495. // {
  496. // text: "性能对标",
  497. // icon: "svg-matrix",
  498. // path: "/decision/decision3",
  499. // },
  500. // {
  501. // text: "值际对标",
  502. // icon: "svg-matrix",
  503. // path: "/decision/decision4",
  504. // }
  505. {
  506. text: '安全管控',
  507. icon: 'svg-matrix',
  508. path: '/new/personnel',
  509. children: [
  510. {
  511. text: '人员矩阵',
  512. icon: 'svg-wind-site',
  513. path: '/new/personnel'
  514. },
  515. {
  516. text: '全局监视',
  517. icon: 'svg-wind-site',
  518. path: '/new/personnel'
  519. }
  520. ]
  521. }
  522. ]
  523. },
  524. {
  525. id: 'bdzcx',
  526. text: '智能报表',
  527. data: [
  528. // 统计分析
  529. {
  530. text: '统计分析',
  531. icon: 'svg-matrix',
  532. path: '/tjfx',
  533. children: [
  534. {
  535. text: '统计分析',
  536. icon: 'svg-matrix',
  537. path: '/tjfx'
  538. },
  539. {
  540. text: '表底值查询',
  541. icon: 'svg-matrix',
  542. path: '/bdzcx'
  543. }
  544. ]
  545. },
  546. // 报表管理
  547. {
  548. text: '报表管理',
  549. icon: 'svg-matrix',
  550. path: '/bdzcx',
  551. children: [
  552. {
  553. text: 'OA日报',
  554. icon: 'svg-matrix',
  555. path: '/oafd'
  556. },
  557. {
  558. text: 'OA日报(光伏)',
  559. icon: 'svg-matrix',
  560. path: '/oagf'
  561. },
  562. {
  563. text: '新能源日报',
  564. icon: 'svg-matrix',
  565. path: '/xnyrb'
  566. },
  567. {
  568. text: '国电电力MISS日报(风电)',
  569. icon: 'svg-matrix',
  570. path: '/missfdrb'
  571. },
  572. {
  573. text: '国电电力MISS日报(光伏)',
  574. icon: 'svg-matrix',
  575. path: '/missgfrb'
  576. },
  577. {
  578. text: '新能源风电生产月报',
  579. icon: 'svg-matrix',
  580. path: '/xnyfdscyb'
  581. },
  582. {
  583. text: '麻黄山生产月报',
  584. icon: 'svg-matrix',
  585. path: '/mhsscyb'
  586. },
  587. {
  588. text: '牛首山生产月报',
  589. icon: 'svg-matrix',
  590. path: '/nssscyb'
  591. },
  592. {
  593. text: '青山生产月报',
  594. icon: 'svg-matrix',
  595. path: '/qsscyb'
  596. },
  597. {
  598. text: '石板泉生产月报',
  599. icon: 'svg-matrix',
  600. path: '/sbqscyb'
  601. },
  602. {
  603. text: '香山生产月报',
  604. icon: 'svg-matrix',
  605. path: '/xsscyb'
  606. },
  607. {
  608. text: '新能源光伏生产月报',
  609. icon: 'svg-matrix',
  610. path: '/xnygfscyb'
  611. },
  612. {
  613. text: '大武口生产月报',
  614. icon: 'svg-matrix',
  615. path: '/dwkscyb'
  616. },
  617. {
  618. text: '平罗生产月报',
  619. icon: 'svg-matrix',
  620. path: '/plscyb'
  621. },
  622. {
  623. text: '宣和生产月报',
  624. icon: 'svg-matrix',
  625. path: '/xhscyb'
  626. }
  627. ]
  628. },
  629. // 自定制报表管理
  630. {
  631. text: '自定制报表管理',
  632. icon: 'svg-matrix',
  633. path: '/fdczzdy',
  634. children: [
  635. {
  636. text: '风电场站自定义',
  637. icon: 'svg-matrix',
  638. path: '/fdczzdy'
  639. },
  640. {
  641. text: '风电项目自定义',
  642. icon: 'svg-matrix',
  643. path: '/fdxmzdy'
  644. },
  645. {
  646. text: '光伏场站自定义',
  647. icon: 'svg-matrix',
  648. path: '/gfczzdy'
  649. },
  650. {
  651. text: '光伏项目自定义',
  652. icon: 'svg-matrix',
  653. path: '/gfxmzdy'
  654. }
  655. ]
  656. }
  657. ]
  658. },
  659. {
  660. id: 'realSearch',
  661. text: '数据管理',
  662. data: [
  663. {
  664. text: '原始数据查询',
  665. icon: 'svg-wind-site',
  666. path: '/realSearch',
  667. children: [
  668. {
  669. text: '测点数据查询',
  670. icon: 'svg-wind-site',
  671. path: '/realSearch'
  672. },
  673. {
  674. text: '测点历史数据查询',
  675. icon: 'svg-wind-site',
  676. path: '/historySearch'
  677. }
  678. ]
  679. },
  680. {
  681. text: '预警记录',
  682. icon: 'svg-wind-site',
  683. path: '/new/alarmcenter',
  684. children: [
  685. {
  686. text: '预警管理',
  687. icon: 'svg-wind-site',
  688. path: '/new/alarmcenter'
  689. },
  690. {
  691. text: '停机事件管理',
  692. icon: 'svg-wind-site',
  693. path: '/new/tjsj'
  694. },
  695. {
  696. text: '限电管理',
  697. icon: 'svg-wind-site',
  698. path: '/new/xdgl'
  699. },
  700. {
  701. text: '升压站报警',
  702. icon: 'svg-wind-site',
  703. path: '/alarmCenter/boosterAlarm'
  704. },
  705. {
  706. text: 'SCADA报警',
  707. icon: 'svg-wind-site',
  708. path: '/alarmCenter/scadaAlarm'
  709. },
  710. {
  711. text: '自定义报警',
  712. icon: 'svg-wind-site',
  713. path: '/alarmCenter/customAlarm'
  714. },
  715. {
  716. text: '自定义报警统计',
  717. icon: 'svg-wind-site',
  718. path: '/alarmCenter/customStatistics'
  719. }
  720. ]
  721. },
  722. {
  723. text: '专家知识',
  724. icon: 'svg-wind-site',
  725. path: '/knowledge',
  726. children: [
  727. {
  728. text: '故障知识列表',
  729. icon: 'svg-matrix',
  730. path: '/knowledge'
  731. },
  732. {
  733. text: '安全措施知识',
  734. icon: 'svg-matrix',
  735. path: '/knowledge2'
  736. },
  737. {
  738. text: '排查检修方案',
  739. icon: 'svg-matrix',
  740. path: '/knowledge6'
  741. },
  742. {
  743. text: '预警知识',
  744. icon: 'svg-matrix',
  745. path: '/knowledge7'
  746. },
  747. {
  748. text: '特征参数',
  749. icon: 'svg-matrix',
  750. path: '/knowledge5'
  751. },
  752. {
  753. text: '风险辨识知识',
  754. icon: 'svg-matrix',
  755. path: '/knowledge3'
  756. },
  757. {
  758. text: '作业指导知识',
  759. icon: 'svg-matrix',
  760. path: '/knowledge4'
  761. }
  762. ]
  763. }
  764. ]
  765. }
  766. ],
  767. activeIndex: 0,
  768. isShowSubMenu: false,
  769. parentIndex: null,
  770. subMenu: [],
  771. subIndex: null
  772. }
  773. },
  774. methods: {
  775. click(index) {
  776. this.activeIndex = index
  777. this.subIndex = null
  778. },
  779. subMenuShow(children, index) {
  780. if (children) {
  781. this.isShowSubMenu = true
  782. this.parentIndex = index
  783. } else {
  784. this.isShowSubMenu = false
  785. this.parentIndex = null
  786. }
  787. this.subMenu = children
  788. },
  789. subMenuHide() {
  790. this.isShowSubMenu = false
  791. this.parentIndex = null
  792. // this.subMenu = [];
  793. },
  794. subclick(index) {
  795. this.activeIndex = this.parentIndex
  796. this.subIndex = index
  797. }
  798. },
  799. computed: {
  800. currentMenu() {
  801. let data = this.menuData.filter(t => {
  802. return t.id == this.currRoot
  803. })[0].data
  804. return data
  805. }
  806. },
  807. watch: {
  808. // 监听路由
  809. $route: {
  810. handler: function(val, oldVal) {
  811. this.menuData.some((element, index) => {
  812. if (val.path.includes(element.id)) {
  813. this.currRoot = element.id
  814. this.$nextTick(() => {
  815. this.currentMenu.some((element, index) => {
  816. if (val.path == element.path) {
  817. this.activeIndex = index
  818. }
  819. })
  820. })
  821. return true
  822. }
  823. })
  824. },
  825. //深度观察监听
  826. deep: true
  827. }
  828. }
  829. }
  830. </script>
  831. <style lang="less">
  832. .menu {
  833. padding-top: 1.481vh;
  834. .menu-list {
  835. margin: 0;
  836. padding: 0;
  837. list-style: none;
  838. .menu-item {
  839. padding: 1.481vh 0;
  840. text-align: center;
  841. .menu-icon {
  842. display: flex;
  843. justify-content: center;
  844. }
  845. &.active i {
  846. color: #05bb4c;
  847. transition: color 1s;
  848. }
  849. }
  850. }
  851. i {
  852. font-size: 2.222vh;
  853. color: rgba(255, 255, 255, 50%);
  854. }
  855. }
  856. .sub-menu {
  857. position: absolute;
  858. top: 0;
  859. left: 5.3704vh;
  860. width: 158px;
  861. height: 100%;
  862. padding-top: 1.481vh;
  863. background: fade(#192a26, 75);
  864. border-right: 1px solid fade(@green, 50);
  865. box-shadow: inset 11px 0px 20px 0px fade(#021412, 60);
  866. .menu-list {
  867. margin: 0;
  868. padding: 0;
  869. list-style: none;
  870. .menu-item {
  871. display: flex;
  872. text-align: center;
  873. line-height: 1.5;
  874. padding: 8px 0;
  875. background: #121d1c;
  876. a {
  877. display: flex;
  878. width: 100%;
  879. height: 100%;
  880. padding: 0 1.4815vh;
  881. font-size: @fontsize-s;
  882. text-decoration: unset;
  883. .menu-icon {
  884. display: flex;
  885. align-items: center;
  886. svg {
  887. width: 14px;
  888. height: 14px;
  889. use {
  890. fill: fade(@green, 75);
  891. }
  892. }
  893. }
  894. }
  895. &.active {
  896. background: #323e70;
  897. .menu-icon {
  898. display: flex;
  899. svg use {
  900. fill: fade(@white, 75);
  901. }
  902. }
  903. }
  904. .sub-menu-text {
  905. margin-left: 1.1111vh;
  906. color: @gray-l;
  907. }
  908. & + .menu-item {
  909. border-top: 1px solid fade(@darkgray, 40);
  910. }
  911. }
  912. }
  913. i {
  914. font-size: 2.222vh;
  915. color: rgba(255, 255, 255, 50%);
  916. }
  917. }
  918. </style>