import { connect } from "umi"; import type { CurrentUser } from "umi"; import type { ConnectState } from "@/models/connect"; import React, { useRef, useState } from "react"; import LeftSelectTree from "@/pages/reports/settlementAccount/component/leftSelectTree"; import ServerpartInfo from "./components/serverpartInfo"; import ProCard from "@ant-design/pro-card"; import { ExclamationCircleOutlined, MenuFoldOutlined } from "@ant-design/icons"; import { Button, Col, FormInstance, message, Modal, Row, Tree, Image, Menu, Avatar, Tabs } from "antd"; import LoadingBox from "@/pages/reports/Finance/businessAnalysis/components/loading"; import session from "@/utils/session"; import moment from 'moment' import { handleSynchroSERVERPART } from "@/pages/newDataAnalysis/service"; import useRequest from "@ahooksjs/use-request"; import { getServerpartTree } from "@/services/options"; import { handleSynchroNOTICEINFO } from "@/pages/basicManage/highwayHeadlines/service"; import ProForm, { ProFormText, ProFormUploadButton } from "@ant-design/pro-form"; import { deletePicture, getPictureList, uploadPicture } from "@/services/picture"; import { handeGetPictureList } from "../service"; import SubMenu from "antd/lib/menu/SubMenu"; import Draggable from "react-draggable"; import searchIcon from '@/assets/ai/searchIcon.png' import close from '@/assets/ai/close.png' import './style.less' import { handleSetlogSave } from "@/utils/format"; const beforeUpload = (file: any) => { const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png'; if (!isJpgOrPng) { message.error('请上传JPEG、jpg、png格式的图片文件!'); } const isLt2M = file.size / 1024 / 1024 < 5; if (!isLt2M) { message.error('图片大小不超过 5MB!'); } return isJpgOrPng && isLt2M; } const serverpartInfo: React.FC<{ currentUser: CurrentUser }> = (props) => { const { confirm } = Modal; const { currentUser } = props const searchTreeRef = useRef(); const modalRef = useRef(); const [collapsible, setCollapsible] = useState(false) const [treeView, setTreeView] = useState() // 树相关的属性和方法 const [selectedId, setSelectedId] = useState() // 显示右边的表单 const [showRightForm, setShowRightForm] = useState(true) const serverPartRef = useRef() const shopregionObj = session.get('shopregionObj') // 显示上传图片的悬浮框 const [showUploadImgModal, setShowUploadImgModal] = useState(false) // 点击的按钮类型 1 服务区图片上传 2 母婴室图片上传 3 司机之家图片上传 4 住宿客房图片上传 5 便利店图片上传 const [showType, setShowType] = useState(0) // 悬浮框的点击确认的效果 const [confirmLoading, setConfirmLoading] = useState(false) // 文件列表 const [fileList, setFileList] = useState([]) const [imagePreviewVisible, setImagePreviewVisible] = useState(false) // 预览图片 const [currenRegion, setCurrenRegion] = useState(); // 当前选中左侧菜单的片区节点 const [currenMenu, setCurrenMenu] = useState(); // 当前选中左侧菜单的服务区节点 // 上传文件选择的tab const [selectActiveKey, setSelectActiveKey] = useState('1') // 弹出框拖动效果 const [bounds, setBounds] = useState<{ left: number, right: number, top: number, bottom: number }>() // 移动的位置 const [disabled, setDraggleDisabled] = useState() // 是否拖动 const draggleRef = React.createRef() // 默认展开的菜单 const [defaultOpenKeys, setDefaultOpenKeys] = useState(); // 显示服务区树搜索框 const [showServiceSearchBox, setShowServiceSearchBox] = useState(false) // 初始的最全的左侧菜单树 数据 const [menuData, setMenuData] = useState(); // 判断左侧数据是否加载好了 const [showLeftTreeData, setShowLeftTreeData] = useState(false) const onDraggaleStart = (event, uiData) => { const { clientWidth, clientHeight } = window.document.documentElement; const targetRect = draggleRef.current?.getBoundingClientRect(); if (!targetRect) { return; } setBounds({ left: -targetRect.left + uiData.x, right: clientWidth - (targetRect.right - uiData.x), top: -targetRect.top + uiData.y, bottom: clientHeight - (targetRect.bottom - uiData.y), }); }; const { loading: treeLoading, data: treeViews } = useRequest(async () => { const data = await getServerpartTree(currentUser?.ProvinceCode, currentUser?.CityAuthority, true, true, true) let list: any = [] data.forEach((item: any) => { if (item.value !== 424) { list.push(item) } }) setTreeView(list) setMenuData(list) let obj: any = handleGetTreeFirst(list) if (obj && obj.length > 0) { let defaultKey: any = [] if (obj && obj.length > 0) { obj.forEach((item: any) => { defaultKey.push(item.key) }) } setDefaultOpenKeys(defaultKey) let lastObj: any = obj[obj.length - 1] setCurrenMenu(lastObj.value) setSelectedId('') setCurrenRegion('') // 只有修改服务区的时候 触发刷新 setShowRightForm(false) setTimeout(() => { setShowRightForm(true) }, 10) } setShowLeftTreeData(true) return data }) // 根据左侧选中的菜单加载右侧数据 const loadSelectedId = (item?: any) => { console.log('itemitemitem', item); // 选中的子菜单key const [type, value] = item.key.split('-') if (type === '1') { setCurrenMenu(value) setSelectedId('') setCurrenRegion('') console.log('value', value); let serverpartObj = session.get('serverpartObj') handleSetlogSave(`${serverpartObj && value && serverpartObj[value] ? `查看${serverpartObj[value]}基础信息` : ""}`) // 只有修改服务区的时候 触发刷新 setShowRightForm(false) setTimeout(() => { setShowRightForm(true) }, 10) } else if (type === '2') { setSelectedId(value) setCurrenMenu('') setCurrenRegion('') } else { setCurrenRegion(value) setSelectedId('') setCurrenMenu('') } } // 预览上传后的图片 const handlePreview = async () => { setFileList(fileList) setImagePreviewVisible(true) }; const handleChangePreview = (val: any) => { setImagePreviewVisible(val) } // 保存方法 const handleSubmitForm = async () => { let res: any = serverPartRef.current?.formRef.current?.getFieldsValue() console.log('res', res); // 表单查到的详情 更新里面的全部数据 let detailObj: any = serverPartRef.current?.serverPartDetail console.log('detailObj', detailObj); let formDetailAll: any = serverPartRef.current?.formDetailAll console.log('formDetailAll', formDetailAll); // 把分区的数据取出来 let objA: any = { SERVERPART_REGION: res?.currentArea, SERVERPART_REGIONNAME: res?.currentArea ? shopregionObj[res?.currentArea] : '', } let objB: any = { SERVERPART_REGION: res?.otherArea, SERVERPART_REGIONNAME: res?.otherArea ? shopregionObj[res?.otherArea] : '' } for (let key in res) { if (key.indexOf('_A') > 0) { let newKey: string = key.split('_A')[0] objA[newKey] = res[key] } else if (key.indexOf('_B') > 0) { let newKey: string = key.split('_B')[0] objB[newKey] = res[key] } } // 详情里面本身的服务区数组数据 let detailServerPartList: any = detailObj?.ServerPartInfo if (detailServerPartList && detailServerPartList.length === 2) { detailServerPartList.forEach((item: any) => { if (Number(item.SERVERPART_REGION) === Number(objA.SERVERPART_REGION)) { objA.SERVERPARTINFO_ID = item.SERVERPARTINFO_ID objA.SERVERPART_ID = currenMenu objA.GREENSPACEAREA = item.GREENSPACEAREA objA.SCENICAREA = item.SCENICAREA } if (Number(item.SERVERPART_REGION) === Number(objB.SERVERPART_REGION)) { objB.SERVERPARTINFO_ID = item.SERVERPARTINFO_ID objB.SERVERPART_ID = currenMenu objB.GREENSPACEAREA = item.GREENSPACEAREA objB.SCENICAREA = item.SCENICAREA } }) } else { if (objB.SERVERPART_REGION) { objB.SERVERPARTINFO_ID = detailServerPartList.length[0].SERVERPARTINFO_ID objB.SERVERPART_ID = currenMenu objB.GREENSPACEAREA = detailServerPartList.length[0].GREENSPACEAREA objB.SCENICAREA = detailServerPartList.length[0].SCENICAREA } } console.log('objA', objA); console.log('objB', objB); const req: any = { SERVERPART_ID: detailObj?.SERVERPART_ID, SERVERPART_NAME: res?.SERVERPART_NAME, SERVERPART_ADDRESS: res?.SERVERPART_ADDRESS, SERVERPART_INDEX: res?.SERVERPART_INDEX, EXPRESSWAY_NAME: res?.EXPRESSWAY_NAME, SELLERCOUNT: detailObj?.SELLERCOUNT, SERVERPART_AREA: res?.SERVERPART_AREA, SERVERPART_X: res?.SERVERPART_X, SERVERPART_Y: res?.SERVERPART_Y, SERVERPART_TEL: detailObj?.SERVERPART_TEL, SERVERPART_INFO: res?.SERVERPART_INFO, PROVINCE_CODE: detailObj?.PROVINCE_CODE, SERVERPART_CODE: res?.SERVERPART_CODE, SERVERPART_TYPE: res?.SERVERPART_TYPE, STARTDATE: res?.STARTDATE, OWNEDCOMPANY: res?.OWNEDCOMPANY, FLOORAREA: res?.FLOORAREA, BUSINESSAREA: detailObj?.BUSINESSAREA, SHAREAREA: res?.SHAREAREA, MANAGERCOMPANY: res?.MANAGERCOMPANY, SPREGIONTYPE_ID: detailObj?.SPREGIONTYPE_ID, SPREGIONTYPE_NAME: detailObj?.SPREGIONTYPE_NAME, SPREGIONTYPE_INDEX: detailObj?.SPREGIONTYPE_INDEX, STATISTICS_TYPE: detailObj?.STATISTICS_TYPE, FIELDENUM_ID: detailObj?.FIELDENUM_ID, CITY_CODE: detailObj?.CITY_CODE, COUNTY_CODE: detailObj?.COUNTY_CODE, SERVERPART_IPADDRESS: detailObj?.SERVERPART_IPADDRESS, DAYINCAR: detailObj?.DAYINCAR, HKBL: detailObj?.HKBL, TOTALPARKING: detailObj?.TOTALPARKING, SHORTNAME: detailObj?.SHORTNAME, REGIONTYPE_ID: detailObj?.REGIONTYPE_ID, STATISTIC_TYPE: detailObj?.STATISTIC_TYPE, PROVINCE_NAME: detailObj?.PROVINCE_NAME, REGIONTYPE_NAME: detailObj?.REGIONTYPE_NAME, STAFF_ID: currentUser?.ID, STAFF_NAME: currentUser?.Name, OPERATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'), SERVERPART_DESC: detailObj?.SERVERPART_DESC, OWNERUNIT_ID: detailObj?.OWNERUNIT_ID, OWNERUNIT_NAME: detailObj?.OWNERUNIT_NAME, RtServerPart: { RTSERVERPART_ID: detailObj?.RtServerPart?.RTSERVERPART_ID, SERVERPART_ID: detailObj?.RtServerPart?.SERVERPART_ID, SERVERPART_ADDRESS: res?.SERVERPART_ADDRESS, EXPRESSWAY_NAME: res?.EXPRESSWAY_NAME, SELLERCOUNT: detailObj?.RtServerPart?.SELLERCOUNT, SERVERPART_X: res?.SERVERPART_X, SERVERPART_Y: res?.SERVERPART_Y, SERVERPART_TEL: detailObj?.RtServerPart?.SERVERPART_TEL, STARTDATE: res?.STARTDATE, SERVERPART_AREA: res?.SERVERPART_AREA, FLOORAREA: res?.FLOORAREA, BUSINESSAREA: detailObj?.RtServerPart?.BUSINESSAREA, SHAREAREA: res?.SHAREAREA, TOTALPARKING: detailObj?.RtServerPart?.TOTALPARKING, OWNEDCOMPANY: res?.OWNEDCOMPANY, MANAGERCOMPANY: res?.MANAGERCOMPANY, STAFF_ID: currentUser?.ID, STAFF_NAME: currentUser?.Name, OPERATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'), SERVERPART_INFO: res?.SERVERPART_INFO, CENTERSTAKE_NUM: res?.CENTERSTAKE_NUM, TAXPAYER_IDENTIFYCODE: res?.TAXPAYER_IDENTIFYCODE, WATERINTAKE_TYPE: res?.WATERINTAKE_TYPE, SEWAGEDISPOSAL_TYPE: res?.SEWAGEDISPOSAL_TYPE, BUSINESS_REGION: detailObj?.RtServerPart?.BUSINESS_REGION, }, ServerPartInfo: objB.SERVERPART_REGION ? [objA, objB] : [objA] } console.log('req', req); const data = await handleSynchroSERVERPART(req) let serverpartObj = session.get('serverpartObj') handleSetlogSave(`${serverpartObj && currenMenu && serverpartObj[currenMenu] ? `更新${serverpartObj[currenMenu]}的基础信息` : ""}`) if (res.carryingCapacity) { let carryReq: any = {} if (formDetailAll?.carryingCapacity) { carryReq = { ...formDetailAll.carryingCapacityObj, NOTICEINFO_TYPE: "3020", SERVERPART_ID: currenMenu, FEEDBACK_CONTENT: res.carryingCapacity } } else { carryReq = { NOTICEINFO_TYPE: "3020", SERVERPART_ID: currenMenu, FEEDBACK_CONTENT: res.carryingCapacity } } console.log('carryReq', carryReq); const carryData = await handleSynchroNOTICEINFO(carryReq) console.log('carryData', carryData); } else { if (formDetailAll?.carryingCapacity) { let carryReq: any = { ...formDetailAll.carryingCapacity, FEEDBACK_CONTENT: "" } console.log('carryReq2', carryReq); const carryData = await handleSynchroNOTICEINFO(carryReq) console.log('carryData2', carryData); } } if (data.Result_Code === 100) { message.success(data.Result_Desc) setShowRightForm(false) setTimeout(() => { setShowRightForm(true) }, 1000) } else { message.error(data.Result_Desc) } } // 生成左侧菜单 const getMenuDom = (data: any[], callback: (item: any) => void) => { return (data.map((element: any) => { if (element.node) { // 绑定当前节点的子集 if (element.node.children && element.node.children.length > 0) { return ( {element.node.label} {/* [{element.node.desc}] */} : element.node.label} icon={element.node.ico ? : null} key={`${element.node.key || element.node.value}`} onTitleClick={(item) => { // 选中一级菜单 if (!currenMenu || item.key !== `${currenMenu?.key}`) { callback.call(callback, item) } item.domEvent.stopPropagation(); }} > {element.node.children && element.node.children.length > 0 && getMenuDom(element.node.children, callback)} ) } // 绑定嵌套树的子节点 if (element.children && element.children.length > 0) { return ( : null} key={`${element.node.key || element.node.value}`} onTitleClick={(item) => { // 选中一级菜单 if (!currenMenu || item.key !== `${currenMenu?.key}`) { callback.call(callback, item) } item.domEvent.stopPropagation(); }} > {element.children && element.children.length > 0 && getMenuDom(element.children, callback)} ) } return ( : null} key={`${element.node.key || element.node.value}`}> {element.node.desc !== '0' ? <>{element.node.label} {/* [{element.node.desc}] */} : element.node.label}) } // 绑定嵌套树的子节点 if (element.children && element.children.length > 0) { return ( {element.label} {/* [{element.desc}] */} : element.label} icon={element.ico ? : null} key={`${element.key || element.value}`} onTitleClick={(item) => { // 选中一级菜单 if (!currenMenu || item.key !== `${currenMenu?.key}`) { callback.call(callback, item) } item.domEvent.stopPropagation(); }} > {element.children && element.children.length > 0 && getMenuDom(element.children, callback)} ) } return ( : null} key={`${element.key || element.value}`}>{element.desc !== '0' ? <>{element.label} {/* [{element.desc}] */} : element.label}) })) } // 拿到树形的第一个数据 interface TreeNode { [key: string]: any; children?: TreeNode[]; } type TreeData = TreeNode | TreeNode[] | any; const handleGetTreeFirst = (node: TreeData): TreeData[] => { // 处理数组情况 if (Array.isArray(node)) { return node.length > 0 ? handleGetTreeFirst(node[0]) : []; } // 处理对象情况 else if (typeof node === 'object' && node !== null) { // 如果没有children或者children为空,返回包含当前节点的数组 if (!node.children || node.children.length === 0) { return [node]; } // 否则递归处理第一个子节点,并将当前节点添加到结果数组前面 const childResult = handleGetTreeFirst(node.children[0]); return [node, ...childResult]; } // 基本数据类型直接返回包含该值的数组 return [node]; }; // 筛选左侧的服务区树 const handleFilterServiceTree = async (value?: string) => { if (value) { setShowLeftTreeData(false) setTreeView([]) setTimeout(() => { let treeViewData: any = JSON.parse(JSON.stringify(menuData)) let res = handleSearch(treeViewData, value) console.log('resresresres', res); let keyList: any = [] if (res && res.length > 0) { res.forEach((item: any) => { keyList.push(item.key) }) setDefaultOpenKeys(keyList) setTreeView(res) setCurrenMenu("") setSelectedId('') setCurrenRegion('') setShowLeftTreeData(true) } }, 10) } else { setTreeView(menuData) } console.log('valuevaluevaluevalue', value); console.log('treeView', treeView); console.log('menuData', menuData); } // 搜索方法 const handleSearch = (tree: any, searchLabel: string): TreeNode[] => { const results: TreeNode[] = []; // 处理数组情况(遍历每棵树) if (Array.isArray(tree)) { for (const node of tree) { const nodeResults = handleSearch(node, searchLabel); if (nodeResults.length > 0) { results.push(...nodeResults); } } return results; } // 检查当前节点是否是叶子节点且label匹配 const isLeaf = !tree.children || tree.children.length === 0; if (isLeaf && tree.label.includes(searchLabel)) { return [{ ...tree }]; // 返回当前节点的副本(作为一条独立路径) } // 如果不是叶子节点,递归检查子节点 if (tree.children && tree.children.length > 0) { const matchedChildren: TreeNode[] = []; for (const child of tree.children) { const childResults = handleSearch(child, searchLabel); if (childResults.length > 0) { matchedChildren.push(...childResults); } } // 如果有匹配的子节点,构造当前节点 + 所有匹配的子路径 if (matchedChildren.length > 0) { return [{ ...tree, children: matchedChildren, // 保留所有匹配的子节点(不拆分) }]; } } return results; // 默认返回空数组(无匹配) } return (
{ setShowServiceSearchBox(true) }} /> { setCollapsible(!collapsible); }} />
{ return [] } }} isKeyPressSubmit onFinish={(values: any) => { return handleFilterServiceTree(values?.searchValue || '') }} > { setShowServiceSearchBox(false) }} />
} colSpan={!collapsible ? "300px" : "60px"} title={!collapsible ? "请选择服务区" : ""} headerBordered collapsed={collapsible} > {showLeftTreeData && { loadSelectedId(item) }} defaultOpenKeys={defaultOpenKeys} > {getMenuDom(treeView, loadSelectedId)} } {/* {treeView && treeView.length > 0 ? { setShowRightForm(false) const selectedIds = info.selectedNodes.filter((n: any) => n?.type === 1) console.log('selectedIds', selectedIds); setSelectedId(selectedIds.map(n => n?.value)?.toString() || '') console.log('serverPartRef', serverPartRef.current?.formRef); if (selectedIds && selectedIds.length > 0) { setTimeout(() => { setShowRightForm(true) }, 1000) } else { setTimeout(() => { setShowRightForm(true) }, 1) serverPartRef.current?.formRef.current?.setFieldsValue({}) } }} /> : ''} */}
{ showRightForm ? : }
{/* 上传设施图片 */} {/* 点击的按钮类型 1 服务区图片上传 2 母婴室图片上传 3 司机之家图片上传 4 住宿客房图片上传 5 便利店图片上传 */} { currenMenu ?
{/* */}
: "" } { currenMenu ? : '' }
{/* 图片预览组件 */} {fileList && fileList.length > 0 &&
{ handleChangePreview(vis) } }}> { fileList.map((n) => ) }
} {/* */} { if (disabled) { setDraggleDisabled(false) } }} onMouseOut={() => { setDraggleDisabled(true) }} onFocus={() => { }} onBlur={() => { }} > 服务区设施图片上传 {/* {showType === 1 ? '服务区图片' : showType === 2 ? '母婴室图片' : showType === 3 ? '司机之家图片' : showType === 4 ? '住宿客房图片' : showType === 5 ? '便利店图片' : ''} */} } destroyOnClose={true} width={900} bodyStyle={{ height: '700px', // 你可以根据需要调整高度 overflowY: 'auto', }} visible={showUploadImgModal} confirmLoading={confirmLoading} onCancel={() => { setConfirmLoading(false) setShowType(0) setShowUploadImgModal(false); setFileList([]) setSelectActiveKey('1') }} onOk={async () => { console.log('file', fileList); let form: any = await modalRef.current?.getFieldsValue({}) console.log('formDataformDataformData', form); // 判断这次上传图片了没 if (form.SCENICAREA_Image && form.SCENICAREA_Image.length > 0) { const formData = new FormData(); form.SCENICAREA_Image.forEach((file: any) => { formData.append('files[]', file.originFileObj); formData.append('ImageName', typeof file !== 'string' ? file?.name : ''); }); formData.append('TableId', currenMenu!); formData.append('imageType', selectActiveKey === '1' ? '' : selectActiveKey === '2' ? '1001' : selectActiveKey === '3' ? '1002' : selectActiveKey === '4' ? '2001' : selectActiveKey === '5' ? '2002' : ''); formData.append('TableType', selectActiveKey === '1' ? '1123' : selectActiveKey === '2' ? '1131' : selectActiveKey === '3' ? '1131' : selectActiveKey === '4' ? '1131' : selectActiveKey === '5' ? '1131' : ''); console.log('formData', formData); let res = await uploadPicture(formData) console.log('resresresres', res); let serverpartObj = session.get('serverpartObj') if (res.Result_Code === 100) { message.success("上传成功!") handleSetlogSave(`更新【${serverpartObj && currenMenu && serverpartObj[currenMenu] ? `${serverpartObj[currenMenu]}基础信息` : ""}${selectActiveKey === '1' ? '服务区图片' : selectActiveKey === '2' ? '母婴室图片' : selectActiveKey === '3' ? '司机之家图片' : selectActiveKey === '4' ? '住宿客房图片' : selectActiveKey === '5' ? '便利店图片' : ''}】`) setConfirmLoading(false) setShowType(0) setShowUploadImgModal(false); setSelectActiveKey('1') setFileList([]) setShowRightForm(false) setTimeout(() => { setShowRightForm(true) }, 1000) } else { message.error(res.Result_Desc) } } else { setConfirmLoading(false) setShowType(0) setShowUploadImgModal(false); setFileList([]) setSelectActiveKey('1') } }} modalRender={(modal) => { return onDraggaleStart(event, uiData)} handle='.scenicSpotConfig' >
{modal}
}} > { setSelectActiveKey(e) }} activeKey={selectActiveKey} items={[ { label: `服务区`, key: '1', }, { label: `母婴室`, key: '2', }, { label: `司机之家`, key: '3', }, { label: `住宿客房`, key: '4', }, { label: `便利店`, key: '5', }, ]} /> { console.log('selectActiveKey', selectActiveKey); let req: any = { TableId: currenMenu, TableName: selectActiveKey === '1' ? 'SERVERPART' : selectActiveKey === '2' ? 'SERVERPARTINFO' : selectActiveKey === '3' ? 'SERVERPARTINFO' : selectActiveKey === '4' ? 'SERVERPARTINFO' : selectActiveKey === '5' ? 'SERVERPARTINFO' : '', TableType: selectActiveKey === '1' ? '1123' : selectActiveKey === '2' ? '1131' : selectActiveKey === '3' ? '1131' : selectActiveKey === '4' ? '1131' : selectActiveKey === '5' ? '1131' : '', ImageType: selectActiveKey === '1' ? '' : selectActiveKey === '2' ? '1001' : selectActiveKey === '3' ? '1002' : selectActiveKey === '4' ? '2001' : selectActiveKey === '5' ? '2002' : '', } const data = await handeGetPictureList(req) console.log('datadatadatadata', data); let list: any = [] if (data.List && data.List.length > 0) { data.List.forEach((item: any) => { let obj = JSON.parse(JSON.stringify(item)) obj.url = obj.ImageUrl obj.name = obj.ImageName obj.uid = item.ImageId obj.status = 'done' list.push(obj) }) } setFileList(list); return { SCENICAREA_Image: list } }} > { console.log('info', info); console.log('fileList', fileList); if (info.file.status === 'removed') { const index = fileList.findIndex(n => n.uid === info.file.uid); confirm({ title: '确认删除该文件吗?', icon: , async onOk() { if (info.file.ImageId) { const deleteLoading = message.loading('正在删除...') const success = await deletePicture(info.file?.ImagePath, info.file?.uid, selectActiveKey === '1' ? 'SERVERPART' : selectActiveKey === '2' ? 'SERVERPARTINFO' : selectActiveKey === '3' ? 'SERVERPARTINFO' : selectActiveKey === '4' ? 'SERVERPARTINFO' : selectActiveKey === '5' ? 'SERVERPARTINFO' : '', selectActiveKey === '1' ? '1123' : selectActiveKey === '2' ? '1131' : selectActiveKey === '3' ? '1131' : selectActiveKey === '4' ? '1131' : selectActiveKey === '5' ? '1131' : '') deleteLoading() if (success) { const files = [...fileList] files.splice(index, 1) setFileList(files) message.success("删除成功") } else { message.error("删除失败") } } else { const files = [...fileList]; files.splice(index, 1); setFileList(files); } }, onCancel() { }, }); } else { setFileList(info.fileList) } } }} />
) } export default connect(({ user }: ConnectState) => ({ currentUser: user.currentUser }))(serverpartInfo);