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
52c346a5
authored
2025-12-08 14:35:29 +0800
by
lihua
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
修改数据使用和数据交付接口联调
1 parent
c821a49d
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
90 additions
and
66 deletions
src/components/Table/index.vue
src/utils/request.ts
src/views/data_asset/damTableDataView.vue
src/views/data_asset/dataDelivery.vue
src/views/data_asset/dataUsage.vue
src/views/data_asset/registerCatalogDetail.vue
src/views/data_asset/registerCatalogManagement.vue
src/views/data_facilitator/settleDetail.vue
src/views/data_facilitator/settleStart.vue
src/components/Table/index.vue
View file @
52c346a
...
...
@@ -359,8 +359,9 @@ onMounted(() => {
(item.getName?.(scope) === '--' || item.getName?.(scope) === null) ? '' : 'text_btn',
item.class,
scope.row.cellClass,
item?.disabled?.(scope) == true ? 'is-regular' : ''
]"
@
click=
"(item.click &&
!item.disabled && !scope.row.disabled
) ? item.click(scope,
{ label: item.label, value: item.value }) : handleClick(scope, { label: item.label, value: item.value })"
@
click=
"(item.click &&
item.disabled != 'Y' && scope.row.disabled != 'Y'
) ? item.click(scope,
{ label: item.label, value: item.value }) : handleClick(scope, { label: item.label, value: item.value })"
v-preReClick>
{{
item
.
getName
?
item
.
getName
(
scope
)
:
scope
.
row
[
item
.
field
]
}}
</span>
<span
v-else
>
--
</span>
...
...
@@ -635,6 +636,9 @@ onMounted(() => {
handleClick(scope,
{ label: '添加子菜单', value: 'menu' })
" v-preReClick>添加子菜单
</span>
</
template
>
<
template
v-else-if=
"!actionInfo.btns?.length"
>
<span>
--
</span>
</
template
>
</template>
</el-table-column>
<
template
#
append
>
...
...
src/utils/request.ts
View file @
52c346a
...
...
@@ -39,7 +39,7 @@ service.interceptors.request.use(
"Content-Type"
:
"multipart/form-data"
,
});
config
.
headers
.
Authorization
=
localStorage
.
getItem
(
'token'
);
config
.
headers
[
'
x-
real-ip'
]
=
localStorage
.
getItem
(
'ipAddress'
);
config
.
headers
[
'real-ip'
]
=
localStorage
.
getItem
(
'ipAddress'
);
return
config
;
}
if
(
config
.
method
==
"postjsond"
)
{
...
...
@@ -49,19 +49,19 @@ service.interceptors.request.use(
});
config
.
data
=
JSON
.
stringify
(
config
.
data
);
config
.
headers
.
Authorization
=
localStorage
.
getItem
(
'token'
);
config
.
headers
[
'
x-
real-ip'
]
=
localStorage
.
getItem
(
'ipAddress'
);
config
.
headers
[
'real-ip'
]
=
localStorage
.
getItem
(
'ipAddress'
);
return
config
;
}
if
(
config
.
responseType
==
"blob"
)
{
// 文件流,文件名称相同时会判定同一个请求。
const
userStore
=
useUserStore
();
config
.
headers
.
Authorization
=
localStorage
.
getItem
(
'token'
);
config
.
headers
[
'
x-
real-ip'
]
=
localStorage
.
getItem
(
'ipAddress'
);
config
.
headers
[
'real-ip'
]
=
localStorage
.
getItem
(
'ipAddress'
);
return
config
;
}
if
(
config
.
method
===
'obsuploadrequest'
)
{
config
.
method
=
'put'
;
config
.
headers
[
'
x-
real-ip'
]
=
localStorage
.
getItem
(
'ipAddress'
);
config
.
headers
[
'real-ip'
]
=
localStorage
.
getItem
(
'ipAddress'
);
return
config
;
}
// /**
...
...
@@ -81,7 +81,7 @@ service.interceptors.request.use(
/** 若是门户的url,则不做重复请求处理,会出现不同标签页都需要查同一个字典参数列表的 */
if
(
config
.
url
.
indexOf
(
'/portal/portal'
))
{
config
.
headers
.
Authorization
=
localStorage
.
getItem
(
'token'
);
config
.
headers
[
'
x-
real-ip'
]
=
localStorage
.
getItem
(
'ipAddress'
);
config
.
headers
[
'real-ip'
]
=
localStorage
.
getItem
(
'ipAddress'
);
return
config
;
}
/**
...
...
@@ -118,7 +118,7 @@ service.interceptors.request.use(
});
config
.
headers
.
Authorization
=
localStorage
.
getItem
(
'token'
);
config
.
headers
[
'
x-
real-ip'
]
=
localStorage
.
getItem
(
'ipAddress'
);
config
.
headers
[
'real-ip'
]
=
localStorage
.
getItem
(
'ipAddress'
);
return
config
;
};
/** 若是刷新token的请求,则不需要等refreshToken完成。 */
...
...
src/views/data_asset/damTableDataView.vue
View file @
52c346a
...
...
@@ -24,29 +24,37 @@ const tableDataLoading = ref(false);
const
tableFields
:
any
=
ref
([]);
const
isError
=
ref
(
false
);
const
getData
=
()
=>
{
tableData
.
value
=
[];
tableDataLoading
.
value
=
true
;
if
(
route
.
query
.
useGuid
)
{
isError
.
value
=
false
;
queryUseData
({
userGuid
:
route
.
query
.
useGuid
,
subjectGuid
:
route
.
query
.
guid
}).
then
((
res
:
any
)
=>
{
isError
.
value
=
false
;
tableDataLoading
.
value
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
tableData
.
value
=
res
.
data
.
datas
||
[];
tableFields
.
value
=
res
.
data
.
fields
||
[];
}
else
{
isError
.
value
=
true
ElMessage
.
error
(
res
.
msg
);
}
});
}
else
{
isError
.
value
=
false
;
queryData
(
route
.
query
.
guid
).
then
((
res
:
any
)
=>
{
tableDataLoading
.
value
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
isError
.
value
=
false
;
tableData
.
value
=
res
.
data
.
datas
||
[];
tableFields
.
value
=
res
.
data
.
fields
||
[];
}
else
{
isError
.
value
=
true
;
ElMessage
.
error
(
res
.
msg
);
}
});
...
...
@@ -134,7 +142,7 @@ const formatterPreviewDate = (row, info) => {
<
template
>
<div
class=
"table_tool_wrap"
v-loading=
"tableDataLoading"
>
<span
v-if=
"!
tableFields.length || !tableData.length
"
class=
"tips_text"
>
未导入数据时,该表数据为空。
</span>
<span
v-if=
"!
isError && (!tableFields.length || !tableData.length)
"
class=
"tips_text"
>
未导入数据时,该表数据为空。
</span>
<el-table
ref=
"tableRef"
v-show=
"tableFields.length"
:data=
"tableData"
:highlight-current-row=
"true"
stripe
border
tooltip-effect=
"light"
height=
"100%"
row-key=
"guid"
:style=
"
{ width: '100%', height: 'calc(100% - 36px)' }">
<template
v-for=
"(item, index) in (tableFields || [])"
>
...
...
src/views/data_asset/dataDelivery.vue
View file @
52c346a
...
...
@@ -179,6 +179,7 @@ const tableFields = ref([
},
{
label
:
"核验时间"
,
field
:
"verifyTime"
,
width
:
170
},
{
label
:
"交付时间"
,
field
:
"deliveryTime"
,
width
:
170
},
{
label
:
"合约状态"
,
field
:
"contractStatus"
,
type
:
"tag"
,
width
:
96
,
align
:
'center'
},
]);
const
page
=
ref
({
...
...
@@ -207,6 +208,10 @@ const tableInfo = ref({
btns
:
(
scope
)
=>
{
let
btns
:
any
=
[];
let
row
=
scope
.
row
;
let
contractStatus
=
row
.
contractStatus
;
if
(
contractStatus
==
'06'
)
{
return
btns
;
}
let
deliveryStatus
=
row
.
deliveryStatus
;
if
(
deliveryStatus
==
2
)
{
//已交付有删除按钮
btns
.
push
({
...
...
src/views/data_asset/dataUsage.vue
View file @
52c346a
...
...
@@ -43,7 +43,12 @@ const page = ref({
const
tableFields
=
ref
([
{
label
:
"序号"
,
type
:
"index"
,
width
:
56
,
align
:
"center"
},
{
label
:
"数据产品名称"
,
field
:
"dataProductName"
,
width
:
160
,
type
:
"text_btn"
,
columClass
:
'text_btn'
,
value
:
"detail"
,
click
:
(
scope
)
=>
{
label
:
"数据产品名称"
,
field
:
"dataProductName"
,
width
:
160
,
type
:
"text_btn"
,
columClass
:
'text_btn'
,
value
:
"detail"
,
disabled
:
(
scope
)
=>
{
return
scope
.
row
.
contractStatus
==
'06'
;
},
click
:
(
scope
)
=>
{
if
(
scope
.
row
.
contractStatus
==
'06'
)
{
return
;
}
router
.
push
({
name
:
'usageCatalogDetail'
,
query
:
{
...
...
@@ -57,10 +62,10 @@ const tableFields = ref([
},
{
label
:
"合约名称"
,
field
:
"contractName"
,
width
:
170
,
type
:
"text_btn"
,
columClass
:
'text_btn'
,
value
:
"detail1"
,
disabled
:
(
scope
)
=>
{
return
scope
.
row
.
isDistribute
==
'
N
'
;
return
scope
.
row
.
isDistribute
==
'
Y
'
;
},
click
:
(
scope
)
=>
{
let
isDistribute
=
scope
.
row
.
isDistribute
;
if
(
isDistribute
==
'
N
'
)
{
if
(
isDistribute
==
'
Y
'
)
{
return
;
}
//履约中的合约状态
...
...
@@ -82,6 +87,7 @@ const tableFields = ref([
},
{
label
:
"交付方"
,
field
:
"deliveryPartyName"
,
width
:
220
},
{
label
:
"交付时间"
,
field
:
"deliveryTime"
,
width
:
170
},
{
label
:
"合约状态"
,
field
:
"contractStatus"
,
type
:
"tag"
,
width
:
96
,
align
:
'center'
},
]);
const
currTableData
:
any
=
ref
({});
...
...
@@ -103,8 +109,10 @@ const tableInfo = ref({
btns
:
(
scope
)
=>
{
let
actions
=
scope
.
row
.
actions
||
{};
let
arrBtns
:
any
=
[];
for
(
let
action
in
actions
)
{
arrBtns
.
push
({
label
:
actions
[
action
],
value
:
action
,
click
:
btnHanldesMap
[
action
]
});
if
(
scope
.
row
.
contractStatus
!=
'06'
)
{
for
(
let
action
in
actions
)
{
arrBtns
.
push
({
label
:
actions
[
action
],
value
:
action
,
click
:
btnHanldesMap
[
action
]
});
}
}
arrBtns
.
push
({
label
:
'日志'
,
value
:
'log'
,
click
:
btnHanldesMap
[
'log'
]
});
return
arrBtns
;
...
...
src/views/data_asset/registerCatalogDetail.vue
View file @
52c346a
...
...
@@ -212,11 +212,11 @@ const getDetailInfo = () => {
inputParamsTableInfo
.
value
.
data
=
publicDataProductsMainRSVO
.
value
?.
reqParamListRSVOS
||
[];
respParamsTableInfo
.
value
.
data
=
publicDataProductsMainRSVO
.
value
?.
respParamListRSVOS
||
[];
if
(
fullPath
===
route
.
fullPath
)
{
document
.
title
=
`详情-
${
data
.
damName
}
`
;
document
.
title
=
foundMode
.
value
==
'download'
?
`下载详情-
${
data
.
damName
}
`
:
(
foundMode
.
value
==
'read'
?
`查看详情-
${
data
.
damName
}
`
:
`详情-
${
data
.
damName
}
`
)
;
}
let
tab
:
any
=
userStore
.
tabbar
.
find
((
tab
:
any
)
=>
tab
.
fullPath
===
fullPath
);
if
(
tab
)
{
tab
.
meta
.
title
=
`详情-
${
data
.
damName
}
`
;
tab
.
meta
.
title
=
foundMode
.
value
==
'download'
?
`下载详情-
${
data
.
damName
}
`
:
(
foundMode
.
value
==
'read'
?
`查看详情-
${
data
.
damName
}
`
:
`详情-
${
data
.
damName
}
`
);
;
}
isTextTruncated
();
if
(
detailInfo
.
value
.
isRegister
==
'Y'
)
{
...
...
@@ -348,11 +348,12 @@ const productTableInfo = ref({
actionInfo
:
{
label
:
"操作"
,
type
:
"btn"
,
show
:
!
detailInfo
.
value
.
nodeId
&&
(
route
.
query
.
foundMode
==
'read'
||
route
.
query
.
foundMode
==
'download'
),
isMore
:
false
,
width
:
130
,
btns
:
(
scope
)
=>
{
let
arrBtns
:
any
=
[];
//若是使用方,则换一个api地址
//若是使用方,则换一个api地址
。使用操作是查看时可以查看
arrBtns
.
push
({
label
:
'查看'
,
value
:
'view'
,
click
:
(
scope
)
=>
{
router
.
push
({
...
...
@@ -375,13 +376,11 @@ onBeforeMount(() => {
});
onActivated
(()
=>
{
if
(
detailInfo
.
value
?.
damName
)
{
if
(
fullPath
===
route
.
fullPath
)
{
document
.
title
=
foundMode
.
value
==
'download'
?
`下载详情-
${
detailInfo
.
value
?.
damName
}
` : (foundMode.value == 'read' ? `
查看详情
-
$
{
detailInfo
.
value
?.
damName
}
` : `
详情
-
$
{
detailInfo
.
value
?.
damName
}
`);
let tab: any = userStore.tabbar.find((tab: any) => tab.fullPath === fullPath);
if (tab) {
tab.meta.title = foundMode.value == 'download' ? `
下载详情
-
$
{
detailInfo
.
value
?.
damName
}
` : (foundMode.value == 'read' ? `
查看详情
-
$
{
detailInfo
.
value
?.
damName
}
` : `
详情
-
$
{
detailInfo
.
value
?.
damName
}
`);
}
if
(
fullPath
===
route
.
fullPath
)
{
document
.
title
=
foundMode
.
value
==
'download'
?
`下载详情-
${
route
.
query
.
name
}
`
:
(
foundMode
.
value
==
'read'
?
`查看详情-
${
route
.
query
.
name
}
`
:
`详情-
${
route
.
query
.
name
}
`
);
let
tab
:
any
=
userStore
.
tabbar
.
find
((
tab
:
any
)
=>
tab
.
fullPath
===
fullPath
);
if
(
tab
)
{
tab
.
meta
.
title
=
foundMode
.
value
==
'download'
?
`下载详情-
${
route
.
query
.
name
}
`
:
(
foundMode
.
value
==
'read'
?
`查看详情-
${
route
.
query
.
name
}
`
:
`详情-
${
route
.
query
.
name
}
`
);
}
}
if
(
assetStore
.
isRefreshDamCatalog
)
{
...
...
src/views/data_asset/registerCatalogManagement.vue
View file @
52c346a
...
...
@@ -181,11 +181,11 @@ const tableBtnClick = (scope, btn) => {
const
handleDataClick
=
(
item
)
=>
{
//同步过来的要显示详情页面。
if
(
item
.
nodeId
||
item
.
listingStatus
==
'Y'
)
{
if
(
item
.
nodeId
||
item
.
isGrounding
==
'Y'
||
item
.
isUsed
==
'Y'
)
{
router
.
push
({
// name: "registerCatalogDetail",
path
:
props
.
dataSources
==
1
?
'/data-asset/authordata-catalog/register-catalog-detail'
:
'/data-asset/register-catalog/register-catalog-detail'
,
query
:
{
guid
:
item
.
guid
,
type
:
"asset"
,
dataSources
:
props
.
dataSources
,
foundMode
:
item
.
foundMode
},
query
:
{
guid
:
item
.
guid
,
type
:
"asset"
,
dataSources
:
props
.
dataSources
,
foundMode
:
item
.
foundMode
,
name
:
item
.
damName
},
});
return
;
}
...
...
@@ -199,7 +199,7 @@ const handleDataClick = (item) => {
router
.
push
({
// name: "registerCatalogDetail",
path
:
props
.
dataSources
==
1
?
'/data-asset/authordata-catalog/register-catalog-detail'
:
'/data-asset/register-catalog/register-catalog-detail'
,
query
:
{
guid
:
item
.
guid
,
type
:
"asset"
,
dataSources
:
props
.
dataSources
,
foundMode
:
item
.
foundMode
},
query
:
{
guid
:
item
.
guid
,
type
:
"asset"
,
dataSources
:
props
.
dataSources
,
foundMode
:
item
.
foundMode
,
name
:
item
.
damName
},
});
}
};
...
...
@@ -448,11 +448,11 @@ const handleUploadClose = (itemGuid) => {
</div>
<div
class=
"v-bottom"
>
<!-- TODO,只有数据交付之后才可以编辑和删除 -->
<el-button
plain
v-if=
"!(item.isRegister == 'Y' || item.foundMode == 2 || item.foundMode == 4 || item.foundMode == 5) && !item.nodeId && item.
listingStatus
!= 'Y'"
<el-button
plain
v-if=
"!(item.isRegister == 'Y' || item.foundMode == 2 || item.foundMode == 4 || item.foundMode == 5) && !item.nodeId && item.
isGrounding != 'Y' && item.isUsed
!= 'Y'"
@
click
.
stop=
"tableBtnClick(item, 'delete')"
>
删除
</el-button>
<el-button
plain
v-if=
"!(item.isRegister == 'Y' || item.foundMode == 4) && !item.nodeId
&& item.listingStatus
!= 'Y'"
@
click
.
stop=
"handleDataClick(item)"
>
编辑
</el-button>
<el-button
plain
v-if=
"!(item.isRegister == 'Y' || item.foundMode == 4) && !item.nodeId
&& item.isGrounding != 'Y' && item.isUsed
!= 'Y'"
@
click
.
stop=
"handleDataClick(item)"
>
编辑
</el-button>
<!--
<el-button
plain
@
click
.
stop=
"handleClickUploadBtn(item)"
v-if=
"item.isRegister == 'Y'"
>
上传交付物
</el-button>
-->
<el-button
plain
@
click
.
stop=
"handleDataClick(item)"
v-if=
"(item.isRegister == 'Y') || item.nodeId"
>
详情
</el-button>
<el-button
plain
@
click
.
stop=
"handleDataClick(item)"
v-if=
"(item.isRegister == 'Y') || item.nodeId
|| item.isGrounding == 'Y' || item.isUsed == 'Y'
"
>
详情
</el-button>
</div>
</div>
</div>
...
...
src/views/data_facilitator/settleDetail.vue
View file @
52c346a
...
...
@@ -274,8 +274,8 @@ onBeforeMount(() => {
const
fileKeyNames
=
ref
({
networkAccessQualification
:
'网络接入资质认证'
,
levelProtectionEvaluationResults
:
'等级保护
(等保 2.0)
测评结果'
,
levelProtectionEvaluationExpirationTime
:
'等级保护
(等保 2.0)
测评有效期至'
,
levelProtectionEvaluationResults
:
'等级保护测评结果'
,
levelProtectionEvaluationExpirationTime
:
'等级保护测评有效期至'
,
networkSecurityFilingCertificate
:
'网络安全产品备案证明'
,
encryptionModuleAuthentication
:
'加密模块认证'
,
softwareScmStatemen
:
'软件供应链合规声明'
,
...
...
@@ -331,14 +331,14 @@ const fileKeyNames = ref({
<span
class=
"item_value"
><ellipsis-tooltip
:content=
"flowDetail.legalSocialCreditCode || '--'"
class-name=
"w100f mr8-i"
:refName=
"'tooltipOver' + 'legalSocialCreditCode'"
></ellipsis-tooltip></span>
</div>
<div
class=
"list_item"
>
<
!--
<
div
class=
"list_item"
>
<span
class=
"item_label"
>
可信凭证颁发日期:
</span>
<span
class=
"item_value"
>
{{
flowDetail
.
credentialTime
||
'--'
}}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
可信凭证证书:
</span>
<span
class=
"item_value link"
@
click=
"viewVoucherFile"
>
查看
</span>
</div>
</div>
-->
<div
class=
"list_item is_block"
>
<span
class=
"item_label"
>
IP地址列表:
</span>
<span
class=
"item_value"
>
{{
flowDetail
.
ipAddressList
?.
join
(
','
)
||
'--'
}}
</span>
...
...
@@ -441,7 +441,7 @@ const fileKeyNames = ref({
</span>
</div>
<div
v-if=
"field == 'levelProtectionEvaluationExpirationTime'"
class=
"list_item isFile"
>
<span
class=
"item_label"
:style=
"{ width: 'auto', 'text-align': 'left' }"
>
可信凭证颁发日期
</span>
<span
class=
"item_label"
:style=
"{ width: 'auto', 'text-align': 'left' }"
>
等级保护测评有效期至
</span>
<span
class=
"item_value"
>
{{ flowDetail.tdsConnectorVerifiable?.[field] || '--' }}
</span>
</div>
</template>
...
...
src/views/data_facilitator/settleStart.vue
View file @
52c346a
...
...
@@ -89,38 +89,38 @@ const baseInfoFormItems = ref([
disabled
:
true
,
required
:
false
,
},
{
type
:
"input"
,
label
:
"可信凭证颁发日期"
,
field
:
"credentialTime"
,
default
:
""
,
placeholder
:
"-"
,
clearable
:
true
,
disabled
:
true
,
required
:
false
,
col
:
"width-left no-margin-r"
,
viewBtn
:
{
label
:
"查看可信身份凭证"
,
click
:
()
=>
{
const
url
=
logonUserDetailInfo
.
value
.
trustedIdentityCredential
;
if
(
!
url
)
{
return
;
}
onUploadFilePreview
(
url
);
},
},
},
{
type
:
"input"
,
label
:
"可信身份凭证url地址"
,
field
:
"trustedIdentityCredential"
,
default
:
""
,
placeholder
:
"-"
,
clearable
:
true
,
disabled
:
true
,
visible
:
false
,
required
:
false
,
},
//
{
//
type: "input",
//
label: "可信凭证颁发日期",
//
field: "credentialTime",
//
default: "",
//
placeholder: "-",
//
clearable: true,
//
disabled: true,
//
required: false,
//
col: "width-left no-margin-r",
//
viewBtn: {
//
label: "查看可信身份凭证",
//
click: () => {
//
const url = logonUserDetailInfo.value.trustedIdentityCredential;
//
if (!url) {
//
return;
//
}
//
onUploadFilePreview(url);
//
},
//
},
//
},
//
{
//
type: "input",
//
label: "可信身份凭证url地址",
//
field: "trustedIdentityCredential",
//
default: "",
//
placeholder: "-",
//
clearable: true,
//
disabled: true,
//
visible: false,
//
required: false,
//
},
{
type
:
"input"
,
label
:
"IP地址列表"
,
...
...
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