Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
a513d631
提交
a513d631
authored
3月 24, 2026
作者:
coderBryanFu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat:预警面板组件新增展开功能,更新数据资源库
上级
465468c2
全部展开
显示空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
204 行增加
和
19 行删除
+204
-19
App.vue
src/App.vue
+19
-0
down.png
src/components/base/WarningPane/icons/down.png
+0
-0
up.png
src/components/base/WarningPane/icons/up.png
+0
-0
index.vue
src/components/base/WarningPane/index.vue
+64
-13
index.js
src/router/index.js
+1
-0
setChart.js
src/utils/setChart.js
+0
-1
index.vue
src/views/bill/billHome/index.vue
+3
-1
index.vue
src/views/dataLibrary/bill/countryBill/index.vue
+0
-0
index.vue
src/views/dataLibrary/index.vue
+117
-4
没有找到文件。
src/App.vue
浏览文件 @
a513d631
...
...
@@ -29,6 +29,25 @@ import { ElMessage } from "element-plus";
const
router
=
useRouter
();
const
route
=
useRoute
();
import
useTagsViewStore
from
'@/stores/tagsView.js'
const
tagsViewStore
=
useTagsViewStore
()
// 在路由全局守卫中处理
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
// 路由允许添加标签(排除掉隐藏的布局页如 /404, /login 等)
if
(
to
.
path
.
includes
(
'dataLibrary'
))
{
tagsViewStore
.
addView
({
path
:
to
.
path
,
name
:
to
.
name
,
// 对应组件的 name,用于缓存
meta
:
{
...
to
.
meta
},
active
:
true
})
}
next
()
})
const
isShowAiBox
=
ref
(
false
);
...
...
src/components/base/WarningPane/icons/down.png
0 → 100644
浏览文件 @
a513d631
953 Bytes
src/components/base/WarningPane/icons/up.png
0 → 100644
浏览文件 @
a513d631
517 Bytes
src/components/base/WarningPane/index.vue
浏览文件 @
a513d631
<
template
>
<div
class=
"warnning-pane-wrapper"
:style=
"
{ width: width ? width : '1600px'
, height: height ? height : '116px'
}"
<div
class=
"warnning-pane-wrapper"
:style=
"
{ width: width ? width : '1600px' }"
:class="{
level1: warnningLevel === '特别重大风险',
level2: warnningLevel === '重大风险',
...
...
@@ -27,12 +27,22 @@
</div>
</div>
<div
class=
"warnning-pane-content text-regular"
>
{{
warnningContent
}}
{{
showContent
}}
<div
class=
"show-all-btn"
v-if=
"props.warnningContent.length > 185"
@
click
.
stop=
"handleClickShowAll"
>
<div
class=
"text text-tip-2"
>
{{
isShowAllContent
?
'收起'
:
'展开'
}}
</div>
<div
class=
"icon"
>
<img
v-if=
"!isShowAllContent"
src=
"./icons/down.png"
alt=
""
>
<img
v-else
src=
"./icons/up.png"
alt=
""
>
</div>
</div>
</div>
</div>
</
template
>
<
script
setup
>
import
{
ref
,
computed
}
from
'vue'
import
{
ElMessage
}
from
'element-plus'
...
...
@@ -50,6 +60,14 @@ const props = defineProps(
}
)
const
showContent
=
computed
(()
=>
{
if
(
!
isShowAllContent
.
value
)
{
return
props
.
warnningContent
.
length
>
185
?
props
.
warnningContent
.
slice
(
0
,
185
)
+
'...'
:
props
.
warnningContent
}
else
{
return
props
.
warnningContent
}
})
const
emit
=
defineEmits
([
'clickPane'
])
const
handleClickPane
=
()
=>
{
...
...
@@ -57,6 +75,12 @@ const handleClickPane = () => {
emit
(
'clickPane'
)
}
const
isShowAllContent
=
ref
(
false
)
const
handleClickShowAll
=
()
=>
{
isShowAllContent
.
value
=
!
isShowAllContent
.
value
}
</
script
>
<
style
lang=
"scss"
scoped
>
...
...
@@ -64,7 +88,8 @@ const handleClickPane = () => {
border-radius
:
10px
;
border
:
1px
solid
var
(
--
color-primary-100
);
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
cursor
:
pointer
;
// cursor: pointer;
height
:
max-content
;
}
.level1
{
...
...
@@ -146,15 +171,40 @@ const handleClickPane = () => {
.warnning-pane-content
{
width
:
calc
(
100%
-
40px
);
margin
:
0
auto
;
height
:
60px
;
display
:
-
webkit-box
;
/* 2. 设置内部布局方向为垂直 */
-webkit-box-orient
:
vertical
;
/* 3. 限制显示的行数为 2 行 */
-webkit-line-clamp
:
2
;
/* 4. 隐藏超出部分 */
overflow
:
hidden
;
/* 5. 设置文本溢出显示省略号 */
text-overflow
:
ellipsis
;
// height: 60px;
// display: -webkit-box;
// /* 2. 设置内部布局方向为垂直 */
// -webkit-box-orient: vertical;
// /* 3. 限制显示的行数为 2 行 */
// -webkit-line-clamp: 2;
// /* 4. 隐藏超出部分 */
// overflow: hidden;
// /* 5. 设置文本溢出显示省略号 */
// text-overflow: ellipsis;
position
:
relative
;
.show-all-btn
{
position
:
absolute
;
right
:
0px
;
bottom
:
4px
;
width
:
48px
;
height
:
22px
;
display
:
flex
;
gap
:
4px
;
cursor
:
pointer
;
.text
{
color
:
var
(
--
text-primary-50-color
);
&
:hover
{
color
:
var
(
--
color-primary-100
);
}
}
.icon
{
width
:
16px
;
height
:
16px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
}
}
</
style
>
\ No newline at end of file
src/router/index.js
浏览文件 @
a513d631
...
...
@@ -65,4 +65,5 @@ router.beforeEach((to, from, next) => {
next
();
});
export
default
router
;
src/utils/setChart.js
浏览文件 @
a513d631
...
...
@@ -11,7 +11,6 @@ const setChart = (option, chartId, allowClick, selectParam) => {
let
chart
=
echarts
.
init
(
chartDom
);
chart
.
setOption
(
option
);
if
(
allowClick
)
{
// 3. 添加点击事件监听
chart
.
on
(
'click'
,
function
(
params
)
{
switch
(
selectParam
.
moduleType
)
{
case
'国会法案'
:
...
...
src/views/bill/billHome/index.vue
浏览文件 @
a513d631
...
...
@@ -962,7 +962,9 @@ const handleBox9Data = async () => {
const
selectParam
=
{
moduleType
:
'国会法案'
,
proposedDateStart
:
box9selectetedTime
.
value
,
status
:
box9LegislativeStatus
.
value
===
'提出法案'
?
0
:
1
status
:
box9LegislativeStatus
.
value
===
'提出法案'
?
0
:
1
,
isInvolveCn
:
1
}
box9ChartInstance
=
setChart
(
box9Chart
,
"box9Chart"
,
true
,
selectParam
);
...
...
src/views/dataLibrary/bill/countryBill/index.vue
浏览文件 @
a513d631
差异被折叠。
点击展开。
src/views/dataLibrary/index.vue
浏览文件 @
a513d631
...
...
@@ -111,13 +111,13 @@ const siderList = ref([
{
name
:
'科技法案'
,
icon
:
Icon1
,
active
:
tru
e
,
isExpanded
:
tru
e
,
active
:
fals
e
,
isExpanded
:
fals
e
,
children
:
[
{
name
:
'国会法案'
,
path
:
'/dataLibrary/countryBill'
,
active
:
tru
e
,
active
:
fals
e
,
},
{
name
:
'州法案'
,
...
...
@@ -477,6 +477,118 @@ const handleClickToolBox = () => {
};
onMounted
(()
=>
{
const
path
=
route
.
path
switch
(
path
)
{
case
'/dataLibrary/countryBill'
:
siderList
.
value
[
0
].
active
=
true
siderList
.
value
[
0
].
isExpanded
=
true
siderList
.
value
[
0
].
children
[
0
].
active
=
true
break
case
'/dataLibrary/stateBill'
:
siderList
.
value
[
0
].
active
=
true
siderList
.
value
[
0
].
isExpanded
=
true
siderList
.
value
[
0
].
children
[
1
].
active
=
true
break
case
'/dataLibrary/dataDecree'
:
siderList
.
value
[
1
].
active
=
true
break
case
'/dataLibrary/dataThinkTank'
:
siderList
.
value
[
2
].
active
=
true
break
case
'/dataLibrary/dataEntityList'
:
siderList
.
value
[
3
].
active
=
true
siderList
.
value
[
3
].
isExpanded
=
true
siderList
.
value
[
3
].
children
[
0
].
active
=
true
break
case
'/dataLibrary/dataCommerceControlList'
:
siderList
.
value
[
3
].
active
=
true
siderList
.
value
[
3
].
isExpanded
=
true
siderList
.
value
[
3
].
children
[
1
].
active
=
true
break
case
'/dataLibrary/dataEntityListEvent'
:
siderList
.
value
[
3
].
active
=
true
siderList
.
value
[
3
].
isExpanded
=
true
siderList
.
value
[
3
].
children
[
2
].
active
=
true
break
case
'/dataLibrary/dataCommerceControlListEvent'
:
siderList
.
value
[
3
].
active
=
true
siderList
.
value
[
3
].
isExpanded
=
true
siderList
.
value
[
3
].
children
[
3
].
active
=
true
break
case
'/dataLibrary/sDNList'
:
siderList
.
value
[
4
].
active
=
true
siderList
.
value
[
4
].
isExpanded
=
true
siderList
.
value
[
4
].
children
[
0
].
active
=
true
break
case
'/dataLibrary/mREList'
:
siderList
.
value
[
4
].
active
=
true
siderList
.
value
[
4
].
isExpanded
=
true
siderList
.
value
[
4
].
children
[
1
].
active
=
true
break
case
'/dataLibrary/sDNListEvent'
:
siderList
.
value
[
4
].
active
=
true
siderList
.
value
[
4
].
isExpanded
=
true
siderList
.
value
[
4
].
children
[
2
].
active
=
true
break
case
'/dataLibrary/mREListEvent'
:
siderList
.
value
[
4
].
active
=
true
siderList
.
value
[
4
].
isExpanded
=
true
siderList
.
value
[
4
].
children
[
3
].
active
=
true
break
case
'/dataLibrary/case337'
:
siderList
.
value
[
5
].
active
=
true
siderList
.
value
[
5
].
isExpanded
=
true
siderList
.
value
[
5
].
children
[
0
].
active
=
true
break
case
'/dataLibrary/case232'
:
siderList
.
value
[
5
].
active
=
true
siderList
.
value
[
5
].
isExpanded
=
true
siderList
.
value
[
5
].
children
[
1
].
active
=
true
break
case
'/dataLibrary/case301'
:
siderList
.
value
[
5
].
active
=
true
siderList
.
value
[
5
].
isExpanded
=
true
siderList
.
value
[
5
].
children
[
2
].
active
=
true
break
case
'/dataLibrary/congressMan'
:
siderList
.
value
[
6
].
active
=
true
siderList
.
value
[
6
].
isExpanded
=
true
siderList
.
value
[
6
].
children
[
0
].
active
=
true
break
case
'/dataLibrary/technologyLeader'
:
siderList
.
value
[
6
].
active
=
true
siderList
.
value
[
6
].
isExpanded
=
true
siderList
.
value
[
6
].
children
[
1
].
active
=
true
break
case
'/dataLibrary/minister'
:
siderList
.
value
[
6
].
active
=
true
siderList
.
value
[
6
].
isExpanded
=
true
siderList
.
value
[
6
].
children
[
2
].
active
=
true
break
case
'/dataLibrary/thinkTankResearcher'
:
siderList
.
value
[
6
].
active
=
true
siderList
.
value
[
6
].
isExpanded
=
true
siderList
.
value
[
6
].
children
[
3
].
active
=
true
break
case
'/dataLibrary/technologyCompany'
:
siderList
.
value
[
7
].
active
=
true
siderList
.
value
[
7
].
isExpanded
=
true
siderList
.
value
[
7
].
children
[
0
].
active
=
true
break
case
'/dataLibrary/researchUniversity'
:
siderList
.
value
[
7
].
active
=
true
siderList
.
value
[
7
].
isExpanded
=
true
siderList
.
value
[
7
].
children
[
1
].
active
=
true
break
case
'/dataLibrary/keyLab'
:
siderList
.
value
[
7
].
active
=
true
siderList
.
value
[
7
].
isExpanded
=
true
siderList
.
value
[
7
].
children
[
2
].
active
=
true
break
}
})
...
...
@@ -683,7 +795,8 @@ onMounted(() => {
.icon
{
width
:
16px
;
height
:
16px
;
&
:hover
{
&
:hover
{
border-radius
:
8px
;
background
:
var
(
--
color-primary-10
);
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论