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
e2402a3a
authored
2025-01-17 18:07:05 +0800
by
xukangle
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
fix
1 parent
e515422a
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
307 additions
and
77 deletions
src/router/modules/dataAssetRegistry.ts
src/views/data_asset/registerCatalogDetail.vue
src/views/data_asset/registerDetail.vue
src/views/data_asset/valueEvaluate.vue
src/views/data_product/productListingDetail.vue
src/router/modules/dataAssetRegistry.ts
View file @
e2402a3
...
...
@@ -131,7 +131,19 @@ const routes: RouteRecordRaw[] = [
cache
:
true
,
reuse
:
true
}
}
},
{
path
:
'register-catalog-detail'
,
name
:
'costAssessDetail'
,
component
:
()
=>
import
(
'@/views/data_asset/registerCatalogDetail.vue'
),
meta
:
{
title
:
'详情-'
,
sidebar
:
false
,
breadcrumb
:
false
,
cache
:
true
,
reuse
:
true
}
},
],
},
{
...
...
src/views/data_asset/registerCatalogDetail.vue
View file @
e2402a3
...
...
@@ -126,6 +126,7 @@ const getDetailInfo = () => {
if
(
res
.
code
==
proxy
.
$passCode
)
{
const
data
=
res
.
data
||
{};
costAssessDetail
.
value
=
data
;
console
.
log
(
'costAssessDetail'
,
costAssessDetail
.
value
);
evaDetailInfo
.
value
=
data
;
deploymentId
.
value
=
data
.
approveVO
.
camundaDeploymentId
;
processInstanceId
.
value
=
data
.
approveVO
?.
camundaInstanceId
;
...
...
@@ -246,8 +247,8 @@ const btnClick = (btn) => {
type: 'warning',
}).then(() => {
let params = {
guid: evaDetailInfo.value.approveVO.approveGuid,
flowType: evaDetailInfo.value.approveVO.flowType,
guid: evaDetailInfo.value.approveVO.approveGuid
|| costAssessDetail.value.approveVO.approveGuid
,
flowType: evaDetailInfo.value.approveVO.flowType
|| costAssessDetail.value.approveVO.flowType
,
approveStaffGuid: userData.staffGuid,
}
revokeFlowData(params).then((res: any) => {
...
...
@@ -550,25 +551,47 @@ const passDialogInfo = ref({
},
});
// const passDialogInputChange = (val, item, inlineValue) => {
// if (item.field == 'qualityScore') {
// qualityEvaluateFormItems.value[2].placeholder = `
本次评估数据资产总体质量得分为
$
{
val
}
分\
n
准确性:\
n
一致性:\
n
可访问性:\
n
规范性:\
n
完整性:
`;
// } else if (item.field == 'assessmentMoney') {
// let M = "";
// let D = "";
// let assessmentDate = inlineValue.assessmentDate;
// if (assessmentDate) {
// M = (assessmentDate.getMonth() + 1 < 10 ? '0' + (assessmentDate.getMonth() + 1) : assessmentDate.getMonth() + 1);
// D = (assessmentDate.getDate() + 1 < 10 ? '0' + assessmentDate.getDate() : assessmentDate.getDate());
// }
// assessFormItems.value[2].placeholder = `
按照本次评估目的及价值类型,该笔数据资产在评估基准日的评估值为人民币
$
{
val
}
元。本次评估结论在评估基准日后一年内有效,即自
$
{
inlineValue
.
assessmentDate
?
`
${
inlineValue
.
assessmentDate
.
getFullYear
()}
年
${
M
}
月
${
D
}
日至
${
inlineValue
.
assessmentDate
.
getFullYear
()
+
1
}
年
${
M
}
月
${
D
}
日`
:
'20*年*月*日至20*年*月*日'
}
止。超过一年,需重新举行资产评估。
`;
// } else if (item.field == 'assessmentDate') {
// let M = (val.getMonth() + 1 < 10 ? '0' + (val.getMonth() + 1) : val.getMonth() + 1);
// let D = (val.getDate() + 1 < 10 ? '0' + val.getDate() : val.getDate());
// assessFormItems.value[2].placeholder = `
按照本次评估目的及价值类型,该笔数据资产在评估基准日的评估值为人民币
$
{
inlineValue
.
assessmentMoney
?
inlineValue
.
assessmentMoney
:
'***'
}
元。本次评估结论在评估基准日后一年内有效,即自
$
{
val
?
`
${
val
.
getFullYear
()}
年
${
M
}
月
${
D
}
日至
${
val
.
getFullYear
()
+
1
}
年
${
M
}
月
${
D
}
日`
:
'20*年*月*日至20*年*月*日'
}
止。超过一年,需重新举行资产评估。
`;
// }
// }
const passDialogInputChange = (val, item, inlineValue) => {
if (item.field == 'qualityScore') {
qualityEvaluateFormItems.value[2].placeholder = `
本次评估数据资产总体质量得分为
$
{
val
}
分\
n
准确性:\
n
一致性:\
n
可访问性:\
n
规范性:\
n
完整性:
`;
} else if (item.field == 'assessmentMoney') {
console.log('val', val, item, inlineValue);
if (item.field == 'assessmentMoney') {
let M = "";
let D = "";
let assessmentDate = inlineValue.assessmentDate;
if (assessmentDate) {
M = (assessmentDate
.getMonth() + 1 < 10 ? '0' + (assessmentDate.getMonth() + 1) : assessmentDate
.getMonth() + 1);
D = (assessmentDate
.getDate() + 1 < 10 ? '0' + assessmentDate.getDate() : assessmentDate
.getDate());
M = (assessmentDate
?.getMonth() + 1 < 10 ? '0' + (assessmentDate?.getMonth() + 1) : assessmentDate?
.getMonth() + 1);
D = (assessmentDate
?.getDate() + 1 < 10 ? '0' + assessmentDate?.getDate() : assessmentDate?
.getDate());
}
assessFormItems.value[2].placeholder = `
按照本次评估目的及价值类型,该笔数据资产在评估基准日的评估值为人民币
$
{
val
}
元。本次评估结论在评估基准日后一年内有效,即自
$
{
inlineValue
.
assessmentDate
?
`
${
inlineValue
.
assessmentDate
.
getFullYear
()}
年
${
M
}
月
${
D
}
日至
${
inlineValue
.
assessmentDate
.
getFullYear
()
+
1
}
年
${
M
}
月
${
D
}
日`
:
'20*年*月*日至20*年*月*日'
}
止。超过一年,需重新举行资产评估。
`;
assessFormItems.value[2].placeholder = `
按照本次评估目的及价值类型,该笔数据资产在评估基准日的评估值为人民币
$
{
val
}
元。本次评估结论在评估基准日后一年内有效,即自
$
{
inlineValue
.
assessmentDate
?
`
${
inlineValue
.
assessmentDate
?.
getFullYear
()}
年
$
{
M
}
月
$
{
D
}
日至
$
{
inlineValue
.
assessmentDate
?
.
getFullYear
()
+
1
}
年
$
{
M
}
月
$
{
D
}
日
` : '20*年*月*日至20*年*月*日'}止。超过一年,需重新举行资产评估。`
;
}
else
if
(
item
.
field
==
'assessmentDate'
)
{
let M = (val.getMonth() + 1 < 10 ? '0' + (val.getMonth() + 1) : val.getMonth() + 1);
let D = (val.getDate() + 1 < 10 ? '0' + val.getDate() : val.getDate());
assessFormItems.value[2].placeholder = `
按照本次评估目的及价值类型,该笔数据资产在评估基准日的评估值为人民币
$
{
inlineValue
.
assessmentMoney
?
inlineValue
.
assessmentMoney
:
'***'
}
元。本次评估结论在评估基准日后一年内有效,即自
$
{
val
?
`
${
val
.
getFullYear
()}
年
${
M
}
月
${
D
}
日至
${
val
.
getFullYear
()
+
1
}
年
${
M
}
月
${
D
}
日`
:
'20*年*月*日至20*年*月*日'
}
止。超过一年,需重新举行资产评估。
`;
if
(
val
&&
!
(
val
instanceof
Date
))
{
// 如果 val 不是 Date 类型,尝试将其转换为 Date 对象
val
=
new
Date
(
val
);
}
let
M
=
(
val
?.
getMonth
()
+
1
<
10
?
'0'
+
(
val
?.
getMonth
()
+
1
)
:
val
?.
getMonth
()
+
1
);
let
D
=
(
val
?.
getDate
()
+
1
<
10
?
'0'
+
val
?.
getDate
()
:
val
?.
getDate
());
assessFormItems
.
value
[
2
].
placeholder
=
`按照本次评估目的及价值类型,该笔数据资产在评估基准日的评估值为人民币
${
inlineValue
.
assessmentMoney
?
inlineValue
.
assessmentMoney
:
'***'
}
元。本次评估结论在评估基准日后一年内有效,即自
${
val
?
`
${
val
?.
getFullYear
()}
年
$
{
M
}
月
$
{
D
}
日至
$
{
val
?.
getFullYear
()
+
1
}
年
$
{
M
}
月
$
{
D
}
日
` : '20*年*月*日至20*年*月*日'}止。超过一年,需重新举行资产评估。`
;
}
}
const
submitPromise
:
any
=
ref
(
null
);
const
passDialogBtnClick
=
(
btn
,
info
)
=>
{
...
...
@@ -639,11 +662,19 @@ const passDialogBtnClick = (btn, info) => {
return
;
}
submitPromise
.
value
=
costAssessAllow
({
guid: evaDetailInfo.value.guid,
guid
:
costAssessDetail
.
value
.
approveVO
.
approveGuid
,
bizGuid
:
costAssessDetail
.
value
.
guid
,
flowType
:
costAssessDetail
.
value
.
approveVO
.
flowType
,
approveStaffGuid
:
userData
.
staffGuid
,
assessmentMoney
:
info
.
assessmentMoney
,
assessmentDate
:
info
.
assessmentDate
,
assessmentNote
:
info
.
assessmentNote
,
assessmentFile: info.assessmentFile.map(f => f.url),
assessmentFile
:
info
.
assessmentFile
.
map
(
file
=>
{
return
{
name
:
file
.
name
,
url
:
file
.
url
}
})
||
[],
}).
then
((
res
:
any
)
=>
{
submitPromise
.
value
=
null
;
if
(
res
?.
code
==
proxy
.
$passCode
)
{
...
...
@@ -708,8 +739,8 @@ const rejectDialogBtnClick = (btn, info) => {
}
//资产登记的驳回。
let
params
=
{
guid: evaDetailInfo.value.approveVO.approveGuid,
flowType: evaDetailInfo.value.approveVO.flowType,
guid
:
evaDetailInfo
.
value
.
approveVO
.
approveGuid
||
costAssessDetail
.
value
.
approveVO
.
approveGuid
,
flowType
:
evaDetailInfo
.
value
.
approveVO
.
flowType
||
costAssessDetail
.
value
.
approveVO
.
flowType
,
approveSuggest
:
info
.
approveSuggest
,
approveStaffGuid
:
userData
.
staffGuid
,
}
...
...
@@ -730,12 +761,20 @@ const rejectDialogBtnClick = (btn, info) => {
rejectDialogInfo
.
value
.
visible
=
false
;
}
};
// 格式化金额:千位分隔符 + 保留2位小数
const
formattedAmount
=
computed
(()
=>
{
return
new
Intl
.
NumberFormat
(
'en-US'
,
{
style
:
'decimal'
,
minimumFractionDigits
:
2
,
maximumFractionDigits
:
2
}).
format
(
costAssessDetail
.
value
?.
assessmentMoney
);
});
</
script
>
<
template
>
<div
class=
"main-content"
v-loading=
"fullscreenLoading"
>
<div
class=
"detail-content"
:style=
"
{ height: detailType == 'qualityEvaluate' ? 'calc(100% - 44px)' : '100%' }">
<div
class=
"detail-content"
:style=
"
{ height: detailType == 'qualityEvaluate' || 'costAssess' ? 'calc(100% - 44px)' : '100%' }">
<div
class=
"header"
>
<div
class=
"left-img"
></div>
<div
class=
"right-main"
>
...
...
@@ -854,11 +893,10 @@ const rejectDialogBtnClick = (btn, info) => {
</el-table-column>
</el-table>
</ContentWrap>
<ContentWrap
v-if=
"route.query.type == 'qualityEvaluate'
"
id=
"id-assetContent"
title=
"附件信息"
description=
"
"
style=
"margin: 16px 16px 16px"
>
<ContentWrap
v-if=
"route.query.type == 'qualityEvaluate'
|| 'costAssess'"
id=
"id-assetContent"
title=
"附件信息
"
description=
""
style=
"margin: 16px 16px 16px"
>
<div
class=
"list_panel mt4"
>
<div
class=
"list_item is_block isFile"
v-if=
"evaDetailInfo?.qualityEvaluationFile?.length"
:style=
"{ width: '40%' }"
>
<div
class=
"list_item isFile"
v-if=
"evaDetailInfo?.qualityEvaluationFile?.length"
:style=
"{ width: '40%' }"
>
<span
class=
"item_label"
:style=
"{ width: 'auto', 'text-align': 'left' }"
>
数据质量评价收集
</span>
<span
v-for=
"(item) in (evaDetailInfo?.qualityEvaluationFile || [])"
class=
"item_value"
:style=
"{ 'padding-left': '0px' }"
>
...
...
@@ -895,6 +933,43 @@ const rejectDialogBtnClick = (btn, info) => {
</div>
</span>
</div>
<div
class=
"list_item isFile"
v-if=
"costAssessDetail?.costAssessmentFile?.length"
:style=
"{ width: '40%' }"
>
<span
class=
"item_label"
:style=
"{ width: 'auto', 'text-align': 'left' }"
>
价值评估收集附件
</span>
<span
v-for=
"(item) in (costAssessDetail?.costAssessmentFile || [])"
class=
"item_value"
:style=
"{ 'padding-left': '0px' }"
>
<div
class=
"file-operate"
>
<
template
v-if=
"item.name.substring(item.name.lastIndexOf('.') + 1) == 'xls' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'xlsx' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'csv'"
>
<img
class=
"file-img"
src=
"../../assets/images/excel.png"
/>
</
template
>
<
template
v-else-if=
"item.name.substring(item.name.lastIndexOf('.') + 1) == 'doc' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'docx'"
>
<img
class=
"file-img"
src=
"../../assets/images/word.png"
/>
</
template
>
<
template
v-else-if=
"item.name.substring(item.name.lastIndexOf('.') + 1) == 'zip'"
>
<img
class=
"file-img"
src=
"../../assets/images/zip.png"
/>
</
template
>
<
template
v-else-if=
"item.name.substring(item.name.lastIndexOf('.') + 1) == 'rar'"
>
<img
class=
"file-img"
src=
"../../assets/images/RAR.png"
/>
</
template
>
<
template
v-else-if=
"item.name.substring(item.name.lastIndexOf('.') + 1) == 'pdf'"
>
<img
class=
"file-img"
src=
"../../assets/images/PDF.png"
/>
</
template
>
<
template
v-else-if=
"item.name.substring(item.name.lastIndexOf('.') + 1) == 'png'"
>
<img
class=
"file-img"
src=
"../../assets/images/png.png"
/>
</
template
>
<
template
v-else-if=
"item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpg' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpeg'"
>
<img
class=
"file-img"
src=
"../../assets/images/jpg.png"
/>
</
template
>
<div
class=
"file-name"
>
{{ item.name }}
</div>
<div
:style=
"{ right: '36px' }"
v-if=
"item.name.substring(item.name.lastIndexOf('.') + 1) == 'pdf' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'png' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpg' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpeg'"
class=
"file-preview"
@
click=
"onUploadFilePreview(item)"
>
查看
</div>
<div
:style=
"{ right: '0px' }"
class=
"file-preview"
@
click=
"onUploadFileDownload(item)"
>
下载
</div>
</div>
</span>
</div>
</div>
</ContentWrap>
<ContentWrap
id=
"id-qualityEvaluate"
...
...
@@ -929,6 +1004,38 @@ const rejectDialogBtnClick = (btn, info) => {
</div>
</div>
</ContentWrap>
<ContentWrap
id=
"id-costAssess"
title=
"价值评估"
description=
"资产价值评估信息"
style=
"margin: 16px 16px 16px"
v-if=
"route.query.type == 'costAssess' && evaDetailInfo.assessmentMoney != null"
>
<div
class=
"list_panel"
>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
评估金额:
</span>
<span
class=
"item_value"
>
{{ formattedAmount }}
</span>
</div>
<div
class=
"list_item"
:style=
"{ width: '60%' }"
>
<span
class=
"item_label"
>
评价日期:
</span>
<span
class=
"item_value"
>
{{ costAssessDetail.assessmentDate }}
</span>
</div>
<div
class=
"list_item is_block"
>
<span
class=
"item_label"
>
价值评估说明:
</span>
<span
class=
"item_value"
>
{{ costAssessDetail.assessmentNote ?? '--' }}
</span>
</div>
<div
class=
"list_item is_block"
:style=
"{ 'max-width': '700px' }"
>
<span
class=
"item_label"
>
价值评估报告:
</span>
<span
class=
"item_value"
>
<div
class=
"file-operate"
>
<img
class=
"file-img"
src=
"../../assets/images/PDF.png"
/>
<div
class=
"file-name"
>
{{ costAssessDetail.assessmentFile?.[0]?.name }}
</div>
<div
:style=
"{ right: '36px' }"
class=
"file-preview"
@
click=
"onUploadFilePreview(costAssessDetail.assessmentFile?.[0])"
>
查看
</div>
<div
:style=
"{ right: '0px' }"
class=
"file-preview"
@
click=
"onUploadFileDownload(costAssessDetail.assessmentFile?.[0])"
>
下载
</div>
</div>
</span>
</div>
</div>
</ContentWrap>
<ContentWrap
v-if=
"route.query.type == 'qualityEvaluate' || 'costAssess'"
id=
"id-approveInfo"
title=
"审批信息"
description=
""
style=
"margin: 16px 16px 16px"
>
<ApprovalProcess
v-if=
"deploymentId"
:deploymentId=
"deploymentId"
:processInstanceId=
"processInstanceId"
>
...
...
src/views/data_asset/registerDetail.vue
View file @
e2402a3
...
...
@@ -128,6 +128,8 @@ const getDetailInfo = () => {
const
data
=
res
.
data
||
{};
costAssessDetailInfo
.
value
=
data
;
detailInfo
.
value
=
data
;
deploymentId
.
value
=
data
.
approveVO
.
camundaDeploymentId
;
processInstanceId
.
value
=
data
.
approveVO
?.
camundaInstanceId
;
// 需要显示价值评估信息
if
(
data
.
assessmentMoney
!=
null
)
{
if
(
tabsInfo
.
value
.
tabs
.
length
==
4
)
{
...
...
@@ -246,29 +248,29 @@ const getDetailInfo = () => {
}).
catch
(()
=>
{
fullscreenLoading
.
value
=
false
;
}));
ps
.
push
(
getTenantDetailInfo
(
userData
.
tenantGuid
).
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
const
data
=
res
.
data
??
{};
tentData
=
{
...
tentData
,
...
data
};
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
}));
ps
.
push
(
getTenantInfo
({
tenantName
:
userData
.
tenantName
}).
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
const
data
=
res
.
data
??
{};
tentData
=
{
...
tentData
,
...
data
};
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
}))
//
ps.push(getTenantDetailInfo(userData.tenantGuid).then((res: any) => {
//
if (res.code == proxy.$passCode) {
//
const data = res.data ?? {};
//
tentData = { ...tentData, ...data };
//
} else {
//
ElMessage.error(res.msg);
//
}
//
}));
//
ps.push(getTenantInfo({ tenantName: userData.tenantName }).then((res: any) => {
//
if (res.code == proxy.$passCode) {
//
const data = res.data ?? {};
//
tentData = { ...tentData, ...data };
//
} else {
//
ElMessage.error(res.msg);
//
}
//
}))
Promise
.
all
(
ps
).
then
(()
=>
{
fullscreenLoading
.
value
=
false
;
tenantDetail
.
value
=
tentData
;
//
tenantDetail.value = tentData;
isTextTruncated
();
})
}
else
{
let
ps
:
any
=
[]
,
tentData
=
{};
let
ps
:
any
=
[]
ps
.
push
(
getRegiaterDetail
({
guid
:
assetGuid
}).
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
const
data
=
res
.
data
||
{};
...
...
@@ -282,26 +284,25 @@ const getDetailInfo = () => {
ElMessage
.
error
(
res
.
msg
);
}
}));
ps
.
push
(
getTenantDetailInfo
(
userData
.
tenantGuid
).
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
const
data
=
res
.
data
??
{};
tentData
=
{
...
tentData
,
...
data
};
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
}));
ps
.
push
(
getTenantInfo
({
tenantName
:
userData
.
tenantName
}).
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
const
data
=
res
.
data
??
{};
tentData
=
{
...
tentData
,
...
data
};
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
}))
//
ps.push(getTenantDetailInfo(userData.tenantGuid).then((res: any) => {
//
if (res.code == proxy.$passCode) {
//
const data = res.data ?? {};
//
tentData = { ...tentData, ...data };
//
} else {
//
ElMessage.error(res.msg);
//
}
//
}));
//
ps.push(getTenantInfo({ tenantName: userData.tenantName }).then((res: any) => {
//
if (res.code == proxy.$passCode) {
//
const data = res.data ?? {};
//
tentData = { ...tentData, ...data };
//
} else {
//
ElMessage.error(res.msg);
//
}
//
}))
Promise
.
all
(
ps
).
then
(()
=>
{
fullscreenLoading
.
value
=
false
;
tenantDetail
.
value
=
tentData
;
}).
catch
(()
=>
{
fullscreenLoading
.
value
=
false
;
});
...
...
@@ -322,9 +323,39 @@ const handleExpand = () => {
isExpanded
.
value
=
!
isExpanded
.
value
;
}
// 提取到 onBeforeMount 中的请求
const
tentData
=
ref
<
any
>
({});
const
getTenantInformation
=
()
=>
{
const
ps
:
any
=
[];
ps
.
push
(
getTenantDetailInfo
(
userData
.
tenantGuid
).
then
((
res
:
any
)
=>
{
if
(
res
.
code
===
proxy
.
$passCode
)
{
const
data
=
res
.
data
??
{};
tentData
.
value
=
{
...
tentData
.
value
,
...
data
};
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
}));
ps
.
push
(
getTenantInfo
({
tenantName
:
userData
.
tenantName
}).
then
((
res
:
any
)
=>
{
if
(
res
.
code
===
proxy
.
$passCode
)
{
const
data
=
res
.
data
??
{};
tentData
.
value
=
{
...
tentData
.
value
,
...
data
};
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
}));
// 这里返回 Promise.all 来等待所有请求完成
return
Promise
.
all
(
ps
);
};
onBeforeMount
(()
=>
{
getDetailInfo
();
// getTenantDetail();
getTenantInformation
().
then
(()
=>
{
tenantDetail
.
value
=
{
...
tentData
.
value
};
// 将最终的数据赋值给 tenantDetail
}).
catch
(()
=>
{
console
.
log
(
'请求失败'
);
});
});
onActivated
(()
=>
{
...
...
@@ -593,7 +624,7 @@ const passDialogTitle = computed(() => {
}
});
const
qualityEvaluateFormItems
=
ref
([
const
qualityEvaluateFormItems
=
ref
<
any
>
([
{
label
:
'质量得分'
,
type
:
'input'
,
...
...
@@ -953,11 +984,19 @@ const passDialogBtnClick = (btn, info) => {
return
;
}
submitPromise
.
value
=
costAssessAllow
({
guid
:
detailInfo
.
value
.
guid
,
bizGuid
:
detailInfo
.
value
.
guid
,
flowType
:
detailInfo
.
value
.
approveVO
.
flowType
,
approveStaffGuid
:
userData
.
staffGuid
,
guid
:
detailInfo
.
value
.
approveVO
.
approveGuid
,
assessmentMoney
:
info
.
assessmentMoney
,
assessmentDate
:
info
.
assessmentDate
,
assessmentNote
:
info
.
assessmentNote
,
assessmentFile
:
info
.
assessmentFile
.
map
(
f
=>
f
.
url
),
assessmentFile
:
info
.
assessmentFile
.
map
(
file
=>
{
return
{
name
:
file
.
name
,
url
:
file
.
url
}
})
||
[],
}).
then
((
res
:
any
)
=>
{
submitPromise
.
value
=
null
;
if
(
res
?.
code
==
proxy
.
$passCode
)
{
...
...
@@ -1303,7 +1342,8 @@ const formattedDate = (dateVal) => {
<div class="
list_item
is_block
isFile
" :style="
{
width
:
'40%'
}
"
v-if="
((
detailType
!=
'asset'
||
assetDetailInfo
.
isEvaluationAssessment
==
'Y'
)
&&
assetDetailInfo
.
registerAttachment
?.
qualityEvaluationFile
?.
length
)
||
(
evaDetailInfo
?.
qualityEvaluationFile
?.
length
>
0
)
">
<span class="
item_label
" :style="
{
width
:
'auto'
,
'text-align'
:
'left'
}
">数据质量评价收集</span>
<span v-for="
(
item
)
in
(
evaDetailInfo
?.
qualityEvaluationFile
||
assetDetailInfo
.
registerAttachment
?.
qualityEvaluationFile
||
[])
"
<span
v-for="
(
item
)
in
(
evaDetailInfo
?.
qualityEvaluationFile
||
assetDetailInfo
.
registerAttachment
?.
qualityEvaluationFile
||
[])
"
class="
item_value
" :style="
{
'padding-left'
:
'0px'
}
">
<div class="
file
-
operate
">
<template
...
...
@@ -1453,6 +1493,44 @@ const formattedDate = (dateVal) => {
</div>
</span>
</div>
<div class="
list_item
is_block
isFile
" :style="
{
width
:
'40%'
,
'margin-right'
:
'28px'
}
"
v-if="
(
detailType
==
'costAssess'
&&
costAssessDetailInfo
.
costAssessmentFile
?.
length
)
">
<span class="
item_label
" :style="
{
width
:
'auto'
,
'text-align'
:
'left'
}
">价值评估收集附件</span>
<span v-for="
(
item
)
in
(
costAssessDetailInfo
.
costAssessmentFile
||
[])
" class="
item_value
"
:style="
{
'padding-left'
:
'0px'
}
">
<div class="
file
-
operate
">
<template
v-if="
item
.
name
.
substring
(
item
.
name
.
lastIndexOf
(
'.'
)
+
1
)
==
'xls'
||
item
.
name
.
substring
(
item
.
name
.
lastIndexOf
(
'.'
)
+
1
)
==
'xlsx'
||
item
.
name
.
substring
(
item
.
name
.
lastIndexOf
(
'.'
)
+
1
)
==
'csv'
">
<img class="
file
-
img
" src="
..
/
..
/
assets
/
images
/
excel
.
png
" />
</template>
<template
v-else-if="
item
.
name
.
substring
(
item
.
name
.
lastIndexOf
(
'.'
)
+
1
)
==
'doc'
||
item
.
name
.
substring
(
item
.
name
.
lastIndexOf
(
'.'
)
+
1
)
==
'docx'
">
<img class="
file
-
img
" src="
..
/
..
/
assets
/
images
/
word
.
png
" />
</template>
<template v-else-if="
item
.
name
.
substring
(
item
.
name
.
lastIndexOf
(
'.'
)
+
1
)
==
'zip'
">
<img class="
file
-
img
" src="
..
/
..
/
assets
/
images
/
zip
.
png
" />
</template>
<template v-else-if="
item
.
name
.
substring
(
item
.
name
.
lastIndexOf
(
'.'
)
+
1
)
==
'rar'
">
<img class="
file
-
img
" src="
..
/
..
/
assets
/
images
/
RAR
.
png
" />
</template>
<template v-else-if="
item
.
name
.
substring
(
item
.
name
.
lastIndexOf
(
'.'
)
+
1
)
==
'pdf'
">
<img class="
file
-
img
" src="
..
/
..
/
assets
/
images
/
PDF
.
png
" />
</template>
<template v-else-if="
item
.
name
.
substring
(
item
.
name
.
lastIndexOf
(
'.'
)
+
1
)
==
'png'
">
<img class="
file
-
img
" src="
..
/
..
/
assets
/
images
/
png
.
png
" />
</template>
<template
v-else-if="
item
.
name
.
substring
(
item
.
name
.
lastIndexOf
(
'.'
)
+
1
)
==
'jpg'
||
item
.
name
.
substring
(
item
.
name
.
lastIndexOf
(
'.'
)
+
1
)
==
'jpeg'
">
<img class="
file
-
img
" src="
..
/
..
/
assets
/
images
/
jpg
.
png
" />
</template>
<div class="
file
-
name
"
>
{{
item
.
name
}}
<
/div
>
<
div
:
style
=
"
{
right
:
'36px'
}
"
v-if="
item
.
name
.
substring
(
item
.
name
.
lastIndexOf
(
'.'
)
+
1
)
==
'pdf'
||
item
.
name
.
substring
(
item
.
name
.
lastIndexOf
(
'.'
)
+
1
)
==
'png'
||
item
.
name
.
substring
(
item
.
name
.
lastIndexOf
(
'.'
)
+
1
)
==
'jpg'
||
item
.
name
.
substring
(
item
.
name
.
lastIndexOf
(
'.'
)
+
1
)
==
'jpeg'
"
class="
file
-
preview
" @click="
onUploadFilePreview
(
item
)
">查看</div>
<div :style="
{
right
:
'0px'
}
" class="
file
-
preview
" @click="
onUploadFileDownload
(
item
)
">下载</div>
</div>
</span>
</div>
<!-- <span
v-if="
tenantDetail
.
businessLicense
?.
length
||
assetDetailInfo
.
registerAttachment
?.
commitmentLetter
?.
length
"
class="
small
-
title
" :style="
{
marginTop
:
'10px'
}
">公司信息</span> -->
...
...
src/views/data_asset/valueEvaluate.vue
View file @
e2402a3
...
...
@@ -41,7 +41,7 @@ const attachDataInfo: any = ref({});
const
tableFields
=
ref
([
{
label
:
"序号"
,
type
:
"index"
,
width
:
56
,
align
:
"center"
},
{
label
:
"资产名称"
,
field
:
"daName"
,
width
:
160
,
align
:
"left"
},
{
label
:
"资产名称"
,
field
:
"daName"
,
width
:
160
,
align
:
"left"
,
type
:
'text_btn'
,
value
:
'productDetail'
,
columClass
:
'text_btn'
},
{
label
:
"登记时间"
,
field
:
"registerTime"
,
width
:
120
},
// { label: "企业名称", field: "tenantName", width: 240, align: "left" },
{
label
:
"评估机构"
,
field
:
"issuingEntityName"
,
width
:
250
,
align
:
"left"
},
...
...
@@ -184,6 +184,7 @@ const handleCreate = () => {
ElMessage
.
warning
(
'当前没有可发起价值评估的资产!'
);
return
;
}
formItems
.
value
[
4
].
placeholder
=
`本次评估数据资产总体质量得分为**分\n准确性:\n一致性:\n可访问性:\n规范性:\n完整性:`
;
formItems
.
value
[
0
].
visible
=
true
;
formItems
.
value
[
0
].
default
=
''
;
formItems
.
value
[
1
].
visible
=
true
;
...
...
@@ -313,20 +314,20 @@ const tableBtnClick = (scope, btn) => {
currTableData
.
value
=
row
;
if
(
type
==
"redit"
)
{
if
(
!
row
.
registerGuid
)
{
formItems
.
value
[
2
].
visible
=
fals
e
;
formItems
.
value
[
3
].
visible
=
fals
e
;
formItems
.
value
[
4
].
visible
=
fals
e
;
formItems
.
value
[
5
].
visible
=
fals
e
;
formItems
.
value
[
2
].
visible
=
tru
e
;
formItems
.
value
[
3
].
visible
=
tru
e
;
formItems
.
value
[
4
].
visible
=
tru
e
;
formItems
.
value
[
5
].
visible
=
tru
e
;
formItems
.
value
[
0
].
visible
=
false
;
formItems
.
value
[
0
].
default
=
row
.
damGuid
;
formItems
.
value
[
1
].
default
=
row
.
costAssessmentFile
||
[];
dialogInfo
.
value
.
type
=
'reSubmit'
;
dialogInfo
.
value
.
visible
=
true
;
}
else
{
formItems
.
value
[
2
].
visible
=
tru
e
;
formItems
.
value
[
3
].
visible
=
tru
e
;
formItems
.
value
[
4
].
visible
=
tru
e
;
formItems
.
value
[
5
].
visible
=
tru
e
;
formItems
.
value
[
2
].
visible
=
fals
e
;
formItems
.
value
[
3
].
visible
=
fals
e
;
formItems
.
value
[
4
].
visible
=
fals
e
;
formItems
.
value
[
5
].
visible
=
fals
e
;
formItems
.
value
[
0
].
visible
=
false
;
formItems
.
value
[
0
].
default
=
row
.
damGuid
;
formItems
.
value
[
1
].
default
=
row
.
costAssessmentFile
||
[];
...
...
@@ -371,12 +372,12 @@ const tableBtnClick = (scope, btn) => {
}
else
if
(
type
===
'detail'
)
{
// 详情
if
(
row
.
registerApproveState
==
'Y'
)
{
router
.
push
({
name
:
'registerDetail'
,
name
:
'register
Value
Detail'
,
query
:
{
guid
:
row
.
registerGuid
,
costAssessGuid
:
row
.
guid
,
type
:
'costAssess'
,
daTenantGuid
:
row
.
tenantGuid
}
});
}
else
{
router
.
push
({
name
:
'
evaCatalog
Detail'
,
name
:
'
costAssess
Detail'
,
query
:
{
guid
:
row
.
damGuid
,
costAssessGuid
:
row
.
guid
,
type
:
'costAssess'
}
});
}
...
...
@@ -560,7 +561,9 @@ const formItems = ref<any>([
{
label
:
'质量评估结果'
,
type
:
'textarea'
,
placeholder
:
'请输入质量评估结果'
,
focusValue
:
true
,
example
:
'示例:本次评估数据资产总体质量得分为99.80分。从评价维度分析,准确性、一致性和可访问性均为 100 分;规范性 99.42 分、完整性 99.50分。'
,
placeholder
:
`本次评估数据资产总体质量得分为**分\n准确性:\n一致性:\n可访问性:\n规范性:\n完整性:`
,
field
:
'evaluationNote'
,
default
:
''
,
maxlength
:
250
,
...
...
@@ -595,12 +598,41 @@ const formRules = ref({
callback
();
}
},
trigger
:
'change'
}]
}],
qualityScore
:
[
{
required
:
true
,
trigger
:
'change'
,
message
:
"请填写质量评分"
}
],
evaluationRange
:
[
{
required
:
true
,
trigger
:
'change'
,
message
:
"请填写数据时间范围"
}
],
evaluationNote
:
[{
validator
:
(
rule
:
any
,
value
:
any
,
callback
:
any
)
=>
{
if
(
!
value
)
{
callback
(
new
Error
(
'请填写质量评价说明'
));
return
;
}
if
(
value
&&
value
.
length
>
500
)
{
callback
(
new
Error
(
'请填写小于500个字的质量评价说明'
));
return
;
}
callback
();
},
trigger
:
"blur"
,
}],
evaluationFile
:
[{
validator
:
(
rule
:
any
,
value
:
any
,
callback
:
any
)
=>
{
if
(
!
value
?.
length
)
{
callback
(
new
Error
(
'请上传质量报告'
))
}
else
{
callback
();
}
},
trigger
:
'change'
}],
});
const
dialogInfo
=
ref
({
visible
:
false
,
size
:
5
10
,
size
:
6
10
,
direction
:
"column"
,
header
:
{
title
:
"价值评估发起"
,
...
...
@@ -717,6 +749,7 @@ const dialogBtnClick = (btn, info) => {
dialogInfo
.
value
.
visible
=
false
;
page
.
value
.
curr
=
1
;
getTableData
();
formItems
.
value
[
4
].
placeholder
=
`本次评估数据资产总体质量得分为**分\n准确性:\n一致性:\n可访问性:\n规范性:\n完整性:`
;
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
...
...
src/views/data_product/productListingDetail.vue
View file @
e2402a3
...
...
@@ -1492,7 +1492,7 @@ const timeRangeInfo = computed(() => {
if
(
flowDetail
.
value
.
timeAreaStart
&&
flowDetail
.
value
.
timeAreaEnd
)
{
const
startDate
=
flowDetail
.
value
.
timeAreaStart
.
split
(
'T'
)[
0
];
const
endDate
=
flowDetail
.
value
.
timeAreaEnd
.
split
(
'T'
)[
0
];
return
`
${
startDate
}
-
${
endDate
}
`
;
return
`
${
startDate
}
至
${
endDate
}
`
;
}
return
'--'
;
});
...
...
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