From bb48745484af50c11b70f62fd7b9db60299d6a2a Mon Sep 17 00:00:00 2001 From: tnt group Date: Fri, 26 May 2023 16:51:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C=E4=BF=9D?= =?UTF-8?q?=E7=95=99=20redirectComponent=20=E9=85=8D=E7=BD=AE=E7=9A=84?= =?UTF-8?q?=E7=81=B5=E6=B4=BB=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/packages/components/Icons/Common/index.ts | 4 +-- .../Icons/{ => Default}/Icon/config.ts | 0 .../Icons/{ => Default}/Icon/config.vue | 0 .../Icons/{ => Default}/Icon/index.ts | 2 +- .../Icons/{ => Default}/Icon/index.vue | 0 .../components/Icons/MaterialLine/index.ts | 4 +-- .../components/Icons/Weather/index.ts | 4 +-- .../components/Photos/Private/index.ts | 4 +-- src/packages/components/Photos/Share/index.ts | 2 +- src/packages/index.ts | 27 +++++-------------- 10 files changed, 16 insertions(+), 31 deletions(-) rename src/packages/components/Icons/{ => Default}/Icon/config.ts (100%) rename src/packages/components/Icons/{ => Default}/Icon/config.vue (100%) rename src/packages/components/Icons/{ => Default}/Icon/index.ts (84%) rename src/packages/components/Icons/{ => Default}/Icon/index.vue (100%) diff --git a/src/packages/components/Icons/Common/index.ts b/src/packages/components/Icons/Common/index.ts index 76b32b26..71b273d0 100644 --- a/src/packages/components/Icons/Common/index.ts +++ b/src/packages/components/Icons/Common/index.ts @@ -1,4 +1,4 @@ -import { IconConfig } from '../Icon/index' +import { IconConfig } from '../Default/Icon/index' import { PackagesCategoryEnum } from '@/packages/index.d' import { ChatCategoryEnum, ChatCategoryEnumName } from '../index.d' @@ -78,7 +78,7 @@ const iconList = iconNames.map(name => ({ icon: name, dataset: name, title: name.replace('uim:', ''), - redirectComponent: './components/Icons/Icon' // 虚拟组件路径,尾部不跟 ‘/’,相对于 /packages/index.ts 文件的位置 + redirectComponent: 'Icons/Default/Icon' // 跳转组件路径规则:packageName/categoryName/componentKey })) export default iconList diff --git a/src/packages/components/Icons/Icon/config.ts b/src/packages/components/Icons/Default/Icon/config.ts similarity index 100% rename from src/packages/components/Icons/Icon/config.ts rename to src/packages/components/Icons/Default/Icon/config.ts diff --git a/src/packages/components/Icons/Icon/config.vue b/src/packages/components/Icons/Default/Icon/config.vue similarity index 100% rename from src/packages/components/Icons/Icon/config.vue rename to src/packages/components/Icons/Default/Icon/config.vue diff --git a/src/packages/components/Icons/Icon/index.ts b/src/packages/components/Icons/Default/Icon/index.ts similarity index 84% rename from src/packages/components/Icons/Icon/index.ts rename to src/packages/components/Icons/Default/Icon/index.ts index 574b694c..8b722907 100644 --- a/src/packages/components/Icons/Icon/index.ts +++ b/src/packages/components/Icons/Default/Icon/index.ts @@ -1,5 +1,5 @@ import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' -import { ChatCategoryEnum, ChatCategoryEnumName } from '../index.d' +import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d' export const IconConfig: ConfigType = { key: 'Icon', diff --git a/src/packages/components/Icons/Icon/index.vue b/src/packages/components/Icons/Default/Icon/index.vue similarity index 100% rename from src/packages/components/Icons/Icon/index.vue rename to src/packages/components/Icons/Default/Icon/index.vue diff --git a/src/packages/components/Icons/MaterialLine/index.ts b/src/packages/components/Icons/MaterialLine/index.ts index b018d0aa..9d729d9a 100644 --- a/src/packages/components/Icons/MaterialLine/index.ts +++ b/src/packages/components/Icons/MaterialLine/index.ts @@ -1,4 +1,4 @@ -import { IconConfig } from '../Icon/index' +import { IconConfig } from '../Default/Icon/index' import { PackagesCategoryEnum } from '@/packages/index.d' import { ChatCategoryEnum, ChatCategoryEnumName } from '../index.d' @@ -39,7 +39,7 @@ const iconList = iconNames.map(name => ({ icon: name, dataset: name, title: name.replace('line-md:', ''), - redirectComponent: './components/Icons/Icon' // 虚拟组件路径,尾部不跟 ‘/’,相对于 /packages/index.ts 文件的位置 + redirectComponent: 'Icons/Default/Icon' // 跳转组件路径规则:packageName/categoryName/componentKey })) export default iconList diff --git a/src/packages/components/Icons/Weather/index.ts b/src/packages/components/Icons/Weather/index.ts index 7e97ba8a..b760f925 100644 --- a/src/packages/components/Icons/Weather/index.ts +++ b/src/packages/components/Icons/Weather/index.ts @@ -1,4 +1,4 @@ -import { IconConfig } from '../Icon/index' +import { IconConfig } from '../Default/Icon/index' import { PackagesCategoryEnum } from '@/packages/index.d' import { ChatCategoryEnum, ChatCategoryEnumName } from '../index.d' @@ -47,7 +47,7 @@ const iconList = iconNames.map(name => ({ icon: name, dataset: name, title: name.replace('wi:', ''), - redirectComponent: './components/Icons/Icon' // 虚拟组件路径,尾部不跟 ‘/’,相对于 /packages/index.ts 文件的位置 + redirectComponent: 'Icons/Default/Icon' // 跳转组件路径规则:packageName/categoryName/componentKey })) export default iconList diff --git a/src/packages/components/Photos/Private/index.ts b/src/packages/components/Photos/Private/index.ts index f95c6af0..1d0c4b27 100644 --- a/src/packages/components/Photos/Private/index.ts +++ b/src/packages/components/Photos/Private/index.ts @@ -53,7 +53,7 @@ const addConfig = { chartFrame: ChartFrameEnum.STATIC, title: '点击上传图片', image: 'upload.png', - redirectComponent: './components/Informations/Mores/Image', // 虚拟组件路径,尾部不跟 ‘/’,相对于 /packages/index.ts 文件的位置 + redirectComponent: 'Informations/Mores/Image', // 跳转组件路径规则:packageName/categoryName/componentKey disabled: true, configEvents: { // 点击上传事件 @@ -74,7 +74,7 @@ const addConfig = { title: e.fileName, image: e.url, dataset: e.url, - redirectComponent: './components/Informations/Mores/Image' // 虚拟组件路径,尾部不跟 ‘/’,相对于 /packages/index.ts 文件的位置 + redirectComponent: 'Informations/Mores/Image' // 跳转组件路径规则:packageName/categoryName/componentKey } userPhotosList.unshift(newPhoto) // 存储在本地数据中 diff --git a/src/packages/components/Photos/Share/index.ts b/src/packages/components/Photos/Share/index.ts index 2cb19ba6..7ed5187a 100644 --- a/src/packages/components/Photos/Share/index.ts +++ b/src/packages/components/Photos/Share/index.ts @@ -17,7 +17,7 @@ const photoConfigList = imageList.map(i => ({ image: i.imageUrl, dataset: i.imageUrl, title: i.imageName, - redirectComponent: './components/Informations/Mores/Image' // 虚拟组件路径,尾部不跟 ‘/’,相对于 /packages/index.ts 文件的位置 + redirectComponent: 'Informations/Mores/Image' // 跳转组件路径规则:packageName/categoryName/componentKey })) export default photoConfigList diff --git a/src/packages/index.ts b/src/packages/index.ts index 2a207939..20bc8535 100644 --- a/src/packages/index.ts +++ b/src/packages/index.ts @@ -31,28 +31,13 @@ export let packagesList: PackagesType = { * @param targetData */ export const createComponent = async (targetData: ConfigType) => { - const { package: packageName } = targetData - if (packageName === PackagesCategoryEnum.ICONS) { - return createIconComponent() - } else if (packageName === PackagesCategoryEnum.PHOTOS) { - return createPhotoComponent() - } else { - return createDefaultComponent(targetData) + const { redirectComponent, category, key } = targetData + // redirectComponent 是给图片组件库和图标组件库使用的 + if (redirectComponent) { + const [packageName, categoryName, keyName] = redirectComponent.split('/') + const redirectChart = await import(`./components/${packageName}/${categoryName}/${keyName}/config.ts`) + return new redirectChart.default() } -} - -export const createIconComponent = async () => { - const chart = await import(`./components/Icons/Icon/config`) - return new chart.default() -} - -export const createPhotoComponent = async () => { - const chart = await import(`./components/Informations/Mores/Image/config`) - return new chart.default() -} - -export const createDefaultComponent = async (targetData: ConfigType) => { - const { category, key } = targetData const chart = await import(`./components/${targetData.package}/${category}/${key}/config.ts`) return new chart.default() }