diff --git a/iCemarose/Class/Api/KWMAPIManager.m b/iCemarose/Class/Api/KWMAPIManager.m index 67d7b6d..b7aa6f3 100644 --- a/iCemarose/Class/Api/KWMAPIManager.m +++ b/iCemarose/Class/Api/KWMAPIManager.m @@ -891,7 +891,7 @@ static NSString *const passwordTest = @"9e84aae218c57cdf0762763c4cf5a651"; - (NSURLSessionDataTask *) saveWish:(NSDictionary *)parameters success:(void(^)(NSURLSessionDataTask *task,KWMAdditionalListResult *result))success failure:(void(^)(NSURLSessionDataTask *task,NSError *error))failure{ - NSString *apiPath = [NSString stringWithFormat:@"https://%@/app/wishlist-save",@"test.cemarose.com"]; + NSString *apiPath = [NSString stringWithFormat:@"https://%@/app/wishlist-save",WishList_API_DOMAIN]; return [self startSessionTask:KWMHTTPMethodPOST apiPath:apiPath parameters:parameters @@ -911,7 +911,7 @@ static NSString *const passwordTest = @"9e84aae218c57cdf0762763c4cf5a651"; - (NSURLSessionDataTask *) getWishList:(NSDictionary *)parameters success:(void(^)(NSURLSessionDataTask *task,KWMAdditionalListResult *result))success failure:(void(^)(NSURLSessionDataTask *task,NSError *error))failure{ - NSString *apiPath = [NSString stringWithFormat:@"https://%@/app/wishlist",@"test.cemarose.com"]; + NSString *apiPath = [NSString stringWithFormat:@"https://%@/app/wishlist",WishList_API_DOMAIN]; return [self startSessionTask:KWMHTTPMethodGET apiPath:apiPath parameters:parameters @@ -931,7 +931,7 @@ static NSString *const passwordTest = @"9e84aae218c57cdf0762763c4cf5a651"; - (NSURLSessionDataTask *) removeWish:(NSDictionary *)parameters success:(void(^)(NSURLSessionDataTask *task,KWMAdditionalListResult *result))success failure:(void(^)(NSURLSessionDataTask *task,NSError *error))failure{ - NSString *apiPath = [NSString stringWithFormat:@"https://%@/app/wishlist-prune",@"test.cemarose.com"]; + NSString *apiPath = [NSString stringWithFormat:@"https://%@/app/wishlist-prune",WishList_API_DOMAIN]; return [self startSessionTask:KWMHTTPMethodPOST apiPath:apiPath parameters:parameters @@ -950,7 +950,7 @@ static NSString *const passwordTest = @"9e84aae218c57cdf0762763c4cf5a651"; - (NSURLSessionDataTask *) clearWishList:(NSDictionary *)parameters success:(void(^)(NSURLSessionDataTask *task,KWMAdditionalListResult *result))success failure:(void(^)(NSURLSessionDataTask *task,NSError *error))failure{ - NSString *apiPath = [NSString stringWithFormat:@"https://%@/app/wishlist-delete",@"test.cemarose.com"]; + NSString *apiPath = [NSString stringWithFormat:@"https://%@/app/wishlist-delete",WishList_API_DOMAIN]; return [self startSessionTask:KWMHTTPMethodPOST apiPath:apiPath parameters:parameters diff --git a/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsCell.h b/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsCell.h index 5f80631..8fb0411 100644 --- a/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsCell.h +++ b/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsCell.h @@ -13,4 +13,6 @@ @property(nonatomic) BUYProduct *product; +@property(nonatomic) BOOL isMore; + @end diff --git a/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsCell.m b/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsCell.m index 78df253..5292a75 100644 --- a/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsCell.m +++ b/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsCell.m @@ -10,6 +10,9 @@ #import "KWMStringUtil.h" #import "KWMImageUtil.h" #import "UIImageView+WebCache.h" +#import "BUYProductVariant+Currency.h" +#import "UIView+Prettify.h" +#import "UIColor+SAMAdditions.h" @interface KWMClothingSetsCell() @@ -18,14 +21,22 @@ @property(nonatomic,weak) IBOutlet UILabel *lbPrice; +@property(nonatomic,weak) IBOutlet UILabel *lbComparePrice; + @property(nonatomic,weak) IBOutlet UIImageView *ivProduct; +@property(nonatomic,weak) IBOutlet UIView *vMore; + +@property(nonatomic,weak) IBOutlet UIView *vContent; + + @end @implementation KWMClothingSetsCell - (void)awakeFromNib { [super awakeFromNib]; + [self.vMore setBorder:0.5 cornerRadius:0 borderColor:[UIColor sam_colorWithHex:@"D8DBDE"]]; } -(void)setProduct:(BUYProduct *)product{ @@ -37,9 +48,24 @@ self.lbName.text = product.title; if(product.variantsArray.count>0){ BUYProductVariant *variant = product.variantsArray.firstObject; - self.lbPrice.text = [KWMStringUtil price:variant.price]; + self.lbPrice.text = variant.price.priceValueFormatted; + if(variant.compareAtPrice){ + self.lbComparePrice.hidden = NO; + NSString *priceString = variant.compareAtPriceFormatted; + NSDictionary *attribtDic = @{NSStrikethroughStyleAttributeName: [NSNumber numberWithInteger:NSUnderlineStyleSingle]}; + NSMutableAttributedString *attribtStr = [[NSMutableAttributedString alloc]initWithString:priceString attributes:attribtDic]; + self.lbComparePrice.attributedText = attribtStr; + }else{ + self.lbComparePrice.hidden = YES; + } } } } +-(void)setIsMore:(BOOL)isMore{ + _isMore = isMore; + self.vMore.hidden = !isMore; + self.vContent.hidden = isMore; +} + @end diff --git a/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsCell.xib b/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsCell.xib index 85434b8..7c817f6 100644 --- a/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsCell.xib +++ b/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsCell.xib @@ -13,14 +13,32 @@ <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="gTV-IL-0wX" customClass="KWMClothingSetsCell"> - <rect key="frame" x="0.0" y="0.0" width="66" height="100"/> + <rect key="frame" x="0.0" y="0.0" width="66" height="117"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="66" height="100"/> + <rect key="frame" x="0.0" y="0.0" width="66" height="117"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <subviews> + <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="N1w-Ka-XV8" userLabel="more"> + <rect key="frame" x="5" y="5" width="56" height="107"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7vV-EV-Ubn"> + <rect key="frame" x="6" y="40.5" width="45" height="25.5"/> + <string key="text">- 更多 - + MORE…</string> + <fontDescription key="fontDescription" name="PingFangSC-Regular" family="PingFang SC" pointSize="9"/> + <color key="textColor" red="0.3411764706" green="0.3411764706" blue="0.3411764706" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + <constraints> + <constraint firstItem="7vV-EV-Ubn" firstAttribute="centerY" secondItem="N1w-Ka-XV8" secondAttribute="centerY" id="KNw-C1-tkD"/> + <constraint firstItem="7vV-EV-Ubn" firstAttribute="centerX" secondItem="N1w-Ka-XV8" secondAttribute="centerX" id="Rsw-Qa-hiS"/> + </constraints> + </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HJW-BD-Yxt"> - <rect key="frame" x="0.0" y="0.0" width="66" height="100"/> + <rect key="frame" x="0.0" y="0.0" width="66" height="117"/> <subviews> <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="test_home_cloth_2" translatesAutoresizingMaskIntoConstraints="NO" id="9za-nW-9Xw"> <rect key="frame" x="0.0" y="0.0" width="66" height="66"/> @@ -34,14 +52,14 @@ <color key="textColor" red="0.3411764705882353" green="0.3411764705882353" blue="0.3411764705882353" alpha="1" colorSpace="calibratedRGB"/> <nil key="highlightedColor"/> </label> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="¥2900" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Y7j-iw-wgF"> - <rect key="frame" x="0.0" y="81.5" width="31" height="13"/> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="¥2450" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ETG-Ir-uXq"> + <rect key="frame" x="18" y="83.5" width="31" height="13"/> <fontDescription key="fontDescription" name="PingFangSC-Regular" family="PingFang SC" pointSize="9"/> - <color key="textColor" red="0.59215686274509804" green="0.59215686274509804" blue="0.59215686274509804" alpha="1" colorSpace="calibratedRGB"/> + <color key="textColor" red="0.94509803921568625" green="0.5725490196078431" blue="0.60392156862745094" alpha="1" colorSpace="calibratedRGB"/> <nil key="highlightedColor"/> </label> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="¥2450" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ETG-Ir-uXq"> - <rect key="frame" x="35" y="81.5" width="31" height="13"/> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="¥2900" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Y7j-iw-wgF"> + <rect key="frame" x="18" y="98.5" width="31" height="13"/> <fontDescription key="fontDescription" name="PingFangSC-Regular" family="PingFang SC" pointSize="9"/> <color key="textColor" red="0.59215686274509804" green="0.59215686274509804" blue="0.59215686274509804" alpha="1" colorSpace="calibratedRGB"/> <nil key="highlightedColor"/> @@ -49,15 +67,15 @@ </subviews> <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> <constraints> - <constraint firstItem="Y7j-iw-wgF" firstAttribute="leading" secondItem="HJW-BD-Yxt" secondAttribute="leading" id="5ZM-eJ-GGC"/> - <constraint firstItem="Y7j-iw-wgF" firstAttribute="top" secondItem="yLu-gy-qUp" secondAttribute="bottom" id="BgQ-jF-bdC"/> - <constraint firstAttribute="trailing" secondItem="ETG-Ir-uXq" secondAttribute="trailing" id="Gkl-Fj-jok"/> <constraint firstAttribute="trailing" secondItem="yLu-gy-qUp" secondAttribute="trailing" id="J6w-IL-OFe"/> + <constraint firstItem="Y7j-iw-wgF" firstAttribute="top" secondItem="ETG-Ir-uXq" secondAttribute="bottom" constant="2" id="MS6-LF-xHw"/> <constraint firstItem="yLu-gy-qUp" firstAttribute="top" secondItem="9za-nW-9Xw" secondAttribute="bottom" id="Sjr-vz-04G"/> <constraint firstItem="9za-nW-9Xw" firstAttribute="leading" secondItem="HJW-BD-Yxt" secondAttribute="leading" id="WTp-pJ-BqU"/> + <constraint firstItem="ETG-Ir-uXq" firstAttribute="centerX" secondItem="HJW-BD-Yxt" secondAttribute="centerX" id="dnx-YL-XeU"/> + <constraint firstItem="Y7j-iw-wgF" firstAttribute="centerX" secondItem="HJW-BD-Yxt" secondAttribute="centerX" id="jRu-cc-UUM"/> <constraint firstAttribute="trailing" secondItem="9za-nW-9Xw" secondAttribute="trailing" id="lNG-tE-Czx"/> <constraint firstItem="yLu-gy-qUp" firstAttribute="leading" secondItem="HJW-BD-Yxt" secondAttribute="leading" id="qrw-fg-pgo"/> - <constraint firstItem="ETG-Ir-uXq" firstAttribute="top" secondItem="yLu-gy-qUp" secondAttribute="bottom" id="r1H-oy-KBr"/> + <constraint firstItem="ETG-Ir-uXq" firstAttribute="top" secondItem="yLu-gy-qUp" secondAttribute="bottom" constant="2" id="r1H-oy-KBr"/> <constraint firstItem="9za-nW-9Xw" firstAttribute="top" secondItem="HJW-BD-Yxt" secondAttribute="top" id="r31-zi-pm2"/> </constraints> </view> @@ -65,17 +83,24 @@ </view> <constraints> <constraint firstAttribute="bottom" secondItem="HJW-BD-Yxt" secondAttribute="bottom" id="4iA-WQ-OGj"/> + <constraint firstItem="N1w-Ka-XV8" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" constant="5" id="DKY-jH-KF9"/> + <constraint firstAttribute="trailing" secondItem="N1w-Ka-XV8" secondAttribute="trailing" constant="5" id="MF8-FS-c2U"/> <constraint firstAttribute="trailing" secondItem="HJW-BD-Yxt" secondAttribute="trailing" id="MbS-uF-BDP"/> + <constraint firstItem="N1w-Ka-XV8" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="5" id="RGL-QI-Ian"/> + <constraint firstAttribute="bottom" secondItem="N1w-Ka-XV8" secondAttribute="bottom" constant="5" id="WiQ-E3-KOQ"/> <constraint firstItem="HJW-BD-Yxt" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="xt9-ym-xFa"/> <constraint firstItem="HJW-BD-Yxt" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="yXo-lP-ZkK"/> </constraints> - <size key="customSize" width="84" height="78"/> + <size key="customSize" width="84" height="95"/> <connections> <outlet property="ivProduct" destination="9za-nW-9Xw" id="o4P-wq-5gE"/> + <outlet property="lbComparePrice" destination="Y7j-iw-wgF" id="X9U-1F-qja"/> <outlet property="lbName" destination="yLu-gy-qUp" id="EyX-Dv-lZp"/> <outlet property="lbPrice" destination="ETG-Ir-uXq" id="gGI-mJ-6Ms"/> + <outlet property="vContent" destination="HJW-BD-Yxt" id="7dC-vK-y81"/> + <outlet property="vMore" destination="N1w-Ka-XV8" id="WcO-GD-ybS"/> </connections> - <point key="canvasLocation" x="75" y="122"/> + <point key="canvasLocation" x="75" y="130.5"/> </collectionViewCell> </objects> <resources> diff --git a/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsHeader.h b/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsHeader.h index ec9117b..c05bba3 100644 --- a/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsHeader.h +++ b/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsHeader.h @@ -13,6 +13,8 @@ - (void)kwm_onClickProduct:(BUYProduct *)product; +- (void)kwm_gotoClothingSetsPage; + @end @interface KWMClothingSetsHeader : UIView<UICollectionViewDataSource,UICollectionViewDelegate> diff --git a/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsHeader.m b/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsHeader.m index 2393514..1a5cdd5 100644 --- a/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsHeader.m +++ b/iCemarose/Class/UI/NewHome/Cell/KWMClothingSetsHeader.m @@ -91,12 +91,13 @@ BUYProduct *product = [self.productArray objectAtIndex:indexPath.row]; cell.product = product; + cell.isMore = indexPath.row == 9; return cell; } - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { - CGSize size = CGSizeMake(66, 100); + CGSize size = CGSizeMake(66, 117); return size; } @@ -105,11 +106,18 @@ } -(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{ + if(self.productArray && self.productArray.count > 9){ + return 10; + } return self.productArray?self.productArray.count:0; } -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { - [self.delegate kwm_onClickProduct:self.productArray[indexPath.item]]; + if(indexPath.row == 9){ + [self.delegate kwm_gotoClothingSetsPage]; + }else{ + [self.delegate kwm_onClickProduct:self.productArray[indexPath.item]]; + } } diff --git a/iCemarose/Class/UI/NewHome/KWMNewHomeVC.m b/iCemarose/Class/UI/NewHome/KWMNewHomeVC.m index 398fb76..2aef216 100644 --- a/iCemarose/Class/UI/NewHome/KWMNewHomeVC.m +++ b/iCemarose/Class/UI/NewHome/KWMNewHomeVC.m @@ -57,6 +57,8 @@ typedef enum{ @property(nonatomic) NSMutableDictionary *dataMapping; +@property(nonatomic) NSString *clotingSetsHandle; + @end @implementation KWMNewHomeVC @@ -178,7 +180,11 @@ typedef enum{ #pragma mark - KWMRecommendDelegate -(void)kwm_gotoRecommendPage{ - [self openURLWithString:@"https://cemarose.myshopify.com/collections/hot-sell-app?title=主推单品"]; + [self openURLWithString:@"https://cemarose.myshopify.com/collections/hot-sell-app?title=主推单品"]; +} + +-(void)kwm_gotoClothingSetsPage{ + [self openURLWithString:[NSString stringWithFormat:@"https://cemarose.myshopify.com/collections/%@",self.clotingSetsHandle]]; } #pragma mark - KWMRecommendDelegate KWMClothingSetsDelegate KWMHotSalesDelegate @@ -382,6 +388,7 @@ typedef enum{ NSString *handle = clothingParam.count > 1 ? clothingParam[1] : nil; NSArray *tags = clothingParam.count > 2 ? [clothingParam[2] componentsSeparatedByString:@"+"] : nil; if (handle) { + self.clotingSetsHandle = handle; [self requestProductWithHandle:handle tags:tags valueKeyPath:@"clothingSetsHeader.productArray"]; } } diff --git a/iCemarose/Header-Prefix.h b/iCemarose/Header-Prefix.h index 64060e3..a761afb 100644 --- a/iCemarose/Header-Prefix.h +++ b/iCemarose/Header-Prefix.h @@ -70,6 +70,8 @@ //额外api domain #define Additional_API_DOMAIN @"liang.tofnews.com" +#define WishList_API_DOMAIN @"test.cemarose.com" + #define Pay_API_DOMAIN @"liang.tofnews.com" //Shopify对应的key(测试用) @@ -84,6 +86,8 @@ #define Additional_API_DOMAIN @"apps.cemarose.com" +#define WishList_API_DOMAIN @"apps.cemarose.com" + #define Pay_API_DOMAIN @"alipay.cemarose.com" //Shopify对应的key(正式)