Menu.vue 33 KB

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