|
|
|
|
@ -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 }), {});
|
|
|
|
|
|