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
35d7268e
authored
2025-01-02 21:08:54 +0800
by
xukangle
Browse Files
Options
Browse Files
Tag
Download
Plain Diff
Merge branch 'develop' of
http://117.78.60.236:8000/csbr-daop/fe-data-asset-management
into develop
2 parents
7364348a
54ec9cc5
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
88 additions
and
54 deletions
src/router/modules/dataInventory.ts
src/views/data_inventory/taskDetail.vue
src/views/data_inventory/taskEdit.vue
src/views/data_inventory/taskLog.vue
src/router/modules/dataInventory.ts
View file @
35d7268
...
...
@@ -63,7 +63,7 @@ const routes: RouteRecordRaw[] = [
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
.
query
.
type
==
'confirm'
?
'结果确认'
:
'结果修改
'
}
`
;
to
.
meta
.
title
=
`
${
to
.
query
.
name
}
-
${
to
.
query
.
status
==
'Y'
?
'结果修改'
:
'结果确认
'
}
`
;
to
.
meta
.
editPage
=
true
;
}
}
...
...
src/views/data_inventory/taskDetail.vue
View file @
35d7268
...
...
@@ -85,11 +85,12 @@ const sheetItemList = ref([
value
:
'dbGuid'
},
clearable
:
true
,
filterable
:
true
,
},
{
type
:
"select"
,
label
:
""
,
placeholder
:
'表中文
/英文
名'
,
placeholder
:
'表中文名'
,
field
:
'tableGuid'
,
default
:
''
,
options
:
[],
...
...
@@ -98,6 +99,7 @@ const sheetItemList = ref([
value
:
'dbGuid'
},
clearable
:
true
,
filterable
:
true
,
disabled
:
true
},
]);
...
...
@@ -128,11 +130,12 @@ const fieldItemList = ref([
value
:
'dbGuid'
},
clearable
:
true
,
filterable
:
true
,
},
{
type
:
"select"
,
label
:
""
,
placeholder
:
'表中文
/英文
名'
,
placeholder
:
'表中文名'
,
field
:
'tableGuid'
,
default
:
''
,
options
:
[],
...
...
@@ -141,12 +144,13 @@ const fieldItemList = ref([
value
:
'dbGuid'
},
clearable
:
true
,
filterable
:
true
,
disabled
:
true
},
{
type
:
"select"
,
label
:
""
,
placeholder
:
'字段中文
/英文
名'
,
placeholder
:
'字段中文名'
,
field
:
'fieldGuid'
,
default
:
''
,
options
:
[],
...
...
@@ -155,6 +159,7 @@ const fieldItemList = ref([
value
:
'dbGuid'
},
clearable
:
true
,
filterable
:
true
,
disabled
:
true
},
{
...
...
@@ -167,10 +172,7 @@ const fieldItemList = ref([
{
label
:
'已分类'
,
value
:
'Y'
},
{
label
:
'未分类'
,
value
:
'N'
},
],
props
:
{
// label: 'name',
// value: 'dbGuid'
},
props
:
{},
clearable
:
true
,
},
{
...
...
@@ -187,7 +189,6 @@ const fieldItemList = ref([
label
:
"classifyName"
,
value
:
"classifyDetailGuid"
,
},
// popperClass: 'strictiy_cascader',
filterable
:
true
,
clearable
:
true
,
blur
:
true
...
...
@@ -226,17 +227,13 @@ const sheetTableInfo = ref({
id
:
"mapping-table"
,
fields
:
[
{
label
:
"序号"
,
type
:
"index"
,
width
:
56
,
align
:
"center"
,
fixed
:
"left"
},
// {
// label: "分类分级变更状态", field: "isCgChange", width: 140, align: 'center', type: "tag", getName: (scope) => {
// return filterVal(scope.row.isCgChange, 'isCgChange');
// }
// },
{
label
:
"表中文名"
,
field
:
"tableChName"
,
width
:
120
},
{
label
:
"表中文名"
,
field
:
"tableChName"
,
width
:
180
},
{
label
:
"表英文名"
,
field
:
"tableName"
,
width
:
200
,
type
:
"text_btn"
,
value
:
'tab'
},
{
label
:
"数据库名"
,
field
:
"database"
,
width
:
120
},
{
label
:
"字段数"
,
field
:
"fieldNum"
,
width
:
96
,
align
:
'right'
},
{
label
:
"数据库名"
,
field
:
"databaseChName"
,
width
:
140
},
{
label
:
"数据库名称"
,
field
:
"database"
,
width
:
200
},
{
label
:
"字段数"
,
field
:
"fieldNum"
,
width
:
80
,
align
:
'right'
},
{
label
:
"已分类字段数"
,
field
:
"classifyFieldNum"
,
width
:
120
,
align
:
'right'
},
{
label
:
"已分级字段数"
,
field
:
"gradeFieldNum"
,
width
:
120
,
align
:
'right'
},
],
...
...
@@ -297,8 +294,9 @@ const fieldTableInfo = ref({
{
label
:
"标签"
,
field
:
"label"
,
width
:
120
},
{
label
:
"规则"
,
field
:
"ruleDetail"
,
width
:
200
},
{
label
:
"表英文名"
,
field
:
"tableName"
,
width
:
200
},
{
label
:
"表中文名"
,
field
:
"tableChName"
,
width
:
120
},
{
label
:
"数据库名"
,
field
:
"database"
,
width
:
120
},
{
label
:
"表中文名"
,
field
:
"tableChName"
,
width
:
140
},
{
label
:
"数据库名"
,
field
:
"databaseChName"
,
width
:
140
},
{
label
:
"数据库名称"
,
field
:
"database"
,
width
:
200
},
],
loading
:
false
,
data
:
[],
...
...
@@ -390,14 +388,29 @@ const dialogInfo: any = ref({
},
})
/**
* 传入多个promise对象,当全部结束时取消Loading
* @param promises 传入多个promise对象,当全部结束时取消Loading
*/
const
promiseList
=
async
(...
promises
:
Promise
<
void
>
[])
=>
{
// loading方法全局封装成一个组件
loading
.
value
=
true
;
try
{
await
Promise
.
all
(
promises
);
}
catch
(
e
)
{
loading
.
value
=
false
;
}
finally
{
loading
.
value
=
false
;
}
};
// 获取任务详情
const
getTaskDetail
=
(
param
)
=>
{
loading
.
value
=
true
;
getCgTaskDetail
(
param
).
then
((
res
:
any
)
=>
{
loading
.
value
=
false
;
//
loading.value = false;
if
(
res
.
code
==
proxy
.
$passCode
)
{
taskDetail
.
value
=
res
.
data
||
{};
// taskDetail.value.confirmStatus != 'Y' && (showBtns.value = true);
getFieldCount
()
getSheetFieldList
({
type
:
1
});
getFieldTree
()
...
...
@@ -408,7 +421,6 @@ const getTaskDetail = (param) => {
})
}
else
{
ElMessage
.
error
(
res
.
msg
);
loading
.
value
=
false
;
}
}).
catch
(()
=>
{
loading
.
value
=
false
;
...
...
@@ -438,7 +450,7 @@ const getGradeData = () => {
data
.
map
(
d
=>
d
.
gradeName
=
d
.
dataGrade
+
'级'
);
gradeList
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
formItems
.
value
[
1
].
options
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
fieldItemList
.
value
[
5
].
options
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
fieldItemList
.
value
[
6
].
options
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
fieldTableInfo
.
value
.
fields
[
5
].
options
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
}
else
{
ElMessage
.
error
(
res
.
msg
);
...
...
@@ -559,7 +571,6 @@ const getFieldTableData = () => {
isMergeClassify
:
checked1
.
value
?
'Y'
:
'N'
}
const
classifyName
=
params
.
classifyName
?.
at
(
-
1
)
||
undefined
;
// params.isClassify = classifyName === undefined ? '' : classifyName == 'unclassified' ? 'N' : 'Y';
if
(
classifyName
&&
classifyName
!=
'unclassified'
)
{
params
.
classifyDetail
=
classifyName
;
}
...
...
@@ -622,7 +633,6 @@ const tableBtnClick = (scope, btn) => {
row
.
classifyDetailGuid
=
cascaderData
.
length
?
cascaderData
[
0
].
value
:
''
;
row
.
classifyDetailName
=
cascaderData
.
length
?
cascaderData
[
0
].
label
:
''
;
row
.
gradeDetailName
=
gradeList
.
value
.
find
(
item
=>
item
.
guid
==
row
.
gradeDetailGuid
)?.
gradeName
;
row
.
STATE
=
''
;
if
(
cascaderData
.
length
&&
row
.
gradeDetailGuid
)
{
const
params
=
[
{
...
...
@@ -632,9 +642,19 @@ const tableBtnClick = (scope, btn) => {
classifyDetailName
:
row
.
classifyDetailName
,
gradeDetailGuid
:
row
.
gradeDetailGuid
,
gradeDetailName
:
row
.
gradeDetailName
,
execGuid
:
taskDetail
.
value
.
execGuid
}
];
saveFields
(
params
)
row
.
STATE
=
''
;
}
else
{
if
(
row
.
classifyDetailGuid
&&
row
.
gradeDetailGuid
==
''
)
{
ElMessage
.
error
(
'分级不能为空'
);
}
else
if
(
row
.
classifyDetailGuid
==
''
&&
row
.
gradeDetailGuid
)
{
ElMessage
.
error
(
'分类不能为空'
);
}
else
{
ElMessage
.
error
(
'分类和分级均不能为空'
);
}
}
}
};
...
...
@@ -695,11 +715,13 @@ const saveFields = (params, isBatch = false) => {
loading
.
value
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
ElMessage
.
success
(
'保存成功'
);
if
(
isBatch
)
{
getFieldTableData
();
}
else
{
currTableData
.
value
.
changeStatus
=
'Y'
;
}
// if (isBatch) {
// getFieldTableData();
// } else {
// currTableData.value.changeStatus = 'Y';
// }
getFieldTableData
();
getFieldCount
();
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
...
...
@@ -785,12 +807,15 @@ const selectChange = (val, item, scope = null) => {
}
else
if
(
item
.
field
==
'databaseGuid'
||
item
.
field
==
'tableGuid'
)
{
const
params
:
any
=
scope
;
if
(
tabsInfo
.
value
.
activeName
==
'sheet'
)
{
if
(
!
val
)
{
sheetItemList
.
value
[
1
].
default
=
''
;
sheetItemList
.
value
[
1
].
disabled
=
true
;
}
else
{
sheetItemList
.
value
[
1
].
disabled
=
false
;
if
(
item
.
field
==
"databaseGuid"
)
{
if
(
!
val
)
{
sheetItemList
.
value
[
1
].
default
=
''
;
sheetItemList
.
value
[
1
].
disabled
=
true
;
}
else
{
sheetItemList
.
value
[
1
].
disabled
=
false
;
}
}
item
.
field
==
"databaseGuid"
&&
(
params
.
tableGuid
=
''
);
if
(
val
&&
item
.
field
!=
"tableGuid"
)
{
const
params
=
{
...
...
@@ -854,6 +879,7 @@ const dialogBtnClick = (btn, info) => {
classifyDetailName
:
cascaderData
[
0
].
label
,
gradeDetailGuid
:
info
.
gradeGuid
,
gradeDetailName
:
gradeName
,
execGuid
:
taskDetail
.
value
.
execGuid
}
params
.
push
(
param
)
})
...
...
@@ -913,7 +939,7 @@ onMounted(() => {
</div>
<div
class=
"desc_item"
>
<span
class=
"desc_label"
>
执行时间:
</span>
<span
class=
"desc_value"
>
{{
taskDetail
.
update
Time
||
'--'
}}
</span>
<span
class=
"desc_value"
>
{{
taskDetail
.
exec
Time
||
'--'
}}
</span>
</div>
</div>
<div
class=
"desc_group"
>
...
...
@@ -967,20 +993,20 @@ onMounted(() => {
<div
class=
"table_tool_wrap"
ref=
"tableToolRef"
>
<TableTools
ref=
"fieldSearchRef"
:searchItems=
"fieldItemList"
:searchId=
"'field-search'"
:init=
"false"
@
selectChange=
"selectChange"
@
cascaderChange=
"cascaderChange"
@
search=
"searchField"
/>
<div
class=
"tools_btns"
>
<div
class=
"btns"
v-if=
"showBtns"
>
<div
class=
"tools_btns"
v-if=
"showBtns"
>
<div
class=
"btns"
>
<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"
>
<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>
<div
class=
"table_panel_wrap panel"
:style=
"
{ height: 'calc(100% - ' + toolH + 'px)' }">
...
...
src/views/data_inventory/taskEdit.vue
View file @
35d7268
...
...
@@ -155,7 +155,9 @@ const metadataTableInfo = ref({
})
const
getTaskDetail
=
(
data
)
=>
{
loading
.
value
=
true
;
getCgTaskDetail
(
data
).
then
((
res
:
any
)
=>
{
loading
.
value
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
const
data
=
res
.
data
||
{};
taskDetail
.
value
=
data
;
...
...
@@ -166,6 +168,8 @@ const getTaskDetail = (data) => {
getPermissionList
({});
getMetaTableData
();
}
}).
catch
(()
=>
{
loading
.
value
=
false
;
})
}
...
...
@@ -177,14 +181,14 @@ const nodeClick = (data) => {
// 获取标签数据
const
getTableData
=
()
=>
{
tableInfo
.
value
.
loading
=
true
;
loading
.
value
=
true
;
getCgLabelPageList
(
Object
.
assign
({},
searchItemValue
.
value
,
{
pageIndex
:
page
.
value
.
curr
,
pageSize
:
page
.
value
.
limit
,
})
).
then
((
res
:
any
)
=>
{
tableInfo
.
value
.
loading
=
false
;
loading
.
value
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
tableInfo
.
value
.
data
=
res
.
data
.
records
||
[];
tableInfo
.
value
.
page
.
curr
=
res
.
data
.
pageIndex
;
...
...
@@ -193,7 +197,7 @@ const getTableData = () => {
}
})
.
catch
((
res
)
=>
{
tableInfo
.
value
.
loading
=
false
;
loading
.
value
=
false
;
});
};
...
...
@@ -223,8 +227,9 @@ const tablePageChange = (info) => {
// 获取元数据表格
const
getMetaTableData
=
()
=>
{
loading
.
value
=
true
;
getMetaTableCollectList
({}).
then
((
res
:
any
)
=>
{
metadataTableInfo
.
value
.
loading
=
false
;
loading
.
value
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
const
data
=
res
.
data
.
records
||
[];
metadataTableInfo
.
value
.
data
=
data
;
...
...
@@ -236,16 +241,18 @@ const getMetaTableData = () => {
})
}
}
}).
catch
(()
=>
{
loading
.
value
=
false
;
})
}
const
querySearch
=
(
queryString
:
string
)
=>
{
l
istLoading
.
value
=
true
l
oading
.
value
=
true
;
const
results
=
queryString
?
currpermissionList
.
value
.
filter
(
item
=>
item
.
dataPermissionName
.
indexOf
(
queryString
)
>
-
1
)
:
permissionList
.
value
;
currpermissionList
.
value
=
results
l
istLoading
.
value
=
false
l
oading
.
value
=
false
;
}
const
btnClick
=
async
(
btn
,
bType
=
null
)
=>
{
...
...
@@ -340,6 +347,7 @@ const handleScroll = () => {
const
listClick
=
(
row
)
=>
{
selectIndex
.
value
=
row
.
guid
;
templateInfo
.
value
=
row
;
loading
.
value
=
true
;
getClassifyTree
();
searchItemValue
.
value
.
classifyGuid
=
row
.
guid
;
searchItemValue
.
value
.
detailGuid
=
''
;
...
...
@@ -352,8 +360,9 @@ const getPermissionList = (val, init = true) => {
params
.
pageIndex
=
listPage
.
value
.
curr
;
params
.
pageSize
=
listPage
.
value
.
limit
;
params
.
type
=
'C'
;
l
istLoading
.
value
=
true
l
oading
.
value
=
true
;
getClassifyGradList
(
params
).
then
((
res
:
any
)
=>
{
loading
.
value
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
const
data
=
res
.
data
?.
records
||
[]
if
(
init
)
{
...
...
@@ -375,9 +384,8 @@ const getPermissionList = (val, init = true) => {
querySearch
(
asideSearchInput
.
value
)
}
}
listLoading
.
value
=
false
}).
catch
(()
=>
{
l
istLoading
.
value
=
false
l
oading
.
value
=
false
;
})
}
...
...
@@ -386,16 +394,16 @@ const getClassifyTree = () => {
const
params
=
{
classifyGradeGuid
:
templateInfo
.
value
.
guid
}
treeInfo
.
value
.
loading
=
true
;
loading
.
value
=
true
;
getClassifyTreeList
(
params
).
then
((
res
:
any
)
=>
{
treeInfo
.
value
.
loading
=
false
;
loading
.
value
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
const
data
=
res
.
data
||
[];
treeInfo
.
value
.
data
=
data
;
treeInfoRef
.
value
.
setCurrentKey
(
''
);
}
}).
catch
(()
=>
{
treeInfo
.
value
.
loading
=
false
;
loading
.
value
=
false
;
})
}
...
...
@@ -433,7 +441,7 @@ onMounted(() => {
<el-input
v-model
.
trim=
"asideSearchInput"
placeholder=
"请输入关键字"
:prefix-icon=
"Search"
clearable
@
change=
"querySearch"
/>
</div>
-->
<div
class=
"aside_list"
v-
loading=
"listLoading"
v-
infinite-scroll=
"handleScroll"
>
<div
class=
"aside_list"
v-infinite-scroll=
"handleScroll"
>
<div
class=
"list_item"
v-for=
"(item, i) in currpermissionList"
:class=
"
{ active: selectIndex == item.guid }"
@click="listClick(item);" v-preReClick>
{{
item
.
name
}}
</div>
</div>
...
...
src/views/data_inventory/taskLog.vue
View file @
35d7268
...
...
@@ -107,7 +107,7 @@ const toPath = (type) => {
guid
:
currTableData
.
value
.
taskGuid
,
name
:
currTableData
.
value
.
taskName
,
status
:
currTableData
.
value
.
status
,
type
:
currTableData
.
value
.
status
==
'Y'
?
'
modify
'
:
'confirm'
type
:
currTableData
.
value
.
status
==
'Y'
?
'
detail
'
:
'confirm'
},
});
}
...
...
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