Commit 4bcf1b6c authored by Achilles's avatar Achilles

add settlement view with fake data

parent 88b0f4dc
......@@ -76,6 +76,16 @@
C10F18571BF8AAC90065F18C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = C10F18541BF8AAC90065F18C /* Localizable.strings */; };
C10F185A1BF8ACD40065F18C /* SystemImage.png in Resources */ = {isa = PBXBuildFile; fileRef = C10F18581BF8ACD40065F18C /* SystemImage.png */; };
C10F185B1BF8ACD40065F18C /* SystemImage@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C10F18591BF8ACD40065F18C /* SystemImage@2x.png */; };
C10F18601BF8ED5D0065F18C /* VankeStatementMonthCell_iPhone.m in Sources */ = {isa = PBXBuildFile; fileRef = C10F185E1BF8ED5D0065F18C /* VankeStatementMonthCell_iPhone.m */; };
C10F18611BF8ED5D0065F18C /* VankeStatementMonthCell_iPhone.xml in Resources */ = {isa = PBXBuildFile; fileRef = C10F185F1BF8ED5D0065F18C /* VankeStatementMonthCell_iPhone.xml */; };
C10F18651BF8EE020065F18C /* VankeStatementListItemCell_iPhone.m in Sources */ = {isa = PBXBuildFile; fileRef = C10F18631BF8EE020065F18C /* VankeStatementListItemCell_iPhone.m */; };
C10F18661BF8EE020065F18C /* VankeStatementListItemCell_iPhone.xml in Resources */ = {isa = PBXBuildFile; fileRef = C10F18641BF8EE020065F18C /* VankeStatementListItemCell_iPhone.xml */; };
C10F186A1BF8EE2D0065F18C /* VankeStatementDetailListCell_iPhone.m in Sources */ = {isa = PBXBuildFile; fileRef = C10F18681BF8EE2D0065F18C /* VankeStatementDetailListCell_iPhone.m */; };
C10F186B1BF8EE2D0065F18C /* VankeStatementDetailListCell_iPhone.xml in Resources */ = {isa = PBXBuildFile; fileRef = C10F18691BF8EE2D0065F18C /* VankeStatementDetailListCell_iPhone.xml */; };
C10F186F1BF8EE600065F18C /* VankeStatementListBoard_iPhone.m in Sources */ = {isa = PBXBuildFile; fileRef = C10F186D1BF8EE600065F18C /* VankeStatementListBoard_iPhone.m */; };
C10F18701BF8EE600065F18C /* VankeStatementListBoard_iPhone.xml in Resources */ = {isa = PBXBuildFile; fileRef = C10F186E1BF8EE600065F18C /* VankeStatementListBoard_iPhone.xml */; };
C10F18731BF8F1830065F18C /* VankeStatementListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = C10F18721BF8F1830065F18C /* VankeStatementListModel.m */; };
C10F18761BF8F33B0065F18C /* VankeSettlementListAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = C10F18751BF8F33B0065F18C /* VankeSettlementListAPI.m */; };
C12804D71BC124A3001ECBAA /* VankeWeatherModel.m in Sources */ = {isa = PBXBuildFile; fileRef = C12804D61BC124A3001ECBAA /* VankeWeatherModel.m */; };
C12804DA1BC12A67001ECBAA /* VankeWeatherController.m in Sources */ = {isa = PBXBuildFile; fileRef = C12804D91BC12A67001ECBAA /* VankeWeatherController.m */; };
C12804E01BC2D0BD001ECBAA /* VankeUserModel.m in Sources */ = {isa = PBXBuildFile; fileRef = C12804DF1BC2D0BD001ECBAA /* VankeUserModel.m */; };
......@@ -738,6 +748,22 @@
C10F18551BF8AAC90065F18C /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = Localizable.strings; sourceTree = "<group>"; };
C10F18581BF8ACD40065F18C /* SystemImage.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = SystemImage.png; path = img/SystemImage.png; sourceTree = "<group>"; };
C10F18591BF8ACD40065F18C /* SystemImage@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "SystemImage@2x.png"; path = "img/SystemImage@2x.png"; sourceTree = "<group>"; };
C10F185D1BF8ED5D0065F18C /* VankeStatementMonthCell_iPhone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VankeStatementMonthCell_iPhone.h; path = statement/VankeStatementMonthCell_iPhone.h; sourceTree = "<group>"; };
C10F185E1BF8ED5D0065F18C /* VankeStatementMonthCell_iPhone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VankeStatementMonthCell_iPhone.m; path = statement/VankeStatementMonthCell_iPhone.m; sourceTree = "<group>"; };
C10F185F1BF8ED5D0065F18C /* VankeStatementMonthCell_iPhone.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = VankeStatementMonthCell_iPhone.xml; path = statement/VankeStatementMonthCell_iPhone.xml; sourceTree = "<group>"; };
C10F18621BF8EE020065F18C /* VankeStatementListItemCell_iPhone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VankeStatementListItemCell_iPhone.h; path = statement/VankeStatementListItemCell_iPhone.h; sourceTree = "<group>"; };
C10F18631BF8EE020065F18C /* VankeStatementListItemCell_iPhone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VankeStatementListItemCell_iPhone.m; path = statement/VankeStatementListItemCell_iPhone.m; sourceTree = "<group>"; };
C10F18641BF8EE020065F18C /* VankeStatementListItemCell_iPhone.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = VankeStatementListItemCell_iPhone.xml; path = statement/VankeStatementListItemCell_iPhone.xml; sourceTree = "<group>"; };
C10F18671BF8EE2D0065F18C /* VankeStatementDetailListCell_iPhone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VankeStatementDetailListCell_iPhone.h; path = statement/VankeStatementDetailListCell_iPhone.h; sourceTree = "<group>"; };
C10F18681BF8EE2D0065F18C /* VankeStatementDetailListCell_iPhone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VankeStatementDetailListCell_iPhone.m; path = statement/VankeStatementDetailListCell_iPhone.m; sourceTree = "<group>"; };
C10F18691BF8EE2D0065F18C /* VankeStatementDetailListCell_iPhone.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = VankeStatementDetailListCell_iPhone.xml; path = statement/VankeStatementDetailListCell_iPhone.xml; sourceTree = "<group>"; };
C10F186C1BF8EE600065F18C /* VankeStatementListBoard_iPhone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VankeStatementListBoard_iPhone.h; path = statement/VankeStatementListBoard_iPhone.h; sourceTree = "<group>"; };
C10F186D1BF8EE600065F18C /* VankeStatementListBoard_iPhone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VankeStatementListBoard_iPhone.m; path = statement/VankeStatementListBoard_iPhone.m; sourceTree = "<group>"; };
C10F186E1BF8EE600065F18C /* VankeStatementListBoard_iPhone.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = VankeStatementListBoard_iPhone.xml; path = statement/VankeStatementListBoard_iPhone.xml; sourceTree = "<group>"; };
C10F18711BF8F1830065F18C /* VankeStatementListModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VankeStatementListModel.h; sourceTree = "<group>"; };
C10F18721BF8F1830065F18C /* VankeStatementListModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VankeStatementListModel.m; sourceTree = "<group>"; };
C10F18741BF8F33B0065F18C /* VankeSettlementListAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VankeSettlementListAPI.h; sourceTree = "<group>"; };
C10F18751BF8F33B0065F18C /* VankeSettlementListAPI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VankeSettlementListAPI.m; sourceTree = "<group>"; };
C12804D51BC124A3001ECBAA /* VankeWeatherModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VankeWeatherModel.h; sourceTree = "<group>"; };
C12804D61BC124A3001ECBAA /* VankeWeatherModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VankeWeatherModel.m; sourceTree = "<group>"; };
C12804D81BC12A67001ECBAA /* VankeWeatherController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VankeWeatherController.h; sourceTree = "<group>"; };
......@@ -1957,6 +1983,25 @@
path = "zh-Hans.lproj";
sourceTree = "<group>";
};
C10F185C1BF8EC470065F18C /* statement */ = {
isa = PBXGroup;
children = (
C10F185D1BF8ED5D0065F18C /* VankeStatementMonthCell_iPhone.h */,
C10F185E1BF8ED5D0065F18C /* VankeStatementMonthCell_iPhone.m */,
C10F185F1BF8ED5D0065F18C /* VankeStatementMonthCell_iPhone.xml */,
C10F18621BF8EE020065F18C /* VankeStatementListItemCell_iPhone.h */,
C10F18631BF8EE020065F18C /* VankeStatementListItemCell_iPhone.m */,
C10F18641BF8EE020065F18C /* VankeStatementListItemCell_iPhone.xml */,
C10F18671BF8EE2D0065F18C /* VankeStatementDetailListCell_iPhone.h */,
C10F18681BF8EE2D0065F18C /* VankeStatementDetailListCell_iPhone.m */,
C10F18691BF8EE2D0065F18C /* VankeStatementDetailListCell_iPhone.xml */,
C10F186C1BF8EE600065F18C /* VankeStatementListBoard_iPhone.h */,
C10F186D1BF8EE600065F18C /* VankeStatementListBoard_iPhone.m */,
C10F186E1BF8EE600065F18C /* VankeStatementListBoard_iPhone.xml */,
);
name = statement;
sourceTree = "<group>";
};
C12804F11BC40CE7001ECBAA /* util */ = {
isa = PBXGroup;
children = (
......@@ -2192,6 +2237,8 @@
C19ADE421BC81ACB00206213 /* VankeSaleVolumeModel.m */,
C12805101BC6AEB4001ECBAA /* VankeServerModel.h */,
C12805111BC6AEB5001ECBAA /* VankeServerModel.m */,
C10F18711BF8F1830065F18C /* VankeStatementListModel.h */,
C10F18721BF8F1830065F18C /* VankeStatementListModel.m */,
C12804DE1BC2D0BD001ECBAA /* VankeUserModel.h */,
C12804DF1BC2D0BD001ECBAA /* VankeUserModel.m */,
C12804D51BC124A3001ECBAA /* VankeWeatherModel.h */,
......@@ -2217,6 +2264,8 @@
C12804E81BC2E2F4001ECBAA /* VankeResponse.m */,
C19ADE361BC80DD400206213 /* VankeSaleVolumeAPI.h */,
C19ADE371BC80DD400206213 /* VankeSaleVolumeAPI.m */,
C10F18741BF8F33B0065F18C /* VankeSettlementListAPI.h */,
C10F18751BF8F33B0065F18C /* VankeSettlementListAPI.m */,
C12804E41BC2DDDA001ECBAA /* VankeUserLoginAPI.h */,
C12804E51BC2DDDA001ECBAA /* VankeUserLoginAPI.m */,
C1CF9F5A1BF4D6EB0033C35E /* VankeVersionAPI.h */,
......@@ -2249,6 +2298,7 @@
C1D58B3D1BB1BC9200D297FE /* templates */ = {
isa = PBXGroup;
children = (
C10F185C1BF8EC470065F18C /* statement */,
C1CF9F2C1BEF1DB20033C35E /* notice */,
C1A069FB1BE1046B0082006F /* affairs */,
C19BBBDE1BBE85B300831290 /* common */,
......@@ -3777,6 +3827,7 @@
C19BBC1A1BBE865400831290 /* VankeFloorListBoard_iPhone.xml in Resources */,
C1D5948C1BB2E5DD00D297FE /* contact-them@2x.png in Resources */,
C1CF9F571BEFB1530033C35E /* PriorityTagRed@2x.png in Resources */,
C10F18701BF8EE600065F18C /* VankeStatementListBoard_iPhone.xml in Resources */,
C14D6F881BB8268800210172 /* right_icon@2x.png in Resources */,
C1CF9F311BEF20DB0033C35E /* VankeNoticeBoard_iPhone.xml in Resources */,
C19ADE401BC8147800206213 /* search@2x.png in Resources */,
......@@ -3798,6 +3849,7 @@
C1D5948B1BB2E5DD00D297FE /* arrow-down@2x.png in Resources */,
C1D594971BB2E5DD00D297FE /* navigation-back@2x.png in Resources */,
C19BBC291BBE894D00831290 /* user_icon.png in Resources */,
C10F18611BF8ED5D0065F18C /* VankeStatementMonthCell_iPhone.xml in Resources */,
C1DED3321BCEC4B40049BB2D /* business@2x.png in Resources */,
C14D6F871BB8268800210172 /* right_icon.png in Resources */,
C1D595061BB42A6800D297FE /* splash3.xml in Resources */,
......@@ -3805,6 +3857,7 @@
C19ADE3D1BC8147800206213 /* left_arrow.png in Resources */,
C19ADE4A1BC82ADB00206213 /* nav_orange_bg.png in Resources */,
C1CF9F531BEFB1530033C35E /* PriorityTagGrey@2x.png in Resources */,
C10F186B1BF8EE2D0065F18C /* VankeStatementDetailListCell_iPhone.xml in Resources */,
C14D6F671BB8071700210172 /* sales_orange.png in Resources */,
C1DED32F1BCEC4B40049BB2D /* business_checked.png in Resources */,
C19BBC2A1BBE894D00831290 /* user_icon@2x.png in Resources */,
......@@ -3814,6 +3867,7 @@
C1A06A101BE10B080082006F /* service_apply@2x.png in Resources */,
C19BBC2F1BBE8B5800831290 /* VankeFloorDetailBoard_iPhone.xml in Resources */,
C1D595171BB42A7200D297FE /* spinner@2x.png in Resources */,
C10F18661BF8EE020065F18C /* VankeStatementListItemCell_iPhone.xml in Resources */,
C165078D1BB96C2800CB2FC1 /* pwd_icon@2x.png in Resources */,
C1D595161BB42A7200D297FE /* navigation-menu@2x.png in Resources */,
C1CF9F361BEF232A0033C35E /* VankeNoticeListBoard_iPhone.xml in Resources */,
......@@ -3969,6 +4023,7 @@
C1D5984C1BB44B2000D297FE /* BeeMessage+BeeJSON.mm in Sources */,
C19BBC0E1BBE861700831290 /* VankeBusinessChartCell_iPhone.m in Sources */,
C1D598B11BB44B2000D297FE /* Bee_UITabBar.m in Sources */,
C10F18651BF8EE020065F18C /* VankeStatementListItemCell_iPhone.m in Sources */,
C1D598691BB44B2000D297FE /* UIViewController+LifeCycle.m in Sources */,
C1D5986C1BB44B2000D297FE /* UIViewController+Traversing.m in Sources */,
C10F18201BF7ACA80065F18C /* UIView+ViewFrameGeometry.m in Sources */,
......@@ -4047,6 +4102,7 @@
C19BBC251BBE869500831290 /* PullLoader.m in Sources */,
C1D598CA1BB44B2000D297FE /* Bee_UIMatrixView.m in Sources */,
C10F182E1BF7ACA80065F18C /* ICRCheckBox.m in Sources */,
C10F186A1BF8EE2D0065F18C /* VankeStatementDetailListCell_iPhone.m in Sources */,
C1CF9F351BEF232A0033C35E /* VankeNoticeListBoard_iPhone.m in Sources */,
C1D598EA1BB44B2000D297FE /* UILabel+LayoutParser.m in Sources */,
C19ADE521BC837C200206213 /* VankeBaseBoard.m in Sources */,
......@@ -4239,10 +4295,12 @@
C19ADE641BCBE8C000206213 /* VankeSettingsBoard_iPhone.m in Sources */,
C12804DA1BC12A67001ECBAA /* VankeWeatherController.m in Sources */,
C1D599211BB44B2100D297FE /* Bee_FileCache.mm in Sources */,
C10F18761BF8F33B0065F18C /* VankeSettlementListAPI.m in Sources */,
C19BBBF91BBE85F500831290 /* VankeMainBoard_iPhone.m in Sources */,
C1D599261BB44B2100D297FE /* NSObject+BeeUserDefaults.mm in Sources */,
C10F18401BF7ACA80065F18C /* IBTTabBarController.m in Sources */,
C1D598741BB44B2000D297FE /* UIActivityIndicatorView+BeeUIStyle.m in Sources */,
C10F186F1BF8EE600065F18C /* VankeStatementListBoard_iPhone.m in Sources */,
C1D599901BB44B2100D297FE /* unzip.c in Sources */,
C1D599231BB44B2100D297FE /* Bee_MemoryCache.mm in Sources */,
C1D599511BB44B2100D297FE /* Bee_LanguageSetting.m in Sources */,
......@@ -4297,6 +4355,7 @@
C1D5984E1BB44B2000D297FE /* BeeMessage+BeeXML.mm in Sources */,
C1D598A91BB44B2000D297FE /* Bee_UIPageViewController.m in Sources */,
C1D599851BB44B2100D297FE /* CXMLDocument_PrivateExtensions.m in Sources */,
C10F18601BF8ED5D0065F18C /* VankeStatementMonthCell_iPhone.m in Sources */,
C1D5993D1BB44B2100D297FE /* Bee_UnitTest.m in Sources */,
C1D5991E1BB44B2100D297FE /* Bee_SystemPackage.mm in Sources */,
C1D5985E1BB44B2000D297FE /* BeeUIBoard+BackwardCompatible.m in Sources */,
......@@ -4342,6 +4401,7 @@
C1D5986B1BB44B2000D297FE /* UIViewController+Title.m in Sources */,
C1D599641BB44B2100D297FE /* Bee_HTTPUtility2.m in Sources */,
C1D598CF1BB44B2000D297FE /* BeeUISignal+BeeUICell.m in Sources */,
C10F18731BF8F1830065F18C /* VankeStatementListModel.m in Sources */,
C16BA6231BD393B7001ACB26 /* VankePassengerDetailBoard_iPhone.m in Sources */,
C1D598CE1BB44B2000D297FE /* Bee_UIZoomView.m in Sources */,
C10F18321BF7ACA80065F18C /* ICRSystemHeaderView.m in Sources */,
......
......@@ -21,7 +21,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0.1</string>
<string>1.0.3</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAppTransportSecurity</key>
......
//
// VankeSettlementListAPI.h
// vanke
// 查询对账单列表
// Created by xiaomi on 15/10/8.
// Copyright © 2015年 gomore. All rights reserved.
//
#import "Bee.h"
#import "VankeBaseAPI.h"
#import "VankeResponse.h"
@class Paging;
@class SubjectItem;
@class StatementSummary;
@class StatementListResponse;
/*
* 查询对账单列表
* http://.../wanke-server/rest/project/queryprojectsby?classificationEquals={classificationEquals}&nameLike={nameLike}&salesDateEquals={salesDateEquals}& passengerDateEquals={passengerDateEquals}&trafficDateEquals={trafficDateEquals}
*/
@interface VankeSettlementListAPI : VankeBaseAPI
// 账期等于
@property (nonatomic, strong) NSString *settleEquals;
// 是否已确认
@property (nonatomic, assign) BOOL confirmed;
// 项目列表
@property (nonatomic, strong) NSArray *projectsIn;
// 商铺名称或代码类似于
@property (nonatomic, strong) NSString *shopNameOrCodeLike;
@end
// 分页信息
@interface Paging : BeeActiveObject
@property (nonatomic, strong) NSNumber *page;
@property (nonatomic, strong) NSNumber *pageSize;
@property (nonatomic, strong) NSNumber *pageCount;
@property (nonatomic, strong) NSNumber *recordCount;
@end
// 对账单科目
@interface SubjectItem : BeeActiveObject
@property (nonatomic, strong) NSString *subject;
@property (nonatomic, strong) NSString *beginDate;
@property (nonatomic, strong) NSString *endDate;
@property (nonatomic, strong) NSNumber *direction;
@property (nonatomic, strong) NSNumber *amount;
@property (nonatomic, strong) NSString *remark;
-(NSString*) getPictureUrlOrDefault;
-(NSString*) codeName;
@end
// 对账单合计
@interface StatementSummary : BeeActiveObject
@property (nonatomic, strong) NSString *contract;
@property (nonatomic, strong) NSString *settle;
@property (nonatomic, strong) NSNumber *amount;
@property (nonatomic, strong) NSString *state;
@property (nonatomic, strong) NSArray *items; // SubjectItem
-(BOOL) confirmed;
@end
@interface StatementListResponse : VankeResponse
@property (nonatomic, strong) NSNumber *amount;
@property (nonatomic, strong) Paging *paging;
@property (nonatomic, strong) NSArray *records; // StatementSummary
-(BOOL) hasMore;
+(instancetype) fakeData;
@end
\ No newline at end of file
//
// VankeSettlementListAPI.m
// vanke
//
// Created by xiaomi on 15/10/8.
// Copyright © 2015年 gomore. All rights reserved.
//
#import "VankeSettlementListAPI.h"
#import "VankeConfig.h"
#import "VankeUtil.h"
@implementation VankeSettlementListAPI
@synthesize settleEquals = _settleEquals;
@synthesize confirmed = _confirmed;
@synthesize projectsIn = _projectsIn;
@synthesize shopNameOrCodeLike = _shopNameOrCodeLike;
-(void) route:(BeeMessage *)msg {
if (self.sending)
{
// if (![self checkToQuery]) {
// return;
// }
// [self http_get:@"/statement/query"].PARAM(@"settleEquals", self.settleEquals).PARAM(@"prjectsIn", [self.projectsIn componentsJoinedByString:@";"]).TIMEOUT(10);
[self HTTP_GET:@"http://www.baidu.com"].TIMEOUT(10);
}
else if (self.succeed)
{
NSLog(@"response: %@", self.responseString);
// self.serverResp = [StatementListResponse objectFromDictionary: self.responseJSONDictionary];
// if (nil == self.serverResp)
// {
// self.failed = YES;
// return;
// }
self.serverResp = [StatementListResponse fakeData];
} else if (self.failed) {
NSLog(@"response: %@", self.responseString);
self.serverResp = [StatementListResponse objectFromDictionary: self.responseJSONDictionary];
}
}
-(BOOL) checkToQuery {
if ([VankeUtil isBlankString:self.settleEquals]) {
[self setClientError: @"账期不能为空"];
return NO;
}
if (nil == self.projectsIn || [self.projectsIn count] <= 0) {
[self setClientError: @"项目列表不能为空"];
return NO;
}
return YES;
}
@end
#pragma Paging
@implementation Paging
@synthesize page = _page;
@synthesize pageSize = _pageSize;
@synthesize pageCount = _pageCount;
@synthesize recordCount = _recordCount;
@end
#pragma SubjectItem
@implementation SubjectItem
@synthesize subject = _subject;
@synthesize beginDate = _beginDate;
@synthesize endDate = _endDate;
@synthesize direction = _direction;
@synthesize amount = _amount;
@synthesize remark = _remark;
-(NSString*) getPictureUrlOrDefault {
// if ([VankeUtil isBlankString:self.picture]) {
return @"bill.png";
// } else {
// return [NSString stringWithFormat:@"%@/%@", VANKE_SERVER_MEDIA_BASE_URL, self.picture];
// }
}
-(NSString*) codeName {
return [NSString stringWithFormat:@"%@%@", @"", _subject];
}
@end
#pragma StatementSummary
@implementation StatementSummary
@synthesize contract = _contract;
@synthesize settle = _settle;
@synthesize amount = _amount;
@synthesize state = _state;
@synthesize items = _items;
CONVERT_PROPERTY_CLASS(items, SubjectItem)
-(BOOL) confirmed {
return [@"confirmed" eq:_state];
}
@end
#pragma StatementListResponse
@implementation StatementListResponse
@synthesize amount = _amount;
@synthesize paging = _paging;
@synthesize records = _records;
CONVERT_PROPERTY_CLASS(records, StatementSummary)
-(BOOL) hasMore {
return _paging && _paging.pageSize <= _paging.recordCount;
}
+(instancetype) fakeData {
StatementListResponse *resp = [[StatementListResponse alloc] init];
resp.amount = [NSNumber numberWithInt:1000];
Paging *paging = [[Paging alloc] init];
paging.page = [NSNumber numberWithInt:1];
paging.pageSize = [NSNumber numberWithInt:10];
paging.pageCount = [NSNumber numberWithInt:10];
paging.recordCount = [NSNumber numberWithInt:99];
resp.paging = paging;
StatementSummary *summary = [[StatementSummary alloc] init];
summary.contract = @"112233";
summary.settle = @"2015-12-20";
summary.amount = [NSNumber numberWithInt:1000];
summary.state = @"confirmed";
NSMutableArray *ary = [[NSMutableArray alloc] initWithCapacity:10];
for( int i = 0; i < 10; ++i) {
SubjectItem *item = [[SubjectItem alloc] init];
item.subject = @"A01-01 星巴克";
item.beginDate = @"2015-12-01";
item.endDate = @"2015-12-30";
item.direction = [NSNumber numberWithInt:0];
item.amount = [NSNumber numberWithInt:104001];
item.remark = @"有意见,不同意";
[ary addObject:item];
}
summary.items = ary;
NSMutableArray *ary2 = [[NSMutableArray alloc] initWithCapacity:1];
[ary2 addObject:summary];
resp.records = ary2;
return resp;
}
@end
//
// VankeStatementListModel.h
// vanke
//
// Created by xiaomi on 15/10/8.
// Copyright © 2015年 gomore. All rights reserved.
//
#import "Bee.h"
#import "VankeSettlementListAPI.h"
@interface VankeStatementListModel : BeeStreamViewModel
// 账期等于
@property (nonatomic, strong) NSString *settleEquals;
// 是否已确认
@property (nonatomic, assign) BOOL confirmed;
// 项目列表
@property (nonatomic, strong) NSArray *projectsIn;
// 商铺名称或代码类似于
@property (nonatomic, strong) NSString *shopNameOrCodeLike;
// 对账单列表
@property (nonatomic, strong) NSMutableArray *items; // SubjectItem
-(NSInteger) count;
@end
//
// VankeStatementListModel.m
// vanke
//
// Created by xiaomi on 15/10/8.
// Copyright © 2015年 gomore. All rights reserved.
//
#import "VankeStatementListModel.h"
#undef PER_PAGE
#define PER_PAGE (10)
@implementation VankeStatementListModel
@synthesize settleEquals = _settleEquals;
@synthesize confirmed = _confirmed;
@synthesize projectsIn = _projectsIn;
@synthesize shopNameOrCodeLike = _shopNameOrCodeLike;
@synthesize items = _items;
- (void)load
{
self.autoSave = YES;
self.autoLoad = YES;
self.items = [NSMutableArray array];
}
- (void)unload
{
self.settleEquals = nil;
self.confirmed = nil;
self.projectsIn = nil;
self.shopNameOrCodeLike = nil;
self.items = nil;
}
#pragma mark - paging query
- (void)firstPage
{
[self gotoPage:1];
}
- (void)nextPage
{
if ( self.items.count )
{
[self gotoPage:(self.items.count / PER_PAGE + 1)];
}
}
- (void)gotoPage:(NSUInteger)page {
[VankeSettlementListAPI cancel];
VankeSettlementListAPI *api = [VankeSettlementListAPI api];
@weakify(api);
@weakify(self);
api.settleEquals = self.settleEquals;
api.confirmed = self.confirmed;
api.projectsIn = self.projectsIn;
api.shopNameOrCodeLike = self.shopNameOrCodeLike;
api.whenUpdate = ^
{
@normalize(api);
@normalize(self);
if ( api.sending )
{
[self sendUISignal:self.RELOADING];
}
else
{
if ( api.succeed )
{
StatementListResponse *resp = (StatementListResponse*) api.serverResp;
if ( nil == resp || nil == resp.records )
{
api.failed = YES;
}
else
{
NSArray *records = resp.records;
StatementSummary *firstRecord = (StatementSummary*) [records objectAtIndex:0];
if ( page <= 1 )
{
[self.items removeAllObjects];
[self.items addObjectsFromArray:firstRecord.items];
}
else
{
[self.items addObjectsFromArray:firstRecord.items];
[self.items unique:^NSComparisonResult(id left, id right) {
return [((SubjectItem *)left).subject compare:((SubjectItem *)right).subject];
}];
}
self.more = [resp hasMore];
self.loaded = YES;
}
}
[self sendUISignal:self.RELOADED];
}
};
[api send];
}
@end
......@@ -17,6 +17,7 @@
#import "VankeAffairsBoard_iPhone.h"
#import "VankeNoticeListBoard_iPhone.h"
#import "VankeStatementListBoard_iPhone.h"
#pragma mark -
......@@ -84,12 +85,13 @@ ON_DID_DISAPPEAR( signal )
}
ON_SIGNAL3(VankeAffairsBoard_iPhone, btnNotice, signal) {
VankeNoticeListBoard_iPhone * board = [VankeNoticeListBoard_iPhone board];
VankeNoticeListBoard_iPhone *board = [VankeNoticeListBoard_iPhone board];
[self.stack pushBoard:board animated:YES];
}
ON_SIGNAL3(VankeAffairsBoard_iPhone, btnBill, signal) {
INFO(@"button bill pressed.");
VankeStatementListBoard_iPhone *board = [VankeStatementListBoard_iPhone board];
[self.stack pushBoard:board animated:YES];
}
ON_SIGNAL3(VankeAffairsBoard_iPhone, btnSaleInput, signal) {
......
......@@ -49,7 +49,7 @@ DEF_OUTLET( BeeUIActivityIndicatorView, indicator )
self.arrow.hidden = NO;
self.indicator.hidden = YES;
self.status.data = @"Pull to refresh";
self.date.data = [NSString stringWithFormat:@"Last update:%@", [[NSDate date] stringWithDateFormat:@"MM/dd/yyyy"]];
self.date.data = [NSString stringWithFormat:@"最后更新时间:%@", [[NSDate date] stringWithDateFormat:@"MM/dd/yyyy"]];
}
- (void)unload
......@@ -74,7 +74,7 @@ ON_SIGNAL3( BeeUIPullLoader, STATE_CHANGED, signal )
self.arrow.transform = CGAffineTransformRotate( CGAffineTransformIdentity, (M_PI / 360.0f) * -359.0f );
self.indicator.hidden = YES;
self.status.data = @"松开刷新数据";
self.date.data = [NSString stringWithFormat:@"Last update:%@", [[NSDate date] stringWithDateFormat:@"MM/dd/yyyy"]];
self.date.data = [NSString stringWithFormat:@"最后更新时间:%@", [[NSDate date] stringWithDateFormat:@"MM/dd/yyyy"]];
}
else if ( self.loading )
{
......
//
// ______ ______ ______
// /\ __ \ /\ ___\ /\ ___\
// \ \ __< \ \ __\_ \ \ __\_
// \ \_____\ \ \_____\ \ \_____\
// \/_____/ \/_____/ \/_____/
//
// Powered by BeeFramework
//
//
// VankeStatementDetailListCell_iPhone.h
// vanke
//
// Created by xiaomi on 15/11/16.
// Copyright © 2015年 gomore. All rights reserved.
//
#import "Bee.h"
#pragma mark -
@interface VankeStatementDetailListCell_iPhone : BeeUICell
@end
//
// ______ ______ ______
// /\ __ \ /\ ___\ /\ ___\
// \ \ __< \ \ __\_ \ \ __\_
// \ \_____\ \ \_____\ \ \_____\
// \/_____/ \/_____/ \/_____/
//
// Powered by BeeFramework
//
//
// VankeStatementDetailListCell_iPhone.m
// vanke
//
// Created by xiaomi on 15/11/16.
// Copyright © 2015年 gomore. All rights reserved.
//
#import "VankeStatementDetailListCell_iPhone.h"
#pragma mark -
@implementation VankeStatementDetailListCell_iPhone
SUPPORT_AUTOMATIC_LAYOUT( YES )
SUPPORT_RESOURCE_LOADING( YES )
- (void)load
{
}
- (void)unload
{
}
- (void)dataDidChanged
{
// TODO: fill data
}
- (void)layoutDidFinish
{
// TODO: custom layout here
}
@end
<?xml version="1.0" encoding="UTF-8"?>
<ui namespace="VankeStatementDetailListCell_iPhone">
<!--
<row></row>
-->
<col class="wrapper">
<!-- add your UI elements here -->
</col>
<style type="text/css">
.wrapper {
width: 100%;
height: 100%;
}
</style>
</ui>
\ No newline at end of file
//
// ______ ______ ______
// /\ __ \ /\ ___\ /\ ___\
// \ \ __< \ \ __\_ \ \ __\_
// \ \_____\ \ \_____\ \ \_____\
// \/_____/ \/_____/ \/_____/
//
// Powered by BeeFramework
//
//
// VankeStatementListBoard_iPhone.h
// vanke
// 对账单列表
// Created by xiaomi on 15/11/16.
// Copyright © 2015年 gomore. All rights reserved.
//
#import "Bee.h"
#import "VankeBaseBoard.h"
#import "VankeStatementListModel.h"
#pragma mark -
@interface VankeStatementListBoard_iPhone : VankeBaseBoard
AS_MODEL( VankeStatementListModel, model )
AS_OUTLET( BeeUIScrollView, list )
AS_OUTLET( BeeUISearchBar, searchBar)
@end
//
// ______ ______ ______
// /\ __ \ /\ ___\ /\ ___\
// \ \ __< \ \ __\_ \ \ __\_
// \ \_____\ \ \_____\ \ \_____\
// \/_____/ \/_____/ \/_____/
//
// Powered by BeeFramework
//
//
// VankeStatementListBoard_iPhone.m
// vanke
//
// Created by xiaomi on 15/11/16.
// Copyright © 2015年 gomore. All rights reserved.
//
#import "VankeStatementListBoard_iPhone.h"
#import "PullLoader.h"
#import "FootLoader.h"
#import "VankeUtil.h"
#import "GEToast.h"
#import "NoDataCell_iPhoneCell.h"
#import "VankeStatementListItemCell_iPhone.h"
#pragma mark -
@interface VankeStatementListBoard_iPhone()
{
//<#@private var#>
}
@end
@implementation VankeStatementListBoard_iPhone
SUPPORT_AUTOMATIC_LAYOUT( YES )
SUPPORT_RESOURCE_LOADING( YES )
DEF_MODEL( VankeStatementListModel, model )
DEF_OUTLET( BeeUIScrollView, list )
DEF_OUTLET( BeeUISearchBar, searchBar)
- (void)load
{
self.model = [VankeStatementListModel modelWithObserver:self];
}
- (void)unload
{
self.model = nil;
}
#pragma mark - Signal
ON_CREATE_VIEWS( signal )
{
[UIApplication sharedApplication].statusBarHidden = NO;
self.navigationBarShown = YES;
self.allowedSwipeToBack = YES;
self.title = @"对账单";
self.list.headerClass = [PullLoader class];
self.list.headerShown = YES;
self.list.footerClass = [FootLoader class];
self.list.footerShown = YES;
self.list.lineCount = 1;
self.list.animationDuration = 0.2f;
self.list.baseInsets = bee.ui.config.baseInsets;
self.list.whenReloading = ^
{
self.list.total = self.model.items.count;
INFO(@"total = %d", self.model.items.count);
if (self.model.loaded && self.list.total <= 0) {
self.list.total = 1;
BeeUIScrollItem * item = self.list.items[0];
item.size = CGSizeMake( self.list.width, 50);
item.order = 0;
item.rule = BeeUIScrollLayoutRule_Fall;
item.clazz = [NoDataCell_iPhoneCell class];
item.data = @"没有数据,请稍后重试!";
} else {
for ( BeeUIScrollItem *item in self.list.items )
{
item.size = CGSizeMake( self.list.width / self.list.lineCount, 80 );
item.order = 0;
item.rule = BeeUIScrollLayoutRule_Fall;
item.clazz = [VankeStatementListItemCell_iPhone class];
SubjectItem *subItem = [self.model.items safeObjectAtIndex:item.index];
item.data = subItem;
}
}
};
self.list.whenReloaded = ^
{
};
self.list.whenAnimated = ^
{
};
self.list.whenScrolling = ^
{
};
self.list.whenStop = ^
{
};
self.list.whenHeaderRefresh = ^
{
[self.model firstPage];
};
self.list.whenFooterRefresh = ^
{
[self.model nextPage];
};
// TODO
// self.model.classificationEquals = _projectCategory;
// self.model.nameLike = _projectNameLike;
// self.model.salesDateEquals = _salesDate;
// _searchBar.text = _projectNameLike;
}
ON_DELETE_VIEWS( signal )
{
}
ON_LAYOUT_VIEWS( signal )
{
}
ON_WILL_APPEAR( signal )
{
self.navigationBarShown = YES;
// [self.list reloadData];
if ( NO == self.model.loaded )
{
[self.model firstPage];
}
[BeeUIRouter sharedInstance].view.pannable = YES;
}
ON_DID_APPEAR( signal )
{
}
ON_WILL_DISAPPEAR( signal )
{
[BeeUIRouter sharedInstance].view.pannable = NO;
}
ON_DID_DISAPPEAR( signal )
{
}
#pragma mark VankeStatementListBoard_iPhone
ON_SIGNAL3( VankeStatementListBoard_iPhone, searchBar, signal )
{
// NSString *nameLike = [VankeUtil trim:_searchBar.text];
// self.model.nameLike = nameLike;
[self.model firstPage];
}
#pragma mark model
ON_SIGNAL3( VankeStatementListModel, RELOADING, signal )
{
[GEToast showProgress:self.view];
self.list.headerLoading = YES;
self.list.footerLoading = YES;
}
ON_SIGNAL3( VankeStatementListModel, RELOADED, signal )
{
[GEToast hideProgress];
self.list.headerLoading = NO;
self.list.footerLoading = NO;
self.list.footerMore = self.model.more;
[self.list reloadData];
}
#pragma UISearchBarDelegate
-(void) searchBarSearchButtonClicked:(UISearchBar *)searchBar {
// NSString *nameLike = [VankeUtil trim:_searchBar.text];
// self.model.nameLike = nameLike;
[self.model firstPage];
}
@end
<?xml version="1.0" encoding="UTF-8"?>
<ui namespace="VankeStatementListBoard_iPhone">
<linear class="wrapper">
<image class="bg" />
<list id="list"/>
<searchbar id="searchBar" class="search-wrapper" />
</linear>
<style type="text/css">
.wrapper {
height: 100%;
width: 100%;
}
.bg {
position: absolute;
left: 0px;
top: 0px;
width: 100%;
height: 100%;
}
.wrapper > .bg {
background-color: #fafafa;
}
#list {
position: absolute;
left: 0px;
top: 45px;
width: 100%;
height: 100%;
}
.search-wrapper {
height: 45px;
width: 100%;
position: absolute;
left: 0px;
top: 64px;
placeholder: "请输入商铺名称或代码搜索";
}
</style>
</ui>
//
// ______ ______ ______
// /\ __ \ /\ ___\ /\ ___\
// \ \ __< \ \ __\_ \ \ __\_
// \ \_____\ \ \_____\ \ \_____\
// \/_____/ \/_____/ \/_____/
//
// Powered by BeeFramework
//
//
// VankeStatementListItemCell_iPhone.h
// vanke
//
// Created by xiaomi on 15/11/16.
// Copyright © 2015年 gomore. All rights reserved.
//
#import "Bee.h"
#pragma mark -
@interface VankeStatementListItemCell_iPhone : BeeUICell
AS_OUTLET(BeeUIImageView, imgPhoto)
AS_OUTLET(BeeUILabel, lblName)
AS_OUTLET(BeeUIImageView, lblState)
AS_OUTLET(BeeUILabel, lblAmount)
@end
//
// ______ ______ ______
// /\ __ \ /\ ___\ /\ ___\
// \ \ __< \ \ __\_ \ \ __\_
// \ \_____\ \ \_____\ \ \_____\
// \/_____/ \/_____/ \/_____/
//
// Powered by BeeFramework
//
//
// VankeStatementListItemCell_iPhone.m
// vanke
//
// Created by xiaomi on 15/11/16.
// Copyright © 2015年 gomore. All rights reserved.
//
#import "VankeStatementListItemCell_iPhone.h"
#import "VankeSettlementListAPI.h"
#pragma mark -
@implementation VankeStatementListItemCell_iPhone
SUPPORT_AUTOMATIC_LAYOUT( YES )
SUPPORT_RESOURCE_LOADING( YES )
DEF_OUTLET(BeeUIImageView, imgPhoto)
DEF_OUTLET(BeeUILabel, lblName)
DEF_OUTLET(BeeUIImageView, lblState)
DEF_OUTLET(BeeUILabel, lblAmount)
- (void)load
{
}
- (void)unload
{
}
- (void)dataDidChanged
{
SubjectItem *item = (SubjectItem*) self.data;
if (!item) {
return;
}
$(self.imgPhoto).DATA([item getPictureUrlOrDefault]);
$(self.lblName).DATA([item codeName]);
$(self.lblState).DATA(@"已确认");
$(self.lblAmount).DATA([NSString stringWithFormat:@"%@%.2f元", @"", [item.amount doubleValue]]);
}
- (void)layoutDidFinish
{
// TODO: custom layout here
}
@end
<?xml version="1.0" encoding="UTF-8"?>
<ui namespace="VankeStatementListItemCell_iPhone">
<linear orientation="v" class="wrapper">
<button id="mask" class="mask"/>
<image class="bg"/>
<linear orientation="h" class="inner-wrapper">
<image class="inner-bg"/>
<linear orientation="v" class="col photo-col">
<image id="imgPhoto" class="photo"/>
</linear>
<linear orientation="v" class="col name-col">
<label id="lblName" class="name"/>
</linear>
<linear orientation="v" class="col state-col">
<label id="lblState" class="state" />
</linear>
<linear orientation="v" class="col amount-col">
<label id="lblAmount" class="amount" />
</linear>
</linear>
</linear>
<style type="text/css">
.wrapper {
width: 100%;
height: 100%;
}
.mask {
width: 100%;
height: 100%;
position: absolute;
left: 0px;
top: 0px;
}
.bg {
width: 100%;
height: 100%;
position: absolute;
left: 0px;
top: 0px;
background-color: #c5c4ca;
}
.inner-wrapper {
width: 100%;
height: 100%;
padding-bottom: 1px;
}
.inner-bg {
width: 100%;
height: 100%;
position: absolute;
left: 0px;
top: 0px;
background-color: white;
}
.col {
height: 100%;
}
.photo-col {
width: 80px;
margin-right: 5px;
}
.name-col {
width: 100px;
margin-right: 5px;
}
.name-col .name {
word-wrap: break-word;
text-overflow: ellipsis;
}
.state-col {
width: 40px;
margin-right: 5px;
}
.amount-col {
width: auto;
}
.amount-col .amount {
word-wrap: break-word;
text-valign: right;
}
.photo-col .photo {
width: 100%;
height: 100%;
image-mode: fit;
image-loading: white;
}
</style>
</ui>
\ No newline at end of file
//
// ______ ______ ______
// /\ __ \ /\ ___\ /\ ___\
// \ \ __< \ \ __\_ \ \ __\_
// \ \_____\ \ \_____\ \ \_____\
// \/_____/ \/_____/ \/_____/
//
// Powered by BeeFramework
//
//
// VankeStatementMonthCell_iPhone.h
// vanke
//
// Created by xiaomi on 15/11/16.
// Copyright © 2015年 gomore. All rights reserved.
//
#import "Bee.h"
#pragma mark -
@interface VankeStatementMonthCell_iPhone : BeeUICell
@end
//
// ______ ______ ______
// /\ __ \ /\ ___\ /\ ___\
// \ \ __< \ \ __\_ \ \ __\_
// \ \_____\ \ \_____\ \ \_____\
// \/_____/ \/_____/ \/_____/
//
// Powered by BeeFramework
//
//
// VankeStatementMonthCell_iPhone.m
// vanke
//
// Created by xiaomi on 15/11/16.
// Copyright © 2015年 gomore. All rights reserved.
//
#import "VankeStatementMonthCell_iPhone.h"
#pragma mark -
@implementation VankeStatementMonthCell_iPhone
SUPPORT_AUTOMATIC_LAYOUT( YES )
SUPPORT_RESOURCE_LOADING( YES )
- (void)load
{
}
- (void)unload
{
}
- (void)dataDidChanged
{
// TODO: fill data
}
- (void)layoutDidFinish
{
// TODO: custom layout here
}
@end
<?xml version="1.0" encoding="UTF-8"?>
<ui namespace="VankeStatementMonthCell_iPhone">
<!--
<row></row>
-->
<col class="wrapper">
<!-- add your UI elements here -->
</col>
<style type="text/css">
.wrapper {
width: 100%;
height: 100%;
}
</style>
</ui>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment