搜索功能
@@ -36,6 +36,8 @@
|
||||
792EE0952AA74E0A00A212AB /* PushNotiCommonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 792EE0942AA74E0A00A212AB /* PushNotiCommonView.swift */; };
|
||||
792EE0972AA74E5800A212AB /* PushNotiCommonTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 792EE0962AA74E5800A212AB /* PushNotiCommonTool.swift */; };
|
||||
7940277A2B3BD46B00EC52D4 /* VehicleMonitoringConfigView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794027792B3BD46B00EC52D4 /* VehicleMonitoringConfigView.swift */; };
|
||||
7940277C2B3E9ECB00EC52D4 /* ConditionalSearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7940277B2B3E9ECB00EC52D4 /* ConditionalSearchView.swift */; };
|
||||
7940277E2B43B9B600EC52D4 /* ConditionalSearchTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7940277D2B43B9B600EC52D4 /* ConditionalSearchTool.swift */; };
|
||||
794FBB0D2A8F040D00D57BB8 /* HistoryController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB0C2A8F040D00D57BB8 /* HistoryController.swift */; };
|
||||
794FBB142A8F045F00D57BB8 /* MineController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB132A8F045F00D57BB8 /* MineController.swift */; };
|
||||
794FBB162A8F1A3300D57BB8 /* RescuePhotoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB152A8F1A3300D57BB8 /* RescuePhotoController.swift */; };
|
||||
@@ -139,6 +141,8 @@
|
||||
792EE0942AA74E0A00A212AB /* PushNotiCommonView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotiCommonView.swift; sourceTree = "<group>"; };
|
||||
792EE0962AA74E5800A212AB /* PushNotiCommonTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotiCommonTool.swift; sourceTree = "<group>"; };
|
||||
794027792B3BD46B00EC52D4 /* VehicleMonitoringConfigView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VehicleMonitoringConfigView.swift; sourceTree = "<group>"; };
|
||||
7940277B2B3E9ECB00EC52D4 /* ConditionalSearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConditionalSearchView.swift; sourceTree = "<group>"; };
|
||||
7940277D2B43B9B600EC52D4 /* ConditionalSearchTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConditionalSearchTool.swift; sourceTree = "<group>"; };
|
||||
794FBB0C2A8F040D00D57BB8 /* HistoryController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoryController.swift; sourceTree = "<group>"; };
|
||||
794FBB132A8F045F00D57BB8 /* MineController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MineController.swift; sourceTree = "<group>"; };
|
||||
794FBB152A8F1A3300D57BB8 /* RescuePhotoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RescuePhotoController.swift; sourceTree = "<group>"; };
|
||||
@@ -513,6 +517,8 @@
|
||||
79DD0DA92A9481BC00768FE7 /* NotificationAuthTool.swift */,
|
||||
79DD0DB02A94B3DB00768FE7 /* EmptyView.swift */,
|
||||
79E434242AA1919400AEB16C /* CommonAlertView.swift */,
|
||||
7940277B2B3E9ECB00EC52D4 /* ConditionalSearchView.swift */,
|
||||
7940277D2B43B9B600EC52D4 /* ConditionalSearchTool.swift */,
|
||||
);
|
||||
path = View;
|
||||
sourceTree = "<group>";
|
||||
@@ -983,6 +989,7 @@
|
||||
794FBB212A934E0A00D57BB8 /* AppUpdateView.swift in Sources */,
|
||||
79DD0DB42A95F00B00768FE7 /* Extension.swift in Sources */,
|
||||
791887802A7CE6F1007EA0C1 /* UserDefaultStrings.swift in Sources */,
|
||||
7940277E2B43B9B600EC52D4 /* ConditionalSearchTool.swift in Sources */,
|
||||
79FB75EC2A988EC000DB00A4 /* MessageCenterTool.swift in Sources */,
|
||||
79FB76152A9DEE7400DB00A4 /* RefuseOrderConfirmView.swift in Sources */,
|
||||
79FB76262A9F0A0000DB00A4 /* BackgroundTask.swift in Sources */,
|
||||
@@ -1011,6 +1018,7 @@
|
||||
79CECC122A89BD1A00B95D8B /* MessageCenterController.swift in Sources */,
|
||||
794FBB1F2A92F7C300D57BB8 /* WebViewTool.swift in Sources */,
|
||||
791887822A7CE71D007EA0C1 /* AppKeyStrings.swift in Sources */,
|
||||
7940277C2B3E9ECB00EC52D4 /* ConditionalSearchView.swift in Sources */,
|
||||
79CB07CC2AA8465A00154B61 /* UserPermission.swift in Sources */,
|
||||
79CECC282A8CADEA00B95D8B /* VehicleMonitoringVideoDetailController.swift in Sources */,
|
||||
792EE0972AA74E5800A212AB /* PushNotiCommonTool.swift in Sources */,
|
||||
|
||||
@@ -427,8 +427,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "1010"
|
||||
endingLineNumber = "1010"
|
||||
startingLineNumber = "1070"
|
||||
endingLineNumber = "1070"
|
||||
landmarkName = "collectionView(_:cellForItemAt:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -1221,8 +1221,8 @@
|
||||
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "285"
|
||||
endingLineNumber = "285"
|
||||
startingLineNumber = "320"
|
||||
endingLineNumber = "320"
|
||||
landmarkName = "reloadData()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -1285,8 +1285,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "247"
|
||||
endingLineNumber = "247"
|
||||
startingLineNumber = "267"
|
||||
endingLineNumber = "267"
|
||||
landmarkName = "entry(model:remarkId:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2045,8 +2045,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "1021"
|
||||
endingLineNumber = "1021"
|
||||
startingLineNumber = "1081"
|
||||
endingLineNumber = "1081"
|
||||
landmarkName = "collectionView(_:didSelectItemAt:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2093,8 +2093,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "322"
|
||||
endingLineNumber = "322"
|
||||
startingLineNumber = "342"
|
||||
endingLineNumber = "342"
|
||||
landmarkName = "addActions()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2109,8 +2109,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "311"
|
||||
endingLineNumber = "311"
|
||||
startingLineNumber = "331"
|
||||
endingLineNumber = "331"
|
||||
landmarkName = "addActions()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2125,8 +2125,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "313"
|
||||
endingLineNumber = "313"
|
||||
startingLineNumber = "333"
|
||||
endingLineNumber = "333"
|
||||
landmarkName = "addActions()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2284,8 +2284,8 @@
|
||||
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "124"
|
||||
endingLineNumber = "124"
|
||||
startingLineNumber = "144"
|
||||
endingLineNumber = "144"
|
||||
landmarkName = "addActions()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2380,8 +2380,8 @@
|
||||
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "284"
|
||||
endingLineNumber = "284"
|
||||
startingLineNumber = "319"
|
||||
endingLineNumber = "319"
|
||||
landmarkName = "reloadData()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2396,8 +2396,8 @@
|
||||
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "283"
|
||||
endingLineNumber = "283"
|
||||
startingLineNumber = "318"
|
||||
endingLineNumber = "318"
|
||||
landmarkName = "reloadData()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2412,8 +2412,8 @@
|
||||
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "231"
|
||||
endingLineNumber = "231"
|
||||
startingLineNumber = "254"
|
||||
endingLineNumber = "254"
|
||||
landmarkName = "viewDidLoad()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2428,8 +2428,8 @@
|
||||
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "225"
|
||||
endingLineNumber = "225"
|
||||
startingLineNumber = "248"
|
||||
endingLineNumber = "248"
|
||||
landmarkName = "viewDidLoad()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -3003,8 +3003,8 @@
|
||||
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "209"
|
||||
endingLineNumber = "209"
|
||||
startingLineNumber = "232"
|
||||
endingLineNumber = "232"
|
||||
landmarkName = "init(nibName:bundle:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -3419,8 +3419,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "957"
|
||||
endingLineNumber = "957"
|
||||
startingLineNumber = "1017"
|
||||
endingLineNumber = "1017"
|
||||
landmarkName = "tableView(_:cellForRowAt:)"
|
||||
landmarkType = "7">
|
||||
<Locations>
|
||||
@@ -3467,8 +3467,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "962"
|
||||
endingLineNumber = "962"
|
||||
startingLineNumber = "1022"
|
||||
endingLineNumber = "1022"
|
||||
landmarkName = "tableView(_:cellForRowAt:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -3819,8 +3819,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "204"
|
||||
endingLineNumber = "204"
|
||||
startingLineNumber = "224"
|
||||
endingLineNumber = "224"
|
||||
landmarkName = "addActions()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -3835,8 +3835,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "211"
|
||||
endingLineNumber = "211"
|
||||
startingLineNumber = "231"
|
||||
endingLineNumber = "231"
|
||||
landmarkName = "addActions()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -3883,8 +3883,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "349"
|
||||
endingLineNumber = "349"
|
||||
startingLineNumber = "389"
|
||||
endingLineNumber = "389"
|
||||
landmarkName = "addActions()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -3899,8 +3899,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "359"
|
||||
endingLineNumber = "359"
|
||||
startingLineNumber = "399"
|
||||
endingLineNumber = "399"
|
||||
landmarkName = "addActions()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -3915,8 +3915,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "290"
|
||||
endingLineNumber = "290"
|
||||
startingLineNumber = "310"
|
||||
endingLineNumber = "310"
|
||||
landmarkName = "addActions()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -4423,8 +4423,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "1951"
|
||||
endingLineNumber = "1951"
|
||||
startingLineNumber = "2050"
|
||||
endingLineNumber = "2050"
|
||||
landmarkName = "init(style:reuseIdentifier:)"
|
||||
landmarkType = "7">
|
||||
<Locations>
|
||||
@@ -4471,8 +4471,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "1958"
|
||||
endingLineNumber = "1958"
|
||||
startingLineNumber = "2057"
|
||||
endingLineNumber = "2057"
|
||||
landmarkName = "init(style:reuseIdentifier:)"
|
||||
landmarkType = "7">
|
||||
<Locations>
|
||||
@@ -4519,8 +4519,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "636"
|
||||
endingLineNumber = "636"
|
||||
startingLineNumber = "696"
|
||||
endingLineNumber = "696"
|
||||
landmarkName = "tableView(_:cellForRowAt:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -4599,8 +4599,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "949"
|
||||
endingLineNumber = "949"
|
||||
startingLineNumber = "1009"
|
||||
endingLineNumber = "1009"
|
||||
landmarkName = "tableView(_:cellForRowAt:)"
|
||||
landmarkType = "7">
|
||||
<Locations>
|
||||
@@ -4649,7 +4649,7 @@
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "35"
|
||||
endingLineNumber = "35"
|
||||
landmarkName = "post(urlString:parameters:encoding:headers:responseType:completionHandler:)"
|
||||
landmarkName = "get(urlString:parameters:encoding:headers:responseType:completionHandler:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
@@ -5644,5 +5644,21 @@
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "E5FAD01D-72CD-4C9F-BCF3-2BE63BC37B2C"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "OrderScheduling/Global/Tool/CustomPicker.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "37"
|
||||
endingLineNumber = "37"
|
||||
landmarkName = "showDate(minDate:maxDate:selectDate:resultHandler:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
</Breakpoints>
|
||||
</Bucket>
|
||||
|
||||
BIN
OrderScheduling/Assets.xcassets/Common/.DS_Store
vendored
|
Before Width: | Height: | Size: 432 B |
|
Before Width: | Height: | Size: 707 B |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 422 B |
|
Before Width: | Height: | Size: 711 B |
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,17 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "dispatchOrder_down.png",
|
||||
"filename" : "conditional_search.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "dispatchOrder_down@2x.png",
|
||||
"filename" : "conditional_search@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "dispatchOrder_down@3x.png",
|
||||
"filename" : "conditional_search@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
BIN
OrderScheduling/Assets.xcassets/ConditionalSearch/conditional_search.imageset/conditional_search.png
vendored
Normal file
|
After Width: | Height: | Size: 339 B |
|
After Width: | Height: | Size: 559 B |
|
After Width: | Height: | Size: 711 B |
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "conditional_search_down_arrow.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "conditional_search_down_arrow@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "conditional_search_down_arrow@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 148 B |
|
After Width: | Height: | Size: 176 B |
|
After Width: | Height: | Size: 202 B |
@@ -1,17 +1,17 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "dispatchOrder_up.png",
|
||||
"filename" : "conditional_search_exit.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "dispatchOrder_up@2x.png",
|
||||
"filename" : "conditional_search_exit@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "dispatchOrder_up@3x.png",
|
||||
"filename" : "conditional_search_exit@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
|
After Width: | Height: | Size: 316 B |
|
After Width: | Height: | Size: 377 B |
|
After Width: | Height: | Size: 462 B |
133
OrderScheduling/Common/View/ConditionalSearchTool.swift
Normal file
@@ -0,0 +1,133 @@
|
||||
//
|
||||
// ConditionalSearchTool.swift
|
||||
// OrderScheduling
|
||||
//
|
||||
// Created by 中道 on 2024/1/2.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import RxSwift
|
||||
import RxRelay
|
||||
import RxCocoa
|
||||
|
||||
class ConditionalSearchTool : NSObject {
|
||||
|
||||
private lazy var searchView = ConditionalSearchView.init()
|
||||
private let disposeBag = DisposeBag()
|
||||
public let showSearchViewSub = ReplayRelay<ControlEvent<Void>?>.create(bufferSize: 1)
|
||||
|
||||
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 searchParameters : OrderListParameters?
|
||||
|
||||
public var resetSub = ReplayRelay<Any?>.create(bufferSize: 1)
|
||||
public var searchSub = ReplayRelay<Any?>.create(bufferSize: 1)
|
||||
|
||||
override init() {
|
||||
super.init()
|
||||
|
||||
showSearchViewSub
|
||||
.observe(on: MainScheduler.instance)
|
||||
.subscribe(onNext: {[weak self] _ in
|
||||
if let searchView = self?.searchView {
|
||||
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
|
||||
DispatchQueue.main.async {[weak self] in
|
||||
self?.searchView.setButtonValue(button: self?.searchView.contractTypeButton, value: result?.value)
|
||||
}
|
||||
}
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
searchView.serviceAppointButton.rx.tap
|
||||
.observe(on: MainScheduler.instance)
|
||||
.subscribe(onNext: {[weak self] _ in
|
||||
CP.showItems(items: [OrderListParameters.ServiceTypeEnum.shi.rawValue,OrderListParameters.ServiceTypeEnum.fou.rawValue], selectedItem: self?.serviceSelectedItemString) {[weak self] result in
|
||||
self?.serviceSelectedItem = OrderListParameters.ServiceTypeValue(serviceType: OrderListParameters.ServiceTypeEnum(rawValue: result?.value ?? OrderListParameters.ServiceTypeEnum.none.rawValue) ?? OrderListParameters.ServiceTypeEnum.none).value
|
||||
self?.serviceSelectedItemString = result?.value
|
||||
|
||||
DispatchQueue.main.async {[weak self] in
|
||||
self?.searchView.setButtonValue(button: self?.searchView.serviceAppointButton, value: result?.value)
|
||||
}
|
||||
}
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
searchView.fromDateButton.rx.tap
|
||||
.observe(on: MainScheduler.instance)
|
||||
.subscribe(onNext: {[weak self] _ in
|
||||
CP.showDate(maxDate: Date.init()) {[weak self] date, dateString in
|
||||
self?.fromSelectedItem = dateString
|
||||
|
||||
DispatchQueue.main.async {
|
||||
self?.searchView.setButtonValue(button: self?.searchView.fromDateButton, value: dateString)
|
||||
}
|
||||
}
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
searchView.toDateButton.rx.tap
|
||||
.observe(on: MainScheduler.instance)
|
||||
.subscribe(onNext: {[weak self] _ in
|
||||
CP.showDate(maxDate: Date.init()) {[weak self] date, dateString in
|
||||
self?.toSelectedItem = dateString
|
||||
|
||||
DispatchQueue.main.async {
|
||||
self?.searchView.setButtonValue(button: self?.searchView.toDateButton, value: dateString)
|
||||
}
|
||||
}
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
searchView.resetButton.rx.tap
|
||||
.observe(on: MainScheduler.instance)
|
||||
.subscribe(onNext: {[weak self] _ in
|
||||
self?.searchView.resetAction()
|
||||
|
||||
self?.contractSelectedItem = nil
|
||||
self?.contractSelectedItemString = nil
|
||||
self?.serviceSelectedItem = nil
|
||||
self?.serviceSelectedItemString = nil
|
||||
|
||||
self?.fromSelectedItem = nil
|
||||
self?.toSelectedItem = nil
|
||||
|
||||
self?.resetSub.accept(nil)
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
|
||||
searchView.searchButton.rx.tap
|
||||
.observe(on: MainScheduler.instance)
|
||||
.subscribe(onNext: {[weak self] _ in
|
||||
ENTRY.dismiss(name: conitionalSearchEntry)
|
||||
self?.searchSub.accept(nil)
|
||||
})
|
||||
.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)
|
||||
}
|
||||
}
|
||||
338
OrderScheduling/Common/View/ConditionalSearchView.swift
Normal file
@@ -0,0 +1,338 @@
|
||||
//
|
||||
// ConditionalSearchView.swift
|
||||
// OrderScheduling
|
||||
//
|
||||
// Created by 中道 on 2023/12/29.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import DDControlsKit_Private
|
||||
import DDAutoUIKit_Private
|
||||
import DDColorKit_Private
|
||||
|
||||
class ConditionalSearchView : DDView {
|
||||
public var titleLabel : DDLabel
|
||||
public var exitButton : DDButton
|
||||
public var scrollView : DDScrollView
|
||||
public var scrollContentView : DDView
|
||||
public var resetButton : DDButton
|
||||
public var searchButton : DDButton
|
||||
|
||||
public let orderInfoTitleLabel : DDLabel
|
||||
public let orderCodeTextFiled : DDTextField
|
||||
public let licenseTextField : DDTextField
|
||||
public let carOwnerTextField : DDTextField
|
||||
|
||||
public let contractTitleLabel : DDLabel
|
||||
public let contractTextFiled : DDTextField
|
||||
public let contractTypeButton : DDButton
|
||||
|
||||
public let dateTitleLabel : DDLabel
|
||||
public let fromDateButton : DDButton
|
||||
public let toDateButton : DDButton
|
||||
|
||||
public let serviceTitleLabel : DDLabel
|
||||
public let serviceTextField : DDTextField
|
||||
public let serviceAppointButton : DDButton
|
||||
|
||||
public let controlBackgroundColor = UIColor.hex("000000").alpha(0.1)
|
||||
public let noneColor = UIColor.hex("000000").alpha(0.2)
|
||||
public let valueColor = UIColor.black
|
||||
public let noneFont = UIFont.mediumFont(14)
|
||||
public let valueFont = UIFont.mediumFont(14)
|
||||
|
||||
public override init(frame: CGRect) {
|
||||
titleLabel = DDLabel.dd_init(withText: "订单筛选", font: .mediumFont(17), textColor: .hex("000000").alpha(0.8))
|
||||
exitButton = DDButton.dd_initCustom()
|
||||
scrollView = DDScrollView.init()
|
||||
scrollContentView = DDView.init()
|
||||
resetButton = DDButton.dd_initCustom()
|
||||
searchButton = DDButton.dd_initCustom()
|
||||
|
||||
orderInfoTitleLabel = DDLabel.dd_init(withText: "任务信息", font: .mediumFont(16), textColor: .hex("000000").alpha(0.8))
|
||||
orderCodeTextFiled = DDTextField.init()
|
||||
licenseTextField = DDTextField.init()
|
||||
carOwnerTextField = DDTextField.init()
|
||||
|
||||
contractTitleLabel = DDLabel.dd_init(withText: "合同信息", font: .mediumFont(16), textColor: .hex("000000").alpha(0.8))
|
||||
contractTextFiled = DDTextField.init()
|
||||
contractTypeButton = DDButton.dd_initCustom()
|
||||
|
||||
dateTitleLabel = DDLabel.dd_init(withText: "事发时间", font: .mediumFont(16), textColor: .hex("000000").alpha(0.8))
|
||||
fromDateButton = DDButton.dd_initCustom()
|
||||
toDateButton = DDButton.dd_initCustom()
|
||||
|
||||
serviceTitleLabel = DDLabel.dd_init(withText: "服务内容", font: .mediumFont(16), textColor: .hex("000000").alpha(0.8))
|
||||
serviceTextField = DDTextField.init()
|
||||
serviceAppointButton = DDButton.dd_initCustom()
|
||||
super.init(frame: frame)
|
||||
|
||||
backgroundColor = .white
|
||||
exitButton.setImage(UIImage(named: "conditional_search_exit"), for: .normal)
|
||||
resetButton.setTitle("重置", for: .normal)
|
||||
resetButton.dd_setBackgroundColor(controlBackgroundColor)
|
||||
searchButton.setTitle("完成", for: .normal)
|
||||
searchButton.dd_setBackgroundColor(.hex("2A5094"))
|
||||
layer.maskedCorners = [.layerMinXMinYCorner,.layerMaxXMinYCorner]
|
||||
layer.masksToBounds = true
|
||||
layer.cornerRadius = auto(16)
|
||||
|
||||
let bottomView = DDView.init()
|
||||
let contentView = DDView.init()
|
||||
addSubview(bottomView)
|
||||
bottomView.snp.makeConstraints { make in
|
||||
make.bottom.left.right.equalToSuperview()
|
||||
make.height.equalTo(auto(80))
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
||||
|
||||
contentView.addSubview(searchButton)
|
||||
searchButton.snp.makeConstraints { make in
|
||||
make.right.top.bottom.equalToSuperview()
|
||||
make.width.equalToSuperview().multipliedBy(0.5)
|
||||
}
|
||||
|
||||
addSubview(titleLabel)
|
||||
titleLabel.snp.makeConstraints { make in
|
||||
make.top.equalToSuperview().offset(auto(20))
|
||||
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.left.right.equalToSuperview()
|
||||
make.top.equalTo(titleLabel.snp.bottom).offset(auto(20))
|
||||
make.bottom.equalTo(bottomView.snp.top)
|
||||
}
|
||||
|
||||
scrollView.addSubview(scrollContentView)
|
||||
scrollContentView.snp.makeConstraints { make in
|
||||
make.edges.equalToSuperview()
|
||||
make.width.equalToSuperview()
|
||||
}
|
||||
|
||||
scrollContentView.addSubview(orderInfoTitleLabel)
|
||||
orderInfoTitleLabel.snp.makeConstraints { make in
|
||||
make.left.equalTo(auto(10))
|
||||
make.top.equalTo(scrollContentView)
|
||||
}
|
||||
|
||||
orderCodeTextFiled.backgroundColor = controlBackgroundColor
|
||||
orderCodeTextFiled.layer.cornerRadius = auto(6)
|
||||
orderCodeTextFiled.tintColor = .gray
|
||||
orderCodeTextFiled.attributedPlaceholder = NSAttributedString(string: "内部编号/外部编号", attributes: [.foregroundColor : noneColor,.font : UIFont.mediumFont(14)])
|
||||
orderCodeTextFiled.textAlignment = .center
|
||||
orderCodeTextFiled.font = valueFont
|
||||
scrollContentView.addSubview(orderCodeTextFiled)
|
||||
orderCodeTextFiled.snp.makeConstraints { make in
|
||||
make.left.equalTo(orderInfoTitleLabel)
|
||||
make.top.equalTo(orderInfoTitleLabel.snp.bottom).offset(auto(10))
|
||||
make.width.equalToSuperview().multipliedBy(0.5).offset(-auto(15))
|
||||
make.height.equalTo(auto(30))
|
||||
}
|
||||
|
||||
licenseTextField.backgroundColor = controlBackgroundColor
|
||||
licenseTextField.layer.cornerRadius = auto(6)
|
||||
licenseTextField.tintColor = .gray
|
||||
licenseTextField.attributedPlaceholder = NSAttributedString(string: "车架/车牌/单证", attributes: [.foregroundColor : noneColor,.font : UIFont.mediumFont(14)])
|
||||
licenseTextField.textAlignment = .center
|
||||
licenseTextField.font = valueFont
|
||||
scrollContentView.addSubview(licenseTextField)
|
||||
licenseTextField.snp.makeConstraints { make in
|
||||
make.right.equalTo(-auto(10))
|
||||
make.top.equalTo(orderCodeTextFiled)
|
||||
make.width.equalToSuperview().multipliedBy(0.5).offset(-auto(15))
|
||||
make.height.equalTo(orderCodeTextFiled)
|
||||
}
|
||||
|
||||
carOwnerTextField.backgroundColor = controlBackgroundColor
|
||||
carOwnerTextField.layer.cornerRadius = auto(6)
|
||||
carOwnerTextField.tintColor = .gray
|
||||
carOwnerTextField.attributedPlaceholder = NSAttributedString(string: "车主/报案人姓名/电话", attributes: [.foregroundColor : noneColor,.font : UIFont.mediumFont(14)])
|
||||
carOwnerTextField.textAlignment = .center
|
||||
carOwnerTextField.font = valueFont
|
||||
scrollContentView.addSubview(carOwnerTextField)
|
||||
carOwnerTextField.snp.makeConstraints { make in
|
||||
make.top.equalTo(orderCodeTextFiled.snp.bottom).offset(auto(10))
|
||||
make.left.equalTo(orderCodeTextFiled)
|
||||
make.width.equalTo(orderCodeTextFiled)
|
||||
make.height.equalTo(orderCodeTextFiled)
|
||||
}
|
||||
|
||||
scrollContentView.addSubview(contractTitleLabel)
|
||||
contractTitleLabel.snp.makeConstraints { make in
|
||||
make.left.equalTo(orderInfoTitleLabel)
|
||||
make.top.equalTo(carOwnerTextField.snp.bottom).offset(auto(10))
|
||||
}
|
||||
|
||||
contractTextFiled.backgroundColor = controlBackgroundColor
|
||||
contractTextFiled.layer.cornerRadius = auto(6)
|
||||
contractTextFiled.tintColor = .gray
|
||||
contractTextFiled.attributedPlaceholder = NSAttributedString(string: "车主/报案人姓名/电话", attributes: [.foregroundColor : noneColor,.font : UIFont.mediumFont(14)])
|
||||
contractTextFiled.textAlignment = .center
|
||||
contractTextFiled.font = valueFont
|
||||
scrollContentView.addSubview(contractTextFiled)
|
||||
contractTextFiled.snp.makeConstraints { make in
|
||||
make.top.equalTo(contractTitleLabel.snp.bottom).offset(auto(10))
|
||||
make.left.equalTo(orderCodeTextFiled)
|
||||
make.height.equalTo(orderCodeTextFiled)
|
||||
make.width.equalTo(orderCodeTextFiled)
|
||||
}
|
||||
|
||||
contractTypeButton.titleLabel?.textAlignment = .center
|
||||
contractTypeButton.backgroundColor = controlBackgroundColor
|
||||
contractTypeButton.layer.cornerRadius = auto(6)
|
||||
contractTypeButton.setTitleColor(noneColor, for: .normal)
|
||||
contractTypeButton.titleLabel?.font = .mediumFont(14)
|
||||
contractTypeButton.setTitle("合同类型", for: .normal)
|
||||
contractTypeButton.titleLabel?.font = valueFont
|
||||
let contractTypeImageView = DDImageView.init(image: UIImage(named: "conditional_search_down_arrow"))
|
||||
contractTypeButton.addSubview(contractTypeImageView)
|
||||
contractTypeImageView.snp.makeConstraints { make in
|
||||
make.right.equalTo(-auto(10))
|
||||
make.centerY.equalToSuperview()
|
||||
}
|
||||
scrollContentView.addSubview(contractTypeButton)
|
||||
contractTypeButton.snp.makeConstraints { make in
|
||||
make.right.equalTo(licenseTextField.snp.right)
|
||||
make.top.equalTo(contractTextFiled)
|
||||
make.height.width.equalTo(contractTextFiled)
|
||||
}
|
||||
|
||||
scrollContentView.addSubview(dateTitleLabel)
|
||||
dateTitleLabel.snp.makeConstraints { make in
|
||||
make.left.equalTo(orderInfoTitleLabel)
|
||||
make.top.equalTo(contractTextFiled.snp.bottom).offset(auto(10))
|
||||
}
|
||||
|
||||
fromDateButton.titleLabel?.textAlignment = .center
|
||||
fromDateButton.backgroundColor = controlBackgroundColor
|
||||
fromDateButton.layer.cornerRadius = auto(6)
|
||||
fromDateButton.setTitleColor(noneColor, for: .normal)
|
||||
fromDateButton.setTitle("开始日期", for: .normal)
|
||||
fromDateButton.titleLabel?.font = valueFont
|
||||
scrollContentView.addSubview(fromDateButton)
|
||||
fromDateButton.snp.makeConstraints { make in
|
||||
make.top.equalTo(dateTitleLabel.snp.bottom).offset(auto(10))
|
||||
make.left.equalTo(auto(10))
|
||||
make.height.equalTo(orderCodeTextFiled)
|
||||
make.width.equalToSuperview().multipliedBy(0.5).offset(-auto(20))
|
||||
}
|
||||
|
||||
let middleLine = DDView()
|
||||
middleLine.backgroundColor = noneColor
|
||||
scrollContentView.addSubview(middleLine)
|
||||
middleLine.snp.makeConstraints { make in
|
||||
make.centerY.equalTo(fromDateButton)
|
||||
make.height.equalTo(2)
|
||||
make.width.equalTo(auto(10))
|
||||
make.centerX.equalToSuperview()
|
||||
}
|
||||
|
||||
toDateButton.titleLabel?.textAlignment = .center
|
||||
toDateButton.backgroundColor = controlBackgroundColor
|
||||
toDateButton.layer.cornerRadius = auto(6)
|
||||
toDateButton.setTitleColor(noneColor, for: .normal)
|
||||
toDateButton.setTitle("结束日期", for: .normal)
|
||||
toDateButton.titleLabel?.font = valueFont
|
||||
scrollContentView.addSubview(toDateButton)
|
||||
toDateButton.snp.makeConstraints { make in
|
||||
make.right.equalTo(licenseTextField.snp.right)
|
||||
make.top.equalTo(fromDateButton)
|
||||
make.height.width.equalTo(fromDateButton)
|
||||
make.width.equalToSuperview().multipliedBy(0.5).offset(-auto(20))
|
||||
}
|
||||
|
||||
scrollContentView.addSubview(serviceTitleLabel)
|
||||
serviceTitleLabel.snp.makeConstraints { make in
|
||||
make.left.equalTo(orderInfoTitleLabel)
|
||||
make.top.equalTo(fromDateButton.snp.bottom).offset(auto(10))
|
||||
}
|
||||
|
||||
serviceTextField.backgroundColor = controlBackgroundColor
|
||||
serviceTextField.layer.cornerRadius = auto(6)
|
||||
serviceTextField.tintColor = .gray
|
||||
serviceTextField.attributedPlaceholder = NSAttributedString(string: "服务内容", attributes: [.foregroundColor : UIColor.hex("000000").alpha(0.2),.font : UIFont.mediumFont(14)])
|
||||
serviceTextField.textAlignment = .center
|
||||
serviceTextField.font = valueFont
|
||||
scrollContentView.addSubview(serviceTextField)
|
||||
serviceTextField.snp.makeConstraints { make in
|
||||
make.top.equalTo(serviceTitleLabel.snp.bottom).offset(auto(10))
|
||||
make.left.equalTo(orderCodeTextFiled)
|
||||
make.height.equalTo(orderCodeTextFiled)
|
||||
make.width.equalTo(orderCodeTextFiled)
|
||||
make.bottom.equalTo(scrollContentView.snp.bottom)
|
||||
}
|
||||
|
||||
serviceAppointButton.titleLabel?.textAlignment = .center
|
||||
serviceAppointButton.backgroundColor = controlBackgroundColor
|
||||
serviceAppointButton.layer.cornerRadius = auto(6)
|
||||
serviceAppointButton.setTitleColor(noneColor, for: .normal)
|
||||
serviceAppointButton.setTitle("是否预约", for: .normal)
|
||||
serviceAppointButton.titleLabel?.font = valueFont
|
||||
let serviceAppointImageView = DDImageView.init(image: UIImage(named: "conditional_search_down_arrow"))
|
||||
serviceAppointButton.addSubview(serviceAppointImageView)
|
||||
serviceAppointImageView.snp.makeConstraints { make in
|
||||
make.right.equalTo(-auto(10))
|
||||
make.centerY.equalToSuperview()
|
||||
}
|
||||
scrollContentView.addSubview(serviceAppointButton)
|
||||
serviceAppointButton.snp.makeConstraints { make in
|
||||
make.right.equalTo(licenseTextField.snp.right)
|
||||
make.top.equalTo(serviceTextField)
|
||||
make.height.width.equalTo(serviceTextField)
|
||||
}
|
||||
}
|
||||
|
||||
required init?(coder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
func resetAction() {
|
||||
contractTypeButton.setTitle("合同类型", for: .normal)
|
||||
contractTypeButton.setTitleColor(noneColor, for: .normal)
|
||||
|
||||
fromDateButton.setTitle("开始日期", for: .normal)
|
||||
fromDateButton.setTitleColor(noneColor, for: .normal)
|
||||
|
||||
toDateButton.setTitle("结束日期", for: .normal)
|
||||
toDateButton.setTitleColor(noneColor, for: .normal)
|
||||
|
||||
serviceAppointButton.setTitle("是否预约", for: .normal)
|
||||
serviceAppointButton.setTitleColor(noneColor, for: .normal)
|
||||
|
||||
orderCodeTextFiled.text = nil
|
||||
licenseTextField.text = nil
|
||||
carOwnerTextField.text = nil
|
||||
|
||||
contractTextFiled.text = nil
|
||||
|
||||
serviceTextField.text = nil
|
||||
}
|
||||
|
||||
func setButtonValue(button: DDButton?, value: String?) {
|
||||
button?.setTitle(value, for: .normal)
|
||||
button?.setTitleColor(valueColor, for: .normal)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -450,6 +450,50 @@ open class Entry {
|
||||
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)
|
||||
}
|
||||
|
||||
public func isCurrentlyDisplaying(entryNamed name: String? = nil) -> Bool {
|
||||
return SwiftEntryKit.isCurrentlyDisplaying(entryNamed: name)
|
||||
}
|
||||
|
||||
@@ -28,4 +28,16 @@ open class CustomPicker {
|
||||
}
|
||||
pickerView.show()
|
||||
}
|
||||
|
||||
func showDate(minDate: Date? = nil,maxDate: Date? = nil,selectDate: Date? = nil,resultHandler:@escaping ((Date?, String?) -> Void)) {
|
||||
let pickerView = BRDatePickerView()
|
||||
pickerView.pickerMode = .YMDHMS
|
||||
pickerView.minDate = minDate
|
||||
pickerView.maxDate = maxDate
|
||||
pickerView.selectDate = selectDate
|
||||
pickerView.resultBlock = { date,dateString in
|
||||
resultHandler(date,dateString)
|
||||
}
|
||||
pickerView.show()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ extension HistoryItemController {
|
||||
|
||||
refreshRelay
|
||||
.flatMapLatest {[weak self] pageNum in
|
||||
return Observable.zip(RQ.orderList(parameters: OrderListParameters(pageNum: pageNum, queryType: (self?.type)!)).asObservable(), Observable.just(pageNum))
|
||||
return Observable.zip(RQ.orderList(parameters: self?.conditionalSearchTool.getParameters(pageNum: pageNum, queryType: (self?.type)!) ?? OrderListParameters(pageNum: pageNum, queryType: (self?.type)!)).asObservable(), Observable.just(pageNum))
|
||||
}
|
||||
.observe(on: MainScheduler.instance)
|
||||
.subscribe(onNext: {[weak self] (response, pageNum) in
|
||||
@@ -132,6 +132,26 @@ extension HistoryItemController {
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
searchButton.rx.tap
|
||||
.subscribe(onNext: {[weak self] _ in
|
||||
self?.conditionalSearchTool.showSearchViewSub.accept(nil)
|
||||
})
|
||||
.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?.historyItemView.tableView.mj_header?.beginRefreshing()
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
historyItemView.tableView.mj_header?.beginRefreshing()
|
||||
|
||||
USERP.userPermissionRelay
|
||||
@@ -387,6 +407,9 @@ class HistoryItemController : ZDViewController {
|
||||
private var type : OrderTypeEnum
|
||||
private var emptyView = EmptyView()
|
||||
|
||||
private var searchButton = DDButton.dd_initCustom()
|
||||
private lazy var conditionalSearchTool = ConditionalSearchTool()
|
||||
|
||||
public init(type:OrderTypeEnum) {
|
||||
self.type = type
|
||||
super.init(nibName: nil, bundle: nil)
|
||||
@@ -420,6 +443,16 @@ 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(15)
|
||||
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(30))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -50,6 +50,77 @@ public struct OrderListParameters : Encodable {
|
||||
var pageNum : Int
|
||||
var pageSize : Int = 12
|
||||
var queryType : OrderTypeEnum
|
||||
var searchCode : String?
|
||||
var userPhone : String?
|
||||
var soleCode : String?
|
||||
var contractName : String?
|
||||
var contractType : Int?
|
||||
var createTimeStart : String?
|
||||
var createTimeEnd : String?
|
||||
var isAppoint : Int?
|
||||
var serviceName : String?
|
||||
|
||||
public enum ContractTypeEnum : String, Encodable {
|
||||
case baoxian = "保险类"
|
||||
case chechan = "车厂类"
|
||||
case fours = "4s店类"
|
||||
case wuliu = "物流类"
|
||||
case sanke = "散客类"
|
||||
case xuni = "虚拟类"
|
||||
case yiliao = "医疗类"
|
||||
case zixun = "400咨询类"
|
||||
case huicheng = "回乘车"
|
||||
case none = ""
|
||||
}
|
||||
|
||||
public struct ContractTypeValue : Encodable {
|
||||
var value : Int?
|
||||
init(contractType: ContractTypeEnum) {
|
||||
switch contractType {
|
||||
case .baoxian:
|
||||
self.value = 1
|
||||
case .chechan:
|
||||
self.value = 2
|
||||
case .fours:
|
||||
self.value = 3
|
||||
case .wuliu:
|
||||
self.value = 4
|
||||
case .sanke:
|
||||
self.value = 5
|
||||
case .xuni:
|
||||
self.value = 6
|
||||
case .yiliao:
|
||||
self.value = 7
|
||||
case .zixun:
|
||||
self.value = 8
|
||||
case .huicheng:
|
||||
self.value = 9
|
||||
default:
|
||||
self.value = nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public enum ServiceTypeEnum : String, Encodable {
|
||||
case shi = "是"
|
||||
case fou = "否"
|
||||
case none = ""
|
||||
}
|
||||
|
||||
public struct ServiceTypeValue : Encodable {
|
||||
var value : Int?
|
||||
var string : String?
|
||||
init(serviceType: ServiceTypeEnum) {
|
||||
switch serviceType {
|
||||
case .shi:
|
||||
self.value = 1
|
||||
case .fou:
|
||||
self.value = 0
|
||||
default:
|
||||
self.value = nil
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public struct AcceptDispatchParameters : Encodable {
|
||||
|
||||
@@ -96,8 +96,8 @@ extension RescuePendingOrderController {
|
||||
})
|
||||
|
||||
refreshRelay
|
||||
.flatMapLatest { pageNum in
|
||||
return Observable.zip(RQ.orderList(parameters: OrderListParameters(pageNum: pageNum, queryType: .TO_ACCEPT_DISPATCH)).asObservable(), Observable.just(pageNum))
|
||||
.flatMapLatest {[weak self] pageNum in
|
||||
return Observable.zip(RQ.orderList(parameters:self?.conditionalSearchTool.getParameters(pageNum: pageNum, queryType: .TO_ACCEPT_DISPATCH) ?? OrderListParameters(pageNum: pageNum, queryType: .TO_ACCEPT_DISPATCH)).asObservable(), Observable.just(pageNum))
|
||||
}
|
||||
.observe(on: MainScheduler.instance)
|
||||
.subscribe(onNext: {[weak self] (response, pageNum) in
|
||||
@@ -198,6 +198,26 @@ extension RescuePendingOrderController {
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
searchButton.rx.tap
|
||||
.subscribe(onNext: {[weak self] _ in
|
||||
self?.conditionalSearchTool.showSearchViewSub.accept(nil)
|
||||
})
|
||||
.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?.pendingOrderView.tableView.mj_header?.beginRefreshing()
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
USER.refreshTokenSub
|
||||
.observe(on: MainScheduler.instance)
|
||||
.subscribe(onNext: {[weak self] _ in
|
||||
@@ -296,8 +316,8 @@ extension RescuePendingDispatchController {
|
||||
})
|
||||
|
||||
refreshRelay
|
||||
.flatMapLatest { pageNum in
|
||||
return Observable.zip(RQ.orderList(parameters: OrderListParameters(pageNum: pageNum, queryType: .TO_DISPATCH_VEHICLE)).asObservable(), Observable.just(pageNum))
|
||||
.flatMapLatest {[weak self] pageNum in
|
||||
return Observable.zip(RQ.orderList(parameters:self?.conditionalSearchTool.getParameters(pageNum: pageNum, queryType: .TO_DISPATCH_VEHICLE) ?? OrderListParameters(pageNum: pageNum, queryType: .TO_DISPATCH_VEHICLE)).asObservable(), Observable.just(pageNum))
|
||||
}
|
||||
.observe(on: MainScheduler.instance)
|
||||
.subscribe(onNext: {[weak self] (response, pageNum) in
|
||||
@@ -336,6 +356,26 @@ extension RescuePendingDispatchController {
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
searchButton.rx.tap
|
||||
.subscribe(onNext: {[weak self] _ in
|
||||
self?.conditionalSearchTool.showSearchViewSub.accept(nil)
|
||||
})
|
||||
.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?.pendingDispatchView.tableView.mj_header?.beginRefreshing()
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
USER.refreshTokenSub
|
||||
.observe(on: MainScheduler.instance)
|
||||
.subscribe(onNext: {[weak self] _ in
|
||||
@@ -365,8 +405,8 @@ extension RescueIsIngController {
|
||||
})
|
||||
|
||||
refreshRelay
|
||||
.flatMapLatest { pageNum in
|
||||
return Observable.zip(RQ.orderList(parameters: OrderListParameters(pageNum: pageNum, queryType: .TO_RESCUE)).asObservable(), Observable.just(pageNum))
|
||||
.flatMapLatest {[weak self] pageNum in
|
||||
return Observable.zip(RQ.orderList(parameters:self?.conditionalSearchTool.getParameters(pageNum: pageNum,queryType: .TO_RESCUE) ?? OrderListParameters(pageNum: pageNum, queryType: .TO_RESCUE)).asObservable(), Observable.just(pageNum))
|
||||
}
|
||||
.observe(on: MainScheduler.instance)
|
||||
.subscribe(onNext: {[weak self] (response, pageNum) in
|
||||
@@ -405,6 +445,26 @@ extension RescueIsIngController {
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
searchButton.rx.tap
|
||||
.subscribe(onNext: {[weak self] _ in
|
||||
self?.conditionalSearchTool.showSearchViewSub.accept(nil)
|
||||
})
|
||||
.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?.pendingIsIngView.tableView.mj_header?.beginRefreshing()
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
USER.refreshTokenSub
|
||||
.observe(on: MainScheduler.instance)
|
||||
.subscribe(onNext: {[weak self] _ in
|
||||
@@ -1127,6 +1187,9 @@ class RescuePendingOrderController : ZDViewController {
|
||||
private var acceptOrderRelay = ReplayRelay<OrderListDataModel>.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")
|
||||
@@ -1152,6 +1215,16 @@ class RescuePendingOrderController : ZDViewController {
|
||||
pendingOrderView.tableView.backgroundColor = .hex("FAFAFA")
|
||||
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(15)
|
||||
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(30))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1164,6 +1237,9 @@ 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")
|
||||
@@ -1189,6 +1265,16 @@ class RescuePendingDispatchController : ZDViewController {
|
||||
pendingDispatchView.tableView.backgroundColor = .hex("FAFAFA")
|
||||
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(15)
|
||||
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(30))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1201,6 +1287,9 @@ 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")
|
||||
@@ -1226,6 +1315,16 @@ class RescueIsIngController : ZDViewController {
|
||||
pendingIsIngView.tableView.backgroundColor = .hex("FAFAFA")
|
||||
pendingIsIngView.tableView.delegate = self
|
||||
pendingIsIngView.tableView.dataSource = self
|
||||
|
||||
searchButton.backgroundColor = .hex("2A5094")
|
||||
searchButton.setImage(UIImage(named: "conditional_search"), for: .normal)
|
||||
view.addSubview(searchButton)
|
||||
searchButton.layer.cornerRadius = auto(15)
|
||||
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(30))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -64,8 +64,8 @@ extension ReviewFailedController {
|
||||
})
|
||||
|
||||
refreshRelay
|
||||
.flatMapLatest { pageNum in
|
||||
return Observable.zip(RQ.orderList(parameters: OrderListParameters(pageNum: pageNum, queryType: .TO_AUDIT_FAILED)).asObservable(), Observable.just(pageNum))
|
||||
.flatMapLatest {[weak self] pageNum in
|
||||
return Observable.zip(RQ.orderList(parameters: self?.conditionalSearchTool.getParameters(pageNum: pageNum,queryType: .TO_AUDIT_FAILED) ?? OrderListParameters(pageNum: pageNum, queryType: .TO_AUDIT_FAILED)).asObservable(), Observable.just(pageNum))
|
||||
}
|
||||
.observe(on: MainScheduler.instance)
|
||||
.subscribe(onNext: {[weak self] (response, pageNum) in
|
||||
@@ -118,6 +118,26 @@ extension ReviewFailedController {
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
searchButton.rx.tap
|
||||
.subscribe(onNext: {[weak self] _ in
|
||||
self?.conditionalSearchTool.showSearchViewSub.accept(nil)
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
conditionalSearchTool.resetSub
|
||||
.observe(on: MainScheduler.instance)
|
||||
.subscribe(onNext: {[weak self] _ in
|
||||
self?.reviewFailedView.tableView.mj_header?.beginRefreshing()
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
conditionalSearchTool.searchSub
|
||||
.observe(on: MainScheduler.instance)
|
||||
.subscribe(onNext: {[weak self] _ in
|
||||
self?.reviewFailedView.tableView.mj_header?.beginRefreshing()
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
preRefreshRelay
|
||||
.observe(on: MainScheduler.instance)
|
||||
.subscribe(onNext: {[weak self] _ in
|
||||
@@ -199,6 +219,9 @@ open class ReviewFailedController : ZDViewController {
|
||||
private let pendingView = MessageView()
|
||||
private var emptyView = EmptyView()
|
||||
|
||||
private var searchButton = DDButton.dd_initCustom()
|
||||
private lazy var conditionalSearchTool = ConditionalSearchTool()
|
||||
|
||||
public override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
|
||||
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
|
||||
MCOUNT.reviewFailedCountRelay
|
||||
@@ -261,6 +284,11 @@ open class ReviewFailedController : ZDViewController {
|
||||
make.height.equalTo(40)
|
||||
make.width.greaterThanOrEqualTo(40)
|
||||
}
|
||||
|
||||
searchButton.backgroundColor = .hex("2A5094")
|
||||
searchButton.setImage(UIImage(named: "conditional_search"), for: .normal)
|
||||
view.addSubview(searchButton)
|
||||
|
||||
}
|
||||
|
||||
open override func viewSafeAreaInsetsDidChange() {
|
||||
@@ -272,6 +300,13 @@ open class ReviewFailedController : ZDViewController {
|
||||
make.left.right.equalToSuperview()
|
||||
make.bottom.equalTo(-view.safeAreaInsets.bottom)
|
||||
}
|
||||
|
||||
searchButton.layer.cornerRadius = auto(15)
|
||||
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(30))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -26,3 +26,5 @@ public let vehicleLogoutEntry = "vehicleLogoutEntry"
|
||||
public let notObtainUserPermissionsEntry = "notObtainPermissionsEntry"
|
||||
|
||||
public let vehicleMonitoringConfigEntry = "vehicleMonitoringConfigEntry"
|
||||
|
||||
public let conitionalSearchEntry = "conitionalSearchEntry"
|
||||
|
||||
@@ -5,17 +5,17 @@
|
||||
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="0: default_platform" time="0.000178">
|
||||
<testcase classname="fastlane.lanes" name="0: default_platform" time="0.000201">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="1: gym" time="61.883672">
|
||||
<testcase classname="fastlane.lanes" name="1: gym" time="59.624824">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="2: pgyer" time="16.781955">
|
||||
<testcase classname="fastlane.lanes" name="2: pgyer" time="10.149935">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||