From 666b8cffb7f417e9583e44f1a22b54199364cfa3 Mon Sep 17 00:00:00 2001 From: Lei OT Date: Wed, 17 Dec 2025 16:24:00 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BA=A7=E5=93=81=E7=AE=A1=E7=90=86:?= =?UTF-8?q?=20=E6=8F=90=E4=BA=A4=E6=97=B6,=20lastedit=5Fchanged=20?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E5=8C=85=E5=90=AB=E6=9C=AC=E6=AC=A1=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=9A=84=E8=AF=AD=E7=A7=8D=20ID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/products/Detail/ProductInfo.jsx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/views/products/Detail/ProductInfo.jsx b/src/views/products/Detail/ProductInfo.jsx index 33d234d..7691ebe 100644 --- a/src/views/products/Detail/ProductInfo.jsx +++ b/src/views/products/Detail/ProductInfo.jsx @@ -58,9 +58,10 @@ const ProductInfo = ({ ...props }) => { const [lgcEdits, setLgcEdits] = useState({}); // const [editChanged, setEditChanged] = useState({}); const [editKeys, setEditKeys] = useState([]); + const [editLgcKeys, setEditLgcKeys] = useState([]); const onValuesChange = (changedValues) => { - // console.log('onValuesChange', changedValues); + console.log('onValuesChange', changedValues); const changedKeys = objectMapper(changedValues, { 'city': 'city_id', 'dept': 'dept_id', 'product_title': 'title', 'lgc_details_mapped': 'lgc_details'}); setEditKeys(prev => unique([...prev, ...Object.keys(changedKeys)])); // const preValues = pick(editingProduct.info, editKeys); @@ -71,6 +72,7 @@ const ProductInfo = ({ ...props }) => { if ('lgc_details_mapped' in changedValues) { const lgc = Object.keys(changedValues.lgc_details_mapped)[0]; setLgcEdits({...lgcEdits, [lgc]: {'edit_status': '2'}}); + setEditLgcKeys([...editLgcKeys, ...Object.keys(changedValues.lgc_details_mapped)]) } else if ('quotation' in changedValues) { // 价格不改 edit_status } else { @@ -81,7 +83,9 @@ const ProductInfo = ({ ...props }) => { const onSave = async (err, values, forms) => { values.travel_agency_id = activeAgency.travel_agency_id; const editChanged = pick(editingProduct.info, editKeys); - (editKeys.includes('lgc_details') ? editChanged.lgc_details = editingProduct.lgc_details.map(l => l.lgc) : false); + // (editKeys.includes('lgc_details') ? editChanged.lgc_details = editingProduct.lgc_details.map(l => l.lgc) : false); + // 真实的修改了语种内的字段, 才把语种id包含到 lastedit_changed 中 + (editKeys.includes('lgc_details') ? editChanged.lgc_details = [...new Set(editLgcKeys)].map(e => Number(e)) : false); // console.log("editKeys pre values", editKeys, editChanged, '\neditingProduct', ); const copyNewProduct = structuredClone(newProductRecord); @@ -94,10 +98,10 @@ const ProductInfo = ({ ...props }) => { 'lastedit_changed': editChanged, // isEmpty(editChanged) ? "" : JSON.stringify(editChanged), 'edit_status': infoEditStatus || editingProduct.info.edit_status, }; - // console.log("ready to post", poster); + // console.log("🟢ready to post", poster); const copyFields = pick(editingProduct.info, ['product_type_id']); // 'title', const readyToSubInfo = { ...copyNewProduct.info, ...editingProduct.info, title: editingProduct.info.product_title, ...values.info, ...copyFields, ...poster }; - // console.log('onSave', editingProduct.info, readyToSubInfo); + // console.log('🔰onSave', editingProduct.info, readyToSubInfo); /** lgc_details */ const prevLgcDetailsMapped = editingProduct.lgc_details.reduce((r, c) => ({ ...r, [c.lgc]: c }), {});