Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
fda5d422
提交
fda5d422
authored
1月 14, 2026
作者:
huhuiqing
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
http://8.140.26.4:10003/caijian/risk-monitor
into dev_hhq
上级
d8ab6319
651a325c
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
277 行增加
和
45 行删除
+277
-45
headerMenu.vue
src/components/headerMenu.vue
+1
-0
index.vue
src/views/companyPages/index.vue
+5
-2
index.vue
src/views/decree/decreeHome/index.vue
+1
-1
index.vue
src/views/exportControl/index.vue
+5
-6
RuleSubsidiaryDialog.vue
...ionsOverview/components/listPage/RuleSubsidiaryDialog.vue
+18
-2
index.vue
...omponents/sanctionsOverview/components/listPage/index.vue
+1
-1
index.vue
...ol/v2.0SingleSanction/components/dataStatistics/index.vue
+8
-8
index.vue
...ontrol/v2.0SingleSanction/components/deepMining/index.vue
+0
-0
treeChart.js
....0SingleSanction/components/deepMining/utils/treeChart.js
+45
-0
index.vue
...v2.0SingleSanction/components/sanctionsOverview/index.vue
+5
-1
index.vue
src/views/thinkTank/index.vue
+188
-24
没有找到文件。
src/components/headerMenu.vue
浏览文件 @
fda5d422
...
@@ -247,6 +247,7 @@ const rightList = ref([
...
@@ -247,6 +247,7 @@ const rightList = ref([
width
:
100%
;
width
:
100%
;
height
:
299px
;
height
:
299px
;
background
:
rgb
(
249
,
249
,
249
);
background
:
rgb
(
249
,
249
,
249
);
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.3
);
display
:
flex
;
display
:
flex
;
.left
{
.left
{
margin-top
:
35px
;
margin-top
:
35px
;
...
...
src/views/companyPages/index.vue
浏览文件 @
fda5d422
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
<!-- 公司导航栏 -->
<!-- 公司导航栏 -->
<div
class=
"company-nav"
>
<div
class=
"company-nav"
>
<div
class=
"company-logo-title"
>
<div
class=
"company-logo-title"
>
<img
:src=
"infoData.logoUrl"
class=
"logo-img"
/>
<img
:src=
"infoData.logoUrl
?infoData.logoUrl:defaultCompanyIcon
"
class=
"logo-img"
/>
<div
class=
"title-group"
>
<div
class=
"title-group"
>
<h1
class=
"company-name"
>
{{
infoData
.
orgName
}}
</h1>
<h1
class=
"company-name"
>
{{
infoData
.
orgName
}}
</h1>
<p
class=
"company-english"
>
{{
infoData
.
orgNameEn
}}
</p>
<p
class=
"company-english"
>
{{
infoData
.
orgNameEn
}}
</p>
...
@@ -131,7 +131,7 @@
...
@@ -131,7 +131,7 @@
<div
class=
"personnel-grid"
>
<div
class=
"personnel-grid"
>
<div
class=
"personnel-card"
v-for=
"(person, idx) in mainPersonnel"
:key=
"idx"
>
<div
class=
"personnel-card"
v-for=
"(person, idx) in mainPersonnel"
:key=
"idx"
>
<div
class=
"personnel-card-header"
>
<div
class=
"personnel-card-header"
>
<img
:src=
"person.avatarUrl"
class=
"person-avatar"
/>
<img
:src=
"person.avatarUrl
?person.avatarUrl:defaultUserIcon
"
class=
"person-avatar"
/>
<div
class=
"person-info"
>
<div
class=
"person-info"
>
<h4
class=
"person-name"
>
{{
person
.
name
}}
</h4>
<h4
class=
"person-name"
>
{{
person
.
name
}}
</h4>
<p
class=
"person-position"
>
{{
person
.
position
}}
</p>
<p
class=
"person-position"
>
{{
person
.
position
}}
</p>
...
@@ -193,6 +193,9 @@ import TabIcon2Active from "./images/tab-icon2-active.png";
...
@@ -193,6 +193,9 @@ import TabIcon2Active from "./images/tab-icon2-active.png";
import
TabIcon3Active
from
"./images/tab-icon3-active.png"
;
import
TabIcon3Active
from
"./images/tab-icon3-active.png"
;
import
TabIcon4Active
from
"./images/tab-icon4-active.png"
;
import
TabIcon4Active
from
"./images/tab-icon4-active.png"
;
import
defaultUserIcon
from
"@/assets/icons/default-icon1.png"
import
defaultCompanyIcon
from
"@/assets/icons/default-icon2.png"
const
router
=
useRouter
();
const
router
=
useRouter
();
const
tabList
=
ref
([
const
tabList
=
ref
([
{
{
...
...
src/views/decree/decreeHome/index.vue
浏览文件 @
fda5d422
...
@@ -1144,7 +1144,6 @@ const handleToPosi = id => {
...
@@ -1144,7 +1144,6 @@ const handleToPosi = id => {
// 0 618 1240 2350
// 0 618 1240 2350
switch
(
id
)
{
switch
(
id
)
{
case
"position2"
:
case
"position2"
:
// containerRef.value.scrollTop = isShow.value ? 744 : 1090;
containerRef
.
value
.
scrollTop
=
isShow
.
value
?
844
:
1190
;
containerRef
.
value
.
scrollTop
=
isShow
.
value
?
844
:
1190
;
break
;
break
;
case
"position3"
:
case
"position3"
:
...
@@ -1334,6 +1333,7 @@ onMounted(async () => {
...
@@ -1334,6 +1333,7 @@ onMounted(async () => {
height
:
144px
;
height
:
144px
;
background
:
#fff
;
background
:
#fff
;
overflow
:
hidden
;
overflow
:
hidden
;
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.3
);
.home-main-header-center
{
.home-main-header-center
{
margin-top
:
20px
;
margin-top
:
20px
;
margin-left
:
200px
;
margin-left
:
200px
;
...
...
src/views/exportControl/index.vue
浏览文件 @
fda5d422
...
@@ -408,7 +408,7 @@
...
@@ -408,7 +408,7 @@
</el-col>
</el-col>
</el-row>
</el-row>
<el-row
:gutter=
"20"
style=
"width: 1600px; margin: 0 auto; margin-top: 39px"
>
<el-row
:gutter=
"20"
style=
"width: 1600px; margin: 0 auto; margin-top: 39px
;
"
>
<CustomTitle
id=
"position4"
title=
"资源库"
style=
"margin-top: 0px"
/>
<CustomTitle
id=
"position4"
title=
"资源库"
style=
"margin-top: 0px"
/>
<div
class=
"resource-tabs"
>
<div
class=
"resource-tabs"
>
<div
<div
...
@@ -1064,8 +1064,8 @@ const handleEntityClick = item => {
...
@@ -1064,8 +1064,8 @@ const handleEntityClick = item => {
const
route
=
router
.
resolve
({
const
route
=
router
.
resolve
({
name
:
"companyPages"
,
name
:
"companyPages"
,
params
:
{
params
:
{
startTime
:
item
.
startTime
,
//
startTime: item.startTime,
id
:
item
.
i
d
id
:
item
.
entityI
d
}
}
});
});
window
.
open
(
route
.
href
,
"_blank"
);
window
.
open
(
route
.
href
,
"_blank"
);
...
@@ -2868,9 +2868,8 @@ const handleMediaClick = item => {
...
@@ -2868,9 +2868,8 @@ const handleMediaClick = item => {
.home-main-footer
{
.home-main-footer
{
// width: 100%;
// width: 100%;
height
:
911px
;
//
height: 911px;
background
:
rgba
(
248
,
249
,
250
,
1
);
background
:
rgba
(
248
,
249
,
250
,
1
);
.home-main-footer-header
{
.home-main-footer-header
{
margin-top
:
37px
;
margin-top
:
37px
;
margin-bottom
:
36px
;
margin-bottom
:
36px
;
...
@@ -3156,7 +3155,7 @@ const handleMediaClick = item => {
...
@@ -3156,7 +3155,7 @@ const handleMediaClick = item => {
.all-content
{
.all-content
{
width
:
100%
;
width
:
100%
;
height
:
auto
;
height
:
auto
;
padding-bottom
:
10
0px
;
padding-bottom
:
3
0px
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
// align-items: center;
// align-items: center;
...
...
src/views/exportControl/v2.0EntityList/components/sanctionsOverview/components/listPage/RuleSubsidiaryDialog.vue
浏览文件 @
fda5d422
...
@@ -37,7 +37,7 @@
...
@@ -37,7 +37,7 @@
<
template
#
default=
"{ row }"
>
<
template
#
default=
"{ row }"
>
<div
class=
"entity-name-cell"
>
<div
class=
"entity-name-cell"
>
<el-avatar
class=
"avatar"
:size=
"24"
:src=
"row.avatar || defaultIcon"
/>
<el-avatar
class=
"avatar"
:size=
"24"
:src=
"row.avatar || defaultIcon"
/>
<div
class=
"name"
:title=
"row.name"
>
{{
row
.
name
}}
</div>
<div
class=
"name"
@
click=
"handleCompClick(row)"
:title=
"row.name"
>
{{
row
.
name
}}
</div>
</div>
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
...
@@ -79,8 +79,9 @@
...
@@ -79,8 +79,9 @@
<
script
setup
>
<
script
setup
>
import
{
ref
,
defineProps
,
defineEmits
,
computed
,
watch
}
from
"vue"
;
import
{
ref
,
defineProps
,
defineEmits
,
computed
,
watch
}
from
"vue"
;
import
router
from
"@/router"
;
import
{
Close
}
from
"@element-plus/icons-vue"
;
import
{
Close
}
from
"@element-plus/icons-vue"
;
import
defaultIcon
from
"
../../../../../assets/icons/default-avatar
.png"
;
import
defaultIcon
from
"
@/assets/icons/default-icon1
.png"
;
const
props
=
defineProps
({
const
props
=
defineProps
({
modelValue
:
{
modelValue
:
{
...
@@ -149,6 +150,20 @@ const getTagStyle = tag => {
...
@@ -149,6 +150,20 @@ const getTagStyle = tag => {
const
index
=
Math
.
abs
(
hash
)
%
colorPool
.
length
;
const
index
=
Math
.
abs
(
hash
)
%
colorPool
.
length
;
return
colorPool
[
index
];
return
colorPool
[
index
];
};
};
// 跳转公司详情页
const
handleCompClick
=
item
=>
{
console
.
log
(
"item"
,
item
);
window
.
sessionStorage
.
setItem
(
'curTabName'
,
item
.
entityNameZh
||
item
.
entityName
)
const
route
=
router
.
resolve
({
name
:
"companyPages"
,
params
:
{
id
:
item
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
};
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
@@ -271,6 +286,7 @@ const getTagStyle = tag => {
...
@@ -271,6 +286,7 @@ const getTagStyle = tag => {
overflow
:
hidden
;
overflow
:
hidden
;
white-space
:
nowrap
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
text-overflow
:
ellipsis
;
cursor
:
pointer
;
}
}
}
}
...
...
src/views/exportControl/v2.0EntityList/components/sanctionsOverview/components/listPage/index.vue
浏览文件 @
fda5d422
...
@@ -127,7 +127,7 @@ const handleCompClick = item => {
...
@@ -127,7 +127,7 @@ const handleCompClick = item => {
const
route
=
router
.
resolve
({
const
route
=
router
.
resolve
({
name
:
"companyPages"
,
name
:
"companyPages"
,
params
:
{
params
:
{
id
:
item
.
i
d
id
:
item
.
entityI
d
}
}
});
});
window
.
open
(
route
.
href
,
"_blank"
);
window
.
open
(
route
.
href
,
"_blank"
);
...
...
src/views/exportControl/v2.0SingleSanction/components/dataStatistics/index.vue
浏览文件 @
fda5d422
...
@@ -475,34 +475,34 @@ const initDomainChart = () => {
...
@@ -475,34 +475,34 @@ const initDomainChart = () => {
{
{
name
:
"制裁实体领域分布"
,
name
:
"制裁实体领域分布"
,
type
:
"pie"
,
type
:
"pie"
,
radius
:
[
73.5
,
89.5
],
radius
:
[
65
,
81
],
center
:
[
"50%"
,
"50%"
],
center
:
[
"50%"
,
"50%"
],
startAngle
:
90
,
startAngle
:
90
,
data
:
data
,
data
:
data
,
label
:
{
label
:
{
show
:
true
,
show
:
true
,
alignTo
:
"edge"
,
alignTo
:
"edge"
,
minMargin
:
5
,
minMargin
:
5
,
edgeDistance
:
10
,
edgeDistance
:
10
,
formatter
:
params
=>
{
formatter
:
params
=>
{
return
"{name|"
+
params
.
name
+
"}
\
n
{value|"
+
params
.
value
+
"家 "
+
params
.
percent
+
"%}"
;
return
"{name|"
+
params
.
name
+
"}
\
n
{value|"
+
params
.
value
+
"家 "
+
params
.
percent
+
"%}"
;
},
},
rich
:
{
rich
:
{
name
:
{
name
:
{
fontSize
:
18
,
fontSize
:
18
,
fontWeight
:
700
,
fontWeight
:
700
,
color
:
"rgb(59, 65, 75)"
,
color
:
"rgb(59, 65, 75)"
,
padding
:
[
0
,
0
,
5
,
0
],
padding
:
[
10
,
0
,
10
,
0
],
fontFamily
:
"Microsoft YaHei"
,
fontFamily
:
"Microsoft YaHei"
,
lineHeight
:
2
6
lineHeight
:
2
2
},
},
value
:
{
value
:
{
fontSize
:
16
,
fontSize
:
16
,
fontWeight
:
400
,
fontWeight
:
400
,
color
:
"rgb(95, 101, 108)"
,
color
:
"rgb(95, 101, 108)"
,
fontFamily
:
"Microsoft YaHei"
,
fontFamily
:
"Microsoft YaHei"
,
lineHeight
:
2
4
,
lineHeight
:
2
2
,
padding
:
[
5
,
0
,
0
,
0
]
padding
:
[
10
,
0
,
1
0
,
0
]
}
}
}
}
},
},
...
...
src/views/exportControl/v2.0SingleSanction/components/deepMining/index.vue
浏览文件 @
fda5d422
差异被折叠。
点击展开。
src/views/exportControl/v2.0SingleSanction/components/deepMining/utils/treeChart.js
0 → 100644
浏览文件 @
fda5d422
const
getTreeChart
=
(
treeData
)
=>
{
const
option
=
{
series
:
[{
type
:
'tree'
,
layout
:
'orthogonal'
,
// 从上到下布局
orient
:
'TB'
,
// Top to Bottom
data
:
treeData
,
top
:
'10%'
,
bottom
:
'5%'
,
left
:
'10%'
,
right
:
'10%'
,
symbol
:
'circle'
,
symbolSize
:
40
,
label
:
{
position
:
'bottom'
,
verticalAlign
:
'middle'
,
align
:
'center'
},
leaves
:
{
label
:
{
position
:
'top'
,
verticalAlign
:
'middle'
,
align
:
'center'
}
},
lineStyle
:
{
color
:
'#ccc'
,
width
:
2
,
type
:
'dashed'
// 虚线
},
emphasis
:
{
focus
:
'descendant'
},
expandAndCollapse
:
true
,
initialTreeDepth
:
3
}]
};
return
option
}
export
default
getTreeChart
\ No newline at end of file
src/views/exportControl/v2.0SingleSanction/components/sanctionsOverview/index.vue
浏览文件 @
fda5d422
...
@@ -93,7 +93,7 @@
...
@@ -93,7 +93,7 @@
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"right"
>
<div
class=
"right"
v-loading=
"isLoading"
>
<div
class=
"title-com"
>
<div
class=
"title-com"
>
<div
class=
"box"
></div>
<div
class=
"box"
></div>
<div
class=
"text"
>
制裁清单
</div>
<div
class=
"text"
>
制裁清单
</div>
...
@@ -239,8 +239,11 @@ const addRuleCount = ref(0)
...
@@ -239,8 +239,11 @@ const addRuleCount = ref(0)
const
removeCount
=
ref
(
0
)
const
removeCount
=
ref
(
0
)
const
removeRuleCount
=
ref
(
0
)
const
removeRuleCount
=
ref
(
0
)
const
isLoading
=
ref
(
false
)
// 调用单次制裁-制裁概况-制裁清单接口
// 调用单次制裁-制裁概况-制裁清单接口
const
getSanctionOverviewList
=
async
()
=>
{
const
getSanctionOverviewList
=
async
()
=>
{
isLoading
.
value
=
true
try
{
try
{
const
res
=
await
getSingleSanctionOverviewList
({
const
res
=
await
getSingleSanctionOverviewList
({
sanRecordId
:
sanRecordId
.
value
,
sanRecordId
:
sanRecordId
.
value
,
...
@@ -249,6 +252,7 @@ const getSanctionOverviewList = async () => {
...
@@ -249,6 +252,7 @@ const getSanctionOverviewList = async () => {
searchText
:
searchKeyword
.
value
||
undefined
,
searchText
:
searchKeyword
.
value
||
undefined
,
searchType
:
searchType
.
value
searchType
:
searchType
.
value
})
})
isLoading
.
value
=
false
if
(
res
.
code
===
200
)
{
if
(
res
.
code
===
200
)
{
const
data
=
res
.
data
||
{}
const
data
=
res
.
data
||
{}
addCount
.
value
=
data
.
addCount
||
0
addCount
.
value
=
data
.
addCount
||
0
...
...
src/views/thinkTank/index.vue
浏览文件 @
fda5d422
<
template
>
<
template
>
<div
class=
"home-wrapper"
>
<div
class=
"home-wrapper"
>
<div
class=
"home-main"
>
<div
class=
"search-header"
v-show=
"isShow"
>
<div
class=
"home-main-header-center"
>
<el-input
v-model=
"searchThinktankText"
@
keyup
.
enter=
"handleSearch"
style=
"width: 680px; height: 100%"
placeholder=
"搜索智库报告"
/>
<div
class=
"search"
>
<div
class=
"search-icon"
>
<img
src=
"./assets/images/search-icon.png"
alt=
""
/>
</div>
<div
class=
"search-text"
@
click=
"handleSearch"
>
搜索
</div>
</div>
</div>
<div
class=
"home-main-header-btn-box"
>
<div
class=
"btn"
@
click=
"handleToPosi('position1')"
>
<div
class=
"btn-text"
>
{{
"最新动态"
}}
</div>
<div
class=
"btn-icon"
>
<img
src=
"@/assets/icons/arrow-right-icon.png"
alt=
""
/>
</div>
</div>
<div
class=
"btn"
@
click=
"handleToPosi('position2')"
>
<div
class=
"btn-text"
>
{{
"资讯要闻"
}}
</div>
<div
class=
"btn-icon"
>
<img
src=
"@/assets/icons/arrow-right-icon.png"
alt=
""
/>
</div>
</div>
<div
class=
"btn"
@
click=
"handleToPosi('position3')"
>
<div
class=
"btn-text"
>
{{
"数据总览"
}}
</div>
<div
class=
"btn-icon"
>
<img
src=
"@/assets/icons/arrow-right-icon.png"
alt=
""
/>
</div>
</div>
<div
class=
"btn"
@
click=
"handleToPosi('position4')"
>
<div
class=
"btn-text"
>
{{
"资源库"
}}
</div>
<div
class=
"btn-icon"
>
<img
src=
"@/assets/icons/arrow-right-icon.png"
alt=
""
/>
</div>
</div>
</div>
</div>
<div
class=
"home-main"
:class=
"
{ scrollHomeMain: isShow }" ref="containerRef">
<div
class=
"home-main-header"
>
<div
class=
"home-main-header"
>
<div
class=
"home-main-header-top"
>
<div
class=
"home-main-header-top"
v-show=
"!isShow"
>
<div
class=
"header-left"
>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
<HeaderMenu></HeaderMenu>
</div>
</div>
...
@@ -10,8 +52,13 @@
...
@@ -10,8 +52,13 @@
<headerInfo
curTitleName=
"科技智库"
></headerInfo>
<headerInfo
curTitleName=
"科技智库"
></headerInfo>
</div>
</div>
</div>
</div>
<div
class=
"home-main-header-center"
>
<div
class=
"home-main-header-center"
v-show=
"!isShow"
>
<el-input
v-model=
"searchThinktankText"
@
keyup
.
enter=
"handleSearch"
style=
"width: 838px; height: 100%"
placeholder=
"搜索智库报告"
/>
<el-input
v-model=
"searchThinktankText"
@
keyup
.
enter=
"handleSearch"
style=
"width: 838px; height: 100%"
placeholder=
"搜索智库报告"
/>
<div
class=
"search"
>
<div
class=
"search"
>
<div
class=
"search-icon"
>
<div
class=
"search-icon"
>
<img
src=
"./assets/images/search-icon.png"
alt=
""
/>
<img
src=
"./assets/images/search-icon.png"
alt=
""
/>
...
@@ -37,26 +84,26 @@
...
@@ -37,26 +84,26 @@
<div
class=
"item-footer"
>
热点科技领域
</div>
<div
class=
"item-footer"
>
热点科技领域
</div>
</div>
</div>
</div>
-->
</div>
-->
<div
class=
"home-main-header-btn-box"
>
<div
class=
"home-main-header-btn-box"
v-show=
"!isShow"
>
<div
class=
"btn"
@
click=
"
scrollToTop
('position1')"
>
<div
class=
"btn"
@
click=
"
handleToPosi
('position1')"
>
<div
class=
"btn-text"
>
{{
"最新动态"
}}
</div>
<div
class=
"btn-text"
>
{{
"最新动态"
}}
</div>
<div
class=
"btn-icon"
>
<div
class=
"btn-icon"
>
<img
src=
"@/assets/icons/arrow-right-icon.png"
alt=
""
/>
<img
src=
"@/assets/icons/arrow-right-icon.png"
alt=
""
/>
</div>
</div>
</div>
</div>
<div
class=
"btn"
@
click=
"
scrollToTop
('position2')"
>
<div
class=
"btn"
@
click=
"
handleToPosi
('position2')"
>
<div
class=
"btn-text"
>
{{
"资讯要闻"
}}
</div>
<div
class=
"btn-text"
>
{{
"资讯要闻"
}}
</div>
<div
class=
"btn-icon"
>
<div
class=
"btn-icon"
>
<img
src=
"@/assets/icons/arrow-right-icon.png"
alt=
""
/>
<img
src=
"@/assets/icons/arrow-right-icon.png"
alt=
""
/>
</div>
</div>
</div>
</div>
<div
class=
"btn"
@
click=
"
scrollToTop
('position3')"
>
<div
class=
"btn"
@
click=
"
handleToPosi
('position3')"
>
<div
class=
"btn-text"
>
{{
"数据总览"
}}
</div>
<div
class=
"btn-text"
>
{{
"数据总览"
}}
</div>
<div
class=
"btn-icon"
>
<div
class=
"btn-icon"
>
<img
src=
"@/assets/icons/arrow-right-icon.png"
alt=
""
/>
<img
src=
"@/assets/icons/arrow-right-icon.png"
alt=
""
/>
</div>
</div>
</div>
</div>
<div
class=
"btn"
@
click=
"
scrollToTop
('position4')"
>
<div
class=
"btn"
@
click=
"
handleToPosi
('position4')"
>
<div
class=
"btn-text"
>
{{
"资源库"
}}
</div>
<div
class=
"btn-text"
>
{{
"资源库"
}}
</div>
<div
class=
"btn-icon"
>
<div
class=
"btn-icon"
>
<img
src=
"@/assets/icons/arrow-right-icon.png"
alt=
""
/>
<img
src=
"@/assets/icons/arrow-right-icon.png"
alt=
""
/>
...
@@ -275,17 +322,16 @@
...
@@ -275,17 +322,16 @@
</div>
</div>
</div> -->
</div> -->
<div
class=
"box4-main"
>
<div
class=
"box4-main"
>
<MessageBubble
<MessageBubble
v-for=
"(item, index) in messageList"
v-for=
"(item, index) in messageList"
@
click=
"handleClickPerson(item)"
@
click=
"handleClickPerson(item)"
:key=
"index"
:key=
"index"
:avatar=
"item.personImage ? item.personImage : defaultHeaderIcin"
:avatar=
"item.personImage ? item.personImage : defaultHeaderIcin"
:name=
"item.personName"
:name=
"item.personName"
:time=
"item.time"
:time=
"item.time"
:source=
"item.orgName"
:source=
"item.orgName"
:content=
"item.remarks"
:content=
"item.remarks"
/>
/>
<!-- <div class="box4-main-item" v-for="(item, index) in messageList" :key="index">
<!-- <div class="box4-main-item" v-for="(item, index) in messageList" :key="index">
<div class="left" @click="handleClickPerson(item)">
<div class="left" @click="handleClickPerson(item)">
<img :src="item.personImage ? item.personImage : defaultHeaderIcin" alt="" />
<img :src="item.personImage ? item.personImage : defaultHeaderIcin" alt="" />
...
@@ -607,6 +653,29 @@ import Box1Logo from "./assets/images/box1-logo.png";
...
@@ -607,6 +653,29 @@ import Box1Logo from "./assets/images/box1-logo.png";
import
{
setCanvasCreator
}
from
"echarts/core"
;
import
{
setCanvasCreator
}
from
"echarts/core"
;
import
{
ElMessage
}
from
"element-plus"
;
import
{
ElMessage
}
from
"element-plus"
;
import
{
useContainerScroll
}
from
"@/hooks/useScrollShow"
;
const
containerRef
=
ref
(
null
);
const
{
isShow
}
=
useContainerScroll
(
containerRef
);
const
handleToPosi
=
id
=>
{
// 0 618 1240 2350
switch
(
id
)
{
case
"position2"
:
// containerRef.value.scrollTop = isShow.value ? 744 : 1090;
containerRef
.
value
.
scrollTop
=
isShow
.
value
?
900
:
1150
;
break
;
case
"position3"
:
containerRef
.
value
.
scrollTop
=
isShow
.
value
?
1480
:
1730
;
break
;
case
"position4"
:
containerRef
.
value
.
scrollTop
=
isShow
.
value
?
2545
:
2795
;
break
;
default
:
containerRef
.
value
.
scrollTop
=
0
;
}
};
const
searchThinktankText
=
ref
(
""
);
//搜索科技人物及观点
const
searchThinktankText
=
ref
(
""
);
//搜索科技人物及观点
// 智库列表
// 智库列表
const
cardList
=
ref
([
const
cardList
=
ref
([
...
@@ -886,8 +955,8 @@ const handleGetThinkTankReportRemarks = async () => {
...
@@ -886,8 +955,8 @@ const handleGetThinkTankReportRemarks = async () => {
if
(
res
.
code
===
200
&&
res
.
data
)
{
if
(
res
.
code
===
200
&&
res
.
data
)
{
messageList
.
value
=
res
.
data
;
messageList
.
value
=
res
.
data
;
messageList
.
value
.
forEach
(
item
=>
{
messageList
.
value
.
forEach
(
item
=>
{
item
.
time
=
item
.
time
.
replace
(
'T'
,
' '
)
item
.
time
=
item
.
time
.
replace
(
"T"
,
" "
);
})
})
;
}
}
}
catch
(
error
)
{
}
catch
(
error
)
{
console
.
error
(
"获取智库人物动态error"
,
error
);
console
.
error
(
"获取智库人物动态error"
,
error
);
...
@@ -1536,7 +1605,7 @@ const handleGetetThinkTankReport = async () => {
...
@@ -1536,7 +1605,7 @@ const handleGetetThinkTankReport = async () => {
const
handleClick
=
tank
=>
{
const
handleClick
=
tank
=>
{
console
.
log
(
tank
);
console
.
log
(
tank
);
window
.
sessionStorage
.
setItem
(
"curTabName"
,
tank
.
name
+
'概览'
);
window
.
sessionStorage
.
setItem
(
"curTabName"
,
tank
.
name
+
"概览"
);
// router.push({ name: "ThinkTankDetail", params: { id: tank.id } });
// router.push({ name: "ThinkTankDetail", params: { id: tank.id } });
if
(
!
tank
.
id
)
{
if
(
!
tank
.
id
)
{
ElMessage
.
warning
(
"当前智库id为空,无法进入详情页"
);
ElMessage
.
warning
(
"当前智库id为空,无法进入详情页"
);
...
@@ -1684,7 +1753,102 @@ onMounted(async () => {
...
@@ -1684,7 +1753,102 @@ onMounted(async () => {
height
:
100%
;
height
:
100%
;
position
:
relative
;
position
:
relative
;
overflow-y
:
hidden
;
overflow-y
:
hidden
;
.search-header
{
width
:
100%
;
height
:
144px
;
background
:
#fff
;
overflow
:
hidden
;
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.3
);
.home-main-header-center
{
margin-top
:
20px
;
margin-left
:
200px
;
width
:
800px
;
height
:
48px
;
border-radius
:
10px
;
box-shadow
:
0px
0px
15px
0px
rgba
(
22
,
119
,
255
,
0
.1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
box-sizing
:
border-box
;
padding
:
1px
;
position
:
relative
;
border
:
1px
solid
transparent
;
&
:hover
{
border
:
1px
solid
var
(
--
color-main-active
);
}
.search
{
position
:
absolute
;
right
:
-1px
;
top
:
0px
;
width
:
120px
;
height
:
46px
;
border-radius
:
10px
;
background
:
var
(
--
color-main-active
);
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
cursor
:
pointer
;
.search-icon
{
width
:
18px
;
height
:
18px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.search-text
{
margin-left
:
8px
;
height
:
22px
;
color
:
#fff
;
font-family
:
Microsoft
YaHei
;
font-size
:
16px
;
font-weight
:
400
;
line-height
:
22px
;
}
}
}
.home-main-header-btn-box
{
margin-top
:
20px
;
margin-left
:
200px
;
display
:
flex
;
gap
:
16px
;
.btn
{
display
:
flex
;
align-items
:
center
;
gap
:
9px
;
width
:
160px
;
height
:
48px
;
border
:
1px
solid
#aed6ff
;
box-sizing
:
border-box
;
border-radius
:
24px
;
background
:
#e7f3ff
;
cursor
:
pointer
;
position
:
relative
;
&
:hover
{
background
:
#cae3fc
;
}
.btn-text
{
width
:
80px
;
color
:
var
(
--
color-main-active
);
font-family
:
Microsoft
YaHei
;
font-size
:
20px
;
font-weight
:
400
;
line-height
:
48px
;
margin-left
:
36px
;
text-align
:
center
;
}
.btn-icon
{
position
:
absolute
;
top
:
16px
;
right
:
19px
;
width
:
6px
;
height
:
12px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
}
}
}
.home-main
{
.home-main
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论