Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
edaa6a3f
提交
edaa6a3f
authored
3月 11, 2026
作者:
coderBryanFu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat:新增通用组件SiderTabs
上级
0bdfab07
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
139 行增加
和
0 行删除
+139
-0
active-icon.svg
src/components/base/SiderTabs/active-icon.svg
+3
-0
index.vue
src/components/base/SiderTabs/index.vue
+83
-0
index.vue
...essRestrictions/marketAccessLayout/overview/301/index.vue
+53
-0
没有找到文件。
src/components/base/SiderTabs/active-icon.svg
0 → 100644
浏览文件 @
edaa6a3f
<svg
viewBox=
"0 0 8 8"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"8.000000"
height=
"8.000000"
fill=
"none"
customFrame=
"#000000"
>
<path
id=
"多边形 2"
d=
"M7.4641 6L0.535898 6L4 0L7.4641 6Z"
fill=
"rgb(255,255,255)"
fill-rule=
"evenodd"
transform=
"matrix(0,1,-1,0,8,0)"
/>
</svg>
src/components/base/SiderTabs/index.vue
浏览文件 @
edaa6a3f
<
template
>
<div
class=
"sider-tabs-wrapper"
>
<div
class=
"sider-item"
:class=
"
{'sider-item-active': sider.active}"
v-for="sider, index in siderList" :key="index"
@click="handleClickSiderItem(sider)"
>
<div
class=
"sider-item-text text-primary-65-clor text-tip-1"
:class=
"
{'sider-item-text-active': sider.active}">
{{
sider
.
name
}}
</div>
<div
class=
"sider-item-icon"
v-show=
"sider.active"
>
<img
src=
"./active-icon.svg"
alt=
""
>
</div>
</div>
</div>
</
template
>
<
script
setup
>
const
props
=
defineProps
({
siderList
:
{
type
:
Array
,
default
:
[
{
name
:
'分析内容1'
,
active
:
true
},
{
name
:
'分析内容2'
,
active
:
false
},
{
name
:
'分析内容3'
,
active
:
false
},
]
},
})
const
emits
=
defineEmits
([
'clickSiderItem'
])
const
handleClickSiderItem
=
(
sider
)
=>
{
emits
(
'clickSiderItem'
,
sider
)
}
</
script
>
<
style
lang=
"scss"
scoped
>
.sider-tabs-wrapper
{
display
:
flex
;
flex-direction
:
column
;
gap
:
16px
;
.sider-item
{
padding
:
4px
28px
;
border-radius
:
16px
;
position
:
relative
;
cursor
:
pointer
;
display
:
flex
;
justify-content
:
center
;
.sider-item-icon
{
position
:
absolute
;
top
:
6px
;
right
:
16px
;
width
:
8px
;
height
:
8px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
}
}
.sider-item-active
{
background
:
var
(
--
color-main-active
);
}
.sider-item-text-active
{
color
:
rgb
(
255
,
255
,
255
)
}
</
style
>
\ No newline at end of file
src/views/marketAccessRestrictions/marketAccessLayout/overview/301/index.vue
浏览文件 @
edaa6a3f
<
template
>
<div
class=
"wrap"
>
<!--
<div
class=
"sider-tab-box"
>
<SiderTabs
:siderList=
"siderTabList"
@
clickSiderItem=
"handleClickTabItem"
/>
</div>
-->
<div
class=
"top"
>
<div
class=
"box1 box"
v-loading=
"box1Loading"
>
<div
class=
"box-header"
>
...
...
@@ -140,6 +143,28 @@ import getSankeyChart from "./utils/sankey";
import
getPieChart
from
"./utils/piechart"
;
import
getbarChart
from
"@/views/bill/utils/barchart"
;
import
{
getSearchCountry
,
getStatArea
,
getStatNum
,
getSearchDirection
}
from
"@/api/marketAccessRestrictions"
;
import
SiderTabs
from
"@/components/base/SiderTabs/index.vue"
// const siderTabList = ref([
//
{
// name: '分析内11111',
// active: false
//
}
,
//
{
// name: '分析内2',
// active: true
//
}
,
//
{
// name: '分析内3',
// active: false
//
}
,
// ])
// const handleClickTabItem = (value) =>
{
// console.log('val',value);
//
}
const
selectYear
=
ref
(
"2025"
);
...
...
@@ -315,6 +340,14 @@ onMounted(() => {
<
style
lang
=
"scss"
scoped
>
.
wrap
{
overflow
:
hidden
;
position
:
relative
;
.
sider
-
tab
-
box
{
position
:
absolute
;
left
:
20
px
;
top
:
20
px
;
}
.
box
{
width
:
792
px
;
height
:
410
px
;
...
...
@@ -323,10 +356,12 @@ onMounted(() => {
box
-
shadow
:
0
px
0
px
20
px
0
px
rgba
(
25
,
69
,
130
,
0.1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
}
.
box
-
header
{
height
:
46
px
;
display
:
flex
;
position
:
relative
;
.
header
-
left
{
margin
-
top
:
18
px
;
width
:
8
px
;
...
...
@@ -334,6 +369,7 @@ onMounted(() => {
border
-
radius
:
0
4
px
4
px
0
;
background
:
var
(
--
color
-
main
-
active
);
}
.
title
{
margin
-
left
:
14
px
;
margin
-
top
:
14
px
;
...
...
@@ -344,6 +380,7 @@ onMounted(() => {
font
-
weight
:
700
;
line
-
height
:
26
px
;
}
.
warning
-
text
{
position
:
absolute
;
top
:
16
px
;
...
...
@@ -357,11 +394,13 @@ onMounted(() => {
letter
-
spacing
:
0
px
;
text
-
align
:
center
;
}
.
header
-
select
-
box
{
position
:
absolute
;
top
:
13
px
;
right
:
121
px
;
}
.
header
-
right
{
position
:
absolute
;
top
:
14
px
;
...
...
@@ -369,9 +408,11 @@ onMounted(() => {
display
:
flex
;
justify
-
content
:
flex
-
end
;
gap
:
4
px
;
.
icon
{
width
:
28
px
;
height
:
28
px
;
img
{
width
:
100
%
;
height
:
100
%
;
...
...
@@ -379,6 +420,7 @@ onMounted(() => {
}
}
}
.
box
-
footer
{
margin
:
5
px
auto
;
width
:
759
px
;
...
...
@@ -393,14 +435,17 @@ onMounted(() => {
border
:
1
px
solid
rgba
(
231
,
243
,
255
,
1
);
border
-
radius
:
4
px
;
background
:
rgba
(
246
,
250
,
255
,
1
);
.
box
-
footer
-
left
{
width
:
19
px
;
height
:
20
px
;
img
{
width
:
100
%
;
height
:
100
%
;
}
}
.
box
-
footer
-
center
{
width
:
666
px
;
height
:
24
px
;
...
...
@@ -412,26 +457,31 @@ onMounted(() => {
letter
-
spacing
:
0
px
;
text
-
align
:
justify
;
}
.
box
-
footer
-
right
{
width
:
24
px
;
height
:
24
px
;
img
{
width
:
100
%
;
height
:
100
%
;
}
}
}
.
top
{
display
:
flex
;
justify
-
content
:
center
;
gap
:
16
px
;
margin
:
16
px
auto
;
.
box1
{
.
box1
-
main
{
height
:
304
px
;
// background: orange;
}
}
.
box2
{
.
box2
-
main
{
height
:
304
px
;
...
...
@@ -439,18 +489,21 @@ onMounted(() => {
}
}
}
.
bottom
{
display
:
flex
;
justify
-
content
:
center
;
gap
:
16
px
;
margin
:
0
auto
;
margin
-
bottom
:
16
px
;
.
box3
{
.
box3
-
main
{
height
:
304
px
;
// background: orange;
}
}
.
box4
{
.
box4
-
main
{
height
:
304
px
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论