Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
李娜
/
AutoCountMachine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 30ffdc55
由
LN
编写于
2020-09-18 09:01:05 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
出料模块增加单个机构复位按钮。出口皮带线逻辑优化
1 个父辈
a132a6b2
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
151 行增加
和
52 行删除
RC1266-AutoCountMachine/source/AutoCountClient/FrmOutputEquip.Designer.cs
RC1266-AutoCountMachine/source/AutoCountClient/FrmOutputEquip.cs
RC1266-AutoCountMachine/source/AutoCountClient/记录.txt
RC1266-AutoCountMachine/source/DeviceLibrary/bean/OutputEquip.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/OutputEquip_Partial.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/X_RAY_Equip.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/X_RAY_Equip_Partial.cs
RC1266-AutoCountMachine/source/AutoCountClient/FrmOutputEquip.Designer.cs
查看文件 @
30ffdc5
...
...
@@ -64,6 +64,9 @@
this
.
tabControl1
=
new
System
.
Windows
.
Forms
.
TabControl
();
this
.
tabPage3
=
new
System
.
Windows
.
Forms
.
TabPage
();
this
.
groupBox6
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
btnShelfReset
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnLabelReset
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnMoveReset
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
lblAgvInfo
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
chbPrint
=
new
System
.
Windows
.
Forms
.
CheckBox
();
this
.
btnPrint
=
new
System
.
Windows
.
Forms
.
Button
();
...
...
@@ -747,7 +750,7 @@
this
.
lblThisSta
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblThisSta
.
ForeColor
=
System
.
Drawing
.
Color
.
Red
;
this
.
lblThisSta
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
lblThisSta
.
Location
=
new
System
.
Drawing
.
Point
(
255
,
6
8
);
this
.
lblThisSta
.
Location
=
new
System
.
Drawing
.
Point
(
255
,
11
8
);
this
.
lblThisSta
.
Name
=
"lblThisSta"
;
this
.
lblThisSta
.
Size
=
new
System
.
Drawing
.
Size
(
1032
,
121
);
this
.
lblThisSta
.
TabIndex
=
246
;
...
...
@@ -783,6 +786,9 @@
this
.
groupBox6
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
groupBox6
.
Controls
.
Add
(
this
.
btnShelfReset
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
btnLabelReset
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
btnMoveReset
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
lblAgvInfo
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
chbPrint
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
btnPrint
);
...
...
@@ -805,6 +811,48 @@
this
.
groupBox6
.
TabStop
=
false
;
this
.
groupBox6
.
Text
=
"消息"
;
//
// btnShelfReset
//
this
.
btnShelfReset
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
btnShelfReset
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnShelfReset
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnShelfReset
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnShelfReset
.
Location
=
new
System
.
Drawing
.
Point
(
1010
,
17
);
this
.
btnShelfReset
.
Name
=
"btnShelfReset"
;
this
.
btnShelfReset
.
Size
=
new
System
.
Drawing
.
Size
(
126
,
40
);
this
.
btnShelfReset
.
TabIndex
=
303
;
this
.
btnShelfReset
.
Text
=
"料架模块复位"
;
this
.
btnShelfReset
.
UseVisualStyleBackColor
=
false
;
this
.
btnShelfReset
.
Click
+=
new
System
.
EventHandler
(
this
.
btnShelfReset_Click
);
//
// btnLabelReset
//
this
.
btnLabelReset
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
btnLabelReset
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnLabelReset
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnLabelReset
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnLabelReset
.
Location
=
new
System
.
Drawing
.
Point
(
1142
,
62
);
this
.
btnLabelReset
.
Name
=
"btnLabelReset"
;
this
.
btnLabelReset
.
Size
=
new
System
.
Drawing
.
Size
(
126
,
40
);
this
.
btnLabelReset
.
TabIndex
=
302
;
this
.
btnLabelReset
.
Text
=
"贴标机构复位"
;
this
.
btnLabelReset
.
UseVisualStyleBackColor
=
false
;
this
.
btnLabelReset
.
Click
+=
new
System
.
EventHandler
(
this
.
btnLabelReset_Click
);
//
// btnMoveReset
//
this
.
btnMoveReset
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
btnMoveReset
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnMoveReset
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnMoveReset
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnMoveReset
.
Location
=
new
System
.
Drawing
.
Point
(
1142
,
17
);
this
.
btnMoveReset
.
Name
=
"btnMoveReset"
;
this
.
btnMoveReset
.
Size
=
new
System
.
Drawing
.
Size
(
126
,
40
);
this
.
btnMoveReset
.
TabIndex
=
301
;
this
.
btnMoveReset
.
Text
=
"取放料机构复位"
;
this
.
btnMoveReset
.
UseVisualStyleBackColor
=
false
;
this
.
btnMoveReset
.
Click
+=
new
System
.
EventHandler
(
this
.
btnMoveReset_Click
);
//
// lblAgvInfo
//
this
.
lblAgvInfo
.
AutoSize
=
true
;
...
...
@@ -820,7 +868,7 @@
//
this
.
chbPrint
.
AutoSize
=
true
;
this
.
chbPrint
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
chbPrint
.
Location
=
new
System
.
Drawing
.
Point
(
1062
,
25
);
this
.
chbPrint
.
Location
=
new
System
.
Drawing
.
Point
(
664
,
70
);
this
.
chbPrint
.
Name
=
"chbPrint"
;
this
.
chbPrint
.
Size
=
new
System
.
Drawing
.
Size
(
112
,
24
);
this
.
chbPrint
.
TabIndex
=
299
;
...
...
@@ -925,7 +973,7 @@
//
this
.
chbAutoSend
.
AutoSize
=
true
;
this
.
chbAutoSend
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
chbAutoSend
.
Location
=
new
System
.
Drawing
.
Point
(
906
,
25
);
this
.
chbAutoSend
.
Location
=
new
System
.
Drawing
.
Point
(
508
,
70
);
this
.
chbAutoSend
.
Name
=
"chbAutoSend"
;
this
.
chbAutoSend
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
24
);
this
.
chbAutoSend
.
TabIndex
=
290
;
...
...
@@ -2154,6 +2202,9 @@
internal
System
.
Windows
.
Forms
.
Button
btnZP4
;
internal
System
.
Windows
.
Forms
.
TextBox
txtZP4
;
private
System
.
Windows
.
Forms
.
Label
lblAgvInfo
;
private
System
.
Windows
.
Forms
.
Button
btnShelfReset
;
private
System
.
Windows
.
Forms
.
Button
btnLabelReset
;
private
System
.
Windows
.
Forms
.
Button
btnMoveReset
;
}
}
RC1266-AutoCountMachine/source/AutoCountClient/FrmOutputEquip.cs
查看文件 @
30ffdc5
...
...
@@ -778,6 +778,32 @@ namespace OnlineStore.AutoCountClient
{
AxisMove
(
equipBean
.
LabelZAxis
,
txtZP4
,
equipBean
.
Config
.
LabelZ_P4Speed
);
}
private
void
btnShelfReset_Click
(
object
sender
,
EventArgs
e
)
{
LogUtil
.
info
(
equipBean
.
Name
+
"点击:料架模块复位"
);
if
(
equipBase
.
runStatus
>
(
RobotRunStatus
.
Wait
))
{
equipBean
.
ShelfMoveReset
();
}
}
private
void
btnMoveReset_Click
(
object
sender
,
EventArgs
e
)
{
LogUtil
.
info
(
equipBean
.
Name
+
"点击:取放料机构复位"
);
if
(
equipBase
.
runStatus
>
(
RobotRunStatus
.
Wait
))
{
equipBean
.
MoveReset
();
}
}
private
void
btnLabelReset_Click
(
object
sender
,
EventArgs
e
)
{
LogUtil
.
info
(
equipBean
.
Name
+
"点击:贴标机构复位"
);
if
(
equipBase
.
runStatus
>
(
RobotRunStatus
.
Wait
))
{
equipBean
.
SecMoveReset
();
}
}
}
}
...
...
RC1266-AutoCountMachine/source/AutoCountClient/记录.txt
查看文件 @
30ffdc5
...
...
@@ -107,4 +107,8 @@ IO_Type.TakeCode_Back, IO_Type.TakeCode_Forward
20200911
增加光栅功能,料串进出时屏蔽光栅功能。
光栅功能打开时,收到光栅信号急停。
增加光栅功能开关。
\ No newline at end of file
增加光栅功能开关。
20200917
取料机构取料时,点料机不转动皮带线 ,防止出口有两盘料
\ No newline at end of file
RC1266-AutoCountMachine/source/DeviceLibrary/bean/OutputEquip.cs
查看文件 @
30ffdc5
...
...
@@ -125,18 +125,18 @@ namespace OnlineStore.DeviceLibrary
isInSuddenDown
=
false
;
isNoAirCheck
=
false
;
TimerMaxSeconds
=
0
;
MoveInfo
.
NextMoveStep
(
StepEnum
.
OMR01_MoveZHome
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
WorkLog
(
"取料Z轴原点返回"
);
MoveZAxis
.
HomeMove
(
MoveInfo
);
SecMoveInfo
.
NextMoveStep
(
StepEnum
.
OLR01_LabelZHome
);
SecMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
SecWorkLog
(
"贴标Z轴原点返回,标签吸码停止输出,贴标气缸后退"
);
LabelZAxis
.
HomeMove
(
SecMoveInfo
);
IOMove
(
IO_Type
.
Nozzle_Work
,
IO_VALUE
.
LOW
);
CylinderMove
(
SecMoveInfo
,
IO_Type
.
LablePaste_Forward
,
IO_Type
.
LablePaste_Back
);
MoveReset
();
SecMoveReset
();
ShelfMoveReset
();
isInPro
=
false
;
}
public
void
ShelfMoveReset
()
{
ShelfMoveInfo
.
NextMoveStep
(
StepEnum
.
OBR01_StopUp
);
ShelfWorkLog
(
"阻挡气缸上升"
);
IOMove
(
IO_Type
.
O_ELine_InStop
,
IO_VALUE
.
LOW
);
...
...
@@ -145,9 +145,23 @@ namespace OnlineStore.DeviceLibrary
ShelfMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
O_ELine_InStop
,
IO_VALUE
.
LOW
));
ShelfMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
O_WLine_OutStop
,
IO_VALUE
.
LOW
));
ShelfMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
O_WLine_WorkStop
,
IO_VALUE
.
LOW
));
isInPro
=
false
;
}
public
void
MoveReset
()
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
OMR01_MoveZHome
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
WorkLog
(
"取料Z轴原点返回"
);
MoveZAxis
.
HomeMove
(
MoveInfo
);
}
public
void
SecMoveReset
()
{
SecMoveInfo
.
NextMoveStep
(
StepEnum
.
OLR01_LabelZHome
);
SecMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
SecWorkLog
(
"贴标Z轴原点返回,标签吸码停止输出,贴标气缸后退"
);
LabelZAxis
.
HomeMove
(
SecMoveInfo
);
IOMove
(
IO_Type
.
Nozzle_Work
,
IO_VALUE
.
LOW
);
CylinderMove
(
SecMoveInfo
,
IO_Type
.
LablePaste_Forward
,
IO_Type
.
LablePaste_Back
);
}
protected
override
void
ResetProcess
()
{
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/OutputEquip_Partial.cs
查看文件 @
30ffdc5
...
...
@@ -47,6 +47,16 @@ namespace OnlineStore.DeviceLibrary
}
#
region
取料
internal
bool
IsInGetWare
()
{
if
(
MoveInfo
.
MoveStep
>=
StepEnum
.
OT07_MoveZToP2
&&
MoveInfo
.
MoveStep
<=
StepEnum
.
OT09_MoveZToP1
)
{
return
true
;
}
return
false
;
}
private
bool
IsStartLabel
=
false
;
//当前取的料盘是否开始打印标签
public
override
bool
StartWorking
(
WorkParam
param
)
...
...
@@ -212,30 +222,11 @@ namespace OnlineStore.DeviceLibrary
OT05_GetImage
();
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OT05_GetImage
))
{
//MoveInfo.NextMoveStep(StepEnum.OT06_MoveXToP2);
//WorkLog("取料:取料X轴运动到P2 ");
//MoveXAxis.AbsMove(MoveInfo, Config.GetMoveXP2(MoveInfo.MoveParam.PlateW), Config.MoveX_P2Speed);
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
OT07_MoveZToP2
);
WorkLog
(
"取料:取料Z轴到P2 "
,
0
);
MoveZAxis
.
AbsMove
(
MoveInfo
,
Config
.
GetMoveZP2
(
MoveInfo
.
MoveParam
.
PlateH
),
Config
.
MoveZ_P2Speed
);
CheckStartLabel
();
////TODO 记录信息,判断贴标模块当前空闲,此时可以打印标签(取码气缸前进,打印标签,取码气缸后退)
//if (SecMoveInfo.MoveType.Equals(RobotMoveType.None))
//{
// IsStartLabel = true;
// WorkLog("取料:取料X轴运动到P2 , 贴标模块开始打印标签");
// //TODO
// StartLabelling(MoveInfo.MoveParam);
//}
//else if (MoveInfo.IsTimeOut(120))
//{
// WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveStep + "]" + "等待贴标模块空闲 超时[" + FormUtil.GetSpanStr(MoveInfo.StepSpan()) + "]";
// LogUtil.error(WarnMsg, MoveInfo.ErrorLogType);
// Alarm(AlarmType.IoSingleTimeOut);
//}
CheckStartLabel
();
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OT06_MoveXToP2
))
{
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/X_RAY_Equip.cs
查看文件 @
30ffdc5
...
...
@@ -209,7 +209,7 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
XR02_DoorOpen
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
XR03_LineRun
);
WorkLog
(
" XRay复位: 皮带转动
3
秒"
);
WorkLog
(
" XRay复位: 皮带转动
6
秒"
);
if
(
IOValue
(
IO_Type
.
X_ReelCheck
).
Equals
(
IO_VALUE
.
LOW
))
{
...
...
@@ -220,7 +220,7 @@ namespace OnlineStore.DeviceLibrary
IOMove
(
IO_Type
.
X_MLine_Run
,
IO_VALUE
.
HIGH
);
}
IOMove
(
IO_Type
.
X_OLine_Run
,
IO_VALUE
.
HIGH
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
3
000
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
6
000
));
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
XR03_LineRun
))
{
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/X_RAY_Equip_Partial.cs
查看文件 @
30ffdc5
...
...
@@ -261,10 +261,23 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
XW21_WaitOutNoReel
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
XW22_OutDoorOpen
);
WorkLog
(
"料盘处理:右侧门打开,挡停放行"
,
0
);
CylinderMove
(
MoveInfo
,
IO_Type
.
X_OutDoor_Up
,
IO_Type
.
X_OutDoor_Down
);
CylinderMove
(
MoveInfo
,
IO_Type
.
X_StopCylinder_Down
,
IO_Type
.
X_StopCylinder_Up
);
//判断取料机构是否正转夹料
bool
ingetWare
=
RobotManager
.
robot
.
outputEquip
.
IsInGetWare
();
if
(!
ingetWare
)
{
ClearTimeoutAlarm
(
"取料机构取料完成"
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
XW22_OutDoorOpen
);
WorkLog
(
"料盘处理:右侧门打开,挡停放行"
,
0
);
CylinderMove
(
MoveInfo
,
IO_Type
.
X_OutDoor_Up
,
IO_Type
.
X_OutDoor_Down
);
CylinderMove
(
MoveInfo
,
IO_Type
.
X_StopCylinder_Down
,
IO_Type
.
X_StopCylinder_Up
);
}
else
if
(
MoveInfo
.
IsTimeOut
(
120
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveStep
+
"]"
+
"等待 取料机构取料完成 超时["
+
FormUtil
.
GetSpanStr
(
MoveInfo
.
StepSpan
())
+
"]"
;
LogUtil
.
error
(
WarnMsg
,
SecMoveInfo
.
ErrorLogType
,
SecMoveInfo
.
logSeconds
());
Alarm
(
AlarmType
.
IoSingleTimeOut
);
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
XW22_OutDoorOpen
))
{
...
...
@@ -319,15 +332,15 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
XW26_OutLineStop
))
{
// MoveInfo.NextMoveStep(StepEnum.XW27_OutDoorClose);
// WorkLog("料盘处理:中间皮带线,出口皮带线停止,出口门关闭,挡停下降");
// IOMove(IO_Type.X_MLine_Run, IO_VALUE.LOW);
// IOMove(IO_Type.X_OLine_Run, IO_VALUE.LOW);
// CylinderMove(MoveInfo, IO_Type.X_OutDoor_Down, IO_Type.X_OutDoor_Up);
// CylinderMove(MoveInfo, IO_Type.X_StopCylinder_Up, IO_Type.X_StopCylinder_Down);
//}
//else if (MoveInfo.IsStep(StepEnum.XW27_OutDoorClose))
//{
// MoveInfo.NextMoveStep(StepEnum.XW27_OutDoorClose);
// WorkLog("料盘处理:中间皮带线,出口皮带线停止,出口门关闭,挡停下降");
// IOMove(IO_Type.X_MLine_Run, IO_VALUE.LOW);
// IOMove(IO_Type.X_OLine_Run, IO_VALUE.LOW);
// CylinderMove(MoveInfo, IO_Type.X_OutDoor_Down, IO_Type.X_OutDoor_Up);
// CylinderMove(MoveInfo, IO_Type.X_StopCylinder_Up, IO_Type.X_StopCylinder_Down);
//}
//else if (MoveInfo.IsStep(StepEnum.XW27_OutDoorClose))
//{
TimeSpan
span
=
DateTime
.
Now
-
MoveInfo
.
MoveStartTime
;
runStatus
=
RobotRunStatus
.
Runing
;
MoveInfo
.
EndMove
();
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论