Compare commits

..

No commits in common. "58a0257c30dd7f452469f51e0f8446b4aefadaaa" and "b5bdf3b54846522c0af2d913c76e7aca52cec284" have entirely different histories.

6 changed files with 22 additions and 112 deletions

View File

@ -1,4 +1,3 @@
import { baseUrlHost } from '../baseUrlHost';
import request from '/@/utils/request';
/**
@ -13,11 +12,11 @@ import request from '/@/utils/request';
*/
export function useMenuApi() {
return {
getAdminMenu: (id: number) => {
getAdminMenu: (params?: object) => {
return request({
// url: '/gitee/lyt-top/vue-next-admin-images/raw/master/menu/adminMenu.json',
url:baseUrlHost + `/acGrouptype/findByUserMenu/${id}`,
url: '/gitee/lyt-top/vue-next-admin-images/raw/master/menu/adminMenu.json',
method: 'get',
params,
});
},
getTestMenu: (params?: object) => {

View File

@ -3,23 +3,19 @@
<el-aside class="layout-aside" :class="setCollapseStyle">
<Logo v-if="setShowLogo" />
<el-scrollbar class="flex-auto" ref="layoutAsideScrollbarRef" @mouseenter="onAsideEnterLeave(true)" @mouseleave="onAsideEnterLeave(false)">
<div v-if="isDataReady">
<Vertical :menuList="Menulist" />
</div>
<Vertical :menuList="state.menuList" />
</el-scrollbar>
</el-aside>
</div>
</template>
<script setup lang="ts" name="layoutAside">
import { defineAsyncComponent, reactive, computed, watch, onBeforeMount, ref, onMounted } from 'vue';
import { defineAsyncComponent, reactive, computed, watch, onBeforeMount, ref } from 'vue';
import { storeToRefs } from 'pinia';
import { useRoutesList } from '/@/stores/routesList';
import { useThemeConfig } from '/@/stores/themeConfig';
import { useTagsViewRoutes } from '/@/stores/tagsViewRoutes';
import mittBus from '/@/utils/mitt';
import {useMenuApi} from '/@/api/menu'
//
const Logo = defineAsyncComponent(() => import('/@/layout/logo/index.vue'));
@ -38,10 +34,6 @@ const state = reactive<AsideState>({
clientWidth: 0,
});
const useMenuapi = useMenuApi();
const isDataReady = ref(false)
// /
const setCollapseStyle = computed(() => {
const { layout, isCollapse, menuBar } = themeConfig.value;
@ -95,23 +87,6 @@ const setFilterRoutes = () => {
if (themeConfig.value.layout === 'columns') return false;
state.menuList = filterRoutesFun(routesList.value);
};
let Menulist = ref([]);
// const defaultOpeneds =reactive([])
const getmenulist = async() =>{
try{
const res = await useMenuapi.getAdminMenu(1);
// console.log('',res);
Menulist.value = res.data;
isDataReady.value = true
// for(let i = 0; i < Menulist.value.length; i++){
// defaultOpeneds.push(i + '')
// }
}catch(error){
console.error(error)
}
};
//
const filterRoutesFun = <T extends RouteItem>(arr: T[]): T[] => {
return arr
@ -122,7 +97,6 @@ const filterRoutesFun = <T extends RouteItem>(arr: T[]): T[] => {
return item;
});
};
//
const initMenuFixed = (clientWidth: number) => {
state.clientWidth = clientWidth;
@ -139,7 +113,6 @@ const onAsideEnterLeave = (bool: Boolean) => {
onBeforeMount(() => {
initMenuFixed(document.body.clientWidth);
setFilterRoutes();
// await getmenulist();
// (mittBus.off('setSendColumnsChildren))
// 使
mittBus.on('setSendColumnsChildren', (res: MittMenu) => {
@ -165,11 +138,6 @@ onBeforeMount(() => {
closeLayoutAsideMobileMode();
});
});
onMounted(async() =>{
await getmenulist();
})
// themeConfig el-scrollbar
watch(
() => [themeConfig.value.isShowLogoChange, themeConfig.value.isShowLogo, themeConfig.value.layout, themeConfig.value.isClassicSplitMenu],

View File

@ -6,9 +6,8 @@
:collapse="state.isCollapse"
:unique-opened="getThemeConfig.isUniqueOpened"
:collapse-transition="false"
:default-openeds="defaultOpeneds"
>
<!-- <template v-for="val in menuLists">
<template v-for="val in menuLists">
<el-sub-menu :index="val.path" v-if="val.children && val.children.length > 0" :key="val.path">
<template #title>
<SvgIcon :name="val.meta.icon" />
@ -27,31 +26,16 @@
</template>
</el-menu-item>
</template>
</template> -->
<el-sub-menu :index="index.toString()" v-for="(item,index) in menuLists" :key="index" >
<template #title>
<span>{{ item.modulename }}</span>
</template>
<el-menu-item-group>
<font-awesome-icon :icon="['fas',item.actions[0].icon]" size="lg" class="edtIcon" />
<el-menu-item :index="item1.link" v-for="(item1, index1) in item.actions" :key="index1">
<SvgIcon :name="item1.icon" />
{{ item1.actionname }}
</el-menu-item>
</el-menu-item-group>
</el-sub-menu>
</el-menu>
</template>
<script setup lang="ts" name="navMenuVertical">
import { defineAsyncComponent, reactive, computed, onMounted, watch,ref ,onBeforeMount} from 'vue';
import { defineAsyncComponent, reactive, computed, onMounted, watch } from 'vue';
import { useRoute, onBeforeRouteUpdate, RouteRecordRaw } from 'vue-router';
import { storeToRefs } from 'pinia';
import { useThemeConfig } from '/@/stores/themeConfig';
import other from '/@/utils/other';
import {useMenuApi} from '/@/api/menu'
//
const SubItem = defineAsyncComponent(() => import('/@/layout/navMenu/subItem.vue'));
@ -77,25 +61,12 @@ const state = reactive({
//
const menuLists = computed(() => {
return props.menuList || [];
return <RouteItems>props.menuList;
});
//
const getThemeConfig = computed(() => {
return themeConfig.value;
});
//
// const defaultOpeneds = computed(() => {
// if (menuLists.value.length === 0) {
// console.log(111111111111);
// return []; //
// }
// console.log(22222222222);
// return menuLists.value.map((_, index) => index.toString());
// });
const defaultOpeneds = ref<string[]>([]);
//
const setParentHighlight = (currentRoute: RouteToFrom) => {
const { path, meta } = currentRoute;
@ -107,18 +78,9 @@ const setParentHighlight = (currentRoute: RouteToFrom) => {
const onALinkClick = (val: RouteItem) => {
other.handleOpenLink(val);
};
//
onMounted(() => {
state.defaultActive = setParentHighlight(route);
//
// const storedOpeneds = localStorage.getItem('defaultOpeneds');
// if (storedOpeneds) {
// console.log('Loaded from localStorage:', JSON.parse(storedOpeneds));
// } else {
// //
// localStorage.setItem('defaultOpeneds', JSON.stringify(defaultOpeneds.value));
// }
});
//
onBeforeRouteUpdate((to) => {
@ -137,21 +99,4 @@ watch(
immediate: true,
}
);
// // localStorage
// // localStorage
// watch(defaultOpeneds, (newVal) => {
// localStorage.setItem('defaultOpeneds', JSON.stringify(newVal));
// });
// props defaultOpeneds
watch(
() => props.menuList,
(newMenuList) => {
defaultOpeneds.value = newMenuList.map((_, index) => index.toString());
},
{
immediate: true,
deep: true,
}
);
</script>

View File

@ -106,8 +106,7 @@ const onSignIn = async () => {
// token
Session.set('token', res.data.token);
// usertype
// Cookies.set('userName', res.data.user.usertype === 1 ? 'admin' : 'user');
Cookies.set('userName', 'admin');
Cookies.set('userName', res.data.user.usertype === 1 ? 'admin' : 'user');
if (!themeConfig.value.isRequestRoutes) {
// 2
const isNoPower = await initFrontEndControlRoutes();
@ -117,13 +116,7 @@ const onSignIn = async () => {
// router No match found for location with path "/"
const isNoPower = await initBackEndControlRoutes();
// initBackEndControlRoutes signInSuccess
// signInSuccess(isNoPower);
if (isNoPower) {
//
signInSuccess(false); // signInSuccess
} else {
throw new Error('权限不足或路由加载失败');
}
signInSuccess(isNoPower);
}
}else{
ElMessage.error(res.errorMsg||res.message);

View File

@ -330,7 +330,7 @@ const jpgFormatter = (row: any) => {
}
newPath = newPath.includes('http://8.138.171.103/')||newPath.includes('http://guojunjie.oss-cn-hangzhou.aliyuncs.com/') ?
newPath : encodeURI(viteUrl + newPath)
// console.log(newPath);
console.log(newPath);
return `${newPath}`;
}

View File

@ -197,6 +197,10 @@ const onSubmit = async() => {
if(valid){
state.ruleForm.show = state.ruleForm.show ? 1 : 0;
state.ruleForm.grouptypeid = 1;
let body = {
actions:tree.value.getCheckedKeys(true, false),
groupid:state.ruleForm.id
}
if (state.dialog.type === 'add') {
try{
const param = {
@ -205,7 +209,12 @@ const onSubmit = async() => {
}
const res = await roleapi.addRole(param);
if (res?.success) {
try{
const data = await roleactionapi.setUprolePermission(body)
console.log(5555555,data);
}catch(error){
console.error(error)
}
emit('reset');
closeDialog();
ElMessage.success('角色新建成功!');
@ -225,10 +234,6 @@ const onSubmit = async() => {
ElMessage.error('角色新建失败!')
}
} else {
let body = {
actions:tree.value.getCheckedKeys(true, false),
groupid:state.ruleForm.id
}
try{
const res = await roleapi.updateRole(state.ruleForm);
if(res?.success){