Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica.cloud.web-education-admin
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
提交
议题看板
打开侧边栏
jingqi.liu
pica.cloud.web-education-admin
提交
64d4716f
提交
64d4716f
编写于
11月 11, 2019
作者:
zhentian.jia
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
入口编辑页 对接api
上级
6e260644
变更
3
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
333 行增加
和
76 行删除
+333
-76
filter.js
src/utils/filter.js
+11
-0
edit-entry.vue
src/views/education/edit-entry.vue
+182
-30
entry-manager.vue
src/views/education/entry-manager.vue
+140
-46
未找到文件。
src/utils/filter.js
浏览文件 @
64d4716f
...
...
@@ -270,5 +270,16 @@ const vueFilter = {
list
=
list
.
substring
(
0
,
list
.
length
-
1
);
return
list
},
entryStatusType
:
(
value
)
=>
{
if
(
value
==
1
)
{
return
'草稿'
;
}
else
if
(
value
==
2
)
{
return
'未上架'
;
}
else
if
(
value
==
3
)
{
return
'已上架'
;
}
else
if
(
value
==
4
)
{
return
'已下架'
;
}
}
}
export
default
vueFilter
\ No newline at end of file
src/views/education/edit-entry.vue
浏览文件 @
64d4716f
...
...
@@ -4,8 +4,8 @@
<div
class=
"component-content screenSet"
id=
"screenSet"
>
<div
class=
"header-title"
>
{{
title
}}
</div>
<div
class=
"button-group"
>
<el-button
size=
"small"
@
click=
"complete(
0
)"
>
暂存
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"complete(
1
)"
>
完成
</el-button>
<el-button
size=
"small"
@
click=
"complete(
1
)"
>
暂存
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"complete(
2
)"
>
完成
</el-button>
</div>
<el-form
ref=
"formData"
...
...
@@ -52,9 +52,9 @@
</el-form-item>
<el-form-item
label=
"项目时间:"
required
>
<el-col
:span=
"5"
>
<el-form-item
prop=
"
project
Begintime"
>
<el-form-item
prop=
"
entry
Begintime"
>
<el-date-picker
v-model=
"formData.
project
Begintime"
v-model=
"formData.
entry
Begintime"
size=
"small"
type=
"datetime"
placeholder=
"请选择开始时间"
...
...
@@ -67,9 +67,9 @@
</el-col>
<el-col
class=
"line"
:span=
"1"
>
~
</el-col>
<el-col
:span=
"5"
>
<el-form-item
label
prop=
"
project
Endtime"
>
<el-form-item
label
prop=
"
entry
Endtime"
>
<el-date-picker
v-model=
"formData.
project
Endtime"
v-model=
"formData.
entry
Endtime"
size=
"small"
type=
"datetime"
placeholder=
"请选择结束时间"
...
...
@@ -82,18 +82,18 @@
</el-form-item>
</el-col>
</el-form-item>
<el-form-item
label=
"项目简介:"
prop=
"
project
Intro"
>
<el-form-item
label=
"项目简介:"
prop=
"
entry
Intro"
>
<el-col
:span=
"13"
>
<el-input
size=
"small"
type=
"textarea"
:autosize=
"
{ minRows: 5}"
placeholder="请输入项目简介"
v-model="formData.
project
Intro"
v-model="formData.
entry
Intro"
style="width:83%;"
:disabled="peopleLevel == 'L3'"
>
</el-input>
<span
class=
"word-num"
>
{{
(
formData
.
project
Intro
).
replace
(
/
\s
+/g
,
""
).
length
}}
/200
</span>
<span
class=
"word-num"
>
{{
(
formData
.
entry
Intro
).
replace
(
/
\s
+/g
,
""
).
length
}}
/200
</span>
</el-col>
</el-form-item>
<div
class=
"basic-item-icon"
>
...
...
@@ -266,7 +266,7 @@ export default {
curmbSecond: "
项目组件
",
curmbThird: "
新建入口
",
title: "",
project
Id: null,
entry
Id: null,
peopleLevel: null,
uploadImgMessage: false,
uploadImgMessage2: false,
...
...
@@ -275,26 +275,29 @@ export default {
organizationContent: "
云鹊医
",
formData: {
entryName: "",
project
Begintime: "",
project
Endtime: "",
project
Intro: "",
entry
Begintime: "",
entry
Endtime: "",
entry
Intro: "",
type: 1,
attachmentUrl1: "",
attachmentUrl2: "",
attachmentMore1: {},
attachmentMore2: {},
organizationName: "",
project: []
},
optionsProject: [],
tagsProject: [],
visibleName: false,
entryOptionData: {},
pickerOptions0: {
disabledDate: time => {
if (
this.formData.
project
Endtime != "" &&
this.formData.
project
Endtime != null
this.formData.
entry
Endtime != "" &&
this.formData.
entry
Endtime != null
) {
return (
time.getTime() > new Date(this.formData.
project
Endtime).getTime()
time.getTime() > new Date(this.formData.
entry
Endtime).getTime()
);
}
}
...
...
@@ -302,7 +305,7 @@ export default {
pickerOptions1: {
disabledDate: time => {
return (
time.getTime() < new Date(this.formData.
project
Begintime).getTime()
time.getTime() < new Date(this.formData.
entry
Begintime).getTime()
); //减去一天的时间代表可以选择同一天;
}
},
...
...
@@ -326,14 +329,14 @@ export default {
trigger: "
blur
"
}
],
project
Begintime: [
entry
Begintime: [
{
required: true,
message: "
请选择时间
",
trigger: "
change
"
}
],
project
Endtime: [
entry
Endtime: [
{
required: true,
message: "
请选择时间
",
...
...
@@ -348,7 +351,7 @@ export default {
trigger: "
change
"
}
],
project
Intro: [
entry
Intro: [
{ required: true, message: "
请填写项目简介
", trigger: "
blur
" },
{ min: 1, max: 200, message: "
超出可输入的最大长度
", trigger: "
blur
" }
],
...
...
@@ -366,17 +369,18 @@ export default {
},
created() {
vm = this;
vm.
projectId = vm.getUrlSearch(window.location.href, "
project
Id
");
vm.
entryId = vm.getUrlSearch(window.location.href, "
entry
Id
");
vm.peopleLevel = vm.getUrlSearch(window.location.href, "
level
");
vm.initTitle();
vm.initOption();
vm.getEntryData();
},
mounted: function() {
commonUtil.resizeHeight();
},
methods: {
initTitle() {
if (vm.
project
Id == null) {
if (vm.
entry
Id == null) {
vm.title = "
新建入口
";
vm.curmbThird = "
新建入口
";
} else {
...
...
@@ -503,6 +507,7 @@ export default {
attachmentExt: path.ext,
attachmentSize: path.size
};
console.log("
!!!
" + vm.formData[fileLimit.key]);
vm.$message.success("
上传成功
");
});
}
...
...
@@ -559,7 +564,7 @@ export default {
},
changeOrganizationName() {
let textLength = vm.formData.organizationName.length;
console.log("
文字长度
", textLength);
//
console.log("
文字长度
", textLength);
if (textLength == 0) {
vm.visibleName = true;
} else {
...
...
@@ -568,15 +573,15 @@ export default {
},
tagDrop() {
this.$nextTick(function() {
if(vm.tagsProject.length > 0) {
const ele = document.querySelector(
'.check-project .el-col-10'
);
if
(vm.tagsProject.length > 0) {
const ele = document.querySelector(
"
.
check
-
project
.
el
-
col
-
10
"
);
// console.log('ele',ele);
Sortable.create(ele, {
onEnd({ newIndex, oldIndex }) {
const currRow = vm.tagsProject.splice(oldIndex, 1)[0]
vm.tagsProject.splice(newIndex, 0, currRow)
const currRow = vm.tagsProject.splice(oldIndex, 1)[0]
;
vm.tagsProject.splice(newIndex, 0, currRow)
;
}
})
})
;
}
});
},
...
...
@@ -606,13 +611,160 @@ export default {
vm.formData.project[j] = vm.tagsProject[j].value;
}
},
getEntryData() {
if (vm.entryId == null) {
return;
}
let req = {
entryId: vm.entryId
};
openLoading(vm);
vm.GET("
portal
/
entryInfo
/
getEntry
", req).then(res => {
closeLoading(vm);
if (res.code == "
000000
") {
vm.setEditData(res.data);
vm.entryOptionData = res.data;
console.log("
portalEntryUniInfo
", vm.entryOptionData);
} else {
vm.$message(res.message);
}
});
},
setEditData(data) {
vm.formData = {
entryName: data.portalEntry.entryName,
organizationName: data.portalEntry.organizationName,
entryBegintime: data.portalEntry.entryBegintime,
entryEndtime: data.portalEntry.entryEndtime,
entryIntro: data.portalEntry.entryIntro,
// type: 1,
// attachmentUrl1: "",
// attachmentUrl2: "",
type: data.attachments[1].attachmentType,
attachmentUrl1: data.attachments[0].attachmentUrl,
attachmentUrl2: data.attachments[1].attachmentUrl,
attachmentMore1: {
attachmentName: data.attachments[0].attachmentName,
},
attachmentMore2: {
attachmentName: data.attachments[1].attachmentName,
}
};
},
complete(type) {
console.log("
type
:
" + type);
if (type == 1) {
//1是暂存,2是完成
if (type == 2) {
if (!vm.formData.attachmentUrl1) {
vm.uploadImgMessage = true;
} else {
vm.uploadImgMessage = false;
}
if (!vm.formData.attachmentUrl2) {
vm.uploadImgMessage2 = true;
} else {
vm.uploadImgMessage2 = false;
}
let completeState = vm.submitForm("
formData
");
if (
completeState === true &&
vm.formData.attachmentUrl1 != "" &&
vm.formData.attachmentUrl2 != ""
) {
vm.insertOrUpdate(type);
}
//完成
} else {
//暂存
}
},
insertOrUpdate(isCompleted) {
//option
let portalEntryUniInfo = {};
if (vm.entryId == null) {
portalEntryUniInfo = {
portalEntry: {
entryBegintime: vm.formData.entryBegintime,
entryEndtime: vm.formData.entryEndtime,
entryIntro: vm.formData.entryIntro,
entryName: vm.formData.entryName,
organizationName: vm.formData.organizationName
},
attachments: [
{
attachmentType: 1,
attachmentUrl: vm.formData.attachmentUrl1,
attachmentName: vm.formData.attachmentMore1.attachmentName,
// attachmentExt: vm.formData.attachmentMore1.attachmentExt,
// attachmentSize: vm.formData.attachmentMore1.attachmentSize,
kind: 1,
// seqNo: 1
},
{
attachmentType: vm.formData.type,
attachmentUrl: vm.formData.attachmentUrl2,
attachmentName: vm.formData.attachmentMore2.attachmentName,
// attachmentExt: vm.formData.attachmentMore2.attachmentExt,
// attachmentSize: vm.formData.attachmentMore2.attachmentSize,
kind: 2,
// seqNo: 1
}
],
subprojects: []
};
} else {
portalEntryUniInfo = {
portalEntry: {
createdId: vm.entryOptionData.portalEntry.createdId,
createdName: vm.entryOptionData.portalEntry.createdName,
createdTime: vm.entryOptionData.portalEntry.createdTime,
deleteFlag: vm.entryOptionData.portalEntry.deleteFlag,
entryBegintime: vm.formData.entryBegintime,
entryEndtime: vm.formData.entryEndtime,
entryIntro: vm.formData.entryIntro,
entryName: vm.formData.entryName,
entryStatus: vm.entryOptionData.portalEntry.entryStatus,
id: vm.entryOptionData.portalEntry.id,
// modifiedId: 0,
// modifiedTime: "
2019
-
11
-
11
T05
:
51
:
12.811
Z
",
organizationId: vm.entryOptionData.portalEntry.createdId,
organizationName: vm.formData.organizationName
},
attachments: [
{
attachmentType: 1,
attachmentUrl: vm.formData.attachmentUrl1,
attachmentName: vm.formData.attachmentMore1.attachmentName,
entryId: vm.entryOptionData.portalEntry.id,
id: vm.entryOptionData.portalEntry.id,
kind: 1,
// seqNo: 1
},
{
attachmentType: vm.formData.type,
attachmentUrl: vm.formData.attachmentUrl2,
attachmentName: vm.formData.attachmentMore2.attachmentName,
entryId: vm.entryOptionData.portalEntry.id,
id: vm.entryOptionData.portalEntry.id,
kind: 2,
// seqNo: 1
}
],
subprojects: []
};
}
console.log("
portalEntryUniInfo
", portalEntryUniInfo);
openLoading(vm);
vm.POST(
"
portal
/
entryInfo
/
updateInsertEntry
?
isCompleted
=
" + isCompleted,
portalEntryUniInfo
).then(res => {
closeLoading(vm);
if (res.code == "
000000
") {
vm.$router.push("
entry
-
manager
");
} else {
vm.$message.error(res.message);
}
});
}
}
};
...
...
src/views/education/entry-manager.vue
浏览文件 @
64d4716f
...
...
@@ -2,37 +2,54 @@
<div
class=
"entry-manager"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
></bread-crumb>
<div
class=
"component-content screenSet"
id=
"screenSet"
>
<el-form
:model=
"formInline"
ref=
"formInline"
label-width=
"75px"
class=
"form-inline"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"入口名称:"
>
<el-input
size=
"small"
v-model=
"formInline.name"
placeholder=
"请输入名称"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"2"
></el-col>
<el-col
:span=
"12"
>
<el-button
type=
"primary"
size=
"small"
>
查询
</el-button>
</el-col>
<el-col
:span=
"4"
style=
"padding:0;text-align:right;padding-right:10px;"
>
<el-button
type=
"primary"
size=
"small"
@
click=
"toPage()"
>
新建入口
</el-button>
</el-col>
</el-form>
<el-row>
<el-form
:model=
"formInline"
ref=
"formInline"
label-width=
"75px"
class=
"form-inline"
>
<el-col
:span=
"8"
>
<el-form-item
label=
"入口名称:"
>
<el-input
size=
"small"
v-model=
"formInline.entryName"
placeholder=
"请输入名称"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"16"
style=
"padding:0;text-align:right;padding-right:10px;"
>
<el-button
type=
"primary"
@
click=
"search()"
size=
"small"
>
查询
</el-button>
<el-button
type=
"primary"
@
click=
"resetForm()"
size=
"small"
>
重置
</el-button>
</el-col>
</el-form>
</el-row>
<el-row>
<el-button
class=
"button-jump"
type=
"primary"
size=
"small"
@
click=
"toPage()"
>
新建入口
</el-button>
</el-row>
<el-table
:data=
"tableData"
style=
"width: 100%"
>
<el-table-column
prop=
"id"
label=
"ID编号"
align=
"center"
></el-table-column>
<el-table-column
prop=
"
project"
label=
"入口名称
"
align=
"center"
></el-table-column>
<el-table-column
prop=
"
name"
label=
"创建人
"
align=
"center"
></el-table-column>
<el-table-column
prop=
"create
Time"
label=
"创建时间
"
align=
"center"
></el-table-column>
<el-table-column
prop=
"
desc
"
label=
"入口介绍"
align=
"center"
></el-table-column>
<el-table-column
prop=
"
startTime
"
label=
"开始时间"
align=
"center"
></el-table-column>
<el-table-column
prop=
"en
dTime"
label=
"介绍
时间"
align=
"center"
></el-table-column>
<el-table-column
prop=
"
s
tatus"
label=
"状态"
align=
"center"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
status
|
shieldStatus
}}
</
template
>
<el-table-column
prop=
"
createdTime"
width=
"100"
label=
"入口创建时间
"
align=
"center"
></el-table-column>
<el-table-column
prop=
"
entryName"
label=
"入口名称
"
align=
"center"
></el-table-column>
<el-table-column
prop=
"create
dName"
label=
"创建人
"
align=
"center"
></el-table-column>
<el-table-column
prop=
"
entryIntro
"
label=
"入口介绍"
align=
"center"
></el-table-column>
<el-table-column
prop=
"
entryBegintime"
width=
"100
"
label=
"开始时间"
align=
"center"
></el-table-column>
<el-table-column
prop=
"en
tryEndtime"
width=
"100"
label=
"结束
时间"
align=
"center"
></el-table-column>
<el-table-column
prop=
"
entryS
tatus"
label=
"状态"
align=
"center"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
entryStatus
|
entryStatusType
}}
</
template
>
</el-table-column>
<el-table-column
fixed=
"right"
label=
"操作"
width=
"
3
50"
align=
"center"
>
<el-table-column
fixed=
"right"
label=
"操作"
width=
"
2
50"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"primary"
@
click=
"toPage(scope.row.id)"
size=
"small"
>
编辑
</el-button>
<el-button
type=
"primary"
@
click=
"openDialog('up',scope.row)"
size=
"small"
>
上架
</el-button>
<el-button
type=
"primary"
size=
"small"
>
下架
</el-button>
<el-button
type=
"primary"
size=
"small"
>
删除
</el-button>
<el-button
type=
"primary"
v-show=
"showButton(scope.row.entryStatus,1)"
@
click=
"openDialog('up',scope.row)"
size=
"small"
>
上架
</el-button>
<el-button
type=
"primary"
v-show=
"showButton(scope.row.entryStatus,2)"
@
click=
"changeStatus(scope.row.id, 4)"
size=
"small"
>
下架
</el-button>
<el-button
type=
"primary"
v-show=
"showButton(scope.row.entryStatus,3)"
@
click=
"delEntry(scope.row, 5)"
size=
"small"
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -54,12 +71,20 @@
<p
v-if=
"childrenNum == 0"
class=
"dialog_p"
>
该项目已关联0个子项目
</p>
<p
v-if=
"childrenNum == 0"
class=
"dialog_p"
>
继续上架,将在APP端无法显示该项目
</p>
<span
v-if=
"childrenNum > 0"
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogUp = false"
>
确认上架
</el-button>
<el-button
type=
"primary"
@
click=
"
dialogUp = false"
>
取消
</el-button>
<el-button
@
click=
"dialogUp = false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"
changeStatus(null,3)"
>
确定上架
</el-button>
</span>
<span
v-if=
"childrenNum == 0"
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogUp = false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"dialogUp = false"
>
确定上架
</el-button>
<el-button
@
click=
"changeStatus(null,3)"
>
确认上架
</el-button>
<el-button
type=
"primary"
@
click=
"dialogUp = false"
>
取消
</el-button>
</span>
</el-dialog>
<el-dialog
title=
"确认上架"
:visible
.
sync=
"dialogDel"
width=
"30%"
center
>
<p
class=
"dialog_p"
>
删除后,该项目将不存在
</p>
<p
class=
"dialog_p"
>
同时释放该项目关联的所有子项目
</p>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"changeStatus(null,5)"
>
确认上架
</el-button>
<el-button
type=
"primary"
@
click=
"dialogDel = false"
>
取消
</el-button>
</span>
</el-dialog>
</div>
...
...
@@ -81,25 +106,15 @@ export default {
curmbFirst
:
"入口管理"
,
totalRows
:
0
,
formInline
:
{
n
ame
:
""
,
entryN
ame
:
""
,
pageNo
:
1
,
pageSize
:
10
},
tableData
:
[
{
id
:
123
,
project
:
"小何同学的项目"
,
name
:
"小王同学"
,
createTime
:
"2019-09-09"
,
desc
:
"小王同学"
,
startTime
:
"2019-10-10"
,
endTime
:
"2019-12-10"
,
status
:
1
}
],
tableData
:
[],
dialogUp
:
false
,
dialogDel
:
false
,
childrenNum
:
1
,
scopeRow
:
{}
,
scopeRow
:
{}
};
},
computed
:
{
...
...
@@ -107,11 +122,51 @@ export default {
},
created
()
{
vm
=
this
;
vm
.
search
();
},
mounted
:
function
()
{
commonUtil
.
resizeHeight
();
},
methods
:
{
searchData
()
{
vm
.
formInline
.
pageNo
=
1
;
vm
.
search
();
},
search
()
{
let
req
=
{};
req
=
vm
.
formInline
;
openLoading
(
vm
);
vm
.
GET
(
"portal/entryInfo/getEntryList"
,
req
).
then
(
res
=>
{
closeLoading
(
vm
);
if
(
res
.
code
==
"000000"
)
{
vm
.
tableData
=
res
.
data
.
data
;
vm
.
totalRows
=
res
.
data
.
totalRows
;
}
else
{
vm
.
$message
(
res
.
message
);
}
});
},
showButton
(
status
,
option
)
{
//status 1.草稿,2.未上架,3.已上架,4.已下架
//option 0.编辑,1上架,2下架,3删除
status
=
status
-
1
;
let
showArray
=
[
[
true
,
false
,
false
,
true
],
[
true
,
true
,
false
,
true
],
[
true
,
false
,
true
,
false
],
[
true
,
true
,
false
,
true
]
];
let
showType
=
showArray
[
status
][
option
];
return
showType
;
},
resetForm
()
{
vm
.
formInline
=
{
entryName
:
""
,
pageNo
:
1
,
//当前是第几页
pageSize
:
10
//页面总数
};
vm
.
search
();
},
handleSizeChange
(
val
)
{
console
.
log
(
`每页
${
val
}
条`
);
this
.
formInline
.
pageSize
=
val
;
...
...
@@ -125,12 +180,46 @@ export default {
if
(
id
===
undefined
)
{
this
.
$router
.
push
(
"edit-entry"
);
}
else
{
this
.
$router
.
push
(
"edit-entry?
project
Id="
+
id
);
this
.
$router
.
push
(
"edit-entry?
entry
Id="
+
id
);
}
},
openDialog
(
type
,
row
)
{
openDialog
(
type
,
row
)
{
vm
.
scopeRow
=
row
;
vm
.
dialogUp
=
true
;
},
changeStatus
(
id
,
changeTo
)
{
vm
.
dialogUp
=
false
;
let
req
=
{};
let
entryId
=
id
;
if
(
entryId
==
null
)
{
entryId
=
vm
.
scopeRow
.
id
;
}
openLoading
(
vm
);
vm
.
POST
(
"portal/entryInfo/changeStatus?entryId="
+
entryId
+
"&changeTo="
+
changeTo
,
req
).
then
(
res
=>
{
closeLoading
(
vm
);
if
(
res
.
code
==
"000000"
)
{
vm
.
$message
(
res
.
message
);
}
else
{
vm
.
$message
(
res
.
message
);
}
vm
.
search
();
});
},
delEntry
(
row
,
changeTo
)
{
vm
.
scopeRow
=
row
;
vm
.
$nextTick
(()
=>
{
if
(
vm
.
scopeRow
.
entryStatus
==
4
)
{
vm
.
dialogDel
=
true
;
}
else
{
vm
.
changeStatus
(
vm
.
scopeRow
.
id
,
changeTo
);
}
});
}
}
};
...
...
@@ -143,6 +232,11 @@ export default {
.dialog_p
{
text-align
:
center
;
}
.button-jump
{
margin-right
:
10px
;
margin-bottom
:
10px
;
float
:
right
;
}
}
}
</
style
>
\ No newline at end of file
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录