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
462a12ab
authored
2025-12-10 15:09:06 +0800
by
lihua
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
产品上架页面优化
1 parent
5fa003b8
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
33 additions
and
92 deletions
src/views/data_product/productListing.vue
src/views/data_product/productListing.vue
View file @
462a12a
...
...
@@ -235,29 +235,29 @@ const toSearch = (val: any, clear: boolean = false) => {
page
.
value
.
curr
=
1
;
tableInfo
.
value
.
page
.
curr
=
1
;
getTableData
();
getListingCountData
();
//
getListingCountData();
};
// 获取产品上架数量
const
getListingCountData
=
()
=>
{
flowDetailLoading
.
value
=
true
;
getListingCount
({
currentStaffGuid
:
userData
.
staffGuid
}).
then
((
res
:
any
)
=>
{
flowDetailLoading
.
value
=
false
;
if
(
res
.
code
==
proxy
.
$passCode
)
{
demandListData
.
value
=
res
.
data
||
[];
if
(
demandListData
.
value
?.
length
)
{
demandListData
.
value
=
[
demandListData
.
value
[
0
]];
}
let
valueData
=
chunk
(
demandListData
.
value
,
4
);
carouselInfo
.
value
.
list
=
valueData
;
carouselInfo
.
value
.
arrow
=
valueData
.
length
>
1
?
'hover'
:
'never'
;
}
else
{
proxy
.
$ElMessage
.
error
(
res
.
msg
);
}
})
}
//
const getListingCountData = () => {
//
flowDetailLoading.value = true;
//
getListingCount({
//
currentStaffGuid: userData.staffGuid
//
}).then((res: any) => {
//
flowDetailLoading.value = false;
//
if (res.code == proxy.$passCode) {
//
demandListData.value = res.data || [];
//
if (demandListData.value?.length) {
//
demandListData.value = [demandListData.value[0]];
//
}
//
let valueData = chunk(demandListData.value, 4);
//
carouselInfo.value.list = valueData;
//
carouselInfo.value.arrow = valueData.length > 1 ? 'hover' : 'never';
//
} else {
//
proxy.$ElMessage.error(res.msg);
//
}
//
})
//
}
const
tableSwitchBeforeChange
=
(
scope
,
field
,
callback
)
=>
{
ElMessageBox
.
confirm
(
...
...
@@ -297,12 +297,12 @@ const tableSwitchChange = (val, scope, field) => {
message
:
res
.
msg
,
});
getTableData
();
getListingCountData
();
//
getListingCountData();
reject
(
false
)
}
}).
catch
(()
=>
{
getTableData
();
getListingCountData
();
//
getListingCountData();
reject
(
false
)
})
})
...
...
@@ -375,7 +375,7 @@ const tableBtnClick = (scope, btn) => {
if
(
res
.
code
==
'00000'
)
{
ElMessage
.
success
(
'删除成功'
)
getTableData
();
getListingCountData
();
//
getListingCountData();
}
else
{
ElMessage
.
error
(
res
.
msg
)
}
...
...
@@ -397,7 +397,7 @@ const tableBtnClick = (scope, btn) => {
if
(
res
.
code
==
'00000'
)
{
ElMessage
.
success
(
'撤销成功!'
)
getTableData
();
getListingCountData
();
//
getListingCountData();
}
else
{
ElMessage
.
error
(
res
.
msg
)
}
...
...
@@ -547,7 +547,7 @@ const passSubmit = () => {
ElMessage
.
success
(
'审批通过!'
)
dialogVisible
.
value
=
false
;
getTableData
();
getListingCountData
();
//
getListingCountData();
}
else
{
ElMessage
.
error
(
res
.
msg
)
}
...
...
@@ -586,7 +586,7 @@ const rejectSubmit = async () => {
ElMessage
.
success
(
'驳回成功!'
)
dialogVisible
.
value
=
false
;
getTableData
();
getListingCountData
();
//
getListingCountData();
}
else
{
ElMessage
.
error
(
res
.
msg
)
}
...
...
@@ -612,7 +612,7 @@ const getFirstPageData = () => {
onActivated
(()
=>
{
if
(
assetStore
.
isRefresh
)
{
//如果是首次加载,则不需要调用
getListingCountData
();
//
getListingCountData();
page
.
value
.
curr
=
1
tableInfo
.
value
.
page
.
curr
=
1
;
getTableData
(
currExchangeGuid
.
value
);
...
...
@@ -648,19 +648,7 @@ const assetsSafeInfo = ref<any>()
const
defaultItemLogo
=
new
URL
(
'@/assets/images/home-finance-product.png'
,
import
.
meta
.
url
).
href
const
demandListData
:
any
=
ref
([
]);
const
flowDetailLoading
=
ref
(
false
);
const
btnClick
=
(
item
)
=>
{
console
.
log
(
item
)
if
(
item
.
exchangeGuid
)
{
router
.
push
({
name
:
"productListingDetail"
,
query
:
{
exchangeGuid
:
item
.
exchangeGuid
,
exchangeName
:
item
.
exchangeName
,
type
:
'add'
,
},
});
}
else
{
const
btnClick
=
()
=>
{
router
.
push
({
name
:
"productListingDetail"
,
query
:
{
...
...
@@ -668,7 +656,6 @@ const btnClick = (item) => {
case
:
'2'
,
},
});
}
}
const
currExchangeGuid
=
ref
(
''
);
...
...
@@ -932,57 +919,11 @@ const rejectDialogBtnClick = (btn, info) => {
<div
class=
"container_wrap"
>
<div
class=
"table_tool_wrap"
>
<TableTools
:searchItems=
"searchItemList"
:searchId=
"'data-source-search'"
@
search=
"toSearch"
/>
<!--
<div
class=
"tools_btns"
>
<el-button
type=
"primary"
@
click=
"toPatn('add')"
v-preReClick
>
新建
</el-button>
<el-button
type=
"primary"
@
click=
"toPatn1('add', 'add1')"
v-preReClick
>
新建
</el-button>
</div>
-->
</div>
<div
v-loading=
"flowDetailLoading"
>
<CarouselPanel
:carousel-info=
"carouselInfo"
>
<template
v-slot:default=
"
{ carousel }">
<div
class=
"card-content"
v-for=
"(item, i) in carousel"
:key=
"item.guid"
@
click=
"cardBtnClick(item)"
:class=
"
{ active: currExchangeGuid == item.exchangeGuid, mr16: i
< carousel
.
length
-
1
&&
(
i
+
1
)
%
4
!==
0
}"
>
<div
class=
"header"
>
<div
class=
"header-top"
>
<img
class=
"left-img"
:src=
"(item.picUrl && typeof item.picUrl == 'string') ? item.picUrl : (item.exchangeName?.indexOf('门户') > -1 ? sjsLogo : defaultItemLogo)"
alt=
""
/>
<div
class=
"title"
>
<ellipsis-tooltip
:content=
"item.exchangeName ?? '--'"
class-name=
"w100f"
:refName=
"'tooltipOver'"
></ellipsis-tooltip></div>
</div>
<div
class=
"right-main"
>
<div
class=
"count-group"
>
<div
class=
"count-item"
>
<div
class=
"item-label"
>
已上架产品数
</div>
<div
class=
"item-num"
>
{{
changeNum
(
item
.
listingNum
||
0
)
}}
</div>
</div>
<div
class=
"count-item"
>
<div
class=
"item-label"
>
审批中产品数
</div>
<div
class=
"item-num"
>
{{
changeNum
(
item
.
underReviewNum
||
0
)
}}
</div>
</div>
</div>
</div>
</div>
<div
class=
"operator-btn"
v-show=
"item.exchangeName?.indexOf('门户') > -1 "
@
click
.
stop=
"btnClick(item)"
>
<!--
<div
class=
"left-btn"
>
更新模板
</div>
-->
<div
class=
"right-btn"
>
产品上架
</div>
</div>
</div>
</
template
>
</CarouselPanel>
<!-- <div class="list-content" v-if="demandListData.length > 0">
</div> -->
<!-- <div class="v-tip">
<div class="tip-icon"></div>
<div class="tip-des">
在各数交所上架时,会同时在门户、专区和主平台门户进行展示;在门户上架则只会在门户上架,不会在数交所、专区及主平台门户上架。
<div
class=
"tools_btns"
>
<el-button
type=
"primary"
@
click=
"btnClick()"
v-preReClick
>
新建产品上架
</el-button>
</div>
</div> -->
</div>
<div
class=
"table_panel_wrap"
:style=
"{
height: 'calc(100% - 240px)'
}"
>
<div
class=
"table_panel_wrap"
:style=
"
{ height: 'calc(100% - 84px)' }">
<Table
:tableInfo=
"tableInfo"
@
tableBtnClick=
"tableBtnClick"
@
tablePageChange=
"tablePageChange"
@
tableSwitchBeforeChange=
"tableSwitchBeforeChange"
/>
</div>
...
...
@@ -1014,11 +955,11 @@ const rejectDialogBtnClick = (btn, info) => {
.table_tool_wrap
{
width
:
100%
;
height
:
5
0px
!important
;
//
height
:
4
0px
!important
;
padding
:
0
8px
;
.tools_btns
{
padding
:
0px
0
0
;
padding
:
0px
0
8px
;
}
}
...
...
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