import { BasicColumn, FormSchema } from '@jdlinker/ui';

//列表数据
export const columns: BasicColumn[] = [
  {
    title: '项目名称',
    align: 'center',
    dataIndex: 'name'
  },
  {
    title: '分组',
    align: 'center',
    dataIndex: 'groupId'
  },
  {
    title: '类型',
    align: 'center',
    dataIndex: 'type'
  },
  {
    title: '状态',
    align: 'center',
    dataIndex: 'released'
  }
];
//查询数据
export const searchFormSchema: FormSchema[] = [
  {
    label: '项目名称',
    field: 'name',
    component: 'Input'
  },
  {
    label: '类型',
    field: 'type',
    component: 'JDictSelectTag',
    componentProps: {
      dictCode: 'visualType'
    }
  },
  {
    label: '状态',
    field: 'released',
    component: 'JDictSelectTag',
    componentProps: {
      dictCode: 'publish_status'
    }
  }
];
//表单数据
export const formSchema: FormSchema[] = [
  {
    label: '名称',
    field: 'name',
    component: 'Input',
    dynamicRules: () => {
      return [{ required: true, message: '请输入名称!' }];
    }
  },
  {
    label: '分组',
    field: 'groupId',
    component: 'Input'
  },
  {
    label: '类型 screen:大屏；config:组态;model3d:3D',
    field: 'type',
    component: 'Input',
    dynamicRules: () => {
      return [{ required: true, message: '请输入类型 screen:大屏；config:组态;model3d:3D!' }];
    }
  },
  {
    label: '是否已发布 0:未发布；1：已发布',
    field: 'released',
    component: 'Input'
  },
  {
    label: '配置信息',
    field: 'config',
    component: 'InputTextArea'
  },
  {
    label: '编码',
    field: 'code',
    component: 'Input'
  },
  {
    label: '图片路径',
    field: 'iconUrl',
    component: 'InputTextArea'
  },
  {
    label: '0:正常 1：删除',
    field: 'delFlag',
    component: 'Input',
    dynamicRules: () => {
      return [{ required: true, message: '请输入0:正常 1：删除!' }];
    }
  },
  {
    label: '租户ID',
    field: 'tenantId',
    component: 'Input'
  },
  {
    label: '创建人登录名称',
    field: 'createBy',
    component: 'Input'
  },
  {
    label: '创建日期',
    field: 'createTime',
    component: 'DatePicker',
    componentProps: {
      showTime: true,
      valueFormat: 'YYYY-MM-DD HH:mm:ss'
    }
  },
  {
    label: '更新人登录名称',
    field: 'updateBy',
    component: 'Input'
  },
  {
    label: '更新日期',
    field: 'updateTime',
    component: 'DatePicker',
    componentProps: {
      showTime: true,
      valueFormat: 'YYYY-MM-DD HH:mm:ss'
    }
  },
  {
    label: '版本号',
    field: 'version',
    component: 'Input',
    dynamicRules: () => {
      return [{ required: true, message: '请输入版本号!' }];
    }
  },
  // TODO 主键隐藏字段，目前写死为ID
  {
    label: '',
    field: 'id',
    component: 'Input',
    show: false
  }
];

/**
 * 流程表单调用这个方法获取formSchema
 * @param _formData
 */
export function getBpmFormSchema(_formData): FormSchema[] {
  // 默认和原始表单保持一致 如果流程中配置了权限数据，这里需要单独处理formSchema
  return formSchema;
}
