config.ts 2.07 KB
import { Tag } from 'ant-design-vue';
import { h } from 'vue';
import { DescItem } from '/@/components/Description/src/typing';
import { handeleCopy } from '/@/views/device/profiles/step/topic';
import { formatToDateTime } from '/@/utils/dateUtil';
import { useI18n } from '/@/hooks/web/useI18n';

const { t } = useI18n();
export const descSchema = (): DescItem[] => {
  return [
    {
      field: 'name',
      label: t('edge.instance.text.edgeName'),
    },
    {
      field: 'label',
      label: t('edge.instance.text.deviceLabel'),
      render: (text) => {
        return text
          ? h(
              Tag,
              {
                color: '#00B42A',
              },
              text
            )
          : '';
      },
    },
    {
      field: 'active',
      label: t('edge.instance.text.status'),
      render: (text) => {
        const color = text ? 'success' : 'error';
        const textStr = text ? t('edge.instance.text.online') : t('edge.instance.text.offline');
        return h(
          Tag,
          {
            color,
          },
          textStr
        );
      },
    },
    {
      field: 'routingKey',
      label: t('edge.instance.text.edgeKey'),
      render: (text) => {
        return h(
          'span',
          {
            style: { cursor: 'pointer', color: '#165DFF' },
            onClick: () => {
              handeleCopy(text);
            },
          },
          text
        );
      },
    },
    {
      field: 'secret',
      label: t('edge.instance.text.edgeSecret'),
      render: (text) => {
        return h(
          'span',
          {
            style: { cursor: 'pointer', color: '#165DFF' },
            onClick: () => {
              handeleCopy(text);
            },
          },
          text
        );
      },
    },
    {
      field: 'createdTime',
      label: t('edge.instance.text.createTime'),
      render: (_, data) => {
        return formatToDateTime(data.createdTime, 'YYYY-MM-DD HH:mm:ss');
      },
    },
    {
      field: 'additionalInfo.description',
      label: t('edge.instance.text.desc'),
    },
  ];
};