Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jiedao-app-operator-master
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
lanbaoming
jiedao-app-operator-master
Commits
cbea982d
Commit
cbea982d
authored
Jan 23, 2024
by
邓春圆
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
3f6c4215
0f521f96
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
202 additions
and
50 deletions
+202
-50
order.js
src/api/ecw/order.js
+7
-0
index.vue
src/components/RoutersSelector/index.vue
+9
-2
detail.vue
src/views/ecw/order/detail.vue
+125
-2
edit.vue
src/views/ecw/order/edit.vue
+14
-13
ChooseOrderProducts.vue
...ews/ecw/order/stocking/components/ChooseOrderProducts.vue
+2
-2
Package.vue
src/views/ecw/order/stocking/components/Package.vue
+3
-2
weightDeal.vue
src/views/ecw/order/weightDeal.vue
+21
-4
batchEdit.vue
src/views/ecw/productPrice/batchEdit.vue
+8
-5
batchEditAir.vue
src/views/ecw/productPrice/batchEditAir.vue
+13
-5
editAir.vue
src/views/ecw/productPrice/editAir.vue
+0
-15
No files found.
src/api/ecw/order.js
View file @
cbea982d
...
...
@@ -1032,3 +1032,10 @@ export function getOrderItemCommonAttr(orderId, excludeOrderWarehouseInId){
params
:
{
orderId
,
excludeOrderWarehouseInId
}
})
}
//退仓品名列表
export
function
getOrderItemDeleted
(
orderId
){
return
request
({
url
:
'
/ecw/order/order-item-info-when-warehouse-in-deleted/
'
+
orderId
,
method
:
'
get
'
,
})
}
src/components/RoutersSelector/index.vue
View file @
cbea982d
...
...
@@ -204,6 +204,7 @@ export default {
this
.
getOpenedRouterList
()
},
importCity
(){
this
.
getChannelList
()
this
.
getOpenedRouterList
()
},
selectedRoutes
(
val
){
...
...
@@ -246,7 +247,7 @@ export default {
}
},
async
created
(){
this
.
channelList
=
(
await
getChannelList
()).
data
this
.
getChannelList
()
this
.
tradeCityList
=
(
await
getTradeCityList
()).
data
// 路线需要过滤失效的进出口城市,所以在程序加载后再加载路线
await
this
.
getOpenedRouterList
()
...
...
@@ -268,6 +269,12 @@ export default {
this
.
inited
=
true
},
methods
:{
async
getChannelList
(){
let
query
=
{
cityId
:
this
.
importCity
}
this
.
channelList
=
(
await
getChannelList
(
query
)).
data
},
getAttrList
(){
getProductAttrList
().
then
(
res
=>
{
this
.
attrList
=
res
.
data
...
...
src/views/ecw/order/detail.vue
View file @
cbea982d
...
...
@@ -318,6 +318,119 @@
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane
:label=
"$t('退仓品名')"
name=
"six"
>
<el-table
:data=
"orderItemDeletedData"
border
style=
"width: 100%"
>
<el-table-column
:label=
"$t('序号')"
width=
"90px"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
$index
+
1
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"prodTitleZh"
:label=
"$t('中文品名')"
/>
<el-table-column
prop=
"prodTitleEn"
:label=
"$t('英文品名')"
/>
<el-table-column
prop=
"brand"
:label=
"$t('品牌')"
width=
"90px"
>
<
template
slot-scope=
"{row}"
>
<template
v-if=
"row.brandName"
>
{{
row
.
brandName
}}
</
template
>
<dict-tag
v-else
:type=
"DICT_TYPE.ECW_IS_BRAND"
:value=
"row.brandType"
/>
</template>
</el-table-column>
<el-table-column
prop=
"brand"
:label=
"$t('特性')"
width=
"90px"
>
<
template
slot-scope=
"{row}"
>
{{
showAttrText
(
row
.
warehouseInInfoVO
?
row
.
warehouseInProdAttrIds
:
row
.
prodAttrIds
)
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"num"
:label=
"$t('填单件数')"
width=
"90px"
/>
<el-table-column
prop=
"sumNum"
:label=
"$t('入仓件数')"
width=
"90px"
>
<
template
slot-scope=
"{row}"
>
<el-link
type=
"primary"
@
click.native=
"showWarehouseLogs(row)"
>
{{
row
.
warehouseInInfoVO
?
row
.
warehouseInInfoVO
.
cartonsNum
:
0
}}
</el-link>
<div
v-if=
"row.warehouseInInfoVO && row.warehouseInInfoVO.isMultiSpecification"
>
(
{{
$t
(
'
多规格
'
)
}}
)
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"unit"
:label=
"$t('单位')"
width=
"90px"
>
<
template
slot-scope=
"{row}"
>
<dict-tag
:type=
"DICT_TYPE.ECW_PACKAGING_TYPE"
:value=
"row.unit"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"worth"
:label=
"$t('货值')"
width=
"120px"
/>
<el-table-column
prop=
""
:label=
"$t('材质')"
>
<
template
slot-scope=
"{row}"
>
<dict-tag
:type=
"DICT_TYPE.ECW_PRODUCT_MATERIAL"
:value=
"row.material"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"volume"
:label=
"$t('体积') + '(m³)'"
width=
"90px"
>
<
template
slot-scope=
"{row}"
>
{{
row
.
warehouseInInfoVO
?
row
.
warehouseInInfoVO
.
volume
:
row
.
volume
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"weight"
:label=
"$t('重量') + '(kg)'"
width=
"90px"
>
<
template
slot-scope=
"{row}"
>
{{
row
.
warehouseInInfoVO
?
row
.
warehouseInInfoVO
.
weight
:
row
.
weight
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"warehouseInInfoVO.quantityAll"
:label=
"$t('数量') + '(个)'"
width=
"90px"
>
<
template
slot-scope=
"{row}"
>
{{
row
.
warehouseInInfoVO
?
row
.
warehouseInInfoVO
.
quantityAll
:
row
.
quantity
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"weight"
:label=
"$t('收费重量') + '(kg)'"
width=
"100px"
>
<
template
slot-scope=
"{row}"
>
{{
row
.
chargeWeight
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"volume"
:label=
"$t('收费方数') + '(m³)'"
width=
"100px"
>
<
template
slot-scope=
"{row}"
>
{{
row
.
chargeVolume
}}
</
template
>
</el-table-column>
<el-table-column
prop=
""
:label=
"$t('费用类型')"
>
<
template
slot-scope=
"{row}"
>
<dict-tag
:type=
"DICT_TYPE.ECW_PAY_ADVANCE"
:value=
"row.isPayAdvance"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
""
:label=
"$t('用途')"
>
<
template
slot-scope=
"{row}"
>
<div
v-if=
"row.usageIds"
>
<div
v-for=
"(item,index) in row.usageIds.split(',')"
>
<dict-tag
:type=
"DICT_TYPE.OREER_ITEM_USAGE"
:value=
"item"
/>
<span
v-if=
"(index+1)!=row.usageIds.split(',').length"
>
,
</span>
</div>
</div>
<div
v-else
></div>
</
template
>
</el-table-column>
<el-table-column
prop=
""
:label=
"$t('成交单价')"
width=
"220px"
>
<
template
slot-scope=
"{row}"
>
<template
v-if=
"row.charging ==1"
>
<template
v-if=
"!row.originalSeaFreight"
>
{{
$t
(
'
未报价
'
)
}}
</
template
>
<el-link
type=
"primary"
@
click=
"showFeeDetail(row, 'clearance')"
v-else
>
{{$t('全包价')}} {{row.oneSeaFreight}} {{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}
</el-link>
</template>
<
template
v-else-if=
"!row.originalSeaFreight && !row.originalClearanceFreight"
>
{{
$t
(
'
未报价
'
)
}}
</
template
>
<
template
v-else
>
<el-link
type=
"primary"
@
click=
"showFeeDetail(row, 'freight')"
>
{{
$t
(
'
运费
'
)
}}
:
{{
row
.
oneSeaFreight
}}
{{
currencyMap
[
row
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
row
.
seaFreightVolume
]
}}
</el-link>
<el-link
type=
"primary"
@
click=
"showFeeDetail(row, 'clearance')"
>
{{
$t
(
'
清关费
'
)
}}
:
{{
row
.
oneClearanceFreight
}}
{{
currencyMap
[
row
.
clearanceFreightCurrency
]
}}
/
{{
unitMap
[
row
.
clearanceFreightVolume
]
}}
</el-link
>
</
template
>
</template>
</el-table-column>
<el-table-column
prop=
""
:label=
"$t('储位')"
>
<
template
slot-scope=
"{row}"
>
<template
v-if=
"row.warehouseInInfoVO"
>
{{
getLocationName
(
row
.
warehouseInInfoVO
.
orderLocationMergeVOSet
)
}}
</
template
>
</template>
</el-table-column>
<el-table-column
prop=
""
:label=
"$t('填单快递单号')"
>
<
template
slot-scope=
"{row}"
>
<!-- 这里不知道什么原因被改成了入仓单号,现根据bug单改成填单快递单号,如需更改请注明缘由
https://zentao.test.jdshangmen.com/bug-view-2645.html -->
{{
row
.
expressNo
}}
</
template
>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane
:label=
"$t('订单动态')"
name=
"second"
>
<el-timeline
v-if=
"order.orderTimeVOList && order.orderTimeVOList.length"
:reverse=
"true"
>
<el-timeline-item
v-for=
"(activity, index) in order.orderTimeVOList"
:key=
"index"
:timestamp=
"parseTime(activity.businessTime)"
>
...
...
@@ -533,7 +646,7 @@
<
/template
>
<
script
>
import
{
getOrder
,
operateLogPage
}
from
'
@/api/ecw/order
'
import
{
getOrder
,
operateLogPage
,
getOrderItemDeleted
}
from
'
@/api/ecw/order
'
import
{
getDictDatas
,
DICT_TYPE
,
getDictData
}
from
'
@/utils/dict
'
;
import
PrintWarehouseReceipt
from
'
./components/PrintWarehouseReceipt
'
import
PrintLadingBill
from
'
./components/PrintLadingBill
'
...
...
@@ -611,7 +724,8 @@ export default {
showFeeSummary
:
false
,
// 是否显示费用汇总
shopPackId
:
null
,
//显示打包历史的ID
packAfterData
:
null
,
//显示打包历史详情
attrList
:
[]
attrList
:
[],
orderItemDeletedData
:[],
//退仓品名
}
}
,
computed
:{
...
...
@@ -687,6 +801,7 @@ export default {
this
.
orderId
=
this
.
$route
.
query
.
orderId
this
.
getOrder
();
this
.
getOfferNumber
()
this
.
getOrderItemDeleted
()
}
getCurrencyList
().
then
(
res
=>
this
.
currencyList
=
res
.
data
)
...
...
@@ -844,6 +959,14 @@ export default {
if
(
that
.
order
.
airlineCompany
)
that
.
getAirCompany
()
}
);
}
,
//退仓品名
getOrderItemDeleted
(){
let
that
=
this
// 执行查询
getOrderItemDeleted
(
that
.
orderId
).
then
(
response
=>
{
that
.
orderItemDeletedData
=
response
.
data
;
}
);
}
,
/* loadBrands(){
let brandIds = []
this.form.orderItemVOList.forEach(item => {
...
...
src/views/ecw/order/edit.vue
View file @
cbea982d
...
...
@@ -88,19 +88,6 @@
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"form.transportId"
formatter=
"number"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('出货渠道')"
prop=
"channelId"
v-if=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'"
>
<!--嵌套一个form来脱离disabled控制-->
<el-form>
<selector
v-model=
"form.channelId"
:options=
"channelList"
value-field=
"channelId"
:label-field=
"$l(null, 'name')"
clearable
></selector>
</el-form>
</el-form-item>
</div>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('始发城市')"
prop=
"departureId"
:disabled=
"false"
>
...
...
@@ -126,6 +113,20 @@
</option>
</select>
</div>
<div
class=
"form-section mt-10"
>
<el-form-item
:label=
"$t('出货渠道')"
prop=
"channelId"
v-if=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'"
>
<!--嵌套一个form来脱离disabled控制-->
<el-form>
<selector
v-model=
"form.channelId"
:options=
"channelList"
value-field=
"channelId"
:label-field=
"$l(null, 'name')"
clearable
></selector>
</el-form>
</el-form-item>
</div>
<!--目的港清关:选择专线空运才显示,默认选中我司
我司选中后,按钮下方显示“多票”和“单票”的操作,默认选中多票。
客户选中后,按钮下方显示“单票”的操作,默认选中,无需点击-->
...
...
src/views/ecw/order/stocking/components/ChooseOrderProducts.vue
View file @
cbea982d
...
...
@@ -121,9 +121,9 @@ export default {
// 如果某条入仓记录下的箱明细被全部选中了,则需要将他的快递单号和影像带过去
const
expressNos
=
[]
const
pictureUrls
=
[]
this
.
orderItemDetails
.
forEach
(
warehouseIn
=>
{
this
.
orderItemDetails
.
forEach
(
(
warehouseIn
,
index
)
=>
{
// 本条入仓记录被选中的明细数
const
selectedCount
=
arr
.
filter
(
item
=>
item
.
warehouseInId
==
warehouseIn
.
id
).
length
const
selectedCount
=
this
.
multipleSelection
.
filter
(
item
=>
item
.
warehouseInId
==
warehouseIn
.
id
).
length
if
(
selectedCount
==
warehouseIn
.
orderWarehouseInCommonAttrVOList
?.
length
){
if
(
warehouseIn
.
expressNo
){
expressNos
.
push
(
warehouseIn
.
expressNo
)
...
...
src/views/ecw/order/stocking/components/Package.vue
View file @
cbea982d
...
...
@@ -727,8 +727,9 @@ export default {
if
(
window
.
ChooseOrderProductsExpressNos
?.
length
){
// 去重追加
window
.
ChooseOrderProductsExpressNos
?.
forEach
(
no
=>
{
if
(
row
.
expressNo
.
indexOf
(
no
)
===
-
1
){
row
.
expressNo
+=
"
,
"
+
no
if
(
!
row
.
expressNo
||
row
.
expressNo
.
indexOf
(
no
)
===
-
1
){
if
(
row
.
expressNo
?.
length
)
row
.
expressNo
+=
"
,
"
row
.
expressNo
+=
no
}
})
...
...
src/views/ecw/order/weightDeal.vue
View file @
cbea982d
...
...
@@ -65,6 +65,12 @@
<span
style=
"margin-right:10px"
>
{{
(
orderData
.
vweight
||
0
)
+
'
kg
'
}}
</span>
<span>
{{
(
orderData
.
sumQuantity
||
0
)
+
$t
(
'
个
'
)
}}
</span>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('重货标准')"
v-if=
"type=='order_heavy_cargo_exception'"
>
{{
orderData
.
orgWeightUnit
||
$t
(
'
无
'
)
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('泡货标准')"
v-else
>
{{
orderData
.
orgVolumeUnit
||
$t
(
'
无
'
)
}}
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card
class=
"card"
>
...
...
@@ -134,7 +140,11 @@
<el-descriptions-item
:label=
"$t('处理时间')"
>
{{parseTime(handlerParams.handlerTime)}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('处理结果')"
>
<el-descriptions-item
:label=
"$t('处理结果')"
v-if=
"type=='order_heavy_cargo_exception'"
>
<span
v-if=
"handlerParams.handlerResult=='general_cargo'"
>
{{$t('设为普货')}}
</span>
<span
v-else-if=
"handlerParams.handlerResult=='process'"
>
{{$t('设为已处理')}}
</span>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('处理结果')"
v-if=
"type!='order_heavy_cargo_exception'"
>
<span
v-if=
"handlerParams.handlerResult=='general_cargo'"
>
{{$t('设为免泡')}}
</span>
<span
v-else-if=
"handlerParams.handlerResult=='process'"
>
{{$t('设为全泡')}}
</span>
<span
v-else
>
{{$t('设为半抛')}}
</span>
...
...
@@ -146,9 +156,16 @@
</el-card>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
v-if=
"list.orderExceptionStatus!=2"
>
<div
v-if=
"type=='order_heavy_cargo_exception'"
>
<el-button
type=
"primary"
@
click=
"submit('general_cargo')"
>
{{$t('设为普货')}}
</el-button>
<el-button
plain
type=
"primary"
@
click=
"submit('process')"
>
{{$t('设为已处理')}}
</el-button>
</div>
<div
v-else
>
<el-button
type=
"primary"
@
click=
"submit('general_cargo')"
>
{{$t('设为免泡')}}
</el-button>
<el-button
plain
type=
"primary"
@
click=
"submit('process')"
>
{{$t('设为全泡')}}
</el-button>
<el-button
v-if=
"type!='order_heavy_cargo_exception'"
plain
type=
"primary"
@
click=
"submit('half_throw')"
>
{{$t('设为半抛')}}
</el-button>
<el-button
plain
type=
"primary"
@
click=
"submit('half_throw')"
>
{{$t('设为半抛')}}
</el-button>
</div>
</div>
<div
v-else
>
<el-button
plain
type=
"primary"
@
click=
"$store.dispatch('tagsView/delCurrentView')"
>
{{$t('返回')}}
</el-button>
...
...
src/views/ecw/productPrice/batchEdit.vue
View file @
cbea982d
...
...
@@ -470,7 +470,7 @@ export default {
},
// 获得用语提交的阶梯价副本
getPriceList
(
stepList
){
getPriceList
(
stepList
,
prefix
){
if
(
!
stepList
?.
length
)
return
[]
let
stepPriceList
=
JSON
.
parse
(
JSON
.
stringify
(
stepList
))
stepPriceList
.
forEach
((
item
,
index
)
=>
{
...
...
@@ -481,7 +481,10 @@ export default {
return
p
})
})
return
stepPriceList
// 240121应老王要求,未设置价格的不提交
return
stepPriceList
.
filter
(
item
=>
{
return
!!
item
[
`
${
prefix
}
Price`
]
})
},
// 非阶梯价格更新单位
handleFormUnitChange
(
data
){
...
...
@@ -571,12 +574,12 @@ export default {
// 全包价
if
(
this
.
form
.
priceType
==
1
)
{
data
.
fullPriceStepList
=
this
.
getPriceList
(
this
.
form
.
fullPriceStepList
)
data
.
fullPriceStepList
=
this
.
getPriceList
(
this
.
form
.
fullPriceStepList
,
'
all
'
)
delete
data
.
clearancePriceStepList
delete
data
.
freightPriceStepList
}
else
{
data
.
clearancePriceStepList
=
this
.
getPriceList
(
this
.
form
.
clearancePriceStepList
)
data
.
freightPriceStepList
=
this
.
getPriceList
(
this
.
form
.
freightPriceStepList
)
data
.
clearancePriceStepList
=
this
.
getPriceList
(
this
.
form
.
clearancePriceStepList
,
'
clearance
'
)
data
.
freightPriceStepList
=
this
.
getPriceList
(
this
.
form
.
freightPriceStepList
,
'
transport
'
)
delete
data
.
fullPriceStepList
}
...
...
src/views/ecw/productPrice/batchEditAir.vue
View file @
cbea982d
...
...
@@ -313,7 +313,12 @@ export default {
item
[
data
.
field
]
=
data
.
value
if
(
item
.
packagingList
?.
length
){
item
.
packagingList
.
forEach
(
p
=>
{
p
[
data
.
field
]
=
data
.
value
if
(
data
.
field
.
indexOf
(
"
PriceUnit
"
)
>
-
1
){
p
[
'
packagingPriceUnit
'
]
=
data
.
value
}
if
(
data
.
field
.
indexOf
(
"
VolumeUnit
"
)
>
-
1
){
p
[
'
packagingVolumeUnit
'
]
=
data
.
value
}
})
}
if
(
item
.
specialList
?.
length
){
...
...
@@ -336,7 +341,10 @@ export default {
return
p
})
})
return
stepPriceList
// 240121应老王要求,未设置价格的不提交
return
stepPriceList
.
filter
(
item
=>
{
return
!!
item
[
`
${
prefix
}
Price`
]
})
},
submitForm
()
{
...
...
@@ -376,12 +384,12 @@ export default {
// 全包价
if
(
this
.
form
.
priceType
==
1
)
{
data
.
fullPriceStepList
=
this
.
getPriceList
(
this
.
form
.
fullPriceStepList
)
data
.
fullPriceStepList
=
this
.
getPriceList
(
this
.
form
.
fullPriceStepList
,
'
all
'
)
delete
data
.
clearancePriceStepList
delete
data
.
freightPriceStepList
}
else
{
data
.
clearancePriceStepList
=
this
.
getPriceList
(
this
.
form
.
clearancePriceStepList
)
data
.
freightPriceStepList
=
this
.
getPriceList
(
this
.
form
.
freightPriceStepList
)
data
.
clearancePriceStepList
=
this
.
getPriceList
(
this
.
form
.
clearancePriceStepList
,
'
clearance
'
)
data
.
freightPriceStepList
=
this
.
getPriceList
(
this
.
form
.
freightPriceStepList
,
'
transport
'
)
delete
data
.
fullPriceStepList
}
...
...
src/views/ecw/productPrice/editAir.vue
View file @
cbea982d
...
...
@@ -343,21 +343,6 @@ export default {
},
stepPrice
(
val
){
this
.
$set
(
this
.
form
,
'
stepPrice
'
,
val
?
1
:
0
)
},
selectedRoutes
(
routers
)
{
let
transportIds
=
[]
routers
.
forEach
(
item
=>
{
item
.
shippingChannelId
=
item
.
channelId
transportIds
.
push
(
+
item
.
transportId
)
})
// 如果只选择了空运(3),则默认体积单位改成千克
transportIds
=
new
Set
(
transportIds
)
console
.
log
(
transportIds
)
window
.
transportIds
=
transportIds
if
(
transportIds
.
size
==
1
&&
transportIds
.
has
(
3
)){
this
.
setDefaultVolumeUnit
(
6
)
}
else
this
.
setDefaultVolumeUnit
(
7
)
}
},
async
created
()
{
...
...
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