Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
bf04ed1e
提交
bf04ed1e
authored
1月 28, 2026
作者:
coderBryanFu
浏览文件
操作
浏览文件
下载
差异文件
update
上级
afe87dfb
11e49b19
全部展开
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
135 行增加
和
63 行删除
+135
-63
index.vue
src/views/bill/billLayout/index.vue
+13
-8
index.vue
src/views/decree/decreeLayout/index.vue
+23
-7
btn-icon3.png
...ews/exportControl/v2.0SingleSanction/assets/btn-icon3.png
+0
-0
index.vue
src/views/exportControl/v2.0SingleSanction/index.vue
+86
-46
index.vue
src/views/thinkTank/ReportDetail/index.vue
+13
-2
index.vue
src/views/writtingAsstaint/index.vue
+0
-0
没有找到文件。
src/views/bill/billLayout/index.vue
浏览文件 @
bf04ed1e
...
...
@@ -3,7 +3,6 @@
<!-- 导航菜单 -->
<div
class=
"layout-main"
>
<div
class=
"header-main"
>
<div
class=
"layout-main-header"
>
<div
class=
"layout-main-header-left-box"
>
<div
class=
"left-box-top"
>
...
...
@@ -12,9 +11,7 @@
</div>
<div
class=
"info"
>
<div
class=
"info-box1"
>
{{
billInfoGlobal
.
billName
}}
</div>
<div
class=
"info-box2"
>
{{
billInfoGlobal
.
description
}}
{{
billInfoGlobal
.
billNameEn
}}
</div>
<div
class=
"info-box2"
>
{{
billInfoGlobal
.
description
}}
{{
billInfoGlobal
.
billNameEn
}}
</div>
</div>
</div>
<div
class=
"left-box-bottom"
>
...
...
@@ -53,7 +50,7 @@
</div>
<div
class=
"text"
>
{{
"查看官网"
}}
</div>
</div>
-->
<div
class=
"btn3
"
>
<div
class=
"btn3"
@
click=
"handleAnalysisClick
"
>
<div
class=
"icon"
>
<img
src=
"./assets/icons/btn-icon3.png"
alt=
""
/>
</div>
...
...
@@ -150,7 +147,6 @@ import icon4 from "./assets/icons/icon4.svg";
import
icon4Active
from
"./assets/icons/icon4_active.svg"
;
import
USALogo
from
"./assets/images/USA-logo.png"
;
// 法案原文
const
billFullText
=
ref
(
""
);
const
getBillFullTextFn
=
async
()
=>
{
...
...
@@ -213,7 +209,7 @@ const mainHeaderBtnList = ref([
activeIcon
:
icon2Active
,
name
:
"深度挖掘"
,
path
:
"/billLayout/deepDig"
}
,
}
// {
// icon: icon3,
// activeIcon: icon3Active,
...
...
@@ -241,6 +237,16 @@ const handleClickMainHeaderBtn = item => {
});
};
const
handleAnalysisClick
=
()
=>
{
router
.
push
({
path
:
"/writtingAsstaint"
,
query
:
{
topic
:
"法案"
,
fileId
:
route
.
query
.
billId
}
});
};
onMounted
(()
=>
{
getBillInfoGlobalFn
();
if
(
window
.
sessionStorage
.
getItem
(
"activeTitle"
))
{
...
...
@@ -375,7 +381,6 @@ onMounted(() => {
// margin-right: 150px;
// margin-top: 19px;
.right-box-top
{
height
:
64px
;
display
:
flex
;
align-items
:
right
;
...
...
src/views/decree/decreeLayout/index.vue
浏览文件 @
bf04ed1e
...
...
@@ -3,23 +3,29 @@
<!-- 导航菜单 -->
<div
class=
"layout-main"
>
<div
class=
"header-main"
>
<div
class=
"layout-main-header"
>
<div
class=
"layout-main-header-container"
>
<div
class=
"layout-main-header-left-box"
>
<div
class=
"left-box-top"
>
<div
class=
"icon"
>
<img
v-if=
"summaryInfo.imageUrl"
:src=
"summaryInfo.imageUrl"
alt=
""
style=
"height: 40px;margin-top: 12px;"
/>
<img
v-if=
"summaryInfo.imageUrl"
:src=
"summaryInfo.imageUrl"
alt=
""
style=
"height: 40px; margin-top: 12px"
/>
<img
v-else
:src=
"USALogo"
alt=
""
/>
</div>
<div
class=
"info"
>
<div
class=
"info-box1"
>
{{
summaryInfo
.
name
}}
</div>
<div
class=
"info-box2"
>
<div
class=
"info-box2-item item1"
v-if=
"summaryInfo.order"
>
{{
summaryInfo
.
order
+
" | "
}}
</div>
<div
class=
"info-box2-item item1"
v-if=
"summaryInfo.order"
>
{{
summaryInfo
.
order
+
" | "
}}
</div>
<div
class=
"info-box2-item item2"
v-if=
"summaryInfo.type"
>
{{
summaryInfo
.
type
+
" | "
}}
</div>
<div
class=
"info-box2-item item2"
v-if=
"summaryInfo.type"
>
{{
summaryInfo
.
type
+
" | "
}}
</div>
<div
class=
"info-box2-item item3"
v-if=
"summaryInfo.ename"
>
{{
summaryInfo
.
ename
}}
</div>
</div>
</div>
...
...
@@ -54,7 +60,7 @@
</div>
<div
class=
"text"
>
{{
"政令原文"
}}
</div>
</div>
<div
class=
"btn-active"
>
<div
class=
"btn-active"
@
click=
"handleAnalysisClick"
>
<div
class=
"icon-active"
>
<img
src=
"./assets/icons/edit-icon.png"
alt=
""
/>
</div>
...
...
@@ -265,6 +271,16 @@ const handleShowReport = () => {
window
.
open
(
curRoute
.
href
,
"_blank"
);
};
const
handleAnalysisClick
=
()
=>
{
router
.
push
({
path
:
"/writtingAsstaint"
,
query
:
{
topic
:
"政令"
,
fileId
:
route
.
query
.
id
}
});
};
onMounted
(()
=>
{
handleGetSummary
();
console
.
log
(
route
.
path
);
...
...
src/views/exportControl/v2.0SingleSanction/assets/btn-icon3.png
0 → 100644
浏览文件 @
bf04ed1e
796 Bytes
src/views/exportControl/v2.0SingleSanction/index.vue
浏览文件 @
bf04ed1e
...
...
@@ -2,7 +2,7 @@
<div
class=
"entity-list"
>
<div
class=
"header"
>
<div
class=
"header-title"
>
<img
:src=
"headerTitle.img"
alt=
""
>
<img
:src=
"headerTitle.img"
alt=
""
/
>
<div>
<div
class=
"title"
>
{{
headerTitle
.
title
}}
...
...
@@ -12,9 +12,7 @@
{{
headerTitle
.
department
}}
</div>
</div>
<div
class=
"btn"
>
<img
:src=
"icon01"
alt=
""
>
切换
</div>
<div
class=
"btn"
><img
:src=
"icon01"
alt=
""
/>
切换
</div>
</div>
<div
class=
"header-nav"
>
<div
...
...
@@ -24,21 +22,24 @@
:class=
"
{ active: activeIndex === index }"
@click="activeIndex = index"
>
<img
:src=
"activeIndex === index ? item.imgActive : item.img"
alt=
""
>
<img
:src=
"activeIndex === index ? item.imgActive : item.img"
alt=
""
/
>
<span>
{{
item
.
title
}}
</span>
<div
class=
"active-line"
v-if=
"activeIndex === index"
></div>
</div>
<div
class=
"original-text-btn"
@
click=
"handleClickOriginalText"
>
<img
:src=
"icon1"
alt=
""
>
<img
:src=
"icon1"
alt=
""
/
>
<span>
实体清单原文
</span>
</div>
<div
class=
"btn3"
@
click=
"handleAnalysisClick"
>
<div
class=
"icon"
>
<img
src=
"./assets/btn-icon3.png"
alt=
""
/>
</div>
<div
class=
"text"
>
{{
"分析报告"
}}
</div>
</div>
</div>
</div>
<div
class=
"main"
>
<sanctions-overview
v-if=
"activeIndex === 0"
:data=
"singleSanctionOverview"
></sanctions-overview>
<sanctions-overview
v-if=
"activeIndex === 0"
:data=
"singleSanctionOverview"
></sanctions-overview>
<data-statistics
v-if=
"activeIndex === 1"
></data-statistics>
<deep-mining
v-if=
"activeIndex === 2"
></deep-mining>
<impact-analysis
v-if=
"activeIndex === 3"
></impact-analysis>
...
...
@@ -47,15 +48,15 @@
</
template
>
<
script
setup
>
import
{
ref
,
onMounted
}
from
'vue'
import
{
ref
,
onMounted
}
from
"vue"
;
import
sanctionsOverview
from
"./components/sanctionsOverview/index.vue"
import
dataStatistics
from
"./components/dataStatistics/index.vue"
import
deepMining
from
"./components/deepMining/index.vue"
import
impactAnalysis
from
"./components/impactAnalysis/index.vue"
import
sanctionsOverview
from
"./components/sanctionsOverview/index.vue"
;
import
dataStatistics
from
"./components/dataStatistics/index.vue"
;
import
deepMining
from
"./components/deepMining/index.vue"
;
import
impactAnalysis
from
"./components/impactAnalysis/index.vue"
;
import
title
from
"./assets/title.png"
import
icon01
from
"./assets/icon01.png"
import
title
from
"./assets/title.png"
;
import
icon01
from
"./assets/icon01.png"
;
import
icon1
from
"../assets/icons/icon1.png"
;
import
icon1Active
from
"../assets/icons/icon1_active.png"
;
import
icon5
from
"../assets/icons/icon5.png"
;
...
...
@@ -65,32 +66,33 @@ import icon2Active from "../assets/icons/icon2_active.png";
import
icon3
from
"../assets/icons/icon3.png"
;
import
icon3Active
from
"../assets/icons/icon3_active.png"
;
import
{
getSingleSanctionOverview
}
from
"@/api/exportControlV2.0.js"
import
{
getSingleSanctionOverview
}
from
"@/api/exportControlV2.0.js"
;
import
router
from
"@/router"
;
// 处理点击实体清单原文按钮
const
handleClickOriginalText
=
()
=>
{
// 打开新标签页
window
.
open
(
`/exportControl/origin?id=
${
sanRecordId
.
value
}
`
,
"_blank"
)
}
window
.
open
(
`/exportControl/origin?id=
${
sanRecordId
.
value
}
`
,
"_blank"
);
}
;
// 获取URL参数
const
sanRecordId
=
ref
(
""
)
const
sanRecordId
=
ref
(
""
)
;
const
getUrlParams
=
()
=>
{
const
urlParams
=
new
URLSearchParams
(
window
.
location
.
search
);
sanRecordId
.
value
=
urlParams
.
get
(
"id"
)
||
""
}
sanRecordId
.
value
=
urlParams
.
get
(
"id"
)
||
""
;
}
;
// console.log(sanRecordId.value)
// 单次制裁-制裁概况-基本信息
const
singleSanctionOverview
=
ref
({})
const
singleSanctionOverview
=
ref
({})
;
const
getSingleSanctionOverviewData
=
async
()
=>
{
if
(
!
sanRecordId
.
value
)
return
if
(
!
sanRecordId
.
value
)
return
;
try
{
const
res
=
await
getSingleSanctionOverview
({
sanRecordId
:
sanRecordId
.
value
})
});
if
(
res
.
code
===
200
)
{
singleSanctionOverview
.
value
=
res
.
data
||
{}
singleSanctionOverview
.
value
=
res
.
data
||
{};
// 格式化日期
let
dateStr
=
""
;
...
...
@@ -109,20 +111,18 @@ const getSingleSanctionOverviewData = async () => {
title
:
`
${
dateStr
}
《
${
singleSanctionOverview
.
value
.
sanTitleZh
||
singleSanctionOverview
.
value
.
sanTitle
}
》`
,
titleEn
:
singleSanctionOverview
.
value
.
sanTitle
||
""
,
department
:
singleSanctionOverview
.
value
.
fileCode
||
""
}
};
}
}
catch
(
error
)
{
console
.
error
(
"获取制裁概况失败:"
,
error
)
console
.
error
(
"获取制裁概况失败:"
,
error
);
}
}
};
const
headerTitle
=
ref
({
img
:
title
,
})
img
:
title
})
;
const
activeIndex
=
ref
(
0
)
const
activeIndex
=
ref
(
0
)
;
const
headerNavList
=
ref
([
{
...
...
@@ -145,25 +145,34 @@ const headerNavList = ref([
imgActive
:
icon3Active
,
title
:
"影响分析"
}
])
])
;
const
handleAnalysisClick
=
()
=>
{
router
.
push
({
path
:
"/writtingAsstaint"
,
query
:
{
topic
:
"清单"
,
fileId
:
singleSanctionOverview
.
value
.
postDate
}
});
};
onMounted
(()
=>
{
getUrlParams
()
getSingleSanctionOverviewData
()
})
getUrlParams
();
getSingleSanctionOverviewData
();
})
;
</
script
>
<
style
scoped
lang=
"scss"
>
*
{
*
{
margin
:
0
;
padding
:
0
;
}
.entity-list
{
.entity-list
{
width
:
100%
;
height
:
100%
;
overflow-y
:
auto
;
.header
{
.header
{
width
:
100%
;
height
:
148px
;
background-color
:
#fff
;
...
...
@@ -172,7 +181,7 @@ onMounted(() => {
top
:
0
;
z-index
:
1000
;
box-shadow
:
0px
4px
10px
rgba
(
0
,
0
,
0
,
0
.05
);
.header-title
{
.header-title
{
width
:
1601px
;
height
:
72px
;
background-color
:
rgba
(
246
,
250
,
255
,
1
);
...
...
@@ -279,7 +288,7 @@ onMounted(() => {
margin-left
:
auto
;
width
:
152px
;
height
:
36px
;
background
:
#FFFFFF
;
background
:
#ffffff
;
border-radius
:
4px
;
border
:
1px
solid
rgba
(
230
,
231
,
232
,
1
);
display
:
flex
;
...
...
@@ -301,13 +310,44 @@ onMounted(() => {
line-height
:
24px
;
}
}
.btn3
{
cursor
:
pointer
;
width
:
120px
;
height
:
36px
;
border-radius
:
6px
;
background
:
rgba
(
5
,
95
,
194
,
1
);
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
gap
:
8px
;
margin-left
:
8px
;
.icon
{
width
:
16px
;
height
:
16px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.text
{
height
:
24px
;
color
:
rgba
(
255
,
255
,
255
,
1
);
font-family
:
Microsoft
YaHei
;
font-size
:
16px
;
font-weight
:
400
;
line-height
:
24px
;
letter-spacing
:
0px
;
text-align
:
left
;
}
}
}
}
.main
{
.main
{
width
:
100%
;
height
:
auto
;
min-height
:
calc
(
100%
-
148px
);
background-color
:
#F7F8F
9
;
background-color
:
#f7f8f
9
;
}
}
</
style
>
src/views/thinkTank/ReportDetail/index.vue
浏览文件 @
bf04ed1e
...
...
@@ -57,7 +57,7 @@
</div>
<div
class=
"text"
>
{{
"文档下载"
}}
</div>
</div>
<div
class=
"btn btn1"
>
<div
class=
"btn btn1"
@
click=
"handleAnalysisClick"
>
<div
class=
"icon"
>
<img
src=
"./images/btn-icon4.png"
alt=
""
/>
</div>
...
...
@@ -79,8 +79,9 @@ import { ref, onMounted } from "vue";
import
ReportAnalysis
from
"./reportAnalysis/index.vue"
;
import
PolicyTracking
from
"./policyTracking/index.vue"
;
import
{
getThinkTankReportSummary
}
from
"@/api/thinkTank/overview"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
useRoute
,
useRoute
r
}
from
"vue-router"
;
const
router
=
useRouter
();
const
route
=
useRoute
();
const
reportUrl
=
ref
(
""
);
const
thinkInfo
=
ref
({});
...
...
@@ -113,6 +114,16 @@ const tabActiveName = ref("报告分析");
const
switchTab
=
name
=>
{
tabActiveName
.
value
=
name
;
};
const
handleAnalysisClick
=
()
=>
{
router
.
push
({
path
:
"/writtingAsstaint"
,
query
:
{
topic
:
"智库"
,
fileId
:
router
.
currentRoute
.
_value
.
params
.
id
}
});
};
onMounted
(
async
()
=>
{
handleGetThinkTankReportSummary
();
});
...
...
src/views/writtingAsstaint/index.vue
浏览文件 @
bf04ed1e
差异被折叠。
点击展开。
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论