diff --git a/src/views/products/Detail.jsx b/src/views/products/Detail.jsx index 9c64a08..b2507d4 100644 --- a/src/views/products/Detail.jsx +++ b/src/views/products/Detail.jsx @@ -8,6 +8,7 @@ import { useProductsTypes } from '@/hooks/useProductsSets'; import Extras from './Detail/Extras'; import { groupBy } from '@/utils/commons'; import { useParams } from 'react-router-dom'; +import useProductsStore from '@/stores/Products/Index'; import { useHTLanguageSets } from '@/hooks/useHTLanguageSets'; import { useDefaultLgc } from '@/i18n/LanguageSwitcher'; import BatchImportPrice from './Detail/BatchImportPrice1'; @@ -37,6 +38,7 @@ function Detail() { const HTLanguageSets = useHTLanguageSets(); const { Search } = Input; + const [editingProduct, setEditingProduct] = useProductsStore((state) => [state.editingProduct, state.setEditingProduct]); const [expandedKeys, setExpandedKeys] = useState([]); const [searchValue, setSearchValue] = useState(''); @@ -51,49 +53,49 @@ function Detail() { const productProject = { "6": [], "B": [ - { code: "code", name: t('products:Code') }, - { code: "city_name", name: t('products:City') }, - { code: "km", name: t('products:KM') }, - { code: "remarks", name: t('products:Remarks') } + { code: "code", name: t('products:Code'), nameKey: 'products:Code' }, + { code: "city_name", name: t('products:City'), nameKey: 'products:City' }, + { code: "km", name: t('products:KM'), nameKey: 'products:KM' }, + { code: "remarks", name: t('products:Remarks'), nameKey: 'products:Remarks' } ], "J": [ - { code: "code", name: t('products:Code') }, - { code: "city_name", name: t('products:City') }, - { code: "recommends_rate", name: t('products:recommendationRate') }, - { code: "duration", name: t('products:Duration') }, - { code: "dept_name", name: t('products:Dept') }, - { code: "display_to_c", name: t('products:DisplayToC') }, - { code: "remarks", name: t('products:Remarks') }, + { code: "code", name: t('products:Code'), nameKey: 'products:Code' }, + { code: "city_name", name: t('products:City'), nameKey: 'products:City' }, + { code: "recommends_rate", name: t('products:recommendationRate'), nameKey: 'products:recommendationRate' }, + { code: "duration", name: t('products:Duration'), nameKey: 'products:Duration' }, + { code: "dept_name", name: t('products:Dept'), nameKey: 'products:Dept' }, + { code: "display_to_c", name: t('products:DisplayToC'), nameKey: 'products:DisplayToC' }, + { code: "remarks", name: t('products:Remarks'), nameKey: 'products:Remarks' }, ], "Q": [ - { code: "code", name: t('products:Code') }, - { code: "city_name", name: t('products:City') }, - { code: "recommends_rate", name: t('products:recommendationRate') }, - { code: "duration", name: t('products:Duration') }, - { code: "dept_name", name: t('products:Dept') }, - { code: "display_to_c", name: t('products:DisplayToC') }, - { code: "remarks", name: t('products:Remarks') }, + { code: "code", name: t('products:Code'), nameKey: 'products:Code' }, + { code: "city_name", name: t('products:City'), nameKey: 'products:City' }, + { code: "recommends_rate", name: t('products:recommendationRate'), nameKey: 'products:recommendationRate' }, + { code: "duration", name: t('products:Duration'), nameKey: 'products:Duration' }, + { code: "dept_name", name: t('products:Dept'), nameKey: 'products:Dept' }, + { code: "display_to_c", name: t('products:DisplayToC'), nameKey: 'products:DisplayToC' }, + { code: "remarks", name: t('products:Remarks'), nameKey: 'products:Remarks' }, ], "D": [ - { code: "code", name: t('products:Code') }, - { code: "city_name", name: t('products:City') }, - { code: "recommends_rate", name: t('products:recommendationRate') }, - { code: "duration", name: t('products:Duration') }, - { code: "dept_name", name: t('products:Dept') }, - { code: "display_to_c", name: t('products:DisplayToC') }, - { code: "remarks", name: t('products:Remarks') }, + { code: "code", name: t('products:Code'), nameKey: 'products:Code' }, + { code: "city_name", name: t('products:City'), nameKey: 'products:City' }, + { code: "recommends_rate", name: t('products:recommendationRate'), nameKey: 'products:recommendationRate' }, + { code: "duration", name: t('products:Duration'), nameKey: 'products:Duration' }, + { code: "dept_name", name: t('products:Dept'), nameKey: 'products:Dept' }, + { code: "display_to_c", name: t('products:DisplayToC'), nameKey: 'products:DisplayToC' }, + { code: "remarks", name: t('products:Remarks'), nameKey: 'products:Remarks' }, ], "7": [ - { code: "code", name: t('products:Code') }, - { code: "city_name", name: t('products:City') }, - { code: "recommends_rate", name: t('products:recommendationRate') }, - { code: "duration", name: t('products:Duration') }, - { code: "open_weekdays", name: t('products:OpenWeekdays') }, - { code: "remarks", name: t('products:Remarks') }, + { code: "code", name: t('products:Code'), nameKey: 'products:Code' }, + { code: "city_name", name: t('products:City'), nameKey: 'products:City' }, + { code: "recommends_rate", name: t('products:recommendationRate'), nameKey: 'products:recommendationRate' }, + { code: "duration", name: t('products:Duration'), nameKey: 'products:Duration' }, + { code: "open_weekdays", name: t('products:OpenWeekdays'), nameKey: 'products:OpenWeekdays' }, + { code: "remarks", name: t('products:Remarks'), nameKey: 'products:Remarks' }, ], "R": [ - { code: "code", name: t('products:Code') }, - { code: "city_name", name: t('products:City') }, + { code: "code", name: t('products:Code'), nameKey: 'products:Code' }, + { code: "city_name", name: t('products:City'), nameKey: 'products:City' }, ] } const [selectedCategory, setSelectedCategory] = useState(productProject.B); @@ -125,10 +127,12 @@ function Detail() { children: (productsData[type.value] || []).map(product => ({ title: product.info.title, key: `${type.value}-${product.info.id}`, + _raw: product, })) })); }; + const treeData = generateTreeData(productsTypes, groupedProducts); setTreeData(treeData); setProductsData(groupedProducts); @@ -311,7 +315,7 @@ function Detail() { const handleBatchImportOK = () => { console.log("quotation",quotation) console.log('Batch Import Data:', batchImportData); - + // 创建一个新的数据副本,删除 tag 和 validPeriod 属性 const tempBatchImportData = batchImportData.map(item => { @@ -440,8 +444,10 @@ const handleBatchImportOK = () => { const editable = isEditing(record); return editable ? ( - handleSave(record.id)} style={{ marginRight: 8 }}>{t('Save')} - {t('Cancel')} + {/* handleSave(record.id)} style={{ marginRight: 8 }}>{t('Save')} */} + + + {/* {t('Cancel')} */} ) : ( @@ -534,6 +540,8 @@ const handleBatchImportOK = () => { setSelectedCategory(productProject[fatherKey]) console.log("remainderLanguage",remainderLanguage) + setEditingProduct(node._raw); + let initialQuotationData = null; let infoData = null; let lgcDetailsData = null; @@ -594,8 +602,8 @@ const handleBatchImportOK = () => { return (
- - + + {
供应商 }, { title: 综费 }, - { title: '文章列表' } + { title: editingProduct?.info?.title || t('New') } ]} /> } > @@ -624,7 +632,7 @@ const handleBatchImportOK = () => { {selectedCategory.map((item, index) => ( - + {item.code === "duration" ? ( ) : ( @@ -684,12 +692,12 @@ const handleBatchImportOK = () => { /> - + {/* */} - + {/* */}

{t('products:supplierQuotation')}

- { - - - - + + + + + {/* */} + + {/* */} - - - @@ -730,7 +738,7 @@ const handleBatchImportOK = () => { )} - + { batchImportPriceVisible && (