Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
c5dda08b
提交
c5dda08b
authored
1月 09, 2026
作者:
李智林
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
合作限制
上级
2dda3480
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
38 个修改的文件
包含
482 行增加
和
534 行删除
+482
-534
App.vue
src/App.vue
+3
-1
coopRestriction.js
src/api/coopRestriction/coopRestriction.js
+56
-3
exportControl.js
src/api/exportControl.js
+16
-19
exportControlV2.0.js
src/api/exportControlV2.0.js
+2
-2
index.vue
src/views/bill/background/index.vue
+45
-6
icon-desc.png
src/views/bill/billHome/assets/icons/icon-desc.png
+0
-0
box8-icon1.png
src/views/bill/billHome/assets/images/box8-icon1.png
+0
-0
box8-icon2.png
src/views/bill/billHome/assets/images/box8-icon2.png
+0
-0
box8-icon3.png
src/views/bill/billHome/assets/images/box8-icon3.png
+0
-0
box8-icon4.png
src/views/bill/billHome/assets/images/box8-icon4.png
+0
-0
box8-icon5.png
src/views/bill/billHome/assets/images/box8-icon5.png
+0
-0
news2.png
src/views/bill/billHome/assets/images/news2.png
+0
-0
news3.png
src/views/bill/billHome/assets/images/news3.png
+0
-0
news4.png
src/views/bill/billHome/assets/images/news4.png
+0
-0
news5.png
src/views/bill/billHome/assets/images/news5.png
+0
-0
index.vue
src/views/bill/billHome/index.vue
+35
-38
piechart.js
src/views/bill/billHome/utils/piechart.js
+1
-1
index.vue
src/views/bill/billLayout/index.vue
+58
-178
index.vue
src/views/bill/deepDig/index.vue
+4
-0
index.vue
src/views/bill/deepDig/processAnalysis/index.vue
+3
-74
index.vue
src/views/bill/deepDig/processOverview/index.vue
+0
-0
index.vue
src/views/bill/index.vue
+4
-60
index.vue
src/views/bill/influence/index.vue
+4
-0
index.vue
src/views/bill/influence/industry/index.vue
+4
-2
index.vue
src/views/bill/introdoction/index.vue
+24
-40
index.vue
src/views/bill/relevantCircumstance/index.vue
+7
-7
index.vue
src/views/bill/template/index.vue
+8
-5
index.vue
src/views/coopRestriction/commonPrompt/index.vue
+51
-0
index.vue
src/views/coopRestriction/components/askPage/index.vue
+0
-0
index.vue
src/views/coopRestriction/components/dataNew/index.vue
+74
-51
index.vue
src/views/coopRestriction/components/dataSub/index.vue
+0
-0
index.vue
src/views/coopRestriction/detail/index.vue
+0
-0
title.vue
src/views/exportControl/components/title.vue
+1
-1
index.vue
src/views/exportControl/index.vue
+0
-0
charts.js
src/views/exportControl/utils/charts.js
+37
-28
index.vue
...s/sanctionsOverview/components/introductionPage/index.vue
+23
-11
index.vue
...rol/v2.0EntityList/components/sanctionsOverview/index.vue
+4
-2
index.vue
src/views/exportControl/v2.0EntityList/index.vue
+18
-5
没有找到文件。
src/App.vue
浏览文件 @
c5dda08b
...
@@ -161,7 +161,9 @@ body {
...
@@ -161,7 +161,9 @@ body {
color
:
rgba
(
10
,
18
,
30
,
1
);
color
:
rgba
(
10
,
18
,
30
,
1
);
border-bottom
:
1px
solid
#e5e7eb
;
border-bottom
:
1px
solid
#e5e7eb
;
box-shadow
:
0
1px
3px
rgba
(
0
,
0
,
0
,
0
.1
);
box-shadow
:
0
1px
3px
rgba
(
0
,
0
,
0
,
0
.1
);
position
:
relative
;
position
:
sticky
;
top
:
0
;
z-index
:
2000
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
height
:
72px
;
height
:
72px
;
}
}
...
...
src/api/coopRestriction/coopRestriction.js
浏览文件 @
c5dda08b
...
@@ -48,7 +48,7 @@ export function getCoopRestrictionNews(params) {
...
@@ -48,7 +48,7 @@ export function getCoopRestrictionNews(params) {
export
function
getCoopRestrictionSocial
(
params
)
{
export
function
getCoopRestrictionSocial
(
params
)
{
return
request
({
return
request
({
method
:
'GET'
,
method
:
'GET'
,
url
:
`/api/commonFeature/
social
/
${
params
.
moduleId
}
`
url
:
`/api/commonFeature/
remarks
/
${
params
.
moduleId
}
`
})
})
}
}
...
@@ -95,4 +95,58 @@ export function getCoopRestrictionList(params) {
...
@@ -95,4 +95,58 @@ export function getCoopRestrictionList(params) {
url
:
`/api/cooperationlimitinfo/statList`
,
url
:
`/api/cooperationlimitinfo/statList`
,
params
params
})
})
}
}
\ No newline at end of file
// 合作限制-查询简介接口
/**
* @param {limitId} 合作限制ID
* @header token
*/
export
function
getCoopRestrictionIntroduction
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/cooperationlimitinfo/searchBlurb`
,
params
})
}
// 合作限制-相关实体接口
/**
* @param {limitId} 合作限制ID
* @header token
*/
export
function
getCoopRestrictionRelated
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/cooperationlimitinfo/getLimitEntity`
,
params
})
}
// 合作限制-背景分析接口
/**
* @param {limitId} 合作限制ID
* @header token
*/
export
function
getCoopRestrictionBackground
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/cooperationlimitinfo/getLimitBackGround`
,
params
})
}
// 合作限制-限制条款接口
/**
* @param {limitId} 合作限制ID
* @header token
*/
export
function
getCoopRestrictionClause
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/cooperationlimitinfo/getLimitClause`
,
params
})
}
src/api/exportControl.js
浏览文件 @
c5dda08b
...
@@ -79,26 +79,19 @@ export function getIndustryCountByYear(sanTypeId) {
...
@@ -79,26 +79,19 @@ export function getIndustryCountByYear(sanTypeId) {
/**
/**
* 不同领域每年数量
* 不同领域每年数量
* @returns {Promise<{
* @param {Object} data - 请求参数
* data:{
* @param {boolean} data.isRule - 是否为规则
* year?: number
* @param {string} [data.startYear="2020"] - 开始年份
* domainNum: {
* @param {string} [data.endYear] - 结束年份
* [ key: string]: number;
* @param {number} [data.sanTypeId=1] - 制裁类型ID
* }
* @returns {Promise}
* }[]
* domains: string[]
* }>}
*/
*/
export
function
getCountDomainByYear
(
isRule
,
startYear
=
"2020"
,
endYear
=
String
(
new
Date
().
getFullYear
())
)
{
export
function
getCountDomainByYear
(
data
)
{
return
request200
(
return
request200
(
request
({
request
({
method
:
"POST"
,
method
:
"POST"
,
url
:
"/api/entitiesDataCount/getAnnualSanDomain"
,
url
:
"/api/entitiesDataCount/getAnnualSanDomain"
,
data
:
{
data
isRule
,
startYear
,
endYear
}
})
})
);
);
}
}
...
@@ -128,7 +121,7 @@ export function getSanctionsInfoCount() {
...
@@ -128,7 +121,7 @@ export function getSanctionsInfoCount() {
* sanReason: string
* sanReason: string
* }[]>}
* }[]>}
*/
*/
export
function
getSanctionProcess
(
typeName
=
"实体清单"
,
pageNum
=
1
,
pageSize
=
10
)
{
export
function
getSanctionProcess
(
typeName
=
"实体清单"
,
pageNum
=
1
,
pageSize
=
10
,
isCn
=
false
)
{
return
request200
(
return
request200
(
request
({
request
({
method
:
"POST"
,
method
:
"POST"
,
...
@@ -136,7 +129,8 @@ export function getSanctionProcess(typeName = "实体清单", pageNum = 1, pageS
...
@@ -136,7 +129,8 @@ export function getSanctionProcess(typeName = "实体清单", pageNum = 1, pageS
data
:
{
data
:
{
typeName
,
typeName
,
pageNum
,
pageNum
,
pageSize
pageSize
,
isCn
}
}
})
})
);
);
...
@@ -498,14 +492,17 @@ export function getEntitiesUpdateCount(sanTypeId = 1) {
...
@@ -498,14 +492,17 @@ export function getEntitiesUpdateCount(sanTypeId = 1) {
/**
/**
* 制裁领域分析
* 制裁领域分析
* @param {string} rule - 规则
* @param {string} type - 类型
*/
*/
export
function
getSanDomainCount
(
rule
)
{
export
function
getSanDomainCount
(
rule
,
type
)
{
return
request200
(
return
request200
(
request
({
request
({
method
:
"GET"
,
method
:
"GET"
,
url
:
"/api/entitiesDataCount/getSanDomainCount"
,
url
:
"/api/entitiesDataCount/getSanDomainCount"
,
params
:
{
params
:
{
rule
rule
,
type
}
}
})
})
);
);
...
...
src/api/exportControlV2.0.js
浏览文件 @
c5dda08b
import
request
from
"@/api/request.js"
;
import
request
from
"@/api/request.js"
;
// 实体清单-制裁概况-获取实体清单基本信息
// 实体清单-制裁概况-获取实体清单基本信息
export
function
getEntityInfo
()
{
export
function
getEntityInfo
(
sanType
)
{
return
request
({
return
request
({
method
:
'GET'
,
method
:
'GET'
,
url
:
`/api/sanctionList/baseInfo/
el
`
url
:
`/api/sanctionList/baseInfo/
${
sanType
}
`
})
})
}
}
...
...
src/views/bill/background/index.vue
浏览文件 @
c5dda08b
...
@@ -438,6 +438,45 @@ onMounted(() => {
...
@@ -438,6 +438,45 @@ onMounted(() => {
.
btn
{
.
btn
{
margin
-
left
:
8
px
;
margin
-
left
:
8
px
;
}
}
:
deep
(.
el
-
button
)
{
height
:
28
px
;
padding
:
2
px
8
px
;
border
-
radius
:
4
px
;
font
-
size
:
16
px
;
font
-
weight
:
400
;
font
-
family
:
Microsoft
YaHei
;
line
-
height
:
24
px
;
}
:
deep
(.
el
-
button
--
primary
.
is
-
plain
)
{
background
-
color
:
#
f0f7ff
;
border
-
color
:
rgb
(
5
,
95
,
194
);
color
:
rgb
(
5
,
95
,
194
);
border
-
width
:
1
px
;
&
:
hover
,
&
:
focus
{
background
-
color
:
#
f0f7ff
;
border
-
color
:
rgb
(
5
,
95
,
194
);
color
:
rgb
(
5
,
95
,
194
);
}
}
:
deep
(.
el
-
button
--
info
.
is
-
plain
)
{
background
-
color
:
#
fff
;
border
-
color
:
rgb
(
230
,
231
,
232
);
color
:
rgb
(
59
,
65
,
75
);
&
:
hover
,
&
:
focus
{
background
-
color
:
#
fff
;
border
-
color
:
rgb
(
230
,
231
,
232
);
color
:
rgb
(
59
,
65
,
75
);
}
}
}
}
.
header
-
right
{
.
header
-
right
{
...
@@ -468,8 +507,8 @@ onMounted(() => {
...
@@ -468,8 +507,8 @@ onMounted(() => {
width
:
1150
px
;
width
:
1150
px
;
height
:
415
px
;
height
:
415
px
;
background
:
#
fff
;
background
:
#
fff
;
border
-
radius
:
4
px
;
border
-
radius
:
10
px
;
box
-
shadow
:
0
px
0
px
20
px
0
px
rgba
(
25
,
69
,
130
,
0.1
);
.
box1
-
main
{
.
box1
-
main
{
.
box1
-
main
-
center
{
.
box1
-
main
-
center
{
margin
:
0
22
px
;
margin
:
0
22
px
;
...
@@ -555,8 +594,8 @@ onMounted(() => {
...
@@ -555,8 +594,8 @@ onMounted(() => {
width
:
1150
px
;
width
:
1150
px
;
height
:
415
px
;
height
:
415
px
;
background
:
#
fff
;
background
:
#
fff
;
border
-
radius
:
4
px
;
border
-
radius
:
10
px
;
box
-
shadow
:
0
px
0
px
20
px
0
px
rgba
(
25
,
69
,
130
,
0.1
);
.
box2
-
main
{
.
box2
-
main
{
// margin-top: 9px;
// margin-top: 9px;
width
:
1110
px
;
width
:
1110
px
;
...
@@ -661,8 +700,8 @@ onMounted(() => {
...
@@ -661,8 +700,8 @@ onMounted(() => {
width
:
576
px
;
width
:
576
px
;
height
:
845
px
;
height
:
845
px
;
background
:
#
fff
;
background
:
#
fff
;
border
-
radius
:
4
px
;
border
-
radius
:
10
px
;
box
-
shadow
:
0
px
0
px
20
px
0
px
rgba
(
25
,
69
,
130
,
0.1
);
.
background
-
wrap
-
right
-
main
{
.
background
-
wrap
-
right
-
main
{
.
right
-
box1
{
.
right
-
box1
{
height
:
365
px
;
height
:
365
px
;
...
...
src/views/bill/billHome/assets/icons/icon-desc.png
0 → 100644
浏览文件 @
c5dda08b
695 Bytes
src/views/bill/billHome/assets/images/box8-icon1.png
deleted
100644 → 0
浏览文件 @
2dda3480
19.7 KB
src/views/bill/billHome/assets/images/box8-icon2.png
deleted
100644 → 0
浏览文件 @
2dda3480
22.5 KB
src/views/bill/billHome/assets/images/box8-icon3.png
deleted
100644 → 0
浏览文件 @
2dda3480
22.3 KB
src/views/bill/billHome/assets/images/box8-icon4.png
deleted
100644 → 0
浏览文件 @
2dda3480
19.7 KB
src/views/bill/billHome/assets/images/box8-icon5.png
deleted
100644 → 0
浏览文件 @
2dda3480
19.9 KB
src/views/bill/billHome/assets/images/news2.png
deleted
100644 → 0
浏览文件 @
2dda3480
40.8 KB
src/views/bill/billHome/assets/images/news3.png
deleted
100644 → 0
浏览文件 @
2dda3480
39.3 KB
src/views/bill/billHome/assets/images/news4.png
deleted
100644 → 0
浏览文件 @
2dda3480
34.5 KB
src/views/bill/billHome/assets/images/news5.png
deleted
100644 → 0
浏览文件 @
2dda3480
29.9 KB
src/views/bill/billHome/index.vue
浏览文件 @
c5dda08b
...
@@ -270,7 +270,7 @@
...
@@ -270,7 +270,7 @@
<div
class=
"box3-main"
>
<div
class=
"box3-main"
>
<div
<div
class=
"box3-item"
class=
"box3-item"
v-for=
"(news, index) in newsList"
v-for=
"(news, index) in newsList
.slice(0, 5)
"
:key=
"index"
:key=
"index"
@
click=
"handleClickToNewsDetail(news)"
@
click=
"handleClickToNewsDetail(news)"
>
>
...
@@ -679,6 +679,11 @@
...
@@ -679,6 +679,11 @@
style
=
"width: 120px"
style
=
"width: 120px"
@
change
=
"handlePxChange"
@
change
=
"handlePxChange"
>
>
<
template
#
prefix
>
<
div
style
=
"display: flex; align-items: center; height: 100%"
>
<
img
:
src
=
"desc"
style
=
"width: 14px; height: 14px"
/>
<
/div
>
<
/template
>
<
el
-
option
<
el
-
option
v
-
for
=
"item in releaseTimeList"
v
-
for
=
"item in releaseTimeList"
:
key
=
"item.value"
:
key
=
"item.value"
...
@@ -693,10 +698,9 @@
...
@@ -693,10 +698,9 @@
class
=
"right-main-box"
class
=
"right-main-box"
v
-
for
=
"(item, index) in bills"
v
-
for
=
"(item, index) in bills"
:
key
=
"index"
:
key
=
"index"
@
click
=
"handleClickToDetailO(item)"
>
>
<
div
class
=
"header"
>
<
div
class
=
"header"
>
<
div
class
=
"title"
>
{{
item
.
name
}}
<
/div
>
<
div
class
=
"title"
@
click
=
"handleClickToDetailO(item)"
>
{{
item
.
name
}}
<
/div
>
<
div
class
=
"en-title"
>
{{
item
.
eName
}}
<
/div
>
<
div
class
=
"en-title"
>
{{
item
.
eName
}}
<
/div
>
<
/div
>
<
/div
>
<
div
class
=
"main"
>
<
div
class
=
"main"
>
...
@@ -716,7 +720,9 @@
...
@@ -716,7 +720,9 @@
<
/div
>
<
/div
>
<
div
class
=
"item"
>
<
div
class
=
"item"
>
<
div
class
=
"item-left"
>
{{
"最新动议:"
}}
<
/div
>
<
div
class
=
"item-left"
>
{{
"最新动议:"
}}
<
/div
>
<
div
class
=
"item-right"
>
{{
item
.
zxdy
}}
<
/div
>
<
div
class
=
"item-right"
>
<
CommonPrompt
:
content
=
"item.zxdy"
/>
<
/div
>
<
/div
>
<
/div
>
<
div
class
=
"item"
>
<
div
class
=
"item"
>
<
div
class
=
"item-left"
>
{{
"法案进展:"
}}
<
/div
>
<
div
class
=
"item-left"
>
{{
"法案进展:"
}}
<
/div
>
...
@@ -791,20 +797,14 @@ import getDoublePieChart from "./utils/doublePieChart";
...
@@ -791,20 +797,14 @@ import getDoublePieChart from "./utils/doublePieChart";
import
defaultNew
from
"../assets/images/default-icon-news.png"
;
import
defaultNew
from
"../assets/images/default-icon-news.png"
;
import
News1
from
"./assets/images/news1.png"
;
import
News1
from
"./assets/images/news1.png"
;
import
News2
from
"./assets/images/news2.png"
;
import
defaultIcon01
from
"../../../assets/icons/default-icon1.png"
;
import
News3
from
"./assets/images/news3.png"
;
import
desc
from
"./assets/icons/icon-desc.png"
;
import
News4
from
"./assets/images/news4.png"
;
import
News5
from
"./assets/images/news5.png"
;
import
Message1
from
"./assets/images/message-icon1.png"
;
import
Message1
from
"./assets/images/message-icon1.png"
;
import
Message2
from
"./assets/images/message-icon2.png"
;
import
Message2
from
"./assets/images/message-icon2.png"
;
import
Message3
from
"./assets/images/message-icon3.png"
;
import
Message3
from
"./assets/images/message-icon3.png"
;
import
Box8Img1
from
"./assets/images/box8-icon1.png"
;
import
Box8Img2
from
"./assets/images/box8-icon2.png"
;
import
Box8Img3
from
"./assets/images/box8-icon3.png"
;
import
Box8Img4
from
"./assets/images/box8-icon4.png"
;
import
Box8Img5
from
"./assets/images/box8-icon5.png"
;
import
Cyy
from
"@/assets/icons/cyy.png"
;
import
Cyy
from
"@/assets/icons/cyy.png"
;
import
Zyy
from
"@/assets/icons/zyy.png"
;
import
Zyy
from
"@/assets/icons/zyy.png"
;
...
@@ -911,6 +911,7 @@ const currentPage = ref(1);
...
@@ -911,6 +911,7 @@ const currentPage = ref(1);
const
handleCurrentChange
=
page
=>
{
const
handleCurrentChange
=
page
=>
{
currentPage
.
value
=
page
;
currentPage
.
value
=
page
;
handleGetBills
();
handleGetBills
();
handleToPosi
(
"position4"
);
}
;
}
;
const
containerRef
=
ref
(
null
);
const
containerRef
=
ref
(
null
);
...
@@ -1455,6 +1456,7 @@ const box9YearList = ref([
...
@@ -1455,6 +1456,7 @@ const box9YearList = ref([
}
}
]);
]);
const
box9HasData
=
ref
(
true
);
const
box9HasData
=
ref
(
true
);
let
box9ChartInstance
=
null
;
const
getBox9Data
=
async
()
=>
{
const
getBox9Data
=
async
()
=>
{
const
params
=
{
const
params
=
{
year
:
box9selectetedTime
.
value
year
:
box9selectetedTime
.
value
...
@@ -1486,7 +1488,7 @@ const handleBox9Data = async () => {
...
@@ -1486,7 +1488,7 @@ const handleBox9Data = async () => {
}
;
}
;
}
)
}
)
);
);
setChart
(
box9Chart
,
"box9Chart"
);
box9ChartInstance
=
setChart
(
box9Chart
,
"box9Chart"
);
}
}
}
;
}
;
...
@@ -1698,7 +1700,12 @@ const handleSearch = () => {
...
@@ -1698,7 +1700,12 @@ const handleSearch = () => {
window
.
open
(
curRoute
.
href
,
"_blank"
);
window
.
open
(
curRoute
.
href
,
"_blank"
);
}
;
}
;
const
handleResize
=
()
=>
{
box9ChartInstance
&&
box9ChartInstance
.
resize
();
}
;
onMounted
(
async
()
=>
{
onMounted
(
async
()
=>
{
window
.
addEventListener
(
"resize"
,
handleResize
);
handleGetHylyList
();
handleGetHylyList
();
// 获取风险信号
// 获取风险信号
handleGetBillRiskSignal
();
handleGetBillRiskSignal
();
...
@@ -1728,7 +1735,9 @@ onMounted(async () => {
...
@@ -1728,7 +1735,9 @@ onMounted(async () => {
handleBox9Data
();
handleBox9Data
();
}
);
}
);
onUnmounted
(()
=>
{
}
);
onUnmounted
(()
=>
{
window
.
removeEventListener
(
"resize"
,
handleResize
);
}
);
<
/script
>
<
/script
>
<
style
lang
=
"scss"
scoped
>
<
style
lang
=
"scss"
scoped
>
...
@@ -2525,7 +2534,7 @@ onUnmounted(() => {});
...
@@ -2525,7 +2534,7 @@ onUnmounted(() => {});
}
}
.
box3
-
main
{
.
box3
-
main
{
height
:
402
px
;
height
:
402
px
;
overflow
-
y
:
auto
;
overflow
-
y
:
hidden
;
overflow
-
x
:
hidden
;
overflow
-
x
:
hidden
;
padding
-
top
:
6
px
;
padding
-
top
:
6
px
;
.
box3
-
item
{
.
box3
-
item
{
...
@@ -2649,6 +2658,7 @@ onUnmounted(() => {});
...
@@ -2649,6 +2658,7 @@ onUnmounted(() => {});
overflow
-
y
:
auto
;
overflow
-
y
:
auto
;
box
-
sizing
:
border
-
box
;
box
-
sizing
:
border
-
box
;
padding
-
top
:
8
px
;
padding
-
top
:
8
px
;
padding
-
bottom
:
20
px
;
.
box4
-
main
-
item
{
.
box4
-
main
-
item
{
margin
-
top
:
16
px
;
margin
-
top
:
16
px
;
display
:
flex
;
display
:
flex
;
...
@@ -2774,12 +2784,6 @@ onUnmounted(() => {});
...
@@ -2774,12 +2784,6 @@ onUnmounted(() => {});
.
box5
-
main
{
.
box5
-
main
{
height
:
397
px
;
height
:
397
px
;
}
}
// .box5-select
{
// position: absolute;
// top: 53px;
// left: 100px;
// z-index: 100;
//
}
}
}
.
box6
{
.
box6
{
margin
-
left
:
20
px
;
margin
-
left
:
20
px
;
...
@@ -2982,26 +2986,19 @@ onUnmounted(() => {});
...
@@ -2982,26 +2986,19 @@ onUnmounted(() => {});
}
}
}
}
}
}
// .box-center
{
// height: 45px;
// padding-right: 20px;
// display: flex;
// align-items: center;
// justify-content: flex-end;
//
}
.
box8
-
main
{
.
box8
-
main
{
height
:
380
px
;
height
:
380
px
;
overflow
-
y
:
auto
;
overflow
:
hidden
;
overflow
-
x
:
hidden
;
padding
:
20
px
;
.
box8
-
main
-
item
{
.
box8
-
main
-
item
{
margin
:
0
auto
;
//
margin: 0 auto;
width
:
478
px
;
width
:
478
px
;
height
:
51
px
;
height
:
51
px
;
margin
-
bottom
:
16
px
;
margin
-
bottom
:
20
px
;
display
:
flex
;
display
:
flex
;
align
-
items
:
center
;
align
-
items
:
center
;
position
:
relative
;
position
:
relative
;
padding
:
0
10
px
;
//
padding: 0 10px;
cursor
:
pointer
;
cursor
:
pointer
;
&
:
hover
{
&
:
hover
{
background
:
var
(
--
color
-
bg
-
hover
);
background
:
var
(
--
color
-
bg
-
hover
);
...
@@ -3151,6 +3148,7 @@ onUnmounted(() => {});
...
@@ -3151,6 +3148,7 @@ onUnmounted(() => {});
}
}
.
box9
-
main
{
.
box9
-
main
{
height
:
380
px
;
height
:
380
px
;
padding
:
10
px
20
px
;
}
}
}
}
}
}
...
@@ -3305,8 +3303,8 @@ onUnmounted(() => {});
...
@@ -3305,8 +3303,8 @@ onUnmounted(() => {});
background
:
rgba
(
255
,
255
,
255
,
1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
margin
-
bottom
:
16
px
;
margin
-
bottom
:
16
px
;
overflow
:
hidden
;
overflow
:
hidden
;
overflow
-
y
:
auto
;
//
overflow-y: auto;
cursor
:
pointer
;
//
cursor: pointer;
.
header
{
.
header
{
height
:
91
px
;
height
:
91
px
;
width
:
1200
px
;
width
:
1200
px
;
...
@@ -3314,8 +3312,7 @@ onUnmounted(() => {});
...
@@ -3314,8 +3312,7 @@ onUnmounted(() => {});
border
-
bottom
:
1
px
solid
rgba
(
234
,
236
,
238
,
1
);
border
-
bottom
:
1
px
solid
rgba
(
234
,
236
,
238
,
1
);
padding
-
top
:
19
px
;
padding
-
top
:
19
px
;
.
title
{
.
title
{
// margin-top: 19px;
cursor
:
pointer
;
// padding-top: 19px;
height
:
26
px
;
height
:
26
px
;
color
:
rgba
(
59
,
65
,
75
,
1
);
color
:
rgba
(
59
,
65
,
75
,
1
);
font
-
family
:
Microsoft
YaHei
;
font
-
family
:
Microsoft
YaHei
;
...
...
src/views/bill/billHome/utils/piechart.js
浏览文件 @
c5dda08b
...
@@ -39,7 +39,7 @@ const getPieChart = (data, colorList) => {
...
@@ -39,7 +39,7 @@ const getPieChart = (data, colorList) => {
maxSurfaceAngle
:
80
maxSurfaceAngle
:
80
},
},
labelLayout
:
function
(
params
)
{
labelLayout
:
function
(
params
)
{
const
isLeft
=
params
.
labelRect
.
x
<
556
/
2
;
const
isLeft
=
params
.
labelRect
.
x
<
params
.
viewWidth
/
2
;
const
points
=
params
.
labelLinePoints
;
const
points
=
params
.
labelLinePoints
;
// Update the end point.
// Update the end point.
points
[
2
][
0
]
=
isLeft
points
[
2
][
0
]
=
isLeft
...
...
src/views/bill/billLayout/index.vue
浏览文件 @
c5dda08b
...
@@ -2,7 +2,8 @@
...
@@ -2,7 +2,8 @@
<div
class=
"layout-container"
>
<div
class=
"layout-container"
>
<!-- 导航菜单 -->
<!-- 导航菜单 -->
<div
class=
"layout-main"
>
<div
class=
"layout-main"
>
<div
class=
"layout-main-header"
>
<div
class=
"header-main"
>
<div
class=
"layout-main-header"
>
<div
class=
"layout-main-header-left-box"
>
<div
class=
"layout-main-header-left-box"
>
<div
class=
"left-box-top"
>
<div
class=
"left-box-top"
>
<div
class=
"icon"
>
<div
class=
"icon"
>
...
@@ -68,16 +69,18 @@
...
@@ -68,16 +69,18 @@
</div>
-->
</div>
-->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"layout-main-center"
>
<div
class=
"layout-main-center"
>
<router-view
/>
<router-view
/>
</div>
</div>
</div>
</div>
<div
class=
"layout-report-box"
v-if=
"activeName === '法案原文'"
>
<div
class=
"layout-report-box"
v-if=
"activeName === '法案原文'"
>
<div
class=
"report-close"
@
click=
"handleSwitchActiveName('分析报告')"
>
<img
src=
"./assets/images/report-close-icon.png"
alt=
""
/>
</div>
<div
class=
"report-main"
>
<div
class=
"report-main"
>
<div
class=
"report-close"
@
click=
"handleSwitchActiveName('分析报告')"
>
<img
src=
"./assets/images/report-close-icon.png"
alt=
""
/>
</div>
<div
class=
"report-header"
>
<div
class=
"report-header"
>
<div
class=
"report-header-left"
>
<div
class=
"report-header-left"
>
<!--
<div
class=
"text"
>
法案版本:
</div>
<!--
<div
class=
"text"
>
法案版本:
</div>
...
@@ -210,18 +213,18 @@ const mainHeaderBtnList = ref([
...
@@ -210,18 +213,18 @@ const mainHeaderBtnList = ref([
name
:
"深度挖掘"
,
name
:
"深度挖掘"
,
path
:
"/billLayout/deepDig"
path
:
"/billLayout/deepDig"
},
},
{
//
{
icon
:
icon3
,
//
icon: icon3,
activeIcon
:
icon3Active
,
//
activeIcon: icon3Active,
name
:
"影响分析"
,
//
name: "影响分析",
path
:
"/billLayout/influence"
//
path: "/billLayout/influence"
},
//
},
{
//
{
icon
:
icon4
,
//
icon: icon4,
activeIcon
:
icon4Active
,
//
activeIcon: icon4Active,
name
:
"相关情况"
,
//
name: "相关情况",
path
:
"/billLayout/relevantCircumstance"
//
path: "/billLayout/relevantCircumstance"
}
//
}
]);
]);
const
activeTitle
=
ref
(
"法案概况"
);
const
activeTitle
=
ref
(
"法案概况"
);
...
@@ -247,164 +250,35 @@ onMounted(() => {
...
@@ -247,164 +250,35 @@ onMounted(() => {
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.layout-container
{
.layout-container
{
width
:
1
920px
;
width
:
1
00%
;
height
:
1016px
;
//
height: 1016px;
background
:
rgba
(
249
,
250
,
252
,
1
);
background
:
rgba
(
249
,
250
,
252
,
1
);
position
:
relative
;
position
:
relative
;
// margin: 0 auto;
// margin: 0 auto;
.layout-header
{
width
:
1920px
;
height
:
64px
;
// background: #0a121e;
background
:
#fff
;
// border-bottom: 1px solid rgba(0, 0, 0, 0.1);
box-shadow
:
0px
0px
8px
0px
rgba
(
0
,
0
,
0
,
0
.1
);
// margin-bottom: 13px;
display
:
flex
;
position
:
relative
;
z-index
:
99
;
.layout-header-left
{
width
:
480px
;
display
:
flex
;
.logo-box
{
width
:
36px
;
height
:
36px
;
margin
:
14px
;
img
{
width
:
100%
;
height
:
100%
;
border-radius
:
6px
;
}
}
.title-box
{
height
:
64px
;
width
:
350px
;
margin
:
0
5px
;
color
:
#eee
;
line-height
:
64px
;
font-size
:
20px
;
font-weight
:
bold
;
color
:
rgba
(
10
,
18
,
30
,
1
);
font-family
:
Microsoft
YaHei
;
font-size
:
22px
;
font-weight
:
700
;
text-align
:
left
;
}
}
.layout-header-center
{
width
:
700px
;
display
:
flex
;
justify-content
:
space-between
;
margin-left
:
200px
;
.nav-item
{
border-radius
:
5px
;
cursor
:
pointer
;
display
:
flex
;
&
:hover
{
background
:
rgba
(
255
,
255
,
255
,
0
.2
);
}
.nav-icon-box
{
width
:
25px
;
height
:
25px
;
margin
:
22px
0
20px
5px
;
.nav-icon
{
width
:
20px
;
height
:
20px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.nav-icon-active
{
width
:
20px
;
height
:
20px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
}
.name-box
{
margin
:
18px
5px
;
height
:
30px
;
text-align
:
center
;
line-height
:
30px
;
color
:
rgba
(
59
,
65
,
75
,
1
);
letter-spacing
:
2px
;
font-size
:
18px
;
}
// .nameActive {
// color: #ea9518;
// font-weight: bold;
// }
}
.navItemActive
{
// background: #295dab;
// border-bottom: 4px solid #ea9518;
// &:hover {
// background: #295dab;
// border-bottom: 4px solid #ea9518;
// }
}
}
.layout-header-right
{
flex
:
1
;
display
:
flex
;
justify-content
:
flex-end
;
.nav-search
{
width
:
22px
;
height
:
22px
;
margin
:
21px
0
;
}
.nav-message
{
width
:
22px
;
height
:
22px
;
margin
:
21px
30px
;
}
.nav-usr
{
width
:
110px
;
display
:
flex
;
height
:
40px
;
margin
:
12px
5px
12px
0
;
.usr-img
{
margin-top
:
4px
;
height
:
32px
;
width
:
32px
;
background
:
rgba
(
255
,
255
,
255
,
0
.5
);
border-radius
:
100%
;
box-sizing
:
border-box
;
padding
:
4px
;
// img {
// width: 100%;
// height: 100%;
// }
}
.usr-info
{
height
:
40px
;
line-height
:
40px
;
text-align
:
center
;
font-size
:
14px
;
margin-left
:
10px
;
}
}
}
}
.layout-main
{
.layout-main
{
width
:
100%
;
width
:
100%
;
height
:
calc
(
100%
-
64px
);
height
:
calc
(
100%
-
64px
);
.header-main
{
position
:
sticky
;
top
:
72px
;
z-index
:
1000
;
width
:
100%
;
height
:
136px
;
background-color
:
#fff
;
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
}
.layout-main-header
{
.layout-main-header
{
height
:
137px
;
width
:
1744px
;
height
:
136px
;
background
:
rgba
(
255
,
255
,
255
,
1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
margin
:
0
auto
;
padding-top
:
14px
;
.layout-main-header-left-box
{
.layout-main-header-left-box
{
width
:
900px
;
width
:
900px
;
margin-left
:
160px
;
//
margin-left: 160px;
margin-top
:
13px
;
//
margin-top: 13px;
.left-box-top
{
.left-box-top
{
height
:
64px
;
height
:
64px
;
display
:
flex
;
display
:
flex
;
...
@@ -489,8 +363,8 @@ onMounted(() => {
...
@@ -489,8 +363,8 @@ onMounted(() => {
}
}
.layout-main-header-right-box
{
.layout-main-header-right-box
{
width
:
600px
;
width
:
600px
;
margin-right
:
150px
;
//
margin-right: 150px;
margin-top
:
19px
;
//
margin-top: 19px;
.right-box-top
{
.right-box-top
{
.time
{
.time
{
height
:
24px
;
height
:
24px
;
...
@@ -651,7 +525,10 @@ onMounted(() => {
...
@@ -651,7 +525,10 @@ onMounted(() => {
}
}
}
}
.layout-main-center
{
.layout-main-center
{
height
:
calc
(
100%
-
137px
);
// height: calc(100% - 137px);
width
:
1744px
;
margin
:
0
auto
;
padding-bottom
:
100px
;
}
}
}
}
.layout-report-box
{
.layout-report-box
{
...
@@ -662,25 +539,28 @@ onMounted(() => {
...
@@ -662,25 +539,28 @@ onMounted(() => {
width
:
100%
;
width
:
100%
;
height
:
926px
;
height
:
926px
;
background
:
rgba
(
248
,
249
,
250
,
1
);
background
:
rgba
(
248
,
249
,
250
,
1
);
.report-close
{
position
:
absolute
;
top
:
24px
;
right
:
178px
;
width
:
32px
;
height
:
32px
;
cursor
:
pointer
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.report-main
{
.report-main
{
width
:
1600px
;
position
:
relative
;
width
:
1744px
;
height
:
926px
;
height
:
926px
;
margin
:
0
auto
;
margin
:
0
auto
;
background
:
#fff
;
background
:
#fff
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
padding
:
0
69px
;
padding
:
0
69px
;
// border-radius: 10px;
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
.report-close
{
position
:
absolute
;
top
:
24px
;
right
:
24px
;
width
:
32px
;
height
:
32px
;
cursor
:
pointer
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.report-header
{
.report-header
{
height
:
77px
;
height
:
77px
;
border-bottom
:
1px
solid
rgba
(
240
,
242
,
244
,
1
);
border-bottom
:
1px
solid
rgba
(
240
,
242
,
244
,
1
);
...
...
src/views/bill/deepDig/index.vue
浏览文件 @
c5dda08b
...
@@ -65,9 +65,13 @@ const handleClickLeftSiderBtn = (item,index) => {
...
@@ -65,9 +65,13 @@ const handleClickLeftSiderBtn = (item,index) => {
.wrap
{
.wrap
{
display
:
flex
;
display
:
flex
;
height
:
879px
;
height
:
879px
;
position
:
relative
;
// background: (243, 243, 244, 1);
// background: (243, 243, 244, 1);
.sider
{
.sider
{
width
:
160px
;
width
:
160px
;
position
:
absolute
;
top
:
0
;
left
:
-160px
;
.sider-btn
{
.sider-btn
{
margin-top
:
20px
;
margin-top
:
20px
;
margin-left
:
20px
;
margin-left
:
20px
;
...
...
src/views/bill/deepDig/processAnalysis/index.vue
浏览文件 @
c5dda08b
...
@@ -777,7 +777,7 @@ onMounted(async () => {
...
@@ -777,7 +777,7 @@ onMounted(async () => {
height
:
415
px
;
height
:
415
px
;
background
:
rgb
(
255
,
255
,
255
);
background
:
rgb
(
255
,
255
,
255
);
border
-
radius
:
10
px
;
border
-
radius
:
10
px
;
box
-
shadow
:
0
px
0
px
15
px
0
px
rgba
(
22
,
119
,
255
,
0.1
);
box
-
shadow
:
0
px
0
px
20
px
0
px
rgba
(
25
,
69
,
130
,
0.1
);
.
box1
-
main
{
.
box1
-
main
{
height
:
359
px
;
height
:
359
px
;
.
box1
-
main
-
center
{
.
box1
-
main
-
center
{
...
@@ -897,7 +897,7 @@ onMounted(async () => {
...
@@ -897,7 +897,7 @@ onMounted(async () => {
height
:
415
px
;
height
:
415
px
;
background
:
rgb
(
255
,
255
,
255
);
background
:
rgb
(
255
,
255
,
255
);
border
-
radius
:
10
px
;
border
-
radius
:
10
px
;
box
-
shadow
:
0
px
0
px
15
px
0
px
rgba
(
22
,
119
,
255
,
0.1
);
box
-
shadow
:
0
px
0
px
20
px
0
px
rgba
(
25
,
69
,
130
,
0.1
);
.
box2
-
main
{
.
box2
-
main
{
height
:
359
px
;
height
:
359
px
;
.
box2
-
main
-
center
{
.
box2
-
main
-
center
{
...
@@ -1051,77 +1051,6 @@ onMounted(async () => {
...
@@ -1051,77 +1051,6 @@ onMounted(async () => {
}
}
}
}
}
}
// .box2-main-center-content
{
// height: 264px;
// display: flex;
// flex-wrap: wrap;
// justify-content: space-between;
// .box2-item
{
// width: 402px;
// height: 58px;
// box-sizing: border-box;
// border: 1px solid rgba(243, 243, 244, 1);
// border-radius: 4px;
// margin-bottom: 8px;
// display: flex;
// .box2-item-left
{
// width: 36px;
// height: 36px;
// margin-left: 16px;
// margin-top: 11px;
// img
{
// width: 100%;
// height: 100%;
//
}
//
}
// .box2-item-center
{
// margin-left: 14px;
// margin-top: 5px;
// width: 220px;
// .box2-item-center-top
{
// height: 24px;
// color: rgba(59, 65, 75, 1);
// font-family: Microsoft YaHei;
// font-size: 14px;
// font-weight: 600;
// line-height: 24px;
//
}
// .box2-item-center-bottom
{
// height: 24px;
// color: rgba(132, 136, 142, 1);
// font-family: Microsoft YaHei;
// font-size: 14px;
// font-weight: 400;
// line-height: 24px;
//
}
//
}
// .box2-item-right
{
// margin-left: 2px;
// .box2-item-right-top
{
// height: 24px;
// color: rgba(206, 79, 81, 1);
// font-family: Microsoft YaHei;
// font-size: 14px;
// font-weight: 600;
// line-height: 24px;
//
}
// .box2-item-right-bottom
{
// height: 24px;
// color: rgba(132, 136, 142, 1);
// font-family: Microsoft YaHei;
// font-size: 14px;
// font-weight: 400;
// line-height: 24px;
// text-align: right;
//
}
//
}
//
}
//
}
// .box2-main-center-footer
{
// height: 36px;
// display: flex;
// justify-self: center;
//
}
}
}
.
box2
-
main
-
footer
{
.
box2
-
main
-
footer
{
width
:
830
px
;
width
:
830
px
;
...
@@ -1181,7 +1110,7 @@ onMounted(async () => {
...
@@ -1181,7 +1110,7 @@ onMounted(async () => {
width
:
100
%
;
width
:
100
%
;
height
:
100
%
;
height
:
100
%
;
border
-
radius
:
10
px
;
border
-
radius
:
10
px
;
box
-
shadow
:
0
px
0
px
15
px
0
px
rgba
(
22
,
119
,
255
,
0.1
);
box
-
shadow
:
0
px
0
px
20
px
0
px
rgba
(
25
,
69
,
130
,
0.1
);
.
box3
-
main
{
.
box3
-
main
{
height
:
791
px
;
height
:
791
px
;
.
box3
-
main
-
center
{
.
box3
-
main
-
center
{
...
...
src/views/bill/deepDig/processOverview/index.vue
浏览文件 @
c5dda08b
差异被折叠。
点击展开。
src/views/bill/index.vue
浏览文件 @
c5dda08b
<
template
>
<
template
>
<div
class=
"home-container"
>
<div
class=
"home-container"
>
<!--
<div
class=
"home-top"
>
<div
class=
"home-top-left-box"
>
<div
class=
"left-box-top"
>
<div
class=
"icon"
>
<img
src=
"./assets/images/USA-logo.png"
alt=
""
/>
</div>
<div
class=
"info"
>
<div
class=
"info-box1"
>
{{
"H.R.1(119th)-大而美法案"
}}
</div>
<div
class=
"info-box2"
>
{{
"第119届美国国会众议院第1号法案 One Big Beautiful Bill Act"
}}
</div>
</div>
</div>
<div
class=
"left-box-bottom"
>
<div
class=
"left-box-bottom-item"
style=
"border-bottom: 2px solid rgba(22, 119, 255, 1)"
>
<div
class=
"icon"
>
<img
src=
"./assets/icons/icon1.png"
alt=
""
/>
</div>
<div
class=
"name"
style=
"color: rgba(22, 119, 255, 1)"
>
法案概况
</div>
</div>
<div
class=
"left-box-bottom-item"
>
<div
class=
"icon"
>
<img
src=
"./assets/icons/icon2.png"
alt=
""
/>
</div>
<div
class=
"name"
>
深度挖掘
</div>
</div>
<div
class=
"left-box-bottom-item"
>
<div
class=
"icon"
>
<img
src=
"./assets/icons/icon3.png"
alt=
""
/>
</div>
<div
class=
"name"
>
影响分析
</div>
</div>
<div
class=
"left-box-bottom-item"
>
<div
class=
"icon"
>
<img
src=
"./assets/icons/icon4.png"
alt=
""
/>
</div>
<div
class=
"name"
>
相关情况
</div>
</div>
</div>
</div>
<div
class=
"home-top-right-box"
>
<div
class=
"right-box-top"
>
<div
class=
"time"
>
{{
"2025年7月"
}}
</div>
<div
class=
"name"
>
{{
"乔迪·阿灵顿(Jodey Arrington) "
}}
</div>
</div>
<div
class=
"right-box-bottom"
>
<el-button
type=
"plain"
size=
"large"
icon=
"Search"
>
法案原文
</el-button
>
<el-button
type=
"primary"
size=
"large"
icon=
"EditPen"
>
分析报告
</el-button
>
</div>
</div>
</div>
-->
<div
class=
"home-center"
>
<div
class=
"home-center"
>
<div
class=
"home-sider"
>
<div
class=
"home-sider"
>
<div
<div
...
@@ -226,8 +166,12 @@ onMounted(() => {});
...
@@ -226,8 +166,12 @@ onMounted(() => {});
.home-center
{
.home-center
{
display
:
flex
;
display
:
flex
;
height
:
879px
;
height
:
879px
;
position
:
relative
;
.home-sider
{
.home-sider
{
width
:
160px
;
width
:
160px
;
position
:
absolute
;
top
:
0
;
left
:
-160px
;
.sider-btn
{
.sider-btn
{
margin-top
:
20px
;
margin-top
:
20px
;
margin-left
:
20px
;
margin-left
:
20px
;
...
...
src/views/bill/influence/index.vue
浏览文件 @
c5dda08b
...
@@ -58,9 +58,13 @@ const handleClickLeftSiderBtn = (item,index) => {
...
@@ -58,9 +58,13 @@ const handleClickLeftSiderBtn = (item,index) => {
.influence-wrap
{
.influence-wrap
{
display
:
flex
;
display
:
flex
;
height
:
879px
;
height
:
879px
;
position
:
relative
;
// background: (243, 243, 244, 1);
// background: (243, 243, 244, 1);
.sider
{
.sider
{
width
:
160px
;
width
:
160px
;
position
:
absolute
;
top
:
0
;
left
:
-160px
;
.sider-btn
{
.sider-btn
{
margin-top
:
20px
;
margin-top
:
20px
;
margin-left
:
10px
;
margin-left
:
10px
;
...
...
src/views/bill/influence/industry/index.vue
浏览文件 @
c5dda08b
...
@@ -811,7 +811,8 @@ onMounted(async () => {
...
@@ -811,7 +811,8 @@ onMounted(async () => {
width: 480px;
width: 480px;
height: 848px;
height: 848px;
background: rgba(255, 255, 255);
background: rgba(255, 255, 255);
border-radius: 4px;
border-radius: 10px;
box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1);
.left-top {
.left-top {
margin: 0 auto;
margin: 0 auto;
width: 446px;
width: 446px;
...
@@ -949,7 +950,8 @@ onMounted(async () => {
...
@@ -949,7 +950,8 @@ onMounted(async () => {
width: 1247px;
width: 1247px;
height: 847px;
height: 847px;
background: rgba(255, 255, 255);
background: rgba(255, 255, 255);
border-radius: 4px;
border-radius: 10px;
box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1);
position: relative;
position: relative;
.graph-dialog {
.graph-dialog {
width: 740px;
width: 740px;
...
...
src/views/bill/introdoction/index.vue
浏览文件 @
c5dda08b
...
@@ -16,7 +16,7 @@
...
@@ -16,7 +16,7 @@
</div>
</div>
<div
class=
"box1-main"
>
<div
class=
"box1-main"
>
<div
class=
"box1-left"
>
<div
class=
"box1-left"
>
<img
src=
"./assets/images/image1.png
"
alt=
""
/>
<img
:src=
" basicInfo.imageUrl || defaultBill
"
alt=
""
/>
</div>
</div>
<div
class=
"box1-right"
>
<div
class=
"box1-right"
>
<div
class=
"box1-right-item"
>
<div
class=
"box1-right-item"
>
...
@@ -31,9 +31,6 @@
...
@@ -31,9 +31,6 @@
<div
class=
"box1-right-item"
>
<div
class=
"box1-right-item"
>
<div
class=
"item-left"
>
相关领域:
</div>
<div
class=
"item-left"
>
相关领域:
</div>
<div
class=
"item-right1"
>
<div
class=
"item-right1"
>
<!--
<div
class=
"right1-item"
>
跨境电商
</div>
<div
class=
"right1-item"
>
新能源产业
</div>
<div
class=
"right1-item"
>
半导体产业
</div>
-->
<div
class=
"right1-item"
v-for=
"item in basicInfo.hylyList"
:key=
"item"
>
{{
item
}}
</div>
<div
class=
"right1-item"
v-for=
"item in basicInfo.hylyList"
:key=
"item"
>
{{
item
}}
</div>
</div>
</div>
</div>
</div>
...
@@ -355,6 +352,7 @@ import STimeline from "./STimeline.vue";
...
@@ -355,6 +352,7 @@ import STimeline from "./STimeline.vue";
import
{
getBillInfo
,
getBillPerson
,
getBillEvent
,
getBillDyqk
}
from
"@/api/bill"
;
import
{
getBillInfo
,
getBillPerson
,
getBillEvent
,
getBillDyqk
}
from
"@/api/bill"
;
import
defaultAvatar
from
"../assets/images/default-icon1.png"
;
import
defaultAvatar
from
"../assets/images/default-icon1.png"
;
import
defaultNew
from
"../assets/images/default-icon-news.png"
;
import
defaultNew
from
"../assets/images/default-icon-news.png"
;
import
defaultBill
from
"./assets/images/image1.png"
const
route
=
useRoute
();
const
route
=
useRoute
();
const
router
=
useRouter
();
const
router
=
useRouter
();
...
@@ -376,13 +374,6 @@ const handleClcikDialogBoxBtn = index => {
...
@@ -376,13 +374,6 @@ const handleClcikDialogBoxBtn = index => {
dialogBoxBtnActive
.
value
=
index
;
dialogBoxBtnActive
.
value
=
index
;
}
;
}
;
const
handleChangeFaId
=
val
=>
{
console
.
log
(
"val"
,
val
);
handleGetBillPerson
(
val
);
}
;
const
timelineData
=
ref
([]);
const
timelineData
=
ref
([]);
const
isShowDialog
=
ref
(
false
);
const
isShowDialog
=
ref
(
false
);
...
@@ -520,7 +511,7 @@ onMounted(() => {
...
@@ -520,7 +511,7 @@ onMounted(() => {
height
:
415
px
;
height
:
415
px
;
background
:
#
fff
;
background
:
#
fff
;
border
-
radius
:
10
px
;
border
-
radius
:
10
px
;
box
-
shadow
:
0
px
0
px
15
px
0
px
rgba
(
22
,
119
,
255
,
0.1
);
box
-
shadow
:
0
px
0
px
20
px
0
px
rgba
(
25
,
69
,
130
,
0.1
);
.
box1
-
main
{
.
box1
-
main
{
display
:
flex
;
display
:
flex
;
height
:
394
px
;
height
:
394
px
;
...
@@ -528,6 +519,10 @@ onMounted(() => {
...
@@ -528,6 +519,10 @@ onMounted(() => {
margin
-
left
:
23
px
;
margin
-
left
:
23
px
;
width
:
247
px
;
width
:
247
px
;
height
:
350
px
;
height
:
350
px
;
img
{
width
:
100
%
;
height
:
100
%
;
}
}
}
.
box1
-
right
{
.
box1
-
right
{
margin
-
left
:
31
px
;
margin
-
left
:
31
px
;
...
@@ -541,49 +536,38 @@ onMounted(() => {
...
@@ -541,49 +536,38 @@ onMounted(() => {
width
:
100
px
;
width
:
100
px
;
height
:
14
px
;
height
:
14
px
;
color
:
rgba
(
59
,
65
,
75
,
1
);
color
:
rgba
(
59
,
65
,
75
,
1
);
font
-
family
:
Microsoft
YaHei
;
font
-
family
:
"Microsoft YaHei"
;
font
-
size
:
1
4
px
;
font
-
size
:
1
6
px
;
font
-
weight
:
6
00
;
font
-
weight
:
7
00
;
line
-
height
:
14
px
;
line
-
height
:
14
px
;
text
-
align
:
left
;
text
-
align
:
left
;
}
}
.
item
-
right
{
.
item
-
right
{
height
:
14
px
;
height
:
14
px
;
color
:
var
(
--
color
-
main
-
active
);
color
:
var
(
--
color
-
main
-
active
);
font
-
family
:
Microsoft
YaHei
;
font
-
family
:
"Microsoft YaHei"
;
font
-
size
:
1
4
px
;
font
-
size
:
1
6
px
;
font
-
weight
:
6
00
;
font
-
weight
:
7
00
;
line
-
height
:
14
px
;
line
-
height
:
14
px
;
letter
-
spacing
:
0
px
;
letter
-
spacing
:
0
px
;
text
-
align
:
left
;
text
-
align
:
left
;
}
}
.
item
-
right1
{
.
item
-
right1
{
display
:
flex
;
display
:
flex
;
flex
-
wrap
:
wrap
;
align
-
items
:
center
;
align
-
items
:
center
;
width
:
700
px
;
width
:
700
px
;
height
:
40
px
;
min
-
height
:
40
px
;
overflow
-
x
:
auto
;
overflow
-
y
:
hidden
;
&
::
-
webkit
-
scrollbar
{
height
:
4
px
;
}
&
::
-
webkit
-
scrollbar
-
thumb
{
border
-
radius
:
4
px
;
background
:
#
e1e1e1
;
}
&
::
-
webkit
-
scrollbar
-
track
{
background
:
transparent
;
}
.
right1
-
item
{
.
right1
-
item
{
flex
-
shrink
:
0
;
margin
-
right
:
10
px
;
margin
-
right
:
10
px
;
margin
-
bottom
:
8
px
;
padding
:
1
px
8
px
;
padding
:
1
px
8
px
;
box
-
sizing
:
border
-
box
;
box
-
sizing
:
border
-
box
;
border
:
1
px
solid
rgba
(
186
,
224
,
255
,
1
);
border
:
1
px
solid
rgba
(
186
,
224
,
255
,
1
);
border
-
radius
:
4
px
;
border
-
radius
:
4
px
;
background
:
rgba
(
230
,
244
,
255
,
1
);
background
:
rgba
(
230
,
244
,
255
,
1
);
color
:
rgba
(
22
,
119
,
255
,
1
);
color
:
rgba
(
22
,
119
,
255
,
1
);
font
-
family
:
Microsoft
YaHei
;
font
-
family
:
"Microsoft YaHei"
;
font
-
size
:
14
px
;
font
-
size
:
14
px
;
font
-
weight
:
400
;
font
-
weight
:
400
;
line
-
height
:
20
px
;
line
-
height
:
20
px
;
...
@@ -593,8 +577,8 @@ onMounted(() => {
...
@@ -593,8 +577,8 @@ onMounted(() => {
.
right2
-
item
{
.
right2
-
item
{
height
:
14
px
;
height
:
14
px
;
color
:
rgba
(
95
,
101
,
108
,
1
);
color
:
rgba
(
95
,
101
,
108
,
1
);
font
-
family
:
Microsoft
YaHei
;
font
-
family
:
"Microsoft YaHei"
;
font
-
size
:
1
4
px
;
font
-
size
:
1
6
px
;
font
-
weight
:
400
;
font
-
weight
:
400
;
line
-
height
:
14
px
;
line
-
height
:
14
px
;
text
-
align
:
left
;
text
-
align
:
left
;
...
@@ -604,8 +588,8 @@ onMounted(() => {
...
@@ -604,8 +588,8 @@ onMounted(() => {
.
item
-
right3
{
.
item
-
right3
{
height
:
14
px
;
height
:
14
px
;
color
:
rgba
(
95
,
101
,
108
,
1
);
color
:
rgba
(
95
,
101
,
108
,
1
);
font
-
family
:
Microsoft
YaHei
;
font
-
family
:
"Microsoft YaHei"
;
font
-
size
:
1
4
px
;
font
-
size
:
1
6
px
;
font
-
weight
:
400
;
font
-
weight
:
400
;
line
-
height
:
14
px
;
line
-
height
:
14
px
;
text
-
align
:
left
;
text
-
align
:
left
;
...
@@ -618,7 +602,7 @@ onMounted(() => {
...
@@ -618,7 +602,7 @@ onMounted(() => {
.
step
{
.
step
{
height
:
28
px
;
height
:
28
px
;
line
-
height
:
26
px
;
line
-
height
:
26
px
;
font
-
size
:
1
4
px
;
font
-
size
:
1
6
px
;
text
-
align
:
center
;
text
-
align
:
center
;
position
:
relative
;
position
:
relative
;
background
:
transparent
;
background
:
transparent
;
...
@@ -702,7 +686,7 @@ onMounted(() => {
...
@@ -702,7 +686,7 @@ onMounted(() => {
height
:
415
px
;
height
:
415
px
;
background
:
#
fff
;
background
:
#
fff
;
border
-
radius
:
10
px
;
border
-
radius
:
10
px
;
box
-
shadow
:
0
px
0
px
15
px
0
px
rgba
(
22
,
119
,
255
,
0.1
);
box
-
shadow
:
0
px
0
px
20
px
0
px
rgba
(
25
,
69
,
130
,
0.1
);
position
:
relative
;
position
:
relative
;
.
box2
-
main
{
.
box2
-
main
{
margin
-
top
:
10
px
;
margin
-
top
:
10
px
;
...
@@ -841,7 +825,7 @@ onMounted(() => {
...
@@ -841,7 +825,7 @@ onMounted(() => {
height
:
845
px
;
height
:
845
px
;
background
:
#
fff
;
background
:
#
fff
;
border
-
radius
:
10
px
;
border
-
radius
:
10
px
;
box
-
shadow
:
0
px
0
px
15
px
0
px
rgba
(
22
,
119
,
255
,
0.1
);
box
-
shadow
:
0
px
0
px
20
px
0
px
rgba
(
25
,
69
,
130
,
0.1
);
.
introduction
-
wrap
-
right
-
main
{
.
introduction
-
wrap
-
right
-
main
{
.
right
-
main
-
box1
{
.
right
-
main
-
box1
{
// height: 218px; 将选择框去掉后高度变化
// height: 218px; 将选择框去掉后高度变化
...
...
src/views/bill/relevantCircumstance/index.vue
浏览文件 @
c5dda08b
...
@@ -596,7 +596,7 @@ onMounted(() => {
...
@@ -596,7 +596,7 @@ onMounted(() => {
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
display
:
flex
;
display
:
flex
;
padding
:
16px
16
0px
;
padding
:
16px
0px
;
justify-content
:
space-between
;
justify-content
:
space-between
;
.box-header
{
.box-header
{
height
:
45px
;
height
:
45px
;
...
@@ -680,10 +680,10 @@ onMounted(() => {
...
@@ -680,10 +680,10 @@ onMounted(() => {
}
}
}
}
.left
{
.left
{
width
:
1
068
px
;
width
:
1
212
px
;
height
:
847px
;
height
:
847px
;
border-radius
:
4
px
;
border-radius
:
10
px
;
box-shadow
:
0px
0px
15px
0px
rgba
(
60
,
87
,
126
,
0
.2
);
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
.box1
{
.box1
{
position
:
relative
;
position
:
relative
;
...
@@ -721,7 +721,7 @@ onMounted(() => {
...
@@ -721,7 +721,7 @@ onMounted(() => {
}
}
}
}
.box1-main
{
.box1-main
{
width
:
1
068
px
;
width
:
1
212
px
;
height
:
730px
;
height
:
730px
;
// background: orange;
// background: orange;
}
}
...
@@ -773,8 +773,8 @@ onMounted(() => {
...
@@ -773,8 +773,8 @@ onMounted(() => {
.right
{
.right
{
width
:
520px
;
width
:
520px
;
height
:
848px
;
height
:
848px
;
border-radius
:
4
px
;
border-radius
:
10
px
;
box-shadow
:
0px
0px
15px
0px
rgba
(
60
,
87
,
126
,
0
.2
);
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
.box2
{
.box2
{
.box2-main
{
.box2-main
{
...
...
src/views/bill/template/index.vue
浏览文件 @
c5dda08b
...
@@ -103,7 +103,7 @@
...
@@ -103,7 +103,7 @@
<
div
class
=
"right-box1"
>
<
div
class
=
"right-box1"
>
<
div
class
=
"box-header"
>
<
div
class
=
"box-header"
>
<
div
class
=
"box-header-left"
><
/div
>
<
div
class
=
"box-header-left"
><
/div
>
<
div
class
=
"box-header-title"
>
限制
方式
<
/div
>
<
div
class
=
"box-header-title"
>
限制
手段
<
/div
>
<
div
class
=
"header-right"
>
<
div
class
=
"header-right"
>
<
div
class
=
"icon"
>
<
div
class
=
"icon"
>
<
img
src
=
"@/assets/icons/box-header-icon1.png"
alt
=
""
/>
<
img
src
=
"@/assets/icons/box-header-icon1.png"
alt
=
""
/>
...
@@ -130,7 +130,7 @@
...
@@ -130,7 +130,7 @@
<
div
class
=
"right-box2"
>
<
div
class
=
"right-box2"
>
<
div
class
=
"box-header"
>
<
div
class
=
"box-header"
>
<
div
class
=
"box-header-left"
><
/div
>
<
div
class
=
"box-header-left"
><
/div
>
<
div
class
=
"box-header-title"
>
涉及
行业
<
/div
>
<
div
class
=
"box-header-title"
>
涉及
领域
<
/div
>
<
div
class
=
"header-right"
>
<
div
class
=
"header-right"
>
<
div
class
=
"icon"
>
<
div
class
=
"icon"
>
<
img
src
=
"@/assets/icons/box-header-icon1.png"
alt
=
""
/>
<
img
src
=
"@/assets/icons/box-header-icon1.png"
alt
=
""
/>
...
@@ -430,7 +430,8 @@ onMounted(async () => {
...
@@ -430,7 +430,8 @@ onMounted(async () => {
margin
-
top
:
16
px
;
margin
-
top
:
16
px
;
width
:
1150
px
;
width
:
1150
px
;
height
:
845
px
;
height
:
845
px
;
border
-
radius
:
4
px
;
border
-
radius
:
10
px
;
box
-
shadow
:
0
px
0
px
20
px
0
px
rgba
(
25
,
69
,
130
,
0.1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
.
left
-
top
{
.
left
-
top
{
height
:
45
px
;
height
:
45
px
;
...
@@ -599,7 +600,8 @@ onMounted(async () => {
...
@@ -599,7 +600,8 @@ onMounted(async () => {
.
right
-
box1
{
.
right
-
box1
{
width
:
576
px
;
width
:
576
px
;
height
:
415
px
;
height
:
415
px
;
border
-
radius
:
4
px
;
border
-
radius
:
10
px
;
box
-
shadow
:
0
px
0
px
20
px
0
px
rgba
(
25
,
69
,
130
,
0.1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
.
right
-
box1
-
main
{
.
right
-
box1
-
main
{
width
:
576
px
;
width
:
576
px
;
...
@@ -655,7 +657,8 @@ onMounted(async () => {
...
@@ -655,7 +657,8 @@ onMounted(async () => {
margin
-
top
:
15
px
;
margin
-
top
:
15
px
;
width
:
576
px
;
width
:
576
px
;
height
:
415
px
;
height
:
415
px
;
border
-
radius
:
4
px
;
border
-
radius
:
10
px
;
box
-
shadow
:
0
px
0
px
20
px
0
px
rgba
(
25
,
69
,
130
,
0.1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
.
right
-
box2
-
main
{
.
right
-
box2
-
main
{
width
:
576
px
;
width
:
576
px
;
...
...
src/views/coopRestriction/commonPrompt/index.vue
0 → 100644
浏览文件 @
c5dda08b
<
template
>
<el-tooltip
effect=
"dark"
:content=
"content"
popper-class=
"common-prompt-popper"
placement=
"top"
:show-after=
"500"
>
<div
class=
"text-ellipsis"
>
<slot>
{{
content
}}
</slot>
</div>
</el-tooltip>
</
template
>
<
script
setup
>
defineProps
({
content
:
{
type
:
String
,
default
:
""
}
});
</
script
>
<
style
scoped
>
.text-ellipsis
{
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
width
:
100%
;
cursor
:
pointer
;
}
</
style
>
<
style
>
.common-prompt-popper.el-popper
{
padding
:
8px
16px
!important
;
border-radius
:
10px
!important
;
background-color
:
rgb
(
59
,
65
,
75
)
!important
;
font-size
:
16px
!important
;
font-weight
:
400
!important
;
font-family
:
"Microsoft YaHei"
!important
;
line-height
:
30px
!important
;
color
:
#fff
!important
;
border
:
none
!important
;
}
.common-prompt-popper.el-popper
.el-popper__arrow
::before
{
background-color
:
rgb
(
59
,
65
,
75
)
!important
;
border-color
:
rgb
(
59
,
65
,
75
)
!important
;
}
</
style
>
src/views/coopRestriction/components/askPage/index.vue
浏览文件 @
c5dda08b
差异被折叠。
点击展开。
src/views/coopRestriction/components/dataNew/index.vue
浏览文件 @
c5dda08b
...
@@ -99,12 +99,21 @@
...
@@ -99,12 +99,21 @@
</div>
</div>
</div>
</div>
<div
style=
"margin: 6px 34px 0 23px"
>
<div
style=
"margin: 6px 34px 0 23px"
>
<div
v-for=
"item in riskSignals"
:key=
"item.id"
class=
"right-main"
@
click=
"handleToRiskDetail"
>
<div
v-for=
"item in riskSignals"
:key=
"item.id"
class=
"right-main"
@
click=
"handleToRiskDetail(item)"
>
<div
class=
"main-left"
:class=
"
{ cl4: item.title === '特别重大', cl5: item.title === '重大风险' }">
<div
class=
"main-left"
:class=
"
{ cl4: item.title === '特别重大', cl5: item.title === '重大风险', cl6: item.title === '一般风险' }"
>
{{
item
.
title
}}
{{
item
.
title
}}
</div>
</div>
<div
class=
"main-center"
>
{{
item
.
content
}}
</div>
<div
class=
"item-right"
>
<div
class=
"main-right"
>
{{
item
.
time
}}
</div>
<div
class=
"main-center"
>
<CommonPrompt
:content=
"item.content"
>
{{
item
.
content
}}
</CommonPrompt>
</div>
<div
class=
"main-right"
>
{{
item
.
time
}}
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"right-mainbtn"
@
click=
"handleToMoreRiskSignal"
>
<div
class=
"right-mainbtn"
@
click=
"handleToMoreRiskSignal"
>
...
@@ -118,8 +127,27 @@
...
@@ -118,8 +127,27 @@
<
script
setup
>
<
script
setup
>
import
{
ref
,
onMounted
,
computed
}
from
"vue"
;
import
{
ref
,
onMounted
,
computed
}
from
"vue"
;
import
router
from
"@/router"
;
import
router
from
"@/router"
;
import
{
getCoopRestrictionTrends
}
from
"@/api/coopRestriction/coopRestriction.js"
;
import
{
getCoopRestrictionTrends
,
getCoopRestrictionSignals
}
from
"@/api/coopRestriction/coopRestriction.js"
;
import
defaultImg
from
"./assets/usImg.png"
;
import
defaultImg
from
"./assets/usImg.png"
;
import
CommonPrompt
from
"../../commonPrompt/index.vue"
;
// 合作限制-查询风险信号数据
const
getCoopRestrictionSignalsData
=
async
()
=>
{
try
{
const
res
=
await
getCoopRestrictionSignals
({
moduleId
:
"0106"
});
if
(
res
&&
res
.
code
===
200
)
{
riskSignals
.
value
=
(
res
.
data
||
[]).
map
(
item
=>
({
id
:
item
.
signalId
,
title
:
item
.
signalLevel
,
content
:
item
.
signalTitle
,
time
:
item
.
signalTime
}));
}
}
catch
(
error
)
{
console
.
error
(
"获取合作限制风险信号数据失败:"
,
error
);
}
};
const
coopRestrictionTrends
=
ref
([]);
const
coopRestrictionTrends
=
ref
([]);
const
carouselRef
=
ref
(
null
);
const
carouselRef
=
ref
(
null
);
...
@@ -161,32 +189,7 @@ const mainTrend = computed(() => {
...
@@ -161,32 +189,7 @@ const mainTrend = computed(() => {
});
});
// 右侧风险信号列表
// 右侧风险信号列表
const
riskSignals
=
ref
([
const
riskSignals
=
ref
([]);
{
id
:
1
,
title
:
"特别重大"
,
content
:
"保护美国资金与专业知识免受敌对研究利用法案"
,
time
:
"一天前"
},
{
id
:
2
,
title
:
"特别重大"
,
content
:
"美国国土安全部终止哈佛大学SEVP认证"
,
time
:
"一天前"
},
{
id
:
3
,
title
:
"重大风险"
,
content
:
"众议院“美中战略竞争特别委员会”向国会提..."
,
time
:
"一天前"
},
{
id
:
4
,
title
:
"重大风险"
,
content
:
'2026财年拨款法案要求重启"中国行动计划"'
,
time
:
"一天前"
}
]);
// 点击查看详情
// 点击查看详情
const
handleClickToDetail
=
(
item
)
=>
{
const
handleClickToDetail
=
(
item
)
=>
{
...
@@ -201,8 +204,11 @@ const handleClickToDetail = (item) => {
...
@@ -201,8 +204,11 @@ const handleClickToDetail = (item) => {
};
};
// 点击风险信号详情
// 点击风险信号详情
const
handleToRiskDetail
=
()
=>
{
const
handleToRiskDetail
=
(
item
)
=>
{
const
curRoute
=
router
.
resolve
(
"/cooperationRestrictions/detail"
);
const
curRoute
=
router
.
resolve
({
path
:
"/cooperationRestrictions/detail"
,
query
:
{
id
:
item
.
id
},
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
window
.
open
(
curRoute
.
href
,
"_blank"
);
};
};
...
@@ -215,6 +221,8 @@ const handleToMoreRiskSignal = () => {
...
@@ -215,6 +221,8 @@ const handleToMoreRiskSignal = () => {
onMounted
(()
=>
{
onMounted
(()
=>
{
// 合作限制-最新动态数据-获取数据
// 合作限制-最新动态数据-获取数据
getCoopRestrictionTrendsData
();
getCoopRestrictionTrendsData
();
// 合作限制-风险信号数据-获取数据
getCoopRestrictionSignalsData
();
});
});
</
script
>
</
script
>
...
@@ -522,25 +530,40 @@ onMounted(() => {
...
@@ -522,25 +530,40 @@ onMounted(() => {
background-color
:
rgba
(
255
,
247
,
230
,
1
);
background-color
:
rgba
(
255
,
247
,
230
,
1
);
color
:
rgba
(
250
,
140
,
22
,
1
);
color
:
rgba
(
250
,
140
,
22
,
1
);
}
}
.main-center
{
.cl6
{
width
:
347px
;
background-color
:
rgba
(
246
,
255
,
237
,
1
);
height
:
30px
;
color
:
rgba
(
82
,
196
,
26
,
1
);
font-size
:
16px
;
font-weight
:
400
;
font-family
:
"Microsoft YaHei"
;
line-height
:
30px
;
color
:
rgb
(
59
,
65
,
75
);
margin-right
:
2px
;
}
}
.main-right
{
.item-right
{
width
:
60px
;
flex
:
1
;
height
:
24px
;
display
:
flex
;
font-size
:
16px
;
justify-content
:
space-between
;
font-weight
:
400
;
align-items
:
center
;
font-family
:
"Microsoft YaHei"
;
overflow
:
hidden
;
line-height
:
24px
;
.main-center
{
color
:
rgb
(
132
,
136
,
142
);
flex
:
1
;
text-align
:
right
;
height
:
30px
;
font-size
:
16px
;
font-weight
:
400
;
font-family
:
"Microsoft YaHei"
;
line-height
:
30px
;
color
:
rgb
(
59
,
65
,
75
);
margin-right
:
10px
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
}
.main-right
{
width
:
100px
;
height
:
24px
;
font-size
:
16px
;
font-weight
:
400
;
font-family
:
"Microsoft YaHei"
;
line-height
:
24px
;
color
:
rgb
(
132
,
136
,
142
);
text-align
:
right
;
flex-shrink
:
0
;
}
}
}
}
}
.right-mainbtn
{
.right-mainbtn
{
...
...
src/views/coopRestriction/components/dataSub/index.vue
浏览文件 @
c5dda08b
差异被折叠。
点击展开。
src/views/coopRestriction/detail/index.vue
浏览文件 @
c5dda08b
差异被折叠。
点击展开。
src/views/exportControl/components/title.vue
浏览文件 @
c5dda08b
...
@@ -21,7 +21,7 @@ defineProps({
...
@@ -21,7 +21,7 @@ defineProps({
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
width
:
100%
;
width
:
100%
;
margin-bottom
:
20
px
;
margin-bottom
:
36
px
;
padding
:
10px
15px
;
padding
:
10px
15px
;
}
}
...
...
src/views/exportControl/index.vue
浏览文件 @
c5dda08b
差异被折叠。
点击展开。
src/views/exportControl/utils/charts.js
浏览文件 @
c5dda08b
...
@@ -928,47 +928,47 @@ export const getMultipleLineChart = obj => {
...
@@ -928,47 +928,47 @@ export const getMultipleLineChart = obj => {
export
const
getMultipleBarChart_m
=
object
=>
{
export
const
getMultipleBarChart_m
=
object
=>
{
const
list
=
_
.
chain
(
object
.
data
).
filter
(
"year"
).
orderBy
(
"year"
,
"asc"
).
value
();
const
list
=
_
.
chain
(
object
.
data
).
filter
(
"year"
).
orderBy
(
"year"
,
"asc"
).
value
();
const
colors
=
[
const
colors
=
[
[
"rgba(45, 123, 248, 1)"
,
"rgba(45, 123, 248, 0)"
],
[
"rgba(45, 123, 248, 1)"
,
"rgba(45, 123, 248, 0
.1
)"
],
[
"rgba(206, 79, 81, 1)"
,
"rgba(206, 79, 81, 0)"
],
[
"rgba(206, 79, 81, 1)"
,
"rgba(206, 79, 81, 0
.1
)"
],
[
"rgba(255, 197, 61, 1)"
,
"rgba(255, 197, 61, 0)"
],
[
"rgba(255, 197, 61, 1)"
,
"rgba(255, 197, 61, 0
.1
)"
],
[
"rgba(255, 182, 193, 1)"
,
"rgba(255, 182, 193, 0)"
],
[
"rgba(255, 182, 193, 1)"
,
"rgba(255, 182, 193, 0
.1
)"
],
[
"rgba(159, 122, 234, 1)"
,
"rgba(159, 122, 234, 0)"
],
[
"rgba(159, 122, 234, 1)"
,
"rgba(159, 122, 234, 0
.1
)"
],
[
"rgba(90, 200, 220, 1)"
,
"rgba(90, 200, 220, 0)"
]
[
"rgba(90, 200, 220, 1)"
,
"rgba(90, 200, 220, 0
.1
)"
]
];
];
const
names
=
_
.
map
(
list
,
"year"
);
const
names
=
_
.
map
(
list
,
"year"
);
const
legendData
=
_
.
chain
(
object
.
domains
)
.
slice
(
0
,
6
)
.
map
((
name
,
index
)
=>
{
return
{
name
:
name
,
itemStyle
:
{
color
:
colors
[
index
%
colors
.
length
][
0
]
// 强制图例使用实色
}
};
})
.
value
();
const
datas
=
_
.
chain
(
object
.
domains
)
const
datas
=
_
.
chain
(
object
.
domains
)
.
s
p
lice
(
0
,
6
)
.
slice
(
0
,
6
)
.
map
((
name
,
index
)
=>
{
.
map
((
name
,
index
)
=>
{
// console.log(_.map(list, name))
;
const
colorPair
=
colors
[
index
%
colors
.
length
]
;
return
{
return
{
name
,
name
,
data
:
_
.
map
(
list
,
`domainNum.
${
name
}
`
),
data
:
_
.
map
(
list
,
`domainNum.
${
name
}
`
),
type
:
"bar"
,
type
:
"bar"
,
color
:
color
s
[
index
%
colors
.
length
][
0
],
color
:
color
Pair
[
0
],
// 图例使用实色
barWidth
:
12
,
barWidth
:
12
,
itemStyle
:
{
itemStyle
:
{
color
:
new
echarts
.
graphic
.
LinearGradient
(
0
,
0
,
0
,
1
,
[
color
:
new
echarts
.
graphic
.
LinearGradient
(
0
,
0
,
0
,
1
,
[
{
offset
:
0
,
color
:
colors
[
index
%
colors
.
length
][
0
]
},
{
offset
:
0
,
color
:
colorPair
[
0
]
},
// 顶部颜色
// { offset: 0.5, color: '#188df0' },
{
offset
:
1
,
color
:
colorPair
[
1
]
}
// 底部颜色
{
offset
:
1
,
color
:
colors
[
index
%
colors
.
length
][
1
]
}
]),
]),
borderRadius
:
[
6
,
6
,
0
,
0
]
borderRadius
:
[
6
,
6
,
0
,
0
]
}
}
};
};
})
})
.
value
();
.
value
();
// console.log("names", names);
let
allValues
=
[];
datas
.
forEach
(
series
=>
{
if
(
series
.
data
)
allValues
.
push
(...
series
.
data
);
});
let
maxVal
=
Math
.
max
(...(
allValues
.
length
>
0
?
allValues
:
[
0
]));
// if (maxVal === 0) maxVal = 100;
// else maxVal = maxVal * 1.2;
// let interval = Math.ceil(maxVal / 5);
// if (interval > 5) interval = Math.ceil(interval / 10) * 10;
// maxVal = interval * 5;
const
option
=
{
const
option
=
{
tooltip
:
{
tooltip
:
{
...
@@ -985,10 +985,19 @@ export const getMultipleBarChart_m = object => {
...
@@ -985,10 +985,19 @@ export const getMultipleBarChart_m = object => {
containLabel
:
true
containLabel
:
true
},
},
legend
:
{
legend
:
{
// type: "scroll",
icon
:
"circle"
,
// show: true,
itemWidth
:
12
,
// orient: "horizontal",
itemHeight
:
12
,
icon
:
"circle"
data
:
legendData
,
textStyle
:
{
fontSize
:
16
,
fontWeight
:
400
,
fontFamily
:
"Microsoft YaHei"
,
color
:
"rgb(95, 101, 108)"
,
lineHeight
:
24
,
verticalAlign
:
"middle"
,
padding
:
[
2
,
0
,
0
,
0
]
// 微调文字位置,使中线对齐
}
},
},
xAxis
:
{
xAxis
:
{
type
:
"category"
,
type
:
"category"
,
...
...
src/views/exportControl/v2.0EntityList/components/sanctionsOverview/components/introductionPage/index.vue
浏览文件 @
c5dda08b
...
@@ -126,7 +126,9 @@
...
@@ -126,7 +126,9 @@
>
>
<
img
:
src
=
"item.imageUrl"
alt
=
""
/>
<
img
:
src
=
"item.imageUrl"
alt
=
""
/>
<
div
class
=
"person-info"
>
<
div
class
=
"person-info"
>
<
div
class
=
"name"
>
{{
item
.
name
}}
<
/div
>
<
CommonPrompt
:
content
=
"item.name"
>
<
span
class
=
"name"
>
{{
item
.
name
}}
<
/span
>
<
/CommonPrompt
>
<
div
class
=
"title1"
>
{{
item
.
position
}}
<
/div
>
<
div
class
=
"title1"
>
{{
item
.
position
}}
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
...
@@ -168,6 +170,7 @@ import defaultIcon from "../../../../../assets/icons/default-avatar.png";
...
@@ -168,6 +170,7 @@ import defaultIcon from "../../../../../assets/icons/default-avatar.png";
import
icon01
from
"../../assets/icon01.png"
;
import
icon01
from
"../../assets/icon01.png"
;
import
icon02
from
"../../assets/icon02.png"
;
import
icon02
from
"../../assets/icon02.png"
;
import
{
ArrowDown
}
from
"@element-plus/icons-vue"
;
import
{
ArrowDown
}
from
"@element-plus/icons-vue"
;
import
CommonPrompt
from
"../../../../../commonPrompt/index.vue"
;
import
{
getEntityInfo
,
getPublishInfo
,
getPublishOrgInfo
,
getEntityUpdateInfo
}
from
"@/api/exportControlV2.0.js"
;
import
{
getEntityInfo
,
getPublishInfo
,
getPublishOrgInfo
,
getEntityUpdateInfo
}
from
"@/api/exportControlV2.0.js"
;
// 处理点击发布机构的方法
// 处理点击发布机构的方法
...
@@ -364,11 +367,13 @@ const handleLoadMoreDynamic = () => {
...
@@ -364,11 +367,13 @@ const handleLoadMoreDynamic = () => {
// 获取实体清单基本信息
// 获取实体清单基本信息
const
entityInfo
=
ref
({
}
);
const
entityInfo
=
ref
({
}
);
const
emit
=
defineEmits
([
'update-entity-info'
]);
const
getEntityInfoFn
=
async
()
=>
{
const
getEntityInfoFn
=
async
()
=>
{
try
{
try
{
const
res
=
await
getEntityInfo
();
const
res
=
await
getEntityInfo
(
"el"
);
if
(
res
&&
res
.
code
===
200
)
{
if
(
res
&&
res
.
code
===
200
)
{
entityInfo
.
value
=
res
.
data
;
entityInfo
.
value
=
res
.
data
;
emit
(
'update-entity-info'
,
res
.
data
);
}
}
}
catch
(
error
)
{
}
catch
(
error
)
{
console
.
error
(
"获取实体清单基本信息失败:"
,
error
);
console
.
error
(
"获取实体清单基本信息失败:"
,
error
);
...
@@ -637,19 +642,19 @@ onMounted(() => {
...
@@ -637,19 +642,19 @@ onMounted(() => {
}
}
}
}
.
key
-
person
-
list
{
.
key
-
person
-
list
{
display
:
flex
;
display
:
grid
;
flex
-
wrap
:
wrap
;
grid
-
template
-
columns
:
minmax
(
0
,
1
fr
)
minmax
(
0
,
1
fr
);
column
-
gap
:
40
px
;
padding
-
left
:
28
px
;
.
person
-
item
{
.
person
-
item
{
width
:
1
85
px
;
width
:
1
00
%
;
cursor
:
pointer
;
cursor
:
pointer
;
display
:
flex
;
display
:
flex
;
align
-
items
:
center
;
align
-
items
:
flex
-
start
;
margin
-
bottom
:
16
px
;
margin
-
bottom
:
16
px
;
&
:
nth
-
child
(
2
n
-
1
)
{
min
-
width
:
0
;
margin
-
left
:
28
px
;
margin
-
right
:
39
px
;
}
img
{
img
{
width
:
48
px
;
width
:
48
px
;
height
:
48
px
;
height
:
48
px
;
...
@@ -659,13 +664,20 @@ onMounted(() => {
...
@@ -659,13 +664,20 @@ onMounted(() => {
flex
-
shrink
:
0
;
flex
-
shrink
:
0
;
}
}
.
person
-
info
{
.
person
-
info
{
flex
:
1
;
min
-
width
:
0
;
overflow
:
hidden
;
.
name
{
.
name
{
display
:
block
;
font
-
size
:
16
px
;
font
-
size
:
16
px
;
font
-
weight
:
700
;
font
-
weight
:
700
;
font
-
family
:
"Microsoft YaHei"
;
font
-
family
:
"Microsoft YaHei"
;
color
:
rgb
(
59
,
65
,
75
);
color
:
rgb
(
59
,
65
,
75
);
margin
-
bottom
:
1
px
;
margin
-
bottom
:
1
px
;
white
-
space
:
nowrap
;
white
-
space
:
nowrap
;
overflow
:
hidden
;
text
-
overflow
:
ellipsis
;
width
:
100
%
;
}
}
.
title1
{
.
title1
{
font
-
size
:
16
px
;
font
-
size
:
16
px
;
...
@@ -673,7 +685,7 @@ onMounted(() => {
...
@@ -673,7 +685,7 @@ onMounted(() => {
font
-
family
:
"Microsoft YaHei"
;
font
-
family
:
"Microsoft YaHei"
;
color
:
rgb
(
95
,
101
,
108
);
color
:
rgb
(
95
,
101
,
108
);
line
-
height
:
1.2
;
line
-
height
:
1.2
;
// white-space: nowrap
;
word
-
break
:
break
-
all
;
}
}
}
}
}
}
...
...
src/views/exportControl/v2.0EntityList/components/sanctionsOverview/index.vue
浏览文件 @
c5dda08b
...
@@ -7,17 +7,19 @@
...
@@ -7,17 +7,19 @@
</div>
</div>
</div>
</div>
<div
class=
"content-box"
>
<div
class=
"content-box"
>
<introductionPage
v-if=
"activeIndex === 0"
></introductionPage>
<introductionPage
v-if=
"activeIndex === 0"
@
update-entity-info=
"(data) => $emit('update-entity-info', data)"
></introductionPage>
<listPage
v-if=
"activeIndex === 1"
></listPage>
<listPage
v-if=
"activeIndex === 1"
></listPage>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
<
script
setup
>
<
script
setup
>
import
{
ref
}
from
'vue'
import
{
ref
,
defineEmits
}
from
'vue'
import
introductionPage
from
"./components/introductionPage/index.vue"
import
introductionPage
from
"./components/introductionPage/index.vue"
import
listPage
from
"./components/listPage/index.vue"
import
listPage
from
"./components/listPage/index.vue"
const
emit
=
defineEmits
([
'update-entity-info'
])
const
activeTab
=
ref
([
"实体清单简介"
,
"实体清单列表"
])
const
activeTab
=
ref
([
"实体清单简介"
,
"实体清单列表"
])
const
activeIndex
=
ref
(
0
)
const
activeIndex
=
ref
(
0
)
...
...
src/views/exportControl/v2.0EntityList/index.vue
浏览文件 @
c5dda08b
...
@@ -31,7 +31,7 @@
...
@@ -31,7 +31,7 @@
</div>
</div>
</div>
</div>
<div
class=
"main"
>
<div
class=
"main"
>
<sanctions-overview
v-if=
"activeIndex === 0"
></sanctions-overview>
<sanctions-overview
v-if=
"activeIndex === 0"
@
update-entity-info=
"handleUpdateEntityInfo"
></sanctions-overview>
<data-statistics
v-if=
"activeIndex === 1"
></data-statistics>
<data-statistics
v-if=
"activeIndex === 1"
></data-statistics>
<deep-mining
v-if=
"activeIndex === 2"
></deep-mining>
<deep-mining
v-if=
"activeIndex === 2"
></deep-mining>
<impact-analysis
v-if=
"activeIndex === 3"
></impact-analysis>
<impact-analysis
v-if=
"activeIndex === 3"
></impact-analysis>
...
@@ -60,12 +60,25 @@ import icon3Active from "../assets/icons/icon3_active.png";
...
@@ -60,12 +60,25 @@ import icon3Active from "../assets/icons/icon3_active.png";
const
headerTitle
=
ref
({
const
headerTitle
=
ref
({
img
:
title
,
//
img: title,
title
:
"实体清单"
,
//
title: "实体清单",
titleEn
:
"Entity List"
,
//
titleEn: "Entity List",
department
:
"美国商务部工业与安全局"
//
department: "美国商务部工业与安全局"
})
})
const
handleUpdateEntityInfo
=
(
data
)
=>
{
if
(
data
)
{
headerTitle
.
value
=
{
...
headerTitle
.
value
,
title
:
data
.
name
,
titleEn
:
data
.
originalName
,
department
:
data
.
orgName
,
departId
:
data
.
orgId
,
img
:
data
.
orgLogoUrl
||
title
}
}
}
const
activeIndex
=
ref
(
0
)
const
activeIndex
=
ref
(
0
)
const
headerNavList
=
ref
([
const
headerNavList
=
ref
([
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论