diff --git a/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/UserInterfaceState.xcuserstate b/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/UserInterfaceState.xcuserstate index 13fcfe1..52fbb6d 100644 Binary files a/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/UserInterfaceState.xcuserstate and b/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index 4b3e59a..7d9b1f8 100644 --- a/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -427,8 +427,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "1071" - endingLineNumber = "1071" + startingLineNumber = "1093" + endingLineNumber = "1093" landmarkName = "collectionView(_:cellForItemAt:)" landmarkType = "7"> @@ -1221,8 +1221,8 @@ filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "320" - endingLineNumber = "320" + startingLineNumber = "357" + endingLineNumber = "357" landmarkName = "reloadData()" landmarkType = "7"> @@ -1285,8 +1285,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "268" - endingLineNumber = "268" + startingLineNumber = "283" + endingLineNumber = "283" landmarkName = "entry(model:remarkId:)" landmarkType = "7"> @@ -2045,8 +2045,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "1082" - endingLineNumber = "1082" + startingLineNumber = "1104" + endingLineNumber = "1104" landmarkName = "collectionView(_:didSelectItemAt:)" landmarkType = "7"> @@ -2093,8 +2093,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "343" - endingLineNumber = "343" + startingLineNumber = "358" + endingLineNumber = "358" landmarkName = "addActions()" landmarkType = "7"> @@ -2109,8 +2109,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "332" - endingLineNumber = "332" + startingLineNumber = "347" + endingLineNumber = "347" landmarkName = "addActions()" landmarkType = "7"> @@ -2125,8 +2125,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "334" - endingLineNumber = "334" + startingLineNumber = "349" + endingLineNumber = "349" landmarkName = "addActions()" landmarkType = "7"> @@ -2284,8 +2284,8 @@ filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "144" - endingLineNumber = "144" + startingLineNumber = "168" + endingLineNumber = "168" landmarkName = "addActions()" landmarkType = "7"> @@ -2300,8 +2300,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "79" - endingLineNumber = "79" + startingLineNumber = "97" + endingLineNumber = "97" landmarkName = "addActions()" landmarkType = "7"> @@ -2316,8 +2316,8 @@ filePath = "OrderScheduling/History/ViewController/HistoryController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "74" - endingLineNumber = "74" + startingLineNumber = "92" + endingLineNumber = "92" landmarkName = "addActions()" landmarkType = "7"> @@ -2380,8 +2380,8 @@ filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "319" - endingLineNumber = "319" + startingLineNumber = "356" + endingLineNumber = "356" landmarkName = "reloadData()" landmarkType = "7"> @@ -2396,10 +2396,10 @@ filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "318" - endingLineNumber = "318" - landmarkName = "ReviewFailedController" - landmarkType = "3"> + startingLineNumber = "355" + endingLineNumber = "355" + landmarkName = "reloadData()" + landmarkType = "7"> @@ -2428,8 +2428,8 @@ filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "248" - endingLineNumber = "248" + startingLineNumber = "272" + endingLineNumber = "272" landmarkName = "viewDidLoad()" landmarkType = "7"> @@ -3003,8 +3003,8 @@ filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "232" - endingLineNumber = "232" + startingLineNumber = "256" + endingLineNumber = "256" landmarkName = "init(nibName:bundle:)" landmarkType = "7"> @@ -3419,8 +3419,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "1018" - endingLineNumber = "1018" + startingLineNumber = "1040" + endingLineNumber = "1040" landmarkName = "tableView(_:cellForRowAt:)" landmarkType = "7"> @@ -3467,8 +3467,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "1023" - endingLineNumber = "1023" + startingLineNumber = "1045" + endingLineNumber = "1045" landmarkName = "tableView(_:cellForRowAt:)" landmarkType = "7"> @@ -3819,8 +3819,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "225" - endingLineNumber = "225" + startingLineNumber = "240" + endingLineNumber = "240" landmarkName = "addActions()" landmarkType = "7"> @@ -3835,8 +3835,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "232" - endingLineNumber = "232" + startingLineNumber = "247" + endingLineNumber = "247" landmarkName = "addActions()" landmarkType = "7"> @@ -3851,8 +3851,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "91" - endingLineNumber = "91" + startingLineNumber = "109" + endingLineNumber = "109" landmarkName = "addActions()" landmarkType = "7"> @@ -3867,8 +3867,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "90" - endingLineNumber = "90" + startingLineNumber = "108" + endingLineNumber = "108" landmarkName = "addActions()" landmarkType = "7"> @@ -3883,8 +3883,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "390" - endingLineNumber = "390" + startingLineNumber = "402" + endingLineNumber = "402" landmarkName = "addActions()" landmarkType = "7"> @@ -3899,8 +3899,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "400" - endingLineNumber = "400" + startingLineNumber = "412" + endingLineNumber = "412" landmarkName = "addActions()" landmarkType = "7"> @@ -3915,8 +3915,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "311" - endingLineNumber = "311" + startingLineNumber = "326" + endingLineNumber = "326" landmarkName = "addActions()" landmarkType = "7"> @@ -3931,8 +3931,8 @@ filePath = "OrderScheduling/History/ViewController/HistoryController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "123" - endingLineNumber = "123" + startingLineNumber = "141" + endingLineNumber = "141" landmarkName = "addActions()" landmarkType = "7"> @@ -4423,8 +4423,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "2051" - endingLineNumber = "2051" + startingLineNumber = "2109" + endingLineNumber = "2109" landmarkName = "init(style:reuseIdentifier:)" landmarkType = "7"> @@ -4471,8 +4471,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "2058" - endingLineNumber = "2058" + startingLineNumber = "2116" + endingLineNumber = "2116" landmarkName = "init(style:reuseIdentifier:)" landmarkType = "7"> @@ -4519,8 +4519,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "697" - endingLineNumber = "697" + startingLineNumber = "719" + endingLineNumber = "719" landmarkName = "tableView(_:cellForRowAt:)" landmarkType = "7"> @@ -4599,8 +4599,8 @@ filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "1010" - endingLineNumber = "1010" + startingLineNumber = "1032" + endingLineNumber = "1032" landmarkName = "tableView(_:cellForRowAt:)" landmarkType = "7"> @@ -5670,8 +5670,8 @@ filePath = "OrderScheduling/Common/View/ConditionalSearchTool.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "15" - endingLineNumber = "15" + startingLineNumber = "17" + endingLineNumber = "17" landmarkName = "ConditionalSearchTool" landmarkType = "3"> @@ -5748,124 +5748,12 @@ filePath = "OrderScheduling/Common/View/ConditionalSearchTool.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "32" - endingLineNumber = "32" + startingLineNumber = "49" + endingLineNumber = "49" landmarkName = "init()" landmarkType = "7"> - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search.imageset/conditional_search.png b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search.imageset/conditional_search.png index 71c299e..dd7eaa1 100644 Binary files a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search.imageset/conditional_search.png and b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search.imageset/conditional_search.png differ diff --git a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search.imageset/conditional_search@2x.png b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search.imageset/conditional_search@2x.png index 7e64101..ab4af3a 100644 Binary files a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search.imageset/conditional_search@2x.png and b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search.imageset/conditional_search@2x.png differ diff --git a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search.imageset/conditional_search@3x.png b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search.imageset/conditional_search@3x.png index 5990f83..2ea7ee0 100644 Binary files a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search.imageset/conditional_search@3x.png and b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search.imageset/conditional_search@3x.png differ diff --git a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_exit.imageset/conditional_search_exit.png b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_exit.imageset/conditional_search_exit.png deleted file mode 100644 index e36af5d..0000000 Binary files a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_exit.imageset/conditional_search_exit.png and /dev/null differ diff --git a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_exit.imageset/conditional_search_exit@2x.png b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_exit.imageset/conditional_search_exit@2x.png deleted file mode 100644 index eb38c6a..0000000 Binary files a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_exit.imageset/conditional_search_exit@2x.png and /dev/null differ diff --git a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_exit.imageset/conditional_search_exit@3x.png b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_exit.imageset/conditional_search_exit@3x.png deleted file mode 100644 index a05bbb8..0000000 Binary files a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_exit.imageset/conditional_search_exit@3x.png and /dev/null differ diff --git a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_exit.imageset/Contents.json b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_reset.imageset/Contents.json similarity index 63% rename from OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_exit.imageset/Contents.json rename to OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_reset.imageset/Contents.json index 6b0d47c..1746cdd 100644 --- a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_exit.imageset/Contents.json +++ b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_reset.imageset/Contents.json @@ -1,17 +1,17 @@ { "images" : [ { - "filename" : "conditional_search_exit.png", + "filename" : "conditional_search_reset.png", "idiom" : "universal", "scale" : "1x" }, { - "filename" : "conditional_search_exit@2x.png", + "filename" : "conditional_search_reset@2x.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "conditional_search_exit@3x.png", + "filename" : "conditional_search_reset@3x.png", "idiom" : "universal", "scale" : "3x" } diff --git a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_reset.imageset/conditional_search_reset.png b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_reset.imageset/conditional_search_reset.png new file mode 100644 index 0000000..c1735d4 Binary files /dev/null and b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_reset.imageset/conditional_search_reset.png differ diff --git a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_reset.imageset/conditional_search_reset@2x.png b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_reset.imageset/conditional_search_reset@2x.png new file mode 100644 index 0000000..87ca091 Binary files /dev/null and b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_reset.imageset/conditional_search_reset@2x.png differ diff --git a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_reset.imageset/conditional_search_reset@3x.png b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_reset.imageset/conditional_search_reset@3x.png new file mode 100644 index 0000000..ca45add Binary files /dev/null and b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_reset.imageset/conditional_search_reset@3x.png differ diff --git a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_unselected.imageset/Contents.json b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_unselected.imageset/Contents.json new file mode 100644 index 0000000..08fa228 --- /dev/null +++ b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_unselected.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "conditional_search_unselected.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "conditional_search_unselected@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "conditional_search_unselected@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_unselected.imageset/conditional_search_unselected.png b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_unselected.imageset/conditional_search_unselected.png new file mode 100644 index 0000000..34d3d20 Binary files /dev/null and b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_unselected.imageset/conditional_search_unselected.png differ diff --git a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_unselected.imageset/conditional_search_unselected@2x.png b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_unselected.imageset/conditional_search_unselected@2x.png new file mode 100644 index 0000000..6e23c50 Binary files /dev/null and b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_unselected.imageset/conditional_search_unselected@2x.png differ diff --git a/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_unselected.imageset/conditional_search_unselected@3x.png b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_unselected.imageset/conditional_search_unselected@3x.png new file mode 100644 index 0000000..daafc26 Binary files /dev/null and b/OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search_unselected.imageset/conditional_search_unselected@3x.png differ diff --git a/OrderScheduling/Common/View/ConditionalSearchTool.swift b/OrderScheduling/Common/View/ConditionalSearchTool.swift index 7f883a3..6cc757f 100644 --- a/OrderScheduling/Common/View/ConditionalSearchTool.swift +++ b/OrderScheduling/Common/View/ConditionalSearchTool.swift @@ -9,51 +9,55 @@ import Foundation import RxSwift import RxRelay import RxCocoa +import SnapKit +import DDControlsKit_Private class ConditionalSearchTool : NSObject { - private lazy var searchView = ConditionalSearchView.init() - private let disposeBag = DisposeBag() - public let showSearchViewSub = ReplayRelay.create(bufferSize: 1) + public lazy var searchView = ConditionalSearchView.init() + public lazy var coverView = DDView() + private let disposeBag = DisposeBag() + + /// 任务信息 + public var orderCodeItem : String? + public var carOwnerItem : String? + public var licenseItem : String? + + /// 合同信息 + public var contractNameItem : String? public var contractSelectedItem : Int? public var contractSelectedItemString : String? - public var serviceSelectedItem : Int? - public var serviceSelectedItemString : String? + + /// 事发时间 public var fromSelectedItem : String? public var toSelectedItem : String? + /// 服务内容 + public var serviceSelectedItem : Int? + public var serviceSelectedItemString : String? + public var serviceNameItem : String? + public var searchParameters : OrderListParameters? public var resetSub = ReplayRelay.create(bufferSize: 1) public var searchSub = ReplayRelay.create(bufferSize: 1) + public var isFilterSub = ReplayRelay.create(bufferSize: 1) + override init() { super.init() + coverView.backgroundColor = .hex("848484").alpha(0.3) + coverView.isHidden = true - showSearchViewSub - .observe(on: MainScheduler.instance) - .subscribe(onNext: {[weak self] bottom in - if let searchView = self?.searchView { - searchView.updateLayout(bottom: bottom) - ENTRY.showSearchEntry(view: searchView,name: conitionalSearchEntry) - } - }) - .disposed(by: disposeBag) - - searchView.exitButton.rx.tap - .observe(on: MainScheduler.instance) - .subscribe(onNext: { - ENTRY.dismiss(name: conitionalSearchEntry) - }) - .disposed(by: disposeBag) - searchView.contractTypeButton.rx.tap .observe(on: MainScheduler.instance) .subscribe(onNext: {[weak self] _ in CP.showItems(items: [OrderListParameters.ContractTypeEnum.baoxian.rawValue,OrderListParameters.ContractTypeEnum.chechan.rawValue,OrderListParameters.ContractTypeEnum.fours.rawValue,OrderListParameters.ContractTypeEnum.wuliu.rawValue,OrderListParameters.ContractTypeEnum.sanke.rawValue,OrderListParameters.ContractTypeEnum.xuni.rawValue,OrderListParameters.ContractTypeEnum.yiliao.rawValue,OrderListParameters.ContractTypeEnum.zixun.rawValue,OrderListParameters.ContractTypeEnum.huicheng.rawValue],selectedItem: self?.contractSelectedItemString) {[weak self] result in - self?.contractSelectedItem = OrderListParameters.ContractTypeValue(contractType: OrderListParameters.ContractTypeEnum(rawValue: result?.value ?? OrderListParameters.ContractTypeEnum.none.rawValue) ?? OrderListParameters.ContractTypeEnum.none).value + self?.contractSelectedItemString = result?.value + self?.contractSelectedItem = OrderListParameters.ContractTypeValue(contractType: OrderListParameters.ContractTypeEnum(rawValue: result?.value ?? OrderListParameters.ContractTypeEnum.none.rawValue) ?? OrderListParameters.ContractTypeEnum.none).value + DispatchQueue.main.async {[weak self] in self?.searchView.setButtonValue(button: self?.searchView.contractTypeButton, value: result?.value) } @@ -101,20 +105,51 @@ class ConditionalSearchTool : NSObject { }) .disposed(by: disposeBag) + searchView.orderCodeTextFiled.rx.text + .subscribe(onNext: {[weak self] text in + self?.orderCodeItem = text?.isEmpty == false ? text : nil + }) + .disposed(by: disposeBag) + + searchView.carOwnerTextField.rx.text + .subscribe(onNext: {[weak self] text in + self?.carOwnerItem = text?.isEmpty == false ? text : nil + }) + .disposed(by: disposeBag) + + searchView.licenseTextField.rx.text + .subscribe(onNext: {[weak self] text in + self?.licenseItem = text?.isEmpty == false ? text : nil + }) + .disposed(by: disposeBag) + + searchView.serviceTextField.rx.text + .subscribe(onNext: {[weak self] text in + self?.serviceNameItem = text?.isEmpty == false ? text : nil + }) + .disposed(by: disposeBag) + searchView.resetButton.rx.tap .observe(on: MainScheduler.instance) .subscribe(onNext: {[weak self] _ in self?.searchView.resetAction() + self?.orderCodeItem = nil + self?.carOwnerItem = nil + self?.licenseItem = nil + self?.contractSelectedItem = nil self?.contractSelectedItemString = nil - self?.serviceSelectedItem = nil - self?.serviceSelectedItemString = nil - + self?.fromSelectedItem = nil self?.toSelectedItem = nil - self?.resetSub.accept(nil) + self?.serviceSelectedItem = nil + self?.serviceSelectedItemString = nil + self?.serviceNameItem = nil + +// self?.resetSub.accept(nil) +// self?.isFilterSub.accept(self?.isFiltered() ?? false) }) .disposed(by: disposeBag) @@ -122,13 +157,20 @@ class ConditionalSearchTool : NSObject { searchView.searchButton.rx.tap .observe(on: MainScheduler.instance) .subscribe(onNext: {[weak self] _ in - ENTRY.dismiss(name: conitionalSearchEntry) self?.searchSub.accept(nil) + self?.isFilterSub.accept(self?.isFiltered() ?? false) }) .disposed(by: disposeBag) } func getParameters(pageNum: Int,queryType: OrderTypeEnum) -> OrderListParameters { - return OrderListParameters(pageNum: pageNum, queryType: queryType, searchCode: searchView.orderCodeTextFiled.text?.isEmpty == false ? searchView.orderCodeTextFiled.text : nil, userPhone: searchView.carOwnerTextField.text?.isEmpty == false ? searchView.carOwnerTextField.text : nil, soleCode: searchView.licenseTextField.text?.isEmpty == false ? searchView.licenseTextField.text : nil, contractName: searchView.contractTextFiled.text?.isEmpty == false ? searchView.contractTextFiled.text : nil, contractType:contractSelectedItem,createTimeStart: fromSelectedItem,createTimeEnd: toSelectedItem,isAppoint: serviceSelectedItem,serviceName: searchView.serviceTextField.text?.isEmpty == false ? searchView.serviceTextField.text : nil) + return OrderListParameters(pageNum: pageNum, queryType: queryType, searchCode: orderCodeItem, userPhone: carOwnerItem, soleCode: licenseItem, contractName: contractNameItem, contractType:contractSelectedItem,createTimeStart: fromSelectedItem,createTimeEnd: toSelectedItem,isAppoint: serviceSelectedItem,serviceName: serviceNameItem) + } + + func isFiltered() -> Bool { + if orderCodeItem?.isEmpty == false || carOwnerItem?.isEmpty == false || licenseItem?.isEmpty == false || serviceSelectedItem != nil || fromSelectedItem?.isEmpty == false || toSelectedItem?.isEmpty == false || serviceSelectedItem != nil || serviceNameItem?.isEmpty == false { + return true + } + return false } } diff --git a/OrderScheduling/Common/View/ConditionalSearchView.swift b/OrderScheduling/Common/View/ConditionalSearchView.swift index 79d6101..b851896 100644 --- a/OrderScheduling/Common/View/ConditionalSearchView.swift +++ b/OrderScheduling/Common/View/ConditionalSearchView.swift @@ -12,7 +12,6 @@ import DDColorKit_Private class ConditionalSearchView : DDView { public var titleLabel : DDLabel - public var exitButton : DDButton public var scrollView : DDScrollView public var scrollContentView : DDView public var bottomView : DDView @@ -42,9 +41,11 @@ class ConditionalSearchView : DDView { public let noneFont = UIFont.mediumFont(14) public let valueFont = UIFont.mediumFont(14) + let layerView = UIView() + let borderLayer1 = CAGradientLayer() + public override init(frame: CGRect) { titleLabel = DDLabel.dd_init(withText: "订单筛选", font: .mediumFont(17), textColor: .hex("000000").alpha(0.8)) - exitButton = DDButton.dd_initCustom() bottomView = DDView.init() scrollView = DDScrollView.init() scrollContentView = DDView.init() @@ -70,12 +71,16 @@ class ConditionalSearchView : DDView { super.init(frame: frame) backgroundColor = .white - exitButton.setImage(UIImage(named: "conditional_search_exit"), for: .normal) resetButton.setTitle("重置", for: .normal) - resetButton.dd_setBackgroundColor(controlBackgroundColor) + resetButton.titleLabel?.font = .mediumFont(15) + resetButton.setImage(UIImage(named: "conditional_search_reset"), for: .normal) + resetButton.setTitleColor(.hex("000000"), for: .normal) + resetButton.dd_customize(with: .ImageLeftPaddingTitleRightWithWholeCenter, padding: 5) searchButton.setTitle("搜索", for: .normal) + searchButton.titleLabel?.font = .mediumFont(15) searchButton.dd_setBackgroundColor(.hex("2A5094")) - layer.maskedCorners = [.layerMinXMinYCorner,.layerMaxXMinYCorner] + searchButton.layer.cornerRadius = auto(20) + layer.maskedCorners = [.layerMinXMaxYCorner,.layerMaxXMaxYCorner] layer.masksToBounds = true layer.cornerRadius = auto(16) @@ -84,45 +89,47 @@ class ConditionalSearchView : DDView { make.bottom.left.right.equalToSuperview() make.height.equalTo(auto(80)) } + + bottomView.addSubview(resetButton) + bottomView.addSubview(searchButton) - let contentView = DDView.init() - contentView.layer.cornerRadius = auto(20) - contentView.layer.masksToBounds = true - bottomView.addSubview(contentView) - contentView.snp.makeConstraints { make in - make.centerX.centerY.equalToSuperview() - make.left.right.equalToSuperview().inset(auto(10)) - make.height.equalTo(auto(40)) - } - - contentView.addSubview(resetButton) resetButton.snp.makeConstraints { make in - make.left.top.bottom.equalToSuperview() - make.width.equalToSuperview().multipliedBy(0.5) + make.centerY.equalToSuperview() + make.height.equalTo(auto(40)) + make.width.equalTo(auto(60)) + make.right.equalTo(searchButton.snp.left).offset(-auto(60)) } - contentView.addSubview(searchButton) searchButton.snp.makeConstraints { make in - make.right.top.bottom.equalToSuperview() - make.width.equalToSuperview().multipliedBy(0.5) + make.centerY.equalToSuperview() + make.right.equalToSuperview().offset(-auto(10)) + make.width.equalTo(auto(200)) + make.height.equalTo(auto(40)) } addSubview(titleLabel) titleLabel.snp.makeConstraints { make in - make.top.equalToSuperview().offset(auto(20)) + make.top.equalToSuperview().offset(auto(10)) + make.centerX.equalToSuperview() + } + + borderLayer1.colors = [UIColor.hex("D9D9D9").alpha(0.6).cgColor, UIColor.hex("B2B2B2").alpha(0.8).cgColor, UIColor.hex("D9D9D9").alpha(0.6).cgColor] + borderLayer1.locations = [0, 0.5, 1] + borderLayer1.startPoint = CGPoint(x: 0, y: 0.5) + borderLayer1.endPoint = CGPoint(x: 1, y: 0.5) + layerView.layer.addSublayer(borderLayer1) + addSubview(layerView) + layerView.snp.makeConstraints { make in + make.top.equalTo(titleLabel.snp.bottom).offset(auto(10)) + make.width.equalTo(auto(324)) + make.height.equalTo(0.5) make.centerX.equalToSuperview() } - addSubview(exitButton) - exitButton.snp.makeConstraints { make in - make.centerY.equalTo(titleLabel) - make.right.equalTo(-auto(20)) - } - addSubview(scrollView) scrollView.snp.makeConstraints { make in + make.top.equalTo(layerView.snp.bottom).offset(auto(10)).priority(.high) make.left.right.equalToSuperview() - make.top.equalTo(titleLabel.snp.bottom).offset(auto(20)) make.bottom.equalTo(bottomView.snp.top) } @@ -146,9 +153,9 @@ class ConditionalSearchView : DDView { orderCodeTextFiled.font = valueFont scrollContentView.addSubview(orderCodeTextFiled) orderCodeTextFiled.snp.makeConstraints { make in - make.left.equalTo(orderInfoTitleLabel) + make.left.equalTo(orderInfoTitleLabel).priority(.high) make.top.equalTo(orderInfoTitleLabel.snp.bottom).offset(auto(10)) - make.width.equalToSuperview().multipliedBy(0.5).offset(-auto(15)) + make.right.equalTo(snp.centerX).offset(-auto(5)) make.height.equalTo(auto(30)) } @@ -160,9 +167,9 @@ class ConditionalSearchView : DDView { licenseTextField.font = valueFont scrollContentView.addSubview(licenseTextField) licenseTextField.snp.makeConstraints { make in - make.right.equalTo(-auto(10)) + make.right.equalTo(-auto(10)).priority(.high) make.top.equalTo(orderCodeTextFiled) - make.width.equalToSuperview().multipliedBy(0.5).offset(-auto(15)) + make.left.equalTo(snp.centerX).offset(auto(5)) make.height.equalTo(orderCodeTextFiled) } @@ -235,9 +242,9 @@ class ConditionalSearchView : DDView { scrollContentView.addSubview(fromDateButton) fromDateButton.snp.makeConstraints { make in make.top.equalTo(dateTitleLabel.snp.bottom).offset(auto(10)) - make.left.equalTo(auto(10)) + make.left.equalTo(auto(10)).priority(.high) make.height.equalTo(orderCodeTextFiled) - make.width.equalToSuperview().multipliedBy(0.5).offset(-auto(20)) + make.right.equalTo(snp.centerX).offset(-auto(10)) } let middleLine = DDView() @@ -258,10 +265,10 @@ class ConditionalSearchView : DDView { toDateButton.titleLabel?.font = valueFont scrollContentView.addSubview(toDateButton) toDateButton.snp.makeConstraints { make in - make.right.equalTo(licenseTextField.snp.right) + make.right.equalTo(licenseTextField.snp.right).priority(.high) make.top.equalTo(fromDateButton) make.height.width.equalTo(fromDateButton) - make.width.equalToSuperview().multipliedBy(0.5).offset(-auto(20)) + make.left.equalTo(snp.centerX).offset(auto(10)) } scrollContentView.addSubview(serviceTitleLabel) @@ -278,7 +285,7 @@ class ConditionalSearchView : DDView { serviceTextField.font = valueFont scrollContentView.addSubview(serviceTextField) serviceTextField.snp.makeConstraints { make in - make.top.equalTo(serviceTitleLabel.snp.bottom).offset(auto(10)) + make.top.equalTo(serviceTitleLabel.snp.bottom).offset(auto(10)).priority(.high) make.left.equalTo(orderCodeTextFiled) make.height.equalTo(orderCodeTextFiled) make.width.equalTo(orderCodeTextFiled) @@ -331,16 +338,13 @@ class ConditionalSearchView : DDView { serviceTextField.text = nil } + override func layoutSubviews() { + super.layoutSubviews() + borderLayer1.frame = layerView.bounds + } + func setButtonValue(button: DDButton?, value: String?) { button?.setTitle(value, for: .normal) button?.setTitleColor(valueColor, for: .normal) } - - func updateLayout(bottom: CGFloat?) { - if let bottom { - bottomView.snp.updateConstraints { make in - make.bottom.equalToSuperview().offset(-bottom) - } - } - } } diff --git a/OrderScheduling/Entry/Entry.swift b/OrderScheduling/Entry/Entry.swift index 7515aa1..b6f3e9a 100644 --- a/OrderScheduling/Entry/Entry.swift +++ b/OrderScheduling/Entry/Entry.swift @@ -449,50 +449,51 @@ open class Entry { attributes.statusBar = .light SwiftEntryKit.display(entry: view, using: attributes) } - - func showSearchEntry(view: UIView, name: String? = nil) { - var attributes = EKAttributes() - attributes = .bottomFloat - attributes.name = name - attributes.precedence = .override(priority: .min, dropEnqueuedEntries: false) - attributes.displayMode = .inferred - attributes.displayDuration = .infinity - attributes.screenBackground = .color(color: .black.with(alpha: 0.3)) - attributes.entryBackground = .color(color: .clear) - attributes.screenInteraction = .absorbTouches - attributes.entryInteraction = .absorbTouches - attributes.scroll = .disabled - attributes.entranceAnimation = .init( - translate: .init( - duration: 0.25, - spring: .init(damping: 1, initialVelocity: 0) - ) - ) - attributes.exitAnimation = .init( - translate: .init(duration: 0.25) - ) - attributes.popBehavior = .animated( - animation: .init( - translate: .init(duration: 0.25) - ) - ) - attributes.shadow = .active( - with: .init( - color: .black, - opacity: 0.3, - radius: 6 - ) - ) - attributes.positionConstraints.size = .init( - width: .fill, - height: .constant(value: auto(500)) - ) - attributes.positionConstraints.verticalOffset = 0 - attributes.positionConstraints.safeArea = .overridden - attributes.positionConstraints.rotation.isEnabled = false - attributes.statusBar = .light - SwiftEntryKit.display(entry: view, using: attributes) - } +// +// func showSearchEntry(view: UIView, name: String? = nil) { +// var attributes = EKAttributes() +// attributes = .topToast +// attributes.name = name +// attributes.precedence = .override(priority: .min, dropEnqueuedEntries: false) +// attributes.displayMode = .inferred +// attributes.displayDuration = .infinity +// attributes.screenBackground = .color(color: .black.with(alpha: 0.3)) +// attributes.entryBackground = .color(color: .clear) +// attributes.screenInteraction = .absorbTouches +// attributes.entryInteraction = .absorbTouches +// attributes.scroll = .disabled +// attributes.entranceAnimation = .init( +// translate: .init( +// duration: 0.25, +// spring: .init(damping: 1, initialVelocity: 0) +// ) +// ) +// attributes.exitAnimation = .init( +// translate: .init(duration: 0.25) +// ) +// attributes.popBehavior = .animated( +// animation: .init( +// translate: .init(duration: 0.25) +// ) +// ) +// attributes.shadow = .active( +// with: .init( +// color: .black, +// opacity: 0.3, +// radius: 6 +// ) +// ) +// attributes.positionConstraints.size = .init( +// width: .fill, +// height: .constant(value: auto(500)) +// ) +// attributes.positionConstraints.verticalOffset = 0 +// attributes.positionConstraints.safeArea = .empty(fillSafeArea: false) +// attributes.positionConstraints.verticalOffset = 44 + auto(44) +// attributes.positionConstraints.rotation.isEnabled = false +// attributes.statusBar = .light +// SwiftEntryKit.display(entry: view, using: attributes, presentInsideKeyWindow: true) +// } public func isCurrentlyDisplaying(entryNamed name: String? = nil) -> Bool { return SwiftEntryKit.isCurrentlyDisplaying(entryNamed: name) diff --git a/OrderScheduling/History/ViewController/HistoryController.swift b/OrderScheduling/History/ViewController/HistoryController.swift index fc58221..c7cfafe 100644 --- a/OrderScheduling/History/ViewController/HistoryController.swift +++ b/OrderScheduling/History/ViewController/HistoryController.swift @@ -67,6 +67,24 @@ extension HistoryController { }) .disposed(by: disposeBag) + filterButton.rx.tap + .subscribe(onNext: {[weak self] _ in + if let containerView = self?.categoryView.listContainer as? JXCategoryListContainerView,let selectedIndex = self?.categoryView.selectedIndex { + let key = NSNumber(value: selectedIndex) + let vc = containerView.validListDict[key] as? HistoryItemController + vc?.conditionalSearchTool.searchView.snp.updateConstraints({ make in + make.height.equalTo(auto(450)) + }) + + UIView.animate(withDuration: 0.25) { + vc?.view.layoutIfNeeded() + } + + vc?.conditionalSearchTool.coverView.isHidden = false + } + }) + .disposed(by: disposeBag) + // 点击tabBar 需要刷下下列 preRefreshRelay .observe(on: MainScheduler.instance) @@ -132,22 +150,19 @@ extension HistoryItemController { }) .disposed(by: disposeBag) - searchButton.rx.tap - .subscribe(onNext: {[weak self] _ in - self?.conditionalSearchTool.showSearchViewSub.accept(UIApplication.shared.dd_keyWindow.safeAreaInsets.bottom) - }) - .disposed(by: disposeBag) - - conditionalSearchTool.resetSub - .observe(on: MainScheduler.instance) - .subscribe(onNext: {[weak self] _ in - self?.historyItemView.tableView.mj_header?.beginRefreshing() - }) - .disposed(by: disposeBag) - conditionalSearchTool.searchSub .observe(on: MainScheduler.instance) .subscribe(onNext: {[weak self] _ in + self?.conditionalSearchTool.searchView.snp.updateConstraints({ make in + make.height.equalTo(0) + }) + + UIView.animate(withDuration: 0.25) { + self?.conditionalSearchTool.searchView.superview?.layoutIfNeeded() + } + + self?.conditionalSearchTool.coverView.isHidden = true + self?.historyItemView.tableView.mj_header?.beginRefreshing() }) .disposed(by: disposeBag) @@ -304,18 +319,34 @@ extension HistoryController : JXCategoryViewDelegate,JXCategoryListContainerView } public func listContainerView(_ listContainerView: JXCategoryListContainerView!, initListFor index: Int) -> JXCategoryListContentViewDelegate! { + var vc : HistoryItemController if index == 0 { - return HistoryItemController(type: .UNCLOSED_ORDER) + vc = HistoryItemController(type: .UNCLOSED_ORDER) + }else if index == 1 { + vc = HistoryItemController(type: .WITHIN_30_DAYS) + }else { + vc = HistoryItemController(type: .WITHIN_3_MONTHS) } - if index == 1 { - return HistoryItemController(type: .WITHIN_30_DAYS) - } - return HistoryItemController(type: .WITHIN_3_MONTHS) + vc.conditionalSearchTool.isFilterSub + .observe(on: MainScheduler.instance) + .subscribe(onNext: {[weak self] isFilter in + if isFilter == true { + self?.filterButton.setTitleColor(.hex("3678FF"), for: .normal) + self?.filterButton.setImage(UIImage(named: "conditional_search"), for: .normal) + }else{ + self?.filterButton.setTitleColor(.hex("737373").alpha(0.55), for: .normal) + self?.filterButton.setImage(UIImage(named: "conditional_search_unselected")?.withTintColor(.hex("737373")), for: .normal) + } + }) + .disposed(by: disposeBag) + + return vc } } open class HistoryController : ZDViewController { private let categoryView = JXCategoryTitleView() + private let filterButton = DDButton.dd_initCustom() private lazy var categoryContainerView = JXCategoryListContainerView(type: .scrollView, delegate: self) private let reloadToDoMessageCountRelay = ReplayRelay.create(bufferSize: 1) private let disposeBag = DisposeBag() @@ -329,7 +360,7 @@ open class HistoryController : ZDViewController { super.viewDidLoad() dd_navigationBarBackgroundColor = .hex("354683") dd_navigationBarTitleTextAttributes = [.foregroundColor : UIColor.white(alpha: 0.7),.font:UIFont.mediumFont(auto(15))] - dd_navigationBarBarButtonItemAttributes = [.foregroundColor : UIColor.white] + dd_navigationBarBarButtonItemAttributes = [.foregroundColor : UIColor.white] dd_navigationItemTitle = "历史工单" navigationItem.leftBarButtonItems = nil addSubviews() @@ -340,7 +371,7 @@ open class HistoryController : ZDViewController { categoryView.titles = ["未关闭工单","30天内工单","3个月内工单"] categoryView.titleColor = .hex("737373").alpha(0.55) categoryView.titleSelectedColor = .hex("3678FF") - categoryView.backgroundColor = .hex("F4F5F7") + categoryView.backgroundColor = .hex("FAFAFA") categoryView.delegate = self view.addSubview(categoryView) @@ -351,6 +382,30 @@ open class HistoryController : ZDViewController { indicator.verticalMargin = 7 categoryView.indicators = [indicator] + /// 筛选 + let seperateLine = DDView() + seperateLine.backgroundColor = .hex("737373").alpha(0.3) + filterButton.addSubview(seperateLine) + seperateLine.snp.makeConstraints { make in + make.centerY.equalTo(filterButton) + make.width.equalTo(1) + make.height.equalTo(filterButton).multipliedBy(0.5) + make.left.equalTo(filterButton.snp.left) + } + filterButton.dd_setBackgroundColor(.hex("FAFAFA")) + filterButton.setTitle("筛选", for: .normal) + filterButton.setTitleColor(.hex("737373").alpha(0.55), for: .normal) + filterButton.titleLabel?.font = .regularFont(auto(12)) + filterButton.setImage(UIImage(named: "conditional_search_unselected")?.withTintColor(.hex("737373")), for: .normal) + filterButton.dd_customize(with: .ImageRightPaddingTitleLeftWithWholeCenter, padding: 5) + view.addSubview(filterButton) + filterButton.snp.makeConstraints { make in + make.left.equalTo(categoryView.snp.right) + make.right.equalToSuperview() + make.top.equalTo(categoryView) + make.bottom.equalTo(categoryView) + } + // 内容 view.addSubview(categoryContainerView!) categoryView.listContainer = categoryContainerView @@ -376,7 +431,8 @@ open class HistoryController : ZDViewController { super.viewSafeAreaInsetsDidChange() categoryView.snp.remakeConstraints { make in - make.left.right.equalToSuperview() + make.left.equalToSuperview() + make.right.equalToSuperview().offset(-auto(60)) make.top.equalTo(view.safeAreaInsets.top) make.height.equalTo(auto(44)) } @@ -407,7 +463,6 @@ class HistoryItemController : ZDViewController { private var type : OrderTypeEnum private var emptyView = EmptyView() - private var searchButton = DDButton.dd_initCustom() public lazy var conditionalSearchTool = ConditionalSearchTool() public init(type:OrderTypeEnum) { @@ -444,16 +499,24 @@ class HistoryItemController : ZDViewController { historyItemView.tableView.delegate = self historyItemView.tableView.dataSource = self - searchButton.backgroundColor = .hex("2A5094") - searchButton.setImage(UIImage(named: "conditional_search"), for: .normal) - view.addSubview(searchButton) - searchButton.layer.cornerRadius = auto(20) - searchButton.snp.remakeConstraints { make in - make.bottom.equalTo(historyItemView.snp.bottom).offset(-auto(30)) - make.right.equalTo(historyItemView.snp.right).offset(-auto(20)) - make.width.height.equalTo(auto(40)) - } + historyItemView.addSubview(conditionalSearchTool.coverView) + conditionalSearchTool.coverView.snp.remakeConstraints({ make in + make.edges.equalToSuperview() + }) + + historyItemView.addSubview(conditionalSearchTool.searchView) + conditionalSearchTool.searchView.snp.remakeConstraints({ make in + make.left.top.right.equalToSuperview() + make.height.equalTo(0) + }) } + + open override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + conditionalSearchTool.isFilterSub.accept(conditionalSearchTool.isFiltered()) + } + } class HistoryItemCell : DDTableViewCell { diff --git a/OrderScheduling/Rescue/ViewController/RescueController.swift b/OrderScheduling/Rescue/ViewController/RescueController.swift index 896b47f..7a7e54a 100644 --- a/OrderScheduling/Rescue/ViewController/RescueController.swift +++ b/OrderScheduling/Rescue/ViewController/RescueController.swift @@ -72,6 +72,24 @@ extension RescueController { }) .disposed(by: disposeBag) + filterButton.rx.tap + .subscribe(onNext: {[weak self] _ in + if let containerView = self?.categoryView.listContainer as? JXCategoryListContainerView,let selectedIndex = self?.categoryView.selectedIndex { + let key = NSNumber(value: selectedIndex) + let vc = containerView.validListDict[key] as? RescueParentController + vc?.conditionalSearchTool.searchView.snp.updateConstraints({ make in + make.height.equalTo(auto(450)) + }) + + UIView.animate(withDuration: 0.25) { + vc?.view.layoutIfNeeded() + } + + vc?.conditionalSearchTool.coverView.isHidden = false + } + }) + .disposed(by: disposeBag) + // 点击tabBar 需要刷下下列 preRefreshRelay .observe(on: MainScheduler.instance) @@ -199,22 +217,19 @@ extension RescuePendingOrderController { }) .disposed(by: disposeBag) - searchButton.rx.tap - .subscribe(onNext: {[weak self] _ in - self?.conditionalSearchTool.showSearchViewSub.accept(UIApplication.shared.dd_keyWindow.safeAreaInsets.bottom) - }) - .disposed(by: disposeBag) - - conditionalSearchTool.resetSub - .observe(on: MainScheduler.instance) - .subscribe(onNext: {[weak self] _ in - self?.pendingOrderView.tableView.mj_header?.beginRefreshing() - }) - .disposed(by: disposeBag) - conditionalSearchTool.searchSub .observe(on: MainScheduler.instance) .subscribe(onNext: {[weak self] _ in + self?.conditionalSearchTool.searchView.snp.updateConstraints({ make in + make.height.equalTo(0) + }) + + UIView.animate(withDuration: 0.25) { + self?.conditionalSearchTool.searchView.superview?.layoutIfNeeded() + } + + self?.conditionalSearchTool.coverView.isHidden = true + self?.pendingOrderView.tableView.mj_header?.beginRefreshing() }) .disposed(by: disposeBag) @@ -357,22 +372,19 @@ extension RescuePendingDispatchController { }) .disposed(by: disposeBag) - searchButton.rx.tap - .subscribe(onNext: {[weak self] _ in - self?.conditionalSearchTool.showSearchViewSub.accept(UIApplication.shared.dd_keyWindow.safeAreaInsets.bottom) - }) - .disposed(by: disposeBag) - - conditionalSearchTool.resetSub - .observe(on: MainScheduler.instance) - .subscribe(onNext: {[weak self] _ in - self?.pendingDispatchView.tableView.mj_header?.beginRefreshing() - }) - .disposed(by: disposeBag) - conditionalSearchTool.searchSub .observe(on: MainScheduler.instance) .subscribe(onNext: {[weak self] _ in + self?.conditionalSearchTool.searchView.snp.updateConstraints({ make in + make.height.equalTo(0) + }) + + UIView.animate(withDuration: 0.25) { + self?.conditionalSearchTool.searchView.superview?.layoutIfNeeded() + } + + self?.conditionalSearchTool.coverView.isHidden = true + self?.pendingDispatchView.tableView.mj_header?.beginRefreshing() }) .disposed(by: disposeBag) @@ -446,22 +458,19 @@ extension RescueIsIngController { }) .disposed(by: disposeBag) - searchButton.rx.tap - .subscribe(onNext: {[weak self] _ in - self?.conditionalSearchTool.showSearchViewSub.accept(UIApplication.shared.dd_keyWindow.safeAreaInsets.bottom) - }) - .disposed(by: disposeBag) - - conditionalSearchTool.resetSub - .observe(on: MainScheduler.instance) - .subscribe(onNext: {[weak self] _ in - self?.pendingIsIngView.tableView.mj_header?.beginRefreshing() - }) - .disposed(by: disposeBag) - conditionalSearchTool.searchSub .observe(on: MainScheduler.instance) .subscribe(onNext: {[weak self] _ in + self?.conditionalSearchTool.searchView.snp.updateConstraints({ make in + make.height.equalTo(0) + }) + + UIView.animate(withDuration: 0.25) { + self?.conditionalSearchTool.searchView.superview?.layoutIfNeeded() + } + + self?.conditionalSearchTool.coverView.isHidden = true + self?.pendingIsIngView.tableView.mj_header?.beginRefreshing() }) .disposed(by: disposeBag) @@ -501,18 +510,31 @@ extension RescueController : JXCategoryViewDelegate,JXCategoryListContainerViewD } func listContainerView(_ listContainerView: JXCategoryListContainerView!, initListFor index: Int) -> JXCategoryListContentViewDelegate! { + var vc : RescueParentController if index == 0 { - let vc = RescuePendingOrderController.init() - pendingTableView = vc.pendingOrderView.tableView - return vc + vc = RescuePendingOrderController.init() + pendingTableView = (vc as? RescuePendingOrderController)?.pendingOrderView.tableView + }else if index == 1 { + vc = RescuePendingDispatchController.init() + dispatchTableView = (vc as? RescuePendingDispatchController)?.pendingDispatchView.tableView + }else{ + vc = RescueIsIngController.init() + isRescueTableView = (vc as? RescueIsIngController)?.pendingIsIngView.tableView } - if index == 1 { - let vc = RescuePendingDispatchController.init() - dispatchTableView = vc.pendingDispatchView.tableView - return vc - } - let vc = RescueIsIngController.init() - isRescueTableView = vc.pendingIsIngView.tableView + + vc.conditionalSearchTool.isFilterSub + .observe(on: MainScheduler.instance) + .subscribe(onNext: {[weak self] isFilter in + if isFilter == true { + self?.filterButton.setTitleColor(.hex("3678FF"), for: .normal) + self?.filterButton.setImage(UIImage(named: "conditional_search"), for: .normal) + }else{ + self?.filterButton.setTitleColor(.hex("737373").alpha(0.55), for: .normal) + self?.filterButton.setImage(UIImage(named: "conditional_search_unselected")?.withTintColor(.hex("737373")), for: .normal) + } + }) + .disposed(by: disposeBag) + return vc } } @@ -1086,6 +1108,7 @@ extension RescuePendingDispatchController : UICollectionViewDelegate, UICollecti // MARK: 救援中 class RescueController : ZDViewController { public let categoryView = JXCategoryTitleView() + private let filterButton = DDButton.dd_initCustom() private lazy var categoryContainerView = JXCategoryListContainerView(type: .scrollView, delegate: self) private let messageTapGes = UITapGestureRecognizer() private let messageView = MessageView() @@ -1132,6 +1155,30 @@ class RescueController : ZDViewController { categoryView.listContainer = categoryContainerView } + /// 筛选 + let seperateLine = DDView() + seperateLine.backgroundColor = .hex("737373").alpha(0.3) + filterButton.addSubview(seperateLine) + seperateLine.snp.makeConstraints { make in + make.centerY.equalTo(filterButton) + make.width.equalTo(1) + make.height.equalTo(filterButton).multipliedBy(0.5) + make.left.equalTo(filterButton.snp.left) + } + filterButton.dd_setBackgroundColor(.hex("FAFAFA")) + filterButton.setTitle("筛选", for: .normal) + filterButton.setTitleColor(.hex("737373").alpha(0.55), for: .normal) + filterButton.titleLabel?.font = .regularFont(auto(12)) + filterButton.setImage(UIImage(named: "conditional_search_unselected")?.withTintColor(.hex("737373")), for: .normal) + filterButton.dd_customize(with: .ImageRightPaddingTitleLeftWithWholeCenter, padding: 5) + view.addSubview(filterButton) + filterButton.snp.makeConstraints { make in + make.left.equalTo(categoryView.snp.right) + make.right.equalToSuperview() + make.top.equalTo(categoryView) + make.bottom.equalTo(categoryView) + } + messageView.titleLabel.text = "消息" messageView.addGestureRecognizer(messageTapGes) navigationItem.leftBarButtonItem = UIBarButtonItem(customView: messageView) @@ -1152,7 +1199,8 @@ class RescueController : ZDViewController { override func viewSafeAreaInsetsDidChange() { super.viewSafeAreaInsetsDidChange() categoryView.snp.remakeConstraints { make in - make.left.right.equalToSuperview() + make.left.equalToSuperview() + make.right.equalToSuperview().offset(-auto(60)) make.top.equalTo(view.safeAreaInsets.top) make.height.equalTo(auto(44)) } @@ -1175,7 +1223,7 @@ class RescueController : ZDViewController { } // MARK: 待派单 -class RescuePendingOrderController : ZDViewController { +class RescuePendingOrderController : RescueParentController { private let disposeBag = DisposeBag() public let pendingOrderView = RescuePendingOrderView() public let refuseOrderConfirmView = RefuseOrderConfirmView() @@ -1187,10 +1235,7 @@ class RescuePendingOrderController : ZDViewController { private var refuseSubmitRelay = ReplayRelay.create(bufferSize: 1) private var acceptOrderRelay = ReplayRelay.create(bufferSize: 1) private var emptyView = EmptyView() - - private var searchButton = DDButton.dd_initCustom() - private lazy var conditionalSearchTool = ConditionalSearchTool() - + override func viewDidLoad() { super.viewDidLoad() dd_navigationBarBackgroundColor = .hex("354683") @@ -1217,20 +1262,21 @@ class RescuePendingOrderController : ZDViewController { pendingOrderView.tableView.delegate = self pendingOrderView.tableView.dataSource = self - searchButton.backgroundColor = .hex("2A5094") - searchButton.setImage(UIImage(named: "conditional_search"), for: .normal) - view.addSubview(searchButton) - searchButton.layer.cornerRadius = auto(20) - searchButton.snp.remakeConstraints { make in - make.bottom.equalTo(pendingOrderView.snp.bottom).offset(-auto(30)) - make.right.equalTo(pendingOrderView.snp.right).offset(-auto(20)) - make.width.height.equalTo(auto(40)) - } + pendingOrderView.addSubview(conditionalSearchTool.coverView) + conditionalSearchTool.coverView.snp.remakeConstraints({ make in + make.edges.equalToSuperview() + }) + + pendingOrderView.addSubview(conditionalSearchTool.searchView) + conditionalSearchTool.searchView.snp.remakeConstraints({ make in + make.left.top.right.equalToSuperview() + make.height.equalTo(0) + }) } } // MARK: 待派车 -class RescuePendingDispatchController : ZDViewController { +class RescuePendingDispatchController : RescueParentController { private let disposeBag = DisposeBag() public let pendingDispatchView = RescuePendingDispatchView() private var resultArr : [OrderListDataModel] = [] @@ -1238,9 +1284,6 @@ class RescuePendingDispatchController : ZDViewController { private var pageNum : Int = 1 private var emptyView = EmptyView() - private var searchButton = DDButton.dd_initCustom() - private lazy var conditionalSearchTool = ConditionalSearchTool() - override func viewDidLoad() { super.viewDidLoad() dd_navigationBarBackgroundColor = .hex("354683") @@ -1267,20 +1310,21 @@ class RescuePendingDispatchController : ZDViewController { pendingDispatchView.tableView.delegate = self pendingDispatchView.tableView.dataSource = self - searchButton.backgroundColor = .hex("2A5094") - searchButton.setImage(UIImage(named: "conditional_search"), for: .normal) - view.addSubview(searchButton) - searchButton.layer.cornerRadius = auto(20) - searchButton.snp.remakeConstraints { make in - make.bottom.equalTo(pendingDispatchView.snp.bottom).offset(-auto(30)) - make.right.equalTo(pendingDispatchView.snp.right).offset(-auto(20)) - make.width.height.equalTo(auto(40)) - } + pendingDispatchView.addSubview(conditionalSearchTool.coverView) + conditionalSearchTool.coverView.snp.remakeConstraints({ make in + make.edges.equalToSuperview() + }) + + pendingDispatchView.addSubview(conditionalSearchTool.searchView) + conditionalSearchTool.searchView.snp.remakeConstraints({ make in + make.left.top.right.equalToSuperview() + make.height.equalTo(0) + }) } } // MARK: 救援中 -class RescueIsIngController : ZDViewController { +class RescueIsIngController : RescueParentController { private let disposeBag = DisposeBag() public let pendingIsIngView = RescueIsIngView() private var resultArr : [OrderListDataModel] = [] @@ -1288,9 +1332,6 @@ class RescueIsIngController : ZDViewController { private var pageNum : Int = 1 private var emptyView = EmptyView() - private var searchButton = DDButton.dd_initCustom() - private lazy var conditionalSearchTool = ConditionalSearchTool() - override func viewDidLoad() { super.viewDidLoad() dd_navigationBarBackgroundColor = .hex("354683") @@ -1316,16 +1357,33 @@ class RescueIsIngController : ZDViewController { pendingIsIngView.tableView.backgroundColor = .hex("FAFAFA") pendingIsIngView.tableView.delegate = self pendingIsIngView.tableView.dataSource = self + + pendingIsIngView.addSubview(conditionalSearchTool.coverView) + conditionalSearchTool.coverView.snp.remakeConstraints({ make in + make.edges.equalToSuperview() + }) + + pendingIsIngView.addSubview(conditionalSearchTool.searchView) + conditionalSearchTool.searchView.snp.remakeConstraints({ make in + make.left.top.right.equalToSuperview() + make.height.equalTo(0) + }) + } +} + + +// MARK: SUPER +class RescueParentController : ZDViewController, JXCategoryListContentViewDelegate { + public lazy var conditionalSearchTool = ConditionalSearchTool() + + func listView() -> UIView! { + return view + } - searchButton.backgroundColor = .hex("2A5094") - searchButton.setImage(UIImage(named: "conditional_search"), for: .normal) - view.addSubview(searchButton) - searchButton.layer.cornerRadius = auto(20) - searchButton.snp.remakeConstraints { make in - make.bottom.equalTo(pendingIsIngView.snp.bottom).offset(-auto(30)) - make.right.equalTo(pendingIsIngView.snp.right).offset(-auto(20)) - make.width.height.equalTo(auto(40)) - } + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + conditionalSearchTool.isFilterSub.accept(conditionalSearchTool.isFiltered()) } } @@ -2129,21 +2187,21 @@ class RescueIsIngView : DDView { } } -// MARK: JXCategoryListContentViewDelegate -extension RescuePendingOrderController : JXCategoryListContentViewDelegate { - func listView() -> UIView! { - return view - } -} - -extension RescuePendingDispatchController : JXCategoryListContentViewDelegate { - func listView() -> UIView! { - return view - } -} - -extension RescueIsIngController : JXCategoryListContentViewDelegate { - func listView() -> UIView! { - return view - } -} +//// MARK: JXCategoryListContentViewDelegate +//extension RescuePendingOrderController : JXCategoryListContentViewDelegate { +// func listView() -> UIView! { +// return view +// } +//} +// +//extension RescuePendingDispatchController : JXCategoryListContentViewDelegate { +// func listView() -> UIView! { +// return view +// } +//} +// +//extension RescueIsIngController : JXCategoryListContentViewDelegate { +// func listView() -> UIView! { +// return view +// } +//} diff --git a/OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift b/OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift index 4e88bec..4bc0fd9 100644 --- a/OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift +++ b/OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift @@ -35,23 +35,23 @@ extension ReviewFailedController { }) .disposed(by: disposeBag) - MCOUNT.pendingCountRelay - .observe(on: MainScheduler.instance) - .subscribe(onNext: {[weak self] count in - if count > 0 { - self?.pendingView.countLabel.isHidden = false - self?.pendingView.countLabel.text = String(count) - self?.pendingView.countLabel.snp.updateConstraints({ make in - make.width.equalTo(20) - }) - }else{ - self?.pendingView.countLabel.isHidden = true - self?.pendingView.countLabel.snp.updateConstraints({ make in - make.width.equalTo(0) - }) - } - }) - .disposed(by: disposeBag) +// MCOUNT.pendingCountRelay +// .observe(on: MainScheduler.instance) +// .subscribe(onNext: {[weak self] count in +// if count > 0 { +// self?.pendingView.countLabel.isHidden = false +// self?.pendingView.countLabel.text = String(count) +// self?.pendingView.countLabel.snp.updateConstraints({ make in +// make.width.equalTo(20) +// }) +// }else{ +// self?.pendingView.countLabel.isHidden = true +// self?.pendingView.countLabel.snp.updateConstraints({ make in +// make.width.equalTo(0) +// }) +// } +// }) +// .disposed(by: disposeBag) reviewFailedView.tableView.mj_header = MJRefreshNormalHeader(refreshingBlock: {[weak self] in self?.pageNum = 1 @@ -111,29 +111,53 @@ extension ReviewFailedController { }) .disposed(by: disposeBag) - pendingTapGes.rx.event - .observe(on: MainScheduler.instance) - .subscribe(onNext: { _ in - WEBTOOL.open(name: .todoList,appending: nil) +// pendingTapGes.rx.event +// .observe(on: MainScheduler.instance) +// .subscribe(onNext: { _ in +// WEBTOOL.open(name: .todoList,appending: nil) +// }) +// .disposed(by: disposeBag) + + filterButton.rx.tap + .subscribe(onNext: {[weak self] _ in + self?.conditionalSearchTool.searchView.snp.updateConstraints({ make in + make.height.equalTo(auto(450)) + }) + + UIView.animate(withDuration: 0.25) { + self?.view.layoutIfNeeded() + } + + self?.conditionalSearchTool.coverView.isHidden = false }) .disposed(by: disposeBag) - searchButton.rx.tap - .subscribe(onNext: {[weak self] _ in - self?.conditionalSearchTool.showSearchViewSub.accept(UIApplication.shared.dd_keyWindow.safeAreaInsets.bottom) - }) - .disposed(by: disposeBag) - - conditionalSearchTool.resetSub + conditionalSearchTool.isFilterSub .observe(on: MainScheduler.instance) - .subscribe(onNext: {[weak self] _ in - self?.reviewFailedView.tableView.mj_header?.beginRefreshing() + .subscribe(onNext: {[weak self] isFilter in + if isFilter == true { + self?.filterButton.setTitleColor(.hex("3678FF"), for: .normal) + self?.filterButton.setImage(UIImage(named: "conditional_search"), for: .normal) + }else{ + self?.filterButton.setTitleColor(.hex("FFFFFF").alpha(0.7), for: .normal) + self?.filterButton.setImage(UIImage(named: "conditional_search_unselected")?.withTintColor(.hex("FFFFFF")), for: .normal) + } }) .disposed(by: disposeBag) conditionalSearchTool.searchSub .observe(on: MainScheduler.instance) .subscribe(onNext: {[weak self] _ in + self?.conditionalSearchTool.searchView.snp.updateConstraints({ make in + make.height.equalTo(0) + }) + + UIView.animate(withDuration: 0.25) { + self?.conditionalSearchTool.searchView.superview?.layoutIfNeeded() + } + + self?.conditionalSearchTool.coverView.isHidden = true + self?.reviewFailedView.tableView.mj_header?.beginRefreshing() }) .disposed(by: disposeBag) @@ -215,11 +239,11 @@ open class ReviewFailedController : ZDViewController { private var resultArr : [OrderListDataModel] = [] private let messageTapGes = UITapGestureRecognizer() private let messageView = MessageView() - private let pendingTapGes = UITapGestureRecognizer() - private let pendingView = MessageView() +// private let pendingTapGes = UITapGestureRecognizer() +// private let pendingView = MessageView() private var emptyView = EmptyView() - private var searchButton = DDButton.dd_initCustom() + private let filterButton = DDButton.dd_initCustom() private lazy var conditionalSearchTool = ConditionalSearchTool() public override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) { @@ -277,18 +301,32 @@ open class ReviewFailedController : ZDViewController { make.width.greaterThanOrEqualTo(40) } - pendingView.titleLabel.text = "待办" - pendingView.addGestureRecognizer(pendingTapGes) - navigationItem.rightBarButtonItem = UIBarButtonItem(customView: pendingView) - pendingView.snp.makeConstraints { make in - make.height.equalTo(40) - make.width.greaterThanOrEqualTo(40) - } +// pendingView.titleLabel.text = "待办" +// pendingView.addGestureRecognizer(pendingTapGes) +// navigationItem.rightBarButtonItem = UIBarButtonItem(customView: pendingView) +// pendingView.snp.makeConstraints { make in +// make.height.equalTo(40) +// make.width.greaterThanOrEqualTo(40) +// } + + filterButton.setTitle("筛选", for: .normal) + filterButton.setTitleColor(.hex("FFFFFF").alpha(0.7), for: .normal) + filterButton.titleLabel?.font = .mediumFont(auto(14)) + filterButton.setImage(UIImage(named: "conditional_search_unselected")?.withTintColor(.hex("FFFFFF")), for: .normal) + filterButton.dd_customize(with: .ImageRightPaddingTitleLeftWithWholeCenter, padding: 5) + navigationItem.rightBarButtonItem = UIBarButtonItem(customView: filterButton) - searchButton.backgroundColor = .hex("2A5094") - searchButton.setImage(UIImage(named: "conditional_search"), for: .normal) - view.addSubview(searchButton) + reviewFailedView.addSubview(conditionalSearchTool.coverView) + reviewFailedView.addSubview(conditionalSearchTool.searchView) + conditionalSearchTool.coverView.snp.remakeConstraints({ make in + make.edges.equalToSuperview() + }) + + conditionalSearchTool.searchView.snp.remakeConstraints({ make in + make.left.top.right.equalToSuperview() + make.height.equalTo(0) + }) } open override func viewSafeAreaInsetsDidChange() { @@ -300,16 +338,15 @@ open class ReviewFailedController : ZDViewController { make.left.right.equalToSuperview() make.bottom.equalTo(-view.safeAreaInsets.bottom) } - - searchButton.layer.cornerRadius = auto(20) - searchButton.snp.remakeConstraints { make in - make.bottom.equalToSuperview().offset(-auto(30) - view.safeAreaInsets.bottom) - make.right.equalToSuperview().offset(-auto(20)) - make.width.height.equalTo(auto(40)) - } } } + open override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + conditionalSearchTool.isFilterSub.accept(conditionalSearchTool.isFiltered()) + } + open override var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent } diff --git a/fastlane/report.xml b/fastlane/report.xml index 4f28363..ac7a2ec 100644 --- a/fastlane/report.xml +++ b/fastlane/report.xml @@ -5,17 +5,17 @@ - + - + - +