From 0de9b0ed642b23fc9f4105b3db736844dcf88ad2 Mon Sep 17 00:00:00 2001 From: Kubbo <390378816@qq.com> Date: Mon, 1 Jul 2024 02:32:42 +0800 Subject: [PATCH] =?UTF-8?q?3D=E5=9C=B0=E5=9B=BE=E6=8F=90=E4=BA=A4=E4=B8=80?= =?UTF-8?q?=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/inject.js | 47 ++- src/views/AppThreeMap.vue | 732 ++++++++++++++++++++++++++++---------- vite.config.js | 4 + 3 files changed, 587 insertions(+), 196 deletions(-) diff --git a/src/utils/inject.js b/src/utils/inject.js index 4377315..e3553d5 100644 --- a/src/utils/inject.js +++ b/src/utils/inject.js @@ -3,8 +3,44 @@ import axios from 'axios' import Vue from 'vue' window.axios = axios -const KENGEE_CDN_BASE = "http://10.0.97.209/presource/datascreen/" -const libs = [`${KENGEE_CDN_BASE}/js/pinyin.min.js`, `${KENGEE_CDN_BASE}/js/dayjs.min.js`] +const KENGEE_CDN_BASE = "http://10.0.97.209/presource/datascreen" +const libs = [ + `${KENGEE_CDN_BASE}/js/pinyin.min.js`, + `${KENGEE_CDN_BASE}/js/dayjs.min.js`, + `${KENGEE_CDN_BASE}/js/Tween.js`, + `${KENGEE_CDN_BASE}/js/three/three.js`, + `${KENGEE_CDN_BASE}/js/three/js/controls/OrbitControls.js`, + `${KENGEE_CDN_BASE}/js/d3-geo.min.js`, +] +window.$loadScript = (type = 'js', url, dom = "body") => { + let flag = false; + return new Promise((resolve) => { + const head = dom == 'head' ? document.getElementsByTagName('head')[0] : document.body; + for (let i = 0; i < head.children.length; i++) { + let ele = head.children[i] + if ((ele.src || '').indexOf(url) !== -1) { + flag = true; + resolve(); + } + } + if (flag) return; + let script; + if (type === 'js') { + script = document.createElement('script'); + script.type = 'text/javascript'; + script.src = url; + } else if (type === 'css') { + script = document.createElement('link'); + script.rel = 'stylesheet'; + script.type = 'text/css'; + script.href = url; + } + head.appendChild(script); + script.onload = function () { + resolve(); + }; + }); +}; window.$glob = {} window.$dicts = dicts window.$waitFor = (target, t = 500) => new Promise(resolve => { @@ -50,10 +86,5 @@ Vue.component("tableColumn", { export default Promise.all([ import("./fetch"), - ...libs.map(url => new Promise(resolve => { - const script = document.createElement("script") - script.src = url - document.head.appendChild(script) - script.onload = () => resolve() - })), + ...libs.map(url => $loadScript('js', url)), ]) diff --git a/src/views/AppThreeMap.vue b/src/views/AppThreeMap.vue index 028719b..4e1e20d 100644 --- a/src/views/AppThreeMap.vue +++ b/src/views/AppThreeMap.vue @@ -1,196 +1,552 @@ @@ -200,6 +556,6 @@ export default { diff --git a/vite.config.js b/vite.config.js index e6d2af5..b32c964 100644 --- a/vite.config.js +++ b/vite.config.js @@ -26,6 +26,10 @@ export default defineConfig({ '/data-boot': { target: 'http://10.0.97.209', changeOrigin: true, + }, + '/presource': { + target: 'http://10.0.97.209', + changeOrigin: true, } } }