前端重构

This commit is contained in:
Yvan
2026-01-08 11:20:29 +08:00
parent d76655a30a
commit f12f2e0f00
201 changed files with 27517 additions and 537 deletions
+1
View File
@@ -0,0 +1 @@
# KRA TypeScript Type Definitions
+178
View File
@@ -0,0 +1,178 @@
/**
* KRA - API Response Type Definitions
*/
// Standard API response wrapper
export interface ApiResponse<T = any> {
code: number;
data: T;
msg: string;
}
// Pagination params
export interface PageParams {
page: number;
pageSize: number;
orderKey?: string;
desc?: boolean;
}
// Pagination result
export interface PageResult<T> {
list: T[];
total: number;
page: number;
pageSize: number;
}
// Login related
export interface LoginParams {
username: string;
password: string;
captcha: string;
captchaId: string;
}
export interface LoginResult {
user: import('./index').UserInfo;
token: string;
expiresAt: number;
}
export interface CaptchaResult {
captchaId: string;
picPath: string;
captchaLength: number;
openCaptcha: boolean;
}
// User related
export interface ChangePasswordParams {
password: string;
newPassword: string;
}
export interface SetUserAuthoritiesParams {
ID: number;
authorityIds: number[];
}
// Menu related
export interface MenuAuthorityParams {
authorityId: number;
menus: import('./index').MenuItem[];
}
export interface GetMenuAuthorityResult {
menus: import('./index').MenuItem[];
}
// Authority related
export interface CreateAuthorityParams {
authorityId: number;
authorityName: string;
parentId: number;
}
export interface SetDataAuthorityParams {
authorityId: number;
dataAuthorityId: { authorityId: number }[];
}
// Casbin related
export interface CasbinInfo {
path: string;
method: string;
}
export interface UpdateCasbinParams {
authorityId: number;
casbinInfos: CasbinInfo[];
}
// File upload related
export interface UploadParams {
file: File;
}
export interface ChunkUploadParams {
file: File;
chunkNumber: number;
chunkSize: number;
currentChunkSize: number;
totalChunks: number;
totalSize: number;
identifier: string;
filename: string;
}
// Export template related
export interface ExportTemplate {
ID: number;
name: string;
templateId: string;
templateInfo: string;
limit: number;
order: string;
conditions: string;
}
// Auto code related
export interface AutoCodeField {
fieldName: string;
fieldDesc: string;
fieldType: string;
fieldJson: string;
dataTypeLong: string;
comment: string;
columnName: string;
fieldSearchType: string;
dictType: string;
require: boolean;
errorText: string;
clearable: boolean;
sort: boolean;
primaryKey: boolean;
dataSource: any;
checkDataSource: boolean;
}
export interface AutoCodeParams {
structName: string;
tableName: string;
packageName: string;
humpPackageName: string;
abbreviation: string;
description: string;
autoCreateApiToSql: boolean;
autoCreateMenuToSql: boolean;
autoCreateResource: boolean;
autoMoveFile: boolean;
businessDB: string;
fields: AutoCodeField[];
primaryField: AutoCodeField;
dataSourceMap: Record<string, any>;
hasTimer: boolean;
hasSearchTimer: boolean;
}
// System error related
export interface SysError {
ID: number;
CreatedAt: string;
error: string;
stack: string;
method: string;
path: string;
}
// Announcement related
export interface Announcement {
ID: number;
CreatedAt: string;
UpdatedAt: string;
title: string;
content: string;
type: number;
status: number;
}
+217
View File
@@ -0,0 +1,217 @@
/**
* KRA - Kratos Admin Type Definitions
*/
// Common pagination params
export interface PageParams {
page: number;
pageSize: number;
}
// Common pagination response
export interface PageResult<T> {
list: T[];
total: number;
page: number;
pageSize: number;
}
// Common ID params
export interface IdParams {
ID: number;
}
export interface IdsParams {
ids: number[];
}
// Base entity with timestamps
export interface BaseEntity {
ID: number;
CreatedAt: string;
UpdatedAt: string;
DeletedAt?: string | null;
}
// User related types
export interface UserInfo extends BaseEntity {
uuid: string;
userName: string;
nickName: string;
sideMode: string;
headerImg: string;
baseColor: string;
activeColor: string;
authorityId: number;
phone: string;
email: string;
enable: number;
authority: Authority;
authorities: Authority[];
originSetting?: AppConfig;
}
// Authority/Role types
export interface Authority extends BaseEntity {
authorityId: number;
authorityName: string;
parentId: number;
dataAuthorityId?: Authority[];
children?: Authority[];
menus?: MenuItem[];
defaultRouter: string;
}
// Menu types
export interface MenuItem extends BaseEntity {
parentId: number;
path: string;
name: string;
hidden: boolean;
component: string;
sort: number;
meta: MenuMeta;
authoritys?: Authority[];
children?: MenuItem[];
parameters?: MenuParameter[];
menuBtn?: MenuButton[];
btns?: Record<string, number>;
}
export interface MenuMeta {
activeName?: string;
keepAlive: boolean;
defaultMenu: boolean;
title: string;
icon: string;
closeTab: boolean;
}
export interface MenuParameter {
ID: number;
type: string;
key: string;
value: string;
}
export interface MenuButton {
ID: number;
name: string;
desc: string;
}
// API types
export interface ApiInfo extends BaseEntity {
path: string;
description: string;
apiGroup: string;
method: string;
}
// Dictionary types
export interface Dictionary extends BaseEntity {
name: string;
type: string;
status: boolean;
desc: string;
sysDictionaryDetails?: DictionaryDetail[];
}
export interface DictionaryDetail extends BaseEntity {
label: string;
value: number;
status: boolean;
sort: number;
sysDictionaryID: number;
}
// System params types
export interface SysParams extends BaseEntity {
key: string;
value: string;
desc: string;
}
// Operation record types
export interface OperationRecord extends BaseEntity {
ip: string;
method: string;
path: string;
status: number;
latency: string;
agent: string;
error_message: string;
body: string;
resp: string;
user_id: number;
user?: UserInfo;
}
// File upload types
export interface FileInfo extends BaseEntity {
name: string;
url: string;
tag: string;
key: string;
}
// Customer example types
export interface Customer extends BaseEntity {
customerName: string;
customerPhoneData: string;
sysUserID: number;
sysUserAuthorityID: number;
sysUser?: UserInfo;
}
// App config types
export interface AppConfig {
weakness?: boolean;
grey?: boolean;
primaryColor?: string;
showTabs?: boolean;
darkMode?: 'light' | 'dark' | 'auto';
layout_side_width?: number;
layout_side_collapsed_width?: number;
layout_side_item_height?: number;
show_watermark?: boolean;
side_mode?: 'normal' | 'head' | 'combination';
transition_type?: string;
global_size?: 'small' | 'middle' | 'large';
}
// System config types
export interface SystemConfig {
system: {
env: string;
addr: string;
dbType: string;
ossType: string;
useMultipoint: boolean;
useRedis: boolean;
lowerCaseTableName: boolean;
routerPrefix: string;
};
jwt: {
signingKey: string;
expiresTime: string;
bufferTime: string;
issuer: string;
};
captcha: {
keyLong: number;
imgWidth: number;
imgHeight: number;
openCaptcha: number;
openCaptchaTimeOut: number;
};
email?: {
to: string;
port: number;
from: string;
host: string;
isSSL: boolean;
secret: string;
nickname: string;
};
}