Эх сурвалжийг харах

RedAnt Mobile
完成了server setting, login 界面的设置
增加文档
完善login数据结构

Ray Zhang 8 жил өмнө
parent
commit
9dfd7e461d

+ 42 - 1
RedAnt Mobile/RedAnt Mobile.xcodeproj/project.pbxproj

@@ -17,6 +17,7 @@
 		42DFAE791F9B2CBD009AFCCC /* Phone_Signature_Cell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 42DFAE781F9B2CBD009AFCCC /* Phone_Signature_Cell.xib */; };
 		42DFAE7B1F9B2CE6009AFCCC /* Phone_Switch_Cell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 42DFAE7A1F9B2CE6009AFCCC /* Phone_Switch_Cell.xib */; };
 		42DFAE7D1F9B2D02009AFCCC /* Phone_TextView_Cell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 42DFAE7C1F9B2D02009AFCCC /* Phone_TextView_Cell.xib */; };
+		71CB70B41FA1CCDB009FDCB7 /* server.json in Resources */ = {isa = PBXBuildFile; fileRef = 71CB70B31FA1CCDB009FDCB7 /* server.json */; };
 		71E9F6C81F8C5CCB0052C78E /* NetworkUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 71E9F6C61F8C5CCA0052C78E /* NetworkUtils.m */; };
 		71F3A9A21F5F8E22001036C8 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 71F3A9A11F5F8E22001036C8 /* main.m */; };
 		71F3A9A51F5F8E22001036C8 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 71F3A9A41F5F8E22001036C8 /* AppDelegate.m */; };
@@ -87,6 +88,9 @@
 		71F3AA8F1F6276B0001036C8 /* default_appearance.json in Resources */ = {isa = PBXBuildFile; fileRef = 71F3AA8E1F6276B0001036C8 /* default_appearance.json */; };
 		71F3AA921F627700001036C8 /* DefaultTableHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 71F3AA911F627700001036C8 /* DefaultTableHeaderView.m */; };
 		71F3AA951F6277DE001036C8 /* DefaultAppearance.m in Sources */ = {isa = PBXBuildFile; fileRef = 71F3AA941F6277DE001036C8 /* DefaultAppearance.m */; };
+		71FF60251FA7209F00C5523A /* EnumSelectAndSortViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 71FF60241FA7209F00C5523A /* EnumSelectAndSortViewController.m */; };
+		71FF60291FA7236200C5523A /* EnumModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 71FF60281FA7236200C5523A /* EnumModel.m */; };
+		71FF602B1FA802AB00C5523A /* loginUI.json in Resources */ = {isa = PBXBuildFile; fileRef = 71FF602A1FA802AB00C5523A /* loginUI.json */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXFileReference section */
@@ -102,6 +106,7 @@
 		42DFAE7C1F9B2D02009AFCCC /* Phone_TextView_Cell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = Phone_TextView_Cell.xib; sourceTree = "<group>"; };
 		71CB70B01FA1BA5E009FDCB7 /* data.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = data.json; sourceTree = "<group>"; };
 		71CB70B11FA1BA5E009FDCB7 /* layout.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = layout.json; sourceTree = "<group>"; };
+		71CB70B31FA1CCDB009FDCB7 /* server.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = server.json; sourceTree = "<group>"; };
 		71E9F6C61F8C5CCA0052C78E /* NetworkUtils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = NetworkUtils.m; path = ../../common/NetworkUtils.m; sourceTree = "<group>"; };
 		71E9F6C71F8C5CCA0052C78E /* NetworkUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = NetworkUtils.h; path = ../../common/NetworkUtils.h; sourceTree = "<group>"; };
 		71F3A99D1F5F8E22001036C8 /* RedAnt Mobile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "RedAnt Mobile.app"; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -234,6 +239,13 @@
 		71F3AA911F627700001036C8 /* DefaultTableHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DefaultTableHeaderView.m; path = "../RedAnt ERP Mobile/common/customUI/DefaultTableHeaderView.m"; sourceTree = "<group>"; };
 		71F3AA931F6277DE001036C8 /* DefaultAppearance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DefaultAppearance.h; sourceTree = "<group>"; };
 		71F3AA941F6277DE001036C8 /* DefaultAppearance.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DefaultAppearance.m; sourceTree = "<group>"; };
+		71FF60231FA7209F00C5523A /* EnumSelectAndSortViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = EnumSelectAndSortViewController.h; path = "../../RedAnt ERP Mobile/common/CommonEditor/EnumSelectAndSort/EnumSelectAndSortViewController.h"; sourceTree = "<group>"; };
+		71FF60241FA7209F00C5523A /* EnumSelectAndSortViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = EnumSelectAndSortViewController.m; path = "../../RedAnt ERP Mobile/common/CommonEditor/EnumSelectAndSort/EnumSelectAndSortViewController.m"; sourceTree = "<group>"; };
+		71FF60261FA7233500C5523A /* EnumSelectAndSort.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = EnumSelectAndSort.storyboard; path = "../../RedAnt ERP Mobile/common/CommonEditor/EnumSelectAndSort/EnumSelectAndSort.storyboard"; sourceTree = "<group>"; };
+		71FF60271FA7236100C5523A /* EnumModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = EnumModel.h; path = "../../RedAnt ERP Mobile/common/CommonEditor/EnumSelectAndSort/EnumModel.h"; sourceTree = "<group>"; };
+		71FF60281FA7236200C5523A /* EnumModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = EnumModel.m; path = "../../RedAnt ERP Mobile/common/CommonEditor/EnumSelectAndSort/EnumModel.m"; sourceTree = "<group>"; };
+		71FF602A1FA802AB00C5523A /* loginUI.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = loginUI.json; sourceTree = "<group>"; };
+		71FF602D1FA8076700C5523A /* RA Mobile.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "RA Mobile.txt"; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -348,9 +360,19 @@
 			name = TextViewCell;
 			sourceTree = "<group>";
 		};
+		71CB70B21FA1CCBC009FDCB7 /* fake data */ = {
+			isa = PBXGroup;
+			children = (
+				71F3A9C01F5FA11F001036C8 /* login.json */,
+				71CB70B31FA1CCDB009FDCB7 /* server.json */,
+			);
+			name = "fake data";
+			sourceTree = "<group>";
+		};
 		71F3A9941F5F8E22001036C8 = {
 			isa = PBXGroup;
 			children = (
+				71FF602C1FA8074300C5523A /* doc */,
 				71F3AA8A1F627676001036C8 /* appearance */,
 				71F3AA811F6263B2001036C8 /* MainViewController.h */,
 				71F3AA821F6263B2001036C8 /* MainViewController.m */,
@@ -385,6 +407,7 @@
 				71F3A9E11F5FA531001036C8 /* JLKeyboardListener.h */,
 				71F3A9E21F5FA531001036C8 /* JLKeyboardListener.m */,
 				71F3A9BF1F5FA109001036C8 /* login */,
+				71CB70B21FA1CCBC009FDCB7 /* fake data */,
 				71F3A9BA1F5F8E89001036C8 /* result */,
 				71F3A9A31F5F8E22001036C8 /* AppDelegate.h */,
 				71F3A9A41F5F8E22001036C8 /* AppDelegate.m */,
@@ -423,7 +446,6 @@
 		71F3A9BF1F5FA109001036C8 /* login */ = {
 			isa = PBXGroup;
 			children = (
-				71F3A9C01F5FA11F001036C8 /* login.json */,
 				71F3A9C31F5FA11F001036C8 /* LoginSwitchCell.h */,
 				71F3A9C41F5FA11F001036C8 /* LoginSwitchCell.m */,
 				71F3A9C51F5FA11F001036C8 /* LoginTextFiledCell.h */,
@@ -432,6 +454,7 @@
 				71F3A9C81F5FA11F001036C8 /* LoginViewController.m */,
 				71F3A9FA1F5FCC79001036C8 /* LoginSettingViewController.h */,
 				71F3A9FB1F5FCC79001036C8 /* LoginSettingViewController.m */,
+				71FF602A1FA802AB00C5523A /* loginUI.json */,
 			);
 			name = login;
 			sourceTree = "<group>";
@@ -549,6 +572,11 @@
 				71F3AA2F1F612369001036C8 /* EnumSelectorCell.m */,
 				71F3AA301F612369001036C8 /* EnumSelectViewController.h */,
 				71F3AA311F612369001036C8 /* EnumSelectViewController.m */,
+				71FF60261FA7233500C5523A /* EnumSelectAndSort.storyboard */,
+				71FF60231FA7209F00C5523A /* EnumSelectAndSortViewController.h */,
+				71FF60241FA7209F00C5523A /* EnumSelectAndSortViewController.m */,
+				71FF60271FA7236100C5523A /* EnumModel.h */,
+				71FF60281FA7236200C5523A /* EnumModel.m */,
 				71F3AA321F612369001036C8 /* MonthPickerViewController.h */,
 				71F3AA331F612369001036C8 /* MonthPickerViewController.m */,
 				71F3AA341F612369001036C8 /* SRMonthPicker.h */,
@@ -598,6 +626,15 @@
 			name = appearance;
 			sourceTree = "<group>";
 		};
+		71FF602C1FA8074300C5523A /* doc */ = {
+			isa = PBXGroup;
+			children = (
+				71FF602D1FA8076700C5523A /* RA Mobile.txt */,
+			);
+			name = doc;
+			path = "RedAnt Mobile";
+			sourceTree = "<group>";
+		};
 /* End PBXGroup section */
 
 /* Begin PBXNativeTarget section */
@@ -658,11 +695,13 @@
 			buildActionMask = 2147483647;
 			files = (
 				42DFAE6B1F9B2B73009AFCCC /* Phone_Action_Cell.xib in Resources */,
+				71CB70B41FA1CCDB009FDCB7 /* server.json in Resources */,
 				42DFAE791F9B2CBD009AFCCC /* Phone_Signature_Cell.xib in Resources */,
 				71F3A9B01F5F8E22001036C8 /* LaunchScreen.storyboard in Resources */,
 				42DFAE711F9B2C36009AFCCC /* Phone_Image_Cell.xib in Resources */,
 				42DFAE7D1F9B2D02009AFCCC /* Phone_TextView_Cell.xib in Resources */,
 				71F3AA0D1F61151D001036C8 /* commoneditor.phone.xib in Resources */,
+				71FF602B1FA802AB00C5523A /* loginUI.json in Resources */,
 				71F3AA5A1F624A88001036C8 /* signature.storyboard in Resources */,
 				42DFAE771F9B2C9B009AFCCC /* Phone_Model_Cell.xib in Resources */,
 				71F3AA121F611FC4001036C8 /* testViewController.xib in Resources */,
@@ -708,6 +747,7 @@
 				71F3A9FC1F5FCC79001036C8 /* LoginSettingViewController.m in Sources */,
 				71F3AA4D1F6124A2001036C8 /* TouchImageView.m in Sources */,
 				71F3A9A51F5F8E22001036C8 /* AppDelegate.m in Sources */,
+				71FF60251FA7209F00C5523A /* EnumSelectAndSortViewController.m in Sources */,
 				71F3AA0A1F5FDDFE001036C8 /* NSData+CommonCrypto.m in Sources */,
 				71F3AA0B1F5FDDFE001036C8 /* NSString+Base64.m in Sources */,
 				71F3AA111F611FC4001036C8 /* testViewController.m in Sources */,
@@ -743,6 +783,7 @@
 				71F3A9DC1F5FA458001036C8 /* RANetworkTaskDelegate.m in Sources */,
 				71F3AA3D1F612369001036C8 /* CommonEditorCellModel.m in Sources */,
 				71F3AA681F624E19001036C8 /* JKTimerManager.m in Sources */,
+				71FF60291FA7236200C5523A /* EnumModel.m in Sources */,
 				71F3A9F31F5FA56E001036C8 /* ZipArchive.mm in Sources */,
 				71F3A9BD1F5F8EAE001036C8 /* FullyShowViewController.m in Sources */,
 				71F3A9B91F5F8E73001036C8 /* ResultViewController.m in Sources */,

BIN
RedAnt Mobile/RedAnt Mobile.xcodeproj/project.xcworkspace/xcuserdata/ray.xcuserdatad/UserInterfaceState.xcuserstate


+ 295 - 0
RedAnt Mobile/RedAnt Mobile.xcodeproj/xcuserdata/ray.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -0,0 +1,295 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Bucket
+   type = "1"
+   version = "2.0">
+   <Breakpoints>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "RedAnt Mobile/RANetwork.m"
+            timestampString = "531105554.538577"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "28"
+            endingLineNumber = "28"
+            landmarkName = "+require_server:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "RedAnt Mobile/LoginSettingViewController.m"
+            timestampString = "531105554.538686"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "51"
+            endingLineNumber = "51"
+            landmarkName = "-onConnectClick:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "RedAnt Mobile/LoginSettingViewController.m"
+            timestampString = "531105554.539455"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "52"
+            endingLineNumber = "52"
+            landmarkName = "-onConnectClick:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "RedAnt Mobile/LoginSettingViewController.m"
+            timestampString = "531105554.54009"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "75"
+            endingLineNumber = "75"
+            landmarkName = "-onConnectClick:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "RedAnt Mobile/RANetwork.m"
+            timestampString = "531105554.541345"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "29"
+            endingLineNumber = "29"
+            landmarkName = "+require_server:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "RedAnt Mobile/LoginSettingViewController.m"
+            timestampString = "531105554.541881"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "141"
+            endingLineNumber = "141"
+            landmarkName = "-didReceiveMemoryWarning"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "RedAnt Mobile/LoginSettingViewController.m"
+            timestampString = "531105554.54424"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "140"
+            endingLineNumber = "140"
+            landmarkName = "-didReceiveMemoryWarning"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "RedAnt Mobile/LoginViewController.m"
+            timestampString = "531105554.545177"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "86"
+            endingLineNumber = "86"
+            landmarkName = "-initUserData"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "RedAnt Mobile/LoginViewController.m"
+            timestampString = "531105554.545268"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "160"
+            endingLineNumber = "160"
+            landmarkName = "-tableView:cellForRowAtIndexPath:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "RedAnt Mobile/LoginSettingViewController.m"
+            timestampString = "531105554.545344"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "119"
+            endingLineNumber = "119"
+            landmarkName = "-onConnectClick:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "RedAnt Mobile/LoginSettingViewController.m"
+            timestampString = "531105554.546098"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "90"
+            endingLineNumber = "90"
+            landmarkName = "-onConnectClick:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "RedAnt Mobile/LoginSettingViewController.m"
+            timestampString = "531105554.547004"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "78"
+            endingLineNumber = "78"
+            landmarkName = "-onConnectClick:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "RedAnt Mobile/RANetwork.m"
+            timestampString = "531105554.548438"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "26"
+            endingLineNumber = "26"
+            landmarkName = "+require_server:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "RedAnt Mobile/LoginViewController.m"
+            timestampString = "531105554.548615"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "252"
+            endingLineNumber = "252"
+            landmarkName = "-settingBtnClick:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "RedAnt Mobile/LoginViewController.m"
+            timestampString = "531105554.548831"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "251"
+            endingLineNumber = "251"
+            landmarkName = "-settingBtnClick:"
+            landmarkType = "7">
+            <Locations>
+               <Location
+                  shouldBeEnabled = "No"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[LoginViewController settingBtnClick:]"
+                  moduleName = "RedAnt Mobile"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/ray/Documents/CODE_ERPSuiteIOS/RedAnt%20Mobile/RedAnt%20Mobile/LoginViewController.m"
+                  timestampString = "531105508.172285"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "251"
+                  endingLineNumber = "251"
+                  offsetFromSymbolStart = "155">
+               </Location>
+               <Location
+                  shouldBeEnabled = "No"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "__39-[LoginViewController settingBtnClick:]_block_invoke"
+                  moduleName = "RedAnt Mobile"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/ray/Documents/CODE_ERPSuiteIOS/RedAnt%20Mobile/RedAnt%20Mobile/LoginViewController.m"
+                  timestampString = "531105508.177227"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "252"
+                  endingLineNumber = "252"
+                  offsetFromSymbolStart = "44">
+               </Location>
+            </Locations>
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "RedAnt Mobile/LoginViewController.m"
+            timestampString = "531105554.548916"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "253"
+            endingLineNumber = "253"
+            landmarkName = "-settingBtnClick:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+   </Breakpoints>
+</Bucket>

+ 1 - 0
RedAnt Mobile/RedAnt Mobile/AppDelegate.h

@@ -16,6 +16,7 @@
 @property (strong,nonatomic) NSString * password;
 @property (strong,nonatomic) NSString* build;
 @property (strong,nonatomic) NSString* shortver;
+@property (strong,nonatomic) NSString* server;
 
 @property bool can_see_price;
 @property bool price_hidden;

+ 28 - 13
RedAnt Mobile/RedAnt Mobile/LoginSettingViewController.m

@@ -37,17 +37,17 @@
 
 - (IBAction)onConnectClick:(id)sender {
     
-    CommonEditorViewController *vc = [[CommonEditorViewController alloc] init];
-    vc.url_type = 3;
-    vc.request_url=URL_NEW_CUSTOMER;
-    
-    
-    vc.params = [NSMutableDictionary dictionary];
-    NSString *path = @"/Users/macmini1/Documents/contact_test.json";
-    NSData *data = [NSData dataWithContentsOfFile:path];
-    vc.content_data_download = [[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil] mutableCopy];
-    [self presentViewController:vc animated:YES completion:nil];
-    return;
+//    CommonEditorViewController *vc = [[CommonEditorViewController alloc] init];
+//    vc.url_type = 3;
+//    vc.request_url=URL_NEW_CUSTOMER;
+//    
+//    
+//    vc.params = [NSMutableDictionary dictionary];
+//    NSString *path = @"/Users/macmini1/Documents/contact_test.json";
+//    NSData *data = [NSData dataWithContentsOfFile:path];
+//    vc.content_data_download = [[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil] mutableCopy];
+//    [self presentViewController:vc animated:YES completion:nil];
+//    return;
     
     NSString *company = self.nameTextField.text;
     NSString *password = self.internalTextField.text;
@@ -73,7 +73,7 @@ if (password.length==0)
         dispatch_async(dispatch_get_main_queue(), ^{
             [alert dismissWithClickedButtonIndex:0 animated:YES];
             int result = [[result_json objectForKey:@"result"] intValue];
-            result=2;
+//            result=2;
             switch (result) {
                 case RESULT_FALSE:
                 {
@@ -92,7 +92,18 @@ if (password.length==0)
                     NSString* url = result_json[@"url"];
                     if(url.length==0)
                         url=@"";
-                        [addressDic setObject:url forKey:@"serverAddress"];
+                    
+                    NSString* logo = result_json[@"logo"];
+                    if(logo.length==0)
+                        logo=@"";
+                    NSString* servername = result_json[@"server_name"];
+                    if(servername.length==0)
+                        servername=@"";
+                    appDelegate.server = url;
+                    [addressDic setObject:url forKey:@"serverAddress"];
+                    [addressDic setObject:servername forKey:@"serverName"];
+                    
+                    [addressDic setObject:logo forKey:@"CompanyLogo"];
                     [addressDic setObject:password forKey:@"password"];
                     //            if (externalAddr.length) {
                     //                [addressDic setObject:externalAddr forKey:@"externalAddress"];
@@ -102,6 +113,10 @@ if (password.length==0)
                     
                     
                     [weakself setUserDefaultsValue:addressDic forKey:kScanAddress];
+                    if (self.returnValue) {
+                        self.returnValue(servername);
+                    }
+                        [self dismissViewControllerAnimated:false completion:nil];
                     break;
                 }
                 case RESULT_NET_ERROR:

+ 12 - 12
RedAnt Mobile/RedAnt Mobile/LoginViewController.m

@@ -23,7 +23,7 @@ static NSString *kLoginUserInfo = @"UserInfo";
 @property (strong, nonatomic) IBOutlet UILabel *versionLabel;
 @property (strong, nonatomic) IBOutlet UIButton *loginBtn;
 @property (strong, nonatomic) IBOutlet UIButton *settingBtn;
-@property (nonatomic,copy) NSString *address;
+@property (nonatomic,copy) NSString *ServerName;
 @property (nonatomic,copy) NSString *user;
 @property (nonatomic,copy) NSString *pwd;
 
@@ -66,9 +66,9 @@ static NSString *kLoginUserInfo = @"UserInfo";
 
 #pragma mark - Private
 
-- (void)setAddress:(NSString *)address {
-    _address = address;
-    if (!address.length) {
+- (void)setServerName:(NSString *)server {
+    _ServerName = server;
+    if (!server.length) {
         _autoShowSetting = YES;
     } else {
         _autoShowSetting = NO;
@@ -76,7 +76,7 @@ static NSString *kLoginUserInfo = @"UserInfo";
 }
 
 - (void)loadData {
-    NSString *path = [[NSBundle mainBundle] pathForResource:@"login.json" ofType:nil];
+    NSString *path = [[NSBundle mainBundle] pathForResource:@"loginUI.json" ofType:nil];
     NSData *data = [NSData dataWithContentsOfFile:path options:NSDataReadingMappedIfSafe error:nil];
     NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
     self.dataDic = dic;
@@ -92,10 +92,10 @@ static NSString *kLoginUserInfo = @"UserInfo";
 //        if (selectedIndex == 2) {
 //            self.address = [addressDic objectForKey:@"serverAddress"];
 //        }
-        self.address = [addressDic objectForKey:@"serverAddress"];
+        self.ServerName = [addressDic objectForKey:@"serverName"];
     }
     
-    if (!self.address.length){
+    if (!self.ServerName.length){
         _autoShowSetting = YES;
         return;
     }
@@ -118,7 +118,7 @@ static NSString *kLoginUserInfo = @"UserInfo";
             LoginTextFiledCell *cell = [self.loginTable cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]];
             NSString *placeOrder = cell.textBox.placeholder;
             if ([placeOrder isEqualToString:@"Address"]) {
-                self.address = cell.textBox.text;
+                self.ServerName = cell.textBox.text;
             } else if ([placeOrder isEqualToString:@"user name"]) {
                 self.user = cell.textBox.text;
             } else if ([placeOrder isEqualToString:@"password"]) {
@@ -162,8 +162,8 @@ static NSString *kLoginUserInfo = @"UserInfo";
         BOOL editable = [[itemDic objectForKey:@"edit"] boolValue];
         cell.textBox.enabled = editable;
         NSString *placeOrder = cell.textBox.placeholder;
-        if ([placeOrder isEqualToString:@"Address"]) {
-            cell.textBox.text = self.address;
+        if ([placeOrder isEqualToString:@"Server"]) {
+            cell.textBox.text = self.ServerName;
         } else if ([placeOrder isEqualToString:@"user name"]) {
             cell.textBox.text = self.user;
         } else if ([placeOrder isEqualToString:@"password"]) {
@@ -195,7 +195,7 @@ static NSString *kLoginUserInfo = @"UserInfo";
 
 - (IBAction)loginBtnClick:(UIButton *)sender {
     [self prepareUserData];
-    if (!self.address.length) {
+    if (!self.ServerName.length) {
         [RAUtils message_alert:@"Please choose an address in setting" title:@"Warning" controller:self];
         return;
     }
@@ -251,7 +251,7 @@ static NSString *kLoginUserInfo = @"UserInfo";
     loginSettingVC.returnValue = ^(NSString *address) {
         if (weakself) {
             __strong typeof(weakself) strongself = weakself;
-            strongself.address = address;
+            strongself.ServerName = address;
             [strongself.loginTable reloadData];
         }
     };

+ 222 - 0
RedAnt Mobile/RedAnt Mobile/RA Mobile.txt

@@ -0,0 +1,222 @@
+
+model_detail
+
+order_detail
+
+signout
+up: user,pwd;
+down: result;
+
+change_password
+up:user,pwd,new_pwd
+down: result;
+
+
+require_mode
+up:user,pwd,parent_mode
+down: result, mode_lsit
+
+
+
+
+require_query_ui 从服务器加载查询界面
+up:user,pwd,mode,
+down:query_editor(common editor),query_id;
+
+predef_query
+up:user,pwd, query_id;
+down:
+
+
+query 查询
+up: user,pwd, criteria, offset, limit,query_id
+criteria:[
+{"key":"name", "value":"abc"}
+]
+down:result, data, layout
+sample:
+{
+  "result": 2,
+  "data": {
+    "count": 4,
+    "item_0": [
+      "1",
+      "8533-UPK",
+      "$ 123.45",
+      "43",
+      "metal table with 4 chairs"
+    ],
+    "item_1": [
+      "2",
+      "315318",
+      "$ 99.49",
+      "13",
+      "WOOD table with 4 chairs"
+    ],
+    "item_2": [
+      "3",
+      "7033566",
+      "$ 13.45",
+      "57",
+      "bed"
+    ],
+    "item_3": [
+      "4",
+      "8533-UVR",
+      "$ 1123.45",
+      "143",
+      "Desk & chair UILongPressGestureRecognizer *longPress"
+    ]
+  },
+  "layout": {
+    "header": {
+      "width": 810,
+      "height": 44,
+      "margin_r": 10,
+      "margin_l": 10,
+      "margin_t": 10,
+      "margin_b": 10,
+      "bg_color": "0x123456",
+      "f_color": "0x987654",
+      "col": [
+        {
+          "width": 100,
+          "name": "id",
+          "h_align": "center",
+          "v_center": "center",
+          "bg_color": "0x123456",
+          "f_color": "0x654321"
+        },
+        {
+          "width": 160,
+          "name": "model",
+          "h_align": "center",
+          "v_center": "center",
+          "bg_color": "0x123456",
+          "f_color": "0x654321"
+        },
+        {
+          "width": 180,
+          "name": "price",
+          "h_align": "center",
+          "v_center": "center",
+          "bg_color": "0x123456",
+          "f_color": "0x654321"
+        },
+        {
+          "width": 120,
+          "name": "stock",
+          "h_align": "center",
+          "v_center": "center",
+          "bg_color": "0x123456",
+          "f_color": "0x654321"
+        },
+        {
+          "width": 250,
+          "name": "description",
+          "h_align": "center",
+          "v_center": "center",
+          "bg_color": "0x123456",
+          "f_color": "0x654321"
+        }
+      ]
+    },
+    "row": {
+      "height": 44,
+      "f_color": "0x654321",
+      "color_0": "0xffffff",
+      "color_1": "0x666666",
+      "val": [
+        {
+       	  "type":"image",		 	
+          "h_align": "center",
+          "v_center": "center",
+          "bg_color": "0x123456",
+          "f_color": "0x654321"
+        },
+        {
+        "type":"text",	
+          "h_align": "center",
+          "v_center": "center",
+          "bg_color": "0x123456",
+          "f_color": "0x654321"
+        },
+        {
+        "type":"text",
+          "h_align": "center",
+          "v_center": "center",
+          "bg_color": "0x123456",
+          "f_color": "0x654321"
+        },
+        {
+        "type":"text",
+          "h_align": "center",
+          "v_center": "center",
+          "bg_color": "0x123456",
+          "f_color": "0x654321"
+        },
+        {
+        r
+          "h_align": "center",
+          "v_center": "center",
+          "bg_color": "0x123456",
+          "f_color": "0x654321"
+        }
+      ]
+    }
+  }
+}
+
+
+
+login 登陆
+up:user,pwd
+down: result, mode_lsit
+mode_list  根据用户权限生成
+mode type: query; predef_query; local_func; submode; 
+sample:
+{
+"result":2,
+  "mode_list": [
+    {
+      "name": "mode0",
+      "type": "predef_query",
+      "query_id": 123456
+    },
+    {
+      "name": "mode1",
+      "type": "query",
+      "url": "http://..."
+    },
+    {
+      "name": "mode2",
+      "type": "local_func",
+      "module": "change_pwd"
+    },
+    {
+      "name": "mode3",
+      "type": "submode",
+      "mode_list": [
+        {
+          "name": "mode0",
+          "type": "predef_query",
+          "query_id": 123456
+        },
+        {
+          "name": "mode1",
+          "type": "query",
+          "url": "http://..."
+        },
+        {
+          "name": "mode2",
+          "type": "local_func",
+          "module": "change_pwd"
+        }
+      ]
+    }
+  ]
+}
+
+active 取得公司服务器url
+up: company_id, pwd;
+down: result,url;

+ 2 - 0
RedAnt Mobile/RedAnt Mobile/RANetwork.h

@@ -12,4 +12,6 @@
 +(NSDictionary*)require_server : (NSMutableDictionary*) params;
 +(NSDictionary*)request_Editor:(NSString*) request_url params:(NSMutableDictionary*)params;
 +(NSDictionary*)commoneditor_partialrefresh: (NSMutableDictionary*)params url:(NSString*)url;
++(NSDictionary*)Login : (NSString*) user password:(NSString*) password;
++(NSDictionary*)logout;
 @end

+ 50 - 0
RedAnt Mobile/RedAnt Mobile/RANetwork.m

@@ -12,9 +12,21 @@
 #import "RANetwork.h"
 #import "AppDelegate.h"
 @implementation RANetwork
+
++(NSString*) get_url:(NSString*) interface
+{
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    if(appDelegate.server==nil)
+        return nil;
+    return [appDelegate.server stringByAppendingPathComponent:interface];
+//    return [NSString stringWithFormat:@"%@%@",appDelegate.server,interface];
+}
 +(NSDictionary*)require_server : (NSMutableDictionary*) params
 {
+    NSString *Path = [[NSBundle mainBundle] pathForResource:@"server.json" ofType:nil];
     
+    NSData* data1 = [NSData dataWithContentsOfFile:Path];
+    return [[NSJSONSerialization JSONObjectWithData:data1 options:NSJSONReadingMutableContainers error:nil] mutableCopy];
     
     
     // params[@"_operate"]=@"valid_upload";
@@ -289,4 +301,42 @@
     else
         return nil;
 }
+
+
++ (NSDictionary *)Login:(NSString *)user password:(NSString *)password {
+    
+    NSString *Path = [[NSBundle mainBundle] pathForResource:@"login.json" ofType:nil];
+    
+    NSData* data1 = [NSData dataWithContentsOfFile:Path];
+    return [[NSJSONSerialization JSONObjectWithData:data1 options:NSJSONReadingMutableContainers error:nil] mutableCopy];
+    
+    
+    
+    
+    NSString* encryptu=[AESCrypt AES128Encrypt:user key:@"usai"];
+    NSString* encryptp=[AESCrypt AES128Encrypt:password key:@"usai"];
+    
+    NSMutableDictionary *params = @{@"user":encryptu,
+                                    @"password":encryptp,
+                                    @"_operate":@"handset_login"
+                                    }.mutableCopy;
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    
+    NSData *data = [self get_json:[self get_url:URL_LOGIN] parameters:params file:nil];
+    NSDictionary *resultDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
+    return resultDic;
+}
+
++ (NSDictionary *)logout {
+    //    NSMutableDictionary *params = @{@"_operate":@"handset_logout"
+    //                                    }.mutableCopy;
+    //    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    //    NSString *urlStr = appDelegate.address;
+    //
+    //    NSData *data = [self get_json:urlStr parameters:params file:nil];
+    //    NSDictionary *resultDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
+    //    return resultDic;
+    
+    return @{@"result" : @"2"};
+}
 @end

+ 2 - 0
RedAnt Mobile/RedAnt Mobile/config.h

@@ -34,6 +34,7 @@
 
 #ifdef test_server
 #define URL_CUSTOMER_ADV_SEARCH @""
+#define URL_LOGIN @""
 #define  URL_REQUIRE_SERVER  @""
 
 #define URL_UPLOAD_IMG @""
@@ -46,6 +47,7 @@
 #define  URL_CREDITCARD_EDOTOR @""
 
 #else
+#define URL_LOGIN @""
 #define  URL_CREDITCARD_EDOTOR @""
 #define URL_CUSTOMER_ADV_SEARCH @""
 #define  URL_ERR_LOG  @""

+ 39 - 27
RedAnt Mobile/RedAnt Mobile/login.json

@@ -1,29 +1,41 @@
 {
-  "count" : 4,
-  
-  "item_0" : {
-    "edit" : false,
-    "type" : "text",
-    "place_holder" : "Company",
-    "security" : false
-  },
-  "item_1" : {
-    "edit" : true,
-    "type" : "text",
-      "place_holder" : "user name",
-      "security" : false
-
-  },
-  "item_2" : {
-    "edit" : true,
-    "type" : "text",
-      "place_holder" : "password",
-      "security" : true
-
-  },
-  "item_3" : {
-    "type" : "switch",
-    "tip_msg" : "remember my login",
-    "status" : true
-  }
+    "result":2,
+    "mode_list": [
+                  {
+                  "name": "mode0",
+                  "type": "predef_query",
+                  "query_id": 123456
+                  },
+                  {
+                  "name": "mode1",
+                  "type": "query",
+                  "url": "http://..."
+                  },
+                  {
+                  "name": "mode2",
+                  "type": "local_func",
+                  "module": "change_pwd"
+                  },
+                  {
+                  "name": "mode3",
+                  "type": "submode",
+                  "mode_list": [
+                                {
+                                "name": "mode0",
+                                "type": "predef_query",
+                                "query_id": 123456
+                                },
+                                {
+                                "name": "mode1",
+                                "type": "query",
+                                "url": "http://..."
+                                },
+                                {
+                                "name": "mode2",
+                                "type": "local_func",
+                                "module": "change_pwd"
+                                }
+                                ]
+                  }
+                  ]
 }

+ 29 - 0
RedAnt Mobile/RedAnt Mobile/loginUI.json

@@ -0,0 +1,29 @@
+{
+    "count" : 4,
+    
+    "item_0" : {
+        "edit" : false,
+        "type" : "text",
+        "place_order" : "Server",
+        "security" : false
+    },
+    "item_1" : {
+        "edit" : true,
+        "type" : "text",
+        "place_order" : "user name",
+        "security" : false
+        
+    },
+    "item_2" : {
+        "edit" : true,
+        "type" : "text",
+        "place_order" : "password",
+        "security" : true
+        
+    },
+    "item_3" : {
+        "type" : "switch",
+        "tip_msg" : "remember my login",
+        "status" : true
+    }
+}

+ 6 - 0
RedAnt Mobile/RedAnt Mobile/server.json

@@ -0,0 +1,6 @@
+{
+    "result":2,
+    "server_name":"develop server",
+    "url":"http://10.0.0.1",
+    "logo":"http://10.0.0.1/logo.png"
+}