Pre Merge pull request !130 from Pascal_Yu/dev

This commit is contained in:
Pascal_Yu 2023-02-15 07:21:13 +00:00 committed by Gitee
commit 380a4012ce
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
5 changed files with 29 additions and 26 deletions

View File

@ -5,7 +5,7 @@
interface ITextures {
name: string
url: string
url: () => Promise<{ default: string }>
}
export interface IResources {
@ -15,14 +15,13 @@ export interface IResources {
const fileSuffix = ['earth', 'gradient', 'redCircle', 'label', 'aperture', 'glow', 'light_column', 'aircraft']
const textures: ITextures[] = []
const modules = import.meta.globEager("../../images/earth/*");
const modules = import.meta.glob("../../images/earth/*");
for (let item in modules) {
const n = item.split('/').pop()
if (n) {
textures.push({
name: n.split('.')[0],
url: modules[item].default
url: (modules[item] as () => Promise<{ default: string }>)
})
}
}

View File

@ -45,8 +45,9 @@ export class Resources {
*/
private loadResources(): void {
this.textureLoader = new TextureLoader(this.manager)
resources.textures?.forEach(item => {
this.textureLoader.load(item.url, t => {
resources.textures?.forEach(async item => {
const url = (await item.url()).default
this.textureLoader.load(url, t => {
this.textures[item.name] = t
})
})

View File

@ -4,9 +4,9 @@ import { InformationList } from '@/packages/components/Informations/index'
import { TableList } from '@/packages/components/Tables/index'
import { PackagesCategoryEnum, PackagesType, ConfigType, FetchComFlagType } from '@/packages/index.d'
const configModules = import.meta.globEager('./components/**/config.vue')
const indexModules = import.meta.globEager('./components/**/index.vue')
const imagesModules = import.meta.globEager('../assets/images/chart/**')
const configModules = import.meta.glob('./components/**/config.vue')
const indexModules = import.meta.glob('./components/**/index.vue')
const imagesModules = import.meta.glob('../assets/images/chart/**')
// * 所有图表
export let packagesList: PackagesType = {
@ -31,12 +31,13 @@ export const createComponent = async (targetData: ConfigType) => {
* @param {string} chartName
* @param {FetchComFlagType} flag 0, 1
*/
const fetchComponent = (chartName: string, flag: FetchComFlagType) => {
const fetchComponent = async (chartName: string, flag: FetchComFlagType) => {
const module = flag === FetchComFlagType.VIEW ? indexModules : configModules
for (const key in module) {
const urlSplit = key.split('/')
if (urlSplit[urlSplit.length - 2] === chartName) {
return module[key]
const loader = module[key] as () => Promise<{ default: any }>
return (await loader()).default
}
}
}
@ -45,18 +46,18 @@ const fetchComponent = (chartName: string, flag: FetchComFlagType) => {
* *
* @param {ConfigType} dropData
*/
export const fetchChartComponent = (dropData: ConfigType) => {
export const fetchChartComponent = async (dropData: ConfigType) => {
const { key } = dropData
return fetchComponent(key, FetchComFlagType.VIEW)?.default
return await fetchComponent(key, FetchComFlagType.VIEW)
}
/**
* *
* @param {ConfigType} dropData
*/
export const fetchConfigComponent = (dropData: ConfigType) => {
export const fetchConfigComponent = async (dropData: ConfigType) => {
const { key } = dropData
return fetchComponent(key, FetchComFlagType.CONFIG)?.default
return await fetchComponent(key, FetchComFlagType.CONFIG)
}
/**
@ -74,7 +75,8 @@ export const fetchImages = async (targetData?: ConfigType) => {
for (const key in imagesModules) {
const urlSplit = key.split('/')
if (urlSplit[urlSplit.length - 1] === imageName) {
return imagesModules[key]?.default
const loader = imagesModules[key] as () => Promise<{ default: string }>
return (await loader()).default
}
}
return ''

View File

@ -68,14 +68,15 @@ const chartMode: Ref<ChartModeEnum> = computed(() => {
})
//
const dragStartHandle = (e: DragEvent, item: ConfigType) => {
//
componentInstall(item.chartKey, fetchChartComponent(item))
componentInstall(item.conKey, fetchConfigComponent(item))
const dragStartHandle = async (e: DragEvent, item: ConfigType) => {
//
e!.dataTransfer!.setData(DragKeyEnum.DRAG_KEY, JSONStringify(omit(item, ['image'])))
//
chartEditStore.setEditCanvas(EditCanvasTypeEnum.IS_CREATE, true)
//
componentInstall(item.chartKey, await fetchChartComponent(item))
componentInstall(item.conKey, await fetchConfigComponent(item))
}
//
@ -88,8 +89,8 @@ const dblclickHandle = async (item: ConfigType) => {
try {
loadingStart()
//
componentInstall(item.chartKey, fetchChartComponent(item))
componentInstall(item.conKey, fetchConfigComponent(item))
componentInstall(item.chartKey, await fetchChartComponent(item))
componentInstall(item.conKey, await fetchConfigComponent(item))
//
let newComponent: CreateComponentType = await createComponent(item)
//

View File

@ -149,8 +149,8 @@ const selectChartHandle = async (item: ConfigType) => {
try {
loadingStart()
//
componentInstall(item.chartKey, fetchChartComponent(item))
componentInstall(item.conKey, fetchConfigComponent(item))
componentInstall(item.chartKey, await fetchChartComponent(item))
componentInstall(item.conKey, await fetchConfigComponent(item))
//
let newComponent: CreateComponentType = await createComponent(item)
//