Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
12c1ff12
提交
12c1ff12
authored
4月 15, 2026
作者:
张伊明
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix 修复bug
上级
80a6f7f8
流水线
#492
已失败 于阶段
in 56 秒
变更
9
流水线
1
显示空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
95 行增加
和
53 行删除
+95
-53
index.vue
src/components/base/SummaryCardsPanel/index.vue
+1
-1
index.vue
src/components/base/riskSignal/index.vue
+8
-7
index.vue
src/views/bill/background/index.vue
+0
-4
ResourceLibrarySection.vue
src/views/bill/billHome/ResourceLibrarySection.vue
+12
-4
index.vue
src/views/bill/billHome/index.vue
+28
-9
index.vue
src/views/bill/billLayout/index.vue
+1
-1
index.vue
src/views/bill/deepDig/processAnalysis/index.vue
+5
-4
index.vue
src/views/bill/influence/industry/index.vue
+34
-19
index.vue
src/views/bill/template/index.vue
+6
-4
没有找到文件。
src/components/base/SummaryCardsPanel/index.vue
浏览文件 @
12c1ff12
<
template
>
<
template
>
<div
class=
"summary-cards-panel"
:style=
"
{ width: panelWidth }" v-loading="loading">
<div
class=
"date-box"
>
<div
class=
"date-icon"
v-if=
"tipIcon"
>
...
...
src/components/base/riskSignal/index.vue
浏览文件 @
12c1ff12
...
...
@@ -100,12 +100,15 @@ const handleMoreClick = () => {
.risk-status-base
{
width
:
40px
;
height
:
40px
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
border-radius
:
20px
;
font-size
:
12px
;
font-weight
:
400
;
line-height
:
14px
;
box-sizing
:
border-box
;
padding
:
6px
4px
;
padding
:
0
4px
;
text-align
:
center
;
}
...
...
@@ -252,11 +255,10 @@ const handleMoreClick = () => {
overflow
:
hidden
;
// 保证右侧不会溢出
.text
{
padding-top
:
8p
x
;
padding-bottom
:
8px
;
display
:
fle
x
;
align-items
:
center
;
flex
:
1
1
auto
;
min-width
:
0
;
height
:
100%
;
background
:
transparent
;
font-family
:
"Source Han Sans CN"
;
font-weight
:
400
;
...
...
@@ -277,11 +279,10 @@ const handleMoreClick = () => {
}
.time
{
display
:
flex
;
align-items
:
center
;
flex
:
0
0
auto
;
margin-left
:
12px
;
padding-top
:
11px
;
padding-bottom
:
11px
;
height
:
100%
;
flex-shrink
:
0
;
background
:
transparent
;
font-family
:
"Source Han Sans CN"
,
sans-serif
;
...
...
src/views/bill/background/index.vue
浏览文件 @
12c1ff12
...
...
@@ -42,12 +42,8 @@
<img
:src=
"item.imgSrc"
@
error=
"handleNewsImgError"
alt=
""
/>
</div>
<div
class=
"center"
>
<CommonPrompt
:content=
"item.sjbt"
>
<div
class=
"title"
>
{{ item.sjbt }}
</div>
</CommonPrompt>
<CommonPrompt
:content=
"item.sjnr"
>
<div
class=
"content"
>
{{ item.sjnr }}
</div>
</CommonPrompt>
</div>
<div
class=
"right"
>
{{ item.sjsj }}
</div>
</div>
...
...
src/views/bill/billHome/ResourceLibrarySection.vue
浏览文件 @
12c1ff12
...
...
@@ -216,7 +216,7 @@
{{
item
.
desc
}}
<
/div> --
>
<
div
class
=
"coop-count"
>
{{
`${item.proposalSize ?? (item.bills || []).length
}
项
重点法
案`
}}
{{
`${item.proposalSize ?? (item.bills || []).length
}
项
提
案`
}}
<
/div
>
<
/div
>
<
div
class
=
"coop-proposals"
>
...
...
@@ -372,7 +372,7 @@ const committeeCurrentPage = ref(1);
const
bills
=
ref
([]);
const
total
=
ref
(
0
);
const
pageSize
=
ref
(
4
);
const
pageSize
=
ref
(
5
);
const
currentPage
=
ref
(
1
);
const
loading
=
ref
(
false
);
const
abortController
=
ref
(
null
);
...
...
@@ -980,9 +980,17 @@ onMounted(() => {
min
-
width
:
0
;
.
right
-
header
{
height
:
48
px
;
height
:
32
px
;
display
:
flex
;
align
-
items
:
center
;
gap
:
18
px
;
margin
-
bottom
:
16
px
;
.
right
-
header
-
box
{
height
:
32
px
;
display
:
flex
;
align
-
items
:
center
;
}
.
right
-
header
-
sort
{
display
:
flex
;
...
...
@@ -1031,7 +1039,7 @@ onMounted(() => {
}
.
involve
-
checkbox
{
height
:
40
px
;
height
:
32
px
;
display
:
inline
-
flex
;
align
-
items
:
center
;
margin
-
right
:
0
;
...
...
src/views/bill/billHome/index.vue
浏览文件 @
12c1ff12
...
...
@@ -13,16 +13,16 @@
descriptionText=
"近期美国国会各委员会涉华提案数量汇总"
:cards=
"committeeCards"
:totalCount=
"committeeTotalCount"
:tipIcon=
"
box7HeaderIcon
"
:tipIcon=
"
iconILetter
"
:defaultAvatar=
"iconCommit"
:loading=
"committeeLoading"
activeTime=
"近一年"
emptyText=
"暂无数据"
moreText=
"查看全部委员会"
:moreCardMinCount=
"
7
"
:moreCardMinCount=
"
1
"
@
time-click=
"handleCommitteeTimeClick"
@
name-click=
"handleToDataLibrary"
@
count-click=
"handleToDataLibrary"
@
count-click=
"handleTo
Bill
DataLibrary"
@
more-click=
"handleToCommitteeMore"
/>
...
...
@@ -281,6 +281,7 @@ import box5HeaderIcon from "./assets/images/box5-header-icon.png";
import
box6HeaderIcon
from
"./assets/images/box6-header-icon.png"
;
import
box7HeaderIcon
from
"./assets/images/box7-header-icon.png"
;
import
iconCommit
from
"./assets/icons/icon-commit.png"
;
import
iconILetter
from
"./assets/icons/icon-iLetter.png"
;
import
{
ElMessage
}
from
"element-plus"
;
import
{
useGotoNewsDetail
}
from
"@/router/modules/news"
;
...
...
@@ -365,12 +366,14 @@ const committeeLoading = ref(false);
const
getChamberLabel
=
orgType
=>
{
if
(
orgType
===
"Senate"
)
return
"参议院"
;
if
(
orgType
===
"House"
)
return
"众议院"
;
if
(
orgType
===
"DoubleCongress"
)
return
"双院"
;
return
orgType
||
""
;
};
const
committeeCards
=
computed
(()
=>
{
return
committeeCardList
.
value
.
map
(
item
=>
({
id
:
item
.
id
,
id
:
item
.
orgId
||
item
.
id
,
orgId
:
item
.
orgId
,
name
:
item
.
name
,
subText
:
item
.
chamber
,
count
:
item
.
count
...
...
@@ -386,7 +389,8 @@ const handleGetCommitteeBillCount = async () => {
if
(
res
.
code
===
200
&&
Array
.
isArray
(
res
.
data
))
{
const
mappedList
=
res
.
data
.
map
(
item
=>
({
id
:
`
${
item
.
orgType
||
""
}
-
${
item
.
orgName
||
""
}
`
,
id
:
item
.
orgId
||
`
${
item
.
orgType
||
""
}
-
${
item
.
orgName
||
""
}
`
,
orgId
:
item
.
orgId
,
name
:
item
.
orgName
,
chamber
:
getChamberLabel
(
item
.
orgType
),
count
:
Number
(
item
.
count
||
0
)
...
...
@@ -411,7 +415,7 @@ const handleCommitteeTimeClick = event => {
};
const
handleToCommitteeMore
=
()
=>
{
const
route
=
router
.
resolve
({
path
:
"/bill
/a
llCommittee"
});
const
route
=
router
.
resolve
({
path
:
"/bill
A
llCommittee"
});
window
.
open
(
route
.
href
,
"_blank"
);
};
...
...
@@ -1409,12 +1413,14 @@ const handleResize = () => {
// 下钻至资源库
const
handleToDataLibrary
=
(
item
)
=>
{
const
orgId
=
item
?.
orgId
||
item
?.
id
;
if
(
!
orgId
)
return
;
window
.
sessionStorage
.
setItem
(
"curTabName"
,
item
.
id
);
window
.
sessionStorage
.
setItem
(
"curTabName"
,
item
?.
name
||
String
(
orgId
)
);
const
curRoute
=
router
.
resolve
({
path
:
"/institution"
,
query
:
{
id
:
item
.
i
d
id
:
orgI
d
}
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
...
...
@@ -1432,6 +1438,19 @@ const handleToDataLibrary = (item) => {
}
// 法案数量下钻至数据资源库(与政令数量点击逻辑一致)
const
handleToBillDataLibrary
=
(
item
)
=>
{
const
selectedCongress
=
item
?.
subText
===
"双院"
?
"全部议院"
:
(
item
?.
subText
||
""
);
const
route
=
router
.
resolve
({
path
:
"/dataLibrary/countryBill"
,
query
:
{
selectedOrg
:
item
?.
name
||
""
,
selectedCongress
}
});
window
.
open
(
route
.
href
,
"_blank"
);
};
onMounted
(
async
()
=>
{
window
.
addEventListener
(
"resize"
,
handleResize
);
handleGetHylyList
();
...
...
@@ -2808,7 +2827,7 @@ onUnmounted(() => {
.divide4
{
margin
:
0
auto
;
margin-top
:
52
px
;
margin-top
:
88
px
;
margin-bottom
:
36px
;
}
...
...
src/views/bill/billLayout/index.vue
浏览文件 @
12c1ff12
...
...
@@ -135,7 +135,7 @@ const handleAnalysisClick = analysisType => {
// 进展预测 -> 法案简介页(法案进展)
if
(
analysisType
===
"forsee"
)
{
const
target
=
router
.
resolve
({
path
:
`/
billLayout/
ProgressForecast/
${
billId
}
`
,
path
:
`/ProgressForecast/
${
billId
}
`
,
});
window
.
open
(
target
.
href
,
"_blank"
);
return
;
...
...
src/views/bill/deepDig/processAnalysis/index.vue
浏览文件 @
12c1ff12
...
...
@@ -20,7 +20,7 @@
</div>
</div>
<div
v-if=
"!aiPaneVisible.box1"
class=
"analysis-ai-tip-row"
>
<TipTab
class=
"analysis-ai-tip"
:text=
"'与历史同类法案的典型阶段耗时对比分析
,
数据来源:美国国会官网'"
/>
<TipTab
class=
"analysis-ai-tip"
:text=
"'与历史同类法案的典型阶段耗时对比分析
,
数据来源:美国国会官网'"
/>
<AiButton
class=
"analysis-ai-tip-action"
@
mouseenter=
"handleShowAiPane('box1')"
/>
</div>
<div
v-if=
"aiPaneVisible.box1"
class=
"analysis-ai-pane"
@
mouseleave=
"handleHideAiPane('box1')"
>
...
...
@@ -47,7 +47,7 @@
</div>
</div>
<div
v-if=
"!aiPaneVisible.box2"
class=
"analysis-ai-tip-row"
>
<TipTab
class=
"analysis-ai-tip"
:text=
"'与历史同类法案的修正案次数对比分析
,
数据来源:美国国会官网'"
/>
<TipTab
class=
"analysis-ai-tip"
:text=
"'与历史同类法案的修正案次数对比分析
,
数据来源:美国国会官网'"
/>
<AiButton
class=
"analysis-ai-tip-action"
@
mouseenter=
"handleShowAiPane('box2')"
/>
</div>
<div
v-if=
"aiPaneVisible.box2"
class=
"analysis-ai-pane"
@
mouseleave=
"handleHideAiPane('box2')"
>
...
...
@@ -380,7 +380,7 @@
<
/div
>
<
/div
>
<
div
v
-
if
=
"!aiPaneVisible.box3"
class
=
"analysis-ai-tip-row"
>
<
TipTab
class
=
"analysis-ai-tip"
/>
<
TipTab
class
=
"analysis-ai-tip"
:
text
=
"'本法案立法关键节点投票情况分析,数据来源:美国国会官网'"
/>
<
AiButton
class
=
"analysis-ai-tip-action"
@
mouseenter
=
"handleShowAiPane('box3')"
/>
<
/div
>
<
div
v
-
if
=
"aiPaneVisible.box3"
class
=
"analysis-ai-pane"
...
...
@@ -1749,7 +1749,8 @@ onMounted(async () => {
width
:
100
%
;
display
:
flex
;
align
-
items
:
center
;
justify
-
content
:
center
;
justify
-
content
:
flex
-
start
;
padding
-
left
:
16
px
;
z
-
index
:
2
;
}
...
...
src/views/bill/influence/industry/index.vue
浏览文件 @
12c1ff12
...
...
@@ -105,7 +105,7 @@
<
/div
>
<
/template
>
<
div
class
=
"box2-main"
>
<
AiTips
:
tips
=
"tips"
/
>
<
!--
<
AiTips
:
tips
=
"tips"
/>
--
>
<
div
class
=
"graph-box"
v
-
if
=
"contentType==1"
>
<
ChartChain
:
listData
=
"fishbone.list"
:
baseData
=
"fishbone.base"
/>
<
/div
>
...
...
@@ -887,14 +887,21 @@ onMounted(async () => {
.left-center-search {
flex: 1;
min-width: 0;
}
:deep(.el-input__wrapper) {
background-color: var(--el-fill-color-blank);
border-radius: var(--el-border-radius-base);
box-shadow: 0 0 0 1px var(--el-border-color) inset;
border: none;
box-sizing: border-box;
/* 兜底覆盖全局对 el-input 边框的强制清空,恢复当前输入框原生状态 */
:deep(.left-center-search.el-input .el-input__wrapper) {
box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset !important;
}
:deep(.left-center-search.el-input .el-input__wrapper:hover) {
box-shadow: 0 0 0 1px var(--el-input-hover-border-color, var(--el-border-color-hover)) inset !important;
}
:deep(.left-center-search.el-input .el-input__wrapper.is-focus),
:deep(.left-center-search.el-input .el-input__wrapper:active),
:deep(.left-center-search.el-input .el-input__wrapper.is-focus:hover) {
box-shadow: 0 0 0 1px var(--el-input-focus-border-color, var(--el-color-primary)) inset !important;
}
}
...
...
@@ -929,17 +936,21 @@ onMounted(async () => {
width: 100%;
height: 48px;
border-radius: 4px;
border-bottom: 1px solid rgba(240, 242, 244, 1);
border-top: 1px solid transparent;
border-top: 1px solid var(--bg-black-5);
border-bottom: 1px solid var(--bg-black-5);
border-left: 1px solid transparent;
border-right: 1px solid transparent;
display: flex;
cursor: pointer;
margin-top: -1px;
position: relative;
&:hover {
background-color: #f7f8fa;
}
&:first-child {
border-top-color: rgba(240, 242, 244, 1)
;
margin-top: 0
;
}
.item-icon {
...
...
@@ -964,12 +975,14 @@ onMounted(async () => {
.title {
margin-top: 9px;
margin-left: 10px;
height: 22px;
width: 380px;
height: 24px;
color: rgba(95, 101, 108, 1);
font-family: Microsoft YaHei;
font-size: 14px;
font-weight: 600;
line-height: 22px;
font-family: "Source Han Sans CN", "Source Han Sans", "PingFang SC", "Microsoft YaHei",
sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
text-align: left;
overflow: hidden;
text-overflow: ellipsis;
...
...
@@ -990,9 +1003,10 @@ onMounted(async () => {
}
.itemActive {
background-color: rgba(5, 95, 194, 0.05);
border-top-color: rgba(174, 214, 255, 1);
border-bottom-color: rgba(174, 214, 255, 1);
border-radius: 4px;
background-color: var(--color-primary-10);
border-color: var(--color-primary-35);
z-index: 1;
.item-icon {
background: rgba(5, 95, 194, 0.1);
...
...
@@ -1000,7 +1014,8 @@ onMounted(async () => {
}
.titleActive {
color: rgba(22, 119, 255, 1) !important;
color: var(--color-primary-100) !important;
font-weight: 700 !important;
}
}
}
...
...
src/views/bill/template/index.vue
浏览文件 @
12c1ff12
...
...
@@ -43,11 +43,11 @@
<
template
#
left
>
<div
class=
"side"
>
<div
class=
"side-box side-box-domain"
>
<AnalysisBox
title=
"
涉及领域
"
width=
"520px"
height=
"415px"
v-loading=
"domainLoading"
>
<AnalysisBox
title=
"
领域分布情况
"
width=
"520px"
height=
"415px"
v-loading=
"domainLoading"
>
<div
class=
"chart-ai-wrap"
>
<div
:class=
"['right-box2-main',
{ 'right-box-main--full': !domainFooterText }]" id="chart2">
</div>
<div
class=
"overview-tip-row"
>
<TipTab
class=
"overview-tip"
:text=
"'
涉华科技法案数量及通过率变化趋势
,数据来源:美国国会官网'"
/>
<TipTab
class=
"overview-tip"
:text=
"'
法案条款领域分布情况
,数据来源:美国国会官网'"
/>
<AiButton
class=
"overview-tip-action"
@
mouseenter=
"handleShowAiPane('domain')"
/>
</div>
<div
v-if=
"aiPaneVisible.domain"
class=
"overview-ai-pane"
...
...
@@ -69,11 +69,11 @@
</AnalysisBox>
</div>
<div
class=
"side-box side-box-limit"
>
<AnalysisBox
title=
"
限制手段
"
width=
"520px"
height=
"415px"
v-loading=
"limitLoading"
>
<AnalysisBox
title=
"
手段分布情况
"
width=
"520px"
height=
"415px"
v-loading=
"limitLoading"
>
<div
class=
"chart-ai-wrap"
>
<div
:class=
"['right-box1-main',
{ 'right-box-main--full': !limitFooterText }]" id="chart1">
</div>
<div
class=
"overview-tip-row"
>
<TipTab
class=
"overview-tip"
:text=
"'
涉华科技法案数量及通过率变化趋势
,数据来源:美国国会官网'"
/>
<TipTab
class=
"overview-tip"
:text=
"'
法案条款限制手段分布情况
,数据来源:美国国会官网'"
/>
<AiButton
class=
"overview-tip-action"
@
mouseenter=
"handleShowAiPane('limit')"
/>
</div>
<div
v-if=
"aiPaneVisible.limit"
class=
"overview-ai-pane"
...
...
@@ -1082,6 +1082,7 @@ onBeforeUnmount(() => {
.
term
-
index
{
width
:
24
px
;
height
:
24
px
;
margin
-
top
:
8
px
;
border
-
radius
:
50
%
;
background
:
var
(
--
color
-
primary
-
10
);
color
:
var
(
--
color
-
primary
-
100
);
...
...
@@ -1110,6 +1111,7 @@ onBeforeUnmount(() => {
font
-
size
:
16
px
;
font
-
weight
:
700
;
line
-
height
:
24
px
;
margin
-
top
:
8
px
;
color
:
var
(
--
color
-
primary
-
100
);
white
-
space
:
nowrap
;
width
:
90
px
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论