feat: 升级 vue3 1.8.0

This commit is contained in:
xingyu
2022-10-11 14:06:30 +08:00
parent 7a717ef80d
commit 814f4211b0
14 changed files with 209 additions and 6 deletions

View File

@ -0,0 +1,52 @@
export type ComponentName =
| 'Radio'
| 'RadioButton'
| 'Checkbox'
| 'CheckboxButton'
| 'Input'
| 'Autocomplete'
| 'InputNumber'
| 'Select'
| 'Cascader'
| 'Switch'
| 'Slider'
| 'TimePicker'
| 'DatePicker'
| 'Rate'
| 'ColorPicker'
| 'Transfer'
| 'Divider'
| 'TimeSelect'
| 'SelectV2'
| 'InputPassword'
| 'Editor'
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

View File

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

View File

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

View File

@ -0,0 +1,11 @@
export interface DescriptionsSchema {
span?: number // 占多少分
field: string // 字段名
label?: string // label名
width?: string | number
minWidth?: string | number
align?: 'left' | 'center' | 'right'
labelAlign?: 'left' | 'center' | 'right'
className?: string
labelClassName?: string
}

View File

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

45
yudao-ui-admin-vue3/src/types/form.d.ts vendored Normal file
View File

@ -0,0 +1,45 @@
import type { CSSProperties } from 'vue'
import { ColProps, ComponentProps, ComponentName } from '@/types/components'
import { FormValueType, FormValueType } from '@/types/form'
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>
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,36 @@
export type TableColumn = {
field: string
label?: 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
}

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
}