【issues/1165】解决canResize为true时第一行校验不过 ---

pull/1207/merge
JEECG 2024-04-25 16:29:17 +08:00
parent d418e7d3e5
commit d183fc5274
2 changed files with 41 additions and 7 deletions

View File

@ -336,7 +336,20 @@
function initCbs(cbs: 'submitCbs' | 'validCbs' | 'cancelCbs', handle: Fn) { function initCbs(cbs: 'submitCbs' | 'validCbs' | 'cancelCbs', handle: Fn) {
if (props.record) { if (props.record) {
/* eslint-disable */ /* eslint-disable */
isArray(props.record[cbs]) ? props.record[cbs]?.push(handle) : (props.record[cbs] = [handle]); // update-begin--author:liaozhiyang---date:20240424---forissues/1165canResizetrue
const { dataIndex, key } = props.column;
const field: any = dataIndex || key;
if (isArray(props.record[cbs])) {
const findItem = props.record[cbs]?.find((item) => item[field]);
if (findItem) {
findItem[field] = handle;
} else {
props.record[cbs]?.push({ [field]: handle });
}
} else {
props.record[cbs] = [{ [field]: handle }];
}
// update-end--author:liaozhiyang---date:20240424---forissues/1165canResizetrue
} }
} }
@ -351,14 +364,25 @@
} }
/* eslint-disable */ /* eslint-disable */
props.record.onCancelEdit = () => { props.record.onCancelEdit = () => {
isArray(props.record?.cancelCbs) && props.record?.cancelCbs.forEach((fn) => fn()); // update-begin--author:liaozhiyang---date:20240424---forissues/1165canResizetrue
isArray(props.record?.cancelCbs) &&
props.record?.cancelCbs.forEach((item) => {
const [fn] = Object.values(item);
fn();
});
// update-end--author:liaozhiyang---date:20240424---forissues/1165canResizetrue
}; };
/* eslint-disable */ /* eslint-disable */
props.record.onSubmitEdit = async () => { props.record.onSubmitEdit = async () => {
if (isArray(props.record?.submitCbs)) { if (isArray(props.record?.submitCbs)) {
if (!props.record?.onValid?.()) return; if (!props.record?.onValid?.()) return;
const submitFns = props.record?.submitCbs || []; const submitFns = props.record?.submitCbs || [];
submitFns.forEach((fn) => fn(false, false)); // update-begin--author:liaozhiyang---date:20240424---forissues/1165canResizetrue
submitFns.forEach((item) => {
const [fn] = Object.values(item);
fn(false, false);
});
// update-end--author:liaozhiyang---date:20240424---forissues/1165canResizetrue
table.emit?.('edit-row-end'); table.emit?.('edit-row-end');
return true; return true;
} }

View File

@ -15,7 +15,13 @@ export function renderEditCell(column: BasicColumn) {
return ({ text: value, record, index }: Params) => { return ({ text: value, record, index }: Params) => {
toRaw(record).onValid = async () => { toRaw(record).onValid = async () => {
if (isArray(record?.validCbs)) { if (isArray(record?.validCbs)) {
const validFns = (record?.validCbs || []).map((fn) => fn()); // update-begin--author:liaozhiyang---date:20240424---for【issues/1165】解决canResize为true时第一行校验不过
const validFns = (record?.validCbs || []).map((item) => {
const [fn] = Object.values(item);
// @ts-ignore
return fn();
});
// update-end--author:liaozhiyang---date:20240424---for【issues/1165】解决canResize为true时第一行校验不过
const res = await Promise.all(validFns); const res = await Promise.all(validFns);
return res.every((item) => !!item); return res.every((item) => !!item);
} else { } else {
@ -53,6 +59,10 @@ export function renderEditCell(column: BasicColumn) {
}; };
} }
interface Cbs {
[key: string]: Fn;
}
export type EditRecordRow<T = Recordable> = Partial< export type EditRecordRow<T = Recordable> = Partial<
{ {
onEdit: (editable: boolean, submit?: boolean) => Promise<boolean>; onEdit: (editable: boolean, submit?: boolean) => Promise<boolean>;
@ -60,9 +70,9 @@ export type EditRecordRow<T = Recordable> = Partial<
editable: boolean; editable: boolean;
onCancel: Fn; onCancel: Fn;
onSubmit: Fn; onSubmit: Fn;
submitCbs: Fn[]; submitCbs: Cbs[];
cancelCbs: Fn[]; cancelCbs: Cbs[];
validCbs: Fn[]; validCbs: Cbs[];
editValueRefs: Recordable<Ref>; editValueRefs: Recordable<Ref>;
} & T } & T
>; >;