Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
2783dc69
提交
2783dc69
authored
1月 13, 2026
作者:
coderBryanFu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update
上级
4a92a5cb
显示空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
406 行增加
和
45 行删除
+406
-45
headerMenu.vue
src/components/headerMenu.vue
+15
-13
main.js
src/main.js
+4
-2
RuleSubsidiaryDialog.vue
src/views/exportControl/components/RuleSubsidiaryDialog.vue
+351
-0
info.vue
src/views/exportControl/components/info.vue
+1
-0
news.vue
src/views/exportControl/components/news.vue
+3
-2
title.vue
src/views/exportControl/components/title.vue
+1
-1
index.vue
src/views/exportControl/index.vue
+31
-27
没有找到文件。
src/components/headerMenu.vue
浏览文件 @
2783dc69
...
...
@@ -56,9 +56,9 @@
</div>
</div>
</div>
<div
class=
"right"
>
<
!--
<
div
class=
"right"
>
<div
class=
"right-header"
>
<div
class=
"title"
>
{{
"风险
检
测"
}}
</div>
<div
class=
"title"
>
{{
"风险
监
测"
}}
</div>
<div
class=
"icon"
>
<img
src=
"@/assets/icons/more.png"
alt=
""
/>
</div>
...
...
@@ -69,7 +69,7 @@
<div
class=
"text"
>
{{
item
.
name
}}
</div>
</div>
</div>
</div>
</div>
-->
</div>
</
template
>
...
...
@@ -101,7 +101,7 @@ const leftList = ref([
path
:
"/billHome"
},
{
name
:
"政令"
,
name
:
"
科技
政令"
,
path
:
"/decree"
},
{
...
...
@@ -111,6 +111,10 @@ const leftList = ref([
{
name
:
"出口管制"
,
path
:
"/exportControl"
},
{
name
:
"科研合作限制"
,
path
:
"/cooperationRestrictions"
},
{
name
:
"投融资限制"
,
...
...
@@ -120,24 +124,22 @@ const leftList = ref([
name
:
"市场准入限制"
,
path
:
"/marketAccessRestrictions"
},
{
name
:
"合作限制"
,
path
:
"/cooperationRestrictions"
},
{
name
:
"规则限制"
,
path
:
"/ruleRestrictions"
},
{
name
:
"美国主要创新主体"
,
path
:
"/innovationSubject"
},
{
name
:
"美国科技人物观点"
,
path
:
"/technologyFigures"
},
{
name
:
"美国科研资助体系"
,
name
:
"美国主要创新主体动向"
,
path
:
"/innovationSubject"
},
{
name
:
"美国科研资助体系分析"
,
path
:
"/scientificFunding"
}
]);
...
...
src/main.js
浏览文件 @
2783dc69
...
...
@@ -10,7 +10,7 @@ import "./styles/scrollbar.css";
import
"./styles/elui.css"
;
import
"./styles/main.css"
;
import
'@/assets/fonts/font.css'
import
zhCn
from
'element-plus/dist/locale/zh-cn.mjs'
const
app
=
createApp
(
App
);
// 注册所有图标
...
...
@@ -21,6 +21,8 @@ for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
// 注册全局函数
app
.
config
.
globalProperties
.
$withFallbackImage
=
withFallbackImage
;
app
.
use
(
router
);
app
.
use
(
ElementPlus
);
app
.
use
(
ElementPlus
,
{
locale
:
zhCn
,
})
app
.
component
(
"CardTitle"
,
CardTitle
);
app
.
mount
(
"#app"
);
src/views/exportControl/components/RuleSubsidiaryDialog.vue
0 → 100644
浏览文件 @
2783dc69
<
template
>
<el-dialog
v-model=
"visible"
width=
"1280px"
:show-close=
"false"
:close-on-click-modal=
"false"
class=
"rule-subsidiary-dialog"
destroy-on-close
top=
"5vh"
draggable
>
<template
#
header
>
<div
class=
"dialog-header"
>
<div
class=
"left-title"
>
<img
:src=
"defaultIcon"
alt=
""
class=
"title-icon"
/>
<span
class=
"company-name"
>
{{
companyName
}}
</span>
<span
class=
"suffix-text"
>
“实体清单50%规则” 涉及实体列表
</span>
</div>
<div
class=
"right-actions"
>
<div
class=
"right-count"
>
共
<span
class=
"highlight"
>
{{
totalCount
}}
</span>
家
</div>
<el-icon
class=
"close-btn"
@
click=
"visible = false"
><Close
/></el-icon>
</div>
</div>
</
template
>
<div
class=
"dialog-content"
>
<el-table
:data=
"tableData"
table-layout=
"fixed"
:row-class-name=
"tableRowClassName"
:header-cell-style=
"{ background: '#fff' }"
style=
"width: 100%"
>
<el-table-column
label=
"实体名称"
min-width=
"300"
>
<
template
#
default=
"{ row }"
>
<div
class=
"entity-name-cell"
>
<el-avatar
class=
"avatar"
:size=
"24"
:src=
"row.avatar || defaultIcon"
/>
<div
class=
"name"
:title=
"row.name"
>
{{
row
.
name
}}
</div>
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"涉及领域"
width=
"200"
>
<
template
#
default=
"{ row }"
>
<div
class=
"domain-cell"
>
<el-tag
v-for=
"tag in row.domains"
:key=
"tag"
class=
"domain-tag"
effect=
"plain"
:disable-transitions=
"true"
:style=
"getTagStyle(tag)"
>
{{
tag
}}
</el-tag>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"equityRatio"
label=
"股权占比"
width=
"120"
align=
"center"
/>
<el-table-column
prop=
"location"
label=
"上市地点"
width=
"120"
align=
"center"
/>
<el-table-column
prop=
"revenue"
label=
"营收(亿元)"
width=
"120"
align=
"center"
/>
</el-table>
<div
class=
"dialog-footer"
>
<el-pagination
v-model:current-page=
"currentPage"
v-model:page-size=
"pageSize"
:total=
"totalCount"
layout=
"prev, pager, next"
prev-text=
"<"
next-text=
">"
@
current-change=
"handleCurrentChange"
/>
</div>
</div>
</el-dialog>
</template>
<
script
setup
>
import
{
ref
,
defineProps
,
defineEmits
,
computed
,
watch
}
from
"vue"
;
import
{
Close
}
from
"@element-plus/icons-vue"
;
import
defaultIcon
from
"@/assets/icons/default-icon1.png"
;
const
props
=
defineProps
({
modelValue
:
{
type
:
Boolean
,
default
:
false
},
companyName
:
{
type
:
String
,
default
:
""
},
totalCount
:
{
type
:
Number
,
default
:
0
},
dataList
:
{
type
:
Array
,
default
:
()
=>
[]
}
});
const
emit
=
defineEmits
([
"update:modelValue"
]);
const
visible
=
computed
({
get
:
()
=>
props
.
modelValue
,
set
:
val
=>
emit
(
"update:modelValue"
,
val
)
});
const
currentPage
=
ref
(
1
);
const
pageSize
=
ref
(
10
);
const
tableData
=
computed
(()
=>
{
const
start
=
(
currentPage
.
value
-
1
)
*
pageSize
.
value
;
const
end
=
start
+
pageSize
.
value
;
return
props
.
dataList
.
slice
(
start
,
end
).
map
(
item
=>
({
...
item
,
name
:
item
.
orgName
,
domains
:
item
.
techDomains
||
[],
equityRatio
:
item
.
equityRatio
?
(
item
.
equityRatio
*
100
).
toFixed
(
2
)
+
'%'
:
'--'
,
location
:
'--'
,
revenue
:
item
.
revenue
||
'--'
}));
});
const
handleCurrentChange
=
val
=>
{
currentPage
.
value
=
val
;
};
const
tableRowClassName
=
({
rowIndex
})
=>
{
return
rowIndex
%
2
===
0
?
"odd-row"
:
""
;
};
const
getTagStyle
=
tag
=>
{
const
colorPool
=
[
{
color
:
"#CD4246"
,
background
:
"rgba(255, 242, 240, 1)"
,
borderColor
:
"rgba(255, 163, 158, 1)"
},
{
color
:
"#0E78F1"
,
background
:
"rgba(230, 244, 255, 1)"
,
borderColor
:
"rgba(145, 206, 255, 1)"
},
{
color
:
"#722ED1"
,
background
:
"rgba(249, 240, 255, 1)"
,
borderColor
:
"rgba(211, 173, 247, 1)"
},
{
color
:
"#13A8A8"
,
background
:
"rgba(230, 255, 251, 1)"
,
borderColor
:
"rgba(135, 232, 222, 1)"
},
{
color
:
"#FA8C16"
,
background
:
"rgba(255, 247, 230, 1)"
,
borderColor
:
"rgba(255, 213, 145, 1)"
},
{
color
:
"#52C41A"
,
background
:
"rgba(246, 255, 237, 1)"
,
borderColor
:
"rgba(183, 235, 143, 1)"
}
];
let
hash
=
0
;
for
(
let
i
=
0
;
i
<
tag
.
length
;
i
++
)
{
hash
=
tag
.
charCodeAt
(
i
)
+
((
hash
<<
5
)
-
hash
);
}
const
index
=
Math
.
abs
(
hash
)
%
colorPool
.
length
;
return
colorPool
[
index
];
};
</
script
>
<
style
lang=
"scss"
scoped
>
.rule-subsidiary-dialog
{
:deep
(
.el-dialog__header
)
{
margin-right
:
0
;
padding
:
24px
;
border-bottom
:
1px
solid
#edeff2
;
}
:deep
(
.el-dialog__body
)
{
padding
:
0
;
}
}
.dialog-header
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
.left-title
{
display
:
flex
;
align-items
:
center
;
.title-icon
{
width
:
24px
;
height
:
24px
;
margin-right
:
8px
;
}
.company-name
{
font-size
:
18px
;
font-weight
:
700
;
color
:
#3b414b
;
margin-right
:
8px
;
font-family
:
"Microsoft YaHei"
;
}
.suffix-text
{
font-size
:
18px
;
font-weight
:
700
;
color
:
#3b414b
;
font-family
:
"Microsoft YaHei"
;
}
}
.right-actions
{
display
:
flex
;
align-items
:
center
;
.right-count
{
font-size
:
14px
;
color
:
#5f656c
;
font-weight
:
700
;
font-family
:
"Microsoft YaHei"
;
margin-right
:
20px
;
.highlight
{
color
:
#cd4246
;
margin
:
0
4px
;
font-size
:
16px
;
}
}
.close-btn
{
font-size
:
20px
;
color
:
#909399
;
cursor
:
pointer
;
transition
:
color
0
.2s
;
&
:hover
{
color
:
#409eff
;
}
}
}
}
.dialog-content
{
height
:
722px
;
/* Adjusted to fit total 851px approx with header (65px) and footer (64px) */
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-between
;
padding
:
0
24px
;
:deep
(
.el-table
)
{
--el-table-header-bg-color
:
#fff
;
--el-table-border-color
:
transparent
;
--el-table-row-hover-bg-color
:
rgba
(
248
,
249
,
250
,
1
);
}
:deep
(
.el-table__inner-wrapper
::before
)
{
background-color
:
transparent
;
}
:deep
(
.el-table__header-wrapper
th
)
{
height
:
60px
;
background-color
:
#fff
;
font-size
:
16px
;
font-weight
:
700
;
color
:
rgba
(
59
,
65
,
75
,
1
);
font-family
:
"Microsoft YaHei"
;
border-bottom
:
1px
solid
rgba
(
230
,
231
,
232
,
1
);
}
:deep
(
.el-table__header-wrapper
.cell
)
{
line-height
:
22px
;
}
:deep
(
.el-table__row
)
{
height
:
64px
;
}
:deep
(
.el-table__cell
)
{
border-bottom
:
0
;
font-size
:
16px
;
font-weight
:
400
;
color
:
rgb
(
95
,
101
,
108
);
font-family
:
"Microsoft YaHei"
;
}
:deep
(
.odd-row
td
.el-table__cell
)
{
background-color
:
rgba
(
248
,
249
,
250
,
1
);
}
.entity-name-cell
{
display
:
flex
;
align-items
:
center
;
.avatar
{
flex
:
0
0
24px
;
margin-right
:
9px
;
}
.name
{
font-size
:
16px
;
font-weight
:
700
;
color
:
rgba
(
59
,
65
,
75
,
1
);
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
}
}
.domain-cell
{
display
:
flex
;
align-items
:
center
;
gap
:
8px
;
:deep
(
.el-tag
)
{
height
:
auto
;
padding
:
2px
8px
;
border-radius
:
4px
;
font-size
:
14px
;
font-weight
:
400
;
font-family
:
"Microsoft YaHei"
;
line-height
:
20px
;
}
}
}
.dialog-footer
{
height
:
64px
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
border-top
:
1px
solid
#edeff2
;
:deep
(
.el-pagination
)
{
--el-pagination-button-bg-color
:
#fff
;
--el-pagination-hover-color
:
#0e78f1
;
--el-pagination-font-size
:
14px
;
.el-pager
li
{
border
:
1px
solid
#dcdfe6
;
border-radius
:
4px
;
margin
:
0
4px
;
font-weight
:
400
;
color
:
#5f656c
;
min-width
:
32px
;
height
:
32px
;
line-height
:
30px
;
&
.is-active
{
background-color
:
#0e78f1
;
color
:
#fff
;
border-color
:
#0e78f1
;
}
&
:hover:not
(
.is-active
)
{
color
:
#0e78f1
;
border-color
:
#0e78f1
;
}
}
.btn-prev
,
.btn-next
{
border
:
1px
solid
#dcdfe6
;
border-radius
:
4px
;
padding
:
0
;
margin
:
0
4px
;
min-width
:
32px
;
height
:
32px
;
line-height
:
30px
;
text-align
:
center
;
&
:hover
{
color
:
#0e78f1
;
border-color
:
#0e78f1
;
}
&
[
disabled
]
{
border-color
:
#e4e7ed
;
color
:
#c0c4cc
;
}
}
}
}
</
style
>
\ No newline at end of file
src/views/exportControl/components/info.vue
浏览文件 @
2783dc69
...
...
@@ -54,6 +54,7 @@ defineProps({
position
:
relative
;
overflow
:
hidden
;
transition
:
transform
0
.3s
ease
,
box-shadow
0
.3s
ease
;
cursor
:
pointer
;
}
.info-card
:hover
{
...
...
src/views/exportControl/components/news.vue
浏览文件 @
2783dc69
...
...
@@ -14,7 +14,7 @@
<span
class=
"news-source"
>
{{
item
.
source
}}
</span>
</div>
</div>
<el-tooltip
<
!--
<
el-tooltip
effect=
"dark"
:content=
"item.description"
popper-class=
"common-prompt-popper"
...
...
@@ -22,7 +22,8 @@
:show-after=
"500"
>
<div
class=
"news-description"
>
{{
item
.
description
}}
</div>
</el-tooltip>
</el-tooltip>
-->
<div
class=
"news-description"
>
{{
item
.
description
}}
</div>
</div>
</div>
</div>
...
...
src/views/exportControl/components/title.vue
浏览文件 @
2783dc69
...
...
@@ -22,7 +22,7 @@ defineProps({
align-items
:
center
;
width
:
100%
;
margin-bottom
:
36px
;
padding
:
10px
15px
;
padding
:
0
15px
;
}
.color-block
{
...
...
src/views/exportControl/index.vue
浏览文件 @
2783dc69
...
...
@@ -97,8 +97,8 @@
</div>
</div>
<el-row
:gutter=
"
20"
style=
"width: 1600px; margin: 0 auto
"
>
<CustomTitle
id=
"position1"
title=
"最新动态"
style=
"margin-top: 10px"
/>
<el-row
:gutter=
"
15"
style=
"width: 1600px; margin: 0 auto; height: 528px; margin-top: 64px
"
>
<CustomTitle
id=
"position1"
title=
"最新动态"
/>
<el-col
:span=
"16"
>
<custom-container
titleType=
"primary"
title=
"最新出口管制政策"
:titleIcon=
"houseIcon"
height=
"450px"
>
<template
#
header-right
>
...
...
@@ -121,7 +121,7 @@
</div>
<el-carousel
ref=
"carouselRef"
height=
"3
5
0px"
height=
"3
7
0px"
:autoplay=
"true"
:interval=
"3000"
arrow=
"never"
...
...
@@ -245,8 +245,8 @@
</el-col>
</el-row>
<el-row
:gutter=
"
20"
style=
"width: 1600px; margin: 0 auto
"
>
<CustomTitle
id=
"position2"
title=
"资讯要闻"
style=
"margin-top: 10px"
/>
<el-row
:gutter=
"
15"
style=
"width: 1600px; margin: 0 auto; height: 528px; margin-top: 64px
"
>
<CustomTitle
id=
"position2"
title=
"资讯要闻"
/>
<el-col
:span=
"12"
>
<custom-container
title=
"新闻资讯"
:titleIcon=
"newsIcon"
height=
"450px"
>
<
template
#
header-right
>
...
...
@@ -283,8 +283,8 @@
</el-col>
</el-row>
<el-row
:gutter=
"20"
style=
"width: 1600px; margin: 0 auto"
>
<CustomTitle
id=
"position3"
title=
"数据总览"
style=
"margin-top: 10px"
/>
<el-row
:gutter=
"20"
style=
"width: 1600px; margin: 0 auto
; height: 528px; margin-top: 64px
"
>
<CustomTitle
id=
"position3"
title=
"数据总览"
/>
<el-col
:span=
"24"
>
<custom-container
title=
"发布频度"
:titleIcon=
"box3Icon"
height=
"450px"
>
<
template
#
default
>
...
...
@@ -380,7 +380,7 @@
</el-col>
</el-row>
<el-row
:gutter=
"20"
style=
"width: 1600px; margin: 0 auto"
>
<el-row
:gutter=
"20"
style=
"width: 1600px; margin: 0 auto
; height: 505px; margin-top: 16px
"
>
<el-col
:span=
"8"
>
<custom-container
title=
"制裁领域分布"
:titleIcon=
"radarIcon"
height=
"480px"
>
<
template
#
header-right
>
...
...
@@ -397,12 +397,7 @@
<div
style=
"display: flex; align-items: center; gap: 16px"
>
<el-checkbox
v-model=
"trendChecked"
label=
"50%规则"
size=
"large"
/>
<el-select
v-model=
"selectedEntityId"
placeholder=
"请选择清单类型"
style=
"width: 160px"
>
<el-option
v-for=
"item in infoList"
:key=
"item.id"
:label=
"item.nameZh"
:value=
"item.id"
/>
<el-option
v-for=
"item in infoList"
:key=
"item.id"
:label=
"item.nameZh"
:value=
"item.id"
/>
</el-select>
</div>
</
template
>
...
...
@@ -413,7 +408,7 @@
</el-col>
</el-row>
<el-row
:gutter=
"20"
style=
"width: 1600px; margin: 0 auto"
>
<el-row
:gutter=
"20"
style=
"width: 1600px; margin: 0 auto
; margin-top: 39px
"
>
<CustomTitle
id=
"position4"
title=
"资源库"
style=
"margin-top: 0px"
/>
<div
class=
"resource-tabs"
>
<div
...
...
@@ -670,7 +665,7 @@
</
template
>
</el-row>
</div>
<el-dialog
v-model=
"dialogVisible"
width=
"800"
:before-close=
"handleClose"
>
<
!-- <
el-dialog v-model="dialogVisible" width="800" :before-close="handleClose">
<template #title>
<div class="dialog-title">50%规则子企业</div>
</template>
...
...
@@ -696,7 +691,13 @@
<el-button type="primary" @click="dialogVisible = false"> 确定 </el-button>
</div>
</template>
</el-dialog>
</el-dialog> -->
<RuleSubsidiaryDialog
v-model=
"dialogVisible"
:company-name=
"currentRuleCompany"
:total-count=
"currentRuleCount"
:data-list=
"currentOrgList"
/>
</div>
<el-dialog
v-model=
"mediaVisible"
title=
"社交媒体信息"
width=
"500"
:before-close=
"handleMediaClose"
>
<div
class=
"dialog-content"
>
...
...
@@ -737,7 +738,7 @@ import CustomTitle from "./components/title.vue";
import
NewsList
from
"./components/news.vue"
;
import
MessageBubble
from
"./components/dialog.vue"
;
import
CommonPrompt
from
"./commonPrompt/index.vue"
;
import
RuleSubsidiaryDialog
from
"./components/RuleSubsidiaryDialog.vue"
;
import
trumpAvatar
from
"@/assets/images/icon-trump.png"
;
import
elongAvatar
from
"@/assets/images/icon-elong.png"
;
import
newsIcon
from
"@/assets/images/icon-news.png"
;
...
...
@@ -769,6 +770,10 @@ import {
getExportControlList
}
from
"@/api/exportControl"
;
const
currentRuleCompany
=
ref
(
""
);
const
currentRuleCount
=
ref
(
0
);
const
currentRuleList
=
ref
([]);
const
handleToPosi
=
id
=>
{
const
element
=
document
.
getElementById
(
id
);
if
(
element
&&
homeMainRef
.
value
)
{
...
...
@@ -1139,7 +1144,6 @@ const searchExportControlText = ref("");
const
infoListColor
=
ref
([
"rgba(206, 79, 81, 1)"
,
"rgba(114, 46, 209, 1)"
,
"rgba(132, 136, 142, 1)"
,
"rgba(132, 136, 142, 1)"
]);
const
infoList
=
ref
([]);
// 雷达图
const
domainChecked
=
ref
(
false
);
const
radarOption
=
ref
({
...
...
@@ -1673,7 +1677,6 @@ const handleSanc = item => {
window
.
open
(
route
.
href
,
"_blank"
);
};
// 查看更多风险信号
const
handleToMoreRiskSignal
=
()
=>
{
const
route
=
router
.
resolve
(
"/riskSignal"
);
...
...
@@ -1732,6 +1735,8 @@ const handleClose = () => {
};
const
handleOrgClick
=
item
=>
{
// console.log(item, item.name);
currentRuleCompany
.
value
=
item
.
name
;
currentRuleCount
.
value
=
item
.
ruleOrgCount
;
currentOrgList
.
value
=
item
.
ruleOrgList
;
dialogVisible
.
value
=
true
;
};
...
...
@@ -1888,14 +1893,15 @@ const handleMediaClick = item => {
.box1-bottom
{
padding-left
:
30px
;
height
:
172px
;
padding-top
:
16px
;
box-sizing
:
border-box
;
&
-title
{
font-size
:
16px
;
font-weight
:
700
;
color
:
rgba
(
59
,
65
,
75
,
1
);
margin-bottom
:
15px
;
}
&
-content
{
display
:
flex
;
gap
:
15px
;
...
...
@@ -2266,8 +2272,6 @@ const handleMediaClick = item => {
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
margin-bottom
:
20px
;
.home-main-header-center
{
margin-top
:
51px
;
width
:
960px
;
...
...
@@ -2359,11 +2363,11 @@ const handleMediaClick = item => {
display
:
flex
;
justify-content
:
center
;
gap
:
16px
;
padding
:
30px
0
;
//
padding: 30px 0;
}
.home-main-header-footer-info
{
margin-top
:
3
4
px
;
margin-top
:
3
6
px
;
}
.home-main-header-btn-box
{
...
...
@@ -2418,7 +2422,7 @@ const handleMediaClick = item => {
}
.home-main-center
{
margin-top
:
3
4px
;
margin-top
:
6
4px
;
.center-top
{
height
:
450px
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论