config.data.ts 4.39 KB
import { BasicColumn, FormSchema } from '/@/components/Table';
import moment from 'moment';
import { h } from 'vue';
import { Tag } from 'ant-design-vue';

// 表格数据
export const columns: BasicColumn[] = [
  {
    title: '设备名称',
    dataIndex: 'deviceName',
    width: 120,
  },
  {
    title: '设备配置',
    dataIndex: 'deviceConfig',
    width: 120,
  },
  {
    title: '设备类型',
    dataIndex: 'entityType',
    width: 180,
  },
  {
    title: '所属组织',
    dataIndex: 'orgName',
    width: 120,
  },
  {
    title: '状态',
    dataIndex: 'status',
    width: 180,
    customRender: ({ record }) => {
      const status = record.status;
      const enable = status === 'SUCCESS' ? '启用' : '禁用';
      const color = enable === '启用' ? 'green' : 'red';
      const text = enable === '启用' ? '启用' : '禁用';
      return h(Tag, { color }, () => text);
    },
  },
  {
    title: '时间',
    dataIndex: 'createTime',
    width: 180,
  },
];

// 分页查询
export const searchFormSchema: FormSchema[] = [
  {
    field: 'deviceName',
    label: '设备名称',
    component: 'Input',
    componentProps: {
      maxLength: 255,
      placeholder: '请输入设备名称',
    },
    dynamicRules: () => {
      return [
        {
          required: false,
          validator: (_, value) => {
            if (String(value).length > 255) {
              return Promise.reject('字数不超过255个字');
            }
            return Promise.resolve();
          },
        },
      ];
    },

    colProps: { span: 6 },
  },
  {
    field: 'status',
    label: '状态',
    colProps: { span: 6 },
    component: 'Select',
    componentProps: {
      placeholder: '请选择状态',
      options: [
        {
          label: '启用',
          value: 'NOTICE',
        },
        {
          label: '禁用',
          value: 'MEETING',
        },
      ],
    },
  },
  {
    field: 'queryTime',
    label: '查询时间',
    component: 'RangePicker',
    componentProps: {
      showTime: {
        defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')],
      },
    },
    colProps: { span: 6 },
  },
];

// 详情配置
export const formSchema: FormSchema[] = [
  {
    field: 'deviceName',
    label: '设备名称',
    component: 'Input',
    componentProps: {
      disabled: true,
    },
  },
  {
    field: 'deviceConfig',
    label: '设备配置',
    component: 'Input',
    componentProps: {
      disabled: true,
    },
  },
  {
    field: 'entityType',
    label: '设备类型',
    component: 'Input',
    componentProps: {
      disabled: true,
    },
  },
  {
    field: 'orgName',
    label: '所属组织',
    component: 'Input',
    componentProps: {
      disabled: true,
    },
  },
  {
    field: 'status',
    label: '状态',
    component: 'Input',
    componentProps: {
      disabled: true,
    },
  },
  {
    field: 'createTime',
    label: '时间',
    colProps: { span: 24 },
    component: 'Input',
    componentProps: {
      disabled: true,
    },
  },
];

export const mockList = [
  {
    deviceName: '网关/直连设备',
    id: '2d2321s122131',
    deviceConfig: '车车网关设备配置',
    entityType: '网关',
    orgName: 'cheche',
    status: 'SUCCESS',
    createTime: '2022-12-22 16:25:36',
  },
  {
    deviceName: '网关/直连设备',
    id: '2d22321s12131',
    deviceConfig: '车车网关设备配置',
    entityType: '网关',
    orgName: 'cheche',
    status: 'SUCCESS',
    createTime: '2022-12-22 16:25:36',
  },
  {
    deviceName: '网关/直连设备',
    id: '2d232d1s12131',
    deviceConfig: '车车网关设备配置',
    entityType: '网关',
    orgName: 'cheche',
    status: 'SUCCESS',
    createTime: '2022-12-22 16:25:36',
  },
  {
    deviceName: '网关/直连设备',
    id: '2d2321fs12131',
    deviceConfig: '车车网关设备配置',
    entityType: '网关',
    orgName: 'cheche',
    status: 'SUCCESS',
    createTime: '2022-12-22 16:25:36',
  },
  {
    deviceName: '网关/直连设备',
    id: '2d2321ggs12131',
    deviceConfig: '车车网关设备配置',
    entityType: '网关',
    orgName: 'cheche',
    status: 'SUCCESS',
    createTime: '2022-12-22 16:25:36',
  },
  {
    deviceName: '网关/直连设备',
    id: '2d2321hhs12131',
    deviceConfig: '车车网关设备配置',
    entityType: '网关',
    orgName: 'cheche',
    status: 'FATURE',
    createTime: '2022-12-22 16:25:36',
  },
];