diff --git a/registry/lib/components/style/hide/home-carousel/index.ts b/registry/lib/components/style/hide/home-carousel/index.ts index 24b6d47a9..8096faa2d 100644 --- a/registry/lib/components/style/hide/home-carousel/index.ts +++ b/registry/lib/components/style/hide/home-carousel/index.ts @@ -2,8 +2,9 @@ import { defineComponentMetadata } from '@/components/define' import { ComponentEntry } from '@/components/types' import { addComponentListener } from '@/core/settings' import { select, selectAll } from '@/core/spin-query' +import { createComponentWithProps } from '@/core/utils' import { useScopedConsole } from '@/core/utils/log' -import { createComponentWithProps, RadioItem } from '@/ui' +import { RadioItem } from '@/ui' const componentName = 'hideHomeCarousel' diff --git a/registry/lib/components/utils/remove-promotions/index.ts b/registry/lib/components/utils/remove-promotions/index.ts index d2ba1c5e7..bfde83de8 100644 --- a/registry/lib/components/utils/remove-promotions/index.ts +++ b/registry/lib/components/utils/remove-promotions/index.ts @@ -1,6 +1,7 @@ -import { createComponentWithProps, RadioItem } from '@/ui' +import { RadioItem } from '@/ui' import { ComponentEntry } from '@/components/types' import { defineComponentMetadata } from '@/components/define' +import { createComponentWithProps } from '@/core/utils' const componentName = 'removePromotions' diff --git a/registry/tsconfig.json b/registry/tsconfig.json index e99318628..eb1b91a29 100644 --- a/registry/tsconfig.json +++ b/registry/tsconfig.json @@ -10,5 +10,5 @@ "include": [ "../src/**/*.d.ts", "lib/**/*.ts" -, "../src/ui/vue-component-factory.ts" ], + ], } \ No newline at end of file diff --git a/src/core/utils/index.ts b/src/core/utils/index.ts index 239d6c41e..cd6a08c83 100644 --- a/src/core/utils/index.ts +++ b/src/core/utils/index.ts @@ -714,3 +714,19 @@ export const simulateClick = (target: EventTarget, eventParams?: PointerEventIni export const getVue2Data = (el: any) => // eslint-disable-next-line no-underscore-dangle el.__vue__ ?? el.parentElement.__vue__ ?? el.children[0].__vue__ ?? el.__vueParentComponent + +/** + * 创建一个vue组件并动态注入 props + * + * 示例(脚本组件额外设置、小组件中传入参数值): + * extraOptions: () => import('./Setting.vue').then(m => createComponentWithProps(m.default, { isWidget: false })), + */ +export function createComponentWithProps(component: any, props: Record) { + return Vue.extend({ + render(h) { + return h(component, { + props, + }) + }, + }) +} diff --git a/src/ui/index.ts b/src/ui/index.ts index 166e55a80..c40120de4 100644 --- a/src/ui/index.ts +++ b/src/ui/index.ts @@ -27,5 +27,4 @@ export { default as OptionRadioGroup } from '@/ui/OptionRadioGroup.vue' export { type RadioItem } from '@/ui/radioItem' export { default as OptionWidgetLayout } from '@/ui/OptionWidgetLayout.vue' export { default as RadioGroupItem } from '@/ui/RadioGroupItem.vue' -export { createComponentWithProps } from '@/ui/vue-component-factory' export { default as MiniToast } from '@/core/toast/MiniToast.vue' diff --git a/src/ui/vue-component-factory.ts b/src/ui/vue-component-factory.ts deleted file mode 100644 index 8a648d147..000000000 --- a/src/ui/vue-component-factory.ts +++ /dev/null @@ -1,18 +0,0 @@ -import Vue from 'vue' - -/** - * 创建一个组件并动态注入 props - * - * 主要用于额外设置、小组件传入参数值 - * - * 示例:extraOptions: () => import('./Setting.vue').then(m => createComponentWithProps(m.default, { isWidget: false })), - */ -export function createComponentWithProps(component: any, props: Record) { - return Vue.extend({ - render(h) { - return h(component, { - props, - }) - }, - }) -}