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
96da769e
authored
2025-12-08 16:28:48 +0800
by
lihua
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
下载数据前先调用检查接口
1 parent
58a91e65
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
128 additions
and
106 deletions
src/api/modules/dataDelivery.ts
src/views/data_asset/registerCatalogDetail.vue
src/api/modules/dataDelivery.ts
View file @
96da769
...
...
@@ -54,6 +54,12 @@ export const downloadTableData = (params) => request({
responseType
:
'blob'
});
/** 下载数据前的检查 */
export
const
downloadTableDataCheck
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_DIGITAL_CONTRACT_URL
}
/contract-use/download-check?userGuid=
${
params
.
userGuid
}
&subjectGuid=
${
params
.
subjectGuid
}
`
,
method
:
'get'
});
/** 数据使用中查看资产表的数据 */
export
const
queryUseData
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_DIGITAL_CONTRACT_URL
}
/contract-use/read?userGuid=
${
params
.
userGuid
}
&subjectGuid=
${
params
.
subjectGuid
}
`
,
...
...
src/views/data_asset/registerCatalogDetail.vue
View file @
96da769
...
...
@@ -30,7 +30,8 @@ import { CircleCloseFilled } from '@element-plus/icons-vue'
import
useDataAssetStore
from
"@/store/modules/dataAsset"
;
import
{
TableColumnWidth
}
from
'@/utils/enum'
;
import
{
downloadTableData
downloadTableData
,
downloadTableDataCheck
}
from
"@/api/modules/dataDelivery"
;
const
router
=
useRouter
();
...
...
@@ -44,7 +45,7 @@ const evaGuid = route.query.evaGuid;
const
costAssessGuid
=
route
.
query
.
costAssessGuid
;
const
certificateGuid
=
route
.
query
.
certificateGuid
;
const
detailType
=
ref
(
route
.
query
.
type
);
const
dataSources
=
ref
(
route
.
query
.
dataSources
||
2
)
const
dataSources
=
ref
(
route
.
query
.
dataSources
||
2
)
const
foundMode
=
ref
(
route
.
query
.
foundMode
);
const
{
proxy
}
=
getCurrentInstance
()
as
any
;
...
...
@@ -130,7 +131,7 @@ const registerDetailTableInfo = ref({
label
:
"查看详情"
,
value
:
"detail"
,
click
:
(
scope
)
=>
{
let
row
=
scope
.
row
;
if
(
row
.
type
==
'asset'
)
{
isJSZQ
.
value
?
router
.
push
({
isJSZQ
.
value
?
router
.
push
({
name
:
'registerInfoJSZQDetail'
,
query
:
{
guid
:
row
.
guid
,
name
:
detailInfo
.
value
.
damName
,
tenantGuid
:
row
.
tenantGuid
,
tenantName
:
row
.
tenantName
,
type
:
'asset'
}
})
:
router
.
push
({
...
...
@@ -337,9 +338,11 @@ const productTableInfo = ref({
fields
:
[
{
label
:
"序号"
,
type
:
"index"
,
width
:
TableColumnWidth
.
INDEX
,
align
:
"center"
},
{
label
:
"服务名称"
,
field
:
"apiName"
,
width
:
180
},
{
label
:
"API类型"
,
field
:
"apiType"
,
width
:
100
,
getName
:
(
scope
)
=>
{
return
scope
.
row
.
apiType
&&
apiTypes
.
find
(
a
=>
a
.
value
==
scope
.
row
.
apiType
)?.
label
;
}
},
{
label
:
"API类型"
,
field
:
"apiType"
,
width
:
100
,
getName
:
(
scope
)
=>
{
return
scope
.
row
.
apiType
&&
apiTypes
.
find
(
a
=>
a
.
value
==
scope
.
row
.
apiType
)?.
label
;
}
},
{
label
:
"API地址"
,
field
:
"requestUrl"
,
width
:
240
},
{
label
:
"描述"
,
field
:
"apiDescription"
,
width
:
240
},
],
...
...
@@ -450,14 +453,23 @@ const handleTableViewData = (scope) => {
/** 下载数据 */
const
handleTableViewDataDown
=
(
scope
)
=>
{
downloadTableData
({
downloadTableData
Check
({
userGuid
:
route
.
query
.
useGuid
,
subjectGuid
:
scope
.
row
.
guid
}).
then
((
res
:
any
)
=>
{
if
(
res
&&
!
res
.
msg
)
{
download
(
res
,
`
${
scope
.
row
.
tableChName
}
.xlsx`
,
'excel'
);
if
(
res
?.
code
==
proxy
.
$passCode
)
{
downloadTableData
({
userGuid
:
route
.
query
.
useGuid
,
subjectGuid
:
scope
.
row
.
guid
}).
then
((
res
:
any
)
=>
{
if
(
res
&&
!
res
.
msg
)
{
download
(
res
,
`
${
scope
.
row
.
tableChName
}
.xlsx`
,
'excel'
);
}
else
{
res
?.
msg
&&
ElMessage
.
error
(
res
?.
msg
);
}
})
}
else
{
res
?.
msg
&&
ElMessage
.
error
(
res
?.
msg
);
ElMessage
.
error
(
res
?.
msg
||
'下载失败'
);
}
})
}
...
...
@@ -1272,23 +1284,24 @@ const respParamsTableInfo = ref({
<div
class=
"dataLabel"
v-show=
"detailInfo.domainName"
>
{{
detailInfo
.
domainName
}}
</div>
<div
class=
"dataLabel dataLabel1"
v-if=
"detailInfo.databaseType"
>
{{
detailInfo
.
databaseType
}}
</div>
<div
class=
"dataLabel dataLabel1"
>
{{
detailInfo
.
dataSourcesName
}}
</div>
<div
class=
"dataLabel dataLabel1"
v-if=
"detailInfo.updateFrequency"
>
{{
detailInfo
.
updateFrequencyName
}}
</div>
<div
class=
"dataLabel dataLabel1"
v-if=
"detailInfo.updateFrequency"
>
{{
detailInfo
.
updateFrequencyName
}}
</div>
</div>
</div>
<!--
<template
v-if=
"detailInfo?.foundMode == 1"
>
-->
<div
class=
"row-extra-desc"
>
<div
class=
"per-extra-desc"
>
{{
'行业分类:'
+
(
detailInfo
.
industryName
||
'--'
)
}}
</div>
<div>
{{
'机构分类:'
+
(
detailInfo
.
institutionTypeName
||
'--'
)
}}
</div>
</div>
<div
class=
"row-extra-desc"
>
<div
class=
"per-extra-desc"
>
{{
'应用场景:'
+
(
detailInfo
.
scenarioName
||
'--'
)
}}
</div>
<div
v-if=
"detailInfo.medDepartmentCode"
>
{{
'所属科室:'
+
(
detailInfo
.
medDepartmentCodeName
||
'--'
)
}}
</div>
<div
v-else
>
{{
'所属主题:'
+
(
detailInfo
.
subjectDomainName
||
'--'
)
}}
</div>
</div>
<div
class=
"row-extra-desc"
>
<div
class=
"per-extra-desc"
>
{{
'是否缓存:'
+
(
detailInfo
.
isCache
==
'Y'
?
'是'
:
'否'
)
}}
</div>
<div>
{{
'是否加密存储:'
+
(
detailInfo
.
scenario
==
'Y'
?
'是'
:
'否'
)
}}
</div>
</div>
<div
class=
"row-extra-desc"
>
<div
class=
"per-extra-desc"
>
{{
'行业分类:'
+
(
detailInfo
.
industryName
||
'--'
)
}}
</div>
<div>
{{
'机构分类:'
+
(
detailInfo
.
institutionTypeName
||
'--'
)
}}
</div>
</div>
<div
class=
"row-extra-desc"
>
<div
class=
"per-extra-desc"
>
{{
'应用场景:'
+
(
detailInfo
.
scenarioName
||
'--'
)
}}
</div>
<div
v-if=
"detailInfo.medDepartmentCode"
>
{{
'所属科室:'
+
(
detailInfo
.
medDepartmentCodeName
||
'--'
)
}}
</div>
<div
v-else
>
{{
'所属主题:'
+
(
detailInfo
.
subjectDomainName
||
'--'
)
}}
</div>
</div>
<div
class=
"row-extra-desc"
>
<div
class=
"per-extra-desc"
>
{{
'是否缓存:'
+
(
detailInfo
.
isCache
==
'Y'
?
'是'
:
'否'
)
}}
</div>
<div>
{{
'是否加密存储:'
+
(
detailInfo
.
scenario
==
'Y'
?
'是'
:
'否'
)
}}
</div>
</div>
<!--
</
template
>
-->
<div
v-show=
"detailInfo.rightMainName"
class=
"applicationScenarios"
>
{{ '权利主体:' + detailInfo.rightMainName }}
</div>
...
...
@@ -1306,85 +1319,86 @@ const respParamsTableInfo = ref({
<ContentWrap
id=
"id-assetContent"
title=
"基础信息"
description=
""
style=
"margin: 0 16px"
>
<Form
v-if=
"!isJSZQ"
ref=
"baseInfoFormRef"
:itemList=
"baseInfoFormItems"
formId=
"base-info-form"
/>
<div
v-else
class=
"list_panel"
>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
产品编码:
</span>
<span
class=
"item_value"
><ellipsis-tooltip
:content=
"publicDataProductsMainRSVO?.productCode || '--'"
class-name=
"w100f mr8-i"
:refName=
"'tooltipOver' + 'productCode'"
></ellipsis-tooltip></span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
产品类型:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.productTypeName }}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
是否需要信息主体授权:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.authLevel == 'Y' ? '是' : '否' }}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
更新频率:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.updateFrequencyName || '--' }}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
产品发布机构:
</span>
<span
class=
"item_value"
><ellipsis-tooltip
:content=
"publicDataProductsMainRSVO?.productPublisherName || '--'"
class-name=
"w100f mr8-i"
:refName=
"'tooltipOver' + 'productPublisherName'"
></ellipsis-tooltip></span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
领域:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.domainName || '--' }}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
应用场景:
</span>
<span
class=
"item_value"
><ellipsis-tooltip
:content=
"publicDataProductsMainRSVO?.scenarioName || '--'"
class-name=
"w100f mr8-i"
:refName=
"'tooltipOver' + 'scenarioName'"
></ellipsis-tooltip></span>
</div>
<div
class=
"list_item"
v-show=
"publicDataProductsMainRSVO?.domain == '003'"
>
<span
class=
"item_label"
>
所属科室:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.medDepartmentCodeName || '--' }}
</span>
</div>
<div
class=
"list_item"
v-show=
"publicDataProductsMainRSVO?.domain == '003'"
>
<span
class=
"item_label"
>
所属疾病:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.diseaseName || '--' }}
</span>
</div>
<div
class=
"list_item"
v-show=
"publicDataProductsMainRSVO?.domain == '003'"
>
<span
class=
"item_label"
>
数据规模(条):
</span>
<span
class=
"item_value"
>
{{ changeNum(publicDataProductsMainRSVO?.dataScale || 0, 0) }}
</span>
</div>
<div
class=
"list_item"
v-show=
"publicDataProductsMainRSVO?.domain == '003'"
>
<span
class=
"item_label"
>
病例总数(例):
</span>
<span
class=
"item_value"
>
{{ changeNum(publicDataProductsMainRSVO?.caseNumber || 0, 0) }}
</span>
</div>
<div
class=
"list_item"
v-show=
"publicDataProductsMainRSVO?.domain == '004'"
>
<span
class=
"item_label"
>
所属主题:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.subjectDomainName || '--' }}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
数据来源:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.dataSourcesName || '--' }}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
数据覆盖范围:
</span>
<span
class=
"item_value"
><ellipsis-tooltip
:content=
"!publicDataProductsMainRSVO?.dataCoverage?.length ? '--' : (publicDataProductsMainRSVO?.dataCoverage[0] == '1' ?
'全国' : publicDataProductsMainRSVO?.dataCoverageName.join(',')
)"
class-name=
"w100f mr8-i"
:refName=
"'tooltipOver' + 'dataCoverage'"
></ellipsis-tooltip></span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
产品应用方向:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.productDirectionName || '--' }}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
版本名称:
</span>
<span
class=
"item_value"
><ellipsis-tooltip
:content=
"publicDataProductsMainRSVO?.versionName || '--'"
class-name=
"w100f mr8-i"
:refName=
"'tooltipOver' + 'versionName'"
></ellipsis-tooltip></span>
</div>
<div
class=
"list_item is_block"
>
<span
class=
"item_label"
>
产品关键词:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.productKeywords?.join(',') || '--' }}
</span>
</div>
<div
class=
"list_item is_block"
>
<span
class=
"item_label"
>
产品描述:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.productDesc || '--' }}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
产品编码:
</span>
<span
class=
"item_value"
><ellipsis-tooltip
:content=
"publicDataProductsMainRSVO?.productCode || '--'"
class-name=
"w100f mr8-i"
:refName=
"'tooltipOver' + 'productCode'"
></ellipsis-tooltip></span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
产品类型:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.productTypeName }}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
是否需要信息主体授权:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.authLevel == 'Y' ? '是' : '否' }}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
更新频率:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.updateFrequencyName || '--' }}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
产品发布机构:
</span>
<span
class=
"item_value"
><ellipsis-tooltip
:content=
"publicDataProductsMainRSVO?.productPublisherName || '--'"
class-name=
"w100f mr8-i"
:refName=
"'tooltipOver' + 'productPublisherName'"
></ellipsis-tooltip></span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
领域:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.domainName || '--' }}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
应用场景:
</span>
<span
class=
"item_value"
><ellipsis-tooltip
:content=
"publicDataProductsMainRSVO?.scenarioName || '--'"
class-name=
"w100f mr8-i"
:refName=
"'tooltipOver' + 'scenarioName'"
></ellipsis-tooltip></span>
</div>
<div
class=
"list_item"
v-show=
"publicDataProductsMainRSVO?.domain == '003'"
>
<span
class=
"item_label"
>
所属科室:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.medDepartmentCodeName || '--' }}
</span>
</div>
<div
class=
"list_item"
v-show=
"publicDataProductsMainRSVO?.domain == '003'"
>
<span
class=
"item_label"
>
所属疾病:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.diseaseName || '--' }}
</span>
</div>
<div
class=
"list_item"
v-show=
"publicDataProductsMainRSVO?.domain == '003'"
>
<span
class=
"item_label"
>
数据规模(条):
</span>
<span
class=
"item_value"
>
{{ changeNum(publicDataProductsMainRSVO?.dataScale || 0, 0) }}
</span>
</div>
<div
class=
"list_item"
v-show=
"publicDataProductsMainRSVO?.domain == '003'"
>
<span
class=
"item_label"
>
病例总数(例):
</span>
<span
class=
"item_value"
>
{{ changeNum(publicDataProductsMainRSVO?.caseNumber || 0, 0) }}
</span>
</div>
<div
class=
"list_item"
v-show=
"publicDataProductsMainRSVO?.domain == '004'"
>
<span
class=
"item_label"
>
所属主题:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.subjectDomainName || '--' }}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
数据来源:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.dataSourcesName || '--' }}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
数据覆盖范围:
</span>
<span
class=
"item_value"
><ellipsis-tooltip
:content=
"!publicDataProductsMainRSVO?.dataCoverage?.length ? '--' : (publicDataProductsMainRSVO?.dataCoverage[0] == '1' ?
'全国' : publicDataProductsMainRSVO?.dataCoverageName.join(',')
)"
class-name=
"w100f mr8-i"
:refName=
"'tooltipOver' + 'dataCoverage'"
></ellipsis-tooltip></span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
产品应用方向:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.productDirectionName || '--' }}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
版本名称:
</span>
<span
class=
"item_value"
><ellipsis-tooltip
:content=
"publicDataProductsMainRSVO?.versionName || '--'"
class-name=
"w100f mr8-i"
:refName=
"'tooltipOver' + 'versionName'"
></ellipsis-tooltip></span>
</div>
<div
class=
"list_item is_block"
>
<span
class=
"item_label"
>
产品关键词:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.productKeywords?.join(',') || '--' }}
</span>
</div>
<div
class=
"list_item is_block"
>
<span
class=
"item_label"
>
产品描述:
</span>
<span
class=
"item_value"
>
{{ publicDataProductsMainRSVO?.productDesc || '--' }}
</span>
</div>
</div>
</ContentWrap>
<ContentWrap
v-if=
"productTableInfo.data?.length"
id=
"product-info"
title=
"服务包信息"
style=
"margin: 16px 16px 16px"
>
<Table
ref=
"productTableRef"
:tableInfo=
"productTableInfo"
class=
"fiveRow-table"
/>
...
...
@@ -1485,11 +1499,13 @@ const respParamsTableInfo = ref({
<span>
{{
scope
.
row
[
"updateTime"
]
||
'--'
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
v-if=
"!detailInfo.nodeId || foundMode == 'download' || foundMode == 'read'"
width=
"220px"
align=
"left"
fixed=
"right"
show-overflow-tooltip
>
<el-table-column
label=
"操作"
v-if=
"!detailInfo.nodeId || foundMode == 'download' || foundMode == 'read'"
width=
"220px"
align=
"left"
fixed=
"right"
show-overflow-tooltip
>
<
template
#
default=
"scope"
>
<span
class=
"text_btn"
@
click=
"handleTableViewData(scope)"
>
查看样例数据
</span>
<el-divider
v-show=
"foundMode == 'download'"
direction=
"vertical"
/>
<span
v-show=
"foundMode == 'download'"
class=
"text_btn"
@
click=
"handleTableViewDataDown(scope)"
>
下载数据
</span>
<span
v-show=
"foundMode == 'download'"
class=
"text_btn"
@
click=
"handleTableViewDataDown(scope)"
>
下载数据
</span>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -1585,7 +1601,7 @@ const respParamsTableInfo = ref({
<div
class=
"list_item"
:style=
"{ width: '60%' }"
>
<span
class=
"item_label"
>
评价对象范围:
</span>
<span
class=
"item_value"
>
{{ evaDetailInfo.evaluationRangeStart + '~' + evaDetailInfo.evaluationRangeEnd
}}
</span>
}}
</span>
</div>
<div
class=
"list_item is_block"
>
<span
class=
"item_label"
>
质量评价结果:
</span>
...
...
@@ -1761,7 +1777,7 @@ const respParamsTableInfo = ref({
v-if=
"toolBtns.length && (route.query.type == 'qualityEvaluate' || route.query.type == 'costAssess' || route.query.type == 'asset')"
>
<div
class=
"btns"
>
<el-button
v-for=
"btn in toolBtns"
:type=
"btn.type"
:plain=
"btn.plain"
@
click=
"btnClick(btn)"
>
{{ btn.label
}}
</el-button>
}}
</el-button>
</div>
</div>
<Dialog
:dialogInfo=
"passDialogInfo"
@
btnClick=
"passDialogBtnClick"
@
inputChange=
passDialogInputChange
/>
...
...
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