Menu.vue 33 KB

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