diff --git a/doc/价格管理平台.bmpr b/doc/价格管理平台.bmpr index 0128426..44cfba4 100644 Binary files a/doc/价格管理平台.bmpr and b/doc/价格管理平台.bmpr differ diff --git a/package.json b/package.json index 1def8ea..aabe86b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "global-highlights-hub", "private": true, - "version": "2.0.0-rc.5", + "version": "2.0.0-rc.6", "type": "module", "scripts": { "dev": "vite", diff --git a/src/views/App.jsx b/src/views/App.jsx index f525e51..c3080dc 100644 --- a/src/views/App.jsx +++ b/src/views/App.jsx @@ -102,7 +102,7 @@ function App() { isPermitted(PERM_OVERSEA) ? { key: 'feedback', label: {t('menu.Feedback')} } : null, isPermitted(PERM_OVERSEA) ? { key: 'report', label: {t('menu.Report')} } : null, isPermitted(PERM_AIR_TICKET) ? { key: 'airticket', label: {t('menu.Airticket')} } : null, - isPermitted(PERM_PRODUCTS_MANAGEMENT) ? { key: 'products', label: {t('menu.Products')} } : { key: 'products', label: {t('menu.Products')} }, + isPermitted(PERM_PRODUCTS_MANAGEMENT) ? { key: 'products', label: {t('menu.Products')} } : null, { key: 'notice', label: ( 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 }) => { ) : ( <>