Menu.vue 34 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198
  1. <template>
  2. <div class="menu">
  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 :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. <!-- <div v-if="menu.children" class="sub-menu-item">
  31. <div class="menu-icon svg-icon" :class="activeIndex == index ? 'svg-icon-green' : 'svg-icon-gray'">
  32. <SvgIcon :svgid="menu.icon"></SvgIcon>
  33. </div>
  34. </div> -->
  35. </li>
  36. </ul>
  37. </div>
  38. <div class="sub-menu" v-show="isShowSubMenu" @mouseleave="subMenuHide">
  39. <ul class="menu-list">
  40. <li
  41. class="menu-item"
  42. v-for="(menu, index) of subMenu"
  43. @click="subclick(index)"
  44. :key="menu"
  45. :class="{ active: subIndex == index }"
  46. >
  47. <router-link :to="menu.path">
  48. <div class="menu-icon svg-icon">
  49. <!-- <SvgIcon :svgid="menu.icon"></SvgIcon> -->
  50. </div>
  51. <div
  52. class="sub-menu-text"
  53. :class="subIndex == index ? 'green' : 'gray'"
  54. >
  55. {{ menu.text }}
  56. </div>
  57. </router-link>
  58. </li>
  59. </ul>
  60. </div>
  61. </template>
  62. <script>
  63. import SvgIcon from "@com/coms/icon/svg-icon.vue";
  64. export default {
  65. components: {
  66. SvgIcon,
  67. },
  68. props: {},
  69. data() {
  70. return {
  71. currRoot: "monitor",
  72. menuData: [
  73. {
  74. id: "monitor",
  75. text: "驾驶舱",
  76. data: [
  77. // {
  78. // text: '驾驶舱',
  79. // icon: 'svg-lead-cockpit',
  80. // path: '/monitor/home'
  81. // },
  82. {
  83. text: "基础矩阵",
  84. icon: "svg-matrix",
  85. path: "/monitor/lightmatrix1",
  86. },
  87. {
  88. text: "明细矩阵",
  89. icon: "svg-mx-matrix",
  90. path: "/monitor/lightmatrix3",
  91. },
  92. {
  93. text: "欠发矩阵",
  94. icon: "svg-qf-matrix",
  95. path: "/monitor/lightmatrix2",
  96. },
  97. {
  98. text: "光伏矩阵",
  99. icon: "svg-gf-matrix",
  100. path: "/monitor/lightmatrix",
  101. },
  102. {
  103. text: "状态监视",
  104. icon: "svg-state-watch",
  105. path: "/monitor/status",
  106. },
  107. {
  108. text: "Agc",
  109. icon: "svg-agc",
  110. path: "/monitor/agc",
  111. },
  112. {
  113. text: "风场",
  114. icon: "svg-wind-site",
  115. path: "/monitor/windsite/home/MHS_FDC",
  116. },
  117. ],
  118. },
  119. {
  120. id: "decision",
  121. text: "经济运行",
  122. data: [
  123. // {
  124. // text: '经济运行首页',
  125. // icon: 'svg-wind-site',
  126. // // path: '/monitor/sandtable'
  127. // path: '/decision/pb'
  128. // },
  129. {
  130. text: "对标管理",
  131. icon: "svg-dbgl",
  132. path: "/decision/decision1",
  133. children: [
  134. {
  135. text: "风机绩效榜",
  136. icon: "svg-wind-site",
  137. path: "/decision/decision1",
  138. },
  139. {
  140. text: "五项损失率",
  141. icon: "svg-wind-site",
  142. path: "/decision/decision2",
  143. },
  144. {
  145. text: "场内对标",
  146. icon: "svg-wind-site",
  147. path: "/decision/decision2Cndb",
  148. },
  149. {
  150. text: "场际对标",
  151. icon: "svg-wind-site",
  152. path: "/decision/decision2Cjdb",
  153. },
  154. {
  155. text: "项目对标",
  156. icon: "svg-wind-site",
  157. path: "/decision/decision2Xmdb",
  158. },
  159. {
  160. text: "线路对标",
  161. icon: "svg-wind-site",
  162. path: "/decision/decision2Xldb",
  163. },
  164. {
  165. text: "性能对标",
  166. icon: "svg-wind-site",
  167. path: "/decision/decision3",
  168. },
  169. {
  170. text: "值际对标",
  171. icon: "svg-wind-site",
  172. path: "/decision/decision4",
  173. },
  174. {
  175. text: "单机横向对比",
  176. icon: "svg-matrix",
  177. path: "/decision/decision3db",
  178. },
  179. {
  180. text: "操作指令统计",
  181. icon: "svg-matrix",
  182. path: "/decision/decision4czzl",
  183. },
  184. ],
  185. },
  186. {
  187. text: "三率管理",
  188. icon: "svg-slgl",
  189. path: "/decision/fwjsl",
  190. children: [
  191. {
  192. text: "复位及时率",
  193. icon: "svg-wind-site",
  194. path: "/decision/fwjsl",
  195. },
  196. {
  197. text: "状态转换率",
  198. icon: "svg-wind-site",
  199. path: "/decision/ztzhl",
  200. },
  201. {
  202. text: "消缺及时率",
  203. icon: "svg-wind-site",
  204. path: "/decision/xqjsl",
  205. },
  206. ],
  207. },
  208. {
  209. text: "排行榜",
  210. icon: "svg-phb",
  211. path: "/decision/powerRank",
  212. children: [
  213. {
  214. text: "发电效率排行",
  215. icon: "svg-wind-site",
  216. path: "/decision/powerRank",
  217. },
  218. {
  219. text: "总发电效率排行",
  220. icon: "svg-wind-site",
  221. path: "/decision/totalPowerRank",
  222. },
  223. {
  224. text: "报警排行",
  225. icon: "svg-wind-site",
  226. path: "/decision/warningRank",
  227. },
  228. ],
  229. },
  230. {
  231. text: "专题分析",
  232. icon: "svg-ztfx",
  233. path: "/decision/ztfx",
  234. children: [
  235. {
  236. text: "综合分析",
  237. icon: "svg-wind-site",
  238. path: "/decision/ztfx",
  239. },
  240. {
  241. text: "风能利用率",
  242. icon: "svg-wind-site",
  243. path: "/decision/fnlyl",
  244. },
  245. {
  246. text: "维护损失率",
  247. icon: "svg-wind-site",
  248. path: "/decision/whssl",
  249. },
  250. {
  251. text: "故障损失率",
  252. icon: "svg-wind-site",
  253. path: "/decision/gzssl",
  254. },
  255. {
  256. text: "限电损失率",
  257. icon: "svg-wind-site",
  258. path: "/decision/xdssl",
  259. },
  260. {
  261. text: "性能损失率",
  262. icon: "svg-wind-site",
  263. path: "/decision/xnssl",
  264. },
  265. {
  266. text: "受累损失率",
  267. icon: "svg-wind-site",
  268. path: "/decision/slssl",
  269. },
  270. {
  271. text: "MTBF分析",
  272. icon: "svg-wind-site",
  273. path: "/decision/mtbf",
  274. },
  275. {
  276. text: "MTTR分析",
  277. icon: "svg-wind-site",
  278. path: "/decision/mttr",
  279. },
  280. {
  281. text: "复位分析",
  282. icon: "svg-wind-site",
  283. path: "/decision/zfwjsl",
  284. },
  285. {
  286. text: "状态分析",
  287. icon: "svg-wind-site",
  288. path: "/decision/zztzhl",
  289. },
  290. {
  291. text: "消缺分析",
  292. icon: "svg-wind-site",
  293. path: "/decision/zxqjsl",
  294. },
  295. {
  296. text: "发电量分析",
  297. icon: "svg-wind-site",
  298. path: "/decision/zfdl",
  299. },
  300. {
  301. text: "综合场用电量",
  302. icon: "svg-wind-site",
  303. path: "/decision/zzhcydl",
  304. },
  305. {
  306. text: "节能减排API",
  307. icon: "svg-wind-site",
  308. path: "/decision/zzhcydl",
  309. },
  310. ],
  311. },
  312. {
  313. text: "风机分析",
  314. icon: "svg-fjfx",
  315. path: "/decision/performanceAnalysis",
  316. children: [
  317. {
  318. text: "单机性能分析",
  319. icon: "svg-wind-site",
  320. path: "/decision/performanceAnalysis",
  321. },
  322. {
  323. text: "单机月度分析",
  324. icon: "svg-wind-site",
  325. path: "/decision/singleAnalysis",
  326. },
  327. ],
  328. },
  329. {
  330. text: "气象分析",
  331. icon: "svg-qxfx",
  332. path: "/decision/fs",
  333. },
  334. {
  335. text: "电量预测",
  336. icon: "svg-dlyc",
  337. path: "/decision/nhycfsdl",
  338. children: [
  339. {
  340. text: "预测拟合风速电量",
  341. icon: "svg-wind-sitenhycfsdl",
  342. path: "/decision/nhycfsdl",
  343. },
  344. {
  345. text: "修正预测风速电量",
  346. icon: "svg-wind-site",
  347. path: "/decision/xzycfsdl",
  348. },
  349. ],
  350. },
  351. // {
  352. // text: "单机分析",
  353. // icon: "svg-wind-site",
  354. // path: "/fgzyfx",
  355. // children: [
  356. // {
  357. // text: "单机分析详细",
  358. // icon: "svg-wind-site",
  359. // path: "/new/dj1",
  360. // },
  361. // {
  362. // text: "电量预测",
  363. // icon: "svg-wind-site",
  364. // path: "/new/pf1",
  365. // },
  366. // {
  367. // text: "气象预测",
  368. // icon: "svg-wind-site",
  369. // path: "/new/fs",
  370. // }
  371. // ]
  372. // }
  373. ],
  374. },
  375. {
  376. id: "health",
  377. text: "智慧检修",
  378. data: [
  379. // {
  380. // text: '沙盘',
  381. // icon: 'svg-沙盘',
  382. // // path: '/monitor/sandtable'
  383. // path: '/health/sandtable'
  384. // },
  385. {
  386. text: "等级评估",
  387. icon: "svg-等级评估",
  388. path: "/health/assess/index",
  389. children: [
  390. {
  391. text: "等级评估",
  392. icon: "svg-等级评估",
  393. path: "/health/assess/index",
  394. },
  395. {
  396. text: "自组合评级",
  397. icon: "svg-wind-site",
  398. path: "/health/assess/selfEvaluate",
  399. }
  400. ],
  401. },
  402. {
  403. text: "故障诊断",
  404. icon: "svg-故障诊断",
  405. path: "/health/gzzd/malfunctionDiagnose",
  406. children: [
  407. {
  408. text: "故障诊断",
  409. icon: "svg-wind-site",
  410. path: "/health/gzzd/malfunctionDiagnose",
  411. },
  412. {
  413. text: "故障回溯",
  414. icon: "svg-wind-site",
  415. path: "/health/gzzd/malfunctionRecall",
  416. },
  417. {
  418. text: "故障分类",
  419. icon: "svg-wind-site",
  420. path: "/health/gzzd/gzfl",
  421. },
  422. {
  423. text: "预警分类",
  424. icon: "svg-wind-site",
  425. path: "/health/gzzd/yjfl",
  426. },
  427. ],
  428. },
  429. {
  430. text: "健康管理",
  431. icon: "svg-健康管理",
  432. path: "/health/frist",
  433. children: [
  434. {
  435. text: "健康推荐",
  436. icon: "svg-wind-site",
  437. path: "/health/frist",
  438. },
  439. {
  440. text: "健康首页",
  441. icon: "svg-wind-site",
  442. path: "/health/health2",
  443. },
  444. {
  445. text: "健康总览",
  446. icon: "svg-wind-site",
  447. path: "/health/health6",
  448. },
  449. {
  450. text: "健康矩阵",
  451. icon: "svg-wind-site",
  452. path: "/health/health5",
  453. },
  454. // {
  455. // text: "健康列表",
  456. // icon: "svg-wind-site",
  457. // path: "/health/health6",
  458. // },
  459. {
  460. text: "健康列表",
  461. icon: "svg-wind-site",
  462. path: "/health/health8",
  463. },
  464. {
  465. text: "劣化状态分析",
  466. icon: "svg-q曲线",
  467. path: "/health/healthLineChart/MHS_FDC/MG01_01",
  468. },
  469. ],
  470. },
  471. {
  472. text: "全生命周期",
  473. icon: "svg-全生命周期",
  474. path: "/health/allLifeManage",
  475. },
  476. {
  477. text: "能效分析",
  478. icon: "svg-能效分析",
  479. path: "/health/nxfx/powerCurve",
  480. children: [
  481. {
  482. text: "功率曲线拟合",
  483. icon: "svg-wind-site",
  484. path: "/health/nxfx/powerCurve",
  485. },
  486. {
  487. text: "偏航对风分析",
  488. icon: "svg-wind-site",
  489. path: "/health/nxfx/phdffx",
  490. },
  491. {
  492. text: "切入切出分析",
  493. icon: "svg-wind-site",
  494. path: "/health/nxfx/cutAnalyse",
  495. },
  496. {
  497. text: "曲线偏差率分析",
  498. icon: "svg-wind-site",
  499. path: "/health/nxfx/qxpclfx",
  500. },
  501. {
  502. text: "单机饱和度",
  503. icon: "svg-wind-site",
  504. path: "/health/nxfx/wtSaturability",
  505. },
  506. ],
  507. },
  508. {
  509. text: "可靠性分析",
  510. icon: "svg-可靠性分析",
  511. path: "/health/kkxfx/alarmcenter1",
  512. children: [
  513. {
  514. text: "预警分析",
  515. icon: "svg-wind-site",
  516. path: "/health/kkxfx/alarmcenter1",
  517. },
  518. {
  519. text: "故障分析",
  520. icon: "svg-wind-site",
  521. path: "/health/kkxfx/alarmcenter2",
  522. },
  523. {
  524. text: "预警评判分析",
  525. icon: "svg-wind-site",
  526. path: "/health/kkxfx/warnStatistics",
  527. },
  528. {
  529. text: "故障评判分析",
  530. icon: "svg-wind-site",
  531. path: "/health/kkxfx/malfunctionStatistics",
  532. },
  533. {
  534. text: "部件评判分析",
  535. icon: "svg-wind-site",
  536. path: "/health/kkxfx/bjgltjb",
  537. },
  538. ],
  539. },
  540. {
  541. text: "风光资源分析",
  542. icon: "svg-风光资源分析",
  543. path: "/health/fzyfx/windAnalysis",
  544. children: [
  545. {
  546. text: "风资源散点",
  547. icon: "svg-wind-site",
  548. path: "/health/fzyfx/windAnalysis",
  549. },
  550. {
  551. text: "风资源风向",
  552. icon: "svg-wind-site",
  553. path: "/health/fzyfx/windAnalysis/fx",
  554. },
  555. ],
  556. },
  557. {
  558. text: "故障预警",
  559. icon: "svg-预警记录",
  560. path: "/health/MalfunctionWarning/",
  561. children: [
  562. {
  563. text: "无监督学习",
  564. icon: "svg-wind-site",
  565. path: "/health/MalfunctionWarning/",
  566. },
  567. {
  568. text: "有监督学习",
  569. icon: "svg-wind-site",
  570. path: "/health/MalfunctionWarning/Supervised",
  571. },
  572. ],
  573. },
  574. ],
  575. },
  576. {
  577. id: "save",
  578. text: "安全管控",
  579. data: [
  580. {
  581. text: "安全管控",
  582. icon: "svg-安全管控",
  583. path: "/save/personnel",
  584. children: [
  585. {
  586. text: "人员矩阵",
  587. icon: "svg-wind-site",
  588. path: "/save/personnel",
  589. },
  590. {
  591. text: "全局监视",
  592. icon: "svg-wind-site",
  593. path: "/save/globalMonitor",
  594. },
  595. ],
  596. },
  597. ],
  598. },
  599. // {
  600. // id: "znbb",
  601. // text: "智能报表",
  602. // data: [
  603. // {
  604. // text: '报表首页',
  605. // icon: 'svg-wind-site',
  606. // path: '/znbb/reportPandect'
  607. // },// 统计分析
  608. // {
  609. // text: "统计分析",
  610. // icon: "svg-matrix",
  611. // path: "/tjfx",
  612. // children: [
  613. // {
  614. // text: "统计分析",
  615. // icon: "svg-matrix",
  616. // path: "/tjfx",
  617. // },
  618. // {
  619. // text: "表底值查询",
  620. // icon: "svg-matrix",
  621. // path: "/bdzcx",
  622. // },
  623. // ],
  624. // },
  625. // {
  626. // text: "报表管理",
  627. // icon: "svg-matrix",
  628. // path: "/bdzcx",
  629. // children: [
  630. // {
  631. // text: "OA日报",
  632. // icon: "svg-matrix",
  633. // path: "/oafd",
  634. // },
  635. // {
  636. // text: "OA日报(光伏)",
  637. // icon: "svg-matrix",
  638. // path: "/oagf",
  639. // },
  640. // {
  641. // text: "新能源日报",
  642. // icon: "svg-matrix",
  643. // path: "/xnyrb",
  644. // },
  645. // {
  646. // text: "国电电力MISS日报(风电)",
  647. // icon: "svg-matrix",
  648. // path: "/missfdrb",
  649. // },
  650. // {
  651. // text: "国电电力MISS日报(光伏)",
  652. // icon: "svg-matrix",
  653. // path: "/missgfrb",
  654. // },
  655. // {
  656. // text: "新能源风电生产月报",
  657. // icon: "svg-matrix",
  658. // path: "/xnyfdscyb",
  659. // },
  660. // {
  661. // text: "麻黄山生产月报",
  662. // icon: "svg-matrix",
  663. // path: "/mhsscyb",
  664. // },
  665. // {
  666. // text: "牛首山生产月报",
  667. // icon: "svg-matrix",
  668. // path: "/nssscyb",
  669. // },
  670. // {
  671. // text: "青山生产月报",
  672. // icon: "svg-matrix",
  673. // path: "/qsscyb",
  674. // },
  675. // {
  676. // text: "石板泉生产月报",
  677. // icon: "svg-matrix",
  678. // path: "/sbqscyb",
  679. // },
  680. // {
  681. // text: "香山生产月报",
  682. // icon: "svg-matrix",
  683. // path: "/xsscyb",
  684. // },
  685. // {
  686. // text: "新能源光伏生产月报",
  687. // icon: "svg-matrix",
  688. // path: "/xnygfscyb",
  689. // },
  690. // {
  691. // text: "大武口生产月报",
  692. // icon: "svg-matrix",
  693. // path: "/dwkscyb",
  694. // },
  695. // {
  696. // text: "平罗生产月报",
  697. // icon: "svg-matrix",
  698. // path: "/plscyb",
  699. // },
  700. // {
  701. // text: "宣和生产月报",
  702. // icon: "svg-matrix",
  703. // path: "/xhscyb",
  704. // },
  705. // ],
  706. // },
  707. // {
  708. // text: "自定制报表管理",
  709. // icon: "svg-matrix",
  710. // path: "/fdczzdy",
  711. // children: [
  712. // {
  713. // text: "风电场站自定义",
  714. // icon: "svg-matrix",
  715. // path: "/fdczzdy",
  716. // },
  717. // {
  718. // text: "风电项目自定义",
  719. // icon: "svg-matrix",
  720. // path: "/fdxmzdy",
  721. // },
  722. // {
  723. // text: "光伏场站自定义",
  724. // icon: "svg-matrix",
  725. // path: "/gfczzdy",
  726. // },
  727. // {
  728. // text: "光伏项目自定义",
  729. // icon: "svg-matrix",
  730. // path: "/gfxmzdy",
  731. // },
  732. // ],
  733. // },
  734. // ],
  735. // },
  736. {
  737. id: "others",
  738. text: "其他",
  739. data: [
  740. {
  741. text: "统计分析",
  742. icon: "svg-统计分析",
  743. path: "/others/tjfx",
  744. children: [
  745. {
  746. text: "统计分析",
  747. icon: "svg-matrix",
  748. path: "/others/tjfx",
  749. },
  750. {
  751. text: "表底值查询",
  752. icon: "svg-matrix",
  753. path: "/others/bdzcx",
  754. },
  755. ],
  756. },
  757. {
  758. text: "报表管理",
  759. icon: "svg-报表管理",
  760. path: "/others/oafd",
  761. children: [
  762. {
  763. text: "OA日报",
  764. icon: "svg-matrix",
  765. path: "/others/oafd",
  766. },
  767. {
  768. text: "OA日报(光伏)",
  769. icon: "svg-matrix",
  770. path: "/others/oagf",
  771. },
  772. {
  773. text: "新能源日报",
  774. icon: "svg-matrix",
  775. path: "/others/xnyrb",
  776. },
  777. {
  778. text: "国电MIS日报(风电)",
  779. icon: "svg-matrix",
  780. path: "/others/missfdrb",
  781. },
  782. {
  783. text: "国电MIS日报(光伏)",
  784. icon: "svg-matrix",
  785. path: "/others/missgfrb",
  786. },
  787. {
  788. text: "新能源风电生产月报",
  789. icon: "svg-matrix",
  790. path: "/others/xnyfdscyb",
  791. },
  792. {
  793. text: "麻黄山生产月报",
  794. icon: "svg-matrix",
  795. path: "/others/mhsscyb",
  796. },
  797. {
  798. text: "牛首山生产月报",
  799. icon: "svg-matrix",
  800. path: "/others/nssscyb",
  801. },
  802. {
  803. text: "青山生产月报",
  804. icon: "svg-matrix",
  805. path: "/others/qsscyb",
  806. },
  807. {
  808. text: "石板泉生产月报",
  809. icon: "svg-matrix",
  810. path: "/others/sbqscyb",
  811. },
  812. {
  813. text: "香山生产月报",
  814. icon: "svg-matrix",
  815. path: "/others/xsscyb",
  816. },
  817. {
  818. text: "新能源光伏生产月报",
  819. icon: "svg-matrix",
  820. path: "/others/xnygfscyb",
  821. },
  822. {
  823. text: "大武口生产月报",
  824. icon: "svg-matrix",
  825. path: "/others/dwkscyb",
  826. },
  827. {
  828. text: "平罗生产月报",
  829. icon: "svg-matrix",
  830. path: "/others/plscyb",
  831. },
  832. {
  833. text: "宣和生产月报",
  834. icon: "svg-matrix",
  835. path: "/others/xhscyb",
  836. },
  837. ],
  838. },
  839. {
  840. text: "自定制报表管理",
  841. icon: "svg-自定制报表管理",
  842. path: "/others/fdczzdy",
  843. children: [
  844. {
  845. text: "风电场站自定义",
  846. icon: "svg-matrix",
  847. path: "/others/fdczzdy",
  848. },
  849. {
  850. text: "风电项目自定义",
  851. icon: "svg-matrix",
  852. path: "/others/fdxmzdy",
  853. },
  854. {
  855. text: "光伏场站自定义",
  856. icon: "svg-matrix",
  857. path: "/others/gfczzdy",
  858. },
  859. {
  860. text: "光伏项目自定义",
  861. icon: "svg-matrix",
  862. path: "/others/gfxmzdy",
  863. },
  864. ],
  865. },
  866. {
  867. text: "原始数据查询",
  868. icon: "svg-报表首页",
  869. path: "/others/realSearch",
  870. children: [
  871. {
  872. text: "测点数据查询",
  873. icon: "svg-wind-site",
  874. path: "/others/realSearch",
  875. },
  876. {
  877. text: "测点历史数据查询",
  878. icon: "svg-wind-site",
  879. path: "/others/historySearch",
  880. },
  881. {
  882. text: "气象历史数据",
  883. icon: "svg-wind-site",
  884. path: "/others/weather",
  885. },
  886. {
  887. text: "数据导出",
  888. icon: "svg-wind-site",
  889. path: "/others/ExportExcel",
  890. },
  891. {
  892. text: "设备管理",
  893. icon: "svg-wind-site",
  894. path: "/device/device",
  895. },
  896. ],
  897. },
  898. {
  899. text: "预警记录",
  900. icon: "svg-预警记录",
  901. path: "/others/alarmCenter/alarmcenter",
  902. children: [
  903. {
  904. text: "预警管理",
  905. icon: "svg-wind-site",
  906. path: "/others/alarmCenter/alarmcenter",
  907. },
  908. {
  909. text: "停机事件管理",
  910. icon: "svg-wind-site",
  911. path: "/others/alarmCenter/tjsj",
  912. },
  913. {
  914. text: "限电管理",
  915. icon: "svg-wind-site",
  916. path: "/others/alarmCenter/xdgl",
  917. },
  918. {
  919. text: "升压站报警",
  920. icon: "svg-wind-site",
  921. path: "/others/alarmCenter/boosterAlarm",
  922. },
  923. {
  924. text: "SCADA报警",
  925. icon: "svg-wind-site",
  926. path: "/others/alarmCenter/scadaAlarm",
  927. },
  928. {
  929. text: "自定义报警",
  930. icon: "svg-wind-site",
  931. path: "/others/alarmCenter/customAlarm",
  932. },
  933. {
  934. text: "自定义报警统计",
  935. icon: "svg-wind-site",
  936. path: "/others/alarmCenter/customStatistics",
  937. },
  938. ],
  939. },
  940. {
  941. text: "专家知识",
  942. icon: "svg-专家知识",
  943. path: "/others/knowledge/knowledge",
  944. children: [
  945. {
  946. text: "故障知识列表",
  947. icon: "svg-matrix",
  948. path: "/others/knowledge/knowledge",
  949. },
  950. {
  951. text: "安全措施知识",
  952. icon: "svg-matrix",
  953. path: "/others/knowledge/knowledge2",
  954. },
  955. {
  956. text: "排查检修方案",
  957. icon: "svg-matrix",
  958. path: "/others/knowledge/knowledge6",
  959. },
  960. {
  961. text: "预警知识",
  962. icon: "svg-matrix",
  963. path: "/others/knowledge/knowledge7",
  964. },
  965. {
  966. text: "特征参数",
  967. icon: "svg-matrix",
  968. path: "/others/knowledge/knowledge5",
  969. },
  970. {
  971. text: "风险辨识知识",
  972. icon: "svg-matrix",
  973. path: "/others/knowledge/knowledge3",
  974. },
  975. {
  976. text: "作业指导知识",
  977. icon: "svg-matrix",
  978. path: "/others/knowledge/knowledge4",
  979. },
  980. ],
  981. },
  982. {
  983. text: "样本库",
  984. icon: "svg-报表管理",
  985. path: "/others/fault",
  986. children: [
  987. {
  988. text: "故障训练样本库",
  989. icon: "svg-matrix",
  990. path: "/others/fault",
  991. },
  992. {
  993. text: "性能下降样本库",
  994. icon: "svg-matrix",
  995. path: "/others/performance",
  996. },
  997. {
  998. text: "预警分析样本库",
  999. icon: "svg-matrix",
  1000. path: "/others/warning",
  1001. },
  1002. {
  1003. text: "性能预警综合分析",
  1004. icon: "svg-matrix",
  1005. path: "/others/analysis",
  1006. },
  1007. {
  1008. text: "知识库",
  1009. icon: "svg-matrix",
  1010. path: "/others/knowledgeBase",
  1011. },
  1012. // {
  1013. // text: "发电能力分析",
  1014. // icon: "svg-matrix",
  1015. // path: "/others/abilityAnalysis",
  1016. // },
  1017. // {
  1018. // text: "风电营销样本库",
  1019. // icon: "svg-matrix",
  1020. // path: "/others/market",
  1021. // }
  1022. ],
  1023. },
  1024. ],
  1025. },
  1026. ],
  1027. activeIndex: 0,
  1028. isShowSubMenu: false,
  1029. parentIndex: null,
  1030. subMenu: [],
  1031. subIndex: null,
  1032. };
  1033. },
  1034. methods: {
  1035. click(index) {
  1036. this.activeIndex = index;
  1037. this.subIndex = null;
  1038. },
  1039. subMenuShow(children, index) {
  1040. if (children) {
  1041. this.isShowSubMenu = true;
  1042. this.parentIndex = index;
  1043. } else {
  1044. this.isShowSubMenu = false;
  1045. this.parentIndex = null;
  1046. }
  1047. this.subMenu = children;
  1048. },
  1049. subMenuHide() {
  1050. this.isShowSubMenu = false;
  1051. this.parentIndex = null;
  1052. // this.subMenu = [];
  1053. },
  1054. subclick(index) {
  1055. this.activeIndex = this.parentIndex;
  1056. this.subIndex = index;
  1057. },
  1058. },
  1059. computed: {
  1060. currentMenu() {
  1061. let data = this.menuData.filter((t) => {
  1062. return t.id == this.currRoot;
  1063. })[0].data;
  1064. return data;
  1065. },
  1066. },
  1067. watch: {
  1068. // 监听路由
  1069. $route: {
  1070. handler: function (val, oldVal) {
  1071. this.menuData.some((element, index) => {
  1072. if (val.path.includes(element.id)) {
  1073. this.$nextTick(() => {
  1074. this.currRoot = element.id;
  1075. this.$nextTick(() => {
  1076. this.currentMenu.some((element, index) => {
  1077. if (val.path == element.path) {
  1078. this.activeIndex = index;
  1079. }
  1080. });
  1081. });
  1082. });
  1083. return true;
  1084. }
  1085. });
  1086. },
  1087. //深度观察监听
  1088. deep: true,
  1089. },
  1090. },
  1091. };
  1092. </script>
  1093. <style lang="less">
  1094. .menu {
  1095. padding-top: 1.481vh;
  1096. .menu-list {
  1097. margin: 0;
  1098. padding: 0;
  1099. list-style: none;
  1100. .menu-item {
  1101. padding: 1.481vh 0;
  1102. text-align: center;
  1103. .menu-icon {
  1104. display: flex;
  1105. justify-content: center;
  1106. }
  1107. &.active i {
  1108. color: #05bb4c;
  1109. transition: color 1s;
  1110. }
  1111. }
  1112. }
  1113. i {
  1114. font-size: 2.222vh;
  1115. color: rgba(255, 255, 255, 50%);
  1116. }
  1117. }
  1118. .sub-menu {
  1119. position: absolute;
  1120. top: 0;
  1121. left: 5.3704vh;
  1122. width: 158px;
  1123. height: 100%;
  1124. padding-top: 1.481vh;
  1125. background: fade(#192a26, 75);
  1126. border-right: 1px solid fade(@green, 50);
  1127. box-shadow: inset 11px 0px 20px 0px fade(#021412, 60);
  1128. .menu-list {
  1129. margin: 0;
  1130. padding: 0;
  1131. list-style: none;
  1132. .menu-item {
  1133. display: flex;
  1134. text-align: center;
  1135. line-height: 1.5;
  1136. padding: 8px 0;
  1137. background: #121d1c;
  1138. a {
  1139. display: flex;
  1140. width: 100%;
  1141. height: 100%;
  1142. padding: 0 1.4815vh;
  1143. font-size: @fontsize-s;
  1144. text-decoration: unset;
  1145. .menu-icon {
  1146. display: flex;
  1147. align-items: center;
  1148. svg {
  1149. width: 14px;
  1150. height: 14px;
  1151. use {
  1152. fill: fade(@green, 75);
  1153. }
  1154. }
  1155. }
  1156. }
  1157. &.active {
  1158. background: #323e70;
  1159. .menu-icon {
  1160. display: flex;
  1161. svg use {
  1162. fill: fade(@white, 75);
  1163. }
  1164. }
  1165. }
  1166. .sub-menu-text {
  1167. margin-left: 1.1111vh;
  1168. color: @gray-l;
  1169. }
  1170. & + .menu-item {
  1171. border-top: 1px solid fade(@darkgray, 40);
  1172. }
  1173. }
  1174. }
  1175. i {
  1176. font-size: 2.222vh;
  1177. color: rgba(255, 255, 255, 50%);
  1178. }
  1179. }
  1180. </style>