From 5bea5f8c022501cf9fe0745f96b6d8301ac0d0b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=88=90?= Date: Tue, 28 Oct 2025 14:10:05 +0800 Subject: [PATCH] 1 --- demo/README.md | 56 +++++++++++-------- demo/src/api/business/games_server.js | 33 ++++------- .../api/message/msg_notifications_server.js | 2 +- demo/src/api/resources/sys_file_server.js | 33 ++++------- .../api/statistics/game_statistics_server.js | 46 +++++---------- .../statistics/revenue_statistics_server.js | 52 ++++++----------- .../formFieldServer.js | 0 .../api/{system_high => system}/formServer.js | 0 .../api/{system_high => system}/menuServer.js | 0 .../modelFieldServer.js | 0 .../{system_high => system}/modelServer.js | 0 .../paramSetupServer.js | 0 demo/src/main.js | 1 + demo/src/views/ai/ai_messages.vue | 2 +- demo/src/views/ball/game_comments.vue | 2 +- demo/src/views/message/msg_notifications.vue | 2 +- demo/src/views/ntrp/ntr_questions.vue | 2 +- demo/src/views/ntrp/ntr_records.vue | 2 +- src/components/index.js | 15 ++--- src/index.js | 4 +- src/store/index.js | 4 +- 21 files changed, 105 insertions(+), 151 deletions(-) rename demo/src/api/{system_high => system}/formFieldServer.js (100%) rename demo/src/api/{system_high => system}/formServer.js (100%) rename demo/src/api/{system_high => system}/menuServer.js (100%) rename demo/src/api/{system_high => system}/modelFieldServer.js (100%) rename demo/src/api/{system_high => system}/modelServer.js (100%) rename demo/src/api/{system_high => system}/paramSetupServer.js (100%) diff --git a/demo/README.md b/demo/README.md index b136051..2511cd2 100644 --- a/demo/README.md +++ b/demo/README.md @@ -65,11 +65,9 @@ npm run dev 首先需要构建 admin-framework: ```bash -# 生产构建(压缩,无 sourcemap) +# 在项目根目录执行 +cd .. npm run build - -# 开发构建(不压缩,有 sourcemap) -npm run build:dev ``` ### 2. 启动示例 @@ -109,16 +107,26 @@ const config = { } ``` -### 初始化框架 +### 初始化框架(新版本 - 推荐) ```javascript -framework.install(Vue, { - config: config, // 配置对象 - ViewUI: iview, // iView 实例 - VueRouter: VueRouter, // Vue Router - Vuex: Vuex, // Vuex - createPersistedState: null, // Vuex 持久化插件(可选) - componentMap: {} // 自定义组件映射 +// 引入 Admin Framework +import AdminFramework from '../../dist/admin-framework.js' + +// 引入组件映射表 +import componentMap from './router/component-map.js' + +// 创建应用 +const app = AdminFramework.createApp({ + title: '我的管理系统', + apiUrl: 'http://localhost:9098/admin_api/', + componentMap: componentMap, + onReady() { + console.log('应用已准备就绪!') + } }) + +// 挂载应用 +app.$mount('#app') ``` ## 内置功能 @@ -146,28 +154,30 @@ framework.install(Vue, { ### HTTP 请求 ```javascript // GET 请求 -framework.http.get('/api/users').then(res => { +window.framework.http.get('/api/users').then(res => { console.log(res.data) }) // POST 请求 -framework.http.post('/api/users', { +window.framework.http.post('/api/users', { name: '张三', age: 25 }).then(res => { console.log(res.data) }) -// 在组件中使用 -this.$http.get('/api/users').then(res => { - console.log(res.data) -}) +// 在 API 文件中使用 +class UserServer { + async getList(params) { + return await window.framework.http.get('/api/users', params) + } +} ``` ### 工具函数 ```javascript // 使用框架提供的工具函数 -const tools = framework.tools +const tools = window.framework.tools // 日期格式化 tools.formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss') @@ -185,16 +195,16 @@ tools.throttle(fn, 500) ### UI 工具 ```javascript // 使用 UI 工具 -const uiTool = framework.uiTool +const uiTool = window.framework.uiTool // 成功提示 - window.framework.uiTool.success('操作成功') +window.framework.uiTool.success('操作成功') // 错误提示 - window.framework.uiTool.error('操作失败') +window.framework.uiTool.error('操作失败') // 确认对话框 - window.framework.uiTool.confirm('确定删除吗?').then(() => { +window.framework.uiTool.confirm('确定删除吗?').then(() => { // 确认后的操作 }) ``` diff --git a/demo/src/api/business/games_server.js b/demo/src/api/business/games_server.js index e89bb4e..95da11c 100644 --- a/demo/src/api/business/games_server.js +++ b/demo/src/api/business/games_server.js @@ -1,33 +1,24 @@ -import request from '@/libs/http' +/** + * 业务游戏管理 API + * + * 使用说明: + * 1. 不需要 import http + * 2. 直接使用 window.framework.http 调用接口 + * 3. 所有方法返回 Promise + */ export const getList = (params) => { - return request({ - url: '/business/games/page', - method: 'get', - params - }) + return window.framework.http.get('/business/games/page', params) } export const add = (data) => { - return request({ - url: '/business/games', - method: 'post', - data - }) + return window.framework.http.post('/business/games/add', data) } export const edit = (data) => { - return request({ - url: '/business/games', - method: 'put', - data - }) + return window.framework.http.post('/business/games/edit', data) } export const del = (params) => { - return request({ - url: '/business/games', - method: 'delete', - params - }) + return window.framework.http.post('/business/games/del', params) } diff --git a/demo/src/api/message/msg_notifications_server.js b/demo/src/api/message/msg_notifications_server.js index 1b2998f..404f013 100644 --- a/demo/src/api/message/msg_notifications_server.js +++ b/demo/src/api/message/msg_notifications_server.js @@ -3,7 +3,7 @@ export default { // 获取消息通知列表 page: (params) => { - return http.post('/msg_notifications/page', params) + return window.framework.http.post('/msg_notifications/page', params) }, // 新增消息通知 diff --git a/demo/src/api/resources/sys_file_server.js b/demo/src/api/resources/sys_file_server.js index c8ec3de..c755f28 100644 --- a/demo/src/api/resources/sys_file_server.js +++ b/demo/src/api/resources/sys_file_server.js @@ -1,33 +1,24 @@ -import request from '@/libs/http' +/** + * 系统文件管理 API + * + * 使用说明: + * 1. 不需要 import http + * 2. 直接使用 window.framework.http 调用接口 + * 3. 所有方法返回 Promise + */ export const getList = (params) => { - return request({ - url: '/sys_file/page', - method: 'get', - params - }) + return window.framework.http.get('/sys_file/page', params) } export const add = (data) => { - return request({ - url: '/sys_file', - method: 'post', - data - }) + return window.framework.http.post('/sys_file/add', data) } export const edit = (data) => { - return request({ - url: '/sys_file', - method: 'put', - data - }) + return window.framework.http.post('/sys_file/edit', data) } export const del = (params) => { - return request({ - url: '/sys_file', - method: 'delete', - params - }) + return window.framework.http.post('/sys_file/del', params) } diff --git a/demo/src/api/statistics/game_statistics_server.js b/demo/src/api/statistics/game_statistics_server.js index d918308..50cd005 100644 --- a/demo/src/api/statistics/game_statistics_server.js +++ b/demo/src/api/statistics/game_statistics_server.js @@ -1,57 +1,41 @@ +/** + * 球局统计 API + * + * 使用说明: + * 1. 不需要 import http + * 2. 直接使用 window.framework.http 调用接口 + * 3. 所有方法返回 Promise + */ + // 获取球局统计列表 export const getList = (params) => { - return http.request({ - url: '/admin/game_statistics/list', - method: 'post', - data: params - }) + return window.framework.http.post('/admin/game_statistics/list', params) } // 获取球局统计详情 export const getDetail = (params) => { - return http.request({ - url: '/admin/game_statistics/detail', - method: 'post', - data: params - }) + return window.framework.http.post('/admin/game_statistics/detail', params) } // 添加球局统计 export const add = (params) => { - return http.request({ - url: '/admin/game_statistics/add', - method: 'post', - data: params - }) + return window.framework.http.post('/admin/game_statistics/add', params) } // 编辑球局统计 export const edit = (params) => { - return http.request({ - url: '/admin/game_statistics/edit', - method: 'post', - data: params - }) + return window.framework.http.post('/admin/game_statistics/edit', params) } // 删除球局统计 export const del = (params) => { - return http.request({ - url: '/admin/game_statistics/del', - method: 'post', - data: params - }) + return window.framework.http.post('/admin/game_statistics/del', params) } // 导出球局统计 export const exportData = (params) => { - return http.request({ - url: '/admin/game_statistics/export', - method: 'post', - data: params, - responseType: 'blob' - }) + return window.framework.http.fileExport('/admin/game_statistics/export', params) } diff --git a/demo/src/api/statistics/revenue_statistics_server.js b/demo/src/api/statistics/revenue_statistics_server.js index a37e2b7..d7114fb 100644 --- a/demo/src/api/statistics/revenue_statistics_server.js +++ b/demo/src/api/statistics/revenue_statistics_server.js @@ -1,66 +1,46 @@ +/** + * 营收统计 API + * + * 使用说明: + * 1. 不需要 import http + * 2. 直接使用 window.framework.http 调用接口 + * 3. 所有方法返回 Promise + */ + // 获取营收统计列表 export const getList = (params) => { - return http.request({ - url: '/admin/revenue_statistics/list', - method: 'post', - data: params - }) + return window.framework.http.post('/admin/revenue_statistics/list', params) } // 获取营收统计详情 export const getDetail = (params) => { - return http.request({ - url: '/admin/revenue_statistics/detail', - method: 'post', - data: params - }) + return window.framework.http.post('/admin/revenue_statistics/detail', params) } // 获取营收统计概览 export const getOverview = (params) => { - return http.request({ - url: '/admin/revenue_statistics/overview', - method: 'post', - data: params - }) + return window.framework.http.post('/admin/revenue_statistics/overview', params) } // 添加营收统计 export const add = (params) => { - return http.request({ - url: '/admin/revenue_statistics/add', - method: 'post', - data: params - }) + return window.framework.http.post('/admin/revenue_statistics/add', params) } // 编辑营收统计 export const edit = (params) => { - return http.request({ - url: '/admin/revenue_statistics/edit', - method: 'post', - data: params - }) + return window.framework.http.post('/admin/revenue_statistics/edit', params) } // 删除营收统计 export const del = (params) => { - return http.request({ - url: '/admin/revenue_statistics/del', - method: 'post', - data: params - }) + return window.framework.http.post('/admin/revenue_statistics/del', params) } // 导出营收统计 export const exportData = (params) => { - return http.request({ - url: '/admin/revenue_statistics/export', - method: 'post', - data: params, - responseType: 'blob' - }) + return window.framework.http.fileExport('/admin/revenue_statistics/export', params) } diff --git a/demo/src/api/system_high/formFieldServer.js b/demo/src/api/system/formFieldServer.js similarity index 100% rename from demo/src/api/system_high/formFieldServer.js rename to demo/src/api/system/formFieldServer.js diff --git a/demo/src/api/system_high/formServer.js b/demo/src/api/system/formServer.js similarity index 100% rename from demo/src/api/system_high/formServer.js rename to demo/src/api/system/formServer.js diff --git a/demo/src/api/system_high/menuServer.js b/demo/src/api/system/menuServer.js similarity index 100% rename from demo/src/api/system_high/menuServer.js rename to demo/src/api/system/menuServer.js diff --git a/demo/src/api/system_high/modelFieldServer.js b/demo/src/api/system/modelFieldServer.js similarity index 100% rename from demo/src/api/system_high/modelFieldServer.js rename to demo/src/api/system/modelFieldServer.js diff --git a/demo/src/api/system_high/modelServer.js b/demo/src/api/system/modelServer.js similarity index 100% rename from demo/src/api/system_high/modelServer.js rename to demo/src/api/system/modelServer.js diff --git a/demo/src/api/system_high/paramSetupServer.js b/demo/src/api/system/paramSetupServer.js similarity index 100% rename from demo/src/api/system_high/paramSetupServer.js rename to demo/src/api/system/paramSetupServer.js diff --git a/demo/src/main.js b/demo/src/main.js index e641246..0e46bb6 100644 --- a/demo/src/main.js +++ b/demo/src/main.js @@ -1,6 +1,7 @@ // 引入 Admin Framework(框架内部已包含所有依赖和样式) import AdminFramework from '../../dist/admin-framework.js' + // 引入组件映射表 import componentMap from './router/component-map.js' diff --git a/demo/src/views/ai/ai_messages.vue b/demo/src/views/ai/ai_messages.vue index 5aabdfa..bb32fcc 100644 --- a/demo/src/views/ai/ai_messages.vue +++ b/demo/src/views/ai/ai_messages.vue @@ -146,7 +146,7 @@ export default { }, exportCsv() { ai_messagesServer.exportCsv(this.gridOption.param).then(res => { - window.framework.funTool.downloadFile(res, 'AI消息管理.csv'); + window.framework.tools.downloadFile(res, 'AI消息管理.csv'); }); }, resetQuery() { diff --git a/demo/src/views/ball/game_comments.vue b/demo/src/views/ball/game_comments.vue index dce07df..9addf1f 100644 --- a/demo/src/views/ball/game_comments.vue +++ b/demo/src/views/ball/game_comments.vue @@ -147,7 +147,7 @@ export default { }, exportCsv() { game_commentsServer.exportCsv(this.gridOption.param).then(res => { - window.framework.funTool.downloadFile(res, '球局评论.csv'); + window.framework.tools.downloadFile(res, '球局评论.csv'); }); } }, diff --git a/demo/src/views/message/msg_notifications.vue b/demo/src/views/message/msg_notifications.vue index d4106db..78c4478 100644 --- a/demo/src/views/message/msg_notifications.vue +++ b/demo/src/views/message/msg_notifications.vue @@ -164,7 +164,7 @@ export default { }, exportCsv() { msg_notificationsServer.exportCsv(this.gridOption.param).then(res => { - window.framework.funTool.downloadFile(res, '消息通知.csv'); + window.framework.tools.downloadFile(res, '消息通知.csv'); }); }, resetQuery() { diff --git a/demo/src/views/ntrp/ntr_questions.vue b/demo/src/views/ntrp/ntr_questions.vue index 6e98f46..dc2d3d8 100644 --- a/demo/src/views/ntrp/ntr_questions.vue +++ b/demo/src/views/ntrp/ntr_questions.vue @@ -229,7 +229,7 @@ export default { }, exportCsv() { ntr_questionsServer.exportCsv(this.gridOption.param).then(res => { - window.framework.funTool.downloadFile(res, '题库管理.csv'); + window.framework.tools.downloadFile(res, '题库管理.csv'); }); } }, diff --git a/demo/src/views/ntrp/ntr_records.vue b/demo/src/views/ntrp/ntr_records.vue index 79ff3df..04c9089 100644 --- a/demo/src/views/ntrp/ntr_records.vue +++ b/demo/src/views/ntrp/ntr_records.vue @@ -247,7 +247,7 @@ export default { }, exportCsv() { ntr_recordsServer.exportCsv(this.gridOption.param).then(res => { - window.framework.funTool.downloadFile(res, '测试记录.csv'); + window.framework.tools.downloadFile(res, '测试记录.csv'); }); } }, diff --git a/src/components/index.js b/src/components/index.js index d00458d..104bba7 100644 --- a/src/components/index.js +++ b/src/components/index.js @@ -3,12 +3,7 @@ import ParentView from './parent-view' // 导入页面组件 import pages from '../views/index' -const { - LoginPage, - Page401, - Page404, - Page500 -} = pages +const {LoginPage,Page401,Page404,Page500} = pages import Tables from './tables' import UploadSingle from './upload/Single.vue' @@ -26,8 +21,10 @@ import fieldItem from './tables/fieldItem.vue' import FieldRenderer from './tables/fieldRenderer.vue' + + // 注册全局组件的方法 -export function registerGlobalComponents(Vue) { +const registerGlobalComponents = (Vue) => { Vue.component('Main', Main) Vue.component('ParentView', ParentView) @@ -54,7 +51,7 @@ export function registerGlobalComponents(Vue) { } // 注册自定义组件的方法 -export function registerComponents(Vue, components = {}) { +const registerComponents = (Vue, components = {}) => { Object.keys(components).forEach(name => { Vue.component(name, components[name]) }) @@ -65,6 +62,7 @@ export { registerComponents } + export default { Main, ParentView, @@ -83,7 +81,6 @@ export default { fieldItem, FieldRenderer, - } diff --git a/src/index.js b/src/index.js index 81f6da8..fa56d43 100644 --- a/src/index.js +++ b/src/index.js @@ -25,8 +25,8 @@ import storeModules, { createStore } from './store' import { createBaseRoutes, setupRouterGuards, createRouter, getRoutes } from './router' -import components from './components/index' -import { registerGlobalComponents } from './components/index' +import components ,{ registerGlobalComponents} from './components/index' + import pages from './views/index' const { LoginPage, Page401, Page404, Page500, setupComponentMap } = pages diff --git a/src/store/index.js b/src/store/index.js index ed1a0e1..964ca13 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -5,8 +5,8 @@ import appModule from './app' export function createStore(Vuex, customModules = {}, createPersistedState) { const store = new Vuex.Store({ modules: { - user: appModule, - app: userModule, + user: userModule, + app: appModule, ...customModules }, plugins: createPersistedState ? [