App.vue 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754
  1. <!--
  2. * @Date: 2023-06-18 10:09:15
  3. * @LastEditors: zhubj
  4. * @LastEditTime: 2023-06-19 17:04:11
  5. * @Description: 头部注释
  6. * @FilePath: \own-vue3-vuecli-template\src\App.vue
  7. -->
  8. <template>
  9. <div class="windLife" :class="!swichTheme ? 'themeDark' : 'themeLight'">
  10. <common-header v-if="showHeader" @headerName="headerName" @swichFn="swichFn"></common-header>
  11. <!-- :class="!fixed ? 'menuBs' : ''" v-if="isShowMenu" -->
  12. <!-- <div class="menu-body" @mouseenter="showMenu" v-if="isShowMenu" @mouseleave="hideMenu"> -->
  13. <!-- <ul class="menu-list">
  14. <li class="menu-item" v-for="(menu, index) in showMenuData" :key="index"
  15. @click="handleNodeClick(menu.index)">
  16. <router-link :to="menu.index" v-if="menu.children">
  17. <el-popover placement="right-end" :width="200" trigger="hover" effect="dark">
  18. <template #reference>
  19. <img :src="menu.img" alt="">
  20. </template>
  21. <div class="menuChildren">
  22. <p style="color: #e3a043">{{menu.name}}:</p>
  23. <p style="color: #cacaca;cursor: pointer;line-height: 50px;"
  24. v-for="(it, index) in menu.children" :key="index"
  25. @click="openReportDetail(it.index, it.nameEn)">{{it.name}}</p>
  26. </div>
  27. </el-popover>
  28. </router-link>
  29. <router-link :to="menu.index" v-else>
  30. <el-tooltip class="item" effect="dark" :content="menu.name" placement="right"
  31. :enterable="false">
  32. <img :src="menu.img" alt="">
  33. </el-tooltip>
  34. </router-link>
  35. </li>
  36. <el-icon v-if="fixed" style="width:25px;height:25px">
  37. <Lock />
  38. </el-icon>
  39. <el-icon v-else style="width:25px;height:25px">
  40. <Unlock />
  41. </el-icon>
  42. <li class="lockpage" @click="handleClickFixed">
  43. <img :src="proJie" v-if="fixed" alt="">
  44. <img :src="proSuo" v-else alt="">
  45. </li>
  46. </ul> -->
  47. <!-- </div> -->
  48. <div class="mainSty">
  49. <div class="elmenuSty" :style="!swichTheme ? 'background: #000;' : 'background: #504bb5;'"
  50. v-if="isShowMenu">
  51. <ul class="menu-list">
  52. <li class="menu-item" @click="isCollapseFn">
  53. <img :src="menu_zk" alt="" v-if="isCollapse">
  54. <img :src="menu_ss" alt="" v-else>
  55. </li>
  56. </ul>
  57. <el-menu :default-active="$route.path" router :unique-opened="true" :collapse="isCollapse"
  58. :collapse-transition="false" text-color="#fff" :background-color="!swichTheme ? '#000' : '#504bb5'"
  59. active-text-color="#fff">
  60. <!-- 引入组件 -->
  61. <template v-for="menu in showMenuData">
  62. <el-sub-menu :key="menu.index" :index="menu.index" v-if="menu.children"
  63. :disabled="menu.index === '' ? true : false">
  64. <!-- <img :src="menu.img"> -->
  65. <template #title>
  66. <!-- <i :class="menu.icon"></i> -->
  67. <img :src="menu.img">
  68. <span style="margin-left: 10px">{{menu.name}}</span>
  69. <!-- <span slot="title">{{menu.name}}</span> -->
  70. </template>
  71. <!-- <menu-tree :menuData="menu.children"></menu-tree> -->
  72. <el-menu-item-group v-for="(menuitem, index) in menu.children" :key="index">
  73. <el-menu-item :index="menuitem.index">{{menuitem.name}}</el-menu-item>
  74. </el-menu-item-group>
  75. </el-sub-menu>
  76. <el-menu-item :key="menu.index" :index="menu.index" :route="menu.index" v-else>
  77. <!-- <i :class="menu.icon"></i> -->
  78. <img :src="menu.img" alt="">
  79. <template #title>
  80. <span style="margin-left: 10px">{{menu.name}}</span>
  81. </template>
  82. <!-- <span slot="title">{{menu.name}}</span> -->
  83. </el-menu-item>
  84. </template>
  85. </el-menu>
  86. </div>
  87. <!-- :style="{ paddingLeft: fixed ? '65px' : 0 }" :style="{ paddingLeft: isShowMenu ? '65px' : 0 }"-->
  88. <!-- :style="pagestyFn()" -->
  89. <div class="pageSty">
  90. <router-view />
  91. </div>
  92. </div>
  93. </div>
  94. </template>
  95. <script>
  96. import MenuTree from '@/components/menuTreeconfig.vue'
  97. import commonHeader from '@/components/commonHeaders.vue'
  98. // 发电能力分析
  99. import gener_agcfx from '@/assets/menuImg/gener_agcfx.png'
  100. import gener_dfpcfx from '@/assets/menuImg/gener_dfpcfx.png'
  101. import gener_fdsjcl from '@/assets/menuImg/gener_fdsjcl.png'
  102. import gener_fdsjzb from '@/assets/menuImg/gener_fdsjzb.png'
  103. import gener_fxbg from '@/assets/menuImg/gener_fxbg.png'
  104. import gener_glqxnhfx from '@/assets/menuImg/gener_glqxnhfx.png'
  105. import gener_jjjfx from '@/assets/menuImg/gener_jjjfx.png'
  106. import gener_mrlfx from '@/assets/menuImg/gener_mrlfx.png'
  107. import gener_qxpclfx from '@/assets/menuImg/gener_qxpclfx.png'
  108. import gener_ssdlfx from '@/assets/menuImg/gener_ssdlfx.png'
  109. import gener_wdyglfx from '@/assets/menuImg/gener_wdyglfx.png'
  110. import gener_wgxzfx from '@/assets/menuImg/gener_wgxzfx.png'
  111. // 功率预测
  112. import power_dlyc from '@/assets/menuImg/power_dlyc.png'
  113. import power_glyc from '@/assets/menuImg/power_glyc.png'
  114. import power_gy from '@/assets/menuImg/power_gy.png'
  115. import power_qjgl from '@/assets/menuImg/power_qjgl.png'
  116. import power_tjhz from '@/assets/menuImg/power_tjhz.png'
  117. import power_tqyb from '@/assets/menuImg/power_tqyb.png'
  118. // 智能报表
  119. import report_bbjb from '@/assets/menuImg/report_bbjb.png'
  120. import report_bbsb from '@/assets/menuImg/report_bbsb.png'
  121. import report_czzybb from '@/assets/menuImg/report_czzybb.png'
  122. import report_erp from '@/assets/menuImg/report_erp.png'
  123. import report_gkjlb from '@/assets/menuImg/report_gkjlb.png'
  124. import report_zhbb from '@/assets/menuImg/report_zhbb.png'
  125. import report_yxqk from '@/assets/menuImg/report_yxqk.png'
  126. import report_fyfsdl from '@/assets/menuImg/report_fyfsdl.png'
  127. import report_fdscqk from '@/assets/menuImg/report_fdscqk.png'
  128. import report_pjfs from '@/assets/menuImg/report_pjfs.png'
  129. // 锁
  130. import pro_suo from '@/assets/menuImg/pro_suo.png'
  131. import pro_jie from '@/assets/menuImg/pro_jie.png'
  132. //收缩展开
  133. import menu_zk from '@/assets/menuImg/menu_zk.png'
  134. import menu_ss from '@/assets/menuImg/menu_ss.png'
  135. export default {
  136. components: {
  137. commonHeader,
  138. MenuTree
  139. },
  140. data() {
  141. return {
  142. showHeader: false,
  143. isShowMenu: false,
  144. isCollapse: true,
  145. showMenuData: [],
  146. proSuo: pro_suo,
  147. proJie: pro_jie,
  148. menu_zk: menu_zk,
  149. menu_ss: menu_ss,
  150. powerPreDatas: [{
  151. index: '/powerPrediction/index',
  152. icon: 'Coin',
  153. img: power_gy,
  154. name: '概要'
  155. },
  156. {
  157. index: '/powerPrediction/panoramicPower',
  158. icon: 'DataBoard',
  159. img: power_qjgl,
  160. name: '全景功率'
  161. },
  162. {
  163. index: '/powerPrediction/power',
  164. icon: 'DataAnalysis',
  165. img: power_glyc,
  166. name: '功率预测'
  167. },
  168. {
  169. index: '/powerPrediction/batteryDiviner',
  170. icon: 'DataLine',
  171. img: power_dlyc,
  172. name: '电量预测'
  173. },
  174. {
  175. index: '/powerPrediction/weather',
  176. icon: 'Sunrise',
  177. img: power_tqyb,
  178. name: '天气预报'
  179. },
  180. {
  181. index: '/powerPrediction/statisticalSummary',
  182. icon: 'Tickets',
  183. img: power_tjhz,
  184. name: '统计汇总'
  185. },
  186. ],
  187. intelligentReportDatas: [{
  188. icon: 'ScaleToOriginal',
  189. index: '/intelligentReport/gkjlb',
  190. img: report_gkjlb,
  191. name: '关口计量表',
  192. children: [{
  193. name: '新庄风电场',
  194. nameEn: 'xinzhuang',
  195. index: '/intelligentReport/gkjlb',
  196. }, {
  197. name: '吉山梁风电场',
  198. nameEn: 'jiliangshan',
  199. index: '/intelligentReport/gkjlb',
  200. }, {
  201. name: '左庄风电场',
  202. nameEn: 'zuozhuang',
  203. index: '/intelligentReport/gkjlb',
  204. }, {
  205. name: '繁食沟风电场',
  206. nameEn: 'fanshigou',
  207. index: '/intelligentReport/gkjlb',
  208. }, {
  209. name: '草山梁风电场',
  210. nameEn: 'caoshanliang',
  211. index: '/intelligentReport/gkjlb',
  212. }, {
  213. name: '雷家山风电场',
  214. nameEn: 'leijiashan',
  215. index: '/intelligentReport/gkjlb',
  216. }]
  217. },
  218. {
  219. icon: 'Eleme',
  220. index: '/intelligentReport/erp',
  221. img: report_erp,
  222. name: 'ERP',
  223. children: [{
  224. name: '新左风电场',
  225. nameEn: 'xinzuo',
  226. index: '/intelligentReport/erp',
  227. }, {
  228. name: '吉山梁风电场',
  229. nameEn: 'jiliangshan',
  230. index: '/intelligentReport/erp',
  231. }, {
  232. name: '繁食沟风电场',
  233. nameEn: 'fanshigou',
  234. index: '/intelligentReport/erp',
  235. }, {
  236. name: '草山梁风电场',
  237. nameEn: 'caoshanliang',
  238. index: '/intelligentReport/erp',
  239. }, {
  240. name: '雷家山风电场',
  241. nameEn: 'leijiashan',
  242. index: '/intelligentReport/erp',
  243. }]
  244. },
  245. {
  246. icon: 'Memo',
  247. index: '/intelligentReport/czzyb',
  248. img: report_czzybb,
  249. name: '场站自由报表'
  250. },
  251. {
  252. icon: 'Memo',
  253. index: '/intelligentReport/zhbb',
  254. img: report_zhbb,
  255. name: '国能陕西新能源公司综合报表'
  256. },
  257. {
  258. icon: 'Eleme',
  259. index: '/intelligentReport/yxqk',
  260. img: report_yxqk,
  261. name: '运行情况日报表',
  262. children: [{
  263. name: '左庄一期',
  264. nameEn: 'zuozhuangyiqi',
  265. index: '/intelligentReport/yxqk',
  266. }, {
  267. name: '左庄二期',
  268. nameEn: 'zuozhuangerqi',
  269. index: '/intelligentReport/yxqk',
  270. }, {
  271. name: '新庄一期',
  272. nameEn: 'xinzhuangyiqi',
  273. index: '/intelligentReport/yxqk',
  274. }, {
  275. name: '新庄二期',
  276. nameEn: 'xinzhuangerqi',
  277. index: '/intelligentReport/yxqk',
  278. }]
  279. },
  280. {
  281. icon: 'Eleme',
  282. index: '/intelligentReport/fyfsdl',
  283. img: report_fyfsdl,
  284. name: '分月分时电量统计',
  285. children: [{
  286. name: '新庄风电场',
  287. nameEn: 'xinzhuang',
  288. index: '/intelligentReport/fyfsdl',
  289. }, {
  290. name: '吉山梁风电场',
  291. nameEn: 'jiliangshan',
  292. index: '/intelligentReport/fyfsdl',
  293. }, {
  294. name: '左庄风电场',
  295. nameEn: 'zuozhuang',
  296. index: '/intelligentReport/fyfsdl',
  297. }, {
  298. name: '繁食沟风电场',
  299. nameEn: 'fanshigou',
  300. index: '/intelligentReport/fyfsdl',
  301. }, {
  302. name: '草山梁风电场',
  303. nameEn: 'caoshanliang',
  304. index: '/intelligentReport/fyfsdl',
  305. }, {
  306. name: '雷家山风电场',
  307. nameEn: 'leijiashan',
  308. index: '/intelligentReport/fyfsdl',
  309. }]
  310. },
  311. {
  312. icon: 'Eleme',
  313. index: '/intelligentReport/fdscqk',
  314. img: report_fdscqk,
  315. name: '发电生产情况快报表',
  316. children: [{
  317. name: '新左风电场',
  318. nameEn: 'xinzuo',
  319. index: '/intelligentReport/fdscqk',
  320. }, {
  321. name: '吉山梁风电场',
  322. nameEn: 'jiliangshan',
  323. index: '/intelligentReport/fdscqk',
  324. }, {
  325. name: '繁食沟风电场',
  326. nameEn: 'fanshigou',
  327. index: '/intelligentReport/fdscqk',
  328. }, {
  329. name: '草山梁风电场',
  330. nameEn: 'caoshanliang',
  331. index: '/intelligentReport/fdscqk',
  332. }, {
  333. name: '雷家山风电场',
  334. nameEn: 'leijiashan',
  335. index: '/intelligentReport/fdscqk',
  336. }]
  337. },
  338. {
  339. icon: 'Eleme',
  340. index: '/intelligentReport/pjfs',
  341. img: report_pjfs,
  342. name: '集控中心日平均风速统计表',
  343. children: [{
  344. name: '新庄风电场',
  345. nameEn: 'xinzhuang',
  346. index: '/intelligentReport/pjfs',
  347. }, {
  348. name: '吉山梁风电场',
  349. nameEn: 'jiliangshan',
  350. index: '/intelligentReport/pjfs',
  351. }, {
  352. name: '左庄风电场',
  353. nameEn: 'zuozhuang',
  354. index: '/intelligentReport/pjfs',
  355. }, {
  356. name: '繁食沟风电场',
  357. nameEn: 'fanshigou',
  358. index: '/intelligentReport/pjfs',
  359. }, {
  360. name: '草山梁风电场',
  361. nameEn: 'caoshanliang',
  362. index: '/intelligentReport/pjfs',
  363. }, {
  364. name: '雷家山风电场',
  365. nameEn: 'leijiashan',
  366. index: '/intelligentReport/pjfs',
  367. }]
  368. },
  369. {
  370. icon: 'Finished',
  371. index: '/intelligentReport/reporting',
  372. img: report_bbsb,
  373. name: '报表上报'
  374. },
  375. {
  376. icon: 'Odometer',
  377. index: '/intelligentReport/scriptgeneration',
  378. img: report_bbjb,
  379. name: '报表脚本'
  380. },
  381. ],
  382. generatingCapDatas: [{
  383. icon: 'Coin',
  384. index: '/generatingCap/dataFilter/prepare',
  385. img: gener_fdsjzb,
  386. name: '风电数据准备'
  387. }, {
  388. icon: 'DataAnalysis',
  389. index: '/generatingCap/dataFilter/process',
  390. img: gener_fdsjcl,
  391. name: '风电数据处理'
  392. }, {
  393. icon: 'Operation',
  394. index: '/generatingCap/dataAnalysis/combine',
  395. img: gener_glqxnhfx,
  396. name: '功率曲线拟合分析'
  397. }, {
  398. icon: 'ScaleToOriginal',
  399. index: '/generatingCap/dataAnalysis/rateAnalysis',
  400. img: gener_dfpcfx,
  401. name: '对风偏差分析'
  402. }, {
  403. icon: 'DataLine',
  404. index: '/generatingCap/dataAnalysis/lineAnalysis',
  405. img: gener_qxpclfx,
  406. name: '曲线偏差率分析'
  407. }, {
  408. icon: 'Odometer',
  409. index: '/generatingCap/dataAnalysis/hotAnalysis',
  410. img: gener_wdyglfx,
  411. name: '温度与功率分析'
  412. }, {
  413. icon: 'Finished',
  414. index: '/generatingCap/dataAnalysis/windAnalysis',
  415. img: gener_ssdlfx,
  416. name: '损失电量分析'
  417. }, {
  418. icon: 'Coordinate',
  419. index: '/generatingCap/dataAnalysis/posAnalysis',
  420. img: gener_wgxzfx,
  421. name: '微观选址分析'
  422. }, {
  423. icon: 'SetUp',
  424. index: '/generatingCap/dataAnalysis/spaceAnalysis',
  425. img: gener_mrlfx,
  426. name: '毛容量分析'
  427. },
  428. {
  429. icon: 'Suitcase',
  430. index: '/generatingCap/dataAnalysis/angleAnalysis',
  431. img: gener_jjjfx,
  432. name: '浆距角分析'
  433. }, {
  434. icon: 'Monitor',
  435. index: '/generatingCap/dataAnalysis/agcAnalysis',
  436. img: gener_agcfx,
  437. name: 'AGC曲线偏差分析'
  438. },
  439. {
  440. icon: 'Files',
  441. index: '/generatingCap/dataAnalysis/analysisReport',
  442. img: gener_fxbg,
  443. imgEn: gener_jjjfx,
  444. name: '分析报告'
  445. },
  446. ],
  447. memuCloseTimeout: null,
  448. fixed: false,
  449. // swichTheme: false,
  450. swichTheme: true // 默认白色版本
  451. }
  452. },
  453. watch: {
  454. $route: {
  455. handler: function (route) {
  456. this.showHeader = route.path === '/login' ? false : true
  457. this.isShowMenu = route.path === '/login' || route.path === '/home' ? false : true
  458. },
  459. immediate: true
  460. }
  461. },
  462. mounted() {
  463. if (!JSON.parse(window.sessionStorage.getItem('theme'))) {
  464. document.getElementById('app').style.background = '#040c0b'
  465. } else {
  466. this.swichTheme = JSON.parse(window.sessionStorage.getItem('theme'))
  467. if (!this.swichTheme) {
  468. document.getElementById('app').style.background = '#0F0F0F'
  469. } else {
  470. document.getElementById('app').style.background = '#5473E8'
  471. }
  472. this.$emit('swichFn', this.switchTheme)
  473. }
  474. this.fixed = window.sessionStorage.getItem('menufixed')
  475. this.isShowMenu = window.sessionStorage.getItem('isShowMenu')
  476. // if (window.sessionStorage.getItem('headerRoute')) {
  477. // let str = window.sessionStorage.getItem('headerRoute')
  478. let str = window.location.href
  479. if (str.indexOf('powerPrediction') > -1) {
  480. this.showMenuData = this.powerPreDatas
  481. } else if (str.indexOf('intelligentReport') > -1) {
  482. this.showMenuData = this.intelligentReportDatas
  483. } else if (str.indexOf('generatingCap') > -1) {
  484. this.showMenuData = this.generatingCapDatas
  485. } else {
  486. this.showMenuData = this.generatingCapDatas
  487. }
  488. // }
  489. },
  490. methods: {
  491. isCollapseFn() {
  492. this.isCollapse = !this.isCollapse
  493. },
  494. pagestyFn() {
  495. let str = ''
  496. if (this.isCollapse) {
  497. str = 'width: 96.5%;padding-left: 3.5%'
  498. } else {
  499. str = 'width: 90%;padding-left: 10%'
  500. }
  501. return str
  502. },
  503. headerName(name) {
  504. this.showMenuData = []
  505. if (name === '功率预测') {
  506. this.showMenuData = this.powerPreDatas
  507. } else if (name === '智能报表') {
  508. this.showMenuData = this.intelligentReportDatas
  509. } else if (name === '发电能力分析') {
  510. this.showMenuData = this.generatingCapDatas
  511. }
  512. },
  513. swichFn(val) {
  514. this.swichTheme = val
  515. if (!this.swichTheme) {
  516. document.getElementById('app').style.background = '#0F0F0F'
  517. } else {
  518. document.getElementById('app').style.background = '#5473E8'
  519. }
  520. // this.$router.go(0);
  521. },
  522. openReportDetail(index, name) {
  523. this.$router.push({
  524. // path: "/home"
  525. path: index,
  526. query: {
  527. name: name
  528. }
  529. })
  530. },
  531. imgEnter(menu) {
  532. menu.chImg = false
  533. if (menu.imgEn) {
  534. menu.chImg = true
  535. }
  536. },
  537. imgLeave(menu) {
  538. menu.chImg = false
  539. },
  540. showMenu() {
  541. if (!this.fixed) {
  542. this.isShowMenu = true;
  543. window.sessionStorage.setItem('isShowMenu', this.isShowMenu)
  544. clearTimeout(this.memuCloseTimeout);
  545. this.memuCloseTimeout = null;
  546. }
  547. },
  548. hideMenu() {
  549. if (!this.fixed) {
  550. this.memuCloseTimeout = setTimeout(() => {
  551. this.isShowMenu = true;
  552. window.sessionStorage.setItem('isShowMenu', this.isShowMenu)
  553. }, 500);
  554. }
  555. },
  556. handleNodeClick(index, indexPath) {
  557. this.$router.push({
  558. path: index
  559. })
  560. },
  561. handleClickFixed() {
  562. this.fixed = !this.fixed
  563. window.sessionStorage.setItem('menufixed', JSON.stringify(this.fixed))
  564. if (this.fixed) {
  565. this.isShowMenu = true
  566. window.sessionStorage.setItem('isShowMenu', this.isShowMenu)
  567. }
  568. }
  569. }
  570. }
  571. </script>
  572. <style lang="less" scoped>
  573. .el-popover {
  574. .menuChildren {
  575. p {
  576. // :hover {
  577. // color: #4b55ae;
  578. // }
  579. }
  580. }
  581. }
  582. </style>
  583. <style lang="less">
  584. .windLife {
  585. height: 100%;
  586. .mainSty {
  587. display: flex;
  588. .menu-body {
  589. position: absolute;
  590. display: flex;
  591. flex-direction: column;
  592. align-items: center;
  593. justify-content: space-between;
  594. flex: 0 0 63px;
  595. width: 63px;
  596. height: calc(100% - 60px);
  597. top: 60px;
  598. background-color: fade(#21192a, 75%);
  599. z-index: 2002;
  600. &:hover {
  601. opacity: 1;
  602. transition: opacity 0.2s;
  603. transition-timing-function: ease-out;
  604. transform: translate(0);
  605. }
  606. .menu-list {
  607. margin: 0;
  608. padding: 0;
  609. list-style: none;
  610. img {
  611. width: 25px;
  612. height: 25px;
  613. }
  614. .menu-item {
  615. display: flex;
  616. text-align: center;
  617. line-height: 2;
  618. padding: 12px 0;
  619. width: 25px;
  620. height: 25px;
  621. .el-tooltip__trigger {
  622. color: #fff;
  623. }
  624. a {
  625. display: flex;
  626. width: 100%;
  627. height: 100%;
  628. font-size: 14px;
  629. text-decoration: unset;
  630. white-space: nowrap;
  631. }
  632. &.active {
  633. background: #323e70;
  634. }
  635. &+.menu-item {
  636. border-top: 1px solid fade(#606769, 40);
  637. }
  638. }
  639. }
  640. .lockpage {
  641. position: absolute;
  642. bottom: 20px;
  643. .el-icon {
  644. color: #fff;
  645. svg {
  646. width: 25px;
  647. height: 25px;
  648. }
  649. }
  650. }
  651. }
  652. .elmenuSty {
  653. height: 100vh;
  654. img {
  655. width: 25px;
  656. height: 25px;
  657. }
  658. .menu-list {
  659. width: 100%;
  660. height: 40px;
  661. line-height: 40px;
  662. .menu-item {
  663. height: 40px;
  664. line-height: 40px;
  665. display: flex;
  666. justify-content: center;
  667. align-items: center;
  668. img {
  669. width: 25px;
  670. height: 25px;
  671. }
  672. }
  673. }
  674. .el-menu {
  675. min-width: 66px;
  676. border-right: transparent;
  677. }
  678. }
  679. .pageSty {
  680. width: 100%;
  681. height: 100vh;
  682. }
  683. .menuBs {
  684. opacity: 0;
  685. transition: opacity 0.2s;
  686. transition-timing-function: ease-in;
  687. }
  688. }
  689. }
  690. @import "./assets/css/main.css";
  691. @import "./assets/css/eleCss/index.less";
  692. .themeDark {
  693. @import "./assets/css/eleCss/el-dialogB.less";
  694. @import "./assets/css/eleCss/el-tableB.less";
  695. @import "./assets/css/eleCss/el-inputB.less";
  696. @import "./assets/css/eleCss/el-treeB.less";
  697. @import "./assets/css/eleCss/el-popper.less";
  698. }
  699. .themeLight {
  700. @import "./assets/css/eleCss/el-input.less";
  701. @import "./assets/css/eleCss/el-dialogW.less";
  702. @import "./assets/css/eleCss/el-tableW.less";
  703. @import "./assets/css/eleCss/el-treeW.less";
  704. .toolSty {
  705. .el-popper {
  706. width: 50% !important;
  707. }
  708. }
  709. }
  710. // #app {
  711. // background: #040c0b;
  712. // }
  713. </style>