diff --git a/src/home.vue b/src/home.vue
index 5bf83f67441050d12c6534956e99be8a8f08d1de..6ca31a6a986da911642bc93939275c63a2099356 100644
--- a/src/home.vue
+++ b/src/home.vue
@@ -70,7 +70,7 @@ const rightMouseData = ref(null);
const rightMouseKey = ref(null);
// 一定一个波尔变量是否显示关闭右侧菜单
const isRightMenu = ref(false);
-const isShowRouter = ref(true);
+const isShowRouter = ref(false);
const isActiveMenu = ref(false);
const isLeftMenu = ref(false);
// 定义contextMenuVisible默认为 false
@@ -236,9 +236,10 @@ onMounted(async () => {
getMatched();
try {
userData.value = allArray.value;
+ nextTick(() => {
+ isShowRouter.value = true; // 确保在DOM更新后再显示路由
+ });
return;
- // const res = await proxy.$api.menus();
- // userData.value = res.data;
getscoket();
} catch (error) {
console.error('失败信息:', error);
diff --git a/src/pages/index.vue b/src/pages/index.vue
index 47dc4a663cfd93ea3ecf9f8812e2eebbaec4f6ca..e6f15355438257349dc3249dfe85e3942656e8e5 100644
--- a/src/pages/index.vue
+++ b/src/pages/index.vue
@@ -2,19 +2,18 @@
- 新增
+ 新增
+
+
+ 菜单
+ 按钮
+
+
@@ -52,12 +51,12 @@
-->
-
+
@@ -102,7 +101,7 @@
-
+
+
+
+
+
+
+
+
+
请选择图标
-
@@ -196,6 +200,7 @@ const rules = {
url: [{ required: false, message: '请输入菜单地址', trigger: 'blur' }],
code: [{ required: true, message: '请输入菜单编码', trigger: 'blur' }],
sorts: [{ required: true, message: '请输入菜单序号', trigger: 'blur' }],
+ menutype: [{ required: true, message: '请选择菜单类型', trigger: 'blur' }],
};
const visible = ref(false);
// 示例的图标列表
@@ -206,19 +211,18 @@ Object.keys(proxy.$icon).map(item => {
value: item,
});
});
-const form = reactive({
- name: '',
- parentId: 0,
- url: '',
- component: '',
- sorts: '',
- keepalive: 1,
- icon: '',
-});
+const formTemplate = { name: '', parentId: 0, url: '', component: '', sorts: 1, keepalive: 1, icon: '', menutype: 1, perms: '', code: '', roleIds: [] };
+const form = reactive({ ...formTemplate });
const treeData = ref(null);
+const roleList = ref([]);
const handleClose = done => {
done();
};
+const add = () => {
+ dialogVisible.value = true;
+ Object.assign(form, formTemplate);
+ resetForm(ruleFormRef);
+};
const handleUnitChange = val => {};
// 重置表单
const resetForm = () => {
@@ -235,6 +239,7 @@ const onSubmit = formEl => {
if (!valid) {
return false;
}
+ console.log(form);
if (form.id) {
// 更新菜单
proxy.$api.updatemenu(form).then(res => {
@@ -305,6 +310,9 @@ const getParentMenuTree = tableTreeDdata => {
onMounted(async () => {
try {
await getTreeData();
+ proxy.$api.getRolsList().then(res => {
+ roleList.value = res.data;
+ });
} catch (error) {
console.error('失败信息:', error);
}
diff --git a/src/pages/systemSetting/management.vue b/src/pages/systemSetting/management.vue
index 85de6c69e4228c7f5ce3ebd28b6b17c560cc2118..fa63c2ac9dd044a84c9b1dc94909ebaca3033095 100644
--- a/src/pages/systemSetting/management.vue
+++ b/src/pages/systemSetting/management.vue
@@ -145,6 +145,7 @@ const onSubmit = formEl => {
};
// 删除
const handleDelete = async row => {
+ console.log(row);
proxy.$messageBox
.confirm('确定要删除吗?', '提示', {
type: '提示',
diff --git a/src/pages/systemSetting/roleManagement.vue b/src/pages/systemSetting/roleManagement.vue
index 663b9b936ead044d2b759fe82c445f632515adf1..4905ad89f080bb47b614b6d6fc6b39a4d8ad763a 100644
--- a/src/pages/systemSetting/roleManagement.vue
+++ b/src/pages/systemSetting/roleManagement.vue
@@ -129,7 +129,6 @@ const submitResource = () => {
treeArray = treeArray.concat(treeArray1);
}
console.log(ruleForm, treeArray, '333');
-
proxy.$api.assignMenusToRole({ id: ruleForm.id, menuIds: treeArray || [] }).then(res => {
proxy.$message.success(res.message);
dialogVisibleResource.value = false;
diff --git a/src/router/index.js b/src/router/index.js
index fb4acb113439b07d9628001b0a74e890006225d1..d79a672ef389f65bfb857f503c351da6cecdd930 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -76,6 +76,7 @@ function transformRoute(route, parentPath = '') {
// 异步加载路由并添加到路由器
const setupDynamicRoutes = async () => {
+ console.log('开始加载动态路由...');
try {
const res = await api.menus();
const backendRoutes = res.data;
@@ -104,8 +105,11 @@ router.beforeEach(async (to, from, next) => {
NProgress.start(); // 开启进度条
const useMenuStores = useMenuStore();
const funcAll = () => {
- localStorage.clear(); // 清除所有 localStorage 数据
+ dynamicRoutesLoaded = false;
useMenuStores.changeRemoveAll();
+ useMenuStores.clearAll();
+ localStorage.clear(); // 清除所有 localStorage 数据
+ console.log('清除所有 localStorage 数据');
};
if (to.path === '/login') {
// localStorage.clear(); // 清除所有 localStorage 数据
diff --git a/src/stortes/menu.js b/src/stortes/menu.js
index e94efd751a202b400df42590d1cc3568e66062f7..1358513c3f0d1d885cf02ab0958806d20831ced0 100644
--- a/src/stortes/menu.js
+++ b/src/stortes/menu.js
@@ -86,11 +86,14 @@ const menuStore = defineStore('menu', {
this.activeTabArray = [this.activeTabArray[0]];
this.editableTabsValue = this.activeTabArray[0].url;
},
+ clearAll() {
+ this.allArray = [];
+ },
},
persist: {
key: 'piniaMenuStore', //存储名称
storage: localStorage, // 存储方式
- paths: ['activeTabArray', 'editableTabsValue'], //指定 state 中哪些数据需要被持久化。[] 表示不持久化任何状态,undefined 或 null 表示持久化整个 state
+ paths: ['activeTabArray', 'editableTabsValue', 'allArray'], //指定 state 中哪些数据需要被持久化。[] 表示不持久化任何状态,undefined 或 null 表示持久化整个 state
},
});