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 { interface ITextures {
name: string name: string
url: string url: () => Promise<{ default: string }>
} }
export interface IResources { export interface IResources {
@ -15,14 +15,13 @@ export interface IResources {
const fileSuffix = ['earth', 'gradient', 'redCircle', 'label', 'aperture', 'glow', 'light_column', 'aircraft'] const fileSuffix = ['earth', 'gradient', 'redCircle', 'label', 'aperture', 'glow', 'light_column', 'aircraft']
const textures: ITextures[] = [] const textures: ITextures[] = []
const modules = import.meta.globEager("../../images/earth/*"); const modules = import.meta.glob("../../images/earth/*");
for (let item in modules) {
for(let item in modules) {
const n = item.split('/').pop() const n = item.split('/').pop()
if(n) { if (n) {
textures.push({ textures.push({
name: n.split('.')[0], 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 { private loadResources(): void {
this.textureLoader = new TextureLoader(this.manager) this.textureLoader = new TextureLoader(this.manager)
resources.textures?.forEach(item => { resources.textures?.forEach(async item => {
this.textureLoader.load(item.url, t => { const url = (await item.url()).default
this.textureLoader.load(url, t => {
this.textures[item.name] = 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 { TableList } from '@/packages/components/Tables/index'
import { PackagesCategoryEnum, PackagesType, ConfigType, FetchComFlagType } from '@/packages/index.d' import { PackagesCategoryEnum, PackagesType, ConfigType, FetchComFlagType } from '@/packages/index.d'
const configModules = import.meta.globEager('./components/**/config.vue') const configModules = import.meta.glob('./components/**/config.vue')
const indexModules = import.meta.globEager('./components/**/index.vue') const indexModules = import.meta.glob('./components/**/index.vue')
const imagesModules = import.meta.globEager('../assets/images/chart/**') const imagesModules = import.meta.glob('../assets/images/chart/**')
// * 所有图表 // * 所有图表
export let packagesList: PackagesType = { export let packagesList: PackagesType = {
@ -31,12 +31,13 @@ export const createComponent = async (targetData: ConfigType) => {
* @param {string} chartName * @param {string} chartName
* @param {FetchComFlagType} flag 0, 1 * @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 const module = flag === FetchComFlagType.VIEW ? indexModules : configModules
for (const key in module) { for (const key in module) {
const urlSplit = key.split('/') const urlSplit = key.split('/')
if (urlSplit[urlSplit.length - 2] === chartName) { 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 * @param {ConfigType} dropData
*/ */
export const fetchChartComponent = (dropData: ConfigType) => { export const fetchChartComponent = async (dropData: ConfigType) => {
const { key } = dropData const { key } = dropData
return fetchComponent(key, FetchComFlagType.VIEW)?.default return await fetchComponent(key, FetchComFlagType.VIEW)
} }
/** /**
* * * *
* @param {ConfigType} dropData * @param {ConfigType} dropData
*/ */
export const fetchConfigComponent = (dropData: ConfigType) => { export const fetchConfigComponent = async (dropData: ConfigType) => {
const { key } = dropData 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) { for (const key in imagesModules) {
const urlSplit = key.split('/') const urlSplit = key.split('/')
if (urlSplit[urlSplit.length - 1] === imageName) { if (urlSplit[urlSplit.length - 1] === imageName) {
return imagesModules[key]?.default const loader = imagesModules[key] as () => Promise<{ default: string }>
return (await loader()).default
} }
} }
return '' return ''

View File

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

View File

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