审核价格: 单行审核: 取消每次从后端更新数据, 仅前端响应

perf/export-docx
Lei OT 1 year ago
parent c6739e5279
commit 9491ada91a

@ -5,7 +5,7 @@ import { useProductsTypes, useProductsAuditStatesMapVal } from '@/hooks/useProdu
import SecondHeaderWrapper from '@/components/SecondHeaderWrapper'; import SecondHeaderWrapper from '@/components/SecondHeaderWrapper';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import useProductsStore, { postProductsQuoteAuditAction, } from '@/stores/Products/Index'; import useProductsStore, { postProductsQuoteAuditAction, } from '@/stores/Products/Index';
import { isEmpty } from '@/utils/commons'; import { cloneDeep, isEmpty } from '@/utils/commons';
import useAuthStore from '@/stores/Auth'; import useAuthStore from '@/stores/Auth';
import RequireAuth from '@/components/RequireAuth'; import RequireAuth from '@/components/RequireAuth';
// import PrintContractPDF from './PrintContractPDF'; // import PrintContractPDF from './PrintContractPDF';
@ -80,15 +80,22 @@ const PriceTable = ({ productType, dataSource, refresh }) => {
const { message, notification } = App.useApp(); const { message, notification } = App.useApp();
const stateMapVal = useProductsAuditStatesMapVal(); const stateMapVal = useProductsAuditStatesMapVal();
const [renderData, setRenderData] = useState(dataSource);
// console.log(dataSource); // console.log(dataSource);
const handleAuditPriceItem = (state, row) => { const handleAuditPriceItem = (state, row, rowIndex) => {
postProductsQuoteAuditAction(state, { id: row.id, travel_agency_id: activeAgency.travel_agency_id }) postProductsQuoteAuditAction(state, { id: row.id, travel_agency_id: activeAgency.travel_agency_id })
.then((json) => { .then((json) => {
if (json.errcode === 0) { if (json.errcode === 0) {
message.success(json.errmsg); message.success(json.errmsg);
if (typeof refresh === 'function') { if (typeof refresh === 'function') {
refresh(); // refresh(); // debug: ,
// const newData = structuredClone(renderData);
const newData = cloneDeep(renderData);
newData.splice(rowIndex, 1, {...row, audit_state_id: state, });
setRenderData(newData);
} }
} }
}) })
@ -142,18 +149,18 @@ const PriceTable = ({ productType, dataSource, refresh }) => {
{ {
title: '', title: '',
key: 'action', key: 'action',
render: (_, r) => render: (_, r, ri) =>
r.audit_state_id <= 0 ? ( (Number(r.audit_state_id)) === 0 ? (
<RequireAuth subject={PERM_PRODUCTS_OFFER_AUDIT}> <RequireAuth subject={PERM_PRODUCTS_OFFER_AUDIT}>
<Space> <Space>
<Button onClick={() => handleAuditPriceItem('2', r)}></Button> <Button onClick={() => handleAuditPriceItem('2', r, ri)}></Button>
<Button onClick={() => handleAuditPriceItem('3', r)}></Button> <Button onClick={() => handleAuditPriceItem('3', r, ri)}></Button>
</Space> </Space>
</RequireAuth> </RequireAuth>
) : null, ) : null,
}, },
]; ];
return <Table size={'small'} className='border-collapse' rowHoverable={false} rowClassName={rowStyle} pagination={false} {...{ columns, dataSource }} rowKey={(r) => r.id} />; return <Table size={'small'} className='border-collapse' rowHoverable={false} rowClassName={rowStyle} pagination={false} {...{ columns, }} dataSource={renderData} rowKey={(r) => r.id} />;
}; };
/** /**

Loading…
Cancel
Save