Handy_Cao 4 vuotta sitten
vanhempi
commit
c6c8731fba

+ 3 - 0
MTP_iOS/MTP2_iOS/BusinessCore/Notice/NoticeManager.swift

@@ -176,7 +176,9 @@ class NoticeManager: BaseManager {
     /// - Parameters:
     ///   - message: 留言信息
     ///   - callback: 回调块
+    ///   - contactNum: 联系电话
     func requestAddMessageBoard(_ message: String = "",
+                                _ contactNum: String = "",
                                 callback: @escaping (_ isCompleted: Bool,
                                                      _ error: ErrorInfo?) -> Void) {
         /// 地址信息配置错误
@@ -193,6 +195,7 @@ class NoticeManager: BaseManager {
         var params = [(key: String, value: Any)]()
         params.append((key: "userID", value: MTP2BusinessCore.shared.getUserID()))
         params.append((key: "message", value: message))
+        params.append((key: "contactNum", value: contactNum))
         
         /// Http 头部请求
         /// 登录后服务返回的token

+ 16 - 0
MTP_iOS/MTP2_iOS/BusinessCore/Notice/NoticeModels.swift

@@ -59,6 +59,8 @@ struct MoMessageBoard: HandyJSON {
     var messageboardid = 0
     /// 用户ID
     var userid: UInt64 = 0
+    /// 联系电话
+    var contactnum: String = ""
 }
 
 /// 轮播图数据Mo类
@@ -75,6 +77,20 @@ struct MoImageConfigs: HandyJSON {
     var title = ""
     /// 链接
     var url = ""
+    /// 所属机构ID
+    var areauserid = 0
+    /// 创建时间
+    var createdate = ""
+    /// 创建人
+    var creatorid: UInt64 = 0
+    /// 是否展示 - 0:不展示 1:展示
+    var isshow = 0
+    /// 操作人
+    var modifierid: UInt64 = 0
+    /// 修改时间
+    var updatedate = ""
+    /// 链接类型 - 1:直接地址 2:商品ID
+    var urltype = 0
 }
 
 /// 数据集合

+ 15 - 15
MTP_iOS/MTP2_iOS/Resource/Storyboard/Home/Home.storyboard

@@ -13,7 +13,7 @@
         <!--Base Navigation Controller-->
         <scene sceneID="TgR-Fw-VwH">
             <objects>
-                <navigationController storyboardIdentifier="Home" navigationBarHidden="YES" id="WE7-qu-AR4" customClass="BaseNavigationController" customModule="BPML" customModuleProvider="target" sceneMemberID="viewController">
+                <navigationController storyboardIdentifier="Home" navigationBarHidden="YES" id="WE7-qu-AR4" customClass="BaseNavigationController" customModule="LYB" customModuleProvider="target" sceneMemberID="viewController">
                     <nil key="simulatedTopBarMetrics"/>
                     <navigationBar key="navigationBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="OYc-ho-eEG">
                         <autoresizingMask key="autoresizingMask"/>
@@ -33,7 +33,7 @@
         <!--首页-->
         <scene sceneID="unj-4I-ADf">
             <objects>
-                <viewController storyboardIdentifier="HomeID" title="首页" interfaceStyle="light" id="9T1-s3-NT8" customClass="HomeViewController" customModule="BPML" customModuleProvider="target" sceneMemberID="viewController">
+                <viewController storyboardIdentifier="HomeID" title="首页" interfaceStyle="light" id="9T1-s3-NT8" customClass="HomeViewController" customModule="LYB" customModuleProvider="target" sceneMemberID="viewController">
                     <view key="view" contentMode="scaleToFill" id="Wqc-lq-i2v">
                         <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -145,20 +145,20 @@
                                                             <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="1Oa-hl-UOt">
                                                                 <rect key="frame" x="0.0" y="235" width="414" height="80"/>
                                                                 <subviews>
-                                                                    <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="nqU-2g-IZy">
+                                                                    <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="Wve-8p-kfe">
                                                                         <rect key="frame" x="0.0" y="0.0" width="83" height="80"/>
                                                                         <subviews>
-                                                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="RiS-Ge-ug5">
+                                                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Yal-Oz-CVd">
                                                                                 <rect key="frame" x="0.0" y="0.0" width="83" height="55"/>
-                                                                                <state key="normal" image="home_xkqg"/>
+                                                                                <state key="normal" image="home_hot"/>
                                                                                 <connections>
-                                                                                    <action selector="onButtonPressed:" destination="9T1-s3-NT8" eventType="touchUpInside" id="4fI-Gg-fbT"/>
+                                                                                    <action selector="onButtonPressed:" destination="9T1-s3-NT8" eventType="touchUpInside" id="hqY-4N-rlM"/>
                                                                                 </connections>
                                                                             </button>
-                                                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="新品抢购" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nDu-gN-RRN">
+                                                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="热卖商品" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JGB-8G-898">
                                                                                 <rect key="frame" x="0.0" y="55" width="83" height="25"/>
                                                                                 <constraints>
-                                                                                    <constraint firstAttribute="height" constant="25" id="waR-2r-bLt"/>
+                                                                                    <constraint firstAttribute="height" constant="25" id="5Rx-Pd-fds"/>
                                                                                 </constraints>
                                                                                 <fontDescription key="fontDescription" type="system" pointSize="12"/>
                                                                                 <color key="textColor" red="0.1019607843" green="0.10980392160000001" blue="0.1647058824" alpha="1" colorSpace="calibratedRGB"/>
@@ -166,20 +166,20 @@
                                                                             </label>
                                                                         </subviews>
                                                                     </stackView>
-                                                                    <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="Wve-8p-kfe">
+                                                                    <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="nqU-2g-IZy">
                                                                         <rect key="frame" x="83" y="0.0" width="82.5" height="80"/>
                                                                         <subviews>
-                                                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Yal-Oz-CVd">
+                                                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="RiS-Ge-ug5">
                                                                                 <rect key="frame" x="0.0" y="0.0" width="82.5" height="55"/>
-                                                                                <state key="normal" image="home_hot"/>
+                                                                                <state key="normal" image="home_xkqg"/>
                                                                                 <connections>
-                                                                                    <action selector="onButtonPressed:" destination="9T1-s3-NT8" eventType="touchUpInside" id="hqY-4N-rlM"/>
+                                                                                    <action selector="onButtonPressed:" destination="9T1-s3-NT8" eventType="touchUpInside" id="4fI-Gg-fbT"/>
                                                                                 </connections>
                                                                             </button>
-                                                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="热卖专区" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JGB-8G-898">
+                                                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="竞价商品" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nDu-gN-RRN">
                                                                                 <rect key="frame" x="0.0" y="55" width="82.5" height="25"/>
                                                                                 <constraints>
-                                                                                    <constraint firstAttribute="height" constant="25" id="5Rx-Pd-fds"/>
+                                                                                    <constraint firstAttribute="height" constant="25" id="waR-2r-bLt"/>
                                                                                 </constraints>
                                                                                 <fontDescription key="fontDescription" type="system" pointSize="12"/>
                                                                                 <color key="textColor" red="0.1019607843" green="0.10980392160000001" blue="0.1647058824" alpha="1" colorSpace="calibratedRGB"/>
@@ -312,7 +312,7 @@
                                                                             <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="Goods_Cell" id="ZkY-P0-3Ln" customClass="GoodsCell" customModule="BPML" customModuleProvider="target">
+                                                                            <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="Goods_Cell" id="ZkY-P0-3Ln" customClass="GoodsCell" customModule="LYB" customModuleProvider="target">
                                                                                 <rect key="frame" x="0.0" y="0.0" width="180" height="240"/>
                                                                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                                                 <collectionViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" id="4yx-iF-zM7">

+ 36 - 11
MTP_iOS/MTP2_iOS/Resource/Storyboard/Main/Main.storyboard

@@ -12,7 +12,7 @@
         <!--登录-->
         <scene sceneID="GAk-AM-2ff">
             <objects>
-                <viewController storyboardIdentifier="Login" title="登录" id="ZMi-PD-FFG" customClass="LoginViewController" customModule="BPML" customModuleProvider="target" sceneMemberID="viewController">
+                <viewController storyboardIdentifier="Login" title="登录" id="ZMi-PD-FFG" customClass="LoginViewController" customModule="LYB" customModuleProvider="target" sceneMemberID="viewController">
                     <view key="view" contentMode="scaleToFill" id="59b-pP-Edq">
                         <rect key="frame" x="0.0" y="0.0" width="428" height="926"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -29,10 +29,10 @@
                                 <rect key="frame" x="139" y="64" width="150" height="148"/>
                             </imageView>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SyR-az-t8K" userLabel="LoginView" customClass="AnimatableView" customModule="IBAnimatable">
-                                <rect key="frame" x="0.0" y="212" width="428" height="350"/>
+                                <rect key="frame" x="0.0" y="212" width="428" height="395"/>
                                 <subviews>
                                     <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_content" translatesAutoresizingMaskIntoConstraints="NO" id="8fo-aZ-gki">
-                                        <rect key="frame" x="0.0" y="0.0" width="428" height="350"/>
+                                        <rect key="frame" x="0.0" y="0.0" width="428" height="395"/>
                                     </imageView>
                                     <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="C6l-Yh-wsc" userLabel="TextField StackView">
                                         <rect key="frame" x="50" y="60" width="328" height="120"/>
@@ -127,13 +127,13 @@
                                         </constraints>
                                     </stackView>
                                     <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="button_blue" translatesAutoresizingMaskIntoConstraints="NO" id="GHT-3Z-yFe">
-                                        <rect key="frame" x="50" y="205" width="328" height="55"/>
+                                        <rect key="frame" x="50" y="205" width="328" height="54"/>
                                     </imageView>
                                     <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="U8p-oH-Qpo">
-                                        <rect key="frame" x="50" y="205" width="328" height="95"/>
+                                        <rect key="frame" x="50" y="205" width="328" height="145"/>
                                         <subviews>
                                             <button tag="100" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="h13-7b-6qK" customClass="AnimatableButton" customModule="IBAnimatable">
-                                                <rect key="frame" x="0.0" y="0.0" width="328" height="55"/>
+                                                <rect key="frame" x="0.0" y="0.0" width="328" height="54"/>
                                                 <state key="normal" title="登录">
                                                     <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                                     <preferredSymbolConfiguration key="preferredSymbolConfiguration" scale="small"/>
@@ -144,8 +144,32 @@
                                                     <action selector="viewPassed:" destination="ZMi-PD-FFG" eventType="touchUpInside" id="1UU-yX-LUB"/>
                                                 </connections>
                                             </button>
+                                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aeA-26-GGk">
+                                                <rect key="frame" x="0.0" y="74" width="328" height="31"/>
+                                                <subviews>
+                                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="记住密码" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7aR-Hs-a2O">
+                                                        <rect key="frame" x="0.0" y="-5" width="264" height="36"/>
+                                                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                        <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                                        <nil key="highlightedColor"/>
+                                                    </label>
+                                                    <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="trailing" contentVerticalAlignment="fill" translatesAutoresizingMaskIntoConstraints="NO" id="cgj-W5-7An">
+                                                        <rect key="frame" x="274" y="-5" width="51" height="31"/>
+                                                    </switch>
+                                                </subviews>
+                                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                <constraints>
+                                                    <constraint firstItem="7aR-Hs-a2O" firstAttribute="leading" secondItem="aeA-26-GGk" secondAttribute="leading" id="74O-2T-QIb"/>
+                                                    <constraint firstItem="cgj-W5-7An" firstAttribute="centerY" secondItem="aeA-26-GGk" secondAttribute="centerY" constant="-5" id="AVJ-tK-xsw"/>
+                                                    <constraint firstAttribute="height" constant="31" id="Hqg-OX-Kq6"/>
+                                                    <constraint firstItem="7aR-Hs-a2O" firstAttribute="top" secondItem="aeA-26-GGk" secondAttribute="top" constant="-5" id="IF6-bV-eSS"/>
+                                                    <constraint firstAttribute="trailing" secondItem="cgj-W5-7An" secondAttribute="trailing" constant="5" id="Tlh-kf-fm0"/>
+                                                    <constraint firstAttribute="bottom" secondItem="7aR-Hs-a2O" secondAttribute="bottom" id="WbM-yq-s8i"/>
+                                                    <constraint firstItem="cgj-W5-7An" firstAttribute="leading" secondItem="7aR-Hs-a2O" secondAttribute="trailing" constant="10" id="qAB-bf-qLS"/>
+                                                </constraints>
+                                            </view>
                                             <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kpw-6r-t75">
-                                                <rect key="frame" x="0.0" y="75" width="328" height="20"/>
+                                                <rect key="frame" x="0.0" y="125" width="328" height="20"/>
                                                 <subviews>
                                                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="M08-Yy-Y6j">
                                                         <rect key="frame" x="0.0" y="0.0" width="20" height="20"/>
@@ -187,7 +211,7 @@
                                             </stackView>
                                         </subviews>
                                         <constraints>
-                                            <constraint firstAttribute="height" constant="95" id="Kdu-gS-qX5"/>
+                                            <constraint firstAttribute="height" constant="145" id="Kdu-gS-qX5"/>
                                         </constraints>
                                     </stackView>
                                     <tableView hidden="YES" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" estimatedRowHeight="-1" sectionHeaderHeight="1" sectionFooterHeight="1" translatesAutoresizingMaskIntoConstraints="NO" id="7Vy-Ga-ixQ">
@@ -197,7 +221,7 @@
                                             <constraint firstAttribute="height" constant="160" id="6wQ-Jn-Bu5"/>
                                         </constraints>
                                         <prototypes>
-                                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="LoginUserCellID" rowHeight="44" id="5Oz-HP-d63" customClass="LoginUserCell" customModule="BPML" customModuleProvider="target">
+                                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="LoginUserCellID" rowHeight="44" id="5Oz-HP-d63" customClass="LoginUserCell" customModule="LYB" customModuleProvider="target">
                                                 <rect key="frame" x="0.0" y="28" width="328" height="44"/>
                                                 <autoresizingMask key="autoresizingMask"/>
                                                 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="5Oz-HP-d63" id="Zzl-s3-pbt">
@@ -268,7 +292,7 @@
                                     <constraint firstAttribute="trailing" secondItem="8fo-aZ-gki" secondAttribute="trailing" id="bGr-w5-6Ml"/>
                                     <constraint firstItem="h13-7b-6qK" firstAttribute="leading" secondItem="GHT-3Z-yFe" secondAttribute="leading" id="fAM-e8-lS8"/>
                                     <constraint firstItem="U8p-oH-Qpo" firstAttribute="leading" secondItem="C6l-Yh-wsc" secondAttribute="leading" id="in6-LP-Xy3"/>
-                                    <constraint firstAttribute="height" constant="350" id="j8s-hM-4Fi"/>
+                                    <constraint firstAttribute="height" constant="395" id="j8s-hM-4Fi"/>
                                     <constraint firstItem="C6l-Yh-wsc" firstAttribute="leading" secondItem="SyR-az-t8K" secondAttribute="leading" constant="50" id="jwE-PQ-Pw4"/>
                                     <constraint firstItem="7Vy-Ga-ixQ" firstAttribute="leading" secondItem="Kdj-99-rVC" secondAttribute="leading" id="og7-Kk-ywN"/>
                                     <constraint firstAttribute="bottom" secondItem="8fo-aZ-gki" secondAttribute="bottom" id="p8M-Z5-dc9"/>
@@ -371,6 +395,7 @@
                         <outlet property="loginButton" destination="h13-7b-6qK" id="RU8-j5-ar4"/>
                         <outlet property="passwordTextField" destination="tGU-B2-6yK" id="9ed-EE-0ui"/>
                         <outlet property="phoneLoginButton" destination="RuS-no-Ddz" id="85j-dr-Pmp"/>
+                        <outlet property="savePwd" destination="cgj-W5-7An" id="eMM-YG-KaE"/>
                         <outlet property="userPull" destination="6sP-av-NKA" id="lOX-Lf-1HA"/>
                         <outlet property="userTableView" destination="7Vy-Ga-ixQ" id="MQf-bR-srB"/>
                         <outlet property="usernameTextField" destination="Ppg-Rl-aJM" id="atG-46-GpY"/>
@@ -385,7 +410,7 @@
         <!--Main View Controller-->
         <scene sceneID="Kp0-xf-a8E">
             <objects>
-                <tabBarController restorationIdentifier="MainTabBarController" storyboardIdentifier="MainTabBarController" id="VCL-IF-Lrh" customClass="MainViewController" customModule="BPML" customModuleProvider="target" sceneMemberID="viewController">
+                <tabBarController restorationIdentifier="MainTabBarController" storyboardIdentifier="MainTabBarController" id="VCL-IF-Lrh" customClass="MainViewController" customModule="LYB" customModuleProvider="target" sceneMemberID="viewController">
                     <navigationItem key="navigationItem" id="xjp-WM-LIV"/>
                     <tabBar key="tabBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="euT-zq-h4k">
                         <rect key="frame" x="0.0" y="0.0" width="375" height="49"/>

+ 32 - 7
MTP_iOS/MTP2_iOS/Resource/Storyboard/Mine/Feedback.storyboard

@@ -12,7 +12,7 @@
         <!--Base Navigation Controller-->
         <scene sceneID="92e-mb-h9o">
             <objects>
-                <navigationController storyboardIdentifier="FeedbackNav" id="AKL-pV-QyG" customClass="BaseNavigationController" customModule="BPML" customModuleProvider="target" sceneMemberID="viewController">
+                <navigationController storyboardIdentifier="FeedbackNav" id="AKL-pV-QyG" customClass="BaseNavigationController" customModule="LYB" customModuleProvider="target" sceneMemberID="viewController">
                     <navigationBar key="navigationBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="GJV-sR-8zV">
                         <rect key="frame" x="0.0" y="44" width="414" height="44"/>
                         <autoresizingMask key="autoresizingMask"/>
@@ -32,13 +32,13 @@
         <!--我的留言-->
         <scene sceneID="oju-gr-6D4">
             <objects>
-                <viewController storyboardIdentifier="Feedback" id="PgK-ge-wea" customClass="FeedbackViewController" customModule="BPML" customModuleProvider="target" sceneMemberID="viewController">
+                <viewController storyboardIdentifier="Feedback" id="PgK-ge-wea" customClass="FeedbackViewController" customModule="LYB" customModuleProvider="target" sceneMemberID="viewController">
                     <view key="view" contentMode="scaleToFill" id="Roo-qZ-ZAZ">
                         <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                             <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="lDk-EY-L37">
-                                <rect key="frame" x="10" y="108" width="394" height="601.5"/>
+                                <rect key="frame" x="10" y="108" width="394" height="661.5"/>
                                 <subviews>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="我要留言" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iK6-PZ-JEk">
                                         <rect key="frame" x="0.0" y="0.0" width="394" height="17"/>
@@ -64,9 +64,33 @@
                                         <nil key="textColor"/>
                                         <nil key="highlightedColor"/>
                                     </label>
-                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="laQ-Dy-miH">
+                                    <stackView opaque="NO" contentMode="scaleToFill" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="IdM-1m-pKJ">
                                         <rect key="frame" x="0.0" y="241.5" width="394" height="50"/>
                                         <subviews>
+                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="联系电话" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="i1s-Ha-6UJ">
+                                                <rect key="frame" x="0.0" y="0.0" width="57.5" height="50"/>
+                                                <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                                <nil key="highlightedColor"/>
+                                            </label>
+                                            <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入联系电话" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="3g9-ud-Oie">
+                                                <rect key="frame" x="77.5" y="0.0" width="316.5" height="50"/>
+                                                <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                <textInputTraits key="textInputTraits" keyboardType="phonePad"/>
+                                                <connections>
+                                                    <outlet property="delegate" destination="PgK-ge-wea" id="kEL-uu-zgV"/>
+                                                </connections>
+                                            </textField>
+                                        </subviews>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="50" id="y5b-e5-CHj"/>
+                                        </constraints>
+                                    </stackView>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="laQ-Dy-miH">
+                                        <rect key="frame" x="0.0" y="301.5" width="394" height="50"/>
+                                        <subviews>
                                             <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="tDU-81-CpQ">
                                                 <rect key="frame" x="0.0" y="0.0" width="394" height="50"/>
                                                 <constraints>
@@ -89,7 +113,7 @@
                                         </constraints>
                                     </view>
                                     <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="bxM-OQ-UYh">
-                                        <rect key="frame" x="0.0" y="301.5" width="394" height="300"/>
+                                        <rect key="frame" x="0.0" y="361.5" width="394" height="300"/>
                                         <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                         <constraints>
                                             <constraint firstAttribute="height" constant="300" id="4T4-3C-yQ9"/>
@@ -109,7 +133,7 @@
                                             <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                                         </view>
                                         <prototypes>
-                                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="Feedback_Cell" id="kjh-lk-Y2x" customClass="FeedbackCell" customModule="BPML" customModuleProvider="target">
+                                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="Feedback_Cell" id="kjh-lk-Y2x" customClass="FeedbackCell" customModule="LYB" customModuleProvider="target">
                                                 <rect key="frame" x="0.0" y="72" width="394" height="17.5"/>
                                                 <autoresizingMask key="autoresizingMask"/>
                                                 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="kjh-lk-Y2x" id="kdF-7e-ZdW">
@@ -170,6 +194,7 @@
                     </view>
                     <navigationItem key="navigationItem" title="我的留言" id="2fY-fQ-bPk"/>
                     <connections>
+                        <outlet property="phoneField" destination="3g9-ud-Oie" id="tG1-xu-Ogy"/>
                         <outlet property="submit" destination="tDU-81-CpQ" id="2VR-zB-ngv"/>
                         <outlet property="tableView" destination="bxM-OQ-UYh" id="Kpt-aO-kdA"/>
                         <outlet property="textView" destination="OX0-Tb-BW5" id="6e3-t4-2Da"/>
@@ -183,7 +208,7 @@
         <!--留言详情-->
         <scene sceneID="GN0-3U-B60">
             <objects>
-                <viewController storyboardIdentifier="FeedbackDetail" id="1L9-eA-R7e" customClass="FeedbackDetailViewController" customModule="BPML" customModuleProvider="target" sceneMemberID="viewController">
+                <viewController storyboardIdentifier="FeedbackDetail" id="1L9-eA-R7e" customClass="FeedbackDetailViewController" customModule="LYB" customModuleProvider="target" sceneMemberID="viewController">
                     <view key="view" contentMode="scaleToFill" id="rAl-bb-5YH">
                         <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>

+ 17 - 15
MTP_iOS/MTP2_iOS/Resource/Storyboard/Order/Order.storyboard

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17156" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="WGl-BJ-Qs3">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="WGl-BJ-Qs3">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17125"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17703"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -12,7 +12,7 @@
         <!--Base Navigation Controller-->
         <scene sceneID="dqw-PC-Muy">
             <objects>
-                <navigationController storyboardIdentifier="OrderNav" id="WGl-BJ-Qs3" customClass="BaseNavigationController" customModule="BPML" customModuleProvider="target" sceneMemberID="viewController">
+                <navigationController storyboardIdentifier="OrderNav" id="WGl-BJ-Qs3" customClass="BaseNavigationController" customModule="LYB" customModuleProvider="target" sceneMemberID="viewController">
                     <navigationBar key="navigationBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="Ycf-xZ-5pn">
                         <rect key="frame" x="0.0" y="44" width="414" height="44"/>
                         <autoresizingMask key="autoresizingMask"/>
@@ -32,7 +32,7 @@
         <!--我的订单-->
         <scene sceneID="4FA-UE-rpG">
             <objects>
-                <viewController storyboardIdentifier="Order" hidesBottomBarWhenPushed="YES" id="jYQ-Da-8lX" customClass="OrderViewController" customModule="BPML" customModuleProvider="target" sceneMemberID="viewController">
+                <viewController storyboardIdentifier="Order" hidesBottomBarWhenPushed="YES" id="jYQ-Da-8lX" customClass="OrderViewController" customModule="LYB" customModuleProvider="target" sceneMemberID="viewController">
                     <view key="view" contentMode="scaleToFill" id="MOu-sL-h6U">
                         <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -48,7 +48,7 @@
                                 <rect key="frame" x="0.0" y="132" width="414" height="730"/>
                                 <color key="backgroundColor" red="0.96470588239999999" green="0.96470588239999999" blue="0.97254901959999995" alpha="1" colorSpace="calibratedRGB"/>
                                 <prototypes>
-                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="Order_Cell" rowHeight="210" id="Cdi-Ih-DJP" customClass="OrderCell" customModule="BPML" customModuleProvider="target">
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="Order_Cell" rowHeight="210" id="Cdi-Ih-DJP" customClass="OrderCell" customModule="LYB" customModuleProvider="target">
                                         <rect key="frame" x="0.0" y="28" width="414" height="210"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="Cdi-Ih-DJP" id="ELU-cU-gij">
@@ -141,16 +141,17 @@
                                                                                     <rect key="frame" x="0.0" y="69" width="280" height="25"/>
                                                                                     <subviews>
                                                                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="#365464" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="tUM-oM-bWn">
-                                                                                            <rect key="frame" x="0.0" y="0.0" width="140" height="25"/>
+                                                                                            <rect key="frame" x="0.0" y="0.0" width="80" height="25"/>
                                                                                             <constraints>
+                                                                                                <constraint firstAttribute="width" constant="80" id="C54-TX-sTt"/>
                                                                                                 <constraint firstAttribute="height" constant="25" id="r81-ob-Ihq"/>
                                                                                             </constraints>
                                                                                             <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                                                                             <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
                                                                                             <nil key="highlightedColor"/>
                                                                                         </label>
-                                                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="金额:¥--" textAlignment="right" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="uYr-bq-V9J">
-                                                                                            <rect key="frame" x="140" y="0.0" width="140" height="25"/>
+                                                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="金额:¥--" textAlignment="right" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumScaleFactor="0.69999999999999996" translatesAutoresizingMaskIntoConstraints="NO" id="uYr-bq-V9J">
+                                                                                            <rect key="frame" x="80" y="0.0" width="200" height="25"/>
                                                                                             <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                                                                             <color key="textColor" red="0.46274509803921571" green="0.76078431372549016" blue="0.8666666666666667" alpha="1" colorSpace="calibratedRGB"/>
                                                                                             <nil key="highlightedColor"/>
@@ -317,7 +318,7 @@
         <!--收银台-->
         <scene sceneID="dhK-Dt-Ykb">
             <objects>
-                <viewController storyboardIdentifier="Payment" title="收银台" id="nzp-mT-WuH" customClass="PaymentViewController" customModule="BPML" customModuleProvider="target" sceneMemberID="viewController">
+                <viewController storyboardIdentifier="Payment" title="收银台" id="nzp-mT-WuH" customClass="PaymentViewController" customModule="LYB" customModuleProvider="target" sceneMemberID="viewController">
                     <view key="view" contentMode="scaleToFill" id="ugb-ar-MdI">
                         <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -349,7 +350,7 @@
                                 <rect key="frame" x="0.0" y="268" width="414" height="514"/>
                                 <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                                 <prototypes>
-                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="Payment_Cell" rowHeight="60" id="4M5-IH-oH6" customClass="PaymentCell" customModule="BPML" customModuleProvider="target">
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="Payment_Cell" rowHeight="60" id="4M5-IH-oH6" customClass="PaymentCell" customModule="LYB" customModuleProvider="target">
                                         <rect key="frame" x="0.0" y="28" width="414" height="60"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="4M5-IH-oH6" id="M6E-Ob-HOt">
@@ -457,7 +458,7 @@
         <!--我的包裹-->
         <scene sceneID="boX-Bs-dwz">
             <objects>
-                <viewController storyboardIdentifier="Packet" title="我的包裹" id="Gog-7t-Nnl" customClass="PacketViewController" customModule="BPML" customModuleProvider="target" sceneMemberID="viewController">
+                <viewController storyboardIdentifier="Packet" title="我的包裹" id="Gog-7t-Nnl" customClass="PacketViewController" customModule="LYB" customModuleProvider="target" sceneMemberID="viewController">
                     <view key="view" contentMode="scaleToFill" id="R3j-Dr-tWF">
                         <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -473,7 +474,7 @@
                                 <rect key="frame" x="0.0" y="132" width="414" height="730"/>
                                 <color key="backgroundColor" red="0.96470588239999999" green="0.96470588239999999" blue="0.97254901959999995" alpha="1" colorSpace="calibratedRGB"/>
                                 <prototypes>
-                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="Packet_Cell" rowHeight="210" id="f6x-9g-Egh" customClass="PacketCell" customModule="BPML" customModuleProvider="target">
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="Packet_Cell" rowHeight="210" id="f6x-9g-Egh" customClass="PacketCell" customModule="LYB" customModuleProvider="target">
                                         <rect key="frame" x="0.0" y="28" width="414" height="210"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="f6x-9g-Egh" id="ex6-fi-0aV">
@@ -566,16 +567,17 @@
                                                                                     <rect key="frame" x="0.0" y="74" width="270" height="25"/>
                                                                                     <subviews>
                                                                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="EKF-rD-chy">
-                                                                                            <rect key="frame" x="0.0" y="0.0" width="135" height="25"/>
+                                                                                            <rect key="frame" x="0.0" y="0.0" width="80" height="25"/>
                                                                                             <constraints>
                                                                                                 <constraint firstAttribute="height" constant="25" id="EId-Rr-WIY"/>
+                                                                                                <constraint firstAttribute="width" constant="80" id="RVg-Hv-Vte"/>
                                                                                             </constraints>
                                                                                             <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                                                                             <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
                                                                                             <nil key="highlightedColor"/>
                                                                                         </label>
                                                                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="金额:¥--" textAlignment="right" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="OEr-Pz-d1t">
-                                                                                            <rect key="frame" x="135" y="0.0" width="135" height="25"/>
+                                                                                            <rect key="frame" x="80" y="0.0" width="190" height="25"/>
                                                                                             <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                                                                             <color key="textColor" red="0.46274509803921571" green="0.76078431372549016" blue="0.80392156862745101" alpha="1" colorSpace="calibratedRGB"/>
                                                                                             <nil key="highlightedColor"/>
@@ -734,7 +736,7 @@
         <!--包裹明细-->
         <scene sceneID="vrq-cV-boc">
             <objects>
-                <viewController storyboardIdentifier="PacketDetail" id="PdF-M9-ved" customClass="PacketDetailViewController" customModule="BPML" customModuleProvider="target" sceneMemberID="viewController">
+                <viewController storyboardIdentifier="PacketDetail" id="PdF-M9-ved" customClass="PacketDetailViewController" customModule="LYB" customModuleProvider="target" sceneMemberID="viewController">
                     <view key="view" contentMode="scaleToFill" id="3d0-K3-gFi">
                         <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>

+ 1 - 1
MTP_iOS/MTP2_iOS/Resource/Storyboard/ResetPwd/ResetPwd.storyboard

@@ -172,7 +172,7 @@
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="7" translatesAutoresizingMaskIntoConstraints="NO" id="EwY-rf-Qst">
                                 <rect key="frame" x="314" y="65" width="80" height="39"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="13"/>
-                                <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="3eK-NR-Nm5">

+ 18 - 8
MTP_iOS/MTP2_iOS/UserInterface/Home/HomeViewController.swift

@@ -80,7 +80,8 @@ class HomeViewController: BaseViewController {
         $0.scrollDirection = .vertical
         return $0
     } (UICollectionViewFlowLayout())
-    
+    /// 轮播图数据
+    var configs: [MoImageConfigs] = []
     /// 商品数据信息
     var goods: [MoGoodsInfo] = [] {
         didSet {
@@ -315,10 +316,9 @@ class HomeViewController: BaseViewController {
         
         /// 发送请求
         group.enter()
-        var configs: [MoImageConfigs] = []
         /// 查询轮播图
         noticeManager.requestQueryImageConfigs { (isComplete, error, imageConfigs) in
-            configs = imageConfigs ?? []
+            self.configs = imageConfigs?.filter({$0.isshow == 1}) ?? []
             group.leave()
         }
         
@@ -342,8 +342,8 @@ class HomeViewController: BaseViewController {
                 return obj1.hotindex>obj2.hotindex
             })
             /// 轮播图相关
-            if configs.count != 0 {
-                let paths = configs.map({ (model) -> String in
+            if self.configs.count != 0 {
+                let paths = self.configs.map({ (model) -> String in
                     let managerUrl = MTP2BusinessCore.shared.address?.openApiUrl ?? ""
                     let url = managerUrl+NSString(string: model.imagepath).replacingOccurrences(of: "./", with: "/")
                     return url
@@ -351,7 +351,7 @@ class HomeViewController: BaseViewController {
                 self.bannerView.imageURLStringsGroup = paths
             }
             /// 更新成功
-            if notices.count != 0 {
+            if notices.contains(where: {$0.readed == false}) {
                 self.showAlertController(title: "提示", message: "有新的未读消息公告,是否前去查看", cancelTitle: "取消", sureTitle: "去查看", cancelBlock: {}) {
                     /// 跳转到公告消息页面
                     (self.appDelegate.window?.rootViewController as? MainViewController)?.selectedIndex = 2
@@ -436,8 +436,18 @@ extension HomeViewController: UICollectionViewDelegate, UICollectionViewDataSour
 // MARK: - SDCycleScrollViewDelegate
 extension HomeViewController: SDCycleScrollViewDelegate {
     func cycleScrollView(_ cycleScrollView: SDCycleScrollView!, didScrollTo index: Int) {}
-    
-    func cycleScrollView(_ cycleScrollView: SDCycleScrollView!, didSelectItemAt index: Int) {}
+
+    func cycleScrollView(_ cycleScrollView: SDCycleScrollView!, didSelectItemAt index: Int) {
+        /// 广告跳转
+        if self.configs[index].urltype == 1, self.configs[index].url != ""  {
+            guard let url = URL(string: self.configs[index].url) else { return }
+            let safriViewController = SFSafariViewController(url: url)
+            safriViewController.delegate = self
+            self.present(safriViewController, animated: true, completion: {})
+        } else { /// 商品ID
+            
+        }
+    }
 }
 
 /// 商品数据Cell

+ 32 - 12
MTP_iOS/MTP2_iOS/UserInterface/Login/LoginViewController.swift

@@ -11,6 +11,7 @@ import NVActivityIndicatorView
 import WHToast
 import SwiftyAttributes
 import SafariServices
+import SwiftDate
 
 /// 登录视图容器管理类
 class LoginViewController: BaseTableViewController<LsLoginUserModel>, UITextFieldDelegate {
@@ -36,6 +37,8 @@ class LoginViewController: BaseTableViewController<LsLoginUserModel>, UITextFiel
             phoneLoginButton.isHidden = !((ConfigUtils.getValue(key: .SupportMobileLogin) as? Bool) ?? true)
         }
     }
+    /// 是否记住密码
+    @IBOutlet weak var savePwd: UISwitch!
     /// 账户信息下拉按钮
     @IBOutlet weak var userPull: UIButton!
     /// 用户信息
@@ -105,6 +108,18 @@ class LoginViewController: BaseTableViewController<LsLoginUserModel>, UITextFiel
         usernameTextField.attributedPlaceholder = "用户名/账号/手机号".withTextColor(Color_placeholder_text)
         passwordTextField.attributedPlaceholder = "请输入您的密码".withTextColor(Color_placeholder_text)
         
+        /// 获取是否记录密码
+        self.savePwd.isOn = UserDefaultsUtils.isSavePwd()
+        
+        /// 记住了密码 并且密码不为空 并且6小时有效
+        if self.savePwd.isOn,
+           let pwd = UserDefaultsUtils.savePwd(),
+           let date = UserDefaultsUtils.savePwdTime(),
+           ((Date()-date).hour ?? 0)<=6 {
+            /// 填入密码
+            passwordTextField.text = pwd
+        }
+        
         /// 设置cell标识
         cellReuseIdentifier = "LoginUserCellID"
         /// tableView 设置
@@ -173,7 +188,6 @@ class LoginViewController: BaseTableViewController<LsLoginUserModel>, UITextFiel
             tableCellModels.removeAll()
             userPull.isHidden = true
         }
-        passwordTextField.text = ""
     }
     
     /// 显示所有的账户信息
@@ -221,14 +235,15 @@ class LoginViewController: BaseTableViewController<LsLoginUserModel>, UITextFiel
         
         /// 异常
         guard checkValue(),
-              let accountManager = MTP2BusinessCore.shared.accountManager else { return }
-        /// account
-        let account = self.usernameTextField.text
-        /// password
-        let password = self.passwordTextField.text
-        
+              let accountManager = MTP2BusinessCore.shared.accountManager,
+              let account = self.usernameTextField.text,
+              let password = self.passwordTextField.text else { return }
+
+        /// startAnimating
         self._anim?.startAnimating()
+        /// isUserInteractionEnabled
         self.view.isUserInteractionEnabled = false
+        /// isEnabled
         self.loginButton.isEnabled = false
         
         let faidBlock = { (error: ErrorInfo?) in
@@ -253,13 +268,13 @@ class LoginViewController: BaseTableViewController<LsLoginUserModel>, UITextFiel
               let intPort = UInt16(trade_port) else { return }
         
         /// 获取登录ID
-        accountManager.getUserLoginID(account ?? "") { (isSuccess, err, loginId) in
+        accountManager.getUserLoginID(account) { (isSuccess, err, loginId) in
             if !isSuccess {
                 faidBlock(err)
                 return
             }
             DispatchQueue.main.async {
-                accountManager.login(address: trade_address, port: intPort, userName: loginId!, password: password!, deviceID: NSUUID().uuidString, version: app_Version) { isCompleted, error in
+                accountManager.login(address: trade_address, port: intPort, userName: loginId!, password: password, deviceID: NSUUID().uuidString, version: app_Version) { isCompleted, error in
                     if isCompleted {
                         /// 用户与商品信息统一查询
                         accountManager.queryAccountAndGoods(callback: { (isCompleted, error) in
@@ -271,9 +286,15 @@ class LoginViewController: BaseTableViewController<LsLoginUserModel>, UITextFiel
                                     }
                                     DispatchQueue.global().asyncAfter(deadline: DispatchTime.now()+0.5, execute: {
                                         /// 记录本地用户信息
-                                        try? DatabaseHelper.addUser(userID: MTP2BusinessCore.shared.getUserID(), loginID: account ?? "", loginDate: Date(), type: Int16(0))
+                                        try? DatabaseHelper.addUser(userID: MTP2BusinessCore.shared.getUserID(), loginID: account, loginDate: Date(), type: Int16(0))
                                     })
-
+                                    /// 记录是否记住密码
+                                    UserDefaultsUtils.setIsSavePwd(self.savePwd.isOn)
+                                    if self.savePwd.isOn {
+                                        /// 记住密码和时间
+                                        UserDefaultsUtils.setSavePwd(password)
+                                        UserDefaultsUtils.setSavePwdTime(Date())
+                                    }
                                     self._anim?.stopAnimating()
                                     self.view.isUserInteractionEnabled = true
                                     self.loginButton.isEnabled = true
@@ -360,7 +381,6 @@ class LoginViewController: BaseTableViewController<LsLoginUserModel>, UITextFiel
     }
     
     func textFieldDidBeginEditing(_ textField: UITextField) {
-        
         if Is_Iphone_678 {
             if textField == usernameTextField {
                 UIView.animate(withDuration: 0.3) { self.view.top = -100.0 }

+ 6 - 6
MTP_iOS/MTP2_iOS/UserInterface/Message/MessageViewController.swift

@@ -21,9 +21,9 @@ class MessageViewController: BaseViewController {
     /// 公告
     @IBOutlet weak var notice: UIButton!
     /// 消息数量
-    @IBOutlet weak var msgCount: UILabel!
+    @IBOutlet weak var msgCount: AnimatableLabel!
     /// 公告数量
-    @IBOutlet weak var noticeCount: UILabel!
+    @IBOutlet weak var noticeCount: AnimatableLabel!
     /// 分割线
     @IBOutlet weak var line: UIImageView!
     /// 属性列表
@@ -66,8 +66,8 @@ class MessageViewController: BaseViewController {
     
     override func viewWillAppear(_ animated: Bool) {
         super.viewWillAppear(animated)
-        /// 查询已读未读数量
-        self.requestMsgCount()
+        /// 查询数据
+        self.tableView.triggerRefreshing()
     }
     
     // MARK: - 初始化
@@ -85,9 +85,9 @@ class MessageViewController: BaseViewController {
     /// 数据初始化
     fileprivate func initData() {
         /// 查询公告消息
-        self.requestNotices(msgType)
-        /// 查询公告消息
         self.requestMsgCount()
+        /// 查询公告消息
+        self.requestNotices(msgType)
     }
     
     // MARK: - 交互相关

+ 2 - 2
MTP_iOS/MTP2_iOS/UserInterface/Mine/Settings/Feedback/FeedbackDetailViewController.swift

@@ -18,7 +18,7 @@ class FeedbackDetailViewController: BaseViewController {
     @IBOutlet weak var textView: UITextView!
     
     /// 数据信息
-    var model: (message: String, time: String)? {
+    var model: (message: String, time: String, contractnum: String)? {
         didSet {
             guard let obj = model else {
                 return
@@ -27,7 +27,7 @@ class FeedbackDetailViewController: BaseViewController {
                 /// 留言日期
                 self.date.text = obj.time
                 /// 留言详情
-                self.textView.text = obj.message
+                self.textView.text = obj.message+"\n联系电话:\(obj.contractnum)"
             }
         }
     }

+ 17 - 2
MTP_iOS/MTP2_iOS/UserInterface/Mine/Settings/Feedback/FeedbackViewController.swift

@@ -24,6 +24,8 @@ class FeedbackViewController: BaseViewController {
     @IBOutlet weak var tableView: UITableView!
     /// 留言列表
     @IBOutlet weak var tips: UILabel!
+    /// 联系电话
+    @IBOutlet weak var phoneField: UITextField!
     
     /// CellIdentifier
     let CellIdentifier = "Feedback_Cell"
@@ -114,6 +116,7 @@ class FeedbackViewController: BaseViewController {
     fileprivate func requestAddMessageBoard(_ messageBoard: String) {
         /// 数据异常
         guard let noticeManager = MTP2BusinessCore.shared.noticeManager,
+              let phoneNum = phoneField.text,
               check() else {
             return
         }
@@ -121,7 +124,7 @@ class FeedbackViewController: BaseViewController {
         self.textView.resignFirstResponder()
         /// startAnimating
         self._anim?.startAnimating()
-        noticeManager.requestAddMessageBoard(messageBoard) { (isComplete, error) in
+        noticeManager.requestAddMessageBoard(messageBoard, phoneNum) { (isComplete, error) in
             DispatchQueue.main.async {
                 /// stopAnimating
                 self._anim?.stopAnimating()
@@ -145,6 +148,18 @@ class FeedbackViewController: BaseViewController {
             WHToast.showError(withMessage: "请输入您要留言的内容!", duration: 1.5, finishHandler: {})
             return false
         }
+        
+        /// 请输入您的联系电话!
+        guard let mobile = phoneField.text, mobile != "" else {
+            WHToast.showError(withMessage: "请输入您的联系电话!", duration: 1.5, finishHandler: {})
+            return false
+        }
+        
+        guard RegularUtils.checkPhoneNumber(with: mobile) else {
+            WHToast.showError(withMessage: "请输入正确的电话号码!", duration: 1.5, finishHandler: {})
+            return false
+        }
+        
         return true
     }
 
@@ -158,7 +173,7 @@ class FeedbackViewController: BaseViewController {
         if segue.identifier == "ShowFeedback" {
             let cell = sender as? FeedbackCell
             /// 详情信息
-            (segue.destination as? FeedbackDetailViewController)?.model = (message: cell?.titleLabel?.text ?? "", time: cell?.dateLabel?.text ?? "")
+            (segue.destination as? FeedbackDetailViewController)?.model = (message: cell?.titleLabel?.text ?? "", time: cell?.dateLabel?.text ?? "", cell?.model?.contactnum ?? "")
         }
     }
     

+ 17 - 17
MTP_iOS/MTP2_iOS/UserInterface/Quote/QuoteViewController.swift

@@ -48,11 +48,11 @@ class QuoteViewController: BaseViewController {
         return $0
     } (UIStoryboard(name: "Quote", bundle: nil).instantiateViewController(withIdentifier: "HotQuote") as! HotQuoteViewController)
     
-    /// 新品上市视图
-    lazy var newQuoteController: NewQuoteViewController = {
-        $0.view.frame = contentStackView.bounds
-        return $0
-    } (UIStoryboard(name: "Quote", bundle: nil).instantiateViewController(withIdentifier: "NewQuote") as! NewQuoteViewController)
+//    /// 新品上市视图
+//    lazy var newQuoteController: NewQuoteViewController = {
+//        $0.view.frame = contentStackView.bounds
+//        return $0
+//    } (UIStoryboard(name: "Quote", bundle: nil).instantiateViewController(withIdentifier: "NewQuote") as! NewQuoteViewController)
     
     /// 特卖商城
     lazy var specialSaleController: SpecialSaleViewController = {
@@ -82,7 +82,7 @@ class QuoteViewController: BaseViewController {
     override func viewWillAppear(_ animated: Bool) {
         super.viewWillAppear(animated)
         /// 刷新数据
-        dataSource.titles = ["热卖商品", "新品抢购", "竞价商品"]
+        dataSource.titles = ["热卖商品", "竞价商品"]
         segmentedView.reloadData()
         /// 隐藏导航栏
         self.navigationController?.setNavigationBarHidden(true, animated: true)
@@ -114,20 +114,20 @@ class QuoteViewController: BaseViewController {
         case 0: /// 热卖商品
             /// 移出新品上市视图
             removeChildren(hotQuoteController)
-            /// 移出新品上市视图
-            removeChildren(newQuoteController)
+//            /// 移出新品上市视图
+//            removeChildren(newQuoteController)
             /// 添加特卖商城视图
             addChildren(specialSaleController)
-        case 1:
-            /// 移出新品上市视图
-            removeChildren(hotQuoteController)
-            /// 移出新品上市视图
-            removeChildren(specialSaleController)
-            /// 添加特卖商城视图
-            addChildren(newQuoteController)
+//        case 1:
+//            /// 移出新品上市视图
+//            removeChildren(hotQuoteController)
+//            /// 移出新品上市视图
+//            removeChildren(specialSaleController)
+//            /// 添加特卖商城视图
+//            addChildren(newQuoteController)
         default: /// 竞价商品
-            /// 移出新品上市视图
-            removeChildren(newQuoteController)
+//            /// 移出新品上市视图
+//            removeChildren(newQuoteController)
             /// 移出新品上市视图
             removeChildren(specialSaleController)
             /// 添加特卖商城视图

+ 2 - 0
MTP_iOS/MTP2_iOS/UserInterface/Trade/MyUnusedViewController.swift

@@ -318,6 +318,8 @@ class MyUnusedViewController: BaseViewController {
             self.orderQty.maxIntNum = obj.enableqty
             /// 不允许操作
             self.orderPrice.isUserInteractionEnabled = false
+            /// 允许操作
+            self.orderQty.isUserInteractionEnabled = true
             /// 最小数量
             self.orderQty.minIntNum = obj.lotsize
             /// 当前数量

+ 7 - 0
MTP_iOS/MTP2_iOS/UserInterface/Trade/PaymentOrderViewController.swift

@@ -426,6 +426,13 @@ class PaymentOrderViewController: BaseViewController {
     /// 合规性校验
     /// - Returns: 是否合规
     fileprivate func check() -> Bool {
+        
+        /// 请先选择收获地址
+        guard let _ = userAddress else {
+            WHToast.showError(withMessage: "请先选择收获地址!", duration: 1.5, finishHandler: {})
+            return false
+        }
+        
         /// 请输入委托数量
         if qtyField.currentIntNumbers == 0 {
             WHToast.showError(withMessage: "请输入购买数量", duration: 1.5, finishHandler: {})

+ 1 - 5
MTP_iOS/MTP2_iOS/UserInterface/Trade/TradeViewController.swift

@@ -554,14 +554,10 @@ extension TradeCell: IBNumberEditTextDelegate {
     func IBNumberEditText(textField: UITextField) {}
     
     func numberInputView(_ numberInputView: IBNumberEditText, _ buttonType: NumberInputViewButtonType) {
-        /// 如果大于最大数量 默认设置最大数量
-        if numberInputView.currentIntNumbers > numberInputView.maxIntNum {
-            isCheck = true
-        }
+        isCheck = true
     }
     
     func numberInputViewDidEndEditing(_ numberInputView: IBNumberEditText) {
-        /// 如果大于最大数量 默认设置最大数量
         isCheck = true
     }
 }

+ 54 - 0
MTP_iOS/MTP2_iOS/UserInterface/Utils/UserDefaultsUtils.swift

@@ -14,6 +14,12 @@ enum UserDefaultsType: String {
     case noticeRead
     case reSearchGoods
     case addressInfo
+    /// 是否记住密码
+    case isSavePwd
+    /// 保存密码
+    case password
+    /// 保存密码时间戳
+    case passwordTime
 }
 
 /// UserDefault相关工具类
@@ -32,6 +38,54 @@ class UserDefaultsUtils {
         UserDefaults.standard.set(true, forKey: UserDefaultsType.isOpened.rawValue)
     }
     
+    /// 获取是否记住密码
+    /// - Returns: Bool
+    static func isSavePwd() -> Bool {
+        if let isSavePwd = UserDefaults.standard.value(forKey: UserDefaultsType.isSavePwd.rawValue) as? Bool {
+            return isSavePwd
+        } else {
+            return false
+        }
+    }
+    
+    /// 设置是否记住密码
+    /// - Parameter save: save
+    static func setIsSavePwd(_ save: Bool) {
+        UserDefaults.standard.set(true, forKey: UserDefaultsType.isSavePwd.rawValue)
+    }
+    
+    /// 获取记录的密码
+    /// - Returns: Bool
+    static func savePwd() -> String? {
+        if let pwd = UserDefaults.standard.value(forKey: UserDefaultsType.password.rawValue) as? String {
+            return pwd
+        } else {
+            return nil
+        }
+    }
+    
+    /// 设置记住密码
+    /// - Parameter save: save
+    static func setSavePwd(_ pwd: String) {
+        UserDefaults.standard.set(pwd, forKey: UserDefaultsType.password.rawValue)
+    }
+    
+    /// 获取记录的密码时间戳
+    /// - Returns: Bool
+    static func savePwdTime() -> Date? {
+        if let pwd = UserDefaults.standard.value(forKey: UserDefaultsType.passwordTime.rawValue) as? Date {
+            return pwd
+        } else {
+            return nil
+        }
+    }
+    
+    /// 设置记住密码时间戳
+    /// - Parameter save: save
+    static func setSavePwdTime(_ time: Date) {
+        UserDefaults.standard.set(time, forKey: UserDefaultsType.passwordTime.rawValue)
+    }
+    
     /// 获取地址信息
     /// - Returns: Bool
     static func addressInfo() -> MoAddress? {