Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
O
Opple-iOS
Project
Project
Details
Activity
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
张杰
Opple-iOS
Commits
43d5bdfd
Commit
43d5bdfd
authored
Jun 01, 2016
by
勾芒
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
客户添加公司字段,优化代码
parent
5c3bbb32
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
1652 additions
and
577 deletions
+1652
-577
ClientViewController.m
Lighting/Class/ClientViewController.m
+1
-0
LoginViewController.m
Lighting/Class/Login/LoginViewController.m
+0
-1
OrderdetailsViewController.m
Lighting/Class/OrderdetailsViewController.m
+3
-2
PayViewController.xib
Lighting/Class/PayViewController.xib
+7
-17
ProductCollectionPictureCell.m
Lighting/Class/ProductCollectionPictureCell.m
+1
-1
ProductLibraryView.h
Lighting/Class/ProductLibraryView.h
+1
-1
ProductLibraryView.m
Lighting/Class/ProductLibraryView.m
+0
-1
ProductLibraryViewController.m
Lighting/Class/ProductLibraryViewController.m
+15
-6
SeceneCollectionPictureCell.m
Lighting/Class/SeceneCollectionPictureCell.m
+1
-1
Toolview.m
Lighting/Class/Tabbar/Toolview.m
+1
-2
project.pbxproj
Lighting/Lighting.xcodeproj/project.pbxproj
+64
-6
StoryboardwithCYX.storyboard
Lighting/Lighting/StoryboardwithCYX.storyboard
+317
-23
ExperienceCentreViewController.h
Lighting/Tools/ExperienceCentreViewController.h
+86
-0
ExperienceCentreViewController.m
Lighting/Tools/ExperienceCentreViewController.m
+110
-0
SceneViewController.h
Lighting/Tools/SceneViewController.h
+84
-0
SceneViewController.m
Lighting/Tools/SceneViewController.m
+229
-0
ScreeningCollectionViewCell.h
Lighting/Tools/ScreeningCollectionViewCell.h
+22
-0
ScreeningCollectionViewCell.m
Lighting/Tools/ScreeningCollectionViewCell.m
+16
-0
ScreeningTableViewCell.h
Lighting/Tools/ScreeningTableViewCell.h
+25
-0
ScreeningTableViewCell.m
Lighting/Tools/ScreeningTableViewCell.m
+44
-0
opple_objc_json_client.h
Lighting/Tools/opple_objc_json_client.h
+490
-403
opple_objc_json_client.m
Lighting/Tools/opple_objc_json_client.m
+135
-113
qq.png
Lighting/Tools/qq.png
+0
-0
No files found.
Lighting/Class/ClientViewController.m
View file @
43d5bdfd
...
...
@@ -456,6 +456,7 @@
customerEntity
.
mobile
=
self
.
phoneNumberField
.
text
;
customerEntity
.
address
=
self
.
customerAddress
.
text
;
customerEntity
.
name
=
self
.
customerNameField
.
text
;
customerEntity
.
company
=
self
.
companyNameField
.
text
;
//修改
if
(
isChange
)
{
customerEntity
.
fid
=
[
Customermanager
manager
].
customerID
;
...
...
Lighting/Class/Login/LoginViewController.m
View file @
43d5bdfd
...
...
@@ -443,7 +443,6 @@
ResetPasswordRequest
*
passwrod
=
[[
ResetPasswordRequest
alloc
]
init
];
passwrod
.
fnewPassword
=
self
.
resetPasswordView
.
newpass
.
text
;
passwrod
.
username
=
self
.
userName
.
text
;
passwrod
.
smsCode
=
self
.
verifyCode
;
//验证码
[[
NetworkRequestClassManager
Manager
]
NetworkRequestWithURL
:[
NSString
stringWithFormat
:
@"%@%@"
,
ServerAddress
,
@"/employee/resetPassword"
]
WithRequestType
:
0
WithParameter
:
passwrod
WithReturnValueBlock
:^
(
id
returnValue
)
{
...
...
Lighting/Class/OrderdetailsViewController.m
View file @
43d5bdfd
...
...
@@ -415,11 +415,12 @@
#pragma mark -下载PDF
-
(
void
)
DownloadPDF
:
(
void
(
^
)(
id
returnValue
))
success
{
[
self
CreateMBProgressHUDLoding
];
[[
NetworkRequestClassManager
Manager
]
NetworkWithDictionaryRequestWithURL
:[
NSString
stringWithFormat
:
@"%@%@%@"
,
ServerAddress
,
@"/order/
U
rlOfprintPDF/"
,
_orderCode
]
WithRequestType
:
1
WithParameter
:
nil
WithReturnValueBlock
:^
(
id
returnValue
)
{
[[
NetworkRequestClassManager
Manager
]
NetworkWithDictionaryRequestWithURL
:[
NSString
stringWithFormat
:
@"%@%@%@"
,
ServerAddress
,
@"/order/
u
rlOfprintPDF/"
,
_orderCode
]
WithRequestType
:
1
WithParameter
:
nil
WithReturnValueBlock
:^
(
id
returnValue
)
{
[
self
RemoveMBProgressHUDLoding
];
NSString
*
url
=
[
NSString
stringWithFormat
:
@"%@
%@"
,
PDFSERADDRESS
,
returnValue
[
@"data"
]];
NSString
*
url
=
[
NSString
stringWithFormat
:
@"%@
"
,
returnValue
[
@"data"
]];
success
(
url
);
...
...
Lighting/Class/PayViewController.xib
View file @
43d5bdfd
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document
type=
"com.apple.InterfaceBuilder3.CocoaTouch.XIB"
version=
"3.0"
toolsVersion=
"1011
6
"
systemVersion=
"15F34"
targetRuntime=
"iOS.CocoaTouch"
propertyAccessControl=
"none"
useAutolayout=
"YES"
useTraitCollections=
"YES"
>
<document
type=
"com.apple.InterfaceBuilder3.CocoaTouch.XIB"
version=
"3.0"
toolsVersion=
"1011
7
"
systemVersion=
"15F34"
targetRuntime=
"iOS.CocoaTouch"
propertyAccessControl=
"none"
useAutolayout=
"YES"
useTraitCollections=
"YES"
>
<dependencies>
<deployment
identifier=
"iOS"
/>
<plugIn
identifier=
"com.apple.InterfaceBuilder.IBCocoaTouchPlugin"
version=
"10085"
/>
</dependencies>
<objects>
<placeholder
placeholderIdentifier=
"IBFilesOwner"
id=
"-1"
userLabel=
"File's Owner"
customClass=
"PayViewController"
>
<connections>
<outlet
property=
"dealersImageView"
destination=
"kZZ-Mx-zku"
id=
"EkS-xw-9hm"
/>
<outlet
property=
"dealersName"
destination=
"Qnn-EJ-jG9"
id=
"7Xd-rp-40Q"
/>
<outlet
property=
"payTypeBackimageView"
destination=
"65W-fM-QJC"
id=
"IXr-70-nIX"
/>
<outlet
property=
"view"
destination=
"i5M-Pr-FkT"
id=
"sfx-zR-JGt"
/>
</connections>
...
...
@@ -21,29 +21,19 @@
<rect
key=
"frame"
x=
"0.0"
y=
"13"
width=
"281"
height=
"365"
/>
</imageView>
<imageView
userInteractionEnabled=
"NO"
contentMode=
"scaleToFill"
horizontalHuggingPriority=
"251"
verticalHuggingPriority=
"251"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"kZZ-Mx-zku"
>
<rect
key=
"frame"
x=
"60"
y=
"
92"
width=
"160"
height=
"16
0"
/>
<rect
key=
"frame"
x=
"60"
y=
"
61"
width=
"160"
height=
"19
0"
/>
</imageView>
<label
opaque=
"NO"
userInteractionEnabled=
"NO"
contentMode=
"left"
horizontalHuggingPriority=
"251"
verticalHuggingPriority=
"251"
text=
"欧普经销商名称"
textAlignment=
"center"
lineBreakMode=
"tailTruncation"
baselineAdjustment=
"alignBaselines"
adjustsFontSizeToFit=
"NO"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"Qnn-EJ-jG9"
>
<rect
key=
"frame"
x=
"0.0"
y=
"63"
width=
"281"
height=
"21"
/>
<fontDescription
key=
"fontDescription"
type=
"system"
pointSize=
"15"
/>
<color
key=
"textColor"
red=
"0.11764705882352941"
green=
"0.77647058823529413"
blue=
"0.13333333333333333"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<nil
key=
"highlightedColor"
/>
</label>
</subviews>
<color
key=
"backgroundColor"
white=
"1"
alpha=
"1"
colorSpace=
"custom"
customColorSpace=
"calibratedWhite"
/>
<constraints>
<constraint
firstAttribute=
"trailing"
secondItem=
"kZZ-Mx-zku"
secondAttribute=
"trailing"
constant=
"61"
id=
"APK-0F-TZ6"
/>
<constraint
firstItem=
"kZZ-Mx-zku"
firstAttribute=
"leading"
secondItem=
"i5M-Pr-FkT"
secondAttribute=
"leading"
constant=
"60"
id=
"GXV-eC-ZJb"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"65W-fM-QJC"
secondAttribute=
"trailing"
id=
"L7y-ix-jMK"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"Qnn-EJ-jG9"
secondAttribute=
"trailing"
id=
"MXx-9A-Ffx"
/>
<constraint
firstItem=
"kZZ-Mx-zku"
firstAttribute=
"top"
secondItem=
"i5M-Pr-FkT"
secondAttribute=
"top"
constant=
"92"
id=
"N7Y-JB-Ueu"
/>
<constraint
firstItem=
"Qnn-EJ-jG9"
firstAttribute=
"leading"
secondItem=
"i5M-Pr-FkT"
secondAttribute=
"leading"
id=
"Pna-Q8-0U3"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"65W-fM-QJC"
secondAttribute=
"bottom"
id=
"Ww7-uF-rTQ"
/>
<constraint
first
Item=
"kZZ-Mx-zku"
firstAttribute=
"top"
secondItem=
"Qnn-EJ-jG9"
secondAttribute=
"bottom"
constant=
"8"
id=
"X7q-ck-CM0
"
/>
<constraint
firstItem=
"
Qnn-EJ-jG9"
firstAttribute=
"top"
secondItem=
"i5M-Pr-FkT"
secondAttribute=
"top"
constant=
"63"
id=
"d8h-WT-jvW
"
/>
<constraint
first
Attribute=
"bottom"
secondItem=
"kZZ-Mx-zku"
secondAttribute=
"bottom"
constant=
"127"
id=
"abj-oP-Xla
"
/>
<constraint
firstItem=
"
kZZ-Mx-zku"
firstAttribute=
"top"
secondItem=
"i5M-Pr-FkT"
secondAttribute=
"top"
constant=
"61"
id=
"c9q-Ik-bav
"
/>
<constraint
firstItem=
"65W-fM-QJC"
firstAttribute=
"top"
secondItem=
"i5M-Pr-FkT"
secondAttribute=
"top"
constant=
"13"
id=
"eaq-dy-IeU"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"kZZ-Mx-zku"
secondAttribute=
"bottom"
constant=
"126"
id=
"jSm-lX-Jkm"
/>
<constraint
firstItem=
"65W-fM-QJC"
firstAttribute=
"leading"
secondItem=
"i5M-Pr-FkT"
secondAttribute=
"leading"
id=
"laS-5z-ueR"
/>
<constraint
firstItem=
"kZZ-Mx-zku"
firstAttribute=
"leading"
secondItem=
"i5M-Pr-FkT"
secondAttribute=
"leading"
constant=
"60"
id=
"zAz-0X-GtW"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"kZZ-Mx-zku"
secondAttribute=
"trailing"
constant=
"61"
id=
"zKx-cF-x9a"
/>
</constraints>
<freeformSimulatedSizeMetrics
key=
"simulatedDestinationMetrics"
/>
<point
key=
"canvasLocation"
x=
"448.5"
y=
"228"
/>
...
...
Lighting/Class/ProductCollectionPictureCell.m
View file @
43d5bdfd
...
...
@@ -13,7 +13,7 @@
self
=
[
super
initWithFrame
:
frame
];
if
(
self
)
{
self
.
backgroundColor
=
[
UIColor
whiteColor
];
self
.
productImageView
=
[[
UIImageView
alloc
]
initWithFrame
:
CGRectMake
(
0
,
0
,
frame
.
size
.
width
,
2
*
frame
.
size
.
height
/
3
)];
self
.
productImageView
=
[[
UIImageView
alloc
]
initWithFrame
:
CGRectMake
(
15
,
0
,
frame
.
size
.
width
-
30
,
2
*
frame
.
size
.
height
/
3
)];
[
self
addSubview
:
self
.
productImageView
];
self
.
subView
=
[[
UIView
alloc
]
initWithFrame
:
CGRectMake
(
0
,
2
*
frame
.
size
.
height
/
3
,
frame
.
size
.
width
,
frame
.
size
.
height
/
3
)];
[
self
.
subView
setBackgroundColor
:[
UIColor
whiteColor
]];
...
...
Lighting/Class/ProductLibraryView.h
View file @
43d5bdfd
...
...
@@ -20,7 +20,7 @@
@interface
ProductLibraryView
:
BaseViewController
<
UIGestureRecognizerDelegate
,
UITableViewDelegate
,
UITableViewDataSource
,
UITableViewDataSource
,
UICollectionViewDataSource
,
UICollectionViewDelegate
,
UICollectionViewDelegateFlowLayout
>
@property
(
nonatomic
,
assign
)
id
<
AddProductPicturedelegate
>
delegate
;
@property
(
nonatomic
,
strong
)
id
<
AddProductPicturedelegate
>
delegate
;
@property
(
nonatomic
,
strong
)
UIView
*
subView
;
@property
(
nonatomic
,
strong
)
UIView
*
headerView
;
@property
(
nonatomic
,
strong
)
UITableView
*
seceneTableView
;
...
...
Lighting/Class/ProductLibraryView.m
View file @
43d5bdfd
...
...
@@ -468,7 +468,6 @@
ProductCollectionPictureCell
*
cell
=
(
ProductCollectionPictureCell
*
)[
collectionView
dequeueReusableCellWithReuseIdentifier
:
CellIdentifier
forIndexPath
:
indexPath
];
NSArray
*
imageArray
=
[[[
self
.
datasArray
objectAtIndex_opple
:
indexPath
.
item
]
pictures
]
componentsSeparatedByString
:
@","
];
[
cell
.
productImageView
sd_setImageWithURL
:[
NSURL
URLWithString
:[
imageArray
firstObject
]]
placeholderImage
:
REPLACEIMAGE
];
[
cell
.
productImageView
sd_setImageWithURL
:[
NSURL
URLWithString
:[
imageArray
firstObject
]]
placeholderImage
:
REPLACEIMAGE
];
cell
.
productDesce
.
text
=
[[
self
.
datasArray
objectAtIndex_opple
:
indexPath
.
item
]
name
];
TOGoodsEntity
*
model
=
[
self
.
datasArray
objectAtIndex_opple
:
indexPath
.
item
];
...
...
Lighting/Class/ProductLibraryViewController.m
View file @
43d5bdfd
...
...
@@ -12,6 +12,7 @@
#import "ScreeningView.h"
#import "screeningFirstView.h"
#import "screeningSecondView.h"
#import "ExperienceCentreViewController.h"
@interface
ProductLibraryViewController
()
<
UICollectionViewDelegate
,
UICollectionViewDataSource
,
UIGestureRecognizerDelegate
,
ScreeningButtonClickdelegate
,
TableviewSelectedIndexdelegate
,
SelectedCollectionItemDelegate
>
...
...
@@ -117,7 +118,6 @@
-
(
void
)
viewDidLoad
{
[
super
viewDidLoad
];
// Do any additional setup after loading the view.
self
.
view
.
backgroundColor
=
[
UIColor
blueColor
];
[
self
uiConfigAction
];
[
self
GetdatasAction
];
...
...
@@ -506,7 +506,15 @@
#pragma mark -筛选
-
(
void
)
ScreeningButtonClick
{
// ExperienceCentreViewController *ExperienceCenter = [[self getStoryboardWithName] instantiateViewControllerWithIdentifier:@"ExperienceCentre"];
//// [self presentViewController:ExperienceCenter animated:YES completion:nil];
//
// ExperienceCenter.modalPresentationStyle = UIModalPresentationOverFullScreen;
// UIPopoverPresentationController *popover = ExperienceCenter.popoverPresentationController;
// popover.sourceView = ExperienceCenter.view;
// [self presentViewController:ExperienceCenter animated:YES completion:nil];
self
.
screenView
=
[[[
NSBundle
mainBundle
]
loadNibNamed
:
@"ScreeningView"
owner
:
self
options
:
nil
]
firstObject
];
self
.
screenView
.
frame
=
CGRectMake
(
0
,
0
,
ScreenWidth
,
ScreenHeight
);
self
.
screenView
.
backgroundColor
=
[[
UIColor
blackColor
]
colorWithAlphaComponent
:
0
.
5
];
...
...
@@ -684,11 +692,12 @@
if
(
self
.
temporaryArray
.
goodsEntity
.
count
==
0
)
{
[
self
ErrorMBProgressView
:
@"暂无数据"
];
return
;
}
else
{
self
.
datasArray
=
[
NSMutableArray
arrayWithArray
:
self
.
temporaryArray
.
goodsEntity
];
[
self
.
productCollectionView
reloadData
];
[
self
DismissScreenView
];
}
self
.
datasArray
=
[
NSMutableArray
arrayWithArray
:
self
.
temporaryArray
.
goodsEntity
];
[
self
.
productCollectionView
reloadData
];
[
self
DismissScreenView
];
}
...
...
Lighting/Class/SeceneCollectionPictureCell.m
View file @
43d5bdfd
...
...
@@ -22,7 +22,7 @@
{
_model
=
model
;
[
self
.
imageView
sd_setImageWithURL
:[
NSURL
URLWithString
:
_model
.
pricure
]
placeholderImage
:
R
eplaceImage
];
[
self
.
imageView
sd_setImageWithURL
:[
NSURL
URLWithString
:
_model
.
pricure
]
placeholderImage
:
R
EPLACEIMAGE
];
}
@end
Lighting/Class/Tabbar/Toolview.m
View file @
43d5bdfd
...
...
@@ -43,9 +43,8 @@
{
//阴影
self
.
layer
.
shadowColor
=
[
UIColor
blackColor
].
CGColor
;
self
.
layer
.
shadowRadius
=
4
;
self
.
layer
.
shadowRadius
=
10
;
self
.
layer
.
shadowOpacity
=
0
.
5
;
self
.
layer
.
shadowOffset
=
CGSizeMake
(
0
,
0
);
//图标
UIImageView
*
iconImage
=
[[
UIImageView
alloc
]
initWithFrame
:
CGRectMake
(
50
,
13
,
115
,
35
)];
...
...
Lighting/Lighting.xcodeproj/project.pbxproj
View file @
43d5bdfd
This diff is collapsed.
Click to expand it.
Lighting/Lighting/StoryboardwithCYX.storyboard
View file @
43d5bdfd
This diff is collapsed.
Click to expand it.
Lighting/Tools/ExperienceCentreViewController.h
0 → 100644
View file @
43d5bdfd
//
// ExperienceCentreViewController.h
// Lighting
//
// Created by 曹云霄 on 16/6/1.
// Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//
#import "BaseViewController.h"
@interface
ExperienceCentreViewController
:
BaseViewController
/**
* 场景图片
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UIImageView
*
sceneImageView
;
/**
* 返回按钮
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UIButton
*
returnButton
;
/**
* 购物袋按钮
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UIButton
*
shoppingbagButton
;
/**
* 分享按钮
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UIButton
*
shareButton
;
/**
* 拍照按钮
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UIButton
*
takingPicturesButton
;
/**
* 放大按钮
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UIButton
*
amplificationButton
;
/**
* 帮助按钮
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UIButton
*
helpButton
;
/***********************************功能区*************************************/
/**
* 场景筛选
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UIButton
*
sceneSelectedButton
;
/**
* 场景展示
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UIScrollView
*
sceneScrollview
;
/**
* 产品筛选
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UIButton
*
productSelectedButton
;
/**
* 产品展示
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UIScrollView
*
productScrollview
;
@end
Lighting/Tools/ExperienceCentreViewController.m
0 → 100644
View file @
43d5bdfd
//
// ExperienceCentreViewController.m
// Lighting
//
// Created by 曹云霄 on 16/6/1.
// Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//
#import "ExperienceCentreViewController.h"
#import "SceneViewController.h"
@interface
ExperienceCentreViewController
()
@end
@implementation
ExperienceCentreViewController
-
(
void
)
viewDidLoad
{
[
super
viewDidLoad
];
// Do any additional setup after loading the view.
}
#pragma mark -返回
-
(
IBAction
)
ReturnButtonClickAction
:
(
UIButton
*
)
sender
{
[
self
dismissViewControllerAnimated
:
YES
completion
:
nil
];
}
#pragma mark -购物袋
-
(
IBAction
)
ShoppingBagButtonClickAction
:
(
UIButton
*
)
sender
{
}
#pragma mark -分享
-
(
IBAction
)
ShareButtonClickAction
:
(
UIButton
*
)
sender
{
}
#pragma mark -拍照
-
(
IBAction
)
TakingPhotoButtonClickAction
:
(
UIButton
*
)
sender
{
}
#pragma mark -全屏
-
(
IBAction
)
AmplificationButtonClickAction
:
(
UIButton
*
)
sender
{
}
#pragma mark -帮助
-
(
IBAction
)
HelpButtonClickAction
:
(
UIButton
*
)
sender
{
}
/**************************功能区**************************/
#pragma mark -场景筛选
-
(
IBAction
)
SceneSelectedButtonClickAction
:
(
UIButton
*
)
sender
{
SceneViewController
*
sceneVC
=
[[
self
getStoryboardWithName
]
instantiateViewControllerWithIdentifier
:
@"SceneController"
];
sceneVC
.
view
.
backgroundColor
=
[[
UIColor
blackColor
]
colorWithAlphaComponent
:
0
.
1
];
sceneVC
.
modalPresentationStyle
=
UIModalPresentationOverFullScreen
;
UIPopoverPresentationController
*
pop
=
sceneVC
.
popoverPresentationController
;
pop
.
sourceView
=
sceneVC
.
view
;
[
self
presentViewController
:
sceneVC
animated
:
YES
completion
:
nil
];
}
#pragma mark -产品筛选
-
(
IBAction
)
ProductSelectedButtonClickAction
:
(
UIButton
*
)
sender
{
}
-
(
void
)
didReceiveMemoryWarning
{
[
super
didReceiveMemoryWarning
];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
Lighting/Tools/SceneViewController.h
0 → 100644
View file @
43d5bdfd
//
// SceneViewController.h
// Lighting
//
// Created by 曹云霄 on 16/6/1.
// Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//
#import "BaseViewController.h"
@interface
SceneViewController
:
BaseViewController
/**
* 场景或商品列表
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UICollectionView
*
sceneOrProductClollectionView
;
/**
* UICollectionViewLayout
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UICollectionViewFlowLayout
*
collectionViewLayout
;
/************************筛选条件*****************************/
/**
* 筛选tableview
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UITableView
*
screeningTableView
;
/**
* 风格
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UIButton
*
styleButton
;
/**
* 类型
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UIButton
*
typeButton
;
/**
* 空间
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UIButton
*
spaceButton
;
/**
* 材质
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UIButton
*
materialButton
;
/**
* 价格
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UIButton
*
priceButton
;
/**
* 拦截点击事件(列表背景)
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UIView
*
clickEventView
;
@end
Lighting/Tools/SceneViewController.m
0 → 100644
View file @
43d5bdfd
//
// SceneViewController.m
// Lighting
//
// Created by 曹云霄 on 16/6/1.
// Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//
#import "SceneViewController.h"
#import "ScreeningTableViewCell.h"
#import "ScreeningCollectionViewCell.h"
@interface
SceneViewController
()
<
UITableViewDelegate
,
UITableViewDataSource
,
UIGestureRecognizerDelegate
,
UICollectionViewDelegate
,
UICollectionViewDataSource
>
@end
@implementation
SceneViewController
-
(
void
)
viewDidLoad
{
[
super
viewDidLoad
];
// Do any additional setup after loading the view.
[
self
UiConfigAction
];
[
self
ReturnDismiss
];
}
#pragma mark -UI
-
(
void
)
UiConfigAction
{
self
.
styleButton
.
layer
.
masksToBounds
=
YES
;
self
.
styleButton
.
layer
.
cornerRadius
=
kSelectedCornerRadius
;
self
.
typeButton
.
layer
.
masksToBounds
=
YES
;
self
.
typeButton
.
layer
.
cornerRadius
=
kSelectedCornerRadius
;
self
.
spaceButton
.
layer
.
masksToBounds
=
YES
;
self
.
spaceButton
.
layer
.
cornerRadius
=
kSelectedCornerRadius
;
self
.
materialButton
.
layer
.
masksToBounds
=
YES
;
self
.
materialButton
.
layer
.
cornerRadius
=
kSelectedCornerRadius
;
self
.
priceButton
.
layer
.
masksToBounds
=
YES
;
self
.
priceButton
.
layer
.
cornerRadius
=
kSelectedCornerRadius
;
//筛选Tableview
self
.
screeningTableView
.
delegate
=
self
;
self
.
screeningTableView
.
dataSource
=
self
;
[
self
.
screeningTableView
registerClass
:[
ScreeningTableViewCell
class
]
forCellReuseIdentifier
:
@"ScreeningCellNew"
];
//数据列表UICollectionView
self
.
collectionViewLayout
.
itemSize
=
CGSizeMake
((
self
.
sceneOrProductClollectionView
.
mj_w
-
40
)
/
3
,
(
self
.
sceneOrProductClollectionView
.
mj_w
-
40
)
/
4
);
self
.
collectionViewLayout
.
minimumLineSpacing
=
10
;
self
.
collectionViewLayout
.
minimumInteritemSpacing
=
10
;
self
.
collectionViewLayout
.
sectionInset
=
UIEdgeInsetsMake
(
10
,
10
,
10
,
10
);
self
.
sceneOrProductClollectionView
.
dataSource
=
self
;
self
.
sceneOrProductClollectionView
.
delegate
=
self
;
}
#pragma mark - UITableViewDataSource代理
-
(
NSInteger
)
tableView
:
(
UITableView
*
)
tableView
numberOfRowsInSection
:
(
NSInteger
)
section
{
return
3
;
}
-
(
UITableViewCell
*
)
tableView
:
(
UITableView
*
)
tableView
cellForRowAtIndexPath
:
(
NSIndexPath
*
)
indexPath
{
ScreeningTableViewCell
*
cell
=
[
tableView
dequeueReusableCellWithIdentifier
:
@"ScreeningCellNew"
forIndexPath
:
indexPath
];
cell
.
screeningLabe
.
text
=
@"主卧室"
;
return
cell
;
}
-
(
CGFloat
)
tableView
:
(
UITableView
*
)
tableView
heightForRowAtIndexPath
:
(
NSIndexPath
*
)
indexPath
{
return
55
;
}
#pragma mark -UICollectionViewDataSource代理
-
(
NSInteger
)
collectionView
:
(
UICollectionView
*
)
collectionView
numberOfItemsInSection
:
(
NSInteger
)
section
{
return
10
;
}
-
(
UICollectionViewCell
*
)
collectionView
:
(
UICollectionView
*
)
collectionView
cellForItemAtIndexPath
:
(
NSIndexPath
*
)
indexPath
{
ScreeningCollectionViewCell
*
cell
=
[
collectionView
dequeueReusableCellWithReuseIdentifier
:
@"ScreeningCollectioncell"
forIndexPath
:
indexPath
];
cell
.
layer
.
shadowColor
=
[
UIColor
blackColor
].
CGColor
;
cell
.
layer
.
shadowRadius
=
4
;
cell
.
layer
.
shadowOpacity
=
0
.
7
;
cell
.
contentView
.
layer
.
shadowOffset
=
CGSizeMake
(
0
,
0
);
cell
.
layer
.
masksToBounds
=
NO
;
return
cell
;
}
#pragma mark -筛选条件
-
(
IBAction
)
ScreeningConditionsSelectedButtonClick
:
(
UIButton
*
)
sender
{
switch
(
sender
.
tag
)
{
case
100
:
//风格
{
}
break
;
case
101
:
//类型
{
}
break
;
case
102
:
//空间
{
}
break
;
case
103
:
//材质
{
}
break
;
case
104
:
//价格
{
}
break
;
default
:
break
;
}
}
#pragma mark -UIGestureRecognizerDelegate代理
-
(
BOOL
)
gestureRecognizer
:
(
UIGestureRecognizer
*
)
gestureRecognizer
shouldReceiveTouch
:
(
UITouch
*
)
touch
{
//取消子视图的的时间穿透,否则子视图的点击无效,会被传递到父视图响应
if
(
CGRectContainsPoint
(
self
.
clickEventView
.
frame
,
[
touch
locationInView
:
self
.
view
.
window
]))
{
return
NO
;
}
return
YES
;
}
#pragma mark -返回手势
-
(
void
)
ReturnDismiss
{
UITapGestureRecognizer
*
tap
=
[[
UITapGestureRecognizer
alloc
]
initWithTarget
:
self
action
:
@selector
(
ReturnButtonClickAction
)];
tap
.
delegate
=
self
;
[
self
.
view
addGestureRecognizer
:
tap
];
}
#pragma mark -销毁
-
(
void
)
ReturnButtonClickAction
{
[
self
dismissViewControllerAnimated
:
YES
completion
:
nil
];
}
-
(
void
)
didReceiveMemoryWarning
{
[
super
didReceiveMemoryWarning
];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
Lighting/Tools/ScreeningCollectionViewCell.h
0 → 100644
View file @
43d5bdfd
//
// ScreeningCollectionViewCell.h
// Lighting
//
// Created by 曹云霄 on 16/6/1.
// Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface
ScreeningCollectionViewCell
:
UICollectionViewCell
/**
* 场景图片
*/
@property
(
weak
,
nonatomic
)
IBOutlet
UIImageView
*
sceneImageView
;
@end
Lighting/Tools/ScreeningCollectionViewCell.m
0 → 100644
View file @
43d5bdfd
//
// ScreeningCollectionViewCell.m
// Lighting
//
// Created by 曹云霄 on 16/6/1.
// Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//
#import "ScreeningCollectionViewCell.h"
@implementation
ScreeningCollectionViewCell
@end
Lighting/Tools/ScreeningTableViewCell.h
0 → 100644
View file @
43d5bdfd
//
// ScreeningTableViewCell.h
// Lighting
//
// Created by 曹云霄 on 16/6/1.
// Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface
ScreeningTableViewCell
:
UITableViewCell
/**
* 筛选条件UIlabe
*/
@property
(
nonatomic
,
strong
)
UILabel
*
screeningLabe
;
/**
* title
*/
@property
(
nonatomic
,
copy
)
NSString
*
screeningTitle
;
@end
Lighting/Tools/ScreeningTableViewCell.m
0 → 100644
View file @
43d5bdfd
//
// ScreeningTableViewCell.m
// Lighting
//
// Created by 曹云霄 on 16/6/1.
// Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//
#import "ScreeningTableViewCell.h"
@implementation
ScreeningTableViewCell
-
(
void
)
awakeFromNib
{
[
super
awakeFromNib
];
// Initialization code
}
-
(
instancetype
)
initWithStyle
:
(
UITableViewCellStyle
)
style
reuseIdentifier
:
(
NSString
*
)
reuseIdentifier
{
if
(
self
=
[
super
initWithStyle
:
style
reuseIdentifier
:
reuseIdentifier
])
{
self
.
screeningLabe
=
[[
UILabel
alloc
]
initWithFrame
:
CGRectMake
(
0
,
0
,
100
,
55
)];
self
.
screeningLabe
.
textColor
=
kTCColor
(
170
,
170
,
170
);
self
.
screeningLabe
.
font
=
[
UIFont
systemFontOfSize
:
13
];
self
.
screeningLabe
.
textAlignment
=
NSTextAlignmentCenter
;
[
self
.
contentView
addSubview
:
self
.
screeningLabe
];
}
return
self
;
}
-
(
void
)
setSelected
:
(
BOOL
)
selected
animated
:
(
BOOL
)
animated
{
[
super
setSelected
:
selected
animated
:
animated
];
// Configure the view for the selected state
}
@end
Lighting/Tools/opple_objc_json_client.h
View file @
43d5bdfd
This diff is collapsed.
Click to expand it.
Lighting/Tools/opple_objc_json_client.m
View file @
43d5bdfd
...
...
@@ -194,7 +194,39 @@
@end
@implementation
TOGoodsEntity
@implementation
TOConsumerEntity
@synthesize
fid
;
@synthesize
createName
;
@synthesize
createBy
;
@synthesize
createDate
;
@synthesize
sysOrgCode
;
@synthesize
name
;
@synthesize
mobile
;
@synthesize
province
;
@synthesize
city
;
@synthesize
country
;
@synthesize
address
;
@synthesize
picture
;
@synthesize
lastVisitedTime
;
@synthesize
company
;
+
(
BOOL
)
propertyIsOptional
:(
NSString
*
)
propertyName
{
return
YES
;
}
+
(
JSONKeyMapper
*
)
keyMapper
{
return
[[
JSONKeyMapper
alloc
]
initWithDictionary
:@{
@"id"
:
@"fid"
,
}];
}
@end
@implementation
VOResellerGoodsEntity
@synthesize
fid
;
@synthesize
createDate
;
@synthesize
onlineTime
;
...
...
@@ -229,6 +261,9 @@
@synthesize
lightNumber
;
@synthesize
pictures
;
@synthesize
barcode
;
@synthesize
resellerId
;
@synthesize
categoryName
;
@synthesize
brandName
;
+
(
BOOL
)
propertyIsOptional
:(
NSString
*
)
propertyName
{
...
...
@@ -246,18 +281,13 @@
@end
@implementation
TOGoodsBrandEntity
@implementation
TOGoodsCategoryEntity
@synthesize
upperName
;
@synthesize
fid
;
@synthesize
createName
;
@synthesize
createBy
;
@synthesize
createDate
;
@synthesize
sysOrgCode
;
@synthesize
sysCompanyCode
;
@synthesize
code
;
@synthesize
name
;
@synthesize
state
;
@synthesize
logo
;
@synthesize
fdescription
;
@synthesize
upperId
;
@synthesize
level
;
+
(
BOOL
)
propertyIsOptional
:(
NSString
*
)
propertyName
{
...
...
@@ -268,7 +298,6 @@
+
(
JSONKeyMapper
*
)
keyMapper
{
return
[[
JSONKeyMapper
alloc
]
initWithDictionary
:@{
@"description"
:
@"fdescription"
,
@"id"
:
@"fid"
,
}];
}
...
...
@@ -276,13 +305,12 @@
@end
@implementation
TOGoodsLabelEntity
@synthesize
category
;
@implementation
TOGoodsLabelCategoryEntity
@synthesize
fid
;
@synthesize
sysOrgCode
;
@synthesize
sysCompanyCode
;
@synthesize
code
;
@synthesize
name
;
@synthesize
categoryId
;
+
(
BOOL
)
propertyIsOptional
:(
NSString
*
)
propertyName
{
...
...
@@ -300,9 +328,31 @@
@end
@implementation
TO
Hottag
Entity
@implementation
TO
Order
Entity
@synthesize
fid
;
@synthesize
name
;
@synthesize
createName
;
@synthesize
createBy
;
@synthesize
createDate
;
@synthesize
updateName
;
@synthesize
updateBy
;
@synthesize
updateDate
;
@synthesize
sysOrgCode
;
@synthesize
orderNumber
;
@synthesize
orderTime
;
@synthesize
guideId
;
@synthesize
orderState
;
@synthesize
consumerId
;
@synthesize
goodsNum
;
@synthesize
orderPrice
;
@synthesize
receiverName
;
@synthesize
receiverMobile
;
@synthesize
receiverAddress
;
@synthesize
isBill
;
@synthesize
billType
;
@synthesize
billTitle
;
@synthesize
payType
;
@synthesize
consumerName
;
@synthesize
guideName
;
+
(
BOOL
)
propertyIsOptional
:(
NSString
*
)
propertyName
{
...
...
@@ -320,20 +370,12 @@
@end
@implementation
TO
Orderdetail
Entity
@implementation
TO
Position
Entity
@synthesize
fid
;
@synthesize
goodsId
;
@synthesize
goodsCode
;
@synthesize
goodsName
;
@synthesize
goodsCover
;
@synthesize
goodsSpec
;
@synthesize
goodsBrand
;
@synthesize
goodsNum
;
@synthesize
goodsPrice
;
@synthesize
goodsTotalPrice
;
@synthesize
orderId
;
@synthesize
goodsUnit
;
@synthesize
remark
;
@synthesize
code
;
@synthesize
name
;
@synthesize
commission
;
@synthesize
resellerCode
;
+
(
BOOL
)
propertyIsOptional
:(
NSString
*
)
propertyName
{
...
...
@@ -351,14 +393,17 @@
@end
@implementation
TOS
cene
Entity
@implementation
TOS
hippingAddr
Entity
@synthesize
fid
;
@synthesize
sceneCode
;
@synthesize
createDate
;
@synthesize
sysOrgCode
;
@synthesize
name
;
@synthesize
pricure
;
@synthesize
category
;
@synthesize
style
;
@synthesize
space
;
@synthesize
miblephone
;
@synthesize
province
;
@synthesize
city
;
@synthesize
country
;
@synthesize
address
;
@synthesize
consumerId
;
+
(
BOOL
)
propertyIsOptional
:(
NSString
*
)
propertyName
{
...
...
@@ -407,6 +452,12 @@
@end
#ifndef DEF_SortDirection_M
#define DEF_SortDirection_M
NSString
*
const
SORTDIRECTION_ASC
=
@"asc"
;
NSString
*
const
SORTDIRECTION_DESC
=
@"desc"
;
#endif
/* DEF_SortDirection_M */
@implementation
IdEntity
@synthesize
fid
;
...
...
@@ -426,23 +477,14 @@
@end
#ifndef DEF_SortDirection_M
#define DEF_SortDirection_M
NSString
*
const
SORTDIRECTION_ASC
=
@"asc"
;
NSString
*
const
SORTDIRECTION_DESC
=
@"desc"
;
#endif
/* DEF_SortDirection_M */
@implementation
TOShippingAddrEntity
@implementation
TOSceneEntity
@synthesize
fid
;
@synthesize
createDate
;
@synthesize
sysOrgCode
;
@synthesize
sceneCode
;
@synthesize
name
;
@synthesize
miblephone
;
@synthesize
province
;
@synthesize
city
;
@synthesize
country
;
@synthesize
address
;
@synthesize
consumerId
;
@synthesize
pricure
;
@synthesize
category
;
@synthesize
style
;
@synthesize
space
;
+
(
BOOL
)
propertyIsOptional
:(
NSString
*
)
propertyName
{
...
...
@@ -460,12 +502,20 @@ NSString * const SORTDIRECTION_DESC = @"desc";
@end
@implementation
TO
Position
Entity
@implementation
TO
Orderdetail
Entity
@synthesize
fid
;
@synthesize
code
;
@synthesize
name
;
@synthesize
commission
;
@synthesize
resellerCode
;
@synthesize
goodsId
;
@synthesize
goodsCode
;
@synthesize
goodsName
;
@synthesize
goodsCover
;
@synthesize
goodsSpec
;
@synthesize
goodsBrand
;
@synthesize
goodsNum
;
@synthesize
goodsPrice
;
@synthesize
goodsTotalPrice
;
@synthesize
orderId
;
@synthesize
goodsUnit
;
@synthesize
remark
;
+
(
BOOL
)
propertyIsOptional
:(
NSString
*
)
propertyName
{
...
...
@@ -483,29 +533,9 @@ NSString * const SORTDIRECTION_DESC = @"desc";
@end
@implementation
TO
Order
Entity
@implementation
TO
Hottag
Entity
@synthesize
fid
;
@synthesize
createName
;
@synthesize
createBy
;
@synthesize
createDate
;
@synthesize
updateName
;
@synthesize
updateBy
;
@synthesize
updateDate
;
@synthesize
sysOrgCode
;
@synthesize
orderNumber
;
@synthesize
orderTime
;
@synthesize
guideId
;
@synthesize
orderState
;
@synthesize
consumerId
;
@synthesize
goodsNum
;
@synthesize
orderPrice
;
@synthesize
receiverName
;
@synthesize
receiverMobile
;
@synthesize
receiverAddress
;
@synthesize
isBill
;
@synthesize
billType
;
@synthesize
billTitle
;
@synthesize
payType
;
@synthesize
name
;
+
(
BOOL
)
propertyIsOptional
:(
NSString
*
)
propertyName
{
...
...
@@ -523,12 +553,13 @@ NSString * const SORTDIRECTION_DESC = @"desc";
@end
@implementation
TOGoodsLabelCategoryEntity
@implementation
TOGoodsLabelEntity
@synthesize
category
;
@synthesize
fid
;
@synthesize
sysOrgCode
;
@synthesize
sysCompanyCode
;
@synthesize
code
;
@synthesize
name
;
@synthesize
categoryId
;
+
(
BOOL
)
propertyIsOptional
:(
NSString
*
)
propertyName
{
...
...
@@ -546,13 +577,18 @@ NSString * const SORTDIRECTION_DESC = @"desc";
@end
@implementation
TOGoodsCategoryEntity
@synthesize
upperName
;
@implementation
TOGoodsBrandEntity
@synthesize
fid
;
@synthesize
createName
;
@synthesize
createBy
;
@synthesize
createDate
;
@synthesize
sysOrgCode
;
@synthesize
sysCompanyCode
;
@synthesize
code
;
@synthesize
name
;
@synthesize
upperId
;
@synthesize
level
;
@synthesize
state
;
@synthesize
logo
;
@synthesize
fdescription
;
+
(
BOOL
)
propertyIsOptional
:(
NSString
*
)
propertyName
{
...
...
@@ -563,6 +599,7 @@ NSString * const SORTDIRECTION_DESC = @"desc";
+
(
JSONKeyMapper
*
)
keyMapper
{
return
[[
JSONKeyMapper
alloc
]
initWithDictionary
:@{
@"description"
:
@"fdescription"
,
@"id"
:
@"fid"
,
}];
}
...
...
@@ -570,7 +607,12 @@ NSString * const SORTDIRECTION_DESC = @"desc";
@end
@implementation
VOResellerGoodsEntity
@implementation
TOGoodsEntity
@synthesize
resellerInv
;
@synthesize
resellerTagPrice
;
@synthesize
resellerState
;
@synthesize
categoryname
;
@synthesize
brandName
;
@synthesize
fid
;
@synthesize
createDate
;
@synthesize
onlineTime
;
...
...
@@ -605,7 +647,6 @@ NSString * const SORTDIRECTION_DESC = @"desc";
@synthesize
lightNumber
;
@synthesize
pictures
;
@synthesize
barcode
;
@synthesize
resellerId
;
+
(
BOOL
)
propertyIsOptional
:(
NSString
*
)
propertyName
{
...
...
@@ -623,20 +664,9 @@ NSString * const SORTDIRECTION_DESC = @"desc";
@end
@implementation
TOConsumerEntity
@synthesize
fid
;
@synthesize
createName
;
@synthesize
createBy
;
@synthesize
createDate
;
@synthesize
sysOrgCode
;
@synthesize
name
;
@synthesize
mobile
;
@synthesize
province
;
@synthesize
city
;
@synthesize
country
;
@synthesize
address
;
@synthesize
picture
;
@synthesize
lastVisitedTime
;
@implementation
RsShareResponse
@synthesize
shareId
;
@synthesize
url
;
+
(
BOOL
)
propertyIsOptional
:(
NSString
*
)
propertyName
{
...
...
@@ -644,14 +674,6 @@ NSString * const SORTDIRECTION_DESC = @"desc";
}
+
(
JSONKeyMapper
*
)
keyMapper
{
return
[[
JSONKeyMapper
alloc
]
initWithDictionary
:@{
@"id"
:
@"fid"
,
}];
}
@end
@implementation
DeleteCartRequest
...
...
@@ -712,7 +734,6 @@ NSString * const SORTDIRECTION_DESC = @"desc";
@implementation
ResetPasswordRequest
@synthesize
username
;
@synthesize
smsCode
;
@synthesize
fnewPassword
;
+
(
BOOL
)
propertyIsOptional
:(
NSString
*
)
propertyName
...
...
@@ -834,8 +855,9 @@ NSString * const SORTDIRECTION_DESC = @"desc";
@end
@implementation
ShopCartResponse
@synthesize
shopcart
;
@implementation
TSUserOrg
@synthesize
tsUser
;
@synthesize
tsDepart
;
+
(
BOOL
)
propertyIsOptional
:(
NSString
*
)
propertyName
{
...
...
@@ -845,9 +867,8 @@ NSString * const SORTDIRECTION_DESC = @"desc";
@end
@implementation
TSUserOrg
@synthesize
tsUser
;
@synthesize
tsDepart
;
@implementation
ShopCartResponse
@synthesize
shopcart
;
+
(
BOOL
)
propertyIsOptional
:(
NSString
*
)
propertyName
{
...
...
@@ -924,6 +945,7 @@ NSString * const SORTDIRECTION_DESC = @"desc";
@implementation
TOEmployee
@synthesize
positions
;
@synthesize
positionsName
;
+
(
BOOL
)
propertyIsOptional
:(
NSString
*
)
propertyName
{
...
...
Lighting/Tools/qq.png
deleted
100755 → 0
View file @
5c3bbb32
1.59 KB
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