Commit 8841058d by ningjihai

1234

parent 5aad29d1
......@@ -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
})
}
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()
......
<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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论