Files
DianZhanDemo/shared/types/index.ts
ch197511161 aaaf08e8f3 init6
2025-12-11 02:09:07 +08:00

130 lines
2.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 类型定义统一导出
* Unified type definitions export
*
* 共享类型定义文件
* 用于前后端类型一致性
*/
// 基础类型
export * from './base'
// 用户相关类型
export * from './user'
// 飞书相关类型
export * from './feishu'
// 上海CIM相关类型
export * from './cim'
// 验证相关类型和工具
export * from '../src/schemas/user'
export * from '../utils/validation'
// ==================== API 响应类型 ====================
/**
* API 响应类型
* @template T 响应数据类型
*/
export interface ApiResponse<T = any> {
success: boolean
data?: T
message?: string
error?: string
}
/**
* 分页参数类型
*/
export interface PaginationParams {
page?: number
limit?: number
search?: string
}
/**
* 分页响应类型
* @template T 数据项类型
*/
export interface PaginatedResponse<T> {
data: T[]
total: number
page: number
limit: number
totalPages: number
}
/**
* 表单验证规则类型
*/
export interface FormRule {
required?: boolean
message?: string
trigger?: string | string[]
min?: number
max?: number
pattern?: RegExp
}
/**
* 表格列配置类型
*/
export interface TableColumn {
prop: string
label: string
width?: string | number
sortable?: boolean
formatter?: (row: any, column: any, cellValue: any) => string
}
// ==================== 通用 CRUD 类型定义 ====================
/**
* 通用查询参数接口
*/
export interface BaseQueryParams extends PaginationParams {
orderBy?: string
orderDirection?: 'asc' | 'desc'
[key: string]: any
}
/**
* 通用创建输入类型
*/
export interface BaseCreateInput {
[key: string]: any
}
/**
* 通用更新输入类型
*/
export interface BaseUpdateInput {
[key: string]: any
}
/**
* CRUD 操作选项
*/
export interface CrudOptions {
// 是否启用软删除
softDelete?: boolean
// 默认排序字段
defaultOrderBy?: string
// 默认排序方向
defaultOrderDirection?: 'asc' | 'desc'
// 可搜索字段
searchableFields?: string[]
// 唯一字段验证
uniqueFields?: string[]
}
/**
* 扩展的API响应类型包含验证错误
* @template T 响应数据类型
*/
export interface ExtendedApiResponse<T = any> extends ApiResponse<T> {
validationErrors?: ValidationError[]
}