fix(产品需求): 完善产品需求的诸多细节。

This commit is contained in:
dk
2026-05-09 18:15:10 +08:00
parent 5947157f89
commit 28c47b14a3
13 changed files with 337 additions and 245 deletions

View File

@@ -22,7 +22,8 @@ import { useBoolean } from '@sa/hooks';
import {
fetchBatchDeleteUserManagementRelation,
fetchDeleteUserManagementRelation,
fetchGetUserListByDeptId, fetchGetUserManagementRelation,
fetchGetUserListByDeptId,
fetchGetUserManagementRelation,
fetchGetUserManagementRelationQuery,
fetchGetUserManagementRelationTree
} from '@/service/api';
@@ -358,6 +359,12 @@ async function handleSearch() {
relationTreeRef.value?.setCheckedKeys([]);
}
/**
* 保存当前展开的节点 ID 列表
* 用于在刷新数据后恢复展开状态
*/
const expandedNodeKeys = ref<string[]>([]);
/**
* 重置搜索
*
@@ -365,10 +372,10 @@ async function handleSearch() {
*/
async function resetSearchParams() {
Object.assign(searchParams, getInitSearchParams());
// 清空保存的展开状态,让 reloadTreeData 后展开前两层
expandedNodeKeys.value = [];
await reloadTreeData();
}
@@ -503,12 +510,6 @@ function handleNodeCheck(checkedData: any, checkedInfo: any) {
.filter((id: string | null): id is string => Boolean(id));
}
/**
* 保存当前展开的节点 ID 列表
* 用于在刷新数据后恢复展开状态
*/
const expandedNodeKeys = ref<string[]>([]);
/**
* 保存当前展开的节点状态
*/
@@ -658,7 +659,7 @@ onMounted(async () => {
/>
<!-- 树形卡片区域 -->
<ElCard class="flex-1-hidden card-wrapper min-h-0">
<ElCard class="min-h-0 flex-1-hidden card-wrapper">
<template #header>
<div class="flex items-center justify-between gap-12px">
<div class="flex items-center gap-10px">

View File

@@ -82,12 +82,12 @@ const isEdit = computed(() => props.operateType === 'edit');
/**
* 加载候选下级用户列表
*
*
* 获取所有还未绑定上级的用户,用于新增时的下级用户下拉框
*/
async function loadCandidateSubordinateUsers() {
const { error, data } = await fetchGetCandidateSubordinateUsers();
if (error) {
candidateSubordinateUsers.value = [];
return;
@@ -98,7 +98,7 @@ async function loadCandidateSubordinateUsers() {
/**
* 计算下级用户下拉框选项
*
*
* 新增模式使用候选下级用户列表,编辑模式使用所有用户列表
*/
const subordinateUserOptions = computed<Api.SystemManage.UserSimple[]>(() => {
@@ -318,7 +318,7 @@ async function handleSubmit() {
watch(visible, async value => {
if (value) {
initModel();
// 如果是新增模式,加载候选下级用户(每次打开都重新加载,避免缓存)
if (!isEdit.value) {
await loadCandidateSubordinateUsers();