+
void
diff --git a/yudao-ui-admin-vue3/src/components/Form/src/Form.vue b/yudao-ui-admin-vue3/src/components/Form/src/Form.vue
index fee05dfe6..f1d2ca64b 100644
--- a/yudao-ui-admin-vue3/src/components/Form/src/Form.vue
+++ b/yudao-ui-admin-vue3/src/components/Form/src/Form.vue
@@ -20,6 +20,7 @@ import { findIndex } from '@/utils'
import { set } from 'lodash-es'
import { FormProps } from './types'
import { Icon } from '@/components/Icon'
+import { FormSchema, FormSetPropsType } from '@/types/form'
const { getPrefixCls } = useDesign()
diff --git a/yudao-ui-admin-vue3/src/components/Form/src/componentMap.ts b/yudao-ui-admin-vue3/src/components/Form/src/componentMap.ts
index 822f64da1..9fdb1db7a 100644
--- a/yudao-ui-admin-vue3/src/components/Form/src/componentMap.ts
+++ b/yudao-ui-admin-vue3/src/components/Form/src/componentMap.ts
@@ -20,6 +20,7 @@ import {
} from 'element-plus'
import { InputPassword } from '@/components/InputPassword'
import { Editor } from '@/components/Editor'
+import { ComponentName } from '@/types/components'
const componentMap: Recordable = {
Radio: ElRadioGroup,
diff --git a/yudao-ui-admin-vue3/src/components/Form/src/components/useRenderCheckbox.tsx b/yudao-ui-admin-vue3/src/components/Form/src/components/useRenderCheckbox.tsx
index 26ac32e12..fb3f1beeb 100644
--- a/yudao-ui-admin-vue3/src/components/Form/src/components/useRenderCheckbox.tsx
+++ b/yudao-ui-admin-vue3/src/components/Form/src/components/useRenderCheckbox.tsx
@@ -1,3 +1,4 @@
+import { FormSchema } from '@/types/form'
import { ElCheckbox, ElCheckboxButton } from 'element-plus'
import { defineComponent } from 'vue'
diff --git a/yudao-ui-admin-vue3/src/components/Form/src/components/useRenderRadio.tsx b/yudao-ui-admin-vue3/src/components/Form/src/components/useRenderRadio.tsx
index 98a477873..a5831eb78 100644
--- a/yudao-ui-admin-vue3/src/components/Form/src/components/useRenderRadio.tsx
+++ b/yudao-ui-admin-vue3/src/components/Form/src/components/useRenderRadio.tsx
@@ -1,3 +1,4 @@
+import { FormSchema } from '@/types/form'
import { ElRadio, ElRadioButton } from 'element-plus'
import { defineComponent } from 'vue'
diff --git a/yudao-ui-admin-vue3/src/components/Form/src/components/useRenderSelect.tsx b/yudao-ui-admin-vue3/src/components/Form/src/components/useRenderSelect.tsx
index 13793f59b..5c33d7697 100644
--- a/yudao-ui-admin-vue3/src/components/Form/src/components/useRenderSelect.tsx
+++ b/yudao-ui-admin-vue3/src/components/Form/src/components/useRenderSelect.tsx
@@ -1,3 +1,5 @@
+import { FormSchema } from '@/types/form'
+import { ComponentOptions } from '@/types/components'
import { ElOption, ElOptionGroup } from 'element-plus'
import { getSlot } from '@/utils/tsxHelper'
import { Slots } from 'vue'
@@ -29,8 +31,15 @@ export const useRenderSelect = (slots: Slots) => {
// 如果有别名,就取别名
const labelAlias = item?.componentProps?.optionsAlias?.labelField
const valueAlias = item?.componentProps?.optionsAlias?.valueField
+
+ const { label, value, ...other } = option
+
return (
-
+
{{
default: () =>
// option 插槽名规则,{field}-option
diff --git a/yudao-ui-admin-vue3/src/components/Form/src/helper.ts b/yudao-ui-admin-vue3/src/components/Form/src/helper.ts
index b81409c7e..15c3cc861 100644
--- a/yudao-ui-admin-vue3/src/components/Form/src/helper.ts
+++ b/yudao-ui-admin-vue3/src/components/Form/src/helper.ts
@@ -2,6 +2,8 @@ import { useI18n } from '@/hooks/web/useI18n'
import type { Slots } from 'vue'
import { getSlot } from '@/utils/tsxHelper'
import { PlaceholderMoel } from './types'
+import { FormSchema } from '@/types/form'
+import { ColProps } from '@/types/components'
/**
*
diff --git a/yudao-ui-admin-vue3/src/components/Form/src/types.ts b/yudao-ui-admin-vue3/src/components/Form/src/types.ts
index fb650ba33..92a49d850 100644
--- a/yudao-ui-admin-vue3/src/components/Form/src/types.ts
+++ b/yudao-ui-admin-vue3/src/components/Form/src/types.ts
@@ -1,3 +1,5 @@
+import { FormSchema } from '@/types/form'
+
export interface PlaceholderMoel {
placeholder?: string
startPlaceholder?: string
diff --git a/yudao-ui-admin-vue3/src/components/Icon/src/IconSelect.vue b/yudao-ui-admin-vue3/src/components/Icon/src/IconSelect.vue
index 73282b8f2..50b191d3f 100644
--- a/yudao-ui-admin-vue3/src/components/Icon/src/IconSelect.vue
+++ b/yudao-ui-admin-vue3/src/components/Icon/src/IconSelect.vue
@@ -1,6 +1,6 @@
diff --git a/yudao-ui-admin-vue3/src/components/TabMenu/src/TabMenu.vue b/yudao-ui-admin-vue3/src/components/TabMenu/src/TabMenu.vue
index 061421b96..1ec61ca27 100644
--- a/yudao-ui-admin-vue3/src/components/TabMenu/src/TabMenu.vue
+++ b/yudao-ui-admin-vue3/src/components/TabMenu/src/TabMenu.vue
@@ -1,7 +1,7 @@
-
+
diff --git a/yudao-ui-admin-vue3/src/views/infra/codegen/components/ImportTable.vue b/yudao-ui-admin-vue3/src/views/infra/codegen/components/ImportTable.vue
index 933d128ef..09a3d386a 100644
--- a/yudao-ui-admin-vue3/src/views/infra/codegen/components/ImportTable.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/codegen/components/ImportTable.vue
@@ -1,5 +1,5 @@
diff --git a/yudao-ui-admin-vue3/tsconfig.json b/yudao-ui-admin-vue3/tsconfig.json
index d4a76c5b0..27d1dfdf5 100644
--- a/yudao-ui-admin-vue3/tsconfig.json
+++ b/yudao-ui-admin-vue3/tsconfig.json
@@ -30,7 +30,7 @@
"@types/intro.js",
"@types/qrcode",
"vite-plugin-svg-icons/client",
- "unplugin-vue-define-options"
+ "unplugin-vue-macros/macros-global"
],
"typeRoots": ["./node_modules/@types/", "./types"]
},
diff --git a/yudao-ui-admin-vue3/types/componentType/configGlobal.d.ts b/yudao-ui-admin-vue3/types/componentType/configGlobal.d.ts
deleted file mode 100644
index 6a0bb1a73..000000000
--- a/yudao-ui-admin-vue3/types/componentType/configGlobal.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-declare interface ConfigGlobalTypes {
- size?: ElememtPlusSize
-}
diff --git a/yudao-ui-admin-vue3/types/componentType/contextMenu.d.ts b/yudao-ui-admin-vue3/types/componentType/contextMenu.d.ts
deleted file mode 100644
index 3f9cac382..000000000
--- a/yudao-ui-admin-vue3/types/componentType/contextMenu.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-declare type contextMenuSchema = {
- disabled?: boolean
- divided?: boolean
- icon?: string
- label: string
- command?: (item: contextMenuSchema) => viod
-}
diff --git a/yudao-ui-admin-vue3/types/componentType/form.d.ts b/yudao-ui-admin-vue3/types/componentType/form.d.ts
deleted file mode 100644
index 57d55a678..000000000
--- a/yudao-ui-admin-vue3/types/componentType/form.d.ts
+++ /dev/null
@@ -1,97 +0,0 @@
-import type { CSSProperties } from 'vue'
-
-declare global {
- declare type ComponentName =
- | 'Radio'
- | 'RadioButton'
- | 'Checkbox'
- | 'CheckboxButton'
- | 'Input'
- | 'Autocomplete'
- | 'InputNumber'
- | 'Select'
- | 'Cascader'
- | 'Switch'
- | 'Slider'
- | 'TimePicker'
- | 'DatePicker'
- | 'Rate'
- | 'ColorPicker'
- | 'Transfer'
- | 'Divider'
- | 'TimeSelect'
- | 'SelectV2'
- | 'InputPassword'
- | 'Editor'
-
- declare type ColProps = {
- span?: number
- xs?: number
- sm?: number
- md?: number
- lg?: number
- xl?: number
- tag?: string
- }
-
- declare type FormValueType = string | number | string[] | number[] | boolean | undefined | null
-
- declare type FormItemProps = {
- labelWidth?: string | number
- required?: boolean
- rules?: Recordable
- error?: string
- showMessage?: boolean
- inlineMessage?: boolean
- style?: CSSProperties
- }
-
- declare type ComponentOptions = {
- label?: string
- value?: FormValueType
- disabled?: boolean
- key?: string | number
- children?: ComponentOptions[]
- options?: ComponentOptions[]
- } & Recordable
-
- declare type ComponentOptionsAlias = {
- labelField?: string
- valueField?: string
- }
-
- declare type ComponentProps = {
- optionsAlias?: ComponentOptionsAlias
- options?: ComponentOptions[]
- optionsSlot?: boolean
- } & Recordable
-
- declare 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?: () => Promise
- }
-
- declare type FormSetPropsType = {
- field: string
- path: string
- value: any
- }
-}
diff --git a/yudao-ui-admin-vue3/types/global.d.ts b/yudao-ui-admin-vue3/types/global.d.ts
index a14f2618d..67338cd71 100644
--- a/yudao-ui-admin-vue3/types/global.d.ts
+++ b/yudao-ui-admin-vue3/types/global.d.ts
@@ -1,40 +1,39 @@
-declare interface Fn {
- (...arg: T[]): T
-}
-
-declare type Nullable = T | null
-
-declare type ElRef = Nullable
-
-declare type ElememtPlusSize = 'default' | 'small' | 'large'
-
-declare type ElementPlusInfoType = 'success' | 'info' | 'warning' | 'danger'
-
-declare type Recordable = Record
-
-declare type ComponentRef = InstanceType
-
-declare type LocaleType = 'zh-CN' | 'en'
-
-declare type AxiosHeaders =
- | 'application/json'
- | 'application/x-www-form-urlencoded'
- | 'multipart/form-data'
-
-declare type AxiosMethod = 'GET' | 'POST' | 'DELETE' | 'PUT'
-
-declare type AxiosResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream'
-
-declare interface AxiosConfig {
- params?: any
- data?: any
- url?: string
- method?: AxiosMethod
- headersType?: string
- responseType?: AxiosResponseType
-}
-
-declare interface IResponse {
- code?: number
- data: T extends any ? T : T & any
+import type { CSSProperties } from 'vue'
+declare global {
+ declare interface Fn {
+ (...arg: T[]): T
+ }
+
+ declare type Nullable = T | null
+
+ declare type ElRef = Nullable
+
+ declare type Recordable = Record
+
+ declare type ComponentRef = InstanceType
+
+ declare type LocaleType = 'zh-CN' | 'en'
+
+ declare type AxiosHeaders =
+ | 'application/json'
+ | 'application/x-www-form-urlencoded'
+ | 'multipart/form-data'
+
+ declare type AxiosMethod = 'get' | 'post' | 'delete' | 'put' | 'GET' | 'POST' | 'DELETE' | 'PUT'
+
+ declare type AxiosResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream'
+
+ declare interface AxiosConfig {
+ params?: any
+ data?: any
+ url?: string
+ method?: AxiosMethod
+ headersType?: string
+ responseType?: AxiosResponseType
+ }
+
+ declare interface IResponse {
+ code: string
+ data: T extends any ? T : T & any
+ }
}
diff --git a/yudao-ui-admin-vue3/vite.config.ts b/yudao-ui-admin-vue3/vite.config.ts
index 9c91a9d61..83b03c0bc 100644
--- a/yudao-ui-admin-vue3/vite.config.ts
+++ b/yudao-ui-admin-vue3/vite.config.ts
@@ -9,9 +9,9 @@ import VueI18n from '@intlify/vite-plugin-vue-i18n'
import { createStyleImportPlugin, ElementPlusResolve } from 'vite-plugin-style-import'
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import PurgeIcons from 'vite-plugin-purge-icons'
-import DefineOptions from 'unplugin-vue-define-options/vite'
import { createHtmlPlugin } from 'vite-plugin-html'
import viteCompression from 'vite-plugin-compression'
+import VueMarcos from 'unplugin-vue-macros/vite'
// 当前执行node命令时文件夹的地址(工作目录)
const root = process.cwd()
@@ -80,7 +80,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
svgoOptions: true
}),
PurgeIcons(),
- DefineOptions(),
+ VueMarcos(),
viteCompression({
verbose: true, // 是否在控制台输出压缩结果
disable: true, // 是否禁用