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
546b8e45
authored
2026-04-16 15:29:04 +0800
by
lihua
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
数据源支持多种对象存储
1 parent
f67ab687
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
34 additions
and
29 deletions
src/views/data_anonymization/anonTaskCreate.vue
src/views/data_service/dataSource.vue
src/views/data_anonymization/anonTaskCreate.vue
View file @
546b8e4
...
...
@@ -18,7 +18,7 @@
@
uploadFileChange=
"uploadFileChange"
@
checkboxChange=
"handleDataSelectFormCheckboxChange"
/>
</ContentWrap>
<!-- 抽样预览的表单填写配置,及表格展示 -->
<ContentWrap
v-show=
"formRef?.formInline?.dataSource != 3 && !(formRef?.formInline?.dataSourceGuid &&
currDatasourceSelect?.databaseType === 'obs'
)"
id=
"id-previewData"
title=
"数据抽样预览"
description=
""
<ContentWrap
v-show=
"formRef?.formInline?.dataSource != 3 && !(formRef?.formInline?.dataSourceGuid &&
objectTypesList.includes(currDatasourceSelect?.databaseType)
)"
id=
"id-previewData"
title=
"数据抽样预览"
description=
""
style=
"margin-top: 16px;"
>
<!-- 选择抽样预览的表单设置 -->
<Form
ref=
"dataSimpleFormRef"
:itemList=
"dataSimpleFormItems"
:rules=
"dataSimpleFormRules"
...
...
@@ -286,6 +286,8 @@ const { required } = useValidator();
const
fullscreenLoading
=
ref
(
false
);
const
containerRef
=
ref
();
const
objectTypesList
=
ref
([
'obs'
,
'minio'
,
'rustfs'
]);
const
qualifiedIdentifierFloderList
=
ref
([{
enName
:
'patient_birth_date'
,
chName
:
'患者出生日期'
,
...
...
@@ -615,7 +617,7 @@ const dataSelectFormSelectChangeHandlers = {
return
;
}
let
dsInfo
=
currDatasourceSelect
.
value
=
dataSourceList
.
value
.
find
(
d
=>
d
.
guid
==
val
);
if
(
dsInfo
.
databaseType
==
'obs'
)
{
if
(
objectTypesList
.
value
.
includes
(
dsInfo
?.
databaseType
)
)
{
sampleTableFields
.
value
=
[];
parseFileDataSum
.
value
=
[];
sampleTableData
.
value
=
[];
...
...
@@ -674,7 +676,7 @@ const dataSelectFormSelectChangeHandlers = {
},
handleType
:
(
val
,
row
,
formInfo
)
=>
{
// 第一种匿名处理类型是不可以选择obs类型的。
if
(
val
==
'01'
&&
formInfo
.
dataSourceGuid
&&
currDatasourceSelect
.
value
.
databaseType
==
'obs'
)
{
if
(
val
==
'01'
&&
formInfo
.
dataSourceGuid
&&
objectTypesList
.
value
.
includes
(
currDatasourceSelect
.
value
?.
databaseType
)
)
{
formInfo
.
dataSourceGuid
=
''
;
}
setDataSelectFormItems
(
formInfo
);
...
...
@@ -715,14 +717,14 @@ const setDataSelectFormItems = (info, isDetail = false) => {
item
.
default
=
''
;
}
}
else
if
(
item
.
field
==
'qualifiedIdentifier'
)
{
item
.
visible
=
info
[
'handleType'
]
==
'02'
&&
info
[
'dataSource'
]
!=
3
&&
!
(
info
[
'dataSourceGuid'
]
&&
currDatasourceSelect
.
value
?.
databaseType
===
'obs'
);
item
.
visible
=
info
[
'handleType'
]
==
'02'
&&
info
[
'dataSource'
]
!=
3
&&
!
(
info
[
'dataSourceGuid'
]
&&
objectTypesList
.
value
.
includes
(
currDatasourceSelect
.
value
?.
databaseType
)
);
if
(
info
[
'dataSource'
]
==
3
)
{
item
.
options
=
qualifiedIdentifierFloderList
.
value
;
}
}
else
if
(
item
.
field
==
'tableName'
)
{
item
.
visible
=
!
(
info
[
'dataSourceGuid'
]
&&
currDatasourceSelect
.
value
?.
databaseType
===
'obs'
);
//数据源类型为obs的没有数据表选择
item
.
visible
=
!
(
info
[
'dataSourceGuid'
]
&&
objectTypesList
.
value
.
includes
(
currDatasourceSelect
.
value
?.
databaseType
)
);
//数据源类型为obs的没有数据表选择
}
else
if
(
item
.
field
==
'dataSourceGuid'
)
{
item
.
options
=
info
.
handleType
==
'02'
?
dataSourceList
.
value
:
dataSourceList
.
value
.
filter
(
d
=>
d
.
databaseType
!==
'obs'
)
item
.
options
=
info
.
handleType
==
'02'
?
dataSourceList
.
value
:
dataSourceList
.
value
.
filter
(
d
=>
!
objectTypesList
.
value
.
includes
(
d
.
databaseType
)
)
}
});
stepsInfo
.
value
=
info
.
handleType
==
'02'
?
reportStepsInfo
.
value
:
originStepsInfo
.
value
;
...
...
@@ -1502,12 +1504,12 @@ const changeStepHandlers = {
formRef
.
value
?.
ruleFormRef
?.
validate
((
valid
,
errorItem
)
=>
{
if
(
valid
)
{
let
dataSource
=
formRef
.
value
?.
formInline
?.
dataSource
;
if
(
dataSource
==
2
&&
currDatasourceSelect
.
value
.
databaseType
!==
'obs'
&&
!
sampleTableFields
.
value
?.
length
)
{
if
(
dataSource
==
2
&&
!
objectTypesList
.
value
.
includes
(
currDatasourceSelect
.
value
?.
databaseType
)
&&
!
sampleTableFields
.
value
?.
length
)
{
proxy
.
$ElMessage
.
error
(
'上传文件的字段不能为空'
);
return
;
}
if
(
dataSource
!=
3
)
{
if
(
currDatasourceSelect
.
value
.
databaseType
===
'obs'
&&
saveParams
.
dataSourceGuid
)
{
if
(
objectTypesList
.
value
.
includes
(
currDatasourceSelect
.
value
?.
databaseType
)
&&
saveParams
.
dataSourceGuid
)
{
exec
(
saveParams
);
}
else
{
dataSimpleFormRef
.
value
?.
ruleFormRef
?.
validate
((
valid
)
=>
{
...
...
@@ -1647,7 +1649,7 @@ onBeforeMount(() => {
if
(
res
?.
code
==
proxy
.
$passCode
)
{
dataSourceList
.
value
=
res
.
data
||
[];
let
item
=
dataSelectInfoItems
.
value
.
find
(
item
=>
item
.
field
==
'dataSourceGuid'
);
item
&&
(
item
.
options
=
detailInfo
.
value
.
handleType
==
'01'
?
dataSourceList
.
value
.
filter
(
d
=>
d
.
databaseType
!==
'obs'
)
:
dataSourceList
.
value
);
item
&&
(
item
.
options
=
detailInfo
.
value
.
handleType
==
'01'
?
dataSourceList
.
value
.
filter
(
d
=>
!
objectTypesList
.
value
.
includes
(
d
.
databaseType
)
)
:
dataSourceList
.
value
);
}
else
{
proxy
.
$ElMessage
.
error
(
res
.
msg
);
}
...
...
@@ -1656,12 +1658,12 @@ onBeforeMount(() => {
if
(
res
?.
code
==
proxy
.
$passCode
)
{
dataSourceList
.
value
=
res
.
data
||
[];
let
item
=
dataSelectInfoItems
.
value
.
find
(
item
=>
item
.
field
==
'dataSourceGuid'
);
item
&&
(
item
.
options
=
detailInfo
.
value
.
handleType
==
'01'
?
dataSourceList
.
value
.
filter
(
d
=>
d
.
databaseType
!==
'obs'
)
:
dataSourceList
.
value
);
item
&&
(
item
.
options
=
detailInfo
.
value
.
handleType
==
'01'
?
dataSourceList
.
value
.
filter
(
d
=>
!
objectTypesList
.
value
.
includes
(
d
.
databaseType
)
)
:
dataSourceList
.
value
);
}
else
{
proxy
.
$ElMessage
.
error
(
res
.
msg
);
}
currDatasourceSelect
.
value
=
dataSourceList
.
value
.
find
(
d
=>
d
.
guid
==
detailInfo
.
value
.
dataSourceGuid
);
if
(
currDatasourceSelect
.
value
.
databaseType
!=
'obs'
)
{
if
(
!
objectTypesList
.
value
.
includes
(
currDatasourceSelect
.
value
?.
databaseType
)
)
{
const
tableRes
:
any
=
await
getDsTableByDs
({
pageSize
:
-
1
,
pageIndex
:
1
,
...
...
@@ -1718,7 +1720,7 @@ onBeforeMount(() => {
if
(
res
.
code
==
proxy
.
$passCode
)
{
dataSourceList
.
value
=
res
.
data
||
[];
let
item
=
dataSelectInfoItems
.
value
.
find
(
item
=>
item
.
field
==
'dataSourceGuid'
);
item
&&
(
item
.
options
=
dataSourceList
.
value
.
filter
(
d
=>
d
.
databaseType
!==
'obs'
));
item
&&
(
item
.
options
=
dataSourceList
.
value
.
filter
(
d
=>
!
objectTypesList
.
value
.
includes
(
d
.
databaseType
)
));
}
else
{
proxy
.
$ElMessage
.
error
(
res
.
msg
);
}
...
...
src/views/data_service/dataSource.vue
View file @
546b8e4
...
...
@@ -21,12 +21,9 @@ import {
const
{
proxy
}
=
getCurrentInstance
()
as
any
;
/** 数据库类型下拉列表 */
const
databaseTypesList
=
ref
([
{
label
:
"mysql"
,
value
:
"mysql"
},
{
label
:
"doris"
,
value
:
"doris"
},
{
label
:
"oracle"
,
value
:
"oracle"
},
{
label
:
"华为云obs"
,
value
:
"obs"
},
]);
const
databaseTypesList
=
ref
([]);
const
objectTypesList
=
ref
([
'obs'
,
'minio'
,
'rustfs'
]);
const
searchItemList
=
ref
([
{
...
...
@@ -1008,7 +1005,7 @@ const setFormItems = (name, info: any = null) => {
}
});
}
else
if
(
item
.
field
==
'isHttpsProtocol'
)
{
item
.
visible
=
info
.
databaseType
==
"obs"
;
item
.
visible
=
objectTypesList
.
value
.
includes
(
info
.
databaseType
)
;
item
.
default
=
info
[
item
.
field
]
||
"Y"
;
}
else
if
(
item
.
field
==
'bizSystem'
)
{
item
.
visible
=
info
.
systemLayer
==
'业务系统'
;
...
...
@@ -1017,19 +1014,19 @@ const setFormItems = (name, info: any = null) => {
item
.
default
=
info
[
item
.
field
]
||
""
;
}
if
(
item
.
field
==
'host'
)
{
item
.
label
=
info
.
databaseType
==
"obs"
?
"地址"
:
"服务器"
;
contentFormInfo
.
rules
.
host
[
0
].
message
=
info
.
databaseType
==
"obs"
?
"请填写地址"
:
"请填写服务器IP地址"
;
item
.
label
=
objectTypesList
.
value
.
includes
(
info
.
databaseType
)
?
"地址"
:
"服务器"
;
contentFormInfo
.
rules
.
host
[
0
].
message
=
objectTypesList
.
value
.
includes
(
info
.
databaseType
)
?
"请填写地址"
:
"请填写服务器IP地址"
;
}
else
if
(
item
.
field
==
'port'
)
{
item
.
visible
=
info
.
databaseType
!=
"obs"
;
item
.
visible
=
!
objectTypesList
.
value
.
includes
(
info
.
databaseType
)
;
}
else
if
(
item
.
field
==
'logonUser'
)
{
item
.
label
=
info
.
databaseType
==
"obs"
?
"凭证ID"
:
"用户名"
;
contentFormInfo
.
rules
.
logonUser
[
0
].
message
=
info
.
databaseType
==
"obs"
?
"请填写凭证ID"
:
"请填写用户名"
;
item
.
label
=
objectTypesList
.
value
.
includes
(
info
.
databaseType
)
?
"凭证ID"
:
"用户名"
;
contentFormInfo
.
rules
.
logonUser
[
0
].
message
=
objectTypesList
.
value
.
includes
(
info
.
databaseType
)
?
"请填写凭证ID"
:
"请填写用户名"
;
}
else
if
(
item
.
field
==
'password'
)
{
item
.
label
=
info
.
databaseType
==
"obs"
?
"凭证Key"
:
"密码"
;
contentFormInfo
.
rules
.
password
[
0
].
message
=
info
.
databaseType
==
"obs"
?
"请填写凭证Key"
:
"请填写密码"
;
item
.
label
=
objectTypesList
.
value
.
includes
(
info
.
databaseType
)
?
"凭证Key"
:
"密码"
;
contentFormInfo
.
rules
.
password
[
0
].
message
=
objectTypesList
.
value
.
includes
(
info
.
databaseType
)
?
"请填写凭证Key"
:
"请填写密码"
;
}
else
if
(
item
.
field
==
'databaseNameEn'
)
{
item
.
label
=
info
.
databaseType
==
"obs"
?
"桶名称"
:
"数据库名"
;
contentFormInfo
.
rules
.
databaseNameEn
[
0
].
message
=
info
.
databaseType
==
"obs"
?
"请填写桶名称"
:
"请填写数据库名"
;
item
.
label
=
objectTypesList
.
value
.
includes
(
info
.
databaseType
)
?
"桶名称"
:
"数据库名"
;
contentFormInfo
.
rules
.
databaseNameEn
[
0
].
message
=
objectTypesList
.
value
.
includes
(
info
.
databaseType
)
?
"请填写桶名称"
:
"请填写数据库名"
;
}
});
}
else
{
...
...
@@ -1051,11 +1048,17 @@ const getFirstPageData = () => {
page
.
value
.
curr
=
1
;
getTableData
();
};
onMounted
(()
=>
{
onBeforeMount
(()
=>
{
getParamsList
({
dictType
:
"业务系统"
}).
then
((
res
)
=>
{
flowList
.
value
=
res
?.
data
||
[]
contents
.
value
.
normal
.
items
[
3
].
options
=
flowList
.
value
})
getParamsList
({
dictType
:
"数据源存储类型"
}).
then
((
res
)
=>
{
databaseTypesList
.
value
=
res
?.
data
||
[]
searchItemList
.
value
[
1
].
options
=
databaseTypesList
.
value
;
contents
.
value
.
normal
.
items
[
2
].
options
=
databaseTypesList
.
value
;
})
})
const
toSearch
=
(
val
:
any
,
clear
:
boolean
=
false
)
=>
{
if
(
clear
)
{
...
...
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