南鑫林 5 yıl önce
ebeveyn
işleme
550689a848

+ 3 - 2
RainbowPlanet/RainbowPlanet/Manager/DatePickerManager/DatePickerManager.swift

@@ -38,9 +38,10 @@ class DatePickerManager: NSObject {
     ///   - timeStamp: 设置时间
     ///   - dateReturnType: 返回类型
     ///   - didSelectDateClosure: 返回数据
-    func initDatePickerManager(timeStamp:Int = Date().timeStamp(),dateReturnType:DateReturnType? = .timeStamp,didSelectDateClosure:DidSelectDateClosure? = nil) {
+    func initDatePickerManager(title:String = "",timeStamp:Double = Date().timeStamp(),dateReturnType:DateReturnType? = .timeStamp,didSelectDateClosure:DidSelectDateClosure? = nil) {
         
         datePickManager = PGDatePickManager()
+        datePickManager?.titleLabel.text = title
         datePickManager?.isShadeBackground = true
         datePickManager?.confirmButtonTextColor = kThemeColor
         
@@ -53,7 +54,7 @@ class DatePickerManager: NSObject {
         datePicker?.lineBackgroundColor = UIColor.white
         datePicker?.textColorOfSelectedRow = kThemeColor
         datePicker?.middleTextColor = kThemeColor
-        datePicker?.setDate(Date.date(timeStamp: timeStamp), animated: false)
+        datePicker?.setDate(Date.date(timeStamp: Double(timeStamp)), animated: false)
         
         self.dateReturnType = dateReturnType
         self.didSelectDateClosure = didSelectDateClosure

+ 23 - 1
RainbowPlanet/RainbowPlanet/Manager/WebViewJavascriptBridgeManager/WebViewJavascriptBridgeManager.swift

@@ -40,6 +40,20 @@ class WebViewJavascriptBridgeManager: NSObject {
         bridge?.callHandler("h5", data: refreshDic)
     }
     
+    /// 返回时间戳
+    ///
+    /// - Parameter bridge: 交互对象
+    func callHandlerDatepicker(bridge: WebViewJavascriptBridge?,timestamp:Double) {
+        
+        let datepickerModel = WVJBDatepickerModel()
+        datepickerModel.timestamp = timestamp * 1000
+        //获取当前时间
+        var datepickerDic = Dictionary<String,Any>()
+        datepickerDic.updateValue("datepicker", forKey: "type")
+        datepickerDic.updateValue(datepickerModel.toJSON() as Any, forKey: "params")
+        bridge?.callHandler("h5", data: datepickerDic)
+    }
+    
     
     /// 注册回调
     ///
@@ -57,7 +71,7 @@ class WebViewJavascriptBridgeManager: NSObject {
         })
     }
     
-    func jump(wvjbModel:WVJBModel?,viewController:BaseJSWebBaseViewController? = nil) {
+    func jump(bridge: WebViewJavascriptBridge? = nil,wvjbModel:WVJBModel?,viewController:BaseJSWebBaseViewController? = nil) {
         // 链接
         if wvjbModel?.modelType == .link {
             Mediator.push(H5RouterModuleType.pushWeb(URLString: wvjbModel!.params!.url!))
@@ -98,6 +112,14 @@ class WebViewJavascriptBridgeManager: NSObject {
             UserMemberTotalBeanViewModel.shared.userMemberGetTotalBeanApi()
         }
         
+        // 日期
+        if wvjbModel?.modelType  == .datepicker {            
+            DatePickerManager.shared.initDatePickerManager(title: wvjbModel?.params?.title ?? "", timeStamp:  Double(wvjbModel?.params?.timeStamp ?? "")!, dateReturnType: DatePickerManager.DateReturnType.timeStamp) { [weak self] (timeStamp) in
+                let timeStamp = timeStamp as? Double
+                self?.callHandlerDatepicker(bridge: bridge, timestamp: timeStamp ?? Double(Date().timeStamp()))
+            }
+        }
+        
         // 跳转原生
         if wvjbModel?.modelType  == .view {
             // 发布

+ 32 - 0
RainbowPlanet/RainbowPlanet/Model/WVJBModel/WVJBModel.swift

@@ -15,6 +15,7 @@ import ObjectMapper
 /// - bean: 刷新U米
 /// - preview: 预览图片
 /// - follow: 关注
+/// - datepicker: 时间picker
 enum WVJBModelType : String {
     case none = ""
     case share = "share"
@@ -25,6 +26,7 @@ enum WVJBModelType : String {
     case preview = "preview"
     case follow = "follow"
     case back = "back"
+    case datepicker = "datepicker"
 }
 /// WebViewJavascriptBridgeModel 简写 WVJBModel
 class WVJBModel:NSObject,Mappable{
@@ -100,6 +102,17 @@ class WVJBParamsModel:NSObject,Mappable {
     var current : Int?
     /// 交互类型参数
     var paramsModelType : WVJBParamsModelType?
+    
+    // datePicker
+    /// 时间的标示
+    var title : String?
+    /// 时间戳
+    var timeStamp : String? {
+        didSet {
+            timeStamp = "\(Date.stringToDate(timeStamp ?? Date.dateToString(Date())).timeStamp())"
+        }
+    }
+    
     var type : String? {
         didSet {
             paramsModelType = WVJBParamsModelType(rawValue: type ?? "") ?? WVJBParamsModelType.none
@@ -133,6 +146,8 @@ class WVJBParamsModel:NSObject,Mappable {
         list <- map["list"]
         current <- map["current"]
         payload <- map["payload"]
+        title <- map["title"]
+        timeStamp <- map["timestamp"]
     }
 
 }
@@ -196,3 +211,20 @@ class WVJBRefreshModel: NSObject, Mappable{
     }
     
 }
+
+class WVJBDatepickerModel: NSObject, Mappable{
+    
+    var timestamp : Double?
+    
+    class func newInstance(map: Map) -> Mappable?{
+        return WVJBDatepickerModel()
+    }
+    required init?(map: Map){}
+    override init(){}
+    
+    func mapping(map: Map)
+    {
+        timestamp <- map["timestamp"]
+    }
+    
+}

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/H5Modules/H5Common/ViewController/H5CommonViewController.swift

@@ -55,7 +55,7 @@ class H5CommonViewController: BaseJSWebBaseViewController {
 
         WebViewJavascriptBridgeManager.shared.registerHandlerApp(bridge: bridge) {
            [weak self] (wvjbModel) in
-            WebViewJavascriptBridgeManager.shared.jump(wvjbModel: wvjbModel,viewController: self)
+            WebViewJavascriptBridgeManager.shared.jump(bridge: self?.bridge,wvjbModel: wvjbModel,viewController: self)
         }
         
         navigationBar.onClickLeftButton = {

+ 1 - 1
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceManger/SwiftSign/SwiftSign.swift

@@ -158,7 +158,7 @@ public class SwiftSign: NSObject {
         //获取当前时间
         let date = Date()
         //日期转字符串(格式化输出)
-        let dateStr = date.dateToString(date, dateFormat: "yyyy-MM-dd")
+        let dateStr = Date.dateToString(date, dateFormat: "yyyy-MM-dd")
         let SMS = "caihong" + dateStr + "xingqiu"
         return SMS
     }

+ 18 - 4
RainbowPlanet/RainbowPlanet/Tools/Extension/Extension+Date.swift

@@ -16,7 +16,7 @@ extension Date {
     ///   - date: 日期
     ///   - dateFormat: 日期格式
     /// - Returns: 时间字符串
-    func dateToString(_ date:Date, dateFormat:String = "yyyy-MM-dd HH:mm:ss") -> String {
+    static func dateToString(_ date:Date, dateFormat:String = "yyyy-MM-dd HH:mm:ss") -> String {
         let formatter = DateFormatter()
         formatter.locale = Locale.init(identifier: "zh_CN")
         formatter.dateFormat = dateFormat
@@ -24,12 +24,26 @@ extension Date {
         return dateStr
     }
     
+    /// 字符串 -> 日期
+    ///
+    /// - Parameters:
+    ///   - string: 时间字符串
+    ///   - dateFormat: 日期格式
+    /// - Returns: 日期
+    static func stringToDate(_ string:String, dateFormat:String = "yyyy-MM-dd HH:mm:ss") -> Date {
+        let formatter = DateFormatter()
+        formatter.locale = Locale.init(identifier: "zh_CN")
+        formatter.dateFormat = dateFormat
+        let date = formatter.date(from: string)
+        return date!
+    }
+    
     /// 当前时间的时间戳
     ///
     /// - Returns: 时间戳
-    func timeStamp() -> Int {
+    func timeStamp() -> Double {
         let timeInterval : TimeInterval = self.timeIntervalSince1970
-        let timeStamp = Int(timeInterval)
+        let timeStamp = timeInterval
         return timeStamp
     }
     
@@ -37,7 +51,7 @@ extension Date {
     ///
     /// - Parameter timeStamp: 时间戳
     /// - Returns: Date
-    static func date(timeStamp:Int) -> Date {
+    static func date(timeStamp:Double) -> Date {
         let timeInterval:TimeInterval = TimeInterval(timeStamp)
         let date = Date(timeIntervalSince1970: timeInterval)
         return date