|
@@ -11,7 +11,7 @@
|
|
|
showNumber: 3
|
|
showNumber: 3
|
|
|
}"
|
|
}"
|
|
|
:table="{
|
|
:table="{
|
|
|
- actionBar: { buttons, type: 'link', width: 180, showNumber: 2 },
|
|
|
|
|
|
|
+ actionBar: { buttons, type: 'link', width: 180, showNumber: 3 },
|
|
|
adaptive: { offsetBottom: 50 },
|
|
adaptive: { offsetBottom: 50 },
|
|
|
onSelectionChange: handleSelect,
|
|
onSelectionChange: handleSelect,
|
|
|
onFormChange: handleTableChange,
|
|
onFormChange: handleTableChange,
|
|
@@ -63,7 +63,11 @@
|
|
|
}"
|
|
}"
|
|
|
:dialog="{ title: '分配数据权限', width: 600, confirmLoading }"
|
|
:dialog="{ title: '分配数据权限', width: 600, confirmLoading }"
|
|
|
@confirm="handlePermissionSubmit"
|
|
@confirm="handlePermissionSubmit"
|
|
|
- />
|
|
|
|
|
|
|
+ >
|
|
|
|
|
+ <template #plus-field-deptIds>
|
|
|
|
|
+ <dept-tree ref="deptRef" v-model="form.deptIds" />
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </PlusDialogForm>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
@@ -101,11 +105,16 @@ import {
|
|
|
} from "@/api/system/role";
|
|
} from "@/api/system/role";
|
|
|
import MenuTree from "@/views/system/role/components/menuTree.vue";
|
|
import MenuTree from "@/views/system/role/components/menuTree.vue";
|
|
|
import { getMenuListTreeSelect } from "@/api/system/menu";
|
|
import { getMenuListTreeSelect } from "@/api/system/menu";
|
|
|
|
|
+import DeptTree from "@/views/system/role/components/deptTree.vue";
|
|
|
|
|
+import { useRouter } from "vue-router";
|
|
|
|
|
+import { useMultiTagsStoreHook } from "@/store/modules/multiTags";
|
|
|
|
|
|
|
|
defineOptions({
|
|
defineOptions({
|
|
|
name: "Role"
|
|
name: "Role"
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
+const router = useRouter();
|
|
|
|
|
+
|
|
|
onMounted(async () => {
|
|
onMounted(async () => {
|
|
|
await getDeptList();
|
|
await getDeptList();
|
|
|
});
|
|
});
|
|
@@ -221,9 +230,8 @@ const tableConfig: PlusColumn[] = [
|
|
|
endPlaceholder: "结束日期",
|
|
endPlaceholder: "结束日期",
|
|
|
style: { width: "100%" },
|
|
style: { width: "100%" },
|
|
|
unlinkPanels: true,
|
|
unlinkPanels: true,
|
|
|
- format: "YYYY-MM-DD"
|
|
|
|
|
|
|
+ format: "YYYY-MM-DD HH:mm:ss"
|
|
|
},
|
|
},
|
|
|
- hideInTable: true,
|
|
|
|
|
colProps: { span: 16 }
|
|
colProps: { span: 16 }
|
|
|
}
|
|
}
|
|
|
];
|
|
];
|
|
@@ -242,6 +250,7 @@ interface State {
|
|
|
businessType: string;
|
|
businessType: string;
|
|
|
deptId: number;
|
|
deptId: number;
|
|
|
menuIds: number[];
|
|
menuIds: number[];
|
|
|
|
|
+ deptIds: number[];
|
|
|
remark: string;
|
|
remark: string;
|
|
|
roleKey: string;
|
|
roleKey: string;
|
|
|
roleName: string;
|
|
roleName: string;
|
|
@@ -263,6 +272,7 @@ const state = reactive<State>({
|
|
|
businessType: "",
|
|
businessType: "",
|
|
|
deptId: null,
|
|
deptId: null,
|
|
|
menuIds: [],
|
|
menuIds: [],
|
|
|
|
|
+ deptIds: [],
|
|
|
remark: "",
|
|
remark: "",
|
|
|
roleKey: "",
|
|
roleKey: "",
|
|
|
roleName: "",
|
|
roleName: "",
|
|
@@ -445,6 +455,7 @@ const handleCreate = (): void => {
|
|
|
businessType: "",
|
|
businessType: "",
|
|
|
deptId: null,
|
|
deptId: null,
|
|
|
menuIds: [],
|
|
menuIds: [],
|
|
|
|
|
+ deptIds: [],
|
|
|
remark: "",
|
|
remark: "",
|
|
|
roleKey: "",
|
|
roleKey: "",
|
|
|
roleName: "",
|
|
roleName: "",
|
|
@@ -545,7 +556,7 @@ const handlePermissionSubmit = async (values: FieldValues) => {
|
|
|
if (res.code === 200) {
|
|
if (res.code === 200) {
|
|
|
ElMessage.success("修改成功");
|
|
ElMessage.success("修改成功");
|
|
|
confirmLoading.value = false;
|
|
confirmLoading.value = false;
|
|
|
- dialogVisible.value = false;
|
|
|
|
|
|
|
+ dialogPermissionVisible.value = false;
|
|
|
refresh();
|
|
refresh();
|
|
|
} else {
|
|
} else {
|
|
|
ElMessage.error(res.msg);
|
|
ElMessage.error(res.msg);
|
|
@@ -574,23 +585,21 @@ buttons.value = [
|
|
|
text: "修改",
|
|
text: "修改",
|
|
|
code: "edit",
|
|
code: "edit",
|
|
|
// props v0.1.16 版本新增函数类型
|
|
// props v0.1.16 版本新增函数类型
|
|
|
- props: {
|
|
|
|
|
- type: "primary"
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ props: { type: "primary" },
|
|
|
|
|
+ show: (row: any) => row.roleKey !== "admin"
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
// 删除
|
|
// 删除
|
|
|
text: "删除",
|
|
text: "删除",
|
|
|
code: "delete",
|
|
code: "delete",
|
|
|
- props: { type: "danger" }
|
|
|
|
|
|
|
+ props: { type: "danger" },
|
|
|
|
|
+ show: (row: any) => row.roleKey !== "admin"
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
text: "数据权限",
|
|
text: "数据权限",
|
|
|
- code: "dataPermission"
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- text: "分配用户",
|
|
|
|
|
- code: "assignUser"
|
|
|
|
|
|
|
+ code: "dataPermission",
|
|
|
|
|
+ props: { type: "primary" },
|
|
|
|
|
+ show: (row: any) => row.roleKey !== "admin"
|
|
|
}
|
|
}
|
|
|
];
|
|
];
|
|
|
|
|
|
|
@@ -606,9 +615,6 @@ const handleTableOption = ({ row, buttonRow }: ButtonsCallBackParams): void => {
|
|
|
case "dataPermission":
|
|
case "dataPermission":
|
|
|
handleDataPermission(row.roleId);
|
|
handleDataPermission(row.roleId);
|
|
|
break;
|
|
break;
|
|
|
- case "assignUser":
|
|
|
|
|
- handleAssignUser(row.roleId);
|
|
|
|
|
- break;
|
|
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
@@ -641,15 +647,13 @@ const handleDelete = (id: string) => {
|
|
|
const handleDataPermission = async (id: string) => {
|
|
const handleDataPermission = async (id: string) => {
|
|
|
console.log(id);
|
|
console.log(id);
|
|
|
let res = await getSystemRoleById(id);
|
|
let res = await getSystemRoleById(id);
|
|
|
|
|
+ let res1 = await getSystemRoleDeptTree(id);
|
|
|
form.value = res.data;
|
|
form.value = res.data;
|
|
|
|
|
+ form.value.deptIds = res1.checkedKeys;
|
|
|
state.isCreate = false;
|
|
state.isCreate = false;
|
|
|
state.dialogPermissionVisible = true;
|
|
state.dialogPermissionVisible = true;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-const handleAssignUser = (id: string) => {
|
|
|
|
|
- console.log(id);
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
const { form, confirmLoading, rules, dialogVisible, dialogPermissionVisible } =
|
|
const { form, confirmLoading, rules, dialogVisible, dialogPermissionVisible } =
|
|
|
toRefs(state);
|
|
toRefs(state);
|
|
|
</script>
|
|
</script>
|