diff --git a/src/api/menu/index.ts b/src/api/menu/index.ts index bedcbe5..cdc272f 100644 --- a/src/api/menu/index.ts +++ b/src/api/menu/index.ts @@ -212,7 +212,7 @@ class MenuAPI { name: "calculate", meta: { title: "算子管理", - icon: "user", + icon: "oper", hidden: false, roles: ["ADMIN", "GUEST"], keepAlive: true, @@ -249,7 +249,7 @@ class MenuAPI { name: "calculateParam", meta: { title: "算子程序管理", - icon: "user", + icon: "oper", hidden: false, roles: ["ADMIN", "GUEST"], keepAlive: true, @@ -289,7 +289,7 @@ class MenuAPI { name: "/dataMgr", meta: { title: "数据集管理", - icon: "db", + icon: "dict", hidden: false, roles: ["GUEST", "ADMIN", "ADMIN6"], alwaysShow: false, @@ -301,7 +301,7 @@ class MenuAPI { name: "datas", meta: { title: "数据集管理", - icon: "user", + icon: "dict", hidden: false, roles: ["ADMIN", "GUEST"], keepAlive: true, @@ -341,7 +341,7 @@ class MenuAPI { name: "equipment", meta: { title: "计算设备管理", - icon: "user", + icon: "setting", hidden: false, roles: ["ADMIN", "GUEST"], keepAlive: true, @@ -402,7 +402,7 @@ class MenuAPI { name: "otherTool", meta: { title: "第三方工具管理", - icon: "role", + icon: "setting", hidden: false, roles: ["ADMIN6", "GUEST", "ADMIN"], keepAlive: true, @@ -453,7 +453,7 @@ class MenuAPI { component: "system/user/index", name: "User", meta: { - title: "系统管理1", + title: "用户管理", icon: "user", hidden: false, roles: ["ADMIN", "GUEST"], @@ -461,12 +461,24 @@ class MenuAPI { alwaysShow: false, }, }, + { + path: "userEdit", + component: "system/user/edit", + name: "UserEdit", + meta: { + title: "用户管理编辑", + hidden: true, + roles: ["ADMIN", "GUEST"], + keepAlive: true, + alwaysShow: false, + }, + }, { path: "role", component: "system/role/index", name: "Role", meta: { - title: "系统管理2", + title: "角色管理", icon: "role", hidden: false, roles: ["ADMIN6", "GUEST", "ADMIN"], @@ -474,6 +486,43 @@ class MenuAPI { alwaysShow: false, }, }, + { + path: "roleEdit", + component: "system/role/edit", + name: "RoleEdit", + meta: { + title: "角色管理编辑", + hidden: true, + roles: ["ADMIN6", "GUEST", "ADMIN"], + keepAlive: true, + alwaysShow: false, + }, + }, + { + path: "menu", + component: "system/menu/index", + name: "Menu", + meta: { + title: "菜单管理", + icon: "menu", + hidden: false, + roles: ["ADMIN6", "GUEST", "ADMIN"], + keepAlive: true, + alwaysShow: false, + }, + }, + { + path: "menuEdit", + component: "system/menu/edit", + name: "MenuEdit", + meta: { + title: "菜单管理编辑", + hidden: true, + roles: ["ADMIN6", "GUEST", "ADMIN"], + keepAlive: true, + alwaysShow: false, + }, + }, ], }, ]); diff --git a/src/views/system/menu/edit.vue b/src/views/system/menu/edit.vue new file mode 100644 index 0000000..8844198 --- /dev/null +++ b/src/views/system/menu/edit.vue @@ -0,0 +1,255 @@ + + + + + 菜单基本信息 + + + + + + + + + + + + + + 目录 + 菜单 + 按钮 + 外链 + + + + + + + + + + + src/views/ + .vue + + + + + + 显示 + 隐藏 + + + + + + + 是否始终显示 + + + 当设置为始终显示时,即使只有一个子菜单也会显示 + + + + + + + + 是 + 否 + + + + + + 是 + 否 + + + + + + + + + + + + + + + + + + + + + + + + + + + 确 定 + 取 消 + + + + + + + \ No newline at end of file diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue index db6e07f..0a01567 100644 --- a/src/views/system/menu/index.vue +++ b/src/views/system/menu/index.vue @@ -1,42 +1,41 @@ - - - - - - - 搜索 - - - 重置 - - - - - - - 新增 + + + 新增菜单 + + + + + + + + 搜索 + + + 重置 + + + + - 目录 - + - + - + @@ -106,7 +88,6 @@ 编辑 - + - + src/views/ - .vue + .vue @@ -234,8 +201,7 @@ @@ -257,10 +223,7 @@ - + 是 否 @@ -294,10 +257,7 @@ - + @@ -321,7 +281,7 @@ defineOptions({ import MenuAPI from "@/api/menu"; import { MenuQuery, MenuForm, MenuVO } from "@/api/menu/model"; import { MenuTypeEnum } from "@/enums/MenuTypeEnum"; - +const router = useRouter(); const queryFormRef = ref(ElForm); const menuFormRef = ref(ElForm); @@ -363,19 +323,130 @@ const menuCacheData = reactive({ path: "", }); +const tableData = [ + { + id: "2014", + icon: "split", + name: "算法分割管理", + type: "MENU", + path: "/modelMgr", + component:"/modelMgr/index", + perm: "system:deployment:list", + visible: 1, + sort: 1, + children: [ + { + id: "20141", + name: "算法分割管理查询", + type: "BUTTON", + perm: "system:deployment:query", + visible: 1, + sort: 2, + }, + { + id: "20142", + name: "算法分割管理新增", + type: "BUTTON", + perm: "system:deployment:add", + visible: 1, + sort: 2, + }, + { + id: "20143", + name: "算法分割管理修改", + type: "BUTTON", + perm: "system:deployment:edit", + visible: 1, + sort: 3, + }, + { + id: "20144", + name: "算法分割管理删除", + type: "BUTTON", + perm: "system:deployment:remove", + visible: 1, + sort: 4, + }, + { + id: "20145", + name: "算法分割管理导出", + type: "BUTTON", + perm: "system:deployment:export", + visible: 1, + sort: 5, + }, + ], + }, + { + id: "2015", + icon: "web", + name: "互联协议管理", + type: "MENU", + path: "/modelMgr", + component:"/modelMgr/index", + perm: "system:deployment:list", + visible: 1, + sort: 2, + children: [ + { + id: "20151", + name: "互联协议管理查询", + type: "BUTTON", + perm: "system:deployment:query", + visible: 1, + sort: 2, + }, + { + id: "20152", + name: "互联协议管理新增", + type: "BUTTON", + perm: "system:deployment:add", + visible: 1, + sort: 2, + }, + { + id: "20153", + name: "互联协议管理修改", + type: "BUTTON", + perm: "system:deployment:edit", + visible: 1, + sort: 3, + }, + { + id: "20154", + name: "互联协议管理删除", + type: "BUTTON", + perm: "system:deployment:remove", + visible: 1, + sort: 4, + }, + { + id: "20155", + name: "互联协议管理导出", + type: "BUTTON", + perm: "system:deployment:export", + visible: 1, + sort: 5, + }, + ], + } +]; + /** * 查询 */ function handleQuery() { // 重置父组件 loading.value = true; - MenuAPI.getList(queryParams) - .then((data) => { - menuList.value = data; - }) - .then(() => { - loading.value = false; - }); + ElMessage.success("查询成功"); + loading.value = false; + // MenuAPI.getList(queryParams) + // .then((data) => { + // menuList.value = data; + // }) + // .then(() => { + // loading.value = false; + // }); } /** 重置查询 */ @@ -396,24 +467,25 @@ function onRowClick(row: MenuVO) { * @param menuId 菜单ID */ function openDialog(parentId?: number, menuId?: number) { - MenuAPI.getOptions() - .then((data) => { - menuOptions.value = [{ value: 0, label: "顶级菜单", children: data }]; - }) - .then(() => { - dialog.visible = true; - if (menuId) { - dialog.title = "编辑菜单"; - MenuAPI.getFormData(menuId).then((data) => { - Object.assign(formData, data); - menuCacheData.type = data.type; - menuCacheData.path = data.path ?? ""; - }); - } else { - dialog.title = "新增菜单"; - formData.parentId = parentId; - } - }); + router.replace({ path: "/system/menuEdit" }); + // MenuAPI.getOptions() + // .then((data) => { + // menuOptions.value = [{ value: 0, label: "顶级菜单", children: data }]; + // }) + // .then(() => { + // dialog.visible = true; + // if (menuId) { + // dialog.title = "编辑菜单"; + // MenuAPI.getFormData(menuId).then((data) => { + // Object.assign(formData, data); + // menuCacheData.type = data.type; + // menuCacheData.path = data.path ?? ""; + // }); + // } else { + // dialog.title = "新增菜单"; + // formData.parentId = parentId; + // } + // }); } /** 菜单类型切换事件处理 */ @@ -450,23 +522,30 @@ function submitForm() { /** 删除菜单 */ function handleDelete(menuId: number) { - if (!menuId) { - ElMessage.warning("请勾选删除项"); - return false; - } + // if (!menuId) { + // ElMessage.warning("请勾选删除项"); + // return false; + // } - ElMessageBox.confirm("确认删除已选中的数据项?", "警告", { + // ElMessageBox.confirm("确认删除已选中的数据项?", "警告", { + // confirmButtonText: "确定", + // cancelButtonText: "取消", + // type: "warning", + // }) + // .then(() => { + // MenuAPI.deleteById(menuId).then(() => { + // ElMessage.success("删除成功"); + // handleQuery(); + // }); + // }) + // .catch(() => ElMessage.info("已取消删除")); + ElMessageBox.confirm("确认删除菜单信息?", "警告", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", - }) - .then(() => { - MenuAPI.deleteById(menuId).then(() => { - ElMessage.success("删除成功"); - handleQuery(); - }); - }) - .catch(() => ElMessage.info("已取消删除")); + }).then(function () { + ElMessage.success("删除成功"); + }); } /** 关闭弹窗 */ @@ -493,6 +572,6 @@ function resetForm() { } onMounted(() => { - handleQuery(); + //handleQuery(); }); diff --git a/src/views/system/role/edit.vue b/src/views/system/role/edit.vue new file mode 100644 index 0000000..b809e42 --- /dev/null +++ b/src/views/system/role/edit.vue @@ -0,0 +1,173 @@ + + + + + 角色基本信息 + + + + + + + + + + + + + + + + + + + + + + + 正常 + 停用 + + + + + + + + + + + + + 确 定 + 取 消 + + + + + + + \ No newline at end of file diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue index 9439b69..0954551 100644 --- a/src/views/system/role/index.vue +++ b/src/views/system/role/index.vue @@ -1,59 +1,54 @@ - - - - - - - - 搜索 - 重置 - - - - 新增 - 删除 + + + 新增角色 + + + + + + + + 搜索 + + + 重置 + + + + - - - - - + + + 正常 禁用 - - - + ({ sort: 1, status: 1, @@ -238,14 +257,16 @@ let checkedRole: CheckedRole = reactive({}); /** 查询 */ function handleQuery() { loading.value = true; - RoleAPI.getPage(queryParams) - .then((data) => { - roleList.value = data.list; - total.value = data.total; - }) - .finally(() => { - loading.value = false; - }); + ElMessage.success("查询成功"); + loading.value = false; + // RoleAPI.getPage(queryParams) + // .then((data) => { + // roleList.value = data.list; + // total.value = data.total; + // }) + // .finally(() => { + // loading.value = false; + // }); } /** 重置查询 */ function resetQuery() { @@ -261,15 +282,16 @@ function handleSelectionChange(selection: any) { /** 打开角色表单弹窗 */ function openDialog(roleId?: number) { - dialog.visible = true; - if (roleId) { - dialog.title = "修改角色"; - RoleAPI.getFormData(roleId).then((data) => { - Object.assign(formData, data); - }); - } else { - dialog.title = "新增角色"; - } + router.replace({ path: "/system/roleEdit" }); + // dialog.visible = true; + // if (roleId) { + // dialog.title = "修改角色"; + // RoleAPI.getFormData(roleId).then((data) => { + // Object.assign(formData, data); + // }); + // } else { + // dialog.title = "新增角色"; + // } } /** 角色保存提交 */ @@ -388,6 +410,6 @@ function handleRoleMenuSubmit() { } onMounted(() => { - handleQuery(); + //handleQuery(); }); diff --git a/src/views/system/user/edit.vue b/src/views/system/user/edit.vue new file mode 100644 index 0000000..abbbcfb --- /dev/null +++ b/src/views/system/user/edit.vue @@ -0,0 +1,168 @@ + + + + + 用户基本信息 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 正常 + 禁用 + + + + + + + + + 确 定 + 取 消 + + + + + + diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 8b20249..1056c36 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -1,200 +1,95 @@ - - - + + + - - - - - - - - - - - - - - - - - - - - - 搜索 - - - 重置 - - + + + + + + + 新增用户 + + + + + + + + 搜索 + + + 重置 + + + + - - - - - 新增 - 删除 - - - - 导入 - - - - 下载模板 - - 导入数据 - - - - 导出 - - + + + + + + + + {{ + scope.row.status == 1 ? "正常" : "禁用" + }} + + + + + + 重置密码 + 编辑 + + + - - - - - - - - - - - - - - {{ - scope.row.status == 1 ? "启用" : "禁用" - }} - - - - - - 重置密码 - 编辑 - 删除 - - - - - - - - + + + - + @@ -339,7 +230,7 @@ import RoleAPI from "@/api/role"; import { UserForm, UserQuery, UserPageVO } from "@/api/user/model"; import type { UploadInstance } from "element-plus"; import { genFileId } from "element-plus"; - +const router = useRouter(); const queryFormRef = ref(ElForm); // 查询表单 const userFormRef = ref(ElForm); // 用户表单 const uploadRef = ref(); // 上传组件 @@ -363,6 +254,27 @@ watch(dateTimeRange, (newVal) => { } }); +const tableData = [ + { + id: "2014", + username: "张三峰", + genderLabel: "男", + mobile: "181****6654", + status: "1", + createTime: "2024-05-03 12:12", + loginTime: "2024-05-03 12:12", + }, + { + id: "3044", + username: "李白", + genderLabel: "男", + mobile: "135****7788", + status: "0", + createTime: "2024-05-01 01:45", + loginTime: "2024-05-03 12:12", + }, +]; + // 弹窗对象 const dialog = reactive({ visible: false, @@ -408,15 +320,17 @@ const rules = reactive({ /** 查询 */ function handleQuery() { loading.value = true; - UserAPI.getPage(queryParams) - .then((data) => { - console.log("handleQuery", data); - pageData.value = data.list; - total.value = data.total; - }) - .finally(() => { - loading.value = false; - }); + ElMessage.success("查询成功"); + loading.value = false; + // UserAPI.getPage(queryParams) + // .then((data) => { + // console.log("handleQuery", data); + // pageData.value = data.list; + // total.value = data.total; + // }) + // .finally(() => { + // loading.value = false; + // }); } /** 重置查询 */ @@ -437,22 +351,19 @@ function handleSelectionChange(selection: any) { /** 重置密码 */ function resetPassword(row: { [key: string]: any }) { - ElMessageBox.prompt( - "请输入用户「" + row.username + "」的新密码", - "重置密码", - { - confirmButtonText: "确定", - cancelButtonText: "取消", - } - ).then(({ value }) => { - if (!value || value.length < 6) { - // 检查密码是否为空或少于6位 - ElMessage.warning("密码至少需要6位字符,请重新输入"); - return false; - } - UserAPI.updatePassword(row.id, value).then(() => { - ElMessage.success("密码重置成功,新密码是:" + value); - }); + ElMessageBox.prompt("请输入用户「" + row.username + "」的新密码", "重置密码", { + confirmButtonText: "确定", + cancelButtonText: "取消", + }).then(({ value }) => { + // if (!value || value.length < 6) { + // // 检查密码是否为空或少于6位 + // ElMessage.warning("密码至少需要6位字符,请重新输入"); + // return false; + // } + // UserAPI.updatePassword(row.id, value).then(() => { + + // }); + ElMessage.success("密码重置成功,新密码是:" + value); }); } @@ -477,27 +388,28 @@ async function loadDeptOptions() { * @param id 用户ID */ async function openDialog(type: string, id?: number) { - dialog.visible = true; - dialog.type = type; + router.replace({ path: "/system/userEdit" }); + // dialog.visible = true; + // dialog.type = type; - if (dialog.type === "user-form") { - // 用户表单弹窗 - await loadDeptOptions(); - await loadRoleOptions(); - if (id) { - dialog.title = "修改用户"; - UserAPI.getFormData(id).then((data) => { - Object.assign(formData, { ...data }); - }); - } else { - dialog.title = "新增用户"; - } - } else if (dialog.type === "user-import") { - // 用户导入弹窗 - dialog.title = "导入用户"; - dialog.width = 600; - loadDeptOptions(); - } + // if (dialog.type === "user-form") { + // // 用户表单弹窗 + // await loadDeptOptions(); + // await loadRoleOptions(); + // if (id) { + // dialog.title = "修改用户"; + // UserAPI.getFormData(id).then((data) => { + // Object.assign(formData, { ...data }); + // }); + // } else { + // dialog.title = "新增用户"; + // } + // } else if (dialog.type === "user-import") { + // // 用户导入弹窗 + // dialog.title = "导入用户"; + // dialog.width = 600; + // loadDeptOptions(); + // } } /** @@ -647,6 +559,6 @@ function handleExport() { } onMounted(() => { - handleQuery(); + //handleQuery(); });