Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mes-ui
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
周远喜
mes-ui
Commits
5de759c9
Commit
5de759c9
authored
Apr 01, 2020
by
renjintao
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of git.mes123.com:zhouyx/mes-ui
parents
0bde7656
ce4853fc
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
178 additions
and
158 deletions
+178
-158
zh-CN.js
i18n/locale/zh-CN.js
+76
-70
add.vue
pages/aps/aps/add.vue
+53
-27
api.js
pages/aps/aps/api.js
+8
-0
index.vue
pages/basicData/code/index.vue
+1
-1
entryMovie.vue
pages/implement/components/entryMovie.vue
+2
-2
entryPause.vue
pages/implement/components/entryPause.vue
+2
-2
entryrecordMovie.vue
pages/implement/components/entryrecordMovie.vue
+2
-2
entryrecorddata.vue
pages/implement/components/entryrecorddata.vue
+2
-2
entryrecordfiles.vue
pages/implement/components/entryrecordfiles.vue
+2
-2
processRecord.vue
pages/implement/components/processRecord.vue
+2
-2
productReport.vue
pages/implement/components/productReport.vue
+2
-2
sendCheck.vue
pages/implement/components/sendCheck.vue
+1
-1
usercard.vue
pages/implement/components/usercard.vue
+7
-6
index.vue
pages/implement/index.vue
+4
-4
quotationBox.vue
pages/order/quotation/components/quotationBox.vue
+1
-1
index.vue
pages/order/quotation/index.vue
+1
-1
index.vue
pages/processManage/setProcess/index.vue
+7
-28
backCheck.vue
pages/qcimplement/components/backCheck.vue
+1
-1
index.vue
pages/qcimplement/index.vue
+4
-4
No files found.
i18n/locale/zh-CN.js
View file @
5de759c9
...
...
@@ -1019,9 +1019,13 @@ export default {
},
mes_op_task_plan_simulate
:
{
//参数设置的表
id
:
''
,
// partTaskPk: 订单ID,
// opTaskPk: 工单ID,
flog
:
0
,
//参数应用
planMethod
:
"转序规则"
,
// 平行 重叠
op_task_pk
:
'工单编号'
,
part_task_pk
:
'计划编号'
,
task
_s
eq
:
'工序号'
,
task
S
eq
:
'工序号'
,
task_name
:
'工序名称'
,
put_into_qty
:
'投产数量'
,
plan_start
:
'计划排产开始'
,
...
...
@@ -1030,21 +1034,23 @@ export default {
run_time
:
'单件工时'
,
transport_time
:
'转运时间'
,
check_time
:
'检验时间'
,
efficiency
_v
alue
:
'效率系数'
,
efficiency
V
alue
:
'效率系数'
,
singleout
:
'单件产出'
,
first_equip
:
'设备编号'
,
equip_type
:
'设备类型'
,
cal
_i
d
:
'连班策略'
,
cal
I
d
:
'连班策略'
,
machine_rule
:
'设备优先规则'
,
plan_method
:
'重叠转序'
,
over
_t
ime
:
'六日加班'
,
is
d
iscrete
:
'是否离散'
,
discrete
_value
:
'离散值'
,
over
T
ime
:
'六日加班'
,
is
D
iscrete
:
'是否离散'
,
discrete
:
'离散值'
,
multi_machine
:
'多台分配'
,
notes
:
'备注'
,
insert_flag
:
'插单'
,
outside_time
:
'外协时间'
,
discrete_percent
:
'离散百分比%'
,
multipleEquip
:
"是否多台安排设备"
,
// 否 是
multipleEquipIds
:
"设备id"
,
//用英文逗号分隔
taskseq_des
:
''
,
workshopcode
:
''
,
routing_detail_id
:
''
,
...
...
@@ -1052,44 +1058,44 @@ export default {
comb_param
:
''
,
rule_qty
:
''
,
},
routing_header
:{
id
:
''
,
creationTime
:
''
,
creatorUserId
:
''
,
lastModificationTime
:
''
,
lastModifierUserId
:
''
,
deleterUserId
:
''
,
deletionTime
:
''
,
classId
:
'类id'
,
unicode
:
'unicode'
,
name
:
'工艺名称'
,
code
:
'工艺编号'
,
productId
:
'产品id'
,
productName
:
'产品名称'
,
productCode
:
'产品图号'
,
version
:
'工艺文件版本'
,
author
:
'编制人'
,
departmentId
:
''
,
isMain
:
''
,
upId
:
''
,
upDetailId
:
''
,
routingType
:
'工艺类型'
,
status
:
''
,
approvalStatus
:
'状态'
,
remark
:
'工艺说明'
,
roufile
:
'多媒体附件'
,
approvalStatusRemark
:
''
,
auditUserId1
:
'审核人'
,
auditUserId2
:
'审批人'
,
isDeleted
:
''
,
platesnum
:
''
,
isEffect
:
''
,
developmentMode
:
'研制方式'
,
changeOrderCode
:
'更改单编号'
,
changeOrderDate
:
'更改单日期'
,
changeMethod
:
'更改办法'
,
taskType
:
'任务类型'
,
},
routing_header
:
{
id
:
''
,
creationTime
:
''
,
creatorUserId
:
''
,
lastModificationTime
:
''
,
lastModifierUserId
:
''
,
deleterUserId
:
''
,
deletionTime
:
''
,
classId
:
'类id'
,
unicode
:
'unicode'
,
name
:
'工艺名称'
,
code
:
'工艺编号'
,
productId
:
'产品id'
,
productName
:
'产品名称'
,
productCode
:
'产品图号'
,
version
:
'工艺文件版本'
,
author
:
'编制人'
,
departmentId
:
''
,
isMain
:
''
,
upId
:
''
,
upDetailId
:
''
,
routingType
:
'工艺类型'
,
status
:
''
,
approvalStatus
:
'状态'
,
remark
:
'工艺说明'
,
roufile
:
'多媒体附件'
,
approvalStatusRemark
:
''
,
auditUserId1
:
'审核人'
,
auditUserId2
:
'审批人'
,
isDeleted
:
''
,
platesnum
:
''
,
isEffect
:
''
,
developmentMode
:
'研制方式'
,
changeOrderCode
:
'更改单编号'
,
changeOrderDate
:
'更改单日期'
,
changeMethod
:
'更改办法'
,
taskType
:
'任务类型'
,
},
routing_detail
:
{
id
:
''
,
creationTime
:
'创建时间'
,
...
...
@@ -1174,30 +1180,30 @@ export default {
stepContent
:
'工步内容'
,
extend
:
'扩展字段'
,
},
routing_qc_card
:{
id
:
''
,
creationTime
:
'创建时间'
,
creatorUserId
:
'创建人'
,
lastModificationTime
:
'修改时间'
,
lastModifierUserId
:
'修改人'
,
isDeleted
:
'是否删除'
,
deleterUserId
:
'删除人'
,
deletionTime
:
'删除时间'
,
routingHeaderId
:
'工艺'
,
routingDetailId
:
'工序'
,
routingStepId
:
'工步'
,
checkContent
:
'检验内容'
,
checkType
:
'检验标记'
,
checkParams
:
'参数名称'
,
measurementUnit
:
'单位'
,
fillintype
:
'汇报类型'
,
qualityTemplate
:
'模板'
,
isphotograph
:
'是否拍照'
,
status
:
'状态'
,
extend
:
'扩展字段'
,
remark
:
'备注'
,
productionRequirement
:
'生产要求'
,
standard
:
'标准指标'
,
qualityTemplateName
:
'模板文件名称'
,
}
routing_qc_card
:
{
id
:
''
,
creationTime
:
'创建时间'
,
creatorUserId
:
'创建人'
,
lastModificationTime
:
'修改时间'
,
lastModifierUserId
:
'修改人'
,
isDeleted
:
'是否删除'
,
deleterUserId
:
'删除人'
,
deletionTime
:
'删除时间'
,
routingHeaderId
:
'工艺'
,
routingDetailId
:
'工序'
,
routingStepId
:
'工步'
,
checkContent
:
'检验内容'
,
checkType
:
'检验标记'
,
checkParams
:
'参数名称'
,
measurementUnit
:
'单位'
,
fillintype
:
'汇报类型'
,
qualityTemplate
:
'模板'
,
isphotograph
:
'是否拍照'
,
status
:
'状态'
,
extend
:
'扩展字段'
,
remark
:
'备注'
,
productionRequirement
:
'生产要求'
,
standard
:
'标准指标'
,
qualityTemplateName
:
'模板文件名称'
,
}
}
\ No newline at end of file
pages/aps/aps/add.vue
View file @
5de759c9
...
...
@@ -11,33 +11,36 @@
<span
slot=
"close"
>
Off
</span>
</i-switch>
</FormItem>
<FormItem
:label=
"l('cal_id')"
prop=
"cal_id"
>
<Select
v-model=
"entity.cal_id"
style=
"width:150px"
>
<Option
value=
"beijing"
>
策略1
</Option>
<Option
value=
"shanghai"
>
策略2
</Option>
<Option
value=
"shenzhen"
>
策略3
</Option>
<FormItem
:label=
"l('calId')"
prop=
"calId"
>
<Select
v-model=
"entity.calId"
style=
"width:150px"
>
<Option
v-for=
"(item,index) in listCal"
:key=
"index"
:value=
"item.calid"
:label=
"item.calname"
></Option>
</Select>
</FormItem>
<FormItem
:label=
"l('over
_time')"
prop=
"over_t
ime"
>
<i-switch
v-model=
"entity.over
_t
ime"
size=
"large"
>
<FormItem
:label=
"l('over
Time')"
prop=
"overT
ime"
>
<i-switch
v-model=
"entity.over
T
ime"
size=
"large"
>
<span
slot=
"open"
>
On
</span>
<span
slot=
"close"
>
Off
</span>
</i-switch>
</FormItem>
<FormItem
:label=
"l('efficiency
_value')"
prop=
"efficiency_v
alue"
>
<Input
v-model=
"entity.efficiency
_v
alue"
style=
"width:150px"
></Input>
<FormItem
:label=
"l('efficiency
Value')"
prop=
"efficiencyV
alue"
>
<Input
v-model=
"entity.efficiency
V
alue"
style=
"width:150px"
></Input>
</FormItem>
<FormItem
:label=
"l('run_time')"
prop=
"run_time"
>
<InputNumber
v-model=
"entity.run_time"
></InputNumber>
</FormItem>
<FormItem
:label=
"l('is
discrete')"
prop=
"isd
iscrete"
>
<i-switch
v-model=
"entity.is
d
iscrete"
size=
"large"
>
<FormItem
:label=
"l('is
Discrete')"
prop=
"isD
iscrete"
>
<i-switch
v-model=
"entity.is
D
iscrete"
size=
"large"
>
<span
slot=
"open"
>
On
</span>
<span
slot=
"close"
>
Off
</span>
</i-switch>
</FormItem>
<FormItem
:label=
"l('discrete
_value')"
prop=
"discrete_valu
e"
>
<InputNumber
v-model=
"entity.discrete
_value
"
></InputNumber>
<FormItem
:label=
"l('discrete
')"
prop=
"discret
e"
>
<InputNumber
v-model=
"entity.discrete"
></InputNumber>
</FormItem>
<FormItem
:label=
"l('discrete_percent')"
prop=
"discrete_percent"
>
<InputNumber
v-model=
"entity.discrete_percent"
></InputNumber>
...
...
@@ -150,40 +153,63 @@
</div>
</
template
>
<
script
>
import
Api
from
"./api"
;
export
default
{
data
()
{
return
{
entity
:
{
value1
:
100
,
value2
:
100
,
value1
:
100
,
value2
:
100
,
fruit
:
[]
},
listCal
:
[],
visible
:
false
,
rules
:
{
businessName
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
businessCode
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}]
businessName
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}],
businessCode
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}]
}
}
};
},
mounted
()
{
this
.
getCal
();
},
methods
:
{
handleSubmit
()
{},
getCal
()
{
Api
.
getallcal
().
then
(
res
=>
{
if
(
res
.
success
)
{
this
.
listCal
=
res
.
result
;
}
});
},
handleSubmit
()
{
this
.
$refs
.
form
.
validate
(
valid
=>
{
if
(
valid
)
{
Api
.
apsschedulupdateparameter
(
this
.
entity
).
then
(
res
=>
{
if
(
res
.
success
)
{
}
});
}
else
{
this
.
$Message
.
error
(
"Fail!"
);
}
});
},
handleClose
()
{
this
.
$emit
(
"on-close"
)
this
.
$emit
(
"on-close"
)
;
},
handleOpen
()
{
this
.
visible
=
true
this
.
visible
=
true
;
},
handle
()
{
this
.
visible
=
false
this
.
visible
=
false
;
},
handleOk
()
{},
l
(
key
)
{
let
vkey
=
'mes_op_task_plan_simulate'
+
'.'
+
key
return
this
.
$t
(
vkey
)
||
key
let
vkey
=
"mes_op_task_plan_simulate"
+
"."
+
key
;
return
this
.
$t
(
vkey
)
||
key
;
}
}
}
}
;
</
script
>
<
style
lang=
"less"
scoped
>
.parameter {
...
...
@@ -262,7 +288,7 @@ export default {
color: #2680eb;
}
.check-box {
height: 3
00
px;
height: 3
48
px;
border-top: 1px solid #e0e0e0;
padding: 15px;
padding-left: 0;
...
...
@@ -271,7 +297,7 @@ export default {
}
}
.right-down {
height:
100
px;
height:
92
px;
}
.click-btn {
text-align: right;
...
...
pages/aps/aps/api.js
View file @
5de759c9
...
...
@@ -56,4 +56,12 @@ export default {
apsdatachecked
(
params
)
{
return
Api
.
post
(
`
${
apsUrl
}
/apspoolappservices/apsdatachecked`
,
params
);
},
//获取连班策略
getallcal
(
params
)
{
return
Api
.
get
(
`
${
apsUrl
}
/mes_daily_work_sched/getallcal`
,
params
);
},
//工序参数调整
apsschedulupdateparameter
(
params
)
{
return
Api
.
post
(
`
${
apsUrl
}
/ser/apsschedulupdateparameter`
,
params
);
},
}
pages/basicData/code/index.vue
View file @
5de759c9
...
...
@@ -65,7 +65,7 @@ export default {
{
title
:
"序号"
,
type
:
"index"
,
width
:
6
0
,
width
:
6
5
,
align
:
"center"
},
{
...
...
pages/implement/components/entryMovie.vue
View file @
5de759c9
...
...
@@ -212,9 +212,9 @@ export default {
service
.
post
(
`
${
url
}
`
,
JSON
.
stringify
(
{
{
orderExecuteMovie
:
this
.
datafrom
}
)
}
)
.
then
((
response
)
=>
{
if
(
response
.
success
)
{
...
...
pages/implement/components/entryPause.vue
View file @
5de759c9
...
...
@@ -193,9 +193,9 @@ export default {
service
.
post
(
`
${
url
}
`
,
JSON
.
stringify
(
{
{
orderExecutePausecause
:
this
.
cardModeldata
}
)
}
)
.
then
((
response
)
=>
{
if
(
response
.
success
)
{
...
...
pages/implement/components/entryrecordMovie.vue
View file @
5de759c9
...
...
@@ -185,9 +185,9 @@ export default {
service
.
post
(
`
${
url
}
`
,
JSON
.
stringify
(
{
{
orderExecuteQualityMovie
:
this
.
datafrom
}
)
}
)
.
then
((
response
)
=>
{
if
(
response
.
success
)
{
...
...
pages/implement/components/entryrecorddata.vue
View file @
5de759c9
...
...
@@ -240,9 +240,9 @@ export default {
service
.
post
(
`
${
url
}
`
,
JSON
.
stringify
(
{
{
OrderExecuteQualityData
:
this
.
datafrom
}
)
}
)
.
then
((
response
)
=>
{
if
(
response
.
success
)
{
...
...
pages/implement/components/entryrecordfiles.vue
View file @
5de759c9
...
...
@@ -202,9 +202,9 @@ export default {
service
.
post
(
`
${
url
}
`
,
JSON
.
stringify
(
{
{
OrderExecuteQualityData
:
this
.
datafrom
}
)
}
)
.
then
((
response
)
=>
{
if
(
response
.
success
)
{
...
...
pages/implement/components/processRecord.vue
View file @
5de759c9
...
...
@@ -202,9 +202,9 @@ export default {
service
.
post
(
`
${
url
}
`
,
JSON
.
stringify
(
{
{
orderExecuteFiles
:
this
.
cardModeldata
}
)
}
)
.
then
((
response
)
=>
{
if
(
response
.
success
)
{
...
...
pages/implement/components/productReport.vue
View file @
5de759c9
...
...
@@ -499,11 +499,11 @@ export default {
service
.
post
(
`
${
url
}
`
,
JSON
.
stringify
(
{
{
dispatch_id
:
this
.
datasearch
.
entryID
,
order_id
:
this
.
datasearch
.
order_id
,
list
:
datalist
}
)
}
)
.
then
((
response
)
=>
{
if
(
response
.
success
)
{
...
...
pages/implement/components/sendCheck.vue
View file @
5de759c9
...
...
@@ -115,7 +115,7 @@ export default {
if
(
state
)
{
var
url
=
`
${
PlanUrl
}
/ordercheckresult/sendcheck`
service
.
post
(
`
${
url
}
`
,
JSON
.
stringify
(
this
.
user
)
)
.
post
(
`
${
url
}
`
,
this
.
user
)
.
then
((
response
)
=>
{
if
(
response
.
success
)
{
this
.
$Message
.
success
(
'保存成功'
)
...
...
pages/implement/components/usercard.vue
View file @
5de759c9
...
...
@@ -71,7 +71,7 @@ export default {
}
service
.
post
(
`
${
systemUrl
}
/user/list`
,
JSON
.
stringify
(
params
)
)
.
post
(
`
${
systemUrl
}
/user/list`
,
params
)
.
then
((
response
)
=>
{
if
(
response
.
result
.
length
>
0
)
{
this
.
user
.
user_name
=
response
.
result
[
0
].
userName
...
...
@@ -139,10 +139,10 @@ export default {
service
.
post
(
`
${
url
}
`
,
JSON
.
stringify
(
{
{
user
:
this
.
user
,
card
:
this
.
recordList
}
)
}
)
.
then
((
response
)
=>
{
if
(
response
.
success
)
{
...
...
@@ -185,7 +185,7 @@ export default {
}
this
.
product_ID
.
push
(
fillModel
.
product_ID
)
console
.
log
(
fillModel
.
board_ID
);
this
.
board_ID
.
push
(
fillModel
.
board_ID
)
if
(
fillModel
.
fill_in_user_type
==
1
||
...
...
@@ -238,9 +238,10 @@ export default {
},
getCurrentUser
(
e
)
{
if
(
e
)
{
let
userInfo
=
this
.
$store
.
admin
.
user
.
info
;
let
userInfo
=
this
.
$store
.
state
.
userInfo
;
console
.
log
(
userInfo
);
this
.
user
.
cardno
=
userInfo
.
login_id
this
.
user
.
user_name
=
localStorage
.
getItem
(
'userName'
)
this
.
user
.
user_name
=
userInfo
.
name
this
.
user
.
user_id
=
userInfo
.
userId
}
else
{
this
.
user
.
cardno
=
''
...
...
pages/implement/index.vue
View file @
5de759c9
...
...
@@ -541,11 +541,11 @@ export default {
service
.
post
(
`
${
url
}
`
,
JSON
.
stringify
(
{
{
id
:
row
.
id
,
orderid
:
this
.
data
.
orderIDs
,
time
:
null
}
)
}
)
.
then
((
response
)
=>
{
if
(
response
.
success
)
{
...
...
@@ -566,11 +566,11 @@ export default {
service
.
post
(
`
${
url
}
`
,
JSON
.
stringify
(
{
{
id
:
row
.
id
,
orderid
:
this
.
data
.
orderIDs
,
time
:
null
}
)
}
)
.
then
((
response
)
=>
{
if
(
response
.
success
)
{
...
...
pages/order/quotation/components/quotationBox.vue
View file @
5de759c9
...
...
@@ -402,7 +402,7 @@ th.conciseContent .ivu-table-cell {
padding
:
0px
!important
;
}
.ivu-table-cell
{
padding
:
0px
!important
;
/* padding: 0px !important; */
}
</
style
>
>
pages/order/quotation/index.vue
View file @
5de759c9
...
...
@@ -458,7 +458,7 @@ export default {
this
.
recordColumn
=
[
{
type
:
"index"
,
width
:
6
0
,
width
:
6
5
,
title
:
"序号"
,
align
:
"center"
},
...
...
pages/processManage/setProcess/index.vue
View file @
5de759c9
...
...
@@ -557,7 +557,7 @@ export default {
content
=
gh
[
0
].
name
editColor
=
gh
[
0
].
color
}
if
(
this
.
tabstatus
==
'1'
)
{
return
h
(
'div'
,
[
h
(
'span'
,
...
...
@@ -601,24 +601,7 @@ export default {
content
)
])
}
else
{
return
h
(
'div'
,
[
h
(
'span'
,
{
props
:
{
type
:
'text'
,
ghost
:
true
},
style
:
{
color
:
editColor
,
cursor
:
'pointer'
}
},
content
)
])
}
}
},
...
...
@@ -1414,12 +1397,11 @@ export default {
this
.
addpdefm
.
setshow
()
},
editProcessRow
(
params
,
RoutingID
,
routingType
)
{
let
ordercombid
=
0
if
(
routingType
==
1
)
{
ordercombid
=
params
.
row
.
orderCombID
}
else
{
ordercombid
=
params
.
row
.
specialtyOrderCombID
}
this
.
editProcess
(
ordercombid
,
RoutingID
,
routingType
,
null
)
},
editProcess
(
ordercombid
,
RoutingID
,
routingType
,
orders
)
{
...
...
@@ -1434,7 +1416,7 @@ export default {
let
orderlist
=
new
Array
()
ordercombid
=
params
.
row
.
orderCombID
this
.
addpdefm
.
formValidate
.
ordercombid
=
ordercombid
if
(
orders
==
null
)
{
...
...
@@ -1468,10 +1450,7 @@ export default {
}
this
.
addpdefm
.
dataTop
=
orderlist
if
(
routingType
==
1
)
{
}
if
(
routingType
==
1
)
{
this
.
gymodaltitle
=
'设置工艺规程'
}
else
{
...
...
pages/qcimplement/components/backCheck.vue
View file @
5de759c9
...
...
@@ -92,7 +92,7 @@ export default {
if
(
state
)
{
var
url
=
`
${
PlanUrl
}
/ordercheckresult/savecheckresult`
service
.
post
(
`
${
url
}
`
,
JSON
.
stringify
(
this
.
mod
)
)
.
post
(
`
${
url
}
`
,
this
.
mod
)
.
then
((
response
)
=>
{
if
(
response
.
success
)
{
this
.
$Message
.
success
(
'操作成功'
)
...
...
pages/qcimplement/index.vue
View file @
5de759c9
...
...
@@ -388,11 +388,11 @@ export default {
service
.
post
(
`
${
url
}
`
,
JSON
.
stringify
(
{
{
id
:
row
.
id
,
orderid
:
this
.
data
.
orderIDs
,
time
:
null
}
)
}
)
.
then
((
response
)
=>
{
if
(
response
.
success
)
{
...
...
@@ -413,11 +413,11 @@ export default {
service
.
post
(
`
${
url
}
`
,
JSON
.
stringify
(
{
{
id
:
row
.
id
,
orderid
:
this
.
data
.
orderIDs
,
time
:
null
}
)
}
)
.
then
((
response
)
=>
{
if
(
response
.
success
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment