|
|
@@ -1,5 +1,5 @@
|
|
|
<template>
|
|
|
- <el-drawer :title="title" v-model="drawerOpened" @close="reset">
|
|
|
+ <el-drawer :title="title" v-model="drawerOpened" @close="clear">
|
|
|
<el-form label-position="left" label-width="80px" :model="formData" :rules="formRules" ref="formInstance">
|
|
|
<el-form-item label="角色名称" prop="roleName">
|
|
|
<el-input placeholder="角色名称" v-model="formData.roleName" />
|
|
|
@@ -48,17 +48,16 @@
|
|
|
const funcCardInstance = ref<InstanceType<typeof PermissioTreeCard>>();
|
|
|
|
|
|
let initialPermissions: AssignedPermissions | null = null;
|
|
|
-
|
|
|
- // 表单相关
|
|
|
- const defaultFormData = (): RoleForm => ({
|
|
|
+ const emptyValue = {
|
|
|
id: null,
|
|
|
roleName: '',
|
|
|
remark: '',
|
|
|
- cameraIds: [],
|
|
|
menuIds: [],
|
|
|
permIds: [],
|
|
|
- });
|
|
|
- const formData = reactive<RoleForm>(defaultFormData());
|
|
|
+ };
|
|
|
+ // 表单相关
|
|
|
+ let defaultFormData: RoleForm = { ...emptyValue };
|
|
|
+ let formData = reactive<RoleForm>(defaultFormData);
|
|
|
const formRules: FormRules = {
|
|
|
roleName: { required: true, trigger: 'blur', message: '请填写角色名称' },
|
|
|
remark: {},
|
|
|
@@ -73,6 +72,9 @@
|
|
|
*/
|
|
|
const open = (role?: Role) => {
|
|
|
if (role) {
|
|
|
+ defaultFormData.id = role.id;
|
|
|
+ defaultFormData.roleName = role.roleName;
|
|
|
+ defaultFormData.remark = role.remark;
|
|
|
formData.id = role.id;
|
|
|
formData.roleName = role.roleName;
|
|
|
formData.remark = role.remark;
|
|
|
@@ -80,10 +82,13 @@
|
|
|
|
|
|
// TODO: 获取已拥有的权限
|
|
|
} else {
|
|
|
+ formData.id = null;
|
|
|
+ formData.roleName = '';
|
|
|
+ formData.remark = '';
|
|
|
+ defaultFormData = { ...emptyValue };
|
|
|
menuCardInstance.value?.setAssignedPermissions([]);
|
|
|
funcCardInstance.value?.setAssignedPermissions([]);
|
|
|
}
|
|
|
-
|
|
|
drawerOpened.value = true;
|
|
|
};
|
|
|
|
|
|
@@ -99,7 +104,12 @@
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- const displayAssignedPermissions = (result: AssignedPermissions) => {
|
|
|
+ const displayAssignedPermissions = (result: AssignedPermissions | null) => {
|
|
|
+ if (!result) {
|
|
|
+ menuCardInstance.value?.setAssignedPermissions([]);
|
|
|
+ funcCardInstance.value?.setAssignedPermissions([]);
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (result?.menuIds?.length) {
|
|
|
menuCardInstance.value?.setAssignedPermissions(result.menuIds);
|
|
|
} else {
|
|
|
@@ -114,14 +124,20 @@
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
- * 重置表单,回复为修改之前的默认值
|
|
|
+ * 重置表单,恢复为修改之前的默认值
|
|
|
*/
|
|
|
const reset = () => {
|
|
|
formInstance.value?.resetFields();
|
|
|
- Object.assign(formData, defaultFormData());
|
|
|
+ Object.assign(formData, defaultFormData);
|
|
|
displayAssignedPermissions(initialPermissions!);
|
|
|
};
|
|
|
|
|
|
+ const clear = () => {
|
|
|
+ formInstance.value?.resetFields();
|
|
|
+ formData = Object.assign(formData, emptyValue);
|
|
|
+ displayAssignedPermissions(null);
|
|
|
+ };
|
|
|
+
|
|
|
/**
|
|
|
* 提交。创建和编辑统一
|
|
|
*/
|