refactor(tenant): refine menu scope boundaries and document plan/tenant menu design

This commit is contained in:
Ray.Hao
2026-01-25 11:15:59 +08:00
parent 3879105e15
commit 3f8393813b
20 changed files with 959 additions and 158 deletions

View File

@@ -185,17 +185,6 @@
<el-input v-model="formData.nickname" placeholder="请输入用户昵称" />
</el-form-item>
<el-form-item v-if="canManageTenantScope" label="租户身份" prop="tenantScope">
<el-select v-model="formData.tenantScope" placeholder="请选择租户身份">
<el-option
v-for="item in tenantScopeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="所属部门" prop="deptId">
<el-tree-select
v-model="formData.deptId"
@@ -268,7 +257,6 @@ import type { UserForm, UserQueryParams, UserItem } from "@/types/api";
// ==================== 3.5 工具函数 ====================
import { downloadFile, VALIDATORS } from "@/utils";
import { hasPerm } from "@/utils/auth";
// ==================== 4. API 服务 ====================
import UserAPI from "@/api/system/user";
import DeptAPI from "@/api/system/dept";
@@ -324,7 +312,6 @@ const dialogState = reactive({
// 初始表单数据
const initialFormData: UserForm = {
status: CommonStatus.ENABLED,
tenantScope: undefined,
};
// 表单数据
@@ -344,19 +331,6 @@ const importDialogVisible = ref(false);
*/
const drawerSize = computed(() => (appStore.device === DeviceEnum.DESKTOP ? "600px" : "90%"));
const isPlatformUser = computed(() => {
return (userStore.userInfo?.tenantScope || "").toUpperCase() === "PLATFORM";
});
const canManageTenantScope = computed(
() => isPlatformUser.value && hasPerm("sys:tenant:switch", "button")
);
const tenantScopeOptions = [
{ label: "平台", value: "PLATFORM" },
{ label: "租户", value: "TENANT" },
];
// ==================== 表单验证规则 ====================
const rules = reactive({
@@ -471,13 +445,6 @@ async function handleOpenDialog(id?: string): Promise<void> {
dialogState.title = "新增用户";
dialogState.mode = DialogMode.CREATE;
}
// 仅平台用户可设置租户身份;无权限时避免提交该字段
if (canManageTenantScope.value) {
formData.tenantScope = formData.tenantScope || "TENANT";
} else {
formData.tenantScope = undefined;
}
}
/**