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 } 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; } 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 || '--'}
{handlePermissionsMap(props.grantedPermissions)}
{ e?.stopPropagation(); if (props.onUnBind) { props.onUnBind(e); } }} >
); }; export default (props: DeviceCardProps) => { return (
{''}
{props.name}
{props.deviceType ? props.deviceType.text : '--'}
{props.productName || '--'}
); };