【issues/1165】解决canResize为true时第一行校验不过 ---
parent
d418e7d3e5
commit
d183fc5274
|
@ -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---for:【issues/1165】解决canResize为true时第一行校验不过
|
||||||
|
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---for:【issues/1165】解决canResize为true时第一行校验不过
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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---for:【issues/1165】解决canResize为true时第一行校验不过
|
||||||
|
isArray(props.record?.cancelCbs) &&
|
||||||
|
props.record?.cancelCbs.forEach((item) => {
|
||||||
|
const [fn] = Object.values(item);
|
||||||
|
fn();
|
||||||
|
});
|
||||||
|
// update-end--author:liaozhiyang---date:20240424---for:【issues/1165】解决canResize为true时第一行校验不过
|
||||||
};
|
};
|
||||||
/* 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---for:【issues/1165】解决canResize为true时第一行校验不过
|
||||||
|
submitFns.forEach((item) => {
|
||||||
|
const [fn] = Object.values(item);
|
||||||
|
fn(false, false);
|
||||||
|
});
|
||||||
|
// update-end--author:liaozhiyang---date:20240424---for:【issues/1165】解决canResize为true时第一行校验不过
|
||||||
table.emit?.('edit-row-end');
|
table.emit?.('edit-row-end');
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
>;
|
>;
|
||||||
|
|
Loading…
Reference in New Issue