Menu.vue 36 KB

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