【新增】前端代码第一次提交

This commit is contained in:
YOHO\20373
2025-04-17 16:42:02 +08:00
parent e0f13c705b
commit 865ebd0a4d
1635 changed files with 237638 additions and 23 deletions

56
src/types/components.d.ts vendored Normal file
View File

@@ -0,0 +1,56 @@
export type ComponentName =
| 'Radio'
| 'RadioButton'
| 'Checkbox'
| 'CheckboxButton'
| 'Input'
| 'Autocomplete'
| 'InputNumber'
| 'Select'
| 'Cascader'
| 'Switch'
| 'Slider'
| 'TimePicker'
| 'DatePicker'
| 'Rate'
| 'ColorPicker'
| 'Transfer'
| 'Divider'
| 'TimeSelect'
| 'SelectV2'
| 'TreeSelect'
| 'InputPassword'
| 'Editor'
| 'UploadImg'
| 'UploadImgs'
| 'UploadFile'
export type ColProps = {
span?: number
xs?: number
sm?: number
md?: number
lg?: number
xl?: number
tag?: string
}
export type ComponentOptions = {
label?: string
value?: FormValueType
disabled?: boolean
key?: string | number
children?: ComponentOptions[]
options?: ComponentOptions[]
} & Recordable
export type ComponentOptionsAlias = {
labelField?: string
valueField?: string
}
export type ComponentProps = {
optionsAlias?: ComponentOptionsAlias
options?: ComponentOptions[]
optionsSlot?: boolean
} & Recordable

4
src/types/configGlobal.d.ts vendored Normal file
View File

@@ -0,0 +1,4 @@
import { ElementPlusSize } from './elementPlus'
export interface ConfigGlobalTypes {
size?: ElementPlusSize
}

7
src/types/contextMenu.d.ts vendored Normal file
View File

@@ -0,0 +1,7 @@
export type contextMenuSchema = {
disabled?: boolean
divided?: boolean
icon?: string
label: string
command?: (item: contextMenuSchema) => void
}

14
src/types/descriptions.d.ts vendored Normal file
View File

@@ -0,0 +1,14 @@
export interface DescriptionsSchema {
span?: number // 占多少分
field: string // 字段名
label?: string // label名
mappedField?: string // 字段映射
width?: string | number
minWidth?: string | number
align?: 'left' | 'center' | 'right'
labelAlign?: 'left' | 'center' | 'right'
className?: string
labelClassName?: string
dateFormat?: string // add by 星语:支持时间的格式化
dictType?: string // add by 星语:支持 dict 字典数据
}

3
src/types/elementPlus.d.ts vendored Normal file
View File

@@ -0,0 +1,3 @@
export type ElementPlusSize = 'default' | 'small' | 'large'
export type ElementPlusInfoType = 'success' | 'info' | 'warning' | 'danger'

44
src/types/form.d.ts vendored Normal file
View File

@@ -0,0 +1,44 @@
import type { CSSProperties } from 'vue'
import { ColProps, ComponentProps, ComponentName } from '@/types/components'
import type { AxiosPromise } from 'axios'
export type FormSetPropsType = {
field: string
path: string
value: any
}
export type FormValueType = string | number | string[] | number[] | boolean | undefined | null
export type FormItemProps = {
labelWidth?: string | number
required?: boolean
rules?: Recordable
error?: string
showMessage?: boolean
inlineMessage?: boolean
style?: CSSProperties
}
export type FormSchema = {
// 唯一值
field: string
// 标题
label?: string
// 提示
labelMessage?: string
// col组件属性
colProps?: ColProps
// 表单组件属性slots对应的是表单组件的插槽规则${field}-xxx具体可以查看element-plus文档
componentProps?: { slots?: Recordable } & ComponentProps
// formItem组件属性
formItemProps?: FormItemProps
// 渲染的组件
component?: ComponentName
// 初始值
value?: FormValueType
// 是否隐藏
hidden?: boolean
// 远程加载下拉项
api?: <T = any>() => AxiosPromise<T>
}

5
src/types/icon.d.ts vendored Normal file
View File

@@ -0,0 +1,5 @@
export interface IconTypes {
size?: number
color?: string
icon: string
}

4
src/types/infoTip.d.ts vendored Normal file
View File

@@ -0,0 +1,4 @@
export interface TipSchema {
label: string
keys?: string[]
}

1
src/types/layout.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
export type LayoutType = 'classic' | 'topLeft' | 'top' | 'cutMenu'

10
src/types/localeDropdown.d.ts vendored Normal file
View File

@@ -0,0 +1,10 @@
export interface Language {
el: Recordable
name: string
}
export interface LocaleDropdownType {
lang: LocaleType
name?: string
elLocale?: Language
}

9
src/types/qrcode.d.ts vendored Normal file
View File

@@ -0,0 +1,9 @@
export interface QrcodeLogo {
src?: string
logoSize?: number
bgColor?: string
borderSize?: number
crossOrigin?: string
borderRadius?: number
logoRadius?: number
}

44
src/types/table.d.ts vendored Normal file
View File

@@ -0,0 +1,44 @@
export type TableColumn = {
field: string
label?: string
width?: number | string
fixed?: 'left' | 'right'
children?: TableColumn[]
} & Recordable
export type VxeTableColumn = {
field: string
title?: string
children?: TableColumn[]
} & Recordable
export type TableSlotDefault = {
row: Recordable
column: TableColumn
$index: number
} & Recordable
export interface Pagination {
small?: boolean
background?: boolean
pageSize?: number
defaultPageSize?: number
total?: number
pageCount?: number
pagerCount?: number
currentPage?: number
defaultCurrentPage?: number
layout?: string
pageSizes?: number[]
popperClass?: string
prevText?: string
nextText?: string
disabled?: boolean
hideOnSinglePage?: boolean
}
export interface TableSetPropsType {
field: string
path: string
value: any
}

16
src/types/theme.d.ts vendored Normal file
View File

@@ -0,0 +1,16 @@
export type ThemeTypes = {
elColorPrimary?: string
leftMenuBorderColor?: string
leftMenuBgColor?: string
leftMenuBgLightColor?: string
leftMenuBgActiveColor?: string
leftMenuCollapseBgActiveColor?: string
leftMenuTextColor?: string
leftMenuTextActiveColor?: string
logoTitleTextColor?: string
logoBorderColor?: string
topHeaderBgColor?: string
topHeaderTextColor?: string
topHeaderHoverColor?: string
topToolBorderColor?: string
}