index.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780
  1. <!-- 农林植保 -->
  2. <template>
  3. <el-container style="height: 100%">
  4. <el-header height="80px">
  5. <div class="headMenu">
  6. <!-- logo -->
  7. <div class="logoinfo">
  8. <div>
  9. <img :src="$imghost + logoIcon" width="40" alt v-if="loginInfo.role_logo" />
  10. <img :src="loginInfo.role_logo" v-else />
  11. <!-- <span>{{ loginInfo.role_header || "河南省高标准农田管理系统" }}</span> -->
  12. <span>河南省高标准农田管理系统</span>
  13. </div>
  14. </div>
  15. <!-- 菜单 -->
  16. <ul class="topMenu">
  17. <li
  18. v-for="(item,index) in menuList"
  19. :key="item.index"
  20. :class="{'active':item.name==currTopMenuId}"
  21. :id="'nav' + index"
  22. v-trigger="(that)"
  23. @click="topMenuClick(item,index)"
  24. >
  25. <div class="navContent">
  26. <div class="a1">
  27. <div class="blueMenu">
  28. <img src="../../static/images/indexTab.png" alt="" >
  29. </div>
  30. </div>
  31. <div class="a2">
  32. <div class="blueMenu indexTabActive">
  33. <img src="../../static/images/indexTabActive.png" alt="" >
  34. </div>
  35. </div>
  36. <div class="navTxt">{{item.name}}</div>
  37. </div>
  38. </li>
  39. <!-- <li
  40. v-for="(item,index) in menuList"
  41. :key="item.index"
  42. :class="{'active':item.name==currTopMenuId}"
  43. :id="'nav' + index"
  44. v-trigger
  45. @click="topMenuClick(item,index)"
  46. >
  47. <img v-if="item.id" :src="iconimgs[item.id]" alt />
  48. <div>{{item.name}}</div>
  49. </li> -->
  50. </ul>
  51. <div class="userInfo">
  52. 欢迎您!
  53. <el-dropdown @command="dropdownHandle" >
  54. <span class="el-dropdown-link">
  55. {{username}}
  56. <i class="el-icon-arrow-down el-icon--right"></i>
  57. </span>
  58. <el-dropdown-menu slot="dropdown">
  59. <el-dropdown-item command="personMsg">个人中心</el-dropdown-item>
  60. <el-dropdown-item command="editPwd">修改密码</el-dropdown-item>
  61. </el-dropdown-menu>
  62. </el-dropdown>
  63. <div class="exit" @click="outSys()">
  64. <i class="iconfont icon-exit"></i>
  65. </div>
  66. <!-- <div> -->
  67. <!-- <button></button> -->
  68. <!-- <el-button type="primary" icon="el-icon-search">搜索</el-button> -->
  69. <!-- </div> -->
  70. </div>
  71. </div>
  72. </el-header>
  73. <!-- 修改密码对话框 -->
  74. <el-dialog
  75. title="修改密码"
  76. :visible.sync="resetPassDialogVisible"
  77. width="500px"
  78. top="180px"
  79. @close="resetPassDialogClosed"
  80. >
  81. <el-form
  82. ref="resetPassFormRef"
  83. :model="resetPassForm"
  84. label-width="104px"
  85. :rules="resetPassFormRules"
  86. >
  87. <el-form-item label="原始密码 : " prop="oldPass">
  88. <el-input type="password" v-model="resetPassForm.oldPass"></el-input>
  89. </el-form-item>
  90. <el-form-item label="新密码 : " prop="newPass">
  91. <el-input type="password" v-model="resetPassForm.newPass"></el-input>
  92. </el-form-item>
  93. <el-form-item label="确认新密码 : " prop="checkNewPass">
  94. <el-input
  95. type="password"
  96. v-model="resetPassForm.checkNewPass"
  97. ></el-input>
  98. </el-form-item>
  99. </el-form>
  100. <span slot="footer" class="dialog-footer">
  101. <el-button @click="resetPassDialogVisible = false">取 消</el-button>
  102. <el-button type="primary" @click="resetPassSubm">确认</el-button>
  103. </span>
  104. </el-dialog>
  105. <el-container style="overflow: auto">
  106. <el-aside width="85px">
  107. <ul class="leftMenu">
  108. <li
  109. v-for="(item, index) in leftMenuList"
  110. :key="item.path"
  111. :class="{'active':item.name==currLeftMenuId}"
  112. @click="leftMenuClick(item,index)"
  113. >
  114. <i :class="['iconfont', iconimgs[item.id]]"></i>
  115. <div>{{item.name}}</div>
  116. </li>
  117. </ul>
  118. </el-aside>
  119. <el-main>
  120. <div class="tabsNav">
  121. <el-tabs v-model="menuTabsValue" type="card" closable @tab-click="clickTab" @tab-remove="removeTab">
  122. <el-tab-pane
  123. v-for="(item, index) in menuTabs"
  124. :key="item.path"
  125. :label="item.name"
  126. :name="item.name"
  127. ></el-tab-pane>
  128. </el-tabs>
  129. </div>
  130. <div class="content">
  131. <!-- <div>{{menuTabsValue}}</div> -->
  132. <!-- <keep-alive> -->
  133. <router-view></router-view>
  134. <!-- </keep-alive> -->
  135. </div>
  136. </el-main>
  137. </el-container>
  138. </el-container>
  139. </template>
  140. <script>
  141. //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
  142. //例如:import 《组件名称》 from '《组件路径》';
  143. import '@/plugin/flexible.js'
  144. export default {
  145. //import引入的组件需要注入到对象中才能使用
  146. components: {},
  147. data() {
  148. var validateNewPass = (rule, value, callback) => {
  149. if (value === "") {
  150. callback(new Error("请输入新密码"));
  151. } else {
  152. if (this.resetPassForm.checkPass !== "") {
  153. this.$refs.resetPassFormRef.validateField("checkNewPass");
  154. }
  155. callback();
  156. }
  157. };
  158. var validateCheckPass = (rule, value, callback) => {
  159. if (value === "") {
  160. callback(new Error("请再次输入密码"));
  161. } else if (value !== this.resetPassForm.newPass) {
  162. callback(new Error("两次输入密码不一致!"));
  163. } else {
  164. callback();
  165. }
  166. };
  167. //这里存放数据
  168. return {
  169. that: this,
  170. logoIcon: "/images/logo.png",
  171. menuList: [],
  172. leftMenuList: [],
  173. currTopMenuId: '农林植保',
  174. currLeftMenuId: '设备列表',
  175. iconimgs: {
  176. "1": '',
  177. "2": 'icon-inbox-1',
  178. "3": 'icon-inbox-1',
  179. "4": 'icon-inbox-1',
  180. "5": 'icon-inbox-1',
  181. "6": 'icon-inbox-1',
  182. "7": 'icon-inbox-1',
  183. "8": 'icon-inbox-1',
  184. "9": 'icon-inbox-1',
  185. "10": 'icon-inbox-1',
  186. "11": 'icon-inbox-1',
  187. "12": 'icon-inbox-1',
  188. "13": 'icon-inbox-1',
  189. "14": 'icon-yonghu1',
  190. "15": 'icon-xitong',
  191. "16": 'icon-zhuti_tiaosepan_o',
  192. "17": 'icon-inbox-1',
  193. "18": 'icon-inbox-1',
  194. "19": 'icon-inbox-1',
  195. "20": 'icon-pin-2',
  196. "21": 'icon-1',
  197. "22": 'icon-chongzhi',
  198. },
  199. //动态标签
  200. // menuTabs:[{ "path": "/plantGuard/base", "name": "设备列表", "par": "农林植保", "order": 0 } ],
  201. menuTabs:[],
  202. menuTabsValue:'',
  203. username:"",
  204. // 用户信息
  205. loginInfo:{},
  206. resetPassDialogVisible:false,
  207. resetPassForm: {
  208. oldPass: "",
  209. newPass: "",
  210. checkNewPass: "",
  211. },
  212. resetPassFormRules: {
  213. oldPass: [
  214. { required: true, message: "请输入原始密码", trigger: "blur" },
  215. ],
  216. newPass: [
  217. { required: true, message: "请输入新密码" },
  218. { validator: validateNewPass, trigger: "blur" },
  219. ],
  220. checkNewPass: [
  221. { required: true, message: "请确认密码" },
  222. { validator: validateCheckPass, trigger: "blur" },
  223. ],
  224. },
  225. };
  226. },
  227. //监听属性 类似于data概念
  228. computed: {},
  229. //监控data中的数据变化
  230. watch: {
  231. '$route' (to, from) {
  232. let flag = false
  233. for (let item of this.menuTabs) {
  234. if (item.name === to.meta.navname) {
  235. this.menuTabsValue = to.meta.navname
  236. flag = true
  237. break
  238. }
  239. }
  240. if (!flag) {
  241. console.log(to)
  242. this.add_tabs({path: to.path, name: to.meta.navname,par:to.meta.title,order:to.meta.order})
  243. this.menuTabsValue = to.meta.navname
  244. }
  245. sessionStorage.setItem("menuTabs", JSON.stringify(this.menuTabs));
  246. sessionStorage.setItem("menuTabsValue", this.menuTabsValue);
  247. }
  248. },
  249. //vue自定义指令
  250. directives: {
  251. trigger: {
  252. inserted(el, binging) {
  253. var menuTabsValue = sessionStorage.getItem("menuTabsValue");
  254. var menuTabs = sessionStorage.getItem("menuTabs");
  255. if(menuTabs){
  256. binging.value.that.menuTabs = JSON.parse(menuTabs)
  257. binging.value.that.menuTabsValue = menuTabsValue
  258. }else{
  259. el.id == "nav0" ? el.click() : null; // 只点击第一个,id是在循环中手动添加的
  260. }
  261. },
  262. },
  263. },
  264. //方法集合
  265. methods: {
  266. topMenuClick(item, index) {
  267. if(item.children.length){
  268. this.currTopMenuId = item.name;
  269. this.leftMenuList = item.children;
  270. this.currLeftMenuId = item.children[0].name;
  271. this.$router.push({ path: '/plantGuard'+item.children[0].path });
  272. }else if(item.name == '产品溯源'){
  273. var routeUrl = this.$router.resolve({
  274. path: '/index/farmBaseManger'
  275. })
  276. window.open(routeUrl.href, '_blank')
  277. }else{
  278. this.$message({
  279. message: '系统开发中',
  280. type: 'warning'
  281. });
  282. }
  283. },
  284. leftMenuClick(item, index) {
  285. this.currLeftMenuId = item.name;
  286. console.log(item)
  287. if(item.path=="/operatData"){
  288. this.$store.commit('setOperatId','')
  289. }
  290. this.$router.push({ path: '/plantGuard'+item.path });
  291. },
  292. //添加tab标签
  293. add_tabs (data) {
  294. this.menuTabs.push(data)
  295. console.log(data);
  296. },
  297. //移除tab标签
  298. removeTab(targetName) {
  299. let tabs = this.menuTabs;
  300. let activeName = this.menuTabsValue;
  301. if (activeName === targetName) {
  302. tabs.forEach((tab, index) => {
  303. if (tab.name === targetName) {
  304. let nextTab = tabs[index + 1] || tabs[index - 1];
  305. if (nextTab) {
  306. activeName = nextTab.name;
  307. this.$router.push({ path: nextTab.path });
  308. this.leftMenuList = this.menuList[nextTab.order].children;
  309. this.currTopMenuId=nextTab.par;
  310. this.currLeftMenuId=nextTab.name;
  311. }
  312. }
  313. });
  314. }
  315. this.menuTabsValue = activeName;
  316. this.menuTabs = tabs.filter(tab => tab.name !== targetName);
  317. },
  318. //切换标签
  319. clickTab(tab) {
  320. console.log('tab')
  321. console.log(tab)
  322. this.$router.push({path: this.menuTabs[tab.index].path})
  323. this.leftMenuList = this.menuList[this.menuTabs[tab.index].order].children;
  324. this.menuTabsValue = this.menuTabs[tab.index].name
  325. this.currTopMenuId=this.menuTabs[tab.index].par;
  326. this.currLeftMenuId=this.menuTabs[tab.index].name;
  327. // sessionStorage.setItem("menuTabsValue", this.menuTabsValue);
  328. },
  329. // 获取用户主题
  330. getUserInfo() {
  331. this.$axios({
  332. method: "POST",
  333. url: "/api/api_gateway?method=home.homes.user_theme",
  334. }).then((res) => {
  335. if (res.data.message == "") {
  336. this.loginInfo = res.data.data[0];
  337. } else {
  338. this.$message.error(res.data.message);
  339. }
  340. });
  341. },
  342. // 获取用户菜单列表
  343. getNavList() {
  344. this.$axios({
  345. method: "POST",
  346. url: "/api/api_gateway?method=user.login.user_login_info",
  347. }).then((res) => {
  348. if (res.data.message == "") {
  349. var menuLists=[
  350. {
  351. "name": "农林植保",
  352. "id": "1",
  353. "children": [
  354. {
  355. "name": "设备列表",
  356. "path": "/base",
  357. "id": "2"
  358. },
  359. {
  360. "name": "项目基地",
  361. "path": "/baseAll",
  362. "id": "19"
  363. },
  364. ]
  365. },
  366. {
  367. "name": "可视农业",
  368. "id": "3",
  369. "children": [
  370. {
  371. "name": "可视化系统",
  372. "path": "/monitor",
  373. "id": "4"
  374. }
  375. ]
  376. },
  377. {
  378. "name": "智能灌溉",
  379. "id": "5",
  380. "children": [
  381. {
  382. "name": "灌溉展示",
  383. "path": "/irrigate",
  384. "id": "6"
  385. },
  386. {
  387. "name": "操作记录",
  388. "path": "/operatData",
  389. "id": "6"
  390. },
  391. {
  392. "name": "设备预警",
  393. "path": "/wranData",
  394. "id": "6"
  395. },
  396. ]
  397. },
  398. {
  399. "name": "水价管理",
  400. "id": "7",
  401. "children": [
  402. {
  403. "name": "地图展示",
  404. "path": "/page9",
  405. "id": "20"
  406. },
  407. {
  408. "name": "消费记录",
  409. "path": "/page10",
  410. "id": "21"
  411. },
  412. {
  413. "name": "充值记录",
  414. "path": "/page11",
  415. "id": "22"
  416. },
  417. ]
  418. },
  419. {
  420. "name": "地理信息",
  421. "id": "9",
  422. "children": [
  423. // {
  424. // "name": "设备列表",
  425. // "path": "/page1",
  426. // "id": "10"
  427. // }
  428. ]
  429. },
  430. {
  431. "name": "产品溯源",
  432. "id": "11",
  433. "children": [
  434. // {
  435. // "name": "农场管理1",
  436. // "path": "/farmFieldsManger",
  437. // "id": "23"
  438. // }
  439. ]
  440. },
  441. {
  442. "name": "系统管理",
  443. "id": "13",
  444. "children": [
  445. {
  446. "name": "用户管理",
  447. "path": "/userManage",
  448. "id": "14"
  449. },
  450. {
  451. "name": "角色管理",
  452. "path": "/roleManage",
  453. "id": "15"
  454. },
  455. {
  456. "name": "主题定制",
  457. "path": "/topicManage",
  458. "id": "16"
  459. },
  460. ]
  461. },
  462. {
  463. "name": "设备管理",
  464. "id": "17",
  465. "children": [
  466. {
  467. "name": "设备管理",
  468. "path": "/equipManage",
  469. "id": "18"
  470. }
  471. ]
  472. }
  473. ];
  474. let userType = res.data.data.myuser_type; //用户类型
  475. let userName = res.data.data.username; //用户名
  476. let myuid = res.data.data.myuid; //用户id
  477. sessionStorage.setItem("myuser_type", userType);
  478. sessionStorage.setItem("myuid", myuid);
  479. if(menuLists[0].name=='农林植保'){
  480. if(userType == 4){
  481. menuLists[0].children= [
  482. {
  483. "name": "设备列表",
  484. "path": "/base",
  485. "id": "2"
  486. }
  487. ]
  488. this.menuTabs = [{ "path": "/plantGuard/base", "name": "设备列表", "par": "农林植保", "order": 0 }]
  489. }else{
  490. menuLists[0].children= [
  491. {
  492. "name": "项目基地",
  493. "path": "/baseAll",
  494. "id": "19"
  495. },
  496. ]
  497. this.menuTabs = [{ "path": "/plantGuard/baseAll", "name": "项目基地", "par": "农林植保", "order": 0 }]
  498. }
  499. }
  500. this.menuList = menuLists;
  501. }
  502. });
  503. },
  504. dropdownHandle(command) {
  505. if (command == "editPwd") {
  506. this.changePass();
  507. } else if (command == "outSys") {
  508. this.outSys();
  509. } else {
  510. this.$router.push({ path: "/plantGuard/personMsg" });
  511. }
  512. },
  513. outSys() {
  514. this.$axios({
  515. method: "POST",
  516. url: "/api/api_gateway?method=user.login.logout_user",
  517. }).then((res) => {
  518. if (res.data.message == "") {
  519. window.localStorage.removeItem("isLogin");
  520. window.localStorage.removeItem("session");
  521. window.sessionStorage.removeItem("menuTabs");
  522. window.sessionStorage.removeItem("menuTabsValue");
  523. window.sessionStorage.removeItem("setHomepage");
  524. this.$router.push("/login");
  525. }
  526. });
  527. },
  528. changePass() {
  529. this.resetPassDialogVisible = true;
  530. },
  531. resetPassSubm() {
  532. this.$refs.resetPassFormRef.validate((valid) => {
  533. if (!valid) return;
  534. this.$axios({
  535. method: "POST",
  536. url: "/api/api_gateway?method=user.login.changepwd",
  537. data: this.qs.stringify({
  538. old_password: this.resetPassForm.oldPass,
  539. new_password: this.resetPassForm.newPass,
  540. confirm_password: this.resetPassForm.checkNewPass,
  541. }),
  542. }).then((res) => {
  543. if (res.data.message == "") {
  544. this.$message({
  545. message: "密码修改成功!",
  546. type: "success",
  547. });
  548. this.resetPassDialogVisible = false;
  549. }
  550. });
  551. });
  552. },
  553. resetPassDialogClosed() {},
  554. },
  555. //生命周期 - 创建完成(可以访问当前this实例)
  556. created() {},
  557. //生命周期 - 挂载完成(可以访问DOM元素)
  558. mounted() {
  559. this.getNavList();
  560. this.getUserInfo();
  561. this.username = localStorage.getItem("cUsername");
  562. // window.addEventListener('beforeunload', e => this.beforeunloadHandler(e))
  563. },
  564. beforeCreate() {}, //生命周期 - 创建之前
  565. beforeMount() {}, //生命周期 - 挂载之前
  566. beforeUpdate() {}, //生命周期 - 更新之前
  567. updated() {}, //生命周期 - 更新之后
  568. beforeDestroy() {}, //生命周期 - 销毁之前
  569. destroyed() {
  570. // window.removeEventListener('beforeunload', e => this.beforeunloadHandler(e))
  571. }, //生命周期 - 销毁完成
  572. activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
  573. };
  574. </script>
  575. <style scoped lang="less">
  576. @keyframes step {
  577. 0% {
  578. -webkit-transform: translateX(0);
  579. transform: translateX(0)
  580. }
  581. to {
  582. -webkit-transform: translate3d(-41.625rem, 0, 0);
  583. transform: translate3d(-41.625rem, 0, 0)
  584. }
  585. }
  586. .el-header {
  587. background-color: #182037;
  588. color: #eee;
  589. z-index: 3500;
  590. .headMenu {
  591. height: 80px;
  592. display: flex;
  593. justify-content: space-between;
  594. align-items: center;
  595. .logoinfo {
  596. >div{
  597. display: flex;
  598. align-items: center;
  599. }
  600. img {
  601. vertical-align: top;
  602. }
  603. span {
  604. font-size: .3rem;
  605. letter-spacing: .0375rem;
  606. margin-left: .125rem;
  607. }
  608. }
  609. .topMenu {
  610. height: 80px;
  611. display: flex;
  612. justify-content: space-between;
  613. align-items: center;
  614. li {
  615. cursor: pointer;
  616. // padding: 10px 0;
  617. // width: 100px;
  618. width: 1.3875rem;
  619. // text-align: center;
  620. margin: 0 .125rem;
  621. // line-height: 20px;
  622. height: 100%;
  623. display: flex;
  624. align-items: center;
  625. .navContent{
  626. width: 100%;
  627. position: relative;
  628. }
  629. .blueMenu{
  630. position: absolute;
  631. width: 100%;
  632. height: .4875rem;
  633. overflow: hidden;
  634. // background: url(../../../static/images/indexTab.png);
  635. img{
  636. width: 41.625rem;
  637. animation: step 5s steps(30) infinite;
  638. }
  639. }
  640. // .indexTabActive{
  641. // display: none;
  642. // }
  643. .a2{
  644. // display: none;
  645. visibility:hidden
  646. }
  647. .navTxt{
  648. line-height: .4875rem;
  649. padding-left: .375rem;
  650. font-size: .175rem;
  651. }
  652. }
  653. .active {
  654. // background: #0195ff;
  655. .a1{
  656. // display: none;
  657. visibility:hidden
  658. }
  659. .a2{
  660. // display: block;
  661. visibility:visible
  662. }
  663. }
  664. li:hover {
  665. .a1{
  666. // display: none;
  667. visibility:hidden
  668. }
  669. .a2{
  670. // display: block;
  671. visibility:visible
  672. }
  673. // background: #003e66;
  674. }
  675. }
  676. .userInfo {
  677. font-size: .175rem;
  678. .el-dropdown {
  679. color: #fff;
  680. cursor: pointer;
  681. margin-right: .125rem;
  682. }
  683. .exit {
  684. display: inline-block;
  685. font-size: .3rem;
  686. border-left: 1px solid #727272;
  687. padding-left: .1875rem;
  688. cursor: pointer;
  689. i{
  690. font-size: .25rem;
  691. }
  692. i:hover{
  693. color: #0195ff;
  694. }
  695. }
  696. }
  697. }
  698. }
  699. .el-aside {
  700. background-color: #182037;
  701. color: #eee;
  702. .leftMenu {
  703. text-align: center;
  704. li {
  705. padding: .125rem 0;
  706. cursor: pointer;
  707. line-height: .275rem;
  708. i{
  709. font-size: .325rem;
  710. }
  711. }
  712. li:hover {
  713. background: #000;
  714. }
  715. .active {
  716. background: #000;
  717. }
  718. }
  719. }
  720. .el-main {
  721. background-color: #fff;
  722. color: #333;
  723. padding: 0!important;
  724. .tabsNav{
  725. position: fixed;
  726. background: #fff;
  727. z-index: 3000;
  728. width: 100%;
  729. }
  730. .content{
  731. padding-top: 56px;
  732. height: calc(100vh - 136px);
  733. .innerMargin{
  734. padding: 0px 20px 20px;
  735. }
  736. }
  737. }
  738. /deep/.el-tabs__nav .el-tabs__item:nth-child(1) span{
  739. display: none;
  740. }
  741. /deep/.el-tabs__item.is-active,
  742. /deep/.el-tabs__item:hover{
  743. color: #0295ff;
  744. }
  745. /deep/.el-radio__input.is-checked .el-radio__inner{
  746. border-color: #0195ff;
  747. background: #0195ff;
  748. }
  749. /deep/.el-radio__input.is-checked + .el-radio__label {
  750. color: #0195ff;
  751. }
  752. .el-dropdown-menu{
  753. z-index:99999 !important
  754. }
  755. .el-dropdown-menu__item:not(.is-disabled):hover, .el-dropdown-menu__item:focus {
  756. background-color: #dff1ff;
  757. color: #0295ff;
  758. }
  759. </style>