Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
N
nse-ui
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Members
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
吴超
nse-ui
Commits
8841058d
Commit
8841058d
authored
Aug 25, 2025
by
ningjihai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1234
parent
5aad29d1
全部展开
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
184 行增加
和
60 行删除
+184
-60
src/api/project/index.js
+39
-0
src/permission.js
+53
-45
src/views/project/Project/ProjectEditDialog.vue
+0
-0
src/views/project/Project/list.vue
+92
-15
没有找到文件。
src/api/project/index.js
View file @
8841058d
...
...
@@ -67,4 +67,43 @@ export function queryShemas(data) {
})
}
export
function
getAllDataAreaAndRule
(
data
)
{
return
request
({
url
:
'/core/tdataarea/getAllDataAreaAndRule'
,
method
:
'post'
,
data
:
data
})
}
export
function
addDataProject
(
data
)
{
return
request
({
url
:
'/core/tdataproject/addDataProject'
,
method
:
'post'
,
data
:
data
})
}
export
function
deleteDataProject
(
data
)
{
return
request
({
url
:
'/core/tdataproject/deleteDataProject'
,
method
:
'post'
,
data
:
data
})
}
export
function
getDataProjectDetail
(
data
)
{
return
request
({
url
:
'/core/tdataproject/getDataProjectDetail'
,
method
:
'post'
,
data
:
data
})
}
export
function
updateDataProject
(
data
)
{
return
request
({
url
:
'/core/tdataproject/updateDataProject'
,
method
:
'post'
,
data
:
data
})
}
src/permission.js
View file @
8841058d
import
router
from
'./router'
import
{
ElMessage
}
from
'element-plus'
import
NProgress
from
'nprogress'
import
NProgress
,
{
settings
}
from
'nprogress'
import
'nprogress/nprogress.css'
import
{
getToken
}
from
'@/utils/auth'
import
{
isHttp
,
isPathMatch
}
from
'@/utils/validate'
...
...
@@ -17,55 +17,63 @@ const isWhiteList = (path) => {
return
whiteList
.
some
(
pattern
=>
isPathMatch
(
pattern
,
path
))
}
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
router
.
beforeEach
(
async
(
to
,
from
,
next
)
=>
{
NProgress
.
start
()
// if (getToken()) {
// to.meta.title && useSettingsStore().setTitle(to.meta.title)
// /* has token*/
// if (to.path === '/login') {
// next({ path: '/' })
// NProgress.done()
// } else if (isWhiteList(to.path)) {
// next()
// } else {
// if (useUserStore().roles.length === 0) {
// isRelogin.show = true
// // 判断当前用户是否已拉取完user_info信息
// useUserStore().getInfo().then(() => {
// isRelogin.show = false
// usePermissionStore().generateRoutes().then(accessRoutes => {
// // 根据roles权限生成可访问的路由表
// accessRoutes.forEach(route => {
// if (!isHttp(route.path)) {
// router.addRoute(route) // 动态添加可访问路由表
// }
// })
// next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
// })
// }).catch(err => {
// useUserStore().logOut().then(() => {
// ElMessage.error(err)
// next({ path: '/' })
// })
// })
// } else {
// next()
// }
// }
// } else {
// // 没有token
// if (isWhiteList(to.path)) {
// // 在免登录白名单,直接进入
// next()
// } else {
// next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
// NProgress.done()
// }
// }
// 获取permissionStore实例
const
permissionStore
=
usePermissionStore
()
if
(
sessionStorage
.
getItem
(
'__token'
)
||
isWhiteList
(
to
.
path
))
{
console
.
log
(
'next1'
)
try
{
// 检查是否已经有路由数据,避免重复设置
if
(
!
permissionStore
.
sidebarRouters
||
permissionStore
.
sidebarRouters
.
length
===
0
)
{
console
.
log
(
'next2'
)
// 从sessionStorage获取数据
const
allnavListStr
=
sessionStorage
.
getItem
(
'allnavList'
)
const
navStatusStr
=
sessionStorage
.
getItem
(
'navStatus'
)
if
(
allnavListStr
&&
navStatusStr
)
{
console
.
log
(
'next3'
)
try
{
const
allnavList
=
JSON
.
parse
(
allnavListStr
)
const
navStatus
=
JSON
.
parse
(
navStatusStr
)
console
.
log
(
'allnavList'
,
allnavList
)
console
.
log
(
'navStatus'
,
navStatus
)
// 根据navStatus.type过滤菜单
let
filterMenus
=
[]
if
(
navStatus
&&
navStatus
.
type
)
{
let
type
=
navStatus
.
type
===
'manage'
?
'1'
:
'2'
filterMenus
=
allnavList
.
filter
(
item
=>
item
.
type
===
type
)
console
.
log
(
'filterMenus'
,
filterMenus
)
}
else
{
// 默认处理,如果没有type则使用全部菜单
filterMenus
=
allnavList
}
// 存入permissionStore
if
(
filterMenus
&&
filterMenus
.
length
>
0
)
{
permissionStore
.
setSidebarRouters
(
filterMenus
)
}
}
catch
(
parseError
)
{
console
.
error
(
'解析sessionStorage数据失败:'
,
parseError
)
// 解析失败时清除无效数据
sessionStorage
.
removeItem
(
'allnavList'
)
sessionStorage
.
removeItem
(
'navStatus'
)
}
}
}
console
.
log
(
permissionStore
.
sidebarRouters
)
console
.
log
(
'next6'
,
router
.
getRoutes
())
next
()
}
catch
(
error
)
{
console
.
error
(
'路由守卫处理失败:'
,
error
)
next
()
}
}
else
{
next
(
`/login?redirect=
${
to
.
fullPath
}
`
)
NProgress
.
done
()
...
...
src/views/project/Project/ProjectEditDialog.vue
View file @
8841058d
差异被折叠。
点击展开。
src/views/project/Project/list.vue
View file @
8841058d
<
script
setup
name=
"ProjectManageList"
>
import
{
getCurrentInstance
,
reactive
,
ref
,
toRefs
,
onMounted
}
from
'vue'
import
{
ElMessage
}
from
'element-plus'
import
{
ElMessage
,
ElMessageBox
}
from
'element-plus'
import
QueryForm
from
'./QueryForm.vue'
import
ProjectEditDialog
from
'./ProjectEditDialog.vue'
import
DownloadPluginDialog
from
'./DownloadPluginDialog.vue'
...
...
@@ -10,7 +10,9 @@ import {changeRoute} from '@/utils/switchRoute'
import
{
selectDataProject
,
checkProjectNum
,
getdatascopeprojectlist
addDataProject
,
deleteDataProject
,
updateDataProject
}
from
'@/api/project'
import
useAppStore
from
'@/store/modules/app'
...
...
@@ -215,8 +217,39 @@ const handleEditProject = (project) => {
// 删除项目
const
handleDeleteProject
=
(
project
)
=>
{
const
handleDeleteProject
=
(
val
)
=>
{
ElMessageBox
.
confirm
(
`确定要删除项目「
${
val
.
project
}
」吗?此操作不可恢复。`
,
'删除确认'
,
{
confirmButtonText
:
'确认删除'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
center
:
true
,
callback
:
(
action
)
=>
{
if
(
action
===
'confirm'
)
{
// 执行删除操作
let
parms
=
{
loginUser
:
loginUser
,
project
:
val
}
deleteDataProject
(
parms
).
then
(
res
=>
{
if
(
res
.
flag
){
ElMessage
.
success
(
`项目「
${
val
.
project
}
」已删除`
);
}
else
{
ElMessage
.
info
(
res
.
msg
);
}
}).
catch
(
err
=>
{
ElMessage
.
info
(
res
.
msg
);
})
}
else
{
ElMessage
.
info
(
'已取消删除'
);
}
}
}
);
}
// 导入项目
...
...
@@ -245,22 +278,66 @@ const handleSubmit = (formData) => {
if
(
dialogMode
.
value
===
'add'
)
{
// 模拟新增
const
newProject
=
{
id
:
tableList
.
value
.
length
+
1
,
proName
:
formData
.
proName
,
datasource
:
'待配置'
,
domain
:
'待配置'
,
findRule
:
'待配置'
loginUser
:
loginUser
,
project
:{
edition_id
:
''
,
note
:
formData
.
remark
,
project
:
formData
.
name
,
projectType
:
"normal"
,
},
schemalist
:
formData
.
schemas
,
areaAndRuleList
:
formData
.
domains
,
dataSourceIdList
:
formData
.
databases
.
map
(
item
=>
(({
id
:
item
.
tid
,
sysname
:
item
.
sysname
,
systemstyle
:
1
,
dbtype
:
item
.
dbtype
})))
}
tableList
.
value
.
push
(
newProject
)
total
.
value
++
addDataProject
(
newProject
).
then
(
res
=>
{
console
.
log
(
res
)
if
(
res
.
flag
){
ElMessage
.
success
(
'新增项目成功'
)
handleQuery
()
}
})
// tableList.value.push(newProject)
// total.value++
// ElMessage.success('新增项目成功')
}
else
{
// 模拟编辑
const
index
=
tableList
.
value
.
findIndex
(
p
=>
p
.
id
===
currentProject
.
value
.
id
)
if
(
index
!==
-
1
)
{
tableList
.
value
[
index
].
proName
=
formData
.
proName
ElMessage
.
success
(
'编辑项目成功'
)
const
newProject
=
{
loginUser
:
loginUser
,
project
:{
edition_id
:
''
,
note
:
formData
.
remark
,
project
:
formData
.
name
,
id
:
formData
.
id
,
projectType
:
"normal"
,
},
schemalist
:
formData
.
schemas
,
areaAndRuleList
:
formData
.
domains
,
dataSourceIdList
:
formData
.
databases
.
map
(
item
=>
(({
id
:
item
.
tid
,
sysname
:
item
.
sysname
,
systemstyle
:
1
,
dbtype
:
item
.
dbtype
})))
}
console
.
log
(
'newProject'
,
newProject
)
updateDataProject
(
newProject
).
then
(
res
=>
{
console
.
log
(
res
)
if
(
res
.
flag
){
ElMessage
.
success
(
'新增项目成功'
)
handleQuery
()
}
})
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论