mirror of
https://gitee.com/dromara/go-view.git
synced 2025-02-24 08:12:49 +08:00
!163 fix: 修复原来动态导入的问题,保留 redirectComponent 配置的灵活性
Merge pull request !163 from dodu/dev-commet
This commit is contained in:
commit
d6e309b117
@ -1,4 +1,4 @@
|
|||||||
import { IconConfig } from '../Icon/index'
|
import { IconConfig } from '../Default/Icon/index'
|
||||||
import { PackagesCategoryEnum } from '@/packages/index.d'
|
import { PackagesCategoryEnum } from '@/packages/index.d'
|
||||||
import { ChatCategoryEnum, ChatCategoryEnumName } from '../index.d'
|
import { ChatCategoryEnum, ChatCategoryEnumName } from '../index.d'
|
||||||
|
|
||||||
@ -78,7 +78,7 @@ const iconList = iconNames.map(name => ({
|
|||||||
icon: name,
|
icon: name,
|
||||||
dataset: name,
|
dataset: name,
|
||||||
title: name.replace('uim:', ''),
|
title: name.replace('uim:', ''),
|
||||||
redirectComponent: './components/Icons/Icon' // 虚拟组件路径,尾部不跟 ‘/’,相对于 /packages/index.ts 文件的位置
|
redirectComponent: `${IconConfig.package}/${IconConfig.category}/${IconConfig.key}` // 跳转组件路径规则:packageName/categoryName/componentKey
|
||||||
}))
|
}))
|
||||||
|
|
||||||
export default iconList
|
export default iconList
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
|
import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
|
||||||
import { ChatCategoryEnum, ChatCategoryEnumName } from '../index.d'
|
import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
|
||||||
|
|
||||||
export const IconConfig: ConfigType = {
|
export const IconConfig: ConfigType = {
|
||||||
key: 'Icon',
|
key: 'Icon',
|
||||||
chartKey: 'VIcon',
|
chartKey: 'VIcon',
|
||||||
conKey: 'VCIcon',
|
conKey: 'VCIcon',
|
||||||
title: '图标',
|
title: '图标',
|
||||||
category: ChatCategoryEnum.COMMON,
|
category: ChatCategoryEnum.DEFAULT,
|
||||||
categoryName: ChatCategoryEnumName.COMMON,
|
categoryName: ChatCategoryEnumName.DEFAULT,
|
||||||
package: PackagesCategoryEnum.ICONS,
|
package: PackagesCategoryEnum.ICONS,
|
||||||
chartFrame: ChartFrameEnum.STATIC,
|
chartFrame: ChartFrameEnum.STATIC,
|
||||||
image: 'icon.png'
|
image: 'icon.png'
|
@ -1,4 +1,4 @@
|
|||||||
import { IconConfig } from '../Icon/index'
|
import { IconConfig } from '../Default/Icon/index'
|
||||||
import { PackagesCategoryEnum } from '@/packages/index.d'
|
import { PackagesCategoryEnum } from '@/packages/index.d'
|
||||||
import { ChatCategoryEnum, ChatCategoryEnumName } from '../index.d'
|
import { ChatCategoryEnum, ChatCategoryEnumName } from '../index.d'
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ const iconList = iconNames.map(name => ({
|
|||||||
icon: name,
|
icon: name,
|
||||||
dataset: name,
|
dataset: name,
|
||||||
title: name.replace('line-md:', ''),
|
title: name.replace('line-md:', ''),
|
||||||
redirectComponent: './components/Icons/Icon' // 虚拟组件路径,尾部不跟 ‘/’,相对于 /packages/index.ts 文件的位置
|
redirectComponent: `${IconConfig.package}/${IconConfig.category}/${IconConfig.key}` // 跳转组件路径规则:packageName/categoryName/componentKey
|
||||||
}))
|
}))
|
||||||
|
|
||||||
export default iconList
|
export default iconList
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { IconConfig } from '../Icon/index'
|
import { IconConfig } from '../Default/Icon/index'
|
||||||
import { PackagesCategoryEnum } from '@/packages/index.d'
|
import { PackagesCategoryEnum } from '@/packages/index.d'
|
||||||
import { ChatCategoryEnum, ChatCategoryEnumName } from '../index.d'
|
import { ChatCategoryEnum, ChatCategoryEnumName } from '../index.d'
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ const iconNames = [
|
|||||||
'wi:night-alt-cloudy-high',
|
'wi:night-alt-cloudy-high',
|
||||||
'wi:night-alt-hail',
|
'wi:night-alt-hail',
|
||||||
'wi:night-alt-lightning',
|
'wi:night-alt-lightning',
|
||||||
'wi:umbrella',
|
'wi:umbrella'
|
||||||
]
|
]
|
||||||
const iconList = iconNames.map(name => ({
|
const iconList = iconNames.map(name => ({
|
||||||
...IconConfig,
|
...IconConfig,
|
||||||
@ -47,7 +47,7 @@ const iconList = iconNames.map(name => ({
|
|||||||
icon: name,
|
icon: name,
|
||||||
dataset: name,
|
dataset: name,
|
||||||
title: name.replace('wi:', ''),
|
title: name.replace('wi:', ''),
|
||||||
redirectComponent: './components/Icons/Icon' // 虚拟组件路径,尾部不跟 ‘/’,相对于 /packages/index.ts 文件的位置
|
redirectComponent: `${IconConfig.package}/${IconConfig.category}/${IconConfig.key}` // 跳转组件路径规则:packageName/categoryName/componentKey
|
||||||
}))
|
}))
|
||||||
|
|
||||||
export default iconList
|
export default iconList
|
||||||
|
7
src/packages/components/Icons/index.d.ts
vendored
7
src/packages/components/Icons/index.d.ts
vendored
@ -1,12 +1,13 @@
|
|||||||
export enum ChatCategoryEnum {
|
export enum ChatCategoryEnum {
|
||||||
ML = 'MaterialLine',
|
ML = 'MaterialLine',
|
||||||
COMMON = 'Common',
|
COMMON = 'Common',
|
||||||
WEATHER = "WEATHER"
|
WEATHER = 'Weather',
|
||||||
|
DEFAULT = 'Default' // 这个仅用来表示组件分类目录,不要在 index.ts 中导入
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export enum ChatCategoryEnumName {
|
export enum ChatCategoryEnumName {
|
||||||
ML = '动画',
|
ML = '动画',
|
||||||
COMMON = '通用',
|
COMMON = '通用',
|
||||||
WEATHER = "天气"
|
WEATHER = '天气',
|
||||||
|
DEFAULT = '默认'
|
||||||
}
|
}
|
||||||
|
@ -2,4 +2,4 @@ import MaterialLine from './MaterialLine'
|
|||||||
import Common from './Common'
|
import Common from './Common'
|
||||||
import Weather from './Weather'
|
import Weather from './Weather'
|
||||||
|
|
||||||
export const IconList = [...MaterialLine, ...Common, ...Weather]
|
export const IconList = [...MaterialLine, ...Weather, ...Common]
|
||||||
|
@ -22,7 +22,7 @@ const userPhotosList: ConfigType[] = getLocalStorage(StoreKey) || []
|
|||||||
const uploadFile = (callback: Function | null = null) => {
|
const uploadFile = (callback: Function | null = null) => {
|
||||||
const input = document.createElement('input')
|
const input = document.createElement('input')
|
||||||
input.type = 'file'
|
input.type = 'file'
|
||||||
input.accept = 'image/*' // 这里只允许图片类型
|
input.accept = '.png,.jpg,.jpeg,.gif' // 这里只允许部分图片类型
|
||||||
input.onchange = async () => {
|
input.onchange = async () => {
|
||||||
if (!input.files || !input.files.length) return
|
if (!input.files || !input.files.length) return
|
||||||
const file = input.files[0]
|
const file = input.files[0]
|
||||||
@ -53,7 +53,7 @@ const addConfig = {
|
|||||||
chartFrame: ChartFrameEnum.STATIC,
|
chartFrame: ChartFrameEnum.STATIC,
|
||||||
title: '点击上传图片',
|
title: '点击上传图片',
|
||||||
image: 'upload.png',
|
image: 'upload.png',
|
||||||
redirectComponent: './components/Informations/Mores/Image', // 虚拟组件路径,尾部不跟 ‘/’,相对于 /packages/index.ts 文件的位置
|
redirectComponent: `${ImageConfig.package}/${ImageConfig.category}/${ImageConfig.key}`, // 跳转组件路径规则:packageName/categoryName/componentKey
|
||||||
disabled: true,
|
disabled: true,
|
||||||
configEvents: {
|
configEvents: {
|
||||||
// 点击上传事件
|
// 点击上传事件
|
||||||
@ -74,7 +74,7 @@ const addConfig = {
|
|||||||
title: e.fileName,
|
title: e.fileName,
|
||||||
image: e.url,
|
image: e.url,
|
||||||
dataset: e.url,
|
dataset: e.url,
|
||||||
redirectComponent: './components/Informations/Mores/Image' // 虚拟组件路径,尾部不跟 ‘/’,相对于 /packages/index.ts 文件的位置
|
redirectComponent: `${ImageConfig.package}/${ImageConfig.category}/${ImageConfig.key}` // 跳转组件路径规则:packageName/categoryName/componentKey
|
||||||
}
|
}
|
||||||
userPhotosList.unshift(newPhoto)
|
userPhotosList.unshift(newPhoto)
|
||||||
// 存储在本地数据中
|
// 存储在本地数据中
|
||||||
|
@ -17,7 +17,7 @@ const photoConfigList = imageList.map(i => ({
|
|||||||
image: i.imageUrl,
|
image: i.imageUrl,
|
||||||
dataset: i.imageUrl,
|
dataset: i.imageUrl,
|
||||||
title: i.imageName,
|
title: i.imageName,
|
||||||
redirectComponent: './components/Informations/Mores/Image' // 虚拟组件路径,尾部不跟 ‘/’,相对于 /packages/index.ts 文件的位置
|
redirectComponent: `${ImageConfig.package}/${ImageConfig.category}/${ImageConfig.key}` // 跳转组件路径规则:packageName/categoryName/componentKey
|
||||||
}))
|
}))
|
||||||
|
|
||||||
export default photoConfigList
|
export default photoConfigList
|
||||||
|
@ -31,28 +31,13 @@ export let packagesList: PackagesType = {
|
|||||||
* @param targetData
|
* @param targetData
|
||||||
*/
|
*/
|
||||||
export const createComponent = async (targetData: ConfigType) => {
|
export const createComponent = async (targetData: ConfigType) => {
|
||||||
const { package: packageName } = targetData
|
const { redirectComponent, category, key } = targetData
|
||||||
if (packageName === PackagesCategoryEnum.ICONS) {
|
// redirectComponent 是给图片组件库和图标组件库使用的
|
||||||
return createIconComponent()
|
if (redirectComponent) {
|
||||||
} else if (packageName === PackagesCategoryEnum.PHOTOS) {
|
const [packageName, categoryName, keyName] = redirectComponent.split('/')
|
||||||
return createPhotoComponent()
|
const redirectChart = await import(`./components/${packageName}/${categoryName}/${keyName}/config.ts`)
|
||||||
} else {
|
return new redirectChart.default()
|
||||||
return createDefaultComponent(targetData)
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
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`)
|
const chart = await import(`./components/${targetData.package}/${category}/${key}/config.ts`)
|
||||||
return new chart.default()
|
return new chart.default()
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user