|
|
@@ -6,13 +6,15 @@ import {
|
|
|
H1_APIgetInfo,
|
|
|
H1_APIsave,
|
|
|
H1_APIdelete,
|
|
|
- H1_APIgetShowGoodPage
|
|
|
+ H1_APIgetShowGoodPage,
|
|
|
+ H1_APIupdateRegion
|
|
|
} from '@/store/action/Hexhibits/H1loan'
|
|
|
import { API_getFileListByIds } from '@/store/action/Cledger/C4file'
|
|
|
import ExhibitionModal, { ExhibitionFormValues } from '../components/ExhibitionModal'
|
|
|
+import RegionSettingModal from '../components/RegionSettingModal'
|
|
|
import { MessageFu } from '@/utils/message'
|
|
|
import MyPopconfirm from '@/components/MyPopconfirm'
|
|
|
-import history from '@/utils/history'
|
|
|
+import history, { openLink } from '@/utils/history'
|
|
|
import dayjs from 'dayjs'
|
|
|
import { baseURL } from '@/utils/http'
|
|
|
import { FileListType } from '@/components/Z3upFiles/data'
|
|
|
@@ -57,6 +59,10 @@ function H1detail() {
|
|
|
const [info, setInfo] = useState<DetailInfo>({})
|
|
|
const [fileList, setFileList] = useState<FileListType[]>([])
|
|
|
const [exhibitionModalOpen, setExhibitionModalOpen] = useState(false)
|
|
|
+ const [regionSettingOpen, setRegionSettingOpen] = useState(false)
|
|
|
+ const [regionEditList, setRegionEditList] = useState<
|
|
|
+ { id: number; goodNum: string; goodName: string; region: string; address: string }[]
|
|
|
+ >([])
|
|
|
|
|
|
const getInfo = useCallback(async () => {
|
|
|
if (!id) return
|
|
|
@@ -191,6 +197,61 @@ function H1detail() {
|
|
|
setTimeout(() => setGoodTimeKey(Date.now()), 50)
|
|
|
}, [])
|
|
|
|
|
|
+ const openRegionSetting = useCallback(() => {
|
|
|
+ const list = goodList.map((item: any) => ({
|
|
|
+ id: item.id,
|
|
|
+ goodNum: item.goodNum || '',
|
|
|
+ goodName: item.goodName || '',
|
|
|
+ region: item.region || '',
|
|
|
+ address: item.address || ''
|
|
|
+ }))
|
|
|
+ setRegionEditList(list)
|
|
|
+ setRegionSettingOpen(true)
|
|
|
+ }, [goodList])
|
|
|
+
|
|
|
+ const updateRegionEditItem = useCallback(
|
|
|
+ (index: number, field: 'region' | 'address', value: string) => {
|
|
|
+ setRegionEditList(prev =>
|
|
|
+ prev.map((item, i) => (i === index ? { ...item, [field]: value } : item))
|
|
|
+ )
|
|
|
+ },
|
|
|
+ []
|
|
|
+ )
|
|
|
+
|
|
|
+ const handleRegionSubmit = useCallback(async () => {
|
|
|
+ const payload = regionEditList.map(item => ({
|
|
|
+ id: item.id,
|
|
|
+ region: item.region || '',
|
|
|
+ address: item.address || ''
|
|
|
+ }))
|
|
|
+ const res = await H1_APIupdateRegion(payload)
|
|
|
+ if (res?.code === 0) {
|
|
|
+ MessageFu.success('展位设置成功')
|
|
|
+ setRegionSettingOpen(false)
|
|
|
+ setGoodTimeKey(Date.now())
|
|
|
+ } else {
|
|
|
+ MessageFu.error(res?.message || '展位设置失败')
|
|
|
+ }
|
|
|
+ }, [regionEditList])
|
|
|
+
|
|
|
+ const goodTableLastBtn = useMemo(
|
|
|
+ () => [
|
|
|
+ {
|
|
|
+ title: '操作',
|
|
|
+ render: (item: any) => (
|
|
|
+ <Button
|
|
|
+ size='small'
|
|
|
+ type='text'
|
|
|
+ onClick={() => openLink(`/goodsLook/${item.goodId ?? item.id}`)}
|
|
|
+ >
|
|
|
+ 查看
|
|
|
+ </Button>
|
|
|
+ )
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ []
|
|
|
+ )
|
|
|
+
|
|
|
const regionOptions = useMemo(() => {
|
|
|
const r = info.region
|
|
|
if (!r) return []
|
|
|
@@ -268,9 +329,14 @@ function H1detail() {
|
|
|
<div className='H1detailMainTitle'>
|
|
|
<span>展品清单</span>
|
|
|
<div>
|
|
|
- <Button>展位设置</Button>
|
|
|
+ <Button onClick={openRegionSetting} disabled={!info.id || !goodList.length}>
|
|
|
+ 展位设置
|
|
|
+ </Button>
|
|
|
<Button
|
|
|
- onClick={() => info.id && history.push(`/outStorage_edit/1/null?showId=${info.id}`)}
|
|
|
+ onClick={() =>
|
|
|
+ info.id &&
|
|
|
+ history.push(`/outStorage_edit/1/null?showId=${info.id}&showName=${info.name}`)
|
|
|
+ }
|
|
|
disabled={!info.id}
|
|
|
>
|
|
|
借展出库
|
|
|
@@ -342,6 +408,7 @@ function H1detail() {
|
|
|
pageSize={goodFormData.pageSize}
|
|
|
yHeight={400}
|
|
|
onChange={goodPaginationChange}
|
|
|
+ lastBtn={goodTableLastBtn}
|
|
|
/>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -353,6 +420,15 @@ function H1detail() {
|
|
|
initialValues={info}
|
|
|
initialFileList={fileList}
|
|
|
/>
|
|
|
+
|
|
|
+ <RegionSettingModal
|
|
|
+ open={regionSettingOpen}
|
|
|
+ onCancel={() => setRegionSettingOpen(false)}
|
|
|
+ dataSource={regionEditList}
|
|
|
+ regionOptions={regionOptions}
|
|
|
+ onUpdateItem={updateRegionEditItem}
|
|
|
+ onSubmit={handleRegionSubmit}
|
|
|
+ />
|
|
|
</div>
|
|
|
)
|
|
|
}
|