You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

826 lines
23 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. <template>
  2. <div style="background: #F4F8FF">
  3. <div style="position: absolute; top:15px;right:5px; z-index: 1000;">
  4. <i class="el-icon-close" @click="windowClose" style="padding-right: 5px;font-size: 22px;cursor:pointer;"></i>
  5. </div>
  6. <div>
  7. <el-container>
  8. <el-header style="height:50px; line-height: 40px" class="principalheader">
  9. <div class="navs">
  10. <img src="@/assets/images/logo2.png" alt="" style="width: 24px; height: 24px" />
  11. <div class="maintitle">神豚体检管理系统</div>
  12. <!--动态生成菜单 add by pengj 'text-align: center;width:' + (window.pageWidth - 280) + 'px;display:flex;'
  13. <div :style="'display:flex;justify-content:center;width:' + (window.pageWidth - 300) + 'px;'">
  14. <div v-for="menu in menuPriv" :key="menu.id"
  15. :class="className == menu.displayName ? `actived ${menu.displayName}` : menu.displayName">
  16. <el-dropdown @command="handleCommand" class="">
  17. <span class="el-dropdown-link" style="margin:0 5px;">{{ menu.displayName }}</span>
  18. <el-dropdown-menu slot="dropdown" class="project-dropdown">
  19. <el-dropdown-item v-for="page in menu.treeChildren" :key="page.id"
  20. :command="beforeHandleCommand(menu.displayName, page.routeUrl)" class="dropdownmain">
  21. {{ page.displayName }}
  22. </el-dropdown-item>
  23. </el-dropdown-menu>
  24. </el-dropdown>
  25. </div>
  26. </div>
  27. -->
  28. <!--动态生成菜单支持多级 add by pengj -->
  29. <div
  30. :style="
  31. 'display:flex;justify-content:center;width:' +
  32. (window.pageWidth - 200) +
  33. 'px;'
  34. "
  35. >
  36. <el-menu
  37. :default-active="activeIndex"
  38. class="el-menu-demo"
  39. mode="horizontal"
  40. @select="handleSelect"
  41. style="display: flex"
  42. >
  43. <!--1级菜单-->
  44. <template v-for="menu1 in menuPriv">
  45. <el-menu-item
  46. :key="menu1.id"
  47. v-if="menu1.menuType == '1'"
  48. :index="menu1.id"
  49. >
  50. {{ menu1.displayName }}
  51. </el-menu-item>
  52. </template>
  53. <template v-for="menu1 in menuPriv">
  54. <el-submenu
  55. :popper-append-to-body="false"
  56. :key="menu1.id"
  57. v-if="menu1.menuType == '0'"
  58. :index="menu1.id"
  59. >
  60. <template slot="title">{{ menu1.displayName }}</template>
  61. <!--2级菜单-->
  62. <template v-for="menu2 in menu1.treeChildren">
  63. <el-menu-item
  64. :key="menu2.id"
  65. v-if="menu2.menuType == '1'"
  66. :index="menu2.id"
  67. >{{ menu2.displayName }}</el-menu-item
  68. >
  69. </template>
  70. <template v-for="menu2 in menu1.treeChildren">
  71. <el-submenu
  72. :popper-append-to-body="false"
  73. :key="menu2.id"
  74. v-if="menu2.menuType == '0'"
  75. :index="menu2.id"
  76. class="submenutitle"
  77. >
  78. <template slot="title"><div style="padding:0 10px;margin-right: 8px;">{{ menu2.displayName }}</div></template>
  79. <!--3级菜单-->
  80. <template v-for="menu3 in menu2.treeChildren">
  81. <el-menu-item
  82. :key="menu3.id"
  83. v-if="menu3.menuType == '1'"
  84. :index="menu3.id"
  85. >{{ menu3.displayName }}</el-menu-item
  86. >
  87. </template>
  88. <template v-for="menu3 in menu2.treeChildren">
  89. <el-submenu
  90. :popper-append-to-body="false"
  91. :key="menu3.id"
  92. v-if="menu3.menuType == '0'"
  93. :index="menu3.id"
  94. >
  95. <template slot="title"><div style="padding:0 10px;margin-right: 8px;">{{menu3.displayName}}</div></template>
  96. <!--4级菜单-->
  97. <template v-for="menu4 in menu3.treeChildren">
  98. <el-menu-item
  99. :key="menu4.id"
  100. v-if="menu4.menuType == '1'"
  101. :index="menu4.id"
  102. >{{ menu4.displayName }}</el-menu-item
  103. >
  104. </template>
  105. <template v-for="menu4 in menu3.treeChildren">
  106. <el-submenu
  107. :popper-append-to-body="false"
  108. :key="menu4.id"
  109. v-if="menu4.menuType == '0'"
  110. :index="menu4.id"
  111. >
  112. <template slot="title"><div style="padding:0 10px;margin-right: 8px;">{{menu4.displayName}}</div></template>
  113. </el-submenu>
  114. </template>
  115. </el-submenu>
  116. </template>
  117. </el-submenu>
  118. </template>
  119. </el-submenu>
  120. </template>
  121. </el-menu>
  122. </div>
  123. <!-- -->
  124. <div class="btn">
  125. <img src="@/assets/images/me.png" alt="" class="currentuser" />
  126. <!-- <i class="el-icon-arrow-down el-icon--right"></i> -->
  127. <el-dropdown>
  128. <span
  129. class="el-dropdown-link"
  130. style="color: #222531; font-weight: 700"
  131. >
  132. <!-- <img
  133. src="@/assets/images/frame.png"
  134. alt=""
  135. style="width: 20px; height: 20px"
  136. class="operateimg"
  137. /> -->
  138. {{ user }} <i class="el-icon-arrow-down el-icon--right"></i>
  139. </span>
  140. <el-dropdown-menu slot="dropdown">
  141. <el-dropdown-item @click.native="logout"
  142. >退出登录</el-dropdown-item
  143. >
  144. <el-dropdown-item @click.native="editpassword"
  145. >修改密码</el-dropdown-item
  146. >
  147. <el-dropdown-item @click.native="localSet">本地设置</el-dropdown-item>
  148. <el-dropdown-item v-if="LocalConfig.normal.isDevTool" @click.native="toggleDevTools"
  149. >调试工具</el-dropdown-item
  150. >
  151. <el-dropdown-item @click.native="clientConfigShow">客户端参数</el-dropdown-item>
  152. <el-dropdown-item @click.native="windowMin"
  153. >最小化</el-dropdown-item
  154. >
  155. <!--
  156. <el-dropdown-item @click.native="windowMax"
  157. >最大化</el-dropdown-item
  158. >
  159. <el-dropdown-item @click.native="windowClose"
  160. >关闭</el-dropdown-item
  161. >
  162. -->
  163. </el-dropdown-menu>
  164. </el-dropdown>
  165. </div>
  166. </div>
  167. </el-header>
  168. <!-- 修改密码弹框 -->
  169. <el-dialog
  170. title="修改密码"
  171. :visible.sync="dialogVisible"
  172. width="30%"
  173. :close-on-click-modal="false"
  174. >
  175. <el-form
  176. :model="form"
  177. :rules="rules"
  178. ref="ruleForm"
  179. label-width="100px"
  180. >
  181. <el-form-item label="旧密码" prop="oldPassWord">
  182. <el-input
  183. v-model="form.oldPassWord"
  184. autocomplete="new-password"
  185. show-password
  186. ></el-input>
  187. </el-form-item>
  188. <el-form-item label="新密码" prop="newPassWord">
  189. <el-input
  190. v-model="form.newPassWord"
  191. autocomplete="new-password"
  192. show-password
  193. ></el-input>
  194. </el-form-item>
  195. <el-form-item label="确认密码" prop="newPassWord">
  196. <el-input
  197. v-model="confirmpassword"
  198. type="password"
  199. autocomplete="new-password"
  200. show-password
  201. ></el-input>
  202. </el-form-item>
  203. </el-form>
  204. <span slot="footer" class="dialog-footer">
  205. <el-button @click="dialogVisible = false"> </el-button>
  206. <el-button type="primary" @click="determine"> </el-button>
  207. </span>
  208. </el-dialog>
  209. <el-container>
  210. <el-main>
  211. <router-view></router-view>
  212. </el-main>
  213. </el-container>
  214. </el-container>
  215. </div>
  216. <div>
  217. <!--通用本地参数设置-->
  218. <el-dialog title="本地参数设置" :visible.sync="dialogWin.LocalConfig" :close-on-click-modal="false" :append-to-body="true"
  219. width="800px" height="600px">
  220. <LocalConfig />
  221. </el-dialog>
  222. </div>
  223. </div>
  224. </template>
  225. <script>
  226. ///api/app/item/in-filter
  227. import router from "@/router";
  228. import { getapi, postapi } from "@/api/api";
  229. import { mapState } from "vuex";
  230. import { getTreeNode, madeTree } from "../utlis/tree";
  231. import { deepCopy } from "@/utlis/proFunc";
  232. import LocalConfig from "../components/common/LocalConfig.vue";;
  233. export default {
  234. components: {
  235. LocalConfig,
  236. },
  237. data() {
  238. return {
  239. activeIndex: "0",
  240. menuPriv: [], // 菜单权限
  241. className: "",
  242. index: 1,
  243. isCollapse: false,
  244. user: "",
  245. dialogVisible: false,
  246. password: "",
  247. form: {
  248. oldPassWord: "",
  249. newPassWord: "",
  250. },
  251. confirmpassword: "",
  252. rules: {
  253. oldPassWord: [
  254. { required: true, message: "请输入旧密码", trigger: "blur" },
  255. ],
  256. newPassWord: [
  257. { required: true, message: "请输入新密码", trigger: "blur" },
  258. ],
  259. },
  260. LocalConfig: {
  261. normal: { // 常规参数
  262. isDevTool: false, // 壳端是否显示打开调试工具的按钮
  263. }
  264. },
  265. LocalConfigInit:{},
  266. };
  267. },
  268. computed: {
  269. ...mapState(["window", "dialogWin"]),
  270. },
  271. created() {
  272. let expires_in = parseInt(window.sessionStorage.getItem("expires_in"));
  273. //console.log("dqtime / expires_in",dqtime,expires_in)
  274. if (!expires_in) {
  275. router.push({ path: "/Login" });
  276. return;
  277. }
  278. this.password = this.changepassword;
  279. // console.log(this.password);
  280. // console.log(this.$store.state.changepassword, "ssssssssssss");
  281. this.user = window.sessionStorage.getItem("user");
  282. //获取当前用户的菜单权限
  283. this.getUserAllPriv();
  284. // this.getUserMenuPriv();
  285. this.LocalConfigInit = deepCopy(this.LocalConfig)
  286. let LocalConfig = window.localStorage.getItem("LocalConfig") || null
  287. try {
  288. this.LocalConfig = Object.assign({}, this.LocalConfig, JSON.parse(LocalConfig) || {})
  289. } catch (error) {
  290. console.log('window.localStorage.getItem("LocalConfig")', error)
  291. }
  292. },
  293. methods: {
  294. // 菜单操作
  295. handleSelect(key, keyPath) {
  296. // console.log(key, keyPath);
  297. // tree: any, childNodeName: any, idName: any, idVal: any
  298. let node = getTreeNode(this.menuPriv, "treeChildren", "id", key);
  299. if (node&&this.$route.path!=='/'+node.routeUrl) this.$router.push({ path: node.routeUrl });
  300. },
  301. //获取用户所有权限
  302. getUserAllPriv() {
  303. getapi("/api/app/menuinfo/getmymenuinfolist").then((res) => {
  304. if (res.code > -1) {
  305. window.sessionStorage.setItem("userPriv", JSON.stringify(res.data));
  306. let menuPriv = res.data.filter(e => { return e.menuType == '0' || e.menuType == '1' })
  307. this.menuPriv = madeTree(menuPriv, 'treeChildren', 'parentId', 'id', null)
  308. this.menuPriv = this.menuFilter(this.menuPriv)
  309. }
  310. });
  311. },
  312. //获取用户菜单树
  313. getUserMenuPriv() {
  314. getapi("/api/app/menuinfo/getmymenuinfotreelist").then((res) => {
  315. if (res.code > -1) {
  316. this.menuPriv = res.data;
  317. this.menuPriv = this.menuFilter(this.menuPriv);
  318. console.log("this.menuPriv", this.menuPriv);
  319. }
  320. });
  321. },
  322. // 过滤菜单
  323. menuFilter(menu) {
  324. return menu.filter((e) => {
  325. if (e.menuType == "0" || e.menuType == "1") {
  326. if (e.treeChildren && e.treeChildren.length > 0) {
  327. let temp = e.treeChildren.filter((e1) => {
  328. return e1.menuType == "0" || e1.menuType == "1";
  329. });
  330. if (temp.length > 0) {
  331. e.menuType = "0";
  332. e.treeChildren = this.menuFilter(e.treeChildren);
  333. } else {
  334. e.menuType = "1";
  335. }
  336. } else {
  337. e.menuType = "1";
  338. }
  339. return e;
  340. }
  341. });
  342. },
  343. handleCommand(val) {
  344. this.className = val.flag;
  345. if (this.router.path != val.command) {
  346. this.router.path = val.command;
  347. this.$router.push({ path: val.command }).catch(() => {});
  348. }
  349. // let menuId = arguments[1].$parent.$el.id
  350. // let menuList = document.getElementById(menuId)
  351. // console.log(menuList)
  352. },
  353. beforeHandleCommand(flag, command) {
  354. return {
  355. flag: flag,
  356. command: command,
  357. };
  358. },
  359. //确定修改密码按钮
  360. determine() {
  361. this.$refs.ruleForm.validate((valid) => {
  362. if (valid) {
  363. if (this.form.oldPassWord != this.password) {
  364. this.$message.warning("旧密码输入错误");
  365. } else if (this.confirmpassword != this.form.newPassWord) {
  366. this.$message.warning("二次输入的密码不一致");
  367. } else {
  368. postapi("/api/identity/users/updatepassword", this.form).then(
  369. (res) => {
  370. console.log("修改成功");
  371. this.dialogVisible = false;
  372. }
  373. );
  374. }
  375. }
  376. });
  377. },
  378. //修改密码
  379. editpassword() {
  380. this.dialogVisible = true;
  381. console.log(this.password);
  382. },
  383. //退出登录
  384. logout() {
  385. // window.sessionStorage.removeItem("tokentype");
  386. // window.sessionStorage.removeItem("token");
  387. // window.sessionStorage.removeItem(['expires_in','tokentype','refresh_token','user','token'])
  388. window.sessionStorage.clear();
  389. this.$router.push({ path: "/login" });
  390. },
  391. // 本地设置
  392. localSet() {
  393. // this.dialogWin.LocalConfig = true
  394. this.$router.push({ path: "/LocalConfig" });
  395. },
  396. //打开客户端调试工具
  397. toggleDevTools() {
  398. if (!this.$peisAPI) {
  399. this.$message.info("此功能,需要在壳客户端才可运行!");
  400. return;
  401. }
  402. this.$peisAPI.clientConfigShow();
  403. },
  404. // 打开客户端设置
  405. clientConfigShow() {
  406. if (!this.$peisAPI) {
  407. this.$message.info("此功能,需要在壳客户端才可运行!")
  408. return
  409. }
  410. this.$peisAPI.clientConfigShow();
  411. },
  412. // 最小化
  413. windowMin() {
  414. if (!this.$peisAPI) {
  415. this.$message.info("此功能,需要在壳客户端才可运行!");
  416. return;
  417. }
  418. this.$peisAPI.windowMin();
  419. },
  420. // 最大化
  421. windowMax() {
  422. if (!this.$peisAPI) {
  423. this.$message.info("此功能,需要在壳客户端才可运行!");
  424. return;
  425. }
  426. this.$peisAPI.windowMax();
  427. },
  428. windowClose() {
  429. if (!this.$peisAPI) {
  430. this.$message.info("此功能,需要在壳客户端才可运行!");
  431. return;
  432. }
  433. this.$peisAPI.windowClose();
  434. },
  435. },
  436. components: { router },
  437. };
  438. </script>
  439. <style scoped>
  440. @import "../assets/css/global_card.css";
  441. :deep .el-dropdown-menu__item {
  442. color: #52555f;
  443. font-size: 14px;
  444. font-weight: 400;
  445. font-family: "NotoSansSC-Regular";
  446. }
  447. .dropdownmain:hover,
  448. .el-dropdown-menu__item:not(.is-disabled):hover {
  449. background-color: rgba(20, 96, 243, 0.1);
  450. color: #396ffa;
  451. /* color: #2BCA84; */
  452. font-weight: 700;
  453. font-size: 14px;
  454. font-family: "NotoSansSC-Bold";
  455. }
  456. .titleimg :hover {
  457. width: 30px;
  458. background-color: rgb(34, 149, 98);
  459. z-index: 99;
  460. }
  461. .el-dropdown-link:hover {
  462. /* background-color: rgb(202, 249, 203); */
  463. color: #396ffa;
  464. font-weight: 700;
  465. /* background-color: ; */
  466. /* border-top-left-radius: 5px;
  467. border-top-right-radius: 5px; */
  468. font-family: "NotoSansSC-Bold";
  469. }
  470. .dropdowncolor {
  471. font-size: 12px;
  472. }
  473. .el-dropdown {
  474. color: rgb(140, 135, 134);
  475. font-size: 12px;
  476. }
  477. .currentuser {
  478. width: 32px;
  479. height: 32px;
  480. position: relative;
  481. right: 2%;
  482. top: 10px;
  483. color: #000;
  484. font-size: 18px;
  485. z-index: 99;
  486. }
  487. .registrationimgimges {
  488. width: 20px;
  489. height: 20px;
  490. position: absolute;
  491. left: -15px;
  492. top: 15px;
  493. }
  494. .commonsettingimg {
  495. width: 20px;
  496. height: 20px;
  497. position: absolute;
  498. left: -15px;
  499. top: 15px;
  500. }
  501. .chargeimg {
  502. position: absolute;
  503. left: -15px;
  504. top: 15px;
  505. }
  506. .basicimg {
  507. position: absolute;
  508. left: -17px;
  509. top: 15px;
  510. }
  511. .iconimg {
  512. position: absolute;
  513. left: 0px;
  514. top: 10px;
  515. }
  516. .el-dropdown-link {
  517. font-size: 14px;
  518. margin: 0;
  519. font-weight: 400;
  520. color: #52555f;
  521. font-family: "NotoSansSC-Regular";
  522. }
  523. .principalheader {
  524. background-color: #fff;
  525. opacity: 1;
  526. /* opacity: 0.8;
  527. opacity: 0.8; */
  528. color: #ccc;
  529. border: 1px solid #ccc;
  530. }
  531. .el-dropdown-item {
  532. text-align: center;
  533. }
  534. /*
  535. .el-dropdown-menu {
  536. text-align: center;
  537. overflow: scroll;
  538. max-height: 500px;
  539. width: 150px;
  540. overflow-x: hidden;
  541. margin-left: 5%;
  542. }
  543. */
  544. .el-header {
  545. position: fixed;
  546. padding: 0 10px;
  547. /* top:0;
  548. left: 0; */
  549. width: 100%;
  550. overflow: hidden;
  551. overflow: auto;
  552. z-index: 999;
  553. }
  554. .el-container {
  555. /* position: fixed; */
  556. width: 100%;
  557. }
  558. .el-menu {
  559. border-right: none;
  560. }
  561. .navs {
  562. display: flex;
  563. align-items: center;
  564. /* justify-content: space-between; */
  565. flex-flow: 1;
  566. }
  567. ::v-deep .el-card__body {
  568. /* height: 90vh; */
  569. height: 100%;
  570. overflow-y: auto;
  571. }
  572. .maintitle {
  573. width: 180px;
  574. font-size: 20px;
  575. font-weight: 600;
  576. color: #232748;
  577. margin-left: 10px;
  578. font-family: "NotoSansSC-Bold";
  579. }
  580. ::v-deep .el-dropdown-menu item:not(.is-disabled) {
  581. color: #fff;
  582. }
  583. .el-header {
  584. height: 40px;
  585. }
  586. ::v-deep .el-select-dropdown {
  587. background: #ccc;
  588. }
  589. .operateimg {
  590. position: relative;
  591. left: 0;
  592. top: 5px;
  593. }
  594. .el-aside {
  595. /* height: calc(100vh, -70px); */
  596. height: calc(100vh - 0px);
  597. /* height: 100%; */
  598. height: 91.5vh;
  599. /* height: 100%; */
  600. /* height: calc(100vh, -0px); */
  601. }
  602. .el-main {
  603. margin-top: 50px;
  604. height: calc(100vh, -70px);
  605. }
  606. .el-menu-vertical-demo .el-menu {
  607. /* min-height: 100vh; */
  608. height: calc(100vh, -70px);
  609. }
  610. .btn {
  611. width: 120px;
  612. color: #000;
  613. font-weight: 700;
  614. /* margin-left: 60%; */
  615. /* position: relative;
  616. right: -70%; */
  617. margin-left: auto;
  618. }
  619. .collapseandunfoled {
  620. text-align: center;
  621. line-height: 40px;
  622. display: block;
  623. font-size: 18px;
  624. font-weight: 700;
  625. color: #fff;
  626. }
  627. /* .actived {
  628. color: #396FFA!important;
  629. border-bottom: 4px solid #396FFA;
  630. font-weight: 700;
  631. } */
  632. .actived .el-dropdown-link {
  633. color: #396ffa !important;
  634. font-weight: 700;
  635. font-family: "NotoSansSC-Bold";
  636. }
  637. .actived .el-dropdown-link:after {
  638. content: "";
  639. width: 100%;
  640. height: 3px;
  641. background-color: #396ffa;
  642. position: absolute;
  643. bottom: 4px;
  644. left: 0;
  645. }
  646. ::v-deep .el-submenu__title {
  647. color: #FF0000;
  648. }
  649. ::v-deep .el-menu--horizontal > .el-submenu .el-submenu__title {
  650. font-size: 14px;
  651. height: 47px;
  652. line-height: 47px;
  653. font-weight: 700;
  654. font-family: "NotoSansSC-Bold";
  655. color: #52555f;
  656. border-bottom: 3px solid #396ffa;
  657. }
  658. /* ::v-deep .submenutitle.is-active .el-submenu__title{
  659. border-bottom:none
  660. } */
  661. ::v-deep .submenutitle .el-submenu__title {
  662. height: 36px !important;
  663. line-height: 36px !important;
  664. }
  665. ::v-deep .el-menu--horizontal > .el-menu-item {
  666. height: 40px;
  667. line-height: 40px;
  668. }
  669. ::v-deep .el-submenu__title {
  670. padding: 0 5px 0 5px !important;
  671. }
  672. ::v-deep .el-menu--popup {
  673. min-width: auto !important;
  674. /* padding: 5px 10px !important; */
  675. }
  676. ::v-deep .el-submenu .el-menu-item {
  677. min-width: auto !important;
  678. }
  679. ::v-deep .el-menu--horizontal .el-menu .el-menu-item,
  680. .el-menu--horizontal .el-menu .el-submenu__title {
  681. font-size: 14px;
  682. font-weight: 400;
  683. font-family: "NotoSansSC-Regular";
  684. color: #52555f;
  685. }
  686. :v-deep .el-menu-item .is-active {
  687. background-color: #247bb4 !important;
  688. }
  689. ::v-deep .el-menu--horizontal .el-menu-item:not(.is-disabled):focus,
  690. .el-menu--horizontal .el-menu-item:not(.is-disabled):hover {
  691. background-color: rgba(20, 96, 243, 0.1);
  692. font-size: 14px;
  693. font-weight: 700;
  694. font-family: "NotoSansSC-Bold";
  695. color: #396ffa;
  696. }
  697. /* ::v-deep .el-menu--horizontal > .el-submenu .el-submenu__icon-arrow {
  698. display: none;
  699. } */
  700. ::v-deep .el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{
  701. vertical-align: middle;
  702. margin-left: 8px;
  703. margin-top: -3px;
  704. position: absolute;
  705. top: 14px;
  706. right: 4px;
  707. }
  708. ::v-deep .submenutitle .el-submenu__title {
  709. font-size: 14px !important;
  710. font-weight: 400 !important;
  711. font-family: "NotoSansSC-Regular" !important;
  712. color: #52555f !important;
  713. }
  714. ::v-deep .submenutitle .el-submenu__title:hover {
  715. background-color: rgba(20, 96, 243, 0.1) !important;
  716. font-size: 14px !important;
  717. font-weight: 700 !important;
  718. font-family: "NotoSansSC-Bold" !important;
  719. color: #396ffa !important;
  720. }
  721. ::v-deep .submenutitle .el-submenu__title {
  722. height: 36px !important;
  723. line-height: 36px !important;
  724. }
  725. ::v-deep .submenutitle .el-submenu__title .el-submenu__icon-arrow {
  726. font-size:14px !important;
  727. }
  728. ::v-deep .el-menu--horizontal .el-menu .el-menu-item.is-active{
  729. background-color: rgba(20, 96, 243, 0.1) !important;
  730. font-size: 14px !important;
  731. font-weight: 700 !important;
  732. font-family: "NotoSansSC-Bold" !important;
  733. color: #396ffa !important;
  734. }
  735. /* ::v-deep .el-menu--horizontal .el-menu .el-submenu.is-active .el-submenu__title{
  736. background-color: rgba(20, 96, 243, 0.1) !important;
  737. font-size: 14px !important;
  738. font-weight: 700 !important;
  739. font-family: "NotoSansSC-Bold" !important;
  740. color: #396ffa !important;
  741. } */
  742. ::v-deep .el-menu--horizontal .el-menu .el-menu-item, .el-menu--horizontal .el-menu .el-submenu__title{
  743. padding: 0 15px !important;
  744. }
  745. ::v-deep .el-menu.el-menu--horizontal{
  746. border-bottom:none;
  747. }
  748. /* ::v-deep .el-menu--popup-right-start{
  749. margin-left: 15px !important;
  750. } */
  751. ::v-deep .el-dropdown-menu__item,
  752. .el-menu-item {
  753. font-size: 14px;
  754. padding: 0 5px;
  755. }
  756. ::v-deep .el-icon-arrow-down:before {
  757. content: "";
  758. }
  759. /* .project-dropdown{
  760. max-height:300px;
  761. overflow: auto;
  762. }
  763. .project-dropdown::-webkit-scrollbar
  764. {
  765. width: 5px;
  766. height: 5px;
  767. background-color: #F5F5F5;
  768. }
  769. .project-dropdown::-webkit-scrollbar-track
  770. {
  771. -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
  772. border-radius: 10px;
  773. background-color: #F5F5F5;
  774. } */
  775. </style>