Commit 3f89c559 authored by Sandy's avatar Sandy

销售录入模块显示/列表界面/新建界面/获取支付方式列表

parent 51cce7a2
......@@ -48,6 +48,19 @@
8F250D8F1F29CF190031B4BC /* ZJAppInstance.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F250D8E1F29CF190031B4BC /* ZJAppInstance.m */; };
8F250D921F29D4B40031B4BC /* UserInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F250D911F29D4B40031B4BC /* UserInfo.m */; };
8F250D961F29D86E0031B4BC /* ZJPermissionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F250D951F29D86E0031B4BC /* ZJPermissionManager.m */; };
8F4BFCC41F2EDCAF003EA16B /* BusinessFunction.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4BFCC11F2EDCAF003EA16B /* BusinessFunction.m */; };
8F4BFCC51F2EDCAF003EA16B /* BusinessFunctionModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4BFCC31F2EDCAF003EA16B /* BusinessFunctionModel.m */; };
8F4BFCC71F2EDCD8003EA16B /* BusinessItems.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8F4BFCC61F2EDCD8003EA16B /* BusinessItems.plist */; };
8F4BFCD01F2EF527003EA16B /* SaleInput.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8F4BFCCF1F2EF527003EA16B /* SaleInput.storyboard */; };
8F4BFCD31F2EF543003EA16B /* SaleInputListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4BFCD21F2EF543003EA16B /* SaleInputListViewController.m */; };
8F4BFCD61F2EF56A003EA16B /* SaleInputListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4BFCD51F2EF56A003EA16B /* SaleInputListTableViewCell.m */; };
8F4BFCD91F2EF6CF003EA16B /* HMSaleInputQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4BFCD81F2EF6CF003EA16B /* HMSaleInputQuery.m */; };
8F4BFCDF1F2F0279003EA16B /* SaleInputAddViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4BFCDE1F2F0279003EA16B /* SaleInputAddViewController.m */; };
8F4BFCE21F2F02CB003EA16B /* SaleInputTopView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4BFCE11F2F02CB003EA16B /* SaleInputTopView.m */; };
8F4BFCE51F2F04CC003EA16B /* NSDate+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4BFCE41F2F04CC003EA16B /* NSDate+Additions.m */; };
8F4BFCE81F2F07C1003EA16B /* SaleInputViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4BFCE71F2F07C1003EA16B /* SaleInputViewModel.m */; };
8F4BFCEB1F2F09D0003EA16B /* HMSaleInputDetail.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4BFCEA1F2F09D0003EA16B /* HMSaleInputDetail.m */; };
8F4BFCEE1F2F0F16003EA16B /* SaleInputAmountCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4BFCED1F2F0F16003EA16B /* SaleInputAmountCollectionViewCell.m */; };
8F6C92381F2ADF4F0060E983 /* HomeWeatherBoard.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F6C92371F2ADF4F0060E983 /* HomeWeatherBoard.m */; };
8F6C923B1F2ADFEC0060E983 /* WeatherModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F6C923A1F2ADFEC0060E983 /* WeatherModel.m */; };
8F6C923E1F2AE3430060E983 /* HomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F6C923D1F2AE3430060E983 /* HomeViewController.m */; };
......@@ -169,6 +182,30 @@
8F250D911F29D4B40031B4BC /* UserInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UserInfo.m; sourceTree = "<group>"; };
8F250D941F29D86E0031B4BC /* ZJPermissionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZJPermissionManager.h; sourceTree = "<group>"; };
8F250D951F29D86E0031B4BC /* ZJPermissionManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZJPermissionManager.m; sourceTree = "<group>"; };
8F4BFCC01F2EDCAF003EA16B /* BusinessFunction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BusinessFunction.h; sourceTree = "<group>"; };
8F4BFCC11F2EDCAF003EA16B /* BusinessFunction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BusinessFunction.m; sourceTree = "<group>"; };
8F4BFCC21F2EDCAF003EA16B /* BusinessFunctionModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BusinessFunctionModel.h; sourceTree = "<group>"; };
8F4BFCC31F2EDCAF003EA16B /* BusinessFunctionModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BusinessFunctionModel.m; sourceTree = "<group>"; };
8F4BFCC61F2EDCD8003EA16B /* BusinessItems.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = BusinessItems.plist; sourceTree = "<group>"; };
8F4BFCCF1F2EF527003EA16B /* SaleInput.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = SaleInput.storyboard; sourceTree = "<group>"; };
8F4BFCD11F2EF543003EA16B /* SaleInputListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SaleInputListViewController.h; sourceTree = "<group>"; };
8F4BFCD21F2EF543003EA16B /* SaleInputListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SaleInputListViewController.m; sourceTree = "<group>"; };
8F4BFCD41F2EF56A003EA16B /* SaleInputListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SaleInputListTableViewCell.h; sourceTree = "<group>"; };
8F4BFCD51F2EF56A003EA16B /* SaleInputListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SaleInputListTableViewCell.m; sourceTree = "<group>"; };
8F4BFCD71F2EF6CF003EA16B /* HMSaleInputQuery.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMSaleInputQuery.h; sourceTree = "<group>"; };
8F4BFCD81F2EF6CF003EA16B /* HMSaleInputQuery.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMSaleInputQuery.m; sourceTree = "<group>"; };
8F4BFCDD1F2F0279003EA16B /* SaleInputAddViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SaleInputAddViewController.h; sourceTree = "<group>"; };
8F4BFCDE1F2F0279003EA16B /* SaleInputAddViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SaleInputAddViewController.m; sourceTree = "<group>"; };
8F4BFCE01F2F02CB003EA16B /* SaleInputTopView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SaleInputTopView.h; sourceTree = "<group>"; };
8F4BFCE11F2F02CB003EA16B /* SaleInputTopView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SaleInputTopView.m; sourceTree = "<group>"; };
8F4BFCE31F2F04CC003EA16B /* NSDate+Additions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+Additions.h"; sourceTree = "<group>"; };
8F4BFCE41F2F04CC003EA16B /* NSDate+Additions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+Additions.m"; sourceTree = "<group>"; };
8F4BFCE61F2F07C1003EA16B /* SaleInputViewModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SaleInputViewModel.h; sourceTree = "<group>"; };
8F4BFCE71F2F07C1003EA16B /* SaleInputViewModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SaleInputViewModel.m; sourceTree = "<group>"; };
8F4BFCE91F2F09D0003EA16B /* HMSaleInputDetail.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMSaleInputDetail.h; sourceTree = "<group>"; };
8F4BFCEA1F2F09D0003EA16B /* HMSaleInputDetail.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMSaleInputDetail.m; sourceTree = "<group>"; };
8F4BFCEC1F2F0F16003EA16B /* SaleInputAmountCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SaleInputAmountCollectionViewCell.h; sourceTree = "<group>"; };
8F4BFCED1F2F0F16003EA16B /* SaleInputAmountCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SaleInputAmountCollectionViewCell.m; sourceTree = "<group>"; };
8F6C92361F2ADF4F0060E983 /* HomeWeatherBoard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeWeatherBoard.h; sourceTree = "<group>"; };
8F6C92371F2ADF4F0060E983 /* HomeWeatherBoard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeWeatherBoard.m; sourceTree = "<group>"; };
8F6C92391F2ADFEC0060E983 /* WeatherModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeatherModel.h; sourceTree = "<group>"; };
......@@ -281,6 +318,10 @@
8F1040C01F25CA0200B4C16E /* Models */ = {
isa = PBXGroup;
children = (
8F4BFCC01F2EDCAF003EA16B /* BusinessFunction.h */,
8F4BFCC11F2EDCAF003EA16B /* BusinessFunction.m */,
8F4BFCC21F2EDCAF003EA16B /* BusinessFunctionModel.h */,
8F4BFCC31F2EDCAF003EA16B /* BusinessFunctionModel.m */,
);
path = Models;
sourceTree = "<group>";
......@@ -521,6 +562,62 @@
path = ZJPermissionManager;
sourceTree = "<group>";
};
8F4BFCCA1F2EF508003EA16B /* SaleInput */ = {
isa = PBXGroup;
children = (
8F4BFCCB1F2EF508003EA16B /* Models */,
8F4BFCCC1F2EF508003EA16B /* ViewControllers */,
8F4BFCCD1F2EF508003EA16B /* ViewModels */,
8F4BFCCE1F2EF508003EA16B /* Views */,
8F4BFCCF1F2EF527003EA16B /* SaleInput.storyboard */,
);
path = SaleInput;
sourceTree = "<group>";
};
8F4BFCCB1F2EF508003EA16B /* Models */ = {
isa = PBXGroup;
children = (
8F4BFCD71F2EF6CF003EA16B /* HMSaleInputQuery.h */,
8F4BFCD81F2EF6CF003EA16B /* HMSaleInputQuery.m */,
8F4BFCE91F2F09D0003EA16B /* HMSaleInputDetail.h */,
8F4BFCEA1F2F09D0003EA16B /* HMSaleInputDetail.m */,
);
path = Models;
sourceTree = "<group>";
};
8F4BFCCC1F2EF508003EA16B /* ViewControllers */ = {
isa = PBXGroup;
children = (
8F4BFCD11F2EF543003EA16B /* SaleInputListViewController.h */,
8F4BFCD21F2EF543003EA16B /* SaleInputListViewController.m */,
8F4BFCDD1F2F0279003EA16B /* SaleInputAddViewController.h */,
8F4BFCDE1F2F0279003EA16B /* SaleInputAddViewController.m */,
);
path = ViewControllers;
sourceTree = "<group>";
};
8F4BFCCD1F2EF508003EA16B /* ViewModels */ = {
isa = PBXGroup;
children = (
8F4BFCE61F2F07C1003EA16B /* SaleInputViewModel.h */,
8F4BFCE71F2F07C1003EA16B /* SaleInputViewModel.m */,
);
path = ViewModels;
sourceTree = "<group>";
};
8F4BFCCE1F2EF508003EA16B /* Views */ = {
isa = PBXGroup;
children = (
8F4BFCEC1F2F0F16003EA16B /* SaleInputAmountCollectionViewCell.h */,
8F4BFCED1F2F0F16003EA16B /* SaleInputAmountCollectionViewCell.m */,
8F4BFCE01F2F02CB003EA16B /* SaleInputTopView.h */,
8F4BFCE11F2F02CB003EA16B /* SaleInputTopView.m */,
8F4BFCD41F2EF56A003EA16B /* SaleInputListTableViewCell.h */,
8F4BFCD51F2EF56A003EA16B /* SaleInputListTableViewCell.m */,
);
path = Views;
sourceTree = "<group>";
};
8F6C923F1F2AE4AD0060E983 /* LocationHelper */ = {
isa = PBXGroup;
children = (
......@@ -605,6 +702,7 @@
8F973C081F21FB77003D3ADB /* Business */ = {
isa = PBXGroup;
children = (
8F4BFCCA1F2EF508003EA16B /* SaleInput */,
8F1040BF1F25CA0200B4C16E /* Main */,
);
path = Business;
......@@ -742,6 +840,7 @@
8F973C2D1F21FDDC003D3ADB /* ConfigurationPlist */ = {
isa = PBXGroup;
children = (
8F4BFCC61F2EDCD8003EA16B /* BusinessItems.plist */,
8F973C1B1F21FC2A003D3ADB /* HDMall.plist */,
8F1040721F22002700B4C16E /* HDMall_TEST.plist */,
);
......@@ -760,6 +859,8 @@
8FEF5E4E1F285E56001496E3 /* MBProgressHUD+Addtions.m */,
8FEF5E4F1F285E56001496E3 /* NSData+EncodeAdditions.h */,
8FEF5E501F285E56001496E3 /* NSData+EncodeAdditions.m */,
8F4BFCE31F2F04CC003EA16B /* NSDate+Additions.h */,
8F4BFCE41F2F04CC003EA16B /* NSDate+Additions.m */,
8FEF5E531F285E56001496E3 /* NSNumber+Addtions.h */,
8FEF5E541F285E56001496E3 /* NSNumber+Addtions.m */,
8FEF5E551F285E56001496E3 /* NSString+Additions.h */,
......@@ -883,10 +984,12 @@
8F973C251F21FD54003D3ADB /* LaunchScreen.storyboard in Resources */,
8F250D2F1F297DA80031B4BC /* restrictedshine.tiff in Resources */,
8F250D2D1F297DA80031B4BC /* mask.jpg in Resources */,
8F4BFCC71F2EDCD8003EA16B /* BusinessItems.plist in Resources */,
8F250D6C1F2981200031B4BC /* ZJShowLogView.xib in Resources */,
8F973C261F21FD54003D3ADB /* Assets.xcassets in Resources */,
8F973C271F21FD54003D3ADB /* Main.storyboard in Resources */,
8F250D2B1F297DA80031B4BC /* line.png in Resources */,
8F4BFCD01F2EF527003EA16B /* SaleInput.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
......@@ -967,37 +1070,46 @@
8F250D231F297DA80031B4BC /* UIView+Snapshot.m in Sources */,
8F973C341F21FE32003D3ADB /* main.m in Sources */,
8FEF5EA61F28612B001496E3 /* BaseIQManagerView.m in Sources */,
8F4BFCEE1F2F0F16003EA16B /* SaleInputAmountCollectionViewCell.m in Sources */,
8F250D871F29C2420031B4BC /* LoginRequest.m in Sources */,
8F6C92421F2AE4AD0060E983 /* LocationHelper.m in Sources */,
8F250D4B1F297DA80031B4BC /* XWFilterAnimator+XWFlash.m in Sources */,
8FEF5EAC1F28612B001496E3 /* BaseStateModel.m in Sources */,
8FEF5EB01F28612B001496E3 /* ZJBaseFileModel.m in Sources */,
8FEF5EAE1F28612B001496E3 /* BaseViewController.m in Sources */,
8F4BFCD31F2EF543003EA16B /* SaleInputListViewController.m in Sources */,
8F250D311F297DA80031B4BC /* XWCircleSpreadAnimator.m in Sources */,
8F1040C71F25CA1800B4C16E /* BusinessCollectionViewController.m in Sources */,
8F250D411F297DA80031B4BC /* XWCoolAnimator.m in Sources */,
8F4BFCE21F2F02CB003EA16B /* SaleInputTopView.m in Sources */,
8FEF5E721F285E56001496E3 /* NSString+Additions.m in Sources */,
8F250D371F297DA80031B4BC /* XWCoolAnimator+XWLines.m in Sources */,
8F250D251F297DA80031B4BC /* UIViewController+XWTransition.m in Sources */,
8FEF5E7C1F285E56001496E3 /* UIView+Category.m in Sources */,
8F250D8F1F29CF190031B4BC /* ZJAppInstance.m in Sources */,
8F4BFCE81F2F07C1003EA16B /* SaleInputViewModel.m in Sources */,
8FEF5EA21F28612B001496E3 /* BaseChooseModel.m in Sources */,
8F973C1F1F21FD54003D3ADB /* ViewController.m in Sources */,
8F4BFCC51F2EDCAF003EA16B /* BusinessFunctionModel.m in Sources */,
8F250D451F297DA80031B4BC /* XWFilterAnimator+XWBarSwipe.m in Sources */,
8F250D841F29C14F0031B4BC /* LoginViewModel.m in Sources */,
8FEF5E7E1F285E56001496E3 /* UIViewController+Additions.m in Sources */,
8F250D3B1F297DA80031B4BC /* XWCoolAnimator+XWPageFlip.m in Sources */,
8F250D4D1F297DA80031B4BC /* XWFilterAnimator+XWMask.m in Sources */,
8F250D3D1F297DA80031B4BC /* XWCoolAnimator+XWPortal.m in Sources */,
8F4BFCEB1F2F09D0003EA16B /* HMSaleInputDetail.m in Sources */,
8FEF5E741F285E56001496E3 /* UIImage+Helper.m in Sources */,
8FEF5E6A1F285E56001496E3 /* MBProgressHUD+Addtions.m in Sources */,
8FEF5E701F285E56001496E3 /* NSNumber+Addtions.m in Sources */,
8F4BFCD91F2EF6CF003EA16B /* HMSaleInputQuery.m in Sources */,
8F250D271F297DA80031B4BC /* XWInteractiveTransition.m in Sources */,
8F250D391F297DA80031B4BC /* XWCoolAnimator+XWMiddlePageFlip.m in Sources */,
8F250D531F297DA80031B4BC /* XWFilterAnimator+XWRipple.m in Sources */,
8F4BFCD61F2EF56A003EA16B /* SaleInputListTableViewCell.m in Sources */,
8FEF5E841F285F4F001496E3 /* CalculateHelper.m in Sources */,
8F8ED4B71F29EEE600F48461 /* RootNavigationController.m in Sources */,
8F250D641F2980E50031B4BC /* ZJBaseHttpManager.m in Sources */,
8F4BFCC41F2EDCAF003EA16B /* BusinessFunction.m in Sources */,
8FEF5E661F285E56001496E3 /* ChineseLogHelper.m in Sources */,
8F250D591F297DA80031B4BC /* XWFilterTransitionView.m in Sources */,
8F250D571F297DA80031B4BC /* XWFilterAnimator.m in Sources */,
......@@ -1005,11 +1117,13 @@
8FEF5EA81F28612B001496E3 /* BaseListViewController.m in Sources */,
8F250D551F297DA80031B4BC /* XWFilterAnimator+XWSwipe.m in Sources */,
8F250D491F297DA80031B4BC /* XWFilterAnimator+XWCopyMachine.m in Sources */,
8F4BFCE51F2F04CC003EA16B /* NSDate+Additions.m in Sources */,
8F250D331F297DA80031B4BC /* XWCoolAnimator+XWExplode.m in Sources */,
8FEF5E641F285E56001496E3 /* CALayer+Addtions.m in Sources */,
8FEF5EA01F28612B001496E3 /* BaseAlertCardViewController.m in Sources */,
8F250D291F297DA80031B4BC /* XWTransitionAnimator.m in Sources */,
8F250D431F297DA80031B4BC /* XWDrawerAnimator.m in Sources */,
8F4BFCDF1F2F0279003EA16B /* SaleInputAddViewController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
......
......@@ -13,14 +13,14 @@
<!--首页-->
<scene sceneID="elJ-d9-ZJ6">
<objects>
<viewController storyboardIdentifier="HomeViewController" id="WT4-sO-gHH" customClass="HomeViewController" sceneMemberID="viewController">
<viewController storyboardIdentifier="HomeViewController" automaticallyAdjustsScrollViewInsets="NO" id="WT4-sO-gHH" customClass="HomeViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="vNa-88-AnB"/>
<viewControllerLayoutGuide type="bottom" id="sqT-KY-cCy"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="yco-R1-GbA">
<rect key="frame" x="0.0" y="64" width="375" height="603"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
<subviews>
<view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gq2-NU-Zzr" userLabel="weather" customClass="HomeWeatherBoard">
<rect key="frame" x="0.0" y="44" width="375" height="113"/>
......@@ -29,26 +29,26 @@
<rect key="frame" x="0.0" y="0.0" width="375" height="113"/>
</imageView>
<imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleAspectFit" image="location_icon" translatesAutoresizingMaskIntoConstraints="NO" id="EQB-fi-VUn">
<rect key="frame" x="338" y="25" width="17" height="22"/>
<rect key="frame" x="338" y="26" width="17" height="22"/>
<constraints>
<constraint firstAttribute="height" constant="22" id="5cf-O2-tAn"/>
<constraint firstAttribute="width" constant="17" id="CPa-Vr-doF"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="定位中…" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="egB-Ta-Fdr">
<rect key="frame" x="272" y="26" width="62" height="20"/>
<rect key="frame" x="272" y="27" width="62" height="20"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="1" green="0.99997437" blue="0.99999129769999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ym2-Pl-AJb">
<rect key="frame" x="355" y="58" width="0.0" height="0.0"/>
<rect key="frame" x="355" y="59" width="0.0" height="0.0"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="1" green="0.99997437" blue="0.99999129769999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="GEa-jx-Fuo">
<rect key="frame" x="224" y="22" width="44" height="28"/>
<rect key="frame" x="224" y="23" width="44" height="28"/>
<constraints>
<constraint firstAttribute="width" constant="44" id="GCn-ti-uRN"/>
<constraint firstAttribute="height" constant="28" id="lgS-MQ-aVE"/>
......@@ -77,8 +77,8 @@
</constraints>
<variation key="default">
<mask key="constraints">
<exclude reference="VwS-nZ-LeN"/>
<exclude reference="8bV-Kh-ioP"/>
<exclude reference="VwS-nZ-LeN"/>
<exclude reference="p3A-xa-cJ5"/>
<exclude reference="sPu-qu-dJ1"/>
</mask>
......@@ -103,8 +103,8 @@
</constraints>
<variation key="default">
<mask key="constraints">
<exclude reference="yDj-LI-9cf"/>
<exclude reference="dEB-GV-HD6"/>
<exclude reference="yDj-LI-9cf"/>
<exclude reference="yhb-mI-xor"/>
</mask>
</variation>
......@@ -142,7 +142,7 @@
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="QTS-7K-oL7" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-1124" y="2113"/>
<point key="canvasLocation" x="-1124" y="2112.5937031484259"/>
</scene>
<!--Root Navigation Controller-->
<scene sceneID="JpV-Or-hqr">
......@@ -157,7 +157,7 @@
</textAttributes>
</navigationBar>
<connections>
<segue destination="HoD-l2-13x" kind="relationship" relationship="rootViewController" id="dkD-vn-mfd"/>
<segue destination="HoD-l2-13x" kind="relationship" relationship="rootViewController" id="zSN-Dt-7SC"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="X1W-bu-ynQ" userLabel="First Responder" sceneMemberID="firstResponder"/>
......@@ -242,7 +242,7 @@
<rect key="frame" x="0.0" y="0.0" width="375" height="50"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" tag="111" contentMode="scaleToFill" image="imageView:M5j-cg-iW9:image" translatesAutoresizingMaskIntoConstraints="NO" id="M5j-cg-iW9">
<imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" tag="111" contentMode="scaleToFill" image="business_header_bg" translatesAutoresizingMaskIntoConstraints="NO" id="M5j-cg-iW9">
<rect key="frame" x="0.0" y="20" width="123" height="30"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="XIo-63-31G"/>
......@@ -672,7 +672,7 @@
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="上海海鼎信息工程股份有限公司 V1.0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5g5-Q9-qhp">
<rect key="frame" x="60" y="635" width="255.5" height="18"/>
<rect key="frame" x="60" y="635" width="256" height="18"/>
<fontDescription key="fontDescription" type="system" pointSize="15"/>
<color key="textColor" red="1" green="0.99997437" blue="0.99999129769999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
......@@ -714,25 +714,11 @@
<image name="SystemImage" width="16" height="16"/>
<image name="business" width="25" height="39"/>
<image name="business_checked" width="25" height="38"/>
<image name="business_header_bg" width="86" height="25"/>
<image name="home" width="25" height="39"/>
<image name="home_bg" width="1348" height="500"/>
<image name="home_checked" width="25" height="39"/>
<image name="homepage_logo_origin" width="800" height="100"/>
<image name="imageView:M5j-cg-iW9:image" width="16" height="16">
<mutableData key="keyedArchiveRepresentation">
YnBsaXN0MDDUAQIDBAUGODlYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKwHCBEW
GxwiIyksMjVVJG51bGzUCQoLDA0ODxBWJGNsYXNzXE5TSW1hZ2VGbGFnc1ZOU1JlcHNXTlNDb2xvcoAL
EgTAAACAAoAJ0hIJExVaTlMub2JqZWN0c6EUgAOACNISCRcVohgZgASABYAIEAXTHQkeHyAhV05TLmJh
c2VbTlMucmVsYXRpdmWAAIAHgAZfEHNmaWxlOi8vL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVu
dHMvUGx1Z0lucy9JREVJbnRlcmZhY2VCdWlsZGVyS2l0LmZyYW1ld29yay9SZXNvdXJjZXMvSUJNaXNz
aW5nSW1hZ2VHbHlwaC50aWZm0iQlJidaJGNsYXNzbmFtZVgkY2xhc3Nlc1VOU1VSTKImKFhOU09iamVj
dNIkJSorV05TQXJyYXmiKijTLS4JLzAxV05TV2hpdGVcTlNDb2xvclNwYWNlRDAgMAAQA4AK0iQlMzRX
TlNDb2xvcqIzKNIkJTY3V05TSW1hZ2WiNihfEA9OU0tleWVkQXJjaGl2ZXLROjtUcm9vdIABAAgAEQAa
ACMALQAyADcARABKAFMAWgBnAG4AdgB4AH0AfwCBAIYAkQCTAJUAlwCcAJ8AoQCjAKUApwCuALYAwgDE
AMYAyAE+AUMBTgFXAV0BYAFpAW4BdgF5AYABiAGVAZoBnAGeAaMBqwGuAbMBuwG+AdAB0wHYAAAAAAAA
AgEAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAdo
</mutableData>
</image>
<image name="imageView:UuU-cT-iP0:image" width="16" height="16">
<mutableData key="keyedArchiveRepresentation">
YnBsaXN0MDDUAQIDBAUGODlYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKwHCBEW
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>function</key>
<array>
<dict>
<key>type</key>
<string>4</string>
<key>functionName</key>
<string>销售录入</string>
<key>functionPic</key>
<string>business_salesInput</string>
</dict>
</array>
<key>headerTitle</key>
<string>营运</string>
</dict>
</array>
</plist>
//
// BusinessFunction.h
//
// Created by 杰 张 on 16/7/29
// Copyright (c) 2016 __MyCompanyName__. All rights reserved.
//
#import <Foundation/Foundation.h>
/**
业务菜单类型
- functionTypeAnouncement: 公告
- functionTypeMessage: 消息
- functionTypeTodo: 待办
- functionTypeStatement: 对账单
- functionTypeSaleInput: 销售录入
- functionTypeRepair: 工程报修
- functionTypeInspect: 设备巡检
- functionTypeReading: 仪表读数
- functionTypeSuggest: 投诉建议
- functionTypeInspectRepair: 设备报修
- functionTypeOperateInspect: 运营巡检
- functionTypeTenant: 商户沟通
- functionTypeContactExamine: 合同审批
- functionTypeAmmeter: 电表充值
- functionTypeYueXin: 月星家居
*/
typedef NS_ENUM(NSInteger, functionType) {
functionTypeAnouncement = 0,
functionTypeMessage = 1,
functionTypeTodo = 2,
functionTypeStatement = 3,
functionTypeSaleInput = 4,
functionTypeRepair = 5,
functionTypeInspect = 6,
functionTypeReading = 7,
functionTypeSuggest = 8,
functionTypeInspectRepair = 9,
functionTypeOperateInspect = 10,
functionTypeTenant = 11,
functionTypeContactExamine = 12,
functionTypeIndoorMap = 13,
functionTypeAmmeter = 14,
functionTypeYueXin = 15,
functionTypeTennantManagement= 16,
functionTypeBrandManagement = 17
};
@interface BusinessFunction : NSObject <NSCoding, NSCopying>
@property (nonatomic, strong) NSString *functionPic;
@property (nonatomic, strong) NSString *functionName;
@property (nonatomic, assign) functionType type;
+ (instancetype)modelObjectWithDictionary:(NSDictionary *)dict;
- (instancetype)initWithDictionary:(NSDictionary *)dict;
- (NSDictionary *)dictionaryRepresentation;
@end
//
// BusinessFunction.m
//
// Created by 杰 张 on 16/7/29
// Copyright (c) 2016 __MyCompanyName__. All rights reserved.
//
#import "BusinessFunction.h"
NSString *const kBusinessFunctionFunctionPic = @"functionPic";
NSString *const kBusinessFunctionFunctionName = @"functionName";
NSString *const kBusinessFunctionType= @"type";
@interface BusinessFunction ()
- (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict;
@end
@implementation BusinessFunction
@synthesize functionPic = _functionPic;
@synthesize functionName = _functionName;
+ (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
{
return [[self alloc] initWithDictionary:dict];
}
- (instancetype)initWithDictionary:(NSDictionary *)dict
{
self = [super init];
// This check serves to make sure that a non-NSDictionary object
// passed into the model class doesn't break the parsing.
if(self && [dict isKindOfClass:[NSDictionary class]]) {
self.functionPic = [self objectOrNilForKey:kBusinessFunctionFunctionPic fromDictionary:dict];
self.functionName = [self objectOrNilForKey:kBusinessFunctionFunctionName fromDictionary:dict];
self.type = [dict[@"type"] integerValue];
}
return self;
}
- (NSDictionary *)dictionaryRepresentation
{
NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
[mutableDict setValue:self.functionPic forKey:kBusinessFunctionFunctionPic];
[mutableDict setValue:self.functionName forKey:kBusinessFunctionFunctionName];
return [NSDictionary dictionaryWithDictionary:mutableDict];
}
- (NSString *)description
{
return [NSString stringWithFormat:@"%@", [self dictionaryRepresentation]];
}
#pragma mark - Helper Method
- (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict
{
id object = [dict objectForKey:aKey];
return [object isEqual:[NSNull null]] ? nil : object;
}
#pragma mark - NSCoding Methods
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super init];
self.functionPic = [aDecoder decodeObjectForKey:kBusinessFunctionFunctionPic];
self.functionName = [aDecoder decodeObjectForKey:kBusinessFunctionFunctionName];
return self;
}
- (void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:_functionPic forKey:kBusinessFunctionFunctionPic];
[aCoder encodeObject:_functionName forKey:kBusinessFunctionFunctionName];
}
- (id)copyWithZone:(NSZone *)zone
{
BusinessFunction *copy = [[BusinessFunction alloc] init];
if (copy) {
copy.functionPic = [self.functionPic copyWithZone:zone];
copy.functionName = [self.functionName copyWithZone:zone];
}
return copy;
}
@end
//
// BusinessFunctionMode.h
//
// Created by 杰 张 on 16/7/29
// Copyright (c) 2016 __MyCompanyName__. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "BusinessFunction.h"
@interface BusinessFunctionModel : NSObject <NSCoding, NSCopying>
@property (nonatomic, strong) NSArray<BusinessFunction *> *function;
@property (nonatomic, strong) NSString *headerTitle;
+ (instancetype)modelObjectWithDictionary:(NSDictionary *)dict;
/**
没有权限控制
*/
- (instancetype)initWithDictionary:(NSDictionary *)dict;
/**
权限控制
*/
- (instancetype)initWithDictionaryPermissionControl:(NSDictionary *)dict;
- (NSDictionary *)dictionaryRepresentation;
@end
//
// BusinessFunctionMode.m
//
// Created by 杰 张 on 16/7/29
// Copyright (c) 2016 __MyCompanyName__. All rights reserved.
//
#import "BusinessFunctionModel.h"
NSString *const kBusinessFunctionModeFunction = @"function";
NSString *const kBusinessFunctionModeHeaderTitle = @"headerTitle";
@interface BusinessFunctionModel ()
- (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict;
@end
@implementation BusinessFunctionModel
@synthesize function = _function;
@synthesize headerTitle = _headerTitle;
+ (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
{
return [[self alloc] initWithDictionary:dict];
}
- (instancetype)initWithDictionary:(NSDictionary *)dict
{
self = [super init];
// This check serves to make sure that a non-NSDictionary object
// passed into the model class doesn't break the parsing.
if(self && [dict isKindOfClass:[NSDictionary class]]) {
NSObject *receivedBusinessFunction = [dict objectForKey:kBusinessFunctionModeFunction];
NSMutableArray *parsedBusinessFunction = [NSMutableArray array];
if ([receivedBusinessFunction isKindOfClass:[NSArray class]]) {
for (NSDictionary *item in (NSArray *)receivedBusinessFunction) {
if ([item isKindOfClass:[NSDictionary class]]) {
[parsedBusinessFunction addObject:[BusinessFunction modelObjectWithDictionary:item]];
}
}
} else if ([receivedBusinessFunction isKindOfClass:[NSDictionary class]]) {
[parsedBusinessFunction addObject:[BusinessFunction modelObjectWithDictionary:(NSDictionary *)receivedBusinessFunction]];
}
self.function = [NSArray arrayWithArray:parsedBusinessFunction];
self.headerTitle = [self objectOrNilForKey:kBusinessFunctionModeHeaderTitle fromDictionary:dict];
}
return self;
}
- (instancetype)initWithDictionaryPermissionControl:(NSDictionary *)dict {
self = [super init];
// This check serves to make sure that a non-NSDictionary object
// passed into the model class doesn't break the parsing.
if(self && [dict isKindOfClass:[NSDictionary class]]) {
NSObject *receivedBusinessFunction = [dict objectForKey:kBusinessFunctionModeFunction];
NSMutableArray *parsedBusinessFunction = [NSMutableArray array];
if ([receivedBusinessFunction isKindOfClass:[NSArray class]]) {
for (NSDictionary *item in (NSArray *)receivedBusinessFunction) {
if ([item isKindOfClass:[NSDictionary class]]) {
BusinessFunction *function = [BusinessFunction modelObjectWithDictionary:item];
switch (function.type) {
case functionTypeSaleInput:
{
if (AppGlobal.permission.saleinput.read) {
[parsedBusinessFunction addObject:function];
}
}
break;
default:
break;
}
}
}
} else if ([receivedBusinessFunction isKindOfClass:[NSDictionary class]]) {
[parsedBusinessFunction addObject:[BusinessFunction modelObjectWithDictionary:(NSDictionary *)receivedBusinessFunction]];
}
self.function = [NSArray arrayWithArray:parsedBusinessFunction];
self.headerTitle = [self objectOrNilForKey:kBusinessFunctionModeHeaderTitle fromDictionary:dict];
}
return self;
}
- (NSDictionary *)dictionaryRepresentation
{
NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
NSMutableArray *tempArrayForFunction = [NSMutableArray array];
for (NSObject *subArrayObject in self.function) {
if([subArrayObject respondsToSelector:@selector(dictionaryRepresentation)]) {
// This class is a model object
[tempArrayForFunction addObject:[subArrayObject performSelector:@selector(dictionaryRepresentation)]];
} else {
// Generic object
[tempArrayForFunction addObject:subArrayObject];
}
}
[mutableDict setValue:[NSArray arrayWithArray:tempArrayForFunction] forKey:kBusinessFunctionModeFunction];
[mutableDict setValue:self.headerTitle forKey:kBusinessFunctionModeHeaderTitle];
return [NSDictionary dictionaryWithDictionary:mutableDict];
}
- (NSString *)description
{
return [NSString stringWithFormat:@"%@", [self dictionaryRepresentation]];
}
#pragma mark - Helper Method
- (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict
{
id object = [dict objectForKey:aKey];
return [object isEqual:[NSNull null]] ? nil : object;
}
#pragma mark - NSCoding Methods
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super init];
self.function = [aDecoder decodeObjectForKey:kBusinessFunctionModeFunction];
self.headerTitle = [aDecoder decodeObjectForKey:kBusinessFunctionModeHeaderTitle];
return self;
}
- (void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:_function forKey:kBusinessFunctionModeFunction];
[aCoder encodeObject:_headerTitle forKey:kBusinessFunctionModeHeaderTitle];
}
- (id)copyWithZone:(NSZone *)zone
{
BusinessFunctionModel *copy = [[BusinessFunctionModel alloc] init];
if (copy) {
copy.function = [self.function copyWithZone:zone];
copy.headerTitle = [self.headerTitle copyWithZone:zone];
}
return copy;
}
@end
......@@ -7,6 +7,8 @@
//
#import "BusinessCollectionViewController.h"
#import "BusinessFunctionModel.h"
#import "SaleInputListViewController.h"
@interface BusinessCollectionViewController ()
@property (weak, nonatomic) IBOutlet UICollectionViewFlowLayout *layout;
......@@ -26,11 +28,92 @@ static NSString *const reuseIdentifier = @"Cell";
self.layout.minimumInteritemSpacing = 10;
self.layout.headerReferenceSize = CGSizeMake(kWidth, 40);
self.collectionView.contentInset = UIEdgeInsetsMake(0, 0, 49, 0);
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"BusinessItems" ofType:@"plist"];
NSArray *arrData = [[NSArray alloc] initWithContentsOfFile:plistPath];
CLog(@"%@", arrData);
self.arrFunction = [NSMutableArray array];
for (NSDictionary *dic in arrData) {
//增加菜单需要在BusinessFunctionModel里面增加枚举项
#ifdef DEBUG
// 没有权限控制
// BusinessFunctionModel *model = [BusinessFunctionModel modelObjectWithDictionary:dic];
//
// 权限控制
BusinessFunctionModel *model = [[BusinessFunctionModel alloc] initWithDictionaryPermissionControl:dic];
#else
BusinessFunctionModel *model = [[BusinessFunctionModel alloc] initWithDictionaryPermissionControl:dic];
#endif
if (model.function.count > 0) {
[self.arrFunction addObject:model];
}
}
}
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
UICollectionReusableView *header = nil;
if (kind == UICollectionElementKindSectionHeader) {
header = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"businessHeader" forIndexPath:indexPath];
}
UILabel *title = (UILabel *)[header viewWithTag:110];
UIImageView *image = (UIImageView *)[header viewWithTag:111];
[image.image resizableImageWithCapInsets:UIEdgeInsetsMake(0, 39, 0, 40) resizingMode:UIImageResizingModeTile];
NSString *txt = [self.arrFunction[indexPath.section] headerTitle];
title.text = txt;
return header;
}
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return self.arrFunction.count;
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
BusinessFunctionModel *model = self.arrFunction[section];
return model.function.count;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:reuseIdentifier forIndexPath:indexPath];
BusinessFunctionModel *model = self.arrFunction[indexPath.section];
BusinessFunction *founction = model.function[indexPath.row];
UILabel *title = (UILabel *)[cell viewWithTag:110];
title.text = founction.functionName;
UIImageView *img = (UIImageView *)[cell viewWithTag:111];
img.image = [UIImage imageNamed:founction.functionPic];
// Configure the cell
return cell;
}
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
BusinessFunctionModel *functions = self.arrFunction[indexPath.section];
BusinessFunction *function = functions.function[indexPath.row];
switch (function.type) {
case functionTypeSaleInput:
{
SaleInputListViewController *saleVC = [SaleInputListViewController viewControllerWithStoryBoardType:STORYBOARD_TYPE_SALEINPUT];
[self.navigationController pushViewController:saleVC animated:YES];
}
break;
default:
break;
}
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:NO animated:NO];
}
- (void)didReceiveMemoryWarning
......
@interface HMSaleInputDetail_contract : ZJBaseModel
@property (nonatomic, strong) NSString <Optional> * code;
@property (nonatomic, strong) NSString <Optional> * uuid;
@property (nonatomic, strong) NSString <Optional> * name;
@end
@interface HMSaleInputDetail_store : ZJBaseModel
@property (nonatomic, strong) NSString <Optional> * code;
@property (nonatomic, strong) NSString <Optional> * uuid;
@property (nonatomic, strong) NSString <Optional> * name;
@end
@interface HMSaleInputDetail_tenant : ZJBaseModel
@property (nonatomic, strong) NSString <Optional> * code;
@property (nonatomic, strong) NSString <Optional> * uuid;
@property (nonatomic, strong) NSString <Optional> * name;
@end
@protocol HMSaleInputDetail_payments
@end
@interface HMSaleInputDetail_payments_payment : ZJBaseModel
@property (nonatomic, strong) NSString <Optional> * code;
@property (nonatomic, strong) NSString <Optional> * uuid;
@property (nonatomic, strong) NSString <Optional> * name;
@end
@interface HMSaleInputDetail_payments : ZJBaseModel
@property (nonatomic, strong) NSNumber <Optional> * total;
@property (nonatomic, strong) HMSaleInputDetail_payments_payment <Optional> * payment;
@end
@interface HMSaleInputDetail : ZJBaseModel
@property (nonatomic, strong) NSString <Optional> * oper;
@property (nonatomic, strong) NSMutableArray < Optional> * mediaFiles;
@property (nonatomic, strong) NSNumber <Optional> * saleCount;
@property (nonatomic, strong) NSString <Optional> * saleDate;
@property (nonatomic, strong) HMSaleInputDetail_contract <Optional> * contract;
@property (nonatomic, strong) HMSaleInputDetail_store <Optional> * store;
@property (nonatomic, strong) NSString <Optional> * receiver;
@property (nonatomic, strong) NSNumber <Optional> * balance;
@property (nonatomic, strong) HMSaleInputDetail_tenant <Optional> * tenant;
@property (nonatomic, strong) NSMutableArray <HMSaleInputDetail_payments,Optional> * payments;
@end
#import "HMSaleInputDetail.h"
@implementation HMSaleInputDetail
@end
@implementation HMSaleInputDetail_contract
@end
@implementation HMSaleInputDetail_store
@end
@implementation HMSaleInputDetail_tenant
@end
@implementation HMSaleInputDetail_payments
@end
@implementation HMSaleInputDetail_payments_payment
@end
@interface HMSaleInputQuery_dateRange : ZJBaseModel
@property (nonatomic, strong) NSString <Optional> * beginDate;
@property (nonatomic, strong) NSString <Optional> * endDate;
@end
@interface HMSaleInputQuery : ZJBaseModel
@property (nonatomic, strong) HMSaleInputQuery_dateRange <Optional> * dateRange;
@property (nonatomic, strong) NSMutableArray < Optional> * contracts;
@property (nonatomic, strong) NSString <Optional> * state;
@property (nonatomic, strong) NSNumber <Optional> * page;
@property (nonatomic, strong) NSNumber <Optional> * pageSize;
@end
#import "HMSaleInputQuery.h"
@implementation HMSaleInputQuery
@end
@implementation HMSaleInputQuery_dateRange
@end
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12120" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12088"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--Sale Input List View Controller-->
<scene sceneID="w9h-kn-EN4">
<objects>
<viewController storyboardIdentifier="SaleInputListViewController" autoresizesArchivedViewToFullSize="NO" automaticallyAdjustsScrollViewInsets="NO" hidesBottomBarWhenPushed="YES" id="vkq-ko-8z3" customClass="SaleInputListViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="fKx-QB-8T3"/>
<viewControllerLayoutGuide type="bottom" id="dCI-SM-A4p"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="j2C-xo-rlz">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="159" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="AOL-sy-21t">
<rect key="frame" x="0.0" y="20" width="375" height="647"/>
<color key="backgroundColor" red="0.90188914539999998" green="0.89984929560000004" blue="0.93195199969999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<inset key="separatorInset" minX="15" minY="0.0" maxX="0.0" maxY="0.0"/>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="SaleInputListTableViewCell" rowHeight="159" id="T0g-MS-Ojb" customClass="SaleInputListTableViewCell">
<rect key="frame" x="0.0" y="28" width="375" height="159"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="T0g-MS-Ojb" id="AXq-8y-utO">
<rect key="frame" x="0.0" y="0.0" width="375" height="159"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="星巴克【HSCQ-L 103】" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QvX-2f-lOt">
<rect key="frame" x="20" y="8" width="264" height="23"/>
<constraints>
<constraint firstAttribute="height" constant="23" id="twM-1Q-xjy"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="19"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="时间:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ufl-0t-iXS">
<rect key="frame" x="20" y="70" width="37.5" height="23"/>
<constraints>
<constraint firstAttribute="height" constant="23" id="S8p-Rp-Whu"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.2027770877" green="0.20276418330000001" blue="0.20277169349999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="单号:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ayS-Oo-MMy">
<rect key="frame" x="20" y="112" width="37.5" height="19.5"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.2027770877" green="0.20276418330000001" blue="0.20277169349999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="000002332340034" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Myo-Ab-30t">
<rect key="frame" x="65" y="112" width="146" height="19.5"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.2027770877" green="0.20276418330000001" blue="0.20277169349999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UrT-GZ-4xX">
<rect key="frame" x="20" y="103" width="335" height="1"/>
<color key="backgroundColor" red="0.90188914539999998" green="0.89984929560000004" blue="0.93195199969999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="FZa-Q2-AEM"/>
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="笔数:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bSa-gd-kdW">
<rect key="frame" x="20" y="39" width="37.5" height="23"/>
<constraints>
<constraint firstAttribute="height" constant="23" id="gET-qi-ZWr"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.2027770877" green="0.20276418330000001" blue="0.20277169349999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="照明设施更换" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UcL-xw-odG">
<rect key="frame" x="68" y="39" width="98" height="23"/>
<constraints>
<constraint firstAttribute="height" constant="23" id="h8V-ZS-zlt"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.2027770877" green="0.20276418330000001" blue="0.20277169349999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2014-04-15 11:30:34" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wyu-19-g9E">
<rect key="frame" x="68" y="70" width="154" height="23"/>
<constraints>
<constraint firstAttribute="height" constant="23" id="0Jy-zb-mks"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.2027770877" green="0.20276418330000001" blue="0.20277169349999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xGG-J8-bQ9">
<rect key="frame" x="292" y="110" width="63" height="22.5"/>
<constraints>
<constraint firstAttribute="height" constant="22.5" id="bf6-xt-yQh"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="15"/>
<inset key="titleEdgeInsets" minX="-40" minY="0.0" maxX="0.0" maxY="0.0"/>
<inset key="imageEdgeInsets" minX="40" minY="0.0" maxX="0.0" maxY="0.0"/>
<state key="normal" title="查看" image="right_arrow_gray">
<color key="titleColor" red="0.28840419649999999" green="0.29349163169999998" blue="0.32454988359999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
</button>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="neW-Rt-WfY">
<rect key="frame" x="0.0" y="143.5" width="375" height="10"/>
<color key="backgroundColor" red="0.90188914539999998" green="0.89984929560000004" blue="0.93195199969999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="10" id="t5i-X8-kDY"/>
</constraints>
</view>
<imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleAspectFill" translatesAutoresizingMaskIntoConstraints="NO" id="Psi-VB-Cf2">
<rect key="frame" x="292" y="0.0" width="63" height="51"/>
<constraints>
<constraint firstAttribute="width" constant="63" id="6V7-se-5xv"/>
<constraint firstAttribute="height" constant="51" id="Uyk-pI-gKZ"/>
</constraints>
</imageView>
</subviews>
<constraints>
<constraint firstAttribute="bottom" secondItem="ayS-Oo-MMy" secondAttribute="bottom" constant="22" id="1db-Jg-kno"/>
<constraint firstItem="Myo-Ab-30t" firstAttribute="centerY" secondItem="ayS-Oo-MMy" secondAttribute="centerY" id="2od-2E-Q6S"/>
<constraint firstItem="Myo-Ab-30t" firstAttribute="leading" secondItem="ayS-Oo-MMy" secondAttribute="trailing" constant="7.5" id="4db-E5-9gH"/>
<constraint firstItem="wyu-19-g9E" firstAttribute="centerY" secondItem="ufl-0t-iXS" secondAttribute="centerY" id="6HX-ck-4WW"/>
<constraint firstItem="neW-Rt-WfY" firstAttribute="leading" secondItem="AXq-8y-utO" secondAttribute="leading" id="DDz-Wh-stJ"/>
<constraint firstItem="UcL-xw-odG" firstAttribute="leading" secondItem="bSa-gd-kdW" secondAttribute="trailing" constant="10.5" id="H7X-Ix-kn4"/>
<constraint firstAttribute="bottom" secondItem="neW-Rt-WfY" secondAttribute="bottom" id="HGn-zX-etK"/>
<constraint firstItem="ayS-Oo-MMy" firstAttribute="leading" secondItem="ufl-0t-iXS" secondAttribute="leading" id="Iz1-jM-nOb"/>
<constraint firstItem="bSa-gd-kdW" firstAttribute="top" secondItem="QvX-2f-lOt" secondAttribute="bottom" constant="8" id="M6i-QH-4S7"/>
<constraint firstItem="Psi-VB-Cf2" firstAttribute="top" secondItem="AXq-8y-utO" secondAttribute="top" id="Qsi-tw-UWI"/>
<constraint firstItem="wyu-19-g9E" firstAttribute="leading" secondItem="UcL-xw-odG" secondAttribute="leading" id="Sia-Yw-Dog"/>
<constraint firstItem="QvX-2f-lOt" firstAttribute="leading" secondItem="AXq-8y-utO" secondAttribute="leading" constant="20" id="UDU-1q-uA9"/>
<constraint firstItem="QvX-2f-lOt" firstAttribute="top" secondItem="AXq-8y-utO" secondAttribute="top" constant="8" id="UPi-Jf-KBr"/>
<constraint firstItem="ufl-0t-iXS" firstAttribute="top" secondItem="bSa-gd-kdW" secondAttribute="bottom" constant="8" id="YAy-gW-rIn"/>
<constraint firstItem="bSa-gd-kdW" firstAttribute="leading" secondItem="QvX-2f-lOt" secondAttribute="leading" id="Yxy-Tx-76b"/>
<constraint firstAttribute="bottom" secondItem="xGG-J8-bQ9" secondAttribute="bottom" id="Z3a-9o-K8M"/>
<constraint firstAttribute="bottom" secondItem="UrT-GZ-4xX" secondAttribute="bottom" constant="40" id="Z5g-iH-gok"/>
<constraint firstAttribute="trailing" secondItem="UrT-GZ-4xX" secondAttribute="trailing" constant="20" id="bTd-rf-CQF"/>
<constraint firstAttribute="trailing" secondItem="Psi-VB-Cf2" secondAttribute="trailing" constant="20" id="c6l-wU-FjQ"/>
<constraint firstItem="ayS-Oo-MMy" firstAttribute="top" secondItem="UrT-GZ-4xX" secondAttribute="bottom" constant="8" id="cF1-4s-qlo"/>
<constraint firstItem="UcL-xw-odG" firstAttribute="centerY" secondItem="bSa-gd-kdW" secondAttribute="centerY" id="eMd-ZS-AvM"/>
<constraint firstItem="UrT-GZ-4xX" firstAttribute="top" secondItem="ufl-0t-iXS" secondAttribute="bottom" constant="10.5" id="eeY-wt-1q1"/>
<constraint firstItem="ufl-0t-iXS" firstAttribute="leading" secondItem="bSa-gd-kdW" secondAttribute="leading" id="f6H-j6-Kgv"/>
<constraint firstAttribute="trailing" secondItem="xGG-J8-bQ9" secondAttribute="trailing" constant="20" id="lJg-1E-YwV"/>
<constraint firstItem="UrT-GZ-4xX" firstAttribute="leading" secondItem="AXq-8y-utO" secondAttribute="leading" constant="20" id="tco-tL-LjN"/>
<constraint firstItem="xGG-J8-bQ9" firstAttribute="top" secondItem="UrT-GZ-4xX" secondAttribute="bottom" id="vC7-Mn-3ts"/>
<constraint firstAttribute="trailing" secondItem="neW-Rt-WfY" secondAttribute="trailing" id="vVT-PZ-Ltg"/>
<constraint firstItem="Psi-VB-Cf2" firstAttribute="leading" secondItem="QvX-2f-lOt" secondAttribute="trailing" constant="8" id="vgh-Gx-XrK"/>
<constraint firstItem="xGG-J8-bQ9" firstAttribute="centerY" secondItem="ayS-Oo-MMy" secondAttribute="centerY" id="xkr-BZ-6L4"/>
</constraints>
<variation key="default">
<mask key="constraints">
<exclude reference="vC7-Mn-3ts"/>
<exclude reference="Z3a-9o-K8M"/>
</mask>
</variation>
</tableViewCellContentView>
<connections>
<outlet property="imgState" destination="Psi-VB-Cf2" id="8af-0w-5n1"/>
<outlet property="labelBillCount" destination="UcL-xw-odG" id="6sB-uA-vVM"/>
<outlet property="labelBillNumber" destination="Myo-Ab-30t" id="Vpn-DI-wD0"/>
<outlet property="labelTItle" destination="QvX-2f-lOt" id="AGw-00-hBm"/>
<outlet property="labelTime" destination="wyu-19-g9E" id="k9Y-wi-KKe"/>
</connections>
</tableViewCell>
</prototypes>
<connections>
<outlet property="dataSource" destination="vkq-ko-8z3" id="7FX-ry-5qm"/>
<outlet property="delegate" destination="vkq-ko-8z3" id="A9l-lJ-UlU"/>
</connections>
</tableView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="aQG-ol-2ju">
<rect key="frame" x="285" y="577" width="60" height="60"/>
<constraints>
<constraint firstAttribute="height" constant="60" id="I8i-pw-WjG"/>
<constraint firstAttribute="width" constant="60" id="eZi-8u-vhI"/>
</constraints>
<state key="normal" image="btn_addrepair"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="30"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
<action selector="actionAdd:" destination="vkq-ko-8z3" eventType="touchUpInside" id="2GM-yz-GI2"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" red="1" green="0.9999405146" blue="0.99998033050000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="aQG-ol-2ju" secondAttribute="trailing" constant="30" id="3C9-JN-WBq"/>
<constraint firstAttribute="trailing" secondItem="AOL-sy-21t" secondAttribute="trailing" id="Kdx-SC-TsM"/>
<constraint firstItem="AOL-sy-21t" firstAttribute="top" secondItem="fKx-QB-8T3" secondAttribute="bottom" id="QOO-8v-8hV"/>
<constraint firstItem="AOL-sy-21t" firstAttribute="leading" secondItem="j2C-xo-rlz" secondAttribute="leading" id="iu7-Rm-0Jn"/>
<constraint firstAttribute="bottom" secondItem="aQG-ol-2ju" secondAttribute="bottom" constant="30" id="mt7-Yx-faA"/>
<constraint firstItem="dCI-SM-A4p" firstAttribute="top" secondItem="AOL-sy-21t" secondAttribute="bottom" id="wkx-IT-CW7"/>
</constraints>
</view>
<connections>
<outlet property="btnAdd" destination="aQG-ol-2ju" id="OuT-h2-LHy"/>
<outlet property="tableView" destination="AOL-sy-21t" id="794-OR-rpb"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="IRl-aX-U86" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-567.5" y="1341.5"/>
</scene>
<!--Sale Input Add View Controller-->
<scene sceneID="TBZ-TQ-Uz5">
<objects>
<viewController storyboardIdentifier="SaleInputAddViewController" automaticallyAdjustsScrollViewInsets="NO" id="28i-0U-BU7" customClass="SaleInputAddViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="PkZ-eg-jf4"/>
<viewControllerLayoutGuide type="bottom" id="Ubr-ff-OkA"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="lqo-x7-uJQ">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Tfl-FO-sZI" customClass="SaleInputTopView">
<rect key="frame" x="0.0" y="0.0" width="375" height="120"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KB1-2R-rYE">
<rect key="frame" x="0.0" y="0.0" width="375" height="40"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="商户" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="grA-4D-OfF">
<rect key="frame" x="16" y="8" width="90" height="23"/>
<constraints>
<constraint firstAttribute="width" constant="90" id="AK0-un-Zw8"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="19"/>
<color key="textColor" red="1" green="0.9999405146" blue="0.99998033050000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="right_arrow_white" translatesAutoresizingMaskIntoConstraints="NO" id="CDI-jP-EcR">
<rect key="frame" x="355" y="6" width="10" height="27"/>
<color key="tintColor" red="1" green="0.9999405146" blue="0.99998033050000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="width" constant="10" id="9cY-Nf-u1J"/>
<constraint firstAttribute="height" constant="27" id="I3z-My-rgL"/>
</constraints>
</imageView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="s9r-Fx-3zW">
<rect key="frame" x="114" y="0.0" width="233" height="40"/>
<state key="normal" title="请选择商户"/>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="请选择商铺" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="94u-p7-BhS">
<rect key="frame" x="114" y="9" width="237" height="23"/>
<fontDescription key="fontDescription" type="system" pointSize="19"/>
<color key="textColor" red="1" green="0.9999405146" blue="0.99998033050000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" red="0.98920059199999999" green="0.41316801310000001" blue="0.031795684249999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="CDI-jP-EcR" firstAttribute="leading" secondItem="94u-p7-BhS" secondAttribute="trailing" constant="4" id="5cP-kQ-hw3"/>
<constraint firstItem="CDI-jP-EcR" firstAttribute="centerY" secondItem="KB1-2R-rYE" secondAttribute="centerY" id="6J1-QA-Oyw"/>
<constraint firstAttribute="height" constant="40" id="Cln-5H-xVE"/>
<constraint firstItem="grA-4D-OfF" firstAttribute="centerY" secondItem="KB1-2R-rYE" secondAttribute="centerY" id="M8c-fE-g2L"/>
<constraint firstAttribute="trailing" secondItem="CDI-jP-EcR" secondAttribute="trailing" constant="10" id="OTC-WW-DU3"/>
<constraint firstItem="94u-p7-BhS" firstAttribute="leading" secondItem="grA-4D-OfF" secondAttribute="trailing" constant="8" id="TPp-MW-YGe"/>
<constraint firstItem="grA-4D-OfF" firstAttribute="leading" secondItem="KB1-2R-rYE" secondAttribute="leading" constant="16" id="UIy-jJ-wvK"/>
<constraint firstItem="s9r-Fx-3zW" firstAttribute="leading" secondItem="grA-4D-OfF" secondAttribute="trailing" constant="8" id="alf-CR-f8f"/>
<constraint firstItem="CDI-jP-EcR" firstAttribute="leading" secondItem="s9r-Fx-3zW" secondAttribute="trailing" constant="8" id="kSV-p2-nsj"/>
<constraint firstItem="94u-p7-BhS" firstAttribute="centerY" secondItem="KB1-2R-rYE" secondAttribute="centerY" id="o6c-1C-ofa"/>
<constraint firstItem="s9r-Fx-3zW" firstAttribute="top" secondItem="KB1-2R-rYE" secondAttribute="top" id="utp-gr-dIU"/>
<constraint firstAttribute="bottom" secondItem="s9r-Fx-3zW" secondAttribute="bottom" id="znC-P8-OKO"/>
</constraints>
<variation key="default">
<mask key="subviews">
<exclude reference="94u-p7-BhS"/>
</mask>
</variation>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wRl-1W-nRd">
<rect key="frame" x="0.0" y="40" width="375" height="40"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="销售日期" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SnS-I8-rOe">
<rect key="frame" x="16" y="8" width="90" height="23"/>
<constraints>
<constraint firstAttribute="width" constant="90" id="E4O-OI-kED"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="19"/>
<color key="textColor" red="1" green="0.9999405146" blue="0.99998033050000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="right_arrow_white" translatesAutoresizingMaskIntoConstraints="NO" id="tV0-Ch-MXM">
<rect key="frame" x="355" y="6" width="10" height="27"/>
<color key="tintColor" red="1" green="0.9999405146" blue="0.99998033050000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="27" id="YAt-z7-Iyh"/>
<constraint firstAttribute="width" constant="10" id="lkK-6z-8HF"/>
</constraints>
</imageView>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="NOi-wj-KWg">
<rect key="frame" x="114" y="0.0" width="237" height="40"/>
<color key="tintColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" red="1" green="0.9999405146" blue="0.99998033050000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<fontDescription key="fontDescription" type="system" pointSize="18"/>
<textInputTraits key="textInputTraits"/>
</textField>
</subviews>
<color key="backgroundColor" red="0.98920059199999999" green="0.41316801310000001" blue="0.031795684249999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="tV0-Ch-MXM" firstAttribute="centerY" secondItem="wRl-1W-nRd" secondAttribute="centerY" id="1ko-RF-6j0"/>
<constraint firstAttribute="trailing" secondItem="tV0-Ch-MXM" secondAttribute="trailing" constant="10" id="Akm-QZ-mqJ"/>
<constraint firstItem="SnS-I8-rOe" firstAttribute="leading" secondItem="wRl-1W-nRd" secondAttribute="leading" constant="16" id="aSS-BA-8oQ"/>
<constraint firstItem="NOi-wj-KWg" firstAttribute="top" secondItem="wRl-1W-nRd" secondAttribute="top" id="i3P-tz-hsI"/>
<constraint firstItem="tV0-Ch-MXM" firstAttribute="leading" secondItem="NOi-wj-KWg" secondAttribute="trailing" constant="4" id="ijx-9f-ZA2"/>
<constraint firstItem="NOi-wj-KWg" firstAttribute="leading" secondItem="SnS-I8-rOe" secondAttribute="trailing" constant="8" id="lQC-CO-jqX"/>
<constraint firstAttribute="bottom" secondItem="NOi-wj-KWg" secondAttribute="bottom" id="lW2-fD-JH1"/>
<constraint firstAttribute="height" constant="40" id="vj6-25-lyU"/>
<constraint firstItem="SnS-I8-rOe" firstAttribute="centerY" secondItem="wRl-1W-nRd" secondAttribute="centerY" id="zJg-aJ-M4r"/>
</constraints>
<variation key="default">
<mask key="constraints">
<exclude reference="vj6-25-lyU"/>
</mask>
</variation>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9Kj-Mq-R2D">
<rect key="frame" x="0.0" y="80" width="375" height="40"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8ej-cc-IEf">
<rect key="frame" x="114" y="8" width="229" height="23"/>
<fontDescription key="fontDescription" type="system" pointSize="19"/>
<color key="textColor" red="1" green="0.9999405146" blue="0.99998033050000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="元" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Fz1-Rl-jfa">
<rect key="frame" x="345" y="0.0" width="22" height="40"/>
<constraints>
<constraint firstAttribute="width" constant="22" id="VT0-5t-cBy"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="18"/>
<color key="textColor" red="1" green="0.9999405146" blue="0.99998033050000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="今日累计" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bgO-nZ-r8L">
<rect key="frame" x="16" y="8" width="90" height="23"/>
<constraints>
<constraint firstAttribute="width" constant="90" id="b5i-PM-bLs"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="19"/>
<color key="textColor" red="1" green="0.9999405146" blue="0.99998033050000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" red="0.98920059199999999" green="0.41316801310000001" blue="0.031795684249999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="bgO-nZ-r8L" firstAttribute="centerY" secondItem="9Kj-Mq-R2D" secondAttribute="centerY" id="ETQ-2W-LjM"/>
<constraint firstAttribute="bottom" secondItem="Fz1-Rl-jfa" secondAttribute="bottom" id="Hfr-Hs-SU3"/>
<constraint firstItem="8ej-cc-IEf" firstAttribute="leading" secondItem="bgO-nZ-r8L" secondAttribute="trailing" constant="8" id="UQr-xY-2CM"/>
<constraint firstAttribute="trailing" secondItem="Fz1-Rl-jfa" secondAttribute="trailing" constant="8" id="UjE-S0-TLX"/>
<constraint firstItem="Fz1-Rl-jfa" firstAttribute="leading" secondItem="8ej-cc-IEf" secondAttribute="trailing" constant="2" id="YT0-FJ-Goq"/>
<constraint firstAttribute="height" constant="50" id="bIP-Ik-EmS"/>
<constraint firstItem="bgO-nZ-r8L" firstAttribute="leading" secondItem="9Kj-Mq-R2D" secondAttribute="leading" constant="16" id="dOH-OQ-IbV"/>
<constraint firstItem="Fz1-Rl-jfa" firstAttribute="top" secondItem="9Kj-Mq-R2D" secondAttribute="top" id="fbz-TL-JBu"/>
<constraint firstItem="8ej-cc-IEf" firstAttribute="centerY" secondItem="9Kj-Mq-R2D" secondAttribute="centerY" id="nZ8-eB-jQ2"/>
</constraints>
<variation key="default">
<mask key="constraints">
<exclude reference="bIP-Ik-EmS"/>
</mask>
</variation>
</view>
</subviews>
<color key="backgroundColor" red="1" green="0.9999405146" blue="0.99998033050000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="KB1-2R-rYE" secondAttribute="trailing" id="53V-Rd-0UR"/>
<constraint firstItem="wRl-1W-nRd" firstAttribute="top" secondItem="KB1-2R-rYE" secondAttribute="bottom" id="Gyb-RV-vps"/>
<constraint firstItem="wRl-1W-nRd" firstAttribute="height" secondItem="KB1-2R-rYE" secondAttribute="height" id="K9d-gJ-P8e"/>
<constraint firstItem="9Kj-Mq-R2D" firstAttribute="height" secondItem="KB1-2R-rYE" secondAttribute="height" id="KXA-sJ-g7w"/>
<constraint firstAttribute="trailing" secondItem="9Kj-Mq-R2D" secondAttribute="trailing" id="STZ-KM-rt6"/>
<constraint firstItem="wRl-1W-nRd" firstAttribute="leading" secondItem="Tfl-FO-sZI" secondAttribute="leading" id="VYC-i9-a9B"/>
<constraint firstItem="KB1-2R-rYE" firstAttribute="leading" secondItem="Tfl-FO-sZI" secondAttribute="leading" id="bgo-Qp-Q4w"/>
<constraint firstAttribute="trailing" secondItem="wRl-1W-nRd" secondAttribute="trailing" id="bvb-cb-PzI"/>
<constraint firstItem="KB1-2R-rYE" firstAttribute="top" secondItem="Tfl-FO-sZI" secondAttribute="top" id="gER-qy-cGc"/>
<constraint firstItem="9Kj-Mq-R2D" firstAttribute="top" secondItem="wRl-1W-nRd" secondAttribute="bottom" id="h9F-kf-UNE"/>
<constraint firstItem="9Kj-Mq-R2D" firstAttribute="leading" secondItem="Tfl-FO-sZI" secondAttribute="leading" id="hzj-JI-lBr"/>
<constraint firstAttribute="height" constant="120" id="kUf-yS-pk7"/>
</constraints>
<connections>
<outlet property="btnStore" destination="s9r-Fx-3zW" id="Xdg-9a-b6u"/>
<outlet property="labelTodayTotal" destination="8ej-cc-IEf" id="mxc-w2-aTQ"/>
<outlet property="right1" destination="CDI-jP-EcR" id="Cbk-D4-XB5"/>
<outlet property="right2" destination="tV0-Ch-MXM" id="00Z-QH-b5X"/>
<outlet property="textFieldDate" destination="NOi-wj-KWg" id="diX-Fb-8e4"/>
</connections>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CEF-uD-Cq7">
<rect key="frame" x="0.0" y="603" width="375" height="64"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pGM-pq-sCr">
<rect key="frame" x="40" y="10" width="295" height="44"/>
<color key="backgroundColor" red="0.86230891939999998" green="0.0" blue="0.088002808390000006" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="44" id="a4s-jk-uNW"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="22"/>
<state key="normal" title="提交">
<color key="titleColor" red="1" green="0.9999405146" blue="0.99998033050000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="5"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
</userDefinedRuntimeAttributes>
</button>
</subviews>
<color key="backgroundColor" red="1" green="0.9999405146" blue="0.99998033050000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="pGM-pq-sCr" firstAttribute="leading" secondItem="CEF-uD-Cq7" secondAttribute="leading" constant="40" id="77K-Fk-hto"/>
<constraint firstAttribute="trailing" secondItem="pGM-pq-sCr" secondAttribute="trailing" constant="40" id="oNz-Yf-95k"/>
<constraint firstItem="pGM-pq-sCr" firstAttribute="centerY" secondItem="CEF-uD-Cq7" secondAttribute="centerY" id="pma-xX-qSc"/>
</constraints>
</view>
<collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="JWA-Cq-aaf">
<rect key="frame" x="0.0" y="120" width="375" height="483"/>
<color key="backgroundColor" red="1" green="0.9999405146" blue="0.99998033050000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="jin-yq-X2C">
<size key="itemSize" width="374.5" height="49"/>
<size key="headerReferenceSize" width="50" height="55"/>
<size key="footerReferenceSize" width="0.0" height="0.0"/>
<inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
</collectionViewFlowLayout>
<cells>
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="SaleInputAmountCollectionViewCell" id="5BP-cr-McD" customClass="SaleInputAmountCollectionViewCell">
<rect key="frame" x="0.5" y="55" width="374.5" height="49"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
<rect key="frame" x="0.0" y="0.0" width="374.5" height="49"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="请输入金额" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="wtE-kS-FfF">
<rect key="frame" x="208" y="5" width="150" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="0Fi-YA-quI"/>
<constraint firstAttribute="width" constant="150" id="ktk-NY-u2Y"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits" keyboardType="numbersAndPunctuation"/>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="现金" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gnp-lB-GtI">
<rect key="frame" x="16" y="0.0" width="168" height="49"/>
<constraints>
<constraint firstAttribute="width" constant="131" id="9YJ-V6-bG7"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
<variation key="default">
<mask key="constraints">
<exclude reference="9YJ-V6-bG7"/>
</mask>
</variation>
</label>
</subviews>
</view>
<color key="backgroundColor" red="0.99239385130000002" green="0.96394467350000002" blue="0.92643356320000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="gnp-lB-GtI" firstAttribute="leading" secondItem="5BP-cr-McD" secondAttribute="leading" constant="16" id="6Gg-US-u2t"/>
<constraint firstAttribute="trailing" secondItem="wtE-kS-FfF" secondAttribute="trailing" constant="16" id="9tz-Up-xPD"/>
<constraint firstAttribute="bottom" secondItem="gnp-lB-GtI" secondAttribute="bottom" id="YIR-Gd-e7O"/>
<constraint firstItem="gnp-lB-GtI" firstAttribute="top" secondItem="5BP-cr-McD" secondAttribute="top" id="kem-Ko-Y65"/>
<constraint firstItem="wtE-kS-FfF" firstAttribute="centerY" secondItem="5BP-cr-McD" secondAttribute="centerY" id="pi8-vk-MYe"/>
<constraint firstItem="gnp-lB-GtI" firstAttribute="centerY" secondItem="5BP-cr-McD" secondAttribute="centerY" id="rw3-4D-8dN"/>
<constraint firstItem="wtE-kS-FfF" firstAttribute="leading" secondItem="gnp-lB-GtI" secondAttribute="trailing" constant="24" id="uKL-uz-ky0"/>
</constraints>
<connections>
<outlet property="labelTitle" destination="gnp-lB-GtI" id="p60-Ay-eVh"/>
<outlet property="textFieldInput" destination="wtE-kS-FfF" id="1hj-FZ-ajC"/>
</connections>
</collectionViewCell>
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="SaleInputAttachmentCollectionViewCell" id="K3U-Yc-Vol" customClass="SaleInputAttachmentCollectionViewCell">
<rect key="frame" x="127.5" y="114" width="120.5" height="85"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
<rect key="frame" x="0.0" y="0.0" width="120.5" height="85"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<imageView hidden="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="add_photo_icon" translatesAutoresizingMaskIntoConstraints="NO" id="s0e-9U-9nW">
<rect key="frame" x="19" y="14" width="82" height="56"/>
</imageView>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="tFW-o7-qTp">
<rect key="frame" x="0.0" y="0.0" width="121" height="85"/>
</imageView>
</subviews>
</view>
<color key="backgroundColor" red="1" green="0.9999405146" blue="0.99998033050000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="s0e-9U-9nW" firstAttribute="centerX" secondItem="K3U-Yc-Vol" secondAttribute="centerX" id="3ZH-Yz-edU"/>
<constraint firstItem="tFW-o7-qTp" firstAttribute="top" secondItem="K3U-Yc-Vol" secondAttribute="top" id="6sm-gw-2gb"/>
<constraint firstItem="s0e-9U-9nW" firstAttribute="centerY" secondItem="K3U-Yc-Vol" secondAttribute="centerY" id="Gdh-0l-mP1"/>
<constraint firstAttribute="bottom" secondItem="tFW-o7-qTp" secondAttribute="bottom" id="UCU-kt-afg"/>
<constraint firstAttribute="trailing" secondItem="tFW-o7-qTp" secondAttribute="trailing" id="ejX-XN-085"/>
<constraint firstItem="tFW-o7-qTp" firstAttribute="leading" secondItem="K3U-Yc-Vol" secondAttribute="leading" id="oiJ-60-Ujk"/>
</constraints>
<size key="customSize" width="120.5" height="85"/>
<connections>
<outlet property="img" destination="s0e-9U-9nW" id="9bQ-Cc-KIo"/>
<outlet property="imgPicture" destination="tFW-o7-qTp" id="t5N-4m-ceB"/>
</connections>
</collectionViewCell>
</cells>
<collectionReusableView key="sectionHeaderView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="picHeaderView" id="ylx-De-oAb" customClass="SaleInputHeaderCollectionReusableView">
<rect key="frame" x="0.0" y="0.0" width="375" height="55"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="照片附件" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KKB-1P-WMt">
<rect key="frame" x="16" y="14.5" width="73.5" height="26"/>
<fontDescription key="fontDescription" type="system" pointSize="18"/>
<color key="textColor" red="0.90180099010000003" green="0.26248830560000003" blue="0.062464497979999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="(上传当日结账单)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="02m-sW-db9">
<rect key="frame" x="97.5" y="24" width="102" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" red="0.90180099010000003" green="0.26248830560000003" blue="0.062464497979999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstItem="KKB-1P-WMt" firstAttribute="leading" secondItem="ylx-De-oAb" secondAttribute="leading" constant="16" id="Eub-UK-6mo"/>
<constraint firstItem="02m-sW-db9" firstAttribute="leading" secondItem="KKB-1P-WMt" secondAttribute="trailing" constant="8" id="Knb-UP-YpW"/>
<constraint firstItem="02m-sW-db9" firstAttribute="centerY" secondItem="KKB-1P-WMt" secondAttribute="centerY" constant="5" id="VBh-PI-yKA"/>
<constraint firstItem="02m-sW-db9" firstAttribute="bottom" secondItem="KKB-1P-WMt" secondAttribute="bottom" id="ZVi-fZ-dg8"/>
<constraint firstItem="KKB-1P-WMt" firstAttribute="centerY" secondItem="ylx-De-oAb" secondAttribute="centerY" id="gve-r3-LJl"/>
</constraints>
</collectionReusableView>
<connections>
<outlet property="dataSource" destination="28i-0U-BU7" id="XQD-Tk-5Fr"/>
<outlet property="delegate" destination="28i-0U-BU7" id="h1Y-wX-fnu"/>
</connections>
</collectionView>
</subviews>
<color key="backgroundColor" red="1" green="0.9999405146" blue="0.99998033050000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="JWA-Cq-aaf" secondAttribute="trailing" id="2MQ-D2-xkG"/>
<constraint firstItem="Tfl-FO-sZI" firstAttribute="top" secondItem="PkZ-eg-jf4" secondAttribute="bottom" id="83m-8b-weg"/>
<constraint firstItem="JWA-Cq-aaf" firstAttribute="top" secondItem="Tfl-FO-sZI" secondAttribute="bottom" id="FE5-mW-ONe"/>
<constraint firstItem="Tfl-FO-sZI" firstAttribute="top" secondItem="lqo-x7-uJQ" secondAttribute="top" id="ScR-YP-lpB"/>
<constraint firstItem="CEF-uD-Cq7" firstAttribute="leading" secondItem="lqo-x7-uJQ" secondAttribute="leading" id="VPt-r2-n0H"/>
<constraint firstItem="Tfl-FO-sZI" firstAttribute="leading" secondItem="lqo-x7-uJQ" secondAttribute="leading" id="Wqm-vR-7EY"/>
<constraint firstAttribute="trailing" secondItem="Tfl-FO-sZI" secondAttribute="trailing" id="cfN-zb-llq"/>
<constraint firstItem="CEF-uD-Cq7" firstAttribute="top" secondItem="JWA-Cq-aaf" secondAttribute="bottom" id="elR-zM-vMr"/>
<constraint firstItem="Ubr-ff-OkA" firstAttribute="top" secondItem="JWA-Cq-aaf" secondAttribute="bottom" constant="64" id="jIR-Q7-SeE"/>
<constraint firstItem="JWA-Cq-aaf" firstAttribute="leading" secondItem="lqo-x7-uJQ" secondAttribute="leading" id="qoj-tO-EKs"/>
<constraint firstAttribute="trailing" secondItem="CEF-uD-Cq7" secondAttribute="trailing" id="rX0-Pt-63Y"/>
<constraint firstItem="Ubr-ff-OkA" firstAttribute="top" secondItem="CEF-uD-Cq7" secondAttribute="bottom" id="vIA-lt-88L"/>
</constraints>
<variation key="default">
<mask key="constraints">
<exclude reference="83m-8b-weg"/>
</mask>
</variation>
</view>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<size key="freeformSize" width="375" height="667"/>
<connections>
<outlet property="btnBottom" destination="pGM-pq-sCr" id="Taa-zY-MVJ"/>
<outlet property="collectionView" destination="JWA-Cq-aaf" id="fDB-PK-3HB"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="8BI-14-Fwd" userLabel="First Responder" sceneMemberID="firstResponder"/>
<tapGestureRecognizer id="oQa-iO-TPh"/>
</objects>
<point key="canvasLocation" x="222" y="321"/>
</scene>
</scenes>
<resources>
<image name="add_photo_icon" width="82" height="56"/>
<image name="btn_addrepair" width="78" height="78"/>
<image name="right_arrow_gray" width="32" height="32"/>
<image name="right_arrow_white" width="15" height="27"/>
</resources>
</document>
//
// SaleInputAddViewController.h
// HDMall
//
// Created by Javen on 2017/7/31.
// Copyright © 2017年 上海勾芒信息科技. All rights reserved.
//
#import "BaseViewController.h"
@interface SaleInputAddViewController : BaseViewController
@end
//
// SaleInputAddViewController.m
// HDMall
//
// Created by Javen on 2017/7/31.
// Copyright © 2017年 上海勾芒信息科技. All rights reserved.
//
#import "SaleInputAddViewController.h"
#import "SaleInputViewModel.h"
#import "SaleInputAmountCollectionViewCell.h"
@interface SaleInputAddViewController ()<UICollectionViewDelegate, UICollectionViewDataSource>
@property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
@property (weak, nonatomic) IBOutlet UIButton *btnBottom;
@property (strong, nonatomic) SaleInputViewModel *viewModel;
@property (strong, nonatomic) NSMutableArray *arrData;
@end
@implementation SaleInputAddViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
WS(weakSelf);
[self.viewModel httpAllPayments:^(NSMutableArray<HMSaleInputDetail_payments_payment *> *arrPayments) {
weakSelf.arrData = arrPayments;
[weakSelf.collectionView reloadData];
CLog(@"%@", arrPayments);
}];
}
#pragma mark - UICollectionViewDelegateFlowLayout
#pragma mark - item的列间距
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
return 0;
}
#pragma mark - item的行间距
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
if (0 == section) {
return 0;
} else {
return 5;
}
}
//定义每个UICollectionView item的大小
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
if (0 == indexPath.section) {
return CGSizeMake(kWidth, 50);
} else {
return CGSizeMake((kWidth - 30) / 2, kAutoValue(120));
}
}
//定义每个UICollectionView section的 margin
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
if (0 == section) {
return UIEdgeInsetsMake(0, 0, 0, 0);
} else {
return UIEdgeInsetsMake(0, 10, 0, 10);
}
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section {
if (section == 0) {
return CGSizeMake(0, 0);
} else {
return CGSizeMake(kWidth, 50);
}
}
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath {
UICollectionReusableView *header;
if ([kind isEqualToString:UICollectionElementKindSectionHeader]) {
header = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"picHeaderView" forIndexPath:indexPath];
}
return header;
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return self.arrData.count;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
//输入各种支付方式的金额
SaleInputAmountCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"SaleInputAmountCollectionViewCell" forIndexPath:indexPath];
cell.isEdit = self.viewModel.type != SaleInputTypeReadOnly;
[cell configCellWithArray:self.arrData indexPath:indexPath];
// WS(weakSelf);
cell.blockNumberChanged = ^{
// [weakSelf allInputMoney];
};
return cell;
}
//
- (void)httpPayments {
}
ZJLazy(SaleInputViewModel, viewModel);
ZJLazy(NSMutableArray, arrData);
@end
//
// SaleInputListViewController.h
// RealEstateManagement
//
// Created by Javen on 2016/11/2.
// Copyright © 2016年 上海勾芒信息科技. All rights reserved.
//
#import "BaseListViewController.h"
@interface SaleInputListViewController : BaseListViewController
@end
//
// SaleInputListViewController.m
// RealEstateManagement
//
// Created by Javen on 2016/11/2.
// Copyright © 2016年 上海勾芒信息科技. All rights reserved.
//
#import "SaleInputListViewController.h"
#import "SaleInputAddViewController.h"
#import "SaleInputListTableViewCell.h"
//#import "SaleInputDetailModel.h"
//#import "SaleInputDetailViewController.h"
#import "HMSaleInputQuery.h"
@interface SaleInputListViewController ()
@property (strong, nonatomic) HMSaleInputQuery *query;
@end
@implementation SaleInputListViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.title = @"销售录入记录";
[self refresh];
self.btnAdd.hidden = !AppGlobal.permission.saleinput.newField;
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.navigationController.navigationBar.barTintColor = kMainBlueColor;
}
- (void)httpRequest {
self.query.contracts = [AppGlobal getUserContractUuids];
self.query.page = @(self.page);
self.query.pageSize = @(self.pageSize);
self.query.dateRange = [HMSaleInputQuery_dateRange new];
self.query.dateRange.beginDate = @"2016-07-12";
self.query.dateRange.endDate = @"2017-07-13";
WS(weakSelf);
[ZJHttpManager POST:@"hdmall/api/sale/getList" parameters:self.query.toDictionary complete:^(id responseObject, NSError *error) {
if (kIsResponse) {
}else{
kFalseHttpTips;
self.page--;
}
[weakSelf listTableViewReloadData];
}];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
SaleInputListTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SaleInputListTableViewCell" forIndexPath:indexPath];
[cell configCellWithArray:self.arrData indexPath:indexPath];
return cell;
}
- (void)listDidSelect:(id)model {
// SaleInputDetailModel *listModel = model;
// SaleInputDetailViewController *detailVC = [SaleInputDetailViewController viewControllerWithStoryBoardType:STORYBOARD_TYPE_SALEINPUT];
// detailVC.detailType = SaleInputDetailTypeReadOnly;
// detailVC.listModel = listModel;
// [self.navigationController pushViewController:detailVC animated:YES];
}
- (void)actionAdd:(UIButton *)sender {
SaleInputAddViewController *addVC = [SaleInputAddViewController viewControllerWithStoryBoardType:STORYBOARD_TYPE_SALEINPUT];
[self listPushCustomAnimate:addVC];
}
ZJLazy(HMSaleInputQuery, query);
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
//
// SaleInputViewModel.h
// HDMall
//
// Created by Javen on 2017/7/31.
// Copyright © 2017年 上海勾芒信息科技. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "HMSaleInputDetail.h"
typedef NS_ENUM(NSInteger, SaleInputType) {
SaleInputTypeCreate,
SaleInputTypeEdit,
SaleInputTypeReadOnly
};
@interface SaleInputViewModel : NSObject
@property (assign, nonatomic) SaleInputType type;
/**
获取全部支付方式
@param callBack 获取到支付方式的回调(如果arrPayments = nil, 则代表请求失败)
*/
- (void)httpAllPayments:(void (^)(NSMutableArray<HMSaleInputDetail_payments *> *arrPayments))callBack;
@end
//
// SaleInputViewModel.m
// HDMall
//
// Created by Javen on 2017/7/31.
// Copyright © 2017年 上海勾芒信息科技. All rights reserved.
//
#import "SaleInputViewModel.h"
@implementation SaleInputViewModel
/**
获取全部支付方式
@param callBack 获取到支付方式的回调(如果arrPayments = nil, 则代表请求失败)
*/
- (void)httpAllPayments:(void (^)(NSMutableArray<HMSaleInputDetail_payments *> *arrPayments))callBack {
[ZJHttpManager GET:@"hdmall/salesinput/getAllPayments" parameters:nil complete:^(id responseObject, NSError *error) {
if (kIsResponse) {
NSMutableArray *arrData = [HMSaleInputDetail_payments_payment modelsFromArray:responseObject[@"data"]];
//后台返回的结构是HMSaleInputDetail_payments_payment,需要处理一下,变成HMSaleInputDetail_payments才符合使用需求
NSMutableArray *arrPayments = [NSMutableArray array];
for (HMSaleInputDetail_payments_payment *pay in arrData) {
HMSaleInputDetail_payments *payments = [HMSaleInputDetail_payments new];
payments.payment = pay;
[arrPayments addObject:payments];
}
callBack(arrPayments);
}else{
callBack(nil);
kFalseHttpTips;
}
}];
}
@end
//
// SaleInputAmountCollectionViewCell.h
// RealEstateManagement
//
// Created by Javen on 2016/10/11.
// Copyright © 2016年 上海勾芒信息科技. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "SaleInputViewModel.h"
@interface SaleInputAmountCollectionViewCell : UICollectionViewCell
@property (weak, nonatomic) IBOutlet UILabel *labelTitle;
@property (weak, nonatomic) IBOutlet UITextField *textFieldInput;
@property (nonatomic, strong) HMSaleInputDetail_payments *model;
@property (nonatomic, assign) BOOL isEdit;
@property (nonatomic, copy) void (^blockNumberChanged)(void);
- (void)configCellWithArray:(NSMutableArray *)array indexPath:(NSIndexPath *)indexPath;
@end
//
// SaleInputAmountCollectionViewCell.m
// RealEstateManagement
//
// Created by Javen on 2016/10/11.
// Copyright © 2016年 上海勾芒信息科技. All rights reserved.
//
#import "CalculateHelper.h"
#import "SaleInputAmountCollectionViewCell.h"
#import "NSString+Additions.h"
@interface SaleInputAmountCollectionViewCell () <UITextFieldDelegate>
@end
@implementation SaleInputAmountCollectionViewCell
- (void)awakeFromNib
{
[super awakeFromNib];
self.textFieldInput.delegate = self;
[self.textFieldInput addTarget:self action:@selector(textFieldDidChanged:) forControlEvents:UIControlEventEditingChanged];
}
/**
* 设置可编辑状态和不可编辑状态
*/
- (void)setIsEdit:(BOOL)isEdit {
_isEdit = isEdit;
if (isEdit) {
self.textFieldInput.userInteractionEnabled = YES;
self.textFieldInput.textColor = [UIColor blackColor];
}else{
self.textFieldInput.userInteractionEnabled = NO;
self.textFieldInput.textColor = [UIColor lightGrayColor];
}
}
//实时获取变化之后的数据
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
//获取改变之后的字符串
NSMutableString *futureString = [NSMutableString stringWithString:textField.text];
[futureString insertString:string atIndex:range.location];
return [futureString isValidMoneyInput];
}
- (void)textFieldDidChanged:(UITextField *)textField {
self.model.total = [CalculateHelper decimalNumber:textField.text];
self.blockNumberChanged();
}
- (void)textFieldDidBeginEditing:(UITextField *)textField {
textField.textColor = [UIColor blackColor];
if ([textField.text isEqualToString:@"0.00"]) {
textField.text = @"";
}
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
//输入框有文字则显示,避免没输入自动出现0.00的情况
if (textField.text.length > 0) {
if ([textField.text isEqualToString:@"0"]) {
textField.textColor = [UIColor lightGrayColor];
textField.text = @"0.00";
}else{
self.textFieldInput.text = [CalculateHelper getMoneyStringFrom:textField.text];
}
}
}
- (void)configCellWithArray:(NSMutableArray *)array indexPath:(NSIndexPath *)indexPath {
self.model = array[indexPath.row];
self.textFieldInput.text = self.model.total ? [CalculateHelper getMoneyStringFrom:self.model.total] : nil;
if ([self.textFieldInput.text isEqualToString:@"0.00"]) {
self.textFieldInput.textColor = [UIColor lightGrayColor];
}else{
self.textFieldInput.textColor = [UIColor blackColor];
}
self.labelTitle.text = self.model.payment.name;
}
@end
//
// SaleInputListTableViewCell.h
// RealEstateManagement
//
// Created by Javen on 2016/11/2.
// Copyright © 2016年 上海勾芒信息科技. All rights reserved.
//
#import <UIKit/UIKit.h>
//#import "SaleInputDetailModel.h"
@interface SaleInputListTableViewCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UILabel *labelTItle;
@property (weak, nonatomic) IBOutlet UILabel *labelBillCount;
@property (weak, nonatomic) IBOutlet UILabel *labelTime;
@property (weak, nonatomic) IBOutlet UILabel *labelBillNumber;
//@property (nonatomic, strong) SaleInputDetailModel *model;
@property (weak, nonatomic) IBOutlet UIImageView *imgState;
- (void)configCellWithArray:(NSMutableArray *)array indexPath:(NSIndexPath *)indexPath;
@end
//
// SaleInputListTableViewCell.m
// RealEstateManagement
//
// Created by Javen on 2016/11/2.
// Copyright © 2016年 上海勾芒信息科技. All rights reserved.
//
#import "SaleInputListTableViewCell.h"
@implementation SaleInputListTableViewCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (void)configCellWithArray:(NSMutableArray *)array indexPath:(NSIndexPath *)indexPath {
// self.model = array[indexPath.row];
// self.labelTItle.text = self.model.contract.name;
// self.labelBillCount.text = [NSString stringWithFormat:@"%.0f",self.model.saleCount];
// self.labelTime.text = self.model.saleDate;
// self.imgState.image = [UIImage imageNamed:self.model.stateImageName];
// self.labelBillNumber.text = self.model.billNumber;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end
//
// SaleInputTopView.h
// RealEstateManagement
//
// Created by Javen on 2016/10/13.
// Copyright © 2016年 上海勾芒信息科技. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface SaleInputTopView : UIView
/** 选择商铺 */
@property (weak, nonatomic) IBOutlet UIButton *btnStore;
/** 销售日期 */
@property (weak, nonatomic) IBOutlet UITextField *textFieldDate;
/** 今日累计 */
@property (weak, nonatomic) IBOutlet UILabel *labelTodayTotal;
//两个三角
@property (weak, nonatomic) IBOutlet UIImageView *right1;
@property (weak, nonatomic) IBOutlet UIImageView *right2;
@property (nonatomic, copy) void (^blockDidChooseDate)(void);
@end
//
// SaleInputTopView.m
// RealEstateManagement
//
// Created by Javen on 2016/10/13.
// Copyright © 2016年 上海勾芒信息科技. All rights reserved.
//
#import "SaleInputTopView.h"
@interface SaleInputTopView ()<UITextFieldDelegate>
@property (strong, nonatomic) UIDatePicker *datePicker;
@end
@implementation SaleInputTopView
- (void)awakeFromNib {
[super awakeFromNib];
// if (kUser.isTenant) {
// self.btnStore.userInteractionEnabled = NO;
// self.right1.hidden = YES;
// }
self.datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 0, kWidth, 216)];
self.datePicker.maximumDate = [NSDate date];
self.textFieldDate.inputView = self.datePicker;
self.textFieldDate.delegate = self;
self.datePicker.datePickerMode = UIDatePickerModeDate;
self.textFieldDate.text = [self.datePicker.date yearMonthDayString];
}
- (void)textFieldDidEndEditing:(UITextField *)textField {
self.textFieldDate.text = [self.datePicker.date yearMonthDayString];
self.blockDidChooseDate();
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
}
*/
@end
......@@ -22,6 +22,9 @@
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:NO];
//防止底部出现黑边
self.view.frame = CGRectMake(0, 0, kWidth, kHeight);
[self.view layoutIfNeeded];
}
- (UIStatusBarStyle)preferredStatusBarStyle {
......
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"filename" : "business_header_bg.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "business_header_bg@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"filename" : "business_salesInput.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "business_salesInput@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "add-photo_icon@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "add-photo_icon@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"filename" : "back_icon.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "back_icon@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "back_icon@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "btn_addrepair@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "btn_addrepair@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"filename" : "right_arrow.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"filename" : "right_icon.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "right_icon@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
......@@ -34,6 +34,7 @@
#import "UIViewController+Additions.h"
#import "NSNumber+Addtions.h"
#import "NSString+Additions.h"
#import "NSDate+Additions.h"
// Include any system framework and library headers here that should be included in all compilation units.
// You will also need to set the Prefix Header build setting of one or more of your targets to reference this file.
......
......@@ -26,6 +26,9 @@
*/
+ (instancetype)modelWithDic:(NSDictionary *)dic;
/** 传入数据数组,返回模型数组 */
+ (NSMutableArray *)modelsFromArray:(NSArray *)array;
/**
模型转模型
......
......@@ -21,6 +21,15 @@
return model;
}
+ (NSMutableArray *)modelsFromArray:(NSArray *)array {
NSMutableArray *arr = [NSMutableArray array];
for (NSDictionary *dict in array) {
id model = [[self class] modelWithDic:dict];
[arr addObject:model];
}
return arr;
}
+ (JSONKeyMapper *)keyMapper {
return [[JSONKeyMapper alloc] initWithModelToJSONDictionary:@{ @"idField" : @"id",
@"newField" : @"new" }];
......
//
// NSDate+Additions.h
// HDMall
//
// Created by Javen on 2017/7/31.
// Copyright © 2017年 上海勾芒信息科技. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface NSDate (Additions)
/** yyyy-MM-dd HH:mm:ss */
- (NSString *)httpParameterString;
/** yyyy-MM-dd */
- (NSString *)yearMonthDayString;
/** yyyy-MM */
- (NSString *)yearMonthString;
- (NSString *)yearString;
- (NSString *)monthString;
- (NSString *)dayString;
- (NSString *)stringWithFormatter:(NSString *)dateFormatter;
@end
//
// NSDate+Additions.m
// HDMall
//
// Created by Javen on 2017/7/31.
// Copyright © 2017年 上海勾芒信息科技. All rights reserved.
//
#import "NSDate+Additions.h"
@implementation NSDate (Additions)
- (NSString *)httpParameterString {
return [self stringWithFormatter:@"yyyy-MM-dd HH:mm:ss"];
}
- (NSString *)yearMonthDayString {
return [self stringWithFormatter:@"yyyy-MM-dd"];
}
- (NSString *)yearMonthString {
return [self stringWithFormatter:@"yyyy-MM"];
}
- (NSString *)yearString {
NSString *strDate = [self yearMonthDayString];
NSArray *arrDate = [strDate componentsSeparatedByString:@"-"];
return arrDate[0];
}
- (NSString *)monthString {
NSString *strDate = [self yearMonthDayString];
NSArray *arrDate = [strDate componentsSeparatedByString:@"-"];
return arrDate[1];
}
- (NSString *)dayString{
NSString *strDate = [self yearMonthDayString];
NSArray *arrDate = [strDate componentsSeparatedByString:@"-"];
return arrDate[2];
}
- (NSString *)stringWithFormatter:(NSString *)dateFormatter {
if ([dateFormatter length] == 0) {
return nil;
}
// Change to Local time zone
NSTimeZone *zone = [NSTimeZone systemTimeZone];
NSInteger interval = [zone secondsFromGMTForDate:self];
NSDate *localDate = [self dateByAddingTimeInterval: interval];
NSDateFormatter *f = [NSDateFormatter new];
[f setDateFormat:dateFormatter];
return [f stringFromDate:localDate];
}
@end
......@@ -73,7 +73,7 @@
CLPlacemark *placemark = [array objectAtIndex:0];
//获取城市
NSString *city = placemark.locality;
NSString *zipCode = placemark.postalCode;
// NSString *zipCode = placemark.postalCode;
if (!city) {
//四大直辖市的城市信息无法通过locality获得,只能通过获取省份的方法来获得(如果city为空,则可知为直辖市)
city = placemark.administrativeArea;
......
......@@ -29,9 +29,12 @@
/** 权限 */
@property (strong, nonatomic) ZJPermissionManager *permission;
+ (ZJAppInstance *)shareInstance;
/** 获取用户的所有合同uuid */
- (NSMutableArray *)getUserContractUuids;
/** 保存基础信息 */
- (void)saveBaseInfo;
......
......@@ -10,6 +10,7 @@
static NSString *const zj_saved_name = @"zj_saved_name";
static NSString *const zj_saved_pwd = @"zj_saved_pwd";
static NSString *const zj_saved_isMall = @"zj_saved_isMall";
@implementation ZJAppInstance
+ (ZJAppInstance *)shareInstance {
static ZJAppInstance *instance = nil;
......@@ -37,5 +38,13 @@ static NSString *const zj_saved_isMall = @"zj_saved_isMall";
[self.permission updatePermissions:user.permissions];
}
- (NSMutableArray *)getUserContractUuids {
NSMutableArray *arr = [NSMutableArray array];
for (UserInfo_contracts *contract in self.user.contracts) {
[arr addObject:contract.uuid];
}
return arr;
}
ZJLazy(ZJPermissionManager, permission)
@end
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