任务管理新增修改添加分工功能

This commit is contained in:
linxd
2025-06-27 11:38:36 +08:00
parent 527637cce3
commit db4533592f
15 changed files with 428 additions and 325 deletions

View File

@ -14,7 +14,10 @@ const { Search } = Input;
*/
interface EvaluateTaskPersonnelSelectorProps {
onSelect: (personnel: API.PersonnelItem[]) => void; // 选择确认后的回调函数
onClose: () => void; // 关闭回调函数
selectedPersonnel?: API.PersonnelItem[]; // 已选择的人员列表(用于回显)
filter?: boolean; // 是否过滤评价人员
filterUserIds?: string[]; // 过滤评价人员ID列表
}
/**
@ -32,7 +35,10 @@ interface EvaluateTaskPersonnelSelectorProps {
*/
const EvaluateTaskPersonnelSelector: React.FC<EvaluateTaskPersonnelSelectorProps> = ({
onSelect,
selectedPersonnel = []
selectedPersonnel = [],
filter = false,
filterUserIds = [],
onClose,
}) => {
// 搜索关键词
const [keyword, setKeyword] = useState<string>('');
@ -66,6 +72,8 @@ const EvaluateTaskPersonnelSelector: React.FC<EvaluateTaskPersonnelSelectorProps
pageSize: 100, // 获取足够多的数据
},
keyword: keyword || undefined,
filter,
userIds: filter ? filterUserIds : undefined,
};
const response = await getUserList(params);
@ -80,6 +88,7 @@ const EvaluateTaskPersonnelSelector: React.FC<EvaluateTaskPersonnelSelectorProps
userDept: user.userDept, // 用户部门
userDeptId: user.userDeptId, // 用户部门ID
position: '', // API中没有提供职位信息
isSelected: user.isSelected,
}));
setPersonnel(personnelData);
@ -119,6 +128,9 @@ const EvaluateTaskPersonnelSelector: React.FC<EvaluateTaskPersonnelSelectorProps
setSelectedKeys(selectedRowKeys as string[]);
};
const onCancel = () => {
onClose();
};
/**
* 处理确认选择
*/
@ -141,7 +153,7 @@ const EvaluateTaskPersonnelSelector: React.FC<EvaluateTaskPersonnelSelectorProps
title: '部门',
dataIndex: 'userDept',
key: 'userDept',
},
}
];
@ -160,9 +172,14 @@ const EvaluateTaskPersonnelSelector: React.FC<EvaluateTaskPersonnelSelectorProps
</div>
</div>
<Table
// 如果 isSelected = true 则禁用勾选
rowSelection={{
selectedRowKeys: selectedKeys,
onChange: handleSelectChange,
getCheckboxProps: (record) => ({
// 如果 isSelected = true 则禁用勾选
disabled: record.isSelected === true,
}),
}}
columns={columns}
dataSource={personnel}
@ -173,7 +190,7 @@ const EvaluateTaskPersonnelSelector: React.FC<EvaluateTaskPersonnelSelectorProps
/>
<div className="selector-footer">
<Space>
<Button onClick={() => setSelectedKeys([])}></Button>
<Button onClick={onCancel}></Button>
<Button type="primary" onClick={handleConfirm}>
</Button>