wujingjing
2024-12-03 000ef0b189975b8d513967fa5a31584138751c56
loadAmisSource
已修改2个文件
已添加1个文件
120 ■■■■■ 文件已修改
customer_list/ch/index.js 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/amis/load.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/chat/Chat.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
customer_list/ch/index.js
@@ -16,77 +16,3 @@
title.innerText = sysName;
faviconIcon.href = icon + `?v=1`;
//#region ====================== LCP Promise ======================
const loadBaseLCP = new Promise((resolve, reject) => {
    try {
        // æ£€æŸ¥æ˜¯å¦æ”¯æŒ PerformanceObserver å’Œ LCP æŒ‡æ ‡
        if ('PerformanceObserver' in window && PerformanceObserver.supportedEntryTypes.includes('largest-contentful-paint')) {
            const observer = new PerformanceObserver((list) => {
                window.list = list.getEntries();
                for (const entry of list.getEntries()) {
                    resolve(entry);
                    observer.disconnect(); // å®ŒæˆåŽæ–­å¼€è§‚察者
                }
            });
            observer.observe({ type: 'largest-contentful-paint', buffered: true });
        } else {
            // ä¸æ”¯æŒæ—¶ ä½¿ç”¨onLoad åŠ è½½
            window.addEventListener('load', () => {
                resolve(true);
            });
        }
    } catch (error) {
        reject(error);
    }
});
//#endregion
//#region ====================== åŠ è½½script ======================
function loadScript(src, callback) {
    const script = document.createElement('script');
    script.setAttribute('type', 'text/javascript');
    script.setAttribute('src', src);
    script.async = true;
    script.onload = () => callback();
    script.onerror = () => callback(new Error(`Failed to load ${src}`));
    document.head.appendChild(script);
}
window.eventList = {};
loadBaseLCP.then(() => {
    window.eventList.amisSdkJsPromise = new Promise((resolve, reject) => {
        loadScript('/static/amis/sdk/sdk.js', (error) => {
            if (error) {
                reject(error);
                return;
            }
            resolve();
        });
    });
});
//#endregion
//#region ====================== åŠ è½½æ ·å¼ ======================
function loadStyles(styles) {
    for (const path of styles) {
        const style = document.createElement('link');
        style.setAttribute('rel', 'stylesheet');
        style.setAttribute('type', 'text/css');
        style.setAttribute('href', path);
        // è®¾ç½® print å¯ä»¥é¿å…é˜»å¡žé¡µé¢æ¸²æŸ“
        style.setAttribute('media', 'print');
        style.onload = () => {
            style.setAttribute('media', 'all');
        };
        document.head.appendChild(style);
    }
}
loadBaseLCP.then(() => {
    loadStyles(['/static/amis/sdk/sdk.css', '/static/amis/sdk/helper.css', '/static/amis/sdk/iconfont.css']);
});
//#endregion
src/components/amis/load.ts
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
//#region ====================== åŠ è½½script ======================
function loadScript(src, callback) {
    const script = document.createElement('script');
    script.setAttribute('type', 'text/javascript');
    script.setAttribute('src', src);
    script.async = true;
    script.onload = () => callback();
    script.onerror = () => callback(new Error(`Failed to load ${src}`));
    document.head.appendChild(script);
}
//#endregion
//#region ====================== åŠ è½½æ ·å¼ ======================
function loadStyles(styles) {
    for (const path of styles) {
        const style = document.createElement('link');
        style.setAttribute('rel', 'stylesheet');
        style.setAttribute('type', 'text/css');
        style.setAttribute('href', path);
        // è®¾ç½® print å¯ä»¥é¿å…é˜»å¡žé¡µé¢æ¸²æŸ“
        style.setAttribute('media', 'print');
        style.onload = () => {
            style.setAttribute('media', 'all');
        };
        document.head.appendChild(style);
    }
}
export const loadAmisSource = (delayTime = 0) => {
    setTimeout(() => {
        window.eventList = {};
        window.eventList.amisSdkJsPromise = new Promise((resolve, reject) => {
            loadScript('/static/amis/sdk/sdk.js', (error) => {
                if (error) {
                    reject(error);
                    return;
                }
                resolve();
            });
        });
        loadStyles(['/static/amis/sdk/sdk.css', '/static/amis/sdk/helper.css', '/static/amis/sdk/iconfont.css']);
    }, delayTime * 1000);
};
src/components/chat/Chat.vue
@@ -348,6 +348,7 @@
import emitter from '/@/utils/mitt';
import { ErrorCode } from '/@/utils/request';
import { toMyFixed } from '/@/utils/util';
import { loadAmisSource } from '../amis/load';
const chatWidth = '75%';
const voicePageIsShow = ref(false);
let isTalking = ref(false);
@@ -742,6 +743,7 @@
            }, 300);
        }
    }
    loadAmisSource()
});
//#region ====================== å…³è”查询 ======================
const relativeQueryClick = async (val) => {