This commit is contained in:
张成
2025-10-10 00:13:11 +08:00
parent f86ee00e3b
commit b39b206c4c
4 changed files with 27 additions and 38 deletions

View File

@@ -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 已在文件开头暴露,无需重复

View File

@@ -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 {

View File

@@ -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)
}
}

View File

@@ -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: '<p>你确定删除吗?</p>',
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: '<p>你确定删除吗?</p>',
onOk: () => {
callback && callback()
}
}
} catch (error) {
console.error('delConfirm error:', error)
})
}
}