Commit 67915edf7807b54333651b0d4091fb31f5d00d02

Authored by yinqiaojuan
1 parent 0a5f7c4e

no message

Showing 36 changed files with 2808 additions and 80 deletions
CNLiveMyOrder.podspec
... ... @@ -31,6 +31,7 @@ TODO: Add long description of the pod here.
31 31 s.subspec 'View' do |view|
32 32 view.dependency 'CNLiveTripartiteManagement/QMUIKit'
33 33 view.dependency 'CNLiveMyOrder/Model'
  34 + view.dependency 'CNLiveMyOrder/Common'
34 35 view.dependency 'CNLiveBaseKit'
35 36 view.dependency 'CNLiveTripartiteManagement/Masonry'
36 37 view.dependency 'CNLiveCommonCategory'
... ... @@ -43,14 +44,26 @@ TODO: Add long description of the pod here.
43 44 view.dependency 'CNLiveTripartiteManagement/MJExtension'
44 45 view.dependency 'CNLiveEnvironmentConfiguration'
45 46 view.dependency 'CNLiveUserManagement'
  47 + view.dependency 'CNLiveIMBaseSDK'
46 48 view.source_files = 'CNLiveMyOrder/Classes/View/*.{h,m}'
47 49 end
48 50 s.subspec 'Controller' do |controller|
49 51 #controller.dependency 'CNLiveMyOrder/Model'
50 52 controller.dependency 'CNLiveCommonClass'
51 53 controller.dependency 'CNLiveMyOrder/View'
  54 + controller.dependency 'CNLiveMyOrder/Common'
  55 + controller.dependency 'CNLiveTripartiteManagement/QMUIKit'
  56 + controller.dependency 'CNLiveRequestBastKit'
  57 + controller.dependency 'CNLiveBaseKit'
  58 + controller.dependency 'CNLiveEnvironmentConfiguration'
  59 + controller.dependency 'CNLiveUserManagement'
  60 + controller.dependency 'CNLiveTripartiteManagement/YYKit'
  61 + controller.dependency 'CNLiveIMBaseSDK'
52 62 controller.source_files = 'CNLiveMyOrder/Classes/Controller/*.{h,m}'
53 63 end
  64 + s.subspec 'Common' do |common|
  65 + common.source_files = 'CNLiveMyOrder/Classes/Common/*.{h,m}'
  66 + end
54 67 s.source_files = 'CNLiveMyOrder/Classes/**/*'
55 68  
56 69 s.resource_bundles = {
... ...
CNLiveMyOrder/Assets/CNLiveMyOrder.bundle/dd_wufukuan.png 0 → 100644

3.35 KB

CNLiveMyOrder/Assets/CNLiveMyOrder.bundle/dd_wufukuan@2x.png 0 → 100644

6.08 KB

CNLiveMyOrder/Assets/CNLiveMyOrder.bundle/dd_wufukuan@3x.png 0 → 100644

9 KB

CNLiveMyOrder/Assets/CNLiveMyOrder.bundle/dd_wupingjia.png 0 → 100644

2.73 KB

CNLiveMyOrder/Assets/CNLiveMyOrder.bundle/dd_wupingjia@2x.png 0 → 100644

4.7 KB

CNLiveMyOrder/Assets/CNLiveMyOrder.bundle/dd_wupingjia@3x.png 0 → 100644

6.78 KB

CNLiveMyOrder/Assets/CNLiveMyOrder.bundle/dd_wushouhuo.png 0 → 100644

2.52 KB

CNLiveMyOrder/Assets/CNLiveMyOrder.bundle/dd_wushouhuo@2x.png 0 → 100644

4.57 KB

CNLiveMyOrder/Assets/CNLiveMyOrder.bundle/dd_wushouhuo@3x.png 0 → 100644

6.71 KB

CNLiveMyOrder/Classes/Common/CNLiveGetImage.h 0 → 100644
  1 +//
  2 +// CNLiveGetImage.h
  3 +// CNLiveMyOrder
  4 +//
  5 +// Created by 殷巧娟 on 2019/6/18.
  6 +//
  7 +
  8 +#import <Foundation/Foundation.h>
  9 +
  10 +NS_ASSUME_NONNULL_BEGIN
  11 +
  12 +@interface CNLiveGetImage : NSObject
  13 ++ (UIImage *)cnliveGetImageWithName:(NSString *)name bundle:(NSString *)bundleName targetClass:(Class)targetClass;
  14 +@end
  15 +
  16 +NS_ASSUME_NONNULL_END
... ...
CNLiveMyOrder/Classes/Common/CNLiveGetImage.m 0 → 100644
  1 +//
  2 +// CNLiveGetImage.m
  3 +// CNLiveMyOrder
  4 +//
  5 +// Created by 殷巧娟 on 2019/6/18.
  6 +//
  7 +
  8 +#import "CNLiveGetImage.h"
  9 +
  10 +@implementation CNLiveGetImage
  11 ++ (UIImage *)cnliveGetImageWithName:(NSString *)name bundle:(NSString *)bundleName targetClass:(Class)targetClass {
  12 + NSInteger scale = [[UIScreen mainScreen]scale];
  13 + NSBundle *bundle = [NSBundle bundleForClass:targetClass];
  14 + NSURL *url = [bundle URLForResource:bundleName withExtension:@"bundle"];
  15 + if (!url) {
  16 + return [UIImage new];
  17 + }
  18 + NSBundle *targetBundle = [NSBundle bundleWithURL:url];
  19 + if (!targetBundle) {
  20 + return [UIImage new];
  21 + }
  22 + NSString *imageName = [NSString stringWithFormat:@"%@@%zdx.png",name,scale];
  23 + UIImage *image = [UIImage imageNamed:imageName inBundle:targetBundle compatibleWithTraitCollection:nil];
  24 + if (image) {
  25 + return image;
  26 + }else {
  27 + if ([UIImage imageNamed:imageName inBundle:[NSBundle mainBundle] compatibleWithTraitCollection:nil]) {
  28 + return [UIImage imageNamed:imageName inBundle:[NSBundle mainBundle] compatibleWithTraitCollection:nil];
  29 + }else {
  30 + return [UIImage new];
  31 + }
  32 + }
  33 +}
  34 +@end
... ...
CNLiveMyOrder/Classes/Controller/CNLiveMineOrderController.m
... ... @@ -10,6 +10,7 @@
10 10 #import "CNLiveBaseKit.h"
11 11 #import "UIColor+CNLiveExtension.h"
12 12 #import "CNLiveOrderListCommonView.h"
  13 +#import "CNLiveOrderDetailController.h"
13 14 #define Segment_Height 50
14 15 #define kViewCommonGrayColor [UIColor colorWithRed:0.97 green:0.97 blue:0.97 alpha:1.00]
15 16 @interface CNLiveMineOrderController ()<UIScrollViewDelegate>
... ... @@ -28,7 +29,9 @@
28 29 @end
29 30  
30 31 @implementation CNLiveMineOrderController
31   -
  32 +- (void)dealloc {
  33 + NSLog(@"订单页面走了dealloc了吗");
  34 +}
32 35 - (instancetype)initWithType:(NSInteger)type {
33 36 if (self = [super init]) {
34 37 _curSeleIndex = type;
... ... @@ -56,6 +59,7 @@
56 59 [self.scrollView addSubview:self.payTblView];
57 60 [self.scrollView addSubview:self.goodsTblView];
58 61 [self.scrollView addSubview:self.evaluateTblView];
  62 + [self cellDidSelected];
59 63 }
60 64 /** 添加标题栏 */
61 65 - (void)addTitleLables {
... ... @@ -125,6 +129,7 @@
125 129 //
126 130 // }
127 131 }
  132 +
128 133 #pragma mark - Data
129 134 //刷新数据
130 135 - (void)refreshData {
... ... @@ -154,6 +159,14 @@
154 159 break;
155 160 }
156 161 }
  162 +- (void)cellDidSelected {
  163 + __weak typeof(self) weakSelf = self;
  164 + CNLiveOrderDetailController *vc = [[CNLiveOrderDetailController alloc]init];
  165 + self.allTblView.orderDetaielCellDidSelectedBlock = ^(NSIndexPath * _Nonnull indexPath, NSString * _Nonnull orderId) {
  166 + vc.orderId = orderId;
  167 + [weakSelf.navigationController pushViewController:vc animated:NO];
  168 + };
  169 +}
157 170 #pragma mark - Lazy
158 171 - (CNLiveSegmentView *)segmentView{
159 172 __weak typeof(self) weakSelf = self;
... ... @@ -161,8 +174,7 @@
161 174 _segmentView = [[CNLiveSegmentView alloc] initWithFrame:CGRectMake(0, kNavigationBarHeight, KScreenWidth, Segment_Height) titles:@[@"全部",@"待付款", @"待收货", @"待评价"] curIndex:_curSeleIndex selectedBlock:^(NSInteger index) {
162 175 CGFloat x = index * self.view.width;
163 176 weakSelf.curSeleIndex = index;
164   - [_scrollView setContentOffset:CGPointMake(x, 0) animated:NO];
165   -
  177 + [weakSelf.scrollView setContentOffset:CGPointMake(x, 0) animated:NO];
166 178 [self refreshData];
167 179 }];
168 180 }
... ... @@ -189,7 +201,7 @@
189 201 }
190 202 - (CNLiveOrderListCommonView *)allTblView{
191 203 if (!_allTblView) {
192   - _allTblView = [[CNLiveOrderListCommonView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, _scrollView.height) orderStatus:@"0"];
  204 + _allTblView = [[CNLiveOrderListCommonView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, _scrollView.height) orderStatus:@"0"] ;
193 205 }
194 206 return _allTblView;
195 207 }
... ...
CNLiveMyOrder/Classes/Controller/CNLiveOrderDetailController.h 0 → 100644
  1 +//
  2 +// CNLiveOrderDetailController.h
  3 +// CNLiveMyOrder
  4 +//
  5 +// Created by 殷巧娟 on 2019/6/17.
  6 +//
  7 +
  8 +#import "CNCommonViewController.h"
  9 +
  10 +NS_ASSUME_NONNULL_BEGIN
  11 +
  12 +@interface CNLiveOrderDetailController : CNCommonViewController
  13 +@property (nonatomic, strong) NSString *orderId; //订单ID
  14 +@property (nonatomic, assign) BOOL fromChat; //是否从聊天页面跳转至订单详情页,yes:是 点击联系达人后pop至chat页面,否则push
  15 +@property (nonatomic, strong) NSString *itemId; //确认收货和删除订单时使用,只有从订单管家页面跳转至订单详情页面时传itemId
  16 +@end
  17 +
  18 +NS_ASSUME_NONNULL_END
... ...
CNLiveMyOrder/Classes/Controller/CNLiveOrderDetailController.m 0 → 100644
  1 +//
  2 +// CNLiveOrderDetailController.m
  3 +// CNLiveMyOrder
  4 +//
  5 +// Created by 殷巧娟 on 2019/6/17.
  6 +//
  7 +
  8 +#import "CNLiveOrderDetailController.h"
  9 +#import "CNLiveMineOrderView.h"
  10 +#import "CNCutDown.h"
  11 +#import "CNLiveOrderDetailContentView.h"
  12 +#import "QMUIKit.h"
  13 +#import "CNLiveBaseKit.h"
  14 +#import <CNLiveRequestBastKit/CNLiveNetworking.h>
  15 +#import "CNUserInfoManager.h"
  16 +#import "CNLiveEnvironmentConfiguration.h"
  17 +#import "YYKit.h"
  18 +#import "MJExtension.h"
  19 +#import "CNLiveOrderList.h"
  20 +#import "Masonry.h"
  21 +#import "CNAddPopFuncView.h"
  22 +//#import <FBRetainCycleDetector/FBRetainCycleDetector.h>
  23 +#define Default_H 45
  24 +#define OrderIdKey @"OrderIdKey" //订单号
  25 +@interface CNLiveOrderDetailController ()<CNLiveRefundVoucherViewDelegate,CNAddPopFuncViewDelegate>
  26 +@property (nonatomic, strong) UIScrollView *scrollView;
  27 +@property (strong, nonatomic) UIPageControl * pageControl;
  28 +@property (nonatomic, strong) CNAddPopFuncView *popFunItemView; //点击navbar右上角弹出的view
  29 +@property (nonatomic, strong) CNLiveOrderDetailStatusView *statusView; //订单状态
  30 +@property (nonatomic, strong) CNLiveRefundFailView *failView; //退款失败
  31 +@property (nonatomic, strong) CNLiveAddressView *addressView; //地址
  32 +@property (nonatomic, strong) CNLiveRefundProcessView *progressView; //退款进度
  33 +@property (nonatomic, strong) CNLiveContactDarenView *contactDarenView; //联系卖家
  34 +@property (nonatomic, strong) CNLiveIconView *iconView; //头像
  35 +@property (nonatomic, strong) CNLiveOrderDetailContentView *kindView; //订单详情
  36 +@property (nonatomic, strong) CNLiveServiceTypeView *serviceView; //服务内容
  37 +@property (nonatomic, strong) CNLiveOrderNormalView *feeView; //服务费
  38 +@property (nonatomic, strong) CNLiveOrderNormalView *freightView; //运费
  39 +@property (nonatomic, strong) CNLiveOrderNormalView *deliveryView; //配送方式
  40 +@property (nonatomic, strong) CNLiveActuallyPaidView *totalView; //总价
  41 +@property (nonatomic, strong) CNLiveOrderNormalView *refunEnableView;; //是否允许退款
  42 +@property (nonatomic, strong) CNLiveRefundReasonAndNoteView *noteView; //退款原因
  43 +@property (nonatomic, strong) CNLiveRefundVoucherView *voucherView; //凭证
  44 +@property (nonatomic, strong) CNLiveFuncView *funcView; //底部工具栏
  45 +@property (nonatomic, strong) CNLiveOrderNormalView *goodsInfoView; //商品信息
  46 +@property (nonatomic, strong) CNLiveOrderTimeView *timeView;//订单时间
  47 +@property (nonatomic, strong) UIView *line1;
  48 +@property (nonatomic, strong) UIView *line2;
  49 +@property (nonatomic, strong) UIView *line3;
  50 +@property (nonatomic, strong) UIView *line4;
  51 +@property (nonatomic, strong) UIView *line5;
  52 +@property (nonatomic, strong) UIView *line6;
  53 +@property (nonatomic, strong) UIView *line7;
  54 +@property (nonatomic, strong) CNLiveOrderList *list;
  55 +@property (nonatomic, assign) BOOL showFuncView;
  56 +@property (nonatomic, assign) BOOL showRejectedView;
  57 +@property (nonatomic, assign) BOOL showReason; //是否显示退款原因view
  58 +@property (nonatomic, assign) BOOL refund; //是否为退款状态
  59 +@property (nonatomic, assign) BOOL showVoucher; //是否显示凭证view
  60 +//@property (nonatomic, strong) CNCutDown *cutdownTimer;
  61 +@property (nonatomic, assign) BOOL isShowPicOrVideo; //隐藏状态栏
  62 +@property (nonatomic, strong) NSDictionary *qrParameterDic; // 保存生成的二维码数据
  63 +@property (nonatomic, strong) UIButton *moreBtn;//右上角按钮
  64 +@end
  65 +
  66 +@implementation CNLiveOrderDetailController
  67 +- (void)dealloc
  68 +{
  69 + NSLog(@"走了详情页的dealloc了吗");
  70 +// [[NSNotificationCenter defaultCenter] removeObserver:self];
  71 +}
  72 +- (void)initSubviews {
  73 + [super initSubviews];
  74 +
  75 + [self.view addSubview:self.scrollView];
  76 +
  77 +}
  78 +
  79 +- (void)viewWillDisappear:(BOOL)animated {
  80 + [super viewWillDisappear:animated];
  81 + [QMUITips hideAllToastInView:self.view animated:YES];
  82 +// [_cutdownTimer destroyTimer]; //销毁计时器
  83 +}
  84 +
  85 +- (void)viewWillAppear:(BOOL)animated {
  86 + [super viewWillAppear:animated];
  87 + self.navigationController.navigationBarHidden = NO;
  88 +}
  89 +- (void)viewDidLoad {
  90 + [super viewDidLoad];
  91 + self.title = @"订单详情";
  92 + [self initNavBar];
  93 + self.view.backgroundColor = kWeChatBgColor;
  94 + _showReason = NO;
  95 + _showRejectedView = NO ;
  96 + _showFuncView = YES;
  97 + _refund = NO;
  98 + _showVoucher = NO;
  99 + [self loadData];
  100 +// FBRetainCycleDetector *detector = [FBRetainCycleDetector new];
  101 +// [detector addCandidate:self];
  102 +// NSSet *retainCycles = [detector findRetainCycles];
  103 +// NSLog(@"%@", retainCycles);
  104 +
  105 +}
  106 +- (void)initNavBar
  107 +{
  108 + _moreBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  109 + _moreBtn.frame = CGRectMake(0, 0, 30, 30);
  110 + [_moreBtn setImage:[UIImage imageNamed:@"dd_gengduo2"] forState:UIControlStateNormal];
  111 + [_moreBtn addTarget:self action:@selector(rightNavItemAction:) forControlEvents:UIControlEventTouchUpInside];
  112 + _moreBtn.hidden = YES;
  113 + UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:_moreBtn];
  114 + self.navigationItem.rightBarButtonItem = item;
  115 +}
  116 +- (void)addSubviews {
  117 +
  118 + [self.scrollView addSubview:self.statusView];
  119 + [self.scrollView addSubview:self.failView];
  120 + [self.scrollView addSubview:self.addressView];
  121 + [self.scrollView addSubview:self.progressView];
  122 + [self.scrollView addSubview:self.contactDarenView];
  123 + [self.scrollView addSubview:self.goodsInfoView];
  124 + [self.scrollView addSubview:self.iconView];
  125 + [self.scrollView addSubview:self.kindView];
  126 + [self.scrollView addSubview:self.serviceView];
  127 + [self.scrollView addSubview:self.feeView];
  128 + [self.scrollView addSubview:self.freightView];
  129 + [self.scrollView addSubview:self.deliveryView];
  130 + [self.scrollView addSubview:self.totalView];
  131 + [self.scrollView addSubview:self.timeView];
  132 +
  133 + [self.scrollView addSubview:self.refunEnableView];
  134 + [self.scrollView addSubview:self.noteView];
  135 + [self.scrollView addSubview:self.voucherView];
  136 + [self.scrollView addSubview:self.funcView];
  137 +
  138 + [self.scrollView addSubview:self.line1];
  139 + [self.scrollView addSubview:self.line2];
  140 + [self.scrollView addSubview:self.line3];
  141 + [self.scrollView addSubview:self.line4];
  142 + [self.scrollView addSubview:self.line5];
  143 + [self.scrollView addSubview:self.line6];
  144 + [self.scrollView addSubview:self.line7];
  145 + [self p_addMasonry];
  146 +}
  147 +#pragma mark - Masonry
  148 +- (void)p_addMasonry {
  149 +
  150 + [self.statusView mas_remakeConstraints:^(MASConstraintMaker *make) {
  151 + make.left.top.mas_equalTo(self.scrollView);
  152 + make.width.mas_equalTo(kScreenWidth);
  153 + make.height.mas_equalTo(0);
  154 + }];
  155 +
  156 + [self.addressView mas_remakeConstraints:^(MASConstraintMaker *make) {
  157 + make.width.mas_equalTo(kScreenWidth);
  158 + }];
  159 +
  160 + [self.progressView mas_remakeConstraints:^(MASConstraintMaker *make) {
  161 + make.width.mas_equalTo(kScreenWidth);
  162 + }];
  163 +
  164 + [self.failView mas_remakeConstraints:^(MASConstraintMaker *make) {
  165 + make.width.mas_equalTo(kScreenWidth);
  166 + }];
  167 +
  168 + if (_showRejectedView) {
  169 + [self.failView mas_remakeConstraints:^(MASConstraintMaker *make) {
  170 + make.left.mas_equalTo(0);
  171 + make.top.mas_equalTo(self.statusView.mas_bottom).mas_offset(10);
  172 + make.width.mas_equalTo(kScreenWidth);
  173 + }];
  174 + } else {
  175 + self.failView.hidden = YES;
  176 + }
  177 +
  178 + if (_refund) {
  179 +
  180 + self.addressView.hidden = YES;
  181 + self.progressView.hidden = NO;
  182 +
  183 + if (_showRejectedView) {
  184 +
  185 + [self.progressView mas_remakeConstraints:^(MASConstraintMaker *make) {
  186 + make.left.mas_equalTo(0);
  187 + make.top.mas_equalTo(self.failView.mas_bottom).mas_offset(10);
  188 + make.width.mas_equalTo(kScreenWidth);
  189 + make.height.mas_equalTo(170);
  190 + }];
  191 +
  192 + } else {
  193 +
  194 + [self.progressView mas_remakeConstraints:^(MASConstraintMaker *make) {
  195 + make.left.mas_equalTo(0);
  196 + make.top.mas_equalTo(self.statusView.mas_bottom).mas_offset(10);
  197 + make.width.mas_equalTo(kScreenWidth);
  198 + make.height.mas_equalTo(170);
  199 + }];
  200 +
  201 + }
  202 +
  203 + [self.contactDarenView mas_remakeConstraints:^(MASConstraintMaker *make) {
  204 + make.left.mas_equalTo(0);
  205 + make.top.mas_equalTo(self.progressView.mas_bottom).mas_offset(10);
  206 + make.width.mas_equalTo(kScreenWidth);
  207 + make.height.mas_equalTo(55);
  208 + }];
  209 +
  210 + } else {
  211 +
  212 + self.addressView.hidden = NO;
  213 + self.progressView.hidden = YES;
  214 +
  215 + [self.addressView mas_remakeConstraints:^(MASConstraintMaker *make) {
  216 + make.left.mas_equalTo(0);
  217 + make.top.mas_equalTo(self.statusView.mas_bottom);
  218 + make.width.mas_equalTo(kScreenWidth);
  219 + }];
  220 +
  221 + [self.contactDarenView mas_remakeConstraints:^(MASConstraintMaker *make) {
  222 + make.left.mas_equalTo(0);
  223 + make.top.mas_equalTo(self.addressView.mas_bottom).mas_offset(10);
  224 + make.width.mas_equalTo(kScreenWidth);
  225 + make.height.mas_equalTo(55);
  226 + }];
  227 + }
  228 +
  229 + [self.goodsInfoView mas_remakeConstraints:^(MASConstraintMaker *make) {
  230 + make.width.mas_equalTo(kScreenWidth);
  231 + }];
  232 +
  233 + [self.iconView mas_remakeConstraints:^(MASConstraintMaker *make) {
  234 + make.width.mas_equalTo(kScreenWidth);
  235 + }];
  236 +
  237 + if (_refund) {
  238 +
  239 + self.iconView.hidden = YES;
  240 + _goodsInfoView.hidden = NO;
  241 +
  242 + [self.goodsInfoView mas_remakeConstraints:^(MASConstraintMaker *make) {
  243 + make.left.mas_equalTo(0);
  244 + make.top.mas_equalTo(self.contactDarenView.mas_bottom).mas_offset(10);
  245 + make.width.mas_equalTo(kScreenWidth);
  246 + make.height.mas_equalTo(55);
  247 + }];
  248 +
  249 + [self.line1 mas_remakeConstraints:^(MASConstraintMaker *make) {
  250 + make.left.mas_equalTo(0);
  251 + make.width.mas_equalTo(KScreenWidth);
  252 + make.bottom.mas_equalTo(self.goodsInfoView.mas_bottom);
  253 + make.height.mas_equalTo(0.5);
  254 + }];
  255 +
  256 + [self.kindView mas_remakeConstraints:^(MASConstraintMaker *make) {
  257 + make.left.mas_equalTo(0);
  258 + make.top.mas_equalTo(self.goodsInfoView.mas_bottom);
  259 + make.width.mas_equalTo(kScreenWidth);
  260 + // make.height.mas_equalTo(95);
  261 + }];
  262 +
  263 + } else {
  264 +
  265 + self.iconView.hidden = NO;
  266 + _goodsInfoView.hidden = YES;
  267 +
  268 + [self.iconView mas_remakeConstraints:^(MASConstraintMaker *make) {
  269 + make.left.mas_equalTo(0);
  270 + make.top.mas_equalTo(self.contactDarenView.mas_bottom).mas_offset(10);
  271 + make.width.mas_equalTo(kScreenWidth);
  272 + make.height.mas_equalTo(70);
  273 + }];
  274 +
  275 + [self.line1 mas_remakeConstraints:^(MASConstraintMaker *make) {
  276 + make.left.mas_equalTo(10);
  277 + make.width.mas_equalTo(KScreenWidth-20);
  278 + make.bottom.mas_equalTo(self.iconView.mas_bottom);
  279 + make.height.mas_equalTo(0.5);
  280 + }];
  281 +
  282 + [self.kindView mas_remakeConstraints:^(MASConstraintMaker *make) {
  283 + make.left.mas_equalTo(0);
  284 + make.top.mas_equalTo(self.iconView.mas_bottom);
  285 + make.width.mas_equalTo(kScreenWidth);
  286 + // make.height.mas_equalTo(95);
  287 + }];
  288 + }
  289 +
  290 + [self.line2 mas_remakeConstraints:^(MASConstraintMaker *make) {
  291 + make.left.mas_equalTo(10);
  292 + make.width.mas_equalTo(KScreenWidth-20);
  293 + make.bottom.mas_equalTo(self.kindView.mas_bottom);
  294 + make.height.mas_equalTo(0.5);
  295 + }];
  296 +
  297 + [self.serviceView mas_remakeConstraints:^(MASConstraintMaker *make) {
  298 + make.left.mas_equalTo(0);
  299 + make.top.mas_equalTo(self.kindView.mas_bottom);
  300 + make.width.mas_equalTo(kScreenWidth);
  301 + make.height.mas_equalTo(Default_H);
  302 + }];
  303 +
  304 + [self.line3 mas_remakeConstraints:^(MASConstraintMaker *make) {
  305 + make.left.mas_equalTo(10);
  306 + make.width.mas_equalTo(KScreenWidth-20);
  307 + make.bottom.mas_equalTo(self.serviceView.mas_bottom);
  308 + make.height.mas_equalTo(0.5);
  309 + }];
  310 +
  311 + [self.feeView mas_remakeConstraints:^(MASConstraintMaker *make) {
  312 + make.left.mas_equalTo(0);
  313 + make.top.mas_equalTo(self.serviceView.mas_bottom);
  314 + make.width.mas_equalTo(kScreenWidth);
  315 + make.height.mas_equalTo(Default_H);
  316 + }];
  317 +
  318 + [self.line4 mas_remakeConstraints:^(MASConstraintMaker *make) {
  319 + make.left.mas_equalTo(10);
  320 + make.width.mas_equalTo(KScreenWidth-20);
  321 + make.bottom.mas_equalTo(self.feeView.mas_bottom);
  322 + make.height.mas_equalTo(0.5);
  323 + }];
  324 +
  325 + [self.freightView mas_remakeConstraints:^(MASConstraintMaker *make) {
  326 + make.left.mas_equalTo(0);
  327 + make.top.mas_equalTo(self.feeView.mas_bottom);
  328 + make.width.mas_equalTo(kScreenWidth);
  329 + make.height.mas_equalTo(Default_H);
  330 + }];
  331 +
  332 + [self.line5 mas_remakeConstraints:^(MASConstraintMaker *make) {
  333 + make.left.mas_equalTo(10);
  334 + make.width.mas_equalTo(KScreenWidth-20);
  335 + make.bottom.mas_equalTo(self.freightView.mas_bottom);
  336 + make.height.mas_equalTo(0.5);
  337 + }];
  338 +
  339 + [self.deliveryView mas_remakeConstraints:^(MASConstraintMaker *make) {
  340 + make.left.mas_equalTo(0);
  341 + make.top.mas_equalTo(self.line5.mas_bottom);
  342 + make.width.mas_equalTo(kScreenWidth);
  343 + make.height.mas_equalTo(Default_H);
  344 + }];
  345 +
  346 + [self.refunEnableView mas_remakeConstraints:^(MASConstraintMaker *make) {
  347 + make.left.mas_equalTo(0);
  348 + make.top.mas_equalTo(self.deliveryView.mas_bottom).mas_offset(10);
  349 + make.width.mas_equalTo(kScreenWidth);
  350 + make.height.mas_equalTo(Default_H);
  351 + }];
  352 +
  353 + [self.totalView mas_remakeConstraints:^(MASConstraintMaker *make) {
  354 + make.left.mas_equalTo(0);
  355 + make.top.mas_equalTo(self.refunEnableView.mas_bottom).mas_offset(10);
  356 + make.width.mas_equalTo(kScreenWidth);
  357 + }];
  358 +
  359 + [self.timeView mas_remakeConstraints:^(MASConstraintMaker *make) {
  360 + make.left.mas_equalTo(0);
  361 + make.top.mas_equalTo(self.totalView.mas_bottom).mas_offset(10);
  362 + make.width.mas_equalTo(kScreenWidth);
  363 + }];
  364 +
  365 + // if (_showFuncView) {
  366 + // [self.line7 mas_remakeConstraints:^(MASConstraintMaker *make) {
  367 + // make.left.mas_equalTo(10);
  368 + // make.width.mas_equalTo(KScreenWidth-20);
  369 + // make.bottom.mas_equalTo(self.totalView.mas_bottom);
  370 + // make.height.mas_equalTo(0.5);
  371 + // }];
  372 + //
  373 + // }
  374 +
  375 + [self.noteView mas_remakeConstraints:^(MASConstraintMaker *make) {
  376 + make.width.mas_equalTo(kScreenWidth);
  377 + }];
  378 +
  379 + [self.voucherView mas_remakeConstraints:^(MASConstraintMaker *make) {
  380 + make.width.mas_equalTo(kScreenWidth);
  381 + }];
  382 +
  383 + if (_showReason) {
  384 +
  385 + self.noteView.hidden = NO;
  386 +
  387 + [self.noteView mas_remakeConstraints:^(MASConstraintMaker *make) {
  388 + make.left.mas_equalTo(0);
  389 + make.top.mas_equalTo(self.timeView.mas_bottom).mas_offset(10);
  390 + make.width.mas_equalTo(kScreenWidth);
  391 + }];
  392 +
  393 + if (_showVoucher) {
  394 + [self.voucherView mas_remakeConstraints:^(MASConstraintMaker *make) {
  395 + make.left.mas_equalTo(0);
  396 + make.top.mas_equalTo(self.noteView.mas_bottom).mas_offset(10);
  397 + make.width.mas_equalTo(kScreenWidth);
  398 + }];
  399 + }
  400 +
  401 + }
  402 +
  403 + if (_showFuncView) {
  404 +
  405 + if (_showReason) {
  406 +
  407 + if (_showVoucher) {
  408 + [self.funcView mas_remakeConstraints:^(MASConstraintMaker *make) {
  409 + make.left.mas_equalTo(0);
  410 + make.top.mas_equalTo(self.voucherView.mas_bottom).mas_offset(10);
  411 + make.width.mas_equalTo(kScreenWidth);
  412 + make.height.mas_equalTo(60);
  413 + }];
  414 + } else {
  415 + [self.funcView mas_remakeConstraints:^(MASConstraintMaker *make) {
  416 + make.left.mas_equalTo(0);
  417 + make.top.mas_equalTo(self.noteView.mas_bottom).mas_offset(10);
  418 + make.width.mas_equalTo(kScreenWidth);
  419 + make.height.mas_equalTo(60);
  420 + }];
  421 + }
  422 +
  423 + } else {
  424 + [self.funcView mas_remakeConstraints:^(MASConstraintMaker *make) {
  425 + make.left.mas_equalTo(0);
  426 + make.top.mas_equalTo(self.timeView.mas_bottom).mas_offset(10);
  427 + make.width.mas_equalTo(kScreenWidth);
  428 + make.height.mas_equalTo(60);
  429 + }];
  430 + }
  431 + }
  432 +}
  433 +#pragma mark -加载数据
  434 +- (void)loadData {
  435 + __weak typeof(self) weakSelf = self;
  436 + [self.scrollView removeAllSubviews];
  437 +
  438 +// [_cutdownTimer destroyTimer];
  439 +
  440 + [QMUITips showLoadingInView:self.view];
  441 + [CNLiveNetworking setupShowDataResult:NO];
  442 + [CNLiveNetworking setAllowRequestDefaultArgument:YES];
  443 +
  444 + NSDictionary *param = @{@"appId":AppId,
  445 + @"plat":@"i",
  446 + @"orderId":self.orderId?self.orderId:@"",
  447 + @"sid":@"10511059"
  448 + };
  449 +
  450 + [CNLiveNetworking requestNetworkWithMethod:CNLiveRequestMethodPOST URLString:CNOrderCheckUrl Param:param CacheType:CNLiveNetworkCacheTypeNetworkOnly CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) {
  451 + NSLog(@"打印这个页面%@-----%@",responseObject, error);
  452 + [QMUITips hideAllToastInView:self.view animated:YES];
  453 + NSDictionary *data = [responseObject objectForKey:@"data"];
  454 + NSString *errMessage =[responseObject objectForKey:@"errorMessage"];
  455 + NSString *errorCode = [NSString stringWithFormat:@"%@",[responseObject objectForKey:@"errorCode"]];
  456 + if (!error) {
  457 + if ([errorCode isEqualToString:@"0"]) {
  458 + CNLiveOrderList *list = [CNLiveOrderList mj_objectWithKeyValues:data];
  459 + CNLiveOrderListOrderItem *orderItem = list.orderItem;
  460 + CNLiveOrderRefundItem *refundItem = list.refundMsg;
  461 + weakSelf.qrParameterDic = @{OrderIdKey:orderItem.orderId};
  462 + if (refundItem.imgPathArray.count > 0) {
  463 + weakSelf.showVoucher = YES;
  464 + weakSelf.voucherView.hidden = NO;
  465 + }
  466 + else
  467 + {
  468 + weakSelf.voucherView.hidden = YES;
  469 + weakSelf.showVoucher = NO;
  470 + }
  471 + //用户端申请退款,确认退款,退款失败,退款成功状态下不显示funcView
  472 + if (orderItem.status == 8 ||
  473 + orderItem.status == 9 ||
  474 + orderItem.status == 11 ||
  475 + orderItem.status == 12) {
  476 + weakSelf.showFuncView = NO;
  477 + }
  478 + if (!weakSelf.showFuncView) {
  479 + weakSelf.funcView.hidden = YES;
  480 + }
  481 + else
  482 + weakSelf.funcView.hidden = NO;
  483 +
  484 + //为退款状态
  485 + if (orderItem.status >= 8 && orderItem.status <= 12) {
  486 + weakSelf.refund = YES;
  487 + weakSelf.showReason = YES;
  488 + }
  489 + else
  490 + {
  491 + weakSelf.refund = NO;
  492 + weakSelf.showReason = NO;
  493 + }
  494 +
  495 + if (orderItem.status == 10) {
  496 + weakSelf.showRejectedView = YES;
  497 + }
  498 + else
  499 + weakSelf.showRejectedView = NO;
  500 + //没付款之前不显示生成二维码
  501 + if (orderItem.status == 0 || orderItem.status == 1 ||
  502 + orderItem.status == 2 || orderItem.status == 3 ||
  503 + orderItem.status == 4) {
  504 + weakSelf.moreBtn.hidden = YES;
  505 + }
  506 + //添加子控件
  507 + [self addSubviews];
  508 +
  509 + self.list = list;
  510 +
  511 + weakSelf.statusView.list = list;
  512 + weakSelf.iconView.list = list;
  513 + weakSelf.kindView.list = list;
  514 + weakSelf.serviceView.list = list;
  515 + weakSelf.totalView.list = list;
  516 + weakSelf.contactDarenView.list = list;
  517 + //如果凭证image数量大于0,显示凭证view
  518 +
  519 + if (weakSelf.showVoucher) {
  520 + weakSelf.voucherView.list = list;
  521 + }
  522 + if (weakSelf.showRejectedView) {
  523 + weakSelf.failView.list = list;
  524 + }
  525 +
  526 + if (weakSelf.showReason) {
  527 + weakSelf.noteView.list = list;
  528 + }
  529 +
  530 + if (weakSelf.refund) {
  531 + weakSelf.progressView.list = list;
  532 + } else {
  533 +
  534 + if ([NSString isEmpty:list.contactMsg.contactPhone] && [NSString isEmpty:list.defaultContactMsg.defaultContactPhone]) {
  535 + weakSelf.addressView.allowEdit = YES;
  536 + }
  537 + else if (![NSString isEmpty:list.contactMsg.contactPhone])
  538 + {
  539 + weakSelf.addressView.list = list;
  540 +
  541 + }
  542 + else if (![NSString isEmpty:list.defaultContactMsg.defaultContactPhone])
  543 + {
  544 + weakSelf.addressView.allowEdit = YES;
  545 + weakSelf.addressView.list = list;
  546 +
  547 + }
  548 + else {
  549 + weakSelf.addressView.list = list;
  550 + }
  551 +
  552 +// [DSAddressRequest postMyFirstAddressWithUid:[IMAPlatform sharedInstance].host.userId result:^(DSAddressModel * _Nonnull addressModel, NSString * _Nonnull errorMessage) {
  553 +// [weakSelf.addressView updateFirstAddress:addressModel];
  554 +// }];
  555 + }
  556 + if (orderItem.status == 7) {
  557 + weakSelf.voucherView.hidden = YES;
  558 + [weakSelf.voucherView removeFromSuperview];
  559 + weakSelf.noteView.hidden = YES;
  560 + [weakSelf.noteView removeFromSuperview];
  561 +
  562 + }
  563 + weakSelf.timeView.list = list;
  564 +
  565 + [weakSelf.feeView setTitle:@"服务费" subTitle:[NSString stringWithFormat:@"%.2f",(float)orderItem.fee]];
  566 + [weakSelf.freightView setTitle:@"运费" subTitle:[NSString stringWithFormat:@"%.2f",(float)orderItem.freight]];
  567 + [weakSelf.refunEnableView setTitle:@"是否可以退款" subTitle:orderItem.refundable == true ? @"是" : @"否"];
  568 + [weakSelf.deliveryView setTitle:@"配送方式" subTitle:orderItem.distributionContent];
  569 +
  570 + [weakSelf.view layoutIfNeeded];
  571 + if (!weakSelf.showFuncView) {
  572 + if (weakSelf.showVoucher) {
  573 + weakSelf.scrollView.contentSize = CGSizeMake(kScreenWidth, weakSelf.voucherView.bottom);
  574 + } else {
  575 + weakSelf.scrollView.contentSize = CGSizeMake(kScreenWidth, weakSelf.noteView.bottom);
  576 + }
  577 + } else {
  578 + [weakSelf configFuncItems:list];
  579 + weakSelf.scrollView.contentSize = CGSizeMake(kScreenWidth, self.funcView.bottom);
  580 + }
  581 + } else {
  582 +
  583 + if (error.code == -1009) {
  584 +// [self showErrorRetryType:RetryTypeNoNet noNet:YES];
  585 + } else if (error.code == 405) {
  586 + weakSelf.scrollView.backgroundColor = kWhiteColor;
  587 + weakSelf.moreBtn.hidden = YES;
  588 + [weakSelf showEmptyViewWithImage:[UIImage imageNamed:@"zhuangtai_kong"] text:@"此订单已删除" detailText:@"" buttonTitle:@"" buttonAction:nil];
  589 + } else if (error.code == 402)
  590 + {
  591 + weakSelf.scrollView.backgroundColor = kWhiteColor;
  592 + [weakSelf showEmptyViewWithImage:[UIImage imageNamed:@"zhuangtai_kong"] text:@"个人订单" detailText:@"该订单不是您的个人订单" buttonTitle:@"点击退出" buttonAction:@selector(exitOrderDetail:)];
  593 + }else {
  594 +// [self showErrorRetryType:RetryTypeError noNet:NO];
  595 + }
  596 + }
  597 + }
  598 + }];
  599 +
  600 +}
  601 +#pragma mark -targetAction
  602 +- (void)exitOrderDetail:(UIButton *)btn {
  603 + [self.navigationController popToRootViewControllerAnimated:NO];
  604 +}
  605 +- (void)rightNavItemAction:(UIButton *)sender {
  606 +
  607 +}
  608 +/**
  609 + * ((0-待确认,1-允许修改,2-取消订单,3-待支付,4-取消确认, 5-待发货,6-待收货,7-已收货,8-申请退款,9-确认退款,10-拒绝退款,11-退款失败,12-退款成功)
  610 + */
  611 +- (void)configFuncItems:(CNLiveOrderList *)list {
  612 +
  613 + CNLiveOrderListOrderItem *orderItem = list.orderItem;
  614 +
  615 + if (orderItem.status == 0) {
  616 + if ([NSString isEmpty:list.contactMsg.contactPhone]) {
  617 + [self funcItemType:6];
  618 + } else {
  619 + [self funcItemType:4];
  620 + }
  621 + }
  622 +
  623 + if (orderItem.status == 1) { //待修改
  624 + // [self funcItemType:7];
  625 + }
  626 +
  627 + if (orderItem.status == 2) { //订单已取消
  628 + _funcView.hidden = YES;
  629 + return;
  630 + }
  631 +
  632 + if (orderItem.status == 3) { //待支付
  633 + [self funcItemType:1];
  634 + }
  635 +
  636 + if (orderItem.status == 4) { //取消确认
  637 + [self funcItemType:5];
  638 + }
  639 +
  640 + if (orderItem.status == 5) { //待发货
  641 + [self funcItemType:8];
  642 + }
  643 +
  644 + if ( orderItem.status == 6) { //待收货
  645 +
  646 + //待收货状态显示收货倒计时
  647 +// [self initTimer:orderItem.countdown];
  648 +
  649 + [self funcItemType:2];
  650 + }
  651 +
  652 + if (orderItem.status == 7) { //已收货,若已评价显示交易成功,未评价显示待评价
  653 + if (orderItem.commentable == true) {
  654 + [self funcItemType:3];
  655 + } else {
  656 + [self funcItemType:0];
  657 + }
  658 +
  659 + }
  660 +
  661 + if (orderItem.status == 8 || orderItem.status == 9 || orderItem.status == 11) { //确认退款和申请退款为退款中状态
  662 + [self funcItemType:4];
  663 + }
  664 +
  665 + if (orderItem.status == 10) { //拒绝退款,可再次申请
  666 + [self funcItemType:2];
  667 + }
  668 +
  669 + if (orderItem.status == 12) { //退款成功
  670 + [self funcItemType:4];
  671 + }
  672 +}
  673 +//根据订单状态显示功能安按钮
  674 +- (void)funcItemType:(NSInteger)type {
  675 +
  676 + switch (type) {
  677 + case 0: { //交易成功
  678 +
  679 + CNLiveMineOrderButtonItem *btnItem1 = [CNLiveMineOrderButtonItem title:@"删除订单" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeDelete];
  680 + _funcView.funcItems = @[btnItem1];
  681 +
  682 + }
  683 + break;
  684 +
  685 + case 1: { //代付款
  686 +
  687 + CNLiveMineOrderButtonItem *btnItem2 = [CNLiveMineOrderButtonItem title:@"取消订单" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeCancel];
  688 +
  689 + CNLiveMineOrderButtonItem *btnItem3 = [CNLiveMineOrderButtonItem title:@"付款" type:CNLiveMineOrderButtonTypeRed tag:CNLiveMineOrderButtonItemTypePay];
  690 +
  691 + _funcView.funcItems = @[btnItem3, btnItem2];
  692 +
  693 + }
  694 + break;
  695 +
  696 + case 2: { //待收货
  697 +
  698 + if (self.list.orderItem.refundable == true) {
  699 + CNLiveMineOrderButtonItem *btnItem1 = [CNLiveMineOrderButtonItem title:@"申请退款" type:CNLiveMineOrderButtonTypeRed tag:CNLiveMineOrderButtonItemTypeRefund];
  700 +
  701 + CNLiveMineOrderButtonItem *btnItem2 = [CNLiveMineOrderButtonItem title:@"我要催单" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeReminder];
  702 +
  703 + CNLiveMineOrderButtonItem *btnItem3 = [CNLiveMineOrderButtonItem title:@"确认收货" type:CNLiveMineOrderButtonTypeRed tag:CNLiveMineOrderButtonItemTypeConfirmReceipt];
  704 +
  705 + _funcView.funcItems = @[btnItem3, btnItem1, btnItem2];
  706 +
  707 + } else {
  708 +
  709 + CNLiveMineOrderButtonItem *btnItem2 = [CNLiveMineOrderButtonItem title:@"我要催单" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeReminder];
  710 +
  711 + CNLiveMineOrderButtonItem *btnItem3 = [CNLiveMineOrderButtonItem title:@"确认收货" type:CNLiveMineOrderButtonTypeRed tag:CNLiveMineOrderButtonItemTypeConfirmReceipt];
  712 +
  713 + _funcView.funcItems = @[btnItem3, btnItem2];
  714 + }
  715 +
  716 +
  717 + }
  718 + break;
  719 +
  720 + case 3: { //待评价
  721 +
  722 + CNLiveMineOrderButtonItem *btnItem2 = [CNLiveMineOrderButtonItem title:@"评价" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeEvaluate];
  723 + CNLiveMineOrderButtonItem *btnItem1 = [CNLiveMineOrderButtonItem title:@"删除订单" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeDelete];
  724 + _funcView.funcItems = @[btnItem2, btnItem1];
  725 +
  726 + }
  727 + break;
  728 +
  729 + case 4: { //取消订单
  730 + CNLiveMineOrderButtonItem *btnItem2 = [CNLiveMineOrderButtonItem title:@"取消订单" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeCancel];
  731 + _funcView.funcItems = @[btnItem2];
  732 + }
  733 + break;
  734 +
  735 + case 5: { //交易关闭
  736 +
  737 + CNLiveMineOrderButtonItem *btnItem1 = [CNLiveMineOrderButtonItem title:@"删除订单" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeDelete];
  738 +
  739 + _funcView.funcItems = @[btnItem1];
  740 +
  741 + }
  742 + break;
  743 +
  744 + case 6: { //提交订单
  745 +
  746 + CNLiveMineOrderButtonItem *btnItem1 = [CNLiveMineOrderButtonItem title:@"取消订单" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeCancel];
  747 +
  748 + CNLiveMineOrderButtonItem *btnItem2 = [CNLiveMineOrderButtonItem title:@"信息有误" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeError];
  749 +
  750 + CNLiveMineOrderButtonItem *btnItem3 = [CNLiveMineOrderButtonItem title:@"提交订单" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeConfirm];
  751 +
  752 + _funcView.funcItems = @[btnItem1, btnItem2, btnItem3];
  753 +
  754 + }
  755 + break;
  756 +
  757 + case 7: { //待修改显示取消和确认
  758 +
  759 + CNLiveMineOrderButtonItem *btnItem1 = [CNLiveMineOrderButtonItem title:@"取消订单" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeCancel];
  760 +
  761 + CNLiveMineOrderButtonItem *btnItem2 = [CNLiveMineOrderButtonItem title:@"提交订单" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeConfirm];
  762 +
  763 + _funcView.funcItems = @[btnItem1, btnItem2];
  764 +
  765 + }
  766 + break;
  767 +
  768 + case 8: { //待发货
  769 +
  770 + CNLiveMineOrderButtonItem *btnItem = [CNLiveMineOrderButtonItem title:@"我要催单" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeReminder];
  771 + CNLiveMineOrderButtonItem *btnItem1 = [CNLiveMineOrderButtonItem title:@"申请退款" type:CNLiveMineOrderButtonTypeRed tag:CNLiveMineOrderButtonItemTypeRefund];
  772 +
  773 + _funcView.funcItems = @[btnItem1, btnItem];
  774 +
  775 + }
  776 + break;
  777 +
  778 + default:
  779 + break;
  780 + }
  781 +
  782 +}
  783 +#pragma mark - CNAddPopFuncViewDelegate
  784 +- (void)popFuncView:(CNAddPopFuncView *)popView indexPath:(NSInteger)row
  785 +{
  786 +
  787 +}
  788 +#pragma mark -
  789 +#pragma mark - Getter
  790 +- (UIScrollView *)scrollView
  791 +{
  792 + if (!_scrollView) {
  793 + _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, kNavigationBarHeight, kScreenWidth, KScreenHeight-kNavigationBarHeight)];
  794 + _scrollView.contentSize = CGSizeMake(kScreenWidth, 1000);
  795 + _scrollView.backgroundColor = kWeChatBgColor;
  796 + }
  797 + return _scrollView;
  798 +}
  799 +
  800 +- (CNLiveOrderDetailStatusView *)statusView
  801 +{
  802 + if (!_statusView) {
  803 + _statusView = [[CNLiveOrderDetailStatusView alloc] init];
  804 + }
  805 + return _statusView;
  806 +}
  807 +- (CNAddPopFuncView *)popFunItemView
  808 +{
  809 + if (!_popFunItemView) {
  810 + _popFunItemView = [[CNAddPopFuncView alloc] initWithFrame:[UIScreen mainScreen].bounds withIconArray:@[@"dd_createOrderQR"] withTitleArray:@[@"生成二维码"]];
  811 + _popFunItemView.delegate = self;
  812 + }
  813 + return _popFunItemView;
  814 +}
  815 +- (CNLiveRefundFailView *)failView
  816 +{
  817 + if (!_failView) {
  818 + _failView = [[CNLiveRefundFailView alloc] init];
  819 + }
  820 + return _failView;
  821 +}
  822 +
  823 +- (CNLiveAddressView *)addressView
  824 +{
  825 + if (!_addressView) {
  826 + _addressView = [[CNLiveAddressView alloc] init];
  827 +// _addressView.delegate = self;
  828 + }
  829 + return _addressView;
  830 +}
  831 +
  832 +- (CNLiveContactDarenView *)contactDarenView
  833 +{
  834 + if (!_contactDarenView) {
  835 + _contactDarenView = [[CNLiveContactDarenView alloc] init];
  836 + }
  837 + return _contactDarenView;
  838 +}
  839 +
  840 +- (CNLiveIconView *)iconView
  841 +{
  842 + if (!_iconView) {
  843 + _iconView = [[CNLiveIconView alloc] init];
  844 + _iconView.smallIcon = NO;
  845 + }
  846 + return _iconView;
  847 +}
  848 +
  849 +- (CNLiveOrderDetailContentView *)kindView
  850 +{
  851 + if (!_kindView) {
  852 + _kindView = [[CNLiveOrderDetailContentView alloc] init];
  853 + }
  854 + return _kindView;
  855 +}
  856 +
  857 +- (CNLiveServiceTypeView *)serviceView
  858 +{
  859 + if (!_serviceView) {
  860 + _serviceView = [[CNLiveServiceTypeView alloc] init];
  861 + }
  862 + return _serviceView;
  863 +}
  864 +
  865 +- (CNLiveOrderNormalView *)freightView
  866 +{
  867 + if (!_freightView) {
  868 + _freightView = [[CNLiveOrderNormalView alloc] init];
  869 + }
  870 + return _freightView;
  871 +}
  872 +
  873 +- (CNLiveOrderNormalView *)feeView
  874 +{
  875 + if (!_feeView) {
  876 + _feeView = [[CNLiveOrderNormalView alloc] init];
  877 + }
  878 + return _feeView;
  879 +}
  880 +
  881 +- (CNLiveOrderNormalView *)goodsInfoView
  882 +{
  883 + if (!_goodsInfoView) {
  884 + _goodsInfoView = [[CNLiveOrderNormalView alloc] init];
  885 + [_goodsInfoView setTitle:@"商品信息" subTitle:@""];
  886 + }
  887 + return _goodsInfoView;
  888 +}
  889 +
  890 +- (CNLiveActuallyPaidView *)totalView
  891 +{
  892 + if (!_totalView) {
  893 + _totalView = [[CNLiveActuallyPaidView alloc] init];
  894 + }
  895 + return _totalView;
  896 +}
  897 +
  898 +- (CNLiveOrderNormalView *)refunEnableView
  899 +{
  900 + if (!_refunEnableView) {
  901 + _refunEnableView = [[CNLiveOrderNormalView alloc] init];
  902 + }
  903 + return _refunEnableView;
  904 +}
  905 +
  906 +- (CNLiveOrderNormalView *)deliveryView
  907 +{
  908 + if (!_deliveryView) {
  909 + _deliveryView = [[CNLiveOrderNormalView alloc] init];
  910 + }
  911 + return _deliveryView;
  912 +}
  913 +
  914 +- (CNLiveFuncView *)funcView
  915 +{
  916 + if (!_funcView) {
  917 + _funcView = [[CNLiveFuncView alloc] init];
  918 + }
  919 + return _funcView;
  920 +}
  921 +
  922 +- (CNLiveRefundProcessView *)progressView
  923 +{
  924 + if (!_progressView) {
  925 + _progressView = [[CNLiveRefundProcessView alloc] init];
  926 + }
  927 + return _progressView;
  928 +}
  929 +
  930 +- (CNLiveRefundReasonAndNoteView *)noteView
  931 +{
  932 + if (!_noteView) {
  933 + _noteView = [[CNLiveRefundReasonAndNoteView alloc] init];
  934 + }
  935 + return _noteView;
  936 +}
  937 +
  938 +- (CNLiveRefundVoucherView *)voucherView
  939 +{
  940 + if (!_voucherView) {
  941 + _voucherView = [[CNLiveRefundVoucherView alloc] init];
  942 + _voucherView.delegate = self;
  943 + }
  944 + return _voucherView;
  945 +}
  946 +
  947 +- (CNLiveOrderTimeView *)timeView
  948 +{
  949 + if (!_timeView) {
  950 + _timeView = [[CNLiveOrderTimeView alloc] init];
  951 + }
  952 + return _timeView;
  953 +}
  954 +
  955 +- (UIView *)line1
  956 +{
  957 + if (!_line1) {
  958 + _line1 = [[UIView alloc] init];
  959 + _line1.backgroundColor = KCommonLineColor;
  960 + }
  961 + return _line1;
  962 +}
  963 +
  964 +- (UIView *)line2
  965 +{
  966 + if (!_line2) {
  967 + _line2 = [[UIView alloc] init];
  968 + _line2.backgroundColor = KCommonLineColor;
  969 + _line2.hidden = YES;
  970 +
  971 + }
  972 + return _line2;
  973 +}
  974 +
  975 +- (UIView *)line3
  976 +{
  977 + if (!_line3) {
  978 + _line3 = [[UIView alloc] init];
  979 + _line3.backgroundColor = KCommonLineColor;
  980 + }
  981 + return _line3;
  982 +}
  983 +
  984 +- (UIView *)line4
  985 +{
  986 + if (!_line4) {
  987 + _line4 = [[UIView alloc] init];
  988 + _line4.backgroundColor = KCommonLineColor;
  989 + }
  990 + return _line4;
  991 +}
  992 +
  993 +- (UIView *)line5
  994 +{
  995 + if (!_line5) {
  996 + _line5 = [[UIView alloc] init];
  997 + _line5.backgroundColor = KCommonLineColor;
  998 + }
  999 + return _line5;
  1000 +}
  1001 +
  1002 +- (UIView *)line6
  1003 +{
  1004 + if (!_line6) {
  1005 + _line6 = [[UIView alloc] init];
  1006 + _line6.backgroundColor = KCommonLineColor;
  1007 + }
  1008 + return _line6;
  1009 +}
  1010 +
  1011 +- (UIView *)line7
  1012 +{
  1013 + if (!_line7) {
  1014 + _line7 = [[UIView alloc] init];
  1015 + _line7.backgroundColor = KCommonLineColor;
  1016 + }
  1017 + return _line7;
  1018 +}
  1019 +
  1020 +- (void)didReceiveMemoryWarning {
  1021 + [super didReceiveMemoryWarning];
  1022 + // Dispose of any resources that can be recreated.
  1023 +}
  1024 +
  1025 +
  1026 +
  1027 +
  1028 +@end
... ...
CNLiveMyOrder/Classes/View/CNAddPopFuncView.h 0 → 100644
  1 +//
  2 +// CNAddFuncView.h
  3 +// CNLiveNetAdd
  4 +//
  5 +// Created by iOS on 2018/1/10.
  6 +// Copyright © 2018年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +
  11 +@class CNAddPopFuncView;
  12 +@protocol CNAddPopFuncViewDelegate <NSObject>
  13 +
  14 +- (void)popFuncView:(CNAddPopFuncView *)popView indexPath:(NSInteger)row;
  15 +
  16 +@end
  17 +
  18 +@interface CNAddPopFuncView : UIView
  19 +
  20 +@property (nonatomic, assign) id<CNAddPopFuncViewDelegate> delegate;
  21 +
  22 +/**
  23 + 初始化
  24 +
  25 + @param frame frame
  26 + @param arrayIcons 图片数组
  27 + @param arrayTitles 名字数组
  28 + @return self
  29 + */
  30 +- (instancetype)initWithFrame:(CGRect)frame withIconArray:(NSArray *)arrayIcons withTitleArray:(NSArray *)arrayTitles;
  31 +
  32 +- (void)showPopupViewInPosition:(UIButton *)button;
  33 +
  34 +@end
  35 +
  36 +
  37 +@interface CNAddPopFuncItem : NSObject
  38 +
  39 +@property (nonatomic, strong) NSString *title;
  40 +@property (nonatomic, strong) NSString *icon;
  41 +
  42 ++ (instancetype)popItemWithIcon:(NSString *)icon title:(NSString *)title;
  43 +
  44 +
  45 +
  46 +@end
... ...
CNLiveMyOrder/Classes/View/CNAddPopFuncView.m 0 → 100644
  1 +//
  2 +// CNAddFuncView.m
  3 +// CNLiveNetAdd
  4 +//
  5 +// Created by iOS on 2018/1/10.
  6 +// Copyright © 2018年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import "CNAddPopFuncView.h"
  10 +#import "CNPopupTableViewCell.h"
  11 +#import "CNLiveBaseKit.h"
  12 +#import "CNLiveCommonCategory.h"
  13 +#import "QMUIKit.h"
  14 +static CGFloat devicePadding = 20.0f;
  15 +static CGFloat popupViewWidth = 120.0f;
  16 +static CGFloat popupViewpadding = 8.0f;
  17 +static CGFloat Trianglewidth = 5;
  18 +static CGFloat rowHeight = 45.0f;
  19 +
  20 +@interface CNAddPopFuncView ()<UITableViewDelegate, UITableViewDataSource, UIGestureRecognizerDelegate>
  21 +{
  22 + NSMutableArray *_listArr;
  23 +}
  24 +
  25 +@property (nonatomic, strong) UITableView *tableView;
  26 +@property (nonatomic, strong) UIImageView *Triangle;
  27 +@property (nonatomic, strong) UIView *bgView;
  28 +
  29 +@end
  30 +
  31 +@implementation CNAddPopFuncView
  32 +
  33 +- (void)dealloc {
  34 + NSLog(@"CNAddPopFuncView 走了dealloc了吗");
  35 +}
  36 +- (instancetype)initWithFrame:(CGRect)frame
  37 +{
  38 + self = [super initWithFrame:frame];
  39 + if (self) {
  40 + [self addItems];
  41 + [self addSubview:self.bgView];
  42 + [self.bgView addSubview:self.Triangle];
  43 + [self.bgView addSubview:self.tableView];
  44 +
  45 + }
  46 + return self;
  47 +}
  48 +
  49 +- (void)addItems {
  50 +
  51 + CNAddPopFuncItem *groupChat = [CNAddPopFuncItem popItemWithIcon:@"homepage_groupchat" title:@"发起群聊"];
  52 + CNAddPopFuncItem *addNewFriend = [CNAddPopFuncItem popItemWithIcon:@"homepage_addfriends" title:@"添加好友"];
  53 + CNAddPopFuncItem *scan = [CNAddPopFuncItem popItemWithIcon:@"homepage_RichScan_35x35" title:@"扫一扫"];
  54 + CNAddPopFuncItem *arScan = [CNAddPopFuncItem popItemWithIcon:@"homepage_arScreen" title:@"AR见识"];
  55 + CNAddPopFuncItem *hzScan = [CNAddPopFuncItem popItemWithIcon:@"homepage_farming" title:@"农业智能"];
  56 +
  57 + _listArr = [NSMutableArray arrayWithObjects:groupChat, addNewFriend,scan,arScan,hzScan, nil];
  58 +}
  59 +
  60 +- (instancetype)initWithFrame:(CGRect)frame withIconArray:(NSArray *)arrayIcons withTitleArray:(NSArray *)arrayTitles
  61 +{
  62 + self = [super initWithFrame:frame];
  63 + if (self) {
  64 + [self addItems:arrayIcons andTiles:arrayTitles];
  65 + [self addSubview:self.bgView];
  66 + [self.bgView addSubview:self.Triangle];
  67 + [self.bgView addSubview:self.tableView];
  68 + }
  69 + return self;
  70 +}
  71 +- (void)addItems:(NSArray *)arrayIcons andTiles:(NSArray *)arrayTiles
  72 +{
  73 + _listArr = [[NSMutableArray alloc] init];
  74 + for (int i = 0; i < arrayIcons.count; i ++) {
  75 + CNAddPopFuncItem *itme = [CNAddPopFuncItem popItemWithIcon:arrayIcons[i] title:arrayTiles[i]];
  76 + [_listArr addObject:itme];
  77 + }
  78 +}
  79 +- (UIImage *)drawTriangle {
  80 +
  81 + UIGraphicsBeginImageContextWithOptions( CGSizeMake(2 * Trianglewidth, 2 * Trianglewidth), NO, 0);
  82 +
  83 + CGContextRef context = UIGraphicsGetCurrentContext();
  84 +
  85 + //绘制三角形
  86 + CGContextMoveToPoint(context, Trianglewidth, 3);
  87 + CGContextAddLineToPoint(context, 2 * Trianglewidth, 2 * Trianglewidth);
  88 + CGContextAddLineToPoint(context, 0, 2 * Trianglewidth);
  89 + //关闭路径,闭环,(连接起点和最后一个点)
  90 + CGContextSetLineWidth(context, 2);
  91 + CGContextClosePath(context);
  92 + [RGB(73, 72, 75) setFill];
  93 +
  94 + CGContextFillPath(context);
  95 +
  96 + //获取生成的图片
  97 + UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
  98 + return image;
  99 +}
  100 +
  101 +- (void)showPopupViewInPosition:(UIButton *)button {
  102 +
  103 + UIWindow *window = [UIApplication sharedApplication].keyWindow;
  104 + CGRect rect = [button convertRect:button.bounds toView:window];
  105 +
  106 + //按钮右偏
  107 + CGFloat offsetX = 0;
  108 + if (button.frame.size.width/2 + rect.origin.x > [UIScreen mainScreen].bounds.size.width/2) {
  109 + offsetX = -10;
  110 + }else if (button.frame.size.width/2 + rect.origin.x < [UIScreen mainScreen].bounds.size.width/2)
  111 + {
  112 + offsetX = 10;
  113 + }else{
  114 + offsetX = 0;
  115 + }
  116 +
  117 + self.Triangle.frame = CGRectMake(rect.origin.x + (button.frame.size.width/2) + offsetX + 2, rect.origin.y + button.frame.size.height, (Trianglewidth + 2) * 2, (Trianglewidth + 2) * 2);
  118 +
  119 + self.tableView.frame = CGRectMake([UIScreen mainScreen].bounds.size.width-popupViewWidth+offsetX, CGRectGetMaxY(self.Triangle.frame), popupViewWidth, rowHeight * _listArr.count);
  120 +
  121 + [window addSubview:self];
  122 +}
  123 +
  124 +- (void)clickBgViewToHide {
  125 + [self removeFromSuperview];
  126 +}
  127 +
  128 +- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
  129 +
  130 + if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
  131 + return NO;
  132 + }
  133 + return YES;
  134 +
  135 +}
  136 +
  137 +
  138 +#pragma mark -
  139 +#pragma mark - tableView
  140 +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  141 + return _listArr.count;
  142 +}
  143 +
  144 +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  145 + CNPopupTableViewCell *cell = [CNPopupTableViewCell cellWithTableView:tableView];
  146 + cell.item = _listArr[indexPath.row];
  147 + return cell;
  148 +}
  149 +
  150 +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  151 + [self.tableView qmui_clearsSelection];
  152 + [self clickBgViewToHide];
  153 + if (self.delegate && [self.delegate respondsToSelector:@selector(popFuncView:indexPath:) ]) {
  154 + [self.delegate popFuncView:self indexPath:indexPath.row];
  155 + }
  156 +}
  157 +
  158 +#pragma mark -
  159 +#pragma mark - getter
  160 +- (UITableView *)tableView
  161 +{
  162 + if (!_tableView) {
  163 + _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, popupViewWidth, self.frame.size.height) style:UITableViewStylePlain];
  164 + _tableView.separatorStyle = UITableViewCellSelectionStyleNone;
  165 + _tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 1)];
  166 + _tableView.layer.cornerRadius = 5;
  167 + _tableView.layer.masksToBounds = YES;
  168 + _tableView.scrollEnabled = NO;
  169 + _tableView.dataSource = self;
  170 + _tableView.delegate = self;
  171 + _tableView.rowHeight = rowHeight;
  172 + _tableView.backgroundColor = RGB(48, 48, 48);
  173 + _tableView.clipsToBounds = YES;
  174 + _tableView.layer.cornerRadius = 4;
  175 + }
  176 + return _tableView;
  177 +}
  178 +
  179 +- (UIImageView *)Triangle
  180 +{
  181 + if (!_Triangle) {
  182 + _Triangle = [[UIImageView alloc] initWithFrame:CGRectZero];
  183 + _Triangle.image = [self drawTriangle];
  184 + }
  185 + return _Triangle;
  186 +}
  187 +
  188 +- (UIView *)bgView
  189 +{
  190 + if (!_bgView) {
  191 + _bgView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];
  192 + _bgView.backgroundColor = [UIColor clearColor];
  193 +
  194 + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(clickBgViewToHide)];
  195 + tap.delegate = self;
  196 + [_bgView addGestureRecognizer:tap];
  197 + }
  198 + return _bgView;
  199 +}
  200 +
  201 +/*
  202 +// Only override drawRect: if you perform custom drawing.
  203 +// An empty implementation adversely affects performance during animation.
  204 +- (void)drawRect:(CGRect)rect {
  205 + // Drawing code
  206 +}
  207 +*/
  208 +
  209 +@end
  210 +
  211 +@implementation CNAddPopFuncItem
  212 +
  213 ++ (instancetype)popItemWithIcon:(NSString *)icon title:(NSString *)title {
  214 + CNAddPopFuncItem *item = [[CNAddPopFuncItem alloc] init];
  215 + item.icon = icon ? icon : @"icon_tabbar_lab_selected";
  216 + item.title = [NSString isEmpty:title] ? @"title" : title;
  217 + return item;
  218 +}
  219 +
  220 +@end
... ...
CNLiveMyOrder/Classes/View/CNLiveMineOrderView.m
... ... @@ -27,6 +27,9 @@
27 27 @property (nonatomic, strong) UILabel *titleLab;
28 28 @end
29 29 @implementation CNLiveMineOrderView
  30 +- (void)dealloc {
  31 + NSLog(@"CNLiveMineOrderView走了dealloc了吗");
  32 +}
30 33 - (instancetype)initWithFrame:(CGRect)frame{
31 34 self = [super initWithFrame:frame];
32 35 if (self) {
... ... @@ -2488,9 +2491,9 @@
2488 2491  
2489 2492 @end
2490 2493  
2491   -/*
  2494 +
2492 2495 #import "CNStarsControl.h"
2493   -@interface CNEvaluateStarView ()<CNStarsControlDelegate>
  2496 +@interface CNLiveEvaluateStarView ()<CNStarsControlDelegate>
2494 2497  
2495 2498 @property (nonatomic, strong) CNStarsControl *starsControlView;
2496 2499 @property (nonatomic, strong) UIImageView *iconImgView;
... ... @@ -2499,7 +2502,7 @@
2499 2502  
2500 2503 @end
2501 2504  
2502   -@implementation CNEvaluateStarView
  2505 +@implementation CNLiveEvaluateStarView
2503 2506  
2504 2507 - (instancetype)initWithFrame:(CGRect)frame
2505 2508 {
... ... @@ -2514,8 +2517,8 @@
2514 2517 return self;
2515 2518 }
2516 2519  
2517   -- (void)setList:(CNOrderList *)list {
2518   - CNOrderListIconBean *icon = list.iconBean;
  2520 +- (void)setList:(CNLiveOrderList *)list {
  2521 + CNLiveOrderListIconBean *icon = list.iconBean;
2519 2522 [_iconImgView sd_setImageWithURL:[NSURL URLWithString:icon.image] placeholderImage:kDefaultUserIcon];
2520 2523 }
2521 2524  
... ... @@ -2580,13 +2583,13 @@
2580 2583  
2581 2584 #pragma mark -
2582 2585 #pragma mark - CNOrderTimeView
2583   -@interface CNOrderTimeView ()
  2586 +@interface CNLiveOrderTimeView ()
2584 2587  
2585 2588 @property (nonatomic, strong) UILabel *timeLab;
2586 2589  
2587 2590 @end
2588 2591  
2589   -@implementation CNOrderTimeView
  2592 +@implementation CNLiveOrderTimeView
2590 2593  
2591 2594 - (instancetype)initWithFrame:(CGRect)frame
2592 2595 {
... ... @@ -2599,9 +2602,9 @@
2599 2602 return self;
2600 2603 }
2601 2604  
2602   -- (void)setList:(CNOrderList *)list {
  2605 +- (void)setList:(CNLiveOrderList *)list {
2603 2606  
2604   - CNOrderListOrderItem *item = list.orderItem;
  2607 + CNLiveOrderListOrderItem *item = list.orderItem;
2605 2608 NSMutableString *timeText = [[NSMutableString alloc] init];
2606 2609  
2607 2610 //创建时间
... ... @@ -2665,9 +2668,6 @@
2665 2668  
2666 2669 @end
2667 2670  
2668   -*/
2669   -
2670   -
2671 2671  
2672 2672  
2673 2673  
... ...
CNLiveMyOrder/Classes/View/CNLiveNoOrderView.h
... ... @@ -10,7 +10,7 @@
10 10 NS_ASSUME_NONNULL_BEGIN
11 11  
12 12 @interface CNLiveNoOrderView : UIView
13   -- (void)setImageName:(NSString *)imageName title:(NSString *)title customTopH:(CGFloat)topH;
  13 +- (void)setImageName:(UIImage *)image title:(NSString *)title customTopH:(CGFloat)topH;
14 14 @end
15 15  
16 16 NS_ASSUME_NONNULL_END
... ...
CNLiveMyOrder/Classes/View/CNLiveNoOrderView.m
... ... @@ -49,9 +49,9 @@
49 49  
50 50 }
51 51  
52   -- (void)setImageName:(NSString *)imageName title:(NSString *)title customTopH:(CGFloat)topH{
  52 +- (void)setImageName:(UIImage *)image title:(NSString *)title customTopH:(CGFloat)topH{
53 53 self.noOrderLbl.text = title;
54   - self.iconView.image = [UIImage imageNamed:imageName];
  54 + self.iconView.image = image;
55 55  
56 56 if (topH) {
57 57 [self.iconView mas_updateConstraints:^(MASConstraintMaker *make) {
... ...
CNLiveMyOrder/Classes/View/CNLiveOrderDetailContentView.h 0 → 100644
  1 +//
  2 +// CNLiveOrderDetailContentView.h
  3 +// CNLiveMyOrder
  4 +//
  5 +// Created by 殷巧娟 on 2019/6/17.
  6 +//
  7 +
  8 +#import <UIKit/UIKit.h>
  9 +#import "CNLiveOrderList.h"
  10 +NS_ASSUME_NONNULL_BEGIN
  11 +
  12 +@interface CNLiveOrderDetailContentView : UIView
  13 +@property (nonatomic, strong) CNLiveOrderList *list;
  14 +
  15 +@end
  16 +
  17 +NS_ASSUME_NONNULL_END
... ...
CNLiveMyOrder/Classes/View/CNLiveOrderDetailContentView.m 0 → 100644
  1 +//
  2 +// CNLiveOrderDetailContentView.m
  3 +// CNLiveMyOrder
  4 +//
  5 +// Created by 殷巧娟 on 2019/6/17.
  6 +//
  7 +
  8 +#import "CNLiveOrderDetailContentView.h"
  9 +#import "Masonry.h"
  10 +#import "CNLiveCommonCategory.h"
  11 +#import "CNLiveBaseKit.h"
  12 +#define Default_Space 15
  13 +//25
  14 +#define OrderContent_H 80
  15 +
  16 +@interface OrderDetailContentTitleView : UIView
  17 +@property (nonatomic, strong) UILabel *titleLab;
  18 +@property (nonatomic, strong) UILabel *quantityLab;
  19 +@property (nonatomic, strong) UILabel *priceLab;
  20 +@end
  21 +
  22 +@implementation OrderDetailContentTitleView
  23 +- (void)dealloc {
  24 + NSLog(@"OrderDetailContentTitleView dealloc走了吗");
  25 +}
  26 +- (instancetype)initWithFrame:(CGRect)frame
  27 +{
  28 + self = [super initWithFrame:frame];
  29 + if (self) {
  30 + self.backgroundColor = [UIColor whiteColor];
  31 + [self addSubview:self.titleLab];
  32 + [self addSubview:self.quantityLab];
  33 + [self addSubview:self.priceLab];
  34 + [self p_addMasonry];
  35 + }
  36 + return self;
  37 +}
  38 +- (void)p_addMasonry {
  39 +
  40 + [self.titleLab mas_makeConstraints:^(MASConstraintMaker *make) {
  41 + make.left.mas_equalTo(self).mas_offset(Default_Space);
  42 + make.top.mas_equalTo(self).mas_offset(10);
  43 + make.right.mas_equalTo(self.quantityLab.mas_left).mas_offset(-14);
  44 + }];
  45 +
  46 + [self.priceLab mas_makeConstraints:^(MASConstraintMaker *make) {
  47 + make.right.mas_equalTo(self).mas_offset(-Default_Space);
  48 + make.top.mas_equalTo(self.titleLab.mas_top);
  49 + make.width.mas_equalTo(self.mas_width).multipliedBy(0.2);
  50 + }];
  51 +
  52 + [self.quantityLab mas_makeConstraints:^(MASConstraintMaker *make) {
  53 + make.right.mas_equalTo(self.priceLab.mas_left).mas_offset(-10);
  54 + make.top.mas_equalTo(self.titleLab.mas_top);
  55 + make.width.mas_equalTo(self.mas_width).multipliedBy(0.2);
  56 + }];
  57 +
  58 + [self mas_updateConstraints:^(MASConstraintMaker *make) {
  59 + make.bottom.mas_equalTo(self.titleLab.mas_bottom).mas_offset(5);
  60 + }];
  61 +}
  62 +#pragma mark -
  63 +#pragma mark - Getter
  64 +- (UILabel *)titleLab
  65 +{
  66 + if (!_titleLab) {
  67 + _titleLab = [[UILabel alloc] init];
  68 + _titleLab.text = @"种类";
  69 + _titleLab.font = UIFontCNMake(15);
  70 + _titleLab.textColor = KTextBlackColor;
  71 + _titleLab.textAlignment = NSTextAlignmentLeft;
  72 + }
  73 + return _titleLab;
  74 +}
  75 +
  76 +- (UILabel *)quantityLab
  77 +{
  78 + if (!_quantityLab) {
  79 + _quantityLab = [[UILabel alloc] init];
  80 + _quantityLab.text = @"数量";
  81 + _quantityLab.font = UIFontCNMake(15);
  82 + _quantityLab.textColor = KTextBlackColor;
  83 + _quantityLab.textAlignment = NSTextAlignmentCenter;
  84 + }
  85 + return _quantityLab;
  86 +}
  87 +
  88 +- (UILabel *)priceLab
  89 +{
  90 + if (!_priceLab) {
  91 + _priceLab = [[UILabel alloc] init];
  92 + _priceLab.text = @"价格";
  93 + _priceLab.font = UIFontCNMake(15);
  94 + _priceLab.textColor = KTextBlackColor;
  95 + _priceLab.textAlignment = NSTextAlignmentRight;
  96 + }
  97 + return _priceLab;
  98 +}
  99 +@end
  100 +@interface OrderDetailContentItemView : UIView
  101 +
  102 +@property (nonatomic, strong) UILabel *titleLab;
  103 +@property (nonatomic, strong) UILabel *quantityLab;
  104 +@property (nonatomic, strong) UILabel *priceLab;
  105 +@property (nonatomic, strong) UILabel *bottomLine;
  106 +
  107 +@property (nonatomic, strong) CNLiveEditGoodsModel *model;
  108 +
  109 +@end
  110 +
  111 +@implementation OrderDetailContentItemView
  112 +
  113 +- (instancetype)initWithFrame:(CGRect)frame
  114 +{
  115 + self = [super initWithFrame:frame];
  116 + if (self) {
  117 + self.backgroundColor = kWhiteColor;
  118 + [self addSubview:self.titleLab];
  119 + [self addSubview:self.quantityLab];
  120 + [self addSubview:self.priceLab];
  121 + [self addSubview:self.bottomLine];
  122 +
  123 + [self p_addMasonry];
  124 + }
  125 + return self;
  126 +}
  127 +
  128 +- (void)setModel:(CNLiveEditGoodsModel *)model {
  129 +
  130 + _model = model;
  131 + _titleLab.text = model.title;
  132 + _quantityLab.text = [NSString stringWithFormat:@"x %ld", model.quantity];
  133 + _priceLab.text = [NSString stringWithFormat:@"¥ %.2f", model.price];
  134 + NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:_priceLab.text];
  135 + [string addAttribute:NSFontAttributeName value:UIFontCNMake(13) range:NSMakeRange(0, 1)];
  136 + _priceLab.attributedText = string;
  137 +}
  138 +
  139 +- (void)p_addMasonry {
  140 +
  141 + [self.titleLab mas_makeConstraints:^(MASConstraintMaker *make) {
  142 + make.left.mas_equalTo(20);
  143 + make.top.mas_equalTo(20);
  144 + make.width.mas_equalTo(KScreenWidth - 50);
  145 + make.height.mas_equalTo(14);
  146 + }];
  147 + [self.priceLab mas_makeConstraints:^(MASConstraintMaker *make) {
  148 + make.left.mas_equalTo(self.titleLab.mas_left);
  149 + make.top.mas_equalTo(self.titleLab.mas_bottom).offset(15);
  150 + make.width.mas_equalTo(KScreenWidth - 80);
  151 + make.height.mas_equalTo(15);
  152 + }];
  153 +
  154 + [self.quantityLab mas_makeConstraints:^(MASConstraintMaker *make) {
  155 + make.right.mas_equalTo(self.mas_right).mas_offset(-14);
  156 + make.bottom.mas_equalTo(self.priceLab.mas_bottom);
  157 + make.width.mas_equalTo(50);
  158 + make.height.mas_equalTo(13);
  159 + }];
  160 + [self.bottomLine mas_makeConstraints:^(MASConstraintMaker *make) {
  161 + make.left.mas_equalTo(15);
  162 + make.bottom.mas_equalTo(self.mas_bottom).offset(-0.5);
  163 + make.width.mas_equalTo(KScreenWidth - 30);
  164 + make.height.mas_equalTo(0.5);
  165 + }];
  166 + return;
  167 + [self.titleLab mas_makeConstraints:^(MASConstraintMaker *make) {
  168 + make.left.mas_equalTo(self).mas_offset(Default_Space);
  169 + make.centerY.mas_equalTo(self.mas_centerY);
  170 + make.right.mas_equalTo(self.quantityLab.mas_left).mas_offset(-10);
  171 + }];
  172 +
  173 + [self.priceLab mas_makeConstraints:^(MASConstraintMaker *make) {
  174 + make.right.mas_equalTo(self).mas_offset(-Default_Space);
  175 + make.centerY.mas_equalTo(self.mas_centerY);
  176 + make.width.mas_equalTo(self.mas_width).multipliedBy(0.2);
  177 + }];
  178 +
  179 + [self.quantityLab mas_makeConstraints:^(MASConstraintMaker *make) {
  180 + make.right.mas_equalTo(self.priceLab.mas_left).mas_offset(-10);
  181 + make.centerY.mas_equalTo(self.mas_centerY);
  182 + make.width.mas_equalTo(self.mas_width).multipliedBy(0.2);
  183 + }];
  184 +
  185 +}
  186 +
  187 +#pragma mark -
  188 +#pragma mark - Getter
  189 +- (UILabel *)titleLab
  190 +{
  191 + if (!_titleLab) {
  192 + _titleLab = [[UILabel alloc] init];
  193 + _titleLab.font = UIFontCNMake(15);
  194 + _titleLab.textColor = KGray101Color;
  195 + _titleLab.textAlignment = NSTextAlignmentLeft;
  196 + }
  197 + return _titleLab;
  198 +}
  199 +
  200 +- (UILabel *)quantityLab
  201 +{
  202 + if (!_quantityLab) {
  203 + _quantityLab = [[UILabel alloc] init];
  204 + _quantityLab.font = UIFontCNMake(15);
  205 + _quantityLab.textColor = KGray101Color;
  206 + _quantityLab.textAlignment = NSTextAlignmentCenter;
  207 + }
  208 + return _quantityLab;
  209 +}
  210 +
  211 +- (UILabel *)priceLab
  212 +{
  213 + if (!_priceLab) {
  214 + _priceLab = [[UILabel alloc] init];
  215 + _priceLab.font = UIFontCNMake(15);
  216 + _priceLab.textColor = KGray101Color;
  217 + _priceLab.textAlignment = NSTextAlignmentLeft;
  218 + }
  219 + return _priceLab;
  220 +}
  221 +- (UILabel *)bottomLine
  222 +{
  223 + if (!_bottomLine) {
  224 + _bottomLine = [[UILabel alloc] init];
  225 + _bottomLine.backgroundColor = KGray227Color;
  226 + }
  227 + return _bottomLine;
  228 +}
  229 +@end
  230 +@interface OrderDetailContentCollectView : UIView
  231 +@property (nonatomic, strong) NSMutableArray *modelArr;
  232 +@property (nonatomic ,strong) NSArray <CNLiveEditGoodsModel *><CNLiveEditGoodsModel>* goodsInfo;
  233 +
  234 +@end
  235 +
  236 +@implementation OrderDetailContentCollectView
  237 +
  238 +- (instancetype)initWithFrame:(CGRect)frame
  239 +{
  240 + self = [super initWithFrame:frame];
  241 + if (self) {
  242 + self.backgroundColor = kWhiteColor;
  243 + }
  244 + return self;
  245 +}
  246 +
  247 +- (void)setModelArr:(NSMutableArray *)modelArr {
  248 +
  249 + __block OrderDetailContentItemView *tempView;
  250 +
  251 + for (int i = 0 ; i < modelArr.count; i ++ ) {
  252 +
  253 + OrderDetailContentItemView *contentView = [[OrderDetailContentItemView alloc] init];
  254 + contentView.model = (CNLiveEditGoodsModel *)modelArr[i];
  255 + [self addSubview:contentView];
  256 +
  257 + [contentView mas_remakeConstraints:^(MASConstraintMaker *make) {
  258 + make.left.right.mas_equalTo(self);
  259 + make.height.mas_equalTo(OrderContent_H);
  260 + if (tempView) {
  261 + make.top.mas_equalTo(contentView.mas_bottom);
  262 + } else {
  263 + make.top.mas_equalTo(0);
  264 + }
  265 +
  266 + tempView = contentView;
  267 +
  268 + }];
  269 +
  270 + }
  271 +
  272 + [self mas_updateConstraints:^(MASConstraintMaker *make) {
  273 + make.height.mas_equalTo(OrderContent_H*modelArr.count);
  274 + }];
  275 +}
  276 +
  277 +- (void)setGoodsInfo:(NSArray <CNLiveEditGoodsModel *><CNLiveEditGoodsModel> *)goodsInfo {
  278 +
  279 + __block OrderDetailContentItemView *tempView;
  280 +
  281 + for (int i = 0 ; i < goodsInfo.count; i ++ ) {
  282 +
  283 + OrderDetailContentItemView *contentView = [[OrderDetailContentItemView alloc] init];
  284 + contentView.model = (CNLiveEditGoodsModel *)goodsInfo[i];
  285 + [self addSubview:contentView];
  286 +
  287 + [contentView mas_remakeConstraints:^(MASConstraintMaker *make) {
  288 + make.left.right.mas_equalTo(self);
  289 + make.height.mas_equalTo(OrderContent_H);
  290 + if (tempView) {
  291 + make.top.mas_equalTo(tempView.mas_bottom);
  292 + } else {
  293 + make.top.mas_equalTo(0);
  294 + }
  295 +
  296 + tempView = contentView;
  297 +
  298 + }];
  299 +
  300 + }
  301 +
  302 + [self mas_updateConstraints:^(MASConstraintMaker *make) {
  303 + make.height.mas_equalTo(OrderContent_H*[goodsInfo count]);
  304 + }];
  305 +}
  306 +
  307 +@end
  308 +@interface CNLiveOrderDetailContentView ()
  309 +
  310 +@property (nonatomic, strong) UILabel *titleLab;
  311 +@property (nonatomic, strong) UIView *line;
  312 +@property (nonatomic, strong) OrderDetailContentTitleView *contentTitleView;
  313 +@property (nonatomic, strong) OrderDetailContentCollectView *contentCollectView;
  314 +
  315 +
  316 +@end
  317 +
  318 +@implementation CNLiveOrderDetailContentView
  319 +
  320 +- (instancetype)initWithFrame:(CGRect)frame
  321 +{
  322 + self = [super initWithFrame:frame];
  323 + if (self) {
  324 + self.backgroundColor = kWhiteColor;
  325 + [self addSubview:self.titleLab];
  326 + [self addSubview:self.line];
  327 + // [self addSubview:self.contentTitleView];
  328 + [self addSubview:self.contentCollectView];
  329 + [self p_addMasonry];
  330 + }
  331 + return self;
  332 +}
  333 +
  334 +- (void)setList:(CNLiveOrderList *)list {
  335 + CNLiveOrderListOrderItem *orderItem = list.orderItem;
  336 +
  337 + if ([orderItem.goodsInfo count] > 0) {
  338 + _contentCollectView.goodsInfo = orderItem.goodsInfo;
  339 + } else {
  340 + NSMutableArray *modelArr = [[NSMutableArray alloc] init];
  341 + CNLiveEditGoodsModel *goodsModel = [[CNLiveEditGoodsModel alloc] init];
  342 + goodsModel.title = orderItem.title;
  343 + goodsModel.quantity = orderItem.quantity;
  344 + goodsModel.price = orderItem.price;
  345 + [modelArr addObject:goodsModel];
  346 + _contentCollectView.modelArr = modelArr;
  347 + }
  348 +
  349 + [self mas_updateConstraints:^(MASConstraintMaker *make) {
  350 + make.bottom.mas_equalTo(self.contentCollectView.mas_bottom).mas_offset(5);
  351 + }];
  352 +}
  353 +
  354 +- (void)p_addMasonry {
  355 +
  356 + [self.titleLab mas_makeConstraints:^(MASConstraintMaker *make) {
  357 + make.left.mas_equalTo(self).mas_offset(15);
  358 + make.top.mas_equalTo(self).mas_offset(15);
  359 + }];
  360 +
  361 + [self.line mas_makeConstraints:^(MASConstraintMaker *make) {
  362 + make.top.mas_equalTo(self.titleLab.mas_bottom).mas_offset(15);
  363 + make.left.mas_equalTo(10);
  364 + make.width.mas_equalTo(KScreenWidth-20);
  365 + make.height.mas_equalTo(0.5);
  366 + }];
  367 +
  368 +
  369 + [self.contentCollectView mas_remakeConstraints:^(MASConstraintMaker *make) {
  370 + make.top.mas_equalTo(self.line.mas_bottom);
  371 + make.left.right.mas_equalTo(self);
  372 + }];
  373 +}
  374 +
  375 +#pragma mark -
  376 +#pragma mark - Getter
  377 +- (OrderDetailContentTitleView *)contentTitleView
  378 +{
  379 + if (!_contentTitleView) {
  380 + _contentTitleView = [[OrderDetailContentTitleView alloc] init];
  381 + }
  382 + return _contentTitleView;
  383 +}
  384 +
  385 +- (OrderDetailContentCollectView *)contentCollectView
  386 +{
  387 + if (!_contentCollectView) {
  388 + _contentCollectView = [[OrderDetailContentCollectView alloc] init];
  389 + }
  390 + return _contentCollectView;
  391 +}
  392 +
  393 +- (UILabel *)titleLab
  394 +{
  395 + if (!_titleLab) {
  396 + _titleLab = [[UILabel alloc] init];
  397 + _titleLab.textColor = KTextBlackColor;
  398 + _titleLab.font = UIFontCNMake(15);
  399 + _titleLab.text = @"商品信息";
  400 + }
  401 + return _titleLab;
  402 +}
  403 +- (UIView *)line
  404 +{
  405 + if (!_line) {
  406 + _line = [[UIView alloc] init];
  407 + _line.backgroundColor = KCommonLineColor;
  408 + }
  409 + return _line;
  410 +}
  411 +@end
  412 +
  413 +
  414 +
  415 +
  416 +
... ...
CNLiveMyOrder/Classes/View/CNLiveOrderEventHandle.h
... ... @@ -6,10 +6,75 @@
6 6 //
7 7  
8 8 #import <Foundation/Foundation.h>
  9 +#import "CNLiveOrderList.h"
  10 +#import "CNLiveAdminAddressModel.h"
  11 +typedef void(^PayBlock)(int code);
9 12  
10 13 NS_ASSUME_NONNULL_BEGIN
11 14  
12 15 @interface CNLiveOrderEventHandle : NSObject
  16 +/**
  17 +* 提交订单
  18 +*/
  19 ++ (void)submitOrder:(CNLiveOrderList *)orderList address:(CNLiveAdminAddressModel *)model superView:(UIView *)view complete:(void(^)(BOOL ret))complete;
  20 +/**
  21 + * 删除订单
  22 + */
  23 ++ (void)deleteOrder:(CNLiveOrderList *)orderList itemId:(NSString *)itemId superView:(UIView *)view complete:(void(^)(BOOL ret))complete;
  24 +/**
  25 + * 催单
  26 + */
  27 ++ (void)reminderOrder:(CNLiveOrderList *)orderList superView:(UIView *)view complete:(void(^)(NSString *msg))complete;
  28 +/**
  29 + * 联系达人
  30 + */
  31 ++ (void)contactUser:(CNLiveOrderList *)orderList pop:(BOOL)pop;
  32 +/**
  33 + * 退款详情
  34 + */
  35 ++ (void)refundDetail:(CNLiveOrderList *)orderList;
  36 +/**
  37 + * 订单详情
  38 + */
  39 ++ (void)orderDetail:(CNLiveOrderList *)orderList orderBlock:(void (^)(NSString *orderId))orderBlock;
  40 +/**
  41 + * 订单详情
  42 + */
  43 ++ (void)orderDetailByOrderId:(NSString *)orderId;
  44 +/**
  45 + * 申请退款
  46 + */
  47 ++ (void)applyForRefund:(CNLiveOrderList *)orderList;
  48 +/**
  49 + * 确认收货
  50 + */
  51 ++ (void)confirmRecv:(CNLiveOrderList *)orderList itemId:(NSString *)itemId superView:(UIView *)view complete:(void(^)(BOOL ret))complete;
  52 +/**
  53 + * 取消订单
  54 + */
  55 ++ (void)cancelOrder:(CNLiveOrderList *)orderList superView:(UIView *)view complete:(void(^)(BOOL ret))complete;
  56 +/**
  57 + * 订单有误
  58 + */
  59 ++ (void)orderError:(CNLiveOrderList *)orderList superView:(UIView *)view complete:(void(^)(BOOL ret))complete;
  60 +/**
  61 + * 确认订单
  62 + */
  63 ++ (void)confirmOrder:(CNLiveOrderList *)orderList superView:(UIView *)view complete:(void(^)(BOOL ret))complete;
  64 +/**
  65 + * 评论订单
  66 + */
  67 ++ (void)evaluateOrder:(CNLiveOrderList *)orderList;
  68 +/**
  69 + * 达人主页
  70 + */
  71 ++ (void)darenHome:(CNLiveOrderList *)orderList;
  72 +
  73 +/**
  74 + * 去支付
  75 + */
  76 ++ (void)pay:(CNLiveOrderList *)orderList payBlock:(PayBlock)block;
  77 +
13 78  
14 79 @end
15 80  
... ...
CNLiveMyOrder/Classes/View/CNLiveOrderEventHandle.m
... ... @@ -6,7 +6,70 @@
6 6 //
7 7  
8 8 #import "CNLiveOrderEventHandle.h"
9   -
  9 +#import "CNLiveOrderListOrderItem.h"
  10 +#import "QMUIKit.h"
  11 +#import "MJExtension.h"
  12 +#import "DSAddressModel.h"
  13 +#import <CNLiveRequestBastKit/CNLiveNetworking.h>
  14 +#import "CNLiveEnvironmentConfiguration.h"
10 15 @implementation CNLiveOrderEventHandle
11 16  
  17 +//订单详情
  18 ++ (void)orderDetail:(CNLiveOrderList *)orderList orderBlock:(void (^)(NSString * _Nonnull))orderBlock{
  19 + CNLiveOrderListOrderItem *item = orderList.orderItem;
  20 +
  21 + if (orderBlock) {
  22 + orderBlock(item.orderId);
  23 + }
  24 +}
  25 ++(void)submitOrder:(CNLiveOrderList *)orderList address:(DSAddressModel *)model superView:(UIView *)view complete:(void (^)(BOOL))complete {
  26 + [QMUITips showLoadingInView:view];
  27 + CNLiveOrderListOrderItem *orderItem = orderList.orderItem;
  28 +
  29 + NSMutableArray *jsonArr = [[NSMutableArray alloc] init];
  30 +
  31 + for (CNLiveEditGoodsModel *goodsModel in orderList.orderItem.goodsInfo) {
  32 +
  33 + NSDictionary *goodsDic = @{@"price":[NSString stringWithFormat:@"%.2f",goodsModel.price],
  34 + @"title":goodsModel.title,
  35 + @"quantity":[NSString stringWithFormat:@"%ld",goodsModel.quantity],
  36 + @"goodsId":@""
  37 + };
  38 + [jsonArr addObject:goodsDic];
  39 + }
  40 +
  41 + NSString *jsonStr = [jsonArr mj_JSONString];
  42 +
  43 + NSDictionary *param = @{@"orderId":orderItem.orderId,
  44 + @"category":orderItem.category,
  45 + @"fee":[NSString stringWithFormat:@"%.2f", orderItem.fee],
  46 + @"freight":[NSString stringWithFormat:@"%.2f", orderItem.freight],
  47 + @"contactName":model.name,
  48 + @"contactPhone":model.phone,
  49 + @"contactAddress":model.address,
  50 + @"goodsInfo":jsonStr
  51 + };
  52 + [CNLiveNetworking requestNetworkWithMethod:CNLiveRequestMethodPOST URLString:CNOrderModifyUrl Param:param CacheType:CNLiveNetworkCacheTypeNetworkOnly CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) {
  53 +
  54 + }];
  55 +}
  56 ++ (void)deleteOrder:(CNLiveOrderList *)orderList itemId:(NSString *)itemId superView:(UIView *)view complete:(void (^)(BOOL))complete {
  57 + [QMUITips showLoadingInView:view];
  58 +
  59 + CNLiveOrderListOrderItem *orderItem = orderList.orderItem;
  60 +
  61 + NSDictionary *param = @{@"appId":AppId,
  62 + @"plat":@"i",
  63 + @"sid":@"10511059",
  64 + @"orderId":orderItem.orderId ?: @""};
  65 +
  66 + NSMutableDictionary *newParam = [[NSMutableDictionary alloc] initWithDictionary:param];
  67 + if (itemId) {
  68 + [newParam setObject:itemId forKey:@"itemId"];
  69 + }
  70 + [CNLiveNetworking requestNetworkWithMethod:CNLiveRequestMethodPOST URLString:CNDeleteOrderUrl Param:param CacheType:CNLiveNetworkCacheTypeNetworkOnly CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) {
  71 +
  72 + }];
  73 +}
12 74 @end
  75 +
... ...
CNLiveMyOrder/Classes/View/CNLiveOrderListCommonView.h
... ... @@ -6,13 +6,11 @@
6 6 //
7 7  
8 8 #import <UIKit/UIKit.h>
9   -
10 9 NS_ASSUME_NONNULL_BEGIN
11   -
12 10 @interface CNLiveOrderListCommonView : UIView
13 11 //订单状态 0-全部,1-代付款,2-待收货,3-待评价,4-全部退款 ,5退款中
14 12 - (instancetype)initWithFrame:(CGRect)frame orderStatus:(NSString *)status;
15   -
  13 +@property (nonatomic, copy) void (^orderDetaielCellDidSelectedBlock) (NSIndexPath *indexPath,NSString *orderId); //cell被选中
16 14 - (void)refreshData;
17 15 @end
18 16  
... ...
CNLiveMyOrder/Classes/View/CNLiveOrderListCommonView.m
... ... @@ -19,14 +19,17 @@
19 19 #import "MJExtension.h"
20 20 #import "CNLiveEnvironmentConfiguration.h"
21 21 #import "CNUserInfoManager.h"
  22 +#import "TIMAdapter.h"
  23 +#import "CommonLibrary.h"
  24 +#import "CNLiveGetImage.h"
22 25 @interface CNLiveOrderListCommonView ()<UITableViewDelegate,UITableViewDataSource,CNLiveMineOrderTableViewCellDelegate> {
23   -NSString *_status; //订单状态 0-全部,1-代付款,2-待收货,3-待评价,4-全部退款 ,5退款中(全部只返回123数据)
24   -NSInteger _page;
25   -BOOL _next;
26 26 }
27 27 @property (nonatomic, strong) NSMutableArray *listArr; //数据源
28 28 @property (nonatomic, strong) UITableView *tableView;
29 29 @property (nonatomic, strong) CNLiveNoOrderView *noDataView;
  30 +@property (nonatomic, copy) NSString *status; //订单状态 0-全部,1-代付款,2-待收货,3-待评价,4-全部退款 ,5退款中(全部只返回123数据)
  31 +@property (nonatomic, assign) NSInteger page;
  32 +@property (nonatomic, assign) BOOL next;
30 33 @end
31 34  
32 35 @implementation CNLiveOrderListCommonView
... ... @@ -49,7 +52,7 @@ BOOL _next;
49 52 }
50 53  
51 54 - (void)requestDataWithPage:(NSInteger)page refresh:(BOOL)refresh {
52   -
  55 + __weak typeof(self) weakSelf = self;
53 56 [QMUITips showLoadingInView:self];
54 57 NSDictionary *param = @{@"appId":AppId,
55 58 @"sid":@"10511059",
... ... @@ -139,19 +142,24 @@ BOOL _next;
139 142  
140 143 switch (status) {
141 144 case 0:
142   - [self.noDataView setImageName:@"dd_quanbumeiyou" title:@"目前没有订单" customTopH:0];
  145 +// [self.noDataView setImageName:[UIImage imageNamed:@"dd_quanbumeiyou"] title:@"目前没有订单" customTopH:0];
  146 + [self.noDataView setImageName:[CNLiveGetImage cnliveGetImageWithName:@"dd_quanbumeiyou" bundle:@"CNLiveMyOrder.bundle/CNLiveMyOrder" targetClass:[self class]] title:@"目前没有订单" customTopH:0];
  147 +
143 148 break;
144 149  
145 150 case 1:
146   - [self.noDataView setImageName:@"dd_wufukuan" title:@"目前没有订单需要付款" customTopH:0];
  151 +// [self.noDataView setImageName:[UIImage imageNamed:@"dd_wufukuan"] title:@"目前没有订单需要付款" customTopH:0];
  152 + [self.noDataView setImageName:[CNLiveGetImage cnliveGetImageWithName:@"dd_wufukuan" bundle:@"CNLiveMyOrder.bundle/CNLiveMyOrder" targetClass:[self class]] title:@"目前没有订单需要付款" customTopH:0];
147 153 break;
148 154  
149 155 case 2:
150   - [self.noDataView setImageName:@"dd_wushouhuo" title:@"目前没有订单需要收货" customTopH:0];
  156 +// [self.noDataView setImageName:[UIImage imageNamed:@"dd_wushouhuo"] title:@"目前没有订单需要收货" customTopH:0];
  157 + [self.noDataView setImageName:[CNLiveGetImage cnliveGetImageWithName:@"dd_wushouhuo" bundle:@"CNLiveMyOrder.bundle/CNLiveMyOrder" targetClass:[self class]] title:@"目前没有订单需要收货" customTopH:0];
151 158 break;
152 159  
153 160 case 3:
154   - [self.noDataView setImageName:@"dd_wupingjia" title:@"目前没有订单需要评价" customTopH:0];
  161 +// [self.noDataView setImageName:[UIImage imageNamed:@"dd_wupingjia"] title:@"目前没有订单需要评价" customTopH:0];
  162 + [self.noDataView setImageName:[CNLiveGetImage cnliveGetImageWithName:@"dd_wupingjia" bundle:@"CNLiveMyOrder.bundle/CNLiveMyOrder" targetClass:[self class]] title:@"目前没有订单需要评价" customTopH:0];
155 163 break;
156 164 default:
157 165 break;
... ... @@ -162,92 +170,80 @@ BOOL _next;
162 170 #pragma mark -
163 171 #pragma mark - CNMineOrderTableViewCellDelegate
164 172 - (void)cellWithOrderModel:(CNLiveOrderList *)model type:(CNLiveMineOrderButtonItemType)type {
165   - /*
  173 +
166 174  
167 175 switch (type) {
168 176 case CNLiveMineOrderButtonItemTypeCancel: { //取消订单
169   - [CNLiveOrderEventHandle cancelOrder:model superView:self complete:^(BOOL ret) {
170   - if (ret) {
171   - [self refreshData];
172   - }
173   - }];
  177 +// [CNLiveOrderEventHandle cancelOrder:model superView:self complete:^(BOOL ret) {
  178 +// if (ret) {
  179 +// [self refreshData];
  180 +// }
  181 +// }];
174 182 }
175 183 break;
176 184  
177 185 case CNLiveMineOrderButtonItemTypeEvaluate: { //评价订单
178 186  
179   - [CNLiveOrderEventHandle evaluateOrder:model];
  187 +// [CNLiveOrderEventHandle evaluateOrder:model];
180 188  
181 189 }
182 190 break;
183 191  
184 192 case CNLiveMineOrderButtonItemTypeDelete: { //删除订单
185 193  
186   - [CNOrderEventHandle deleteOrder:model itemId:nil superView:self complete:^(BOOL ret) {
  194 + [CNLiveOrderEventHandle deleteOrder:model itemId:nil superView:self complete:^(BOOL ret) {
187 195 if (ret == YES) {
188 196 [self refreshData];
189 197 }
190 198 }];
191   -
192   - // [CNOrderEventHandle deleteOrder:model superView:self complete:^(BOOL ret) {
193   - //
194   - // if (ret == YES) {
195   - // [self refreshData];
196   - // }
197   - // }];
  199 +
198 200 }
199 201 break;
200 202  
201   - case CNMineOrderButtonItemTypeContactDaRen: { //联系达人
202   - [CNOrderEventHandle contactUser:model pop:NO];
  203 + case CNLiveMineOrderButtonItemTypeContactDaRen: { //联系达人
  204 +// [CNOrderEventHandle contactUser:model pop:NO];
203 205 }
204 206 break;
205 207  
206   - case CNMineOrderButtonItemTypePay: { //去付款
  208 + case CNLiveMineOrderButtonItemTypePay: { //去付款
207 209 weakself
208   - [CNOrderEventHandle pay:model payBlock:^(int code) {
209   - if (code == 0) {
210   - //支付成功
211   - [weakSelf refreshData];
212   - }
213   - }];
  210 +// [CNOrderEventHandle pay:model payBlock:^(int code) {
  211 +// if (code == 0) {
  212 +// //支付成功
  213 +// [weakSelf refreshData];
  214 +// }
  215 +// }];
214 216 }
215 217 break;
216 218  
217   - case CNMineOrderButtonItemTypeReminder: { //催单
218   - [CNOrderEventHandle reminderOrder:model superView:self complete:^(NSString *msg) {
219   - [[HUDHelper sharedInstance] tipMessage:msg];
220   - }];
  219 + case CNLiveMineOrderButtonItemTypeReminder: { //催单
  220 +// [CNOrderEventHandle reminderOrder:model superView:self complete:^(NSString *msg) {
  221 +// [[HUDHelper sharedInstance] tipMessage:msg];
  222 +// }];
221 223 }
222 224 break;
223 225  
224   - case CNMineOrderButtonItemTypeRefund: { //申请退款
225   - [CNOrderEventHandle applyForRefund:model];
  226 + case CNLiveMineOrderButtonItemTypeRefund: { //申请退款
  227 +// [CNOrderEventHandle applyForRefund:model];
226 228 }
227 229 break;
228 230  
229   - case CNMineOrderButtonItemTypeRefundDetail: { //退款详情
230   - [CNOrderEventHandle refundDetail:model];
  231 + case CNLiveMineOrderButtonItemTypeRefundDetail: { //退款详情
  232 +// [CNOrderEventHandle refundDetail:model];
231 233 }
232 234 break;
233 235  
234   - case CNMineOrderButtonItemTypeConfirmReceipt: { //确认收货
  236 + case CNLiveMineOrderButtonItemTypeConfirmReceipt: { //确认收货
235 237  
236   - [CNOrderEventHandle confirmRecv:model itemId:nil superView:self complete:^(BOOL ret) {
237   - if (ret) {
238   - [self refreshData];
239   - }
240   - }];
241   -
242   - // [CNOrderEventHandle confirmRecv:model superView:self complete:^(BOOL ret) {
243   - // if (ret) {
244   - // [self requestDataWithPage:0 refresh:YES];
245   - // }
246   - // }];
  238 +// [CNOrderEventHandle confirmRecv:model itemId:nil superView:self complete:^(BOOL ret) {
  239 +// if (ret) {
  240 +// [self refreshData];
  241 +// }
  242 +// }];
247 243 }
248 244 break;
249 245  
250   - case CNMineOrderButtonItemTypeConfirmLogistics: { //查看物流
  246 + case CNLiveMineOrderButtonItemTypeConfirmLogistics: { //查看物流
251 247  
252 248 }
253 249 break;
... ... @@ -255,7 +251,6 @@ BOOL _next;
255 251 default:
256 252 break;
257 253 }
258   - */
259 254  
260 255 }
261 256  
... ... @@ -285,12 +280,16 @@ BOOL _next;
285 280  
286 281 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
287 282 [self.tableView qmui_clearsSelection];
  283 +
288 284 CNLiveMineOrderTableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
289   -// [CNLiveOrderEventHandle orderDetail:cell.list];
  285 + [CNLiveOrderEventHandle orderDetail:cell.list orderBlock:^(NSString * _Nonnull orderId) {
  286 + if (self.orderDetaielCellDidSelectedBlock) {
  287 + self.orderDetaielCellDidSelectedBlock(indexPath, orderId);
  288 + }
  289 + }];
  290 +//
290 291  
291 292 }
292   -
293   -
294 293 #pragma mark -
295 294 #pragma mark - Getter
296 295 - (NSMutableArray *)listArr
... ...
CNLiveMyOrder/Classes/View/CNPopupTableViewCell.h 0 → 100644
  1 +//
  2 +// CNPopupTableViewCell.h
  3 +// CNLiveNetAdd
  4 +//
  5 +// Created by iOS on 2018/1/10.
  6 +// Copyright © 2018年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +#import "CNAddPopFuncView.h"
  11 +
  12 +@interface CNPopupTableViewCell : UITableViewCell
  13 +
  14 +@property (nonatomic, strong) CNAddPopFuncItem *item;
  15 +
  16 ++ (instancetype)cellWithTableView:(UITableView *)tableView;
  17 +
  18 +@end
... ...
CNLiveMyOrder/Classes/View/CNPopupTableViewCell.m 0 → 100644
  1 +//
  2 +// CNPopupTableViewCell.m
  3 +// CNLiveNetAdd
  4 +//
  5 +// Created by iOS on 2018/1/10.
  6 +// Copyright © 2018年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import "CNPopupTableViewCell.h"
  10 +#import "CNLiveBaseKit.h"
  11 +#import "Masonry.h"
  12 +@interface CNPopupTableViewCell ()
  13 +
  14 +@property (nonatomic, strong) UILabel *titleLab;
  15 +@property (nonatomic, strong) UIImageView *iconImg;
  16 +
  17 +@end
  18 +
  19 +@implementation CNPopupTableViewCell
  20 +
  21 ++ (instancetype)cellWithTableView:(UITableView *)tableView {
  22 +
  23 + static NSString *indentify = @"CNPopupTableViewCell";
  24 +
  25 + CNPopupTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:indentify];
  26 + if (!cell) {
  27 + cell = [[CNPopupTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:indentify];
  28 + cell.contentView.userInteractionEnabled = YES;
  29 +
  30 + }
  31 + return cell;
  32 +
  33 +}
  34 +
  35 +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
  36 +{
  37 + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
  38 + if (self) {
  39 + self.selectionStyle = UITableViewCellSelectionStyleNone;
  40 + self.backgroundColor = RGB(73, 72, 75);
  41 + [self.contentView addSubview:self.iconImg];
  42 + [self.contentView addSubview:self.titleLab];
  43 + [self p_addMasonry];
  44 + }
  45 + return self;
  46 +}
  47 +
  48 +- (void)setItem:(CNAddPopFuncItem *)item {
  49 + _titleLab.text = item.title;
  50 + _iconImg.image = [UIImage imageNamed:item.icon];
  51 +}
  52 +
  53 +- (void)drawRect:(CGRect)rect {
  54 +
  55 + CGContextRef context = UIGraphicsGetCurrentContext();
  56 +
  57 + CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);
  58 +
  59 + CGContextFillRect(context, rect);
  60 +
  61 +// //上分割线,
  62 +// CGContextSetStrokeColorWithColor(context, CNLiveColorWithHexString(@"ffffff").CGColor);
  63 +// CGContextStrokeRect(context, CGRectMake(14, -1, rect.size.width - 28, 1));
  64 +
  65 + //下分割线
  66 + CGContextSetStrokeColorWithColor(context, RGB(195, 195, 195).CGColor);
  67 + CGContextStrokeRect(context, CGRectMake(14, rect.size.height, rect.size.width - 28, 1));
  68 +
  69 +}
  70 +
  71 +
  72 +#pragma mark -
  73 +#pragma mark - Masonry
  74 +- (void)p_addMasonry {
  75 +
  76 + [self.iconImg mas_makeConstraints:^(MASConstraintMaker *make) {
  77 + make.left.mas_equalTo(self.contentView).mas_offset(13);
  78 + make.top.mas_equalTo(self.contentView).mas_offset((45-16)/2);
  79 + }];
  80 +
  81 + [self.titleLab mas_makeConstraints:^(MASConstraintMaker *make) {
  82 + make.left.mas_equalTo(self.iconImg.mas_right).mas_offset(11);
  83 + make.centerY.mas_equalTo(self.iconImg.centerY);
  84 + }];
  85 +
  86 +}
  87 +
  88 +#pragma mark -
  89 +#pragma mark - getter
  90 +- (UIImageView *)iconImg
  91 +{
  92 + if (!_iconImg) {
  93 + _iconImg = [[UIImageView alloc] init];//WithFrame:CGRectMake(18, (43-16)/2, 16, 16)];
  94 + }
  95 + return _iconImg;
  96 +}
  97 +
  98 +- (UILabel *)titleLab
  99 +{
  100 + if (!_titleLab) {
  101 + _titleLab = [[UILabel alloc] init];//WithFrame:CGRectMake(_iconImg.right+20, 0, self.bounds.size.width-80, self.bounds.size.height)];
  102 + _titleLab.font = [UIFont systemFontOfSize:15];
  103 + _titleLab.textColor = [UIColor whiteColor];
  104 + }
  105 + return _titleLab;
  106 +}
  107 +
  108 +- (void)awakeFromNib {
  109 + [super awakeFromNib];
  110 + // Initialization code
  111 +}
  112 +
  113 +- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
  114 + [super setSelected:selected animated:animated];
  115 +
  116 + // Configure the view for the selected state
  117 +}
  118 +
  119 +@end
... ...
CNLiveMyOrder/Classes/View/CNStarButton.h 0 → 100644
  1 +//
  2 +// CNStarButton.h
  3 +// CNLiveNetAdd
  4 +//
  5 +// Created by iOS on 2018/3/12.
  6 +// Copyright © 2018年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import <QMUIKit/QMUIKit.h>
  10 +
  11 +@interface CNStarButton : QMUIButton
  12 +
  13 +@property (nonatomic, strong) UIImage *normalImage;
  14 +@property (nonatomic, strong) UIImage *highlightedImage;
  15 +@property (nonatomic, assign) CGFloat fractionPart;
  16 +
  17 +- (instancetype)initWithSize:(CGSize)size;
  18 +- (CGFloat)fractionPartOfPoint:(CGPoint)point;
  19 +
  20 +@end
... ...
CNLiveMyOrder/Classes/View/CNStarButton.m 0 → 100644
  1 +//
  2 +// CNStarButton.m
  3 +// CNLiveNetAdd
  4 +//
  5 +// Created by iOS on 2018/3/12.
  6 +// Copyright © 2018年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import "CNStarButton.h"
  10 +
  11 +@implementation CNStarButton
  12 +
  13 +- (instancetype)initWithSize:(CGSize)size{
  14 + if (self = [super initWithFrame:CGRectMake(0, 0, size.width, size.height)]) {
  15 + self.backgroundColor = [UIColor clearColor];
  16 + self.qmui_outsideEdge = UIEdgeInsetsMake(-30, -5, -20, -5);
  17 + }
  18 + return self;
  19 +}
  20 +
  21 +
  22 +- (CGFloat)fractionPartOfPoint:(CGPoint)point{
  23 + CGFloat fractionPart = (point.x - self.frame.origin.x) / self.frame.size.width;
  24 + return round(fractionPart * 2) / 2;
  25 +}
  26 +
  27 +
  28 +#pragma mark - helper
  29 +
  30 ++ (UIImage *)reSizeImage:(UIImage *)image toSize:(CGSize)reSize{
  31 + UIGraphicsBeginImageContext(reSize);
  32 + [image drawInRect:CGRectMake(0, 0, reSize.width, reSize.height)];
  33 + UIImage *reSizeImage = UIGraphicsGetImageFromCurrentImageContext();
  34 + UIGraphicsEndImageContext();
  35 + return reSizeImage;
  36 +}
  37 +
  38 +
  39 ++ (UIImage *)croppedImage:(UIImage *)image fraction:(CGFloat)fractonPart{
  40 + CGFloat width = image.size.width * fractonPart * image.scale;
  41 + CGRect newFrame = CGRectMake(0, 0, width , image.size.height * image.scale);
  42 + CGImageRef resultImage = CGImageCreateWithImageInRect(image.CGImage, newFrame);
  43 + UIImage *result = [UIImage imageWithCGImage:resultImage scale:image.scale orientation:image.imageOrientation];
  44 + CGImageRelease(resultImage);
  45 + return result;
  46 +}
  47 +
  48 +#pragma mark - setter&getter
  49 +
  50 +- (void)setNormalImage:(UIImage *)normalImage{
  51 + _normalImage = [CNStarButton reSizeImage:normalImage toSize:self.frame.size];
  52 + [self setImage:_normalImage forState:UIControlStateNormal];
  53 +
  54 +}
  55 +
  56 +- (void)setHighlightedImage:(UIImage *)highlightedImage{
  57 + _highlightedImage = [CNStarButton reSizeImage:highlightedImage toSize:self.frame.size];
  58 + [self setImage:_highlightedImage forState:UIControlStateSelected];
  59 +}
  60 +
  61 +
  62 +- (void)setFractionPart:(CGFloat)fractionPart{
  63 + if (fractionPart == 0) {
  64 + return;
  65 + }
  66 + UIImage *image = [CNStarButton croppedImage:self.highlightedImage fraction:fractionPart];
  67 + self.imageView.contentMode = UIViewContentModeScaleAspectFit;
  68 + self.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
  69 + self.contentVerticalAlignment = UIControlContentVerticalAlignmentFill;
  70 + [self setImage:image forState:UIControlStateHighlighted];
  71 + [self setBackgroundImage:self.normalImage forState:UIControlStateHighlighted];
  72 + self.selected = NO;
  73 + self.highlighted = YES;
  74 +}
  75 +
  76 +
  77 +@end
... ...
CNLiveMyOrder/Classes/View/CNStarsControl.h 0 → 100644
  1 +//
  2 +// CNStarsControl.h
  3 +// CNLiveNetAdd
  4 +//
  5 +// Created by iOS on 2018/3/12.
  6 +// Copyright © 2018年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +
  11 +@class CNStarsControl;
  12 +@protocol CNStarsControlDelegate<NSObject>
  13 +@optional
  14 +
  15 +/**
  16 + 回调星星改变后的分数
  17 +
  18 + @param starsControl 星星组件
  19 + @param score 分数
  20 + */
  21 +- (void)starsControl:(CNStarsControl *)starsControl didChangeScore:(CGFloat)score;
  22 +
  23 +@end
  24 +
  25 +@interface CNStarsControl : UIControl
  26 +
  27 +/**
  28 + 初始化一个星星组件,默认5颗星,默认星星的长宽为frame的高度
  29 +
  30 + @param frame fram
  31 + @param normalImage 普通状态星星
  32 + @param highlightedImage 高亮状态星星
  33 + @return 星星组件
  34 + */
  35 +- (instancetype)initWithFrame:(CGRect)frame
  36 + noramlStarImage:(UIImage *)normalImage
  37 + highlightedStarImage:(UIImage *)highlightedImage;
  38 +
  39 +
  40 +/**
  41 + 初始化一个星星组件,默认星星的长宽为frame的高度
  42 +
  43 + @param frame frame
  44 + @param number 星星数量
  45 + @param normalImage 普通状态星星
  46 + @param highlightedImage 高亮状态星星
  47 + @return 星星组件
  48 + */
  49 +- (instancetype)initWithFrame:(CGRect)frame
  50 + stars:(NSInteger)number
  51 + noramlStarImage:(UIImage *)normalImage
  52 + highlightedStarImage:(UIImage *)highlightedImage;
  53 +
  54 +
  55 +/**
  56 + 初始化一个星星组件
  57 +
  58 + @param frame frame
  59 + @param number 星星数目
  60 + @param size 星星大小
  61 + @param normalImage 普通形态星星
  62 + @param highlightedImage 高亮形态星星
  63 + @return 星星组件
  64 + */
  65 +- (instancetype)initWithFrame:(CGRect)frame
  66 + stars:(NSInteger)number
  67 + starSize:(CGSize)size
  68 + noramlStarImage:(UIImage *)normalImage
  69 + highlightedStarImage:(UIImage *)highlightedImage;
  70 +
  71 +
  72 +@property (nonatomic, weak) id<CNStarsControlDelegate> delegate;
  73 +//是否允许小数(1位小数),默认为NO
  74 +@property (nonatomic, assign, getter=isAllowFraction) BOOL allowFraction;
  75 +//星星组件上的分数,可以直接设置
  76 +@property (nonatomic, assign) CGFloat score;
  77 +
  78 +
  79 +@end
... ...
CNLiveMyOrder/Classes/View/CNStarsControl.m 0 → 100644
  1 +//
  2 +// CNStarsControl.m
  3 +// CNLiveNetAdd
  4 +//
  5 +// Created by iOS on 2018/3/12.
  6 +// Copyright © 2018年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import "CNStarsControl.h"
  10 +#import "CNStarButton.h"
  11 +#import "CNLiveBaseKit.h"
  12 +@interface CNStarsControl ()
  13 +
  14 +@property (nonatomic, strong) CNStarButton *currentStar;
  15 +@property (nonatomic, assign) NSInteger numberOfStars;
  16 +@property (nonatomic, strong) UIImage *normalStarImage;
  17 +@property (nonatomic, strong) UIImage *highlightedStarImage;
  18 +@property (nonatomic, assign) CGSize starSize;
  19 +
  20 +@end
  21 +
  22 +@implementation CNStarsControl
  23 +
  24 +- (instancetype)initWithFrame:(CGRect)frame
  25 + stars:(NSInteger)number
  26 + starSize:(CGSize)size
  27 + noramlStarImage:(UIImage *)normalImage
  28 + highlightedStarImage:(UIImage *)highlightedImage{
  29 + if (self = [super initWithFrame:frame]) {
  30 + _numberOfStars = number;
  31 + _normalStarImage = normalImage;
  32 + _highlightedStarImage = highlightedImage;
  33 + _starSize = size;
  34 + _allowFraction = NO;
  35 + self.clipsToBounds = YES;
  36 + self.backgroundColor = [UIColor clearColor];
  37 + [self setupView];
  38 + }
  39 + return self;
  40 +}
  41 +
  42 +- (instancetype)initWithFrame:(CGRect)frame
  43 + noramlStarImage:(UIImage *)normalImage
  44 + highlightedStarImage:(UIImage *)highlightedImage{
  45 + return [self initWithFrame:frame stars:5 starSize:CGSizeMake(frame.size.height, frame.size.height) noramlStarImage:normalImage highlightedStarImage:highlightedImage];
  46 +}
  47 +
  48 +
  49 +- (instancetype)initWithFrame:(CGRect)frame
  50 + stars:(NSInteger)number
  51 + noramlStarImage:(UIImage *)normalImage
  52 + highlightedStarImage:(UIImage *)highlightedImage{
  53 + return [self initWithFrame:frame stars:number starSize:CGSizeMake(frame.size.height, frame.size.height) noramlStarImage:normalImage highlightedStarImage:highlightedImage];
  54 +}
  55 +
  56 +
  57 +
  58 +
  59 +- (void)setupView {
  60 + for (NSInteger index = 0; index < self.numberOfStars; index++) {
  61 + CNStarButton *starButton = [CNStarButton.alloc initWithSize:self.starSize];
  62 + starButton.tag = index;
  63 + starButton.normalImage = self.normalStarImage;
  64 + starButton.highlightedImage = self.highlightedStarImage;
  65 + starButton.userInteractionEnabled = NO;
  66 + [self addSubview:starButton];
  67 + }
  68 +}
  69 +
  70 +
  71 +- (void)layoutSubviews {
  72 + [super layoutSubviews];
  73 + for (NSInteger index = 0; index < self.numberOfStars; index ++) {
  74 + CNStarButton *starButton = [self starForTag:index];
  75 + CGFloat newY = (self.frame.size.height - self.starSize.height) / 2;
  76 + CGFloat margin = 0;
  77 + if (self.numberOfStars > 1) {
  78 + margin = (self.frame.size.width - self.starSize.width * self.numberOfStars) / (self.numberOfStars - 1);
  79 + }
  80 + starButton.frame = CGRectMake((self.starSize.width + margin) * index, newY, self.starSize.width, self.starSize.height);
  81 + }
  82 +}
  83 +
  84 +
  85 +
  86 +- (CNStarButton *)starForPoint:(CGPoint)point {
  87 + for (NSInteger i = 0; i < self.numberOfStars; i++) {
  88 + CNStarButton *starButton = [self starForTag:i];
  89 +// if (CGRectContainsPoint(starButton.frame, point)) {
  90 +// return starButton;
  91 +// }
  92 + if (CGRectContainsPoint(CGRectMake(starButton.x-5, starButton.y-30, starButton.width+10, starButton.height+30+20), point)) {
  93 + return starButton;
  94 + }
  95 + }
  96 + return nil;
  97 +}
  98 +
  99 +- (CNStarButton *)starForTag:(NSInteger)tag {
  100 + __block UIView *target;
  101 + [self.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
  102 + if (obj.tag == tag) {
  103 + target = obj;
  104 + *stop = YES;
  105 + }
  106 + }];
  107 + return (CNStarButton *)target;
  108 +}
  109 +
  110 +
  111 +- (void)starsDownToIndex:(NSInteger)index {
  112 + for (NSInteger i = self.numberOfStars; i > index; --i) {
  113 + CNStarButton *starButton = [self starForTag:i];
  114 + starButton.selected = NO;
  115 + starButton.highlighted = NO;
  116 + }
  117 +}
  118 +
  119 +
  120 +
  121 +- (void)starsUpToIndex:(NSInteger)index {
  122 + for (NSInteger i = 0; i <= index; i++) {
  123 + CNStarButton *starButton = [self starForTag:i];
  124 + starButton.selected = YES;
  125 + starButton.highlighted = NO;
  126 + }
  127 +}
  128 +
  129 +
  130 +#pragma mark -Touch Handling
  131 +
  132 +- (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
  133 + CGPoint point = [touch locationInView:self];
  134 + CNStarButton *pressedStar = [self starForPoint:point];
  135 + if (pressedStar) {
  136 + self.currentStar = pressedStar;
  137 + NSInteger index = pressedStar.tag;
  138 + CGFloat fractionPart = 1;
  139 + if (self.isAllowFraction) {
  140 + fractionPart = [pressedStar fractionPartOfPoint:point];
  141 + }
  142 + self.score = index + fractionPart;
  143 + }
  144 + return YES;
  145 +}
  146 +
  147 +
  148 +- (BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
  149 + CGPoint point = [touch locationInView:self];
  150 + CNStarButton *pressedStar = [self starForPoint:point];
  151 + if (pressedStar) {
  152 + self.currentStar = pressedStar;
  153 + NSInteger index = pressedStar.tag;
  154 + CGFloat fractionPart = 1;
  155 + if (self.isAllowFraction) {
  156 + fractionPart = [pressedStar fractionPartOfPoint:point];
  157 + }
  158 + self.score = index + fractionPart;
  159 + }
  160 + else{
  161 + if (point.x < self.currentStar.frame.origin.x) {
  162 + self.score = self.currentStar.tag;
  163 + }
  164 + else if (point.x > (self.currentStar.frame.origin.x + self.currentStar.frame.size.width)){
  165 + self.score = self.currentStar.tag + 1;
  166 + }
  167 + }
  168 + return YES;
  169 +}
  170 +
  171 +
  172 +- (void)endTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
  173 + [super endTrackingWithTouch:touch withEvent:event];
  174 + if ([self.delegate respondsToSelector:@selector(starsControl:didChangeScore:)]) {
  175 + [self.delegate starsControl:self didChangeScore:self.score];
  176 + }
  177 +}
  178 +
  179 +
  180 +- (void)cancelTrackingWithEvent:(UIEvent *)event {
  181 + [super cancelTrackingWithEvent:event];
  182 + if ([self.delegate respondsToSelector:@selector(starsControl:didChangeScore:)]) {
  183 + [self.delegate starsControl:self didChangeScore:self.score];
  184 + }
  185 +}
  186 +
  187 +#pragma mark - getter&setter
  188 +
  189 +- (void)setScore:(CGFloat)score{
  190 + if (_score == score) {
  191 + return;
  192 + }
  193 + _score = score;
  194 + NSInteger index = floor(score);
  195 + CGFloat fractionPart = score - index;;
  196 + if (!self.isAllowFraction || fractionPart == 0) {
  197 + index -= 1;
  198 + }
  199 + CNStarButton *starButton = [self starForTag:index];
  200 + if (starButton.selected || score == 0) {
  201 + [self starsDownToIndex:index];
  202 + }
  203 + else{
  204 + [self starsUpToIndex:index];
  205 + }
  206 + starButton.fractionPart = fractionPart;
  207 +}
  208 +
  209 +
  210 +@end
... ...
Example/CNLiveMyOrder.xcodeproj/project.pbxproj
... ... @@ -12,6 +12,9 @@
12 12 4E70635122B2781800888CE9 /* CNLiveSelectModuleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E70634E22B2781800888CE9 /* CNLiveSelectModuleView.m */; };
13 13 4E70635222B2781800888CE9 /* CNLiveSelectSubView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E70635022B2781800888CE9 /* CNLiveSelectSubView.m */; };
14 14 4E70635522B2782C00888CE9 /* CNLiveModuleSelectModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E70635422B2782C00888CE9 /* CNLiveModuleSelectModel.m */; };
  15 + 4EB668FD22B785BC00256DDE /* libstdc++.6.0.9.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EB668DF22B7828800256DDE /* libstdc++.6.0.9.tbd */; };
  16 + 4EB668FE22B785C500256DDE /* libstdc++.6.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EB668E122B7829600256DDE /* libstdc++.6.tbd */; };
  17 + 4EB668FF22B785CE00256DDE /* libstdc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EB668E322B782AE00256DDE /* libstdc++.tbd */; };
15 18 6003F58E195388D20070C39A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58D195388D20070C39A /* Foundation.framework */; };
16 19 6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58F195388D20070C39A /* CoreGraphics.framework */; };
17 20 6003F592195388D20070C39A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F591195388D20070C39A /* UIKit.framework */; };
... ... @@ -50,6 +53,15 @@
50 53 4E70635022B2781800888CE9 /* CNLiveSelectSubView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CNLiveSelectSubView.m; sourceTree = "<group>"; };
51 54 4E70635322B2782C00888CE9 /* CNLiveModuleSelectModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CNLiveModuleSelectModel.h; sourceTree = "<group>"; };
52 55 4E70635422B2782C00888CE9 /* CNLiveModuleSelectModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CNLiveModuleSelectModel.m; sourceTree = "<group>"; };
  56 + 4EB668DF22B7828800256DDE /* libstdc++.6.0.9.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libstdc++.6.0.9.tbd"; path = "usr/lib/libstdc++.6.0.9.tbd"; sourceTree = SDKROOT; };
  57 + 4EB668E122B7829600256DDE /* libstdc++.6.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libstdc++.6.tbd"; path = "usr/lib/libstdc++.6.tbd"; sourceTree = SDKROOT; };
  58 + 4EB668E322B782AE00256DDE /* libstdc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libstdc++.tbd"; path = "usr/lib/libstdc++.tbd"; sourceTree = SDKROOT; };
  59 + 4EB668E522B7830500256DDE /* IMFriendshipExt.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IMFriendshipExt.framework; path = Pods/CNLiveIMBaseSDK/CNLiveIMBaseSDK/Classes/IMFriendshipExt.framework; sourceTree = "<group>"; };
  60 + 4EB668E722B783A500256DDE /* IMGroupExt.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IMGroupExt.framework; path = Pods/CNLiveIMBaseSDK/CNLiveIMBaseSDK/Classes/IMGroupExt.framework; sourceTree = "<group>"; };
  61 + 4EB668E922B783DE00256DDE /* IMMessageExt.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IMMessageExt.framework; path = Pods/CNLiveIMBaseSDK/CNLiveIMBaseSDK/Classes/IMMessageExt.framework; sourceTree = "<group>"; };
  62 + 4EB668EB22B783EF00256DDE /* ImSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImSDK.framework; path = Pods/CNLiveIMBaseSDK/CNLiveIMBaseSDK/Classes/ImSDK.framework; sourceTree = "<group>"; };
  63 + 4EB668ED22B7842C00256DDE /* QALSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QALSDK.framework; path = Pods/CNLiveIMBaseSDK/CNLiveIMBaseSDK/Classes/QALSDK.framework; sourceTree = "<group>"; };
  64 + 4EB668EF22B7843F00256DDE /* TLSSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = TLSSDK.framework; path = Pods/CNLiveIMBaseSDK/CNLiveIMBaseSDK/Classes/TLSSDK.framework; sourceTree = "<group>"; };
53 65 5A8205D8E320A4328CC0AB56 /* Pods-CNLiveMyOrder_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CNLiveMyOrder_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-CNLiveMyOrder_Example/Pods-CNLiveMyOrder_Example.release.xcconfig"; sourceTree = "<group>"; };
54 66 6003F58A195388D20070C39A /* CNLiveMyOrder_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CNLiveMyOrder_Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
55 67 6003F58D195388D20070C39A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
... ... @@ -83,6 +95,9 @@
83 95 isa = PBXFrameworksBuildPhase;
84 96 buildActionMask = 2147483647;
85 97 files = (
  98 + 4EB668FF22B785CE00256DDE /* libstdc++.tbd in Frameworks */,
  99 + 4EB668FE22B785C500256DDE /* libstdc++.6.tbd in Frameworks */,
  100 + 4EB668FD22B785BC00256DDE /* libstdc++.6.0.9.tbd in Frameworks */,
86 101 6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */,
87 102 6003F592195388D20070C39A /* UIKit.framework in Frameworks */,
88 103 6003F58E195388D20070C39A /* Foundation.framework in Frameworks */,
... ... @@ -168,6 +183,15 @@
168 183 6003F58C195388D20070C39A /* Frameworks */ = {
169 184 isa = PBXGroup;
170 185 children = (
  186 + 4EB668EF22B7843F00256DDE /* TLSSDK.framework */,
  187 + 4EB668ED22B7842C00256DDE /* QALSDK.framework */,
  188 + 4EB668EB22B783EF00256DDE /* ImSDK.framework */,
  189 + 4EB668E922B783DE00256DDE /* IMMessageExt.framework */,
  190 + 4EB668E722B783A500256DDE /* IMGroupExt.framework */,
  191 + 4EB668E522B7830500256DDE /* IMFriendshipExt.framework */,
  192 + 4EB668E322B782AE00256DDE /* libstdc++.tbd */,
  193 + 4EB668E122B7829600256DDE /* libstdc++.6.tbd */,
  194 + 4EB668DF22B7828800256DDE /* libstdc++.6.0.9.tbd */,
171 195 6003F58D195388D20070C39A /* Foundation.framework */,
172 196 6003F58F195388D20070C39A /* CoreGraphics.framework */,
173 197 6003F591195388D20070C39A /* UIKit.framework */,
... ... @@ -265,6 +289,7 @@
265 289 6003F5AA195388D20070C39A /* Sources */,
266 290 6003F5AB195388D20070C39A /* Frameworks */,
267 291 6003F5AC195388D20070C39A /* Resources */,
  292 + 5489F5FE9807AA264ABFF4FC /* [CP] Embed Pods Frameworks */,
268 293 );
269 294 buildRules = (
270 295 );
... ... @@ -398,9 +423,11 @@
398 423 "${BUILT_PRODUCTS_DIR}/CNLiveRequestBastKit/CNLiveRequestBastKit.framework",
399 424 "${BUILT_PRODUCTS_DIR}/CNLiveTripartiteManagement/CNLiveTripartiteManagement.framework",
400 425 "${BUILT_PRODUCTS_DIR}/CNLiveUserManagement/CNLiveUserManagement.framework",
  426 + "${BUILT_PRODUCTS_DIR}/FBRetainCycleDetector/FBRetainCycleDetector.framework",
401 427 "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework",
402 428 "${BUILT_PRODUCTS_DIR}/MJExtension/MJExtension.framework",
403 429 "${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework",
  430 + "${BUILT_PRODUCTS_DIR}/MLeaksFinder/MLeaksFinder.framework",
404 431 "${BUILT_PRODUCTS_DIR}/Masonry/Masonry.framework",
405 432 "${BUILT_PRODUCTS_DIR}/QMUIKit/QMUIKit.framework",
406 433 "${BUILT_PRODUCTS_DIR}/Realm/Realm.framework",
... ... @@ -420,9 +447,11 @@
420 447 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveRequestBastKit.framework",
421 448 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveTripartiteManagement.framework",
422 449 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveUserManagement.framework",
  450 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBRetainCycleDetector.framework",
423 451 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework",
424 452 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJExtension.framework",
425 453 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJRefresh.framework",
  454 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MLeaksFinder.framework",
426 455 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Masonry.framework",
427 456 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/QMUIKit.framework",
428 457 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework",
... ... @@ -434,6 +463,30 @@
434 463 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CNLiveMyOrder_Example/Pods-CNLiveMyOrder_Example-frameworks.sh\"\n";
435 464 showEnvVarsInLog = 0;
436 465 };
  466 + 5489F5FE9807AA264ABFF4FC /* [CP] Embed Pods Frameworks */ = {
  467 + isa = PBXShellScriptBuildPhase;
  468 + buildActionMask = 2147483647;
  469 + files = (
  470 + );
  471 + inputFileListPaths = (
  472 + );
  473 + inputPaths = (
  474 + "${SRCROOT}/Pods/Target Support Files/Pods-CNLiveMyOrder_Tests/Pods-CNLiveMyOrder_Tests-frameworks.sh",
  475 + "${BUILT_PRODUCTS_DIR}/FBRetainCycleDetector/FBRetainCycleDetector.framework",
  476 + "${BUILT_PRODUCTS_DIR}/MLeaksFinder/MLeaksFinder.framework",
  477 + );
  478 + name = "[CP] Embed Pods Frameworks";
  479 + outputFileListPaths = (
  480 + );
  481 + outputPaths = (
  482 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBRetainCycleDetector.framework",
  483 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MLeaksFinder.framework",
  484 + );
  485 + runOnlyForDeploymentPostprocessing = 0;
  486 + shellPath = /bin/sh;
  487 + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CNLiveMyOrder_Tests/Pods-CNLiveMyOrder_Tests-frameworks.sh\"\n";
  488 + showEnvVarsInLog = 0;
  489 + };
437 490 /* End PBXShellScriptBuildPhase section */
438 491  
439 492 /* Begin PBXSourcesBuildPhase section */
... ... @@ -574,12 +627,78 @@
574 627 baseConfigurationReference = 4DED4DC26696E74F8AB61152 /* Pods-CNLiveMyOrder_Example.debug.xcconfig */;
575 628 buildSettings = {
576 629 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
  630 + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = NO;
577 631 DEVELOPMENT_TEAM = 94X49GG3ZW;
  632 + FRAMEWORK_SEARCH_PATHS = (
  633 + "$(inherited)",
  634 + "$(PROJECT_DIR)/Pods/CNLiveIMBaseSDK/CNLiveIMBaseSDK/Classes",
  635 + );
578 636 GCC_PRECOMPILE_PREFIX_HEADER = YES;
579 637 GCC_PREFIX_HEADER = "CNLiveMyOrder/CNLiveMyOrder-Prefix.pch";
580 638 INFOPLIST_FILE = "CNLiveMyOrder/CNLiveMyOrder-Info.plist";
581 639 IPHONEOS_DEPLOYMENT_TARGET = 9.3;
582 640 MODULE_NAME = ExampleApp;
  641 + OTHER_LDFLAGS = (
  642 + "$(inherited)",
  643 + "-ObjC",
  644 + "-l\"sqlite3\"",
  645 + "-l\"sqlite3.0\"",
  646 + "-framework",
  647 + "\"AFNetworking\"",
  648 + "-framework",
  649 + "\"CNLiveBaseKit\"",
  650 + "-framework",
  651 + "\"CNLiveCommonCategory\"",
  652 + "-framework",
  653 + "\"CNLiveCommonClass\"",
  654 + "-framework",
  655 + "\"CNLiveCustomUI\"",
  656 + "-framework",
  657 + "\"CNLiveIMBaseSDK\"",
  658 + "-framework",
  659 + "\"CNLiveMyOrder\"",
  660 + "-framework",
  661 + "\"CNLiveRequestBastKit\"",
  662 + "-framework",
  663 + "\"CNLiveTripartiteManagement\"",
  664 + "-framework",
  665 + "\"CNLiveUserManagement\"",
  666 + "-framework",
  667 + "\"CoreGraphics\"",
  668 + "-framework",
  669 + "\"FLAnimatedImage\"",
  670 + "-framework",
  671 + "\"Foundation\"",
  672 + "-framework",
  673 + "\"IMFriendshipExt\"",
  674 + "-framework",
  675 + "\"IMGroupExt\"",
  676 + "-framework",
  677 + "\"IMMessageExt\"",
  678 + "-framework",
  679 + "\"ImSDK\"",
  680 + "-framework",
  681 + "\"MJExtension\"",
  682 + "-framework",
  683 + "\"MJRefresh\"",
  684 + "-framework",
  685 + "\"Masonry\"",
  686 + "-framework",
  687 + "\"QALSDK\"",
  688 + "-framework",
  689 + "\"QMUIKit\"",
  690 + "-framework",
  691 + "\"Realm\"",
  692 + "-framework",
  693 + "\"SDWebImage\"",
  694 + "-framework",
  695 + "\"TLSSDK\"",
  696 + "-framework",
  697 + "\"UIKit\"",
  698 + "-framework",
  699 + "\"YYKit\"",
  700 + "-all_load",
  701 + );
583 702 PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}";
584 703 PRODUCT_NAME = "$(TARGET_NAME)";
585 704 WRAPPER_EXTENSION = app;
... ... @@ -591,12 +710,78 @@
591 710 baseConfigurationReference = 5A8205D8E320A4328CC0AB56 /* Pods-CNLiveMyOrder_Example.release.xcconfig */;
592 711 buildSettings = {
593 712 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
  713 + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = NO;
594 714 DEVELOPMENT_TEAM = 94X49GG3ZW;
  715 + FRAMEWORK_SEARCH_PATHS = (
  716 + "$(inherited)",
  717 + "$(PROJECT_DIR)/Pods/CNLiveIMBaseSDK/CNLiveIMBaseSDK/Classes",
  718 + );
595 719 GCC_PRECOMPILE_PREFIX_HEADER = YES;
596 720 GCC_PREFIX_HEADER = "CNLiveMyOrder/CNLiveMyOrder-Prefix.pch";
597 721 INFOPLIST_FILE = "CNLiveMyOrder/CNLiveMyOrder-Info.plist";
598 722 IPHONEOS_DEPLOYMENT_TARGET = 9.3;
599 723 MODULE_NAME = ExampleApp;
  724 + OTHER_LDFLAGS = (
  725 + "$(inherited)",
  726 + "-ObjC",
  727 + "-l\"sqlite3\"",
  728 + "-l\"sqlite3.0\"",
  729 + "-framework",
  730 + "\"AFNetworking\"",
  731 + "-framework",
  732 + "\"CNLiveBaseKit\"",
  733 + "-framework",
  734 + "\"CNLiveCommonCategory\"",
  735 + "-framework",
  736 + "\"CNLiveCommonClass\"",
  737 + "-framework",
  738 + "\"CNLiveCustomUI\"",
  739 + "-framework",
  740 + "\"CNLiveIMBaseSDK\"",
  741 + "-framework",
  742 + "\"CNLiveMyOrder\"",
  743 + "-framework",
  744 + "\"CNLiveRequestBastKit\"",
  745 + "-framework",
  746 + "\"CNLiveTripartiteManagement\"",
  747 + "-framework",
  748 + "\"CNLiveUserManagement\"",
  749 + "-framework",
  750 + "\"CoreGraphics\"",
  751 + "-framework",
  752 + "\"FLAnimatedImage\"",
  753 + "-framework",
  754 + "\"Foundation\"",
  755 + "-framework",
  756 + "\"IMFriendshipExt\"",
  757 + "-framework",
  758 + "\"IMGroupExt\"",
  759 + "-framework",
  760 + "\"IMMessageExt\"",
  761 + "-framework",
  762 + "\"ImSDK\"",
  763 + "-framework",
  764 + "\"MJExtension\"",
  765 + "-framework",
  766 + "\"MJRefresh\"",
  767 + "-framework",
  768 + "\"Masonry\"",
  769 + "-framework",
  770 + "\"QALSDK\"",
  771 + "-framework",
  772 + "\"QMUIKit\"",
  773 + "-framework",
  774 + "\"Realm\"",
  775 + "-framework",
  776 + "\"SDWebImage\"",
  777 + "-framework",
  778 + "\"TLSSDK\"",
  779 + "-framework",
  780 + "\"UIKit\"",
  781 + "-framework",
  782 + "\"YYKit\"",
  783 + "-all_load",
  784 + );
600 785 PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}";
601 786 PRODUCT_NAME = "$(TARGET_NAME)";
602 787 WRAPPER_EXTENSION = app;
... ...
Example/CNLiveMyOrder/CNLiveAppDelegate.m
... ... @@ -8,6 +8,10 @@
8 8  
9 9 #import "CNLiveAppDelegate.h"
10 10 #import "CNLiveViewController.h"
  11 +#import "CNLiveNetworking.h"
  12 +#import "CNLiveEnvironmentConfiguration.h"
  13 +#import <CommonCrypto/CommonDigest.h>
  14 +static NSString * uuid;
11 15 @implementation CNLiveAppDelegate
12 16  
13 17 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
... ... @@ -18,10 +22,58 @@
18 22 UINavigationController *nav =[[UINavigationController alloc]initWithRootViewController:vc];
19 23 self.window.rootViewController = nav;
20 24 [self.window makeKeyAndVisible];
  25 + [self networkParamAction];
21 26 // Override point for customization after application launch.
22 27 return YES;
23 28 }
  29 +- (void)networkParamAction
  30 +{
  31 + NSMutableDictionary * mDict = [[NSMutableDictionary alloc] init];
  32 + [mDict setValue:@"10511059" forKey:@"loginSid"];
  33 +#ifdef Environment_ON
  34 + [mDict setValue:@"com.cnlive.CNLiveNetAdd"forKey:@"platform_id"];
  35 +#else
  36 + [mDict setValue:@"com.cnlive.CNLiveNetAdd.debug"forKey:@"platform_id"];
  37 +#endif
  38 + [mDict setValue:[self appUUIDString] forKey:@"uuid"];
  39 + [mDict setValue:@"i" forKey:@"plat"];
  40 + [mDict setValue:@"1.5.3.18.12.10.15"forKey:@"ver"];
  41 + [mDict setObject:AppId forKey:@"appId"];
  42 + [CNLiveNetworking setupDefaultParam:mDict];
  43 + [CNLiveNetworking setupShowResult:NO];
  44 + [CNLiveNetworking setupSignKey:APPKey];
  45 + NSLog(@"打印appkey%@",APPKey);
  46 + [CNLiveNetworking setAllowRequestDefaultArgument:YES];
  47 + [CNLiveNetworking setResponseSerializerType:CNLiveResponseSerializerJSON];
  48 +}
  49 +- (NSString *)appUUIDString
  50 +{
  51 + static dispatch_once_t onceToken;
  52 + dispatch_once(&onceToken, ^{
  53 + uuid = [[[[UIDevice currentDevice] identifierForVendor] UUIDString] stringByReplacingOccurrencesOfString:@"-" withString:@""];
  54 + });
  55 + return uuid;
  56 +}
24 57  
  58 ++ (NSString*)sha1:(NSString *)string
  59 +{
  60 + NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
  61 +
  62 + uint8_t digest[CC_SHA1_DIGEST_LENGTH];
  63 +
  64 + CC_SHA1(data.bytes, (unsigned int)data.length, digest);
  65 +
  66 + NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
  67 +
  68 + for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++)
  69 + [output appendFormat:@"%02x", digest[i]];
  70 +
  71 + while ([[output substringToIndex:1] isEqualToString:@"0"]) {
  72 + output = [[NSMutableString alloc] initWithString:[output substringFromIndex:1]];
  73 + }
  74 +
  75 + return output;
  76 +}
25 77 - (void)applicationWillResignActive:(UIApplication *)application
26 78 {
27 79 // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
... ...
Example/CNLiveMyOrder/Controller/CNLiveViewController.m
... ... @@ -12,6 +12,8 @@
12 12 #import "CNLiveSelectModuleView.h"
13 13 #import "CNLiveBaseKit.h"
14 14 #import "CNLiveMineOrderController.h"
  15 +//#import "TIMAdapter.h"
  16 +//#import "CommonLibrary.h"
15 17 @interface CNLiveViewController ()
16 18 @property (nonatomic, strong) NSArray *orderDataArr;
17 19 @property (nonatomic, strong) CNLiveSelectModuleView *orderView;
... ... @@ -68,6 +70,7 @@
68 70 CNLiveMineOrderController *vc = [[CNLiveMineOrderController alloc] initWithType:0];
69 71 // [[AppDelegate sharedAppDelegate] pushViewController:vc withBackTitle:@" "];
70 72 [weakSelf.navigationController pushViewController:vc animated:NO];
  73 +// [[BaseAppDelegate sharedAppDelegate] pushViewController:vc withBackTitle:@""];
71 74 }
72 75 break;
73 76 case 1:
... ...
Example/Podfile
... ... @@ -5,6 +5,16 @@ platform :ios, &#39;9.0&#39;
5 5  
6 6 target 'CNLiveMyOrder_Example' do
7 7 pod 'CNLiveMyOrder', :path => '../'
  8 + #依赖三方私有库,如果里面有.a的时候加上这个
  9 + pre_install do |installer| Pod::Installer::Xcode::TargetValidator.send(:define_method, :verify_no_static_framework_transitive_dependencies) {}
  10 + end
  11 + post_install do |installer|
  12 + installer.pods_project.build_configuration_list.build_configurations.each do |configuration|
  13 + configuration.build_settings['CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES'] = 'YES'
  14 + end
  15 + end
  16 + pod 'MLeaksFinder'
  17 + pod 'FBRetainCycleDetector', '~> 0.1.4'
8 18 #pod 'CNLiveTripartiteManagement/Realm'
9 19 #pod 'CNLiveTripartiteManagement/MJExtension'
10 20 #pod 'CNLiveBaseKit'
... ... @@ -17,6 +27,16 @@ target &#39;CNLiveMyOrder_Example&#39; do
17 27 #pod 'CNLiveCustomUI/CNLiveBasicsUI'
18 28 target 'CNLiveMyOrder_Tests' do
19 29 inherit! :search_paths
  30 + #依赖三方私有库,如果里面有.a的时候加上这个
  31 + pre_install do |installer| Pod::Installer::Xcode::TargetValidator.send(:define_method, :verify_no_static_framework_transitive_dependencies) {}
  32 + end
  33 + pod 'MLeaksFinder'
  34 + pod 'FBRetainCycleDetector', '~> 0.1.4'
  35 +# post_install do |installer|
  36 +# installer.pods_project.build_configuration_list.build_configurations.each do |configuration|
  37 +# configuration.build_settings['CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES'] = 'YES'
  38 +# end
  39 +# end
20 40 #pod 'CNLiveTripartiteManagement/Realm'
21 41 #pod 'CNLiveTripartiteManagement/MJExtension'
22 42 #pod 'CNLiveBaseKit'
... ...