manageMain.vue 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107
  1. <template>
  2. <el-container style="height: 100vh; overflow: hidden">
  3. <el-aside style="width: auto; overflow: hidden">
  4. <el-menu
  5. :unique-opened="true"
  6. ref="menu"
  7. :collapse-transition="false"
  8. class="el-menu-vertical-demo shadow-menu aside-menu"
  9. :router="true"
  10. :default-active="active"
  11. :collapse="isCollapse"
  12. text-color="#333"
  13. active-text-color="#fff"
  14. @select="selectMenu"
  15. >
  16. <!-- <img src="../../assets/img/commons/jhTop.png" /> -->
  17. <!-- <img
  18. v-show="!isCollapse"
  19. style="
  20. height: 40px;
  21. width: auto;
  22. padding-top: 20px;
  23. padding-left: 10px;
  24. padding-right: 10px;
  25. margin-bottom: 20px;
  26. "
  27. src="../../assets/img/commons/jhTop1.png"
  28. /> -->
  29. <p class="aac">郑州大学大学生心理健康测评</p>
  30. <!-- <p class="aab"></p> -->
  31. <!-- <img
  32. v-show="!isCollapse"
  33. style="
  34. height: 40px;
  35. width: auto;
  36. padding-top: 20px;
  37. padding-left: 10px;
  38. padding-right: 10px;
  39. margin-bottom: 20px;
  40. "
  41. src="../../assets/img/commons/jhTop1.png"
  42. /> -->
  43. <img
  44. v-show="isCollapse"
  45. style="menu_top_suo"
  46. src="../../assets/img/commons/jhTopSuo.png"
  47. />
  48. <div v-for="item in menuList" :key="item.id">
  49. <el-menu-item :index="item.path" v-if="!item.hasOwnProperty('child')"
  50. ><div class="menu_icon_mm">
  51. <img :src="item.icon" class="menu_icon_img" /><span>{{ item.name }}</span>
  52. </div></el-menu-item
  53. >
  54. <div v-if="item.hasOwnProperty('child')">
  55. <!-- v-for="item in menuList"
  56. :key="item.id"
  57. :index="item.path"
  58. v-show="item.showItem" -->
  59. <el-submenu :index="item.path">
  60. <template slot="title">
  61. <div class="menu_icon_mm">
  62. <img :src="item.icon" class="menu_icon_img" />
  63. <span class="menu_name">{{ item.name }}</span>
  64. </div>
  65. </template>
  66. <el-menu-item-group style="background-color: #000000;">
  67. <el-menu-item v-for="el in item.child" :key="el.id" :index="el.path">
  68. <span class="menu_sub_tt"
  69. ><span class="menu_sub_t1">&nbsp;</span>{{ el.name }}</span
  70. >
  71. </el-menu-item>
  72. </el-menu-item-group>
  73. </el-submenu>
  74. </div>
  75. </div>
  76. <!-- <el-menu-item index="1">用户管理</el-menu-item> -->
  77. </el-menu>
  78. </el-aside>
  79. <!-- style="height:100vh; display: flex; flex-direction: column; border-top-left-radius: 40px; border-bottom-left-radius: 40px;background-color:#000000" -->
  80. <el-container class="el-container-com">
  81. <el-header
  82. class="shadow-menu"
  83. style="
  84. background-color: #ffffff;
  85. border-top-left-radius: 40px;
  86. background-color: #f7f7f7;
  87. "
  88. >
  89. <el-row class="admin-header-content">
  90. <el-col :span="12">
  91. <el-row>
  92. <el-col :span="10">
  93. <div class="main_top_1">
  94. <div class="blue">&nbsp;&nbsp;</div>
  95. <el-breadcrumb class="admin-breadcrumb" separator=">>">
  96. <el-breadcrumb-item>{{ crumbParent }}</el-breadcrumb-item>
  97. <el-breadcrumb-item
  98. style="font-weight: 700"
  99. v-if="crumbChild && crumbChild != null"
  100. >{{ crumbChild }}</el-breadcrumb-item
  101. >
  102. </el-breadcrumb>
  103. </div>
  104. </el-col>
  105. </el-row>
  106. </el-col>
  107. <el-col :span="12" class="just-right">
  108. <div class="user_out" @mouseenter="mouseenterFun" @mouseleave="mouseLeaveFun">
  109. <img class="user_out_img" src="../../assets/menu/userAdmin.png" />
  110. <div class="user_out_des">{{ userInfo.userName }}老师</div>
  111. <div v-if="isShowMenu" class="user_out_ab">
  112. <div class="exit" @click="escape()">退出</div>
  113. <div class="update_pass" @click="changePwd()">修改密码</div>
  114. </div>
  115. </div>
  116. <vue-qr
  117. v-show="false"
  118. :ref="userInfo.name + '-' + userInfo.userNumber"
  119. :text="urlJump + userInfo.invitationCode"
  120. :size="500"
  121. :width="1"
  122. ></vue-qr>
  123. </el-col>
  124. </el-row>
  125. </el-header>
  126. <el-container style="flex: 1; overflow: auto">
  127. <el-main style="background-color: #f5f5f5; display: flex">
  128. <div class="el-main-inner">
  129. <transition name="fade" mode="out-in">
  130. <router-view></router-view>
  131. </transition>
  132. </div>
  133. </el-main>
  134. </el-container>
  135. </el-container>
  136. <!---lxh-修改密码-->
  137. <div class="dig_update">
  138. <el-dialog
  139. :visible.sync="dialogVisible"
  140. :close-on-click-modal="false"
  141. width="40%"
  142. style="border-radius: 40px"
  143. >
  144. <div slot="title">
  145. <el-form
  146. :model="ruleForm"
  147. :rules="rules"
  148. :inline="true"
  149. ref="ruleForm"
  150. label-width="150px"
  151. class="demo-ruleForm"
  152. >
  153. <p class="dig_title">修改密码</p>
  154. <div slot=""></div>
  155. <div slot="footer"></div>
  156. <el-form-item label="请输入旧密码" prop="oldpass">
  157. <el-input
  158. type="password"
  159. v-model="ruleForm.oldpass"
  160. autocomplete="off"
  161. ></el-input>
  162. </el-form-item>
  163. <el-form-item label="请输入新密码" prop="pass">
  164. <el-input
  165. type="password"
  166. v-model="ruleForm.pass"
  167. autocomplete="off"
  168. ></el-input>
  169. </el-form-item>
  170. <el-form-item label="确认新密码" prop="checkPass">
  171. <el-input
  172. type="password"
  173. v-model="ruleForm.checkPass"
  174. autocomplete="off"
  175. ></el-input>
  176. </el-form-item>
  177. <div class="dig_button">
  178. <el-button type="info" round @click="resetForm('ruleForm')">重置</el-button>
  179. <el-button type="success" round @click="submitForm('ruleForm')"
  180. >提交</el-button
  181. >
  182. </div>
  183. </el-form>
  184. </div>
  185. </el-dialog>
  186. </div>
  187. </el-container>
  188. </template>
  189. <script>
  190. import md5 from "md5";
  191. import vueQr from "vue-qr";
  192. import { mapGetters, mapActions } from "vuex";
  193. import { oSessionStorage } from "@/utils/utils";
  194. import register from "@/components/Register";
  195. export default {
  196. name: "manageMain",
  197. components: {
  198. vueQr,
  199. },
  200. computed: {
  201. // ...mapGetters(['sacleListName']),
  202. // ...mapGetters(['menuActive']),
  203. },
  204. data() {
  205. var validatePassOld = (rule, value, callback) => {
  206. // if (value === "") {
  207. // callback(new Error("请输入密码"));
  208. // } else {
  209. // let juPassword = /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[~!@#$%^&*])[\da-zA-Z~!@#$%^&*]{8,16}$/;
  210. // if (!juPassword.test(this.ruleForm.oldpass)) {
  211. // callback(new Error("格式为数字+英文字母+特殊字符(~!@#$%^&*)8-16位"));
  212. // } else {
  213. // callback();
  214. // }
  215. // }
  216. if (value === "") {
  217. callback(new Error("请输入旧密码"));
  218. } else {
  219. if (value.length < 6 || value.length > 18) {
  220. callback(new Error("密码长度需在6~18位之间"));
  221. } else {
  222. this.$refs.ruleForm.validateField("pass");
  223. }
  224. callback();
  225. }
  226. };
  227. var validatePass = (rule, value, callback) => {
  228. // if (value === "") {
  229. // callback(new Error("请输入密码"));
  230. // } else {
  231. // let juPassword = /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[~!@#$%^&*])[\da-zA-Z~!@#$%^&*]{8,16}$/;
  232. // if (!juPassword.test(this.ruleForm.pass)) {
  233. // callback(new Error("格式为数字+英文字母+特殊字符(~!@#$%^&*)8-16位"));
  234. // } else {
  235. // callback();
  236. // }
  237. // }
  238. if (value === "") {
  239. callback(new Error("请输入新密码"));
  240. } else {
  241. if (value.length < 6 || value.length > 18) {
  242. callback(new Error("密码长度需在6~18位之间"));
  243. } else {
  244. this.$refs.ruleForm.validateField("checkPass");
  245. }
  246. callback();
  247. }
  248. };
  249. var validatePass2 = (rule, value, callback) => {
  250. if (value === "") {
  251. callback(new Error("请再次输入密码"));
  252. } else if (value !== this.ruleForm.pass) {
  253. callback(new Error("两次输入密码不一致!"));
  254. } else if (value == this.ruleForm.oldpass) {
  255. callback(new Error("旧密码和新密码相同!"));
  256. } else {
  257. callback();
  258. }
  259. };
  260. return {
  261. //是否显示退出菜单
  262. isShowMenu: false,
  263. userInfo: {}, //用户信息
  264. dialogVisible: false, //弹出窗是否可见
  265. size: "small",
  266. circleUrl: "https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png",
  267. activeIndex: "10",
  268. activeIndex2: "1",
  269. isCollapse: false,
  270. userType: "",
  271. menuList: [
  272. {
  273. id: "0",
  274. name: "用户管理",
  275. icon: require("../../assets/menu/user.png"),
  276. showItem: true,
  277. path: "/manage/userManage",
  278. },
  279. {
  280. id: "1",
  281. name: "院管理员管理",
  282. icon: require("../../assets/menu/yuan.png"),
  283. showItem: true,
  284. path: "/manage/principal",
  285. },
  286. {
  287. id: "2",
  288. name: "组织架构",
  289. icon: require("../../assets/menu/zu.png"),
  290. showItem: true,
  291. path: "/manage/organizational",
  292. },
  293. {
  294. id: "3",
  295. name: "测试计划",
  296. icon: require("../../assets/menu/plan.png"),
  297. showItem: true,
  298. path: "/manage/testPlan",
  299. },
  300. {
  301. id: "4",
  302. name: "报告分析",
  303. icon: require("../../assets/menu/plan.png"),
  304. showItem: true,
  305. path: "/manage/recordListAll",
  306. child: [
  307. {
  308. id: "41",
  309. name: "用户报告",
  310. parentName: "报告分析",
  311. icon: "el-icon-user-solid",
  312. path: "/manage/userReport",
  313. showItem: true,
  314. },
  315. {
  316. id: "42",
  317. name: "计划报告",
  318. parentName: "报告分析",
  319. icon: "el-icon-user-solid",
  320. path: "/manage/planReport",
  321. showItem: true,
  322. },
  323. {
  324. id: "43",
  325. name: "对比分析",
  326. parentName: "报告分析",
  327. icon: "el-icon-user-solid",
  328. path: "/manage/comparaAnalysis",
  329. showItem: true,
  330. },
  331. ],
  332. },
  333. ],
  334. //面包屑页签
  335. crumbParent: "首页",
  336. crumbChild: null,
  337. //修改密码
  338. ruleForm: {
  339. pass: "",
  340. checkPass: "",
  341. oldpass: "",
  342. },
  343. upPass: {
  344. institutionNo: "",
  345. password: "",
  346. },
  347. rules: {
  348. pass: [{ required: true, validator: validatePass, trigger: "blur" }],
  349. checkPass: [{ required: true, validator: validatePass2, trigger: "blur" }],
  350. oldpass: [{ required: true, validator: validatePassOld, trigger: "blur" }],
  351. },
  352. ifAdmin: false,
  353. ifSupAdmin: false,
  354. active: "/manage/adminHome",
  355. urlJump: "http://152.136.24.101:8997?invitationCode=", //二维码跳转链接
  356. };
  357. },
  358. created() {
  359. if (oSessionStorage.getItem("userInfo")) {
  360. this.userInfo = JSON.parse(oSessionStorage.getItem("userInfo"));
  361. this.userType = this.userInfo.roleType;
  362. console.log(this.userInfo);
  363. console.log(this.userType);
  364. //假如是代理用户则 //代理用户菜单不显示
  365. if (this.userType == "3") {
  366. this.menuList = [
  367. {
  368. id: "10",
  369. name: "概况",
  370. icon: require("../../assets/menu/user.png"),
  371. showItem: true,
  372. path: "/manage/generalSituation",
  373. },
  374. {
  375. id: "0",
  376. name: "用户管理",
  377. icon: require("../../assets/menu/user.png"),
  378. showItem: true,
  379. path: "/manage/userManage",
  380. },
  381. {
  382. id: "1",
  383. name: "院管理员管理",
  384. icon: require("../../assets/menu/yuan.png"),
  385. showItem: true,
  386. path: "/manage/principal",
  387. },
  388. {
  389. id: "2",
  390. name: "组织架构",
  391. icon: require("../../assets/menu/zu.png"),
  392. showItem: true,
  393. path: "/manage/organizational",
  394. },
  395. {
  396. id: "3",
  397. name: "测试计划",
  398. icon: require("../../assets/menu/plan.png"),
  399. showItem: true,
  400. path: "/manage/testPlan",
  401. },
  402. {
  403. id: "4",
  404. name: "报告分析",
  405. icon: require("../../assets/menu/plan.png"),
  406. showItem: true,
  407. path: "/manage/recordListAll",
  408. child: [
  409. {
  410. id: "41",
  411. name: "用户报告",
  412. parentName: "报告分析",
  413. icon: "el-icon-user-solid",
  414. path: "/manage/userReport",
  415. showItem: true,
  416. },
  417. {
  418. id: "42",
  419. name: "计划报告",
  420. parentName: "报告分析",
  421. icon: "el-icon-user-solid",
  422. path: "/manage/planReport",
  423. showItem: true,
  424. },
  425. {
  426. id: "43",
  427. name: "对比分析",
  428. parentName: "报告分析",
  429. icon: "el-icon-user-solid",
  430. path: "/manage/comparaAnalysis",
  431. showItem: true,
  432. },
  433. ],
  434. },
  435. ];
  436. // for (let i = 0; i < this.menuList.length; i++) {
  437. // if (
  438. // this.menuList[i].id == "5" ||
  439. // this.menuList[i].id == "6" ||
  440. // this.menuList[i].id == "2" ||
  441. // this.menuList[i].id == "3" ||
  442. // this.menuList[i].id == "1"
  443. // ) {
  444. // this.menuList[i].showItem = false;
  445. // }
  446. // }
  447. } else if (this.userType == "2") {
  448. //
  449. this.menuList = [
  450. {
  451. id: "10",
  452. name: "概况",
  453. icon: require("../../assets/menu/user.png"),
  454. showItem: true,
  455. path: "/manage/generalSituation",
  456. },
  457. {
  458. id: "0",
  459. name: "用户管理",
  460. icon: require("../../assets/menu/user.png"),
  461. showItem: true,
  462. path: "/manage/userManage",
  463. },
  464. {
  465. id: "3",
  466. name: "测试计划",
  467. icon: require("../../assets/menu/plan.png"),
  468. showItem: true,
  469. path: "/manage/testPlan",
  470. },
  471. {
  472. id: "4",
  473. name: "报告分析",
  474. icon: require("../../assets/menu/plan.png"),
  475. showItem: true,
  476. path: "/manage/recordListAll",
  477. child: [
  478. {
  479. id: "41",
  480. name: "用户报告",
  481. parentName: "报告分析",
  482. icon: "el-icon-user-solid",
  483. path: "/manage/userReport",
  484. showItem: true,
  485. },
  486. {
  487. id: "42",
  488. name: "计划报告",
  489. parentName: "报告分析",
  490. icon: "el-icon-user-solid",
  491. path: "/manage/planReport",
  492. showItem: true,
  493. },
  494. {
  495. id: "43",
  496. name: "对比分析",
  497. parentName: "报告分析",
  498. icon: "el-icon-user-solid",
  499. path: "/manage/comparaAnalysis",
  500. showItem: true,
  501. },
  502. ],
  503. },
  504. ];
  505. }
  506. }
  507. },
  508. mounted() {
  509. let codeImage = sessionStorage.getItem("codeImage");
  510. this.urlJump = codeImage + "?invitationCode=";
  511. let that = this;
  512. // 页面初始化或者刷新页面初始化页签及激活菜单-2020-03-17
  513. this.active = this.$route.path;
  514. this.selectMenu(this.$route.path);
  515. this.bus.$on("menuStatusUpdate", (e) => {
  516. that.$refs.menu.activeIndex = e;
  517. that.active = e;
  518. // that.$forceUpdate()
  519. that.selectMenu(e);
  520. });
  521. //得到用户信息,根据角色信息判断哪个显示哪个不显示
  522. },
  523. methods: {
  524. ...mapActions({
  525. // setSacleListName:"setSacleListName",
  526. // setMenuActive:"setMenuActive"
  527. }),
  528. changeMenu: function () {
  529. this.isCollapse = !this.isCollapse;
  530. },
  531. mouseenterFun() {
  532. this.isShowMenu = true;
  533. },
  534. mouseLeaveFun() {
  535. this.isShowMenu = false;
  536. },
  537. //匹配获取页签名称-2020-03-17 lwl
  538. selectMenu(param) {
  539. this.menuList.forEach((item) => {
  540. console.log(item);
  541. if (item.path == param) {
  542. this.crumbParent = item.name;
  543. this.crumbChild = null;
  544. // return;
  545. } else {
  546. //先判断是否有child
  547. //如果没有
  548. if (item.hasOwnProperty("child")) {
  549. item.child.forEach((i) => {
  550. if (i.path == param) {
  551. this.crumbParent = i.parentName;
  552. this.crumbChild = i.name;
  553. }
  554. });
  555. }
  556. }
  557. });
  558. },
  559. //下载专属二维码
  560. downCode(linkId) {
  561. const iconUrl = this.$refs[linkId].$el.src;
  562. const a = document.createElement("a");
  563. const event = new MouseEvent("click");
  564. a.download = linkId;
  565. a.href = iconUrl;
  566. a.dispatchEvent(event);
  567. },
  568. // 退出
  569. escape() {
  570. // localStorage.clear();
  571. // sessionStorage.clear();
  572. //
  573. // this.$router.push({
  574. // path: "/",
  575. // });
  576. oSessionStorage.removeItem("userInfo");
  577. oSessionStorage.removeItem("token");
  578. this.$router.push({ path: "/" });
  579. },
  580. /*lxh-修改密码*/
  581. submitForm(formName) {
  582. this.$refs[formName].validate((valid) => {
  583. console.log(this.userInfo);
  584. if (valid) {
  585. this.$http.get(
  586. `/system/updatePassword?userNo=${this.userInfo.userNo}&password=${md5(
  587. this.ruleForm.pass
  588. )}&oldPassword=${md5(this.ruleForm.oldpass)}`,
  589. // {
  590. // userNo: this.userInfo.userNo,
  591. // password: md5(this.ruleForm.pass),
  592. // oldPassword: md5(this.ruleForm.oldpass),
  593. // },
  594. {},
  595. (res) => {
  596. if (res.code == 2001) {
  597. this.$message({
  598. message: "旧密码错误",
  599. type: "error",
  600. });
  601. }
  602. if (res.code == 200) {
  603. this.ruleForm.oldpass = "";
  604. this.ruleForm.pass = "";
  605. this.ruleForm.checkPass = "";
  606. this.dialogVisible = false;
  607. this.$message({
  608. message: "密码修改完成!",
  609. type: "success",
  610. });
  611. sessionStorage.clear();
  612. this.$router.push({
  613. path: "/",
  614. });
  615. }
  616. }
  617. );
  618. } else {
  619. console.log("error submit!!");
  620. return false;
  621. }
  622. });
  623. },
  624. // 重置表单
  625. resetForm(formName) {
  626. this.$refs[formName].resetFields();
  627. },
  628. // 修改密码
  629. changePwd() {
  630. this.dialogVisible = true;
  631. },
  632. },
  633. };
  634. </script>
  635. >
  636. <style>
  637. .el-submenu .el-menu-item {
  638. height: 50px;
  639. line-height: 50px;
  640. /* padding: 0 45px; */
  641. min-width: auto !important;
  642. }
  643. .aside-menu .el-menu-item {
  644. margin-left: 20px;
  645. color: #ffffff !important;
  646. margin-right: 20px;
  647. border-radius: 40px;
  648. height: 40px;
  649. line-height: 40px;
  650. margin-top: 20px;
  651. padding-left: 0px !important;
  652. }
  653. .el-menu--popup {
  654. /* min-width:100px */
  655. }
  656. .el-submenu__title:hover {
  657. background: #00bf78 !important;
  658. margin-left: 20px;
  659. margin-right: 20px;
  660. border-radius: 40px;
  661. height: 40px;
  662. line-height: 40px;
  663. margin-top: 20px;
  664. padding-left: 0px !important;
  665. }
  666. .el-submenu__title {
  667. /* background-color: #158824; */
  668. /* margin-left:20px; */
  669. margin-right: 20px;
  670. height: 40px;
  671. line-height: 40px;
  672. margin-top: 20px;
  673. border-radius: 40px;
  674. }
  675. .el-menu {
  676. background-color: #070707;
  677. border-right: 0px;
  678. }
  679. .el-menu-item-group .el-menu-item.is-active {
  680. background-color: #00bf78 !important;
  681. }
  682. .el-menu-item-group .el-menu-item:hover {
  683. background-color: #00bf78 !important;
  684. padding-left: 0px !important;
  685. }
  686. .el-menu-item-group__title {
  687. padding: 0px !important;
  688. line-height: normal;
  689. font-size: 12px;
  690. color: #909399;
  691. }
  692. .el-menu--horizontal > .el-menu-item:not(.is-disabled):focus,
  693. .el-menu--horizontal > .el-menu-item:not(.is-disabled):hover,
  694. .el-menu--horizontal > .el-submenu .el-submenu__title:hover {
  695. /* background-color: transparent !important; */
  696. background-color: #00bf78 !important;
  697. padding-left: 0px !important;
  698. }
  699. .el-menu-item:focus,
  700. .el-menu-item:hover {
  701. outline: 0;
  702. background-color: #00bf78 !important;
  703. }
  704. </style>
  705. <style lang="less" scoped>
  706. .el-menu-vertical-demo:not(.el-menu--collapse) {
  707. width: 200px;
  708. // min-height: 400px;
  709. }
  710. .shadow-menu {
  711. // box-shadow: 0 4px 12px 2px rgba(0, 0, 0, 0.1);
  712. }
  713. #app {
  714. margin-top: 0px;
  715. }
  716. .el-header {
  717. padding: 0 0px !important;
  718. box-sizing: border-box;
  719. flex-shrink: 0;
  720. }
  721. .menu-top-left {
  722. background-color: black;
  723. height: 3.75rem;
  724. display: flex;
  725. align-items: center;
  726. font-size: 16px;
  727. line-height: 2;
  728. }
  729. .menu-top-left i img {
  730. width: 30px;
  731. height: 30px;
  732. }
  733. .menu-top-left-title {
  734. color: #ffffff;
  735. font-size: 1rem;
  736. }
  737. .el-menu--horizontal {
  738. // position: absolute;
  739. // top: 60px;
  740. // z-index: 2003;
  741. // left: 975px !important;
  742. }
  743. /*.el-menu--horizontal > .el-submenu {*/
  744. /*float: right;*/
  745. /*}*/
  746. // el-menu--horizontal > .el-menu-item {
  747. // color:#000000
  748. // }
  749. .top-menu-control {
  750. float: left;
  751. }
  752. .aside-menu {
  753. background-color: #000000;
  754. /*height: 98vh;*/
  755. height: 100vh;
  756. text-align: left;
  757. /*padding-top: 60px;*/
  758. // border-top-right-radius: 40px;
  759. // border-bottom-right-radius: 40px;
  760. }
  761. .aside-menu .el-menu-item.is-active {
  762. background: #00bf78 !important;
  763. margin-left: 20px;
  764. margin-right: 20px;
  765. border-radius: 40px;
  766. height: 40px;
  767. line-height: 40px;
  768. margin-top: 20px;
  769. }
  770. .aside-menu .el-menu-item {
  771. // background: #00BF78 !important;
  772. margin-left: 20px;
  773. color: #ffffff !important;
  774. margin-right: 20px;
  775. border-radius: 40px;
  776. height: 40px;
  777. line-height: 40px;
  778. margin-top: 20px;
  779. }
  780. .el-menu-item-group .el-menu-item.is-active {
  781. background: #00bf78 !important;
  782. margin-left: 20px;
  783. margin-right: 20px;
  784. padding-left: 0px !important;
  785. }
  786. .fade-enter {
  787. opacity: 0;
  788. }
  789. .fade-leave {
  790. opacity: 1;
  791. }
  792. .fade-leave-active,
  793. .fade-enter-active {
  794. transition: opacity 0s;
  795. }
  796. /*.rightExit {*/
  797. /*float: right !important;*/
  798. /*}*/
  799. .main-header {
  800. height: 40px !important;
  801. padding: 20px 0 0 20px !important;
  802. .menu-hide {
  803. height: 20px !important;
  804. text-align: left;
  805. line-height: 20px !important;
  806. }
  807. }
  808. .admin-header-content {
  809. // background: #57acbb;
  810. background: transparent;
  811. height: 100% !important;
  812. display: flex;
  813. flex-direction: row;
  814. justify-content: space-between;
  815. align-items: center;
  816. }
  817. .admin-header-content .el-col {
  818. height: 100% !important;
  819. }
  820. .admin-header-content .admin-logo-content {
  821. /*box-sizing: border-box;*/
  822. /*width: 100%;*/
  823. /*height: 100%;*/
  824. width: 165px;
  825. height: 45px;
  826. padding: 8px 0 8px 20px;
  827. font-size: 18px;
  828. color: #fff;
  829. text-align: left;
  830. line-height: 45px;
  831. }
  832. .admin-header-content .admin-logo-content img {
  833. width: 100%;
  834. height: 100%;
  835. }
  836. .admin-header-content .admin-head-content {
  837. width: 100%;
  838. height: 100%;
  839. display: flex;
  840. flex-direction: column;
  841. justify-content: space-between;
  842. align-items: center;
  843. flex: 1;
  844. }
  845. .admin-header-content .el-menu-demo {
  846. height: 100%;
  847. }
  848. .el-menu--horizontal > .el-submenu .el-submenu__title,
  849. /deep/.el-menu--horizontal > .el-submenu.is-active .el-submenu__title {
  850. border-bottom: none !important;
  851. margin-left: 20px;
  852. margin-right: 20px;
  853. }
  854. /deep/.el-menu--horizontal > .el-submenu .el-submenu__icon-arrow {
  855. color: #161616;
  856. }
  857. .el-menu.el-menu--horizontal {
  858. border-bottom: none;
  859. }
  860. .admin-breadcrumb {
  861. padding-top: 3px;
  862. margin-left: -18px;
  863. font-weight: 700;
  864. }
  865. .just-right {
  866. display: flex;
  867. flex-direction: row;
  868. justify-content: flex-end;
  869. .user_out {
  870. min-width: 150px;
  871. position: relative;
  872. display: flex;
  873. align-items: center;
  874. .user_out_img {
  875. width: 40px;
  876. }
  877. .user_out_des {
  878. margin-right: 40px;
  879. font-size: 16px;
  880. font-weight: 700;
  881. }
  882. .user_out_ab {
  883. border-bottom-left-radius: 20px;
  884. border-bottom-right-radius: 20px;
  885. position: absolute;
  886. background-color: #ffffff;
  887. margin-top: 150px;
  888. z-index: 100;
  889. .exit {
  890. padding-top: 20px;
  891. padding-left: 40px;
  892. padding-right: 40px;
  893. }
  894. .update_pass {
  895. padding: 20px 40px;
  896. }
  897. .exit:hover {
  898. color: #00bf78;
  899. padding-top: 20px;
  900. padding-left: 40px;
  901. padding-right: 40px;
  902. }
  903. .update_pass:hover {
  904. color: #00bf78;
  905. padding: 20px 40px;
  906. }
  907. }
  908. }
  909. }
  910. .el-main-inner {
  911. display: flex;
  912. width: 100%;
  913. background-color: #fff;
  914. padding: 20px;
  915. border-radius: 40px;
  916. }
  917. .el-main {
  918. box-sizing: border-box !important;
  919. display: flex !important;
  920. overflow: hidden !important;
  921. border-bottom-left-radius: 40px;
  922. }
  923. .menu_name {
  924. color: #ffffff;
  925. }
  926. .menu_sub_tt {
  927. margin-left: 10px;
  928. color: white;
  929. display: flex;
  930. flex-direction: row;
  931. align-items: center;
  932. .menu_sub_t1 {
  933. // background-color: #ffffff;
  934. // border-radius: 50%;
  935. width: 5px;
  936. height: 5px;
  937. margin-right: 20px;
  938. }
  939. }
  940. .el-container-com {
  941. height: 100vh;
  942. display: flex;
  943. flex-direction: column;
  944. // border-top-left-radius: 40px;
  945. // border-bottom-left-radius: 40px;
  946. background-color: #000000;
  947. }
  948. .main_top_1 {
  949. border-top-left-radius: 40px;
  950. display: flex;
  951. flex-direction: row;
  952. align-items: center;
  953. margin-top: 20px;
  954. margin-left: 20px;
  955. .blue {
  956. background-color: #00bf78;
  957. width: 10px;
  958. margin-right: 30px;
  959. height: 20px;
  960. border-radius: 5px;
  961. }
  962. }
  963. .menu_icon_mm {
  964. display: flex;
  965. flex-direction: row;
  966. align-items: center;
  967. .menu_icon_img {
  968. width: 15px;
  969. margin-right: 10px;
  970. padding-left: 10px;
  971. }
  972. }
  973. .dig_update /deep/.el-dialog {
  974. box-shadow: none !important;
  975. background: transparent !important;
  976. }
  977. .demo-ruleForm /deep/ .el-form-item {
  978. margin-right: 10px;
  979. vertical-align: top;
  980. display: flex !important;
  981. flex-direction: column;
  982. }
  983. .demo-ruleForm /deep/.el-form-item__label {
  984. text-align: left;
  985. vertical-align: middle;
  986. float: left;
  987. font-size: 14px;
  988. color: #606266;
  989. line-height: 40px;
  990. padding: 0 12px 0 0;
  991. -webkit-box-sizing: border-box;
  992. box-sizing: border-box;
  993. }
  994. .demo-ruleForm /deep/.el-input {
  995. width: 100% !important;
  996. }
  997. .demo-ruleForm /deep/.el-input__inner {
  998. width: 100% !important;
  999. background-color: #f7f7f7;
  1000. border: 0px;
  1001. }
  1002. .dig_button {
  1003. display: flex;
  1004. width: 100%;
  1005. justify-content: space-around;
  1006. }
  1007. .demo-ruleForm {
  1008. background-color: #ffffff;
  1009. // border-radius: 20px;
  1010. margin-right: -10px;
  1011. margin-top: -10px;
  1012. padding-right: 100px;
  1013. padding-left: 100px;
  1014. border-radius: 20px;
  1015. padding-top: 20px;
  1016. padding-bottom: 40px;
  1017. .dig_title {
  1018. margin-bottom: 30px;
  1019. text-align: center;
  1020. font-weight: 700;
  1021. }
  1022. }
  1023. .aab {
  1024. color: #48d68e;
  1025. margin-left: 20px;
  1026. margin-top: 10px;
  1027. font-weight: 700;
  1028. font-size: 24px;
  1029. -webkit-transform: skew(-10deg);
  1030. letter-spacing: 2px;
  1031. /* for Chrome||Safari */
  1032. -ms-transform: skew(-10deg);
  1033. /* for IE */
  1034. -moz-transform: skew(-10deg);
  1035. /* for Firefox */
  1036. -o-transform: skew(-10deg);
  1037. /* for Opera */
  1038. }
  1039. .aac {
  1040. padding-left:20px;
  1041. padding-right:20px;
  1042. text-align: center;
  1043. color: #48d68e;
  1044. // margin-left: 20px;
  1045. margin-top: 40px;
  1046. font-weight: 700;
  1047. font-size: 20px;
  1048. -webkit-transform: skew(-10deg);
  1049. letter-spacing: 2px;
  1050. /* for Chrome||Safari */
  1051. -ms-transform: skew(-10deg);
  1052. /* for IE */
  1053. -moz-transform: skew(-10deg);
  1054. /* for Firefox */
  1055. -o-transform: skew(-10deg);
  1056. /* for Opera */
  1057. }
  1058. </style>