diff --git a/src/App.vue b/src/App.vue index 39dcb5c..20636df 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,27 +1,58 @@ @@ -81,6 +254,25 @@ const schema = reactive([ + + + + + + diff --git a/src/components/Form/src/VForm.vue b/src/components/Form/src/VForm.vue index 879b598..56fe051 100644 --- a/src/components/Form/src/VForm.vue +++ b/src/components/Form/src/VForm.vue @@ -1,7 +1,7 @@ - - diff --git a/src/components/Form/src/componentMap.ts b/src/components/Form/src/componentMap.ts index 376df7d..f271a8f 100644 --- a/src/components/Form/src/componentMap.ts +++ b/src/components/Form/src/componentMap.ts @@ -19,7 +19,7 @@ import { ElDivider } from 'element-plus' -const COMPONENT_MAP: Recordable = { +const componentMap: Recordable = { Radio: ElRadioGroup, Checkbox: ElCheckboxGroup, Input: ElInput, @@ -39,4 +39,4 @@ const COMPONENT_MAP: Recordable = { SelectV2: ElSelectV2 } -export { COMPONENT_MAP } +export { componentMap } diff --git a/src/components/Form/src/components/Checkbox.vue b/src/components/Form/src/components/Checkbox.vue deleted file mode 100644 index e69de29..0000000 diff --git a/src/components/Form/src/components/Radio.vue b/src/components/Form/src/components/Radio.vue deleted file mode 100644 index e69de29..0000000 diff --git a/src/components/Form/src/components/Select.vue b/src/components/Form/src/components/Select.vue deleted file mode 100644 index e69de29..0000000 diff --git a/src/components/Form/src/helper.ts b/src/components/Form/src/helper.ts index 92a92de..8670b2a 100644 --- a/src/components/Form/src/helper.ts +++ b/src/components/Form/src/helper.ts @@ -110,8 +110,8 @@ export function setItemComponentSlots( for (const key in slotsProps) { if (slotsProps[key]) { // 由于组件有可能重复,需要有一个唯一的前缀 - slotObj[key] = () => { - return getSlot(slots, `${field}-${key}`) + slotObj[key] = (data: Recordable) => { + return getSlot(slots, `${field}-${key}`, data) } } } diff --git a/src/locales/en.ts b/src/locales/en.ts index f7d0a48..75d4083 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -4,5 +4,18 @@ export default { selectText: 'Please select', startTimeText: 'Start time', endTimeText: 'End time' + }, + formDemo: { + input: 'Input', + inputNumber: 'InputNumber', + default: 'Default', + icon: 'Icon', + mixed: 'Mixed', + textarea: 'Textarea', + slot: 'Slot', + position: 'Position', + autocomplete: 'Autocomplete', + select: 'Select', + group: 'Select Group' } } diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index 340b78b..eacc517 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -4,5 +4,18 @@ export default { selectText: '请选择', startTimeText: '开始时间', endTimeText: '结束时间' + }, + formDemo: { + input: '输入框', + inputNumber: '数字输入框', + default: '默认', + icon: '图标', + mixed: '复合型', + textarea: '多行文本', + slot: '插槽', + position: '位置', + autocomplete: '自动补全', + select: '选择器', + group: '选项分组' } } diff --git a/src/main.ts b/src/main.ts index bbfc0d6..e998ae6 100644 --- a/src/main.ts +++ b/src/main.ts @@ -5,6 +5,10 @@ import { createApp } from 'vue' import App from './App.vue' const app = createApp(App) +// 引入element-plus +import { setupElementPlus } from '@/plugins/elementPlus' +setupElementPlus(app) + // 引入状态管理 import { setupStore } from '@/store' setupStore(app) diff --git a/src/plugins/elementPlus/index.ts b/src/plugins/elementPlus/index.ts new file mode 100644 index 0000000..97b9a05 --- /dev/null +++ b/src/plugins/elementPlus/index.ts @@ -0,0 +1,16 @@ +import type { App } from 'vue' + +// 需要全局引入一些组件,如ElScrollbar,不然一些下拉项样式有问题 +import { ElLoading, ElScrollbar } from 'element-plus' + +const plugins = [ElLoading] +const components = [ElScrollbar] + +export function setupElementPlus(app: App) { + plugins.forEach((plugin) => { + app.use(plugin) + }) + components.forEach((component) => { + app.component(component.name, component) + }) +} diff --git a/src/types/componentType.d.ts b/src/types/componentType.d.ts index aa901aa..3c6b636 100644 --- a/src/types/componentType.d.ts +++ b/src/types/componentType.d.ts @@ -58,6 +58,7 @@ declare global { disabled?: boolean key?: string | number children?: FormOptions[] + options?: FormOptions[] [key: string]: any } @@ -76,6 +77,7 @@ declare global { value?: FormValueTypes options?: FormOptions[] optionsField?: FormOptionsAlias + optionsSlot?: boolean hidden?: boolean }