diff --git a/src/pages/calcTable/index.tsx b/src/pages/calcTable/index.tsx index bf37350..f1b3618 100644 --- a/src/pages/calcTable/index.tsx +++ b/src/pages/calcTable/index.tsx @@ -74,6 +74,7 @@ const Index: FunctionComponent = (props) => { setPageInfo(pageInfo); setDataSource(dataSource); setSelectedRowKeys(selectedRowKeys); + editItemList.current = []; setColumns([...convertColumns(_.map(columns, o => ({ ...o, i18n: i18nRes }))), { title: i18nRes["操作"], dataIndex: "operate", fixed: "right", width: 120, render: (__, record) => () @@ -251,25 +252,28 @@ const EditableCell: React.FC = (props) => { setEditing(!editing); form.setFieldsValue({ [dataIndex]: record[dataIndex] }); }; - const save = async () => { + const save = _.debounce(async () => { try { let values = await form.validateFields(); if (record[`${_.keys(values)[0]}_type`] === "number") { - values = { ...values, [_.keys(values)[0]]: toDecimal_n(_.get(values, _.keys(values)[0]), restProps?.pattern) }; + values = { + ...values, + [_.keys(values)[0]]: !_.isNil(_.get(values, _.keys(values)[0])) ? toDecimal_n(_.get(values, _.keys(values)[0]), restProps?.pattern) : toDecimal_n(0, restProps?.pattern) + }; } - toggleEdit(); handleSave?.({ ...record, ...values }); } catch (errInfo) { console.log("Save failed:", errInfo); } - }; + }, 500); let childNode = children; if (editable) { childNode = editing ? ( {record[`${dataIndex}_type`] === "number" ? - : - } + : + } ) : ( // record[dataIndex]