fix: 淇鍔ㄦ€佽矾鐢卞埛鏂板悗鏈敞鍐屽鑷磋彍鍗曡烦杞暣椤靛埛鏂? 浠g爜鐢熸垚鎺ュ彛璺緞涓庡悗绔榻? 琛ュ厖basic API妯″潡
This commit is contained in:
@@ -33,3 +33,12 @@ debug.log
|
||||
### Env ###
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
### 测试/调试临时文件 ###
|
||||
.playwright-cli/
|
||||
after-login.yaml
|
||||
after2.yaml
|
||||
cur.yaml
|
||||
post.yaml
|
||||
run-web.log
|
||||
run-web-err.log
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
import axios from '@/libs/api.request'
|
||||
import {getToken} from "@/libs/util"
|
||||
|
||||
/** 查询配置(按 configType) **/
|
||||
export const findConfig = (data) => {
|
||||
return axios.request({
|
||||
url: 'system/basic-config/findByConfigType',
|
||||
headers: {
|
||||
"Authorization": getToken()
|
||||
},
|
||||
data: data,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
/** 更新配置 **/
|
||||
export const update = (data) => {
|
||||
return axios.request({
|
||||
url: 'system/basic-config/update',
|
||||
headers: {
|
||||
"Authorization": getToken()
|
||||
},
|
||||
data: data,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
/** 查询阿里云 OSS 配置 **/
|
||||
export const findAliyunOssConfig = () => {
|
||||
return axios.request({
|
||||
url: 'system/basic-config/findAliyunOssConfig',
|
||||
headers: {
|
||||
"Authorization": getToken()
|
||||
},
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
import axios from '@/libs/api.request'
|
||||
import {getToken} from "@/libs/util"
|
||||
|
||||
/** 获取字典下拉列表 **/
|
||||
export const getDictSelectList = (data) => {
|
||||
return axios.request({
|
||||
url: 'system/basic-dict-item/getDictSelectList',
|
||||
headers: {
|
||||
"Authorization": getToken()
|
||||
},
|
||||
data: data,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
/** 按字典编码数组批量获取下拉列表 **/
|
||||
export const getDictSelectListByArr = (data) => {
|
||||
return axios.request({
|
||||
url: 'system/basic-dict-item/getDictSelectListByArr',
|
||||
headers: {
|
||||
"Authorization": getToken()
|
||||
},
|
||||
data: data,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import axios from '@/libs/api.request'
|
||||
import {getToken} from "@/libs/util"
|
||||
|
||||
/** 获取通知列表 **/
|
||||
export const getDataList = (data) => {
|
||||
return axios.request({
|
||||
url: 'system/basic-notice/findListWithPage',
|
||||
headers: {
|
||||
"Authorization": getToken()
|
||||
},
|
||||
data: data,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
@@ -4,7 +4,7 @@ import {getToken} from "@/libs/util"
|
||||
/** 获取列表 **/
|
||||
export const getDataList = (data) => {
|
||||
return axios.request({
|
||||
url: 'system/youth-generator/findListWithPage',
|
||||
url: 'generator/findListWithPage',
|
||||
headers: {
|
||||
"Authorization": getToken()
|
||||
},
|
||||
@@ -16,7 +16,7 @@ export const getDataList = (data) => {
|
||||
/** 获取table下拉列表 **/
|
||||
export const getTableSelectList = (data) => {
|
||||
return axios.request({
|
||||
url: 'system/youth-generator/getTableSelectList',
|
||||
url: 'generator/getTableSelectList',
|
||||
headers: {
|
||||
"Authorization": getToken()
|
||||
},
|
||||
@@ -27,7 +27,7 @@ export const getTableSelectList = (data) => {
|
||||
/** 提交代码生成规则 **/
|
||||
export const executeGenerator = (data) => {
|
||||
return axios.request({
|
||||
url: 'system/youth-generator/executeGenerator',
|
||||
url: 'generator/execute',
|
||||
headers: {
|
||||
"Authorization": getToken()
|
||||
},
|
||||
|
||||
@@ -24,10 +24,14 @@ export const loadMenuList = () => {
|
||||
}
|
||||
|
||||
export const formatMenuList = (list) => {
|
||||
console.log(list)
|
||||
// 遍历格式化菜单
|
||||
let resList = []
|
||||
forEach(list, item => {
|
||||
// 无 url 且无 component 的节点属于纯权限点(如按钮权限),不生成菜单路由
|
||||
if (!item.url && !item.component) {
|
||||
if (!hasChild(item)) return
|
||||
}
|
||||
|
||||
let object = {
|
||||
path: item.url,
|
||||
name: item.permissionCode,
|
||||
@@ -39,7 +43,8 @@ export const formatMenuList = (list) => {
|
||||
}
|
||||
}
|
||||
|
||||
if (item.level === 0 || item.component === 'Main') {
|
||||
// 一级菜单(数据库 level=1)或显式指定 Main 的,使用 Main 布局组件
|
||||
if (item.level === 0 || item.level === 1 || item.component === 'Main') {
|
||||
// 一级菜单
|
||||
object.component = Main
|
||||
} else {
|
||||
|
||||
+9
-2
@@ -5,7 +5,7 @@ import store from '@/store'
|
||||
import iView from 'view-design'
|
||||
import config from '@/config'
|
||||
import { setToken, getToken, canTurnTo, setTitle, localSave, localRead } from '@/libs/util'
|
||||
import { loadMenuList, formatMenuList } from '@/libs/router-util'
|
||||
import { formatMenuList } from '@/libs/router-util'
|
||||
import { getPermissionList } from '@/api/sys/sys-permission'
|
||||
|
||||
const {homeName} = config
|
||||
@@ -41,6 +41,11 @@ router.beforeEach((to, from, next) => {
|
||||
name: homeName // 跳转到homeName页
|
||||
})
|
||||
} else {
|
||||
// 已加载过菜单,避免重复 addRoutes 导致路由守卫死循环
|
||||
if (store.state.app.menuList && store.state.app.menuList.length > 0) {
|
||||
next()
|
||||
return
|
||||
}
|
||||
store.dispatch('getUserInfo').then(user => {
|
||||
// 如果本地不存在路由数据则动态获取
|
||||
if (menuListStr == null || menuListStr == '') {
|
||||
@@ -53,10 +58,12 @@ router.beforeEach((to, from, next) => {
|
||||
// 刷新界面菜单
|
||||
store.commit('updateMenuList', list)
|
||||
|
||||
next()
|
||||
}).catch(() => {
|
||||
// 获取权限失败,直接放行(保留基础路由),避免卡死
|
||||
next()
|
||||
})
|
||||
} else {
|
||||
console.log("2")
|
||||
let list = formatMenuList(JSON.parse(menuListStr))
|
||||
store.commit('updateMenuList', list)
|
||||
next()
|
||||
|
||||
@@ -17,7 +17,7 @@ import router from '@/router'
|
||||
import routers from '@/router/routers'
|
||||
import config from '@/config'
|
||||
// ①引入路由数据读取方法
|
||||
import { loadMenuList, createRouter } from '@/libs/router-util'
|
||||
import { createRouter } from '@/libs/router-util'
|
||||
|
||||
const { homeName } = config
|
||||
|
||||
@@ -37,7 +37,10 @@ export default {
|
||||
local: localRead('local'),
|
||||
errorList: [],
|
||||
hasReadErrorPage: false,
|
||||
menuList: loadMenuList(),
|
||||
// 初始为空,让路由守卫每次登录/刷新后都重新注册动态路由,避免刷新后
|
||||
// 因 localStore 缓存误判「已加载菜单」而跳过 addRoutes,导致点击菜单时
|
||||
// 路由名不存在 → vue-router 匹配失败 → 整页刷新(表现为页面闪一下)
|
||||
menuList: [],
|
||||
},
|
||||
getters: {
|
||||
//menuList: (state, getters, rootState) => getMenuByRouter(routers, rootState.user.access),
|
||||
|
||||
@@ -240,7 +240,7 @@
|
||||
let data = objectUtil.trimJoin(temp, this.search)
|
||||
this.tableLoading = true
|
||||
getDataList(data).then(res => {
|
||||
let pageInfo = res.data.data.pageInfo
|
||||
let pageInfo = res.data.data.pageInfo || res.data.data
|
||||
this.pageTotal = pageInfo.total
|
||||
this.dataList = pageInfo.list
|
||||
// 延迟300毫秒,给它更流畅的感觉
|
||||
@@ -412,7 +412,8 @@
|
||||
},
|
||||
getTableSelectList() {
|
||||
getTableSelectList().then(res => {
|
||||
this.yTableList = res.data.data.list
|
||||
const data = res.data.data
|
||||
this.yTableList = Array.isArray(data) ? data : ((data && data.list) || [])
|
||||
if (this.yTableList.length > 0) {
|
||||
this.search.yTableName = this.yTableList[0].value
|
||||
this.getDataList()
|
||||
|
||||
Reference in New Issue
Block a user