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

//列表数据
export const columns: BasicColumn[] = [
  {
    title: '上级id',
    align: 'center',
    dataIndex: 'parentid'
  },
  {
    title: '素材名称',
    align: 'center',
    dataIndex: 'name'
  },
  {
    title: '素材大小',
    align: 'center',
    dataIndex: 'size'
  },
  {
    title: '素材类型 img:素材图片；component:组建;model3d:3D',
    align: 'center',
    dataIndex: 'type'
  },
  {
    title: '图片路径',
    align: 'center',
    dataIndex: 'iconUrl'
  },
  {
    title: '层级默认为第一层',
    align: 'center',
    dataIndex: 'level'
  },
  {
    title: '是否公开',
    align: 'center',
    dataIndex: 'isPublic'
  },
  {
    title: '是否文件夹',
    align: 'center',
    dataIndex: 'folder'
  },
  {
    title: '描述',
    align: 'center',
    dataIndex: 'description'
  },
  {
    title: '0:正常 1：删除',
    align: 'center',
    dataIndex: 'delFlag'
  },
  {
    title: '所属租户',
    align: 'center',
    dataIndex: 'tenantId'
  },
  {
    title: '创建人登录名称',
    align: 'center',
    dataIndex: 'createBy'
  },
  {
    title: '创建日期',
    align: 'center',
    dataIndex: 'createTime'
  },
  {
    title: '更新人登录名称',
    align: 'center',
    dataIndex: 'updateBy'
  },
  {
    title: '更新日期',
    align: 'center',
    dataIndex: 'updateTime'
  },
  {
    title: '版本号',
    align: 'center',
    dataIndex: 'version'
  }
];
//查询数据
export const searchFormSchema: FormSchema[] = [
  {
    label: '上级id',
    field: 'parentid',
    component: 'Input'
  },
  {
    label: '素材名称',
    field: 'name',
    component: 'Input'
  },
  {
    label: '素材大小',
    field: 'size',
    component: 'Input'
  },
  {
    label: '素材类型 img:素材图片；component:组建;model3d:3D',
    field: 'type',
    component: 'Input'
  },
  {
    label: '图片路径',
    field: 'iconUrl',
    component: 'Input'
  },
  {
    label: '层级默认为第一层',
    field: 'level',
    component: 'Input'
  },
  {
    label: '是否公开',
    field: 'isPublic',
    component: 'Input'
  },
  {
    label: '是否文件夹',
    field: 'folder',
    component: 'Input'
  },
  {
    label: '描述',
    field: 'description',
    component: 'Input'
  },
  {
    label: '0:正常 1：删除',
    field: 'delFlag',
    component: 'Input'
  },
  {
    label: '所属租户',
    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'
  }
];
//表单数据
export const formSchema: FormSchema[] = [
  {
    label: '上级id',
    field: 'parentid',
    component: 'Input'
  },
  {
    label: '素材名称',
    field: 'name',
    component: 'Input',
    dynamicRules: () => {
      return [{ required: true, message: '请输入素材名称!' }];
    }
  },
  {
    label: '素材大小',
    field: 'size',
    component: 'Input'
  },
  {
    label: '素材类型 img:素材图片；component:组建;model3d:3D',
    field: 'type',
    component: 'Input',
    dynamicRules: () => {
      return [{ required: true, message: '请输入素材类型 img:素材图片；component:组建;model3d:3D!' }];
    }
  },
  {
    label: '图片路径',
    field: 'iconUrl',
    component: 'InputTextArea'
  },
  {
    label: '层级默认为第一层',
    field: 'level',
    component: 'Input',
    dynamicRules: () => {
      return [{ required: true, message: '请输入层级默认为第一层!' }];
    }
  },
  {
    label: '是否公开',
    field: 'isPublic',
    component: 'Input'
  },
  {
    label: '是否文件夹',
    field: 'folder',
    component: 'Input'
  },
  {
    label: '描述',
    field: 'description',
    component: 'Input'
  },
  {
    label: '0:正常 1：删除',
    field: 'delFlag',
    component: 'Input',
    dynamicRules: () => {
      return [{ required: true, message: '请输入0:正常 1：删除!' }];
    }
  },
  {
    label: '所属租户',
    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;
}
