Compare commits

..

2 Commits

Author SHA1 Message Date
张成
f86ee00e3b 1 2025-10-10 00:08:35 +08:00
张成
88cd8d6e72 1 2025-10-09 23:50:03 +08:00
50 changed files with 516 additions and 643 deletions

View File

@@ -335,19 +335,19 @@ export default {
```javascript ```javascript
// src/api/business/productServer.js // src/api/business/productServer.js
// 注意:不需要 import http直接使用 window.framework.http // 注意:不需要 import http直接使用 http
class ProductServer { class ProductServer {
async getList(params) { async getList(params) {
return await window.framework.http.get('/product/list', params) return await http.get('/product/list', params)
} }
async save(data) { async save(data) {
return await window.framework.http.post('/product/save', data) return await http.post('/product/save', data)
} }
async delete(id) { async delete(id) {
return await window.framework.http.post('/product/delete', { id }) return await http.post('/product/delete', { id })
} }
} }

View File

@@ -1,29 +0,0 @@
class SysControlTypeServer {
async all(param) {
let res = await window.framework.http.get("/sys_control_type/all", param);
return res;
}
async page(row) {
let res = await window.framework.http.post("/sys_control_type/page", row);
return res;
}
async add(param) {
let res = await window.framework.http.post("/sys_control_type/add", param);
return res;
}
async edit(param) {
let res = await window.framework.http.post("/sys_control_type/edit", param);
return res;
}
async del(param) {
let res = await window.framework.http.post("/sys_control_type/del", param);
return res;
}
}
const sysControlTypeServer = new SysControlTypeServer();
export default sysControlTypeServer;

View File

@@ -24,6 +24,9 @@ const config = {
uploadUrl: 'http://localhost:9098/admin_api/upload' // 修改为你的上传地址 uploadUrl: 'http://localhost:9098/admin_api/upload' // 修改为你的上传地址
} }
// 提前暴露框架实例(确保工具类可以访问)
window.framework = AdminFramework
// 初始化框架 // 初始化框架
AdminFramework.install(Vue, { AdminFramework.install(Vue, {
config: config, config: config,
@@ -82,7 +85,6 @@ app.$mount('#app')
// 全局暴露(方便调试) // 全局暴露(方便调试)
window.app = app window.app = app
window.rootVue = app window.rootVue = app
window.framework = AdminFramework

View File

@@ -140,7 +140,7 @@ export default {
delConfirm(row) { delConfirm(row) {
window.framework.uiTool.delConfirm(async () => { window.framework.uiTool.delConfirm(async () => {
await ai_messagesServer.del(row) await ai_messagesServer.del(row)
rootVue.$Message.success('删除成功!') this.$Message.success('删除成功!')
this.query(1) this.query(1)
}) })
}, },

View File

@@ -133,7 +133,7 @@ export default {
delConfirm(row) { delConfirm(row) {
window.framework.uiTool.delConfirm(async () => { window.framework.uiTool.delConfirm(async () => {
await game_commentsServer.del(row) await game_commentsServer.del(row)
rootVue.$Message.success('删除成功!') this.$Message.success('删除成功!')
this.query(1) this.query(1)
}) })
}, },

View File

@@ -270,7 +270,7 @@ export default {
'joined_at': 'CURRENT_TIMESTAMP' 'joined_at': 'CURRENT_TIMESTAMP'
}, async (newRow) => { }, async (newRow) => {
let res = await gameParticipantsServer.add(newRow) let res = await gameParticipantsServer.add(newRow)
rootVue.$Message.success('新增成功!') this.$Message.success('新增成功!')
this.init() this.init()
}) })
}, },
@@ -282,7 +282,7 @@ export default {
let valid = await this.$refs['editModal'].$refs['From'].validate() let valid = await this.$refs['editModal'].$refs['From'].validate()
if (valid) { if (valid) {
let res = await gameParticipantsServer.edit(newRow) let res = await gameParticipantsServer.edit(newRow)
rootVue.$Message.success('修改成功!') this.$Message.success('修改成功!')
this.init() this.init()
} }
}) })
@@ -290,7 +290,7 @@ export default {
async delConfirm(row) { async delConfirm(row) {
window.framework.uiTool.delConfirm(async () => { window.framework.uiTool.delConfirm(async () => {
await gameParticipantsServer.del(row) await gameParticipantsServer.del(row)
rootVue.$Message.success('删除成功!') this.$Message.success('删除成功!')
this.init() this.init()
}) })
}, },

View File

@@ -513,7 +513,7 @@ export default {
'remark': '' 'remark': ''
}, async (newRow) => { }, async (newRow) => {
let res = await gamesServer.add(newRow) let res = await gamesServer.add(newRow)
rootVue.$Message.success('新增成功!') this.$Message.success('新增成功!')
this.init() this.init()
}) })
}, },
@@ -522,7 +522,7 @@ export default {
let valid = await this.$refs['editModal'].$refs['From'].validate() let valid = await this.$refs['editModal'].$refs['From'].validate()
if (valid) { if (valid) {
let res = await gamesServer.edit(newRow) let res = await gamesServer.edit(newRow)
rootVue.$Message.success('修改成功!') this.$Message.success('修改成功!')
this.init() this.init()
} }
}) })
@@ -530,7 +530,7 @@ export default {
async delConfirm(row) { async delConfirm(row) {
window.framework.uiTool.delConfirm(async () => { window.framework.uiTool.delConfirm(async () => {
await gamesServer.del(row) await gamesServer.del(row)
rootVue.$Message.success('删除成功!') this.$Message.success('删除成功!')
this.init() this.init()
}) })
}, },

View File

@@ -257,7 +257,7 @@ export default {
async showAddWarp() { async showAddWarp() {
this.$refs.editModal.addShow({ 'venue_type': 'indoor', 'surface_type': 'hard', 'court_count': '1', 'status': 'active', 'create_time': 'CURRENT_TIMESTAMP', 'updated_at': 'CURRENT_TIMESTAMP', }, async (newRow) => { this.$refs.editModal.addShow({ 'venue_type': 'indoor', 'surface_type': 'hard', 'court_count': '1', 'status': 'active', 'create_time': 'CURRENT_TIMESTAMP', 'updated_at': 'CURRENT_TIMESTAMP', }, async (newRow) => {
let res = await venuesServer.add(newRow) let res = await venuesServer.add(newRow)
rootVue.$Message.success('新增成功!') this.$Message.success('新增成功!')
this.init() this.init()
}) })
}, },
@@ -266,7 +266,7 @@ export default {
let valid = await this.$refs['editModal'].$refs['From'].validate() let valid = await this.$refs['editModal'].$refs['From'].validate()
if (valid) { if (valid) {
let res = await venuesServer.edit(newRow) let res = await venuesServer.edit(newRow)
rootVue.$Message.success('修改成功!') this.$Message.success('修改成功!')
this.init() this.init()
} }
}) })
@@ -274,7 +274,7 @@ export default {
async delConfirm(row) { async delConfirm(row) {
window.framework.uiTool.delConfirm(async () => { window.framework.uiTool.delConfirm(async () => {
await venuesServer.del(row) await venuesServer.del(row)
rootVue.$Message.success('删除成功!') this.$Message.success('删除成功!')
this.init() this.init()
}) })
}, },

View File

@@ -318,7 +318,7 @@ export default {
async showAddWarp() { async showAddWarp() {
this.$refs.editModal.addShow({ 'is_subscribed': '0', 'last_login_time': 'CURRENT_TIMESTAMP', 'create_time': 'CURRENT_TIMESTAMP', 'updated_at': 'CURRENT_TIMESTAMP', }, async (newRow) => { this.$refs.editModal.addShow({ 'is_subscribed': '0', 'last_login_time': 'CURRENT_TIMESTAMP', 'create_time': 'CURRENT_TIMESTAMP', 'updated_at': 'CURRENT_TIMESTAMP', }, async (newRow) => {
let res = await wch_usersServer.add(newRow) let res = await wch_usersServer.add(newRow)
rootVue.$Message.success('新增成功!') this.$Message.success('新增成功!')
this.init() this.init()
}) })
}, },
@@ -327,7 +327,7 @@ export default {
let valid = await this.$refs['editModal'].$refs['From'].validate() let valid = await this.$refs['editModal'].$refs['From'].validate()
if (valid) { if (valid) {
let res = await wch_usersServer.edit(newRow) let res = await wch_usersServer.edit(newRow)
rootVue.$Message.success('修改成功!') this.$Message.success('修改成功!')
this.init() this.init()
} }
}) })
@@ -335,7 +335,7 @@ export default {
async delConfirm(row) { async delConfirm(row) {
window.framework.uiTool.delConfirm(async () => { window.framework.uiTool.delConfirm(async () => {
await wch_usersServer.del(row) await wch_usersServer.del(row)
rootVue.$Message.success('删除成功!') this.$Message.success('删除成功!')
this.init() this.init()
}) })
}, },

View File

@@ -119,7 +119,7 @@ export default {
delConfirm(row) { delConfirm(row) {
window.framework.uiTool.delConfirm(async () => { window.framework.uiTool.delConfirm(async () => {
await recommend_blocksServer.del(row) await recommend_blocksServer.del(row)
rootVue.$Message.success('删除成功!') this.$Message.success('删除成功!')
this.query(1) this.query(1)
}) })
}, },

View File

@@ -85,7 +85,7 @@ export default {
}, },
}, },
] ]
return uiTool.getBtn(h, btns) return window.framework.uiTool.getBtn(h, btns)
}, },
} }
], ],
@@ -131,27 +131,27 @@ export default {
'follow_time': null 'follow_time': null
}, async (newRow) => { }, async (newRow) => {
let res = await user_followsServer.add(newRow) let res = await user_followsServer.add(newRow)
rootVue.$Message.success('新增成功!') this.$Message.success('新增成功!')
this.query(1) this.query(1)
}) })
}, },
showEditWarp(row) { showEditWarp(row) {
this.$refs.editModal.editShow(row, async (newRow) => { this.$refs.editModal.editShow(row, async (newRow) => {
let res = await user_followsServer.edit(newRow) let res = await user_followsServer.edit(newRow)
rootVue.$Message.success('修改成功!') this.$Message.success('修改成功!')
this.query(1) this.query(1)
}) })
}, },
delConfirm(row) { delConfirm(row) {
uiTool.delConfirm(async () => { window.framework.uiTool.delConfirm(async () => {
await user_followsServer.del(row) await user_followsServer.del(row)
rootVue.$Message.success('删除成功!') this.$Message.success('删除成功!')
this.query(1) this.query(1)
}) })
}, },
exportCsv() { exportCsv() {
user_followsServer.exportCsv(this.gridOption.param).then(res => { user_followsServer.exportCsv(this.gridOption.param).then(res => {
window.framework. funTool.downloadFile(res, '用户关注关系.csv'); window.framework.funTool.downloadFile(res, '用户关注关系.csv');
}); });
}, },
resetQuery() { resetQuery() {

View File

@@ -145,7 +145,7 @@ export default {
delConfirm(row) { delConfirm(row) {
window.framework.uiTool.delConfirm(async () => { window.framework.uiTool.delConfirm(async () => {
await user_trackingServer.del(row) await user_trackingServer.del(row)
rootVue.$Message.success('删除成功!') this.$Message.success('删除成功!')
this.query(1) this.query(1)
}) })
}, },

View File

@@ -1,12 +1,12 @@
import http from "@/utils/http"; import http from "@/utils/http";
class FileServe { class FileServe {
async upload_oos_img(row) { async upload_oos_img(row) {
let res = await window.framework.http.postFormData("/sys_file/upload_oos_img", row); let res = await http.postFormData("/sys_file/upload_oos_img", row);
return res; return res;
} }
async upload_Img(row) { async upload_Img(row) {
let res = await window.framework.http.postFormData("/file/upload_Img", row); let res = await http.postFormData("/file/upload_Img", row);
return res; return res;
} }
} }

View File

@@ -1,51 +0,0 @@
import http from '@/utils/http';
/**
* 热门城市二维码配置相关API
*/
// 获取配置列表
const getHotCityQrConfigList = (params) => {
return window.framework.http.get('/wch_hot_city_qr_config/list', { params });
};
// 获取所有配置
const getAllHotCityQrConfig = () => {
return window.framework.http.get('/wch_hot_city_qr_config/all');
};
// 获取配置详情
const getHotCityQrConfigDetail = (id) => {
return window.framework.http.get(`/wch_hot_city_qr_config/detail/${id}`);
};
// 创建配置
const createHotCityQrConfig = (data) => {
return window.framework.http.post('/wch_hot_city_qr_config/create', data);
};
// 更新配置
const updateHotCityQrConfig = (id, data) => {
return window.framework.http.post(`/wch_hot_city_qr_config/update/${id}`, data);
};
// 删除配置
const deleteHotCityQrConfig = (id) => {
return window.framework.http.post(`/wch_hot_city_qr_config/delete/${id}`);
};
// 批量删除配置
const batchDeleteHotCityQrConfig = (ids) => {
return window.framework.http.post('/wch_hot_city_qr_config/batch_delete', { ids });
};
export default {
getHotCityQrConfigList,
getAllHotCityQrConfig,
getHotCityQrConfigDetail,
createHotCityQrConfig,
updateHotCityQrConfig,
deleteHotCityQrConfig,
batchDeleteHotCityQrConfig
};

View File

@@ -1,7 +1,6 @@
// 系统 API 统一导出 // 系统 API 统一导出
export { default as fileServe } from './fileServe' export { default as fileServe } from './fileServe'
export { default as hotCityQrConfigServer } from './hot_city_qr_config_server'
export { default as plaAccountServer } from './pla_account_server' export { default as plaAccountServer } from './pla_account_server'
export { default as rolePermissionServer } from './rolePermissionServer' export { default as rolePermissionServer } from './rolePermissionServer'
export { default as roleServer } from './roleServer' export { default as roleServer } from './roleServer'
@@ -13,5 +12,4 @@ export { default as sysLogServe } from './sys_log_serve'
export { default as systemTypeServer } from './systemType_server' export { default as systemTypeServer } from './systemType_server'
export { default as tableServer } from './tableServer' export { default as tableServer } from './tableServer'
export { default as userServer } from './userServer' export { default as userServer } from './userServer'
export { default as wchProfessionsServer } from './wch_professions_server'

View File

@@ -3,36 +3,36 @@ import http from '@/utils/http'
export default { export default {
// 获取所有平台账户 // 获取所有平台账户
all(param) { all(param) {
return window.framework.http.get('/pla_account/all', param) return http.get('/pla_account/all', param)
}, },
// 获取平台账户详情 // 获取平台账户详情
detail(param) { detail(param) {
return window.framework.http.get('/pla_account/detail', param) return http.get('/pla_account/detail', param)
}, },
// 分页查询平台账户 // 分页查询平台账户
page(param) { page(param) {
return window.framework.http.post('/pla_account/page', param) return http.post('/pla_account/page', param)
}, },
// 新增平台账户 // 新增平台账户
add(param) { add(param) {
return window.framework.http.post('/pla_account/add', param) return http.post('/pla_account/add', param)
}, },
// 编辑平台账户 // 编辑平台账户
edit(param) { edit(param) {
return window.framework.http.post('/pla_account/edit', param) return http.post('/pla_account/edit', param)
}, },
// 删除平台账户 // 删除平台账户
del(param) { del(param) {
return window.framework.http.post('/pla_account/del', param) return http.post('/pla_account/del', param)
}, },
// 导出平台账户数据 // 导出平台账户数据
exportCsv(param) { exportCsv(param) {
return window.framework.http.post('/pla_account/export', param) return http.post('/pla_account/export', param)
} }
} }

View File

@@ -1,27 +1,27 @@
import http from '@/utils/http' import http from '@/utils/http'
class RolePermissionServer { class RolePermissionServer {
async getRoles(callback) { async getRoles(callback) {
let res = await window.framework.http.get('/SysRolePermission/Query', {}) let res = await http.get('/SysRolePermission/Query', {})
return res return res
} }
async getRole(row) { async getRole(row) {
let res = await window.framework.http.get('/SysRolePermission/QueryByRoleId', row) let res = await http.get('/SysRolePermission/QueryByRoleId', row)
return res return res
} }
async add(row) { async add(row) {
let res = await window.framework.http.post('/SysRolePermission/add', row) let res = await http.post('/SysRolePermission/add', row)
return res return res
} }
async edit(row) { async edit(row) {
let res = await window.framework.http.post('/SysRolePermission/edit', row) let res = await http.post('/SysRolePermission/edit', row)
return res return res
} }
async del(row) { async del(row) {
let res = await window.framework.http.post('/SysRolePermission/del', row) let res = await http.post('/SysRolePermission/del', row)
return res return res
} }
} }

View File

@@ -1,23 +1,23 @@
import http from "@/utils/http"; import http from "@/utils/http";
class RoleServer { class RoleServer {
async list() { async list() {
let res = await window.framework.http.get("/sys_role/index", {}); let res = await http.get("/sys_role/index", {});
return res; return res;
} }
async add(row) { async add(row) {
let res = await window.framework.http.post("/sys_role/add", row); let res = await http.post("/sys_role/add", row);
return res; return res;
} }
async edit(row) { async edit(row) {
let res = await window.framework.http.post("/sys_role/edit", row); let res = await http.post("/sys_role/edit", row);
return res; return res;
} }
async del(row) { async del(row) {
let res = await window.framework.http.post("/sys_role/del", row); let res = await http.post("/sys_role/del", row);
return res; return res;
} }
} }

View File

@@ -1,12 +1,12 @@
import http from '@/utils/http' import http from '@/utils/http'
class ShpProfitServer { class ShpProfitServer {
async report(param) { async report(param) {
let res = await window.framework.http.post('/shpProfit/report', param) let res = await http.post('/shpProfit/report', param)
return res return res
} }
async list(param) { async list(param) {
let res = await window.framework.http.post('/shpProfit/list', param) let res = await http.post('/shpProfit/list', param)
return res return res
} }
} }

View File

@@ -1,22 +1,22 @@
import http from '@/utils/http' import http from '@/utils/http'
class SpecificationServer { class SpecificationServer {
async list() { async list() {
let res = await window.framework.http.post('/specification/list', {}) let res = await http.post('/specification/list', {})
return res return res
} }
async add(row) { async add(row) {
let res = await window.framework.http.post('/specification/add', row) let res = await http.post('/specification/add', row)
return res return res
} }
async edit(row) { async edit(row) {
let res = await window.framework.http.post('/specification/edit', row) let res = await http.post('/specification/edit', row)
return res return res
} }
async del(row) { async del(row) {
let res = await window.framework.http.post('/specification/del', row) let res = await http.post('/specification/del', row)
return res return res
} }
} }

View File

@@ -1,7 +1,7 @@
import http from "@/utils/http"; import http from "@/utils/http";
class SysAddress { class SysAddress {
async index(param) { async index(param) {
let res = await window.framework.http.get("/sys_address/index", param); let res = await http.get("/sys_address/index", param);
return res; return res;
} }
} }

View File

@@ -1,27 +1,27 @@
import http from "@/utils/http"; import http from "@/utils/http";
class SysModuleServer { class SysModuleServer {
async all() { async all() {
let res = await window.framework.http.get("/sys_menu/all", {}); let res = await http.get("/sys_menu/all", {});
return res; return res;
} }
async list(row) { async list(row) {
let res = await window.framework.http.get("/sys_menu/all", row); let res = await http.get("/sys_menu/all", row);
return res; return res;
} }
async add(row) { async add(row) {
let res = await window.framework.http.post("/sys_menu/add", row); let res = await http.post("/sys_menu/add", row);
return res; return res;
} }
async edit(row) { async edit(row) {
let res = await window.framework.http.post("/sys_menu/edit", row); let res = await http.post("/sys_menu/edit", row);
return res; return res;
} }
async del(row) { async del(row) {
let res = await window.framework.http.post("/sys_menu/del", row); let res = await http.post("/sys_menu/del", row);
return res; return res;
} }
} }

View File

@@ -1,27 +1,27 @@
import http from "@/utils/http"; import http from "@/utils/http";
class SysLogServe { class SysLogServe {
async all(param) { async all(param) {
let res = await window.framework.http.get("/sys_log/all", param); let res = await http.get("/sys_log/all", param);
return res; return res;
} }
async detail(param) { async detail(param) {
let res = await window.framework.http.get("/sys_log/detail", param); let res = await http.get("/sys_log/detail", param);
return res; return res;
} }
async delete(param) { async delete(param) {
let res = await window.framework.http.get("/sys_log/delete", param); let res = await http.get("/sys_log/delete", param);
return res; return res;
} }
async delete_all(param) { async delete_all(param) {
let res = await window.framework.http.get("/sys_log/delete_all", param); let res = await http.get("/sys_log/delete_all", param);
return res; return res;
} }
async operates(param) { async operates(param) {
let res = await window.framework.http.get("/sys_log/operates", param); let res = await http.get("/sys_log/operates", param);
return res; return res;
} }
} }

View File

@@ -1,13 +1,13 @@
import http from '@/utils/http'; import http from '@/utils/http';
class systemTypeClServer { class systemTypeClServer {
async all(param) { async all(param) {
let res= await window.framework.http.get('/sys_project_type/all', param); let res= await http.get('/sys_project_type/all', param);
return res; return res;
} }
async page(row) { async page(row) {
let res= await window.framework.http.post('/sys_project_type/page', row); let res= await http.post('/sys_project_type/page', row);
return res; return res;
} }
@@ -18,17 +18,17 @@ class systemTypeClServer {
} }
async add(row) { async add(row) {
let res= await window.framework.http.post('/sys_project_type/add', row); let res= await http.post('/sys_project_type/add', row);
return res; return res;
} }
async edit(row) { async edit(row) {
let res= await window.framework.http.post('/sys_project_type/edit', row); let res= await http.post('/sys_project_type/edit', row);
return res; return res;
} }
async del(row) { async del(row) {
let res= await window.framework.http.post('/sys_project_type/del', row); let res= await http.post('/sys_project_type/del', row);
return res; return res;
} }
} }

View File

@@ -1,29 +1,29 @@
import http from '@/utils/http' import http from '@/utils/http'
class TableServer { class TableServer {
async getAll(callback) { async getAll(callback) {
return await window.framework.http.get('/table/index', {}) return await http.get('/table/index', {})
} }
async add(row, callback) { async add(row, callback) {
return await window.framework.http.post('/table/add', row) return await http.post('/table/add', row)
} }
async edit(row, callback) { async edit(row, callback) {
return await window.framework.http.post('/table/edit', row, function(res) { return await http.post('/table/edit', row, function(res) {
callback && callback(res) callback && callback(res)
}) })
} }
async del(row, callback) { async del(row, callback) {
return await window.framework.http.post('/table/del', row) return await http.post('/table/del', row)
} }
async autoApi(id) { async autoApi(id) {
return await window.framework.http.get('/template/api', { id: id }) return await http.get('/template/api', { id: id })
} }
async autoDb(id) { async autoDb(id) {
return await window.framework.http.get('/template/autoDb', { id: id }) return await http.get('/template/autoDb', { id: id })
} }
} }

View File

@@ -1,12 +1,12 @@
import http from "@/utils/http"; import http from "@/utils/http";
class UserServer { class UserServer {
async login(row) { async login(row) {
let res = await window.framework.http.post("/sys_user/login", row); let res = await http.post("/sys_user/login", row);
return res; return res;
} }
async all() { async all() {
let res = await window.framework.http.get("/sys_user/index", {}); let res = await http.get("/sys_user/index", {});
return res; return res;
} }
@@ -16,22 +16,22 @@ class UserServer {
} }
async authorityMenus() { async authorityMenus() {
let res = await window.framework.http.post("/sys_user/authorityMenus", {}); let res = await http.post("/sys_user/authorityMenus", {});
return res; return res;
} }
async add(row) { async add(row) {
let res = await window.framework.http.post("/sys_user/add", row); let res = await http.post("/sys_user/add", row);
return res; return res;
} }
async edit(row) { async edit(row) {
let res = await window.framework.http.post("/sys_user/edit", row); let res = await http.post("/sys_user/edit", row);
return res; return res;
} }
async del(row) { async del(row) {
let res = await window.framework.http.post("/sys_user/del", row); let res = await http.post("/sys_user/del", row);
return res; return res;
} }
} }

View File

@@ -1,33 +0,0 @@
import http from '@/utils/http'
export default {
// 获取职业列表
page: (params) => {
return window.framework.http.post('/wch_professions/page', params)
},
// 获取所有职业
all: (params) => {
return window.framework.http.post('/wch_professions/all', params)
},
// 新增职业
add: (params) => {
return window.framework.http.post('/wch_professions/add', params)
},
// 更新职业
edit: (params) => {
return window.framework.http.post('/wch_professions/edit', params)
},
// 删除职业
del: (params) => {
return window.framework.http.post('/wch_professions/del', params)
},
// 导出职业数据
exportCsv: (params) => {
return window.framework.http.post('/wch_professions/exportCsv', params)
}
}

View File

@@ -1,27 +1,27 @@
import http from "@/utils/http"; import http from "@/utils/http";
class FormFieldServer { class FormFieldServer {
async all(param) { async all(param) {
let res = await window.framework.http.get("/sys_form_field/all", param); let res = await http.get("/sys_form_field/all", param);
return res; return res;
} }
async page(row) { async page(row) {
let res = await window.framework.http.post("/sys_form_field/page", row); let res = await http.post("/sys_form_field/page", row);
return res; return res;
} }
async add(row) { async add(row) {
let res = await window.framework.http.post("/sys_form_field/add", row); let res = await http.post("/sys_form_field/add", row);
return res; return res;
} }
async edit(row) { async edit(row) {
let res = await window.framework.http.post("/sys_form_field/edit", row); let res = await http.post("/sys_form_field/edit", row);
return res; return res;
} }
async del(row) { async del(row) {
let res = await window.framework.http.post("/sys_form_field/del", row); let res = await http.post("/sys_form_field/del", row);
return res; return res;
} }
} }

View File

@@ -1,32 +1,32 @@
import http from "@/utils/http"; import http from "@/utils/http";
class FormServer { class FormServer {
async all(param) { async all(param) {
let res = await window.framework.http.get("/sys_form/all", param); let res = await http.get("/sys_form/all", param);
return res; return res;
} }
async page(row) { async page(row) {
let res = await window.framework.http.post("/sys_form/page", row); let res = await http.post("/sys_form/page", row);
return res; return res;
} }
async generate(row) { async generate(row) {
let res = await window.framework.http.post("/sys_form/generate", row); let res = await http.post("/sys_form/generate", row);
return res; return res;
} }
async add(row) { async add(row) {
let res = await window.framework.http.post("/sys_form/add", row); let res = await http.post("/sys_form/add", row);
return res; return res;
} }
async edit(row) { async edit(row) {
let res = await window.framework.http.post("/sys_form/edit", row); let res = await http.post("/sys_form/edit", row);
return res; return res;
} }
async del(row) { async del(row) {
let res = await window.framework.http.post("/sys_form/del", row); let res = await http.post("/sys_form/del", row);
return res; return res;
} }
} }

View File

@@ -2,46 +2,46 @@ import http from "@/utils/http";
class MenuServer { class MenuServer {
async list(row) { async list(row) {
let res = await window.framework.http.get("/sys_menu/index", row); let res = await http.get("/sys_menu/index", row);
return res; return res;
} }
async generate(row) { async generate(row) {
let res = await window.framework.http.post("/sys_menu/generate", row); let res = await http.post("/sys_menu/generate", row);
return res; return res;
} }
async add(row) { async add(row) {
let res = await window.framework.http.post("/sys_menu/add", row); let res = await http.post("/sys_menu/add", row);
return res; return res;
} }
async edit(row) { async edit(row) {
let res = await window.framework.http.post("/sys_menu/edit", row); let res = await http.post("/sys_menu/edit", row);
return res; return res;
} }
async del(row) { async del(row) {
let res = await window.framework.http.post("/sys_menu/del", row); let res = await http.post("/sys_menu/del", row);
return res; return res;
} }
async generate(row) { async generate(row) {
let res = await window.framework.http.post("/form/generate", row); let res = await http.post("/form/generate", row);
return res; return res;
} }
async generateModel(row) { async generateModel(row) {
let res = await window.framework.http.post("/model/generate", row); let res = await http.post("/model/generate", row);
return res; return res;
} }
async modelAll(row) { async modelAll(row) {
let res = await window.framework.http.post("/model/all", row); let res = await http.post("/model/all", row);
return res; return res;
} }
async modelInterface(row) { async modelInterface(row) {
let res = await window.framework.http.post("/model/interface", row); let res = await http.post("/model/interface", row);
return res; return res;
} }
} }

View File

@@ -1,29 +1,29 @@
import http from "@/utils/http"; import http from "@/utils/http";
class ModelFieldServer { class ModelFieldServer {
async all(row) { async all(row) {
let res = await window.framework.http.get("/sys_model_field/all", row); let res = await http.get("/sys_model_field/all", row);
return res; return res;
} }
async allByKey(row) { async allByKey(row) {
let res = await window.framework.http.get("/sys_model_field/allByKey", row, { let res = await http.get("/sys_model_field/allByKey", row, {
hideLoad: true hideLoad: true
}); });
return res; return res;
} }
async add(row) { async add(row) {
let res = await window.framework.http.post("/sys_model_field/add", row); let res = await http.post("/sys_model_field/add", row);
return res; return res;
} }
async edit(row) { async edit(row) {
let res = await window.framework.http.post("/sys_model_field/edit", row); let res = await http.post("/sys_model_field/edit", row);
return res; return res;
} }
async del(row) { async del(row) {
let res = await window.framework.http.post("/sys_model_field/del", row); let res = await http.post("/sys_model_field/del", row);
return res; return res;
} }
} }

View File

@@ -1,37 +1,37 @@
import http from "@/utils/http"; import http from "@/utils/http";
class ModelServer { class ModelServer {
async interface(row) { async interface(row) {
let res = await window.framework.http.post("/sys_model/interface", row); let res = await http.post("/sys_model/interface", row);
return res; return res;
} }
async all() { async all() {
let res = await window.framework.http.get("/sys_model/all", {}); let res = await http.get("/sys_model/all", {});
return res; return res;
} }
async detail(row) { async detail(row) {
let res = await window.framework.http.get("/sys_model/detail", row); let res = await http.get("/sys_model/detail", row);
return res; return res;
} }
async regenerate(row) { async regenerate(row) {
let res = await window.framework.http.post("/sys_model/regenerate", row); let res = await http.post("/sys_model/regenerate", row);
return res; return res;
} }
async add(row) { async add(row) {
let res = await window.framework.http.post("/sys_model/add", row); let res = await http.post("/sys_model/add", row);
return res; return res;
} }
async edit(row) { async edit(row) {
let res = await window.framework.http.post("/sys_model/edit", row); let res = await http.post("/sys_model/edit", row);
return res; return res;
} }
async del(row) { async del(row) {
let res = await window.framework.http.post("/sys_model/del", row); let res = await http.post("/sys_model/del", row);
return res; return res;
} }
} }

View File

@@ -1,27 +1,27 @@
import http from "@/utils/http"; import http from "@/utils/http";
class ParamSetupServer { class ParamSetupServer {
async getAll() { async getAll() {
return await window.framework.http.get("/sys_parameter/index", {}); return await http.get("/sys_parameter/index", {});
} }
async getOne(key) { async getOne(key) {
return await window.framework.http.get("/sys_parameter/key", { key }); return await http.get("/sys_parameter/key", { key });
} }
async add(row) { async add(row) {
return await window.framework.http.post("/sys_parameter/add", row); return await http.post("/sys_parameter/add", row);
} }
async edit(row) { async edit(row) {
return await window.framework.http.post("/sys_parameter/edit", row); return await http.post("/sys_parameter/edit", row);
} }
async setSysConfig(row) { async setSysConfig(row) {
return await window.framework.http.post("/sys_parameter/setSysConfig", row); return await http.post("/sys_parameter/setSysConfig", row);
} }
async del(row) { async del(row) {
return await window.framework.http.post("/sys_parameter/del", row); return await http.post("/sys_parameter/del", row);
} }
} }

View File

@@ -1,26 +1,26 @@
import http from "@/utils/http"; import http from "@/utils/http";
class SysControlTypeServer { class SysControlTypeServer {
async all(param) { async all(param) {
let res = await window.framework.http.get("/sys_control_type/all", param); let res = await http.get("/sys_control_type/all", param);
return res; return res;
} }
async page(row) { async page(row) {
let res = await window.framework.http.post("/sys_control_type/page", row); let res = await http.post("/sys_control_type/page", row);
return res; return res;
} }
async add(param) { async add(param) {
let res = await window.framework.http.post("/sys_control_type/add", param); let res = await http.post("/sys_control_type/add", param);
return res; return res;
} }
async edit(param) { async edit(param) {
let res = await window.framework.http.post("/sys_control_type/edit", param); let res = await http.post("/sys_control_type/edit", param);
return res; return res;
} }
async del(param) { async del(param) {
let res = await window.framework.http.post("/sys_control_type/del", param); let res = await http.post("/sys_control_type/del", param);
return res; return res;
} }
} }

View File

@@ -51,7 +51,7 @@ export default {
}, },
data() { data() {
return { return {
actionUrl: window.rootVue.$config.apiUrl + 'sys_file/upload_oos_img', actionUrl: this.config.apiUrl + 'sys_file/upload_oos_img',
cropper: null, cropper: null,
insideSrc: '', insideSrc: '',
file: null, file: null,
@@ -81,7 +81,7 @@ export default {
reader.onload = async (event) => { reader.onload = async (event) => {
this.getSize(event.srcElement.result).then(({ width, height }) => { this.getSize(event.srcElement.result).then(({ width, height }) => {
if (width < 500 || height < 500) { if (width < 500 || height < 500) {
rootVue.$Message.error('图片尺寸小于 500*500 ,请更换图片') this.$Message.error('图片尺寸小于 500*500 ,请更换图片')
return false return false
} }
this.insideSrc = event.srcElement.result this.insideSrc = event.srcElement.result

View File

@@ -25,7 +25,7 @@ export default {
this.editor = new WangEditor(domId) this.editor = new WangEditor(domId)
this.editor.config.uploadImgShowBase64 = true this.editor.config.uploadImgShowBase64 = true
this.editor.config.uploadImgServer = window.rootVue.$config.apiUrl + 'sys_file/upload_oos_img' this.editor.config.uploadImgServer =this.config.apiUrl + 'sys_file/upload_oos_img'
this.editor.config.uploadImgHooks = { this.editor.config.uploadImgHooks = {
customInsert: (insertImg, result, editor) => { customInsert: (insertImg, result, editor) => {
var url = result.data.path var url = result.data.path

View File

@@ -37,7 +37,7 @@ export default {
return { return {
headers, headers,
uploadList: [], uploadList: [],
actionUrl: window.rootVue.$config.apiUrl + 'sys_file/upload_oos_img', actionUrl:this.config.apiUrl + 'sys_file/upload_oos_img',
imgSrc: '', imgSrc: '',
visible: false, visible: false,
} }

View File

@@ -34,7 +34,7 @@ export default {
data() { data() {
return { return {
headers, headers,
actionUrl: window.rootVue.$config.apiUrl + 'sys_file/upload_oos_img', actionUrl: this.config.apiUrl + 'sys_file/upload_oos_img',
imgUrl: '', imgUrl: '',
visible: false, visible: false,
} }

302
src/config/icons.json Normal file
View File

@@ -0,0 +1,302 @@
[
"md-add",
"md-add-circle",
"md-alarm",
"md-albums",
"md-alert",
"md-american-football",
"md-analytics",
"md-aperture",
"md-apps",
"md-appstore",
"md-archive",
"md-arrow-back",
"md-arrow-down",
"md-arrow-dropdown",
"md-arrow-dropdown-circle",
"md-arrow-dropleft",
"md-arrow-dropleft-circle",
"md-arrow-dropright",
"md-arrow-dropright-circle",
"md-arrow-dropup",
"md-arrow-dropup-circle",
"md-arrow-forward",
"md-arrow-round-back",
"md-arrow-round-down",
"md-arrow-round-forward",
"md-arrow-round-up",
"md-arrow-up",
"md-at",
"md-attach",
"md-backspace",
"md-barcode",
"md-baseball",
"md-basket",
"md-basketball",
"md-battery-charging",
"md-battery-dead",
"md-battery-full",
"md-beaker",
"md-beer",
"md-bicycle",
"md-bluetooth",
"md-boat",
"md-body",
"md-bonfire",
"md-book",
"md-bookmark",
"md-bookmarks",
"md-bowtie",
"md-briefcase",
"md-browsers",
"md-brush",
"md-bug",
"md-build",
"md-bulb",
"md-bus",
"md-cafe",
"md-calculator",
"md-calendar",
"md-call",
"md-camera",
"md-car",
"md-card",
"md-cart",
"md-cash",
"md-chatboxes",
"md-chatbubbles",
"md-checkbox",
"md-checkbox-outline",
"md-checkmark",
"md-checkmark-circle",
"md-checkmark-circle-outline",
"md-clipboard",
"md-clock",
"md-close",
"md-close-circle",
"md-closed-captioning",
"md-cloud",
"md-cloud-circle",
"md-cloud-done",
"md-cloud-download",
"md-cloud-outline",
"md-cloud-upload",
"md-cloudy",
"md-cloudy-night",
"md-code",
"md-code-download",
"md-code-working",
"md-cog",
"md-color-fill",
"md-color-filter",
"md-color-palette",
"md-color-wand",
"md-compass",
"md-construct",
"md-contact",
"md-contacts",
"md-contract",
"md-contrast",
"md-copy",
"md-create",
"md-crop",
"md-cube",
"md-cut",
"md-desktop",
"md-disc",
"md-document",
"md-done-all",
"md-download",
"md-easel",
"md-egg",
"md-exit",
"md-expand",
"md-eye",
"md-eye-off",
"md-fastforward",
"md-female",
"md-filing",
"md-film",
"md-finger-print",
"md-flag",
"md-flame",
"md-flash",
"md-flask",
"md-flower",
"md-folder",
"md-folder-open",
"md-football",
"md-funnel",
"md-game-controller-a",
"md-game-controller-b",
"md-git-branch",
"md-git-commit",
"md-git-compare",
"md-git-merge",
"md-git-network",
"md-git-pull-request",
"md-glasses",
"md-globe",
"md-grid",
"md-hammer",
"md-hand",
"md-happy",
"md-headset",
"md-heart",
"md-heart-outline",
"md-help",
"md-help-buoy",
"md-help-circle",
"md-home",
"md-ice-cream",
"md-image",
"md-images",
"md-infinite",
"md-information",
"md-information-circle",
"md-ionic",
"md-ionitron",
"md-jet",
"md-key",
"md-keypad",
"md-laptop",
"md-leaf",
"md-link",
"md-list",
"md-list-box",
"md-locate",
"md-lock",
"md-log-in",
"md-log-out",
"md-magnet",
"md-mail",
"md-mail-open",
"md-male",
"md-man",
"md-map",
"md-medal",
"md-medical",
"md-medkit",
"md-megaphone",
"md-menu",
"md-mic",
"md-mic-off",
"md-microphone",
"md-moon",
"md-more",
"md-move",
"md-musical-note",
"md-musical-notes",
"md-navigate",
"md-no-smoking",
"md-notifications",
"md-notifications-off",
"md-notifications-outline",
"md-nuclear",
"md-nutrition",
"md-open",
"md-options",
"md-outlet",
"md-paper",
"md-paper-plane",
"md-partly-sunny",
"md-pause",
"md-paw",
"md-people",
"md-person",
"md-person-add",
"md-phone-landscape",
"md-phone-portrait",
"md-photos",
"md-pie",
"md-pin",
"md-pint",
"md-pizza",
"md-plane",
"md-planet",
"md-play",
"md-podium",
"md-power",
"md-pricetag",
"md-pricetags",
"md-print",
"md-pulse",
"md-qr-scanner",
"md-quote",
"md-radio",
"md-radio-button-off",
"md-radio-button-on",
"md-rainy",
"md-recording",
"md-redo",
"md-refresh",
"md-refresh-circle",
"md-remove",
"md-remove-circle",
"md-reorder",
"md-repeat",
"md-resize",
"md-restaurant",
"md-return-left",
"md-return-right",
"md-reverse-camera",
"md-rewind",
"md-ribbon",
"md-rose",
"md-sad",
"md-school",
"md-search",
"md-send",
"md-settings",
"md-share",
"md-share-alt",
"md-shirt",
"md-shuffle",
"md-skip-backward",
"md-skip-forward",
"md-snow",
"md-speedometer",
"md-square",
"md-square-outline",
"md-star",
"md-star-half",
"md-star-outline",
"md-stats",
"md-stopwatch",
"md-subway",
"md-sunny",
"md-swap",
"md-switch",
"md-sync",
"md-tablet-landscape",
"md-tablet-portrait",
"md-tennisball",
"md-text",
"md-thermometer",
"md-thumbs-down",
"md-thumbs-up",
"md-thunderstorm",
"md-time",
"md-timer",
"md-train",
"md-transgender",
"md-trash",
"md-trending-down",
"md-trending-up",
"md-trophy",
"md-umbrella",
"md-undo",
"md-unlock",
"md-videocam",
"md-volume-down",
"md-volume-mute",
"md-volume-off",
"md-volume-up",
"md-walk",
"md-warning",
"md-watch",
"md-water",
"md-wifi",
"md-wine",
"md-woman"
]

View File

@@ -12,9 +12,24 @@ import uiTool from './utils/uiTool'
import http from './utils/http' import http from './utils/http'
import * as tools from './utils/tools' import * as tools from './utils/tools'
// 文件下载工具
const funTool = {
downloadFile: (res, fileName) => {
const blob = new Blob([res.data || res])
const downloadElement = document.createElement('a')
const href = window.URL.createObjectURL(blob)
downloadElement.href = href
downloadElement.download = fileName || new Date().getTime() + '.csv'
document.body.appendChild(downloadElement)
downloadElement.click()
document.body.removeChild(downloadElement)
window.URL.revokeObjectURL(href)
}
}
import storeModules, { userModule, appModule } from './store' import storeModules, { userModule, appModule } from './store'
import routerConfig, { createBaseRoutes, setupRouterGuards } from './router' import { createBaseRoutes, setupRouterGuards } from './router'
import HomePage from './views/home/index.vue' import HomePage from './views/home/index.vue'
@@ -60,10 +75,12 @@ class AdminFramework {
this.config = {} this.config = {}
this.store = null this.store = null
this.router = null this.router = null
this.ViewUI = null
this.tools = tools this.tools = tools
this.uiTool = uiTool this.uiTool = uiTool
this.http = http this.http = http
this.funTool = funTool
this.storeModules = storeModules this.storeModules = storeModules
this.userModule = userModule this.userModule = userModule
@@ -103,6 +120,7 @@ class AdminFramework {
const { config = {}, ViewUI, VueRouter, Vuex, createPersistedState, componentMap } = options const { config = {}, ViewUI, VueRouter, Vuex, createPersistedState, componentMap } = options
this.config = config this.config = config
this.ViewUI = ViewUI
if (ViewUI) { if (ViewUI) {
Vue.use(ViewUI) Vue.use(ViewUI)
@@ -316,6 +334,7 @@ export {
tools, tools,
uiTool, uiTool,
http, http,
funTool,
storeModules, storeModules,
userModule, userModule,

View File

@@ -26,9 +26,9 @@ export default {
}, },
actions: { actions: {
async getSysTitle({ state, commit, rootState }, { defaultTitle, defaultLogo = '' } = {}) { async getSysTitle({ state, commit, rootState }, { defaultTitle, defaultLogo = '' } = {}) {
// 如果没有传入 defaultTitle尝试从 Vue 实例的配置中获取 // 如果没有传入 defaultTitle尝试从框架配置中获取
if (!defaultTitle && window.rootVue && window.rootVue.$config) { if (!defaultTitle && window.framework && window.framework.config) {
defaultTitle = window.rootVue.$config.title || '智能代码平台' defaultTitle = window.framework.config.title || '智能代码平台'
} else if (!defaultTitle) { } else if (!defaultTitle) {
defaultTitle = '智能代码平台' defaultTitle = '智能代码平台'
} }

View File

@@ -96,7 +96,7 @@ export default {
// 生成路由菜单(传递 HomePage 组件) // 生成路由菜单(传递 HomePage 组件)
// 从框架导出的组件中获取 HomePage // 从框架导出的组件中获取 HomePage
const HomePage = window.framework && window.framework.HomePage ? window.framework.HomePage : null const HomePage = window.framework && HomePage ? HomePage : null
let mainMenu = uiTool.getRoutes(Main, ParentView, Page404, HomePage) let mainMenu = uiTool.getRoutes(Main, ParentView, Page404, HomePage)
console.log('生成的主菜单:', mainMenu) console.log('生成的主菜单:', mainMenu)
@@ -104,9 +104,8 @@ export default {
commit('setMenuList', mainMenu.children) commit('setMenuList', mainMenu.children)
// 动态添加路由(重要!解决登录后点击菜单空白的问题) // 动态添加路由(重要!解决登录后点击菜单空白的问题)
if (window.rootVue && window.rootVue.$router) { if (this.router) {
const router = window.rootVue.$router const routes =this.router.options.routes
const routes = router.options.routes
// 查找并移除旧的主路由 // 查找并移除旧的主路由
const mainRouteIndex = routes.findIndex(r => r.path === '/') const mainRouteIndex = routes.findIndex(r => r.path === '/')

View File

@@ -1,6 +1,7 @@
import axios from 'axios' import axios from 'axios'
import { formatDate } from './tools' import { formatDate } from './tools'
class Http { class Http {
constructor() { constructor() {
this.config = { this.config = {
@@ -71,8 +72,15 @@ class Http {
if (this.store) { if (this.store) {
this.store.commit('user/setToken', '') this.store.commit('user/setToken', '')
} }
if (window.rootVue && window.rootVue.$router) { // 使用框架的 router 实例跳转到登录页
window.rootVue.$router.push({ path: '/login' }) // 使用 path 而不是 name try {
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) return Promise.reject(error)
} }
@@ -106,8 +114,17 @@ class Http {
} }
showError(msg) { showError(msg) {
if (window.rootVue && window.rootVue.$Message) { // 优先使用框架的 ViewUI 实例,如果不存在则使用全局的 $Message
window.rootVue.$Message.error({ content: msg, duration: 3 }) 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)
} }
} }

View File

@@ -110,20 +110,31 @@ export default class uiTool {
} }
static delConfirm(callback) { static delConfirm(callback) {
if (window.rootVue && window.rootVue.$Modal) { try {
window.rootVue.$Modal.confirm({ const Modal = (window.framework && window.framework.ViewUI && window.framework.ViewUI.Modal) || window.$Modal
if (Modal) {
Modal.confirm({
title: '温馨提示', title: '温馨提示',
content: '<p>你确定删除吗?</p>', content: '<p>你确定删除吗?</p>',
onOk: () => { onOk: () => {
callback && callback() callback && callback()
} }
}) })
} else {
// 如果 Modal 不存在,使用原生确认框
if (confirm('你确定删除吗?')) {
callback && callback()
}
}
} catch (error) {
console.error('delConfirm error:', error)
} }
} }
static showConfirm({ title = '温馨提示', content = '内容' }, callback) { static showConfirm({ title = '温馨提示', content = '内容' }, callback) {
if (window.rootVue && window.rootVue.$Modal) { const Modal = (window.framework && window.framework.ViewUI && window.framework.ViewUI.Modal) || window.$Modal
window.rootVue.$Modal.confirm({ if (Modal) {
Modal.confirm({
title, title,
content, content,
onOk: () => { onOk: () => {

View File

@@ -75,7 +75,7 @@ export default {
this.$refs.editModal.addShow({}, async (row) => { this.$refs.editModal.addShow({}, async (row) => {
await paramSetupServer.add(row) await paramSetupServer.add(row)
rootVue.$Message.success('新增成功!') this.$Message.success('新增成功!')
this.init() this.init()
}) })
}, },
@@ -88,7 +88,7 @@ export default {
this.gridOption.editRow = row this.gridOption.editRow = row
this.$refs.editModal.editShow(row, async (newRow) => { this.$refs.editModal.editShow(row, async (newRow) => {
await paramSetupServer.edit(newRow) await paramSetupServer.edit(newRow)
rootVue.$Message.success('修改成功!') this.$Message.success('修改成功!')
this.init() this.init()
}) })
@@ -96,7 +96,7 @@ export default {
async delConfirm(row) { async delConfirm(row) {
uiTool.delConfirm(async () => { uiTool.delConfirm(async () => {
await paramSetupServer.del(row) await paramSetupServer.del(row)
rootVue.$Message.success('删除成功!') this.$Message.success('删除成功!')
this.init() this.init()
}) })
}, },

View File

@@ -82,21 +82,21 @@ export default {
this.$refs.editModal.addShow({}, async (row) => { this.$refs.editModal.addShow({}, async (row) => {
await roleServer.add(row) await roleServer.add(row)
this.init() this.init()
await rootVue.$Message.success('新增成功!') await this.$Message.success('新增成功!')
}) })
}, },
showEditWarp(row) { showEditWarp(row) {
this.$refs.editModal.editShow(row, async (newRow) => { this.$refs.editModal.editShow(row, async (newRow) => {
await roleServer.edit(newRow) await roleServer.edit(newRow)
await this.init() await this.init()
rootVue.$Message.success('修改成功!') this.$Message.success('修改成功!')
}) })
}, },
async delConfirm(row) { async delConfirm(row) {
uiTool.delConfirm(async () => { uiTool.delConfirm(async () => {
await roleServer.del(row) await roleServer.del(row)
await this.init() await this.init()
rootVue.$Message.success('删除成功!') this.$Message.success('删除成功!')
}) })
}, },
async submitPermission() { async submitPermission() {
@@ -110,7 +110,7 @@ export default {
await roleServer.edit(param) await roleServer.edit(param)
await this.init() await this.init()
rootVue.$Message.success('权限修改成功!') this.$Message.success('权限修改成功!')
this.isShowPermission = false this.isShowPermission = false
}, },

View File

@@ -112,21 +112,21 @@ export default {
showAddWarp() { showAddWarp() {
this.$refs.editModal.addShow({}, async (newRow) => { this.$refs.editModal.addShow({}, async (newRow) => {
await userServer.add(newRow) await userServer.add(newRow)
rootVue.$Message.success('新增成功!') this.$Message.success('新增成功!')
this.init() this.init()
}) })
}, },
showEditWarp(row) { showEditWarp(row) {
this.$refs.editModal.editShow(row, async (newRow) => { this.$refs.editModal.editShow(row, async (newRow) => {
await userServer.edit(newRow) await userServer.edit(newRow)
rootVue.$Message.success('修改成功!') this.$Message.success('修改成功!')
this.init() this.init()
}) })
}, },
async delConfirm(row) { async delConfirm(row) {
uiTool.delConfirm(async () => { uiTool.delConfirm(async () => {
await userServer.del(row) await userServer.del(row)
rootVue.$Message.success('删除成功!') this.$Message.success('删除成功!')
this.init() this.init()
}) })
}, },

View File

@@ -119,7 +119,7 @@ export default {
async showAddWarp() { async showAddWarp() {
this.$refs.editModal.addShow({}, async (newRow) => { this.$refs.editModal.addShow({}, async (newRow) => {
let res = await sysControlTypeServer.add(newRow) let res = await sysControlTypeServer.add(newRow)
rootVue.$Message.success('新增成功!') this.$Message.success('新增成功!')
this.init() this.init()
}) })
}, },
@@ -128,7 +128,7 @@ export default {
let valid = await this.$refs['editModal'].$refs['From'].validate() let valid = await this.$refs['editModal'].$refs['From'].validate()
if (valid) { if (valid) {
let res = await sysControlTypeServer.edit(newRow) let res = await sysControlTypeServer.edit(newRow)
rootVue.$Message.success('修改成功!') this.$Message.success('修改成功!')
this.init() this.init()
} }
}) })
@@ -137,7 +137,7 @@ export default {
async delConfirm(row) { async delConfirm(row) {
uiTool.delConfirm(async () => { uiTool.delConfirm(async () => {
await sysControlTypeServer.del(row) await sysControlTypeServer.del(row)
rootVue.$Message.success('删除成功!') this.$Message.success('删除成功!')
this.init() this.init()
}) })
}, },

View File

@@ -317,7 +317,7 @@ export default {
this.$refs.editModal.editShow(this.editRow, async (newRow) => { this.$refs.editModal.editShow(this.editRow, async (newRow) => {
let param = Object.assign({}, this.editRow, newRow) let param = Object.assign({}, this.editRow, newRow)
await menuServer.edit(param) await menuServer.edit(param)
rootVue.$Message.success('修改成功!') this.$Message.success('修改成功!')
this.init() this.init()
}) })
}, },
@@ -335,7 +335,7 @@ export default {
this.$refs.editModal.addShow(this.editRow, async (newRow) => { this.$refs.editModal.addShow(this.editRow, async (newRow) => {
let param = Object.assign({}, newRow) let param = Object.assign({}, newRow)
await menuServer.add(param) await menuServer.add(param)
rootVue.$Message.success('新增成功!') this.$Message.success('新增成功!')
this.init() this.init()
}) })
}, },
@@ -354,14 +354,14 @@ export default {
this.$refs.editModal.addShow(this.editRow, async (newRow) => { this.$refs.editModal.addShow(this.editRow, async (newRow) => {
let param = Object.assign({}, newRow) let param = Object.assign({}, newRow)
await menuServer.add(param) await menuServer.add(param)
rootVue.$Message.success('新增成功!') this.$Message.success('新增成功!')
this.init() this.init()
}) })
}, },
async delConfirm(row) { async delConfirm(row) {
uiTool.delConfirm(async () => { uiTool.delConfirm(async () => {
await menuServer.del(row) await menuServer.del(row)
rootVue.$Message.success('删除成功!') this.$Message.success('删除成功!')
this.init() this.init()
}) })
}, },
@@ -372,7 +372,7 @@ export default {
}, },
async () => { async () => {
let res = await menuServer.generate(row) let res = await menuServer.generate(row)
rootVue.$Message.success('生成成功!') this.$Message.success('生成成功!')
this.init() this.init()
} }
) )
@@ -384,7 +384,7 @@ export default {
}, },
async () => { async () => {
let res = await menuServer.generateModel(row) let res = await menuServer.generateModel(row)
rootVue.$Message.success('生成成功!') this.$Message.success('生成成功!')
this.init() this.init()
} }
) )

View File

@@ -1,362 +0,0 @@
/**
* Admin Framework - 閫氱敤鍚庡彴绠$悊绯荤粺妗嗘灦
* 鐗堟湰: 1.0.0
*
* 鍔熻兘鍖呭惈:
* - 绯荤粺绠$悊鍔熻兘 (sys_*)
* - 鐢ㄦ埛鐧诲綍鍜屾潈闄愮鐞? * - 鍔ㄦ€佽矾鐢辩鐞? * - 涓诲竷灞€鍜岄〉闈㈠竷灞€
* - 鍏ㄥ眬缁勪欢
* - 宸ュ叿搴? * - Vuex 鐘舵€佺鐞? */
// ==================== 鏍峰紡鏂囦欢 ====================
import './assets/css/animate.css'
import './assets/css/base.less'
import './assets/css/ivewExpand.less'
import './assets/icons/iconfont.css'
// ==================== 宸ュ叿搴?====================
import uiTool from './utils/uiTool'
import http from './utils/http'
import * as tools from './utils/tools'
// ==================== Store 妯″潡 ====================
import storeModules, { userModule, appModule } from './store'
// ==================== 璺敱閰嶇疆 ====================
import routerConfig, { createBaseRoutes, setupRouterGuards } from './router'
// ==================== 绯荤粺椤甸潰 ====================
// 涓婚〉
import HomePage from './views/home/index.vue'
// system 椤甸潰
import SysLog from './views/system/sys_log.vue'
import SysParamSetup from './views/system/sys_param_setup.vue'
import SysRole from './views/system/sys_role.vue'
import SysUser from './views/system/sys_user.vue'
// system_high 椤甸潰
import SysControl from './views/system_high/sys_control.vue'
import SysMenu from './views/system_high/sys_menu.vue'
import SysTitle from './views/system_high/sys_title.vue'
// 鐧诲綍鍜岄敊璇〉闈?import LoginPage from './views/login/login.vue'
import Page401 from './views/error-page/401.vue'
import Page404 from './views/error-page/404.vue'
import Page500 from './views/error-page/500.vue'
// 甯冨眬缁勪欢
import Main from './components/main'
import ParentView from './components/parent-view'
// ==================== 绯荤粺 API ====================
// system API
import * as systemApi from './api/system'
// system_high API
import * as systemHighApi from './api/system_high'
// ==================== 妗嗘灦绫?====================
class AdminFramework {
constructor() {
this.version = '1.0.0'
this.installed = false
this.config = {}
this.store = null
this.router = null
// 瀵煎嚭宸ュ叿
this.tools = tools
this.uiTool = uiTool
this.http = http
// 瀵煎嚭 Store 妯″潡
this.storeModules = storeModules
this.userModule = userModule
this.appModule = appModule
// 瀵煎嚭璺敱閰嶇疆
this.createBaseRoutes = createBaseRoutes
this.setupRouterGuards = setupRouterGuards
// 瀵煎嚭缁勪欢
this.Main = Main
this.ParentView = ParentView
this.LoginPage = LoginPage
this.Page401 = Page401
this.Page404 = Page404
this.Page500 = Page500
// 瀵煎嚭绯荤粺椤甸潰
this.HomePage = HomePage
this.SysLog = SysLog
this.SysParamSetup = SysParamSetup
this.SysRole = SysRole
this.SysUser = SysUser
this.SysControl = SysControl
this.SysMenu = SysMenu
this.SysTitle = SysTitle
// 瀵煎嚭 API
this.systemApi = systemApi
this.systemHighApi = systemHighApi
}
/**
* Vue 鎻掍欢瀹夎鏂规硶 - 鑷姩瀹屾垚鎵€鏈夊垵濮嬪寲
* @param {Object} Vue - Vue 瀹炰緥
* @param {Object} options - 閰嶇疆閫夐」
* @param {Object} options.config - 搴旂敤閰嶇疆
* @param {Object} options.ViewUI - ViewUI 瀹炰緥锛堝彲閫夛紝妗嗘灦浼氳嚜鍔ㄥ鐞嗭級
* @param {Object} options.VueRouter - VueRouter 瀹炰緥锛堝彲閫夛級
* @param {Object} options.Vuex - Vuex 瀹炰緥锛堝彲閫夛級
* @param {Function} options.createPersistedState - vuex-persistedstate锛堝彲閫夛級
* @param {Object} options.componentMap - 鑷畾涔夌粍浠舵槧灏勮〃锛堝彲閫夛級
*/
install(Vue, options = {}) {
if (this.installed) return
this.installed = true
const { config = {}, ViewUI, VueRouter, Vuex, createPersistedState, componentMap } = options
this.config = config
// 鑷姩娉ㄥ唽 ViewUI
if (ViewUI) {
Vue.use(ViewUI)
}
// 鑷姩娉ㄥ唽 VueRouter
if (VueRouter) {
Vue.use(VueRouter)
}
// 鑷姩娉ㄥ唽 Vuex
if (Vuex) {
Vue.use(Vuex)
}
// 鎸傝浇鍏ㄥ眬閰嶇疆鍜屽伐鍏? Vue.prototype.$config = config
Vue.prototype.$http = http
Vue.prototype.$tools = tools
Vue.prototype.$uiTool = uiTool
// 鑷姩娉ㄥ唽鍏ㄥ眬缁勪欢
this.registerGlobalComponents(Vue)
// 鑷姩璁剧疆缁勪欢鏄犲皠琛紙鍖呭惈澶栭儴浼犲叆鐨勬槧灏勶級
this.setupComponentMap(componentMap)
// 濡傛灉鎻愪緵浜?Vuex锛岃嚜鍔ㄥ垱寤?Store
if (Vuex && !this.store) {
this.store = this.createStore(Vuex, {}, createPersistedState)
// 鑷姩鍒濆鍖?HTTP
http.init(config, this.store)
}
// 濡傛灉鎻愪緵浜?VueRouter锛岃嚜鍔ㄥ垱寤?Router
if (VueRouter && !this.router) {
// 鑾峰彇涓昏矾鐢遍厤缃紙浠庡悗绔潈闄愯彍鍗曠敓鎴愶級
const mainRoute = this.getRoutes({ Main, ParentView, Page404 })
this.router = this.createRouter(VueRouter, {
Main,
ParentView,
LoginPage,
Page401,
Page404,
Page500
}, mainRoute ? [mainRoute] : [], ViewUI)
}
}
/**
* 鑷姩娉ㄥ唽鍏ㄥ眬缁勪欢
*/
registerGlobalComponents(Vue) {
// 娉ㄥ唽甯冨眬缁勪欢
Vue.component('Main', Main)
Vue.component('ParentView', ParentView)
// 娉ㄥ唽閿欒椤甸潰
Vue.component('Page401', Page401)
Vue.component('Page404', Page404)
Vue.component('Page500', Page500)
// 娉ㄥ唽鐧诲綍椤甸潰
Vue.component('LoginPage', LoginPage)
}
/**
* 璁剧疆缁勪欢鏄犲皠琛紙灏嗗悗绔繑鍥炵殑璺緞鏄犲皠鍒板疄闄呯粍浠讹級
* @param {Object} customMap - 澶栭儴浼犲叆鐨勮嚜瀹氫箟缁勪欢鏄犲皠
*/
setupComponentMap(customMap = {}) {
// 妗嗘灦鍐呯疆缁勪欢鍒楄〃锛氳矾寰?=> 缁勪欢
const components = {
'home/index': HomePage,
'system/sys_log': SysLog,
'system/sys_param_setup': SysParamSetup,
'system/sys_role': SysRole,
'system/sys_user': SysUser,
'system_high/sys_control': SysControl,
'system_high/sys_menu': SysMenu,
'system_high/sys_title': SysTitle,
// 鍚堝苟澶栭儴浼犲叆鐨勭粍浠舵槧灏? ...customMap
}
// 鑷姩鐢熸垚甯?.vue 鍜屼笉甯?.vue 鐨勬槧灏? const map = {}
Object.keys(components).forEach(path => {
const cleanPath = path.replace(/\.vue$/, '')
map[cleanPath] = components[path]
map[cleanPath + '.vue'] = components[path]
})
uiTool.setComponentMap(map)
}
/**
* 娣诲姞鑷畾涔夌粍浠舵槧灏? * @param {Object} customMap - 鑷畾涔夌粍浠舵槧灏勫璞? * @example
* AdminFramework.addComponentMap({
* 'ball/games.vue': GamesComponent,
* 'order/pay_orders.vue': PayOrdersComponent
* })
*/
addComponentMap(customMap) {
uiTool.setComponentMap(customMap)
}
/**
* 鍒濆鍖?HTTP 閰嶇疆
* @param {Object} config - HTTP 閰嶇疆
* @param {Object} store - Vuex Store 瀹炰緥
*/
initHttp(config, store) {
http.init(config, store)
this.store = store
}
/**
* 鍒涘缓璺敱瀹炰緥
* @param {Object} Router - VueRouter 绫? * @param {Object} components - 缁勪欢瀵硅薄
* @param {Array} customRoutes - 鑷畾涔夎矾鐢? * @param {Object} ViewUI - ViewUI 瀹炰緥
* @param {String} homeName - 棣栭〉鍚嶇О
* @returns {Object} router 瀹炰緥
*/
createRouter(Router, components = {}, customRoutes = [], ViewUI, homeName = 'home') {
const { LoginPage, Page401, Page404, Page500 } = components
if (!LoginPage || !Page401 || !Page404 || !Page500) {
console.error('Missing required page components')
return null
}
const baseRoutes = createBaseRoutes(LoginPage, Page401, Page404, Page500)
const router = new Router({
routes: [...baseRoutes, ...customRoutes],
mode: 'hash'
})
if (ViewUI) {
setupRouterGuards(router, ViewUI, homeName)
}
return router
}
/**
* 鍒涘缓 Store 瀹炰緥
* @param {Object} Vuex - Vuex 绫? * @param {Object} customModules - 鑷畾涔夋ā鍧? * @param {Object} createPersistedState - vuex-persistedstate 鎻掍欢
* @returns {Object} store 瀹炰緥
*/
createStore(Vuex, customModules = {}, createPersistedState) {
const store = new Vuex.Store({
modules: {
user: userModule,
app: appModule,
...customModules
},
plugins: createPersistedState ? [
createPersistedState({
storage: window.localStorage
})
] : []
})
this.store = store
return store
}
/**
* 鑾峰彇鍔ㄦ€佽矾鐢? * @param {Object} components - 缁勪欢瀵硅薄
* @returns {Object} 涓昏矾鐢遍厤缃? */
getRoutes(components = {}) {
const { Main, ParentView, Page404 } = components
if (!Main || !ParentView || !Page404) {
console.error('Missing required layout components')
return null
}
return uiTool.getRoutes(Main, ParentView, Page404)
}
/**
* 娉ㄥ唽鍏ㄥ眬缁勪欢
* @param {Object} Vue - Vue 瀹炰緥
* @param {Object} components - 缁勪欢瀵硅薄
*/
registerComponents(Vue, components = {}) {
Object.keys(components).forEach(name => {
Vue.component(name, components[name])
})
}
}
// ==================== 鍒涘缓瀹炰緥骞跺鍑?====================
const framework = new AdminFramework()
// 榛樿瀵煎嚭妗嗘灦瀹炰緥
export default framework
// 鎸夐渶瀵煎嚭
export {
// 宸ュ叿搴? tools,
uiTool,
http,
// Store 妯″潡
storeModules,
userModule,
appModule,
// 璺敱閰嶇疆
createBaseRoutes,
setupRouterGuards,
// 绯荤粺椤甸潰
HomePage,
SysLog,
SysParamSetup,
SysRole,
SysUser,
SysControl,
SysMenu,
SysTitle,
// 鐧诲綍鍜岄敊璇〉闈? LoginPage,
Page401,
Page404,
Page500,
// 甯冨眬缁勪欢
Main,
ParentView,
// 绯荤粺 API
systemApi,
systemHighApi,
// 妗嗘灦绫? AdminFramework
}