Commit 9b21aec0796d8003bde9b7b2ce149fd990a6f756

Authored by liushiyu
0 parents

0.0.1

Showing 100 changed files with 3941 additions and 0 deletions

Too many changes to show.

To preserve performance only 100 of 154 files are displayed.

.gitignore 0 → 100644
  1 +++ a/.gitignore
  1 +# macOS
  2 +.DS_Store
  3 +
  4 +# Xcode
  5 +build/
  6 +Product/
  7 +*.pbxuser
  8 +!default.pbxuser
  9 +*.mode1v3
  10 +!default.mode1v3
  11 +*.mode2v3
  12 +!default.mode2v3
  13 +*.perspectivev3
  14 +!default.perspectivev3
  15 +xcuserdata/
  16 +*.xccheckout
  17 +profile
  18 +*.moved-aside
  19 +DerivedData
  20 +*.hmap
  21 +*.ipa
  22 +
  23 +# Bundler
  24 +.bundle
  25 +
  26 +# Add this line if you want to avoid checking in source code from Carthage dependencies.
  27 +# Carthage/Checkouts
  28 +
  29 +Carthage/Build
  30 +
  31 +# We recommend against adding the Pods directory to your .gitignore. However
  32 +# you should judge for yourself, the pros and cons are mentioned at:
  33 +# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
  34 +#
  35 +# Note: if you ignore the Pods directory, make sure to uncomment
  36 +# `pod install` in .travis.yml
  37 +#
  38 +# Pods/
... ...
.travis.yml 0 → 100644
  1 +++ a/.travis.yml
  1 +# references:
  2 +# * https://www.objc.io/issues/6-build-tools/travis-ci/
  3 +# * https://github.com/supermarin/xcpretty#usage
  4 +
  5 +osx_image: xcode7.3
  6 +language: objective-c
  7 +# cache: cocoapods
  8 +# podfile: Example/Podfile
  9 +# before_install:
  10 +# - gem install cocoapods # Since Travis is not always on latest version
  11 +# - pod install --project-directory=Example
  12 +script:
  13 +- set -o pipefail && xcodebuild test -enableCodeCoverage YES -workspace Example/CNLiveCommunitModule.xcworkspace -scheme CNLiveCommunitModule-Example -sdk iphonesimulator9.3 ONLY_ACTIVE_ARCH=NO | xcpretty
  14 +- pod lib lint
... ...
CNLiveCommunitModule.podspec 0 → 100644
  1 +++ a/CNLiveCommunitModule.podspec
  1 +#
  2 +# Be sure to run `pod lib lint CNLiveCommunitModule.podspec' to ensure this is a
  3 +# valid spec before submitting.
  4 +#
  5 +# Any lines starting with a # are optional, but their use is encouraged
  6 +# To learn more about a Podspec see https://guides.cocoapods.org/syntax/podspec.html
  7 +
  8 +
  9 +Pod::Spec.new do |s|
  10 + s.name = 'CNLiveCommunitModule'
  11 + s.version = '0.0.1'
  12 + s.summary = 'A short description of CNLiveCommunitModule.'
  13 +
  14 +# This description is used to generate tags and improve search results.
  15 +# * Think: What does it do? Why did you write it? What is the focus?
  16 +# * Try to keep it short, snappy and to the point.
  17 +# * Write the description between the DESC delimiters below.
  18 +# * Finally, don't worry about the indent, CocoaPods strips it!
  19 +
  20 + s.description = <<-DESC
  21 +TODO: Add long description of the pod here.
  22 + DESC
  23 +
  24 + s.homepage = 'http://bj.gitlab.cnlive.com/ios-team/CNLiveCommunitModule'
  25 + # s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
  26 + s.license = { :type => 'MIT', :file => 'LICENSE' }
  27 + s.author = { 'woshiliushiyu' => '1010530278@qq.com' }
  28 + s.source = { :git => 'http://bj.gitlab.cnlive.com/ios-team/CNLiveCommunitModule.git', :tag => s.version.to_s }
  29 + # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
  30 +
  31 + s.ios.deployment_target = '10.0'
  32 +
  33 +# s.source_files = 'CNLiveCommunitModule/Classes/ViewController/*.{h,m}'
  34 + s.static_framework = true
  35 +
  36 + s.subspec 'ViewController' do |ss|
  37 + ss.source_files = 'CNLiveCommunitModule/Classes/ViewController/*.{h,m}'
  38 + end
  39 + s.subspec 'ViewModel' do |ss|
  40 + ss.source_files = 'CNLiveCommunitModule/Classes/ViewModel/*.{h,m}'
  41 + end
  42 + s.subspec 'Core' do |ss|
  43 + ss.source_files = 'CNLiveCommunitModule/Classes/Core/*.{h,m}'
  44 + end
  45 + s.subspec 'View' do |ss|
  46 + ss.source_files = 'CNLiveCommunitModule/Classes/View/*.{h,m}'
  47 + end
  48 + s.subspec 'Model' do |ss|
  49 + ss.source_files = 'CNLiveCommunitModule/Classes/Model/*.{h,m}'
  50 + end
  51 +
  52 + s.resource_bundles = {
  53 + 'CNLiveCommunitModule' => ['CNLiveCommunitModule/Assets/*.bundle']
  54 + }
  55 +
  56 + s.prefix_header_contents = '#import "CNLiveCommunitHeader.h"'
  57 + # s.public_header_files = 'Pod/Classes/**/*.h'
  58 + s.frameworks = 'UIKit', 'MapKit'
  59 + #CNLive组件
  60 + s.dependency 'CNLiveBeeHive' #核心路由架构
  61 + #基础请求组件库
  62 + s.dependency 'CNLiveRequestBastKit'
  63 + #基类
  64 + s.dependency 'CNLiveBusinessBaseModule'
  65 + #图片预览库
  66 +# s.dependency 'CNLivePhotoBrowser'
  67 + #上传
  68 +# s.dependency 'CNLiveUploadManager'
  69 + #相册
  70 + s.dependency 'CNLiveImagePickerController'
  71 + #拍照
  72 + s.dependency 'CNLiveAVCamera'
  73 + #分页加载库
  74 + s.dependency 'JXPagingView/Pager'
  75 + #空白视图
  76 + s.dependency 'CNLiveNewTripartiteManagement/DZNEmptyDataSet'
  77 + #页数显示
  78 + s.dependency 'JXCategoryView'
  79 + #布局文件
  80 + s.dependency 'CNLiveNewTripartiteManagement/Masonry'
  81 + #拍照
  82 + s.dependency 'CNLiveAVCamera'
  83 + #电商基类
  84 + s.dependency 'DSBaseModule'
  85 + # 自定义 UI
  86 + s.dependency 'CNLiveCustomUI'
  87 +# #输入控制器
  88 + s.dependency 'CNLiveNewTripartiteManagement/IQKeyboardManager'
  89 +
  90 +end
... ...
CNLiveCommunitModule/Assets/.gitkeep 0 → 100644
  1 +++ a/CNLiveCommunitModule/Assets/.gitkeep
... ...
CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/Root.plist 0 → 100644
  1 +++ a/CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/Root.plist
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>StringsTable</key>
  6 + <string>Root</string>
  7 + <key>PreferenceSpecifiers</key>
  8 + <array>
  9 + <dict>
  10 + <key>Type</key>
  11 + <string>PSGroupSpecifier</string>
  12 + <key>Title</key>
  13 + <string>Group</string>
  14 + </dict>
  15 + <dict>
  16 + <key>Type</key>
  17 + <string>PSTextFieldSpecifier</string>
  18 + <key>Title</key>
  19 + <string>Name</string>
  20 + <key>Key</key>
  21 + <string>name_preference</string>
  22 + <key>DefaultValue</key>
  23 + <string></string>
  24 + <key>IsSecure</key>
  25 + <false/>
  26 + <key>KeyboardType</key>
  27 + <string>Alphabet</string>
  28 + <key>AutocapitalizationType</key>
  29 + <string>None</string>
  30 + <key>AutocorrectionType</key>
  31 + <string>No</string>
  32 + </dict>
  33 + <dict>
  34 + <key>Type</key>
  35 + <string>PSToggleSwitchSpecifier</string>
  36 + <key>Title</key>
  37 + <string>Enabled</string>
  38 + <key>Key</key>
  39 + <string>enabled_preference</string>
  40 + <key>DefaultValue</key>
  41 + <true/>
  42 + </dict>
  43 + <dict>
  44 + <key>Type</key>
  45 + <string>PSSliderSpecifier</string>
  46 + <key>Key</key>
  47 + <string>slider_preference</string>
  48 + <key>DefaultValue</key>
  49 + <real>0.5</real>
  50 + <key>MinimumValue</key>
  51 + <integer>0</integer>
  52 + <key>MaximumValue</key>
  53 + <integer>1</integer>
  54 + <key>MinimumValueImage</key>
  55 + <string></string>
  56 + <key>MaximumValueImage</key>
  57 + <string></string>
  58 + </dict>
  59 + </array>
  60 +</dict>
  61 +</plist>
... ...
CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communit_back.png 0 → 100644

267 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communit_back@2x.png 0 → 100644

393 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communit_back@3x.png 0 → 100644

732 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_consu_nomal.png 0 → 100644

634 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_consu_nomal@2x.png 0 → 100644

1.13 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_consu_nomal@3x.png 0 → 100644

1.91 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_consu_select.png 0 → 100644

570 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_consu_select@2x.png 0 → 100644

962 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_consu_select@3x.png 0 → 100644

1.52 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_content_close.png 0 → 100644

454 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_content_close@2x.png 0 → 100644

480 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_content_close@3x.png 0 → 100644

1.34 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_content_empty.png 0 → 100644

16.4 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_content_empty@2x.png 0 → 100644

47.8 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_content_empty@3x.png 0 → 100644

93.5 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_party_nomal.png 0 → 100644

1.08 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_party_nomal@2x.png 0 → 100644

2.35 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_party_nomal@3x.png 0 → 100644

4.19 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_party_select.png 0 → 100644

854 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_party_select@2x.png 0 → 100644

1.78 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_party_select@3x.png 0 → 100644

3.3 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_public_nomal.png 0 → 100644

825 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_public_nomal@2x.png 0 → 100644

1.62 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_public_nomal@3x.png 0 → 100644

2.82 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_public_select.png 0 → 100644

683 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_public_select@2x.png 0 → 100644

1.27 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_public_select@3x.png 0 → 100644

2.28 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_service_nomal.png 0 → 100644

913 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_service_nomal@2x.png 0 → 100644

1.88 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_service_nomal@3x.png 0 → 100644

3.36 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_service_select.png 0 → 100644

895 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_service_select@2x.png 0 → 100644

1.29 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_community_service_select@3x.png 0 → 100644

2.6 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communt_edit_add_image.png 0 → 100644

1.03 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communt_edit_add_image@2x.png 0 → 100644

2.86 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communt_edit_add_image@3x.png 0 → 100644

5.6 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communt_edit_delect_image.png 0 → 100644

577 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communt_edit_delect_image@2x.png 0 → 100644

1.04 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communt_edit_delect_image@3x.png 0 → 100644

1.87 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communt_list_more.png 0 → 100644

159 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communt_list_more@2x.png 0 → 100644

223 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communt_list_more@3x.png 0 → 100644

346 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_add_persion.png 0 → 100644

367 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_add_persion@2x.png 0 → 100644

727 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_add_persion@3x.png 0 → 100644

1.33 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_add_user_nomal.png 0 → 100644

395 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_add_user_nomal@2x.png 0 → 100644

881 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_add_user_nomal@3x.png 0 → 100644

1.5 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_add_user_select.png 0 → 100644

460 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_add_user_select@2x.png 0 → 100644

886 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_add_user_select@3x.png 0 → 100644

1.58 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_evalua_add_image.png 0 → 100644

3 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_evalua_add_image@2x.png 0 → 100644

7.02 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_evalua_add_image@3x.png 0 → 100644

14.5 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_list_delect_user.png 0 → 100644

430 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_list_delect_user@2x.png 0 → 100644

933 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_list_delect_user@3x.png 0 → 100644

1.64 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_list_edit_user.png 0 → 100644

318 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_list_edit_user@2x.png 0 → 100644

561 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_list_edit_user@3x.png 0 → 100644

1006 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_order_phone.png 0 → 100644

595 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_order_phone@2x.png 0 → 100644

1.23 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_order_phone@3x.png 0 → 100644

2.37 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_order_status.png 0 → 100644

366 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_order_status@2x.png 0 → 100644

685 Bytes

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_order_status@3x.png 0 → 100644

1.22 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_result_failer.png 0 → 100644

7.85 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_result_failer@2x.png 0 → 100644

16.2 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_result_failer@3x.png 0 → 100644

32 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_result_success.png 0 → 100644

9.67 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_result_success@2x.png 0 → 100644

21 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/c_communty_result_success@3x.png 0 → 100644

48.4 KB

CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/en.lproj/Root.strings 0 → 100644
1 1 Binary files /dev/null and a/CNLiveCommunitModule/Assets/CNLiveCommunitModule.bundle/en.lproj/Root.strings differ
... ...
CNLiveCommunitModule/Classes/.gitkeep 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/.gitkeep
... ...
CNLiveCommunitModule/Classes/Core/CNLiveCommunitHeader.h 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/Core/CNLiveCommunitHeader.h
  1 +//
  2 +// CNLiveCommunitHeader.h
  3 +// Pods
  4 +//
  5 +// Created by open on 2022/2/1.
  6 +//
  7 +
  8 +#ifndef CNLiveCommunitHeader_h
  9 +#define CNLiveCommunitHeader_h
  10 +
  11 +
  12 +
  13 +#import "CNLiveCommuntViewController.h"
  14 +#import <YYCategories/YYCategories.h>
  15 +#import <JXCategoryView/JXCategoryView.h>
  16 +#import <JXPagingView/JXPagerView.h>
  17 +#import <Masonry/Masonry.h>
  18 +#import <YYText/YYText.h>
  19 +#import <CNLiveUploadManager/CNLiveUploadManager.h>
  20 +#import <CNLiveBusinessTools/CNLiveBusinessTools.h>
  21 +#import <CNLiveBusinessTools/CNLiveRespCacheManager.h>
  22 +#import <SDWebImage/SDWebImage.h>
  23 +#import <MJExtension/MJExtension.h>
  24 +#import <CNLiveBusinessTools/CNLiveEscpTools.h>
  25 +#import <CNLiveCustomUI/CNLiveRefreshHeader.h>
  26 +#import <CNLiveCustomUI/CNLiveRefreshFooter.h>
  27 +#import <CNLiveUserManagement/CNUserInfoManager.h>
  28 +#import <CNLiveRequestBastKit/CNLiveNetworking.h>
  29 +#import <CNLiveEnvironment/CNLiveEnvironment.h>
  30 +#import <CNLiveAVCamera/XFPhotoLibraryManager.h>
  31 +#import <CNLiveAVCamera/XFCameraController.h>
  32 +#import <IQKeyboardManager/IQKeyboardManager.h>
  33 +#import <YYKeyboardManager/YYKeyboardManager.h>
  34 +#import <CNLiveBaseKit/CNLiveDefinesHeader.h>
  35 +#import <DZNEmptyDataSet/UIScrollView+EmptyDataSet.h>
  36 +#import "CNLiveCommuntTools.h"
  37 +#import "CNLiveCommuntViewModel.h"
  38 +#import "CNLiveCommuntyHomeModel.h"
  39 +#import "CNImagePickerController.h"
  40 +#import "TZImagePickerController.h"
  41 +
  42 +#import "CNLiveCommuntListViewController.h"
  43 +#import "CNLiveCommuntInformViewController.h"
  44 +#import "CNLiveCommuntActiviRecordViewController.h"
  45 +#import "CNLiveCommuntActiviRepairViewController.h"
  46 +#import "CNLiveCommuntyUserListViewController.h"
  47 +#import "CNLiveCommuntEvaluaViewController.h"
  48 +#import "CNLiveCommuntActiviViewController.h"
  49 +#import "CNLiveCommuntyUserEditViewController.h"
  50 +#import "CNLiveCommuntyResultViewController.h"
  51 +#import "CNLiveCommuntyOrderViewController.h"
  52 +#import "CNLiveCommuntyResultListViewController.h"
  53 +#import "CNLiveCommuntyHomeListViewController.h"
  54 +#import "CNLiveCommuntSignUpView.h"
  55 +#import "CNLiveCommuntSubView.h"
  56 +
  57 +#import "CNLiveCommuntyModule.h"
  58 +
  59 +
  60 +static NSString *const kCNLiveCommuntyNBhdIdIdentifier = @"kCNLiveCommuntyNBhdIdIdentifier";
  61 +
  62 +
  63 +#endif /* CNLiveCommunitHeader_h */
... ...
CNLiveCommunitModule/Classes/Core/CNLiveCommunitModuleProtocol.h 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/Core/CNLiveCommunitModuleProtocol.h
  1 +//
  2 +// CNLiveCommunitModuleProtocol.h
  3 +// CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/10.
  6 +//
  7 +
  8 +#import <Foundation/Foundation.h>
  9 +
  10 +NS_ASSUME_NONNULL_BEGIN
  11 +
  12 +@protocol CNLiveCommunitModuleProtocol <NSObject>
  13 +
  14 +/// 获取主工程的WebView
  15 +/// @param webUrl url
  16 +-(UIViewController *)pushWebViewWithMainProjectWithWebUrl:(NSString *)webUrl;
  17 +
  18 +/// 调用工程中支付功能
  19 +/// @param orderId 订单id
  20 +/// @param price 价格
  21 +/// @param body 支付名
  22 +-(void)pushMainProjectWithPayManagerWithOrderId:(NSString *)orderId price:(NSString *)price body:(NSString *)body;
  23 +
  24 +
  25 +/// 获取主工程的视讯相关界面逻辑
  26 +/// @param pageId 界面id
  27 +/// @param channelName 频道名
  28 +/// @param channelId 频道id
  29 +/// @param webUrl url
  30 +-(UIViewController *)pushLiveViewWithMainProjectWithPageId:(NSString *)pageId ChannelName:(NSString *)channelName ChannelId:(NSString *)channelId WebUrl:(NSString *)webUrl;
  31 +
  32 +@end
  33 +
  34 +NS_ASSUME_NONNULL_END
... ...
CNLiveCommunitModule/Classes/Core/CNLiveCommuntyModule.h 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/Core/CNLiveCommuntyModule.h
  1 +//
  2 +// CNLiveCommuntyModule.h
  3 +// CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/10.
  6 +// 主入口
  7 +
  8 +#import <Foundation/Foundation.h>
  9 +#import "CNLiveCommunitModuleProtocol.h"
  10 +NS_ASSUME_NONNULL_BEGIN
  11 +
  12 +@interface CNLiveCommuntyModule : NSObject
  13 +
  14 +@property (nonatomic, strong) id<CNLiveCommunitModuleProtocol> protocol;
  15 +
  16 ++ (instancetype)shareInstance;
  17 +
  18 +/// 跳转社区组件的主界面(如果已经选择过了就会直接进去,没有则需要进行重新选择)
  19 +-(void)pushCommuntyHomeViewMethod;
  20 +
  21 +/// 获取支付回调
  22 +/// @param paramDict 支付参数
  23 +-(void)pushCommuntyPayResultWithParamDict:(NSDictionary *)paramDict;
  24 +
  25 +@end
  26 +
  27 +NS_ASSUME_NONNULL_END
... ...
CNLiveCommunitModule/Classes/Core/CNLiveCommuntyModule.m 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/Core/CNLiveCommuntyModule.m
  1 +//
  2 +// CNLiveCommuntyModule.m
  3 +// CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/10.
  6 +//
  7 +
  8 +#import "CNLiveCommuntyModule.h"
  9 +
  10 +@implementation CNLiveCommuntyModule
  11 +
  12 ++(instancetype)shareInstance
  13 +{
  14 + static dispatch_once_t onceToken;
  15 + static CNLiveCommuntyModule *bridge = nil;
  16 + dispatch_once(&onceToken, ^{
  17 + bridge = [[CNLiveCommuntyModule alloc] init];
  18 + });
  19 + return bridge;
  20 +}
  21 +
  22 +- (instancetype)init
  23 +{
  24 + self = [super init];
  25 + if (self) {
  26 + self.protocol = [NSClassFromString(@"CNLiveCommunitModuleImpl") new];
  27 + }
  28 + return self;
  29 +}
  30 +
  31 +/// 跳转社区组件的主界面(如果已经选择过了就会直接进去,没有则需要进行重新选择)
  32 +-(void)pushCommuntyHomeViewMethod
  33 +{
  34 + NSString * nbhdId = (NSString *)[[NSUserDefaults standardUserDefaults] objectForKey:kCNLiveCommuntyNBhdIdIdentifier];
  35 + if ([nbhdId isNotBlank]) {
  36 + CNLiveCommuntViewController * homeVC = [[CNLiveCommuntViewController alloc] initWithNBhdId:nbhdId];
  37 + [[CNLiveCommuntTools cCommunt_currentViewController].navigationController pushViewController:homeVC animated:YES];
  38 + }else{
  39 + CNLiveCommuntyHomeListViewController * homeListVC = [[CNLiveCommuntyHomeListViewController alloc] init];
  40 + [[CNLiveCommuntTools cCommunt_currentViewController].navigationController pushViewController:homeListVC animated:YES];
  41 + }
  42 +}
  43 +/// 获取支付回调
  44 +/// @param paramDict 支付参数
  45 +-(void)pushCommuntyPayResultWithParamDict:(NSDictionary *)paramDict
  46 +{
  47 +
  48 +}
  49 +@end
... ...
CNLiveCommunitModule/Classes/Model/CNLiveCommuntyHomeModel.h 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/Model/CNLiveCommuntyHomeModel.h
  1 +//
  2 +// CNLiveCommuntyHomeModel.h
  3 +// CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/9.
  6 +//
  7 +
  8 +#import <Foundation/Foundation.h>
  9 +@class CNLiveCommuntySubHomeModel;
  10 +@class CNLiveCommuntyActivityHomeListModel;
  11 +NS_ASSUME_NONNULL_BEGIN
  12 +
  13 +@interface CNLiveCommuntyHomeModel : NSObject
  14 +@property (nonatomic, strong) NSArray<CNLiveCommuntySubHomeModel *> *contentColumnList;
  15 +@property (nonatomic, strong) NSMutableArray<NSString *> *titles;
  16 +@property (nonatomic, copy) NSString *cmsColumnId;
  17 +@property (nonatomic, copy) NSString *columnImg;
  18 +@property (nonatomic, copy) NSString *idStr;
  19 +@property (nonatomic, copy) NSString *cmsPageId;
  20 +@property (nonatomic, copy) NSString *cmsPageType;
  21 +@property (nonatomic, copy) NSString *type;
  22 +@property (nonatomic, copy) NSString *columnName;
  23 +@property (nonatomic, copy) NSString *columnImgUncheck;
  24 +@property (nonatomic, copy) NSString *columnColour;
  25 +@property (nonatomic, copy) NSString *columnColourUncheck;
  26 +@property (nonatomic, copy) NSString *cmsColumnName;
  27 +@property (nonatomic, copy) NSString *parentColumnId;
  28 +
  29 +@end
  30 +
  31 +@interface CNLiveCommuntySubHomeModel : NSObject
  32 +@property (nonatomic, copy) NSString *cmsColumnId;
  33 +@property (nonatomic, copy) NSString *columnImg;
  34 +@property (nonatomic, copy) NSString *idStr;
  35 +@property (nonatomic, copy) NSString *type;
  36 +@property (nonatomic, copy) NSString *cmsPageId;
  37 +@property (nonatomic, copy) NSString *cmsPageType;
  38 +@property (nonatomic, copy) NSString *columnName;
  39 +@property (nonatomic, copy) NSString *columnImgUncheck;
  40 +@property (nonatomic, copy) NSString *columnColour;
  41 +@property (nonatomic, copy) NSString *columnColourUncheck;
  42 +@property (nonatomic, copy) NSString *cmsColumnName;
  43 +@property (nonatomic, copy) NSString *parentColumnId;
  44 +@end
  45 +
  46 +@interface CNLiveCommuntyHomeListModel : NSObject
  47 +@property (nonatomic, copy) NSString *idStr;
  48 +@property (nonatomic, copy) NSString *propertyId;
  49 +@property (nonatomic, copy) NSString *name;
  50 +@property (nonatomic, copy) NSString *locality;
  51 +@property (nonatomic, copy) NSString *address;
  52 +@end
  53 +
  54 +@interface CNLiveCommuntyActivityHomeListModel : NSObject
  55 +@property (nonatomic, copy) NSString *idStr;
  56 +@property (nonatomic, copy) NSString *name;
  57 +@property (nonatomic, copy) NSString *publicityPic;
  58 +@property (nonatomic, copy) NSString *imgUrl;
  59 +@property (nonatomic, copy) NSString *endTime;
  60 +@property (nonatomic, copy) NSString *startTime;
  61 +@property (nonatomic, copy) NSString *status;
  62 +@property (nonatomic, copy) NSString *statusString;
  63 +@end
  64 +
  65 +@interface CNLiveCommuntyActivityRecordListModel : NSObject
  66 +@property (nonatomic, copy) NSString *name;
  67 +@property (nonatomic, copy) NSString *handworkId;
  68 +@property (nonatomic, copy) NSString *refundStatus;
  69 +@property (nonatomic, copy) NSString *refundApplyTime;
  70 +@property (nonatomic, copy) NSString *mobile;
  71 +@property (nonatomic, copy) NSString *isFeedback;
  72 +@property (nonatomic, copy) NSString *orderId;
  73 +@property (nonatomic, copy) NSString *oid;
  74 +@property (nonatomic, copy) NSString *gender;
  75 +@property (nonatomic, copy) NSString *amount;
  76 +@property (nonatomic, copy) NSString *age;
  77 +@property (nonatomic, copy) NSString *paymentStatus;
  78 +@property (nonatomic, copy) NSString *createUser;
  79 +@property (nonatomic, copy) NSString *handworkName;
  80 +@property (nonatomic, copy) NSString *refundAmount;
  81 +@property (nonatomic, copy) NSString *idStr;
  82 +@property (nonatomic, copy) NSString *refundUser;
  83 +@property (nonatomic, copy) NSString *publicityPic;
  84 +@property (nonatomic, copy) NSString *imgUrl;
  85 +@property (nonatomic, copy) NSString *sid;
  86 +@property (nonatomic, strong) NSNumber *createTime;
  87 +@property (nonatomic, copy) NSString *createTimeString;
  88 +@property (nonatomic, copy) NSString *refundMsg;
  89 +@end
  90 +
  91 +@interface CNLiveCommuntyActivityRepairListModel : NSObject
  92 +@property (nonatomic, copy) NSString *repairTime;
  93 +@property (nonatomic, copy) NSString *payTime;
  94 +@property (nonatomic, copy) NSString *address;
  95 +@property (nonatomic, copy) NSString *userName;
  96 +@property (nonatomic, copy) NSString *repairId;
  97 +@property (nonatomic, copy) NSString *userId;
  98 +@property (nonatomic, copy) NSString *payType;
  99 +@property (nonatomic, copy) NSString *intentEndTime;
  100 +@property (nonatomic, copy) NSString *status;
  101 +@property (nonatomic, copy) NSString *statusString;
  102 +@property (nonatomic, copy) NSString *repairProject;
  103 +@property (nonatomic, copy) NSString *idStr;
  104 +@property (nonatomic, copy) NSString *neighboorHoodId;
  105 +@property (nonatomic, copy) NSString *transId;
  106 +@property (nonatomic, copy) NSString *cancleTime;
  107 +@property (nonatomic, copy) NSString *phone;
  108 +@property (nonatomic, copy) NSString *totalFee;
  109 +@property (nonatomic, copy) NSString *intentBeginTime;
  110 +@property (nonatomic, copy) NSString *remark;
  111 +@property (nonatomic, strong) NSNumber *createTime;
  112 +@property (nonatomic, copy) NSString *createTimeString;
  113 +@property (nonatomic, copy) NSString *repairName;
  114 +@property (nonatomic, copy) NSString *createId;
  115 +@end
  116 +
  117 +@interface CNLiveCommuntyActivityMaintainsListModel : NSObject
  118 +@property (nonatomic, copy) NSString *idStr;
  119 +@property (nonatomic, copy) NSString *name;
  120 +@property (nonatomic, strong) NSNumber *createTime;
  121 +@property (nonatomic, copy) NSString *status;
  122 +@property (nonatomic, copy) NSString *deleteFlag;
  123 +@property (nonatomic, copy) NSString *oid;
  124 +@property (nonatomic, copy) NSString *createTimeString;
  125 +@end
  126 +
  127 +@interface CNLiveCommuntyActivityMaintainsTimeModel : NSObject
  128 +@property (nonatomic, copy) NSString *day;
  129 +@property (nonatomic, strong) NSArray<NSString *> *time;
  130 +@end
  131 +
  132 +@interface CNLiveCommuntyActivityMaintainsCreateModel : NSObject
  133 +@property (nonatomic, strong) NSNumber *repairTime;
  134 +@property (nonatomic, copy) NSString *repairTimeString;
  135 +@property (nonatomic, strong) NSNumber *payTime;
  136 +@property (nonatomic, copy) NSString *payTimeString;
  137 +@property (nonatomic, copy) NSString *address;
  138 +@property (nonatomic, copy) NSString *userName;
  139 +@property (nonatomic, copy) NSString *userId;
  140 +@property (nonatomic, copy) NSString *repairId;
  141 +@property (nonatomic, copy) NSString *payType;
  142 +@property (nonatomic, strong) NSNumber *intentEndTime;
  143 +@property (nonatomic, copy) NSString *intentEndTimeString;
  144 +@property (nonatomic, copy) NSString *status;
  145 +@property (nonatomic, copy) NSString *repairProject;
  146 +@property (nonatomic, copy) NSString *idStr;
  147 +@property (nonatomic, copy) NSString *neighboorHoodId;
  148 +@property (nonatomic, copy) NSString *transId;
  149 +@property (nonatomic, copy) NSString *phone;
  150 +@property (nonatomic, copy) NSString *totalFee;
  151 +@property (nonatomic, copy) NSString *remark;
  152 +@property (nonatomic, copy) NSString *name;
  153 +@property (nonatomic, copy) NSString *mobile;
  154 +@property (nonatomic, strong) NSNumber *intentBeginTime;
  155 +@property (nonatomic, copy) NSString *intentBeginTimeString;
  156 +@property (nonatomic, strong) NSNumber *cancleTime;
  157 +@property (nonatomic, copy) NSString *cancleTimeString;
  158 +@property (nonatomic, strong) NSNumber *createTime;
  159 +@property (nonatomic, copy) NSString *createTimeString;
  160 +@property (nonatomic, copy) NSString *repairName;
  161 +@property (nonatomic, copy) NSString *createId;
  162 +//订单信息
  163 +@property (nonatomic, strong) NSMutableArray * infoArray;
  164 +//流程信息
  165 +@property (nonatomic, strong) NSMutableArray * processArray;
  166 +//对应 CNLiveCommuntyOrderShowType
  167 +@property (nonatomic, assign) NSInteger showType;
  168 +@end
  169 +
  170 +
  171 +@interface CNLiveCommuntyActivityDetailModel : NSObject
  172 +@property (nonatomic, copy) NSString *craftId;
  173 +@property (nonatomic, copy) NSString *signupVoList;
  174 +@property (nonatomic, copy) NSString *neighborhoodId;
  175 +@property (nonatomic, copy) NSString *summaryPic;
  176 +@property (nonatomic, copy) NSString *idStr;
  177 +@property (nonatomic, copy) NSString *processDesc;
  178 +@property (nonatomic, copy) NSString *unitPrice;
  179 +@property (nonatomic, copy) NSString *publicityPic;
  180 +@property (nonatomic, copy) NSString *duration;
  181 +@property (nonatomic, copy) NSString *name;
  182 +@property (nonatomic, copy) NSString *mobile;
  183 +@property (nonatomic, copy) NSString *desc;
  184 +@property (nonatomic, copy) NSString *oid;
  185 +@property (nonatomic, copy) NSString *craftName;
  186 +@property (nonatomic, copy) NSString *updatorId;
  187 +@property (nonatomic, copy) NSString *creatorId;
  188 +@property (nonatomic, copy) NSString *signupStartTime;
  189 +@property (nonatomic, copy) NSString *signupNum;
  190 +@property (nonatomic, copy) NSString *summary;
  191 +@property (nonatomic, copy) NSString *status;
  192 +@property (nonatomic, copy) NSString *location;
  193 +@property (nonatomic, copy) NSString *organizer;
  194 +@property (nonatomic, copy) NSString *personLimit;
  195 +
  196 +@property (nonatomic, strong) NSNumber *endTime;
  197 +@property (nonatomic, strong) NSNumber *startTime;
  198 +@property (nonatomic, strong) NSNumber *createTime;
  199 +@property (nonatomic, strong) NSNumber *updateTime;
  200 +@property (nonatomic, strong) NSNumber *signupEndTime;
  201 +
  202 +@property (nonatomic, copy) NSString *endTimeString;
  203 +@property (nonatomic, copy) NSString *startTimeString;
  204 +@property (nonatomic, copy) NSString *createTimeString;
  205 +@property (nonatomic, copy) NSString *updateTimeString;
  206 +@property (nonatomic, copy) NSString *signupEndTimeString;
  207 +@end
  208 +
  209 +@interface CNLiveCommuntyActivitySignUpModel : NSObject
  210 +@property (nonatomic, copy) NSString *status;
  211 +@property (nonatomic, copy) NSString *refundableBalance;
  212 +@property (nonatomic, copy) NSString *idStr;
  213 +@property (nonatomic, copy) NSString *transId;
  214 +@property (nonatomic, strong) NSNumber *updateTime;
  215 +@property (nonatomic, copy) NSString *updateTimeString;
  216 +@property (nonatomic, copy) NSString *totalFee;
  217 +@property (nonatomic, copy) NSString *updatorId;
  218 +@property (nonatomic, copy) NSString *type;
  219 +@property (nonatomic, copy) NSString *payType;
  220 +@property (nonatomic, strong) NSNumber *createTime;
  221 +@property (nonatomic, copy) NSString *createTimeString;
  222 +@end
  223 +
  224 +
  225 +NS_ASSUME_NONNULL_END
... ...
CNLiveCommunitModule/Classes/Model/CNLiveCommuntyHomeModel.m 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/Model/CNLiveCommuntyHomeModel.m
  1 +//
  2 +// CNLiveCommuntyHomeModel.m
  3 +// CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/9.
  6 +//
  7 +
  8 +#import "CNLiveCommuntyHomeModel.h"
  9 +
  10 +@implementation CNLiveCommuntyHomeModel
  11 +
  12 +MJCodingImplementation
  13 +
  14 ++ (NSDictionary *)mj_replacedKeyFromPropertyName
  15 +{
  16 + return @{@"idStr":@"id"};
  17 +}
  18 ++ (NSDictionary *)mj_objectClassInArray
  19 +{
  20 + return @{@"contentColumnList":@"CNLiveCommuntySubHomeModel"};
  21 +}
  22 +- (id)mj_newValueFromOldValue:(id)oldValue property:(MJProperty *)property
  23 +{
  24 + if ([property.name isEqualToString:@"contentColumnList"]) {
  25 + NSArray * columList = (NSArray *)oldValue;
  26 + self.titles = [[NSMutableArray alloc] init];
  27 + for (NSDictionary * subDict in columList) {
  28 + [self.titles addObject:[subDict stringValueForKey:@"columnName" default:@""]];
  29 + }
  30 + }
  31 + return oldValue;
  32 +}
  33 +@end
  34 +
  35 +@implementation CNLiveCommuntySubHomeModel
  36 +
  37 +MJCodingImplementation
  38 +
  39 ++ (NSDictionary *)mj_replacedKeyFromPropertyName
  40 +{
  41 + return @{@"idStr":@"id"};
  42 +}
  43 +
  44 +@end
  45 +
  46 +
  47 +@implementation CNLiveCommuntyHomeListModel
  48 +
  49 +MJCodingImplementation
  50 +
  51 ++ (NSDictionary *)mj_replacedKeyFromPropertyName
  52 +{
  53 + return @{@"idStr":@"id"};
  54 +}
  55 +
  56 +@end
  57 +
  58 +
  59 +@implementation CNLiveCommuntyActivityHomeListModel
  60 +
  61 +MJCodingImplementation
  62 +
  63 ++ (NSDictionary *)mj_replacedKeyFromPropertyName
  64 +{
  65 + return @{@"idStr":@"id",@"desc":@"description"};
  66 +}
  67 +
  68 +- (id)mj_newValueFromOldValue:(id)oldValue property:(MJProperty *)property
  69 +{
  70 + if ([property.name isEqualToString:@"publicityPic"]) {
  71 + if ([oldValue cn_containsString:@","]) {
  72 + self.imgUrl = [(NSString *)oldValue componentsSeparatedByString:@","].firstObject;
  73 + }else{
  74 + self.imgUrl = oldValue;
  75 + }
  76 + }
  77 + if ([property.name isEqualToString:@"status"]) {
  78 + NSString * s = [NSString stringWithFormat:@"%@",oldValue];
  79 + if ([s isEqualToString:@"1"]) self.statusString = @"未开始";
  80 + if ([s isEqualToString:@"2"]) self.statusString = @"进行中";
  81 + if ([s isEqualToString:@"3"]) self.statusString = @"已结束";
  82 + }
  83 + return oldValue;
  84 +}
  85 +
  86 +@end
  87 +
  88 +@implementation CNLiveCommuntyActivityRecordListModel
  89 +MJCodingImplementation
  90 +
  91 ++ (NSDictionary *)mj_replacedKeyFromPropertyName
  92 +{
  93 + return @{@"idStr":@"id"};
  94 +}
  95 +- (id)mj_newValueFromOldValue:(id)oldValue property:(MJProperty *)property
  96 +{
  97 + if ([property.name isEqualToString:@"createTime"]) {
  98 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([oldValue doubleValue]/1000)];
  99 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  100 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
  101 + self.createTimeString = [dateFormatter stringFromDate:detaildate];
  102 + }
  103 + if ([property.name isEqualToString:@"publicityPic"]) {
  104 + if ([oldValue cn_containsString:@","]) {
  105 + self.imgUrl = [(NSString *)oldValue componentsSeparatedByString:@","].firstObject;
  106 + }else{
  107 + self.imgUrl = oldValue;
  108 + }
  109 + }
  110 + return oldValue;
  111 +}
  112 +
  113 +@end
  114 +
  115 +@implementation CNLiveCommuntyActivityRepairListModel
  116 +
  117 +MJCodingImplementation
  118 +
  119 ++ (NSDictionary *)mj_replacedKeyFromPropertyName
  120 +{
  121 + return @{@"idStr":@"id"};
  122 +}
  123 +- (id)mj_newValueFromOldValue:(id)oldValue property:(MJProperty *)property
  124 +{
  125 + if ([property.name isEqualToString:@"status"]) {
  126 + NSString * s = [NSString stringWithFormat:@"%@",oldValue];
  127 + if ([s isEqualToString:@"0"]) self.statusString = @"待受理";
  128 + if ([s isEqualToString:@"1"]) self.statusString = @"处理中";
  129 + if ([s isEqualToString:@"2"]) self.statusString = @"已失效";
  130 + if ([s isEqualToString:@"3"]) self.statusString = @"已完成";
  131 + }
  132 + if ([property.name isEqualToString:@"createTime"]) {
  133 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([oldValue doubleValue]/1000)];
  134 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  135 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
  136 + self.createTimeString = [dateFormatter stringFromDate:detaildate];
  137 + }
  138 + return oldValue;
  139 +}
  140 +
  141 +@end
  142 +
  143 +@implementation CNLiveCommuntyActivityMaintainsListModel
  144 +MJCodingImplementation
  145 +
  146 ++ (NSDictionary *)mj_replacedKeyFromPropertyName
  147 +{
  148 + return @{@"idStr":@"id"};
  149 +}
  150 +- (id)mj_newValueFromOldValue:(id)oldValue property:(MJProperty *)property
  151 +{
  152 + if ([property.name isEqualToString:@"createTime"]) {
  153 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([oldValue doubleValue]/1000)];
  154 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  155 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
  156 + self.createTimeString = [dateFormatter stringFromDate:detaildate];
  157 + }
  158 + return oldValue;
  159 +}
  160 +
  161 +@end
  162 +
  163 +@implementation CNLiveCommuntyActivityMaintainsTimeModel
  164 +
  165 +
  166 +@end
  167 +
  168 +@implementation CNLiveCommuntyActivityMaintainsCreateModel
  169 +
  170 +MJCodingImplementation
  171 +- (instancetype)init
  172 +{
  173 + self = [super init];
  174 + if (self) {
  175 + self.infoArray = [[NSMutableArray alloc] init];
  176 + self.processArray = [[NSMutableArray alloc] init];
  177 + }
  178 + return self;
  179 +}
  180 ++ (NSDictionary *)mj_replacedKeyFromPropertyName
  181 +{
  182 + return @{@"idStr":@"id"};
  183 +}
  184 +- (void)mj_didConvertToObjectWithKeyValues:(NSDictionary *)keyValues
  185 +{
  186 + self.infoArray = [[NSMutableArray alloc] init];
  187 + self.processArray = [[NSMutableArray alloc] initWithArray:@[@"",@"",@"",@""]];
  188 + [keyValues enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
  189 + key = [NSString stringWithFormat:@"%@",key];
  190 + obj = [NSString stringWithFormat:@"%@",obj];
  191 + NSMutableDictionary * tempDict = [[NSMutableDictionary alloc] init];
  192 + if (![obj isKindOfClass:NSNull.class] && [obj isNotBlank] && [key isEqualToString:@"userName"]) {//联系人
  193 + [tempDict addString:@"联 系 人" forKey:@"key"];
  194 + [tempDict addString:obj forKey:@"value"];
  195 + [self.infoArray addObject:tempDict];
  196 + }
  197 + if (![obj isKindOfClass:NSNull.class] && [obj isNotBlank] && [key isEqualToString:@"address"]) {//联系地址
  198 + [tempDict addString:@"联系地址" forKey:@"key"];
  199 + [tempDict addString:obj forKey:@"value"];
  200 + [self.infoArray addObject:tempDict];
  201 + }
  202 + if (![obj isKindOfClass:NSNull.class] && [obj isNotBlank] && [key isEqualToString:@"phone"]) {//联系电话
  203 + [tempDict addString:@"联系电话" forKey:@"key"];
  204 + [tempDict addString:obj forKey:@"value"];
  205 + [self.infoArray addObject:tempDict];
  206 + }
  207 + if (![obj isKindOfClass:NSNull.class] && [obj isNotBlank] && [key isEqualToString:@"repairName"]) {//选择项目
  208 + [tempDict addString:@"选择项目" forKey:@"key"];
  209 + [tempDict addString:obj forKey:@"value"];
  210 + [self.infoArray addObject:tempDict];
  211 + }
  212 + if (![obj isKindOfClass:NSNull.class] && [obj isNotBlank] && [key isEqualToString:@"intentBeginTime"]) {//联系地址
  213 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([obj doubleValue]/1000)];
  214 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  215 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
  216 + [tempDict addString:@"预约时间" forKey:@"key"];
  217 + [tempDict addString:[dateFormatter stringFromDate:detaildate] forKey:@"value"];
  218 + [self.infoArray addObject:tempDict];
  219 + }
  220 + if (![obj isEqualToString:@"<null>"] && [obj isNotBlank] && [key isEqualToString:@"createTime"]) {
  221 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([obj doubleValue]/1000)];
  222 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  223 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
  224 + [tempDict addString:@"用户提交报修订单" forKey:@"key"];
  225 + [tempDict addString:[dateFormatter stringFromDate:detaildate] forKey:@"value"];
  226 + [self.processArray replaceObjectAtIndex:0 withObject:tempDict];
  227 + }
  228 + if (![obj isEqualToString:@"<null>"] && [obj isNotBlank] && [key isEqualToString:@"repairTime"]) {
  229 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([obj doubleValue]/1000)];
  230 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  231 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
  232 + [tempDict addString:@"维修人员已接单" forKey:@"key"];
  233 + [tempDict addString:[dateFormatter stringFromDate:detaildate] forKey:@"value"];
  234 + [self.processArray replaceObjectAtIndex:1 withObject:tempDict];
  235 + }
  236 + if (![obj isEqualToString:@"<null>"] && [obj isNotBlank] && [key isEqualToString:@"payTime"]) {
  237 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([obj doubleValue]/1000)];
  238 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  239 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
  240 + [tempDict addString:@"完成维修并支付" forKey:@"key"];
  241 + [tempDict addString:[dateFormatter stringFromDate:detaildate] forKey:@"value"];
  242 + [self.processArray replaceObjectAtIndex:2 withObject:tempDict];
  243 + }
  244 + if (![obj isEqualToString:@"<null>"] && [obj isNotBlank] && [key isEqualToString:@"cancleTime"]) {
  245 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([obj doubleValue]/1000)];
  246 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  247 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
  248 + [tempDict addString:@"用户取消报修订单" forKey:@"key"];
  249 + [tempDict addString:[dateFormatter stringFromDate:detaildate] forKey:@"value"];
  250 + [self.processArray replaceObjectAtIndex:3 withObject:tempDict];
  251 + }
  252 + }];
  253 + [self.processArray removeObject:@""];
  254 + for (NSDictionary * subDict in self.processArray) {
  255 + NSString * key = [subDict stringValueForKey:@"key" default:@""];
  256 + if ([key isEqualToString:@"用户提交报修订单"]) self.showType = 0;
  257 + if ([key isEqualToString:@"维修人员已接单"]) self.showType = 1;
  258 + if ([key isEqualToString:@"完成维修并支付"]) self.showType = 2;
  259 + if ([key isEqualToString:@"用户取消报修订单"]) self.showType = 3;
  260 + }
  261 + self.processArray = [[NSMutableArray alloc] initWithArray:[[self.processArray reverseObjectEnumerator] allObjects]];
  262 +}
  263 +- (id)mj_newValueFromOldValue:(id)oldValue property:(MJProperty *)property
  264 +{
  265 + oldValue = [NSString stringWithFormat:@"%@",oldValue];
  266 +
  267 + if (![oldValue isKindOfClass:NSNull.class] && [property.name isEqualToString:@"createTime"]) {
  268 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([oldValue doubleValue]/1000)];
  269 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  270 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
  271 + self.createTimeString = [dateFormatter stringFromDate:detaildate];
  272 + }
  273 + if (![oldValue isEqualToString:@"<null>"] && ![oldValue isKindOfClass:NSNull.class] && [property.name isEqualToString:@"repairTime"]) {
  274 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([oldValue doubleValue]/1000)];
  275 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  276 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
  277 + self.repairTimeString = [dateFormatter stringFromDate:detaildate];
  278 + }
  279 + if (![oldValue isEqualToString:@"<null>"] && ![oldValue isKindOfClass:NSNull.class] && [property.name isEqualToString:@"payTime"]) {
  280 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([oldValue doubleValue]/1000)];
  281 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  282 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
  283 + self.payTimeString = [dateFormatter stringFromDate:detaildate];
  284 + }
  285 + if (![oldValue isEqualToString:@"<null>"] && ![oldValue isKindOfClass:NSNull.class] && [property.name isEqualToString:@"intentEndTime"]) {
  286 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([oldValue doubleValue]/1000)];
  287 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  288 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
  289 + self.intentEndTimeString = [dateFormatter stringFromDate:detaildate];
  290 + }
  291 + if (![oldValue isKindOfClass:NSNull.class] && [property.name isEqualToString:@"intentBeginTime"]) {
  292 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([oldValue doubleValue]/1000)];
  293 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  294 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
  295 + self.intentBeginTimeString = [dateFormatter stringFromDate:detaildate];
  296 + }
  297 + if (![oldValue isEqualToString:@"<null>"] && ![oldValue isKindOfClass:NSNull.class] && [property.name isEqualToString:@"cancleTime"]) {
  298 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([oldValue doubleValue]/1000)];
  299 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  300 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
  301 + self.cancleTimeString = [dateFormatter stringFromDate:detaildate];
  302 + }
  303 + return oldValue;
  304 +}
  305 +
  306 +@end
  307 +
  308 +@implementation CNLiveCommuntyActivityDetailModel
  309 +
  310 +MJCodingImplementation
  311 +
  312 ++ (NSDictionary *)mj_replacedKeyFromPropertyName
  313 +{
  314 + return @{@"idStr":@"id",@"desc":@"description"};
  315 +}
  316 +- (id)mj_newValueFromOldValue:(id)oldValue property:(MJProperty *)property
  317 +{
  318 + oldValue = [NSString stringWithFormat:@"%@",oldValue];
  319 +
  320 + if (![oldValue isKindOfClass:NSNull.class] && [property.name isEqualToString:@"createTime"]) {
  321 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([oldValue doubleValue]/1000)];
  322 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  323 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
  324 + self.createTimeString = [dateFormatter stringFromDate:detaildate];
  325 + }
  326 + if (![oldValue isEqualToString:@"<null>"] && ![oldValue isKindOfClass:NSNull.class] && [property.name isEqualToString:@"endTime"]) {
  327 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([oldValue doubleValue]/1000)];
  328 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  329 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
  330 + self.endTimeString = [dateFormatter stringFromDate:detaildate];
  331 + }
  332 + if (![oldValue isEqualToString:@"<null>"] && ![oldValue isKindOfClass:NSNull.class] && [property.name isEqualToString:@"startTime"]) {
  333 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([oldValue doubleValue]/1000)];
  334 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  335 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
  336 + self.startTimeString = [dateFormatter stringFromDate:detaildate];
  337 + }
  338 + if (![oldValue isEqualToString:@"<null>"] && ![oldValue isKindOfClass:NSNull.class] && [property.name isEqualToString:@"updateTime"]) {
  339 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([oldValue doubleValue]/1000)];
  340 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  341 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
  342 + self.updateTimeString = [dateFormatter stringFromDate:detaildate];
  343 + }
  344 + if (![oldValue isKindOfClass:NSNull.class] && [property.name isEqualToString:@"signupEndTime"]) {
  345 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([oldValue doubleValue]/1000)];
  346 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  347 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
  348 + self.signupEndTimeString = [dateFormatter stringFromDate:detaildate];
  349 + }
  350 + return oldValue;
  351 +}
  352 +
  353 +@end
  354 +
  355 +@implementation CNLiveCommuntyActivitySignUpModel
  356 +MJCodingImplementation
  357 +
  358 ++ (NSDictionary *)mj_replacedKeyFromPropertyName
  359 +{
  360 + return @{@"idStr":@"id"};
  361 +}
  362 +- (id)mj_newValueFromOldValue:(id)oldValue property:(MJProperty *)property
  363 +{
  364 + oldValue = [NSString stringWithFormat:@"%@",oldValue];
  365 +
  366 + if (![oldValue isKindOfClass:NSNull.class] && [property.name isEqualToString:@"createTime"]) {
  367 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([oldValue doubleValue]/1000)];
  368 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  369 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
  370 + self.createTimeString = [dateFormatter stringFromDate:detaildate];
  371 + }
  372 + if (![oldValue isEqualToString:@"<null>"] && ![oldValue isKindOfClass:NSNull.class] && [property.name isEqualToString:@"updateTime"]) {
  373 + NSDate *detaildate = [NSDate dateWithTimeIntervalSince1970:([oldValue doubleValue]/1000)];
  374 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  375 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
  376 + self.updateTimeString = [dateFormatter stringFromDate:detaildate];
  377 + }
  378 + return oldValue;
  379 +}
  380 +
  381 +
  382 +@end
... ...
CNLiveCommunitModule/Classes/View/CNLiveCommuntSignUpView.h 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/View/CNLiveCommuntSignUpView.h
  1 +//
  2 +// CNLiveCommuntSignUpView.h
  3 +// CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/7.
  6 +//
  7 +
  8 +#import <UIKit/UIKit.h>
  9 +#import <WebKit/WebKit.h>
  10 +NS_ASSUME_NONNULL_BEGIN
  11 +
  12 +@interface CNLiveCommuntSignUpView : UIView
  13 +
  14 +/// 显示接单成功弹框
  15 ++(void)showHaveTipSuccessViewCompleterBlock:(void(^)(void))completerBlock;
  16 +
  17 +
  18 +/// 显示收款弹框
  19 +/// @param price 价格
  20 ++(void)showQrTipSuccessViewWithPrice:(NSString *)price PayUrl:(NSString *)payUrl;
  21 +
  22 +/// 显示双选项弹框
  23 +/// @param completerBlock 确认回调
  24 ++(void)showAlertViewWithMessage:(NSString *)message CompleterBlock:(void(^)(void))completerBlock;
  25 +
  26 +@end
  27 +
  28 +
  29 +@protocol CNLiveCommuntSignUpUserViewDelegate <NSObject>
  30 +
  31 +/// 跳转到编辑或添加人员界面
  32 +/// @param subDict 显示信息
  33 +-(void)setCommuntPushAddWithEditUserViewController:(NSDictionary *)subDict;
  34 +
  35 +/// 跳转删除人员
  36 +/// @param subDict 显示信息
  37 +-(void)setCommuntPushAddWithDelectUserViewController:(NSDictionary *)subDict;
  38 +
  39 +/// 选中相关参与人
  40 +/// @param subDict 显示信息
  41 +-(void)setCommuntSelectAddWithEditUserViewController:(NSDictionary *)subDict isSelect:(BOOL)isSelect;
  42 +
  43 +@end
  44 +
  45 +@interface CNLiveCommuntSignUpUserViewCell : UITableViewCell
  46 +
  47 +@property (nonatomic, strong) UIView * mainView;
  48 +@property (nonatomic, strong) UIButton * delectBtn;
  49 +@property (nonatomic, strong) UILabel * nameLabel;
  50 +@property (nonatomic, strong) UILabel * lineLabel;
  51 +@property (nonatomic, strong) UILabel * sexAgeLabel;
  52 +@property (nonatomic, strong) UILabel * phoneLabel;
  53 +@property (nonatomic, strong) UIButton * editButton;
  54 +
  55 +@property (nonatomic, strong) NSDictionary * userDict;
  56 +@property (nonatomic, strong) NSArray * selectArray;
  57 +
  58 +@property (nonatomic, weak) id<CNLiveCommuntSignUpUserViewDelegate> delegate;
  59 +
  60 +@property (nonatomic, assign) BOOL isAddUser;
  61 +
  62 ++(CNLiveCommuntSignUpUserViewCell *)setTableView:(UITableView *)tableView isAddUser:(BOOL)isAddUser UserDict:(NSDictionary *)userDict;
  63 +
  64 +@end
  65 +
  66 +@interface CNLiveCommuntSignUpTextViewCell : UITableViewCell
  67 +
  68 +@property (nonatomic, strong) UIView * mainView;
  69 +@property (nonatomic, strong) UILabel * cententLabel;
  70 +@property (nonatomic, strong) WKWebView * webView;
  71 +
  72 +@property (nonatomic, copy) NSString * desc;
  73 +
  74 ++(CNLiveCommuntSignUpTextViewCell *)setTableView:(UITableView *)tableView Desc:(NSString *)desc;
  75 +@end
  76 +
  77 +@interface CNLiveCommuntSignUpOrderViewCell : UITableViewCell
  78 +
  79 +@property (nonatomic, strong) UIView * mainView;
  80 +@property (nonatomic, strong) UILabel * nameLabel;
  81 +@property (nonatomic, strong) UILabel * cententLabel;
  82 +
  83 +
  84 +@property (nonatomic, strong) NSDictionary * paramDict;
  85 +
  86 ++(CNLiveCommuntSignUpOrderViewCell *)setTableView:(UITableView *)tableView Dict:(NSDictionary *)dict;
  87 +@end
  88 +
  89 +@interface CNLiveCommuntSignUpAmountViewCell : UITableViewCell<UITextFieldDelegate>
  90 +
  91 +@property (nonatomic, strong) UIView * mainView;
  92 +@property (nonatomic, strong) UITextField * amoutField;
  93 +@property (nonatomic, strong) UIButton * qrButton;
  94 +@property (nonatomic, strong) UIButton * payButton;
  95 +
  96 +@property (nonatomic, strong) CNLiveCommuntyActivityMaintainsCreateModel * createModel;
  97 +@property (nonatomic, copy) void(^reloadBlock)(void);
  98 +
  99 ++(CNLiveCommuntSignUpAmountViewCell *)setTableView:(UITableView *)tableView CreateModel:(CNLiveCommuntyActivityMaintainsCreateModel *)createModel ReloadBlock:(void(^)(void))reloadBlock;
  100 +@end
  101 +
  102 +@interface CNLiveCommuntSignUpContactViewCell : UITableViewCell
  103 +
  104 +@property (nonatomic, strong) UIView * mainView;
  105 +@property (nonatomic, strong) UILabel * nameLabel;
  106 +@property (nonatomic, strong) QMUIButton * phoneButton;
  107 +
  108 +@property (nonatomic, strong) CNLiveCommuntyActivityMaintainsCreateModel * createModel;
  109 +
  110 ++(CNLiveCommuntSignUpContactViewCell *)setTableView:(UITableView *)tableView CreateModel:(CNLiveCommuntyActivityMaintainsCreateModel *)createModel;
  111 +
  112 +@end
  113 +
  114 +@interface CNLiveCommuntSignUpDetailViewCell : UITableViewCell
  115 +
  116 +@property (nonatomic, strong) UIView * mainView;
  117 +@property (nonatomic, strong) UILabel * nameLabel;
  118 +@property (nonatomic, strong) UILabel * timeLabel;
  119 +@property (nonatomic, strong) UILabel * topLabel;
  120 +@property (nonatomic, strong) UILabel * lineLabel;
  121 +@property (nonatomic, strong) UILabel * bottemLabel;
  122 +@property (nonatomic, strong) UIImageView * statusView;
  123 +
  124 +@property (nonatomic, assign) BOOL isTop;
  125 +@property (nonatomic, assign) BOOL isBottom;
  126 +@property (nonatomic, strong) NSDictionary * dict;
  127 +
  128 ++(CNLiveCommuntSignUpDetailViewCell *)setTableView:(UITableView *)tableView isTop:(BOOL)isTop isBottom:(BOOL)isbottom Dict:(NSDictionary *)dict;
  129 +
  130 +@end
  131 +
  132 +NS_ASSUME_NONNULL_END
... ...
CNLiveCommunitModule/Classes/View/CNLiveCommuntSignUpView.m 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/View/CNLiveCommuntSignUpView.m
  1 +//
  2 +// CNLiveCommuntSignUpView.m
  3 +// CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/7.
  6 +//
  7 +
  8 +#import "CNLiveCommuntSignUpView.h"
  9 +
  10 +@implementation CNLiveCommuntSignUpView
  11 +
  12 +/// 显示接单成功弹框
  13 ++(void)showHaveTipSuccessViewCompleterBlock:(void(^)(void))completerBlock
  14 +{
  15 + UIView * tipView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
  16 + tipView.backgroundColor = [UIColor whiteColor];
  17 + tipView.layer.masksToBounds = YES;
  18 + tipView.layer.cornerRadius = 10;
  19 +
  20 + QMUIButton * successBtn = [[QMUIButton alloc] initWithFrame:tipView.bounds];
  21 + [successBtn setTitle:@"接单成功!" forState:UIControlStateNormal];
  22 + [successBtn setTitle:@"接单成功!" forState:UIControlStateHighlighted];
  23 + [successBtn setImage:[CNLiveCommuntTools cCommunt_setImageWithName:@"c_communty_result_success"] forState:UIControlStateNormal];
  24 + successBtn.titleLabel.font = [UIFont systemFontOfSize:16];
  25 + successBtn.titleLabel.font = [UIFont boldSystemFontOfSize:16];
  26 + [successBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
  27 + successBtn.imagePosition = QMUIButtonImagePositionTop;
  28 + successBtn.spacingBetweenImageAndTitle = 10;
  29 + [tipView addSubview:successBtn];
  30 +
  31 + QMUIModalPresentationViewController *modalViewController = [[QMUIModalPresentationViewController alloc] init];
  32 + modalViewController.animationStyle = QMUIModalPresentationAnimationStyleFade;
  33 + modalViewController.contentView = tipView;
  34 + [modalViewController showWithAnimated:YES completion:nil];
  35 +
  36 + __weak typeof(modalViewController) weakModalViewController = modalViewController;
  37 + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  38 + [weakModalViewController hideWithAnimated:YES completion:^(BOOL finished) {
  39 + if (completerBlock) completerBlock();
  40 + }];
  41 + });
  42 +}
  43 +
  44 +/// 显示双选项弹框
  45 +/// @param completerBlock 确认回调
  46 ++(void)showAlertViewWithMessage:(NSString *)message CompleterBlock:(void(^)(void))completerBlock
  47 +{
  48 + QMUIAlertAction *action1 = [QMUIAlertAction actionWithTitle:@"取消" style:QMUIAlertActionStyleCancel handler:NULL];
  49 + QMUIAlertAction *action2 = [QMUIAlertAction actionWithTitle:@"确定" style:QMUIAlertActionStyleDefault handler:^(__kindof QMUIAlertController *aAlertController, QMUIAlertAction *action) {
  50 + if (completerBlock) completerBlock();
  51 + }];
  52 + // 弹窗
  53 + QMUIAlertController *alertController = [[QMUIAlertController alloc] initWithTitle:@"提示" message:message preferredStyle:QMUIAlertControllerStyleAlert];
  54 + NSMutableDictionary *titleAttributs = [[NSMutableDictionary alloc] initWithDictionary:alertController.alertTitleAttributes];
  55 + titleAttributs[NSForegroundColorAttributeName] = [UIColor blackColor];
  56 + alertController.alertTitleAttributes = titleAttributs;
  57 +
  58 + action1.buttonAttributes = titleAttributs;
  59 +
  60 + NSMutableDictionary *sureTitleAttributs = [[NSMutableDictionary alloc] initWithDictionary:alertController.alertTitleAttributes];
  61 + sureTitleAttributs[NSForegroundColorAttributeName] = UIColorMake(0, 194, 0);
  62 + action2.buttonAttributes = sureTitleAttributs;
  63 + alertController.alertHeaderBackgroundColor = [UIColor whiteColor];
  64 + alertController.alertSeparatorColor = [UIColor grayColor];
  65 + alertController.alertTitleMessageSpacing = 7;
  66 + alertController.alertButtonBackgroundColor = [UIColor whiteColor];
  67 +
  68 + [alertController addAction:action1];
  69 + [alertController addAction:action2];
  70 + [alertController showWithAnimated:YES];
  71 +}
  72 +
  73 +/// 显示收款弹框
  74 +/// @param price 价格
  75 ++(void)showQrTipSuccessViewWithPrice:(NSString *)price PayUrl:(NSString *)payUrl
  76 +{
  77 + UIView * tipView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth - 60, 300)];
  78 + tipView.backgroundColor = [UIColor whiteColor];
  79 + tipView.layer.masksToBounds = YES;
  80 + tipView.layer.cornerRadius = 10;
  81 +
  82 + UILabel * priceLabel = [[UILabel alloc] init];
  83 + priceLabel.textColor = [UIColor blackColor];
  84 + priceLabel.font = [UIFont systemFontOfSize:17];
  85 + priceLabel.font = [UIFont boldSystemFontOfSize:17];
  86 + priceLabel.textAlignment = NSTextAlignmentCenter;
  87 + priceLabel.text = [NSString stringWithFormat:@"收款金额: %@元",price];
  88 + [tipView addSubview:priceLabel];
  89 + [priceLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  90 + make.centerX.mas_equalTo(tipView);
  91 + make.top.mas_equalTo(tipView).offset(20);
  92 + }];
  93 +
  94 + UIImageView * qrView = [[UIImageView alloc] init];
  95 + qrView.contentMode = UIViewContentModeScaleAspectFill;
  96 + qrView.backgroundColor = [UIColor whiteColor];
  97 + qrView.image = [CNLiveCommuntSignUpView communty_generateWithDefaultQRCodeData:payUrl imageViewWidth:kScreenWidth - 60];
  98 + [tipView addSubview:qrView];
  99 + [qrView mas_makeConstraints:^(MASConstraintMaker *make) {
  100 + make.centerX.mas_equalTo(tipView);
  101 + make.top.mas_equalTo(priceLabel.mas_bottom).offset(15);
  102 + make.size.mas_equalTo(230);
  103 + }];
  104 +
  105 + QMUIModalPresentationViewController *modalViewController = [[QMUIModalPresentationViewController alloc] init];
  106 + modalViewController.animationStyle = QMUIModalPresentationAnimationStyleFade;
  107 + modalViewController.contentView = tipView;
  108 + [modalViewController showWithAnimated:YES completion:nil];
  109 +
  110 +// __weak typeof(modalViewController) weakModalViewController = modalViewController;
  111 +// [payButton addBlockForControlEvents:UIControlEventTouchUpInside block:^(id _Nonnull sender) {
  112 +// [weakModalViewController hideWithAnimated:YES completion:NULL];
  113 +// }];
  114 +}
  115 +
  116 ++ (UIImage *)communty_generateWithDefaultQRCodeData:(NSString *)data imageViewWidth:(CGFloat)imageViewWidth {
  117 +
  118 + CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
  119 + [filter setDefaults];
  120 + NSString *info = data;
  121 + NSData *infoData = [info dataUsingEncoding:NSUTF8StringEncoding];
  122 + [filter setValue:infoData forKeyPath:@"inputMessage"];
  123 + CIImage *outputImage = [filter outputImage];
  124 +
  125 + return [CNLiveCommuntSignUpView communty_createNonInterpolatedUIImageFormCIImage:outputImage withSize:imageViewWidth];
  126 +}
  127 +
  128 +/** 根据CIImage生成指定大小的UIImage */
  129 ++ (UIImage *)communty_createNonInterpolatedUIImageFormCIImage:(CIImage *)image withSize:(CGFloat)size {
  130 + CGRect extent = CGRectIntegral(image.extent);
  131 + CGFloat scale = MIN(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent));
  132 +
  133 + // 1.创建bitmap;
  134 + size_t width = CGRectGetWidth(extent) * scale;
  135 + size_t height = CGRectGetHeight(extent) * scale;
  136 + CGColorSpaceRef cs = CGColorSpaceCreateDeviceGray();
  137 + CGContextRef bitmapRef = CGBitmapContextCreate(nil, width, height, 8, 0, cs, (CGBitmapInfo)kCGImageAlphaNone);
  138 + CIContext *context = [CIContext contextWithOptions:nil];
  139 + CGImageRef bitmapImage = [context createCGImage:image fromRect:extent];
  140 + CGContextSetInterpolationQuality(bitmapRef, kCGInterpolationNone);
  141 + CGContextScaleCTM(bitmapRef, scale, scale);
  142 + CGContextDrawImage(bitmapRef, extent, bitmapImage);
  143 +
  144 + // 2.保存bitmap到图片
  145 + CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef);
  146 + CGContextRelease(bitmapRef);
  147 + CGImageRelease(bitmapImage);
  148 + return [UIImage imageWithCGImage:scaledImage];
  149 +}
  150 +
  151 +@end
  152 +
  153 +@implementation CNLiveCommuntSignUpUserViewCell
  154 +
  155 ++(CNLiveCommuntSignUpUserViewCell *)setTableView:(UITableView *)tableView isAddUser:(BOOL)isAddUser UserDict:(nonnull NSDictionary *)userDict
  156 +{
  157 + CNLiveCommuntSignUpUserViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"CNLiveCommuntSignUpViewCell"];
  158 + if (!cell) {
  159 + cell = [[CNLiveCommuntSignUpUserViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CNLiveCommuntSignUpViewCell"];
  160 + }
  161 + cell.userDict = userDict;
  162 + cell.isAddUser = isAddUser;
  163 + return cell;
  164 +}
  165 +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
  166 +{
  167 + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
  168 + if (self) {
  169 + self.selectionStyle = UITableViewCellSelectionStyleNone;
  170 + self.contentView.backgroundColor = [UIColor clearColor];
  171 + self.backgroundColor = [UIColor clearColor];
  172 + [self.contentView addSubview:self.mainView];
  173 + [self.mainView addSubview:self.nameLabel];
  174 + [self.mainView addSubview:self.lineLabel];
  175 + [self.mainView addSubview:self.sexAgeLabel];
  176 + [self.mainView addSubview:self.phoneLabel];
  177 + [self.mainView addSubview:self.delectBtn];
  178 + [self.mainView addSubview:self.editButton];
  179 + }
  180 + return self;
  181 +}
  182 +-(void)setSelectArray:(NSArray *)selectArray
  183 +{
  184 + _selectArray = selectArray;
  185 +
  186 +}
  187 +-(void)setUserDict:(NSDictionary *)userDict
  188 +{
  189 + _userDict = userDict;
  190 + _nameLabel.text = [userDict stringValueForKey:@"name" default:@""];
  191 + _sexAgeLabel.text = [NSString stringWithFormat:@"%@ %@岁",[[userDict stringValueForKey:@"gender" default:@""] isEqualToString:@"0"]?@"女":@"男",[userDict stringValueForKey:@"age" default:@""]];
  192 + _phoneLabel.text = [NSString stringWithFormat:@"联系电话:%@",[userDict stringValueForKey:@"mobile" default:@""]];
  193 +}
  194 +-(void)setIsAddUser:(BOOL)isAddUser
  195 +{
  196 + _isAddUser = isAddUser;
  197 + self.editButton.hidden = !isAddUser;
  198 + if (isAddUser) {
  199 + [self.delectBtn setImage:[CNLiveCommuntTools cCommunt_setImageWithName:@"c_communty_add_user_nomal"] forState:UIControlStateNormal];
  200 + [self.delectBtn setImage:[CNLiveCommuntTools cCommunt_setImageWithName:@"c_communty_add_user_nomal"] forState:UIControlStateHighlighted];
  201 + [self.delectBtn setImage:[CNLiveCommuntTools cCommunt_setImageWithName:@"c_communty_add_user_select"] forState:UIControlStateSelected];
  202 + }else{
  203 + [self.delectBtn setImage:[CNLiveCommuntTools cCommunt_setImageWithName:@"c_communty_list_delect_user"] forState:UIControlStateNormal];
  204 + [self.delectBtn setImage:[CNLiveCommuntTools cCommunt_setImageWithName:@"c_communty_list_delect_user"] forState:UIControlStateHighlighted];
  205 + }
  206 +}
  207 +-(void)selectUserAction:(UIButton *)button
  208 +{
  209 + button.selected = !button.selected;
  210 + if (!self.isAddUser) {
  211 + if ([self.delegate respondsToSelector:@selector(setCommuntPushAddWithDelectUserViewController:)]) {
  212 + [self.delegate setCommuntPushAddWithDelectUserViewController:self.userDict];
  213 + }
  214 + }else{
  215 + if ([self.delegate respondsToSelector:@selector(setCommuntSelectAddWithEditUserViewController:isSelect:)]) {
  216 + [self.delegate setCommuntSelectAddWithEditUserViewController:self.userDict isSelect:button.selected];
  217 + }
  218 + }
  219 +}
  220 +-(void)editUserAction:(UIButton *)button
  221 +{
  222 + if ([self.delegate respondsToSelector:@selector(setCommuntPushAddWithEditUserViewController:)]) {
  223 + [self.delegate setCommuntPushAddWithEditUserViewController:self.userDict];
  224 + }
  225 +}
  226 +-(void)layoutSubviews
  227 +{
  228 + [super layoutSubviews];
  229 + __weak typeof(self) weakSelf = self;
  230 + [self.mainView mas_makeConstraints:^(MASConstraintMaker *make) {
  231 + make.left.mas_equalTo(weakSelf.contentView).offset(10);
  232 + make.right.mas_equalTo(weakSelf.contentView).offset(-10);
  233 + make.top.bottom.mas_equalTo(weakSelf.contentView);
  234 + }];
  235 + [self.delectBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  236 + make.centerY.mas_equalTo(weakSelf.mainView);
  237 + make.left.mas_equalTo(weakSelf.mainView).offset(10);
  238 + make.size.mas_equalTo(20);
  239 + }];
  240 + [self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  241 + make.top.mas_equalTo(weakSelf.mainView).offset(5);
  242 + make.left.mas_equalTo(weakSelf.delectBtn.mas_right).offset(10);
  243 + }];
  244 + [self.lineLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  245 + make.centerY.mas_equalTo(weakSelf.nameLabel);
  246 + make.left.mas_equalTo(weakSelf.nameLabel.mas_right).offset(5);
  247 + make.height.mas_equalTo(15);
  248 + make.width.mas_equalTo(0.5);
  249 + }];
  250 + [self.sexAgeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  251 + make.centerY.mas_equalTo(weakSelf.nameLabel);
  252 + make.left.mas_equalTo(weakSelf.lineLabel.mas_right).offset(5);
  253 + }];
  254 + [self.phoneLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  255 + make.left.mas_equalTo(weakSelf.delectBtn.mas_right).offset(10);
  256 + make.top.mas_equalTo(weakSelf.nameLabel.mas_bottom).offset(5);
  257 + }];
  258 + [self.editButton mas_makeConstraints:^(MASConstraintMaker *make) {
  259 + make.centerY.mas_equalTo(weakSelf.mainView);
  260 + make.right.mas_equalTo(weakSelf.mainView.mas_right).offset(-10);
  261 + make.size.mas_equalTo(20);
  262 + }];
  263 +}
  264 +#pragma mark =
  265 +-(UIView *)mainView
  266 +{
  267 + if (!_mainView) {
  268 + _mainView = [[UIView alloc] init];
  269 + _mainView.backgroundColor = [UIColor whiteColor];
  270 + }
  271 + return _mainView;
  272 +}
  273 +-(UILabel *)nameLabel
  274 +{
  275 + if (!_nameLabel) {
  276 + _nameLabel = [[UILabel alloc] init];
  277 + _nameLabel.textColor = UIColorHex(#333333);
  278 + _nameLabel.lineBreakMode = NSLineBreakByTruncatingTail;
  279 + _nameLabel.numberOfLines = 1;
  280 + _nameLabel.font = [UIFont systemFontOfSize:15];
  281 + _nameLabel.font = [UIFont boldSystemFontOfSize:15];
  282 + }
  283 + return _nameLabel;
  284 +}
  285 +-(UILabel *)lineLabel
  286 +{
  287 + if (!_lineLabel) {
  288 + _lineLabel = [[UILabel alloc] init];
  289 + _lineLabel.backgroundColor = UIColorHex(#C8C8C8);
  290 + _lineLabel.hidden = YES;
  291 + }
  292 + return _lineLabel;
  293 +}
  294 +-(UILabel *)sexAgeLabel
  295 +{
  296 + if (!_sexAgeLabel) {
  297 + _sexAgeLabel = [[UILabel alloc] init];
  298 + _sexAgeLabel.textColor = UIColorHex(#8A8A8A);
  299 + _sexAgeLabel.lineBreakMode = NSLineBreakByTruncatingTail;
  300 + _sexAgeLabel.numberOfLines = 1;
  301 + _sexAgeLabel.font = [UIFont systemFontOfSize:11];
  302 + _sexAgeLabel.font = [UIFont boldSystemFontOfSize:11];
  303 + }
  304 + return _sexAgeLabel;
  305 +}
  306 +-(UILabel *)phoneLabel
  307 +{
  308 + if (!_phoneLabel) {
  309 + _phoneLabel = [[UILabel alloc] init];
  310 + _phoneLabel.textColor = UIColorHex(#8A8A8A);
  311 + _phoneLabel.lineBreakMode = NSLineBreakByTruncatingTail;
  312 + _phoneLabel.numberOfLines = 1;
  313 + _phoneLabel.font = [UIFont systemFontOfSize:11];
  314 + _phoneLabel.font = [UIFont boldSystemFontOfSize:11];
  315 + }
  316 + return _phoneLabel;
  317 +}
  318 +-(UIButton *)delectBtn
  319 +{
  320 + if (!_delectBtn) {
  321 + _delectBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  322 + _delectBtn.backgroundColor = [UIColor whiteColor];
  323 + [_delectBtn addTarget:self action:@selector(selectUserAction:) forControlEvents:UIControlEventTouchUpInside];
  324 + }
  325 + return _delectBtn;
  326 +}
  327 +-(UIButton *)editButton
  328 +{
  329 + if (!_editButton) {
  330 + _editButton = [UIButton buttonWithType:UIButtonTypeCustom];
  331 + [_editButton setImage:[CNLiveCommuntTools cCommunt_setImageWithName:@"c_communty_list_edit_user"] forState:UIControlStateNormal];
  332 + _editButton.backgroundColor = [UIColor whiteColor];
  333 + [_editButton addTarget:self action:@selector(editUserAction:) forControlEvents:UIControlEventTouchUpInside];
  334 + }
  335 + return _editButton;
  336 +}
  337 +@end
  338 +
  339 +
  340 +@implementation CNLiveCommuntSignUpTextViewCell
  341 +
  342 ++(CNLiveCommuntSignUpTextViewCell *)setTableView:(UITableView *)tableView Desc:(nonnull NSString *)desc
  343 +{
  344 + CNLiveCommuntSignUpTextViewCell * textCell = [tableView dequeueReusableCellWithIdentifier:@"CNLiveCommuntSignUpTextViewCell"];
  345 + if (!textCell) {
  346 + textCell = [[CNLiveCommuntSignUpTextViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CNLiveCommuntSignUpTextViewCell"];
  347 + }
  348 + textCell.desc = desc;
  349 + return textCell;
  350 +}
  351 +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
  352 +{
  353 + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
  354 + if (self) {
  355 + self.contentView.backgroundColor = [UIColor clearColor];
  356 + self.selectionStyle = UITableViewCellSelectionStyleNone;
  357 + self.backgroundColor = [UIColor clearColor];
  358 + [self.contentView addSubview:self.mainView];
  359 + [self.mainView addSubview:self.webView];
  360 + }
  361 + return self;
  362 +}
  363 +-(void)setDesc:(NSString *)desc
  364 +{
  365 + [self.webView loadHTMLString:[NSString stringWithFormat:[self loadDocumentHTML],desc] baseURL:nil];
  366 +}
  367 +
  368 +-(void)layoutSubviews
  369 +{
  370 + [super layoutSubviews];
  371 + __weak typeof(self) weakSelf = self;
  372 + [self.mainView mas_makeConstraints:^(MASConstraintMaker *make) {
  373 + make.left.top.mas_equalTo(weakSelf.contentView).offset(10);
  374 + make.bottom.right.mas_equalTo(weakSelf.contentView).offset(-10);
  375 + }];
  376 + [self.webView mas_makeConstraints:^(MASConstraintMaker *make) {
  377 +// make.left.top.mas_equalTo(weakSelf.mainView).offset(10);
  378 +// make.right.bottom.mas_equalTo(weakSelf.mainView).offset(-10);
  379 + make.edges.mas_equalTo(weakSelf.mainView);
  380 + }];
  381 +}
  382 +-(UIView *)mainView
  383 +{
  384 + if (!_mainView) {
  385 + _mainView = [[UIView alloc] init];
  386 + _mainView.backgroundColor = [UIColor whiteColor];
  387 + _mainView.layer.masksToBounds = YES;
  388 + _mainView.layer.cornerRadius = 8;
  389 + }
  390 + return _mainView;
  391 +}
  392 +-(WKWebView *)webView
  393 +{
  394 + if (!_webView) {
  395 + WKWebViewConfiguration * configuration = [[WKWebViewConfiguration alloc] init];
  396 + configuration.preferences.javaScriptEnabled = NO;//打开js交互
  397 + _webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:configuration];
  398 + _webView.backgroundColor = [UIColor whiteColor];
  399 + _webView.allowsBackForwardNavigationGestures = NO;//打开网页间的 滑动返回
  400 + _webView.scrollView.decelerationRate = UIScrollViewDecelerationRateNormal;
  401 + if (@available(iOS 9.0, *)) _webView.allowsLinkPreview = NO;
  402 +
  403 + }
  404 + return _webView;
  405 +}
  406 +
  407 +-(UILabel *)cententLabel
  408 +{
  409 + if (!_cententLabel) {
  410 + _cententLabel = [[UILabel alloc] init];
  411 + _cententLabel.textColor = UIColorHex(#333333);
  412 + _cententLabel.backgroundColor = [UIColor whiteColor];
  413 + _cententLabel.lineBreakMode = NSLineBreakByCharWrapping;
  414 + _cententLabel.numberOfLines = 0;
  415 + _cententLabel.layer.masksToBounds = YES;
  416 + _cententLabel.layer.cornerRadius = 12;
  417 + _cententLabel.font = [UIFont systemFontOfSize:15];
  418 + _cententLabel.font = [UIFont boldSystemFontOfSize:15];
  419 + _cententLabel.text = @"1. 现场签到 2. 工作人员介绍本次活动内容 3. 老师讲解衍纸制作流程并现场制作 4. 合影留念";
  420 + }
  421 + return _cententLabel;
  422 +}
  423 +-(NSString *)loadDocumentHTML
  424 +{
  425 + return @"<!DOCTYPE html>\n"
  426 + "<html> \n"
  427 + "<head> \n"
  428 + "<meta charset=\"utf-8\" name=\"viewport\" content=\"initial-scale=1.0, maximum-scale=1.0, user-scalable=no\"> \n"
  429 + "<style type=\"text/css\"> \n"
  430 + "body {font-weight: normal;line-height: 0 auto-pos;text-align: left;} \n"
  431 + "</style> \n"
  432 + "</head> \n"
  433 + "<body> \n"
  434 + "%@"
  435 + "</body> \n"
  436 + "</html> \n";
  437 +}
  438 +@end
  439 +
  440 +@implementation CNLiveCommuntSignUpOrderViewCell
  441 +
  442 ++(CNLiveCommuntSignUpOrderViewCell *)setTableView:(UITableView *)tableView Dict:(NSDictionary *)dict
  443 +{
  444 + CNLiveCommuntSignUpOrderViewCell * textCell = [tableView dequeueReusableCellWithIdentifier:@"CNLiveCommuntSignUpOrderView"];
  445 + if (!textCell) {
  446 + textCell = [[CNLiveCommuntSignUpOrderViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CNLiveCommuntSignUpTextViewCell"];
  447 + }
  448 + textCell.paramDict = dict;
  449 + return textCell;
  450 +}
  451 +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
  452 +{
  453 + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
  454 + if (self) {
  455 + self.contentView.backgroundColor = [UIColor clearColor];
  456 + self.selectionStyle = UITableViewCellSelectionStyleNone;
  457 + self.backgroundColor = [UIColor clearColor];
  458 + [self.contentView addSubview:self.mainView];
  459 + [self.mainView addSubview:self.nameLabel];
  460 + [self.mainView addSubview:self.cententLabel];
  461 + }
  462 + return self;
  463 +}
  464 +-(void)layoutSubviews
  465 +{
  466 + [super layoutSubviews];
  467 + __weak typeof(self) weakSelf = self;
  468 + [self.mainView mas_makeConstraints:^(MASConstraintMaker *make) {
  469 + make.left.mas_equalTo(weakSelf.contentView.mas_left).offset(10);
  470 + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-10);
  471 + make.bottom.top.mas_equalTo(weakSelf.contentView);
  472 + }];
  473 +
  474 + [self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  475 + make.left.mas_equalTo(weakSelf.mainView.mas_left).offset(10);
  476 + make.width.mas_equalTo(65);
  477 + make.top.bottom.mas_equalTo(weakSelf.mainView);
  478 + }];
  479 + [self.cententLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  480 + make.left.mas_equalTo(weakSelf.nameLabel.mas_right);
  481 + make.right.mas_equalTo(weakSelf.mainView.mas_right).offset(-10);
  482 + make.top.bottom.mas_equalTo(weakSelf.mainView);
  483 + }];
  484 +}
  485 +-(void)setParamDict:(NSDictionary *)paramDict
  486 +{
  487 + _paramDict = paramDict;
  488 + _nameLabel.text = [paramDict stringValueForKey:@"key" default:@""];
  489 + _cententLabel.text = [paramDict stringValueForKey:@"value" default:@""];
  490 +}
  491 +-(UIView *)mainView
  492 +{
  493 + if (!_mainView) {
  494 + _mainView = [[UIView alloc] init];
  495 + _mainView.backgroundColor = [UIColor whiteColor];
  496 + }
  497 + return _mainView;
  498 +}
  499 +-(UILabel *)nameLabel
  500 +{
  501 + if (!_nameLabel) {
  502 + _nameLabel = [[UILabel alloc] init];
  503 + _nameLabel.textColor = UIColorHex(#999999);
  504 + _nameLabel.lineBreakMode = NSLineBreakByTruncatingTail;
  505 + _nameLabel.numberOfLines = 1;
  506 + _nameLabel.backgroundColor = UIColorHex(#F9F9F9);
  507 + _nameLabel.textAlignment = NSTextAlignmentCenter;
  508 + _nameLabel.font = [UIFont systemFontOfSize:14];
  509 + _nameLabel.font = [UIFont boldSystemFontOfSize:14];
  510 +
  511 + }
  512 + return _nameLabel;
  513 +}
  514 +-(UILabel *)cententLabel
  515 +{
  516 + if (!_cententLabel) {
  517 + _cententLabel = [[UILabel alloc] init];
  518 + _cententLabel.textColor = UIColorHex(#333333);
  519 + _cententLabel.backgroundColor = UIColorHex(#F9F9F9);
  520 + _cententLabel.lineBreakMode = NSLineBreakByCharWrapping;
  521 + _cententLabel.numberOfLines = 1;
  522 + _cententLabel.font = [UIFont systemFontOfSize:15];
  523 + _cententLabel.font = [UIFont boldSystemFontOfSize:15];
  524 +
  525 + }
  526 + return _cententLabel;
  527 +}
  528 +@end
  529 +
  530 +
  531 +@implementation CNLiveCommuntSignUpAmountViewCell
  532 +
  533 ++(CNLiveCommuntSignUpAmountViewCell *)setTableView:(UITableView *)tableView CreateModel:(CNLiveCommuntyActivityMaintainsCreateModel *)createModel ReloadBlock:(nonnull void (^)(void))reloadBlock
  534 +{
  535 + CNLiveCommuntSignUpAmountViewCell * textCell = [tableView dequeueReusableCellWithIdentifier:@"CNLiveCommuntSignUpAmountViewCell"];
  536 + if (!textCell) {
  537 + textCell = [[CNLiveCommuntSignUpAmountViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CNLiveCommuntSignUpAmountViewCell"];
  538 + }
  539 + textCell.reloadBlock = reloadBlock;
  540 + textCell.createModel = createModel;
  541 + return textCell;
  542 +}
  543 +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
  544 +{
  545 + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
  546 + if (self) {
  547 + self.contentView.backgroundColor = [UIColor clearColor];
  548 + self.selectionStyle = UITableViewCellSelectionStyleNone;
  549 + self.backgroundColor = [UIColor clearColor];
  550 + [self.contentView addSubview:self.mainView];
  551 + [self.mainView addSubview:self.amoutField];
  552 + [self.mainView addSubview:self.qrButton];
  553 + [self.mainView addSubview:self.payButton];
  554 + }
  555 + return self;
  556 +}
  557 +-(void)setCreateModel:(CNLiveCommuntyActivityMaintainsCreateModel *)createModel
  558 +{
  559 + _createModel = createModel;
  560 + if ([createModel.totalFee isNotBlank]
  561 + && [createModel.totalFee integerValue] > 0) {
  562 + NSString * p = [NSString stringWithFormat:@"%.2f",([createModel.totalFee floatValue]/100)];
  563 + self.amoutField.text = p;
  564 + self.amoutField.enabled = NO;
  565 + self.amoutField.textColor = UIColorHex(#c8c8c8);
  566 + }
  567 +}
  568 +-(void)layoutSubviews
  569 +{
  570 + [super layoutSubviews];
  571 + __weak typeof(self) weakSelf = self;
  572 + [self.mainView mas_makeConstraints:^(MASConstraintMaker *make) {
  573 + make.left.mas_equalTo(weakSelf.contentView.mas_left).offset(10);
  574 + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-10);
  575 + make.bottom.mas_equalTo(weakSelf.contentView).offset(-10);
  576 + make.top.mas_equalTo(weakSelf.contentView).offset(10);
  577 + }];
  578 + [self.amoutField mas_makeConstraints:^(MASConstraintMaker *make) {
  579 + make.top.mas_equalTo(weakSelf.mainView.mas_top).offset(10);
  580 + make.left.mas_equalTo(weakSelf.mainView.mas_left).offset(10);
  581 + make.right.mas_equalTo(weakSelf.mainView.mas_right).offset(-10);
  582 + make.height.mas_equalTo(40);
  583 + }];
  584 + [self.qrButton mas_makeConstraints:^(MASConstraintMaker *make) {
  585 + make.top.mas_equalTo(weakSelf.amoutField.mas_bottom).offset(10);
  586 + make.left.mas_equalTo(weakSelf.mainView.mas_left).offset(10);
  587 + make.width.mas_equalTo((kScreenWidth - 50)/2);
  588 + make.height.mas_equalTo(40);
  589 + }];
  590 + [self.payButton mas_makeConstraints:^(MASConstraintMaker *make) {
  591 + make.top.mas_equalTo(weakSelf.amoutField.mas_bottom).offset(10);
  592 + make.right.mas_equalTo(weakSelf.mainView.mas_right).offset(-10);
  593 + make.width.mas_equalTo((kScreenWidth - 50)/2);
  594 + make.height.mas_equalTo(40);
  595 + }];
  596 +}
  597 +-(void)qrCreateAction
  598 +{
  599 + if ([self.amoutField.text floatValue] == 0 || ([self.amoutField.text floatValue] < 0.01 && ![self.amoutField.text isEqualToString:@"0.01"])) {
  600 + [QMUITips showError:@"数字输入错误" inView:[CNLiveCommuntTools cCommunt_currentViewController].view hideAfterDelay:2];
  601 + return;
  602 + }
  603 + if (![self isPurerFloat:self.amoutField.text]) {
  604 + [QMUITips showError:@"数字输入错误" inView:[CNLiveCommuntTools cCommunt_currentViewController].view hideAfterDelay:2];
  605 + return;
  606 + }
  607 +
  608 + if ([self.amoutField.text floatValue] >= 999999.99) {
  609 + if (![self.amoutField.text isEqualToString:@"1000000.0"]
  610 + && ![self.amoutField.text isEqualToString:@"1000000"]
  611 + && ![self.amoutField.text isEqualToString:@"1000000.00"]) {
  612 + [QMUITips showWithText:@"最高限额1000000元" inView:[CNLiveCommuntTools cCommunt_currentViewController].view hideAfterDelay:2];
  613 + return;
  614 + }
  615 + }
  616 + if (![CNLiveNetworking isNetworking]) {
  617 + [QMUITips showError:@"似乎与互联网断开连接" inView:[CNLiveCommuntTools cCommunt_currentViewController].view hideAfterDelay:2];
  618 + return;
  619 + }
  620 + __weak typeof(self) weakSelf = self;
  621 + if ([self.createModel.totalFee isNotBlank]
  622 + && [self.createModel.totalFee integerValue] > 0) {
  623 + [CNLiveCommuntViewModel requestWithCommuntyTotalFeeOrderMentOrderId:self.createModel.idStr totalFee:self.amoutField.text CompleterBlock:^(NSString * _Nonnull payUrl) {
  624 + NSString * p = [NSString stringWithFormat:@"%.2f",[self.amoutField.text floatValue]];
  625 + [CNLiveCommuntSignUpView showQrTipSuccessViewWithPrice:p PayUrl:payUrl];
  626 + }];
  627 + }else{
  628 + [CNLiveCommuntSignUpView showAlertViewWithMessage:@"请仔细核对金额,确认后将不可修改" CompleterBlock:^{
  629 + NSString * p = [NSString stringWithFormat:@"%.2f",([weakSelf.createModel.totalFee floatValue]/100)];
  630 + weakSelf.amoutField.text = p;
  631 + weakSelf.amoutField.enabled = NO;
  632 + weakSelf.amoutField.textColor = UIColorHex(#c8c8c8);
  633 + [CNLiveCommuntViewModel requestWithCommuntyTotalFeeOrderMentOrderId:weakSelf.createModel.idStr totalFee:weakSelf.amoutField.text CompleterBlock:^(NSString * _Nonnull payUrl) {
  634 + NSString * p = [NSString stringWithFormat:@"%.2f",[self.amoutField.text floatValue]];
  635 + [CNLiveCommuntSignUpView showQrTipSuccessViewWithPrice:p PayUrl:payUrl];
  636 + }];
  637 + }];
  638 + }
  639 +}
  640 +-(void)payCreateAction
  641 +{
  642 + if ([self.amoutField.text floatValue] == 0 || ([self.amoutField.text floatValue] < 0.01 && ![self.amoutField.text isEqualToString:@"0.01"])) {
  643 + [QMUITips showError:@"数字输入错误" inView:[CNLiveCommuntTools cCommunt_currentViewController].view hideAfterDelay:2];
  644 + return;
  645 + }
  646 + if (![self isPurerFloat:self.amoutField.text]) {
  647 + [QMUITips showError:@"数字输入错误" inView:[CNLiveCommuntTools cCommunt_currentViewController].view hideAfterDelay:2];
  648 + return;
  649 + }
  650 +
  651 + if ([self.amoutField.text floatValue] >= 999999.99) {
  652 + if (![self.amoutField.text isEqualToString:@"1000000.0"]
  653 + && ![self.amoutField.text isEqualToString:@"1000000"]
  654 + && ![self.amoutField.text isEqualToString:@"1000000.00"]) {
  655 + [QMUITips showWithText:@"最高限额1000000元" inView:[CNLiveCommuntTools cCommunt_currentViewController].view hideAfterDelay:2];
  656 + return;
  657 + }
  658 + }
  659 + if (![CNLiveNetworking isNetworking]) {
  660 + [QMUITips showError:@"似乎与互联网断开连接" inView:[CNLiveCommuntTools cCommunt_currentViewController].view hideAfterDelay:2];
  661 + return;
  662 + }
  663 + [CNLiveCommuntViewModel requestWithCommuntyMaintenPayMentOrderId:self.createModel.idStr CompleterBlock:self.reloadBlock];
  664 +}
  665 +#pragma mark =
  666 +- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
  667 +{
  668 + if (![self checkDecimal:[textField.text stringByAppendingString:string]]) {
  669 + if (textField.text.length > 0
  670 + && ([string isEqualToString:@"."])
  671 + && ![textField.text containsString:@"."]) {
  672 + return YES;
  673 + }
  674 + return [string isEqualToString:@""] ? YES : NO;
  675 + }
  676 + return YES;
  677 +}
  678 +- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
  679 +{
  680 + if ([textField.text isNotBlank] && textField.text.length > 10) {
  681 + [QMUITips showWithText:@"最长10位!超出部分会在输入完成时自动删除" inView:[CNLiveCommuntTools cCommunt_currentViewController].view hideAfterDelay:2];
  682 + //如果是表情的话 这里容易截断显示
  683 + textField.text = [textField.text substringToIndex:10];
  684 + }
  685 + return YES;
  686 +}
  687 +/// 判断是否是两位小数
  688 +- (BOOL)checkDecimal:(NSString *)str
  689 +{
  690 + NSString *regex = @"^[0-9]+(\\.[0-9]{1,2})?$";
  691 + NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
  692 + return [pred evaluateWithObject:str];
  693 +}
  694 +- (BOOL)isPureFloat:(NSString *)string{
  695 + NSScanner* scan = [NSScanner scannerWithString:string];
  696 + float val;
  697 + return [scan scanFloat:&val] && [scan isAtEnd];
  698 +}
  699 +- (BOOL)isPurerFloat:(NSString*)string{
  700 +
  701 + if ([self isPureFloat:string]) {
  702 + float f = [string floatValue];
  703 + if (f >= 0) {
  704 + return YES;
  705 + }else{
  706 + return NO;
  707 + }
  708 + }
  709 + return NO;
  710 +}
  711 +#pragma mark =
  712 +-(UIView *)mainView
  713 +{
  714 + if (!_mainView) {
  715 + _mainView = [[UIView alloc] init];
  716 + _mainView.backgroundColor = [UIColor whiteColor];
  717 + _mainView.layer.masksToBounds = YES;
  718 + _mainView.layer.cornerRadius = 8;
  719 + }
  720 + return _mainView;
  721 +}
  722 +-(UITextField *)amoutField
  723 +{
  724 + if (!_amoutField) {
  725 + _amoutField = [[UITextField alloc] init];
  726 + _amoutField.backgroundColor = UIColorHex(#F9F9F9);
  727 + _amoutField.font = [UIFont systemFontOfSize:14.0f];
  728 + _amoutField.textColor = UIColorHex(#333333);
  729 + _amoutField.clearButtonMode = UITextFieldViewModeWhileEditing;
  730 + _amoutField.clearsOnBeginEditing = YES;
  731 + _amoutField.keyboardType = UIKeyboardTypeDefault;
  732 + _amoutField.textAlignment = NSTextAlignmentLeft;
  733 + _amoutField.keyboardType = UIKeyboardTypeDecimalPad;
  734 + _amoutField.minimumFontSize = 8;
  735 + _amoutField.placeholder = @"请输入金额";
  736 + _amoutField.returnKeyType = UIReturnKeyDone;
  737 + _amoutField.layer.masksToBounds = YES;
  738 + _amoutField.layer.cornerRadius = 5;
  739 + _amoutField.delegate = self;
  740 + }
  741 + return _amoutField;
  742 +}
  743 +-(UIButton *)qrButton
  744 +{
  745 + if (!_qrButton) {
  746 + _qrButton = [UIButton buttonWithType:UIButtonTypeCustom];
  747 + [_qrButton setTitle:@"生成二维码" forState:UIControlStateNormal];
  748 + [_qrButton setTitleColor:UIColorHex(#FD862E) forState:UIControlStateNormal];
  749 + _qrButton.titleLabel.font = [UIFont systemFontOfSize:13];
  750 + _qrButton.titleLabel.font = [UIFont boldSystemFontOfSize:13];
  751 + _qrButton.layer.cornerRadius = 5;
  752 + _qrButton.layer.masksToBounds = YES;
  753 +// _qrButton.enabled = NO;
  754 + [_qrButton setBackgroundImage:[UIImage imageWithColor:UIColorHex(#FD862E1A)] forState:UIControlStateNormal];
  755 + [_qrButton addTarget:self action:@selector(qrCreateAction) forControlEvents:UIControlEventTouchUpInside];
  756 + }
  757 + return _qrButton;
  758 +}
  759 +-(UIButton *)payButton
  760 +{
  761 + if (!_payButton) {
  762 + _payButton = [UIButton buttonWithType:UIButtonTypeCustom];
  763 + [_payButton setTitle:@"已线下支付" forState:UIControlStateNormal];
  764 + [_payButton setTitleColor:UIColorHex(#0091FF) forState:UIControlStateNormal];
  765 + _payButton.titleLabel.font = [UIFont systemFontOfSize:13];
  766 + _payButton.titleLabel.font = [UIFont boldSystemFontOfSize:13];
  767 + _payButton.layer.cornerRadius = 5;
  768 + _payButton.layer.masksToBounds = YES;
  769 +// _payButton.enabled = NO;
  770 + [_payButton setBackgroundImage:[UIImage imageWithColor:UIColorHex(#0091FF1A)] forState:UIControlStateNormal];
  771 + [_payButton addTarget:self action:@selector(payCreateAction) forControlEvents:UIControlEventTouchUpInside];
  772 + }
  773 + return _payButton;
  774 +}
  775 +@end
  776 +
  777 +@implementation CNLiveCommuntSignUpContactViewCell
  778 +
  779 ++(CNLiveCommuntSignUpContactViewCell *)setTableView:(UITableView *)tableView CreateModel:(CNLiveCommuntyActivityMaintainsCreateModel *)createModel
  780 +{
  781 + CNLiveCommuntSignUpContactViewCell * textCell = [tableView dequeueReusableCellWithIdentifier:@"CNLiveCommuntSignUpContactViewCell"];
  782 + if (!textCell) {
  783 + textCell = [[CNLiveCommuntSignUpContactViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CNLiveCommuntSignUpContactViewCell"];
  784 + }
  785 + textCell.createModel = createModel;
  786 + return textCell;
  787 +}
  788 +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
  789 +{
  790 + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
  791 + if (self) {
  792 + self.contentView.backgroundColor = [UIColor clearColor];
  793 + self.selectionStyle = UITableViewCellSelectionStyleNone;
  794 + self.backgroundColor = [UIColor clearColor];
  795 + [self.contentView addSubview:self.mainView];
  796 + [self.mainView addSubview:self.nameLabel];
  797 + [self.mainView addSubview:self.phoneButton];
  798 + }
  799 + return self;
  800 +}
  801 +-(void)setCreateModel:(CNLiveCommuntyActivityMaintainsCreateModel *)createModel
  802 +{
  803 + _createModel = createModel;
  804 + _nameLabel.text = [createModel.name isNotBlank]?[NSString stringWithFormat:@"维修人:%@",createModel.name]:@"";
  805 + if ([createModel.mobile isNotBlank]) {
  806 + [_phoneButton setTitle:createModel.mobile forState:UIControlStateNormal];
  807 + [_phoneButton setTitle:createModel.mobile forState:UIControlStateHighlighted];
  808 + [_phoneButton setImage:[CNLiveCommuntTools cCommunt_setImageWithName:@"c_communty_order_phone"] forState:UIControlStateNormal];
  809 + [_phoneButton setImage:[CNLiveCommuntTools cCommunt_setImageWithName:@"c_communty_order_phone"] forState:UIControlStateHighlighted];
  810 + }
  811 +
  812 +}
  813 +-(void)layoutSubviews
  814 +{
  815 + [super layoutSubviews];
  816 + __weak typeof(self) weakSelf = self;
  817 + [self.mainView mas_makeConstraints:^(MASConstraintMaker *make) {
  818 + make.left.mas_equalTo(weakSelf.contentView.mas_left).offset(10);
  819 + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-10);
  820 + make.bottom.mas_equalTo(weakSelf.contentView);
  821 +// make.bottom.mas_equalTo(weakSelf.contentView).offset(-10);
  822 + make.top.mas_equalTo(weakSelf.contentView).offset(10);
  823 + }];
  824 + [self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  825 + make.centerY.mas_equalTo(weakSelf.mainView);
  826 + make.left.mas_equalTo(weakSelf.mainView.mas_left).offset(10);
  827 + }];
  828 + [self.phoneButton mas_makeConstraints:^(MASConstraintMaker *make) {
  829 + make.centerY.mas_equalTo(weakSelf.mainView);
  830 + make.right.mas_equalTo(weakSelf.mainView.mas_right).offset(-10);
  831 + }];
  832 +}
  833 +-(UIView *)mainView
  834 +{
  835 + if (!_mainView) {
  836 + _mainView = [[UIView alloc] init];
  837 + _mainView.backgroundColor = [UIColor whiteColor];
  838 + _mainView.layer.masksToBounds = YES;
  839 + _mainView.layer.cornerRadius = 8;
  840 + }
  841 + return _mainView;
  842 +}
  843 +-(UILabel *)nameLabel
  844 +{
  845 + if (!_nameLabel) {
  846 + _nameLabel = [[UILabel alloc] init];
  847 + _nameLabel.textColor = UIColorHex(#333333);
  848 + _nameLabel.numberOfLines = 1;
  849 + _nameLabel.backgroundColor = [UIColor whiteColor];
  850 + _nameLabel.textAlignment = NSTextAlignmentLeft;
  851 + _nameLabel.font = [UIFont systemFontOfSize:14];
  852 + _nameLabel.font = [UIFont boldSystemFontOfSize:14];
  853 + }
  854 + return _nameLabel;
  855 +}
  856 +-(QMUIButton *)phoneButton
  857 +{
  858 + if (!_phoneButton) {
  859 + _phoneButton = [[QMUIButton alloc] init];
  860 + [_phoneButton setTitleColor:UIColorHex(#0091FF) forState:UIControlStateNormal];
  861 + _phoneButton.titleLabel.font = [UIFont systemFontOfSize:12];
  862 + _phoneButton.titleLabel.font = [UIFont boldSystemFontOfSize:12];
  863 + _phoneButton.imagePosition = QMUIButtonImagePositionLeft;
  864 + _phoneButton.spacingBetweenImageAndTitle = 3;
  865 + }
  866 + return _phoneButton;
  867 +}
  868 +@end
  869 +
  870 +@implementation CNLiveCommuntSignUpDetailViewCell
  871 +
  872 ++(CNLiveCommuntSignUpDetailViewCell *)setTableView:(UITableView *)tableView isTop:(BOOL)isTop isBottom:(BOOL)isbottom Dict:(NSDictionary *)dict
  873 +{
  874 + CNLiveCommuntSignUpDetailViewCell * textCell = [tableView dequeueReusableCellWithIdentifier:@"CNLiveCommuntSignUpDetailViewCell"];
  875 + if (!textCell) {
  876 + textCell = [[CNLiveCommuntSignUpDetailViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CNLiveCommuntSignUpDetailViewCell"];
  877 + }
  878 + textCell.dict = dict;
  879 + textCell.isTop = isTop;
  880 + textCell.isBottom = isbottom;
  881 +
  882 + return textCell;
  883 +}
  884 +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
  885 +{
  886 + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
  887 + if (self) {
  888 + self.contentView.backgroundColor = [UIColor clearColor];
  889 + self.selectionStyle = UITableViewCellSelectionStyleNone;
  890 + self.backgroundColor = [UIColor clearColor];
  891 + [self.contentView addSubview:self.mainView];
  892 + [self.mainView addSubview:self.nameLabel];
  893 + [self.mainView addSubview:self.timeLabel];
  894 +
  895 + [self.mainView addSubview:self.lineLabel];
  896 + [self.mainView addSubview:self.topLabel];
  897 + [self.mainView addSubview:self.bottemLabel];
  898 +
  899 + [self.mainView addSubview:self.statusView];
  900 + }
  901 + return self;
  902 +}
  903 +-(void)setDict:(NSDictionary *)dict
  904 +{
  905 + _dict = dict;
  906 + _nameLabel.text = [dict stringValueForKey:@"key" default:@""];
  907 + _timeLabel.text = [dict stringValueForKey:@"value" default:@""];
  908 +}
  909 +-(void)layoutSubviews
  910 +{
  911 + [super layoutSubviews];
  912 + __weak typeof(self) weakSelf = self;
  913 + [self.mainView mas_makeConstraints:^(MASConstraintMaker *make) {
  914 + make.left.mas_equalTo(weakSelf.contentView.mas_left).offset(10);
  915 + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-10);
  916 + make.top.bottom.mas_equalTo(weakSelf.contentView);
  917 + }];
  918 + [self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  919 + make.top.mas_equalTo(weakSelf.mainView.mas_top).offset(10);
  920 + make.left.mas_equalTo(weakSelf.mainView.mas_left).offset(30);
  921 + }];
  922 + [self.timeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  923 + make.top.mas_equalTo(weakSelf.nameLabel.mas_bottom).offset(10);
  924 + make.left.mas_equalTo(weakSelf.mainView.mas_left).offset(30);
  925 + }];
  926 +
  927 + [self.topLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  928 + make.top.mas_equalTo(weakSelf.mainView.mas_top);
  929 + make.bottom.mas_equalTo(weakSelf.statusView.mas_top).offset(2);
  930 + make.left.mas_equalTo(weakSelf.mainView.mas_left).offset(16);
  931 + make.width.mas_equalTo(1);
  932 + }];
  933 + [self.bottemLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  934 + make.top.mas_equalTo(weakSelf.statusView.mas_bottom);
  935 + make.bottom.mas_equalTo(weakSelf.mainView.mas_bottom);
  936 + make.left.mas_equalTo(weakSelf.mainView.mas_left).offset(16);
  937 + make.width.mas_equalTo(1);
  938 + }];
  939 +
  940 + [self.statusView mas_makeConstraints:^(MASConstraintMaker *make) {
  941 + make.centerY.mas_equalTo(weakSelf.nameLabel);
  942 + make.centerX.mas_equalTo(weakSelf.topLabel);
  943 + }];
  944 +
  945 + [self.lineLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  946 + make.bottom.mas_equalTo(weakSelf.mainView.mas_bottom).offset(-0.5);
  947 + make.left.mas_equalTo(weakSelf.mainView.mas_left).offset(30);
  948 + make.right.mas_equalTo(weakSelf.mainView.mas_right).offset(-10);
  949 + make.height.mas_equalTo(0.5);
  950 + }];
  951 +
  952 + self.topLabel.hidden = self.isTop;
  953 + self.bottemLabel.hidden = self.isBottom;
  954 + self.lineLabel.hidden = self.isBottom;
  955 +
  956 + if (self.isTop) {
  957 + self.statusView.image = [CNLiveCommuntTools cCommunt_setImageWithName:@"c_communty_order_status"];
  958 + self.nameLabel.textColor = UIColorHex(#CD0302);
  959 + }else{
  960 + self.statusView.image = [UIImage imageWithColor:UIColorHex(#D2D2D2) size:CGSizeMake(10, 10)];
  961 + self.nameLabel.textColor = UIColorHex(#999999);
  962 + }
  963 +}
  964 +
  965 +-(UIView *)mainView
  966 +{
  967 + if (!_mainView) {
  968 + _mainView = [[UIView alloc] init];
  969 + _mainView.backgroundColor = [UIColor whiteColor];
  970 + }
  971 + return _mainView;
  972 +}
  973 +-(UILabel *)nameLabel
  974 +{
  975 + if (!_nameLabel) {
  976 + _nameLabel = [[UILabel alloc] init];
  977 + _nameLabel.textColor = UIColorHex(#CD0302);
  978 + _nameLabel.numberOfLines = 1;
  979 + _nameLabel.backgroundColor = [UIColor whiteColor];
  980 + _nameLabel.textAlignment = NSTextAlignmentLeft;
  981 + _nameLabel.font = [UIFont systemFontOfSize:15];
  982 + _nameLabel.font = [UIFont boldSystemFontOfSize:15];
  983 + }
  984 + return _nameLabel;
  985 +}
  986 +-(UILabel *)timeLabel
  987 +{
  988 + if (!_timeLabel) {
  989 + _timeLabel = [[UILabel alloc] init];
  990 + _timeLabel.textColor = UIColorHex(#B4B4B4);
  991 + _timeLabel.numberOfLines = 1;
  992 + _timeLabel.backgroundColor = [UIColor whiteColor];
  993 + _timeLabel.textAlignment = NSTextAlignmentLeft;
  994 + _timeLabel.font = [UIFont systemFontOfSize:12];
  995 + }
  996 + return _timeLabel;
  997 +}
  998 +-(UIImageView *)statusView
  999 +{
  1000 + if (!_statusView) {
  1001 + _statusView = [[UIImageView alloc] init];
  1002 + _statusView.contentMode = UIViewContentModeScaleAspectFill;
  1003 + _statusView.image = [CNLiveCommuntTools cCommunt_setImageWithName:@"c_communty_order_status"];
  1004 + _statusView.backgroundColor = [UIColor clearColor];
  1005 + _statusView.layer.masksToBounds = YES;
  1006 + _statusView.layer.cornerRadius = 5;
  1007 + }
  1008 + return _statusView;
  1009 +}
  1010 +-(UILabel *)lineLabel
  1011 +{
  1012 + if (!_lineLabel) {
  1013 + _lineLabel = [[UILabel alloc] init];
  1014 + _lineLabel.backgroundColor = UIColorHex(#E4E4E4);
  1015 + }
  1016 + return _lineLabel;
  1017 +}
  1018 +-(UILabel *)topLabel
  1019 +{
  1020 + if (!_topLabel) {
  1021 + _topLabel = [[UILabel alloc] init];
  1022 + _topLabel.backgroundColor = UIColorHex(#E4E4E4);
  1023 + }
  1024 + return _topLabel;
  1025 +}
  1026 +-(UILabel *)bottemLabel
  1027 +{
  1028 + if (!_bottemLabel) {
  1029 + _bottemLabel = [[UILabel alloc] init];
  1030 + _bottemLabel.backgroundColor = UIColorHex(#E4E4E4);
  1031 + }
  1032 + return _bottemLabel;
  1033 +}
  1034 +@end
... ...
CNLiveCommunitModule/Classes/View/CNLiveCommuntSubView.h 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/View/CNLiveCommuntSubView.h
  1 +//
  2 +// CNLiveCommuntSubView.h
  3 +// CNLiveCommunitModule-CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/2.
  6 +//
  7 +
  8 +#import <UIKit/UIKit.h>
  9 +
  10 +NS_ASSUME_NONNULL_BEGIN
  11 +
  12 +@interface CNLiveCommuntSubView : UIView
  13 +
  14 +@end
  15 +
  16 +@interface CNLiveCommuntCheckView : UIView
  17 +
  18 +@property (nonatomic, strong) UIButton * selectBtn;
  19 +@property (nonatomic, strong) UIView * selectView;
  20 +@property (nonatomic, strong) UIView * selectCenterView;
  21 +@property (nonatomic, strong) UILabel * evaluaDescLabel;
  22 +
  23 +@end
  24 +
  25 +@interface CNLiveCommuntSubHomeTableView : UITableViewCell
  26 +
  27 +@property (nonatomic, strong) UIImageView * imgView;
  28 +@property (nonatomic, strong) UILabel * statusLabel;
  29 +
  30 +@property (nonatomic, strong) CNLiveCommuntyActivityHomeListModel * listModel;
  31 +
  32 ++(CNLiveCommuntSubHomeTableView *)setTableView:(UITableView *)tableView ListModel:(CNLiveCommuntyActivityHomeListModel *)listModel;
  33 +@end
  34 +
  35 +@interface CNLiveCommuntSubRecordTableView : UITableViewCell
  36 +
  37 +@property (nonatomic, strong) UIView * mainView;
  38 +@property (nonatomic, strong) UIImageView * imgView;
  39 +@property (nonatomic, strong) UILabel * nameLabel;
  40 +@property (nonatomic, strong) UILabel * descLabel;
  41 +@property (nonatomic, strong) UILabel * priceLabel;
  42 +@property (nonatomic, strong) UILabel * dateLabel;
  43 +@property (nonatomic, strong) UIButton * evalButton;
  44 +
  45 +@property (nonatomic, strong) CNLiveCommuntyActivityRecordListModel * recoredModel;
  46 +
  47 ++(CNLiveCommuntSubRecordTableView *)setTableView:(UITableView *)tableView RecordModel:(CNLiveCommuntyActivityRecordListModel *)recordModel;
  48 +
  49 +@end
  50 +
  51 +@interface CNLiveCommuntSubRepairTableView : UITableViewCell
  52 +
  53 +@property (nonatomic, strong) UIView * mainView;
  54 +@property (nonatomic, strong) UILabel * nameLabel;
  55 +@property (nonatomic, strong) UILabel * dateLabel;
  56 +@property (nonatomic, strong) QMUIButton * statueButton;
  57 +@property (nonatomic, strong) UILabel * lineLabel;
  58 +@property (nonatomic, strong) UILabel * priceLabel;
  59 +
  60 +@property (nonatomic, strong) CNLiveCommuntyActivityRepairListModel * repairModel;
  61 +
  62 ++(CNLiveCommuntSubRepairTableView *)setTableView:(UITableView *)tableView RepairModel:(CNLiveCommuntyActivityRepairListModel *)repairModel;
  63 +
  64 +@end
  65 +
  66 +@protocol CNLiveCommuntSubInputTableViewDelegate <NSObject>
  67 +
  68 +/// 点击选择图片视频
  69 +/// @param index 点击的位置
  70 +-(void)setCommuntSubInputTableViewWithSelectForIndex:(NSInteger)index;
  71 +
  72 +/// 点击删除图片视频
  73 +/// @param image 点击的位置
  74 +-(void)setCommuntSubInputTableViewWithDelectForImage:(UIImage *)image;
  75 +
  76 +@end
  77 +
  78 +@interface CNLiveCommuntSubInputTableView : UITableViewCell<QMUITextViewDelegate,UITextFieldDelegate>
  79 +
  80 +@property (nonatomic, weak) id<CNLiveCommuntSubInputTableViewDelegate> delegate;
  81 +@property (nonatomic, strong) UILabel * nameLabel;
  82 +@property (nonatomic, strong) UITextField * contentField;
  83 +@property (nonatomic, strong) UILabel * lineLabel;
  84 +@property (nonatomic, strong) QMUIButton * moreButton;
  85 +@property (nonatomic, strong) QMUITextView * descTextView;
  86 +
  87 +@property (nonatomic, strong) UIView * contentImageView;
  88 +@property (nonatomic, strong) UIImageView * imageView01;
  89 +@property (nonatomic, strong) UIImageView * imageView02;
  90 +@property (nonatomic, strong) UIImageView * imageView03;
  91 +
  92 +@property (nonatomic, strong) UIButton * delectBtn01;
  93 +@property (nonatomic, strong) UIButton * delectBtn02;
  94 +@property (nonatomic, strong) UIButton * delectBtn03;
  95 +
  96 +@property (nonatomic, strong) CNLiveCommuntCheckView * checkView_m;
  97 +@property (nonatomic, strong) CNLiveCommuntCheckView * checkView_w;
  98 +
  99 +@property (nonatomic, strong) NSDictionary * userInfo;
  100 +
  101 +@property (nonatomic, strong) NSMutableArray * imageArray;
  102 +@property (nonatomic, strong) NSDictionary * subDict;
  103 +@property (nonatomic, assign) NSInteger index;
  104 +@property (nonatomic, copy) NSString * sex;//男 女
  105 +
  106 ++(CNLiveCommuntSubInputTableView *)setTableView:(UITableView *)tableView SubDict:(NSDictionary *)subDict indexs:(NSInteger)indexs UserInfo:(NSDictionary *)userInfo;
  107 +
  108 +@end
  109 +
  110 +@interface CNLiveCommuntSubAlertTableView : UIView<UIPickerViewDelegate,UIPickerViewDataSource>
  111 +
  112 +@property (nonatomic, strong) UIPickerView *pickerView;
  113 +@property (nonatomic, strong) UIButton * closeBtn;
  114 +@property (nonatomic, strong) UIButton * doneBtn;
  115 +@property (nonatomic, strong) UILabel * lineLabel;
  116 +
  117 +@property (nonatomic, strong) NSArray *oneSource;
  118 +@property (nonatomic, strong) NSArray *twoSource;
  119 +
  120 +@property (nonatomic, copy) NSString * dayString;
  121 +@property (nonatomic, copy) NSString * timeString;
  122 +
  123 +@property (nonatomic, strong) CNLiveCommuntyActivityMaintainsListModel * listModel;
  124 +
  125 +@property (nonatomic, assign) BOOL isTime;
  126 +
  127 +/// 初始化选择器的界面
  128 +/// @param dataSource 数据源
  129 +- (instancetype)initWithDataSource:(NSArray *)dataSource isTime:(BOOL)isTime;
  130 +
  131 +/// 弹出显示框
  132 +/// @param completerBlock 选择器
  133 ++(void)showAlertViewDataSource:(NSArray *)dataSource isTime:(BOOL)isTime CompleterBlock:(void(^)(NSString * idStr,NSString * content))completerBlock;
  134 +
  135 +@end
  136 +
  137 +
  138 +NS_ASSUME_NONNULL_END
... ...
CNLiveCommunitModule/Classes/View/CNLiveCommuntSubView.m 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/View/CNLiveCommuntSubView.m
  1 +//
  2 +// CNLiveCommuntSubView.m
  3 +// CNLiveCommunitModule-CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/2.
  6 +//
  7 +
  8 +#import "CNLiveCommuntSubView.h"
  9 +
  10 +@implementation CNLiveCommuntSubView
  11 +
  12 +
  13 +@end
  14 +
  15 +@implementation CNLiveCommuntCheckView
  16 +
  17 +- (instancetype)init
  18 +{
  19 + self = [super init];
  20 + if (self) {
  21 + [self addSubview:self.evaluaDescLabel];
  22 + [self addSubview:self.selectView];
  23 + [self addSubview:self.selectCenterView];
  24 + [self addSubview:self.selectBtn];
  25 + }
  26 + return self;
  27 +}
  28 +-(void)layoutSubviews
  29 +{
  30 + [super layoutSubviews];
  31 + __weak typeof(self) weakSelf = self;
  32 + [self.selectView mas_makeConstraints:^(MASConstraintMaker *make) {
  33 + make.centerY.mas_equalTo(weakSelf);
  34 + make.left.mas_equalTo(weakSelf);
  35 + make.size.mas_equalTo(14);
  36 + }];
  37 + [self.selectCenterView mas_makeConstraints:^(MASConstraintMaker *make) {
  38 + make.top.mas_equalTo(weakSelf.selectView).offset(2);
  39 + make.left.mas_equalTo(weakSelf.selectView).offset(2);
  40 + make.right.mas_equalTo(weakSelf.selectView).offset(-2);
  41 + make.bottom.mas_equalTo(weakSelf.selectView).offset(-2);
  42 + }];
  43 + [self.evaluaDescLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  44 + make.centerY.mas_equalTo(weakSelf.selectView);
  45 + make.left.mas_equalTo(weakSelf.selectView.mas_right).offset(5);
  46 + }];
  47 + [self.selectBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  48 + make.edges.mas_equalTo(weakSelf);
  49 + }];
  50 +}
  51 +-(UILabel *)evaluaDescLabel
  52 +{
  53 + if (!_evaluaDescLabel) {
  54 + _evaluaDescLabel = [[UILabel alloc] init];
  55 + _evaluaDescLabel.backgroundColor = [UIColor whiteColor];
  56 + _evaluaDescLabel.font = [UIFont systemFontOfSize:11];
  57 + _evaluaDescLabel.numberOfLines = 1;
  58 + _evaluaDescLabel.lineBreakMode = NSLineBreakByTruncatingTail;
  59 + }
  60 + return _evaluaDescLabel;
  61 +}
  62 +-(UIView *)selectView
  63 +{
  64 + if (!_selectView) {
  65 + _selectView = [[UIView alloc] init];
  66 + _selectView.backgroundColor = [UIColor whiteColor];
  67 + _selectView.layer.cornerRadius = 7;
  68 + _selectView.layer.masksToBounds = YES;
  69 + _selectView.layer.borderColor = UIColorHex(#979797).CGColor;
  70 + _selectView.layer.borderWidth = 0.5;
  71 + }
  72 + return _selectView;
  73 +}
  74 +-(UIView *)selectCenterView
  75 +{
  76 + if (!_selectCenterView) {
  77 + _selectCenterView = [[UIView alloc] init];
  78 + _selectCenterView.backgroundColor = UIColorHex(#F5A623);
  79 + _selectCenterView.layer.masksToBounds = YES;
  80 + _selectCenterView.layer.cornerRadius = 5;
  81 + _selectCenterView.hidden = YES;
  82 + }
  83 + return _selectCenterView;
  84 +}
  85 +-(UIButton *)selectBtn
  86 +{
  87 + if (!_selectBtn) {
  88 + _selectBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  89 + _selectBtn.backgroundColor = [UIColor clearColor];
  90 + [_selectBtn addTarget:self action:@selector(selectMothodAction:) forControlEvents:UIControlEventTouchUpInside];
  91 + }
  92 + return _selectBtn;
  93 +}
  94 +-(void)selectMothodAction:(UIButton *)button
  95 +{
  96 + NSLog(@"选择按钮");
  97 +}
  98 +@end
  99 +
  100 +@implementation CNLiveCommuntSubHomeTableView
  101 +
  102 ++(CNLiveCommuntSubHomeTableView *)setTableView:(UITableView *)tableView ListModel:(nonnull CNLiveCommuntyActivityHomeListModel *)listModel
  103 +{
  104 + CNLiveCommuntSubHomeTableView * homeView = [tableView dequeueReusableCellWithIdentifier:@"CNLiveCommuntSubHomeTableView"];
  105 + if (!homeView) {
  106 + homeView = [[CNLiveCommuntSubHomeTableView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CNLiveCommuntSubHomeTableView"];
  107 + }
  108 + homeView.listModel = listModel;
  109 + return homeView;
  110 +}
  111 +
  112 +-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
  113 +{
  114 + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
  115 + if (self) {
  116 + self.selectionStyle = UITableViewCellSelectionStyleNone;
  117 + self.contentView.backgroundColor = UIColorHex(#f9f9f9);
  118 + [self.contentView addSubview:self.imgView];
  119 + [self.imgView addSubview:self.statusLabel];
  120 + }
  121 + return self;
  122 +}
  123 +-(void)layoutSubviews
  124 +{
  125 + [super layoutSubviews];
  126 + __weak typeof(self) weakSelf = self;
  127 + [self.imgView mas_makeConstraints:^(MASConstraintMaker *make) {
  128 + make.top.left.mas_equalTo(weakSelf.contentView).offset(10);
  129 + make.bottom.right.mas_equalTo(weakSelf.contentView).offset(-10);
  130 + }];
  131 + [self.statusLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  132 + make.left.top.mas_equalTo(weakSelf.imgView).offset(10);
  133 + make.width.mas_equalTo(60);
  134 + make.height.mas_equalTo(30);
  135 + }];
  136 +}
  137 +-(void)setListModel:(CNLiveCommuntyActivityHomeListModel *)listModel
  138 +{
  139 + _listModel = listModel;
  140 +
  141 + [self.imgView sd_setImageWithURL:[NSURL URLWithString:listModel.imgUrl] placeholderImage:[UIImage imageWithColor:UIColorHex(#f6f6f6)]];
  142 + self.statusLabel.text = listModel.statusString;
  143 + if ([listModel.status isEqualToString:@"1"] || [listModel.status isEqualToString:@"2"] || [listModel.status isEqualToString:@"3"]) {
  144 + self.statusLabel.hidden = NO;
  145 + if ([listModel.status isEqualToString:@"1"]) self.statusLabel.backgroundColor = UIColorHex(#6DD400);
  146 + if ([listModel.status isEqualToString:@"2"]) self.statusLabel.backgroundColor = UIColorHex(#FD862E);
  147 + if ([listModel.status isEqualToString:@"3"]) self.statusLabel.backgroundColor = UIColorHex(#858585);
  148 + }else{
  149 + self.statusLabel.hidden = YES;
  150 + }
  151 +}
  152 +#pragma mark -
  153 +-(UIImageView *)imgView
  154 +{
  155 + if (!_imgView) {
  156 + _imgView = [[UIImageView alloc] init];
  157 + _imgView.contentMode = UIViewContentModeScaleAspectFill;
  158 + _imgView.image = [UIImage imageWithColor:UIColorHex(#f9f9f9)];
  159 + _imgView.layer.masksToBounds = YES;
  160 + _imgView.layer.cornerRadius = 10;
  161 + }
  162 + return _imgView;
  163 +}
  164 +-(UILabel *)statusLabel
  165 +{
  166 + if (!_statusLabel) {
  167 + _statusLabel = [[UILabel alloc] init];
  168 + _statusLabel.textColor = [UIColor whiteColor];
  169 + _statusLabel.textAlignment = NSTextAlignmentCenter;
  170 + _statusLabel.layer.cornerRadius = 5;
  171 + _statusLabel.layer.masksToBounds = YES;
  172 + _statusLabel.font = [UIFont systemFontOfSize:14];
  173 + _statusLabel.font = [UIFont boldSystemFontOfSize:14];
  174 +
  175 + }
  176 + return _statusLabel;
  177 +}
  178 +@end
  179 +
  180 +@implementation CNLiveCommuntSubRecordTableView
  181 +
  182 ++(CNLiveCommuntSubRecordTableView *)setTableView:(UITableView *)tableView RecordModel:(nonnull CNLiveCommuntyActivityRecordListModel *)recordModel
  183 +{
  184 + CNLiveCommuntSubRecordTableView * recordView = [tableView dequeueReusableCellWithIdentifier:@"CNLiveCommuntSubRecordTableView"];
  185 + if (!recordView) {
  186 + recordView = [[CNLiveCommuntSubRecordTableView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CNLiveCommuntSubRecordTableView"];
  187 + }
  188 + recordView.recoredModel = recordModel;
  189 + return recordView;
  190 +}
  191 +
  192 +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
  193 +{
  194 + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
  195 + if (self) {
  196 + self.selectionStyle = UITableViewCellSelectionStyleNone;
  197 + self.contentView.backgroundColor = UIColorHex(#f9f9f9);
  198 + [self.contentView addSubview:self.mainView];
  199 + [self.mainView addSubview:self.imgView];
  200 + [self.mainView addSubview:self.nameLabel];
  201 + [self.mainView addSubview:self.descLabel];
  202 + [self.mainView addSubview:self.priceLabel];
  203 + [self.mainView addSubview:self.dateLabel];
  204 + [self.mainView addSubview:self.evalButton];
  205 + }
  206 + return self;
  207 +}
  208 +-(void)setRecoredModel:(CNLiveCommuntyActivityRecordListModel *)recoredModel
  209 +{
  210 + _recoredModel = recoredModel;
  211 + [self.imgView sd_setImageWithURL:[NSURL URLWithString:recoredModel.imgUrl] placeholderImage:[UIImage imageWithColor:UIColorHex(#f9f9f9)]];
  212 + self.dateLabel.text = recoredModel.createTimeString;
  213 + self.nameLabel.text = recoredModel.handworkName;
  214 + self.descLabel.text = [NSString stringWithFormat:@"%@ %@",recoredModel.name,recoredModel.mobile];
  215 + self.priceLabel.text = [recoredModel.amount isNotBlank]?[NSString stringWithFormat:@"%@.00",recoredModel.amount]:@"0.00";
  216 +}
  217 +-(void)layoutSubviews
  218 +{
  219 + [super layoutSubviews];
  220 + __weak typeof(self) weakSelf = self;
  221 + [self.mainView mas_makeConstraints:^(MASConstraintMaker *make) {
  222 + make.top.left.mas_equalTo(weakSelf.contentView).offset(10);
  223 + make.right.mas_equalTo(weakSelf.contentView).offset(-10);
  224 + make.bottom.mas_equalTo(weakSelf.contentView);
  225 + }];
  226 + [self.imgView mas_makeConstraints:^(MASConstraintMaker *make) {
  227 + make.top.left.mas_equalTo(weakSelf.mainView).offset(10);
  228 + make.size.mas_equalTo(80);
  229 + }];
  230 + [self.dateLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  231 + make.right.mas_equalTo(weakSelf.mainView.mas_right).offset(-10);
  232 + make.top.mas_equalTo(weakSelf.mainView).offset(12);
  233 + }];
  234 + [self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  235 + make.top.mas_equalTo(weakSelf.mainView).offset(10);
  236 + make.left.mas_equalTo(weakSelf.imgView.mas_right).offset(10);
  237 + make.right.mas_equalTo(weakSelf.dateLabel.mas_left);
  238 + }];
  239 + [self.descLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  240 + make.top.mas_equalTo(weakSelf.nameLabel.mas_bottom).offset(10);
  241 + make.left.mas_equalTo(weakSelf.imgView.mas_right).offset(10);
  242 + make.right.mas_equalTo(weakSelf.mainView.mas_right).offset(-10);
  243 + }];
  244 + [self.evalButton mas_makeConstraints:^(MASConstraintMaker *make) {
  245 + make.bottom.right.mas_equalTo(weakSelf.mainView).offset(-10);
  246 + make.height.mas_equalTo(20);
  247 + make.width.mas_equalTo(50);
  248 + }];
  249 + [self.priceLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  250 + make.bottom.mas_equalTo(weakSelf.mainView.mas_bottom).offset(-10);
  251 + make.left.mas_equalTo(weakSelf.imgView.mas_right).offset(10);
  252 + make.right.mas_equalTo(weakSelf.evalButton.mas_right).offset(-10);
  253 + }];
  254 +}
  255 +#pragma mark -
  256 +-(UIView *)mainView
  257 +{
  258 + if (!_mainView) {
  259 + _mainView = [[UIView alloc] init];
  260 + _mainView.backgroundColor = [UIColor whiteColor];
  261 + }
  262 + return _mainView;
  263 +}
  264 +-(UIImageView *)imgView
  265 +{
  266 + if (!_imgView) {
  267 + _imgView = [[UIImageView alloc] init];
  268 + _imgView.contentMode = UIViewContentModeScaleAspectFill;
  269 + _imgView.image = [UIImage imageWithColor:[UIColor cyanColor]];
  270 + _imgView.layer.cornerRadius = 8;
  271 + _imgView.layer.masksToBounds = YES;
  272 + }
  273 + return _imgView;
  274 +}
  275 +-(UILabel *)nameLabel
  276 +{
  277 + if (!_nameLabel) {
  278 + _nameLabel = [[UILabel alloc] init];
  279 + _nameLabel.textColor = UIColorHex(#333333);
  280 + _nameLabel.lineBreakMode = NSLineBreakByTruncatingTail;
  281 + _nameLabel.numberOfLines = 1;
  282 + _nameLabel.font = [UIFont systemFontOfSize:15];
  283 + _nameLabel.font = [UIFont boldSystemFontOfSize:15];
  284 +
  285 + }
  286 + return _nameLabel;
  287 +}
  288 +-(UILabel *)descLabel
  289 +{
  290 + if (!_descLabel) {
  291 + _descLabel = [[UILabel alloc] init];
  292 + _descLabel.textColor = UIColorHex(#8A8A8A);
  293 + _descLabel.lineBreakMode = NSLineBreakByTruncatingTail;
  294 + _descLabel.numberOfLines = 1;
  295 + _descLabel.font = [UIFont systemFontOfSize:10];
  296 + _descLabel.font = [UIFont boldSystemFontOfSize:10];
  297 +
  298 + }
  299 + return _descLabel;
  300 +}
  301 +-(UILabel *)priceLabel
  302 +{
  303 + if (!_priceLabel) {
  304 + _priceLabel = [[UILabel alloc] init];
  305 + _priceLabel.textColor = UIColorHex(#DF0D23);
  306 + _priceLabel.lineBreakMode = NSLineBreakByTruncatingTail;
  307 + _priceLabel.numberOfLines = 1;
  308 + _priceLabel.font = [UIFont systemFontOfSize:18];
  309 + _priceLabel.font = [UIFont boldSystemFontOfSize:18];
  310 +
  311 + }
  312 + return _priceLabel;
  313 +}
  314 +-(UILabel *)dateLabel
  315 +{
  316 + if (!_dateLabel) {
  317 + _dateLabel = [[UILabel alloc] init];
  318 + _dateLabel.textColor = UIColorHex(#8A8A8A);
  319 + _dateLabel.lineBreakMode = NSLineBreakByTruncatingTail;
  320 + _dateLabel.numberOfLines = 1;
  321 + _dateLabel.textAlignment = NSTextAlignmentRight;
  322 + _dateLabel.font = [UIFont systemFontOfSize:11];
  323 + _dateLabel.font = [UIFont boldSystemFontOfSize:11];
  324 + }
  325 + return _dateLabel;
  326 +}
  327 +-(UIButton *)evalButton
  328 +{
  329 + if (!_evalButton) {
  330 + _evalButton = [UIButton buttonWithType:UIButtonTypeCustom];
  331 + [_evalButton setTitle:@"评价" forState:UIControlStateNormal];
  332 + [_evalButton setTitleColor:UIColorHex(#FD862E) forState:UIControlStateNormal];
  333 + _evalButton.titleLabel.font = [UIFont systemFontOfSize:13];
  334 + _evalButton.titleLabel.font = [UIFont boldSystemFontOfSize:13];
  335 + _evalButton.layer.cornerRadius = 10;
  336 + _evalButton.layer.masksToBounds = YES;
  337 + _evalButton.layer.borderWidth = 1;
  338 + _evalButton.layer.borderColor = UIColorHex(#FD862E).CGColor;
  339 + [_evalButton setBackgroundImage:[UIImage imageWithColor:UIColorHex(#FFFD862E)] forState:UIControlStateNormal];
  340 + }
  341 + return _evalButton;
  342 +}
  343 +@end
  344 +
  345 +@implementation CNLiveCommuntSubRepairTableView
  346 +
  347 ++(CNLiveCommuntSubRepairTableView *)setTableView:(UITableView *)tableView RepairModel:(CNLiveCommuntyActivityRepairListModel *)repairModel
  348 +{
  349 + CNLiveCommuntSubRepairTableView * repairView = [tableView dequeueReusableCellWithIdentifier:@"CNLiveCommuntSubRepairTableView"];
  350 + if (!repairView) {
  351 + repairView = [[CNLiveCommuntSubRepairTableView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CNLiveCommuntSubRepairTableView"];
  352 + }
  353 + repairView.repairModel = repairModel;
  354 +
  355 + return repairView;
  356 +}
  357 +-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
  358 +{
  359 + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
  360 + if (self) {
  361 + self.selectionStyle = UITableViewCellSelectionStyleNone;
  362 + self.contentView.backgroundColor = UIColorHex(#f9f9f9);
  363 + [self.contentView addSubview:self.mainView];
  364 + [self.mainView addSubview:self.nameLabel];
  365 + [self.mainView addSubview:self.dateLabel];
  366 + [self.mainView addSubview:self.statueButton];
  367 + [self.mainView addSubview:self.lineLabel];
  368 + [self.mainView addSubview:self.priceLabel];
  369 + }
  370 + return self;
  371 +}
  372 +-(void)layoutSubviews
  373 +{
  374 + [super layoutSubviews];
  375 + __weak typeof(self) weakSelf = self;
  376 + [self.mainView mas_makeConstraints:^(MASConstraintMaker *make) {
  377 + make.top.left.mas_equalTo(weakSelf.contentView).offset(10);
  378 + make.right.mas_equalTo(weakSelf.contentView).offset(-10);
  379 + make.bottom.mas_equalTo(weakSelf.contentView);
  380 + }];
  381 + [self.statueButton mas_makeConstraints:^(MASConstraintMaker *make) {
  382 + make.top.mas_equalTo(weakSelf.mainView).offset(10);
  383 + make.right.mas_equalTo(weakSelf.mainView.mas_right).offset(-5);
  384 + make.width.mas_equalTo(60);
  385 + make.height.mas_equalTo(15);
  386 + }];
  387 + [self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  388 + make.top.left.mas_equalTo(weakSelf.mainView).offset(10);
  389 + make.right.mas_equalTo(weakSelf.statueButton.mas_left).offset(-5);
  390 + }];
  391 + [self.dateLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  392 + make.top.mas_equalTo(weakSelf.nameLabel.mas_bottom).offset(10);
  393 + make.left.mas_equalTo(weakSelf.mainView).offset(10);
  394 + make.right.mas_equalTo(weakSelf.statueButton.mas_left).offset(-10);
  395 + }];
  396 + [self.lineLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  397 + make.left.mas_equalTo(weakSelf.mainView.mas_left).offset(10);
  398 + make.right.mas_equalTo(weakSelf.mainView.mas_right).offset(-10);
  399 + make.top.mas_equalTo(weakSelf.dateLabel.mas_bottom).offset(10);
  400 + make.height.mas_equalTo(0.5);
  401 + }];
  402 + [self.priceLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  403 + make.top.mas_equalTo(weakSelf.lineLabel.mas_bottom).offset(10);
  404 + make.left.mas_equalTo(weakSelf.mainView.mas_left).offset(10);
  405 + make.right.mas_equalTo(weakSelf.mainView.mas_right).offset(-10);
  406 + }];
  407 +}
  408 +-(void)setRepairModel:(CNLiveCommuntyActivityRepairListModel *)repairModel
  409 +{
  410 + _repairModel = repairModel;
  411 + self.lineLabel.hidden = ![repairModel.totalFee isNotBlank] || [repairModel.totalFee isEqualToString:@"0"];
  412 + self.priceLabel.hidden = ![repairModel.totalFee isNotBlank] || [repairModel.totalFee isEqualToString:@"0"];
  413 + self.nameLabel.text = [repairModel.repairName isNotBlank]?repairModel.repairName:@"";
  414 + self.priceLabel.text = [NSString stringWithFormat:@"合计:¥%.2f",[repairModel.totalFee floatValue]/100];
  415 + self.dateLabel.text = [NSString stringWithFormat:@"下单时间:%@",repairModel.createTimeString];
  416 + [_statueButton setTitle:repairModel.statusString forState:UIControlStateNormal];
  417 + [_statueButton setTitleColor:![repairModel.status isEqualToString:@"3"]?UIColorHex(#FD862E):UIColorHex(#797979) forState:UIControlStateNormal];
  418 +}
  419 +
  420 +#pragma mark -
  421 +-(UIView *)mainView
  422 +{
  423 + if (!_mainView) {
  424 + _mainView = [[UIView alloc] init];
  425 + _mainView.backgroundColor = [UIColor whiteColor];
  426 + _mainView.layer.masksToBounds = YES;
  427 + _mainView.layer.cornerRadius = 8;
  428 + }
  429 + return _mainView;
  430 +}
  431 +-(UILabel *)nameLabel
  432 +{
  433 + if (!_nameLabel) {
  434 + _nameLabel = [[UILabel alloc] init];
  435 + _nameLabel.textColor = UIColorHex(#333333);
  436 + _nameLabel.lineBreakMode = NSLineBreakByTruncatingTail;
  437 + _nameLabel.numberOfLines = 1;
  438 + _nameLabel.font = [UIFont systemFontOfSize:15];
  439 + _nameLabel.font = [UIFont boldSystemFontOfSize:15];
  440 + }
  441 + return _nameLabel;
  442 +}
  443 +-(UILabel *)priceLabel
  444 +{
  445 + if (!_priceLabel) {
  446 + _priceLabel = [[UILabel alloc] init];
  447 + _priceLabel.textColor = UIColorHex(#333333);
  448 + _priceLabel.lineBreakMode = NSLineBreakByTruncatingTail;
  449 + _priceLabel.numberOfLines = 1;
  450 + _priceLabel.font = [UIFont systemFontOfSize:18];
  451 + _priceLabel.font = [UIFont boldSystemFontOfSize:18];
  452 + _priceLabel.hidden = YES;
  453 + }
  454 + return _priceLabel;
  455 +}
  456 +-(UILabel *)dateLabel
  457 +{
  458 + if (!_dateLabel) {
  459 + _dateLabel = [[UILabel alloc] init];
  460 + _dateLabel.textColor = UIColorHex(#8A8A8A);
  461 + _dateLabel.lineBreakMode = NSLineBreakByTruncatingTail;
  462 + _dateLabel.numberOfLines = 1;
  463 + _dateLabel.font = [UIFont systemFontOfSize:11];
  464 + _dateLabel.font = [UIFont boldSystemFontOfSize:11];
  465 + }
  466 + return _dateLabel;
  467 +}
  468 +-(UILabel *)lineLabel
  469 +{
  470 + if (!_lineLabel) {
  471 + _lineLabel = [[UILabel alloc] init];
  472 + _lineLabel.backgroundColor = UIColorHex(#E6E6E6);
  473 + _lineLabel.hidden = YES;
  474 + }
  475 + return _lineLabel;
  476 +}
  477 +-(QMUIButton *)statueButton
  478 +{
  479 + if (!_statueButton) {
  480 + _statueButton = [[QMUIButton alloc] init];
  481 + [_statueButton setImage:[CNLiveCommuntTools cCommunt_setImageWithName:@"c_communt_list_more"] forState:UIControlStateNormal];
  482 + _statueButton.imagePosition = QMUIButtonImagePositionRight;
  483 + _statueButton.spacingBetweenImageAndTitle = 2.5;
  484 + _statueButton.titleLabel.font = [UIFont systemFontOfSize:12];
  485 + [_statueButton setTitleColor:UIColorHex(#FD862E) forState:UIControlStateNormal];
  486 + }
  487 + return _statueButton;
  488 +}
  489 +@end
  490 +
  491 +@implementation CNLiveCommuntSubInputTableView
  492 +
  493 ++(CNLiveCommuntSubInputTableView *)setTableView:(UITableView *)tableView SubDict:(NSDictionary *)subDict indexs:(NSInteger)indexs UserInfo:(nonnull NSDictionary *)userInfo
  494 +{
  495 + CNLiveCommuntSubInputTableView * inputView = [tableView dequeueReusableCellWithIdentifier:[NSString stringWithFormat:@"CNLiveCommuntSubInputTableView_%ld",(long)indexs]];
  496 + if (!inputView) {
  497 + inputView = [[CNLiveCommuntSubInputTableView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:[NSString stringWithFormat:@"CNLiveCommuntSubInputTableView_%ld",(long)indexs]];
  498 + }
  499 + inputView.subDict = subDict;
  500 + if ([userInfo allValues].count > 0) inputView.userInfo = userInfo;
  501 + return inputView;
  502 +}
  503 +-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
  504 +{
  505 + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
  506 + if (self) {
  507 + self.selectionStyle = UITableViewCellSelectionStyleNone;
  508 + self.contentView.backgroundColor = [UIColor whiteColor];
  509 + [self.contentView addSubview:self.nameLabel];
  510 + [self.contentView addSubview:self.contentField];
  511 + [self.contentView addSubview:self.lineLabel];
  512 + [self.contentView addSubview:self.moreButton];
  513 + [self.contentView addSubview:self.descTextView];
  514 +
  515 + [self.contentView addSubview:self.contentImageView];
  516 + [self.contentImageView addSubview:self.imageView01];
  517 + [self.contentImageView addSubview:self.imageView02];
  518 + [self.contentImageView addSubview:self.imageView03];
  519 +
  520 + self.delectBtn01 = [self setDelectBtn:0];
  521 + self.delectBtn02 = [self setDelectBtn:1];
  522 + self.delectBtn03 = [self setDelectBtn:2];
  523 + [self.imageView01 addSubview:self.delectBtn01];
  524 + [self.imageView02 addSubview:self.delectBtn02];
  525 + [self.imageView03 addSubview:self.delectBtn03];
  526 +
  527 + [self.contentView addSubview:self.checkView_m];
  528 + [self.contentView addSubview:self.checkView_w];
  529 +
  530 + self.sex = @"男";
  531 + }
  532 + return self;
  533 +}
  534 +-(void)setUserInfo:(NSDictionary *)userInfo
  535 +{
  536 + _userInfo = userInfo;
  537 + self.sex = [[userInfo stringValueForKey:@"gender" default:@""] isEqualToString:@"0"]?@"女":@"男";
  538 + if ([self.nameLabel.text isEqualToString:@"姓名"]) self.contentField.text = [userInfo stringValueForKey:@"name" default:@""];
  539 + if ([self.nameLabel.text isEqualToString:@"年龄"]) self.contentField.text = [userInfo stringValueForKey:@"age" default:@""];
  540 + if ([self.nameLabel.text isEqualToString:@"联系方式"]) self.contentField.text = [userInfo stringValueForKey:@"mobile" default:@""];
  541 +
  542 + self.checkView_m.selectCenterView.hidden = [[userInfo stringValueForKey:@"gender" default:@""] isEqualToString:@"0"];
  543 + self.checkView_w.selectCenterView.hidden = [[userInfo stringValueForKey:@"gender" default:@""] isEqualToString:@"1"];
  544 +}
  545 +-(void)setSubDict:(NSDictionary *)subDict
  546 +{
  547 + _subDict = subDict;
  548 + self.nameLabel.text = [subDict stringValueForKey:@"name" default:@""];
  549 + self.contentField.keyboardType = [self.nameLabel.text isEqualToString:@"联系电话"]?UIKeyboardTypeNumberPad:UIKeyboardTypeDefault;
  550 + self.contentField.keyboardType = [self.nameLabel.text isEqualToString:@"年龄"]?UIKeyboardTypeNumberPad:UIKeyboardTypeDefault;
  551 + self.contentField.keyboardType = [self.nameLabel.text isEqualToString:@"联系方式"]?UIKeyboardTypeNumberPad:UIKeyboardTypeDefault;
  552 + self.contentField.placeholder = [subDict stringValueForKey:@"placeholder" default:@""];
  553 + self.contentField.hidden = ![subDict boolValueForKey:@"isTextField" default:YES];
  554 + self.descTextView.placeholder = [subDict stringValueForKey:@"placeholder" default:@""];
  555 + self.descTextView.hidden = ![subDict boolValueForKey:@"isTextView" default:YES];
  556 + self.moreButton.hidden = ![subDict boolValueForKey:@"isClick" default:YES];
  557 + if ([subDict boolValueForKey:@"isClick" default:YES]) [self.moreButton setTitle:[subDict stringValueForKey:@"placeholder" default:@""] forState:UIControlStateNormal];
  558 + self.lineLabel.hidden = [subDict boolValueForKey:@"isImage" default:YES];
  559 + self.lineLabel.hidden = [subDict boolValueForKey:@"isTextView" default:YES];
  560 +
  561 + self.checkView_m.hidden = ![subDict boolValueForKey:@"isChick" default:YES];
  562 + self.checkView_w.hidden = ![subDict boolValueForKey:@"isChick" default:YES];
  563 + self.contentImageView.hidden = ![subDict boolValueForKey:@"isImage" default:YES];
  564 +}
  565 +-(void)setImageArray:(NSMutableArray *)imageArray
  566 +{
  567 + _imageArray = imageArray;
  568 + if (imageArray.count == 0) {
  569 + self.imageView01.hidden = NO;
  570 + self.delectBtn01.hidden = YES;
  571 + self.imageView01.image = [CNLiveCommuntTools cCommunt_setImageWithName:@"c_communt_edit_add_image"];
  572 + self.imageView02.hidden = YES;
  573 + self.delectBtn02.hidden = YES;
  574 + }
  575 + if (imageArray.count == 1) {
  576 + self.imageView01.hidden = NO;
  577 + self.imageView01.image = imageArray.firstObject;
  578 + self.imageView02.hidden = NO;
  579 + self.delectBtn01.hidden = NO;
  580 + self.delectBtn02.hidden = YES;
  581 + self.imageView02.image = [CNLiveCommuntTools cCommunt_setImageWithName:@"c_communt_edit_add_image"];
  582 + self.imageView03.hidden = YES;
  583 + self.delectBtn03.hidden = YES;
  584 + }
  585 + if (imageArray.count == 2) {
  586 + self.imageView01.hidden = NO;
  587 + self.imageView01.image = imageArray.firstObject;
  588 + self.imageView02.hidden = NO;
  589 + self.imageView02.image = imageArray.lastObject;
  590 + self.delectBtn01.hidden = NO;
  591 + self.delectBtn02.hidden = NO;
  592 + self.imageView03.hidden = NO;
  593 + self.delectBtn03.hidden = YES;
  594 + self.imageView03.image = [CNLiveCommuntTools cCommunt_setImageWithName:@"c_communt_edit_add_image"];
  595 + }
  596 + if (imageArray.count == 3) {
  597 + self.delectBtn01.hidden = NO;
  598 + self.imageView01.hidden = NO;
  599 + self.imageView01.image = imageArray.firstObject;
  600 + self.delectBtn02.hidden = NO;
  601 + self.imageView02.hidden = NO;
  602 + self.imageView02.image = [imageArray objectAtIndex:1];
  603 + self.delectBtn03.hidden = NO;
  604 + self.imageView03.hidden = NO;
  605 + self.imageView03.image = imageArray.lastObject;
  606 + }
  607 +}
  608 +-(void)layoutSubviews
  609 +{
  610 + [super layoutSubviews];
  611 + __weak typeof(self) weakSelf = self;
  612 + [self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  613 + make.top.left.mas_equalTo(weakSelf.contentView).offset(15);
  614 + make.width.mas_equalTo(70);
  615 + }];
  616 + [self.contentField mas_makeConstraints:^(MASConstraintMaker *make) {
  617 + make.centerY.mas_equalTo(weakSelf.contentView);
  618 + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-10);
  619 + make.left.mas_equalTo(weakSelf.nameLabel.mas_right).offset(10);
  620 + }];
  621 + [self.moreButton mas_makeConstraints:^(MASConstraintMaker *make) {
  622 + make.centerY.mas_equalTo(weakSelf.contentView);
  623 + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-10);
  624 + make.left.mas_equalTo(weakSelf.nameLabel.mas_right).offset(20);
  625 + make.height.mas_equalTo(30);
  626 + }];
  627 + [self.descTextView mas_makeConstraints:^(MASConstraintMaker *make) {
  628 + make.left.mas_equalTo(weakSelf.contentView.mas_left).offset(15);
  629 + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-15);
  630 + make.top.mas_equalTo(weakSelf.nameLabel.mas_bottom).offset(5);
  631 + make.bottom.mas_equalTo(weakSelf.contentView.mas_bottom).offset(-5);
  632 + }];
  633 + [self.lineLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  634 + make.bottom.mas_equalTo(weakSelf.contentView.mas_bottom);
  635 + make.left.mas_equalTo(weakSelf.contentView.mas_left).offset(10);
  636 + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-10);
  637 + make.height.mas_equalTo(0.5);
  638 + }];
  639 + [self.contentImageView mas_makeConstraints:^(MASConstraintMaker *make) {
  640 + make.edges.mas_equalTo(weakSelf.contentView);
  641 + }];
  642 + [self.imageView01 mas_makeConstraints:^(MASConstraintMaker *make) {
  643 + make.left.top.mas_equalTo(weakSelf.contentImageView).offset(10);
  644 + make.size.mas_equalTo((kScreenWidth-40)/3);
  645 + }];
  646 + [self.imageView02 mas_makeConstraints:^(MASConstraintMaker *make) {
  647 + make.top.mas_equalTo(weakSelf.contentImageView).offset(10);
  648 + make.left.mas_equalTo(weakSelf.imageView01.mas_right).offset(10);
  649 + make.size.mas_equalTo((kScreenWidth-40)/3);
  650 + }];
  651 + [self.imageView03 mas_makeConstraints:^(MASConstraintMaker *make) {
  652 + make.top.mas_equalTo(weakSelf.contentImageView).offset(10);
  653 + make.left.mas_equalTo(weakSelf.imageView02.mas_right).offset(10);
  654 + make.size.mas_equalTo((kScreenWidth-40)/3);
  655 + }];
  656 + [self.delectBtn01 mas_makeConstraints:^(MASConstraintMaker *make) {
  657 + make.top.mas_equalTo(weakSelf.imageView01.mas_top).offset(5);
  658 + make.right.mas_equalTo(weakSelf.imageView01.mas_right).offset(-5);
  659 + make.size.mas_equalTo(20);
  660 + }];
  661 + [self.delectBtn02 mas_makeConstraints:^(MASConstraintMaker *make) {
  662 + make.top.mas_equalTo(weakSelf.imageView02.mas_top).offset(5);
  663 + make.right.mas_equalTo(weakSelf.imageView02.mas_right).offset(-5);
  664 + make.size.mas_equalTo(20);
  665 + }];
  666 + [self.delectBtn03 mas_makeConstraints:^(MASConstraintMaker *make) {
  667 + make.top.mas_equalTo(weakSelf.imageView03.mas_top).offset(5);
  668 + make.right.mas_equalTo(weakSelf.imageView03.mas_right).offset(-5);
  669 + make.size.mas_equalTo(20);
  670 + }];
  671 + [self.checkView_w mas_makeConstraints:^(MASConstraintMaker *make) {
  672 + make.centerY.mas_equalTo(weakSelf.contentView);
  673 + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-10);
  674 + make.width.mas_equalTo(35);
  675 + make.height.mas_equalTo(20);
  676 + }];
  677 + [self.checkView_m mas_makeConstraints:^(MASConstraintMaker *make) {
  678 + make.centerY.mas_equalTo(weakSelf.contentView);
  679 + make.right.mas_equalTo(weakSelf.checkView_w.mas_left).offset(-10);
  680 + make.width.mas_equalTo(35);
  681 + make.height.mas_equalTo(20);
  682 + }];
  683 +}
  684 +- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
  685 +{
  686 + NSString * name = [self.subDict stringValueForKey:@"name" default:@""];
  687 + if ([name isEqualToString:@"联系人"] && textField.text.length > 15) {
  688 + [QMUITips showWithText:@"联系人限制20个以内,超出将进行截取" inView:([UIApplication sharedApplication].delegate).window hideAfterDelay:1.5];
  689 + textField.text = [textField.text substringAtRange:NSMakeRange(0, 15)];
  690 + }
  691 + if ([name isEqualToString:@"联系地址"] && textField.text.length > 50) {
  692 + [QMUITips showWithText:@"联系地址限制50个以内,超出将进行截取" inView:([UIApplication sharedApplication].delegate).window hideAfterDelay:1.5];
  693 + textField.text = [textField.text substringAtRange:NSMakeRange(0, 50)];
  694 + }
  695 + return YES;
  696 +}
  697 +#pragma mark = QMUITextViewDelegate =
  698 +-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
  699 +{
  700 + if ([text isEqualToString:@"\n"]) return NO;
  701 + NSInteger textTotalLength = textView.text.length + text.length;
  702 + if (textTotalLength > _descTextView.maximumTextLength) {
  703 + textTotalLength = _descTextView.maximumTextLength;
  704 + }
  705 + return YES;
  706 +}
  707 +- (void)textView:(QMUITextView *)textView didPreventTextChangeInRange:(NSRange)range replacementText:(NSString *)replacementText {
  708 +
  709 + [QMUITips showWithText:[NSString stringWithFormat:@"问题描述限制%@字以内", @(textView.maximumTextLength)] inView:([UIApplication sharedApplication].delegate).window hideAfterDelay:1.5];
  710 +}
  711 +- (BOOL)textViewShouldReturn:(QMUITextView *)textView
  712 +{
  713 + [textView resignFirstResponder];
  714 + return YES;
  715 +}
  716 +-(UIButton *)setDelectBtn:(NSInteger)index
  717 +{
  718 + UIButton * delectBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  719 + delectBtn.backgroundColor = [UIColor clearColor];
  720 + [delectBtn setImage:[CNLiveCommuntTools cCommunt_setImageWithName:@"c_communt_edit_delect_image"] forState:UIControlStateNormal];
  721 + delectBtn.imageView.contentMode = UIViewContentModeScaleAspectFit;
  722 + delectBtn.hidden = YES;
  723 + delectBtn.tag = index + 100;
  724 + [delectBtn addTarget:self action:@selector(delectImageViewAction:) forControlEvents:UIControlEventTouchUpInside];
  725 + return delectBtn;
  726 +}
  727 +-(void)delectImageViewAction:(UIButton *)delectBtn
  728 +{
  729 + if ([self.delegate respondsToSelector:@selector(setCommuntSubInputTableViewWithDelectForImage:)]) {
  730 + UIImage * image = self.imageArray[delectBtn.tag - 100];
  731 + [self.delegate setCommuntSubInputTableViewWithDelectForImage:image];
  732 + }
  733 +}
  734 +-(void)selectWithImageViewForIndex:(NSInteger)index
  735 +{
  736 + if (self.imageArray.count >= index + 1) return;
  737 + if ([self.delegate respondsToSelector:@selector(setCommuntSubInputTableViewWithSelectForIndex:)]) {
  738 + [self.delegate setCommuntSubInputTableViewWithSelectForIndex:index];
  739 + }
  740 +}
  741 +-(void)checkMAction:(UIButton *)button
  742 +{
  743 + self.checkView_m.selectCenterView.hidden = NO;
  744 + self.checkView_w.selectCenterView.hidden = YES;
  745 + self.sex = @"男";
  746 +}
  747 +-(void)checkWAction:(UIButton *)button
  748 +{
  749 + self.checkView_m.selectCenterView.hidden = YES;
  750 + self.checkView_w.selectCenterView.hidden = NO;
  751 + self.sex = @"女";
  752 +}
  753 +#pragma mark =
  754 +-(UILabel *)nameLabel
  755 +{
  756 + if (!_nameLabel) {
  757 + _nameLabel = [[UILabel alloc] init];
  758 + _nameLabel.textColor = UIColorHex(#333333);
  759 + _nameLabel.lineBreakMode = NSLineBreakByTruncatingTail;
  760 + _nameLabel.numberOfLines = 1;
  761 + _nameLabel.font = [UIFont systemFontOfSize:16];
  762 + _nameLabel.text = @"联系人";
  763 + }
  764 + return _nameLabel;
  765 +}
  766 +-(UITextField *)contentField
  767 +{
  768 + if (!_contentField) {
  769 + _contentField = [[UITextField alloc] init];
  770 + _contentField.backgroundColor = [UIColor whiteColor];
  771 + _contentField.font = [UIFont systemFontOfSize:14.0f];
  772 + _contentField.textColor = UIColorHex(#333333);
  773 + _contentField.clearButtonMode = UITextFieldViewModeWhileEditing;
  774 + _contentField.textAlignment = NSTextAlignmentRight;
  775 + _contentField.adjustsFontSizeToFitWidth = YES;
  776 + _contentField.minimumFontSize = 12;
  777 + _contentField.returnKeyType = UIReturnKeyNext;
  778 + _contentField.hidden = YES;
  779 + _contentField.delegate = self;
  780 + }
  781 + return _contentField;
  782 +}
  783 +-(QMUITextView *)descTextView
  784 +{
  785 + if (!_descTextView) {
  786 + _descTextView = [[QMUITextView alloc] init];
  787 + _descTextView.backgroundColor = UIColorHex(#F9F9F9);
  788 + _descTextView.layer.masksToBounds = YES;
  789 + _descTextView.layer.cornerRadius = 7;
  790 + _descTextView.placeholderColor = UIColorHex(#C8C8C8);
  791 + _descTextView.placeholder = @"您遇到什么问题,请留言";
  792 + _descTextView.textColor = UIColorHex(#333333);
  793 + _descTextView.font = [UIFont systemFontOfSize:14.0f];
  794 + _descTextView.returnKeyType = UIReturnKeyDone;
  795 + _descTextView.maximumTextLength = 100;
  796 + _descTextView.textContainerInset = UIEdgeInsetsMake(2.5, 2.5, 2.5, 2.5);
  797 + _descTextView.contentInset = UIEdgeInsetsMake(2.5, 2.5, 2.5, 2.5);
  798 + _descTextView.delegate = self;
  799 + _descTextView.hidden = YES;
  800 + }
  801 + return _descTextView;
  802 +}
  803 +-(UILabel *)lineLabel
  804 +{
  805 + if (!_lineLabel) {
  806 + _lineLabel = [[UILabel alloc] init];
  807 + _lineLabel.backgroundColor = UIColorHex(#E6E6E6);
  808 + }
  809 + return _lineLabel;
  810 +}
  811 +-(QMUIButton *)moreButton
  812 +{
  813 + if (!_moreButton) {
  814 + _moreButton = [[QMUIButton alloc] init];
  815 + [_moreButton setTitleColor:UIColorHex(#C8C8C8) forState:UIControlStateNormal];
  816 + [_moreButton setImage:[CNLiveCommuntTools cCommunt_setImageWithName:@"c_communt_list_more"] forState:UIControlStateNormal];
  817 + _moreButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
  818 + _moreButton.titleLabel.font = [UIFont systemFontOfSize:14.0f];
  819 + _moreButton.imagePosition = QMUIButtonImagePositionRight;
  820 + _moreButton.spacingBetweenImageAndTitle = 2.5;
  821 + _moreButton.userInteractionEnabled = NO;
  822 + _moreButton.hidden = YES;
  823 + }
  824 + return _moreButton;
  825 +}
  826 +-(UIView *)contentImageView
  827 +{
  828 + if (!_contentImageView) {
  829 + _contentImageView = [[UIView alloc] init];
  830 + _contentImageView.backgroundColor = [UIColor whiteColor];
  831 + _contentImageView.hidden = YES;
  832 + }
  833 + return _contentImageView;
  834 +}
  835 +-(CNLiveCommuntCheckView *)checkView_m
  836 +{
  837 + if (!_checkView_m) {
  838 + _checkView_m = [[CNLiveCommuntCheckView alloc] init];
  839 + _checkView_m.backgroundColor = [UIColor whiteColor];
  840 + _checkView_m.selectCenterView.hidden = NO;
  841 + _checkView_m.evaluaDescLabel.text = @"男";
  842 + [_checkView_m.selectBtn addTarget:self action:@selector(checkMAction:) forControlEvents:UIControlEventTouchUpInside];
  843 + }
  844 + return _checkView_m;
  845 +}
  846 +-(CNLiveCommuntCheckView *)checkView_w
  847 +{
  848 + if (!_checkView_w) {
  849 + _checkView_w = [[CNLiveCommuntCheckView alloc] init];
  850 + _checkView_w.backgroundColor = [UIColor whiteColor];
  851 + _checkView_w.selectCenterView.hidden = YES;
  852 + _checkView_w.evaluaDescLabel.text = @"女";
  853 + [_checkView_w.selectBtn addTarget:self action:@selector(checkWAction:) forControlEvents:UIControlEventTouchUpInside];
  854 + }
  855 + return _checkView_w;
  856 +}
  857 +-(UIImageView *)imageView01
  858 +{
  859 + if (!_imageView01) {
  860 + _imageView01 = [[UIImageView alloc] init];
  861 + _imageView01.backgroundColor = [UIColor whiteColor];
  862 + _imageView01.contentMode = UIViewContentModeScaleAspectFill;
  863 + _imageView01.image = [CNLiveCommuntTools cCommunt_setImageWithName:@"c_communt_edit_add_image"];
  864 + _imageView01.layer.cornerRadius = 6;
  865 + _imageView01.layer.masksToBounds = YES;
  866 + _imageView01.userInteractionEnabled = YES;
  867 + __weak typeof(self) weakSelf = self;
  868 + [_imageView01 addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithActionBlock:^(id _Nonnull sender) {
  869 + [weakSelf selectWithImageViewForIndex:0];
  870 + }]];
  871 + }
  872 + return _imageView01;
  873 +}
  874 +-(UIImageView *)imageView02
  875 +{
  876 + if (!_imageView02) {
  877 + _imageView02 = [[UIImageView alloc] init];
  878 + _imageView02.backgroundColor = [UIColor whiteColor];
  879 + _imageView02.contentMode = UIViewContentModeScaleAspectFill;
  880 + _imageView02.image = [CNLiveCommuntTools cCommunt_setImageWithName:@"c_communt_edit_add_image"];
  881 + _imageView02.layer.cornerRadius = 6;
  882 + _imageView02.layer.masksToBounds = YES;
  883 + _imageView02.hidden = YES;
  884 + _imageView02.userInteractionEnabled = YES;
  885 + __weak typeof(self) weakSelf = self;
  886 + [_imageView02 addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithActionBlock:^(id _Nonnull sender) {
  887 + [weakSelf selectWithImageViewForIndex:1];
  888 + }]];
  889 + }
  890 + return _imageView02;
  891 +}
  892 +-(UIImageView *)imageView03
  893 +{
  894 + if (!_imageView03) {
  895 + _imageView03 = [[UIImageView alloc] init];
  896 + _imageView03.backgroundColor = [UIColor whiteColor];
  897 + _imageView03.contentMode = UIViewContentModeScaleAspectFill;
  898 + _imageView03.image = [CNLiveCommuntTools cCommunt_setImageWithName:@"c_communt_edit_add_image"];
  899 + _imageView03.layer.cornerRadius = 6;
  900 + _imageView03.layer.masksToBounds = YES;
  901 + _imageView03.hidden = YES;
  902 + _imageView03.userInteractionEnabled = YES;
  903 + __weak typeof(self) weakSelf = self;
  904 + [_imageView03 addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithActionBlock:^(id _Nonnull sender) {
  905 + [weakSelf selectWithImageViewForIndex:2];
  906 + }]];
  907 + }
  908 + return _imageView03;
  909 +}
  910 +
  911 +@end
  912 +
  913 +@implementation CNLiveCommuntSubAlertTableView
  914 +
  915 +- (instancetype)initWithDataSource:(NSArray *)dataSource isTime:(BOOL)isTime
  916 +{
  917 + self = [super init];
  918 + if (self) {
  919 + self.frame = CGRectMake(0, 0, kScreenWidth, 280);
  920 + self.backgroundColor = [UIColor whiteColor];
  921 + _isTime = isTime;
  922 +
  923 + _oneSource = dataSource;
  924 + if (isTime) {
  925 + CNLiveCommuntyActivityMaintainsTimeModel * timeModel = dataSource.firstObject;
  926 + _twoSource = timeModel.time;
  927 + self.dayString = timeModel.day;
  928 + self.timeString = self.twoSource.firstObject;
  929 + }else{
  930 + self.listModel = dataSource.firstObject;
  931 + }
  932 +
  933 + self.pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 50, kScreenWidth, 230)];
  934 + self.pickerView.delegate = self;
  935 + self.pickerView.dataSource = self;
  936 + [self addSubview:self.pickerView];
  937 +
  938 + self.closeBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  939 + self.closeBtn.frame = CGRectMake(10, 15, 20, 20);
  940 + [self.closeBtn setImage:[CNLiveCommuntTools cCommunt_setImageWithName:@"c_community_content_close"] forState:UIControlStateNormal];
  941 + [self.closeBtn setBackgroundColor:[UIColor whiteColor]];
  942 + [self addSubview:self.closeBtn];
  943 +
  944 + self.doneBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  945 + self.doneBtn.frame = CGRectMake(kScreenWidth - 40, 15, 30, 20);
  946 + [self.doneBtn setTitle:@"完成" forState:UIControlStateNormal];
  947 + [self.doneBtn setTitleColor:UIColorHex(#CD0302) forState:UIControlStateNormal];
  948 + [self.doneBtn setBackgroundColor:[UIColor whiteColor]];
  949 + self.doneBtn.titleLabel.font = [UIFont systemFontOfSize:13];
  950 + [self addSubview:self.doneBtn];
  951 +
  952 + self.lineLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 49, kScreenWidth, 0.5)];
  953 + self.lineLabel.backgroundColor = UIColorHex(#E4E4E4);
  954 + [self addSubview:self.lineLabel];
  955 + }
  956 + return self;
  957 +}
  958 +
  959 +-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
  960 +{
  961 + return self.isTime ? 2 : 1;
  962 +}
  963 +-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
  964 +{
  965 + if (self.isTime) {
  966 + if (component == 0) {
  967 + return self.oneSource.count;
  968 + }else{
  969 + return self.twoSource.count;
  970 + }
  971 + }else{
  972 + return self.oneSource.count;
  973 + }
  974 +
  975 +}
  976 +-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
  977 +{
  978 + if (self.isTime) {
  979 + if (component == 0) {
  980 + CNLiveCommuntyActivityMaintainsTimeModel * timeModel = self.oneSource[row];
  981 + return timeModel.day;
  982 + }else{
  983 + return self.twoSource[row];
  984 + }
  985 + }else{
  986 + CNLiveCommuntyActivityMaintainsListModel * listModel = self.oneSource[row];
  987 + return listModel.name;
  988 + }
  989 +}
  990 +- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component
  991 +{
  992 + return 40.0f;
  993 +}
  994 +-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
  995 +{
  996 + if (self.isTime) {
  997 + if (component == 0) {
  998 + CNLiveCommuntyActivityMaintainsTimeModel * timeModel = self.oneSource[row];
  999 + self.twoSource = timeModel.time;
  1000 + [pickerView selectedRowInComponent:1];
  1001 + [pickerView reloadComponent:1];
  1002 +
  1003 + self.dayString = timeModel.day;
  1004 + }
  1005 + if (component == 1) self.timeString = self.twoSource[row];
  1006 + }else{
  1007 + self.listModel = self.oneSource[row];
  1008 + }
  1009 +}
  1010 +
  1011 ++(void)showAlertViewDataSource:(NSArray *)dataSource isTime:(BOOL)isTime CompleterBlock:(void(^)(NSString * idStr,NSString * content))completerBlock
  1012 +{
  1013 + CNLiveCommuntSubAlertTableView * alertView = [[CNLiveCommuntSubAlertTableView alloc] initWithDataSource:dataSource isTime:isTime];
  1014 +
  1015 + QMUIModalPresentationViewController *modalViewController = [[QMUIModalPresentationViewController alloc] init];
  1016 + modalViewController.animationStyle = QMUIModalPresentationAnimationStyleSlide;
  1017 + modalViewController.contentView = alertView;
  1018 + modalViewController.contentViewMargins = UIEdgeInsetsMake(kScreenHeight - 280, 0, 0, 0);
  1019 + [modalViewController showWithAnimated:YES completion:nil];
  1020 +
  1021 + __weak typeof(alertView) weakAlertView = alertView;
  1022 + __weak typeof(modalViewController) weakModalViewController = modalViewController;
  1023 + [alertView.closeBtn addBlockForControlEvents:UIControlEventTouchUpInside block:^(id _Nonnull sender) {
  1024 + [weakModalViewController hideWithAnimated:YES completion:^(BOOL finished) {
  1025 +
  1026 + }];
  1027 + }];
  1028 + [alertView.doneBtn addBlockForControlEvents:UIControlEventTouchUpInside block:^(id _Nonnull sender) {
  1029 + [weakModalViewController hideWithAnimated:YES completion:^(BOOL finished) {
  1030 + NSString * tempString = @"";
  1031 + if ([weakAlertView.timeString isNotBlank]) tempString = [NSString stringWithFormat:@"%@ %@",weakAlertView.dayString,weakAlertView.timeString];
  1032 + if (![weakAlertView.timeString isNotBlank]) tempString = weakAlertView.listModel.name;
  1033 + if (completerBlock) completerBlock([weakAlertView.listModel.idStr isNotBlank]?weakAlertView.listModel.idStr:@"",tempString);
  1034 + }];
  1035 + }];
  1036 +}
  1037 +
  1038 +
  1039 +@end
... ...
CNLiveCommunitModule/Classes/View/CNLiveCommuntyColGridViewLayout.h 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/View/CNLiveCommuntyColGridViewLayout.h
  1 +//
  2 +// CNLiveCommuntyColGridViewLayout.h
  3 +// CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/9.
  6 +//
  7 +
  8 +#import <UIKit/UIKit.h>
  9 +
  10 +NS_ASSUME_NONNULL_BEGIN
  11 +
  12 +@protocol CNLiveCommuntyColGridViewLayoutDelegate <NSObject>
  13 +
  14 +- (NSInteger)numberOfColums;
  15 +- (NSInteger)totolNumber;
  16 +- (CGFloat)height;
  17 +
  18 +@end
  19 +
  20 +@interface CNLiveCommuntyColGridViewLayout : UICollectionViewFlowLayout
  21 +@property (nonatomic, weak) id<CNLiveCommuntyColGridViewLayoutDelegate> delegate;
  22 +@property (nonatomic, assign) NSInteger col;
  23 +@property (nonatomic, assign) NSInteger sum;
  24 +@property (nonatomic, assign) CGFloat height; //每行高度
  25 +@end
  26 +
  27 +NS_ASSUME_NONNULL_END
... ...
CNLiveCommunitModule/Classes/View/CNLiveCommuntyColGridViewLayout.m 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/View/CNLiveCommuntyColGridViewLayout.m
  1 +//
  2 +// CNLiveCommuntyColGridViewLayout.m
  3 +// CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/9.
  6 +//
  7 +
  8 +#import "CNLiveCommuntyColGridViewLayout.h"
  9 +
  10 +@interface CNLiveCommuntyColGridViewLayout ()
  11 +
  12 +@end
  13 +
  14 +@implementation CNLiveCommuntyColGridViewLayout
  15 +
  16 +- (NSInteger)col {
  17 + if (_delegate && [_delegate respondsToSelector:@selector(numberOfColums)]) {
  18 + return [_delegate numberOfColums];
  19 +}
  20 + return 0;
  21 +}
  22 +
  23 +- (NSInteger)sum {
  24 + if (_delegate && [_delegate respondsToSelector:@selector(totolNumber)]) {
  25 + return [_delegate totolNumber];
  26 + }
  27 +return 0;
  28 +}
  29 +
  30 +- (CGFloat)height {
  31 + if (_delegate && [_delegate respondsToSelector:@selector(height)]) {
  32 + return [_delegate height];
  33 + }
  34 + return 0;
  35 +}
  36 +
  37 +- (CGSize)collectionViewContentSize {
  38 + if (self.col <= 0) {
  39 + return CGSizeZero;
  40 + }
  41 +
  42 + NSInteger row = self.sum / self.col + ((self.sum % self.col) > 0 ? 1: 0);
  43 + CGFloat width = SCREEN_WIDTH;
  44 + CGFloat height = self.height * row;
  45 + return CGSizeMake(width, height);
  46 +}
  47 +
  48 +- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds {
  49 + return YES;
  50 +}
  51 +- (void)prepareLayout
  52 +{
  53 + [super prepareLayout];
  54 +
  55 +}
  56 +
  57 +- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath {
  58 + UICollectionViewLayoutAttributes *attributes = [super layoutAttributesForItemAtIndexPath:indexPath];
  59 + if (self.col <= 0) {
  60 + return attributes;
  61 + }
  62 + CGFloat itemWidth = SCREEN_WIDTH / self.col;
  63 + attributes.center = CGPointMake((indexPath.row % self.col + 0.5) * itemWidth, self.height * (indexPath.row / self.col + 0.5));
  64 + attributes.size = CGSizeMake(itemWidth, self.height);
  65 + attributes.indexPath = indexPath;
  66 + return attributes;
  67 +}
  68 +
  69 +- (NSArray<UICollectionViewLayoutAttributes *> *)layoutAttributesForElementsInRect:(CGRect)rect {
  70 + NSArray *array = [super layoutAttributesForElementsInRect:rect];
  71 + NSMutableArray *attributes = [NSMutableArray arrayWithCapacity:5];
  72 + for (int i = 0; i < [array count]; i ++) {
  73 + NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0];
  74 + [attributes addObject:[self layoutAttributesForItemAtIndexPath:indexPath]];
  75 + }
  76 + return attributes;
  77 +}
  78 +
  79 +@end
... ...
CNLiveCommunitModule/Classes/ViewController/CNLiveCommuntActiviRecordViewController.h 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/ViewController/CNLiveCommuntActiviRecordViewController.h
  1 +//
  2 +// CNLiveCommuntActiviRecordViewController.h
  3 +// CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/2.
  6 +//
  7 +
  8 +#import <CNLiveBusinessBaseModule/CNCommonViewController.h>
  9 +
  10 +NS_ASSUME_NONNULL_BEGIN
  11 +
  12 +@interface CNLiveCommuntActiviRecordViewController : CNCommonViewController
  13 +
  14 +/// 初始化活动界面
  15 +/// @param nbhdId 小区id
  16 +- (instancetype)initWithNBhdId:(NSString *)nbhdId;
  17 +@end
  18 +
  19 +NS_ASSUME_NONNULL_END
... ...
CNLiveCommunitModule/Classes/ViewController/CNLiveCommuntActiviRecordViewController.m 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/ViewController/CNLiveCommuntActiviRecordViewController.m
  1 +//
  2 +// CNLiveCommuntActiviRecordViewController.m
  3 +// CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/2.
  6 +//
  7 +
  8 +#import "CNLiveCommuntActiviRecordViewController.h"
  9 +
  10 +static NSInteger const kCNLiveSectionTitleHeight = 44;//标题显示
  11 +
  12 +@interface CNLiveCommuntActiviRecordViewController ()<JXCategoryViewDelegate,JXCategoryListContainerViewDelegate>
  13 +@property (nonatomic, strong) NSMutableArray<CNLiveCommuntListViewController *>* viewControllers;
  14 +@property (nonatomic, strong) JXCategoryTitleView *categoryView;
  15 +@property (nonatomic, strong) JXCategoryListContainerView *listContainerView;
  16 +@property (nonatomic, strong) NSMutableArray <NSString *>* titleArray;
  17 +
  18 +@property (nonatomic, copy) NSString * nbhdId;
  19 +
  20 +@end
  21 +
  22 +@implementation CNLiveCommuntActiviRecordViewController
  23 +
  24 +- (instancetype)initWithNBhdId:(NSString *)nbhdId
  25 +{
  26 + self = [super init];
  27 + if (self) {
  28 + _nbhdId = nbhdId;
  29 + }
  30 + return self;
  31 +}
  32 +
  33 +- (BOOL)preferredNavigationBarHidden
  34 +{
  35 + return NO;
  36 +}
  37 +- (void)viewDidLoad {
  38 + [super viewDidLoad];
  39 + // Do any additional setup after loading the view.
  40 + self.view.backgroundColor = [UIColor whiteColor];
  41 + self.title = @"活动记录";
  42 +
  43 + self.listContainerView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self];
  44 + [self.view addSubview:self.listContainerView];
  45 +
  46 + self.categoryView = [[JXCategoryTitleView alloc] init];
  47 + //优化关联listContainer,以后后续比如defaultSelectedIndex等属性,才能同步给listContainer
  48 + self.categoryView.listContainer = self.listContainerView;
  49 + self.categoryView.titleFont = [UIFont systemFontOfSize:15.0f];
  50 + self.categoryView.titleSelectedFont = [UIFont systemFontOfSize:16.0f];
  51 + self.categoryView.titleSelectedFont = [UIFont boldSystemFontOfSize:16.0f];
  52 + self.categoryView.titleColor = UIColorHex(#999999);
  53 + self.categoryView.titleSelectedColor = UIColorHex(#CD0302);
  54 + self.categoryView.delegate = self;
  55 + self.categoryView.titles = self.titleArray;
  56 + self.categoryView.defaultSelectedIndex = 0;
  57 + JXCategoryIndicatorLineView *lineView = [[JXCategoryIndicatorLineView alloc] init];
  58 + lineView.indicatorColor = UIColorHex(#CD0302);
  59 + lineView.verticalMargin = 5;
  60 + lineView.indicatorWidth = 10;
  61 + self.categoryView.indicators = @[lineView];
  62 + [self.view addSubview:self.categoryView];
  63 +}
  64 +
  65 +- (void)viewDidLayoutSubviews {
  66 + [super viewDidLayoutSubviews];
  67 +
  68 + self.categoryView.frame = CGRectMake(0, kNavigationBarHeight, KScreenWidth, kCNLiveSectionTitleHeight);
  69 + self.listContainerView.frame = CGRectMake(0, kNavigationBarHeight + kCNLiveSectionTitleHeight, KScreenWidth, KScreenHeight - kCNLiveSectionTitleHeight - kNavigationBarHeight);
  70 +}
  71 +#pragma mark - JXCategoryListContainerViewDelegate
  72 +
  73 +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView {
  74 + return self.titleArray.count;
  75 +}
  76 +
  77 +- (id<JXCategoryListContentViewDelegate>)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index {
  78 + return self.viewControllers[index];
  79 +}
  80 +
  81 +#pragma mark - JXCategoryViewDelegate
  82 +
  83 +- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index {
  84 + //侧滑手势处理
  85 + self.navigationController.interactivePopGestureRecognizer.enabled = (index == 0);
  86 +}
  87 +
  88 +#pragma mark =
  89 +-(NSMutableArray<NSString *> *)titleArray
  90 +{
  91 + if (!_titleArray) {
  92 + _titleArray = @[@"未开始",@"进行中",@"已结束",@"待评价",@"退款"].mutableCopy;
  93 + }
  94 + return _titleArray;
  95 +}
  96 +-(NSMutableArray<CNLiveCommuntListViewController *> *)viewControllers
  97 +{
  98 + if (!_viewControllers) {
  99 + _viewControllers = [[NSMutableArray alloc] initWithArray:@[
  100 + [[CNLiveCommuntListViewController alloc] initWithShowType:CNLiveCommuntListShowTypeRecord Index:0 NBhdId:self.nbhdId],
  101 + [[CNLiveCommuntListViewController alloc] initWithShowType:CNLiveCommuntListShowTypeRecord Index:1 NBhdId:self.nbhdId],
  102 + [[CNLiveCommuntListViewController alloc] initWithShowType:CNLiveCommuntListShowTypeRecord Index:2 NBhdId:self.nbhdId],
  103 + [[CNLiveCommuntListViewController alloc] initWithShowType:CNLiveCommuntListShowTypeRecord Index:3 NBhdId:self.nbhdId],
  104 + [[CNLiveCommuntListViewController alloc] initWithShowType:CNLiveCommuntListShowTypeRecord Index:4 NBhdId:self.nbhdId]
  105 + ]];
  106 + }
  107 + return _viewControllers;
  108 +}
  109 +
  110 +@end
... ...
CNLiveCommunitModule/Classes/ViewController/CNLiveCommuntActiviRepairViewController.h 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/ViewController/CNLiveCommuntActiviRepairViewController.h
  1 +//
  2 +// CNLiveCommuntActiviRepairViewController.h
  3 +// CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/3.
  6 +//
  7 +
  8 +#import <CNLiveBusinessBaseModule/CNLiveBusinessBaseModule.h>
  9 +
  10 +NS_ASSUME_NONNULL_BEGIN
  11 +
  12 +@interface CNLiveCommuntActiviRepairViewController : CNCommonViewController
  13 +
  14 +@end
  15 +
  16 +NS_ASSUME_NONNULL_END
... ...
CNLiveCommunitModule/Classes/ViewController/CNLiveCommuntActiviRepairViewController.m 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/ViewController/CNLiveCommuntActiviRepairViewController.m
  1 +//
  2 +// CNLiveCommuntActiviRepairViewController.m
  3 +// CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/3.
  6 +//
  7 +
  8 +#import "CNLiveCommuntActiviRepairViewController.h"
  9 +
  10 +
  11 +static NSInteger const kCNLiveSectionTitleHeight = 44;//标题显示
  12 +
  13 +@interface CNLiveCommuntActiviRepairViewController ()<JXCategoryViewDelegate,JXCategoryListContainerViewDelegate>
  14 +@property (nonatomic, strong) NSMutableArray<CNLiveCommuntListViewController *>* viewControllers;
  15 +@property (nonatomic, strong) JXCategoryTitleView *categoryView;
  16 +@property (nonatomic, strong) JXCategoryListContainerView *listContainerView;
  17 +@property (nonatomic, strong) NSMutableArray <NSString *>* titleArray;
  18 +
  19 +@end
  20 +
  21 +@implementation CNLiveCommuntActiviRepairViewController
  22 +
  23 +- (BOOL)preferredNavigationBarHidden
  24 +{
  25 + return NO;
  26 +}
  27 +- (void)viewDidLoad {
  28 + [super viewDidLoad];
  29 + // Do any additional setup after loading the view.
  30 + self.view.backgroundColor = [UIColor whiteColor];
  31 + self.title = @"报修记录";
  32 +
  33 + self.listContainerView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self];
  34 + [self.view addSubview:self.listContainerView];
  35 +
  36 + self.categoryView = [[JXCategoryTitleView alloc] init];
  37 + //优化关联listContainer,以后后续比如defaultSelectedIndex等属性,才能同步给listContainer
  38 + self.categoryView.listContainer = self.listContainerView;
  39 + self.categoryView.titleFont = [UIFont systemFontOfSize:15.0f];
  40 + self.categoryView.titleSelectedFont = [UIFont systemFontOfSize:16.0f];
  41 + self.categoryView.titleSelectedFont = [UIFont boldSystemFontOfSize:16.0f];
  42 + self.categoryView.titleColor = UIColorHex(#999999);
  43 + self.categoryView.titleSelectedColor = UIColorHex(#CD0302);
  44 + self.categoryView.delegate = self;
  45 + self.categoryView.titles = self.titleArray;
  46 + self.categoryView.defaultSelectedIndex = 0;
  47 + JXCategoryIndicatorLineView *lineView = [[JXCategoryIndicatorLineView alloc] init];
  48 + lineView.indicatorColor = UIColorHex(#CD0302);
  49 + lineView.verticalMargin = 5;
  50 + lineView.indicatorWidth = 10;
  51 + self.categoryView.indicators = @[lineView];
  52 + [self.view addSubview:self.categoryView];
  53 +}
  54 +
  55 +- (void)viewDidLayoutSubviews {
  56 + [super viewDidLayoutSubviews];
  57 +
  58 + self.categoryView.frame = CGRectMake(0, kNavigationBarHeight, KScreenWidth, kCNLiveSectionTitleHeight);
  59 + self.listContainerView.frame = CGRectMake(0, kNavigationBarHeight + kCNLiveSectionTitleHeight, KScreenWidth, KScreenHeight - kCNLiveSectionTitleHeight - kNavigationBarHeight);
  60 +}
  61 +#pragma mark - JXCategoryListContainerViewDelegate
  62 +
  63 +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView {
  64 + return self.titleArray.count;
  65 +}
  66 +
  67 +- (id<JXCategoryListContentViewDelegate>)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index {
  68 + return self.viewControllers[index];
  69 +}
  70 +
  71 +#pragma mark - JXCategoryViewDelegate
  72 +
  73 +- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index {
  74 + //侧滑手势处理
  75 + self.navigationController.interactivePopGestureRecognizer.enabled = (index == 0);
  76 +}
  77 +
  78 +#pragma mark =
  79 +-(NSMutableArray<NSString *> *)titleArray
  80 +{
  81 + if (!_titleArray) {
  82 + _titleArray = @[@"已发起",@"处理中",@"已失效",@"已完成"].mutableCopy;
  83 + }
  84 + return _titleArray;
  85 +}
  86 +-(NSMutableArray<CNLiveCommuntListViewController *> *)viewControllers
  87 +{
  88 + if (!_viewControllers) {
  89 + _viewControllers = [[NSMutableArray alloc] initWithArray:@[
  90 + [[CNLiveCommuntListViewController alloc] initWithShowType:CNLiveCommuntListShowTypeRepair Index:0 NBhdId:@""],
  91 + [[CNLiveCommuntListViewController alloc] initWithShowType:CNLiveCommuntListShowTypeRepair Index:1 NBhdId:@""],
  92 + [[CNLiveCommuntListViewController alloc] initWithShowType:CNLiveCommuntListShowTypeRepair Index:2 NBhdId:@""],
  93 + [[CNLiveCommuntListViewController alloc] initWithShowType:CNLiveCommuntListShowTypeRepair Index:3 NBhdId:@""]
  94 + ]];
  95 + }
  96 + return _viewControllers;
  97 +}
  98 +
  99 +@end
... ...
CNLiveCommunitModule/Classes/ViewController/CNLiveCommuntActiviViewController.h 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/ViewController/CNLiveCommuntActiviViewController.h
  1 +//
  2 +// CNLiveCommuntActiviViewController.h
  3 +// CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/1.
  6 +//
  7 +
  8 +#import <DSBaseModule/DSBaseModule.h>
  9 +
  10 +NS_ASSUME_NONNULL_BEGIN
  11 +
  12 +typedef enum : NSUInteger {
  13 + CNLiveCommuntActiviShowTypeLive,//显示视讯列表界面内容
  14 + CNLiveCommuntActiviShowTypeWeb//使用内置网页
  15 +} CNLiveCommuntActiviShowType;
  16 +
  17 +@interface CNLiveCommuntActiviViewController : DSBaseViewController<JXCategoryListContentViewDelegate>
  18 +
  19 +
  20 +@end
  21 +
  22 +NS_ASSUME_NONNULL_END
... ...
CNLiveCommunitModule/Classes/ViewController/CNLiveCommuntActiviViewController.m 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/ViewController/CNLiveCommuntActiviViewController.m
  1 +//
  2 +// CNLiveCommuntActiviViewController.m
  3 +// CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/1.
  6 +//
  7 +
  8 +#import "CNLiveCommuntActiviViewController.h"
  9 +
  10 +@interface CNLiveCommuntActiviViewController ()
  11 +@property (nonatomic, assign) CNLiveCommuntActiviShowType showType;
  12 +@end
  13 +
  14 +@implementation CNLiveCommuntActiviViewController
  15 +
  16 +- (instancetype)initWithShowType:(CNLiveCommuntActiviShowType)showType
  17 +{
  18 + self = [super init];
  19 + if (self) {
  20 + _showType = showType;
  21 + }
  22 + return self;
  23 +}
  24 +
  25 +
  26 +- (void)viewDidLoad {
  27 + [super viewDidLoad];
  28 + // Do any additional setup after loading the view.
  29 + UIViewController *subVC = [UIViewController new];
  30 + if (self.showType == CNLiveCommuntActiviShowTypeLive) {
  31 + subVC = [[CNLiveCommuntyModule shareInstance].protocol pushWebViewWithMainProjectWithWebUrl:@"https://www.baidu.com"];
  32 + }
  33 + if (self.showType == CNLiveCommuntActiviShowTypeWeb) {
  34 + subVC = [[CNLiveCommuntyModule shareInstance].protocol pushWebViewWithMainProjectWithWebUrl:@"https://gitee.com"];
  35 + }
  36 + [self.view addSubview:subVC.view];
  37 + [self addChildViewController:subVC];
  38 + [subVC didMoveToParentViewController:self];
  39 +
  40 +}
  41 +
  42 +- (UIView *)listView {
  43 + return self.view;
  44 +}
  45 +
  46 +@end
... ...
CNLiveCommunitModule/Classes/ViewController/CNLiveCommuntConsuViewController.h 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/ViewController/CNLiveCommuntConsuViewController.h
  1 +//
  2 +// CNLiveCommuntConsuViewController.h
  3 +// CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/1.
  6 +//
  7 +
  8 +#import <DSBaseModule/DSBaseModule.h>
  9 +
  10 +NS_ASSUME_NONNULL_BEGIN
  11 +
  12 +@interface CNLiveCommuntConsuViewController : DSBaseViewController
  13 +
  14 +/// 初始化界面显示
  15 +/// @param homeArray 数据源
  16 +/// @param titles 标题
  17 +/// @param nbhdId 小区id
  18 +- (instancetype)initWithHomeArray:(NSArray<CNLiveCommuntySubHomeModel *> *)homeArray titles:(NSArray<NSString *>*)titles NBhdId:(NSString *)nbhdId;
  19 +@end
  20 +
  21 +NS_ASSUME_NONNULL_END
... ...
CNLiveCommunitModule/Classes/ViewController/CNLiveCommuntConsuViewController.m 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/ViewController/CNLiveCommuntConsuViewController.m
  1 +//
  2 +// CNLiveCommuntConsuViewController.m
  3 +// CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/1.
  6 +//
  7 +
  8 +#import "CNLiveCommuntConsuViewController.h"
  9 +
  10 +static NSInteger const kCNLiveSectionTitleHeight = 44;//标题显示
  11 +
  12 +@interface CNLiveCommuntConsuViewController ()<JXCategoryViewDelegate,JXCategoryListContainerViewDelegate>
  13 +@property (nonatomic, strong) NSMutableArray* viewControllers;
  14 +@property (nonatomic, strong) JXCategoryTitleView *categoryView;
  15 +@property (nonatomic, strong) JXCategoryListContainerView *listContainerView;
  16 +@property (nonatomic, strong) NSArray * homeArray;
  17 +@property (nonatomic, strong) NSArray * titles;
  18 +@property (nonatomic, copy) NSString *nbhdId;
  19 +@end
  20 +
  21 +@implementation CNLiveCommuntConsuViewController
  22 +
  23 +- (instancetype)initWithHomeArray:(NSArray<CNLiveCommuntySubHomeModel *> *)homeArray titles:(NSArray<NSString *>*)titles NBhdId:(NSString *)nbhdId
  24 +{
  25 + self = [super init];
  26 + if (self) {
  27 + _nbhdId = nbhdId;
  28 + _titles = titles;
  29 + _homeArray = homeArray;
  30 + }
  31 + return self;
  32 +}
  33 +
  34 +- (void)viewDidLoad {
  35 + [super viewDidLoad];
  36 + // Do any additional setup after loading the view.
  37 + [self initNav];
  38 +
  39 + self.listContainerView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self];
  40 + [self.view addSubview:self.listContainerView];
  41 +
  42 + self.categoryView = [[JXCategoryTitleView alloc] init];
  43 + //优化关联listContainer,以后后续比如defaultSelectedIndex等属性,才能同步给listContainer
  44 + self.categoryView.listContainer = self.listContainerView;
  45 + self.categoryView.titleFont = [UIFont systemFontOfSize:15.0f];
  46 + self.categoryView.titleSelectedFont = [UIFont systemFontOfSize:16.0f];
  47 + self.categoryView.titleSelectedFont = [UIFont boldSystemFontOfSize:16.0f];
  48 + self.categoryView.titleColor = UIColorHex(#999999);
  49 + self.categoryView.titleSelectedColor = UIColorHex(#333333);
  50 + self.categoryView.delegate = self;
  51 + self.categoryView.titles = self.titles;
  52 + self.categoryView.defaultSelectedIndex = 0;
  53 + JXCategoryIndicatorLineView *lineView = [[JXCategoryIndicatorLineView alloc] init];
  54 + lineView.indicatorColor = UIColorHex(#CD0302);
  55 + lineView.verticalMargin = 5;
  56 + lineView.indicatorWidth = 10;
  57 + self.categoryView.indicators = @[lineView];
  58 + [self.view addSubview:self.categoryView];
  59 +}
  60 +-(void)initNav
  61 +{
  62 + self.topNavView.backgroundColor = [UIColor whiteColor];
  63 + self.topLine.backgroundColor = [UIColor whiteColor];
  64 +
  65 + DSNavButton * searchBtn = [[DSNavButton alloc] initWithImage:[CNLiveCommuntTools cCommunt_setImageWithName:@"c_communit_back"]];
  66 + [searchBtn addTarget:self action:@selector(leftNavBtnAction) forControlEvents:UIControlEventTouchUpInside];
  67 + self.leftNavBtns = @[searchBtn];
  68 +}
  69 +
  70 +-(void)leftNavBtnAction
  71 +{
  72 + [self.navigationController popViewControllerAnimated:YES];
  73 +}
  74 +
  75 +- (void)viewDidLayoutSubviews {
  76 + [super viewDidLayoutSubviews];
  77 +
  78 + self.categoryView.frame = CGRectMake(0, kNavigationBarHeight, KScreenWidth, kCNLiveSectionTitleHeight);
  79 + self.listContainerView.frame = CGRectMake(0, kNavigationBarHeight + kCNLiveSectionTitleHeight, KScreenWidth, KScreenHeight - kCNLiveSectionTitleHeight - kNavigationBarHeight - kVerticalTabBarTotalHeight);
  80 +}
  81 +
  82 +
  83 +#pragma mark - JXCategoryListContainerViewDelegate
  84 +
  85 +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView {
  86 + return self.titles.count;
  87 +}
  88 +
  89 +- (id<JXCategoryListContentViewDelegate>)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index {
  90 + return self.viewControllers[index];
  91 +}
  92 +
  93 +#pragma mark - JXCategoryViewDelegate
  94 +
  95 +- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index {
  96 + //侧滑手势处理
  97 + self.navigationController.interactivePopGestureRecognizer.enabled = (index == 0);
  98 +}
  99 +
  100 +#pragma mark =
  101 +-(NSMutableArray *)viewControllers
  102 +{
  103 + if (!_viewControllers) {
  104 + _viewControllers = [[NSMutableArray alloc] init];
  105 + for (CNLiveCommuntySubHomeModel * homeModel in self.homeArray) {
  106 + if ([homeModel.type isEqualToString:@"2"]) {//公益活动
  107 + [_viewControllers addObject:[[CNLiveCommuntListViewController alloc] initWithShowType:CNLiveCommuntListShowTypeHome NBhdId:self.nbhdId]];
  108 + }else{
  109 + if ([homeModel.cmsPageType isEqualToString:@"1"]) {//调用H5
  110 + [_viewControllers addObject:[[CNLiveCommuntActiviViewController alloc] init]];
  111 + }
  112 + if ([homeModel.cmsPageType isEqualToString:@"4"]) {//调用视讯
  113 + [_viewControllers addObject:[[CNLiveCommuntActiviViewController alloc] init]];
  114 + }
  115 +#ifdef DEBUG
  116 + if (![homeModel.cmsPageType isNotBlank]) {
  117 + [_viewControllers addObject:[[CNLiveCommuntActiviViewController alloc] init]];
  118 + }
  119 +#else
  120 +#endif
  121 + }
  122 + }
  123 + }
  124 + return _viewControllers;
  125 +}
  126 +
  127 +
  128 +@end
... ...
CNLiveCommunitModule/Classes/ViewController/CNLiveCommuntEvaluaViewController.h 0 → 100644
  1 +++ a/CNLiveCommunitModule/Classes/ViewController/CNLiveCommuntEvaluaViewController.h
  1 +//
  2 +// CNLiveCommuntEvaluaViewController.h
  3 +// CNLiveCommunitModule
  4 +//
  5 +// Created by open on 2022/2/6.
  6 +//
  7 +
  8 +#import <CNLiveBusinessBaseModule/CNLiveBusinessBaseModule.h>
  9 +#import "CNLiveCommuntyHomeModel.h"
  10 +
  11 +NS_ASSUME_NONNULL_BEGIN
  12 +
  13 +@interface CNLiveCommuntEvaluaViewController : CNCommonViewController
  14 +
  15 +/// 初始化评论界面
  16 +/// @param recordModel 评论model
  17 +- (instancetype)initWithRecord:(CNLiveCommuntyActivityRecordListModel *)recordModel;
  18 +
  19 +@end
  20 +
  21 +NS_ASSUME_NONNULL_END
... ...