|
@@ -1,125 +1,114 @@
|
|
|
<template>
|
|
|
- <div style="position: relative;height: 100%;">
|
|
|
- <div class="left">
|
|
|
+ <div class="left">
|
|
|
+ <!-- <div > -->
|
|
|
<div class="logo2">
|
|
|
<img :src="fromL.basics.logo ? fromL.basics.logo : require('../assets/img/moren.png')" alt="">
|
|
|
</div>
|
|
|
- <div class="ulT">
|
|
|
+ <!-- <div class="ulT"> -->
|
|
|
|
|
|
- <!-- 默认首页 -->
|
|
|
- <div class="ulTOne" @click.stop="goto(0)" :style="{background :activeL === 0 ?'#E6F0FF':'',zIndex:9 }">
|
|
|
- <div class="menu_left">
|
|
|
+ <!-- 默认首页 -->
|
|
|
+ <div class="ulTOne" @click.stop="goto(0)">
|
|
|
+ <div class="menu_left">
|
|
|
+ <div class="iconW">
|
|
|
<img class="logo" :src="activeL === 0 ? require('../assets/img/sy1.svg') : require('../assets/img/sy.svg')" alt="">
|
|
|
- <span :style="{color : activeL === 0 ? '#0051D7' :''}">首页</span>
|
|
|
</div>
|
|
|
+ <span class="barT" :style="{color : activeL === 0 ? '#0051D7' :''}">首页</span>
|
|
|
</div>
|
|
|
+ </div>
|
|
|
|
|
|
- <!-- 权限 -->
|
|
|
- <div class="TwoBar ulTOne" v-for="(item,index) in appSignL(fromL.admin.sidebar.list)"
|
|
|
- :key="index+1">
|
|
|
-
|
|
|
- <!-- 渲染菜单类型 -->
|
|
|
- <div class="menu_left" v-if="item.menuName">
|
|
|
- <!-- :src="activeL === (index +1) ? item.menuActiveIcon : item.menuIcon" -->
|
|
|
- <img :src="item.menuIcon" class="logo" alt="">
|
|
|
- <span >{{ item.menuName }}</span>
|
|
|
- <!-- :style="{color : activeL === (index +1) ? '#0051D7' :''}" -->
|
|
|
- <!-- 二级导航 -->
|
|
|
- <transition name="slide">
|
|
|
- <div class="ulTCopy">
|
|
|
- <div class="ulTCopyTit">
|
|
|
- <span>{{ item.menuName }}</span>
|
|
|
- <!-- <span @click="closeCopy" class="cha" style="color: #6B7280;font-size: 23px;cursor: pointer;">⨯</span> -->
|
|
|
- </div>
|
|
|
- <div class="ulTCopyHei">
|
|
|
- <div class="ulTCopyTxt" :style="{background : (activeLTwo === index+1 +'+' + ind)? '#E6F0FF' : ''}"
|
|
|
- v-for="(i,ind) in appSignL(item.children)"
|
|
|
- @click="levTwo(i,ind,index)" :key="ind+'a'">
|
|
|
- <!-- {{ activeLTwo }}------{{ index+1 +'+' + ind }} -->
|
|
|
- <div>
|
|
|
- <div style="display: flex;justify-content: space-between;align-items: center;" v-for="(p,pin) in AppCon(i.url)" :key="pin+'p'">
|
|
|
- <img style="width: 30px;object-fit: contain;height: 30px;margin-right: 5px;"
|
|
|
- :src="p.icon"
|
|
|
- alt="">
|
|
|
- <div class="ovlH">{{ p.name }}</div>
|
|
|
- </div>
|
|
|
+ <!-- 权限 -->
|
|
|
+ <div v-for="(item,index) in appSignL(fromL.admin.sidebar.list)"
|
|
|
+ :key="index+1">
|
|
|
+
|
|
|
+ <!-- 渲染菜单类型 -->
|
|
|
+ <div class="ulTOne" v-if="item.menuName">
|
|
|
+ <el-popover
|
|
|
+ placement="right"
|
|
|
+ :append-to-body="false"
|
|
|
+ trigger="hover"
|
|
|
+ >
|
|
|
+ <div class="ulTCopy" >
|
|
|
+ <div class="ulTCopyTit">
|
|
|
+ {{ item.menuName }}
|
|
|
+ </div>
|
|
|
+ <div class="ulTCopyHei">
|
|
|
+ <div class="ulTCopyTxt"
|
|
|
+ v-for="(i,ind) in appSignL(item.children)"
|
|
|
+ @click="levTwo(i,ind,index)" :key="ind+'a'">
|
|
|
+ <div class="ulTCopyConT"
|
|
|
+ :style="{background : (activeLTwo === index+1 +'+' + ind)? '#0663FE' : '',color:(activeLTwo === index+1 +'+' + ind)? '#fff' : '#000000E5'}"
|
|
|
+ v-for="(p,pin) in AppCon(i.url)" :key="pin+'p'">
|
|
|
+ {{ p.name }}
|
|
|
</div>
|
|
|
- </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ </div>
|
|
|
+ <div slot="reference" class="menu_left">
|
|
|
+ <div class="iconW">
|
|
|
+ <img :src="activeL === (index +1) ? item.menuActiveIcon : item.menuIcon" class="logo" alt="">
|
|
|
+ </div>
|
|
|
+ <span class="barT">{{ item.menuName }}</span>
|
|
|
+ </div>
|
|
|
+ </el-popover>
|
|
|
|
|
|
- </transition>
|
|
|
- </div>
|
|
|
-
|
|
|
- <!-- 渲染平台工具类型 -->
|
|
|
- <div @click.stop="goto(index,item)" style="border-radius: 10px;"
|
|
|
- :style="{background :activeL === (index +1) ?'#E6F0FF':'',zIndex : 9999 }" v-else>
|
|
|
- <div v-for="(p,pin) in AppCon(item.url)" :key="pin+'p'">
|
|
|
- <div class="menu_left" >
|
|
|
- <div>
|
|
|
- <img class="logo3"
|
|
|
- :src="activeL === (index +1) ? p.icon : p.activeIcon"
|
|
|
+
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ <!-- 渲染平台工具类型 -->
|
|
|
+ <div @click.stop="goto(index,item)"
|
|
|
+ v-else>
|
|
|
+ <div class="ulTOne" @mouseenter="mouGet(item.toolId)" v-for="(p,pin) in AppCon(item.url)" :key="pin+'p'">
|
|
|
+ <el-popover
|
|
|
+ placement="right"
|
|
|
+ :append-to-body="false"
|
|
|
+ :disabled="item.toolId != 'appStore'"
|
|
|
+ trigger="hover"
|
|
|
+ >
|
|
|
+ <div class="ulTCopy" style="z-index: -10;">
|
|
|
+ <div class="ulTCopyTit">
|
|
|
+ <span>CocoFlow</span>
|
|
|
+ </div>
|
|
|
+ <div class="ulTCopyHei" >
|
|
|
+ <span style="color: #00000066;">最近使用</span>
|
|
|
+ <div class="ulTCopyTxt"
|
|
|
+ v-for="(i,ind) in cocoFlowList[0]" @click="openNewWindow(i.url)" :key="ind+'ab'">
|
|
|
+ <div class="ulTCopyConT">{{ i.name }}</div>
|
|
|
+ </div>
|
|
|
+ <span style="color: #00000066;">我的收藏</span>
|
|
|
+ <div class="ulTCopyTxt"
|
|
|
+ v-for="(i,ind) in cocoFlowList[1]" @click="openNewWindow(i.url)" :key="ind+'a'">
|
|
|
+
|
|
|
+ <div class="ulTCopyConT">{{ i.name }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div slot="reference" class="menu_left" >
|
|
|
+ <div class="iconW">
|
|
|
+ <img class="logo"
|
|
|
+ :src="activeL === (index +1) ? p.activeIcon : p.defaultIcon"
|
|
|
alt="">
|
|
|
</div>
|
|
|
- <span :style="{color : activeL === (index +1) ? '#0051D7' :''}">
|
|
|
+ <span class="barT" :style="{color : activeL === (index +1) ? '#0051D7' :''}">
|
|
|
{{ p.name }}
|
|
|
</span>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </el-popover>
|
|
|
|
|
|
- <transition name="slide" style="z-index: -10;">
|
|
|
- <!-- 应用中心 -->
|
|
|
- <div class="ulTCopy" style="z-index: -10;" v-if="item.toolId == 'appStore'">
|
|
|
- <div class="ulTCopyTit">
|
|
|
- <span>CocoFlow</span>
|
|
|
- <!-- <span @click="closeCopy" class="cha" style="color: #6B7280;font-size: 23px;cursor: pointer;">⨯</span> -->
|
|
|
- </div>
|
|
|
- <div class="ulTCopyHei" >
|
|
|
- <span style="color: #00000066;">最近使用</span>
|
|
|
- <div class="ulTCopyTxt"
|
|
|
- v-for="(i,ind) in cocoFlowList[0]" @click="openNewWindow(i.url)" :key="ind+'ab'">
|
|
|
- <div class="ulTCopyTxtCon">
|
|
|
- <img style="width: 20px;height: 20px;border-radius: 10px;object-fit: contain;margin-right: 5px;"
|
|
|
- :src="JSON.parse(i.json).icon"
|
|
|
- alt="">
|
|
|
- <div class="ovlH">{{ i.name }}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <span style="color: #00000066;">我的收藏</span>
|
|
|
-
|
|
|
- <div class="ulTCopyTxt"
|
|
|
- v-for="(i,ind) in cocoFlowList[1]" @click="openNewWindow(i.url)" :key="ind+'a'">
|
|
|
- <div class="ulTCopyTxtCon" >
|
|
|
- <img style="width: 20px;height: 20px;border-radius: 10px;object-fit: contain;margin-right: 5px;"
|
|
|
- :src="JSON.parse(i.json).icon"
|
|
|
- alt="">
|
|
|
- <div class="ovlH">{{ i.name }}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
|
|
|
- </div>
|
|
|
|
|
|
- </transition>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
</div>
|
|
|
- <div class="userInfo">
|
|
|
- <img style="width: 40px;height: 40px;object-fit: cover;border-radius: 50%;margin-bottom: 4px;" :src="userinfo.headportrait ? userinfo.headportrait : require('../assets/img/toux.png')" alt="">
|
|
|
- <div style="margin-bottom: 8px;">{{ userinfo.username }}</div>
|
|
|
- <span style="cursor: pointer;padding: 5px;background-color: #e7e7e7;box-sizing: border-box;border-radius: 5px;" @click="handleLogout">退出登录</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
-
|
|
|
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import { mapGetters, mapActions } from 'vuex';
|
|
|
-import { loginOut } from '@/api/user';
|
|
|
+
|
|
|
import store from '../store'
|
|
|
import { API_CONFIG } from "@/common/apiConfig";
|
|
|
|
|
@@ -174,6 +163,7 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
|
return {
|
|
|
// 一级选中第几个
|
|
|
activeL:0,
|
|
|
+ visible:true,
|
|
|
// 二级选中第几个
|
|
|
activeLTwo: null,
|
|
|
cocoFlowList:[],
|
|
@@ -184,29 +174,12 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
|
...mapActions({
|
|
|
logout: 'user/logout'
|
|
|
}),
|
|
|
- async handleLogout() {
|
|
|
- this.$confirm('确定退出吗', '提示', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning'
|
|
|
- }).then(async () => {
|
|
|
- loginOut()
|
|
|
- .then(async () => {
|
|
|
- this.$message({
|
|
|
- message: '退出成功',
|
|
|
- type: 'success'
|
|
|
- });
|
|
|
- await this.logout();
|
|
|
- this.$router.push('/login');
|
|
|
- })
|
|
|
- .catch(err => {
|
|
|
- console.error(err);
|
|
|
- });
|
|
|
- }).catch(() => {
|
|
|
- // 取消操作
|
|
|
- });
|
|
|
- },
|
|
|
|
|
|
+ mouGet(val){
|
|
|
+ if(val != 'appStore') return
|
|
|
+ console.log('666')
|
|
|
+ this.getData()
|
|
|
+ },
|
|
|
// 点击一级导航
|
|
|
async goto(index,val = null){
|
|
|
// console.log('goto',val);
|
|
@@ -281,8 +254,11 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
|
|
|
|
let pl = {json:kpl ,stateL :true,toolId :val.toolId}
|
|
|
|
|
|
+ // 添加打开应用
|
|
|
this.$emit('AddAppJson',pl)
|
|
|
},
|
|
|
+
|
|
|
+ // 获取cocoFlow收藏与历史使用记录
|
|
|
getData(){
|
|
|
let params = [
|
|
|
{
|
|
@@ -299,7 +275,6 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
|
})
|
|
|
.catch((err) => {
|
|
|
console.log(err);
|
|
|
- this.loading = false
|
|
|
this.$message.error("获取常见应用失败");
|
|
|
});
|
|
|
},
|
|
@@ -307,6 +282,7 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
|
async levTwo(val,index,aInd){
|
|
|
|
|
|
this.activeL = ''
|
|
|
+ this.activeL = aInd +1
|
|
|
this.activeLTwo = `${aInd + 1}+${index}`
|
|
|
|
|
|
// 点击相同应用不刷新
|
|
@@ -375,26 +351,40 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
|
+.ulTCopy{
|
|
|
+ overflow: auto;
|
|
|
+ height: 100%;
|
|
|
+
|
|
|
+}
|
|
|
|
|
|
.logo{
|
|
|
- width: 80px;
|
|
|
- height: 68px;
|
|
|
+ margin: auto;
|
|
|
+ width: 21px;
|
|
|
+ max-height: 24px;
|
|
|
}
|
|
|
-.logo3{
|
|
|
- height: 25px;object-fit: contain;transform: scale(1.5);
|
|
|
+
|
|
|
+.iconW{
|
|
|
+ width: 30px;
|
|
|
+ height: 30px;
|
|
|
+ display: flex;
|
|
|
+ align-content: center;
|
|
|
+ justify-content: center;
|
|
|
+ padding: 1px;
|
|
|
+ box-sizing: border-box;
|
|
|
}
|
|
|
-.logo2{
|
|
|
- padding: 16px;
|
|
|
+.logo2 {
|
|
|
+ padding: 8px;
|
|
|
box-sizing: border-box;
|
|
|
- height: 68px;
|
|
|
+ height: 48px;
|
|
|
width: 100%;
|
|
|
background-color: #fff;
|
|
|
text-align: center;
|
|
|
- border-bottom: .5px #e5e7eb solid;
|
|
|
}
|
|
|
.logo2 img{
|
|
|
- width: 37px;
|
|
|
+ width: 30px;
|
|
|
+ height: 30px;
|
|
|
}
|
|
|
+
|
|
|
.userInfo{
|
|
|
width: 80px;
|
|
|
color: #374151;
|
|
@@ -411,61 +401,51 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
|
font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !important;
|
|
|
width: 80px;
|
|
|
height: 100%;
|
|
|
+ padding:23px 6px;
|
|
|
+ box-sizing: border-box;
|
|
|
background-color: #ffffff;
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
- position: relative;
|
|
|
- box-shadow: 5px 0 8px rgba(0, 0, 0, 0.1);
|
|
|
- /* z-index: 999; */
|
|
|
-
|
|
|
-}
|
|
|
-.left .ulT {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- padding: 8px 0;
|
|
|
- box-sizing: border-box;
|
|
|
- display: flex;
|
|
|
- gap: 10px;
|
|
|
- overflow: auto;
|
|
|
- overflow-x: hidden;
|
|
|
- flex-direction: column;
|
|
|
- background-color: #ffffff;
|
|
|
+ gap: 24px;
|
|
|
+ border-right: 1px #D5D5D5 solid;
|
|
|
}
|
|
|
-.left .ulT .ulTOne{
|
|
|
+
|
|
|
+.ulTOne{
|
|
|
+ width: 100%;
|
|
|
border-radius: 10px;
|
|
|
- margin: 0 auto;
|
|
|
+ display: flex;
|
|
|
+ height: 48px;
|
|
|
+ width: 48px;
|
|
|
+ flex-wrap:nowrap;
|
|
|
+ align-content: center;
|
|
|
+ justify-content: center;
|
|
|
+ position: relative;
|
|
|
}
|
|
|
|
|
|
-.ulT div:nth-child(1){
|
|
|
- margin-top: 0;
|
|
|
-}
|
|
|
-.ulTCopy{
|
|
|
- position: fixed;
|
|
|
- left: -256px;
|
|
|
- top: 0;
|
|
|
- height: 100%;
|
|
|
- width: 256px;
|
|
|
- z-index: -100;
|
|
|
- background-color: #ffffff;
|
|
|
- overflow: visible;
|
|
|
- transform: translateX(0px); /* 初始位置在视图之外 */
|
|
|
- box-shadow: inset 2px 0 8px rgba(0, 0, 0, 0.1),5px 3px 5px 0px rgba(0, 0, 0, 0.1);
|
|
|
- transition: transform .5s ease;
|
|
|
|
|
|
+.barT{
|
|
|
+ font-size:10px;
|
|
|
+ overflow: hidden;
|
|
|
+ white-space: nowrap;
|
|
|
+ text-overflow: ellipsis;
|
|
|
}
|
|
|
|
|
|
-.TwoBar:hover .ulTCopy{
|
|
|
- transform: translateX(336px); /* 初始位置在视图之外 */
|
|
|
- z-index: -100;
|
|
|
- display: block !important;
|
|
|
-}
|
|
|
-.TwoBar{
|
|
|
- position: relative;
|
|
|
- padding:0 8px;box-sizing: border-box;
|
|
|
+.menu_left {
|
|
|
+ width: 32px;
|
|
|
+ height: 42px;
|
|
|
+ font-size: 10px;
|
|
|
+ color: #64748b;
|
|
|
+ box-sizing: border-box;
|
|
|
+ cursor: pointer;
|
|
|
+ margin: auto;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ gap: 2px;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
.slide-enter-active, .slide-leave-active {
|
|
|
transition: transform 0.5s ease;
|
|
|
z-index: -1000 !important;
|
|
@@ -482,66 +462,84 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
|
|
|
|
transform: translateX(0); /* 进入时移动到正常位置 */
|
|
|
}
|
|
|
+.ulTOne >>> .el-popover{
|
|
|
+ overflow: auto;
|
|
|
+ padding: 0 !important;
|
|
|
+ left: 70px !important;
|
|
|
+ height: 596px;
|
|
|
+ width: 154px;
|
|
|
+ z-index: -100;
|
|
|
+ background-color: #FFFFFFE5 !important;
|
|
|
+ overflow: visible;
|
|
|
+ border-radius: 12px;
|
|
|
+ overflow: hidden;
|
|
|
+ cursor: auto;
|
|
|
+ box-shadow: 0px 8px 10px -5px #00000014;
|
|
|
+ box-shadow: 0px 16px 24px 2px #0000000A;
|
|
|
+ box-shadow: 0px 6px 30px 5px #0000000D;
|
|
|
+ backdrop-filter: blur(16.700000762939453px);
|
|
|
+}
|
|
|
|
|
|
.ulTCopyTit{
|
|
|
- height: 72px;padding: 16px;box-sizing: border-box;color: #000;font-size: 18px;font-weight: 600;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
+ font-family: PingFang SC;
|
|
|
+ font-weight: 600;
|
|
|
+ font-size: 12px;
|
|
|
+ letter-spacing: 0px;
|
|
|
+ color: #000;
|
|
|
+ height: 40px;
|
|
|
+ padding: 12px 16px;
|
|
|
+ box-sizing: border-box;
|
|
|
border-bottom: .5px #e5e7eb solid;
|
|
|
+ background: #fff;
|
|
|
}
|
|
|
.ulTCopyHei{
|
|
|
- padding: 16px;box-sizing: border-box;display: flex;flex-direction: column;gap: 10px;
|
|
|
+ display: flex;flex-direction: column;
|
|
|
+ gap: 10px;
|
|
|
overflow: auto;
|
|
|
+ overflow-x: hidden;
|
|
|
height: calc(100% - 72px);
|
|
|
}
|
|
|
.ulTCopyTxt{
|
|
|
- height: 48px;padding: 12px;box-sizing: border-box;display: flex;align-items: center;
|
|
|
+ height: 48px;
|
|
|
+ padding: 7px 10px;
|
|
|
+ box-sizing: border-box;display: flex;
|
|
|
+ align-items: center;
|
|
|
color: #374151;
|
|
|
border-radius: 10px;
|
|
|
- cursor: pointer;
|
|
|
font-size: 16px;
|
|
|
margin: 0;
|
|
|
}
|
|
|
+.ulTCopyConT {
|
|
|
+ height: 30px;
|
|
|
+ width: 154px;
|
|
|
+ font-size: 12px;
|
|
|
+ cursor: pointer;
|
|
|
+ border-radius: 8px;
|
|
|
+ padding: 8px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ white-space: nowrap;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ /* -webkit-line-clamp: 1;
|
|
|
+ display: -webkit-box;
|
|
|
+ -webkit-box-orient: vertical;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis; */
|
|
|
+}
|
|
|
+.ulTCopyConT:hover{
|
|
|
+ background: #e7e7e7;
|
|
|
+}
|
|
|
.ulTCopyTxtCon{
|
|
|
display: flex;align-items: center;width: 100%;
|
|
|
}
|
|
|
-.ulTCopyTxt:hover{
|
|
|
+/* .ulTCopyTxt:hover{
|
|
|
background-color: #f3f4f6 !important;
|
|
|
-}
|
|
|
+} */
|
|
|
.cha:hover{
|
|
|
color: #000 !important;
|
|
|
}
|
|
|
|
|
|
-.menu_left {
|
|
|
- width: 64px;
|
|
|
- height: 70px;
|
|
|
- font-size: 10px;
|
|
|
- margin-top: 3px;
|
|
|
- white-space: nowrap;
|
|
|
- color: #64748b;
|
|
|
- align-items: center;
|
|
|
- justify-content: center;
|
|
|
- display: flex;
|
|
|
- flex-wrap: wrap;
|
|
|
- padding: 12px;
|
|
|
- box-sizing: border-box;
|
|
|
- border-radius: 10px;
|
|
|
- border: none;
|
|
|
- z-index: 1000000;
|
|
|
- text-decoration: none; /* 移除下划线 */
|
|
|
- cursor: pointer;
|
|
|
- border-radius: 10px;
|
|
|
- margin-top: 12px;
|
|
|
-}
|
|
|
|
|
|
-.menu_left:hover{
|
|
|
- background-color: #f3f4f6 !important;
|
|
|
-}
|
|
|
-.menu_left img{
|
|
|
- width: 22px;
|
|
|
- height: 20px;
|
|
|
-}
|
|
|
.ovlH{
|
|
|
overflow: hidden;
|
|
|
white-space: nowrap;
|