|
|
import { Request, Response } from 'express';
|
|
|
|
|
|
const getDataSource = (req: Request, res: Response) => {
|
|
|
const { key = '' , schema = '', data = ''} = req.query;
|
|
|
switch (key) {
|
|
|
case 'users':
|
|
|
res.json({
|
|
|
data: [
|
|
|
{
|
|
|
uid: '1',
|
|
|
name: 'John Brown',
|
|
|
age: 32,
|
|
|
address: 'New York No. 1 Lake Park',
|
|
|
idcard: '220101190101012001'
|
|
|
},
|
|
|
{
|
|
|
uid: '2',
|
|
|
name: 'Jim Green',
|
|
|
age: 42,
|
|
|
address: 'London No. 1 Lake Park',
|
|
|
idcard: '220101190101012002'
|
|
|
},
|
|
|
{
|
|
|
uid: '3',
|
|
|
name: 'Joe Black',
|
|
|
age: 32,
|
|
|
address: 'Sidney No. 1 Lake Park',
|
|
|
idcard: '220101190101012003'
|
|
|
}
|
|
|
]
|
|
|
})
|
|
|
break;
|
|
|
/*
|
|
|
* 考点数据
|
|
|
*/
|
|
|
case 'examination':
|
|
|
let obj = {};
|
|
|
if( schema === 'true' ){
|
|
|
obj = {
|
|
|
data: [
|
|
|
/*{ title: '序号',
|
|
|
dataIndex: 'index',
|
|
|
valueType: 'indexBorder',
|
|
|
width: 48
|
|
|
},*/
|
|
|
{
|
|
|
key: 'code', // 确定这个列的唯一值,一般用于 dataIndex 重复的情况
|
|
|
dataIndex: 'code', // 与实体映射的 key,数组会被转化 [a,b] => Entity.a.b
|
|
|
valueType: 'text', // 数据的渲渲染方式,我们自带了一部分,你可以可以自定义 valueType 参照 https://procomponents.ant.design/components/schema/
|
|
|
title: '考点代码', // 标题的内容,在 form 中是 label
|
|
|
tooltip: '参照准考证考点', // 会在 title 旁边展示一个 icon,鼠标浮动之后展示
|
|
|
valueEnum: '', // 支持 object 和 Map,Map 是支持其他基础类型作为 key
|
|
|
fieldProps: '', // 传给渲染的组件的 props,自定义的时候也会传递
|
|
|
formItemProps: {
|
|
|
// 参照 https://ant.design/components/form-cn/#Rule
|
|
|
rules: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: '此项为必填项',
|
|
|
},
|
|
|
{
|
|
|
max: 6,
|
|
|
message: '最大长度为6字符',
|
|
|
}
|
|
|
],
|
|
|
}, // 传递给 Form.Item 的配置
|
|
|
proFieldProps: '', // 设置到 ProField 上面的 props,内部属性
|
|
|
//renderText: '', // 修改的数据是会被 valueType 定义的渲染组件消费
|
|
|
//render: '', // 自定义只读模式的 dom,render 方法只管理的只读模式,编辑模式需要使用 renderFormItem
|
|
|
//renderFormItem: '', // 自定义编辑模式,返回一个 ReactNode,会自动包裹 value 和 onChange
|
|
|
request: null, // 从远程请求网络数据,一般用于选择类组件
|
|
|
params: null, // 额外传递给 request 的参数,组件不做处理,但是变化会引起request 重新请求数据
|
|
|
hideInDescriptions: true, // 在 descriptions 中隐藏
|
|
|
hideInForm: false, // 在 Form 中隐藏
|
|
|
hideInTable: false, // 在 Table 中隐藏
|
|
|
hideInSearch: false, // 在 Table 的查询表格中隐藏
|
|
|
columns:[], // 嵌套子项,valueType 为 dependency 时,请使用(values) => ProFormColumnsType[]其他情况使用 ProFormColumnsType[]
|
|
|
width: 150
|
|
|
},
|
|
|
{
|
|
|
key: '2', // 确定这个列的唯一值,一般用于 dataIndex 重复的情况
|
|
|
dataIndex: 'name', // 与实体映射的 key,数组会被转化 [a,b] => Entity.a.b
|
|
|
valueType: 'text', // 数据的渲渲染方式,我们自带了一部分,你可以可以自定义 valueType https://procomponents.ant.design/components/schema/
|
|
|
title: '考点名称', // 标题的内容,在 form 中是 label
|
|
|
tooltip: '参照准考证考点', // 会在 title 旁边展示一个 icon,鼠标浮动之后展示
|
|
|
valueEnum: '', // 支持 object 和 Map,Map 是支持其他基础类型作为 key
|
|
|
fieldProps: '', // 传给渲染的组件的 props,自定义的时候也会传递
|
|
|
formItemProps: {
|
|
|
rules: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: '此项为必填项',
|
|
|
},
|
|
|
{
|
|
|
type: 'string',
|
|
|
message: '此项为文本内容',
|
|
|
},
|
|
|
{
|
|
|
max: 50,
|
|
|
message: '最大长度50',
|
|
|
}
|
|
|
],
|
|
|
}, // 传递给 Form.Item 的配置
|
|
|
proFieldProps: '', // 设置到 ProField 上面的 props,内部属性
|
|
|
//renderText: '', // 修改的数据是会被 valueType 定义的渲染组件消费
|
|
|
//render: '', // 自定义只读模式的 dom,render 方法只管理的只读模式,编辑模式需要使用 renderFormItem
|
|
|
//renderFormItem: '', // 自定义编辑模式,返回一个 ReactNode,会自动包裹 value 和 onChange
|
|
|
request: null, // 从远程请求网络数据,一般用于选择类组件
|
|
|
params: null, // 额外传递给 request 的参数,组件不做处理,但是变化会引起request 重新请求数据
|
|
|
hideInDescriptions: true, // 在 descriptions 中隐藏
|
|
|
hideInForm: false, // 在 Form 中隐藏
|
|
|
hideInTable: false, // 在 Table 中隐藏
|
|
|
hideInSearch: false, // 在 Table 的查询表格中隐藏
|
|
|
columns:[
|
|
|
{
|
|
|
key: '2-1', // 确定这个列的唯一值,一般用于 dataIndex 重复的情况
|
|
|
dataIndex: 'realname', // 与实体映射的 key,数组会被转化 [a,b] => Entity.a.b
|
|
|
valueType: 'text', // 数据的渲渲染方式,我们自带了一部分,你可以可以自定义 valueType https://procomponents.ant.design/components/schema/
|
|
|
title: '姓名', // 标题的内容,在 form 中是 label
|
|
|
tooltip: '', // 会在 title 旁边展示一个 icon,鼠标浮动之后展示
|
|
|
valueEnum: '', // 支持 object 和 Map,Map 是支持其他基础类型作为 key
|
|
|
fieldProps: '', // 传给渲染的组件的 props,自定义的时候也会传递
|
|
|
formItemProps: {
|
|
|
rules: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: '此项为必填项',
|
|
|
},
|
|
|
{
|
|
|
type: 'string',
|
|
|
message: '此项为文本内容',
|
|
|
},
|
|
|
{
|
|
|
max: 20,
|
|
|
message: '最大长度20',
|
|
|
}
|
|
|
],
|
|
|
}, // 传递给 Form.Item 的配置
|
|
|
proFieldProps: '', // 设置到 ProField 上面的 props,内部属性
|
|
|
//renderText: '', // 修改的数据是会被 valueType 定义的渲染组件消费
|
|
|
//render: '', // 自定义只读模式的 dom,render 方法只管理的只读模式,编辑模式需要使用 renderFormItem
|
|
|
//renderFormItem: '', // 自定义编辑模式,返回一个 ReactNode,会自动包裹 value 和 onChange
|
|
|
request: null, // 从远程请求网络数据,一般用于选择类组件
|
|
|
params: null, // 额外传递给 request 的参数,组件不做处理,但是变化会引起request 重新请求数据
|
|
|
hideInDescriptions: true, // 在 descriptions 中隐藏
|
|
|
hideInForm: true, // 在 Form 中隐藏
|
|
|
hideInTable: false, // 在 Table 中隐藏
|
|
|
hideInSearch: false, // 在 Table 的查询表格中隐藏
|
|
|
//columns:[] // 嵌套子项,valueType 为 dependency 时,请使用(values) => ProFormColumnsType[]其他情况使用 ProFormColumnsType[]
|
|
|
}
|
|
|
] // 嵌套子项,valueType 为 dependency 时,请使用(values) => ProFormColumnsType[]其他情况使用 ProFormColumnsType[]
|
|
|
},
|
|
|
{
|
|
|
key: '3', // 确定这个列的唯一值,一般用于 dataIndex 重复的情况
|
|
|
dataIndex: 'examiner', // 与实体映射的 key,数组会被转化 [a,b] => Entity.a.b
|
|
|
valueType: 'text', // 数据的渲渲染方式,我们自带了一部分,你可以可以自定义 valueType https://procomponents.ant.design/components/schema/
|
|
|
title: '主考姓名及联系方式', // 标题的内容,在 form 中是 label
|
|
|
tooltip: '', // 会在 title 旁边展示一个 icon,鼠标浮动之后展示
|
|
|
valueEnum: '', // 支持 object 和 Map,Map 是支持其他基础类型作为 key
|
|
|
fieldProps: '', // 传给渲染的组件的 props,自定义的时候也会传递
|
|
|
formItemProps: {
|
|
|
rules: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: '此项为必填项',
|
|
|
},
|
|
|
{
|
|
|
type: 'string',
|
|
|
message: '此项为文本内容',
|
|
|
},
|
|
|
{
|
|
|
max: 50,
|
|
|
message: '最大长度50',
|
|
|
}
|
|
|
],
|
|
|
}, // 传递给 Form.Item 的配置
|
|
|
proFieldProps: '', // 设置到 ProField 上面的 props,内部属性
|
|
|
//renderText: '', // 修改的数据是会被 valueType 定义的渲染组件消费
|
|
|
//render: '', // 自定义只读模式的 dom,render 方法只管理的只读模式,编辑模式需要使用 renderFormItem
|
|
|
//renderFormItem: '', // 自定义编辑模式,返回一个 ReactNode,会自动包裹 value 和 onChange
|
|
|
request: null, // 从远程请求网络数据,一般用于选择类组件
|
|
|
params: null, // 额外传递给 request 的参数,组件不做处理,但是变化会引起request 重新请求数据
|
|
|
hideInDescriptions: true, // 在 descriptions 中隐藏
|
|
|
hideInForm: true, // 在 Form 中隐藏
|
|
|
hideInTable: false, // 在 Table 中隐藏
|
|
|
hideInSearch: false, // 在 Table 的查询表格中隐藏
|
|
|
columns:[] // 嵌套子项,valueType 为 dependency 时,请使用(values) => ProFormColumnsType[]其他情况使用 ProFormColumnsType[]
|
|
|
},
|
|
|
{
|
|
|
key: '4', // 确定这个列的唯一值,一般用于 dataIndex 重复的情况
|
|
|
dataIndex: 'examinationRoomTotal', // 与实体映射的 key,数组会被转化 [a,b] => Entity.a.b
|
|
|
valueType: 'digit', // 数据的渲渲染方式,我们自带了一部分,你可以可以自定义 valueType https://procomponents.ant.design/components/schema/
|
|
|
title: '考场数', // 标题的内容,在 form 中是 label
|
|
|
hideInSearch: true, // 在 Table 的查询表格中隐藏
|
|
|
width: 150
|
|
|
},
|
|
|
{
|
|
|
key: '5', // 确定这个列的唯一值,一般用于 dataIndex 重复的情况
|
|
|
dataIndex: 'publicTelephone', // 与实体映射的 key,数组会被转化 [a,b] => Entity.a.b
|
|
|
valueType: 'text', // 数据的渲渲染方式,我们自带了一部分,你可以可以自定义 valueType https://procomponents.ant.design/components/schema/
|
|
|
title: '公开电话', // 标题的内容,在 form 中是 label
|
|
|
},
|
|
|
{
|
|
|
key: '6', // 确定这个列的唯一值,一般用于 dataIndex 重复的情况
|
|
|
dataIndex: 'address', // 与实体映射的 key,数组会被转化 [a,b] => Entity.a.b
|
|
|
valueType: 'text', // 数据的渲渲染方式,我们自带了一部分,你可以可以自定义 valueType https://procomponents.ant.design/components/schema/
|
|
|
title: '地址', // 标题的内容,在 form 中是 label
|
|
|
formItemProps: {
|
|
|
rules: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: '此项为必填项',
|
|
|
},
|
|
|
{
|
|
|
type: 'string',
|
|
|
message: '此项为文本内容',
|
|
|
},
|
|
|
{
|
|
|
max: 50,
|
|
|
message: '最大长度200',
|
|
|
}
|
|
|
],
|
|
|
}, // 传递给 Form.Item 的配置
|
|
|
},
|
|
|
{
|
|
|
key: '7', // 确定这个列的唯一值,一般用于 dataIndex 重复的情况
|
|
|
dataIndex: 'busRoute', // 与实体映射的 key,数组会被转化 [a,b] => Entity.a.b
|
|
|
valueType: 'text', // 数据的渲渲染方式,我们自带了一部分,你可以可以自定义 valueType https://procomponents.ant.design/components/schema/
|
|
|
title: '乘车路线', // 标题的内容,在 form 中是 label
|
|
|
hideInTable: true, // 在 Table 中隐藏
|
|
|
hideInSearch: true, // 在 Table 的查询表格中隐藏
|
|
|
},
|
|
|
{
|
|
|
key: '8', // 确定这个列的唯一值,一般用于 dataIndex 重复的情况
|
|
|
dataIndex: 'electricLine', // 与实体映射的 key,数组会被转化 [a,b] => Entity.a.b
|
|
|
valueType: 'text', // 数据的渲渲染方式,我们自带了一部分,你可以可以自定义 valueType https://procomponents.ant.design/components/schema/
|
|
|
title: '用电线路', // 标题的内容,在 form 中是 label
|
|
|
hideInTable: true, // 在 Table 中隐藏
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
}
|
|
|
if( data === 'true' ){
|
|
|
let _data = [];
|
|
|
for(let i=1; i<=30; i++){
|
|
|
const _str = i.toString().padStart(2, '0')
|
|
|
_data.push(
|
|
|
{
|
|
|
id: '000000001'+ _str,
|
|
|
code: '2017' + _str, // 考点代码
|
|
|
name: '长春高新第'+_str+'实验学校',
|
|
|
examiner: // 主考姓名及联系方式
|
|
|
{
|
|
|
realname: '张安开', // 姓名
|
|
|
tel: '819629' + _str, // 电话
|
|
|
mobile: '130214563' + _str // 手机
|
|
|
},
|
|
|
contact: // 考点联系人方式
|
|
|
{
|
|
|
realname: '安若昂', // 姓名
|
|
|
tel: '819625' + _str, // 电话
|
|
|
mobile: '130214567' + _str // 手机
|
|
|
},
|
|
|
secretRoom: // 保密室
|
|
|
{
|
|
|
tel: '819625' + _str // 电话
|
|
|
},
|
|
|
monitorRoom: // 监控室
|
|
|
{
|
|
|
tel: '819625' + _str // 电话
|
|
|
},
|
|
|
examinationRoomTotal: 30, // 考场数
|
|
|
publicTelephone: '819612' + _str, // 公开电话
|
|
|
address: '长春市高新区飞跃路' + _str + '号', // 地址
|
|
|
busRoute: _str +'225路,202路', // 乘车路线
|
|
|
electricLine: '飞跃路线' + _str // 用电线路
|
|
|
}
|
|
|
)
|
|
|
}
|
|
|
|
|
|
obj = {
|
|
|
// DATA 数据记录
|
|
|
data: _data
|
|
|
}
|
|
|
}
|
|
|
|
|
|
res.json(obj)
|
|
|
break;
|
|
|
case 'notices':
|
|
|
res.json({
|
|
|
data: [
|
|
|
{
|
|
|
id: '000000001',
|
|
|
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png',
|
|
|
title: '你收到了 14 份新周报',
|
|
|
datetime: '2017-08-09',
|
|
|
type: 'notification',
|
|
|
},
|
|
|
{
|
|
|
id: '000000002',
|
|
|
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/OKJXDXrmkNshAMvwtvhu.png',
|
|
|
title: '你推荐的 曲妮妮 已通过第三轮面试',
|
|
|
datetime: '2017-08-08',
|
|
|
type: 'notification',
|
|
|
},
|
|
|
{
|
|
|
id: '000000003',
|
|
|
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/kISTdvpyTAhtGxpovNWd.png',
|
|
|
title: '这种模板可以区分多种通知类型',
|
|
|
datetime: '2017-08-07',
|
|
|
read: true,
|
|
|
type: 'notification',
|
|
|
},
|
|
|
{
|
|
|
id: '000000004',
|
|
|
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/GvqBnKhFgObvnSGkDsje.png',
|
|
|
title: '左侧图标用于区分不同的类型',
|
|
|
datetime: '2017-08-07',
|
|
|
type: 'notification',
|
|
|
},
|
|
|
{
|
|
|
id: '000000005',
|
|
|
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png',
|
|
|
title: '内容不要超过两行字,超出时自动截断',
|
|
|
datetime: '2017-08-07',
|
|
|
type: 'notification',
|
|
|
},
|
|
|
{
|
|
|
id: '000000006',
|
|
|
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg',
|
|
|
title: '曲丽丽 评论了你',
|
|
|
description: '描述信息描述信息描述信息',
|
|
|
datetime: '2017-08-07',
|
|
|
type: 'message',
|
|
|
clickClose: true,
|
|
|
},
|
|
|
{
|
|
|
id: '000000007',
|
|
|
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg',
|
|
|
title: '朱偏右 回复了你',
|
|
|
description: '这种模板用于提醒谁与你发生了互动,左侧放『谁』的头像',
|
|
|
datetime: '2017-08-07',
|
|
|
type: 'message',
|
|
|
clickClose: true,
|
|
|
},
|
|
|
{
|
|
|
id: '000000008',
|
|
|
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg',
|
|
|
title: '标题',
|
|
|
description: '这种模板用于提醒谁与你发生了互动,左侧放『谁』的头像',
|
|
|
datetime: '2017-08-07',
|
|
|
type: 'message',
|
|
|
clickClose: true,
|
|
|
},
|
|
|
{
|
|
|
id: '000000009',
|
|
|
title: '任务名称',
|
|
|
description: '任务需要在 2017-01-12 20:00 前启动',
|
|
|
extra: '未开始',
|
|
|
status: 'todo',
|
|
|
type: 'event',
|
|
|
},
|
|
|
{
|
|
|
id: '000000010',
|
|
|
title: '第三方紧急代码变更',
|
|
|
description: '冠霖提交于 2017-01-06,需在 2017-01-07 前完成代码变更任务',
|
|
|
extra: '马上到期',
|
|
|
status: 'urgent',
|
|
|
type: 'event',
|
|
|
},
|
|
|
{
|
|
|
id: '000000011',
|
|
|
title: '信息安全考试',
|
|
|
description: '指派竹尔于 2017-01-09 前完成更新并发布',
|
|
|
extra: '已耗时 8 天',
|
|
|
status: 'doing',
|
|
|
type: 'event',
|
|
|
},
|
|
|
{
|
|
|
id: '000000012',
|
|
|
title: 'ABCD 版本发布',
|
|
|
description: '冠霖提交于 2017-01-06,需在 2017-01-07 前完成代码变更任务',
|
|
|
extra: '进行中',
|
|
|
status: 'processing',
|
|
|
type: 'event',
|
|
|
},
|
|
|
],
|
|
|
});
|
|
|
break;
|
|
|
default:
|
|
|
res.json({data:[]})
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
export default {
|
|
|
'GET /api/dataSource': getDataSource,
|
|
|
};
|