diff --git a/src/views/products/Detail/ProductInfo.jsx b/src/views/products/Detail/ProductInfo.jsx index d590071..43dbd45 100644 --- a/src/views/products/Detail/ProductInfo.jsx +++ b/src/views/products/Detail/ProductInfo.jsx @@ -45,9 +45,28 @@ const ProductInfo = ({ ...props }) => { const showExtras = topPerm && hasHT; // !isEmpty(editingProduct) && setExtrasVisible(showExtras); + + setLgcEdits({}); + setInfoEditStatus(''); return () => {}; }, [activeAgency, editingProduct]); + const [infoEditStatus, setInfoEditStatus] = useState(''); + const [lgcEdits, setLgcEdits] = useState({}); + const onValuesChange = (changedValues, forms) => { + // console.log('onValuesChange', changedValues); + if ('product_title' in changedValues) { + setInfoEditStatus('2'); + setLgcEdits({...lgcEdits, '2': {'edit_status': '2'}}); + } + if ('lgc_details_mapped' in changedValues) { + const lgc = Object.keys(changedValues.lgc_details_mapped)[0]; + setLgcEdits({...lgcEdits, [lgc]: {'edit_status': '2'}}); + } else { + setInfoEditStatus('2'); + } + }; + const onSave = async (err, values, forms) => { values.travel_agency_id = activeAgency.travel_agency_id; const copyNewProduct = structuredClone(newProductRecord); @@ -58,6 +77,7 @@ const ProductInfo = ({ ...props }) => { 'travel_agency_id': activeAgency.travel_agency_id, // "travel_agency_name": "", // "lastedit_changed": "", + "edit_status": infoEditStatus, }; const copyFields = pick(editingProduct.info, ['product_type_id']); // 'title', const readyToSubInfo = { ...copyNewProduct.info, ...editingProduct.info, title: editingProduct.info.product_title, ...values.info, ...copyFields, ...poster }; @@ -65,9 +85,15 @@ const ProductInfo = ({ ...props }) => { /** lgc_details */ const prevLgcDetailsMapped = editingProduct.lgc_details.reduce((r, c) => ({ ...r, [c.lgc]: c }), {}); - const mergedLgc = { ...prevLgcDetailsMapped, ...values.lgc_details_mapped }; + const mergedLgc = { ...prevLgcDetailsMapped, ...values.lgc_details_mapped, }; + for (const lgcKey in lgcEdits) { + if (Object.prototype.hasOwnProperty.call(lgcEdits, lgcKey)) { + const element = lgcEdits[lgcKey]; + mergedLgc[lgcKey].edit_status = element?.edit_status || ''; + } + } - // console.log(values); + // console.log(readyToSubInfo, "\n", mergedLgc); // return false; // debug: 0 /** 提交保存 */ setLoading(true); @@ -111,7 +137,7 @@ const ProductInfo = ({ ...props }) => { ) : ( <>