238 lines
9.1 KiB
JavaScript
238 lines
9.1 KiB
JavaScript
import { page, pageSize, sortOrder, module, sortBy, description, sort } from "#schema/atomSchema";
|
||
import errorAtomSchema from "#schema/error.atomSchema";
|
||
|
||
// 系统模块分页查询
|
||
export const moduleListSchema = {
|
||
tags: ['系统管理'],
|
||
summary: '获取系统模块列表',
|
||
description: '支持分页和条件查询系统模块数据',
|
||
querystring: {
|
||
type: 'object',
|
||
properties: {
|
||
page: {
|
||
...page, // 保持原有校验规则
|
||
description: '页码(从1开始,不传则返回全量)'
|
||
},
|
||
pageSize: {
|
||
...pageSize,
|
||
description: '每页条数(不传则返回全量)'
|
||
},
|
||
name: {
|
||
type: 'string',
|
||
nullable: true,
|
||
maxLength: 32,
|
||
description: '模块名称模糊查询',
|
||
errorMessage: {
|
||
maxLength: '模块名称不能超过32个字符'
|
||
}
|
||
},
|
||
moduleKey: {
|
||
type: 'string',
|
||
nullable: true,
|
||
maxLength: 255,
|
||
description: '模块Key精确查询',
|
||
errorMessage: {
|
||
maxLength: '模块Key不能超过255个字符'
|
||
}
|
||
},
|
||
status: {
|
||
type: 'integer',
|
||
nullable: true,
|
||
enum: [0, 1],
|
||
default: 0,
|
||
description: '状态过滤(0-正常 1-禁用)',
|
||
errorMessage: {
|
||
type: '状态参数必须是整数',
|
||
enum: '状态值只能是0或1'
|
||
}
|
||
},
|
||
sortBy,
|
||
sortOrder,
|
||
}
|
||
},
|
||
response: {
|
||
200: {
|
||
type: 'object',
|
||
properties: {
|
||
code: { type: 'number', enum: [200] },
|
||
data: {
|
||
type: 'object',
|
||
properties: {
|
||
total: {
|
||
type: 'integer',
|
||
examples: [150],
|
||
description: '总记录数(仅分页模式返回)'
|
||
},
|
||
list: {
|
||
type: 'array',
|
||
items: {
|
||
type: 'object',
|
||
properties: {
|
||
id: { type: 'integer', examples: [1] },
|
||
version: { type: 'integer', examples: [0] },
|
||
name: { type: 'string', examples: ['用户管理模块'] },
|
||
moduleKey: { type: 'string', examples: ['user_management'] },
|
||
description: { type: ['string', 'null'], examples: ['用户权限管理模块'] },
|
||
sort: { type: 'integer', examples: [10] },
|
||
status: { type: 'integer', enum: [0, 1] },
|
||
createdUser: { type: 'string', examples: [1001] },
|
||
updatedUser: { type: 'string', examples: [1001] },
|
||
createdBy: { type: 'string', examples: [1001] },
|
||
updatedBy: { type: ['string', 'null'], examples: [1002] },
|
||
createdAt: {
|
||
type: 'string',
|
||
format: 'date-time',
|
||
examples: ['2023-07-15T08:23:45.000Z']
|
||
},
|
||
updatedAt: {
|
||
type: 'string',
|
||
format: 'date-time',
|
||
examples: ['2023-07-16T09:34:12.000Z']
|
||
}
|
||
},
|
||
required: ['id', 'name', 'moduleKey', 'description']
|
||
}
|
||
}
|
||
},
|
||
required: ['list']
|
||
},
|
||
message: { type: 'string' }
|
||
}
|
||
},
|
||
400: errorAtomSchema['400'],
|
||
},
|
||
security: [{ apiKey: [] }]
|
||
};
|
||
|
||
// 系统模块创建
|
||
export const moduleCreateSchema = {
|
||
tags: ['系统管理'],
|
||
summary: '创建系统模块',
|
||
description: '创建新的系统功能模块',
|
||
body: {
|
||
type: 'object',
|
||
required: ['name', 'moduleKey'],
|
||
properties: {
|
||
name: module.name,
|
||
moduleKey: module.moduleKey,
|
||
description,
|
||
sort,
|
||
status: module.status
|
||
}
|
||
},
|
||
response: {
|
||
201: {
|
||
type: 'object',
|
||
properties: {
|
||
code: { type: 'number', enum: [201] },
|
||
data: {
|
||
type: 'object',
|
||
properties: {
|
||
id: { type: 'integer', examples: [1] },
|
||
version: { type: 'integer', examples: [0] },
|
||
name: { type: 'string', examples: ['用户管理模块'] },
|
||
moduleKey: { type: 'string', examples: ['user_management'] },
|
||
description: { type: ['string', 'null'], examples: ['用户权限管理模块'] },
|
||
sort: { type: 'integer', examples: [10] },
|
||
status: { type: 'integer', enum: [0, 1] },
|
||
createdBy: { type: 'string', examples: [1001] },
|
||
updatedBy: { type: ['string', 'null'], examples: [1002] },
|
||
createdAt: {
|
||
type: 'string',
|
||
format: 'date-time',
|
||
examples: ['2023-07-15T08:23:45.000Z']
|
||
},
|
||
updatedAt: {
|
||
type: 'string',
|
||
format: 'date-time',
|
||
examples: ['2023-07-16T09:34:12.000Z']
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
400: errorAtomSchema['400'],
|
||
409: errorAtomSchema['409']
|
||
},
|
||
security: [{ apiKey: [] }]
|
||
};
|
||
|
||
// 系统模块修改 schema
|
||
export const moduleUpdateSchema = {
|
||
tags: ['系统管理'],
|
||
summary: '修改系统模块',
|
||
description: '修改系统模块信息(支持部分字段更新)',
|
||
body: {
|
||
type: 'object',
|
||
properties: {
|
||
name: {
|
||
...module.name,
|
||
nullable: true // 允许传空值
|
||
},
|
||
moduleKey: {
|
||
...module.moduleKey,
|
||
nullable: true
|
||
},
|
||
description: {
|
||
...description,
|
||
nullable: true
|
||
},
|
||
sort: {
|
||
...sort,
|
||
default: null, // 允许传空值
|
||
nullable: true
|
||
},
|
||
status: {
|
||
...module.status,
|
||
default: null, // 允许传空值
|
||
nullable: true
|
||
}
|
||
},
|
||
anyOf: [ // 至少更新一个字段
|
||
{ required: ['name'] },
|
||
{ required: ['moduleKey'] },
|
||
{ required: ['description'] },
|
||
{ required: ['sort'] },
|
||
{ required: ['status'] }
|
||
]
|
||
},
|
||
response: {
|
||
200: {
|
||
type: 'object',
|
||
properties: {
|
||
code: { type: 'number', enum: [200] },
|
||
data: {
|
||
type: 'object',
|
||
properties: {
|
||
id: { type: 'integer', examples: [1] },
|
||
version: { type: 'integer', examples: [0] },
|
||
name: { type: 'string', examples: ['用户管理模块'] },
|
||
moduleKey: { type: 'string', examples: ['user_management'] },
|
||
description: { type: ['string', 'null'], examples: ['用户权限管理模块'] },
|
||
sort: { type: 'integer', examples: [10] },
|
||
status: { type: 'integer', enum: [0, 1] },
|
||
createdUser: { type: 'string', examples: [1001] },
|
||
updatedUser: { type: 'string', examples: [1001] },
|
||
createdBy: { type: 'string', examples: [1001] },
|
||
updatedBy: { type: ['string', 'null'], examples: [1002] },
|
||
createdAt: {
|
||
type: 'string',
|
||
format: 'date-time',
|
||
examples: ['2023-07-15T08:23:45.000Z']
|
||
},
|
||
updatedAt: {
|
||
type: 'string',
|
||
format: 'date-time',
|
||
examples: ['2023-07-16T09:34:12.000Z']
|
||
}
|
||
},
|
||
},
|
||
message: { type:'string' }
|
||
}
|
||
},
|
||
400: errorAtomSchema['400'],
|
||
404: errorAtomSchema['404'],
|
||
409: errorAtomSchema['409']
|
||
},
|
||
security: [{ apiKey: [] }]
|
||
}; |