import React, { useState } from 'react'; import type { DeviceInstance } from '@/pages/device/Instance/typings'; import { StatusColorEnum } from '@/components/BadgeStatus'; import { TableCard } from '@/components'; import '@/style/common.less'; import '../index.less'; import { DisconnectOutlined } from '@ant-design/icons'; import { Popconfirm, Tooltip } from 'antd'; import { useIntl } from '@@/plugin-locale/localeExports'; export interface DeviceCardProps extends Partial { detail?: React.ReactNode; actions?: React.ReactNode[]; avatarSize?: number; className?: string; content?: React.ReactNode[]; onClick?: () => void; grantedPermissions?: string[]; onUnBind?: (e: any) => void; showBindBtn?: boolean; cardType?: 'bind' | 'unbind'; } const defaultImage = require('/public/images/device-type-3-big.png'); export const PermissionsMap = { read: '查看', save: '编辑', delete: '删除', }; export const handlePermissionsMap = (permissions?: string[]) => { return permissions && permissions.length ? permissions.map((item) => PermissionsMap[item]).toString() : ''; }; export const ExtraDeviceCard = (props: DeviceCardProps) => { const intl = useIntl(); const [imgUrl, setImgUrl] = useState(props.photoUrl || defaultImage); return (
{''} { setImgUrl(defaultImage); }} />
{props.name}
{props.id || ''}
{props.cardType === 'bind' ? (
{props.describe}
) : (
{handlePermissionsMap(props.grantedPermissions)}
)} {props.showBindBtn !== false && ( { e?.stopPropagation(); if (props.onUnBind) { props.onUnBind(e); } }} >
)}
); }; export default (props: DeviceCardProps) => { return (
{''}
{props.name}
{props.deviceType ? props.deviceType.text : ''}
{props.productName || ''}
); };