Browse Source

投诉权限配置 - up

openlockPPP 1 year ago
parent
commit
683dc51dee
21 changed files with 658 additions and 39 deletions
  1. 24 0
      jiaPei.xcodeproj/project.pbxproj
  2. BIN
      jiaPei.xcworkspace/xcuserdata/mimasigeling.xcuserdatad/UserInterfaceState.xcuserstate
  3. 23 0
      jiaPei/Images.xcassets/Modules/ComplaintModule/comp_add_button.imageset/Contents.json
  4. BIN
      jiaPei/Images.xcassets/Modules/ComplaintModule/comp_add_button.imageset/新增投诉.png
  5. BIN
      jiaPei/Images.xcassets/Modules/ComplaintModule/comp_add_button.imageset/新增投诉@2x.png
  6. BIN
      jiaPei/Images.xcassets/Modules/ComplaintModule/comp_add_button.imageset/新增投诉@3x.png
  7. 3 1
      jiaPei/Modules/ComplaintModule/Controller/NYComplaintListViewController.h
  8. 131 8
      jiaPei/Modules/ComplaintModule/Controller/NYComplaintListViewController.m
  9. 47 5
      jiaPei/Modules/ComplaintModule/Controller/NYComplaintListViewController.xib
  10. 6 1
      jiaPei/Modules/ComplaintModule/Controller/NYComplaintPageViewController.m
  11. 41 12
      jiaPei/Modules/ComplaintModule/Controller/NYComplaintPageViewController.xib
  12. 35 0
      jiaPei/Modules/ComplaintModule/Model/ComplaintDataModel.h
  13. 21 0
      jiaPei/Modules/ComplaintModule/Model/ComplaintDataModel.m
  14. 29 0
      jiaPei/Modules/ComplaintModule/View/NYComplaintListViewCell.h
  15. 131 0
      jiaPei/Modules/ComplaintModule/View/NYComplaintListViewCell.m
  16. 135 0
      jiaPei/Modules/ComplaintModule/View/NYComplaintListViewCell.xib
  17. 1 0
      jiaPei/Modules/ComplaintModule/ViewModel/NYComplaintPageViewModel.m
  18. 3 3
      jiaPei/Modules/ComplaintModule/ViewModel/NYFloatingSuggestViewModel.m
  19. 17 8
      jiaPei/Modules/HomePageModule/ViewController/HomePage/RQHomePageViewController.m
  20. 2 1
      jiaPei/OLD/Util/RQShareFunction.h
  21. 9 0
      jiaPei/OLD/Util/RQShareFunction.m

+ 24 - 0
jiaPei.xcodeproj/project.pbxproj

@@ -95,6 +95,9 @@
 		90798B012A517B2500E68461 /* NYSerialQueueManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 90798B002A517B2500E68461 /* NYSerialQueueManager.m */; };
 		90798B052A51BC3300E68461 /* NYComplaintListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 90798B032A51BC3300E68461 /* NYComplaintListViewController.m */; };
 		90798B062A51BC3300E68461 /* NYComplaintListViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 90798B042A51BC3300E68461 /* NYComplaintListViewController.xib */; };
+		90798B0A2A52722300E68461 /* NYComplaintListViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 90798B082A52722300E68461 /* NYComplaintListViewCell.m */; };
+		90798B0B2A52722300E68461 /* NYComplaintListViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 90798B092A52722300E68461 /* NYComplaintListViewCell.xib */; };
+		90798B0F2A52AE2600E68461 /* ComplaintDataModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 90798B0E2A52AE2600E68461 /* ComplaintDataModel.m */; };
 		90BA2E822A3177B50029A54A /* NYTheoryTimeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 90BA2E802A3177B50029A54A /* NYTheoryTimeVC.m */; };
 		90BA2E872A3177DE0029A54A /* NYGetjobTimeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 90BA2E852A3177DE0029A54A /* NYGetjobTimeVC.m */; };
 		90BA2E8B2A317BEB0029A54A /* NYBasetjTimeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 90BA2E8A2A317BEB0029A54A /* NYBasetjTimeVC.m */; };
@@ -1808,6 +1811,11 @@
 		90798B022A51BC3300E68461 /* NYComplaintListViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYComplaintListViewController.h; sourceTree = "<group>"; };
 		90798B032A51BC3300E68461 /* NYComplaintListViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYComplaintListViewController.m; sourceTree = "<group>"; };
 		90798B042A51BC3300E68461 /* NYComplaintListViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NYComplaintListViewController.xib; sourceTree = "<group>"; };
+		90798B072A52722300E68461 /* NYComplaintListViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYComplaintListViewCell.h; sourceTree = "<group>"; };
+		90798B082A52722300E68461 /* NYComplaintListViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYComplaintListViewCell.m; sourceTree = "<group>"; };
+		90798B092A52722300E68461 /* NYComplaintListViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NYComplaintListViewCell.xib; sourceTree = "<group>"; };
+		90798B0D2A52AE2600E68461 /* ComplaintDataModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ComplaintDataModel.h; sourceTree = "<group>"; };
+		90798B0E2A52AE2600E68461 /* ComplaintDataModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ComplaintDataModel.m; sourceTree = "<group>"; };
 		90BA2E7F2A3177B50029A54A /* NYTheoryTimeVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYTheoryTimeVC.h; sourceTree = "<group>"; };
 		90BA2E802A3177B50029A54A /* NYTheoryTimeVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYTheoryTimeVC.m; sourceTree = "<group>"; };
 		90BA2E842A3177DE0029A54A /* NYGetjobTimeVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYGetjobTimeVC.h; sourceTree = "<group>"; };
@@ -4496,6 +4504,7 @@
 		90044C3C2A4EAEA9003FBBF8 /* ComplaintModule */ = {
 			isa = PBXGroup;
 			children = (
+				90798B0C2A529F3A00E68461 /* Model */,
 				90044C3F2A4EAEE8003FBBF8 /* View */,
 				90044C3E2A4EAEDA003FBBF8 /* Controller */,
 				90044C3D2A4EAEC6003FBBF8 /* ViewModel */,
@@ -4535,6 +4544,9 @@
 				90044C342A4E7BF6003FBBF8 /* NYFloatingSuggestView.h */,
 				90044C352A4E7BF6003FBBF8 /* NYFloatingSuggestView.m */,
 				90044C372A4E7CA0003FBBF8 /* NYFloatingSuggestView.xib */,
+				90798B072A52722300E68461 /* NYComplaintListViewCell.h */,
+				90798B082A52722300E68461 /* NYComplaintListViewCell.m */,
+				90798B092A52722300E68461 /* NYComplaintListViewCell.xib */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -4555,6 +4567,15 @@
 			path = RQAPPEventModuleComponent;
 			sourceTree = "<group>";
 		};
+		90798B0C2A529F3A00E68461 /* Model */ = {
+			isa = PBXGroup;
+			children = (
+				90798B0D2A52AE2600E68461 /* ComplaintDataModel.h */,
+				90798B0E2A52AE2600E68461 /* ComplaintDataModel.m */,
+			);
+			path = Model;
+			sourceTree = "<group>";
+		};
 		90BA2E7B2A3175F80029A54A /* NewTheory */ = {
 			isa = PBXGroup;
 			children = (
@@ -9817,6 +9838,7 @@
 				D0295C7B243F0B8B00B46AB1 /* 6-16-1.jpg in Resources */,
 				D0295BEB243F0B8B00B46AB1 /* 1-4-34.jpg in Resources */,
 				D0295D5C243F0B8C00B46AB1 /* animate03.png in Resources */,
+				90798B0B2A52722300E68461 /* NYComplaintListViewCell.xib in Resources */,
 				D0295C3D243F0B8B00B46AB1 /* 1-8-19.jpg in Resources */,
 				D00A15032754A41C00793046 /* RQVideoDetailSubPageCell.xib in Resources */,
 				D0481DAD289928CD00F90D55 /* RQExamHistoryCell.xib in Resources */,
@@ -10687,6 +10709,7 @@
 				D0870D622701A6B9004EC94E /* NSSet+BlocksKit.m in Sources */,
 				D0481D992899046F00F90D55 /* RQExerciseSituationCell.m in Sources */,
 				D0481DB02899426F00F90D55 /* RQSimulateExamViewController.m in Sources */,
+				90798B0A2A52722300E68461 /* NYComplaintListViewCell.m in Sources */,
 				D0870DA02701A6BA004EC94E /* YYTimer.m in Sources */,
 				D09E5D5A25E3AA260099E87C /* BDFaceDevice.m in Sources */,
 				D04DF6B427006C56006E3633 /* RQCollectionViewModel.m in Sources */,
@@ -10922,6 +10945,7 @@
 				D0870D8D2701A6BA004EC94E /* UIFont+YYAdd.m in Sources */,
 				D0D1F674283F84DF0086C6AE /* RQExerciseViewModel.m in Sources */,
 				D0DF83D927CF551C00547504 /* RQTypeModel.m in Sources */,
+				90798B0F2A52AE2600E68461 /* ComplaintDataModel.m in Sources */,
 				D0324DA6282372B6004A7DF5 /* RQProfileLogouItemViewModel.m in Sources */,
 				D00A14FF2754A41C00793046 /* RQVideoCatalogueViewController.m in Sources */,
 				D074575529272C680050BE10 /* QMDateManager.m in Sources */,

BIN
jiaPei.xcworkspace/xcuserdata/mimasigeling.xcuserdatad/UserInterfaceState.xcuserstate


+ 23 - 0
jiaPei/Images.xcassets/Modules/ComplaintModule/comp_add_button.imageset/Contents.json

@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "filename" : "新增投诉.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "新增投诉@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "新增投诉@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
jiaPei/Images.xcassets/Modules/ComplaintModule/comp_add_button.imageset/新增投诉.png


BIN
jiaPei/Images.xcassets/Modules/ComplaintModule/comp_add_button.imageset/新增投诉@2x.png


BIN
jiaPei/Images.xcassets/Modules/ComplaintModule/comp_add_button.imageset/新增投诉@3x.png


+ 3 - 1
jiaPei/Modules/ComplaintModule/Controller/NYComplaintListViewController.h

@@ -10,7 +10,9 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
-@interface NYComplaintListViewController : RQBaseViewController
+@interface NYComplaintListViewController : UIViewController
+
+
 
 @end
 

+ 131 - 8
jiaPei/Modules/ComplaintModule/Controller/NYComplaintListViewController.m

@@ -7,8 +7,22 @@
 //
 
 #import "NYComplaintListViewController.h"
+#import "NYComplaintPageViewController.h"
+#import "NYComplaintListViewCell.h"
+#import "ComplaintDataModel.h"
 
-@interface NYComplaintListViewController ()
+@interface NYComplaintListViewController ()<UITableViewDataSource,UITableViewDelegate>
+
+
+@property (weak, nonatomic) IBOutlet UIButton *addcomp_button;
+
+@property (weak, nonatomic) IBOutlet UITableView *tableView;
+
+@property (nonatomic,assign) int currentPage;
+
+@property (nonatomic,strong) ComplaintDataModel *complaintDataModel;
+
+@property (nonatomic,strong) NSMutableArray *complaintList;
 
 @end
 
@@ -17,16 +31,125 @@
 - (void)viewDidLoad {
     [super viewDidLoad];
     // Do any additional setup after loading the view from its nib.
+    [self setupUI];
+}
+
+- (void)viewWillAppear:(BOOL)animated
+{
+    [super viewWillAppear:animated];
+    [self getComplaintList];
+}
+
+- (void)dealloc {
+    
+    NSLog(@"投诉建议列表-NYComplaintListViewController");
+}
+
+#pragma mark - PublicMethods
+
+- (void)getComplaintList{
+    _currentPage = 1;
+    NSMutableArray *arr = [NSMutableArray array];
+    [arr addPro:@"stunum"            Value:RQ_USER_MANAGER.currentUser.outId];///学员编号
+    [arr addPro:@"currentPage"            Value:@(_currentPage)];///当前页
+    [arr addPro:@"pageSize"            Value:@10];
+    [arr addPro:@"dqbh"            Value:RQ_USER_MANAGER.currentUser.city];///地区编号
+    NSString *method = @"getComplaintList";
+    @weakify(self)
+    [jiaPeiManager requestAnythingWithURL:method array:arr data:nil completion:^(NSDictionary *dict) {
+        NSLog(@"%@",dict);
+        int code = [dict[@"code"] intValue];
+        if(code == 0 ){
+            self.complaintDataModel = [ComplaintDataModel yy_modelWithDictionary:dict[@"body"]];
+            if(self.complaintDataModel.list.count>0&&self.complaintList.count!=self.complaintDataModel.list.count){
+                [self.complaintList removeAllObjects];
+                [self.complaintList addObjectsFromArray:self.complaintDataModel.list];
+                [self.tableView reloadData];
+            }
+        }
+    }];
+}
+
+//更多下一页
+- (void)getComplaintListMore {
+    
+    int total = 10* (_currentPage+1);
+    if(self.complaintDataModel.total > total){
+        _currentPage +=1;
+        NSMutableArray *arr = [NSMutableArray array];
+        [arr addPro:@"stunum"            Value:RQ_USER_MANAGER.currentUser.outId];///学员编号
+        [arr addPro:@"currentPage"            Value:@(_currentPage)];///当前页
+        [arr addPro:@"pageSize"            Value:@10];
+        [arr addPro:@"dqbh"            Value:RQ_USER_MANAGER.currentUser.city];///地区编号
+        NSString *method = @"getComplaintList";
+        @weakify(self)
+        [jiaPeiManager requestAnythingWithURL:method array:arr data:nil completion:^(NSDictionary *dict) {
+            NSLog(@"%@",dict);
+            int code = [dict[@"code"] intValue];
+            if(code == 0 ){
+                self.complaintDataModel = [ComplaintDataModel yy_modelWithDictionary:dict[@"body"]];
+                if(self.complaintDataModel.list.count>0&&self.complaintList.count!=self.complaintDataModel.list.count){
+                    [self.complaintList addObjectsFromArray:self.complaintDataModel.list];
+                    [self.tableView reloadData];
+                }
+            }
+        }];
+    }
+    
+}
+
+#pragma mark - PrivateMethods
+- (void)setupUI {
+    self.title = @"投诉建议列表";
+    [self configureUI];
+}
+
+- (void)configureUI {
+    
+    self.tableView.backgroundColor = UIColorMakeWithRGBA(242, 243, 245, 1);
+    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+    [self.tableView registerNib:[UINib nibWithNibName:@"NYComplaintListViewCell" bundle:nil] forCellReuseIdentifier:@"NYComplaintListViewCell"];
+    
+}
+
+#pragma mark - 事件
+
+- (IBAction)pushAddCompdo:(UIButton *)sender {
+    NYComplaintPageViewController *complaintPageViewController = [[NYComplaintPageViewController alloc] init];
+    [RQControllerHelper.currentViewController.navigationController qmui_pushViewController:complaintPageViewController animated:YES completion:nil];
+}
+
+
+#pragma mark - UITableViewDataSource
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
+{
+    return  self.complaintList.count;
+}
+
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    return 260;
 }
 
-/*
-#pragma mark - Navigation
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    NYComplaintListViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"NYComplaintListViewCell"];
+    [cell setComplaintInfoModel:self.complaintList[indexPath.row]];
+    return cell;
+}
+
+#pragma mark - UITableViewDelegate
+
+
+#pragma mark - Lazy
 
-// In a storyboard-based application, you will often want to do a little preparation before navigation
-- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
-    // Get the new view controller using [segue destinationViewController].
-    // Pass the selected object to the new view controller.
+- (NSMutableArray *)complaintList
+{
+    if(!_complaintList){
+        _complaintList = [NSMutableArray array];
+    }
+    return _complaintList;
 }
-*/
 
 @end

+ 47 - 5
jiaPei/Modules/ComplaintModule/Controller/NYComplaintListViewController.xib

@@ -1,22 +1,64 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13142" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina5_9" orientation="portrait" appearance="light"/>
     <dependencies>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12042"/>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/>
         <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"/>
     </dependencies>
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="NYComplaintListViewController">
             <connections>
+                <outlet property="addcomp_button" destination="GOn-zx-25r" id="H28-En-TEG"/>
+                <outlet property="tableView" destination="KA0-fA-YWv" id="6yx-LG-BYt"/>
                 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
             </connections>
         </placeholder>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
-            <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+            <rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-            <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+            <subviews>
+                <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="KA0-fA-YWv">
+                    <rect key="frame" x="0.0" y="50" width="375" height="728"/>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <connections>
+                        <outlet property="dataSource" destination="-1" id="pBC-VD-Gii"/>
+                        <outlet property="delegate" destination="-1" id="pga-XO-iL6"/>
+                    </connections>
+                </tableView>
+                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="GOn-zx-25r">
+                    <rect key="frame" x="301" y="604" width="74" height="74"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="74" id="Foc-g2-37O"/>
+                        <constraint firstAttribute="height" constant="74" id="JEw-gg-4rw"/>
+                    </constraints>
+                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                    <state key="normal" image="comp_add_button"/>
+                    <connections>
+                        <action selector="pushAddCompdo:" destination="-1" eventType="touchUpInside" id="hw4-Bl-8m9"/>
+                    </connections>
+                </button>
+            </subviews>
             <viewLayoutGuide key="safeArea" id="Q5M-cg-NOt"/>
+            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+            <constraints>
+                <constraint firstItem="Q5M-cg-NOt" firstAttribute="bottom" secondItem="KA0-fA-YWv" secondAttribute="bottom" id="5J0-LH-9CL"/>
+                <constraint firstItem="Q5M-cg-NOt" firstAttribute="trailing" secondItem="KA0-fA-YWv" secondAttribute="trailing" id="F0n-gq-mes"/>
+                <constraint firstItem="Q5M-cg-NOt" firstAttribute="trailing" secondItem="GOn-zx-25r" secondAttribute="trailing" id="Iue-Gb-ZH1"/>
+                <constraint firstItem="Q5M-cg-NOt" firstAttribute="bottom" secondItem="GOn-zx-25r" secondAttribute="bottom" constant="100" id="a7Y-0L-kmE"/>
+                <constraint firstItem="KA0-fA-YWv" firstAttribute="leading" secondItem="Q5M-cg-NOt" secondAttribute="leading" id="bIJ-AV-kp9"/>
+                <constraint firstItem="KA0-fA-YWv" firstAttribute="top" secondItem="Q5M-cg-NOt" secondAttribute="top" id="e7c-1f-dkg"/>
+            </constraints>
+            <point key="canvasLocation" x="73" y="-12"/>
         </view>
     </objects>
+    <resources>
+        <image name="comp_add_button" width="74" height="74"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
 </document>

+ 6 - 1
jiaPei/Modules/ComplaintModule/Controller/NYComplaintPageViewController.m

@@ -20,6 +20,8 @@
 
 //名称
 @property (weak, nonatomic) IBOutlet UILabel *objname_label;
+//手机号码
+@property (weak, nonatomic) IBOutlet UITextField *phone_textfield;
 
 //照片 图片 - collectionView
 @property (weak, nonatomic) IBOutlet UIView *imageArrayView;
@@ -52,6 +54,7 @@
 }
 
 - (void)configureUI {
+    self.content_textview.maximumTextLength = 500;
     self.currentType_button = self.px_button;
     [self.collectionView registerClass:[CollectionViewCell class] forCellWithReuseIdentifier:@"cell"];
     [self.imageArrayView addSubview:self.collectionView];
@@ -113,8 +116,9 @@
         UICollectionViewFlowLayout *flowLayOut = [[UICollectionViewFlowLayout alloc] init];
         flowLayOut.itemSize = CGSizeMake(50, 50);
         flowLayOut.sectionInset = UIEdgeInsetsMake(5, 5, 5, 5);
+        flowLayOut.scrollDirection = UICollectionViewScrollDirectionHorizontal;
         self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:flowLayOut];
-        
+        self.collectionView.showsHorizontalScrollIndicator = NO;
         self.collectionView.delegate = self;
         self.collectionView.dataSource = self;
         //        self.collectionView.scrollEnabled = NO;
@@ -148,6 +152,7 @@
         [self checkLocalPhoto];
     }else{
         TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithSelectedAssets:_assestArray selectedPhotos:_photosArray index:indexPath.row];
+        imagePickerVc.maxImagesCount = 9;//最大9
         imagePickerVc.isSelectOriginalPhoto = _isSelectOriginalPhoto;
         [imagePickerVc setDidFinishPickingPhotosHandle:^(NSArray<UIImage *> *photos, NSArray *assets, BOOL isSelectOriginalPhoto) {
             _photosArray = [NSMutableArray arrayWithArray:photos];

+ 41 - 12
jiaPei/Modules/ComplaintModule/Controller/NYComplaintPageViewController.xib

@@ -14,6 +14,7 @@
                 <outlet property="content_textview" destination="mY9-4Z-4qy" id="jxb-P2-aZb"/>
                 <outlet property="imageArrayView" destination="K2b-RN-hV2" id="9bh-q4-Poi"/>
                 <outlet property="objname_label" destination="o6U-Gi-Lct" id="aSm-tE-gLc"/>
+                <outlet property="phone_textfield" destination="arg-5r-Kii" id="L6T-cR-MvV"/>
                 <outlet property="px_button" destination="ZTc-o3-ARE" id="AhC-9U-828"/>
                 <outlet property="submit_button" destination="I5b-on-S8W" id="BXP-PN-v1V"/>
                 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
@@ -24,8 +25,8 @@
             <rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
             <subviews>
-                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XsT-LM-A7R" userLabel="View-top">
-                    <rect key="frame" x="0.0" y="50" width="375" height="105"/>
+                <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XsT-LM-A7R" userLabel="View-top">
+                    <rect key="frame" x="0.0" y="50" width="375" height="0.0"/>
                     <subviews>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="投诉对象" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rOS-qN-YgC">
                             <rect key="frame" x="15" y="15" width="65" height="20"/>
@@ -37,7 +38,7 @@
                             <color key="textColor" red="0.039215686274509803" green="0.10196078431372549" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="投诉类型" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="52M-HN-Nib">
+                        <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="投诉类型" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="52M-HN-Nib">
                             <rect key="frame" x="15" y="55" width="65" height="20"/>
                             <constraints>
                                 <constraint firstAttribute="width" constant="65" id="EQN-LH-rTh"/>
@@ -47,7 +48,7 @@
                             <color key="textColor" red="0.039215686270000001" green="0.1019607843" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
-                        <button opaque="NO" contentMode="scaleToFill" selected="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ZTc-o3-ARE">
+                        <button hidden="YES" opaque="NO" contentMode="scaleToFill" selected="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ZTc-o3-ARE">
                             <rect key="frame" x="96" y="56" width="104" height="18"/>
                             <constraints>
                                 <constraint firstAttribute="width" constant="104" id="AsF-BU-ZzI"/>
@@ -64,7 +65,7 @@
                                 <action selector="buttonTypeActiondo:" destination="-1" eventType="touchUpInside" id="aTY-Bh-HQO"/>
                             </connections>
                         </button>
-                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="U7V-8p-94E">
+                        <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="U7V-8p-94E">
                             <rect key="frame" x="209" y="56" width="104" height="18"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="18" id="W05-Ze-cEc"/>
@@ -81,7 +82,7 @@
                                 <action selector="buttonTypeActiondo:" destination="-1" eventType="touchUpInside" id="irt-kD-EJW"/>
                             </connections>
                         </button>
-                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="g4u-je-xWf">
+                        <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="g4u-je-xWf">
                             <rect key="frame" x="97" y="86" width="104" height="18"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="18" id="H2w-ND-WYp"/>
@@ -98,7 +99,7 @@
                                 <action selector="buttonTypeActiondo:" destination="-1" eventType="touchUpInside" id="4WX-sp-agZ"/>
                             </connections>
                         </button>
-                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BWP-Wv-az2">
+                        <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BWP-Wv-az2">
                             <rect key="frame" x="209" y="86" width="104" height="18"/>
                             <constraints>
                                 <constraint firstAttribute="width" constant="104" id="G2o-aX-1oN"/>
@@ -129,7 +130,7 @@
                     <constraints>
                         <constraint firstItem="ZTc-o3-ARE" firstAttribute="top" secondItem="o6U-Gi-Lct" secondAttribute="bottom" constant="21" id="8ev-l0-Yhb"/>
                         <constraint firstItem="rOS-qN-YgC" firstAttribute="leading" secondItem="XsT-LM-A7R" secondAttribute="leading" constant="15" id="9di-QL-oH2"/>
-                        <constraint firstAttribute="height" constant="105" id="G2H-sW-ytV"/>
+                        <constraint firstAttribute="height" id="G2H-sW-ytV"/>
                         <constraint firstItem="52M-HN-Nib" firstAttribute="top" secondItem="rOS-qN-YgC" secondAttribute="bottom" constant="20" id="HI9-xe-4aW"/>
                         <constraint firstItem="BWP-Wv-az2" firstAttribute="leading" secondItem="g4u-je-xWf" secondAttribute="trailing" constant="8" symbolic="YES" id="LE4-d2-ocb"/>
                         <constraint firstItem="o6U-Gi-Lct" firstAttribute="leading" secondItem="rOS-qN-YgC" secondAttribute="trailing" constant="23" id="NqA-AX-Whw"/>
@@ -145,8 +146,8 @@
                         <constraint firstItem="g4u-je-xWf" firstAttribute="top" secondItem="ZTc-o3-ARE" secondAttribute="bottom" constant="12" id="xsZ-zA-Y4p"/>
                     </constraints>
                 </view>
-                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="投诉对象" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Tet-7T-Sfs">
-                    <rect key="frame" x="15" y="175" width="65" height="20"/>
+                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="投诉内容" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Tet-7T-Sfs">
+                    <rect key="frame" x="15" y="70" width="65" height="20"/>
                     <constraints>
                         <constraint firstAttribute="width" constant="65" id="aa6-Ib-3iF"/>
                         <constraint firstAttribute="height" constant="20" id="vjE-Xr-NZD"/>
@@ -171,7 +172,7 @@
                     </userDefinedRuntimeAttributes>
                 </button>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Z7y-9O-r3s">
-                    <rect key="frame" x="15" y="205" width="345" height="223"/>
+                    <rect key="frame" x="15" y="100" width="345" height="223"/>
                     <subviews>
                         <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="mY9-4Z-4qy" customClass="QMUITextView">
                             <rect key="frame" x="15" y="13" width="315" height="144"/>
@@ -183,7 +184,7 @@
                             <fontDescription key="fontDescription" type="system" pointSize="14"/>
                             <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
                             <userDefinedRuntimeAttributes>
-                                <userDefinedRuntimeAttribute type="string" keyPath="placeholder" value="请详细描述您遇到的问题:"/>
+                                <userDefinedRuntimeAttribute type="string" keyPath="placeholder" value="请详细描述您遇到的问题(最大可输入500个字符):"/>
                                 <userDefinedRuntimeAttribute type="color" keyPath="placeholderColor">
                                     <color key="value" red="0.67843137254901964" green="0.70588235294117641" blue="0.74901960784313726" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 </userDefinedRuntimeAttribute>
@@ -213,6 +214,31 @@
                         </userDefinedRuntimeAttribute>
                     </userDefinedRuntimeAttributes>
                 </view>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XZk-ob-zc2">
+                    <rect key="frame" x="15" y="338" width="345" height="48"/>
+                    <subviews>
+                        <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入手机号码" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="arg-5r-Kii">
+                            <rect key="frame" x="15" y="6" width="315" height="36"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="36" id="Ahd-Cv-N2C"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                            <textInputTraits key="textInputTraits"/>
+                        </textField>
+                    </subviews>
+                    <color key="backgroundColor" red="0.94901960784313721" green="0.95294117647058818" blue="0.96078431372549022" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="48" id="Ewp-qM-9wh"/>
+                        <constraint firstAttribute="trailing" secondItem="arg-5r-Kii" secondAttribute="trailing" constant="15" id="N8m-Hw-4V5"/>
+                        <constraint firstItem="arg-5r-Kii" firstAttribute="leading" secondItem="XZk-ob-zc2" secondAttribute="leading" constant="15" id="k9i-0A-JjA"/>
+                        <constraint firstItem="arg-5r-Kii" firstAttribute="top" secondItem="XZk-ob-zc2" secondAttribute="top" constant="6" id="yLJ-34-HT8"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
+                            <integer key="value" value="10"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
             </subviews>
             <viewLayoutGuide key="safeArea" id="Q5M-cg-NOt"/>
             <color key="backgroundColor" systemColor="systemBackgroundColor"/>
@@ -224,10 +250,13 @@
                 <constraint firstItem="Q5M-cg-NOt" firstAttribute="bottom" secondItem="I5b-on-S8W" secondAttribute="bottom" constant="40" id="HmU-CG-JC7"/>
                 <constraint firstItem="Q5M-cg-NOt" firstAttribute="trailing" secondItem="Z7y-9O-r3s" secondAttribute="trailing" constant="15" id="Iz3-qw-ufd"/>
                 <constraint firstItem="Q5M-cg-NOt" firstAttribute="trailing" secondItem="I5b-on-S8W" secondAttribute="trailing" constant="56" id="O5p-L2-Luz"/>
+                <constraint firstItem="Q5M-cg-NOt" firstAttribute="trailing" secondItem="XZk-ob-zc2" secondAttribute="trailing" constant="15" id="QA6-B8-GxP"/>
                 <constraint firstItem="Z7y-9O-r3s" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="Ujg-DQ-fqN"/>
+                <constraint firstItem="XZk-ob-zc2" firstAttribute="leading" secondItem="Q5M-cg-NOt" secondAttribute="leading" constant="15" id="eGI-QV-FwF"/>
                 <constraint firstItem="Tet-7T-Sfs" firstAttribute="top" secondItem="XsT-LM-A7R" secondAttribute="bottom" constant="20" id="kmF-HF-ha1"/>
                 <constraint firstItem="Z7y-9O-r3s" firstAttribute="top" secondItem="Tet-7T-Sfs" secondAttribute="bottom" constant="10" id="lne-Zb-uFN"/>
                 <constraint firstItem="I5b-on-S8W" firstAttribute="leading" secondItem="Q5M-cg-NOt" secondAttribute="leading" constant="56" id="tMx-WK-Ndh"/>
+                <constraint firstItem="XZk-ob-zc2" firstAttribute="top" secondItem="Z7y-9O-r3s" secondAttribute="bottom" constant="15" id="uaA-TU-oo8"/>
             </constraints>
             <point key="canvasLocation" x="48.799999999999997" y="-11.083743842364532"/>
         </view>

+ 35 - 0
jiaPei/Modules/ComplaintModule/Model/ComplaintDataModel.h

@@ -0,0 +1,35 @@
+//
+//  ComplaintDataModel.h
+//  jiaPei
+//
+//  Created by Ning.ge on 2023/7/3.
+//  Copyright © 2023 JCZ. All rights reserved.
+//
+
+#import "RQBaseModel.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ComplaintInfoModel : RQBaseModel
+
+@property (nonatomic , copy) NSString              * AUDIT_DATE;
+@property (nonatomic , copy) NSString              * CI_CDATE;
+@property (nonatomic , copy) NSNumber              * AUDIT_STATUS;
+@property (nonatomic , copy) NSString              * CI_CONTENT;
+@property (nonatomic , assign) NSInteger               CI_ID;
+@property (nonatomic , copy) NSNumber              * CI_PHONE;
+@property (nonatomic , copy) NSNumber              * CI_STUDENT;
+@property (nonatomic , copy) NSNumber              * CI_TYPE;
+@property (nonatomic , copy) NSNumber              * CI_STUNUM;
+@property (nonatomic , copy) NSString              * PICURLS;
+
+@end
+
+@interface ComplaintDataModel : RQBaseModel
+
+@property (nonatomic , strong) NSArray<ComplaintInfoModel*>         *list;
+@property (nonatomic , assign) NSInteger                            total;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 21 - 0
jiaPei/Modules/ComplaintModule/Model/ComplaintDataModel.m

@@ -0,0 +1,21 @@
+//
+//  ComplaintDataModel.m
+//  jiaPei
+//
+//  Created by Ning.ge on 2023/7/3.
+//  Copyright © 2023 JCZ. All rights reserved.
+//
+
+#import "ComplaintDataModel.h"
+
+@implementation ComplaintInfoModel
+
+@end
+
+
+@implementation ComplaintDataModel
++ (NSDictionary *)modelContainerPropertyGenericClass {
+    return @{@"list": [ComplaintInfoModel class]};
+}
+
+@end

+ 29 - 0
jiaPei/Modules/ComplaintModule/View/NYComplaintListViewCell.h

@@ -0,0 +1,29 @@
+//
+//  NYComplaintListViewCell.h
+//  jiaPei
+//
+//  Created by Ning.ge on 2023/7/3.
+//  Copyright © 2023 JCZ. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "ComplaintDataModel.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NYComplaintListViewCell : UITableViewCell
+
+//状态
+@property (weak, nonatomic) IBOutlet UIButton *state_button;
+//名称
+@property (weak, nonatomic) IBOutlet UILabel *name_label;
+//内容
+@property (weak, nonatomic) IBOutlet UILabel *content_label;
+//照片
+@property (weak, nonatomic) IBOutlet UIView *imagelist_view;
+
+@property (strong, nonatomic) ComplaintInfoModel *complaintInfoModel;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 131 - 0
jiaPei/Modules/ComplaintModule/View/NYComplaintListViewCell.m

@@ -0,0 +1,131 @@
+//
+//  NYComplaintListViewCell.m
+//  jiaPei
+//
+//  Created by Ning.ge on 2023/7/3.
+//  Copyright © 2023 JCZ. All rights reserved.
+//
+
+#import "NYComplaintListViewCell.h"
+#import "CollectionViewCell.h"
+
+@interface NYComplaintListViewCell()<UICollectionViewDelegate,UICollectionViewDataSource>{
+    
+}
+
+@property (nonatomic ,strong) UICollectionView *collectionView;
+@property (nonatomic ,strong) NSMutableArray *photosArray;
+
+@end
+
+@implementation NYComplaintListViewCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+    [self setupUI];
+}
+
+- (void)setupUI{
+    [self.collectionView registerClass:[CollectionViewCell class] forCellWithReuseIdentifier:@"comp_cell"];
+    [self.imagelist_view addSubview:self.collectionView];
+    self.collectionView.backgroundColor = UIColor.whiteColor;
+    [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.edges.mas_equalTo(self.imagelist_view);
+    }];
+}
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+
+    // Configure the view for the selected state
+}
+
+- (void)setComplaintInfoModel:(ComplaintInfoModel *)complaintInfoModel
+{
+    _complaintInfoModel = complaintInfoModel;
+    if(complaintInfoModel){
+        self.name_label.text = RQ_USER_MANAGER.currentUser.schoolName;
+        self.content_label.text = complaintInfoModel.CI_CONTENT;
+//        0 待提交 1 待审核 2 审核通过 3 审核驳回  4 撤销
+        NSString *statename = @"";
+        switch (complaintInfoModel.AUDIT_STATUS.intValue) {
+            case 0:
+                statename = @"待提交";
+                break;
+            case 1:
+                statename = @"待审核";
+                break;
+            case 2:
+                statename = @"审核通过";
+                break;
+            case 3:
+                statename = @"审核驳回";
+                break;
+            case 4:
+                statename = @"撤销";
+                break;
+            default:
+                break;
+        }
+        [self.state_button setTitle:statename forState:UIControlStateNormal];
+        if(complaintInfoModel.AUDIT_STATUS.intValue==2){
+            self.state_button.backgroundColor = UIColorHex(0x498EF5);
+        }else {
+            self.state_button.backgroundColor = UIColorHex(0xEAEBED);
+        }
+        //图片
+        if(complaintInfoModel.PICURLS.length>0){
+            [self.photosArray removeAllObjects];
+            complaintInfoModel.PICURLS = [complaintInfoModel.PICURLS stringByReplacingOccurrencesOfString:@" " withString:@""];
+            NSArray *list = [complaintInfoModel.PICURLS componentsSeparatedByString:@","];
+            [self.photosArray addObjectsFromArray:list];
+            [self.collectionView reloadData];
+        }
+    }
+}
+
+#pragma mark UICollectionViewDelegate
+- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
+}
+
+- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
+    return _photosArray.count;
+}
+
+- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
+    CollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"comp_cell" forIndexPath:indexPath];
+    cell.deleteButton.hidden = YES;
+    NSString *imgUrl = self.photosArray[indexPath.row];
+    [cell.imagev sd_setImageWithURL:[NSURL URLWithString:imgUrl]];
+    return cell;
+    
+}
+
+
+#pragma mark - Lray
+
+- (NSMutableArray *)photosArray{
+    if (!_photosArray) {
+        self.photosArray = [NSMutableArray array];
+    }
+    return _photosArray;
+}
+
+-(UICollectionView *)collectionView{
+    if (!_collectionView) {
+        UICollectionViewFlowLayout *flowLayOut = [[UICollectionViewFlowLayout alloc] init];
+        flowLayOut.itemSize = CGSizeMake(50, 50);
+        flowLayOut.sectionInset = UIEdgeInsetsMake(5, 5, 5, 5);
+        flowLayOut.scrollDirection = UICollectionViewScrollDirectionHorizontal;
+        self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:flowLayOut];
+        self.collectionView.showsHorizontalScrollIndicator = NO;
+        self.collectionView.delegate = self;
+        self.collectionView.dataSource = self;
+        //        self.collectionView.scrollEnabled = NO;
+    }
+    return _collectionView;
+}
+
+
+@end

+ 135 - 0
jiaPei/Modules/ComplaintModule/View/NYComplaintListViewCell.xib

@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/>
+        <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"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="KGk-i7-Jjw" customClass="NYComplaintListViewCell">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="260"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
+                <rect key="frame" x="0.0" y="0.0" width="320" height="260"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7nK-KT-TV9">
+                        <rect key="frame" x="15" y="15" width="290" height="245"/>
+                        <subviews>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="s9n-5k-q7k">
+                                <rect key="frame" x="238" y="12" width="62" height="24"/>
+                                <color key="backgroundColor" red="0.28627450980392155" green="0.55686274509803924" blue="0.96078431372549022" alpha="1" colorSpace="calibratedRGB"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="24" id="Cdi-11-FeE"/>
+                                    <constraint firstAttribute="width" constant="62" id="gWY-mR-xjm"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                <state key="normal" title="已处理"/>
+                                <userDefinedRuntimeAttributes>
+                                    <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
+                                        <integer key="value" value="12"/>
+                                    </userDefinedRuntimeAttribute>
+                                </userDefinedRuntimeAttributes>
+                            </button>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="投诉对象" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Qi2-TG-61Z">
+                                <rect key="frame" x="15" y="12" width="62" height="20"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="62" id="4kd-Sv-hpl"/>
+                                    <constraint firstAttribute="height" constant="20" id="dCk-5h-VcK"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                                <color key="textColor" red="0.28627450980392155" green="0.55686274509803924" blue="0.96078431372549022" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="投诉内容" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sRZ-UP-G3s">
+                                <rect key="frame" x="15" y="42" width="62" height="20"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="62" id="gve-PX-EkP"/>
+                                    <constraint firstAttribute="height" constant="20" id="rIi-lm-gaa"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                                <color key="textColor" red="0.28627450980000002" green="0.5568627451" blue="0.96078431369999995" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="25Y-jw-pjb">
+                                <rect key="frame" x="85" y="12" width="145" height="20"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="20" id="KaO-Nv-7rh"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <color key="textColor" red="0.039215686274509803" green="0.10196078431372549" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Wk5-2w-kwf" userLabel="View-content">
+                                <rect key="frame" x="15" y="164" width="260" height="56"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="56" id="kBT-TW-Svw"/>
+                                </constraints>
+                            </view>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" lineBreakMode="tailTruncation" numberOfLines="5" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VUY-v3-HCe">
+                                <rect key="frame" x="15" y="66" width="260" height="88"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="88" id="ZWq-p9-MIr"/>
+                                </constraints>
+                                <string key="text">LabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabel</string>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <color key="textColor" red="0.039215686270000001" green="0.1019607843" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                        </subviews>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="Wk5-2w-kwf" firstAttribute="leading" secondItem="7nK-KT-TV9" secondAttribute="leading" constant="15" id="0vH-jC-kKE"/>
+                            <constraint firstItem="25Y-jw-pjb" firstAttribute="top" secondItem="7nK-KT-TV9" secondAttribute="top" constant="12" id="Hk0-8a-NS3"/>
+                            <constraint firstItem="sRZ-UP-G3s" firstAttribute="leading" secondItem="7nK-KT-TV9" secondAttribute="leading" constant="15" id="IXh-or-FWI"/>
+                            <constraint firstItem="Qi2-TG-61Z" firstAttribute="leading" secondItem="7nK-KT-TV9" secondAttribute="leading" constant="15" id="Lu6-35-yEz"/>
+                            <constraint firstItem="sRZ-UP-G3s" firstAttribute="top" secondItem="Qi2-TG-61Z" secondAttribute="bottom" constant="10" id="Qt9-MA-P7n"/>
+                            <constraint firstItem="VUY-v3-HCe" firstAttribute="leading" secondItem="7nK-KT-TV9" secondAttribute="leading" constant="15" id="URY-8s-VLM"/>
+                            <constraint firstAttribute="trailing" secondItem="Wk5-2w-kwf" secondAttribute="trailing" constant="15" id="X9f-rD-ZHA"/>
+                            <constraint firstAttribute="trailing" secondItem="s9n-5k-q7k" secondAttribute="trailing" constant="-10" id="XBQ-GZ-F68"/>
+                            <constraint firstItem="s9n-5k-q7k" firstAttribute="top" secondItem="7nK-KT-TV9" secondAttribute="top" constant="12" id="Yjr-3S-d9R"/>
+                            <constraint firstItem="Qi2-TG-61Z" firstAttribute="top" secondItem="7nK-KT-TV9" secondAttribute="top" constant="12" id="cEv-JA-NIa"/>
+                            <constraint firstItem="25Y-jw-pjb" firstAttribute="leading" secondItem="Qi2-TG-61Z" secondAttribute="trailing" constant="8" symbolic="YES" id="eFf-uB-Nw2"/>
+                            <constraint firstItem="s9n-5k-q7k" firstAttribute="leading" secondItem="25Y-jw-pjb" secondAttribute="trailing" constant="8" symbolic="YES" id="kFt-fK-931"/>
+                            <constraint firstAttribute="trailing" secondItem="VUY-v3-HCe" secondAttribute="trailing" constant="15" id="um2-gT-pdo"/>
+                            <constraint firstItem="VUY-v3-HCe" firstAttribute="top" secondItem="sRZ-UP-G3s" secondAttribute="bottom" constant="4" id="wzv-f3-Ebl"/>
+                            <constraint firstItem="Wk5-2w-kwf" firstAttribute="top" secondItem="VUY-v3-HCe" secondAttribute="bottom" constant="10" id="xy8-J3-CUP"/>
+                        </constraints>
+                        <userDefinedRuntimeAttributes>
+                            <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
+                                <integer key="value" value="10"/>
+                            </userDefinedRuntimeAttribute>
+                        </userDefinedRuntimeAttributes>
+                    </view>
+                </subviews>
+                <color key="backgroundColor" red="0.94901960784313721" green="0.95294117647058818" blue="0.96078431372549022" alpha="1" colorSpace="calibratedRGB"/>
+                <constraints>
+                    <constraint firstAttribute="trailing" secondItem="7nK-KT-TV9" secondAttribute="trailing" constant="15" id="Qad-ES-gmR"/>
+                    <constraint firstAttribute="bottom" secondItem="7nK-KT-TV9" secondAttribute="bottom" id="Ym7-GX-K3y"/>
+                    <constraint firstItem="7nK-KT-TV9" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="15" id="oKz-Bl-e7A"/>
+                    <constraint firstItem="7nK-KT-TV9" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="15" id="qi7-MW-1oD"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
+            <connections>
+                <outlet property="content_label" destination="VUY-v3-HCe" id="YfR-GL-du6"/>
+                <outlet property="imagelist_view" destination="Wk5-2w-kwf" id="peZ-5g-7io"/>
+                <outlet property="name_label" destination="25Y-jw-pjb" id="5SD-PL-iqJ"/>
+                <outlet property="state_button" destination="s9n-5k-q7k" id="SOr-OW-RmB"/>
+            </connections>
+            <point key="canvasLocation" x="51.908396946564885" y="-11.267605633802818"/>
+        </tableViewCell>
+    </objects>
+    <resources>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>

+ 1 - 0
jiaPei/Modules/ComplaintModule/ViewModel/NYComplaintPageViewModel.m

@@ -109,6 +109,7 @@
         NSString *body = root[@"body"];
         [MBProgressHUD rq_hideHUD];
         [RQ_SHARE_FUNCTION showAlertWithMessage:body completion:nil];
+        [RQControllerHelper.currentViewController.navigationController popViewControllerAnimated:YES];
         return;
     }];
 }

+ 3 - 3
jiaPei/Modules/ComplaintModule/ViewModel/NYFloatingSuggestViewModel.m

@@ -8,7 +8,7 @@
 
 #import "NYFloatingSuggestViewModel.h"
 #import "NYFloatingSuggestViewModel.h"
-#import "NYComplaintPageViewController.h"
+#import "NYComplaintListViewController.h"
 
 @implementation NYFloatingSuggestViewModel
 
@@ -25,8 +25,8 @@
     @weakify(self)
     self.iconCommand = [[RACCommand alloc] initWithSignalBlock:^RACSignal * _Nonnull(id  _Nullable input) {
         @strongify(self);
-        NYComplaintPageViewController *complaintPageViewController = [[NYComplaintPageViewController alloc] init];
-        [RQControllerHelper.currentViewController.navigationController qmui_pushViewController:complaintPageViewController animated:YES completion:nil];
+        NYComplaintListViewController *complaintListViewController = [[NYComplaintListViewController alloc] init];
+        [RQControllerHelper.currentViewController.navigationController qmui_pushViewController:complaintListViewController animated:YES completion:nil];
         return [RACSignal empty];
     }];
     self.closeCommand = [[RACCommand alloc] initWithSignalBlock:^RACSignal * _Nonnull(id  _Nullable input) {

+ 17 - 8
jiaPei/Modules/HomePageModule/ViewController/HomePage/RQHomePageViewController.m

@@ -188,14 +188,23 @@
 
 //添加到主窗口
 - (void)addFloatingSuggestView {
-    [self.view addSubview:self.floatingSuggestView];
-    [self.floatingSuggestView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.right.mas_equalTo(self.view).offset(-20.f);
-        make.bottom.mas_equalTo(self.view).offset(-60.f);
-        make.width.mas_equalTo(116.f);
-        make.height.mas_equalTo(89.f);
-    }];
-    [self.floatingSuggestView bindViewModel:self.floatingSuggestViewModel];//绑定RAC
+    NSInteger SP_COMPLAINT_DQBH = 0;
+    for (ParamsItem *item in RQ_USER_MANAGER.currentUser.params) {
+        if ([item.KEY isEqualToString:@"SP_COMPLAINT_DQBH"]) {
+            SP_COMPLAINT_DQBH = [item.VALUE integerValue];
+        }
+    }
+    if(SP_COMPLAINT_DQBH>0&&(SP_COMPLAINT_DQBH == [RQ_USER_MANAGER.currentUser.city intValue])){
+        [self.view addSubview:self.floatingSuggestView];
+        [self.floatingSuggestView mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.right.mas_equalTo(self.view).offset(-20.f);
+            make.bottom.mas_equalTo(self.view).offset(-60.f);
+            make.width.mas_equalTo(116.f);
+            make.height.mas_equalTo(89.f);
+        }];
+        [self.floatingSuggestView bindViewModel:self.floatingSuggestViewModel];//绑定RAC
+    }
+
 }
 
 - (void)notificationAction:(NSNotification *)notification{

+ 2 - 1
jiaPei/OLD/Util/RQShareFunction.h

@@ -63,7 +63,8 @@ typedef void(^PhotosBlock)(NSArray *imagesArr);
 
 @property (assign, readwrite, nonatomic) NSInteger myErorNum;
 @property (assign, readwrite, nonatomic) NSInteger myCollectNum;
-
+//开启投诉地址
+@property (assign, readwrite, nonatomic) NSInteger SP_COMPLAINT_DQBH;
 
 // 时间转换为时间戳
 - (NSInteger)getTimeStampWithDate:(NSDate *)date;

+ 9 - 0
jiaPei/OLD/Util/RQShareFunction.m

@@ -156,6 +156,11 @@ static dispatch_once_t onceToken;
     return appKp;
 }
 
+- (NSInteger)SP_COMPLAINT_DQBH {
+    id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"SP_COMPLAINT_DQBH"];
+    NSInteger SP_COMPLAINT_DQBH = [object integerValue];
+    return SP_COMPLAINT_DQBH;
+}
 // 是否开启社区 1:开启 0:关闭
 - (NSInteger)APP_OPEN_COMMUNITY {
     id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"APP_OPEN_COMMUNITY"];
@@ -187,6 +192,10 @@ static dispatch_once_t onceToken;
 	[RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithInteger:APP_AD_CYCLE] ForKey:@"APP_AD_CYCLE"];
 }
 
+- (void)setSP_COMPLAINT_DQBH:(NSInteger)SP_COMPLAINT_DQBH {
+    [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithInteger:SP_COMPLAINT_DQBH] ForKey:@"SP_COMPLAINT_DQBH"];
+}
+
 - (void)setAPP_OPEN_COMMUNITY:(NSInteger)APP_OPEN_COMMUNITY {
     [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithInteger:APP_OPEN_COMMUNITY] ForKey:@"APP_OPEN_COMMUNITY"];
 }