Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
csbr-daop
/
fe-data-trusted-space
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
f3704a8e
authored
2025-01-02 15:01:17 +0800
by
xukangle
Browse Files
Options
Browse Files
Tag
Download
Plain Diff
Merge branch 'develop' into dev_20241202_xukangle
2 parents
465c4e8e
470e3796
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
198 additions
and
141 deletions
.env.development
.env.product
src/api/modules/dataMetaService.ts
src/assets/icons/icon-tip.svg
src/router/modules/dataInventory.ts
src/router/modules/dataMeta.ts
src/views/data_inventory/taskConfig.vue
src/views/data_inventory/taskDetail.vue
src/views/data_inventory/taskLog.vue
src/views/data_meta/collectorTask.vue
src/views/data_meta/metaSheet.vue
src/views/importFile.vue
.env.development
View file @
f3704a8
...
...
@@ -25,7 +25,7 @@ VITE_SERVE_BASE = /
# 流程设计访问地址
VITE_BPMN_URL = https://workflow-swzl-test.csbr.cn
# 数据标准、元数据、数据目录 接口地址
VITE_APP_PLAN_BASEURL = ms-daop-
jgjf
-data-plan-service
VITE_APP_PLAN_BASEURL = ms-daop-
zcgl
-data-plan-service
#数据质量接口地址
VITE_APP_QUALITY_BASEURL = ms-daop-data-quality-service
...
...
@@ -33,6 +33,9 @@ VITE_APP_QUALITY_BASEURL = ms-daop-data-quality-service
# VITE_APP_CHECK_BASEURL = /mock
VITE_APP_CHECK_BASEURL = ms-daop-zcgl-data-inventory
#数据源接口地址
VITE_APP_DATA_SOURCE_URL = ms-daop-data-source-service
# 数据字典接口地址
VITE_APP_CONFIG_URL = 'ms-daop-configure-service'
...
...
.env.product
View file @
f3704a8
...
...
@@ -51,7 +51,7 @@ VITE_SERVE_BASE = /
# 流程设计访问地址
VITE_BPMN_URL = https://workflow-swzl-test.csbr.cn
# 数据标准、元数据、数据目录 接口地址
VITE_APP_PLAN_BASEURL = ms-daop-
jgjf
-data-plan-service
VITE_APP_PLAN_BASEURL = ms-daop-
zcgl
-data-plan-service
#数据质量接口地址
VITE_APP_QUALITY_BASEURL = ms-daop-data-quality-service
...
...
@@ -62,6 +62,9 @@ VITE_APP_CHECK_BASEURL = ms-daop-zcgl-data-inventory
# 数据字典接口地址
VITE_APP_CONFIG_URL = 'ms-daop-configure-service'
#数据源接口地址
VITE_APP_DATA_SOURCE_URL = ms-daop-data-source-service
# 文件上传下载接口地址
VITE_APP_COMMON_URL = 'ms-daop-common-service'
...
...
src/api/modules/dataMetaService.ts
View file @
f3704a8
...
...
@@ -5,43 +5,43 @@ import request from "@/utils/request";
**/
// 新增
export
const
addMetaDataTask
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-collect-task/add`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-collect-task/add`
,
method
:
'post'
,
data
:
params
})
// 删除
export
const
deleteMetaDataTask
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-collect-task/del`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-collect-task/del`
,
method
:
'delete'
,
data
:
params
})
// 分页查询
export
const
getMetaDataTask
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-collect-task/page-list`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-collect-task/page-list`
,
method
:
'post'
,
data
:
params
})
// 修改
export
const
updateMetaDataTask
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-collect-task/update`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-collect-task/update`
,
method
:
'put'
,
data
:
params
})
// 详情
export
const
getMetaDataTaskDetail
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-collect-task/detail/
${
params
}
`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-collect-task/detail/
${
params
}
`
,
method
:
'get'
})
// 上线下线
export
const
updateMetaDataState
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-collect-task/change-state`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-collect-task/change-state`
,
method
:
'get'
,
params
})
// 名称唯一性验证
export
const
checkMetaDataTask
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-collect-task/check-exist`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-collect-task/check-exist`
,
method
:
'post'
,
data
:
{
collectTaskName
:
params
,
...
...
@@ -49,18 +49,18 @@ export const checkMetaDataTask = (params) => request({
})
// 执行元数据采集任务
export
const
executeMetaDataTask
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-collect-task/execute/
${
params
}
`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-collect-task/execute/
${
params
}
`
,
method
:
'get'
})
// 执行日志
export
const
getMetaDataTaskLog
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-collect-exec/page-list`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-collect-exec/page-list`
,
method
:
'post'
,
data
:
params
})
//
export
const
saveMetaReportAnalysis
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/lineage-analysis-report/add`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/lineage-analysis-report/add`
,
method
:
'post'
,
data
:
params
})
...
...
@@ -69,116 +69,116 @@ export const saveMetaReportAnalysis = (params) => request({
**/
// 树形数据
export
const
getMetaTreeData
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-table/meta-tree-list`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-table/meta-tree-list`
,
method
:
'post'
,
data
:
params
})
// 数据库汇总信息
export
const
getMetaDatabaseCollect
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-table/meta-database-collect-list`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-table/meta-database-collect-list`
,
method
:
'post'
,
data
:
params
})
// 库分页查询
export
const
getMetaDataBase
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-table/meta-table-collect-list`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-table/meta-table-collect-list`
,
method
:
'post'
,
data
:
params
})
// 表分页查询
export
const
getMetaDataSheet
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-table/meta-table-detail-list`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-table/meta-table-detail-list`
,
method
:
'post'
,
data
:
params
})
// 表字段查询
export
const
getMetaSheetField
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-table/meta-table-field-list`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-table/meta-table-field-list`
,
method
:
'post'
,
params
})
// 表索引查询
export
const
getMetaSheetKeys
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-table/meta-table-index-list`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-table/meta-table-index-list`
,
method
:
'post'
,
params
})
// 变更查询
export
const
getMetaChange
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-table/meta-collect-change-list`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-table/meta-collect-change-list`
,
method
:
'post'
,
data
:
params
})
// 变更明细
export
const
getMetaChangeRecord
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-table/meta-change-record-list`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-table/meta-change-record-list`
,
method
:
'post'
,
data
:
params
})
//
export
const
getMetacompareList
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-table/meta-change-compare-list/
${
params
}
`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-table/meta-change-compare-list/
${
params
}
`
,
method
:
'get'
,
//data: params
})
// 表信息详情
export
const
getMetaDetail
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-table/detail/
${
params
}
`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-table/detail/
${
params
}
`
,
method
:
'get'
,
})
/** 根据表获取血缘数据 */
export
const
getTableLineage
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/lineage/lineage-query?guid=
${
params
.
guid
}
&lineageType=tb`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/lineage/lineage-query?guid=
${
params
.
guid
}
&lineageType=tb`
,
method
:
'get'
,
})
/** 根据字段获取血缘数据 */
export
const
getTableFieldLineage
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/lineage/lineage-query?guid=
${
params
.
guid
}
&lineageType=co`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/lineage/lineage-query?guid=
${
params
.
guid
}
&lineageType=co`
,
method
:
'get'
,
})
/** 获取表的所有字段血缘数据 */
export
const
getTableAllFieldLineage
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/lineage/lineage-query-field?databaseName=
${
params
.
databaseName
}
&tableName=
${
params
.
tableName
}
`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/lineage/lineage-query-field?databaseName=
${
params
.
databaseName
}
&tableName=
${
params
.
tableName
}
`
,
method
:
'get'
,
})
// 查询列表
export
const
getMetaList
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-table/list-meta-all`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-table/list-meta-all`
,
method
:
'post'
,
data
:
params
})
// 元数据表字段查询
export
const
getMetaTableField
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-table/meta-table-field-list`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-table/meta-table-field-list`
,
method
:
'post'
,
params
,
})
// 保存血缘字段节点
export
const
saveLineageField
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/lineage/save-field`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/lineage/save-field`
,
method
:
'post'
,
data
:
params
})
// 保存血源节点
export
const
saveLineageTable
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/lineage/save-table`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/lineage/save-table`
,
method
:
'post'
,
data
:
params
})
// 删除血源节点
export
const
delLineageTable
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/lineage/del-vertex?vertexId=
${
params
.
vertexId
}
`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/lineage/del-vertex?vertexId=
${
params
.
vertexId
}
`
,
method
:
'delete'
,
//data:params
})
/** 获取同步任务变更记录 */
export
const
getTaskChangeList
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/task-change-record/page-list`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/task-change-record/page-list`
,
method
:
'post'
,
data
:
params
})
...
...
@@ -192,7 +192,7 @@ export const getMetaChangeList = (params) => request({
/** 获取数据库选择列表 */
export
const
getDatabase
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
API_BASE
URL
}
/data-source/get-source-list`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
DATA_SOURCE_
URL
}
/data-source/get-source-list`
,
method
:
'post'
,
data
:
params
})
...
...
@@ -200,41 +200,41 @@ export const getDatabase = (params) => request({
/** 源数据分析报告 */
/**查询列表 */
export
const
getAnalysisReportList
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/lineage-analysis-report/list`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/lineage-analysis-report/list`
,
method
:
'post'
,
data
:
params
})
/** 根据guid删除 */
export
const
delAnalysisRepor
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/lineage-analysis-report/del`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/lineage-analysis-report/del`
,
method
:
'delete'
,
data
:
params
})
/** 根据guid更新 */
export
const
updateAnalysisRepor
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/lineage-analysis-report/update`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/lineage-analysis-report/update`
,
method
:
'put'
,
data
:
params
})
/** 删除边 */
export
const
delLineAge
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/lineage/del-edge?euid=
${
params
}
`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/lineage/del-edge?euid=
${
params
}
`
,
method
:
'delete'
,
})
/** 判断是否有元数据数据 */
export
const
checkTableData
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-table/check-table-data/
${
params
}
`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-table/check-table-data/
${
params
}
`
,
method
:
'get'
,
})
/**校验任务是否有数据库信息 */
export
const
checkDatabaseIsExist
=
(
dataSourceGuid
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-collect-task/check-database-is-exist/
${
dataSourceGuid
}
`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-collect-task/check-database-is-exist/
${
dataSourceGuid
}
`
,
method
:
'get'
,
})
/**同步任务 变更详情展示 */
export
const
syncChangeDetail
=
(
guid
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/task-change-record/sync-change-detail/
${
guid
}
`
,
url
:
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/task-change-record/sync-change-detail/
${
guid
}
`
,
method
:
'get'
,
})
...
...
src/assets/icons/icon-tip.svg
0 → 100644
View file @
f3704a8
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
class=
"icon"
width=
"32px"
height=
"32.00px"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
><path
d=
"M512 40.533333C251.613867 40.533333 40.533333 251.613867 40.533333 512S251.613867 983.466667 512 983.466667 983.466667 772.386133 983.466667 512 772.386133 40.533333 512 40.533333z m26.581333 724.2496c-8.7296 8.004267-18.926933 12.381867-31.300266 12.381867-12.381867 0-22.5792-4.386133-31.325867-12.381867-8.772267-8.746667-12.381867-18.935467-12.381867-31.3344 0-12.381867 3.6096-22.5792 12.381867-30.583466 8.738133-8.746667 18.944-12.381867 31.325867-12.381867 12.373333 0 23.287467 3.6352 32.0256 12.381867 8.021333 8.004267 12.373333 18.2016 12.373333 30.583466 0 13.115733-4.343467 23.3216-13.098667 31.3344z m104.891734-291.387733c-7.287467 8.7296-26.9312 27.665067-58.9824 56.072533-16.034133 13.8496-26.965333 26.965333-34.2528 40.081067-9.454933 16.017067-13.841067 33.518933-13.841067 53.162667v16.768H478.122667v-16.768c0-24.029867 4.386133-45.149867 13.124266-63.368534 10.180267-21.853867 34.218667-49.544533 73.565867-84.5056 11.639467-11.648 20.386133-20.4032 24.763733-26.2144 14.574933-18.218667 21.870933-37.154133 21.870934-57.5488 0-29.149867-8.763733-51.720533-24.763734-67.746133-16.776533-17.4848-40.797867-25.4976-71.3984-25.4976-36.420267 0-63.3856 11.665067-80.8704 35.703467-16.0256 20.394667-24.021333 48.085333-24.021333 83.7632h-57.5744c0-50.986667 13.866667-91.784533 42.999467-122.376534 29.149867-32.059733 69.9136-48.0768 122.3936-48.0768 46.609067 0 83.754667 12.381867 112.1792 38.596267 26.9312 24.763733 40.797867 59.008 40.797866 102.715733-0.008533 32.785067-9.480533 61.184-27.716266 85.239467z"
fill=
"#8a8a8a"
/></svg>
\ No newline at end of file
src/router/modules/dataInventory.ts
View file @
f3704a8
...
...
@@ -58,10 +58,13 @@ const routes: RouteRecordRaw[] = [
activeMenu
:
'/data-inventory/classify-grade-manage/task-config'
},
beforeEnter
:
(
to
,
from
)
=>
{
if
(
to
.
query
.
type
==
'confirm'
)
{
to
.
meta
.
title
=
`
${
to
.
query
.
name
}
-结果确认`
;
const
taksExecGuid
=
sessionStorage
.
getItem
(
'taksExecGuid'
)
||
''
;
if
(
taksExecGuid
){
to
.
meta
.
title
=
`
${
to
.
query
.
name
}
-
${
to
.
query
.
status
==
'Y'
?
'查看结果'
:
'结果确认'
}
`
;
to
.
meta
.
editPage
=
to
.
query
.
status
==
'Y'
?
false
:
true
;
}
else
{
to
.
meta
.
title
=
`
${
to
.
query
.
name
}
-结果修改`
;
to
.
meta
.
title
=
`
${
to
.
query
.
name
}
-
${
to
.
query
.
type
==
'confirm'
?
'结果确认'
:
'结果修改'
}
`
;
to
.
meta
.
editPage
=
true
;
}
}
},
...
...
src/router/modules/dataMeta.ts
View file @
f3704a8
...
...
@@ -93,46 +93,46 @@ const routes: RouteRecordRaw[] = [
},
],
},
//
{
//
path: '/data-meta/metadata-lineage',
//
component: Layout,
//
meta: {
//
title: '元数据血缘',
//
icon: 'ep:grid',
//
},
//
children: [
//
{
//
path: 'analysis-view',
//
name: 'analysisView',
//
component: () => import('@/views/data_meta/analysisView.vue'),
//
meta: {
//
title: '查看血缘',
//
breadcrumb: false,
//
cache: true
//
},
//
},
//
{
//
path: 'change-detection',
//
name: 'changeDetection',
//
component: () => import('@/views/data_meta/changeDetection.vue'),
//
meta: {
//
title: '血缘变更检测',
//
breadcrumb: false,
//
cache: true
//
},
//
},
//
{
//
path: 'analysis-reports',
//
name: 'analysisReports',
//
component: () => import('@/views/data_meta/analysisReports.vue'),
//
meta: {
//
title: '血缘关系解析',
//
breadcrumb: false,
//
cache: true
//
},
//
},
//
],
//
},
{
path
:
'/data-meta/metadata-lineage'
,
component
:
Layout
,
meta
:
{
title
:
'元数据血缘'
,
icon
:
'ep:grid'
,
},
children
:
[
{
path
:
'analysis-view'
,
name
:
'analysisView'
,
component
:
()
=>
import
(
'@/views/data_meta/analysisView.vue'
),
meta
:
{
title
:
'查看血缘'
,
breadcrumb
:
false
,
cache
:
true
},
},
{
path
:
'change-detection'
,
name
:
'changeDetection'
,
component
:
()
=>
import
(
'@/views/data_meta/changeDetection.vue'
),
meta
:
{
title
:
'血缘变更检测'
,
breadcrumb
:
false
,
cache
:
true
},
},
{
path
:
'analysis-reports'
,
name
:
'analysisReports'
,
component
:
()
=>
import
(
'@/views/data_meta/analysisReports.vue'
),
meta
:
{
title
:
'血缘关系解析'
,
breadcrumb
:
false
,
cache
:
true
},
},
],
},
]
export
default
routes
...
...
src/views/data_inventory/taskConfig.vue
View file @
f3704a8
...
...
@@ -99,7 +99,7 @@ const getTableData = () => {
if
(
res
.
code
==
proxy
.
$passCode
)
{
let
data
=
res
.
data
.
records
||
[];
data
.
map
(
item
=>
{
item
.
cellClass
=
item
.
confirmCnt
>
0
?
''
:
'is-regular'
item
.
cellClass
=
item
.
confirmCnt
>
0
?
''
:
'is-regular'
})
tableInfo
.
value
.
data
=
data
;
}
else
{
...
...
@@ -160,12 +160,13 @@ const toPath = (type) => {
},
});
}
else
if
(
type
==
'confirm'
||
type
==
'modify'
)
{
sessionStorage
.
setItem
(
'taksExecGuid'
,
''
);
router
.
push
({
name
:
"taskDetail"
,
query
:
{
guid
:
currTableData
.
value
.
guid
,
name
:
currTableData
.
value
.
taskName
,
execGuid
:
currTableData
.
value
.
execGuid
,
status
:
currTableData
.
value
.
confirmStatus
,
type
},
});
...
...
@@ -223,7 +224,13 @@ onBeforeMount(() => {
<
template
>
<div
class=
"container_wrap"
v-loading=
"loading"
>
<div
class=
"table_tool_wrap"
v-if=
"tableInfo.data.length"
>
<div
class=
"table_title"
>
分类分级任务
</div>
<div
class=
"table_title"
>
<span>
分类分级任务
</span>
<div
class=
"title_tool"
>
<el-button
@
click=
"getTableData"
v-preReClick
>
刷新结果
</el-button>
<span
class=
"tips_text"
>
刷新查看任务最新执行结果
</span>
</div>
</div>
</div>
<div
class=
"table_panel_wrap"
v-if=
"tableInfo.data.length"
>
<Table
:tableInfo=
"tableInfo"
@
tableBtnClick=
"tableBtnClick"
/>
...
...
@@ -247,6 +254,19 @@ onBeforeMount(() => {
font-weight
:
600
;
font-size
:
16px
;
color
:
#212121
;
display
:
flex
;
.title_tool
{
display
:
flex
;
margin-left
:
16px
;
align-items
:
center
;
.tips_text
{
margin-left
:
16px
;
font-size
:
14px
;
color
:
#b2b2b2
;
}
}
}
}
...
...
src/views/data_inventory/taskDetail.vue
View file @
f3704a8
...
...
@@ -31,9 +31,10 @@ const route = useRoute();
const
userStore
=
useUserStore
();
const
fullPath
=
route
.
fullPath
;
const
assetStore
=
useDataAssetStore
();
const
showBtns
=
route
.
meta
.
editPage
;
const
execGuid
=
sessionStorage
.
getItem
(
'taksExecGuid'
);
const
loading
=
ref
(
false
);
const
showBtns
=
ref
(
true
);
const
gradeList
=
ref
([]);
const
treeData
=
ref
([
{
...
...
@@ -157,6 +158,22 @@ const fieldItemList = ref([
disabled
:
true
},
{
type
:
"select"
,
label
:
""
,
placeholder
:
'分类情况'
,
field
:
'isClassify'
,
default
:
''
,
options
:
[
{
label
:
'已分类'
,
value
:
'Y'
},
{
label
:
'未分类'
,
value
:
'N'
},
],
props
:
{
// label: 'name',
// value: 'dbGuid'
},
clearable
:
true
,
},
{
type
:
"cascader"
,
label
:
""
,
placeholder
:
'分类'
,
...
...
@@ -380,7 +397,7 @@ const getTaskDetail = (param) => {
loading
.
value
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
taskDetail
.
value
=
res
.
data
||
{};
taskDetail
.
value
.
confirmStatus
!=
'Y'
&&
(
showBtns
.
value
=
true
);
//
taskDetail.value.confirmStatus != 'Y' && (showBtns.value = true);
getFieldCount
()
getSheetFieldList
({
type
:
1
});
getFieldTree
()
...
...
@@ -437,17 +454,13 @@ const getFieldTree = () => {
getTaskExeTreeList
({
execGuid
:
taskDetail
.
value
.
execGuid
}).
then
((
res
:
any
)
=>
{
// treeInfo.value.loading = false;
if
(
res
.
code
==
proxy
.
$passCode
)
{
const
data
=
res
.
data
||
[];
const
children
:
any
=
[
{
classifyName
:
'未分类'
,
classifyDetailGuid
:
'unclassified'
},
...
data
]
treeData
.
value
[
0
].
children
=
children
;
const
data
:
any
=
res
.
data
||
[];
treeData
.
value
[
0
].
children
.
push
(...
data
);
treeInfo
.
value
.
data
=
treeData
.
value
;
treeInfo
.
value
.
expandedKey
=
[
'all'
];
treeInfoRef
.
value
.
setCurrentKey
(
'all'
);
formItems
.
value
[
0
].
options
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
fieldItemList
.
value
[
4
].
options
=
JSON
.
parse
(
JSON
.
stringify
(
children
));
fieldItemList
.
value
[
5
].
options
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
fieldTableInfo
.
value
.
fields
[
4
].
options
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
}
else
{
ElMessage
.
error
(
res
.
msg
);
...
...
@@ -496,13 +509,14 @@ const tabChange = (val) => {
const
nodeClick
=
(
data
,
node
)
=>
{
currTreeNode
.
value
=
data
;
if
(
data
.
classifyDetailGuid
==
'all'
)
{
fieldItemList
.
value
[
4
].
default
=
[];
fieldItemList
.
value
[
4
].
default
=
''
;
fieldItemList
.
value
[
5
].
default
=
[];
getFieldTableData
()
}
else
{
const
parentGuids
=
data
.
parentGuids
||
[];
parentGuids
.
push
(
data
.
classifyDetailGuid
)
fieldItemList
.
value
[
4
].
default
=
parentGuids
;
console
.
log
(
'tree'
,
parentGuids
)
fieldItemList
.
value
[
4
].
default
=
'Y'
;
fieldItemList
.
value
[
5
].
default
=
parentGuids
;
getFieldTableData
();
}
}
...
...
@@ -545,7 +559,7 @@ const getFieldTableData = () => {
isMergeClassify
:
checked1
.
value
?
'Y'
:
'N'
}
const
classifyName
=
params
.
classifyName
?.
at
(
-
1
)
||
undefined
;
params
.
isClassify
=
classifyName
===
undefined
?
''
:
classifyName
==
'unclassified'
?
'N'
:
'Y'
;
//
params.isClassify = classifyName === undefined ? '' : classifyName == 'unclassified' ? 'N' : 'Y';
if
(
classifyName
&&
classifyName
!=
'unclassified'
)
{
params
.
classifyDetail
=
classifyName
;
}
...
...
@@ -613,6 +627,7 @@ const tableBtnClick = (scope, btn) => {
const
params
=
[
{
guid
:
row
.
guid
,
fieldGuid
:
row
.
fieldGuid
,
classifyDetailGuid
:
row
.
classifyDetailGuid
,
classifyDetailName
:
row
.
classifyDetailName
,
gradeDetailGuid
:
row
.
gradeDetailGuid
,
...
...
@@ -767,7 +782,7 @@ const selectChange = (val, item, scope = null) => {
let
row
=
scope
.
row
;
row
.
gradeGuid
=
val
||
''
;
row
.
gradeDetailName
=
val
?
item
.
options
.
find
(
i
=>
i
.
guid
==
val
)?.
gradeName
:
''
;
}
else
{
}
else
if
(
item
.
field
==
'databaseGuid'
||
item
.
field
==
'tableGuid'
)
{
const
params
:
any
=
scope
;
if
(
tabsInfo
.
value
.
activeName
==
'sheet'
)
{
if
(
!
val
)
{
...
...
@@ -808,7 +823,7 @@ const selectChange = (val, item, scope = null) => {
params
.
fieldGuid
=
''
;
}
if
(
val
&&
item
.
field
!=
"fieldGuid"
)
{
if
(
val
)
{
const
params
=
{
type
:
item
.
field
==
"databaseGuid"
?
2
:
3
,
dbGuid
:
val
||
''
...
...
@@ -816,6 +831,13 @@ const selectChange = (val, item, scope = null) => {
getSheetFieldList
(
params
)
}
}
}
else
if
(
item
.
field
==
'isClassify'
)
{
fieldItemList
.
value
[
5
].
default
=
[];
fieldItemList
.
value
[
6
].
default
=
''
;
treeInfo
.
value
.
expandedKey
=
[
'all'
];
treeInfoRef
.
value
.
setCurrentKey
(
'all'
);
fieldItemList
.
value
[
4
].
default
=
val
||
''
;
getFieldTableData
();
}
}
...
...
@@ -827,6 +849,7 @@ const dialogBtnClick = (btn, info) => {
selectRowData
.
value
.
map
((
item
:
any
)
=>
{
const
param
=
{
guid
:
item
.
guid
,
fieldGuid
:
item
.
fieldGuid
,
classifyDetailGuid
:
cascaderData
[
0
].
value
,
classifyDetailName
:
cascaderData
[
0
].
label
,
gradeDetailGuid
:
info
.
gradeGuid
,
...
...
@@ -846,9 +869,8 @@ onActivated(() => {
})
onBeforeMount
(()
=>
{
if
(
route
.
query
.
type
==
'log'
)
{
showBtns
.
value
=
false
;
getTaskDetail
({
guid
:
route
.
query
.
guid
,
execGuid
:
route
.
query
.
execGuid
});
if
(
execGuid
)
{
getTaskDetail
({
guid
:
route
.
query
.
guid
,
execGuid
:
execGuid
});
}
else
{
getTaskDetail
({
guid
:
route
.
query
.
guid
});
}
...
...
@@ -946,14 +968,19 @@ onMounted(() => {
<TableTools
ref=
"fieldSearchRef"
:searchItems=
"fieldItemList"
:searchId=
"'field-search'"
:init=
"false"
@
selectChange=
"selectChange"
@
cascaderChange=
"cascaderChange"
@
search=
"searchField"
/>
<div
class=
"tools_btns"
>
<div
class=
"btns"
>
<div
class=
"btns"
v-if=
"showBtns"
>
<el-button
type=
"primary"
plain
@
click=
"btnClick(
{ value: 'batch' })">批量变更分类分级
</el-button>
<el-button
type=
"primary"
plain
@
click=
"btnClick(
{ value: 'status' })">批量确认
</el-button>
<el-button
plain
@
click=
"btnClick(
{ value: 'export' })">导出
</el-button>
</div>
<div
class=
"checkboxs"
>
<el-checkbox
v-model=
"checked1"
@
change=
"getFieldTableData()"
>
仅看多分级分类
</el-checkbox>
<!--
<el-button
plain
@
click=
"btnClick(
{ value: 'export' })">导出
</el-button>
-->
</div>
<!--
<div
class=
"checkboxs"
>
<el-checkbox
v-model=
"checked1"
@
change=
"getFieldTableData()"
>
仅看多分类
</el-checkbox>
<el-tooltip
effect=
"light"
placement=
"top"
content=
"一个字段只能有一个分类,多分类的字段需要人工确定分类"
>
<el-icon
style=
"margin-left: 8px;"
>
<svg-icon
name=
"icon-tip"
/>
</el-icon>
</el-tooltip>
</div>
-->
</div>
</div>
<div
class=
"table_panel_wrap panel"
:style=
"
{ height: 'calc(100% - ' + toolH + 'px)' }">
...
...
@@ -998,7 +1025,7 @@ onMounted(() => {
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
:width=
"fieldTableInfo.actionInfo.width"
fixed=
"right"
>
<el-table-column
label=
"操作"
:width=
"fieldTableInfo.actionInfo.width"
fixed=
"right"
v-if=
"showBtns"
>
<
template
#
default=
"scope"
>
<span
class=
"text_btn"
@
click=
"tableBtnClick(scope,
{ value: scope.row['STATE'] === 'Running' ? 'save' : 'edit' })"
...
...
src/views/data_inventory/taskLog.vue
View file @
f3704a8
...
...
@@ -46,7 +46,7 @@ const tableInfo = ref({
label
:
"结果状态"
,
field
:
"status"
,
width
:
TableColumnWidth
.
STATE
,
align
:
'center'
,
type
:
"tag"
,
getName
:
(
scope
)
=>
{
return
filterVal
(
scope
.
row
.
status
,
'confirmStatus'
);
},
tagType
:
(
scope
)
=>
{
return
scope
.
row
.
confirmS
tatus
==
'Y'
?
'success'
:
'warning'
;
return
scope
.
row
.
s
tatus
==
'Y'
?
'success'
:
'warning'
;
}
},
],
...
...
@@ -100,13 +100,14 @@ const tableBtnClick = (scope, btn) => {
};
const
toPath
=
(
type
)
=>
{
sessionStorage
.
setItem
(
'taksExecGuid'
,
currTableData
.
value
.
guid
);
router
.
push
({
name
:
"taskDetail"
,
query
:
{
guid
:
currTableData
.
value
.
taskGuid
,
name
:
currTableData
.
value
.
taskName
,
execGuid
:
currTableData
.
value
.
guid
,
type
status
:
currTableData
.
value
.
status
,
type
:
currTableData
.
value
.
status
==
'Y'
?
'modify'
:
'confirm'
},
});
}
...
...
src/views/data_meta/collectorTask.vue
View file @
f3704a8
...
...
@@ -104,7 +104,7 @@ const tableInfo = ref({
actionInfo
:
{
label
:
"操作"
,
type
:
"btn"
,
width
:
2
1
0
,
width
:
2
3
0
,
fixed
:
'right'
,
btns
:
(
scope
)
=>
{
const
row
=
scope
.
row
...
...
@@ -114,7 +114,7 @@ const tableInfo = ref({
}
else
{
btnsArr
.
splice
(
0
,
0
,
{
label
:
"立即执行"
,
value
:
"carry"
,
disabled
:
row
.
taskState
===
0
||
row
.
execState
==
1
})
}
//
btnsArr.push({ label: "编辑", value: "edit", disabled: row.taskState === 1 || row.isCarry || row.execState == 1 });
btnsArr
.
push
({
label
:
"编辑"
,
value
:
"edit"
,
disabled
:
row
.
taskState
===
1
||
row
.
isCarry
||
row
.
execState
==
1
});
btnsArr
.
push
({
label
:
"删除"
,
value
:
"delete"
,
disabled
:
row
.
isCarry
||
row
.
taskState
===
1
||
row
.
execState
==
1
});
btnsArr
.
push
({
label
:
"执行日志"
,
value
:
"log"
});
return
btnsArr
...
...
@@ -472,19 +472,18 @@ const setDetailInfo = (row) => {
}
const
getDataSourceList
=
()
=>
{
// TODO
// getDatabase({ connectStatus: 1 }).then((res: any) => {
// if (res.code == proxy.$passCode) {
// dataSourceList.value = res.data || [];
// formItems.value[1].options = dataSourceList.value;
// searchItemList.value[1].options = dataSourceList.value;
// } else {
// proxy.$ElMessage({
// type: "error",
// message: res.msg,
// });
// }
// })
getDatabase
({
connectStatus
:
1
}).
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
dataSourceList
.
value
=
res
.
data
||
[];
formItems
.
value
[
1
].
options
=
dataSourceList
.
value
;
searchItemList
.
value
[
1
].
options
=
dataSourceList
.
value
;
}
else
{
proxy
.
$ElMessage
({
type
:
"error"
,
message
:
res
.
msg
,
});
}
})
}
const
radioGroupChange
=
(
val
,
info
)
=>
{
...
...
@@ -598,7 +597,7 @@ onBeforeMount(() => {
<!-- 头部搜索 -->
<TableTools
:searchItems=
"searchItemList"
:searchId=
"'data-source-search'"
@
search=
"toSearch"
:init=
"false"
/>
<div
class=
"tools_btns"
>
<
!--
<el-button
type=
"primary"
@
click=
"loadDrawer"
>
新建
</el-button>
--
>
<
el-button
type=
"primary"
@
click=
"loadDrawer"
>
新建
</el-button
>
<el-button
@
click=
"importMeta"
>
导入
</el-button>
</div>
</div>
...
...
src/views/data_meta/metaSheet.vue
View file @
f3704a8
...
...
@@ -60,8 +60,8 @@ const tabsInfo = ref({
activeName
:
''
,
tabs
:
[
{
label
:
'基础信息'
,
name
:
'first'
},
// /
{ label: '数据血缘', name: 'second' },
//
{ label: '变更记录', name: 'third' }
{
label
:
'数据血缘'
,
name
:
'second'
},
{
label
:
'变更记录'
,
name
:
'third'
}
]
})
/** 切换布局 */
...
...
@@ -192,13 +192,13 @@ const tabsPaneMap = ref({
tableInfo
:
fieldTableInfo
.
value
,
show
:
true
},
//
{
//
title: '索引信息',
//
type: 'table',
//
isIndex: true,
//
tableInfo: indexTableInfo.value,
//
show: true
//
},
{
title
:
'索引信息'
,
type
:
'table'
,
isIndex
:
true
,
tableInfo
:
indexTableInfo
.
value
,
show
:
true
},
],
second
:
[
{
...
...
@@ -310,10 +310,10 @@ const lineageDataLoading = ref(true);
const
getDetailInfo
=
()
=>
{
getSheetDetail
()
getSheetField
()
//
getSheetKeys()
getSheetKeys
()
logPage
.
value
.
curr
=
1
//
getSheetLog();
//
getTableLineageMap();
getSheetLog
();
getTableLineageMap
();
}
const
getSheetDetail
=
()
=>
{
...
...
src/views/importFile.vue
View file @
f3704a8
...
...
@@ -403,7 +403,7 @@ const importData = (info) => {
uploadFiles
.
value
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
params
.
append
(
"uploadFile"
,
item
.
raw
);
});
paramUrl
=
`
${
import
.
meta
.
env
.
VITE_APP_
CHECK
_BASEURL
}
/meta-collect-task/meta-collect-import?staffGuid=
${
userData
.
staffGuid
}
&databaseNameZh=
${
info
.
databaseNameZh
}
&databaseNameEn=
${
info
.
databaseNameEn
}
&isCover=
${
info
.
isCover
}
`
paramUrl
=
`
${
import
.
meta
.
env
.
VITE_APP_
PLAN
_BASEURL
}
/meta-collect-task/meta-collect-import?staffGuid=
${
userData
.
staffGuid
}
&databaseNameZh=
${
info
.
databaseNameZh
}
&databaseNameEn=
${
info
.
databaseNameEn
}
&isCover=
${
info
.
isCover
}
`
}
else
{
uploadFiles
.
value
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
params
.
append
(
"file"
,
item
.
raw
);
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment