Commit b3f658ea authored by GuanHua's avatar GuanHua

fix: 解决输入4位开票数量也可以保存的问题

parent 0fe695f1
......@@ -12,6 +12,7 @@ export interface ProductTableCellProps {
dataIndex: string;
record: any;
handleSave: (record: any) => Promise<any>;
handleError: () => void;
forceEdit: boolean,
formItem: string,
formItemProps: any,
......@@ -43,6 +44,7 @@ export const ProductTableCell:React.FC<ProductTableCellProps> = ({
dataIndex,
record,
handleSave,
handleError,
forceEdit,
formItem,
formItemProps={},
......@@ -55,6 +57,7 @@ export const ProductTableCell:React.FC<ProductTableCellProps> = ({
const values = await form.validateFields();
handleSave({ ...record, ...values });
} catch (errInfo) {
handleError()
console.log('Save failed', errInfo);
}
};
......
......@@ -26,6 +26,7 @@ import moment from 'moment';
import UploadInvoice from '../components/UploadInvoice'
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { PATTERN_MAPS } from '@/constants/regExp';
const { onFieldValueChange$ } = FormEffectHooks
const addSchemaAction = createFormActions();
......@@ -56,7 +57,7 @@ const InvoiceForm: React.FC<InvoiceFormProps> = (props) => {
});
const [invoiceDrawerVisible, setInvoiceDrawerVisible] = useState<boolean>(false); // 选择单据
const [statementsDrawerVisible, setStatementsDrawerVisible] = useState<boolean>(false); // 选择对账单抽屉
const { invoiceDetailColumns, invoiceDetailComponents } = useInvoiceDetailTable(addSchemaAction, type === OperateType.detail ? 'detail' : 'edit')
const { invoiceDetailColumns, invoiceDetailComponents, canSave } = useInvoiceDetailTable(addSchemaAction, type === OperateType.detail ? 'detail' : 'edit')
const [current] = useState<number>(1)
const [pageSize] = useState<number>(20)
......@@ -268,6 +269,11 @@ const InvoiceForm: React.FC<InvoiceFormProps> = (props) => {
const checkInvoiceDetail = (values: InvoiceFromValuesType): boolean => {
for (const item of values.rows) {
console.log(canSave, 'canSave')
if (!canSave) {
return false
}
if (Number(item.currentNumber) > Number(item.treatReconciliationQuantity) ) {
message.error(intl.formatMessage({
id: 'balance.invoice.count.tip',
......
......@@ -23,6 +23,7 @@ export const sortByKey = (params) => {
* @param relevanceRef 关联报价商品抽屉的ref
*/
export const useInvoiceDetailTable = (ctx: ISchemaFormActions | ISchemaFormAsyncActions, type: 'edit' | 'detail') => {
const [canSave, setCanSave] = useState<boolean>(true)
const invoiceDetailComponents = {
body: {
......@@ -33,6 +34,7 @@ export const useInvoiceDetailTable = (ctx: ISchemaFormActions | ISchemaFormAsync
const handleSave = (row) => {
return new Promise((resolve) => {
setCanSave(true)
const newData = [...ctx.getFieldValue('rows')];
const index = newData.findIndex(item => row.id === item.id);
const item = {...row};
......@@ -46,6 +48,10 @@ export const useInvoiceDetailTable = (ctx: ISchemaFormActions | ISchemaFormAsync
})
};
const handleError = () => {
setCanSave(false)
}
const handleDelete = (row) => {
let newData = [...ctx.getFieldValue('rows')];
newData = newData.filter((item) => item.id !== row.id)
......@@ -105,7 +111,8 @@ export const useInvoiceDetailTable = (ctx: ISchemaFormActions | ISchemaFormAsync
title: col.title,
formItem: col.formItem,
// formItemProps: col.formItemProps,
handleSave
handleSave,
handleError,
}),
};
})
......@@ -113,5 +120,6 @@ export const useInvoiceDetailTable = (ctx: ISchemaFormActions | ISchemaFormAsync
return {
invoiceDetailColumns: invoiceMergeColumns,
invoiceDetailComponents,
canSave
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment