提交 4b22444e authored 作者: leon's avatar leon

add 医生管理界面;schema通用属性抽出

上级 a36c4f29
/**
* @file 通用表单schema字段
*/
import * as DistributorApi from '/@/api/system/distributorApi';
import get from 'lodash.get';
const getDistributorId = ({ colProps }) => {
return {
field: 'distributorId',
label: '经销商',
defaultValue: undefined,
form: {
componentProps: {
labelInValue: true,
api: DistributorApi.all,
params: {},
resultField: 'records',
labelField: 'name',
valueField: 'id',
allowClear: false,
placeholder: '经销商',
},
colProps,
component: 'ApiSelect',
rules: [{ required: true, type: 'object', message: '请选择经销商!' }],
},
table: {
customRender: ({ text, record }) => get(record, 'distributor.name') || text,
},
};
};
export { getDistributorId };
......@@ -10,6 +10,7 @@ import { BasicColumn } from '/@/components/Table';
import { FormSchema } from '/@/components/Table';
import get from 'lodash.get';
import * as HospitalApi from '/@/api/system/hospitalApi';
import { getDistributorId } from '/@/commonSchemaProperty';
export enum SexEnum {
MALE = '男',
......@@ -45,36 +46,20 @@ export const schema = {
properties: [
{
field: 'id',
label: 'ID系统自动生成',
label: 'ID',
defaultValue: undefined,
form: {
componentProps: {
allowClear: false,
placeholder: 'ID系统自动生成',
placeholder: 'ID',
},
colProps,
component: 'InputNumber',
rules: [{ required: true, message: '请输入ID系统自动生成!' }],
},
table: {
},
},
{
field: 'distributorId',
label: '经销商id',
defaultValue: undefined,
form: {
componentProps: {
allowClear: false,
placeholder: '经销商id',
},
colProps,
component: 'InputNumber',
rules: [{ required: true, message: '请输入经销商id!' }],
},
table: {
rules: [{ required: true, message: '请输入ID!' }],
},
table: {},
},
getDistributorId({ colProps }),
{
field: 'hospitalId',
label: '医院id',
......@@ -111,8 +96,7 @@ export const schema = {
component: 'Input',
rules: [{ required: true, message: '请输入医生名称!' }],
},
table: {
},
table: {},
},
{
field: 'sex',
......@@ -130,7 +114,7 @@ export const schema = {
},
table: {
customRender: ({ text }) => {
const option = SexEnumOptions.find((item) => item.value === text)
const option = SexEnumOptions.find((item) => item.value === text);
return option ? option.label : text;
},
},
......@@ -148,8 +132,7 @@ export const schema = {
component: 'Input',
rules: [{ required: true, message: '请输入手机号!' }],
},
table: {
},
table: {},
},
{
field: 'code',
......@@ -163,8 +146,7 @@ export const schema = {
colProps,
component: 'Input',
},
table: {
},
table: {},
},
{
field: 'job',
......@@ -178,8 +160,7 @@ export const schema = {
colProps,
component: 'Input',
},
table: {
},
table: {},
},
{
field: 'bed',
......@@ -193,8 +174,7 @@ export const schema = {
colProps,
component: 'Input',
},
table: {
},
table: {},
},
{
field: 'status',
......@@ -212,7 +192,7 @@ export const schema = {
},
table: {
customRender: ({ text }) => {
const option = StatusEnumOptions.find((item) => item.value === text)
const option = StatusEnumOptions.find((item) => item.value === text);
return option ? option.label : text;
},
},
......@@ -230,8 +210,7 @@ export const schema = {
component: 'InputNumber',
rules: [{ required: true, message: '请输入操作人Id!' }],
},
table: {
},
table: {},
},
{
field: 'editorName',
......@@ -246,8 +225,7 @@ export const schema = {
component: 'Input',
rules: [{ required: true, message: '请输入操作人!' }],
},
table: {
},
table: {},
},
{
field: 'createTime',
......@@ -264,8 +242,7 @@ export const schema = {
component: 'RangePicker',
rules: [{ required: true, message: '请输入CreateTime!' }],
},
table: {
},
table: {},
},
{
field: 'updateTime',
......@@ -282,18 +259,63 @@ export const schema = {
component: 'RangePicker',
rules: [{ required: true, message: '请输入UpdateTime!' }],
},
table: {
},
table: {},
},
],
};
const queryFields = ['id','distributorId','hospitalId','name','sex','mobile','code','job','bed','status','editorId','editorName','createTime','updateTime'];
const editFields = ['distributorId','hospitalId','name','sex','mobile','code','job','bed','status'];
const tableFields = ['id','distributorId','hospitalId','name','sex','mobile','code','job','bed','status','editorId','editorName','createTime','updateTime'];
const descriptionFields = ['id','distributorId','hospitalId','name','sex','mobile','code','job','bed','status','editorId','editorName','createTime','updateTime'];
const queryFields = [
'id',
'distributorId',
'hospitalId',
'name',
'sex',
'mobile',
'code',
'job',
'bed',
'status',
'editorId',
'editorName',
'createTime',
'updateTime',
];
const editFields = ['distributorId', 'hospitalId', 'name', 'sex', 'mobile', 'code', 'job', 'bed', 'status'];
const tableFields = [
'id',
'distributorId',
'hospitalId',
'name',
'sex',
'mobile',
'code',
'job',
'bed',
'status',
'editorId',
'editorName',
'createTime',
'updateTime',
];
const descriptionFields = [
'id',
'distributorId',
'hospitalId',
'name',
'sex',
'mobile',
'code',
'job',
'bed',
'status',
'editorId',
'editorName',
'createTime',
'updateTime',
];
export const searchFormSchema: FormSchema[] = schema.properties.filter(item => queryFields.includes(item.field))
export const searchFormSchema: FormSchema[] = schema.properties
.filter((item) => queryFields.includes(item.field))
.map(
({ field, label, form: { rules = [], ...formProps } }) =>
({
......@@ -305,7 +327,8 @@ export const searchFormSchema: FormSchema[] = schema.properties.filter(item => q
} as FormSchema),
);
export const formSchema: FormSchema[] = schema.properties.filter(item => editFields.includes(item.field))
export const formSchema: FormSchema[] = schema.properties
.filter((item) => editFields.includes(item.field))
.map(
({ field, label, defaultValue, form }) =>
({
......@@ -317,17 +340,19 @@ export const formSchema: FormSchema[] = schema.properties.filter(item => editFie
} as FormSchema),
);
export const columns: BasicColumn[] = schema.properties.filter(item => tableFields.includes(item.field))
export const columns: BasicColumn[] = schema.properties
.filter((item) => tableFields.includes(item.field))
.map(
({ field, label, table }) =>
({
dataIndex: field,
title: label,
...table,
} as BasicColumn)
} as BasicColumn),
);
export const descriptionColumns: BasicColumn[] = schema.properties.filter(item => descriptionFields.includes(item.field))
export const descriptionColumns: BasicColumn[] = schema.properties
.filter((item) => descriptionFields.includes(item.field))
.map(
({ field, label, table }) =>
({
......
......@@ -8,6 +8,7 @@
import { BasicColumn } from '/@/components/Table';
import { FormSchema } from '/@/components/Table';
import { getDistributorId } from '/@/commonSchemaProperty';
export enum StatusEnum {
YES = '启用',
......@@ -43,21 +44,7 @@ export const schema = {
},
table: {},
},
{
field: 'distributorId',
label: '经销商id',
defaultValue: undefined,
form: {
componentProps: {
allowClear: false,
placeholder: '经销商id',
},
colProps,
component: 'InputNumber',
rules: [{ required: true, message: '请输入经销商id!' }],
},
table: {},
},
getDistributorId({ colProps }),
{
field: 'name',
label: '医院名称',
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论