data.ts 1.96 KB
import { FormSchema } from '/@/components/Form';
import { findDictItemByCode } from '/@/api/system/dict';
import { deviceProfile } from '/@/api/device/deviceManager';
import { getOrganizationList } from '/@/api/system/system';
import { copyTransFun } from '/@/utils/fnUtils';
// 第一步的表单
export const step1Schemas: FormSchema[] = [
  {
    field: 'icon',
    label: '设备图片',
    slot: 'iconSelect',
    component: 'Input',
  },
  {
    field: 'name',
    label: '设备名称',
    required: true,
    component: 'Input',
    componentProps: {
      maxLength: 30,
    },
  },
  {
    field: 'deviceType',
    label: '设备类型',
    required: true,
    component: 'ApiSelect',
    componentProps: {
      api: findDictItemByCode,
      params: {
        dictCode: 'device_type',
      },
      labelField: 'itemText',
      valueField: 'itemValue',
    },
  },
  {
    field: 'profileId',
    label: '设备配置',
    required: true,
    component: 'ApiSelect',
    componentProps: {
      api: deviceProfile,
      labelField: 'name',
      valueField: 'id',
    },
  },
  {
    field: 'organizationId',
    required: true,
    label: '所属组织',
    component: 'ApiTreeSelect',
    componentProps: {
      api: async () => {
        const data = await getOrganizationList();
        copyTransFun(data as any as any[]);
        return data;
      },
    },
  },
  {
    field: 'label',
    label: '设备标签',
    component: 'Input',
    componentProps: {
      maxLength: 255,
    },
  },
  {
    field: 'deviceAddress',
    label: '设备位置',
    component: 'Input',
    slot: 'deviceAddress',
  },
  {
    field: 'remark',
    label: '备注',
    component: 'InputTextArea',
  },
  {
    field: 'id',
    label: 'id',
    component: 'Input',
    show: false,
  },
  {
    field: 'deviceToken',
    label: '设备唯一token',
    component: 'Input',
    show: false,
  },
  {
    field: 'tenantId',
    label: '租户Code',
    component: 'Input',
    show: false,
  },
];