From b78c039181ac316964a0f0de077170de178d90ab Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期三, 27 七月 2022 15:14:25 +0800 Subject: [PATCH] 更新 --- src/views/homeMenu/homeMenu.vue | 71 ++++++++++++++++++++++++++--------- 1 files changed, 53 insertions(+), 18 deletions(-) diff --git a/src/views/homeMenu/homeMenu.vue b/src/views/homeMenu/homeMenu.vue index 0e7d3d1..47ab647 100644 --- a/src/views/homeMenu/homeMenu.vue +++ b/src/views/homeMenu/homeMenu.vue @@ -22,22 +22,22 @@ <div class="gridCont"> <el-row :gutter="20"> <el-col :span="6" - ><div class="grid-content" v-throttle @click="renderMenu('2')"> + ><div class="grid-content" v-throttle @click="render('2')"> <div class="itemTit">双重预防系统</div> <img class="iconImg" src="../../assets/menu/icon4.png" /><img class="bgImg" src="../../assets/menu/card4.png" /></div ></el-col> <el-col :span="6" - ><div class="grid-content" v-throttle @click="renderMenu('3')"> + ><div class="grid-content" v-throttle @click="render('3')"> <div class="itemTit">特殊作业系统</div> <img class="iconImg" src="../../assets/menu/icon7.png" /><img class="bgImg" src="../../assets/menu/card7.png" /></div ></el-col> <el-col :span="6" - ><div class="grid-content" v-throttle @click="renderMenu('4')"> + ><div class="grid-content" v-throttle @click="render('4')"> <div class="itemTit">智能巡检系统</div> <img class="iconImg" src="../../assets/menu/icon8.png" /><img class="bgImg" src="../../assets/menu/card8.png" /></div ></el-col> <el-col :span="6"> - <div class="grid-content" v-throttle @click="renderMenu('5')"> + <div class="grid-content" v-throttle @click="render('5')"> <div class="itemTit">安全风险综合 <br />预警预报平台</div> <img class="iconImg" src="../../assets/menu/icon1.png" /> <img class="bgImg" src="../../assets/menu/card1.png" /> @@ -46,39 +46,39 @@ </el-row> <el-row :gutter="20"> <el-col :span="6" - ><div class="grid-content grid-content-2" v-throttle @click="renderMenu('6')"> + ><div class="grid-content grid-content-2" v-throttle @click="render('6')"> <div class="itemTit">应急管理系统</div> <img class="iconImg" src="../../assets/menu/icon5.png" /><img class="bgImg" src="../../assets/menu/card5.png" /></div ></el-col> <el-col :span="6" - ><div class="grid-content grid-content-2" v-throttle @click="renderMenu('7')"> + ><div class="grid-content grid-content-2" v-throttle @click="render('7')"> <div class="itemTit">目标责任管理系统</div> <img class="iconImg" src="../../assets/menu/icon2.png" /><img class="bgImg" src="../../assets/menu/card2.png" /></div ></el-col> <el-col :span="6" - ><div class="grid-content grid-content-2" v-throttle @click="renderMenu('8')"> + ><div class="grid-content grid-content-2" v-throttle @click="render('8')"> <div class="itemTit">事故管理系统</div> <img class="iconImg" src="../../assets/menu/icon6.png" /><img class="bgImg" src="../../assets/menu/card6.png" /></div ></el-col> <el-col :span="6" - ><div class="grid-content grid-content-2" v-throttle @click="renderMenu('9')"> + ><div class="grid-content grid-content-2" v-throttle @click="render('9')"> <div class="itemTit">设备综合管控系统</div> <img class="iconImg" src="../../assets/menu/icon9.png" /><img class="bgImg" src="../../assets/menu/card9.png" /></div ></el-col> </el-row> <el-row :gutter="20"> <el-col :span="6" - ><div class="grid-content grid-content-3" v-throttle @click="renderMenu('10')"> + ><div class="grid-content grid-content-3" v-throttle @click="render('10')"> <div class="itemTit">安全知识图谱系统</div> <img class="iconImg" src="../../assets/menu/icon3.png" /><img class="bgImg" src="../../assets/menu/card3.png" /></div ></el-col> <el-col :span="9" - ><div class="grid-content grid-content-3" v-throttle @click="renderMenu('11')"> + ><div class="grid-content grid-content-3" v-throttle @click="render('11')"> <div class="itemTit">危险化学品全生命周期安全<br />管理系统</div> <img class="iconImg" src="../../assets/menu/icon10.png" /><img class="bgImg" src="../../assets/menu/card10.png" /></div ></el-col> <el-col :span="9" - ><div class="grid-content grid-content-3" v-throttle @click="renderMenu('1')"> + ><div class="grid-content grid-content-3" @click="render('1')"> <div class="itemTit">基础数据权限管理系统</div> <img class="iconImg" src="../../assets/menu/icon11.png" /><img class="bgImg" src="../../assets/menu/card11.png" /></div ></el-col> @@ -111,6 +111,8 @@ interface LoginState { tabsActiveName: string; isScan: boolean; + count: number; + projectId: string; } export default defineComponent({ @@ -118,7 +120,6 @@ components: {}, setup() { const { t } = useI18n(); - const route = useRoute(); const router = useRouter(); const userInfo = useUserInfo(); const { userInfos } = storeToRefs(userInfo); @@ -128,7 +129,9 @@ const { themeConfig } = storeToRefs(storesThemeConfig); const state = reactive<LoginState>({ tabsActiveName: 'account', - isScan: false + isScan: false, + count: 0, + projectId: '1' }); // 获取布局配置信息 const getThemeConfig = computed(() => { @@ -175,18 +178,50 @@ }) .catch(() => {}); }; - const renderMenu = async (value: string) => { - Session.set('projectId', value); - userInfos.value.projectId = value; + //选择菜单 + const render = (value: string) => { + state.projectId = value; + renderMenu(); + }; + + const throttle = (renderMenu: any, delay: number) => { + let flag = true; + let count = 0; + return function () { + if (!flag) return; + flag = false; + if (count === 0) { + renderMenu.apply(); + count++; + flag = true; + } else { + setTimeout(() => { + renderMenu.apply(); + flag = true; + }, delay); + } + }; + }; + + //调用菜单方法 + const renderMenu = throttle(() => { + renderFun(); + }, 2000); + + //调后台菜单接口 + const renderFun = async () => { + Session.set('projectId', state.projectId); + userInfos.value.projectId = state.projectId; await initBackEndControlRoutes().then(() => { let linkToMenu = [...routesList.value]; if (linkToMenu && linkToMenu.length > 1) { router.push(linkToFirstMenu(JSON.parse(JSON.stringify(linkToMenu))[1])); } else { - ElMessage({ type: 'warning', message: '你没有该项目的权限' }); + ElMessage({ type: 'warning', message: '你没有该子系统的权限' }); } }); }; + const linkToFirstMenu: any = (value: any) => { let returnMenu = value; if (returnMenu.children?.length > 0) { @@ -206,11 +241,11 @@ // loginApp() }); return { + render, logoMini, onLoginOut, loginIconTwo, getThemeConfig, - renderMenu, ...toRefs(state) }; } -- Gitblit v1.9.2