diff --git a/src/views/products/Detail/ProductInfoForm.jsx b/src/views/products/Detail/ProductInfoForm.jsx index 65e6e0d..b470b8a 100644 --- a/src/views/products/Detail/ProductInfoForm.jsx +++ b/src/views/products/Detail/ProductInfoForm.jsx @@ -29,6 +29,8 @@ const InfoForm = ({ onSubmit, onReset, onValuesChange, editablePerm, infoEditabl const filedsets = useProductsTypesFieldsets(editingProduct?.info?.product_type_id); const shows = filedsets[0]; + const [pickEditedInfo, setPickEditedInfo] = useState({}); // 传递联动的字段 + // const [editable, setEditable] = useState(true); const [formEditable, setFormEditable] = useState(true); const [showSave, setShowSave] = useState(true); @@ -39,6 +41,7 @@ const InfoForm = ({ onSubmit, onReset, onValuesChange, editablePerm, infoEditabl const lgc_details_mapped = (editingProduct?.lgc_details || []).reduce((r, c) => ({ ...r, [c.lgc]: c }), {}); form.setFieldValue('lgc_details_mapped', lgc_details_mapped); form.setFieldValue('quotation', editingProduct?.quotation); + setPickEditedInfo({ ...pickEditedInfo, product_title: editingProduct?.info?.product_title }); setFormEditable(infoEditable || priceEditable); @@ -78,6 +81,10 @@ const InfoForm = ({ onSubmit, onReset, onValuesChange, editablePerm, infoEditabl const onIValuesChange = (changedValues, allValues) => { const dest = formValuesMapper(allValues); // console.log('form onValuesChange', Object.keys(changedValues), changedValues); + if ('product_title' in changedValues) { + const editTitle = (changedValues.product_title); + setPickEditedInfo({ ...pickEditedInfo, product_title: editTitle }); + } if (typeof onValuesChange === 'function') { onValuesChange(dest); } @@ -130,7 +137,7 @@ const InfoForm = ({ onSubmit, onReset, onValuesChange, editablePerm, infoEditabl }, }), ]}> - + diff --git a/src/views/products/Detail/ProductInfoLgc.jsx b/src/views/products/Detail/ProductInfoLgc.jsx index 4fd4685..6beec47 100644 --- a/src/views/products/Detail/ProductInfoLgc.jsx +++ b/src/views/products/Detail/ProductInfoLgc.jsx @@ -6,7 +6,7 @@ import { useTranslation } from 'react-i18next'; import { useDefaultLgc } from '@/i18n/LanguageSwitcher'; import { cloneDeep, isEmpty, isNotEmpty } from '@/utils/commons'; -const ProductInfoLgc = ({ editable, formInstance, ...props }) => { +const ProductInfoLgc = ({ editable, formInstance, pickEditedInfo, ...props }) => { const { t } = useTranslation('products'); const { language: languageHT } = useDefaultLgc(); const HTLanguageSetsMapVal = useHTLanguageSetsMapVal(); @@ -15,6 +15,13 @@ const ProductInfoLgc = ({ editable, formInstance, ...props }) => { const [activeKey, setActiveKey] = useState(); const [items, setItems] = useState([]); + useEffect(() => { + formInstance.setFieldValue(['lgc_details_mapped', '2', 'title'], pickEditedInfo.product_title); + + return () => {}; + }, [pickEditedInfo.product_title]); + + useEffect(() => { const existsLgc = (editingProduct?.lgc_details || []).map((ele, li) => ({ ...ele,