|
@@ -41,7 +41,7 @@ function SonGoodsList({
|
|
|
btnTxt,
|
|
btnTxt,
|
|
|
addShow = true
|
|
addShow = true
|
|
|
}: Props) {
|
|
}: Props) {
|
|
|
- const { info, snaps, setSnapsFu, delSnapIdsRef, snapsID2ref } = useInfo()
|
|
|
|
|
|
|
+ const { info, snaps, setSnapsFu } = useInfo()
|
|
|
|
|
|
|
|
const { key } = useParams<any>()
|
|
const { key } = useParams<any>()
|
|
|
// key:1 新增 2编辑 3审批 4查看
|
|
// key:1 新增 2编辑 3审批 4查看
|
|
@@ -74,9 +74,6 @@ function SonGoodsList({
|
|
|
<MyPopconfirm
|
|
<MyPopconfirm
|
|
|
txtK='删除'
|
|
txtK='删除'
|
|
|
onConfirm={() => {
|
|
onConfirm={() => {
|
|
|
- if (item.id2 && !delSnapIdsRef.current.includes(item.id2)) {
|
|
|
|
|
- delSnapIdsRef.current.push(item.id2)
|
|
|
|
|
- }
|
|
|
|
|
setSnapsFu(snaps.filter(v => v.id !== item.id))
|
|
setSnapsFu(snaps.filter(v => v.id !== item.id))
|
|
|
}}
|
|
}}
|
|
|
/>
|
|
/>
|
|
@@ -87,7 +84,7 @@ function SonGoodsList({
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
]
|
|
]
|
|
|
- }, [addShow, delSnapIdsRef, isLook, setSnapsFu, snaps])
|
|
|
|
|
|
|
+ }, [addShow, isLook, setSnapsFu, snaps])
|
|
|
|
|
|
|
|
// 从征集线索中添加
|
|
// 从征集线索中添加
|
|
|
const [clueShow, setClueShow] = useState(false)
|
|
const [clueShow, setClueShow] = useState(false)
|
|
@@ -113,6 +110,7 @@ function SonGoodsList({
|
|
|
</div>
|
|
</div>
|
|
|
<div className='SonGoodsListTable'>
|
|
<div className='SonGoodsListTable'>
|
|
|
<MyTable
|
|
<MyTable
|
|
|
|
|
+ rowKey='idTemp'
|
|
|
classKey='SonGoodsList'
|
|
classKey='SonGoodsList'
|
|
|
list={snaps}
|
|
list={snaps}
|
|
|
columnsTemp={goodsSonTableC()}
|
|
columnsTemp={goodsSonTableC()}
|
|
@@ -128,21 +126,17 @@ function SonGoodsList({
|
|
|
isEdit={false}
|
|
isEdit={false}
|
|
|
closeFu={() => setOpenInfo({} as GoodsType)}
|
|
closeFu={() => setOpenInfo({} as GoodsType)}
|
|
|
moduleId={info.id}
|
|
moduleId={info.id}
|
|
|
- succFu={(val: '新增' | '编辑', info: GoodsType) => {
|
|
|
|
|
- let objTemp = { ...info }
|
|
|
|
|
- const id2Obj = snapsID2ref.current.find(c => c.goodId === objTemp.id)
|
|
|
|
|
- if (id2Obj) objTemp.id2 = id2Obj.id
|
|
|
|
|
- if (val === '新增') {
|
|
|
|
|
- // 是新增
|
|
|
|
|
- setSnapsFu([objTemp, ...snaps])
|
|
|
|
|
- } else {
|
|
|
|
|
|
|
+ succFu={(val: '新增' | '编辑', infoTemp: GoodsType) => {
|
|
|
|
|
+ const info: GoodsType = { ...infoTemp, idTemp: infoTemp.id + 'goods' }
|
|
|
|
|
+
|
|
|
|
|
+ if (val === '新增') setSnapsFu([info, ...snaps])
|
|
|
|
|
+ else
|
|
|
setSnapsFu(
|
|
setSnapsFu(
|
|
|
snaps.map(v => {
|
|
snaps.map(v => {
|
|
|
- if (v.id === objTemp.id || v.id === objTemp.clueId) return objTemp
|
|
|
|
|
|
|
+ if (v.id === info.id || v.id === info.clueId) return info
|
|
|
else return v
|
|
else return v
|
|
|
})
|
|
})
|
|
|
)
|
|
)
|
|
|
- }
|
|
|
|
|
}}
|
|
}}
|
|
|
/>
|
|
/>
|
|
|
) : null}
|
|
) : null}
|
|
@@ -158,31 +152,18 @@ function SonGoodsList({
|
|
|
closeFu={() => setClueShow(false)}
|
|
closeFu={() => setClueShow(false)}
|
|
|
oldCheckArr={snaps}
|
|
oldCheckArr={snaps}
|
|
|
dataResFu={data => {
|
|
dataResFu={data => {
|
|
|
- //需要过滤掉已经有id的-不替换数据,没有id的替换数据 因为数据可能已经在另外一个弹窗更新了
|
|
|
|
|
|
|
+ // 需要过滤掉已经有id的-不替换数据,没有id的替换数据 因为数据可能已经在另外一个弹窗更新了
|
|
|
const nowIds = snaps.map(v => v.id)
|
|
const nowIds = snaps.map(v => v.id)
|
|
|
- let dataRes = data.map((v, i) => {
|
|
|
|
|
- if (nowIds.includes(v.id)) {
|
|
|
|
|
- if (v.id2 && delSnapIdsRef.current.includes(v.id2)) {
|
|
|
|
|
- delSnapIdsRef.current = delSnapIdsRef.current.filter(c => c !== v.id2)
|
|
|
|
|
- }
|
|
|
|
|
- return snaps[i]
|
|
|
|
|
- } else {
|
|
|
|
|
- if (v.id2 && !delSnapIdsRef.current.includes(v.id2)) {
|
|
|
|
|
- delSnapIdsRef.current.push(v.id2)
|
|
|
|
|
- }
|
|
|
|
|
- return v
|
|
|
|
|
- }
|
|
|
|
|
- })
|
|
|
|
|
-
|
|
|
|
|
- dataRes.forEach(v => {
|
|
|
|
|
|
|
+ const dataRes: GoodsType[] = data.map((v, i) => {
|
|
|
|
|
+ v.idTemp = v.id + 'clue'
|
|
|
|
|
+ // 优先使用已存在的snap数据,否则使用新数据
|
|
|
|
|
+ const item = nowIds.includes(v.id) ? snaps[i] : v
|
|
|
|
|
+ // 如果是线索选择,添加标识
|
|
|
if (isClueSelect) {
|
|
if (isClueSelect) {
|
|
|
// 因为征集和藏品表分开的,所以在藏品里面拿征集信息,自己加上这个标识
|
|
// 因为征集和藏品表分开的,所以在藏品里面拿征集信息,自己加上这个标识
|
|
|
- v.pageType = 'clue'
|
|
|
|
|
|
|
+ return { ...item, pageType: 'clue' }
|
|
|
}
|
|
}
|
|
|
- // id2表示的是自己这条数据的id id才是goodId
|
|
|
|
|
- const obj = snapsID2ref.current.find(c => c.goodId === v.id)
|
|
|
|
|
-
|
|
|
|
|
- if (obj) v.id2 = obj.id
|
|
|
|
|
|
|
+ return item
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
setSnapsFu(dataRes)
|
|
setSnapsFu(dataRes)
|