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
9fbd7335
authored
2025-01-13 17:08:46 +0800
by
xukangle
Browse Files
Options
Browse Files
Tag
Download
Plain Diff
Merge branch 'develop' into dev_20241202_xukangle
2 parents
fc2f9600
e12d0c17
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
497 additions
and
361 deletions
.env.development
.env.product
src/api/modules/queryService.ts
src/router/modules/dataAssetRegistry.ts
src/store/modules/user.ts
src/views/data_asset/qualityEvaluate.vue
src/views/data_asset/registerDetail.vue
src/views/data_asset/registerManagemant.vue
src/views/data_asset/registerStart.vue
src/views/data_inventory/taskDetail.vue
src/views/data_meta/metadataQuery.vue
src/views/data_quality/analysisReport.vue
src/views/data_quality/assessDetail.vue
src/views/data_quality/assessTemplate.vue
src/views/data_quality/qualityRules.vue
src/views/data_quality/ruleForm.vue
src/views/data_quality/ruleModel.vue
src/views/data_quality/ruleTemplate.vue
.env.development
View file @
9fbd733
...
...
@@ -37,7 +37,7 @@ VITE_BPMN_URL = https://workflow-swzl-test.csbr.cn
VITE_APP_WORK_FLOW_URL = 'ms-daop-workflow-service'
# 数据标准、元数据、数据目录 接口地址
VITE_APP_PLAN_BASEURL = ms-daop-
zcgl-
data-plan-service
VITE_APP_PLAN_BASEURL = ms-daop-data-plan-service
#数据质量接口地址
VITE_APP_QUALITY_BASEURL = ms-daop-data-quality-service
...
...
.env.product
View file @
9fbd733
...
...
@@ -71,7 +71,7 @@ VITE_BPMN_URL = https://workflow-swzl-test.csbr.cn
VITE_APP_WORK_FLOW_URL = 'ms-daop-workflow-service'
# 数据标准、元数据、数据目录 接口地址
VITE_APP_PLAN_BASEURL = ms-daop-
zcgl-
data-plan-service
VITE_APP_PLAN_BASEURL = ms-daop-data-plan-service
#数据质量接口地址
VITE_APP_QUALITY_BASEURL = ms-daop-data-quality-service
...
...
src/api/modules/queryService.ts
View file @
9fbd733
...
...
@@ -84,9 +84,8 @@ export const getProduct = (params) => request({
})
// 查看平台会员详情
export const getTenantDetailInfo = (params) => request({
url: `
$
{
import
.
meta
.
env
.
VITE_APP_API_BASEURL
}
/tenant/
data
/
detail
`,
method: 'get',
params
url: `
$
{
import
.
meta
.
env
.
VITE_APP_PERSONAL_URL
}
/tenant/g
etByGuid
/
$
{
params
}
`,
method: 'get'
})
...
...
@@ -123,7 +122,7 @@ export const getServiceTenants = (params) => request({
/** 获取会员的附件模板 */
export const getTenantAttach = (params) => request({
url: `
$
{
import
.
meta
.
env
.
VITE_APP_
API_BASE
URL
}
/attachment-template/
list
-
attachment
?
tenantGuid
=
$
{
params
}
`,
url: `
$
{
import
.
meta
.
env
.
VITE_APP_
PERSONAL_
URL
}
/attachment-template/
list
-
attachment
?
tenantGuid
=
$
{
params
}
`,
method: 'get'
})
...
...
src/router/modules/dataAssetRegistry.ts
View file @
9fbd733
...
...
@@ -35,7 +35,7 @@ const routes: RouteRecordRaw[] = [
reuse
:
true
},
beforeEnter
:
(
to
,
from
)
=>
{
to
.
meta
.
title
=
to
.
query
.
type
==
'
edit'
?
`编辑-
${
to
.
query
.
name
}
`
:
'新建资产登记'
;
to
.
meta
.
title
=
to
.
query
.
type
==
'
create'
?
'新建资产登记'
:
`编辑-
${
to
.
query
.
name
}
`
;
to
.
meta
.
editPage
=
true
;
}
},
...
...
src/store/modules/user.ts
View file @
9fbd733
...
...
@@ -4,7 +4,7 @@ import router from '@/router'
import
{
ElMessage
}
from
'element-plus'
import
apiUser
from
'@/api/modules/user'
import
{
getCurrentTime
}
from
'@/utils/common'
import
{
getSystemMenu
,
getUserInfo
,
getTokenByCode
,
loginOut
,
refreshToken
,
editPasswordInterface
,
getCurrentUserInfo
,
getCurrentUserInfo
}
from
'@/api/modules/queryService'
import
{
getSystemMenu
,
getUserInfo
,
getTokenByCode
,
loginOut
,
refreshToken
,
editPasswordInterface
,
getCurrentUserInfo
}
from
'@/api/modules/queryService'
const
useUserStore
=
defineStore
(
// 唯一ID
...
...
src/views/data_asset/qualityEvaluate.vue
View file @
9fbd733
src/views/data_asset/registerDetail.vue
View file @
9fbd733
...
...
@@ -27,6 +27,7 @@ import {
getTenantDetailInfo
,
getImageContent
}
from
"@/api/modules/queryService"
;
import
{
passFlowData
,
rejectFlowData
,
revokeFlowData
}
from
"@/api/modules/workFlowService"
;
import
useDataAssetStore
from
"@/store/modules/dataAsset"
;
import
{
changeNum
,
getDownloadUrl
,
download
}
from
'@/utils/common'
;
...
...
@@ -256,16 +257,10 @@ const getDetailInfo = () => {
fullscreenLoading
.
value
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
const
data
=
res
.
data
||
{};
let
{
approveVO
}
=
data
;
detailInfo
.
value
=
data
;
assetDetailInfo
.
value
=
data
;
deploymentId
.
value
=
data
.
camundaDeploymentId
;
// if (fullPath === route.fullPath) {
// document.title = `详情-${data.daName}`;
// }
// let tab: any = userStore.tabbar.find((tab: any) => tab.fullPath === fullPath);
// if (tab) {
// tab.meta.title = `详情-${data.daName}`;
// }
deploymentId
.
value
=
approveVO
.
camundaDeploymentId
;
isTextTruncated
();
}
else
{
ElMessage
.
error
(
res
.
msg
);
...
...
@@ -290,7 +285,7 @@ const handleExpand = () => {
onBeforeMount
(()
=>
{
getDetailInfo
();
getTenantDetail
();
daTenantGuid
.
value
&&
getTenantDetail
();
});
onActivated
(()
=>
{
...
...
@@ -405,7 +400,7 @@ const tenantDetail: any = ref({});
/** 获取当前登录会员,服务商,企业等详情。 */
const
getTenantDetail
=
()
=>
{
getTenantDetailInfo
(
{
guid
:
daTenantGuid
.
value
}
).
then
((
res
:
any
)
=>
{
getTenantDetailInfo
(
daTenantGuid
.
value
).
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
const
data
=
res
.
data
??
{};
tenantDetail
.
value
=
data
;
...
...
@@ -502,10 +497,11 @@ const btnClick = (btn) => {
type
:
'warning'
,
}).
then
(()
=>
{
let
params
=
{
bizGuid
:
detailInfo
.
value
.
guid
,
funcCode
:
detailInfo
.
value
.
funcCode
guid
:
detailInfo
.
value
.
approveVO
.
approveGuid
,
flowType
:
detailInfo
.
value
.
approveVO
.
flowType
,
approveStaffGuid
:
userData
.
staffGuid
,
}
re
gisterApproveCancel
(
params
).
then
((
res
:
any
)
=>
{
re
vokeFlowData
(
params
).
then
((
res
:
any
)
=>
{
if
(
res
?.
code
==
proxy
.
$passCode
)
{
if
(
res
.
data
)
{
ElMessage
.
success
(
'该审批流程撤销成功!'
);
...
...
@@ -849,11 +845,12 @@ const passDialogBtnClick = (btn, info) => {
return
;
}
let
params
=
{
bizGuid
:
detailInfo
.
value
.
guid
,
funcCode
:
detailInfo
.
value
.
funcCode
,
approveSuggest
:
info
.
approveSuggest
guid
:
detailInfo
.
value
.
approveVO
.
approveGuid
,
flowType
:
detailInfo
.
value
.
approveVO
.
flowType
,
approveSuggest
:
info
.
approveSuggest
,
approveStaffGuid
:
userData
.
staffGuid
,
}
submitPromise
.
value
=
registerApproveAllow
(
params
).
then
((
res
:
any
)
=>
{
submitPromise
.
value
=
passFlowData
(
params
).
then
((
res
:
any
)
=>
{
submitPromise
.
value
=
null
;
if
(
res
?.
code
==
proxy
.
$passCode
)
{
if
(
res
.
data
)
{
...
...
@@ -986,11 +983,12 @@ const rejectDialogBtnClick = (btn, info) => {
}
//资产登记的驳回。
let
params
=
{
bizGuid
:
detailInfo
.
value
.
guid
,
funcCode
:
detailInfo
.
value
.
funcCode
,
approveSuggest
:
info
.
approveSuggest
guid
:
detailInfo
.
value
.
approveVO
.
approveGuid
,
flowType
:
detailInfo
.
value
.
approveVO
.
flowType
,
approveSuggest
:
info
.
approveSuggest
,
approveStaffGuid
:
userData
.
staffGuid
,
}
re
gisterApproveBackup
(
params
).
then
((
res
:
any
)
=>
{
re
jectFlowData
(
params
).
then
((
res
:
any
)
=>
{
if
(
res
?.
code
==
proxy
.
$passCode
)
{
if
(
res
.
data
)
{
ElMessage
.
success
(
'驳回成功'
);
...
...
@@ -1136,17 +1134,22 @@ const handleClickDamCatalogDetail = () => {
assetDetailInfo
.
isPersonalInfo
==
'Y'
?
'涉及个人信息'
:
'不涉及个人信息'
}}
<
/div
>
<
/div
>
<
div
style
=
"display: flex"
>
<
div
v
-
if
=
"tabsInfo.tabs.find(t => t.name == 'qualityEvaluate')"
class
=
"right-label"
:
style
=
"
{
'margin-right'
:
tabsInfo
.
tabs
.
find
(
t
=>
t
.
name
==
'costAssess'
)
?
'8px'
:
'0px'
}
">评分:<span
style="
color
:
var
(
--
el
-
color
-
primary
);
font
-
weight
:
600
;
font
-
size
:
16
px
;
"
>
{{
evaDetailInfo
.
qualityScore
+
'分'
}}
<
/span
>
<
div
v
-
if
=
"tabsInfo.tabs.find(t => t.name == 'qualityEvaluate')"
class
=
"right-label"
:
style
=
"
{
'margin-right'
:
tabsInfo
.
tabs
.
find
(
t
=>
t
.
name
==
'costAssess'
)
?
'8px'
:
'0px'
}
">
评分:<span style="
color
:
var
(
--
el
-
color
-
primary
);
font
-
weight
:
600
;
font
-
size
:
16
px
;
"
>
{{
evaDetailInfo
.
qualityScore
+
'分'
}}
<
/span
>
<
/div
>
<
div
v
-
if
=
"tabsInfo.tabs.find(t => t.name == 'costAssess')"
class
=
"right-label"
>
价值:
<
span
style
=
"color: var(--el-color-primary);font-weight: 600;font-size: 16px"
>
{{
changeNum
(
costAssessDetailInfo
.
assessmentMoney
??
0
,
2
,
true
)
+
'元'
}}
<
/span
>
style
=
"color: var(--el-color-primary);font-weight: 600;font-size: 16px"
>
{{
changeNum
(
costAssessDetailInfo
.
assessmentMoney
??
0
,
2
,
true
)
+
'元'
}}
<
/span
>
<
/div
>
<
/div
>
<
/div
>
<
div
class
=
"applicationScenarios"
:
style
=
"
{
'margin-right'
:
(
isTruncated
&&
!
isExpanded
)
?
'30px'
:
'0px'
,
WebkitLineClamp
:
(
!
isTruncated
?
'inherit'
:
(
isExpanded
?
'inherit'
:
2
)),
WebkitBoxOrient
:
'vertical'
}"
>
{{
assetDetailInfo
.
applicationScenarios
||
'--'
}}
<
span
v
-
if
=
"isTruncated"
class
=
"text_btn expand_btn"
:
style
=
"
{
position
:
isExpanded
?
'inherit'
:
'absolute'
,
'margin-left'
:
isExpanded
?
'4px'
:
'0px'
}
" @click="
handleExpand
()
"
v
-
preReClick
>
{{
isExpanded
?
{{
assetDetailInfo
.
applicationScenarios
||
'--'
}}
<
span
v
-
if
=
"isTruncated"
class
=
"text_btn expand_btn"
:
style
=
"
{
position
:
isExpanded
?
'inherit'
:
'absolute'
,
'margin-left'
:
isExpanded
?
'4px'
:
'0px'
}
"
@click="
handleExpand
()
"
v
-
preReClick
>
{{
isExpanded
?
'收起'
:
'展开'
}}
<
/span></
div
>
<
/div
>
<
/div
>
...
...
@@ -1164,10 +1167,11 @@ const handleClickDamCatalogDetail = () => {
<
/div
>
<
div
class
=
"list_item"
>
<
span
class
=
"item_label"
>
所属行业
:
<
/span
>
<
span
class
=
"item_value"
><
ellipsis
-
tooltip
:
content
=
"(assetDetailInfo.ownIndustryName?.filter(u => u != '其他')?.join(',') +
<
span
class
=
"item_value"
><
ellipsis
-
tooltip
:
content
=
"(assetDetailInfo.ownIndustryName?.filter(u => u != '其他')?.join(',') +
(assetDetailInfo.ownIndustry?.includes(4)
? ((assetDetailInfo.ownIndustryName?.length > 1 ? ',' : '') + assetDetailInfo.ownIndustryOther) : '')) ?? '--'
"
class
-
name
=
"w100f"
:
refName
=
"'tooltipOver' + 'ownIndustryName'"
><
/ellipsis-tooltip></
span
>
? ((assetDetailInfo.ownIndustryName?.length > 1 ? ',' : '') + assetDetailInfo.ownIndustryOther) : '')) ?? '--'"
class
-
name
=
"w100f
"
:
refName
=
"'tooltipOver' + 'ownIndustryName'"
><
/ellipsis-tooltip></
span
>
<
/div
>
<
div
class
=
"list_item"
>
<
span
class
=
"item_label"
>
本次登记
:
<
/span
>
...
...
@@ -1176,11 +1180,19 @@ const handleClickDamCatalogDetail = () => {
<
/div
>
<
div
class
=
"list_item"
>
<
span
class
=
"item_label"
>
数据规模
(
条
):
<
/span
>
<
span
class
=
"item_value"
>
{{
assetDetailInfo
.
dataScale
!=
null
?
changeNum
(
assetDetailInfo
.
dataScale
,
0
)
:
'--'
}}
<
/span
>
<
span
class
=
"item_value"
>
{{
assetDetailInfo
.
dataScale
!=
null
?
changeNum
(
assetDetailInfo
.
dataScale
,
0
)
:
'--'
}}
<
/span
>
<
/div
>
<
div
class
=
"list_item"
>
<
span
class
=
"item_label"
>
所属主题
:
<
/span
>
<
span
class
=
"item_value"
>
{{
assetDetailInfo
.
subjectDomainName
||
assetDetailInfo
.
subjectDomain
||
'--'
}}
<
/span
>
<
span
class
=
"item_value"
>
{{
assetDetailInfo
.
subjectDomainName
||
assetDetailInfo
.
subjectDomain
||
'--'
}}
<
/span
>
<
/div
>
<
div
class
=
"list_item"
v
-
if
=
"assetDetailInfo.damGuid"
>
<
span
class
=
"item_label"
>
数据来源
:
<
/span
>
<
span
class
=
"item_value"
>
{{
dataSourcesList
.
find
(
d
=>
d
.
value
==
assetDetailInfo
.
dataSources
)?.
label
||
'--'
}}
<
/span
>
<
/div
>
<
/div
>
<
div
class
=
"first-col"
style
=
"width: 250px;"
>
...
...
@@ -1199,12 +1211,18 @@ const handleClickDamCatalogDetail = () => {
+
assetDetailInfo
.
updateFrequencyOther
)
:
''
))
??
'--'
}}
<
/span
>
<
/div
>
<
div
class
=
"list_item"
>
<
span
class
=
"item_label"
>
质量及价值评估
:
<
/span
>
<
span
class
=
"item_value"
>
{{
assetDetailInfo
.
isEvaluationAssessment
==
'Y'
?
'是'
:
'否'
}}
<
/span
>
<
span
class
=
"item_label"
>
是否完成质量评估
:
<
/span
>
<
span
class
=
"item_value"
>
{{
assetDetailInfo
.
isQualityAssessment
==
'Y'
?
'是'
:
'否'
}}
<
/span
>
<
/div
>
<
div
class
=
"list_item"
v
-
if
=
"(detailType == 'asset' && assetDetailInfo.isQualityAssessment == 'Y')"
>
<
span
class
=
"item_label"
>
质量评估机构
:
<
/span
>
<
span
class
=
"item_value"
>
{{
assetDetailInfo
.
registerAttachment
.
qualityEvaluationInstitution
||
'--'
}}
<
/span
>
<
/div
>
<
div
class
=
"list_item"
>
<
span
class
=
"item_label"
>
病例总数
(
例
):
<
/span
>
<
span
class
=
"item_value"
>
{{
assetDetailInfo
.
caseNumber
?
changeNum
(
assetDetailInfo
.
caseNumber
,
0
)
:
'--'
}}
<
/span
>
<
span
class
=
"item_value"
>
{{
assetDetailInfo
.
caseNumber
?
changeNum
(
assetDetailInfo
.
caseNumber
,
0
)
:
'--'
}}
<
/span
>
<
/div
>
<
div
class
=
"list_item"
v
-
if
=
"assetDetailInfo.damGuid"
>
<
span
class
=
"item_label"
>
数据库类型
:
<
/span
>
...
...
@@ -1214,17 +1232,17 @@ const handleClickDamCatalogDetail = () => {
<
div
class
=
"last-col"
>
<
div
class
=
"list_item"
>
<
span
class
=
"item_label"
>
覆盖地域
:
<
/span
>
<
span
class
=
"item_value"
><
ellipsis
-
tooltip
:
content
=
"assetDetailInfo.coverageArea?.[0]?.[0] == 'all' ? '全国' : (assetDetailInfo.coverageAreaName?.map(c =>
c.join('/')).join(',') ?? '--')"
class
-
name
=
"w100f pr8"
:
refName
=
"'tooltipOver' + 'coverageAreaName'"
><
/ellipsis-tooltip></
span
>
<
span
class
=
"item_value"
><
ellipsis
-
tooltip
:
content
=
"assetDetailInfo.coverageArea?.[0]?.[0] == 'all' ? '全国' : (assetDetailInfo.coverageAreaName?.map(c =>
c.join('/')).join(',') ?? '--')"
class
-
name
=
"w100f pr8"
:
refName
=
"'tooltipOver' + 'coverageAreaName'"
><
/ellipsis-tooltip></
span
>
<
/div
>
<
div
class
=
"list_item"
>
<
span
class
=
"item_label"
>
取得方式
:
<
/span
>
<
span
class
=
"item_value"
><
ellipsis
-
tooltip
:
content
=
"(assetDetailInfo.dataGetWayName?.filter(u => u != '其他')?.join(',') +
<
span
class
=
"item_value"
><
ellipsis
-
tooltip
:
content
=
"(assetDetailInfo.dataGetWayName?.filter(u => u != '其他')?.join(',') +
(assetDetailInfo.dataGetWay?.includes(8) ?
((assetDetailInfo.dataGetWayName?.length > 1 ? ',' : '') + assetDetailInfo.dataGetWayOther) : '')) ?? '--'
"
class
-
name
=
"w100f"
:
refName
=
"'tooltipOver' + 'dataGetWayName'"
><
/ellipsis-tooltip
>
((assetDetailInfo.dataGetWayName?.length > 1 ? ',' : '') + assetDetailInfo.dataGetWayOther) : '')) ?? '--'"
class
-
name
=
"w100f
"
:
refName
=
"'tooltipOver' + 'dataGetWayName'"
><
/ellipsis-tooltip
>
<
/span
>
<
/div
>
<
div
class
=
"list_item"
>
...
...
@@ -1233,16 +1251,22 @@ const handleClickDamCatalogDetail = () => {
(
assetDetailInfo
.
registeredExchangeName
?.
join
(
','
)
??
'--'
)
}}
<
/span
>
<
/div
>
<
div
class
=
"list_item"
>
<
span
class
=
"item_label"
>
是否完成价值评估
:
<
/span
>
<
span
class
=
"item_value"
>
{{
assetDetailInfo
.
isCostAssessment
==
'Y'
?
'是'
:
'否'
}}
<
/span
>
<
/div
>
<
div
class
=
"list_item"
v
-
if
=
"(detailType == 'asset' && assetDetailInfo.isCostAssessment == 'Y')"
>
<
span
class
=
"item_label"
>
价值评估机构
:
<
/span
>
<
span
class
=
"item_value"
>
{{
assetDetailInfo
.
registerAttachment
.
costAssessmentInstitution
||
'--'
}}
<
/span
>
<
/div
>
<
div
class
=
"list_item"
>
<
span
class
=
"item_label"
>
资产类型
:
<
/span
>
<
span
class
=
"item_value"
>
{{
assetDetailInfo
.
damTypeName
||
'--'
}}
<
/span
>
<
/div
>
<
div
class
=
"list_item"
>
<
span
class
=
"item_label"
>
数据时间范围
:
<
/span
>
<
span
class
=
"item_value"
>
{{
assetDetailInfo
.
dataStartDate
?
`${assetDetailInfo.dataStartDate
}
至${assetDetailInfo.dataEndDate
}
`
:
'--'
}}
<
/span
>
<
/div
>
<
div
class
=
"list_item"
v
-
if
=
"assetDetailInfo.damGuid"
>
<
span
class
=
"item_label"
>
数据来源
:
<
/span
>
<
span
class
=
"item_value"
>
{{
dataSourcesList
.
find
(
d
=>
d
.
value
==
assetDetailInfo
.
dataSources
)?.
label
||
'--'
}}
<
/span
>
<
span
class
=
"item_value"
>
{{
assetDetailInfo
.
dataStartDate
?
`${assetDetailInfo.dataStartDate
}
至${assetDetailInfo.dataEndDate
}
`
:
'--'
}}
<
/span
>
<
/div
>
<
/div
>
<
/div
>
...
...
@@ -1257,8 +1281,9 @@ const handleClickDamCatalogDetail = () => {
<!--
<
span
class
=
"small-title"
>
资产内容
<
/span> --
>
<
div
class
=
"list_item isFile"
:
style
=
"
{
width
:
'40%'
,
'margin-right'
:
'28px'
}
"
v-if="
assetDetailInfo
.
registerAttachment
?.
registerLetter
?.
length
">
<div class="
item_label
" :style="
{
width
:
'auto'
,
display
:
'flex'
,
'justify-content'
:
'space-between'
,
'margin-right'
:
'8px'
}
">
<span >数据登记承诺及收集函</span>
<div class="
item_label
"
:style="
{
width
:
'auto'
,
display
:
'flex'
,
'justify-content'
:
'space-between'
,
'margin-right'
:
'8px'
}
">
<span>数据登记承诺及收集函</span>
<span class="
text_btn
" v-if="
assetDetailInfo
.
damGuid
" @click="
handleClickDamCatalogDetail
">查看表详情</span>
</div>
<span v-for="
(
item
)
in
(
assetDetailInfo
.
registerAttachment
?.
registerLetter
||
[])
" class="
item_value
"
...
...
@@ -1334,7 +1359,7 @@ const handleClickDamCatalogDetail = () => {
</div>
</span>
</div>
<div class="
list_item
is_block
isFile
" :style="
{
width
:
'40%'
,
'margin-right'
:
'28px'
}
"
<div class="
list_item
is_block
isFile
" :style="
{
width
:
'40%'
,
'margin-right'
:
'28px'
}
"
v-if="
(
detailType
!=
'asset'
&&
detailType
!=
'qualityEvaluate'
||
assetDetailInfo
.
isEvaluationAssessment
==
'Y'
)
&&
assetDetailInfo
.
registerAttachment
?.
costAssessmentFile
?.
length
">
<span class="
item_label
" :style="
{
width
:
'auto'
,
'text-align'
:
'left'
}
">数据价值评估</span>
<span v-for="
(
item
)
in
(
assetDetailInfo
.
registerAttachment
?.
costAssessmentFile
||
[])
" class="
item_value
"
...
...
@@ -1372,6 +1397,82 @@ const handleClickDamCatalogDetail = () => {
</div>
</span>
</div>
<div class="
list_item
is_block
isFile
" :style="
{
width
:
'40%'
}
"
v-if="
(
detailType
==
'asset'
&&
assetDetailInfo
.
isQualityAssessment
==
'Y'
)
&&
assetDetailInfo
.
registerAttachment
?.
qualityEvaluationFile
?.
length
">
<span class="
item_label
" :style="
{
width
:
'auto'
,
'text-align'
:
'left'
}
">质量评估报告</span>
<span v-for="
(
item
)
in
(
assetDetailInfo
.
registerAttachment
?.
qualityEvaluationFile
||
[])
"
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 class="
list_item
is_block
isFile
" :style="
{
width
:
'40%'
,
'margin-right'
:
'28px'
}
"
v-if="
(
detailType
==
'asset'
&&
assetDetailInfo
.
isCostAssessment
==
'Y'
)
&&
assetDetailInfo
.
registerAttachment
?.
costAssessmentFile
?.
length
">
<span class="
item_label
" :style="
{
width
:
'auto'
,
'text-align'
:
'left'
}
">价值评估报告</span>
<span v-for="
(
item
)
in
(
assetDetailInfo
.
registerAttachment
?.
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/registerManagemant.vue
View file @
9fbd733
...
...
@@ -8,21 +8,9 @@ import TableTools from "@/components/Tools/table_tools.vue";
import
{
ElMessage
,
ElMessageBox
}
from
'element-plus'
;
import
{
useRouter
,
useRoute
}
from
"vue-router"
;
import
{
MoreFilled
}
from
"@element-plus/icons-vue"
;
import
{
changeNum
,
tagMethod
,
tagType
,
}
from
"@/utils/common"
;
import
{
getRegisterList
,
registerDelete
,
registerApproveCancel
,
registerApproveReSubmit
,
registerApproveAllow
,
registerApproveBackup
,
getRegisterTenant
,
getExchangeList
}
from
"@/api/modules/dataAsset"
;
import
{
changeNum
,
tagMethod
,
tagType
,
}
from
"@/utils/common"
;
import
{
getRegisterList
,
registerDelete
,
getExchangeList
}
from
"@/api/modules/dataAsset"
;
import
{
passFlowData
,
rejectFlowData
,
revokeFlowData
}
from
"@/api/modules/workFlowService"
;
import
useDataAssetStore
from
"@/store/modules/dataAsset"
;
import
useUserStore
from
"@/store/modules/user"
;
...
...
@@ -107,7 +95,39 @@ const tableFields = ref([{ label: "序号", type: "index", width: 56, align: "ce
return
scope
.
row
[
'ownIndustryName'
]?.
join
(
','
)
}
},
{
label
:
"状态"
,
field
:
"approveState"
,
type
:
"tag"
,
width
:
96
,
align
:
'center'
},
{
label
:
"状态"
,
field
:
"approveState"
,
type
:
"tag"
,
width
:
96
,
align
:
'center'
,
getName
:
(
scope
)
=>
{
const
approveVO
=
scope
.
row
.
approveVO
||
{}
switch
(
approveVO
.
approveState
)
{
case
'N'
:
return
'草稿中'
;
case
'A'
:
return
'审批中'
;
case
'Y'
:
return
'已通过'
;
case
'R'
:
return
'已驳回'
;
case
'C'
:
return
'已撤销'
;
case
'I'
:
return
'--'
;
default
:
return
'草稿中'
;
}
},
tagType
:
(
scope
)
=>
{
const
approveVO
=
scope
.
row
.
approveVO
||
{}
switch
(
approveVO
.
approveState
)
{
case
'A'
:
return
'warning'
;
case
'Y'
:
return
'success'
;
case
'R'
:
return
'danger'
;
default
:
return
'info'
;
}
}
},
{
label
:
"修改人"
,
field
:
"updateUserName"
,
width
:
140
},
{
label
:
"修改时间"
,
field
:
"updateTime"
,
width
:
180
}]);
...
...
@@ -133,7 +153,7 @@ const tableInfo = ref({
actionInfo
:
{
label
:
"操作"
,
type
:
"btn"
,
width
:
1
6
0
,
width
:
1
8
0
,
btns
:
(
scope
)
=>
{
let
row
=
scope
.
row
;
return
getTableBtns
(
row
);
...
...
@@ -142,35 +162,45 @@ const tableInfo = ref({
});
const
getTableBtns
=
(
row
,
includeDetail
=
true
)
=>
{
console
.
log
(
userData
)
let
btnsArr
:
any
[]
=
[];
if
(
row
.
approveState
==
'N'
)
{
//只有草稿中的详情是可以编辑的
includeDetail
&&
btnsArr
.
push
({
label
:
"详情"
,
value
:
"path_detail"
})
includeDetail
&&
btnsArr
.
push
({
label
:
"编辑"
,
value
:
"edit"
})
if
(
row
.
tenantGuid
==
userData
.
tenantGuid
)
{
btnsArr
.
push
({
label
:
"删除"
,
value
:
"delete"
});
const
approveVO
=
row
.
approveVO
;
const
currentStaffGuid
=
userData
.
staffGuid
const
bizApproveState
=
row
.
approveState
;
const
approveState
=
approveVO
?.
approveState
||
'N'
;
const
approveStaffGuids
=
approveVO
?.
approveStaffGuids
||
[];
const
staffGuid
=
approveVO
?.
staffGuid
||
''
;
let
isShowCancel
=
false
;
let
flowState
;
if
(
approveState
==
'N'
)
{
flowState
=
1
;
}
if
(
approveState
==
'A'
&&
approveStaffGuids
.
indexOf
(
currentStaffGuid
)
>
-
1
)
{
flowState
=
2
;
}
}
else
if
(
row
.
approveState
==
'A'
)
{
//审批中
includeDetail
&&
btnsArr
.
push
({
label
:
"详情"
,
value
:
"path_detail"
})
if
(
row
.
tenantGuid
==
userData
.
tenantGuid
)
{
btnsArr
.
push
({
label
:
"撤销"
,
value
:
"revoke"
});
if
((
approveState
==
'C'
||
approveState
==
'R'
)
&&
staffGuid
==
currentStaffGuid
)
{
flowState
=
3
;
}
if
(
row
.
approveTenantGuids
?.
includes
(
userData
.
tenantGuid
))
{
btnsArr
.
push
({
label
:
"通过"
,
value
:
"pass"
});
btnsArr
.
push
({
label
:
"驳回"
,
value
:
"backup"
});
if
(
approveVO
&&
approveVO
.
approveState
==
'A'
&&
staffGuid
==
currentStaffGuid
)
{
isShowCancel
=
true
;
}
}
else
if
(
row
.
approveState
==
'Y'
)
{
//已通过的不能删除。
includeDetail
&&
btnsArr
.
push
({
label
:
"详情"
,
value
:
"path_detail"
})
}
else
if
(
row
.
approveState
==
'R'
||
row
.
approveState
==
'C'
)
{
//已驳回或已撤销
includeDetail
&&
btnsArr
.
push
({
label
:
"编辑"
,
value
:
"edit"
});
if
(
row
.
tenantGuid
==
userData
.
tenantGuid
)
{
btnsArr
.
push
({
label
:
"重新提交"
,
value
:
"edit"
,
disabled
:
false
})
if
(
flowState
===
1
)
{
btnsArr
=
[{
label
:
"编辑"
,
value
:
"edit"
},
{
label
:
"删除"
,
value
:
"delete"
}]
}
else
{
btnsArr
.
push
({
label
:
"详情"
,
value
:
"detail"
})
if
(
flowState
===
2
)
{
btnsArr
.
push
(...[{
label
:
"通过"
,
value
:
"pass"
},
{
label
:
"驳回"
,
value
:
"reject"
}])
if
(
isShowCancel
)
{
btnsArr
.
push
({
label
:
"撤销"
,
value
:
"revoke"
})
}
}
else
if
(
flowState
===
3
)
{
if
(
bizApproveState
!=
'D'
)
{
btnsArr
.
push
({
label
:
"重新提交"
,
value
:
"edit"
})
}
if
(
row
.
tenantGuid
==
userData
.
tenantGuid
)
{
btnsArr
.
push
({
label
:
"删除"
,
value
:
"delete"
});
btnsArr
.
push
({
label
:
"删除"
,
value
:
"delete"
})
}
}
return
btnsArr
;
return
btnsArr
}
const
currTableData
:
any
=
ref
({});
...
...
@@ -195,9 +225,10 @@ const tableBtnClick = (scope, btn) => {
const
row
=
scope
.
row
;
currTableData
.
value
=
row
;
if
(
type
===
"edit"
)
{
//草稿中\已驳回\已撤销\已通过 状态,才可以编辑。
localStorage
.
setItem
(
'isRestart'
,
btn
.
label
==
'重新提交'
?
'true'
:
''
);
router
.
push
({
name
:
'registerStart'
,
query
:
{
guid
:
row
.
guid
,
damGuid
:
row
.
dam
Guid
,
name
:
row
.
daName
,
type
}
query
:
{
guid
:
row
.
guid
,
exchangeGuid
:
row
.
exchange
Guid
,
name
:
row
.
daName
,
type
}
});
}
else
if
(
type
==
"delete"
)
{
delTableOpen
(
"此操作将永久删除该资产登记,是否继续?"
,
"warning"
);
...
...
@@ -207,23 +238,26 @@ const tableBtnClick = (scope, btn) => {
cancelButtonText
:
"取消"
,
type
:
'warning'
,
}).
then
(()
=>
{
l
istDataL
oading
.
value
=
true
;
loading
.
value
=
true
;
let
params
=
{
bizGuid
:
row
.
guid
,
funcCode
:
row
.
funcCode
guid
:
row
.
approveVO
.
approveGuid
,
flowType
:
row
.
approveVO
.
flowType
,
approveStaffGuid
:
userData
.
staffGuid
,
}
re
gisterApproveCancel
(
params
).
then
((
res
:
any
)
=>
{
l
istDataL
oading
.
value
=
false
;
re
vokeFlowData
(
params
).
then
((
res
:
any
)
=>
{
loading
.
value
=
false
;
if
(
res
?.
code
==
proxy
.
$passCode
)
{
if
(
res
.
data
)
{
ElMessage
.
success
(
'该审批流程撤销成功!'
);
row
.
approveState
=
"C"
;
getTableData
()
;
}
else
{
ElMessage
.
error
(
'该审批流程撤销失败!'
);
}
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
}).
catch
(()
=>
{
loading
.
value
=
false
;
});
}).
catch
(()
=>
{
ElMessage
({
...
...
@@ -231,25 +265,14 @@ const tableBtnClick = (scope, btn) => {
message
:
'已取消撤销'
});
});
}
else
if
(
type
===
'path_detail'
)
{
// 详情, 若是草稿中,详情就是编辑,
// if (row.approveState === 'N') {
// router.push({
// name: 'registerStart',
// query: { guid: row.guid, name: row.daName, type: 'detail' }
// });
// } else {
// router.push({
// name: 'registerInfoDetail',
// query: { guid: row.guid, type: 'asset', daTenantGuid: row.tenantGuid }
// });
// }
}
else
if
(
type
===
'detail'
)
{
// 详情, 若是草稿中,详情就是编辑,
router
.
push
({
name
:
'registerInfoDetail'
,
query
:
{
guid
:
row
.
guid
,
name
:
row
.
daName
,
type
:
'asset'
}
});
}
else
if
(
type
===
'pass'
)
{
passDialogInfo
.
value
.
visible
=
true
;
}
else
if
(
type
==
'
backup
'
)
{
}
else
if
(
type
==
'
reject
'
)
{
rejectDialogInfo
.
value
.
visible
=
true
;
}
};
...
...
@@ -276,7 +299,9 @@ const delTableOpen = (msg, type, isBatch: boolean = false) => {
}).
then
(()
=>
{
let
guids
:
any
=
[];
guids
=
[
currTableData
.
value
.
guid
]
loading
.
value
=
true
;
registerDelete
(
guids
).
then
((
res
:
any
)
=>
{
loading
.
value
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
pageInfo
.
value
.
curr
=
1
;
getTableData
();
...
...
@@ -290,7 +315,9 @@ const delTableOpen = (msg, type, isBatch: boolean = false) => {
message
:
res
.
msg
,
});
}
})
}).
catch
(()
=>
{
loading
.
value
=
false
;
});
}).
catch
(()
=>
{
ElMessage
({
type
:
'info'
,
...
...
@@ -300,8 +327,7 @@ const delTableOpen = (msg, type, isBatch: boolean = false) => {
};
const
getTableData
=
()
=>
{
listDataLoading
.
value
=
true
;
tableInfo
.
value
.
loading
=
true
;
loading
.
value
=
true
;
getRegisterList
({
pageSize
:
pageInfo
.
value
.
limit
,
pageIndex
:
pageInfo
.
value
.
curr
,
...
...
@@ -310,17 +336,19 @@ const getTableData = () => {
tenantGuid
:
pageInfo
.
value
.
tenantGuid
,
exchangGuid
:
exchangGuid
.
value
}).
then
((
res
:
any
)
=>
{
listDataLoading
.
value
=
false
;
tableInfo
.
value
.
loading
=
false
;
loading
.
value
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
const
data
=
res
.
data
||
{}
listData
.
value
=
tableInfo
.
value
.
data
=
data
.
records
||
[];
// listData.value = tableInfo.value.data = data.records || [];
tableInfo
.
value
.
data
=
data
.
records
||
[]
pageInfo
.
value
.
limit
=
data
.
pageSize
pageInfo
.
value
.
curr
=
data
.
pageIndex
pageInfo
.
value
.
rows
=
data
.
totalRows
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
}).
catch
(()
=>
{
loading
.
value
=
false
;
})
}
...
...
@@ -422,14 +450,15 @@ const passDialogInfo = ref({
const
passDialogBtnClick
=
(
btn
,
info
)
=>
{
if
(
btn
.
value
==
'submit'
)
{
l
istDataL
oading
.
value
=
true
;
loading
.
value
=
true
;
let
params
=
{
bizGuid
:
currTableData
.
value
.
guid
,
funcCode
:
currTableData
.
value
.
funcCode
,
approveSuggest
:
info
.
approveSuggest
guid
:
currTableData
.
value
.
approveVO
.
approveGuid
,
flowType
:
currTableData
.
value
.
approveVO
.
flowType
,
approveSuggest
:
info
.
approveSuggest
,
approveStaffGuid
:
userData
.
staffGuid
,
}
registerApproveAllow
(
params
).
then
((
res
:
any
)
=>
{
l
istDataL
oading
.
value
=
false
;
passFlowData
(
params
).
then
((
res
:
any
)
=>
{
loading
.
value
=
false
;
if
(
res
?.
code
==
proxy
.
$passCode
)
{
if
(
res
.
data
)
{
ElMessage
.
success
(
'审批成功'
);
...
...
@@ -441,6 +470,8 @@ const passDialogBtnClick = (btn, info) => {
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
}).
catch
(()
=>
{
loading
.
value
=
false
;
});
}
else
if
(
btn
.
value
==
'cancel'
)
{
passDialogInfo
.
value
.
visible
=
false
;
...
...
@@ -489,14 +520,15 @@ const rejectDialogBtnClick = (btn, info) => {
ElMessage
.
error
(
'请填写驳回理由'
);
return
}
l
istDataL
oading
.
value
=
true
;
loading
.
value
=
true
;
let
params
=
{
bizGuid
:
currTableData
.
value
.
guid
,
funcCode
:
currTableData
.
value
.
funcCode
,
approveSuggest
:
info
.
approveSuggest
guid
:
currTableData
.
value
.
approveVO
.
approveGuid
,
flowType
:
currTableData
.
value
.
approveVO
.
flowType
,
approveSuggest
:
info
.
approveSuggest
,
approveStaffGuid
:
userData
.
staffGuid
,
}
re
gisterApproveBackup
(
params
).
then
((
res
:
any
)
=>
{
l
istDataL
oading
.
value
=
false
;
re
jectFlowData
(
params
).
then
((
res
:
any
)
=>
{
loading
.
value
=
false
;
if
(
res
?.
code
==
proxy
.
$passCode
)
{
if
(
res
.
data
)
{
ElMessage
.
success
(
'驳回成功'
);
...
...
@@ -508,6 +540,8 @@ const rejectDialogBtnClick = (btn, info) => {
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
}).
catch
(()
=>
{
loading
.
value
=
false
;
});
}
else
if
(
btn
.
value
==
'cancel'
)
{
rejectDialogInfo
.
value
.
visible
=
false
;
...
...
src/views/data_asset/registerStart.vue
View file @
9fbd733
...
...
@@ -46,6 +46,7 @@ const route = useRoute();
const
guid
=
route
.
query
.
guid
;
const
fullPath
=
route
.
fullPath
;
const
editType
=
route
.
query
.
type
;
const
exGuid
=
route
.
query
.
exchangeGuid
;
/** 资产目录列表 */
const
registerCatalogList
:
any
=
ref
([]);
...
...
@@ -157,28 +158,14 @@ const getArea = (node, resolve) => {
}
}
const
serviceTenants
:
any
=
ref
([
{
"exchangeGuid"
:
"07c11603a8bc4d8f8bee2e3a34ab4d8a"
,
"exchangeName"
:
"测试数交所"
,
"listingNum"
:
0
,
"underReviewNum"
:
0
}
]);
const
currTenantChanged
:
any
=
ref
([
{
"exchangeGuid"
:
"07c11603a8bc4d8f8bee2e3a34ab4d8a"
,
"exchangeName"
:
"测试数交所"
,
"listingNum"
:
0
,
"underReviewNum"
:
0
}
]);
const
serviceTenants
:
any
=
ref
([]);
const
currTenantChanged
:
any
=
ref
([]);
const
tenantDetail
:
any
=
ref
({});
/** 获取当前登录会员,服务商,企业等详情。 */
const
getTenantDetail
=
()
=>
{
getTenantDetailInfo
(
{
guid
:
userData
.
tenantGuid
}
).
then
((
res
:
any
)
=>
{
getTenantDetailInfo
(
userData
.
tenantGuid
).
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
const
data
=
res
.
data
??
{};
tenantDetail
.
value
=
data
;
...
...
@@ -316,10 +303,10 @@ const setUploadFormItemsValue = (info) => {
}
else
if
(
item
.
field
===
'commitmentLetter'
)
{
item
.
default
=
attach
.
commitmentLetter
||
[];
item
.
templateUrl
=
attachDataInfo
.
value
[
'commitment-letter'
];
}
else
if
(
item
.
field
===
'costAssessmentInstitution'
)
{
item
.
default
=
attach
.
costAssessmentInstitution
||
''
;
}
else
if
(
item
.
field
===
'qualityEvaluationInstitution'
)
{
item
.
default
=
attach
.
qualityEvaluationInstitution
||
''
;
}
else
if
(
item
.
field
===
'costAssessmentInstitution
Guid
'
)
{
item
.
default
=
attach
.
costAssessmentInstitution
Guid
||
''
;
}
else
if
(
item
.
field
===
'qualityEvaluationInstitution
Guid
'
)
{
item
.
default
=
attach
.
qualityEvaluationInstitution
Guid
||
''
;
}
});
}
...
...
@@ -358,10 +345,15 @@ const draftDetailInfo: any = ref({});
/** 会员附件模板 */
const
attachDataInfo
:
any
=
ref
({});
const
getRegisterCatalogListData
=
()
=>
{
const
getRegisterCatalogListData
=
(
dam
:
any
=
{}
)
=>
{
getRegisterCatalogList
().
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
baseFormItems
.
value
[
0
].
options
=
registerCatalogList
.
value
=
res
.
data
||
[]
const
data
=
res
.
data
||
[];
baseFormItems
.
value
[
0
].
options
=
registerCatalogList
.
value
=
data
;
if
(
guid
){
const
opt
=
data
.
find
(
item
=>
item
.
guid
==
dam
.
damGuid
)
baseFormItems
.
value
[
0
].
default
=
opt
?
opt
.
guid
:
dam
.
damName
}
let
dataScaleItem
=
baseFormItems
.
value
.
find
(
item
=>
item
.
field
==
'dataScale'
);
if
(
draftDetailInfo
.
value
.
damGuid
)
{
let
da
=
registerCatalogList
.
value
.
find
(
r
=>
r
.
guid
==
draftDetailInfo
.
value
.
damGuid
);
...
...
@@ -394,20 +386,20 @@ const getRegisterCatalogListData = () => {
}
onActivated
(()
=>
{
getRegisterCatalogListData
();
//
getRegisterCatalogListData();
})
onBeforeMount
(()
=>
{
if
(
guid
)
{
baseFormItems
.
value
[
7
].
default
=
guid
;
fullscreenLoading
.
value
=
true
;
getRegiaterDetail
({
guid
:
guid
}).
then
((
res
:
any
)
=>
{
fullscreenLoading
.
value
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
const
data
=
res
.
data
||
{}
let
{
approveVO
}
=
data
;
draftDetailInfo
.
value
=
data
;
deploymentId
.
value
=
data
.
camundaDeploymentId
;
processInstanceId
.
value
=
data
.
camundaInstanceId
deploymentId
.
value
=
approveVO
?
.
camundaDeploymentId
;
processInstanceId
.
value
=
approveVO
?
.
camundaInstanceId
let
coverageArea
=
''
;
let
coverageAreas
=
[];
let
damTypeItem
=
baseFormItems
.
value
.
find
(
item
=>
item
.
field
==
'damType'
);
...
...
@@ -455,17 +447,17 @@ onBeforeMount(() => {
});
}
if
(
data
.
exchangeGuid
)
{
// getTenantAttach(data.exchange
Guid).then((res: any) => {
//
if (res?.code == proxy.$passCode) {
//
Object.assign(attachDataInfo.value, res.data || {});
//
uploadFormItems.value[0].templateUrl = attachDataInfo.value.register_letter;
//
uploadFormItems.value[1].templateUrl = attachDataInfo.value['commitment-letter'];
//
setUploadFormItemsValue(draftDetailInfo.value);
//
} else {
//
ElMessage.error(res.msg);
//
setUploadFormItemsValue(draftDetailInfo.value);
//
}
//
})
getTenantAttach
(
userData
.
tenant
Guid
).
then
((
res
:
any
)
=>
{
if
(
res
?.
code
==
proxy
.
$passCode
)
{
Object
.
assign
(
attachDataInfo
.
value
,
res
.
data
||
{});
uploadFormItems
.
value
[
0
].
templateUrl
=
attachDataInfo
.
value
.
register_letter
;
uploadFormItems
.
value
[
1
].
templateUrl
=
attachDataInfo
.
value
[
'commitment-letter'
];
setUploadFormItemsValue
(
draftDetailInfo
.
value
);
}
else
{
ElMessage
.
error
(
res
.
msg
);
setUploadFormItemsValue
(
draftDetailInfo
.
value
);
}
})
setUploadFormItemsValue
(
draftDetailInfo
.
value
);
}
else
{
setUploadFormItemsValue
(
draftDetailInfo
.
value
);
...
...
@@ -490,39 +482,7 @@ onBeforeMount(() => {
}
else
{
setPropertyFormItemsValue
(
draftDetailInfo
.
value
);
}
// if (fullPath === route.fullPath) {
// document.title = editType ? `详情-${data.daName}` : `编辑-${data.daName}`;
// }
// let tab: any = userStore.tabbar.find((tab: any) => tab.fullPath === fullPath);
// if (tab) {
// tab.meta.title = editType ? `详情-${data.daName}` : `编辑-${data.daName}`;
// }
if
(
data
.
approveGuid
!=
null
)
{
approveTableInfo
.
value
.
loading
=
true
;
getApproveList
(
guid
).
then
((
res
:
any
)
=>
{
approveTableInfo
.
value
.
loading
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
console
.
log
(
res
.
data
);
approveTableInfo
.
value
.
data
=
res
.
data
||
[];
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
});
}
else
{
approveTableInfo
.
value
.
loading
=
true
;
getTenantApprove
().
then
((
res
:
any
)
=>
{
approveTableInfo
.
value
.
loading
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
approveTableInfo
.
value
.
data
=
res
.
data
?.
map
(
d
=>
{
return
{
tenantType
:
d
.
substring
(
4
)
}
})
||
[];
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
});
}
getRegisterCatalogListData
({
damName
:
data
.
daName
,
damGuid
:
data
.
damGuid
});
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
...
...
@@ -535,44 +495,10 @@ onBeforeMount(() => {
ElMessage
.
error
(
res
.
msg
);
}
})
// //新建无guid的时候显示这个审批信息,有guid调用另一个接口。
// getTenantApprove().then((res: any) => {
// if (res.code == proxy.$passCode) {
// approveTableInfo.value.data = res.data?.map(d => {
// return {
// tenantType: d.substring(4)
// }
// }) || [];
// } else {
// ElMessage.error(res.msg);
// }
// });
}
let
exchangeItem
=
baseFormItems
.
value
.
find
(
f
=>
f
.
field
===
'exchangeGuid'
);
exchangeItem
.
default
=
route
.
query
.
exchangeGuid
;
// getTenantDetail();
// getServiceTenants({
// tenantType: 3
// }).then((res: any) => {
// if (res.code == proxy.$passCode) {
// const data = res.data ?? {};
// serviceTenants.value = data['3'] || [];
// let item2 = baseFormItems.value.find(f => f.field === 'rules');
// item2.children[1].options = serviceTenants.value;
// } else {
// ElMessage.error(res.msg);
// }
// });
// getServiceDetail(userData.tenantGuid).then((res: any) => {
// if (res.code == proxy.$passCode) {
// const data = res.data ?? {};
// currTenantChanged.value = data.filter(d => d.serviceType == 4);
// let formItem = baseFormItems.value.find(f => f.field === 'exchangeGuid');
// formItem.options = currTenantChanged.value;
// } else {
// ElMessage.error(res.msg);
// }
// });
getRegisterCatalogListData
();
}
getTenantDetail
();
getParentAreaPromise
.
value
=
getAreaData
({
parentId
:
null
}).
then
((
res
:
any
)
=>
{
if
(
res
?.
code
==
proxy
.
$passCode
)
{
parentAreaData
.
value
=
res
.
data
??
[];
...
...
@@ -589,6 +515,7 @@ onBeforeMount(() => {
// ElMessage.error(res.msg);
// }
// })
// 获取资产类型
getParamsList
({
dictType
:
'资产类型'
}).
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
damTypes
.
value
=
res
.
data
||
[];
...
...
@@ -606,20 +533,35 @@ onBeforeMount(() => {
proxy
.
$ElMessage
.
error
(
res
.
msg
);
}
})
// 获取数据资产目录主题
getParamsList
({
dictType
:
'数据资产目录主题名称'
}).
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
subjectDomainListData
.
value
=
replaceChildDictListKey
(
res
.
data
)
||
[];
let
item
=
baseFormItems
.
value
.
find
(
item
=>
item
.
field
==
'subjectDomain'
);
item
&&
(
item
.
options
=
subjectDomainListData
.
value
);
}
else
{
proxy
.
$ElMessage
.
error
(
res
.
msg
);
}
})
// 获取数交所数据
getSingleList
({
pageIndex
:
-
1
,
pageSize
:
-
1
,
tenantType
:
"130"
}).
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
const
data
=
res
.
data
.
records
??
[];
currTenantChanged
.
value
=
data
;
let
formItem
=
baseFormItems
.
value
.
find
(
f
=>
f
.
field
===
'exchangeGuid'
);
formItem
.
options
=
currTenantChanged
.
value
;
formItem
.
default
=
exGuid
;
serviceTenants
.
value
=
data
.
filter
(
d
=>
d
.
guid
!==
exGuid
);
let
item2
=
baseFormItems
.
value
.
find
(
f
=>
f
.
field
===
'rules'
);
item2
.
children
[
1
].
options
=
serviceTenants
.
value
;
}
else
{
proxy
.
$ElMessage
.
error
(
res
.
msg
);
}
})
// 获取质量评估机构
getSingleList
({
pageIndex
:
-
1
,
pageSize
:
-
1
,
tenantType
:
"12505"
}).
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
qualityEvaluationData
.
value
=
res
.
data
.
records
||
[];
let
item
=
uploadFormItems
.
value
.
find
(
item
=>
item
.
field
==
'qualityEvaluationInstitution'
);
let
item
=
uploadFormItems
.
value
.
find
(
item
=>
item
.
field
==
'qualityEvaluationInstitution
Guid
'
);
item
&&
(
item
.
options
=
qualityEvaluationData
.
value
);
}
else
{
proxy
.
$ElMessage
.
error
(
res
.
msg
);
...
...
@@ -629,7 +571,7 @@ onBeforeMount(() => {
getSingleList
({
pageIndex
:
-
1
,
pageSize
:
-
1
,
tenantType
:
"12504"
}).
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
costAssessmentData
.
value
=
res
.
data
.
records
||
[];
let
item
=
uploadFormItems
.
value
.
find
(
item
=>
item
.
field
==
'costAssessmentInstitution'
);
let
item
=
uploadFormItems
.
value
.
find
(
item
=>
item
.
field
==
'costAssessmentInstitution
Guid
'
);
item
&&
(
item
.
options
=
costAssessmentData
.
value
);
}
else
{
proxy
.
$ElMessage
.
error
(
res
.
msg
);
...
...
@@ -743,14 +685,6 @@ const baseFormItems: any = ref([
clearable
:
true
,
required
:
true
,
},
{
label
:
"数据时间范围"
,
type
:
"date-picker"
,
field
:
"dateRange"
,
default
:
null
,
placeholder
:
"开始时间~结束时间"
,
clearable
:
true
,
required
:
true
,
},
{
label
:
'病例总数(例)'
,
type
:
'input'
,
placeholder
:
'请输入'
,
...
...
@@ -760,7 +694,6 @@ const baseFormItems: any = ref([
default
:
''
,
required
:
false
},
{
},
{
label
:
'数据覆盖地域'
,
type
:
'checkbox-select'
,
placeholder
:
'全国'
,
...
...
@@ -804,13 +737,10 @@ const baseFormItems: any = ref([
field
:
'exchangeGuid'
,
default
:
''
,
// col: 'mr8',
// col: 'mr8',
options
:
currTenantChanged
.
value
,
props
:
{
// value: 'serviceTenantGuid',
// label: 'serviceTenantName'
value
:
"exchangeGuid"
,
label
:
"exchangeName"
,
value
:
'guid'
,
label
:
'tenantName'
},
required
:
true
,
disabled
:
true
,
...
...
@@ -849,10 +779,8 @@ const baseFormItems: any = ref([
default
:
[],
// index: 0,
props
:
{
// value: "guid",
// label: "tenantName",
value
:
"exchangeGuid"
,
label
:
"exchangeName"
,
value
:
"guid"
,
label
:
"tenantName"
,
},
options
:
serviceTenants
.
value
,
multiple
:
true
,
...
...
@@ -1334,15 +1262,18 @@ const baseFormRules = ref({
registeredExchangeGuid
:
[{
type
:
'array'
,
required
:
true
,
trigger
:
'change'
,
message
:
"请填写其他登记的交易所"
}],
isEvaluationAssessment
:
[
{
required
:
true
,
trigger
:
'change'
,
message
:
"请填写是否质量及价值评估"
}
isQualityAssessment
:
[
{
required
:
true
,
trigger
:
'change'
,
message
:
"请填写是否完成质量评估"
}
],
isCostAssessment
:
[
{
required
:
true
,
trigger
:
'change'
,
message
:
"请填写是否完成价值评估"
}
],
applicationScenarios
:
[
{
required
:
true
,
trigger
:
'blur'
,
message
:
"请填写数据资产应用场景"
}
],
limitApplicationScenarios
:
[
{
required
:
true
,
trigger
:
'blur'
,
message
:
"请填写数据资产应用限制场景"
}
]
]
,
})
const
baseSelectChange
=
(
val
,
item
,
row
)
=>
{
...
...
@@ -1810,34 +1741,6 @@ const uploadFormItems: any = ref([
field
:
'commitmentLetter'
,
col
:
'col2'
,
},
// {
// label: '文件hash值',
// type: 'input',
// placeholder: '请输入',
// field: 'fileHash',
// default: '',
// visible: true,
// required: true
// },
// {
// label: '数据质量评价收集',
// tip: '支持扩展名:xls .xlsx .doc .docx .rar .zip',
// type: 'upload-file',
// accept: '.xls, .xlsx, .doc, .docx, .rar, .zip',
// required: true,
// default: [],
// field: 'qualityEvaluationFile',
// visible: false,
// }, {
// label: '数据价值评估',
// tip: '支持扩展名:xls .xlsx .doc .docx .rar .zip',
// type: 'upload-file',
// accept: '.xls, .xlsx, .doc, .docx, .rar, .zip',
// required: true,
// visible: false,
// default: [],
// field: 'costAssessmentFile',
// },
{
label
:
'上传质量评估报告'
,
tip
:
'支持扩展名:.png, .pdf,单个文件不得大于5M'
,
...
...
@@ -1853,12 +1756,17 @@ const uploadFormItems: any = ref([
label
:
'质量评估机构'
,
type
:
'select'
,
placeholder
:
'请选择'
,
field
:
'qualityEvaluationInstitution'
,
field
:
'qualityEvaluationInstitution
Guid
'
,
default
:
''
,
options
:
[],
props
:
{
label
:
'tenantName'
,
value
:
'guid'
},
required
:
true
,
filterable
:
true
,
allowCreate
:
true
,
clearable
:
true
,
style
:
{
width
:
'calc(33.33% - 6px)!important'
},
...
...
@@ -1879,12 +1787,17 @@ const uploadFormItems: any = ref([
label
:
'价值评估机构'
,
type
:
'select'
,
placeholder
:
'请选择'
,
field
:
'costAssessmentInstitution'
,
field
:
'costAssessmentInstitution
Guid
'
,
default
:
''
,
options
:
[],
props
:
{
label
:
'tenantName'
,
value
:
'guid'
},
required
:
true
,
filterable
:
true
,
allowCreate
:
true
,
clearable
:
true
,
style
:
{
width
:
'calc(33.33% - 6px)!important'
},
...
...
@@ -1902,12 +1815,12 @@ const uploadFormRules = ref({
}
},
trigger
:
'change'
}],
// fileHash: [
// { required: true, trigger: 'blur', message: "请填写文件hash值" }
// ],
qualityEvaluationInstitution
:
[
qualityEvaluationInstitutionGuid
:
[
{
required
:
true
,
trigger
:
'change'
,
message
:
"请选择质量评估机构"
}
],
costAssessmentInstitutionGuid
:
[
{
required
:
true
,
trigger
:
'change'
,
message
:
"请选择价值评估机构"
}
],
qualityEvaluationFile
:
[{
validator
:
(
rule
:
any
,
value
:
any
,
callback
:
any
)
=>
{
if
(
!
value
?.
length
)
{
...
...
@@ -1953,6 +1866,16 @@ const cancel = () => {
});
}
const
qualityEvaluationInstitution
=
ref
(
''
);
const
costAssessmentInstitution
=
ref
(
''
);
const
uploadSelectChange
=
(
val
,
item
,
row
)
=>
{
if
(
item
.
field
==
'qualityEvaluationInstitutionGuid'
)
{
qualityEvaluationInstitution
.
value
=
val
&&
item
.
options
.
find
(
o
=>
o
.
guid
==
val
)
?
''
:
(
val
||
''
);
}
else
{
costAssessmentInstitution
.
value
=
val
&&
item
.
options
.
find
(
o
=>
o
.
guid
==
val
)
?
''
:
(
val
||
''
);
}
}
/** 保存草稿,不用校验。 */
const
saveDraft
=
()
=>
{
let
params
:
any
=
{};
...
...
@@ -1972,14 +1895,22 @@ const saveDraft = () => {
let
propertyFormLine
=
porpertyInfoFormRef
.
value
.
formInline
;
Object
.
assign
(
params
,
propertyFormLine
);
let
uploadFormInline
=
uploadFormRef
.
value
.
formInline
;
const
registerAttachment
=
{
let
registerAttachment
:
any
=
{
// fileHash: uploadFormInline.fileHash,
registerLetter
:
uploadFormInline
[
'registerLetter'
]?.
map
(
u
=>
u
.
url
)
||
[],
qualityEvaluationFile
:
uploadFormInline
[
'qualityEvaluationFile'
]?.
map
(
u
=>
u
.
url
)
||
[],
costAssessmentFile
:
uploadFormInline
[
'costAssessmentFile'
]?.
map
(
u
=>
u
.
url
)
||
[],
commitmentLetter
:
uploadFormInline
[
'commitmentLetter'
]?.
map
(
u
=>
u
.
url
)
||
[],
qualityEvaluationInstitution
:
uploadFormInline
.
qualityEvaluationInstitution
||
''
,
costAssessmentInstitution
:
uploadFormInline
.
costAssessmentInstitution
||
''
,
}
if
(
qualityEvaluationInstitution
.
value
)
{
registerAttachment
.
qualityEvaluationInstitution
=
qualityEvaluationInstitution
.
value
}
else
{
registerAttachment
.
qualityEvaluationInstitutionGuid
=
uploadFormInline
.
qualityEvaluationInstitutionGuid
||
''
}
if
(
costAssessmentInstitution
.
value
)
{
registerAttachment
.
costAssessmentInstitution
=
costAssessmentInstitution
.
value
}
else
{
registerAttachment
.
costAssessmentInstitutionGuid
=
uploadFormInline
.
costAssessmentInstitutionGuid
||
''
}
Object
.
assign
(
params
,
{
registerAttachment
:
registerAttachment
,
...
...
@@ -2052,14 +1983,25 @@ const save = () => {
let
propertyFormLine
=
porpertyInfoFormRef
.
value
.
formInline
;
Object
.
assign
(
params
,
propertyFormLine
);
let
uploadFormInline
=
uploadFormRef
.
value
.
formInline
;
Object
.
assign
(
params
,
{
registerAttachment
:
{
let
registerAttachment
:
any
=
{
// fileHash: uploadFormInline.fileHash,
registerLetter
:
uploadFormInline
[
'registerLetter'
]?.
map
(
u
=>
u
.
url
)
||
[],
qualityEvaluationFile
:
uploadFormInline
[
'qualityEvaluationFile'
]?.
map
(
u
=>
u
.
url
)
||
[],
costAssessmentFile
:
uploadFormInline
[
'costAssessmentFile'
]?.
map
(
u
=>
u
.
url
)
||
[],
commitmentLetter
:
uploadFormInline
[
'commitmentLetter'
]?.
map
(
u
=>
u
.
url
)
||
[],
},
}
if
(
qualityEvaluationInstitution
.
value
)
{
registerAttachment
.
qualityEvaluationInstitution
=
qualityEvaluationInstitution
.
value
}
else
{
registerAttachment
.
qualityEvaluationInstitutionGuid
=
uploadFormInline
.
qualityEvaluationInstitutionGuid
||
''
}
if
(
costAssessmentInstitution
.
value
)
{
registerAttachment
.
costAssessmentInstitution
=
costAssessmentInstitution
.
value
}
else
{
registerAttachment
.
costAssessmentInstitutionGuid
=
uploadFormInline
.
costAssessmentInstitutionGuid
||
''
}
Object
.
assign
(
params
,
{
registerAttachment
:
registerAttachment
,
immediateApprove
:
true
,
isSubmit
:
true
,
});
...
...
@@ -2070,6 +2012,7 @@ const save = () => {
fullscreenLoading
.
value
=
true
;
if
(
draftDetailInfo
.
value
.
guid
)
{
params
.
guid
=
draftDetailInfo
.
value
.
guid
;
params
.
isRestart
=
localStorage
.
getItem
(
'isRestart'
)
?
true
:
false
;
registerUpdate
(
params
).
then
((
res
:
any
)
=>
{
fullscreenLoading
.
value
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
...
...
@@ -2184,7 +2127,7 @@ const approveTableInfo: any = ref({
<ContentWrap
id=
"id-assetContent"
title=
"附件信息"
description=
""
:isExpand=
"assetContentExpand"
expandSwicth
style=
"margin-top: 15px"
@
expand=
"(v) => assetContentExpand = v"
>
<Form
class=
'uploadForm'
ref=
"uploadFormRef"
:itemList=
"uploadFormItems"
formId=
"upload-form"
:rules=
"uploadFormRules"
col=
"col3"
/>
:rules=
"uploadFormRules"
col=
"col3"
@
selectChange=
"uploadSelectChange"
/>
</ContentWrap>
<ContentWrap
id=
"id-propertyInfo"
title=
"权利信息"
description=
"申报数据资产的权利信息"
expandSwicth
:isExpand=
"propertyInfoExpand"
style=
"margin-top: 15px"
@
expand=
"(v) => propertyInfoExpand = v"
>
...
...
src/views/data_inventory/taskDetail.vue
View file @
9fbd733
...
...
@@ -515,13 +515,11 @@ const tabChange = (val) => {
const
nodeClick
=
(
data
,
node
)
=>
{
if
(
data
.
classifyDetailGuid
==
'all'
)
{
fieldItemList
.
value
[
4
].
default
=
''
;
fieldItemList
.
value
[
5
].
default
=
[];
}
else
{
const
nodeData
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
let
parentGuids
=
nodeData
.
parentGuids
||
[];
parentGuids
.
push
(
nodeData
.
guid
)
fieldItemList
.
value
[
4
].
default
=
'Y'
;
fieldItemList
.
value
[
5
].
default
=
parentGuids
;
}
nextTick
(()
=>
{
...
...
@@ -822,7 +820,6 @@ const cascaderChange = (val, info) => {
}
else
{
treeInfoRef
.
value
.
expandedKey
=
val
||
[
'all'
];
treeInfoRef
.
value
.
setCurrentKey
(
val
?.
at
(
-
1
)
||
'all'
);
val
&&
(
fieldItemList
.
value
[
4
].
default
=
'Y'
);
promiseList
(
getFieldTableData
()
)
...
...
@@ -904,18 +901,12 @@ const selectChange = (val, item, scope = null) => {
}
}
}
else
if
(
item
.
field
==
'isClassify'
)
{
fieldItemList
.
value
[
5
].
default
=
[];
fieldItemList
.
value
[
6
].
default
=
''
;
treeInfo
.
value
.
expandedKey
=
[
'all'
];
treeInfoRef
.
value
.
setCurrentKey
(
'all'
);
fieldItemList
.
value
[
4
].
default
=
val
||
''
;
fieldItemList
.
value
[
5
].
default
=
scope
.
classifyName
;
nextTick
(()
=>
{
promiseList
(
getFieldTableData
()
)
const
treeRef
=
treeInfoRef
.
value
.
treeRef
;
const
container
=
treeRef
.
$el
;
container
.
scrollTo
({
top
:
0
,
behavior
:
'smooth'
});
})
}
...
...
src/views/data_meta/metadataQuery.vue
View file @
9fbd733
...
...
@@ -382,7 +382,7 @@ const getQueryTreeData = ()=>{
currNodeInfo
.
value
=
{
type
:
2
,
guid
:
dataSourceGuid
,
name
:
datasourceName
}
}
nextTick
(()
=>
{
treeInfo
.
value
.
currentNodeKey
=
currentNodeKey
.
value
treeInfo
.
value
.
currentNodeKey
=
<
string
>
route
.
query
.
tableGuid
||
currentNodeKey
.
value
;
treeInfo
.
value
.
expandedKey
=
expandedKey
.
value
})
nodeClick
({
type
:
2
,
guid
:
dataSourceGuid
,
name
:
datasourceName
})
...
...
src/views/data_quality/analysisReport.vue
View file @
9fbd733
...
...
@@ -683,7 +683,6 @@ const download = () => {
<
div
v
-
show
=
"!isWordStyle"
class
=
"header-detail"
>
<
template
v
-
if
=
"detailInfo.analysisReportType == 1"
>
<
span
>
{{
'表名称:'
+
(
detailInfo
.
qualityModelName
??
'--'
)
}}
<
/span
>
<
span
style
=
"margin-left: 40px;"
>
{{
'所属主题:'
+
(
detailInfo
.
subjectDomainName
??
'--'
)
}}
<
/span
>
<
span
style
=
"margin-left: 40px;"
>
{{
'所属数据源:'
+
(
detailInfo
.
dataSourceName
??
'--'
)
}}
<
/span
>
<
/template
>
<
span
v
-
else
-
if
=
"detailInfo.analysisReportType == 3"
>
{{
'分组名称:'
+
(
detailInfo
.
qualityModelGroupName
??
'--'
)
...
...
@@ -787,7 +786,6 @@ const download = () => {
<
div
style
=
" height: 40px;line-height: 40px;font-size: 14px;color: #666666;"
>
<
template
v
-
if
=
"detailInfo.analysisReportType == 1"
>
<
span
>
{{
'表名称:'
+
(
detailInfo
.
qualityModelName
??
'--'
)
}}
<
/span
>
<
span
style
=
"margin-left: 40px;"
>
{{
'所属主题:'
+
(
detailInfo
.
subjectDomainName
??
'--'
)
}}
<
/span
>
<
span
style
=
"margin-left: 40px;"
>
{{
'所属数据源:'
+
(
detailInfo
.
dataSourceName
??
'--'
)
}}
<
/span
>
<
/template
>
<
span
v
-
else
-
if
=
"detailInfo.analysisReportType == 3"
>
{{
'分组名称:'
+
(
detailInfo
.
qualityModelGroupName
??
'--'
)
...
...
src/views/data_quality/assessDetail.vue
View file @
9fbd733
...
...
@@ -226,6 +226,7 @@ const rulesDetailTableBtnClick = (scope, btn) => {
if
(
type
==
'ruleDetail'
)
{
detailLoading
.
value
=
true
;
if
(
detailJson
.
value
[
row
.
ruleConfGuid
])
{
detailInfo
.
value
=
detailJson
.
value
[
row
.
ruleConfGuid
];
ruleType
.
value
=
detailInfo
.
value
.
ruleCode
;
toSubjectTables
.
value
=
[{
guid
:
detailInfo
.
value
.
subjectGuid
,
...
...
src/views/data_quality/assessTemplate.vue
View file @
9fbd733
...
...
@@ -331,7 +331,7 @@ onActivated(() => {
let
tab
:
any
=
userStore
.
tabbar
.
find
((
tab
:
any
)
=>
tab
.
fullPath
===
fullPath
);
if
(
tab
)
{
if
(
route
.
query
.
detail
)
{
tab
.
meta
.
title
=
`
新建规则(
${
route
.
query
.
planName
}
)
`
;
tab
.
meta
.
title
=
`
方案详情-
${
route
.
query
.
planName
}
`
;
if
(
fullPath
===
route
.
fullPath
)
{
document
.
title
=
tab
.
meta
.
title
;
}
...
...
src/views/data_quality/qualityRules.vue
View file @
9fbd733
...
...
@@ -28,10 +28,8 @@ import {
import
useDataQualityStore
from
"@/store/modules/dataQuality"
;
import
{
useValidator
}
from
'@/hooks/useValidator'
;
import
{
TableColumnWidth
}
from
'@/utils/enum'
;
import
useDataCatalogStore
from
"@/store/modules/dataCatalog"
;
const
dataQualityStore
=
useDataQualityStore
();
const
dataCatalogStore
=
useDataCatalogStore
();
const
{
proxy
}
=
getCurrentInstance
()
as
any
;
const
{
orderNum
,
description
}
=
useValidator
();
...
...
@@ -411,10 +409,27 @@ const tableBtnClick = (scope, btn) => {
}
else
if
(
type
==
"delete"
)
{
open
(
"此操作将永久删除, 是否继续?"
,
"warning"
);
}
else
if
(
type
==
'locateDataCatalog'
)
{
dataCatalogStore
.
setLocateSubjectName
(
row
.
name
);
// dataCatalogStore.setLocateSubjectName(row.name);
// router.push({
// name: 'dataWarehouse'
// });
if
(
row
.
dataSource
==
'4'
)
{
router
.
push
({
name
:
'dataWarehouse'
name
:
'classifyGradeCatalogue'
,
query
:
{
databaseGuid
:
row
.
dataSourceGuid
,
tableGuid
:
row
.
subjectGuid
}
});
}
else
{
router
.
push
({
name
:
'metaSheet'
,
query
:
{
id
:
row
.
subjectGuid
,
name
:
row
.
name
}
});
}
}
};
...
...
src/views/data_quality/ruleForm.vue
View file @
9fbd733
...
...
@@ -134,6 +134,15 @@ watch(() => props.largeCategoryList, (val) => {
}
})
const
operationList
:
any
=
ref
([
{
label
:
'大于'
,
value
:
'>'
,
},
{
label
:
'小于'
,
value
:
'<'
,
},
{
label
:
'等于'
,
value
:
'='
,
},
{
label
:
'大于等于'
,
value
:
'>='
,
},
{
label
:
'小于等于'
,
value
:
'<='
,
},
{
label
:
'介于'
,
value
:
'between'
,
},
]);
/** 规范性检验规则 */
const
checkRulesList
:
any
=
ref
([]);
...
...
@@ -178,7 +187,24 @@ onBeforeMount(() => {
formItems
.
value
[
0
].
children
=
panelList
.
value
;
}
if
(
props
.
smallCategoryList
?.
length
)
{
let
p
=
panelList
.
value
[
1
];
if
(
p
.
default
)
{
if
(
p
.
default
==
'1'
)
{
//规范性
panelList
.
value
[
2
].
options
=
props
.
smallCategoryList
.
slice
(
0
,
6
);
}
else
if
(
p
.
default
==
'2'
)
{
panelList
.
value
[
2
].
options
=
props
.
smallCategoryList
.
slice
(
6
,
8
);
}
else
if
(
p
.
default
==
'3'
)
{
panelList
.
value
[
2
].
options
=
props
.
smallCategoryList
.
slice
(
8
,
13
);
}
else
if
(
p
.
default
==
'4'
)
{
panelList
.
value
[
2
].
options
=
props
.
smallCategoryList
.
slice
(
13
,
15
);
}
else
if
(
p
.
default
==
'5'
)
{
panelList
.
value
[
2
].
options
=
props
.
smallCategoryList
.
slice
(
15
,
18
);
}
else
if
(
p
.
default
==
'6'
)
{
panelList
.
value
[
2
].
options
=
props
.
smallCategoryList
.
slice
(
18
,
20
);
}
}
else
{
panelList
.
value
[
2
].
options
=
props
.
smallCategoryList
.
slice
(
0
,
6
);
}
panelList
.
value
[
2
].
default
=
getDefaultSmallCategory
(
formItems
.
value
[
0
].
default
);
formItems
.
value
[
0
].
children
=
panelList
.
value
;
}
...
...
@@ -654,7 +680,7 @@ const getSubjectTableTreeData = () => {
d
.
children
=
d
.
children
?.
map
(
child
=>
{
child
.
label
=
child
.
name
+
`(
${
child
.
tableName
}
)`
;
child
.
isLeaf
=
true
;
child
.
dataServerName
=
d
.
n
ame
;
child
.
dataServerName
=
child
.
databaseN
ame
;
child
.
dataSourceGuid
=
d
.
guid
;
return
child
;
})
...
...
@@ -796,12 +822,11 @@ const formBtnClick = (btn) => {
if
(
field
.
dataRange
)
{
f
.
dataRange
=
field
.
dataRange
;
}
f
.
startValue
=
field
.
startValue
;
f
.
endValue
=
field
.
endValue
;
if
(
field
.
startValue
)
{
if
(
f
.
dataType
==
'date'
||
f
.
dataType
==
'datetime'
)
{
f
.
dateValueRange
=
[
field
.
startValue
,
field
.
endValue
];
}
else
{
f
.
startValue
=
field
.
startValue
;
f
.
endValue
=
field
.
endValue
;
}
}
}
...
...
@@ -852,6 +877,7 @@ const formBtnClick = (btn) => {
if
(
fIndex
>
-
1
)
{
let
f
=
normCheckTableListData
.
value
[
dialogSelectSubjectTable
.
value
.
enName
][
fIndex
];
f
.
checkRule
=
field
.
checkRule
;
f
.
checkRuleName
=
field
.
checkRuleName
;
f
.
configValue
=
field
.
configValue
;
if
(
f
.
checkRule
==
'length_rule'
)
{
let
vSplit
=
f
.
configValue
.
split
(
'#'
);
...
...
@@ -871,7 +897,7 @@ const formBtnClick = (btn) => {
}
const
selectChange
=
(
val
,
item
,
info
)
=>
{
setPanelListValue
(
info
,
true
);
setPanelListValue
(
info
,
item
.
field
==
'largeCategory'
);
};
/** 设置表单选项的值,防止largeCategory的options改变,重新赋值。 当radioGroupChange为true,init为false时,为用户手动切换,需要更新大类的默认值。 */
...
...
@@ -1204,12 +1230,11 @@ const listItemClick = (data) => {
if
(
field
.
dataRange
)
{
f
.
dataRange
=
field
.
dataRange
;
}
f
.
startValue
=
field
.
startValue
;
f
.
endValue
=
field
.
endValue
;
if
(
field
.
startValue
)
{
if
(
f
.
dataType
==
'date'
||
f
.
dataType
==
'datetime'
)
{
f
.
dateValueRange
=
[
field
.
startValue
,
field
.
endValue
];
}
else
{
f
.
startValue
=
field
.
startValue
;
f
.
endValue
=
field
.
endValue
;
}
}
}
...
...
@@ -1237,7 +1262,8 @@ const listItemClick = (data) => {
if
(
fIndex
>
-
1
)
{
let
f
=
normCheckTableListData
.
value
[
dialogSelectSubjectTable
.
value
.
enName
][
fIndex
];
if
(
field
.
checkRule
)
{
f
.
checkRule
=
field
.
dataRange
;
f
.
checkRule
=
field
.
checkRule
;
f
.
checkRuleName
=
field
.
checkRuleName
;
f
.
configValue
=
field
.
configValue
;
if
(
field
.
checkRule
==
'length_rule'
)
{
let
vLen
=
f
.
configValue
?.
split
(
'#'
);
...
...
@@ -1404,7 +1430,8 @@ const validateFilter = () => {
validateFilterBtnDisable
.
value
=
true
;
validateSubjectTableRule
({
subjectGuid
:
dialogSelectSubjectTable
.
value
.
guid
,
condition
:
tableFilters
.
value
[
enName
]
condition
:
tableFilters
.
value
[
enName
],
dataSource
:
props
.
dataSource
||
props
.
value
.
dataSource
}).
then
((
res
:
any
)
=>
{
validateFilterBtnDisable
.
value
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
...
...
@@ -1602,7 +1629,8 @@ const validateSql = () => {
validateSqlBtnDisable
.
value
=
true
;
validateCustomSql
({
subjectGuid
:
dialogSelectSubjectTable
.
value
.
guid
,
sqlScript
:
sqlTableFilters
.
value
[
enName
]
sqlScript
:
sqlTableFilters
.
value
[
enName
],
dataSource
:
props
.
dataSource
||
props
.
value
.
dataSource
}).
then
((
res
:
any
)
=>
{
validateSqlBtnDisable
.
value
=
false
;
if
(
res
?.
code
==
proxy
.
$passCode
)
{
...
...
@@ -1778,14 +1806,14 @@ const submitValueRange = () => {
let
valueTableFields
=
valueRangeTableListData
.
value
[
table
];
let
ruleFields
:
any
=
[]
for
(
const
field
of
valueTableFields
)
{
if
(
field
.
startValue
==
null
&&
field
.
endValue
==
null
)
{
if
(
dialogSelectSubjectTable
.
value
.
enName
!=
table
)
{
valueCheckFormListRef
.
value
.
setSelectList
(
table
,
'enName'
);
}
ElMessage
.
error
(
`表【
${
table
}
】的字段【
${
field
.
enName
}
】设置了值域,但范围未填写完整`
);
return
;
}
if
(
field
.
startValue
!=
null
||
field
.
endValue
!=
null
)
{
//
if (field.startValue == null && field.endValue == null) {
//
if (dialogSelectSubjectTable.value.enName != table) {
//
valueCheckFormListRef.value.setSelectList(table, 'enName');
//
}
//
ElMessage.error(`表【${table}】的字段【${field.enName}】设置了值域,但范围未填写完整`);
//
return;
//
}
if
(
field
.
startValue
||
field
.
endValue
)
{
ruleFields
.
push
(
field
);
}
else
if
(
field
.
dataRange
)
{
ruleFields
.
push
(
field
);
...
...
@@ -1969,7 +1997,7 @@ const submitNormCheck = () => {
if
(
dialogSelectSubjectTable
.
value
.
enName
!=
table
)
{
normCheckFormListRef
.
value
.
setSelectList
(
table
,
'enName'
);
}
ElMessage
.
error
(
`表【
${
table
}
】的字段【
${
field
.
enName
}
】设置了长度检验,但长度值未填写完整`
);
ElMessage
.
error
(
`表【
${
table
}
】的字段【
${
field
.
enName
}
】设置了长度检验,但长度
范围
值未填写完整`
);
return
;
}
if
(
parseInt
(
field
.
value
)
>=
parseInt
(
field
.
value1
))
{
...
...
@@ -2016,6 +2044,18 @@ const submitNormCheck = () => {
normCheckDialogVisible
.
value
=
false
;
}
/** 规范检验 长度和精度的数入 */
const
validatePositiveInteger
=
(
row
:
any
,
field
:
string
)
=>
{
row
[
field
]
=
row
[
field
].
replace
(
/
\D
/g
,
''
);
let
value
=
row
[
field
];
// 如果输入值为0,则将其设置为1
if
(
value
==
'0'
)
{
row
[
field
]
=
'1'
;
return
;
}
};
const
getFormInfo
=
()
=>
{
let
formInline
=
ruleFormRef
.
value
.
formInline
;
let
ruleName
=
props
.
ruleTypeList
.
find
(
option
=>
option
.
ruleCode
==
formInline
.
ruleCode
).
ruleName
;
...
...
@@ -2219,6 +2259,13 @@ defineExpose({
</el-table-column>
<el-table-column
label=
"值域"
width=
"280px"
align=
"left"
fixed=
"right"
>
<
template
#
default=
"scope"
>
<span
v-if=
"props.readonly"
>
{{
(
!
scope
.
row
.
dataType
||
scope
.
row
.
dataType
==
'varchar'
||
scope
.
row
.
dataType
==
'char'
||
scope
.
row
.
dataType
==
'bit'
||
scope
.
row
.
dataType
==
'json'
||
scope
.
row
.
dataType
==
'text'
||
!
scope
.
row
.
dataType
||
scope
.
row
.
dataType
==
'string'
||
scope
.
row
.
dataType
==
'numeric'
)
?
(
scope
.
row
.
dataRange
||
'--'
)
:
(
scope
.
row
.
startValue
&&
scope
.
row
.
endValue
?
`${scope.row.startValue
}
~${scope.row.endValue
}
`
:
(
scope
.
row
.
startValue
!=
null
?
scope
.
row
.
startValue
:
(
scope
.
row
.
endValue
??
'--'
)))
}}
<
/span
>
<
template
v
-
else
>
<
el
-
input
v
-
show
=
"!scope.row.dataType || scope.row.dataType == 'varchar' || scope.row.dataType == 'char' || scope.row.dataType == 'bit' || scope.row.dataType == 'json' || scope.row.dataType == 'text' || !scope.row.dataType || scope.row.dataType == 'string' || scope.row.dataType == 'numeric'"
v
-
model
.
trim
=
"scope.row.dataRange"
clearable
placeholder
=
"多值按照分号;分隔"
>
<
/el-input
>
...
...
@@ -2236,6 +2283,7 @@ defineExpose({
<
/el-input
>
<
/div
>
<
/template
>
<
/template
>
<
/el-table-column
>
<
/el-table
>
<
/div
>
...
...
@@ -2355,16 +2403,18 @@ defineExpose({
<
span
v
-
else
>
{{
scope
.
row
.
checkRuleName
??
'--'
}}
<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"填写配置项"
width
=
"2
0
0px"
align
=
"left"
>
<
el
-
table
-
column
label
=
"填写配置项"
width
=
"2
4
0px"
align
=
"left"
>
<
template
#
default
=
"scope"
>
<
span
v
-
if
=
"props.readonly"
>
{{
scope
.
row
.
configValue
??
'--'
}}
<
/span
>
<
span
v
-
if
=
"props.readonly"
>
{{
scope
.
row
.
configValue
!=
null
?
(
scope
.
row
.
checkRule
!=
'length_rule'
?
scope
.
row
.
configValue
:
(
scope
.
row
.
configValue
.
split
(
'#'
)?.
length
?
(
operationList
.
find
(
o
=>
o
.
value
==
scope
.
row
.
configValue
.
split
(
'#'
)[
0
]).
label
+
scope
.
row
.
configValue
.
split
(
'#'
).
slice
(
1
).
join
(
'~'
))
:
scope
.
row
.
configValue
))
:
'--'
}}
<
/span
>
<
span
v
-
else
-
if
=
"!scope.row.checkRule || ['id_card_rule', 'phone_number_rule', 'en_rule', 'ch_rule', 'num_value_rule'].includes(scope.row.checkRule)"
>--<
/span
>
<
template
v
-
else
>
<
el
-
input
v
-
show
=
"scope.row.checkRule == 'custom_regular_rule'"
v
-
model
.
trim
=
"scope.row.configValue"
clearable
placeholder
=
"请输入"
>
<
/el-input
>
<
el
-
input
v
-
show
=
"scope.row.checkRule == 'precision_rule'"
v
-
model
.
trim
=
"scope.row.configValue"
clearable
placeholder
=
"请输入"
@
input
=
"(val) => scope.row.configValue = val.replace(/\D/g, '
')"
>
clearable
:
maxlength
=
"4"
placeholder
=
"请输入"
@
input
=
"validatePositiveInteger(scope.row, 'configValue
')"
>
<
/el-input
>
<
el
-
select
v
-
show
=
"scope.row.checkRule == 'date_format_rule'"
v
-
model
=
"scope.row.configValue"
placeholder
=
"请选择"
filterable
clearable
>
...
...
@@ -2375,17 +2425,16 @@ defineExpose({
<div class="
range
-
sum
" v-show="
scope
.
row
.
checkRule
==
'length_rule'
">
<el-select v-model="
scope
.
row
.
operator
" placeholder="
请选择
" filterable clearable
:style="
{
width
:
scope
.
row
.
operator
==
'between'
?
'calc(33% - 2px)'
:
'calc(50% - 4px)'
}
">
<el-option
v-for="
opt
in
[{
value
:
'='
}
,
{
value
:
'>'
}
,
{
value
:
'<'
}
,
{
value
:
'>='
}
,
{
value
:
'<='
}
,
{
value
:
'between'
,
label
:
'介于'
}
]
"
:key="
opt
[
'value'
]
" :label="
opt
[
'label'
]
" :value="
opt
[
'value'
]
" />
<el-option v-for="
opt
in
operationList
" :key="
opt
[
'value'
]
" :label="
opt
[
'label'
]
"
:value="
opt
[
'value'
]
" />
</el-select>
<el-input :disabled="
props
.
readonly
" v-model.trim="
scope
.
row
.
value
" placeholder="
请输入
" clearable
:style="
{
width
:
scope
.
row
.
operator
==
'between'
?
'calc(33% - 2px)'
:
'calc(50% - 4px)'
}
"
@input="
(
val
)
=>
scope
.
row
.
value
=
val
.
replace
(
/
\D
/g
,
'
'
)
">
:maxlength="
4
" @input="
validatePositiveInteger
(
scope
.
row
,
'value
'
)
">
</el-input>
<el-input v-show="
scope
.
row
.
operator
==
'between'
" :disabled="
props
.
readonly
"
v-model.trim="
scope
.
row
.
value1
" placeholder="
请输入
" clearable :style="
{
width
:
'calc(33% - 2px)'
}
"
@input="
(
val
)
=>
scope
.
row
.
value1
=
val
.
replace
(
/
\D
/g
,
'
'
)
">
:maxlength="
4
" @input="
validatePositiveInteger
(
scope
.
row
,
'value1
'
)
">
</el-input>
</div>
</template>
...
...
@@ -2421,8 +2470,9 @@ defineExpose({
<
el
-
table
-
column
prop
=
"contrastSubjectGuid"
label
=
"选择对比表"
width
=
"200px"
align
=
"left"
show
-
overflow
-
tooltip
>
<
template
#
default
=
"scope"
>
<
el
-
tree
-
select
v
-
if
=
"!props.readonly"
ref
=
"treeSelectRef"
filterable
clearable
v
-
model
=
"scope.row['contrastSubjectGuid']"
node
-
key
=
"guid"
:
data
=
"contrastSubjects"
placeholder
=
"请选择"
:
default
-
expanded
-
keys
=
"defaultExpandedKeys"
:
auto
-
expand
-
parent
=
"true"
:
default
-
checked
-
keys
=
"[props.value.contrastSubjectGuid]"
v
-
model
=
"scope.row['contrastSubjectGuid']"
node
-
key
=
"guid"
:
data
=
"contrastSubjects"
placeholder
=
"请选择"
:
default
-
expanded
-
keys
=
"defaultExpandedKeys"
:
auto
-
expand
-
parent
=
"true"
:
default
-
checked
-
keys
=
"[props.value.contrastSubjectGuid]"
:
filter
-
node
-
method
=
"contrastSubjectInputFilterMethod"
:
props
=
"
{
value
:
'guid'
,
label
:
'name'
,
...
...
src/views/data_quality/ruleModel.vue
View file @
9fbd733
...
...
@@ -94,7 +94,7 @@ const getSubjectTableTreeData = () => {
d
.
label
=
d
.
name
;
d
.
children
=
d
.
children
?.
map
(
child
=>
{
child
.
label
=
child
.
name
+
`(
${
child
.
tableName
}
)`
;
child
.
dataServerName
=
d
.
n
ame
;
child
.
dataServerName
=
child
.
databaseN
ame
;
child
.
dataSourceGuid
=
d
.
guid
;
return
child
;
})
...
...
src/views/data_quality/ruleTemplate.vue
View file @
9fbd733
...
...
@@ -253,20 +253,24 @@ onBeforeMount(() => {
ElMessage
.
error
(
res
.
msg
);
}
})
getSmall
CategoryList
().
then
((
res
:
any
)
=>
{
let
ps1
=
getLarge
CategoryList
().
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
smallCategoryList
.
value
=
res
.
data
||
[];
return
res
.
data
||
[];
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
})
getLarge
CategoryList
().
then
((
res
:
any
)
=>
{
})
;
let
ps2
=
getSmall
CategoryList
().
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
largeCategoryList
.
value
=
res
.
data
||
[];
return
res
.
data
||
[];
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
})
Promise
.
all
([
ps1
,
ps2
]).
then
((
res
:
any
[])
=>
{
largeCategoryList
.
value
=
res
[
0
];
smallCategoryList
.
value
=
res
[
1
];
})
})
onActivated
(()
=>
{
...
...
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