Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
b86e5c64
提交
b86e5c64
authored
4月 22, 2026
作者:
张烨
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat:市场准入限制模块修改
上级
4d67858d
隐藏空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
102 行增加
和
164 行删除
+102
-164
index.vue
src/views/decree/decreeHome/index.vue
+12
-72
RelatedEvent.vue
src/views/marketAccessRestrictions/com/RelatedEvent.vue
+1
-1
index.vue
...views/marketAccessRestrictions/marketAccessHome/index.vue
+28
-29
barChart1.js
...ketAccessRestrictions/marketAccessHome/utils/barChart1.js
+2
-7
radarChart.js
...etAccessRestrictions/marketAccessHome/utils/radarChart.js
+1
-12
index.vue
...tAccessRestrictions/marketAccessLayout/case/232/index.vue
+2
-1
index.vue
...tAccessRestrictions/marketAccessLayout/case/301/index.vue
+2
-1
index.vue
...tAccessRestrictions/marketAccessLayout/case/337/index.vue
+2
-1
index.vue
...ews/marketAccessRestrictions/marketAccessLayout/index.vue
+2
-2
index.vue
...essRestrictions/marketAccessLayout/overview/232/index.vue
+4
-4
index.vue
...essRestrictions/marketAccessLayout/overview/301/index.vue
+5
-5
index.vue
...essRestrictions/marketAccessLayout/overview/337/index.vue
+4
-4
index.vue
...views/marketAccessRestrictions/singleCaseLayout/index.vue
+16
-2
index.vue
...ccessRestrictions/singleCaseLayout/overview/337/index.vue
+21
-23
没有找到文件。
src/views/decree/decreeHome/index.vue
浏览文件 @
b86e5c64
...
...
@@ -7,28 +7,6 @@
<SearchContainer
style=
"margin-bottom: 0; margin-top: 48px; height: fit-content"
v-if=
"containerRef"
placeholder=
"搜索政令"
:containerRef=
"containerRef"
areaName=
"政令"
/>
</div>
<!--
<div
class=
"home-main-header-footer"
v-show=
"!isShow"
>
<div
class=
"home-main-header-footer-item"
>
<div
class=
"item-top"
>
3.8T
</div>
<div
class=
"item-footer"
>
数据量
</div>
</div>
<div
class=
"home-main-header-footer-item"
>
<div
class=
"item-top"
>
28
</div>
<div
class=
"item-footer"
>
科技动向
</div>
</div>
<div
class=
"home-main-header-footer-item"
>
<div
class=
"item-top"
>
326
</div>
<div
class=
"item-footer"
>
总统政令
</div>
</div>
<div
class=
"home-main-header-footer-item"
>
<div
class=
"item-top"
>
341
</div>
<div
class=
"item-footer"
>
通过法案
</div>
</div>
<div
class=
"home-main-header-footer-item"
>
<div
class=
"item-top"
>
285
</div>
<div
class=
"item-footer"
>
分析报告
</div>
</div>
</div>
-->
<SummaryCardsPanel
descriptionText=
"近期美国各联邦政府机构发布涉华政令数量汇总"
:cards=
"keyOrganizationCards"
...
...
@@ -263,18 +241,7 @@
</div>
<div
style=
"flex: auto;"
></div>
<el-checkbox
@
change=
"getDecreeList(1)"
v-model=
"box9Params.isCN"
>
只看涉华政令
</el-checkbox>
<div
class=
"select-box"
>
<el-select
v-model=
"box9Params.sortFun"
@
change=
"getDecreeList(1)"
style=
"width:166px; margin-left:8px;"
>
<
template
#
prefix
>
<div
class=
"icon1"
>
<img
v-if=
"box9Params.sortFun=='1'"
src=
"@/assets/icons/shengxu1.png"
alt=
""
/>
<img
v-else
src=
"@/assets/icons/jiangxu1.png"
alt=
""
/>
</div>
</
template
>
<el-option
label=
"发布时间正序"
value=
"1"
/>
<el-option
label=
"发布时间倒序"
value=
"0"
/>
</el-select>
</div>
<TimeSortSelectBox
style=
"margin-left:12px;"
@
handle-px-change=
"handlePxChange"
></TimeSortSelectBox>
</div>
<div
class=
"home-main-footer-main"
>
<div
class=
"left"
>
...
...
@@ -313,9 +280,9 @@
</div>
<div
class=
"select-main"
>
<el-checkbox-group
class=
"checkbox-group"
v-model=
"activePubTime"
@
change=
"handlePubTimeChange"
>
<el-checkbox
label=
""
class=
"filter-checkbox
"
>
{{ "全部时间" }}
</el-checkbox>
<el-checkbox
v-for=
"time in pubTime"
:key=
"time.id"
:label=
"time.id"
class=
"filter-checkbox
"
>
{{ time.
name
}}
<el-checkbox
class=
"filter-checkbox"
label=
"
"
>
{{ "全部时间" }}
</el-checkbox>
<el-checkbox
class=
"filter-checkbox"
v-for=
"time in pubTime"
:key=
"time.value"
:label=
"time.value
"
>
{{ time.
label
}}
</el-checkbox>
</el-checkbox-group>
</div>
...
...
@@ -387,6 +354,7 @@ import WordCloudChart from "@/components/base/WordCloundChart/index.vue"
import
SimplePagination
from
"@/components/SimplePagination.vue"
;
import
SummaryCardsPanel
from
"@/components/base/SummaryCardsPanel/index.vue"
;
import
AiReport
from
'@/views/marketAccessRestrictions/marketAccessHome/com/AiReport.vue'
;
import
TimeSortSelectBox
from
'@/components/base/TimeSortSelectBox/index.vue'
;
import
TipTab
from
"@/components/base/TipTab/index.vue"
import
{
getDepartmentList
,
...
...
@@ -911,16 +879,8 @@ const handleToSocialDetail = item => {
window
.
open
(
route
.
href
,
"_blank"
);
};
const
pubTime
=
ref
([
{
id
:
"2026"
,
name
:
"2026年"
},
{
id
:
"2025"
,
name
:
"2025年"
},
{
id
:
"2024"
,
name
:
"2024年"
},
{
id
:
"2023"
,
name
:
"2023年"
},
{
id
:
"2022"
,
name
:
"2022年"
},
{
id
:
"2021"
,
name
:
"2021年"
},
{
id
:
"2020"
,
name
:
"2020年"
}
]);
const
activePubTime
=
ref
([
"2026"
]);
const
pubTime
=
getNearYearList
(
7
);
const
activePubTime
=
ref
([
pubTime
[
0
].
value
]);
// 处理发布时间全选逻辑
const
handlePubTimeChange
=
(
event
)
=>
{
if
(
event
.
length
&&
event
[
event
.
length
-
1
]
!==
""
)
{
...
...
@@ -958,11 +918,15 @@ const totalDecreesNum = ref(0);
const
decreeList
=
ref
([]);
// 科技政令库
const
handlePxChange
=
(
event
)
=>
{
box9Params
.
sortFun
=
event
-
1
;
getDecreeList
(
1
)
};
const
box9Params
=
reactive
({
page
:
1
,
size
:
10
,
name
:
''
,
sortFun
:
'0'
,
sortFun
:
0
,
isCN
:
false
,
loading
:
false
,
})
...
...
@@ -2075,30 +2039,6 @@ onMounted(async () => {
.search-box
{
width
:
360px
;
}
.select-box
{
margin-left
:
10px
;
height
:
42px
;
box-sizing
:
border-box
;
padding
:
5px
0
;
.icon1
{
width
:
11px
;
height
:
14px
;
font-size
:
0px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
:deep
(
.el-select__selected-item
)
{
text-align
:
center
;
font-size
:
16px
;
font-family
:
Microsoft
YaHei
;
}
}
}
.home-main-footer-main
{
...
...
src/views/marketAccessRestrictions/com/RelatedEvent.vue
浏览文件 @
b86e5c64
<
template
>
<AnalysisBox
:title=
"props.title"
:showAllBtn=
"false"
height=
"auto"
>
<div
class=
"box-main"
>
<el-empty
v-if=
"!props.listData?.length"
description=
"暂无数据"
:image-size=
"
2
00"
/>
<el-empty
v-if=
"!props.listData?.length"
description=
"暂无数据"
:image-size=
"
1
00"
/>
<div
v-for=
"(item, index) in props.listData"
:key=
"index"
class=
"box-item"
>
<div
class=
"item-tag"
:class=
"getClassName(item)"
>
{{
item
.
TYPE
}}
</div>
<div
class=
"item-right"
@
click=
"onNavigateTo(item)"
>
...
...
src/views/marketAccessRestrictions/marketAccessHome/index.vue
浏览文件 @
b86e5c64
...
...
@@ -79,7 +79,7 @@
<
DivideHeader
id
=
"position3"
class
=
"divide-header"
:
titleText
=
"'全景概览'"
><
/DivideHeader
>
<
div
class
=
"center-footer"
>
<
div
class
=
"box5"
>
<
div
class
=
"box5"
v
-
loading
=
"box5Loading"
>
<
OverviewNormalBox
title
=
"数量变化趋势"
width
=
"auto"
height
=
"100%"
>
<
template
#
header
-
icon
>
<
img
style
=
"width: 100%; height: 100%;"
src
=
"./assets/icons/icon2.svg"
alt
=
""
/>
...
...
@@ -102,7 +102,7 @@
<
/div
>
<
/OverviewNormalBox
>
<
/div
>
<
div
class
=
"box6"
>
<
div
class
=
"box6"
v
-
loading
=
"box6Loading"
>
<
OverviewNormalBox
title
=
"领域分布情况"
width
=
"auto"
height
=
"100%"
>
<
template
#
header
-
icon
>
<
img
style
=
"width: 100%; height: 100%;"
src
=
"./assets/icons/icon3.svg"
alt
=
""
/>
...
...
@@ -126,7 +126,7 @@
<
/div
>
<
/div
>
<
div
class
=
"center-footer1"
>
<
div
class
=
"box7"
>
<
div
class
=
"box7"
v
-
loading
=
"box7Loading"
>
<
OverviewNormalBox
title
=
"国家分布情况"
width
=
"auto"
height
=
"100%"
>
<
template
#
header
-
icon
>
<
img
style
=
"width: 100%; height: 100%;"
src
=
"./assets/icons/icon4.svg"
alt
=
""
/>
...
...
@@ -153,7 +153,7 @@
<
/div
>
<
/OverviewNormalBox
>
<
/div
>
<
div
class
=
"box8"
>
<
div
class
=
"box8"
v
-
loading
=
"box8Loading"
>
<
OverviewNormalBox
title
=
"结果分布情况"
width
=
"auto"
height
=
"100%"
>
<
template
#
header
-
icon
>
<
img
style
=
"width: 100%; height: 100%"
src
=
"./assets/icons/icon5.svg"
alt
=
""
/>
...
...
@@ -204,8 +204,9 @@
<
/div
>
<
div
class
=
"left-main"
>
<
el
-
checkbox
-
group
class
=
"check-list"
v
-
model
=
"checkedYearList"
@
change
=
"handleCheckedYearsChange"
>
<
el
-
checkbox
class
=
"check-item"
v
-
for
=
"item in surveyYearList"
:
key
=
"item.id"
:
label
=
"item.id"
>
{{
item
.
name
}}
<
el
-
checkbox
class
=
"check-item"
label
=
""
>
全部时间
<
/el-checkbox
>
<
el
-
checkbox
class
=
"check-item"
v
-
for
=
"item in nearYearList"
:
key
=
"item.value"
:
label
=
"item.value"
>
{{
item
.
label
}}
<
/el-checkbox
>
<
/el-checkbox-group
>
<
/div
>
...
...
@@ -287,7 +288,7 @@ import { navigateToViewRiskSignal } from "@/utils/riskSignalOverviewNavigate";
import
createLineChart
from
"@/views/marketAccessRestrictions/utils/baseLineChart.js"
;
import
createPieChart
from
"@/views/marketAccessRestrictions/utils/basePiechart.js"
;
import
getRadarChart
from
"./utils/radarChart"
;
import
getBarChart
from
"
./utils/barChart1
"
;
import
getBarChart
from
"
@/views/marketAccessRestrictions/marketAccessHome/utils/barChart1.js
"
;
import
AiReport
from
'@/views/marketAccessRestrictions/marketAccessHome/com/AiReport.vue'
;
import
{
getPersonSummaryInfo
}
from
"@/api/common/index"
;
...
...
@@ -316,6 +317,11 @@ const refAiReport6 = ref(null)
const
refAiReport7
=
ref
(
null
)
const
refAiReport8
=
ref
(
null
)
const
box5Loading
=
ref
(
false
);
const
box6Loading
=
ref
(
false
);
const
box7Loading
=
ref
(
false
);
const
box8Loading
=
ref
(
false
);
const
handleToPosi
=
id
=>
{
const
element
=
document
.
getElementById
(
id
);
if
(
element
&&
containerRef
.
value
)
{
...
...
@@ -627,6 +633,7 @@ const box5Ref = ref(null)
const
box5Active
=
ref
(
1
);
const
hadleGetStatNum
=
async
(
event
)
=>
{
if
(
event
)
box5Active
.
value
=
event
;
box5Loading
.
value
=
true
;
try
{
let
byYorM
=
box5Active
.
value
const
res
=
await
getStatNum
({
byYorM
}
);
...
...
@@ -655,6 +662,7 @@ const hadleGetStatNum = async (event) => {
}
refAiReport5
.
value
?.
onDataInfo
({
type
:
"折线图"
,
name
:
"数量变化趋势"
,
data
:
box5ChartData
.
value
}
)
nextTick
(()
=>
{
createLineChart
(
box5Ref
,
box5ChartData
.
value
)
}
)
box5Loading
.
value
=
false
;
}
;
// 领域分布情况
...
...
@@ -672,11 +680,9 @@ const box6Data = ref({
maxNum
:
0
}
);
const
handleGetStatArea
=
async
()
=>
{
const
params
=
{
years
:
box6SelectedYear
.
value
}
;
box6Loading
.
value
=
true
;
try
{
const
res
=
await
getStatArea
(
params
);
const
res
=
await
getStatArea
(
{
years
:
box6SelectedYear
.
value
}
);
console
.
log
(
"领域分布情况"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
const
arr
=
res
.
data
.
map
(
item
=>
item
.
areaname
);
...
...
@@ -735,6 +741,7 @@ const handleGetStatArea = async () => {
box6Data
.
value
.
maxNum
=
0
;
}
refAiReport6
.
value
?.
onDataInfo
({
type
:
"雷达图"
,
name
:
"领域分布情况"
,
data
:
box6Data
.
value
}
)
box6Loading
.
value
=
false
;
}
;
const
handleBox6
=
async
()
=>
{
await
handleGetStatArea
();
...
...
@@ -757,12 +764,12 @@ const box7TipText = computed(() => {
return
""
}
)
const
handleGetBox7Data
=
async
()
=>
{
const
params
=
{
sortCode
:
box7SelectedSurvey
.
value
,
years
:
box7SelectedYear
.
value
}
;
box7Loading
.
value
=
true
try
{
const
res
=
await
getSearchCountry
(
params
);
const
res
=
await
getSearchCountry
({
sortCode
:
box7SelectedSurvey
.
value
,
years
:
box7SelectedYear
.
value
}
);
console
.
log
(
"国家分布情况"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
box7Data
.
title
=
res
.
data
.
map
(
item
=>
{
...
...
@@ -783,6 +790,7 @@ const handleGetBox7Data = async () => {
box7Data
.
data
=
[];
}
refAiReport7
.
value
?.
onDataInfo
({
type
:
"柱状图"
,
name
:
"国家分布情况"
,
data
:
box7Data
}
)
box7Loading
.
value
=
false
;
}
;
const
handleBox7
=
async
()
=>
{
...
...
@@ -807,6 +815,7 @@ const box8TipText = computed(() => {
return
""
}
)
const
handleGetBox8Data
=
async
()
=>
{
box8Loading
.
value
=
true
;
try
{
const
res
=
await
getSearchResult
({
sortCode
:
box8SelectedSurvey
.
value
}
);
console
.
log
(
"结果分布情况"
,
res
);
...
...
@@ -820,6 +829,7 @@ const handleGetBox8Data = async () => {
}
refAiReport8
.
value
?.
onDataInfo
({
type
:
"环形图"
,
name
:
"结果分布情况"
,
data
:
box8Data
.
value
}
)
nextTick
(()
=>
{
createPieChart
(
box8Ref
,
box8Data
.
value
)
}
)
box8Loading
.
value
=
false
;
}
;
// 资源库
...
...
@@ -845,25 +855,14 @@ const handleClickCate = item => {
handleFetchSurveyList
();
}
;
const
releaseTimeList
=
ref
([
{
label
:
"按发布时间倒序"
,
value
:
true
}
,
{
label
:
"按发布时间升序"
,
value
:
false
}
]);
const
isSort
=
ref
(
true
);
const
handlePxChange
=
(
event
)
=>
{
isSort
.
value
=
event
;
isSort
.
value
=
event
==
1
;
currentPage
.
value
=
1
;
handleFetchSurveyList
();
}
;
const
surveyYearList
=
ref
([
{
name
:
"全部时间"
,
id
:
""
}
,
{
name
:
"2025年"
,
id
:
"2025"
}
,
{
name
:
"2024年"
,
id
:
"2024"
}
,
{
name
:
"2023年"
,
id
:
"2023"
}
,
{
name
:
"2022年"
,
id
:
"2022"
}
,
{
name
:
"2021年"
,
id
:
"2021"
}
]);
const
nearYearList
=
getNearYearList
(
7
);
const
checkedYearList
=
ref
([
''
]);
const
handleCheckedYearsChange
=
event
=>
{
if
(
event
.
length
&&
event
[
event
.
length
-
1
]
!==
""
)
{
...
...
src/views/marketAccessRestrictions/marketAccessHome/utils/barChart1.js
浏览文件 @
b86e5c64
...
...
@@ -83,13 +83,8 @@ const getBarChart = (nameList, valueList) => {
xAxis
:
index
,
yAxis
:
valueList
[
index
],
symbol
:
`image://
${
item
.
img
}
`
,
symbolSize
:
20
,
symbolCircle
:
20
,
itemStyle
:
{
borderRadius
:
'50%'
,
borderColor
:
'#fff'
,
borderWidth
:
2
}
symbolSize
:
[
20
,
20
],
symbolOffset
:
[
0
,
10
]
});
});
return
data
;
...
...
src/views/marketAccessRestrictions/marketAccessHome/utils/radarChart.js
浏览文件 @
b86e5c64
const
getRadarChart
=
(
data
)
=>
{
// const indicators = [
// { name: "集成电路", max: 10 },
// { name: "能源领域", max: 10 },
// { name: "量子科技", max: 10 },
// { name: "通信网络", max: 10 },
// { name: "人工智能", max: 10 },
// { name: "生物科技", max: 10 }
// ];
const
indicators
=
data
.
title
.
map
(
item
=>
{
return
{
name
:
item
,
max
:
data
.
maxNum
}
})
const
data337
=
[
9
,
6
,
6
,
6
,
9
,
7
];
const
data301
=
[
5
,
3
,
7
,
8
,
7
,
9
];
const
data232
=
[
4
,
10
,
3
,
4
,
2
,
5
];
const
option
=
{
color
:
[
"rgba(5, 95, 194, 1)"
,
"rgba(250, 140, 22, 1)"
,
"rgba(146, 84, 222, 1)"
],
legend
:
{
top
:
8
,
left
:
30
,
left
:
'center'
,
icon
:
"circle"
,
itemWidth
:
12
,
itemHeight
:
12
,
...
...
src/views/marketAccessRestrictions/marketAccessLayout/case/232/index.vue
浏览文件 @
b86e5c64
...
...
@@ -90,7 +90,7 @@ const filterParty = ref("");
const
filterReason
=
ref
(
""
);
const
isSort
=
ref
(
true
);
const
handlePxChange
=
(
event
)
=>
{
isSort
.
value
=
event
;
isSort
.
value
=
event
==
1
;
currentPage
.
value
=
1
;
handleFetchSurveyList
();
}
;
...
...
@@ -283,6 +283,7 @@ onMounted(async () => {
font
-
family
:
Source
Han
Sans
CN
;
font
-
size
:
16
px
;
color
:
var
(
--
text
-
primary
-
65
-
color
);
font
-
weight
:
400
;
}
}
}
...
...
src/views/marketAccessRestrictions/marketAccessLayout/case/301/index.vue
浏览文件 @
b86e5c64
...
...
@@ -64,7 +64,7 @@ import TimeSortSelectBox from '@/components/base/TimeSortSelectBox/index.vue';
const
searchText
=
ref
(
''
);
// 搜索文本
const
isSort
=
ref
(
true
);
const
handlePxChange
=
(
event
)
=>
{
isSort
.
value
=
event
;
isSort
.
value
=
event
==
1
;
currentPage
.
value
=
1
;
handleFetchSurveyList
();
}
;
...
...
@@ -248,6 +248,7 @@ onMounted(async () => {
font
-
family
:
Source
Han
Sans
CN
;
font
-
size
:
16
px
;
color
:
var
(
--
text
-
primary
-
65
-
color
);
font
-
weight
:
400
;
}
}
}
...
...
src/views/marketAccessRestrictions/marketAccessLayout/case/337/index.vue
浏览文件 @
b86e5c64
...
...
@@ -93,7 +93,7 @@ const filterParty = ref("");
const
filterReason
=
ref
(
""
);
const
isSort
=
ref
(
true
);
const
handlePxChange
=
(
event
)
=>
{
isSort
.
value
=
event
;
isSort
.
value
=
event
==
1
;
currentPage
.
value
=
1
;
handleFetchSurveyList
();
}
;
...
...
@@ -311,6 +311,7 @@ onMounted(async () => {
font
-
family
:
Source
Han
Sans
CN
;
font
-
size
:
16
px
;
color
:
var
(
--
text
-
primary
-
65
-
color
);
font
-
weight
:
400
;
}
}
}
...
...
src/views/marketAccessRestrictions/marketAccessLayout/index.vue
浏览文件 @
b86e5c64
...
...
@@ -92,7 +92,7 @@ const handleClickBtn = item => {
const
codeInfo
=
reactive
({
sortCode
:
route
.
query
.
id
,
sortName
:
"调查
主页
"
,
sortName
:
"调查"
,
sortImageUrl
:
""
,
sortDescription
:
""
,
})
...
...
@@ -102,7 +102,7 @@ const onSurvyInfo = async () => {
if
(
res
.
code
==
200
)
{
Object
.
assign
(
codeInfo
,
res
.
data
)
}
document
.
title
=
codeInfo
.
sortName
;
document
.
title
=
codeInfo
.
sortName
+
'概览'
;
}
onMounted
(()
=>
{
...
...
src/views/marketAccessRestrictions/marketAccessLayout/overview/232/index.vue
浏览文件 @
b86e5c64
...
...
@@ -32,7 +32,7 @@
<
/template
>
<
div
class
=
"box-main"
>
<
div
class
=
"box-head"
ref
=
"chart1"
><
/div
>
<
TipTab
text
=
"
美对华232调查案件的数量变化趋势,
数据来源:美国商务部官网"
style
=
"margin-top: 16px;"
/>
<
TipTab
text
=
"数据来源:美国商务部官网"
style
=
"margin-top: 16px;"
/>
<
AiReport
ref
=
"refAiReport1"
><
/AiReport
>
<
/div
>
<
/AnalysisBox
>
...
...
@@ -46,7 +46,7 @@
<
/template
>
<
div
class
=
"box-main"
>
<
div
class
=
"box-head"
ref
=
"chart2"
><
/div
>
<
TipTab
text
=
"
美对华232调查案件的领域分布情况,数据来源:美国商务部官网"
style
=
"margin-top: -16px;
"
/>
<
TipTab
text
=
"
数据来源:美国商务部官网
"
/>
<
AiReport
ref
=
"refAiReport2"
><
/AiReport
>
<
/div
>
<
/AnalysisBox
>
...
...
@@ -62,7 +62,7 @@
<
/template
>
<
div
class
=
"box-main"
>
<
div
class
=
"box-head"
ref
=
"chart3"
><
/div
>
<
TipTab
text
=
"
美对华232调查案件导致的关税变化分布,数据来源:美国商务部官网"
style
=
"margin-top: -16px;
"
/>
<
TipTab
text
=
"
数据来源:美国商务部官网
"
/>
<
AiReport
ref
=
"refAiReport3"
><
/AiReport
>
<
/div
>
<
/AnalysisBox
>
...
...
@@ -76,7 +76,7 @@
<
/template
>
<
div
class
=
"box-main"
>
<
div
class
=
"box-head"
ref
=
"chart4"
><
/div
>
<
TipTab
text
=
"
美232调查所涉及的国家分布情况,数据来源:美国商务部官网"
style
=
"margin-top: -16px;
"
/>
<
TipTab
text
=
"
数据来源:美国商务部官网
"
/>
<
AiReport
ref
=
"refAiReport4"
><
/AiReport
>
<
/div
>
<
/AnalysisBox
>
...
...
src/views/marketAccessRestrictions/marketAccessLayout/overview/301/index.vue
浏览文件 @
b86e5c64
...
...
@@ -8,7 +8,7 @@
<
/template
>
<
div
class
=
"box-main"
>
<
div
class
=
"box-head"
ref
=
"box1Chart"
><
/div
>
<
TipTab
text
=
"
美对华301调查案件的数量变化趋势,
数据来源:美国贸易代表办公室官网"
style
=
"margin-top: 16px"
/>
<
TipTab
text
=
"数据来源:美国贸易代表办公室官网"
style
=
"margin-top: 16px"
/>
<
AiReport
ref
=
"refAiReport1"
><
/AiReport
>
<
/div
>
<
/AnalysisBox
>
...
...
@@ -22,7 +22,7 @@
<
/template
>
<
div
class
=
"box-main"
>
<
div
class
=
"box-head"
id
=
"box2Chart"
><
/div
>
<
TipTab
text
=
"
美301调查所涉及的国家分布情况,
数据来源:美国贸易代表办公室官网"
style
=
"margin-top: 16px"
/>
<
TipTab
text
=
"数据来源:美国贸易代表办公室官网"
style
=
"margin-top: 16px"
/>
<
AiReport
ref
=
"refAiReport2"
><
/AiReport
>
<
/div
>
<
/AnalysisBox
>
...
...
@@ -33,7 +33,7 @@
<
AnalysisBox
title
=
"调查方向及结果分布"
>
<
div
class
=
"box-main"
>
<
div
class
=
"box-head"
id
=
"box3Chart"
><
/div
>
<
TipTab
text
=
"
美301调查方向及结果分布情况,
数据来源:美国贸易代表办公室官网"
style
=
"margin-top: 16px;"
/>
<
TipTab
text
=
"数据来源:美国贸易代表办公室官网"
style
=
"margin-top: 16px;"
/>
<
AiReport
ref
=
"refAiReport3"
><
/AiReport
>
<
/div
>
<
/AnalysisBox
>
...
...
@@ -47,7 +47,7 @@
<
/template
>
<
div
class
=
"box-main"
>
<
div
class
=
"box-head"
ref
=
"box4Chart"
><
/div
>
<
TipTab
text
=
"
美对华301调查案件的领域分布情况,数据来源:美国贸易代表办公室官网"
style
=
"margin-top: -16px;
"
/>
<
TipTab
text
=
"
数据来源:美国贸易代表办公室官网
"
/>
<
AiReport
ref
=
"refAiReport4"
><
/AiReport
>
<
/div
>
<
/AnalysisBox
>
...
...
@@ -59,7 +59,7 @@
<
script
setup
>
import
{
ref
,
onMounted
,
nextTick
,
reactive
}
from
"vue"
;
import
setChart
from
"@/utils/setChart"
;
import
getBarChart
from
"
./utils/barChart
"
;
import
getBarChart
from
"
@/views/marketAccessRestrictions/marketAccessHome/utils/barChart1.js
"
;
import
getSankeyChart
from
"./utils/sankey"
;
import
{
getSearchCountry
,
...
...
src/views/marketAccessRestrictions/marketAccessLayout/overview/337/index.vue
浏览文件 @
b86e5c64
...
...
@@ -32,7 +32,7 @@
<
/template
>
<
div
class
=
"box-main"
>
<
div
class
=
"box-head"
ref
=
"chart1"
><
/div
>
<
TipTab
text
=
"
美对华337调查案件的数量变化趋势,
数据来源:美国国际贸易委员会官网"
style
=
"margin-top: 16px;"
/>
<
TipTab
text
=
"数据来源:美国国际贸易委员会官网"
style
=
"margin-top: 16px;"
/>
<
AiReport
ref
=
"refAiReport1"
><
/AiReport
>
<
/div
>
<
/AnalysisBox
>
...
...
@@ -46,7 +46,7 @@
<
/template
>
<
div
class
=
"box-main"
>
<
div
class
=
"box-head"
ref
=
"chart2"
><
/div
>
<
TipTab
text
=
"
美对华337调查案件的领域分布情况,数据来源:美国国际贸易委员会官网"
style
=
"margin-top: -16px;
"
/>
<
TipTab
text
=
"
数据来源:美国国际贸易委员会官网
"
/>
<
AiReport
ref
=
"refAiReport2"
><
/AiReport
>
<
/div
>
<
/AnalysisBox
>
...
...
@@ -78,7 +78,7 @@
<
/div
>
<
div
class
=
"map-box-right"
id
=
"chartMap"
><
/div
>
<
/div
>
<
TipTab
text
=
"
美对华337调查案件的中国实体分布情况,
数据来源:美国国际贸易委员会官网"
/>
<
TipTab
text
=
"数据来源:美国国际贸易委员会官网"
/>
<
AiReport
ref
=
"refAiReport3"
><
/AiReport
>
<
/div
>
<
/AnalysisBox
>
...
...
@@ -92,7 +92,7 @@
<
/template
>
<
div
class
=
"box-main"
>
<
div
class
=
"box-head"
ref
=
"chart4"
><
/div
>
<
TipTab
text
=
"
美对华337调查案件的调查结果分布情况,数据来源:美国国际贸易委员会官网"
style
=
"margin-top: -16px;
"
/>
<
TipTab
text
=
"
数据来源:美国国际贸易委员会官网
"
/>
<
AiReport
ref
=
"refAiReport4"
><
/AiReport
>
<
/div
>
<
/AnalysisBox
>
...
...
src/views/marketAccessRestrictions/singleCaseLayout/index.vue
浏览文件 @
b86e5c64
...
...
@@ -26,7 +26,7 @@
</div>
<div
style=
"width:20px; flex:auto;"
></div>
<div
class=
"head-button"
>
<div
class=
"head-button"
@
click=
"handleAnalysisClick()"
>
<div
class=
"button-icon"
>
<img
src=
"./assets/images/btn-icon2.png"
alt=
""
/>
</div>
...
...
@@ -42,13 +42,15 @@
<
script
setup
>
import
{
ref
,
onMounted
,
reactive
}
from
"vue"
;
import
{
ElMessage
}
from
"element-plus"
;
import
{
getSurvyInfo
,
getSearchBlurb
}
from
"@/api/marketAccessRestrictions/index.js"
import
router
from
"@/router"
;
import
NavIcon1
from
"./assets/images/nav-icon1.png"
;
import
NavIcon1Active
from
"./assets/images/nav-icon1-active.png"
;
import
NavIcon3
from
"./assets/images/nav-icon2.png"
;
import
NavIcon3Active
from
"./assets/images/nav-icon2-active.png"
;
import
Img337
from
"./assets/images/337.png"
;
import
{
getSurvyInfo
,
getSearchBlurb
}
from
"@/api/marketAccessRestrictions/index.js"
import
{
useRoute
}
from
"vue-router"
;
const
route
=
useRoute
();
...
...
@@ -62,6 +64,18 @@ const handleClickBtn = index => {
});
};
// 分析报告
const
handleAnalysisClick
=
()
=>
{
ElMessage
.
warning
(
"当前功能正在开发中,敬请期待!"
);
// router.push({
// path: "/writtingAsstaint",
// query: {
// topic: "市场准入限制",
// fileId: route.query.id
// }
// });
};
const
codeInfo
=
reactive
({
sortCode
:
route
.
query
.
id
,
sortName
:
""
,
...
...
src/views/marketAccessRestrictions/singleCaseLayout/overview/337/index.vue
浏览文件 @
b86e5c64
...
...
@@ -56,19 +56,19 @@
</AnalysisBox>
<AnalysisBox
title=
"被告信息"
:showAllBtn=
"false"
height=
"auto"
>
<div
class=
"box3-main"
>
<div
class=
"data-item"
v-for=
"(item, index) in caseList"
:key=
"index"
>
<div
class=
"data-head"
>
{{
item
.
title
}}
</div>
<div
class=
"info-list"
>
<div
class=
"info-item"
v-for=
"(val, idx) in item.companyList"
:key=
"idx"
>
<div
class=
"data-item"
>
<div
class=
"info-list"
v-if=
"caseList.length"
>
<div
class=
"info-item"
v-for=
"(item, index) in caseList"
:key=
"index"
>
<div
class=
"icon"
>
<img
:src=
"
val.logo"
alt=
""
v-if=
"val
.logo"
>
<div
class=
"default-logo"
v-else
>
{{
val
.
COMNAM
?.
substring
(
0
,
1
)
||
''
}}
</div>
<img
:src=
"
item.logo"
alt=
""
v-if=
"item
.logo"
>
<div
class=
"default-logo"
v-else
>
{{
item
.
COMNAM
?.
substring
(
0
,
1
)
||
''
}}
</div>
</div>
<div
class=
"text"
>
<span
class=
"text-click-hover"
@
click=
"handleToInstitution(
val)"
>
{{
val
.
COMNAM
}}
</span>
<span
class=
"text-click-hover"
@
click=
"handleToInstitution(
item)"
>
{{
item
.
COMNAM
}}
</span>
</div>
</div>
</div>
<el-empty
v-else
description=
"暂无数据"
:image-size=
"100"
/>
</div>
</div>
</AnalysisBox>
...
...
@@ -85,8 +85,6 @@ import router from "@/router";
import
RelatedEvent
from
"@/views/marketAccessRestrictions/com/RelatedEvent.vue"
;
import
SurveyAffiche
from
"@/views/marketAccessRestrictions/com/SurveyAffiche.vue"
;
const
tips
=
`Pantech是韩国的一家通信设备公司,曾经是手机制造商,但现在可能已转型为专利持有实体。这类公司常被称为"非执业实体"(NPE)或"专利断言实体"(PAE),通过专利授权和诉讼获取收益。这些企业曾经是行业龙头,但因科技和市场形态巨变,加上自身改革步伐缓慢,经营状况每况愈下。卖掉实体业务部门后,留下来的是高达几万件的专利。`
const
route
=
useRoute
();
const
loading
=
ref
(
false
);
const
baseInfo
=
ref
({});
...
...
@@ -111,20 +109,20 @@ const handleGetSearchBlurb = async () => {
}
// 被告信息分组
if
(
data
.
defendantOrg
)
{
const
groups
=
{};
data
.
defendantOrg
.
forEach
(
item
=>
{
const
companyName
=
item
.
COMPANYNAM
||
"其他相关企业"
;
if
(
!
groups
[
companyName
])
{
groups
[
companyName
]
=
{
title
:
companyName
+
(
companyName
!==
"其他"
?
"及相关企业"
:
""
),
companyList
:
[]
};
}
groups
[
companyName
].
companyList
.
push
(
item
);
});
caseList
.
value
=
Object
.
values
(
groups
);
}
//
if (data.defendantOrg) {
//
const groups = {};
//
data.defendantOrg.forEach(item => {
//
const companyName = item.COMPANYNAM || "其他相关企业";
//
if (!groups[companyName]) {
//
groups[companyName] = {
//
title: companyName + (companyName !== "其他" ? "及相关企业" : ""),
//
companyList: []
//
};
//
}
//
groups[companyName].companyList.push(item);
//
});
// }
caseList
.
value
=
data
.
defendantOrg
||
[];
}
}
catch
(
error
)
{}
loading
.
value
=
false
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论