Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
GeliBusinessPlatform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ljy
GeliBusinessPlatform
Commits
20e6b0bd
Commit
20e6b0bd
authored
May 22, 2020
by
刘俊宏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
订单详情修改
parent
c2f0b580
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
147 additions
and
83 deletions
+147
-83
GeliBusinessPlatform.xcworkspace/contents.xcworkspacedata
GeliBusinessPlatform.xcworkspace/contents.xcworkspacedata
+16
-0
GeliBusinessPlatform.xcworkspace/xcuserdata/liujunhong.xcuserdatad/UserInterfaceState.xcuserstate
...ata/liujunhong.xcuserdatad/UserInterfaceState.xcuserstate
+0
-0
GeliBusinessPlatform/SceneDelegate.swift
GeliBusinessPlatform/SceneDelegate.swift
+1
-1
GeliBusinessPlatform/View/CollectionCell/GoodsCollectionViewCell.swift
...latform/View/CollectionCell/GoodsCollectionViewCell.swift
+1
-0
GeliBusinessPlatform/ViewController/个人中心/PersonCenterViewController.swift
...form/ViewController/个人中心/PersonCenterViewController.swift
+28
-28
GeliBusinessPlatform/ViewController/商品管理/GoodsManageListVC.swift
...inessPlatform/ViewController/商品管理/GoodsManageListVC.swift
+18
-14
GeliBusinessPlatform/ViewController/订单列表/OrderListVC.swift
GeliBusinessPlatform/ViewController/订单列表/OrderListVC.swift
+0
-1
GeliBusinessPlatform/ViewController/订单详情/OrderDViewController.swift
...ssPlatform/ViewController/订单详情/OrderDViewController.swift
+83
-39
No files found.
GeliBusinessPlatform.xcworkspace/contents.xcworkspacedata
View file @
20e6b0bd
...
@@ -4,6 +4,22 @@
...
@@ -4,6 +4,22 @@
<FileRef
<FileRef
location =
"group:GeliBusinessPlatform.xcodeproj"
>
location =
"group:GeliBusinessPlatform.xcodeproj"
>
</FileRef>
</FileRef>
<Group
location =
"group:GeliBusinessPlatform/Model/../.."
name =
"Products"
>
<FileRef
location =
"build:GeliBusinessPlatform.app"
assignedFileDataType =
"com.apple.application-bundle"
>
</FileRef>
<FileRef
location =
"build:GeliBusinessPlatformTests.xctest"
assignedFileDataType =
"com.apple.xcode.cfbundle"
>
</FileRef>
<FileRef
location =
"build:GeliBusinessPlatformUITests.xctest"
assignedFileDataType =
"com.apple.xcode.cfbundle"
>
</FileRef>
</Group>
<FileRef
<FileRef
location =
"group:Pods/Pods.xcodeproj"
>
location =
"group:Pods/Pods.xcodeproj"
>
</FileRef>
</FileRef>
...
...
GeliBusinessPlatform.xcworkspace/xcuserdata/liujunhong.xcuserdatad/UserInterfaceState.xcuserstate
View file @
20e6b0bd
No preview for this file type
GeliBusinessPlatform/SceneDelegate.swift
View file @
20e6b0bd
...
@@ -94,7 +94,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate, UITabBarControllerDeleg
...
@@ -94,7 +94,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate, UITabBarControllerDeleg
// Create the SwiftUI view that provides the window contents.
// Create the SwiftUI view that provides the window contents.
tabBarController
.
viewControllers
=
[
v1
,
v2
,
v3
,
v4
,
v5
]
tabBarController
.
viewControllers
=
[
v1
,
v2
,
v3
,
v4
,
v5
]
tabBarController
.
selectedIndex
=
1
//
tabBarController.selectedIndex = 1
let
contentView
=
tabBarController
let
contentView
=
tabBarController
...
...
GeliBusinessPlatform/View/CollectionCell/GoodsCollectionViewCell.swift
View file @
20e6b0bd
...
@@ -37,6 +37,7 @@ class GoodsCollectionViewCell: UICollectionViewCell {
...
@@ -37,6 +37,7 @@ class GoodsCollectionViewCell: UICollectionViewCell {
@IBAction
func
leftAction
(
_
sender
:
UIButton
)
{
@IBAction
func
leftAction
(
_
sender
:
UIButton
)
{
print
(
"点击左边按钮
\(
sender
.
tag
)
"
)
print
(
"点击左边按钮
\(
sender
.
tag
)
"
)
self
.
delegate
?
.
changeGoodsIsShow
(
isTrue
:
false
,
byIndex
:
sender
.
tag
)
self
.
delegate
?
.
changeGoodsIsShow
(
isTrue
:
false
,
byIndex
:
sender
.
tag
)
}
}
...
...
GeliBusinessPlatform/ViewController/个人中心/PersonCenterViewController.swift
View file @
20e6b0bd
...
@@ -101,34 +101,34 @@ class PersonCenterViewController: BaseViewController,UITableViewDelegate,UITable
...
@@ -101,34 +101,34 @@ class PersonCenterViewController: BaseViewController,UITableViewDelegate,UITable
}
else
if
indexPath
.
row
==
2
{
}
else
if
indexPath
.
row
==
2
{
//权限设置-弹窗
//权限设置-弹窗
_
=
self
.
presentHGImagePicker
(
maxSelected
:
2
)
{
(
assets
)
in
//
_ = self.presentHGImagePicker(maxSelected:2) { (assets) in
//结果处理
//
//结果处理
print
(
"共选择了
\(
assets
.
count
)
张图片,分别如下:"
)
//
print("共选择了\(assets.count)张图片,分别如下:")
for
asset
in
assets
{
//
for asset in assets {
print
(
asset
)
//
print(asset)
let
option
=
PHImageRequestOptions
()
//
let option = PHImageRequestOptions()
option
.
isSynchronous
=
true
//
option.isSynchronous = true
option
.
isNetworkAccessAllowed
=
true
//
option.isNetworkAccessAllowed = true
PHImageManager
.
default
()
.
requestImage
(
for
:
asset
,
targetSize
:
PHImageManagerMaximumSize
,
contentMode
:
.
default
,
options
:
option
,
resultHandler
:
{
(
imge
,
_
:
[
AnyHashable
:
Any
]?)
in
//
PHImageManager.default().requestImage(for: asset, targetSize: PHImageManagerMaximumSize , contentMode: .default , options: option, resultHandler: { (imge, _: [AnyHashable : Any]?) in
//
print
(
"上传图片==
\(
imge
)
"
)
//
print("上传图片==\(imge)")
//
let
UserToken
=
UserDefaults
.
standard
.
value
(
forKey
:
"user_token"
)
//
let UserToken = UserDefaults.standard.value(forKey: "user_token")
let
upLoadImg
=
imge
as!
UIImage
//
let upLoadImg = imge as! UIImage
//
saveFile
(
image
:
upLoadImg
,
[
"user_token"
:
UserToken
as
Any
],
success
:
{
(
data
)
in
//
saveFile(image: upLoadImg, ["user_token":UserToken as Any], success: { (data) in
let
dataM
=
data
as!
SaveFileModel
//
let dataM = data as! SaveFileModel
if
dataM
.
code
==
1
{
//
if dataM.code == 1 {
print
(
"图片上传成功
\(
dataM
.
data
?
.
url
)
"
)
//
print("图片上传成功\(dataM.data?.url)")
}
//
}
})
{
(
error
)
in
//
}) { (error) in
print
(
"图片上传失败
\(
error
)
"
)
//
print("图片上传失败\(error)")
//
}
//
}
//
})
//
})
}
//
}
}
//
}
}
}
}
}
...
...
GeliBusinessPlatform/ViewController/商品管理/GoodsManageListVC.swift
View file @
20e6b0bd
...
@@ -378,12 +378,13 @@ class GoodsManageListVC: BaseViewController, UICollectionViewDelegate, UICollect
...
@@ -378,12 +378,13 @@ class GoodsManageListVC: BaseViewController, UICollectionViewDelegate, UICollect
cell
.
priceLbl
.
text
=
"¥"
+
rowModel
.
price
!
cell
.
priceLbl
.
text
=
"¥"
+
rowModel
.
price
!
// cell.goodsImgV.kf.setImage(with: URL.init(string:SERVERCE_ImageHost + rowModel.goods_thumb!)!, placeholder: nil, options: nil, progressBlock: nil, completionHandler: nil)
// cell.goodsImgV.kf.setImage(with: URL.init(string:SERVERCE_ImageHost + rowModel.goods_thumb!)!, placeholder: nil, options: nil, progressBlock: nil, completionHandler: nil)
if
rowModel
.
is_show
==
0
{
if
rowModel
.
is_show
==
1
{
cell
.
leftBtn
.
setTitle
(
"下架"
,
for
:
.
normal
)
cell
.
leftBtn
.
setTitle
(
"下架"
,
for
:
.
normal
)
cell
.
rightBtn
.
setTitle
(
"入库"
,
for
:
.
normal
)
cell
.
rightBtn
.
setTitle
(
"入库"
,
for
:
.
normal
)
}
else
if
rowModel
.
is_show
==
1
{
}
else
if
rowModel
.
is_show
==
0
{
cell
.
leftBtn
.
setTitle
(
"入库"
,
for
:
.
normal
)
cell
.
leftBtn
.
setTitle
(
"入库"
,
for
:
.
normal
)
cell
.
rightBtn
.
setTitle
(
"上架"
,
for
:
.
normal
)
cell
.
rightBtn
.
setTitle
(
"上架"
,
for
:
.
normal
)
}
}
cell
.
lgBtn
.
tag
=
indexPath
.
row
cell
.
lgBtn
.
tag
=
indexPath
.
row
cell
.
leftBtn
.
tag
=
indexPath
.
row
cell
.
leftBtn
.
tag
=
indexPath
.
row
...
@@ -431,25 +432,28 @@ class GoodsManageListVC: BaseViewController, UICollectionViewDelegate, UICollect
...
@@ -431,25 +432,28 @@ class GoodsManageListVC: BaseViewController, UICollectionViewDelegate, UICollect
func
changeGoodsIsShow
(
isTrue
:
Bool
,
byIndex
:
Int
)
{
func
changeGoodsIsShow
(
isTrue
:
Bool
,
byIndex
:
Int
)
{
//左按钮为false 右按钮为true
//左按钮为false 右按钮为true
let
rowModel
=
self
.
items
[
byIndex
]
let
rowModel
=
self
.
items
[
byIndex
]
if
rowModel
.
is_show
==
0
{
if
rowModel
.
is_show
==
1
{
if
isTrue
{
if
isTrue
{
//"下架"
print
(
"入库哦哦"
)
print
(
"下架下架下架"
)
let
vc
=
RuKuViewController
()
}
else
{
vc
.
barTitle
=
"入库"
//"入库"
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
print
(
"入库--入库"
)
}
else
{
print
(
"下架啦"
)
}
}
}
else
if
rowModel
.
is_show
==
1
{
}
else
{
if
isTrue
{
if
isTrue
{
//"入库"
print
(
"赶紧上架"
)
print
(
"入库===入库"
)
}
else
{
}
else
{
//"上架"
print
(
"入库哦哦"
)
print
(
"上架上架上架上架"
)
let
vc
=
RuKuViewController
()
vc
.
barTitle
=
"入库"
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
}
}
}
}
}
}
func
upDataByGoodsId
(
goodsId
:
String
)
{
func
upDataByGoodsId
(
goodsId
:
String
)
{
...
...
GeliBusinessPlatform/ViewController/订单列表/OrderListVC.swift
View file @
20e6b0bd
...
@@ -175,7 +175,6 @@ class OrderListVC: BaseViewController, UITableViewDelegate, UITableViewDataSourc
...
@@ -175,7 +175,6 @@ class OrderListVC: BaseViewController, UITableViewDelegate, UITableViewDataSourc
if
rowModel
.
from
==
3
{
if
rowModel
.
from
==
3
{
cell
.
formLbl
.
isHidden
=
false
cell
.
formLbl
.
isHidden
=
false
cell
.
typeLbl
.
isHidden
=
true
}
else
{
}
else
{
cell
.
formLbl
.
isHidden
=
true
cell
.
formLbl
.
isHidden
=
true
}
}
...
...
GeliBusinessPlatform/ViewController/订单详情/OrderDViewController.swift
View file @
20e6b0bd
...
@@ -39,6 +39,9 @@ class OrderDViewController: BaseViewController,UITableViewDelegate,UITableViewDa
...
@@ -39,6 +39,9 @@ class OrderDViewController: BaseViewController,UITableViewDelegate,UITableViewDa
let
nonYuShouTitleArr
=
[
"商品合计:"
,
"物流费用:"
,
"其它费用:"
]
let
nonYuShouTitleArr
=
[
"商品合计:"
,
"物流费用:"
,
"其它费用:"
]
let
YuShouPart3Arr
=
[
"订单编号"
,
"下单时间"
,
"订单来源"
,
"提货方式"
,
"物流公司"
,
"运单号"
,
"支付方式"
,
"支付状态"
,
"买家留言"
,
"订单备注"
]
let
YuShouPart3Arr
=
[
"订单编号"
,
"下单时间"
,
"订单来源"
,
"提货方式"
,
"物流公司"
,
"运单号"
,
"支付方式"
,
"支付状态"
,
"买家留言"
,
"订单备注"
]
let
isYuShouPart3Arr
=
[
"订单编号"
,
"下单时间"
,
"订单来源"
,
"提货方式"
,
"物流公司"
,
"运单号"
,
"定金支付方式"
,
"定金支付状态"
,
"尾款支付方式"
,
"尾款支付状态"
,
"买家留言"
,
"订单备注"
]
let
nonYuShouPart3Arr
=
[
"收货人"
,
"联系电话"
,
"地址"
]
let
nonYuShouPart3Arr
=
[
"收货人"
,
"联系电话"
,
"地址"
]
...
@@ -415,31 +418,42 @@ class OrderDViewController: BaseViewController,UITableViewDelegate,UITableViewDa
...
@@ -415,31 +418,42 @@ class OrderDViewController: BaseViewController,UITableViewDelegate,UITableViewDa
cell
.
textTF
.
isUserInteractionEnabled
=
false
cell
.
textTF
.
isUserInteractionEnabled
=
false
cell
.
nameLbl
.
text
=
nonYuShouPart3Arr
[
indexPath
.
row
]
cell
.
nameLbl
.
text
=
nonYuShouPart3Arr
[
indexPath
.
row
]
if
self
.
dataMdoel
?
.
receiving
==
nil
{
//
if self.dataMdoel?.receiving == nil {
cell
.
textTF
.
text
=
"-"
cell
.
textTF
.
text
=
"-"
}
else
{
//
}else{
switch
indexPath
.
row
{
//
switch indexPath.row {
case
0
:
//
case 0:
cell
.
textTF
.
text
=
(
self
.
dataMdoel
?
.
receiving
?
.
consignee
)
!
//
cell.textTF.text = (self.dataMdoel?.receiving?.consignee)!
break
//
break
case
1
:
//
case 1:
cell
.
textTF
.
text
=
(
self
.
dataMdoel
?
.
receiving
?
.
mobile
)
!
//
cell.textTF.text = (self.dataMdoel?.receiving?.mobile)!
break
//
break
case
2
:
//
case 2:
cell
.
textTF
.
text
=
(
self
.
dataMdoel
?
.
receiving
?
.
addr_str
)
!
//
cell.textTF.text = (self.dataMdoel?.receiving?.addr_str)!
break
//
break
default
:
//
default:
break
//
break
}
//
}
}
//
}
return
cell
return
cell
case
4
:
case
4
:
//MARK:--订单信息cell
//MARK:--订单信息cell
if
indexPath
.
row
==
5
||
indexPath
.
row
==
9
{
var
isYushoucount
=
0
if
isYuShou
{
isYushoucount
=
2
}
if
indexPath
.
row
==
5
||
indexPath
.
row
==
(
9
+
isYushoucount
){
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
"PingLunCell"
)
as!
PingLunCell
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
"PingLunCell"
)
as!
PingLunCell
cell
.
tag
=
indexPath
.
row
cell
.
tag
=
indexPath
.
row
cell
.
nameLbl
.
text
=
YuShouPart3Arr
[
indexPath
.
row
]
if
isYuShou
{
cell
.
nameLbl
.
text
=
isYuShouPart3Arr
[
indexPath
.
row
]
}
else
{
cell
.
nameLbl
.
text
=
YuShouPart3Arr
[
indexPath
.
row
]
}
switch
indexPath
.
row
{
switch
indexPath
.
row
{
case
5
:
case
5
:
cell
.
contentLbl
.
text
=
self
.
dataMdoel
?
.
order_res
?
.
lwb_no
cell
.
contentLbl
.
text
=
self
.
dataMdoel
?
.
order_res
?
.
lwb_no
...
@@ -466,8 +480,14 @@ class OrderDViewController: BaseViewController,UITableViewDelegate,UITableViewDa
...
@@ -466,8 +480,14 @@ class OrderDViewController: BaseViewController,UITableViewDelegate,UITableViewDa
}
}
return
cell
return
cell
}
}
if
indexPath
.
row
==
4
||
indexPath
.
row
==
6
||
indexPath
.
row
==
7
{
if
indexPath
.
row
==
4
||
indexPath
.
row
==
6
||
indexPath
.
row
==
7
||
indexPath
.
row
==
(
6
+
isYushoucount
)
||
indexPath
.
row
==
(
7
+
isYushoucount
){
cell
.
nameLbl
.
text
=
YuShouPart3Arr
[
indexPath
.
row
]
if
isYuShou
{
cell
.
nameLbl
.
text
=
isYuShouPart3Arr
[
indexPath
.
row
]
}
else
{
cell
.
nameLbl
.
text
=
YuShouPart3Arr
[
indexPath
.
row
]
}
cell
.
arrowImg
.
isHidden
=
false
cell
.
arrowImg
.
isHidden
=
false
switch
indexPath
.
row
{
switch
indexPath
.
row
{
...
@@ -475,10 +495,29 @@ class OrderDViewController: BaseViewController,UITableViewDelegate,UITableViewDa
...
@@ -475,10 +495,29 @@ class OrderDViewController: BaseViewController,UITableViewDelegate,UITableViewDa
cell
.
contentLbl
.
text
=
self
.
dataMdoel
?
.
order_res
?
.
lc_name
cell
.
contentLbl
.
text
=
self
.
dataMdoel
?
.
order_res
?
.
lc_name
break
break
case
6
:
case
6
:
cell
.
contentLbl
.
text
=
self
.
dataMdoel
?
.
order_res
?
.
pay_type_cn
if
isYuShou
{
cell
.
contentLbl
.
text
=
StringByInt
(
number
:
(
self
.
dataMdoel
?
.
order_res
?
.
sale_res
?
.
dj_pay_type
!
)
!
)
}
else
{
cell
.
contentLbl
.
text
=
self
.
dataMdoel
?
.
order_res
?
.
pay_type_cn
}
break
break
case
7
:
case
7
:
cell
.
contentLbl
.
text
=
self
.
dataMdoel
?
.
order_res
?
.
pay_status_cn
if
isYuShou
{
cell
.
contentLbl
.
text
=
StringByInt
(
number
:
(
self
.
dataMdoel
?
.
order_res
?
.
sale_res
?
.
dj_pay_status
!
)
!
)
}
else
{
cell
.
contentLbl
.
text
=
self
.
dataMdoel
?
.
order_res
?
.
pay_status_cn
}
cell
.
arrowImg
.
isHidden
=
true
break
case
8
:
cell
.
contentLbl
.
text
=
StringByInt
(
number
:
(
self
.
dataMdoel
?
.
order_res
?
.
sale_res
?
.
wk_pay_type
!
)
!
)
break
case
9
:
cell
.
contentLbl
.
text
=
StringByInt
(
number
:
(
self
.
dataMdoel
?
.
order_res
?
.
sale_res
?
.
wk_pay_status
!
)
!
)
cell
.
arrowImg
.
isHidden
=
true
cell
.
arrowImg
.
isHidden
=
true
break
break
default
:
default
:
...
@@ -488,7 +527,13 @@ class OrderDViewController: BaseViewController,UITableViewDelegate,UITableViewDa
...
@@ -488,7 +527,13 @@ class OrderDViewController: BaseViewController,UITableViewDelegate,UITableViewDa
}
}
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
"TitleAndTFCell"
)
as!
TitleAndTFCell
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
"TitleAndTFCell"
)
as!
TitleAndTFCell
cell
.
textTF
.
isUserInteractionEnabled
=
false
cell
.
textTF
.
isUserInteractionEnabled
=
false
cell
.
nameLbl
.
text
=
YuShouPart3Arr
[
indexPath
.
row
]
if
isYuShou
{
cell
.
nameLbl
.
text
=
isYuShouPart3Arr
[
indexPath
.
row
]
}
else
{
cell
.
nameLbl
.
text
=
YuShouPart3Arr
[
indexPath
.
row
]
}
switch
indexPath
.
row
{
switch
indexPath
.
row
{
case
0
:
case
0
:
cell
.
textTF
.
text
=
self
.
dataMdoel
?
.
order_res
?
.
order_sn
cell
.
textTF
.
text
=
self
.
dataMdoel
?
.
order_res
?
.
order_sn
...
@@ -506,7 +551,7 @@ class OrderDViewController: BaseViewController,UITableViewDelegate,UITableViewDa
...
@@ -506,7 +551,7 @@ class OrderDViewController: BaseViewController,UITableViewDelegate,UITableViewDa
cell
.
textTF
.
text
=
"自提"
cell
.
textTF
.
text
=
"自提"
}
}
break
break
case
8
:
case
(
8
+
isYushoucount
)
:
cell
.
textTF
.
text
=
self
.
dataMdoel
?
.
order_res
?
.
postscript
cell
.
textTF
.
text
=
self
.
dataMdoel
?
.
order_res
?
.
postscript
break
break
...
@@ -620,21 +665,16 @@ class OrderDViewController: BaseViewController,UITableViewDelegate,UITableViewDa
...
@@ -620,21 +665,16 @@ class OrderDViewController: BaseViewController,UITableViewDelegate,UITableViewDa
}
}
break
break
case
"支付状态"
:
case
"支付状态"
:
//无法修改支付状态的
//无需处理:根据网络变更
// if glSelectView == nil {
// let view = GLAlertSelectView(frame: self.view.bounds)
// view.tag = cell.tag
// view.titleLbl.text = "请选择支付状态"
// view.delegate = self
// view.dataArr = zhiFuStatus
// if zhiFuStatusSelect != nil {
// view.selectNum = zhiFuStatusSelect!
// view.tempNum = view.selectNum
// }
// self.view.addSubview(view)
// glSelectView = view
// }
break
break
case
"定金支付方式"
:
print
(
"定金支付方式"
)
break
case
"尾款支付方式"
:
print
(
"尾款支付方式"
)
break
default
:
default
:
break
break
}
}
...
@@ -745,7 +785,11 @@ class OrderDViewController: BaseViewController,UITableViewDelegate,UITableViewDa
...
@@ -745,7 +785,11 @@ class OrderDViewController: BaseViewController,UITableViewDelegate,UITableViewDa
}
}
return
0
return
0
case
4
:
case
4
:
return
10
if
isYuShou
{
return
12
}
else
{
return
10
}
default
:
default
:
return
0
return
0
}
}
...
...
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