diff --git a/demo/src/main.js b/demo/src/main.js index bcd7b17..24bf097 100644 --- a/demo/src/main.js +++ b/demo/src/main.js @@ -14,6 +14,9 @@ import AdminFramework from '../../dist/admin-framework.js' // 引入组件映射表 import componentMap from './router/component-map.js' +// 【关键】先将框架暴露到全局,确保在任何代码执行前就可以访问 +window.framework = AdminFramework + // 使用插件 Vue.use(ViewUI) @@ -24,9 +27,6 @@ const config = { uploadUrl: 'http://localhost:9098/admin_api/upload' // 修改为你的上传地址 } -// 提前暴露框架实例(确保工具类可以访问) -window.framework = AdminFramework - // 初始化框架 AdminFramework.install(Vue, { config: config, @@ -82,9 +82,10 @@ const app = new Vue({ // 挂载应用 app.$mount('#app') -// 全局暴露(方便调试) +// 全局暴露 app 实例(方便调试) window.app = app window.rootVue = app +// window.framework 已在文件开头暴露,无需重复 diff --git a/src/index.js b/src/index.js index 8dfad5d..2c3a2aa 100644 --- a/src/index.js +++ b/src/index.js @@ -138,6 +138,8 @@ class AdminFramework { Vue.prototype.$http = http Vue.prototype.$tools = tools Vue.prototype.$uiTool = uiTool + Vue.prototype.$funTool = funTool + Vue.prototype.$framework = this this.registerGlobalComponents(Vue) @@ -328,6 +330,11 @@ class AdminFramework { const framework = new AdminFramework() +// 【关键】框架实例创建后立即暴露到全局,确保在任何地方都能访问 +if (typeof window !== 'undefined') { + window.framework = framework +} + export default framework export { diff --git a/src/utils/http.js b/src/utils/http.js index 7742eb8..e7ae5d1 100644 --- a/src/utils/http.js +++ b/src/utils/http.js @@ -71,16 +71,10 @@ class Http { if (error && error.response && error.response.status === 401) { if (this.store) { this.store.commit('user/setToken', '') - } - // 使用框架的 router 实例跳转到登录页 - try { + // 使用 store 中的 router 实例跳转 if (window.framework && window.framework.router) { window.framework.router.push({ path: '/login' }) - } else if (window.location) { - window.location.href = '#/login' } - } catch (err) { - console.error('跳转登录页失败:', err) } return Promise.reject(error) } @@ -114,17 +108,13 @@ class Http { } showError(msg) { - // 优先使用框架的 ViewUI 实例,如果不存在则使用全局的 $Message - try { - if (window.framework && window.framework.ViewUI && window.framework.ViewUI.Message) { - window.framework.ViewUI.Message.error({ content: msg, duration: 3 }) - } else if (window.$Message) { - window.$Message.error({ content: msg, duration: 3 }) - } else { - console.error('[HTTP Error]', msg) - } - } catch (error) { - console.error('[HTTP Error]', msg, error) + // 使用框架存储的 ViewUI 实例 + if (window.framework && window.framework.ViewUI && window.framework.ViewUI.Message) { + window.framework.ViewUI.Message.error({ content: msg, duration: 3 }) + } else if (window.$Message) { + window.$Message.error({ content: msg, duration: 3 }) + } else { + console.error(msg) } } diff --git a/src/utils/uiTool.js b/src/utils/uiTool.js index 61540c8..036a43f 100644 --- a/src/utils/uiTool.js +++ b/src/utils/uiTool.js @@ -110,24 +110,15 @@ export default class uiTool { } static delConfirm(callback) { - try { - const Modal = (window.framework && window.framework.ViewUI && window.framework.ViewUI.Modal) || window.$Modal - if (Modal) { - Modal.confirm({ - title: '温馨提示', - content: '

你确定删除吗?

', - onOk: () => { - callback && callback() - } - }) - } else { - // 如果 Modal 不存在,使用原生确认框 - if (confirm('你确定删除吗?')) { + const Modal = (window.framework && window.framework.ViewUI && window.framework.ViewUI.Modal) || window.$Modal + if (Modal) { + Modal.confirm({ + title: '温馨提示', + content: '

你确定删除吗?

', + onOk: () => { callback && callback() } - } - } catch (error) { - console.error('delConfirm error:', error) + }) } }