@tntd/reference
Version:
<!-- * @Author: 周泽飞 zefei.zhou@tongdun.net * @Date: 2024-12-03 10:07:54 * @LastEditors: 郑泳健 * @LastEditTime: 2026-01-20 15:55:03 * @FilePath: /tntd3/packages/reference/README.md * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: http
104 lines (100 loc) • 3.19 kB
JavaScript
import { WrapLocaleReceiver } from '../I18N';
import React, { useEffect, useState } from 'react';
import { Drawer, Spin, Tooltip, message, Collapse, Tag, Empty, Ellipsis } from "tntd";
import ReferenceInfo from '../ReferenceInfo';
const { Panel } = Collapse;
export default WrapLocaleReceiver((props) => {
const {
fetchReference,
data = null,
orgMap = {},
appList = [],
title,
visible,
onClose,
value = undefined,
onChange = () => {},
emptyType,
showPagination,
destroyOnClose = true,
jumpFun,
iframeJump,
I18N,
...rest
} = props;
const [referenceData, setReferenceData] = useState(data);
const [referenceLoad, setReferenceLoad] = useState(!data);
useEffect(() => {
if (visible && fetchReference) {
fetchReference()
.then((res) => {
if (res?.success && res?.data) {
setReferenceData(res?.data || []);
}
if (!res?.success) {
message.error(res.message || I18N.referencebatchdrawer.index.chaXunYinYongGuan);
}
})
.finally(() => {
setReferenceLoad(false);
});
}
}, [visible, fetchReference]);
return (
<Drawer
className="reference-drawer"
width={650}
title={typeof title==='string' ? <Ellipsis title={title || ''}/>:title}
onClose={onClose}
visible={visible}
destroyOnClose={destroyOnClose}
showFooter={false}
{...rest}
>
{referenceLoad && <Spin className="globalSpin" tip={I18N.referencebatchdrawer.index.chaXunZhong} />}
{(!referenceLoad && referenceData.length && (
<div className="drawer-reference-body">
<Collapse defaultActiveKey={value || [0]} onChange={onChange}>
{referenceData?.map((d, i) => {
let headerTxt = d?.componentName;
if (d?.componentCode) {
headerTxt += `[${d?.componentCode}]`;
}
return (
<Panel
header={
<div className="refer-panel-head">
<Tooltip title={headerTxt} placement="topLeft">
<span>{headerTxt}</span>
</Tooltip>
{d?.componentVersion && <Tag color="green">V{d?.componentVersion}</Tag>}
</div>
}
key={i}
>
<ReferenceInfo
jumpFun={jumpFun}
iframeJump={iframeJump}
emptyType={emptyType}
from="ReferenceBatchCheck"
unmountHandle={() => {}}
referenceData={d?.result || []}
orgMap={orgMap}
appList={appList}
showPagination={showPagination}
/>
</Panel>
);
})}
</Collapse>
</div>
)) || (
<Empty
description={I18N.referencebatchdrawer.index.zanWuShuJu}
image={Empty.PRESENTED_IMAGE_SIMPLE}
imageStyle={{ marginTop: 120 }}
/>
)}
</Drawer>
);
});