Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
02a98734
提交
02a98734
authored
1月 17, 2026
作者:
coderBryanFu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
updage
上级
d289a480
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
133 行增加
和
16 行删除
+133
-16
index.js
src/api/zmOverview/allDomains/index.js
+50
-0
index.vue
...ew/components/fourSuppress/components/addDomain/index.vue
+83
-16
没有找到文件。
src/api/zmOverview/allDomains/index.js
0 → 100644
浏览文件 @
02a98734
import
request
from
"@/api/request.js"
;
// 全领域
// 全领域统计
export
function
getAllDomainCount
()
{
return
request
({
method
:
'GET'
,
url
:
`/api/rivalryIndexV2/AllDomainCount`
,
})
}
// 美对华制裁措施数量趋势
export
function
getDomainContainmentTrend
()
{
return
request
({
method
:
'GET'
,
url
:
`/api/rivalryIndexV2/DomainContainmentTrend`
,
})
}
// 最新动态
export
function
getTechnologyGameAnalysis
()
{
return
request
({
method
:
'GET'
,
url
:
`/api/rivalryIndexV2/TechnologyGameAnalysis`
,
})
}
// 领域打压遏制排行
/**
* @param {currentPage, pageSize}
*/
export
function
getDomainContainmentRanking
()
{
return
request
({
method
:
'GET'
,
url
:
`/api/rivalryIndexV2/DomainContainmentRanking`
,
})
}
// 领域打压遏制时间线
/**
* @param {currentPage, pageSize}
*/
export
function
getDomainContainmentTimeline
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/rivalryIndexV2/DomainContainmentTimeline`
,
params
})
}
src/views/ZMOverView/components/fourSuppress/components/addDomain/index.vue
浏览文件 @
02a98734
...
...
@@ -3,23 +3,33 @@
<
template
>
<div
class=
"content-wrapper"
>
<div
class=
"btn-wrapper"
>
<div
class=
"btn-box"
>
<div
v-for=
"(value, index) in buttonsData"
class=
"btn-item"
:style=
"
{ background: value.background }">
<div
:style=
"
{
backgroundImage: 'url(' + `/public/icon/ZM/btn-icon2-${index}.png` + ')'
}"
class="btn-left-text"
>
{{
value
.
text
}}
</div>
<div
class=
"btn-right"
>
{{
value
.
count
+
"次"
}}
<div
class=
"cards-mask"
>
<div
class=
"btn-box"
:style=
"
{ transform: `translateX(-${currentIndex * (307 + 16)}px)` }">
<div
class=
"btn-item-outer"
v-for=
"(item, indexx) in buttonsData"
:key=
"indexx"
>
<div
v-for=
"(value, index) in item"
:key=
"index"
class=
"btn-item"
:style=
"
{ background: value.background }"
>
<div
:style=
"
{
backgroundImage: 'url(' + `/public/icon/ZM/btn-icon2-${index % 10}.png` + ')'
}"
class="btn-left-text"
>
{{
value
.
text
}}
</div>
<div
class=
"btn-right"
>
{{
value
.
count
+
"次"
}}
</div>
</div>
</div>
</div>
</div>
<img
:src=
"leftBtn"
alt=
""
class=
"left-btn"
/>
<img
:src=
"rightBtn"
alt=
""
class=
"right-btn"
/>
<img
:src=
"leftBtn"
alt=
""
@
click=
"prev"
class=
"left-btn"
/>
<img
:src=
"rightBtn"
alt=
""
@
click=
"next"
class=
"right-btn"
/>
</div>
<div
class=
"main-charts"
>
<div
class=
"charts-title"
>
...
...
@@ -198,6 +208,14 @@ import icon3 from "./icon/icon-3.png";
import
icon4
from
"./icon/icon-4.png"
;
import
defaultImg
from
"../../../../assets/images/default-icon2.png"
;
import
{
getAllDomainCount
,
getDomainContainmentTrend
,
getTechnologyGameAnalysis
,
getDomainContainmentRanking
,
getDomainContainmentTimeline
}
from
"@/api/zmOverview/allDomains"
;
const
select1
=
ref
(
""
);
const
rankType
=
ref
(
"institution"
);
const
selectedField
=
ref
(
""
);
...
...
@@ -422,7 +440,10 @@ const fieldOptions = ref([
{
label
:
"人工智能"
,
value
:
"人工智能"
},
{
label
:
"量子科技"
,
value
:
"量子科技"
}
]);
const
buttonsData
=
[
// 全领域统计
const
buttonsData
=
ref
([]);
const
bgList
=
[
{
text
:
"集成电路"
,
count
:
101
,
...
...
@@ -474,6 +495,28 @@ const buttonsData = [
background
:
"linear-gradient(180.00deg, rgba(153, 204, 255, 1),rgba(153, 204, 255, 0.5) 100%)"
}
];
const
handleGetAllDomainCount
=
async
()
=>
{
try
{
const
res
=
await
getAllDomainCount
();
console
.
log
(
"全领域统计"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
buttonsData
.
value
=
res
.
data
.
map
((
item
,
index
)
=>
{
return
{
text
:
item
.
countName
,
count
:
item
.
countNum
,
background
:
bgList
[
index
%
10
].
background
};
});
const
chunkSize
=
2
;
buttonsData
.
value
=
Array
.
from
({
length
:
Math
.
ceil
(
buttonsData
.
value
.
length
/
chunkSize
)
},
(
_
,
i
)
=>
buttonsData
.
value
.
slice
(
i
*
chunkSize
,
i
*
chunkSize
+
chunkSize
)
);
console
.
log
(
"buttonsData"
,
buttonsData
.
value
);
}
}
catch
(
error
)
{}
};
const
box5Data
=
ref
({
title
:
[
"2024-12"
,
...
...
@@ -657,9 +700,24 @@ const getProgressWidth = count => {
return
(
count
/
maxCount
)
*
100
+
"%"
;
};
const
currentIndex
=
ref
(
0
);
const
next
=
()
=>
{
if
(
currentIndex
.
value
<
buttonsData
.
value
.
length
-
5
)
{
currentIndex
.
value
++
;
}
};
const
prev
=
()
=>
{
if
(
currentIndex
.
value
>
0
)
{
currentIndex
.
value
--
;
}
};
onMounted
(()
=>
{
let
Chart
=
getMultiLineChart
(
box5Data
.
value
);
setChart
(
Chart
,
"chartRef"
);
handleGetAllDomainCount
();
});
</
script
>
...
...
@@ -674,10 +732,17 @@ onMounted(() => {
width
:
1601px
;
}
.cards-mask
{
width
:
100%
;
overflow
:
hidden
;
// 仅在这里隐藏超出部分,不影响外层的按钮
}
.btn-box
{
margin-top
:
16px
;
width
:
100%
;
width
:
max-content
;
height
:
176px
;
overflow
:
hidden
;
display
:
flex
;
flex-direction
:
row
;
flex-wrap
:
wrap
;
...
...
@@ -685,6 +750,7 @@ onMounted(() => {
align-items
:
stretch
;
gap
:
16px
;
padding
:
0
;
transition
:
transform
0
.5s
ease
;
// 平滑过渡动画
}
.left-btn
{
...
...
@@ -719,6 +785,7 @@ onMounted(() => {
align-items
:
center
;
justify-content
:
space-between
;
padding
:
0
16px
;
margin-bottom
:
10px
;
.btn-left-text
{
width
:
fit-content
;
min-width
:
60px
;
...
...
@@ -879,7 +946,7 @@ onMounted(() => {
font-size
:
14px
;
font-weight
:
400
;
font-family
:
"Microsoft YaHei"
;
border
:
1px
solid
transparent
;
border
:
1px
solid
transparent
;
&
.tag-blue
{
color
:
rgba
(
9
,
88
,
217
,
1
);
background
:
rgba
(
230
,
244
,
255
,
1
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论