import { BindAllPermission, Tips } from '@/components'; import ExpandIcon from '@/components/ExpandIcon'; import { ExclamationCircleOutlined } from '@ant-design/icons'; import { Table, Tooltip, Typography } from 'antd'; import type { ColumnsType } from 'antd/lib/table'; import _ from 'lodash'; import moment from 'moment'; import { useMemo } from 'react'; import { FormattedMessage, useIntl } from 'umi'; import publicConst from '../../utils/const'; const { DataSensitiveLevelTips, DataSensitiveTips } = Tips; export interface PackageCardProps { dataSource: any[]; type: 'feature' | 'option' | 'policy' | 'role' | 'city'; } const PackageCard = (props: PackageCardProps) => { const { dataSource, type } = props; const { formatMessage } = useIntl(); const columns = useMemo>(() => { const { DataSensitiveMap, DataSensitiveLevelMap } = publicConst(formatMessage); return [ { title: formatMessage({ id: `base.common.${type}.permission` }), dataIndex: 'name', width: 400, render: (__, record) => { const { id, name, appId } = record; return ( <> {name} {type === 'role' && ( )} ); }, }, { title: , dataIndex: 'appName', width: 400, }, { title: ( <> {formatMessage({ id: 'pages.funcList.sensitiveLevel' })} ), dataIndex: 'dataSensitive', render: (__, record) => DataSensitiveLevelMap[record.dataSensitive]?.text ?? '', }, { title: ( <> {formatMessage({ id: 'pages.funcList.sensitivity' })} ), dataIndex: 'sensitiveLevel', render: (__, record) => DataSensitiveMap[record.sensitiveLevel]?.text ?? '', }, { title: formatMessage({ id: 'pages.process.expiration' }), dataIndex: 'expiredAt', render: (__, record) => { const { expiredAt } = record ?? {}; return ( _.isNumber(expiredAt) && ( {expiredAt === 0 ? formatMessage({ id: 'pages.setting.base.defaultExpirationTime.forever' }) : moment(expiredAt * 1000).format('YYYY-MM-DD HH:mm:ss')} ) ); }, }, ]; }, [formatMessage, type]); return ( [row.id, row.uniqueKey, row.uacAuditId].filter((k) => !!k).join('_')} columns={columns} pagination={false} dataSource={dataSource} /> ); }; export default PackageCard;