This commit is contained in:
2025-03-11 18:09:08 +08:00
4 changed files with 30 additions and 10 deletions

View File

@@ -45,6 +45,9 @@
</template>
<script setup>
import { useUserStore } from "@/store/modules/user";
const shopUser = useUserStore();
import MenuAPI from "@/api/account/menu";
const modelValue = defineModel("modelValue", {
@@ -94,7 +97,9 @@ function returnMenu(menu) {
}
// 获取所有的菜单
async function getMenuPermOptions() {
let arr = await MenuAPI.getRoutes();
console.log(shopUser.userInfo);
let arr =
shopUser.userInfo.account === "admin" ? await MenuAPI.getList() : await MenuAPI.getRoutes();
menuPermOptions.value = returnMenu(arr);
}
getMenuPermOptions();
@@ -112,6 +117,7 @@ function getPerms() {
return permTreeRef.value.getCheckedKeys();
}
function reset() {
console.log("reset");
permTreeRef.value.setCheckedKeys([]);
}
function setChecked(checkedMenuIds) {

View File

@@ -20,7 +20,7 @@
<el-card shadow="never">
<div class="mb-10px">
<el-button type="success" icon="plus" @click="handleOpenDialog()">新增</el-button>
<el-button type="primary" icon="plus" @click="handleOpenDialog()">新增</el-button>
<el-button type="danger" :disabled="ids.length === 0" icon="delete" @click="handleDelete()">
删除
</el-button>
@@ -190,6 +190,9 @@ defineOptions({
name: "Role",
inheritAttrs: false,
});
import { useUserStore } from "@/store/modules/user";
const shopUser = useUserStore();
import menuSelect from "./components/menus.vue";
import RoleApi, { SysRole, addRequest, getListRequest } from "@/api/account/role";
import MenuAPI, { type RouteVO } from "@/api/account/menu";
@@ -282,12 +285,12 @@ async function handleOpenDialog(row: SysRole) {
dialog.title = "修改角色";
//获取角色菜单列表
const data = await RoleApi.getMenu(row.id);
Object.assign(formData, row);
console.log(data);
Object.assign(formData, row);
formData.menuIdList = data;
setTimeout(() => {
refmenuSelect.value.setChecked(data);
}, 100);
}, 300);
console.log(formData);
} else {
dialog.title = "新增角色";
@@ -326,14 +329,13 @@ function handleSubmit() {
// 关闭弹窗
function handleCloseDialog() {
dialog.visible = false;
addRequestRef.value.resetFields();
addRequestRef.value.clearValidate();
refmenuSelect.value.reset();
formData.id = undefined;
formData.sort = 1;
formData.status = 1;
dialog.visible = false;
}
// 删除角色
@@ -383,7 +385,8 @@ function returnMenu(menu) {
// 获取所有的菜单
async function getMenuPermOptions() {
let arr = await MenuAPI.getRoutes();
let arr =
shopUser.userInfo.account === "admin" ? await MenuAPI.getList() : await MenuAPI.getRoutes();
menuPermOptions.value = returnMenu(arr);
}
getMenuPermOptions();
@@ -462,6 +465,15 @@ watch(permKeywords, (val) => {
permTreeRef.value!.filter(val);
});
watch(
() => assignPermDialogVisible.value,
(val) => {
if (!val) {
permTreeRef.value.setCheckedKeys([]);
}
}
);
function handlePermFilter(
value: string,
data: {