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
3484b991
authored
2025-07-15 15:14:07 +0800
by
lihua
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
数据产品管理优化
1 parent
9b127afd
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
795 additions
and
63 deletions
src/api/modules/dataAsset.ts
src/router/modules/dataAsset.ts
src/views/data_asset/authorDataCatalogManagement.vue
src/views/data_asset/registerCatalogContractDetail.vue
src/views/data_asset/registerCatalogCreate.vue
src/views/data_asset/registerCatalogDetail.vue
src/views/data_asset/registerCatalogManagement.vue
src/views/data_asset/transactionDetail.vue
src/api/modules/dataAsset.ts
View file @
3484b99
...
...
@@ -349,6 +349,13 @@ export const existDamName = (params) => request({
method
:
'get'
});
// 获取数据产品目录登记评估详情
export
const
getRegisterCatalogDetailGuids
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_API_NEW_PORTAL
}
/dam-catalog-table/register-evaluation-grounding-trading`
,
method
:
'get'
,
params
})
/** 获取资产目录基本信息的详情 */
export
const
getRegisterCatalogDetail
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_API_NEW_PORTAL
}
/dam-catalog-table/detail`
,
...
...
@@ -553,6 +560,13 @@ export const getContractDetail = (params) => request({
params
})
// 流通中的数据产品交易详情
export
const
getTransactionDetail
=
(
params
)
=>
request
({
url
:
`http://localhost:9000/circulation/ms-data-circulation-tx-mgr-service/ading-info/detail`
,
method
:
'get'
,
params
})
// 获取所有字典
export
const
getDictAllList
=
()
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_CONFIG_URL
}
/dict/data/get-all`
...
...
src/router/modules/dataAsset.ts
View file @
3484b99
...
...
@@ -26,7 +26,7 @@ const routes: RouteRecordRaw[] = [
path
:
'/data-asset/register-catalog'
,
component
:
Layout
,
meta
:
{
title
:
'
数据产品目录
'
,
title
:
'
自有数据产品
'
,
icon
:
'sidebar-videos'
,
},
children
:
[
...
...
@@ -35,7 +35,7 @@ const routes: RouteRecordRaw[] = [
name
:
'registerCatalogManagement'
,
component
:
()
=>
import
(
'@/views/data_asset/registerCatalogManagement.vue'
),
meta
:
{
title
:
'
数据产品目录
'
,
title
:
'
自有数据产品
'
,
sidebar
:
false
,
breadcrumb
:
false
,
cache
:
true
...
...
@@ -46,7 +46,7 @@ const routes: RouteRecordRaw[] = [
name
:
'registerCatalogCreate'
,
component
:
()
=>
import
(
'@/views/data_asset/registerCatalogCreate.vue'
),
meta
:
{
title
:
'新建
产品目录
'
,
title
:
'新建
自有数据产品
'
,
sidebar
:
false
,
breadcrumb
:
false
,
cache
:
true
,
...
...
@@ -95,25 +95,6 @@ const routes: RouteRecordRaw[] = [
reuse
:
true
}
},
// {
// path: 'import-table-field',
// name: 'importTableField',
// component: () => import('@/views/data_asset/importTableField.vue'),
// meta: {
// title: '导入表字段',
// sidebar: false,
// breadcrumb: false,
// cache: true,
// editPage: true,
// reuse: true
// },
// beforeEnter: (to, from) => {
// if (to.query.guid) {
// to.meta.title = `编辑-`;
// to.meta.editPage = true;
// }
// }
// },
{
path
:
'register-catalog-detail'
,
name
:
'registerCatalogDetail'
,
...
...
@@ -131,11 +112,28 @@ const routes: RouteRecordRaw[] = [
name
:
'registerCatalogContractDetail'
,
component
:
()
=>
import
(
'@/views/data_asset/registerCatalogContractDetail.vue'
),
meta
:
{
title
:
'详情-'
,
title
:
'合同详情-'
,
sidebar
:
false
,
breadcrumb
:
false
,
cache
:
true
,
reuse
:
true
}
},
{
path
:
'register-catalog-transaction-detail'
,
name
:
'registerCatalogTransactionDetail'
,
component
:
()
=>
import
(
'@/views/data_asset/transactionDetail.vue'
),
meta
:
{
title
:
'产品交易详情-'
,
sidebar
:
false
,
breadcrumb
:
false
,
cache
:
true
,
reuse
:
true
},
beforeEnter
:
(
to
,
from
)
=>
{
if
(
to
.
query
.
guid
)
{
to
.
meta
.
title
=
`产品交易详情-
${
to
.
query
.
damName
}
`
;
}
}
},
{
...
...
@@ -158,6 +156,139 @@ const routes: RouteRecordRaw[] = [
]
},
{
path
:
'/data-asset/authordata-catalog'
,
component
:
Layout
,
meta
:
{
title
:
'授权数据产品'
,
icon
:
'sidebar-videos'
,
},
children
:
[
{
path
:
''
,
name
:
'authorDataCatalogManagement'
,
component
:
()
=>
import
(
'@/views/data_asset/authorDataCatalogManagement.vue'
),
meta
:
{
title
:
'授权数据产品'
,
sidebar
:
false
,
breadcrumb
:
false
,
cache
:
true
},
},
{
path
:
'register-ctalog-create'
,
name
:
'authorDataCatalogCreate'
,
component
:
()
=>
import
(
'@/views/data_asset/registerCatalogCreate.vue'
),
meta
:
{
title
:
'新建授权数据产品'
,
sidebar
:
false
,
breadcrumb
:
false
,
cache
:
true
,
editPage
:
true
,
reuse
:
true
},
beforeEnter
:
(
to
,
from
)
=>
{
if
(
to
.
query
.
type
)
{
to
.
meta
.
title
=
`详情-`
;
return
;
}
if
(
to
.
query
.
guid
)
{
to
.
meta
.
title
=
`编辑-
${
to
.
query
.
damName
}
`
;
to
.
meta
.
editPage
=
true
;
}
}
},
{
path
:
'import-file-dam'
,
name
:
'authorImportFileDam'
,
component
:
()
=>
import
(
'@/views/importFile.vue'
),
meta
:
{
title
:
'导入数据'
,
sidebar
:
false
,
breadcrumb
:
false
,
cache
:
true
,
reuse
:
true
},
beforeEnter
:
(
to
,
from
)
=>
{
if
(
to
.
query
.
bizGuid
)
{
to
.
meta
.
title
=
`导入数据-
${
to
.
query
.
name
}
(
${
to
.
query
.
damName
}
)`
;
}
}
},
{
// path: 'processDetail',
// name: 'APIProcessDetail',
path
:
'api-detail'
,
name
:
'authorApiDetail'
,
component
:
()
=>
import
(
'@/views/data_asset/detail_serviceApi.vue'
),
meta
:
{
title
:
'流程详情'
,
sidebar
:
false
,
breadcrumb
:
false
,
cache
:
true
,
reuse
:
true
}
},
{
path
:
'register-catalog-detail'
,
name
:
'authorRegisterCatalogDetail'
,
component
:
()
=>
import
(
'@/views/data_asset/registerCatalogDetail.vue'
),
meta
:
{
title
:
'详情-'
,
sidebar
:
false
,
breadcrumb
:
false
,
cache
:
true
,
reuse
:
true
}
},
{
path
:
'register-catalog-contract-detail'
,
name
:
'authorRegisterCatalogContractDetail'
,
component
:
()
=>
import
(
'@/views/data_asset/registerCatalogContractDetail.vue'
),
meta
:
{
title
:
'合同详情-'
,
sidebar
:
false
,
breadcrumb
:
false
,
cache
:
true
,
reuse
:
true
}
},
{
path
:
'register-catalog-transaction-detail'
,
name
:
'authorRegisterCatalogTransactionDetail'
,
component
:
()
=>
import
(
'@/views/data_asset/transactionDetail.vue'
),
meta
:
{
title
:
'产品交易详情-'
,
sidebar
:
false
,
breadcrumb
:
false
,
cache
:
true
,
reuse
:
true
},
beforeEnter
:
(
to
,
from
)
=>
{
if
(
to
.
query
.
guid
)
{
to
.
meta
.
title
=
`产品交易详情-
${
to
.
query
.
damName
}
`
;
}
}
},
{
path
:
'damTableDataView'
,
name
:
'authorDamTableDataView'
,
component
:
()
=>
import
(
'@/views/data_asset/damTableDataView.vue'
),
meta
:
{
title
:
'查看数据'
,
sidebar
:
false
,
breadcrumb
:
false
,
cache
:
true
,
reuse
:
true
},
beforeEnter
:
(
to
,
from
)
=>
{
if
(
to
.
query
.
guid
)
{
to
.
meta
.
title
=
`查看数据-
${
to
.
query
.
name
}
(
${
to
.
query
.
damName
}
)`
;
}
}
},
]
},
{
path
:
'/data-product/product-listing'
,
component
:
Layout
,
meta
:
{
...
...
src/views/data_asset/authorDataCatalogManagement.vue
0 → 100644
View file @
3484b99
<route
lang=
"yaml"
>
name: authorDataCatalogManagement
</route>
<
script
lang=
"ts"
setup
name=
"authorDataCatalogManagement"
>
import
{
ref
}
from
"vue"
;
import
registerCatalogManagement
from
"./registerCatalogManagement.vue"
;
</
script
>
<
template
>
<registerCatalogManagement
:dataSources=
"1"
></registerCatalogManagement>
</
template
>
\ No newline at end of file
src/views/data_asset/registerCatalogContractDetail.vue
View file @
3484b99
...
...
@@ -187,8 +187,8 @@ onActivated(() => {
if
(
tab
)
{
switch
(
detailType
)
{
case
'detail'
:
tab
.
meta
.
title
=
`详情-
${
damName
}
`
;
document
.
title
=
`详情-
${
damName
}
`
;
tab
.
meta
.
title
=
`
合同
详情-
${
damName
}
`
;
document
.
title
=
`
合同
详情-
${
damName
}
`
;
break
;
}
}
...
...
src/views/data_asset/registerCatalogCreate.vue
View file @
3484b99
...
...
@@ -22,7 +22,8 @@ import {
registerCatalogTableUpdate
,
registerCatalogTableDelete
,
getRegisterCatalogTableList
,
checkDamTableChange
checkDamTableChange
,
getTenantList
}
from
"@/api/modules/dataAsset"
;
import
{
ContentWrap
}
from
'@/components/ContentWrap'
;
import
importTableField
from
"./importTableField.vue"
;
...
...
@@ -101,7 +102,7 @@ const getArea = (node, resolve) => {
const
baseInfoExpand
=
ref
(
true
);
const
assetTableInfoExpand
=
ref
(
true
);
const
importTableFieldRef
=
ref
();
const
rightMainTenantList
=
ref
([]);
//权利主体下拉列表选择
const
baseInfoFormRef
=
ref
();
const
baseInfoFormItems
=
ref
([
...
...
@@ -130,13 +131,20 @@ const baseInfoFormItems = ref([
},
{
label
:
'权利主体'
,
type
:
'input'
,
placeholder
:
'请输入'
,
type
:
route
.
query
.
dataSources
==
'1'
?
'select'
:
'input'
,
placeholder
:
route
.
query
.
dataSources
==
'1'
?
'请选择'
:
'请输入'
,
field
:
'rightMain'
,
maxlength
:
20
,
default
:
JSON
.
parse
(
userStore
.
userData
).
tenantName
,
options
:
rightMainTenantList
.
value
,
props
:
{
value
:
'guid'
,
label
:
'tenantName'
},
filterable
:
true
,
clearable
:
true
,
default
:
route
.
query
.
dataSources
==
'1'
?
JSON
.
parse
(
userStore
.
userData
).
tenantGuid
:
JSON
.
parse
(
userStore
.
userData
).
tenantName
,
required
:
true
,
disabled
:
true
disabled
:
route
.
query
.
dataSources
==
'1'
?
false
:
true
,
},
{
label
:
'所属主题'
,
...
...
@@ -216,8 +224,22 @@ const baseInfoFormItems = ref([
placeholder
:
""
,
field
:
"dataSources"
,
block
:
false
,
default
:
1
,
options
:
dataSourcesList
,
default
:
route
.
query
.
dataSources
==
'1'
?
1
:
2
,
options
:
route
.
query
.
dataSources
==
'1'
?
[{
//如果是授权数据则不能选择其余的
value
:
1
,
label
:
'授权数据'
,
}]:
[{
value
:
2
,
label
:
'自有数据'
,
},
{
value
:
3
,
label
:
'购买数据'
,
},
{
value
:
4
,
label
:
'其他来源'
,
}],
//dataSourcesList
required
:
true
,
},
// 是否公共数据
...
...
@@ -297,7 +319,7 @@ const baseInfoFormRules = ref({
propertyDescription
:
[
required
(
'请填写资源描述'
)],
sceneDescription
:
[
required
(
'请填写应用场景描述'
)],
sceneLimit
:
[
required
(
'请填写应用场景限制'
)],
rightMain
:
[
required
(
'请填写权利主体'
)],
rightMain
:
[
required
(
route
.
query
.
dataSources
==
'1'
?
'请选择权利主体'
:
'请填写权利主体'
)],
dataSources
:
[
required
(
'请选择数据来源'
)],
isPublicData
:
[
required
(
'请选择是否公共数据'
)],
});
...
...
@@ -420,12 +442,14 @@ const assetDataTableInfo = ref({
label
:
"导入数据"
,
value
:
"importData"
,
click
:
(
scope
)
=>
{
let
row
=
scope
.
row
;
router
.
push
({
name
:
"importFileDam"
,
path
:
route
.
query
.
dataSources
==
'1'
?
'/data-asset/authordata-catalog/import-file-dam'
:
'/data-asset/register-catalog/import-file-dam'
,
// name: "importFileDam",
query
:
{
bizGuid
:
row
.
guid
,
name
:
row
.
tableChName
,
isfileImport
:
'2'
,
damName
:
route
.
query
.
damName
damName
:
route
.
query
.
damName
,
dataSources
:
route
.
query
.
dataSources
}
})
}
...
...
@@ -434,11 +458,13 @@ const assetDataTableInfo = ref({
label
:
"查看样例数据"
,
value
:
"viewData"
,
click
:
(
scope
)
=>
{
let
row
=
scope
.
row
;
router
.
push
({
name
:
'damTableDataView'
,
path
:
route
.
query
.
dataSources
==
'1'
?
'/data-asset/authordata-catalog/damTableDataView'
:
'/data-asset/register-catalog/damTableDataView'
,
// name: 'damTableDataView',
query
:
{
guid
:
row
.
guid
,
name
:
row
.
tableChName
,
damName
:
detailInfo
.
value
.
damName
damName
:
detailInfo
.
value
.
damName
,
dataSources
:
route
.
query
.
dataSources
}
});
}
...
...
@@ -571,7 +597,7 @@ onBeforeMount(() => {
}
}
}
else
if
(
item
.
field
==
'rightMain'
)
{
item
.
default
=
detailInfo
.
value
.
rightMainName
;
item
.
default
=
route
.
query
.
dataSources
==
'1'
?
detailInfo
.
value
.
rightMain
:
detailInfo
.
value
.
rightMainName
;
}
});
if
(
route
.
query
.
guid
&&
route
.
query
.
foundMode
==
'2'
)
{
...
...
@@ -599,6 +625,23 @@ onBeforeMount(() => {
}
});
}
if
(
route
.
query
.
dataSources
==
'1'
)
{
getTenantList
({
bizState
:
'Y'
,
pageSize
:
-
1
}).
then
((
res
:
any
)
=>
{
rightMainTenantList
.
value
=
[];
if
(
res
.
code
==
proxy
.
$passCode
)
{
rightMainTenantList
.
value
=
res
.
data
?.
records
||
[];
let
item
=
baseInfoFormItems
.
value
.
find
(
b
=>
b
.
field
==
'rightMain'
);
item
&&
(
item
.
options
=
rightMainTenantList
.
value
);
}
else
{
proxy
.
$ElMessage
.
error
(
res
.
msg
);
}
})
}
function
replaceChildDictListKey
(
data
)
{
if
(
Array
.
isArray
(
data
))
{
return
data
.
map
(
item
=>
replaceChildDictListKey
(
item
));
...
...
@@ -639,7 +682,7 @@ const cancel = () => {
proxy
.
$openMessageBox
(
"当前页面尚未保存,确定放弃修改吗?"
,
()
=>
{
userStore
.
setTabbar
(
userStore
.
tabbar
.
filter
((
tab
:
any
)
=>
tab
.
fullPath
!==
fullPath
));
router
.
push
({
path
:
'/data-asset/register-catalog'
path
:
route
.
query
.
dataSources
==
'1'
?
'/data-asset/authordata-catalog'
:
'/data-asset/register-catalog'
});
},
()
=>
{
proxy
.
$ElMessage
.
info
(
"已取消"
);
...
...
@@ -676,14 +719,17 @@ const save = () => {
if
(
damGuid
.
value
)
{
params
.
guid
=
damGuid
.
value
;
params
.
foundMode
=
route
.
query
.
foundMode
;
if
(
route
.
query
.
dataSources
!=
'1'
)
{
params
.
rightMain
=
detailInfo
.
value
.
rightMain
;
}
fullscreenLoading
.
value
=
true
;
registerCatalogUpdate
(
params
).
then
((
res
:
any
)
=>
{
fullscreenLoading
.
value
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
proxy
.
$ElMessage
.
success
(
'资源目录编辑提交成功'
);
router
.
push
({
name
:
'registerCatalogManagement'
// name: 'registerCatalogManagement'
path
:
route
.
query
.
dataSources
==
'1'
?
'/data-asset/authordata-catalog'
:
'/data-asset/register-catalog'
});
userStore
.
setTabbar
(
userStore
.
tabbar
.
filter
((
tab
:
any
)
=>
tab
.
fullPath
!==
fullPath
));
assetStore
.
setDamCatalogRefresh
(
true
);
...
...
@@ -695,13 +741,14 @@ const save = () => {
params
.
damCatalogTableInfo
=
assetDataTableInfo
.
value
.
data
;
fullscreenLoading
.
value
=
true
;
console
.
log
(
params
,
'params'
);
params
.
rightMain
=
JSON
.
parse
(
userStore
.
userData
).
tenantGuid
;
//
params.rightMain = JSON.parse(userStore.userData).tenantGuid;
registerCatalogSave
(
params
).
then
((
res
:
any
)
=>
{
fullscreenLoading
.
value
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
proxy
.
$ElMessage
.
success
(
'资源目录新建提交成功'
);
router
.
push
({
name
:
'registerCatalogManagement'
// name: 'registerCatalogManagement'
path
:
route
.
query
.
dataSources
==
'1'
?
'/data-asset/authordata-catalog'
:
'/data-asset/register-catalog'
});
userStore
.
setTabbar
(
userStore
.
tabbar
.
filter
((
tab
:
any
)
=>
tab
.
fullPath
!==
fullPath
));
assetStore
.
setDamCatalogRefresh
(
true
);
...
...
src/views/data_asset/registerCatalogDetail.vue
View file @
3484b99
...
...
@@ -16,7 +16,8 @@ import {
getEvaDetail
,
getCostDetail
,
getDataReceiveContractDetail
,
getCertificateDetail
getCertificateDetail
,
getRegisterCatalogDetailGuids
}
from
"@/api/modules/dataAsset"
;
import
{
changeNum
}
from
'@/utils/common'
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
...
...
@@ -94,6 +95,79 @@ const deploymentId = ref('');
const
processInstanceId
=
ref
(
''
);
const
registerDetailTableInfo
=
ref
({
id
:
'register-data-table'
,
rowKey
:
'guid'
,
height
:
220
,
loading
:
false
,
fields
:
[
{
label
:
"序号"
,
type
:
"index"
,
width
:
56
,
align
:
"center"
},
{
label
:
"事项"
,
field
:
"title"
,
width
:
160
,
align
:
"left"
},
{
label
:
"对接主体"
,
field
:
"institutionName"
,
width
:
160
,
align
:
"left"
},
],
data
:
<
any
>
[],
showPage
:
false
,
actionInfo
:
{
label
:
"操作"
,
type
:
"btn"
,
width
:
130
,
btns
:
[{
label
:
"查看详情"
,
value
:
"detail"
,
click
:
(
scope
)
=>
{
let
row
=
scope
.
row
;
if
(
row
.
type
==
'asset'
)
{
router
.
push
({
name
:
'registerInfoDetail'
,
query
:
{
guid
:
row
.
guid
,
name
:
detailInfo
.
value
.
damName
,
tenantGuid
:
row
.
tenantGuid
,
tenantName
:
row
.
tenantName
,
type
:
'asset'
}
});
}
else
if
(
row
.
type
==
'qualityEvaluate'
)
{
if
(
row
.
registerApproveState
==
'Y'
)
{
router
.
push
({
name
:
'registerDetail'
,
query
:
{
guid
:
row
.
registerGuid
,
evaGuid
:
row
.
guid
,
type
:
'qualityEvaluate'
,
tenantGuid
:
row
.
tenantGuid
,
tenantName
:
row
.
tenantName
}
});
}
else
{
router
.
push
({
name
:
'evaCatalogDetail'
,
query
:
{
guid
:
route
.
query
.
guid
,
evaGuid
:
row
.
guid
,
type
:
'qualityEvaluate'
,
tenantGuid
:
row
.
tenantGuid
}
});
}
}
else
if
(
row
.
type
==
'costAssess'
)
{
if
(
row
.
registerApproveState
==
'Y'
)
{
router
.
push
({
name
:
'registerValueDetail'
,
query
:
{
guid
:
row
.
registerGuid
,
costAssessGuid
:
row
.
guid
,
type
:
'costAssess'
,
tenantGuid
:
row
.
tenantGuid
,
tenantName
:
row
.
tenantName
}
});
}
else
{
router
.
push
({
name
:
'costAssessDetail'
,
query
:
{
guid
:
route
.
query
.
guid
,
costAssessGuid
:
row
.
guid
,
type
:
'costAssess'
,
tenantGuid
:
row
.
tenantGuid
}
});
}
}
else
if
(
row
.
type
==
'product'
)
{
router
.
push
({
name
:
'productListingDetail'
,
query
:
{
guid
:
row
.
guid
,
type
:
'detail'
,
name
:
detailInfo
.
value
.
damName
,
exchangeGuid
:
row
.
institutionGuid
?
row
.
institutionGuid
:
''
,
tenantGuid
:
row
.
tenantGuid
}
});
}
else
if
(
row
.
type
==
'trade'
)
{
router
.
push
({
path
:
route
.
query
.
dataSources
==
'1'
?
'/data-asset/authordata-catalog/register-catalog-transaction-detail'
:
'/data-asset/register-catalog/register-catalog-transaction-detail'
,
//name: 'transactionManagement'
query
:
{
guid
:
row
.
guid
,
damName
:
detailInfo
.
value
.
damName
,
}
});
}
}
}]
}
});
const
getDetailInfo
=
()
=>
{
fullscreenLoading
.
value
=
true
;
getRegisterCatalogDetail
({
guid
:
catalogGuid
,
serviceTenantGuid
:
route
.
query
.
tenantGuid
}).
then
((
res
:
any
)
=>
{
...
...
@@ -182,6 +256,44 @@ const getDetailInfo = () => {
}
})
}
getRegisterCatalogDetailGuids
({
damGuid
:
catalogGuid
,
serviceTenantGuid
:
route
.
query
.
tenantGuid
}).
then
((
res
:
any
)
=>
{
registerDetailTableInfo
.
value
.
data
=
[];
if
(
res
.
code
==
proxy
.
$passCode
)
{
const
data
=
res
.
data
||
{};
if
(
data
.
registerBaseRSVO
)
{
registerDetailTableInfo
.
value
.
data
.
push
(
Object
.
assign
({},
data
.
registerBaseRSVO
,
{
title
:
"资产登记"
,
type
:
'asset'
}));
}
if
(
data
.
qualityEvaluationRSVO
)
{
registerDetailTableInfo
.
value
.
data
.
push
(
Object
.
assign
({},
data
.
qualityEvaluationRSVO
,
{
title
:
"质量评估"
,
type
:
'qualityEvaluate'
}));
}
if
(
data
.
costAssessmentRSVO
)
{
registerDetailTableInfo
.
value
.
data
.
push
(
Object
.
assign
({},
data
.
costAssessmentRSVO
,
{
title
:
"价值评估"
,
type
:
'costAssess'
}));
}
if
(
data
.
productGroundingRSVO
)
{
registerDetailTableInfo
.
value
.
data
.
push
(
Object
.
assign
({},
data
.
productGroundingRSVO
,
{
title
:
"数据产品上架"
,
type
:
'product'
}));
}
if
(
data
.
mfTradingInfoRSVO
)
{
registerDetailTableInfo
.
value
.
data
.
push
(
Object
.
assign
({},
data
.
mfTradingInfoRSVO
,
{
title
:
"数据产品交易"
,
type
:
'trade'
}));
}
}
else
{
proxy
.
$ElMessage
.
error
(
res
.
msg
);
}
})
}
onBeforeMount
(()
=>
{
...
...
@@ -221,7 +333,7 @@ const isTextTruncated = () => {
if (!domDesc) {
return;
}
if (domDesc.clientHeight >
64
) {
if (domDesc.clientHeight >
82
) {
isTruncated.value = true;
} else {
isTruncated.value = false;
...
...
@@ -249,7 +361,8 @@ const handleTableExpandChange = (row: any, expandedRows: any[]) => {
const handleTableViewData = (scope) => {
let row = scope.row;
router.push({
name: 'damTableDataView',
// name: 'damTableDataView',
path: route.query.dataSources == '1' ? '/data-asset/authordata-catalog/damTableDataView' : '/data-asset/register-catalog/damTableDataView',
query: {
guid: row.guid,
name: row.tableChName,
...
...
@@ -285,7 +398,8 @@ const btnClick = (btn) => {
console.log('detailType', detailType.value);
if (detailType.value == 'asset') {
router.push({
name: 'registerCatalogManagement',
path: route.query.dataSources == '1' ? '/data-asset/authordata-catalog' : '/data-asset/register-catalog',
//name: 'registerCatalogManagement',
query: {}
});
} else {
...
...
@@ -933,7 +1047,8 @@ const handleClick = () => {
// 跳转到 apiDetail 页面
if
(
detailInfo
.
value
.
foundMode
==
'2'
)
{
router
.
push
({
name
:
'apiDetail'
,
path
:
route
.
query
.
dataSources
==
'1'
?
'/data-asset/authordata-catalog/api-detail'
:
'/data-asset/register-catalog/api-detail'
,
//name: 'apiDetail',
query
:
{
guid
:
detailInfo
.
value
.
guid
,
type
:
'detaile'
,
...
...
@@ -963,7 +1078,8 @@ const deliverySpanMethod = ({
const
clickContractDetail
=
(
item
)
=>
{
router
.
push
({
name
:
'registerCatalogContractDetail'
,
path
:
route
.
query
.
dataSources
==
'1'
?
'/data-asset/authordata-catalog/register-catalog-contract-detail'
:
'/data-asset/register-catalog/register-catalog-contract-detail'
,
//name: 'registerCatalogContractDetail',
query
:
{
guid
:
item
.
dataContractGuid
,
name
:
item
.
dataContractName
,
...
...
@@ -1015,6 +1131,7 @@ const viewDeliveryFile = (file) => {
<div
class=
"dataLabel dataLabel1"
>
{{
detailInfo
.
dataSourcesName
}}
</div>
</div>
</div>
<div
class=
"applicationScenarios"
>
{{
'权利主体:'
+
detailInfo
.
rightMainName
}}
</div>
<div
class=
"applicationScenarios"
:style=
"
{ 'margin-right': (isTruncated
&&
!isExpanded) ? '30px' : '0px', WebkitLineClamp: (!isTruncated ? 'inherit' : (isExpanded ? 'inherit' : 1)), WebkitBoxOrient: 'vertical' }">
{{
'覆盖地域:'
+
(
detailInfo
.
coverageArea
?.[
0
]?.[
0
]
==
'all'
?
'全国'
:
(
detailInfo
.
coverageAreaName
?.
map
(
c
=>
...
...
@@ -1035,7 +1152,7 @@ const viewDeliveryFile = (file) => {
:highlight-current-row=
"true"
stripe
border
@
expand-change=
"handleTableExpandChange"
height=
"100%"
tooltip-effect=
"light"
row-key=
"guid"
:style=
"
{
width: '100%',
height: '
40
0px',
height: '
35
0px',
display: 'inline-block',
}">
<el-table-column
type=
"expand"
>
...
...
@@ -1343,6 +1460,10 @@ const viewDeliveryFile = (file) => {
</div>
</ContentWrap>
<ContentWrap
v-if=
"route.query.type == 'asset' && registerDetailTableInfo.data.length > 0"
id=
"id-registerDetail"
title=
"登记评估上架交易"
description=
""
style=
"margin: 16px 16px 16px"
>
<Table
:table-info=
"registerDetailTableInfo"
></Table>
</ContentWrap>
<ContentWrap
v-if=
"(route.query.type == 'qualityEvaluate' && evaDetailInfo.approveVO && evaDetailInfo.isApprove != 'N') || (route.query.type == 'costAssess' && costAssessDetail.approveVO && costAssessDetail.isApprove != 'N')"
id=
"id-approveInfo"
title=
"审批信息"
description=
""
style=
"margin: 16px 16px 16px"
>
...
...
@@ -1596,7 +1717,7 @@ const viewDeliveryFile = (file) => {
.expand_btn
{
position
:
absolute
;
right
:
0px
;
top
:
34
px
;
top
:
58
px
;
font-size
:
14px
;
line-height
:
21px
;
}
...
...
src/views/data_asset/registerCatalogManagement.vue
View file @
3484b99
...
...
@@ -25,6 +25,13 @@ const userData = JSON.parse(userStore.userData);
const
assetStore
=
useDataAssetStore
();
const
props
=
defineProps
({
dataSources
:
{
type
:
Number
,
default
:
2
,
}
})
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
()
as
any
;
const
damTypes
:
any
=
ref
([]);
...
...
@@ -156,8 +163,9 @@ const tableBtnClick = (scope, btn) => {
currTableData
.
value
=
row
;
if
(
type
===
"edit"
)
{
router
.
push
({
name
:
"registerCatalogCreate"
,
query
:
{
guid
:
row
.
guid
,
damName
:
row
.
damName
,
foundMode
:
row
.
foundMode
},
// name: "registerCatalogCreate",
path
:
props
.
dataSources
==
1
?
'/data-asset/authordata-catalog/register-ctalog-create'
:
'/data-asset/register-catalog/register-ctalog-create'
,
query
:
{
guid
:
row
.
guid
,
damName
:
row
.
damName
,
foundMode
:
row
.
foundMode
,
dataSources
:
props
.
dataSources
},
});
}
else
if
(
type
==
"delete"
)
{
proxy
.
$openMessageBox
(
'此操作将永久删除该资源,是否继续'
,
()
=>
{
...
...
@@ -181,13 +189,15 @@ const tableBtnClick = (scope, btn) => {
const
handleDataClick
=
(
item
)
=>
{
if
(
item
.
isRegister
==
"N"
&&
item
.
foundMode
!=
3
)
{
router
.
push
({
name
:
"registerCatalogCreate"
,
query
:
{
guid
:
item
.
guid
,
damName
:
item
.
damName
,
foundMode
:
item
.
foundMode
},
path
:
props
.
dataSources
==
1
?
'/data-asset/authordata-catalog/register-ctalog-create'
:
'/data-asset/register-catalog/register-ctalog-create'
,
// name: "registerCatalogCreate",
query
:
{
guid
:
item
.
guid
,
damName
:
item
.
damName
,
foundMode
:
item
.
foundMode
,
dataSources
:
props
.
dataSources
},
});
}
else
{
router
.
push
({
name
:
"registerCatalogDetail"
,
query
:
{
guid
:
item
.
guid
,
type
:
"asset"
},
// name: "registerCatalogDetail",
path
:
props
.
dataSources
==
1
?
'/data-asset/authordata-catalog/register-catalog-detail'
:
'/data-asset/register-catalog/register-catalog-detail'
,
query
:
{
guid
:
item
.
guid
,
type
:
"asset"
,
dataSources
:
props
.
dataSources
},
});
}
};
...
...
@@ -201,7 +211,7 @@ const getTableData = () => {
damType
:
pageInfo
.
value
.
damType
,
subjectDomain
:
pageInfo
.
value
.
subjectDomain
||
[],
tenantGuid
:
pageInfo
.
value
.
tenantGuid
,
dataSources
:
p
ageInfo
.
value
.
dataSources
,
dataSources
:
p
rops
.
dataSources
,
isRegister
:
pageInfo
.
value
.
isRegister
,
foundMode
:
pageInfo
.
value
.
foundMode
,
}).
then
((
res
:
any
)
=>
{
...
...
@@ -228,7 +238,7 @@ const toSearch = (val: any, clear: boolean = false) => {
pageInfo
.
value
.
subjectDomain
=
[];
pageInfo
.
value
.
tenantGuid
=
""
;
pageInfo
.
value
.
isRegister
=
""
;
pageInfo
.
value
.
dataSources
=
""
;
//
pageInfo.value.dataSources = "";
pageInfo
.
value
.
foundMode
=
""
;
}
else
{
pageInfo
.
value
.
damName
=
val
.
damName
;
...
...
@@ -236,7 +246,7 @@ const toSearch = (val: any, clear: boolean = false) => {
pageInfo
.
value
.
subjectDomain
=
val
.
subjectDomain
;
pageInfo
.
value
.
tenantGuid
=
val
.
tenantGuid
;
pageInfo
.
value
.
isRegister
=
val
.
isRegister
;
pageInfo
.
value
.
dataSources
=
val
.
dataSources
;
//
pageInfo.value.dataSources = val.dataSources;
pageInfo
.
value
.
foundMode
=
val
.
foundMode
;
}
getTableData
();
...
...
@@ -308,7 +318,11 @@ function replaceChildDictListKey(data) {
const
handleCreate
=
()
=>
{
router
.
push
({
name
:
"registerCatalogCreate"
,
path
:
props
.
dataSources
==
1
?
'/data-asset/authordata-catalog/register-ctalog-create'
:
'/data-asset/register-catalog/register-ctalog-create'
,
query
:
{
dataSources
:
props
.
dataSources
}
// name: "registerCatalogCreate",
});
};
...
...
@@ -387,8 +401,9 @@ const handleUploadClose = (itemGuid) => {
if
(
itemGuid
)
{
assetStore
.
setDamCatalogRefresh
(
true
);
router
.
push
({
name
:
"registerCatalogDetail"
,
query
:
{
guid
:
itemGuid
,
type
:
"asset"
},
path
:
props
.
dataSources
==
1
?
'/data-asset/authordata-catalog/register-catalog-detail'
:
'/data-asset/register-catalog/register-catalog-detail'
,
//name: "registerCatalogDetail",
query
:
{
guid
:
itemGuid
,
type
:
"asset"
,
dataSources
:
props
.
dataSources
},
});
}
}
...
...
src/views/data_asset/transactionDetail.vue
0 → 100644
View file @
3484b99
<route
lang=
"yaml"
>
name: transactionDetail 数据产品交易信息详情
</route>
<
script
lang=
"ts"
setup
name=
"transactionDetail"
>
import
{
getDownFileSignByUrl
,
obsDownloadRequest
,
parseAndDecodeUrl
}
from
"@/api/modules/obsService"
;
import
{
changeNum
,
download
,
getDownloadUrl
}
from
"@/utils/common"
;
import
{
ElMessage
}
from
"element-plus"
;
import
{
ref
}
from
"vue"
;
import
{
getTransactionDetail
}
from
"@/api/modules/dataAsset"
;
const
{
proxy
}
=
getCurrentInstance
()
as
any
;
const
router
=
useRouter
();
const
route
=
useRoute
();
const
detailLoading
=
ref
(
false
);
const
detailInfo
:
any
=
ref
({});
onBeforeMount
(()
=>
{
detailLoading
.
value
=
true
;
getTransactionDetail
({
guid
:
route
.
query
.
guid
}).
then
((
res
:
any
)
=>
{
detailLoading
.
value
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
detailInfo
.
value
=
res
.
data
||
{};
}
else
{
ElMessage
.
error
(
'驳回失败'
);
}
});
})
export
const
onUploadFileDownload
=
async
(
params
)
=>
{
const
{
name
,
url
}
=
params
;
const
refSignInfo
:
any
=
await
getDownFileSignByUrl
(
parseAndDecodeUrl
(
url
).
fileName
);
if
(
!
refSignInfo
?.
data
)
{
refSignInfo
?.
msg
&&
ElMessage
.
error
(
refSignInfo
?.
msg
);
return
;
}
obsDownloadRequest
(
refSignInfo
?.
data
).
then
((
res
:
any
)
=>
{
if
(
res
&&
!
res
.
msg
)
{
var
fileSuffix
=
name
?
name
.
substring
(
name
.
lastIndexOf
(
'.'
)
+
1
)
:
''
;
download
(
res
,
name
,
fileSuffix
);
}
else
{
res
?.
msg
&&
ElMessage
.
error
(
res
?.
msg
);
}
})
}
export
const
onUploadFilePreview
=
async
(
params
)
=>
{
console
.
log
(
params
,
'params'
);
const
{
name
,
url
}
=
params
;
// let f = formInline.value[item.field].find(i => i.name == file.name);
// let url = f.url;
let
fileName
:
string
=
parseAndDecodeUrl
(
url
).
fileName
;
const
refSignInfo
:
any
=
await
getDownFileSignByUrl
(
fileName
);
if
(
!
refSignInfo
?.
data
)
{
refSignInfo
?.
msg
&&
ElMessage
.
error
(
refSignInfo
?.
msg
);
return
;
}
obsDownloadRequest
(
refSignInfo
?.
data
).
then
((
res
:
any
)
=>
{
if
(
res
&&
!
res
.
msg
)
{
var
fileSuffix
=
name
?
name
.
substring
(
name
.
lastIndexOf
(
'.'
)
+
1
).
toLowerCase
()
:
''
;
if
(
fileSuffix
===
'png'
||
fileSuffix
===
'jpeg'
||
fileSuffix
===
'jpg'
||
fileSuffix
===
'pdf'
)
{
//浏览器可以支持图片和pdf预览
let
fileUrl
=
<
string
>
getDownloadUrl
(
res
,
name
,
fileSuffix
);
let
win
=
window
.
open
(
fileUrl
,
name
);
win
&&
(
win
.
document
.
title
=
name
);
}
else
{
download
(
res
,
name
,
fileSuffix
);
}
}
else
{
res
?.
msg
&&
ElMessage
.
error
(
res
?.
msg
);
}
});
}
</
script
>
<
template
>
<div
class=
"container_wrap"
v-loading=
"detailLoading"
>
<ContentWrap
id=
"id-detail"
title=
"数据产品交易信息"
description=
""
style=
"margin: 0 16px"
>
<div
class=
"panel_body"
>
<div
class=
"list_panel"
>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
数据产品名称:
</span>
<span
class=
"item_value"
>
{{
detailInfo
.
damName
||
'--'
}}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
产品类型:
</span>
<span
class=
"item_value"
>
{{
detailInfo
.
damTypeName
||
'--'
}}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
买方名称:
</span>
<span
class=
"item_value"
>
{{
detailInfo
.
buyerName
||
'--'
}}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
卖方名称:
</span>
<span
class=
"item_value"
>
{{
detailInfo
.
sellerName
||
'--'
}}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
交易币种:
</span>
<span
class=
"item_value"
>
{{
detailInfo
.
tradingCurrencyName
||
'--'
}}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
原始交易金额:
</span>
<span
class=
"item_value"
>
{{
detailInfo
.
originalTradingAmount
!=
null
?
changeNum
(
detailInfo
.
originalTradingAmount
,
2
)
:
'--'
}}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
交易金额(元):
</span>
<span
class=
"item_value"
>
{{
detailInfo
.
tradingAmount
!=
null
?
changeNum
(
detailInfo
.
tradingAmount
,
2
)
:
'--'
}}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
交易方式:
</span>
<span
class=
"item_value"
>
{{
detailInfo
.
tradingWayName
||
'--'
}}
</span>
</div>
<div
class=
"list_item"
v-if=
"detailInfo.exchangeName"
>
<span
class=
"item_label"
>
交易场所:
</span>
<span
class=
"item_value"
>
{{
detailInfo
.
exchangeName
||
'--'
}}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
交易时间:
</span>
<span
class=
"item_value"
>
{{
detailInfo
.
tradingTime
||
'--'
}}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
合同编号:
</span>
<span
class=
"item_value"
>
{{
detailInfo
.
contractCode
||
'--'
}}
</span>
</div>
<div
class=
"list_item"
>
<span
class=
"item_label"
>
合同名称:
</span>
<span
class=
"item_value"
>
{{
detailInfo
.
contractName
||
'--'
}}
</span>
</div>
<div
class=
"list_item is_block"
>
<div
class=
"file_item"
v-if=
"detailInfo.contractAttachments?.length"
>
<span
class=
"item_label"
>
合同附件:
</span>
<span
class=
"item_value"
>
<div
class=
"file-operate"
>
<template
v-if=
"detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'xls' || detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'xlsx'"
>
<img
class=
"file-img"
src=
"../../assets/images/excel.png"
/>
</
template
>
<
template
v-else-if=
"detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'doc' || detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'docx'"
>
<img
class=
"file-img"
src=
"../../assets/images/word.png"
/>
</
template
>
<
template
v-else-if=
"detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'zip'"
>
<img
class=
"file-img"
src=
"../../assets/images/zip.png"
/>
</
template
>
<
template
v-else-if=
"detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'rar'"
>
<img
class=
"file-img"
src=
"../../assets/images/RAR.png"
/>
</
template
>
<
template
v-else-if=
"detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'pdf'"
>
<img
class=
"file-img"
src=
"../../assets/images/PDF.png"
/>
</
template
>
<
template
v-else-if=
"detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'png'"
>
<img
class=
"file-img"
src=
"../../assets/images/png.png"
/>
</
template
>
<
template
v-else-if=
"detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'jpg' || detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'jpeg'"
>
<img
class=
"file-img"
src=
"../../assets/images/jpg.png"
/>
</
template
>
<div
class=
"file-name"
><ellipsis-tooltip
:content=
"detailInfo.contractAttachments[0].name ?? ''"
class-name=
"w100f"
refName=
"tooltipOver"
></ellipsis-tooltip></div>
<div
:style=
"{ right: '36px' }"
class=
"file-preview"
v-if=
"detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'pdf' || detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'png' || detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'jpg' || detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'jpeg'"
@
click=
"onUploadFilePreview(detailInfo.contractAttachments?.[0])"
>
查看
</div>
<div
:style=
"{ right: '0px' }"
class=
"file-preview"
@
click=
"onUploadFileDownload(detailInfo.contractAttachments?.[0])"
>
下载
</div>
</div>
</span>
</div>
</div>
</div>
</div>
</ContentWrap>
</div>
</template>
<
style
lang=
"scss"
scoped
>
.panel_body
{
padding
:
8px
16px
;
box-shadow
:
0
0
0
1px
rgba
(
229
,
229
,
229
,
1
);
border-top
:
none
;
margin-top
:
1px
;
.list_panel
{
display
:
flex
;
flex-wrap
:
wrap
;
.list_item
{
width
:
33.33%
;
line-height
:
32px
;
font-size
:
14px
;
color
:
#666666
;
display
:
flex
;
justify-content
:
space-between
;
.item_label
{
width
:
100px
;
text-align
:
right
;
flex-shrink
:
0
;
&.t_left
{
width
:
auto
;
}
}
.file_item
{
width
:
50%
;
display
:
flex
;
justify-content
:
space-between
;
}
.item_value
{
color
:
var
(
--el-color-regular
);
padding
:
0
16px
;
flex
:
1
;
text-align
:
justify
;
min-width
:
100px
;
.file-operate
{
display
:
flex
;
align-items
:
center
;
position
:
relative
;
.file-img
{
width
:
24px
;
height
:
24px
;
}
&
:hover
{
background-color
:
#f5f5f5
;
}
.file-name
{
color
:
var
(
--el-color-regular
);
margin-left
:
4px
;
width
:
calc
(
100%
-
120px
);
}
.file-preview
{
position
:
absolute
;
cursor
:
pointer
;
color
:
var
(
--el-color-primary
);
margin-right
:
8px
;
white-space
:
nowrap
;
}
}
.area_text
+
.area_text
{
&::before
{
content
:
'、'
,
}
}
}
&
.is_block
{
width
:
100%
;
.item_value
{
white-space
:
pre-wrap
;
}
}
}
.list_item1
{
width
:
50%
;
line-height
:
32px
;
font-size
:
14px
;
color
:
#666666
;
display
:
flex
;
justify-content
:
space-between
;
.item_label
{
width
:
100px
;
text-align
:
right
;
flex-shrink
:
0
;
}
.file_item
{
width
:
100%
;
display
:
flex
;
justify-content
:
space-between
;
}
.item_value
{
color
:
var
(
--el-color-regular
);
padding
:
0
16px
;
flex
:
1
;
text-align
:
justify
;
min-width
:
100px
;
.file-operate
{
display
:
flex
;
align-items
:
center
;
position
:
relative
;
.file-img
{
width
:
24px
;
height
:
24px
;
}
&
:hover
{
background-color
:
#f5f5f5
;
}
.file-name
{
color
:
var
(
--el-color-regular
);
margin-left
:
4px
;
width
:
calc
(
100%
-
120px
);
}
.file-preview
{
position
:
absolute
;
cursor
:
pointer
;
color
:
var
(
--el-color-primary
);
margin-right
:
8px
;
white-space
:
nowrap
;
}
}
.area_text
+
.area_text
{
&::before
{
content
:
'、'
,
}
}
}
//
&
.is_block
{
//
width
:
100%
;
//
.item_value
{
//
white-space
:
pre-wrap
;
//
}
//
}
}
:deep
(
.el-form
)
{
width
:
100%
;
}
:deep
(
.panel_body
)
{
box-shadow
:
none
;
}
&
.label_auto
{
.list_item
{
.item_label
{
width
:
auto
;
}
.item_value
{
padding-left
:
0
;
}
}
}
}
.table_panel_wrap
{
.table_panel
{
padding
:
0
;
min-height
:
unset
;
}
}
.process_panel
{
height
:
500px
;
.iframe-sty
{
width
:
100%
;
height
:
100%
;
border
:
none
;
}
:deep
(
.property-panel
)
{
height
:
calc
(
100%
-
50px
)
!important
;
}
}
&
.collapse
{
height
:
0
;
padding
:
0
;
overflow
:
hidden
;
}
}
</
style
>
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