|
@@ -40,14 +40,24 @@ type Props = {
|
|
|
info: GoodsType
|
|
info: GoodsType
|
|
|
closeFu: () => void
|
|
closeFu: () => void
|
|
|
isEdit: boolean //藏品编辑-模块
|
|
isEdit: boolean //藏品编辑-模块
|
|
|
- succFu: (val: '新增' | '编辑', info: GoodsType) => void
|
|
|
|
|
|
|
+ editSnap?: GoodsType //藏品模块属于新增还是编辑
|
|
|
|
|
+ succFu: (val: '新增' | '编辑', info: GoodsType, oldInfo?: GoodsType, keyArr?: string[]) => void
|
|
|
moduleId: number
|
|
moduleId: number
|
|
|
// 上传附件的信息
|
|
// 上传附件的信息
|
|
|
fileUpInfo: FileUpInfoType
|
|
fileUpInfo: FileUpInfoType
|
|
|
APIsave: any
|
|
APIsave: any
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-function AddGoods({ closeFu, succFu, isEdit, moduleId, info, APIsave, fileUpInfo }: Props) {
|
|
|
|
|
|
|
+function AddGoods({
|
|
|
|
|
+ closeFu,
|
|
|
|
|
+ succFu,
|
|
|
|
|
+ isEdit,
|
|
|
|
|
+ moduleId,
|
|
|
|
|
+ info,
|
|
|
|
|
+ APIsave,
|
|
|
|
|
+ fileUpInfo,
|
|
|
|
|
+ editSnap
|
|
|
|
|
+}: Props) {
|
|
|
// 获取标签 树结构
|
|
// 获取标签 树结构
|
|
|
const E1tree = useSelector((state: RootState) => state.E1tag.treeData)
|
|
const E1tree = useSelector((state: RootState) => state.E1tag.treeData)
|
|
|
|
|
|
|
@@ -61,44 +71,47 @@ function AddGoods({ closeFu, succFu, isEdit, moduleId, info, APIsave, fileUpInfo
|
|
|
const fileRef = useRef<any>(null)
|
|
const fileRef = useRef<any>(null)
|
|
|
|
|
|
|
|
// 藏品编辑模块用来对比
|
|
// 藏品编辑模块用来对比
|
|
|
- const objOld = useRef({} as GoodsType)
|
|
|
|
|
|
|
+ const objOld = useRef<any>({})
|
|
|
|
|
|
|
|
- const resInfoFu = useCallback(async (infoRes: GoodsType) => {
|
|
|
|
|
- // 藏品编辑信息保存
|
|
|
|
|
- objOld.current = { ...infoRes }
|
|
|
|
|
|
|
+ const resInfoFu = useCallback(
|
|
|
|
|
+ async (infoRes: GoodsType) => {
|
|
|
|
|
+ // 藏品编辑信息保存
|
|
|
|
|
+ objOld.current = { ...infoRes }
|
|
|
|
|
|
|
|
- const obj: any = { ...infoRes }
|
|
|
|
|
- // makeDate inGoodYear 2个日期需要格式处理一下
|
|
|
|
|
- if (obj.makeDate) obj.makeDate = dayjs(obj.makeDate)
|
|
|
|
|
- if (obj.inGoodYear) obj.inGoodYear = dayjs(obj.inGoodYear)
|
|
|
|
|
|
|
+ const obj: any = editSnap && editSnap.id ? { ...editSnap } : { ...infoRes }
|
|
|
|
|
+ // makeDate inGoodYear 2个日期需要格式处理一下
|
|
|
|
|
+ if (obj.makeDate) obj.makeDate = dayjs(obj.makeDate)
|
|
|
|
|
+ if (obj.inGoodYear) obj.inGoodYear = dayjs(obj.inGoodYear)
|
|
|
|
|
|
|
|
- cascaderChArr.forEach(v => {
|
|
|
|
|
- if (obj[v] === '0') obj[v] = null
|
|
|
|
|
- else if (obj[v]) {
|
|
|
|
|
- obj[v] = obj[v].split(',')
|
|
|
|
|
- }
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ cascaderChArr.forEach(v => {
|
|
|
|
|
+ if (obj[v] === '0') obj[v] = null
|
|
|
|
|
+ else if (obj[v]) {
|
|
|
|
|
+ obj[v] = obj[v].split(',')
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
|
|
|
- addZiSelectChArr.forEach(v => {
|
|
|
|
|
- if (!obj[v]) obj[v] = null
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ addZiSelectChArr.forEach(v => {
|
|
|
|
|
+ if (!obj[v]) obj[v] = null
|
|
|
|
|
+ })
|
|
|
|
|
|
|
|
- // 处理藏品标签
|
|
|
|
|
- if (obj.tagDictId) {
|
|
|
|
|
- const tagDictId = obj.tagDictId.split(';').map((item: string) => item.split(','))
|
|
|
|
|
- obj.tagDictId = tagDictId
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // 处理藏品标签
|
|
|
|
|
+ if (obj.tagDictId) {
|
|
|
|
|
+ const tagDictId = obj.tagDictId.split(';').map((item: string) => item.split(','))
|
|
|
|
|
+ obj.tagDictId = tagDictId
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- FormBoxRef.current?.setFieldsValue(obj)
|
|
|
|
|
|
|
+ FormBoxRef.current?.setFieldsValue(obj)
|
|
|
|
|
|
|
|
- // 设置附件
|
|
|
|
|
- if (obj.fileIds) {
|
|
|
|
|
- const fileRes = await API_getFileListByIds(obj.fileIds.split(','))
|
|
|
|
|
- if (fileRes.code === 0) {
|
|
|
|
|
- fileRef.current?.sonSetListFu(fileRes.data || [])
|
|
|
|
|
|
|
+ // 设置附件
|
|
|
|
|
+ if (obj.fileIds) {
|
|
|
|
|
+ const fileRes = await API_getFileListByIds(obj.fileIds.split(','))
|
|
|
|
|
+ if (fileRes.code === 0) {
|
|
|
|
|
+ fileRef.current?.sonSetListFu(fileRes.data || [])
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- }, [])
|
|
|
|
|
|
|
+ },
|
|
|
|
|
+ [editSnap]
|
|
|
|
|
+ )
|
|
|
|
|
|
|
|
// 编辑进来获取详情
|
|
// 编辑进来获取详情
|
|
|
const getInfo = useCallback(
|
|
const getInfo = useCallback(
|
|
@@ -127,12 +140,18 @@ function AddGoods({ closeFu, succFu, isEdit, moduleId, info, APIsave, fileUpInfo
|
|
|
// 获取附件
|
|
// 获取附件
|
|
|
const { list: flieList, thumb, thumbPc } = fileRef.current?.sonResListFu()
|
|
const { list: flieList, thumb, thumbPc } = fileRef.current?.sonResListFu()
|
|
|
// 获取故事
|
|
// 获取故事
|
|
|
- const { guShiList, delIds } = guShiRef.current?.getGuShiListBySon()
|
|
|
|
|
|
|
+ let guShiList: any[] = []
|
|
|
|
|
+ let delIds: any[] = []
|
|
|
|
|
+ if (guShiRef.current) {
|
|
|
|
|
+ const gushiInfo = guShiRef.current?.getGuShiListBySon()
|
|
|
|
|
+ guShiList = gushiInfo.guShiList
|
|
|
|
|
+ delIds = gushiInfo.delIds
|
|
|
|
|
+ }
|
|
|
// 2个日期的格式处理
|
|
// 2个日期的格式处理
|
|
|
let makeDate = ''
|
|
let makeDate = ''
|
|
|
if (values.makeDate) makeDate = dayjs(values.makeDate).format('YYYY-MM-DD')
|
|
if (values.makeDate) makeDate = dayjs(values.makeDate).format('YYYY-MM-DD')
|
|
|
let inGoodYear = ''
|
|
let inGoodYear = ''
|
|
|
- if (values.inGoodYear) inGoodYear = dayjs(values.inGoodYear).format('YYYY-MM-DD')
|
|
|
|
|
|
|
+ if (values.inGoodYear) inGoodYear = dayjs(values.inGoodYear).format('YYYY')
|
|
|
|
|
|
|
|
const obj = {
|
|
const obj = {
|
|
|
...values,
|
|
...values,
|
|
@@ -170,30 +189,66 @@ function AddGoods({ closeFu, succFu, isEdit, moduleId, info, APIsave, fileUpInfo
|
|
|
// return
|
|
// return
|
|
|
// }
|
|
// }
|
|
|
|
|
|
|
|
- const res = await APIsave(obj)
|
|
|
|
|
- if (res.code === 0) {
|
|
|
|
|
- MessageFu.success(info.id > 0 ? '编辑成功' : '新增成功')
|
|
|
|
|
|
|
+ if (isEdit) {
|
|
|
|
|
+ // 藏品编辑模块
|
|
|
|
|
+ let flag = true
|
|
|
|
|
+ const oldInfoObj = { ...objOld.current }
|
|
|
|
|
+ if (oldInfoObj.makeDate)
|
|
|
|
|
+ oldInfoObj.makeDate = dayjs(oldInfoObj.makeDate).format('YYYY-MM-DD')
|
|
|
|
|
+ if (oldInfoObj.inGoodYear)
|
|
|
|
|
+ oldInfoObj.inGoodYear = dayjs(oldInfoObj.inGoodYear).format('YYYY')
|
|
|
|
|
+
|
|
|
|
|
+ const keyArr: string[] = []
|
|
|
|
|
+
|
|
|
|
|
+ for (const k in obj) {
|
|
|
|
|
+ if (!['delStoryIds', 'storyIds'].includes(k)) {
|
|
|
|
|
+ if ((oldInfoObj[k] || obj[k]) && oldInfoObj[k] !== obj[k]) {
|
|
|
|
|
+ keyArr.push(k)
|
|
|
|
|
+ flag = false
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// if (1 + 1 === 2) {
|
|
// if (1 + 1 === 2) {
|
|
|
- // console.log('----------------', info)
|
|
|
|
|
|
|
+ // console.log('---------', keyArr, oldInfoObj, obj)
|
|
|
// return
|
|
// return
|
|
|
// }
|
|
// }
|
|
|
|
|
|
|
|
- const resObj = { ...res.data }
|
|
|
|
|
- if (info.pageType === 'clue') {
|
|
|
|
|
- resObj.clueId = info.id
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (flag) return MessageFu.warning('未修改藏品信息')
|
|
|
|
|
|
|
|
- succFu(info.id > 0 ? '编辑' : '新增', resObj)
|
|
|
|
|
- closeFu()
|
|
|
|
|
|
|
+ succFu(editSnap ? '编辑' : '新增', obj, oldInfoObj, keyArr)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ const res = await APIsave(obj)
|
|
|
|
|
+ if (res.code === 0) {
|
|
|
|
|
+ MessageFu.success(info.id > 0 ? '编辑成功' : '新增成功')
|
|
|
|
|
+ // if (1 + 1 === 2) {
|
|
|
|
|
+ // console.log('----------------', info)
|
|
|
|
|
+ // return
|
|
|
|
|
+ // }
|
|
|
|
|
+
|
|
|
|
|
+ const resObj = { ...res.data }
|
|
|
|
|
+ if (info.pageType === 'clue') {
|
|
|
|
|
+ resObj.clueId = info.id
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ succFu(info.id > 0 ? '编辑' : '新增', resObj)
|
|
|
|
|
+ closeFu()
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
- [APIsave, closeFu, info, succFu]
|
|
|
|
|
|
|
+ [APIsave, closeFu, editSnap, info.id, info.pageType, isEdit, succFu]
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
return (
|
|
return (
|
|
|
<div className={styles.AddGoods}>
|
|
<div className={styles.AddGoods}>
|
|
|
<div className='AGbox'>
|
|
<div className='AGbox'>
|
|
|
- <div className='AG1'>{isEdit ? '藏品修改' : info.id > 0 ? '藏品编辑' : '藏品新增'}</div>
|
|
|
|
|
|
|
+ <div className='AG1'>
|
|
|
|
|
+ {isEdit
|
|
|
|
|
+ ? `藏品修改${editSnap ? '- 编辑' : '- 新增'}`
|
|
|
|
|
+ : info.id > 0
|
|
|
|
|
+ ? '藏品编辑'
|
|
|
|
|
+ : '藏品新增'}
|
|
|
|
|
+ </div>
|
|
|
|
|
|
|
|
<Form
|
|
<Form
|
|
|
scrollToFirstError={true}
|
|
scrollToFirstError={true}
|
|
@@ -440,13 +495,17 @@ function AddGoods({ closeFu, succFu, isEdit, moduleId, info, APIsave, fileUpInfo
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
{/* 横线 */}
|
|
{/* 横线 */}
|
|
|
- <div className='AGxian'></div>
|
|
|
|
|
- <div className='AGfull'>
|
|
|
|
|
- <div className='AGfullll'>故事:</div>
|
|
|
|
|
- <div className='AGfullrr'>
|
|
|
|
|
- <GuShi moduleId={moduleId} ref={guShiRef} goodsId={info.id} />
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ {isEdit ? null : (
|
|
|
|
|
+ <>
|
|
|
|
|
+ <div className='AGxian'></div>
|
|
|
|
|
+ <div className='AGfull'>
|
|
|
|
|
+ <div className='AGfullll'>故事:</div>
|
|
|
|
|
+ <div className='AGfullrr'>
|
|
|
|
|
+ <GuShi moduleId={moduleId} ref={guShiRef} goodsId={info.id} />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </>
|
|
|
|
|
+ )}
|
|
|
|
|
|
|
|
{/* 确定和取消按钮 */}
|
|
{/* 确定和取消按钮 */}
|
|
|
<Form.Item className='AGbtnok'>
|
|
<Form.Item className='AGbtnok'>
|