Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
万
万科
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张杰
万科
Commits
4bcf1b6c
Commit
4bcf1b6c
authored
9 years ago
by
Achilles
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add settlement view with fake data
parent
88b0f4dc
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
1113 additions
and
5 deletions
+1113
-5
project.pbxproj
vanke.xcodeproj/project.pbxproj
+60
-0
Info.plist
vanke/Info.plist
+1
-1
VankeSettlementListAPI.h
vanke/controller/VankeSettlementListAPI.h
+87
-0
VankeSettlementListAPI.m
vanke/controller/VankeSettlementListAPI.m
+170
-0
VankeStatementListModel.h
vanke/model/VankeStatementListModel.h
+33
-0
VankeStatementListModel.m
vanke/model/VankeStatementListModel.m
+113
-0
VankeAffairsBoard_iPhone.m
.../view_iPhone/templates/affairs/VankeAffairsBoard_iPhone.m
+4
-2
PullLoader.m
vanke/view_iPhone/templates/common/PullLoader.m
+2
-2
VankeStatementDetailListCell_iPhone.h
...templates/statement/VankeStatementDetailListCell_iPhone.h
+23
-0
VankeStatementDetailListCell_iPhone.m
...templates/statement/VankeStatementDetailListCell_iPhone.m
+45
-0
VankeStatementDetailListCell_iPhone.xml
...mplates/statement/VankeStatementDetailListCell_iPhone.xml
+17
-0
VankeStatementListBoard_iPhone.h
...hone/templates/statement/VankeStatementListBoard_iPhone.h
+31
-0
VankeStatementListBoard_iPhone.m
...hone/templates/statement/VankeStatementListBoard_iPhone.m
+199
-0
VankeStatementListBoard_iPhone.xml
...ne/templates/statement/VankeStatementListBoard_iPhone.xml
+47
-0
VankeStatementListItemCell_iPhone.h
...e/templates/statement/VankeStatementListItemCell_iPhone.h
+29
-0
VankeStatementListItemCell_iPhone.m
...e/templates/statement/VankeStatementListItemCell_iPhone.m
+59
-0
VankeStatementListItemCell_iPhone.xml
...templates/statement/VankeStatementListItemCell_iPhone.xml
+108
-0
VankeStatementMonthCell_iPhone.h
...hone/templates/statement/VankeStatementMonthCell_iPhone.h
+23
-0
VankeStatementMonthCell_iPhone.m
...hone/templates/statement/VankeStatementMonthCell_iPhone.m
+45
-0
VankeStatementMonthCell_iPhone.xml
...ne/templates/statement/VankeStatementMonthCell_iPhone.xml
+17
-0
No files found.
vanke.xcodeproj/project.pbxproj
View file @
4bcf1b6c
...
@@ -76,6 +76,16 @@
...
@@ -76,6 +76,16 @@
C10F18571BF8AAC90065F18C
/* Localizable.strings in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C10F18541BF8AAC90065F18C
/* Localizable.strings */
;
};
C10F18571BF8AAC90065F18C
/* Localizable.strings in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C10F18541BF8AAC90065F18C
/* Localizable.strings */
;
};
C10F185A1BF8ACD40065F18C
/* SystemImage.png in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C10F18581BF8ACD40065F18C
/* SystemImage.png */
;
};
C10F185A1BF8ACD40065F18C
/* SystemImage.png in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C10F18581BF8ACD40065F18C
/* SystemImage.png */
;
};
C10F185B1BF8ACD40065F18C
/* SystemImage@2x.png in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C10F18591BF8ACD40065F18C
/* SystemImage@2x.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 */
;
};
C12804D71BC124A3001ECBAA
/* VankeWeatherModel.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C12804D61BC124A3001ECBAA
/* VankeWeatherModel.m */
;
};
C12804DA1BC12A67001ECBAA
/* VankeWeatherController.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C12804D91BC12A67001ECBAA
/* VankeWeatherController.m */
;
};
C12804DA1BC12A67001ECBAA
/* VankeWeatherController.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C12804D91BC12A67001ECBAA
/* VankeWeatherController.m */
;
};
C12804E01BC2D0BD001ECBAA
/* VankeUserModel.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C12804DF1BC2D0BD001ECBAA
/* VankeUserModel.m */
;
};
C12804E01BC2D0BD001ECBAA
/* VankeUserModel.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C12804DF1BC2D0BD001ECBAA
/* VankeUserModel.m */
;
};
...
@@ -738,6 +748,22 @@
...
@@ -738,6 +748,22 @@
C10F18551BF8AAC90065F18C
/* zh-Hans */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
text.plist.strings
;
name
=
"zh-Hans"
;
path
=
Localizable.strings
;
sourceTree
=
"<group>"
;
};
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>"
;
};
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>"
;
};
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>"
;
};
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>"
;
};
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>"
;
};
C12804D81BC12A67001ECBAA
/* VankeWeatherController.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
VankeWeatherController.h
;
sourceTree
=
"<group>"
;
};
...
@@ -1957,6 +1983,25 @@
...
@@ -1957,6 +1983,25 @@
path
=
"zh-Hans.lproj"
;
path
=
"zh-Hans.lproj"
;
sourceTree
=
"<group>"
;
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 */
=
{
C12804F11BC40CE7001ECBAA
/* util */
=
{
isa
=
PBXGroup
;
isa
=
PBXGroup
;
children
=
(
children
=
(
...
@@ -2192,6 +2237,8 @@
...
@@ -2192,6 +2237,8 @@
C19ADE421BC81ACB00206213
/* VankeSaleVolumeModel.m */
,
C19ADE421BC81ACB00206213
/* VankeSaleVolumeModel.m */
,
C12805101BC6AEB4001ECBAA
/* VankeServerModel.h */
,
C12805101BC6AEB4001ECBAA
/* VankeServerModel.h */
,
C12805111BC6AEB5001ECBAA
/* VankeServerModel.m */
,
C12805111BC6AEB5001ECBAA
/* VankeServerModel.m */
,
C10F18711BF8F1830065F18C
/* VankeStatementListModel.h */
,
C10F18721BF8F1830065F18C
/* VankeStatementListModel.m */
,
C12804DE1BC2D0BD001ECBAA
/* VankeUserModel.h */
,
C12804DE1BC2D0BD001ECBAA
/* VankeUserModel.h */
,
C12804DF1BC2D0BD001ECBAA
/* VankeUserModel.m */
,
C12804DF1BC2D0BD001ECBAA
/* VankeUserModel.m */
,
C12804D51BC124A3001ECBAA
/* VankeWeatherModel.h */
,
C12804D51BC124A3001ECBAA
/* VankeWeatherModel.h */
,
...
@@ -2217,6 +2264,8 @@
...
@@ -2217,6 +2264,8 @@
C12804E81BC2E2F4001ECBAA
/* VankeResponse.m */
,
C12804E81BC2E2F4001ECBAA
/* VankeResponse.m */
,
C19ADE361BC80DD400206213
/* VankeSaleVolumeAPI.h */
,
C19ADE361BC80DD400206213
/* VankeSaleVolumeAPI.h */
,
C19ADE371BC80DD400206213
/* VankeSaleVolumeAPI.m */
,
C19ADE371BC80DD400206213
/* VankeSaleVolumeAPI.m */
,
C10F18741BF8F33B0065F18C
/* VankeSettlementListAPI.h */
,
C10F18751BF8F33B0065F18C
/* VankeSettlementListAPI.m */
,
C12804E41BC2DDDA001ECBAA
/* VankeUserLoginAPI.h */
,
C12804E41BC2DDDA001ECBAA
/* VankeUserLoginAPI.h */
,
C12804E51BC2DDDA001ECBAA
/* VankeUserLoginAPI.m */
,
C12804E51BC2DDDA001ECBAA
/* VankeUserLoginAPI.m */
,
C1CF9F5A1BF4D6EB0033C35E
/* VankeVersionAPI.h */
,
C1CF9F5A1BF4D6EB0033C35E
/* VankeVersionAPI.h */
,
...
@@ -2249,6 +2298,7 @@
...
@@ -2249,6 +2298,7 @@
C1D58B3D1BB1BC9200D297FE
/* templates */
=
{
C1D58B3D1BB1BC9200D297FE
/* templates */
=
{
isa
=
PBXGroup
;
isa
=
PBXGroup
;
children
=
(
children
=
(
C10F185C1BF8EC470065F18C
/* statement */
,
C1CF9F2C1BEF1DB20033C35E
/* notice */
,
C1CF9F2C1BEF1DB20033C35E
/* notice */
,
C1A069FB1BE1046B0082006F
/* affairs */
,
C1A069FB1BE1046B0082006F
/* affairs */
,
C19BBBDE1BBE85B300831290
/* common */
,
C19BBBDE1BBE85B300831290
/* common */
,
...
@@ -3777,6 +3827,7 @@
...
@@ -3777,6 +3827,7 @@
C19BBC1A1BBE865400831290
/* VankeFloorListBoard_iPhone.xml in Resources */
,
C19BBC1A1BBE865400831290
/* VankeFloorListBoard_iPhone.xml in Resources */
,
C1D5948C1BB2E5DD00D297FE
/* contact-them@2x.png in Resources */
,
C1D5948C1BB2E5DD00D297FE
/* contact-them@2x.png in Resources */
,
C1CF9F571BEFB1530033C35E
/* PriorityTagRed@2x.png in Resources */
,
C1CF9F571BEFB1530033C35E
/* PriorityTagRed@2x.png in Resources */
,
C10F18701BF8EE600065F18C
/* VankeStatementListBoard_iPhone.xml in Resources */
,
C14D6F881BB8268800210172
/* right_icon@2x.png in Resources */
,
C14D6F881BB8268800210172
/* right_icon@2x.png in Resources */
,
C1CF9F311BEF20DB0033C35E
/* VankeNoticeBoard_iPhone.xml in Resources */
,
C1CF9F311BEF20DB0033C35E
/* VankeNoticeBoard_iPhone.xml in Resources */
,
C19ADE401BC8147800206213
/* search@2x.png in Resources */
,
C19ADE401BC8147800206213
/* search@2x.png in Resources */
,
...
@@ -3798,6 +3849,7 @@
...
@@ -3798,6 +3849,7 @@
C1D5948B1BB2E5DD00D297FE
/* arrow-down@2x.png in Resources */
,
C1D5948B1BB2E5DD00D297FE
/* arrow-down@2x.png in Resources */
,
C1D594971BB2E5DD00D297FE
/* navigation-back@2x.png in Resources */
,
C1D594971BB2E5DD00D297FE
/* navigation-back@2x.png in Resources */
,
C19BBC291BBE894D00831290
/* user_icon.png in Resources */
,
C19BBC291BBE894D00831290
/* user_icon.png in Resources */
,
C10F18611BF8ED5D0065F18C
/* VankeStatementMonthCell_iPhone.xml in Resources */
,
C1DED3321BCEC4B40049BB2D
/* business@2x.png in Resources */
,
C1DED3321BCEC4B40049BB2D
/* business@2x.png in Resources */
,
C14D6F871BB8268800210172
/* right_icon.png in Resources */
,
C14D6F871BB8268800210172
/* right_icon.png in Resources */
,
C1D595061BB42A6800D297FE
/* splash3.xml in Resources */
,
C1D595061BB42A6800D297FE
/* splash3.xml in Resources */
,
...
@@ -3805,6 +3857,7 @@
...
@@ -3805,6 +3857,7 @@
C19ADE3D1BC8147800206213
/* left_arrow.png in Resources */
,
C19ADE3D1BC8147800206213
/* left_arrow.png in Resources */
,
C19ADE4A1BC82ADB00206213
/* nav_orange_bg.png in Resources */
,
C19ADE4A1BC82ADB00206213
/* nav_orange_bg.png in Resources */
,
C1CF9F531BEFB1530033C35E
/* PriorityTagGrey@2x.png in Resources */
,
C1CF9F531BEFB1530033C35E
/* PriorityTagGrey@2x.png in Resources */
,
C10F186B1BF8EE2D0065F18C
/* VankeStatementDetailListCell_iPhone.xml in Resources */
,
C14D6F671BB8071700210172
/* sales_orange.png in Resources */
,
C14D6F671BB8071700210172
/* sales_orange.png in Resources */
,
C1DED32F1BCEC4B40049BB2D
/* business_checked.png in Resources */
,
C1DED32F1BCEC4B40049BB2D
/* business_checked.png in Resources */
,
C19BBC2A1BBE894D00831290
/* user_icon@2x.png in Resources */
,
C19BBC2A1BBE894D00831290
/* user_icon@2x.png in Resources */
,
...
@@ -3814,6 +3867,7 @@
...
@@ -3814,6 +3867,7 @@
C1A06A101BE10B080082006F
/* service_apply@2x.png in Resources */
,
C1A06A101BE10B080082006F
/* service_apply@2x.png in Resources */
,
C19BBC2F1BBE8B5800831290
/* VankeFloorDetailBoard_iPhone.xml in Resources */
,
C19BBC2F1BBE8B5800831290
/* VankeFloorDetailBoard_iPhone.xml in Resources */
,
C1D595171BB42A7200D297FE
/* spinner@2x.png in Resources */
,
C1D595171BB42A7200D297FE
/* spinner@2x.png in Resources */
,
C10F18661BF8EE020065F18C
/* VankeStatementListItemCell_iPhone.xml in Resources */
,
C165078D1BB96C2800CB2FC1
/* pwd_icon@2x.png in Resources */
,
C165078D1BB96C2800CB2FC1
/* pwd_icon@2x.png in Resources */
,
C1D595161BB42A7200D297FE
/* navigation-menu@2x.png in Resources */
,
C1D595161BB42A7200D297FE
/* navigation-menu@2x.png in Resources */
,
C1CF9F361BEF232A0033C35E
/* VankeNoticeListBoard_iPhone.xml in Resources */
,
C1CF9F361BEF232A0033C35E
/* VankeNoticeListBoard_iPhone.xml in Resources */
,
...
@@ -3969,6 +4023,7 @@
...
@@ -3969,6 +4023,7 @@
C1D5984C1BB44B2000D297FE
/* BeeMessage+BeeJSON.mm in Sources */
,
C1D5984C1BB44B2000D297FE
/* BeeMessage+BeeJSON.mm in Sources */
,
C19BBC0E1BBE861700831290
/* VankeBusinessChartCell_iPhone.m in Sources */
,
C19BBC0E1BBE861700831290
/* VankeBusinessChartCell_iPhone.m in Sources */
,
C1D598B11BB44B2000D297FE
/* Bee_UITabBar.m in Sources */
,
C1D598B11BB44B2000D297FE
/* Bee_UITabBar.m in Sources */
,
C10F18651BF8EE020065F18C
/* VankeStatementListItemCell_iPhone.m in Sources */
,
C1D598691BB44B2000D297FE
/* UIViewController+LifeCycle.m in Sources */
,
C1D598691BB44B2000D297FE
/* UIViewController+LifeCycle.m in Sources */
,
C1D5986C1BB44B2000D297FE
/* UIViewController+Traversing.m in Sources */
,
C1D5986C1BB44B2000D297FE
/* UIViewController+Traversing.m in Sources */
,
C10F18201BF7ACA80065F18C
/* UIView+ViewFrameGeometry.m in Sources */
,
C10F18201BF7ACA80065F18C
/* UIView+ViewFrameGeometry.m in Sources */
,
...
@@ -4047,6 +4102,7 @@
...
@@ -4047,6 +4102,7 @@
C19BBC251BBE869500831290
/* PullLoader.m in Sources */
,
C19BBC251BBE869500831290
/* PullLoader.m in Sources */
,
C1D598CA1BB44B2000D297FE
/* Bee_UIMatrixView.m in Sources */
,
C1D598CA1BB44B2000D297FE
/* Bee_UIMatrixView.m in Sources */
,
C10F182E1BF7ACA80065F18C
/* ICRCheckBox.m in Sources */
,
C10F182E1BF7ACA80065F18C
/* ICRCheckBox.m in Sources */
,
C10F186A1BF8EE2D0065F18C
/* VankeStatementDetailListCell_iPhone.m in Sources */
,
C1CF9F351BEF232A0033C35E
/* VankeNoticeListBoard_iPhone.m in Sources */
,
C1CF9F351BEF232A0033C35E
/* VankeNoticeListBoard_iPhone.m in Sources */
,
C1D598EA1BB44B2000D297FE
/* UILabel+LayoutParser.m in Sources */
,
C1D598EA1BB44B2000D297FE
/* UILabel+LayoutParser.m in Sources */
,
C19ADE521BC837C200206213
/* VankeBaseBoard.m in Sources */
,
C19ADE521BC837C200206213
/* VankeBaseBoard.m in Sources */
,
...
@@ -4239,10 +4295,12 @@
...
@@ -4239,10 +4295,12 @@
C19ADE641BCBE8C000206213
/* VankeSettingsBoard_iPhone.m in Sources */
,
C19ADE641BCBE8C000206213
/* VankeSettingsBoard_iPhone.m in Sources */
,
C12804DA1BC12A67001ECBAA
/* VankeWeatherController.m in Sources */
,
C12804DA1BC12A67001ECBAA
/* VankeWeatherController.m in Sources */
,
C1D599211BB44B2100D297FE
/* Bee_FileCache.mm in Sources */
,
C1D599211BB44B2100D297FE
/* Bee_FileCache.mm in Sources */
,
C10F18761BF8F33B0065F18C
/* VankeSettlementListAPI.m in Sources */
,
C19BBBF91BBE85F500831290
/* VankeMainBoard_iPhone.m in Sources */
,
C19BBBF91BBE85F500831290
/* VankeMainBoard_iPhone.m in Sources */
,
C1D599261BB44B2100D297FE
/* NSObject+BeeUserDefaults.mm in Sources */
,
C1D599261BB44B2100D297FE
/* NSObject+BeeUserDefaults.mm in Sources */
,
C10F18401BF7ACA80065F18C
/* IBTTabBarController.m in Sources */
,
C10F18401BF7ACA80065F18C
/* IBTTabBarController.m in Sources */
,
C1D598741BB44B2000D297FE
/* UIActivityIndicatorView+BeeUIStyle.m in Sources */
,
C1D598741BB44B2000D297FE
/* UIActivityIndicatorView+BeeUIStyle.m in Sources */
,
C10F186F1BF8EE600065F18C
/* VankeStatementListBoard_iPhone.m in Sources */
,
C1D599901BB44B2100D297FE
/* unzip.c in Sources */
,
C1D599901BB44B2100D297FE
/* unzip.c in Sources */
,
C1D599231BB44B2100D297FE
/* Bee_MemoryCache.mm in Sources */
,
C1D599231BB44B2100D297FE
/* Bee_MemoryCache.mm in Sources */
,
C1D599511BB44B2100D297FE
/* Bee_LanguageSetting.m in Sources */
,
C1D599511BB44B2100D297FE
/* Bee_LanguageSetting.m in Sources */
,
...
@@ -4297,6 +4355,7 @@
...
@@ -4297,6 +4355,7 @@
C1D5984E1BB44B2000D297FE
/* BeeMessage+BeeXML.mm in Sources */
,
C1D5984E1BB44B2000D297FE
/* BeeMessage+BeeXML.mm in Sources */
,
C1D598A91BB44B2000D297FE
/* Bee_UIPageViewController.m in Sources */
,
C1D598A91BB44B2000D297FE
/* Bee_UIPageViewController.m in Sources */
,
C1D599851BB44B2100D297FE
/* CXMLDocument_PrivateExtensions.m in Sources */
,
C1D599851BB44B2100D297FE
/* CXMLDocument_PrivateExtensions.m in Sources */
,
C10F18601BF8ED5D0065F18C
/* VankeStatementMonthCell_iPhone.m in Sources */
,
C1D5993D1BB44B2100D297FE
/* Bee_UnitTest.m in Sources */
,
C1D5993D1BB44B2100D297FE
/* Bee_UnitTest.m in Sources */
,
C1D5991E1BB44B2100D297FE
/* Bee_SystemPackage.mm in Sources */
,
C1D5991E1BB44B2100D297FE
/* Bee_SystemPackage.mm in Sources */
,
C1D5985E1BB44B2000D297FE
/* BeeUIBoard+BackwardCompatible.m in Sources */
,
C1D5985E1BB44B2000D297FE
/* BeeUIBoard+BackwardCompatible.m in Sources */
,
...
@@ -4342,6 +4401,7 @@
...
@@ -4342,6 +4401,7 @@
C1D5986B1BB44B2000D297FE
/* UIViewController+Title.m in Sources */
,
C1D5986B1BB44B2000D297FE
/* UIViewController+Title.m in Sources */
,
C1D599641BB44B2100D297FE
/* Bee_HTTPUtility2.m in Sources */
,
C1D599641BB44B2100D297FE
/* Bee_HTTPUtility2.m in Sources */
,
C1D598CF1BB44B2000D297FE
/* BeeUISignal+BeeUICell.m in Sources */
,
C1D598CF1BB44B2000D297FE
/* BeeUISignal+BeeUICell.m in Sources */
,
C10F18731BF8F1830065F18C
/* VankeStatementListModel.m in Sources */
,
C16BA6231BD393B7001ACB26
/* VankePassengerDetailBoard_iPhone.m in Sources */
,
C16BA6231BD393B7001ACB26
/* VankePassengerDetailBoard_iPhone.m in Sources */
,
C1D598CE1BB44B2000D297FE
/* Bee_UIZoomView.m in Sources */
,
C1D598CE1BB44B2000D297FE
/* Bee_UIZoomView.m in Sources */
,
C10F18321BF7ACA80065F18C
/* ICRSystemHeaderView.m in Sources */
,
C10F18321BF7ACA80065F18C
/* ICRSystemHeaderView.m in Sources */
,
...
...
This diff is collapsed.
Click to expand it.
vanke/Info.plist
View file @
4bcf1b6c
...
@@ -21,7 +21,7 @@
...
@@ -21,7 +21,7 @@
<
k
e
y
>
CFBundleSignature
<
/k
e
y
>
<
k
e
y
>
CFBundleSignature
<
/k
e
y
>
<
string
>
????
<
/string
>
<
string
>
????
<
/string
>
<
k
e
y
>
CFBundleVersion
<
/k
e
y
>
<
k
e
y
>
CFBundleVersion
<
/k
e
y
>
<
string
>
1.0.
1
<
/string
>
<
string
>
1.0.
3
<
/string
>
<
k
e
y
>
LSRequiresIPhoneOS
<
/k
e
y
>
<
k
e
y
>
LSRequiresIPhoneOS
<
/k
e
y
>
<
tru
e
/
>
<
tru
e
/
>
<
k
e
y
>
NSAppTransportSecurity
<
/k
e
y
>
<
k
e
y
>
NSAppTransportSecurity
<
/k
e
y
>
...
...
This diff is collapsed.
Click to expand it.
vanke/controller/VankeSettlementListAPI.h
0 → 100755
View file @
4bcf1b6c
//
// 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
This diff is collapsed.
Click to expand it.
vanke/controller/VankeSettlementListAPI.m
0 → 100644
View file @
4bcf1b6c
//
// 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
This diff is collapsed.
Click to expand it.
vanke/model/VankeStatementListModel.h
0 → 100755
View file @
4bcf1b6c
//
// 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
This diff is collapsed.
Click to expand it.
vanke/model/VankeStatementListModel.m
0 → 100755
View file @
4bcf1b6c
//
// 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
This diff is collapsed.
Click to expand it.
vanke/view_iPhone/templates/affairs/VankeAffairsBoard_iPhone.m
View file @
4bcf1b6c
...
@@ -17,6 +17,7 @@
...
@@ -17,6 +17,7 @@
#import "VankeAffairsBoard_iPhone.h"
#import "VankeAffairsBoard_iPhone.h"
#import "VankeNoticeListBoard_iPhone.h"
#import "VankeNoticeListBoard_iPhone.h"
#import "VankeStatementListBoard_iPhone.h"
#pragma mark -
#pragma mark -
...
@@ -84,12 +85,13 @@ ON_DID_DISAPPEAR( signal )
...
@@ -84,12 +85,13 @@ ON_DID_DISAPPEAR( signal )
}
}
ON_SIGNAL3
(
VankeAffairsBoard_iPhone
,
btnNotice
,
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
];
[
self
.
stack
pushBoard
:
board
animated
:
YES
];
}
}
ON_SIGNAL3
(
VankeAffairsBoard_iPhone
,
btnBill
,
signal
)
{
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
)
{
ON_SIGNAL3
(
VankeAffairsBoard_iPhone
,
btnSaleInput
,
signal
)
{
...
...
This diff is collapsed.
Click to expand it.
vanke/view_iPhone/templates/common/PullLoader.m
View file @
4bcf1b6c
...
@@ -49,7 +49,7 @@ DEF_OUTLET( BeeUIActivityIndicatorView, indicator )
...
@@ -49,7 +49,7 @@ DEF_OUTLET( BeeUIActivityIndicatorView, indicator )
self
.
arrow
.
hidden
=
NO
;
self
.
arrow
.
hidden
=
NO
;
self
.
indicator
.
hidden
=
YES
;
self
.
indicator
.
hidden
=
YES
;
self
.
status
.
data
=
@"Pull to refresh"
;
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
-
(
void
)
unload
...
@@ -74,7 +74,7 @@ ON_SIGNAL3( BeeUIPullLoader, STATE_CHANGED, signal )
...
@@ -74,7 +74,7 @@ ON_SIGNAL3( BeeUIPullLoader, STATE_CHANGED, signal )
self
.
arrow
.
transform
=
CGAffineTransformRotate
(
CGAffineTransformIdentity
,
(
M_PI
/
360
.
0
f
)
*
-
359
.
0
f
);
self
.
arrow
.
transform
=
CGAffineTransformRotate
(
CGAffineTransformIdentity
,
(
M_PI
/
360
.
0
f
)
*
-
359
.
0
f
);
self
.
indicator
.
hidden
=
YES
;
self
.
indicator
.
hidden
=
YES
;
self
.
status
.
data
=
@"松开刷新数据"
;
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
)
else
if
(
self
.
loading
)
{
{
...
...
This diff is collapsed.
Click to expand it.
vanke/view_iPhone/templates/statement/VankeStatementDetailListCell_iPhone.h
0 → 100644
View file @
4bcf1b6c
//
// ______ ______ ______
// /\ __ \ /\ ___\ /\ ___\
// \ \ __< \ \ __\_ \ \ __\_
// \ \_____\ \ \_____\ \ \_____\
// \/_____/ \/_____/ \/_____/
//
// 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
This diff is collapsed.
Click to expand it.
vanke/view_iPhone/templates/statement/VankeStatementDetailListCell_iPhone.m
0 → 100644
View file @
4bcf1b6c
//
// ______ ______ ______
// /\ __ \ /\ ___\ /\ ___\
// \ \ __< \ \ __\_ \ \ __\_
// \ \_____\ \ \_____\ \ \_____\
// \/_____/ \/_____/ \/_____/
//
// 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
This diff is collapsed.
Click to expand it.
vanke/view_iPhone/templates/statement/VankeStatementDetailListCell_iPhone.xml
0 → 100644
View file @
4bcf1b6c
<?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
This diff is collapsed.
Click to expand it.
vanke/view_iPhone/templates/statement/VankeStatementListBoard_iPhone.h
0 → 100644
View file @
4bcf1b6c
//
// ______ ______ ______
// /\ __ \ /\ ___\ /\ ___\
// \ \ __< \ \ __\_ \ \ __\_
// \ \_____\ \ \_____\ \ \_____\
// \/_____/ \/_____/ \/_____/
//
// 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
This diff is collapsed.
Click to expand it.
vanke/view_iPhone/templates/statement/VankeStatementListBoard_iPhone.m
0 → 100644
View file @
4bcf1b6c
//
// ______ ______ ______
// /\ __ \ /\ ___\ /\ ___\
// \ \ __< \ \ __\_ \ \ __\_
// \ \_____\ \ \_____\ \ \_____\
// \/_____/ \/_____/ \/_____/
//
// 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
.
2
f
;
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
This diff is collapsed.
Click to expand it.
vanke/view_iPhone/templates/statement/VankeStatementListBoard_iPhone.xml
0 → 100644
View file @
4bcf1b6c
<?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>
This diff is collapsed.
Click to expand it.
vanke/view_iPhone/templates/statement/VankeStatementListItemCell_iPhone.h
0 → 100644
View file @
4bcf1b6c
//
// ______ ______ ______
// /\ __ \ /\ ___\ /\ ___\
// \ \ __< \ \ __\_ \ \ __\_
// \ \_____\ \ \_____\ \ \_____\
// \/_____/ \/_____/ \/_____/
//
// 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
This diff is collapsed.
Click to expand it.
vanke/view_iPhone/templates/statement/VankeStatementListItemCell_iPhone.m
0 → 100644
View file @
4bcf1b6c
//
// ______ ______ ______
// /\ __ \ /\ ___\ /\ ___\
// \ \ __< \ \ __\_ \ \ __\_
// \ \_____\ \ \_____\ \ \_____\
// \/_____/ \/_____/ \/_____/
//
// 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
This diff is collapsed.
Click to expand it.
vanke/view_iPhone/templates/statement/VankeStatementListItemCell_iPhone.xml
0 → 100644
View file @
4bcf1b6c
<?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
This diff is collapsed.
Click to expand it.
vanke/view_iPhone/templates/statement/VankeStatementMonthCell_iPhone.h
0 → 100644
View file @
4bcf1b6c
//
// ______ ______ ______
// /\ __ \ /\ ___\ /\ ___\
// \ \ __< \ \ __\_ \ \ __\_
// \ \_____\ \ \_____\ \ \_____\
// \/_____/ \/_____/ \/_____/
//
// 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
This diff is collapsed.
Click to expand it.
vanke/view_iPhone/templates/statement/VankeStatementMonthCell_iPhone.m
0 → 100644
View file @
4bcf1b6c
//
// ______ ______ ______
// /\ __ \ /\ ___\ /\ ___\
// \ \ __< \ \ __\_ \ \ __\_
// \ \_____\ \ \_____\ \ \_____\
// \/_____/ \/_____/ \/_____/
//
// 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
This diff is collapsed.
Click to expand it.
vanke/view_iPhone/templates/statement/VankeStatementMonthCell_iPhone.xml
0 → 100644
View file @
4bcf1b6c
<?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
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment