优化证明自动选中
This commit is contained in:
@ -14,6 +14,8 @@ const ChooseUser = props => {
|
|||||||
const commonAxios = creatMessageCommonAxios(messageApi);
|
const commonAxios = creatMessageCommonAxios(messageApi);
|
||||||
// 初始加载标记
|
// 初始加载标记
|
||||||
const [isInitialLoad, setIsInitialLoad] = useState(true);
|
const [isInitialLoad, setIsInitialLoad] = useState(true);
|
||||||
|
// 新增:用于存储当前选中的行ID(控制表格视觉选中状态)
|
||||||
|
const [selectedRowKeys, setSelectedRowKeys] = useState([]);
|
||||||
const columns = [
|
const columns = [
|
||||||
{
|
{
|
||||||
title: 'ID',
|
title: 'ID',
|
||||||
@ -46,27 +48,31 @@ const ChooseUser = props => {
|
|||||||
const [staffNumberPrefix, setStaffNumberPrefix] = useState("");
|
const [staffNumberPrefix, setStaffNumberPrefix] = useState("");
|
||||||
const [spinning, setSpinning] = useState(true);
|
const [spinning, setSpinning] = useState(true);
|
||||||
|
|
||||||
// 处理选中行逻辑
|
// 处理选中行逻辑(同时更新表格选中状态)
|
||||||
const handleRowSelect = (selectedRowKeys, selectedRows) => {
|
const handleRowSelect = (selectedRowKeys, selectedRows) => {
|
||||||
console.log(`选中行: ${selectedRowKeys}`, selectedRows);
|
console.log(`选中行: ${selectedRowKeys}`, selectedRows);
|
||||||
|
// 1. 更新按钮状态和请求参数
|
||||||
allowNext(selectedRows.length > 0);
|
allowNext(selectedRows.length > 0);
|
||||||
if (selectedRows.length > 0) {
|
if (selectedRows.length > 0) {
|
||||||
setRequest({ ...request, stuffNumber: selectedRows[0].staffNumber });
|
setRequest({ ...request, stuffNumber: selectedRows[0].staffNumber });
|
||||||
}
|
}
|
||||||
|
// 2. 更新表格选中状态(关键:让表格知道哪些行被选中)
|
||||||
|
setSelectedRowKeys(selectedRowKeys);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 行选择配置(使用selectedRowKeys控制选中状态)
|
||||||
const rowSelection = {
|
const rowSelection = {
|
||||||
onChange: handleRowSelect,
|
onChange: handleRowSelect,
|
||||||
|
selectedRowKeys: selectedRowKeys, // 绑定选中行ID数组
|
||||||
defaultSelectedRowKeys: () => [],
|
defaultSelectedRowKeys: () => [],
|
||||||
};
|
};
|
||||||
|
|
||||||
// 通用搜索函数
|
// 通用搜索函数(自动选中时同步更新表格状态)
|
||||||
const fetchStaffData = (staffNumber) => {
|
const fetchStaffData = (staffNumber) => {
|
||||||
if (dataFetchRef.current) return;
|
if (dataFetchRef.current) return;
|
||||||
dataFetchRef.current = true;
|
dataFetchRef.current = true;
|
||||||
|
|
||||||
setSpinning(true);
|
setSpinning(true);
|
||||||
// 仅在有工号时才拼接参数,否则查询全部
|
|
||||||
const params = staffNumber ? `&staffNumber=${staffNumber}` : '';
|
const params = staffNumber ? `&staffNumber=${staffNumber}` : '';
|
||||||
commonAxios.get(`/api/auth/query/registered?page=1&size=10${params}`)
|
commonAxios.get(`/api/auth/query/registered?page=1&size=10${params}`)
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
@ -82,7 +88,10 @@ const ChooseUser = props => {
|
|||||||
.then((list) => {
|
.then((list) => {
|
||||||
const fromPrint = searchParams.get('from') === 'print';
|
const fromPrint = searchParams.get('from') === 'print';
|
||||||
if (fromPrint && list.length === 1 && !autoProcessed) {
|
if (fromPrint && list.length === 1 && !autoProcessed) {
|
||||||
handleRowSelect([list[0].id], [list[0]]);
|
// 自动选中时,同步更新表格选中状态
|
||||||
|
const targetRowKey = [list[0].id];
|
||||||
|
handleRowSelect(targetRowKey, [list[0]]); // 触发选中逻辑
|
||||||
|
setSelectedRowKeys(targetRowKey); // 强制更新表格选中状态
|
||||||
setAutoProcessed(true);
|
setAutoProcessed(true);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user