Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
4d9ad6a9
提交
4d9ad6a9
authored
3月 24, 2026
作者:
张伊明
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'zym-dev' 到 'pre'
Zym dev 查看合并请求
!214
上级
446dca08
6e82db52
流水线
#16
已失败 于阶段
in 1 分 45 秒
变更
17
流水线
1
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
212 行增加
和
24 行删除
+212
-24
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
-10
main.js
src/main.js
+1
-1
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/coopRestriction/components/dataNew/index.vue
+1
-1
index.vue
src/views/dataLibrary/bill/countryBill/index.vue
+0
-0
index.vue
src/views/dataLibrary/index.vue
+117
-4
index.vue
src/views/exportControl/index.vue
+1
-1
index.vue
src/views/finance/index.vue
+1
-1
index.vue
...views/marketAccessRestrictions/marketAccessHome/index.vue
+1
-1
index.vue
src/views/ruleRestriction/components/dataNew/index.vue
+1
-1
index.vue
src/views/scientificFunding/components/dataNew/index.vue
+1
-1
index.vue
src/views/technologyFigures/index.vue
+1
-1
没有找到文件。
src/App.vue
浏览文件 @
4d9ad6a9
...
...
@@ -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
浏览文件 @
4d9ad6a9
953 Bytes
src/components/base/WarningPane/icons/up.png
0 → 100644
浏览文件 @
4d9ad6a9
517 Bytes
src/components/base/WarningPane/index.vue
浏览文件 @
4d9ad6a9
<
template
>
<div
class=
"warnning-pane-wrapper"
:style=
"
{ width: width ? width : '1600px'
, height: height ? height : 'auto', minHeight: height ? undefined : '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,12 +171,40 @@ const handleClickPane = () => {
.warnning-pane-content
{
width
:
calc
(
100%
-
40px
);
margin
:
0
auto
;
margin-bottom
:
16px
;
min-height
:
60px
;
height
:
auto
;
display
:
block
;
overflow
:
visible
;
white-space
:
pre-wrap
;
word-break
:
break-word
;
// 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/main.js
浏览文件 @
4d9ad6a9
...
...
@@ -20,7 +20,7 @@ import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
// import AnalysisBox from '@/components/base/BoxBackground/AnalysisBox.vue'
// import NewsList from '@/components/base/NewsList/index.vue'
// import ModuleHeader from '@/components/base/ModuleHeader/index.vue'
// import RiskSignal from "@/components/base/
R
iskSignal/index.vue";
// import RiskSignal from "@/components/base/
r
iskSignal/index.vue";
// import MessageBubble from "@/components/base/MessageBubble/index.vue";
// import SourceTabLsit from '@/components/base/SourceTabList/index.vue'
// import ActionButton from "@/components/base/ActionButton/index.vue"
...
...
src/router/index.js
浏览文件 @
4d9ad6a9
...
...
@@ -65,4 +65,5 @@ router.beforeEach((to, from, next) => {
next
();
});
export
default
router
;
src/utils/setChart.js
浏览文件 @
4d9ad6a9
...
...
@@ -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
浏览文件 @
4d9ad6a9
...
...
@@ -992,7 +992,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/coopRestriction/components/dataNew/index.vue
浏览文件 @
4d9ad6a9
...
...
@@ -114,7 +114,7 @@
</
template
>
<
script
setup
>
import
RiskSignal
from
"@/components/base/
R
iskSignal/index.vue"
;
import
RiskSignal
from
"@/components/base/
r
iskSignal/index.vue"
;
import
{
ref
,
onMounted
,
computed
}
from
"vue"
;
import
router
from
"@/router"
;
import
{
getCoopRestrictionTrends
,
getCoopRestrictionSignals
}
from
"@/api/coopRestriction/coopRestriction.js"
;
...
...
src/views/dataLibrary/bill/countryBill/index.vue
浏览文件 @
4d9ad6a9
差异被折叠。
点击展开。
src/views/dataLibrary/index.vue
浏览文件 @
4d9ad6a9
...
...
@@ -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
);
}
...
...
src/views/exportControl/index.vue
浏览文件 @
4d9ad6a9
...
...
@@ -703,7 +703,7 @@
<
script
setup
>
//这是一个备注
import
NewsList
from
"@/components/base/newsList/index.vue"
;
import
RiskSignal
from
"@/components/base/
R
iskSignal/index.vue"
;
import
RiskSignal
from
"@/components/base/
r
iskSignal/index.vue"
;
import
{
onMounted
,
ref
,
computed
,
reactive
,
shallowRef
,
watch
,
nextTick
}
from
"vue"
;
import
{
useContainerScroll
}
from
"@/hooks/useScrollShow"
;
const
homeMainRef
=
ref
(
null
);
...
...
src/views/finance/index.vue
浏览文件 @
4d9ad6a9
...
...
@@ -459,7 +459,7 @@
</template>
<
script
setup
>
import
RiskSignal
from
"@/components/base/
R
iskSignal/index.vue"
;
import
RiskSignal
from
"@/components/base/
r
iskSignal/index.vue"
;
import
{
onMounted
,
ref
,
computed
}
from
"vue"
;
import
scrollToTop
from
"@/utils/scrollToTop"
;
import
setChart
from
"@/utils/setChart"
;
...
...
src/views/marketAccessRestrictions/marketAccessHome/index.vue
浏览文件 @
4d9ad6a9
...
...
@@ -394,7 +394,7 @@ import { onMounted, ref, nextTick } from "vue";
import
LeftBtn
from
"@/components/base/PageBtn/LeftBtn.vue"
;
import
RightBtn
from
"@/components/base/PageBtn/RightBtn.vue"
;
import
RiskSignal
from
"@/components/base/
R
iskSignal/index.vue"
;
import
RiskSignal
from
"@/components/base/
r
iskSignal/index.vue"
;
import
TipTab
from
"@/components/base/TipTab/index.vue"
import
MessageBubble
from
"@/components/base/MessageBubble/index.vue"
import
NewsList
from
"@/components/base/NewsList/index.vue"
;
...
...
src/views/ruleRestriction/components/dataNew/index.vue
浏览文件 @
4d9ad6a9
...
...
@@ -75,7 +75,7 @@
</
template
>
<
script
setup
>
import
RiskSignal
from
"@/components/base/
R
iskSignal/index.vue"
;
import
RiskSignal
from
"@/components/base/
r
iskSignal/index.vue"
;
import
{
ref
,
onBeforeMount
,
computed
}
from
"vue"
;
import
router
from
"@/router"
;
import
{
getLatestUpdates
,
getRiskSignal
}
from
'@/api/ruleRestriction/index.js'
...
...
src/views/scientificFunding/components/dataNew/index.vue
浏览文件 @
4d9ad6a9
...
...
@@ -89,7 +89,7 @@
</
template
>
<
script
setup
>
import
RiskSignal
from
"@/components/base/
R
iskSignal/index.vue"
;
import
RiskSignal
from
"@/components/base/
r
iskSignal/index.vue"
;
import
{
ref
,
onMounted
}
from
"vue"
;
import
{
getNewProject
,
getRiskSignal
...
...
src/views/technologyFigures/index.vue
浏览文件 @
4d9ad6a9
...
...
@@ -317,7 +317,7 @@
</template>
<
script
setup
>
import
RiskSignal
from
"@/components/base/
R
iskSignal/index.vue"
;
import
RiskSignal
from
"@/components/base/
r
iskSignal/index.vue"
;
import
{
onMounted
,
ref
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
scrollToTop
from
"@/utils/scrollToTop"
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论