Browse Source

设置 open

jsonwang 4 years ago
parent
commit
540e5b2691
24 changed files with 264 additions and 264 deletions
  1. 2 2
      BFFramework/Classes/BFModules/BFCategorys/BFInt+Ext.swift
  2. 10 10
      BFFramework/Classes/BFModules/BFCategorys/BFUIImage+Ext.swift
  3. 4 4
      BFFramework/Classes/BFModules/BFCustomViews/views/bubbleLayer/NXInteractiveView.swift
  4. 13 13
      BFFramework/Classes/BFModules/BFUtility/NXAudioRecorder.swift
  5. 20 20
      BFFramework/Classes/BFModules/BFUtility/PQAliOssUtil.swift
  6. 17 17
      BFFramework/Classes/Base/Controller/PQBaseViewController.swift
  7. 7 7
      BFFramework/Classes/Base/Controller/PQBaseWebViewController.swift
  8. 9 9
      BFFramework/Classes/Base/Controller/PQNavigatinController.swift
  9. 24 24
      BFFramework/Classes/Base/Controller/PQPhotoAlbumController.swift
  10. 6 6
      BFFramework/Classes/Base/Model/PQBaseModel.swift
  11. 13 13
      BFFramework/Classes/Base/View/PQAssetCategoryCell.swift
  12. 9 9
      BFFramework/Classes/Base/View/PQBaseVideoInfoView.swift
  13. 21 21
      BFFramework/Classes/Base/View/PQChoseMaterialCell.swift
  14. 8 8
      BFFramework/Classes/Base/View/PQFollowButton.swift
  15. 5 5
      BFFramework/Classes/Base/View/PQGIFImageView.swift
  16. 2 2
      BFFramework/Classes/Base/View/PQHeartAnimation.swift
  17. 14 14
      BFFramework/Classes/Base/View/PQSectionHeadView.swift
  18. 16 16
      BFFramework/Classes/Base/View/PQSelectedOprationView.swift
  19. 1 1
      BFFramework/Classes/Base/View/PQTabBar.swift
  20. 14 14
      BFFramework/Classes/Base/View/PQTextView.swift
  21. 29 29
      BFFramework/Classes/Base/ViewModel/PQBaseViewModel.swift
  22. 11 11
      BFFramework/Classes/Base/ViewModel/PQDownloadManager.swift
  23. 5 5
      BFFramework/Classes/Base/ViewModel/PQSessionManager.swift
  24. 4 4
      BFFramework/Classes/Base/ViewModel/PQUploadViewModel.swift

+ 2 - 2
BFFramework/Classes/BFModules/BFCategorys/BFInt+Ext.swift

@@ -14,7 +14,7 @@ extension Int {
     /// 是否保留2位小数
     /// - Parameter isDecimal: <#isDecimal description#>
     /// - Returns: <#description#>
-    func paraseDecimalFormatterValue(isDecimal: Bool = false) -> String? {
+   public func paraseDecimalFormatterValue(isDecimal: Bool = false) -> String? {
         let decimal = self % 100
         let nonDecimal = self / 100
         let formatter = NumberFormatter()
@@ -31,7 +31,7 @@ extension Int {
 
     /// 改变单位为万
     /// @param originUnit <#originUnit description#>
-    func changeUnit() -> String {
+    public func changeUnit() -> String {
         var unitStr: String = ""
         if self < 10000 {
             unitStr = "\(self)"

+ 10 - 10
BFFramework/Classes/BFModules/BFCategorys/BFUIImage+Ext.swift

@@ -10,12 +10,12 @@ import Foundation
 
 public extension UIImage {
     // 从BFframwork bundle 中取图片
-    func BF_Image(named: String) -> UIImage {
+    public func BF_Image(named: String) -> UIImage {
         let image: UIImage = UIImage(named: named, in: Bundle().BF_mainbundle(), compatibleWith: nil) ?? UIImage()
         return image
     }
 
-    func cropImage(ratio: CGFloat) -> UIImage {
+    public func cropImage(ratio: CGFloat) -> UIImage {
         // 计算最终尺寸
         let newSize: CGSize = CGSize(width: size.width, height: size.width * ratio)
         // 图片绘制区域
@@ -33,7 +33,7 @@ public extension UIImage {
         return scaledImage!
     }
 
-    func cropImage(newSize: CGSize) -> UIImage {
+    public func cropImage(newSize: CGSize) -> UIImage {
         //// 图片绘制区域
         var rect = CGRect.zero
         rect.size.width = newSize.width
@@ -47,7 +47,7 @@ public extension UIImage {
         return scaledImage!
     }
 
-    func imageWithImage(scaledToSize newSize: CGSize) -> UIImage {
+    public func imageWithImage(scaledToSize newSize: CGSize) -> UIImage {
         UIGraphicsBeginImageContextWithOptions(newSize, false, 0.0)
         draw(in: CGRect(origin: CGPoint.zero, size: newSize))
         let newImage = UIGraphicsGetImageFromCurrentImageContext() ?? self
@@ -58,7 +58,7 @@ public extension UIImage {
     /// 旋转角度
     /// - Parameter image: <#image description#>
     /// - Returns: <#description#>
-    func rotateImage(rotate: Int, originWidth: CGFloat, originHeight: CGFloat) -> UIImage {
+    public func rotateImage(rotate: Int, originWidth: CGFloat, originHeight: CGFloat) -> UIImage {
         let rotate: CGFloat = CGFloat(3 * Double.pi / 2)
         let rect = CGRect(x: 0, y: 0, width: originWidth, height: originHeight)
         let translateX: CGFloat = -rect.size.height
@@ -82,7 +82,7 @@ public extension UIImage {
     ///   - tintColor: <#tintColor description#>
     ///   - convert:是否倒置
     /// - Returns: <#description#>
-    class func triangleImage(size: CGSize, tintColor: UIColor, direction: moveDirection = .moveDirectionDown) -> UIImage {
+    class public func triangleImage(size: CGSize, tintColor: UIColor, direction: moveDirection = .moveDirectionDown) -> UIImage {
         var startPoint: CGPoint = CGPoint.zero
         var middlePoint: CGPoint = CGPoint.zero
         var endPoint: CGPoint = CGPoint.zero
@@ -120,7 +120,7 @@ public extension UIImage {
 
     /// 按照最短边缩放  add by ak
     /// - Parameter maxLength: 边长最大值
-    func nx_scaleWithMaxLength(maxLength: CGFloat) -> UIImage {
+    public func nx_scaleWithMaxLength(maxLength: CGFloat) -> UIImage {
         if size.width > maxLength || size.height > maxLength {
             var maxWidth: CGFloat = maxLength
             var maxHeight: CGFloat = maxLength
@@ -146,7 +146,7 @@ public extension UIImage {
 
     /// 缩放到指定大小 add by ak
     /// - Parameter size: 新的大小
-    func nx_scaleToSize(size: CGSize) -> UIImage {
+    public func nx_scaleToSize(size: CGSize) -> UIImage {
         var width: CGFloat = CGFloat(cgImage!.width)
         var height: CGFloat = CGFloat(cgImage!.height)
 
@@ -190,7 +190,7 @@ public extension UIImage {
     }
 
     // 将图片裁剪成指定比例(多余部分自动删除)let image3 = image.crop(ratio: 1) /将图片转成 1:1 比例(正方形)
-    func nxcrop(ratio: CGFloat) -> UIImage {
+    public func nxcrop(ratio: CGFloat) -> UIImage {
         // 计算最终尺寸
         var newSize: CGSize!
         if size.width / size.height > ratio {
@@ -220,7 +220,7 @@ public extension UIImage {
     ///   - color: <#color description#>
     ///   - blendMode: <#blendMode description#>
     /// - Returns: <#description#>
-    func tintImage(color: UIColor, blendMode: CGBlendMode) -> UIImage? {
+    public func tintImage(color: UIColor, blendMode: CGBlendMode) -> UIImage? {
         let rect = CGRect(origin: CGPoint.zero, size: size)
         UIGraphicsBeginImageContextWithOptions(size, false, scale)
         color.setFill()

+ 4 - 4
BFFramework/Classes/BFModules/BFCustomViews/views/bubbleLayer/NXInteractiveView.swift

@@ -8,12 +8,12 @@
 
 import UIKit
 public class NXInteractiveView: UIView {
-    private var tapGestureRecognizer: UITapGestureRecognizer?
-    private var longPressGestureRecognizer: UILongPressGestureRecognizer?
+    public var tapGestureRecognizer: UITapGestureRecognizer?
+    public var longPressGestureRecognizer: UILongPressGestureRecognizer?
     // 点击回调
-    var tapGestureHander: (() -> Void)?
+    public var tapGestureHander: (() -> Void)?
     // 长按回调
-    var longPressGestureHander: (() -> Void)?
+    public var longPressGestureHander: (() -> Void)?
 
     override public init(frame: CGRect) {
         super.init(frame: frame)

+ 13 - 13
BFFramework/Classes/BFModules/BFUtility/NXAudioRecorder.swift

@@ -11,9 +11,9 @@ import Foundation
 import UIKit
 
 // 录制时长
-typealias RecorderProgross = (_ time: Float64) -> Void
+public typealias  RecorderProgross = (_ time: Float64) -> Void
 
-class NXAudioRecorder {
+public class NXAudioRecorder {
     public let recorder: AVAudioRecorder
 
     public var finishClosure: ((_ isSuccess: Bool, _ url: String) -> Void)? {
@@ -21,13 +21,13 @@ class NXAudioRecorder {
     }
 
     /// 由于AVAudioRecorderDelegate继承NSObjectProtocol 所以引入这个类处理代理避免污染主类
-    private var delegateHandler = EditAudioRecorderDelegateHandler()
+    public  var delegateHandler = EditAudioRecorderDelegateHandler()
 
-    var recorderProgross: RecorderProgross?
-    var session: AVAudioSession!
-    var recordFilePath: String!
+    public  var recorderProgross: RecorderProgross?
+    public  var session: AVAudioSession!
+    public  var recordFilePath: String!
 
-    var displayLink: CADisplayLink?
+    public  var displayLink: CADisplayLink?
 
     /// 初始化录音器
     /// - Parameter path: 保存的文件全路径,注意文件后缀一定要是 caf
@@ -112,7 +112,7 @@ class NXAudioRecorder {
     }
 
     // 开始计时
-    func startTimer() {
+    public func startTimer() {
         if displayLink == nil {
             // 创建对象
             displayLink = CADisplayLink(target: self, selector: #selector(displayLinkClick(_:)))
@@ -128,7 +128,7 @@ class NXAudioRecorder {
     }
 
     // 停止计时
-    func stopTimer() {
+    public  func stopTimer() {
         if displayLink != nil {
             displayLink?.isPaused = true
             // 将定时器移除主循环
@@ -140,19 +140,19 @@ class NXAudioRecorder {
     }
 }
 
-private class EditAudioRecorderDelegateHandler: NSObject {
-    var finishClosure: ((_ flag: Bool, _ url: String) -> Void)?
+public class EditAudioRecorderDelegateHandler: NSObject {
+    public var finishClosure: ((_ flag: Bool, _ url: String) -> Void)?
 }
 
 extension EditAudioRecorderDelegateHandler: AVAudioRecorderDelegate {
-    func audioRecorderDidFinishRecording(_ recorder: AVAudioRecorder, successfully flag: Bool) {
+    public  func audioRecorderDidFinishRecording(_ recorder: AVAudioRecorder, successfully flag: Bool) {
         BFLog(message: "完成录音结果 is \(flag) url is \(recorder.url)")
         if flag {
             finishClosure?(true, recorder.url.relativePath)
         }
     }
 
-    func audioRecorderEncodeErrorDidOccur(_: AVAudioRecorder, error: Error?) {
+    public  func audioRecorderEncodeErrorDidOccur(_: AVAudioRecorder, error: Error?) {
         guard let error = error else { return }
         BFLog(message: error)
     }

+ 20 - 20
BFFramework/Classes/BFModules/BFUtility/PQAliOssUtil.swift

@@ -11,19 +11,19 @@ import UIKit
 // MARK: - 阿里OSS工具类
 
 /// 阿里OSS工具类
-class PQAliOssUtil: NSObject {
-    static let shared = PQAliOssUtil()
-    var client: OSSClient?
+public class PQAliOssUtil: NSObject {
+    static public let shared = PQAliOssUtil()
+    public var client: OSSClient?
     // 文件类型:materialType (1:PICTURE, 2:VIDEO, 3:VOICE, 4:FILE, 5:GIF)
-    var aliOssHander: ((_ isMatarialUpload: Bool, _ materialType: StickerType, _ fileExtensions: String, _ code: Int, _ objectKey: String?, _ contentMD5: String, _ width: CGFloat, _ height: CGFloat, _ duration: CGFloat, _ frameNumber: Int, _ netResourceUrl: String?, _ fileURL: URL?, _ data: Data?, _ msg: String?) -> Void)?
-    var aliOssProgressHander: ((_ bytesSent: Int64, _ totalBytesSent: Int64, _ totalBytesExpectedToSend: Int64, _ resttime: Int64, _ uploadSpeed: String?) -> Void)?
-    var lastInterfaceBytes: Int64 = 0 // 上次网速
-    var oldTime: Int = 0 // 上次进度时间S
-    var oloaded: Int64 = 0
-    var dics: [String: Any] = [:]
+    public  var aliOssHander: ((_ isMatarialUpload: Bool, _ materialType: StickerType, _ fileExtensions: String, _ code: Int, _ objectKey: String?, _ contentMD5: String, _ width: CGFloat, _ height: CGFloat, _ duration: CGFloat, _ frameNumber: Int, _ netResourceUrl: String?, _ fileURL: URL?, _ data: Data?, _ msg: String?) -> Void)?
+    public  var aliOssProgressHander: ((_ bytesSent: Int64, _ totalBytesSent: Int64, _ totalBytesExpectedToSend: Int64, _ resttime: Int64, _ uploadSpeed: String?) -> Void)?
+    public  var lastInterfaceBytes: Int64 = 0 // 上次网速
+    public var oldTime: Int = 0 // 上次进度时间S
+    public var oloaded: Int64 = 0
+    public var dics: [String: Any] = [:]
 
-    var allTasks: [String: OSSMultipartUploadRequest] = [:] // add by ak 保存当前所有任务 用于取消某个任务使用
-    func startClient(accessKeyId: String, secretKeyId: String, securityToken: String, endpoint: String) -> PQAliOssUtil {
+    public  var allTasks: [String: OSSMultipartUploadRequest] = [:] // add by ak 保存当前所有任务 用于取消某个任务使用
+    public  func startClient(accessKeyId: String, secretKeyId: String, securityToken: String, endpoint: String) -> PQAliOssUtil {
         if endpoint.count == 0 {
             BFLog(message: "endpoint is nil xxxxxx \(endpoint)")
         }
@@ -43,7 +43,7 @@ class PQAliOssUtil: NSObject {
     ///   - objectKey: <#objectKey description#>
     ///   - data: <#data description#>
     /// - Returns: <#description#>
-    func uploadObjectAsync(bucketName: String, objectKey: String, data: Data, materialType: StickerType = .IMAGE, fileExtensions: String, isMatarialUpload: Bool = false, contentMD5: String = "", width: CGFloat = 0, height: CGFloat = 0, imageUploadBlock: @escaping (_ osstask: OSSTask<AnyObject>?, _ code: Int, _ objectKey: String, _ fileExtensions: String) -> Void) -> PQAliOssUtil {
+    public  func uploadObjectAsync(bucketName: String, objectKey: String, data: Data, materialType: StickerType = .IMAGE, fileExtensions: String, isMatarialUpload: Bool = false, contentMD5: String = "", width: CGFloat = 0, height: CGFloat = 0, imageUploadBlock: @escaping (_ osstask: OSSTask<AnyObject>?, _ code: Int, _ objectKey: String, _ fileExtensions: String) -> Void) -> PQAliOssUtil {
         let putRequest: OSSPutObjectRequest = OSSPutObjectRequest()
         putRequest.bucketName = bucketName
         putRequest.objectKey = objectKey
@@ -87,7 +87,7 @@ class PQAliOssUtil: NSObject {
     ///   - localPath: <#localPath description#>
     ///   - response: <#response description#>
     /// - Returns: <#description#>
-    class func multipartUpload(localPath: String, response: [String: Any]?) {
+    class public  func multipartUpload(localPath: String, response: [String: Any]?) {
         let accessKeyId: String = "\(response?["AccessKeyId"] ?? "")"
         let secretKeyId: String = "\(response?["AccessKeySecret"] ?? "")"
         let securityToken: String = "\(response?["SecurityToken"] ?? "")"
@@ -108,7 +108,7 @@ class PQAliOssUtil: NSObject {
     ///   - response: <#response description#>
     ///   - localPath: <#localPath description#>
     /// - Returns: <#description#>
-    func reloadTask(response: [String: Any]?, localPath: String?) {
+    public  func reloadTask(response: [String: Any]?, localPath: String?) {
         if response == nil {
             return
         }
@@ -145,7 +145,7 @@ class PQAliOssUtil: NSObject {
     ///   - width: 视频宽 isMatarialUpload = true时传
     ///   - height: 视频高 isMatarialUpload = true时传
     /// - Returns: <#description#>
-    func PQOSSMultipartUpload(accessKeyId: String, secretKeyId: String, securityToken: String, bucketName: String, endpoints: [String], FileName: String, fileURL: URL, ossUploadID: String, materialType: StickerType = .VIDEO, isMatarialUpload: Bool = false, contentMD5: String = "", width: CGFloat = 0, height: CGFloat = 0) -> PQAliOssUtil {
+    public  func PQOSSMultipartUpload(accessKeyId: String, secretKeyId: String, securityToken: String, bucketName: String, endpoints: [String], FileName: String, fileURL: URL, ossUploadID: String, materialType: StickerType = .VIDEO, isMatarialUpload: Bool = false, contentMD5: String = "", width: CGFloat = 0, height: CGFloat = 0) -> PQAliOssUtil {
         BFLog(message: "上传数据 参数\n accessKeyId:\(accessKeyId)\n secretKeyId:\(secretKeyId)\n  securityToken:\(securityToken) \n bucketName:\(bucketName)\n endpoint:\(endpoints)\n FileName:\(FileName)")
         if endpoints.count <= 0 || (endpoints.first?.count ?? 0) <= 0 {
             BFLog(message: "endpoints 为空")
@@ -325,7 +325,7 @@ class PQAliOssUtil: NSObject {
     ///   - frameNumber: gif素材帧数 isMatarialUpload = true时传
     ///   - netResourceUrl: 网络素材地址 isMatarialUpload = true时传
     /// - Returns: <#description#>
-    func putObjectAsync(accessKeyId: String, secretKeyId: String, securityToken: String, bucketName: String, endpoint: [String], objectKey: String, fileURL: URL?, data: Data?, fileExtensions: String, enableBackground: Bool, materialType: StickerType = .VIDEO, isMatarialUpload: Bool = false, contentMD5: String = "", width: CGFloat = 0, height: CGFloat = 0, duration: CGFloat, frameNumber: Int, netResourceUrl: String? = nil) -> PQAliOssUtil {
+    public  func putObjectAsync(accessKeyId: String, secretKeyId: String, securityToken: String, bucketName: String, endpoint: [String], objectKey: String, fileURL: URL?, data: Data?, fileExtensions: String, enableBackground: Bool, materialType: StickerType = .VIDEO, isMatarialUpload: Bool = false, contentMD5: String = "", width: CGFloat = 0, height: CGFloat = 0, duration: CGFloat, frameNumber: Int, netResourceUrl: String? = nil) -> PQAliOssUtil {
         #if DEBUG
             OSSLog.enable()
         #endif
@@ -479,7 +479,7 @@ class PQAliOssUtil: NSObject {
 
     /// 取消某个任务
     /// - Parameter objectKey: 任务唯一标识
-    func putObjectCancel(objectKey: String) {
+    public  func putObjectCancel(objectKey: String) {
         for key in allTasks.keys {
             if key == objectKey {
                 allTasks[key]!.cancel()
@@ -495,7 +495,7 @@ class PQAliOssUtil: NSObject {
     ///   - totalBytesExpectedToSend: <#totalBytesExpectedToSend description#>
     ///   - complateHandle: <#complateHandle description#>
     /// - Returns: <#description#>
-    func paraseSpeedAndRestTime(bytesSent _: Int64, totalBytesSent: Int64, totalBytesExpectedToSend: Int64, complateHandle: (_ uploadSpeed: String, _ resttime: Int64) -> Void) {
+    public  func paraseSpeedAndRestTime(bytesSent _: Int64, totalBytesSent: Int64, totalBytesExpectedToSend: Int64, complateHandle: (_ uploadSpeed: String, _ resttime: Int64) -> Void) {
         let newInterfaceBytes = PQBridgeObject.getInterfaceBytes()
         var interfaceBytes = abs(newInterfaceBytes - lastInterfaceBytes)
         if interfaceBytes <= 0 {
@@ -511,11 +511,11 @@ class PQAliOssUtil: NSObject {
         super.init()
     }
 
-    override func copy() -> Any {
+    public override func copy() -> Any {
         return self
     }
 
-    override func mutableCopy() -> Any {
+    public override func mutableCopy() -> Any {
         return self
     }
 }

+ 17 - 17
BFFramework/Classes/Base/Controller/PQBaseViewController.swift

@@ -9,7 +9,7 @@
 // import MediaPlayer
 import Alamofire
 import UIKit
-public class PQBaseViewController: UIViewController, UIGestureRecognizerDelegate {
+open class PQBaseViewController: UIViewController, UIGestureRecognizerDelegate {
     // 侧滑拦截返回
     public var popGestureHandle: (() -> Void)?
     public var naviTitle: String? // 标题
@@ -44,7 +44,7 @@ public class PQBaseViewController: UIViewController, UIGestureRecognizerDelegate
         return manager
     }()
 
-    override public func viewDidLoad() {
+    override open func viewDidLoad() {
         super.viewDidLoad()
         navigationController?.isNavigationBarHidden = true
         view.backgroundColor = PQBFConfig.shared.styleBackGroundColor
@@ -68,7 +68,7 @@ public class PQBaseViewController: UIViewController, UIGestureRecognizerDelegate
         lineView?.isHidden = true
     }
 
-    func showNavigation() {
+    public func showNavigation() {
         if navHeadImageView != nil {
             navHeadImageView?.isHidden = false
             lineView?.isHidden = false
@@ -76,11 +76,11 @@ public class PQBaseViewController: UIViewController, UIGestureRecognizerDelegate
         }
     }
 
-    public func leftBackButton() {
+    open func leftBackButton() {
         leftButton(image: "icon_detail_back")
     }
 
-    func leftButton(image: String?, tintColor: UIColor? = nil) {
+    public func leftButton(image: String?, tintColor: UIColor? = nil) {
         let leftButton = UIButton(type: .custom)
         leftButton.frame = CGRect(x: 0, y: cDevice_iPhoneStatusBarHei, width: cDefaultMargin * 4, height: cDefaultMargin * 4)
         leftButton.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: -5, right: 0)
@@ -95,7 +95,7 @@ public class PQBaseViewController: UIViewController, UIGestureRecognizerDelegate
         backButton = leftButton
     }
 
-    func rightButtonItem(image: String?, title: String?) {
+    public func rightButtonItem(image: String?, title: String?) {
         let rightButtonItem = UIButton(type: .custom)
         var rightW: CGFloat = cDefaultMargin
         if title != nil, title?.count ?? 0 > 0 {
@@ -117,7 +117,7 @@ public class PQBaseViewController: UIViewController, UIGestureRecognizerDelegate
         rightButton = rightButtonItem
     }
 
-    func setTitle(title: String?, color: UIColor = UIColor.white) {
+    public func setTitle(title: String?, color: UIColor = UIColor.white) {
         naviTitle = title
         if navTitleLabel == nil {
             let titleLabel = UILabel(frame: CGRect(x: cDefaultMargin * 5, y: cDevice_iPhoneStatusBarHei, width: cScreenWidth - 100, height: cDefaultMargin * 4))
@@ -129,9 +129,9 @@ public class PQBaseViewController: UIViewController, UIGestureRecognizerDelegate
         navTitleLabel?.text = title
     }
 
-    @objc func rightBtnClick(sender _: UIButton) {}
+    @objc open func rightBtnClick(sender _: UIButton) {}
 
-    @objc func backBtnClick() {
+    @objc open func backBtnClick() {
         if isPresent {
             dismiss(animated: true, completion: nil)
         } else {
@@ -139,16 +139,16 @@ public class PQBaseViewController: UIViewController, UIGestureRecognizerDelegate
         }
     }
 
-    override public func viewDidAppear(_ animated: Bool) {
+    override open func viewDidAppear(_ animated: Bool) {
         super.viewDidAppear(animated)
     }
 
-    override public func viewWillDisappear(_ animated: Bool) {
+    override open func viewWillDisappear(_ animated: Bool) {
         super.viewWillDisappear(animated)
         PQLoadingHUB.shared.dismissHUB()
     }
 
-    override public func viewDidDisappear(_ animated: Bool) {
+    override open func viewDidDisappear(_ animated: Bool) {
         super.viewDidDisappear(animated)
 
         if view.viewWithTag(cGuideTag) != nil {
@@ -161,7 +161,7 @@ public class PQBaseViewController: UIViewController, UIGestureRecognizerDelegate
         BFLog(message: "\(String(describing: type(of: self)))被销毁")
     }
 
-    override public var preferredStatusBarStyle: UIStatusBarStyle {
+    override open var preferredStatusBarStyle: UIStatusBarStyle {
         if PQBFConfig.shared.statusBarStyle == .dark {
             if #available(iOS 13.0, *) {
                 return .darkContent
@@ -173,13 +173,13 @@ public class PQBaseViewController: UIViewController, UIGestureRecognizerDelegate
         }
     }
 
-    override public var prefersStatusBarHidden: Bool {
+    override open var prefersStatusBarHidden: Bool {
         return isHiddenStatus
     }
 
     /// 禁止滑动返回
     /// - Returns: <#description#>
-    func disablePopGesture() -> PQBaseViewController {
+    public func disablePopGesture() -> PQBaseViewController {
         let traget = navigationController?.interactivePopGestureRecognizer?.delegate
         let pan = UIPanGestureRecognizer(target: traget, action: #selector(popGesture(panGes:)))
         view.addGestureRecognizer(pan)
@@ -188,13 +188,13 @@ public class PQBaseViewController: UIViewController, UIGestureRecognizerDelegate
 
     /// 拦截侧滑手势
     /// - Returns: <#description#>
-    @objc private func popGesture(panGes: UIPanGestureRecognizer) {
+    @objc private  func popGesture(panGes: UIPanGestureRecognizer) {
         if panGes.state == .ended, popGestureHandle != nil {
             popGestureHandle!()
         }
     }
 
-    public func gestureRecognizer(_: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
+    open func gestureRecognizer(_: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
         if touch.view is UISlider {
             return false
         }

+ 7 - 7
BFFramework/Classes/Base/Controller/PQBaseWebViewController.swift

@@ -10,15 +10,15 @@
 import UIKit
 import WebKit
 
-public class PQBaseWebViewController: PQBaseViewController {
-    var emptyData: PQEmptyModel? = {
+open class PQBaseWebViewController: PQBaseViewController {
+   public var emptyData: PQEmptyModel? = {
         let emptyData = PQEmptyModel()
         emptyData.title = "网页加载失败,请重试~"
         emptyData.emptyImage = "pic_network"
         return emptyData
     }()
 
-    lazy var webView: WKWebView = {
+    lazy public var webView: WKWebView = {
         let config: WKWebViewConfiguration = WKWebViewConfiguration()
         config.allowsInlineMediaPlayback = true
         let webView: WKWebView = WKWebView(frame: CGRect(x: 0, y: cDevice_iPhoneNavBarAndStatusBarHei, width: cScreenWidth, height: cScreenHeigth - cDevice_iPhoneNavBarAndStatusBarHei), configuration: config)
@@ -32,7 +32,7 @@ public class PQBaseWebViewController: PQBaseViewController {
         return webView
     }()
 
-    lazy var progresslayer: CALayer = {
+    lazy public var progresslayer: CALayer = {
         let progresslayer = CALayer()
         progresslayer.frame = CGRect(x: 0, y: cDevice_iPhoneNavBarAndStatusBarHei, width: cScreenWidth * 0.1, height: 2)
         progresslayer.backgroundColor = UIColor.hexColor(hexadecimal: "#FF9500").cgColor
@@ -51,7 +51,7 @@ public class PQBaseWebViewController: PQBaseViewController {
         }
     }
 
-    @objc var baseTitle: String?
+    @objc public var baseTitle: String?
     public var evaluateJavaScript: String? // 交互
     var isAddObserve: Bool = false
     override open func viewDidLoad() {
@@ -84,13 +84,13 @@ public class PQBaseWebViewController: PQBaseViewController {
 }
 
 extension PQBaseWebViewController: WKNavigationDelegate {
-    func refreshClick() {
+   public func refreshClick() {
         if baseUrl != nil, baseUrl?.count ?? 0 > 0 {
             webView.load(URLRequest(url: NSURL(string: baseUrl ?? "")! as URL, cachePolicy: .useProtocolCachePolicy))
         }
     }
 
-    @objc func back() {
+    @objc public func back() {
         if webView.canGoBack {
             webView.goBack()
         } else if navigationController != nil {

+ 9 - 9
BFFramework/Classes/Base/Controller/PQNavigatinController.swift

@@ -8,39 +8,39 @@
 
 import UIKit
 
-class PQNavigatinController: UINavigationController, UIGestureRecognizerDelegate {
-    var isPop: Bool = false
+open class PQNavigatinController: UINavigationController, UIGestureRecognizerDelegate {
+    public var isPop: Bool = false
 
-    override func viewDidLoad() {
+   open  override func viewDidLoad() {
         super.viewDidLoad()
 
         // Do any additional setup after loading the view.
     }
 
-    override func pushViewController(_ viewController: UIViewController, animated _: Bool) {
+   open override func pushViewController(_ viewController: UIViewController, animated _: Bool) {
         if viewControllers.count > 0 {
             viewController.hidesBottomBarWhenPushed = true
         }
         super.pushViewController(viewController, animated: true)
     }
 
-    func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
+   public func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
         return topViewController!.supportedInterfaceOrientations
     }
 
-    func preferredInterfaceOrientationForPresentation() -> UIInterfaceOrientation {
+   public func preferredInterfaceOrientationForPresentation() -> UIInterfaceOrientation {
         return topViewController!.preferredInterfaceOrientationForPresentation
     }
 
-    override var childForStatusBarStyle: UIViewController? {
+   open override var childForStatusBarStyle: UIViewController? {
         return topViewController
     }
 
-    override var childForStatusBarHidden: UIViewController? {
+   open override var childForStatusBarHidden: UIViewController? {
         return topViewController
     }
 
-    func gestureRecognizerShouldBegin(_: UIGestureRecognizer) -> Bool {
+   public func gestureRecognizerShouldBegin(_: UIGestureRecognizer) -> Bool {
         return viewControllers.count > 1
     }
 }

+ 24 - 24
BFFramework/Classes/Base/Controller/PQPhotoAlbumController.swift

@@ -9,19 +9,19 @@
 import Photos
 import UIKit
 /// 相册集
-class PQPhotoAlbumController: PQBaseViewController {
-    var selectedHandle: ((_ selectedData: PQUploadModel?) -> Void)? // 选中/取消选中的回调
-    var isTopShow: Bool = false // 是否显示在顶部
+open class PQPhotoAlbumController: PQBaseViewController {
+    public  var selectedHandle: ((_ selectedData: PQUploadModel?) -> Void)? // 选中/取消选中的回调
+    public var isTopShow: Bool = false // 是否显示在顶部
 
-    var categoryH: CGFloat = cDefaultMargin * 26  // 相簿高度
-    var albaumsData: [PQUploadModel] = Array<PQUploadModel>.init()
-    let itemSize = CGSize(width: ((cScreenWidth - cDefaultMargin) / 3) * UIScreen.main.scale, height: ((cScreenWidth - cDefaultMargin) / 3) * UIScreen.main.scale)
+    public var categoryH: CGFloat = cDefaultMargin * 26  // 相簿高度
+    public var albaumsData: [PQUploadModel] = Array<PQUploadModel>.init()
+    public let itemSize = CGSize(width: ((cScreenWidth - cDefaultMargin) / 3) * UIScreen.main.scale, height: ((cScreenWidth - cDefaultMargin) / 3) * UIScreen.main.scale)
     var catagerySelectedIndex: IndexPath = IndexPath(item: 0, section: 0) // 更多图库选择
-    lazy var imageManager: PHCachingImageManager = {
+    lazy  public var imageManager: PHCachingImageManager = {
         PHCachingImageManager()
     }()
 
-    lazy var albaumCollectionView: UICollectionView = {
+    lazy public  var albaumCollectionView: UICollectionView = {
         let layout = UICollectionViewFlowLayout()
         layout.sectionInset = UIEdgeInsets.zero
         layout.itemSize = CGSize(width: view.frame.width, height: cDefaultMargin * 8 )
@@ -41,7 +41,7 @@ class PQPhotoAlbumController: PQBaseViewController {
         return albaumCollectionView
     }()
 
-    lazy var emptyRemindView: PQEmptyRemindView = {
+    lazy  public var emptyRemindView: PQEmptyRemindView = {
         let emptyRemindView = PQEmptyRemindView(frame: albaumCollectionView.bounds)
         emptyRemindView.isHidden = true
         albaumCollectionView.addSubview(emptyRemindView)
@@ -66,14 +66,14 @@ class PQPhotoAlbumController: PQBaseViewController {
         return emptyRemindView
     }()
 
-    lazy var albaumView: UIView = {
+    lazy  public var albaumView: UIView = {
         let albaumView = UIView(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height))
         let ges = UITapGestureRecognizer(target: self, action: #selector(gesTagClick))
         albaumView.addGestureRecognizer(ges)
         return albaumView
     }()
 
-    override func viewDidLoad() {
+    open override func viewDidLoad() {
         super.viewDidLoad()
         
         // Do any additional setup after loading the view.
@@ -82,12 +82,12 @@ class PQPhotoAlbumController: PQBaseViewController {
         loadPhotoData()
     }
 
-    override func viewWillAppear(_ animated: Bool) {
+    open override func viewWillAppear(_ animated: Bool) {
         super.viewWillAppear(animated)
         PHPhotoLibrary.shared().register(self)
     }
 
-    override func viewWillDisappear(_ animated: Bool) {
+    open override func viewWillDisappear(_ animated: Bool) {
         super.viewWillDisappear(animated)
         PHPhotoLibrary.shared().unregisterChangeObserver(self)
     }
@@ -97,7 +97,7 @@ extension PQPhotoAlbumController {
     /// 修改view frame
     /// - Parameter frame: <#frame description#>
     /// - Returns: <#description#>
-    func updateViewFrame(frame: CGRect) {
+    public func updateViewFrame(frame: CGRect) {
         view.frame = frame
         view.isHidden = true
         view.addSubview(albaumView)
@@ -136,7 +136,7 @@ extension PQPhotoAlbumController {
     }
 
     // 转化处理获取到的相簿
-    func convertCollection(collection: PHAssetCollection?) {
+   public func convertCollection(collection: PHAssetCollection?) {
         if collection == nil {
             return
         }
@@ -168,7 +168,7 @@ extension PQPhotoAlbumController {
     /// 更新数据源
     /// - Parameter indexPath: <#indexPath description#>
     /// - Returns: <#description#>
-    func updateItems(indexPath _: IndexPath) {
+    public  func updateItems(indexPath _: IndexPath) {
         DispatchQueue.main.async { [weak self] in
             self?.albaumCollectionView.reloadData()
 //            UIView.performWithoutAnimation {[weak self] in
@@ -183,7 +183,7 @@ extension PQPhotoAlbumController {
 
     /// 点击隐藏view
     /// - Returns: <#description#>
-    @objc func gesTagClick() {
+    @objc  public  func gesTagClick() {
         if selectedHandle != nil {
             selectedHandle!(nil)
         }
@@ -191,7 +191,7 @@ extension PQPhotoAlbumController {
         dismissCategoryView()
     }
 
-    @objc func dismissCategoryView() {
+    @objc  public func dismissCategoryView() {
         if isTopShow {
             UIView.animate(withDuration: 0.3, animations: {
                 self.albaumCollectionView.frame = CGRect(x: 0, y: 0, width: cScreenWidth, height: 0)
@@ -207,7 +207,7 @@ extension PQPhotoAlbumController {
         }
     }
 
-    @objc func showCategoryView() {
+    @objc  public func showCategoryView() {
         if isTopShow {
             view.isHidden = false
             albaumView.isHidden = false
@@ -227,11 +227,11 @@ extension PQPhotoAlbumController {
 }
 
 extension PQPhotoAlbumController: UICollectionViewDelegate, UICollectionViewDataSource, UIScrollViewDelegate {
-    func collectionView(_: UICollectionView, numberOfItemsInSection _: Int) -> Int {
+    public func collectionView(_: UICollectionView, numberOfItemsInSection _: Int) -> Int {
         return albaumsData.count
     }
 
-    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
+    public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
         let cell = PQAssetCategoryCell.assetCategoryCell(collectionView: collectionView, indexPath: indexPath)
         let itemData = albaumsData[indexPath.item]
         let asset = itemData.categoryList.object(at: 0)
@@ -250,7 +250,7 @@ extension PQPhotoAlbumController: UICollectionViewDelegate, UICollectionViewData
         return cell
     }
 
-    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+    public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
         if selectedHandle != nil {
             selectedHandle!(albaumsData[indexPath.item])
         }
@@ -259,7 +259,7 @@ extension PQPhotoAlbumController: UICollectionViewDelegate, UICollectionViewData
         dismissCategoryView()
     }
 
-    func scrollViewDidScroll(_ scrollView: UIScrollView) {
+    public func scrollViewDidScroll(_ scrollView: UIScrollView) {
         if (!isTopShow && (scrollView.contentOffset.y < -cDefaultMargin * 7)) || (isTopShow && scrollView.contentOffset.y > ((scrollView.contentSize.height - scrollView.frame.height) + cDefaultMargin * 10)) {
             if selectedHandle != nil {
                 selectedHandle!(nil)
@@ -270,7 +270,7 @@ extension PQPhotoAlbumController: UICollectionViewDelegate, UICollectionViewData
 }
 
 extension PQPhotoAlbumController: PHPhotoLibraryChangeObserver {
-    func photoLibraryDidChange(_: PHChange) {
+    public func photoLibraryDidChange(_: PHChange) {
         DispatchQueue.main.sync {
             // Check each of the three top-level fetches for changes.
             albaumsData.removeAll()

+ 6 - 6
BFFramework/Classes/Base/Model/PQBaseModel.swift

@@ -9,7 +9,7 @@
 import RealmSwift
 import UIKit
 
-public class PQBaseModel: Object {
+open class PQBaseModel: Object {
     @objc dynamic public var uniqueId: String? // 唯一ID
     @objc dynamic public var videoId: Int = 0 // 视频ID
     @objc dynamic public var eventId: String? // 事件ID
@@ -31,12 +31,12 @@ public class PQBaseModel: Object {
         return "uniqueId"
     }
 
-    override required public init() {
+    public override required  init() {
         super.init()
         uniqueId = getUniqueId(desc: "uniqueId")
     }
 
-    override class public func ignoredProperties() -> [String] {
+    override class open func ignoredProperties() -> [String] {
         return ["attributedTitle"]
     }
 
@@ -68,7 +68,7 @@ public class PQBaseModel: Object {
         return dictionaryToJsonString(json) ?? ""
     }
 
-    init(jsonDict: [String: Any]) {
+    public init(jsonDict: [String: Any]) {
         super.init()
         if jsonDict.keys.contains("id") {
             uniqueId = "\(jsonDict["id"] ?? "")"
@@ -115,7 +115,7 @@ public class PQBaseModel: Object {
 
 /// 当前应用本地存储的model
 public  class PQLocalStoreModel: PQBaseModel {
-    @objc dynamic var currentDate: String?
+    @objc dynamic public var currentDate: String?
     @objc required init() {
         super.init()
         currentDate = systemCurrentDate()
@@ -135,7 +135,7 @@ public class PQOssUploadModel: NSObject {
     public var fileName: String?
     public var uploadID: String?
     public var expiration: String? // 过期时间
-    init(jsonDict: [String: Any]) {
+    public init(jsonDict: [String: Any]) {
         super.init()
 
         if jsonDict.keys.contains("AccessKeyId") {

+ 13 - 13
BFFramework/Classes/Base/View/PQAssetCategoryCell.swift

@@ -8,30 +8,30 @@
 
 import UIKit
 
-class PQAssetCategoryCell: UICollectionViewCell {
-    var representedAssetIdentifier: String!
-    lazy var videoImageView: UIImageView = {
+public class PQAssetCategoryCell: UICollectionViewCell {
+    public var representedAssetIdentifier: String!
+    lazy public var videoImageView: UIImageView = {
         let videoImageView = UIImageView()
         videoImageView.addCorner(corner: 4)
         videoImageView.contentMode = .scaleAspectFill
         return videoImageView
     }()
 
-    lazy var categoryNameLab: UILabel = {
+    lazy public var categoryNameLab: UILabel = {
         let categoryNameLab = UILabel()
         categoryNameLab.font = UIFont.systemFont(ofSize: 14)
         categoryNameLab.textColor = PQBFConfig.shared.styleTitleColor
         return categoryNameLab
     }()
 
-    lazy var countLab: UILabel = {
+    lazy public var countLab: UILabel = {
         let countLab = UILabel()
         countLab.font = UIFont.systemFont(ofSize: 14)
         countLab.textColor = PQBFConfig.shared.styleTitleColor
         return countLab
     }()
 
-    lazy var seleImage: UIImageView = {
+    lazy public var seleImage: UIImageView = {
         let seleImage = UIImageView()
         seleImage.tintColor = PQBFConfig.shared.styleTitleColor
         seleImage.image = UIImage.init().BF_Image(named:  "icon_uploadVideo_do").withRenderingMode(.alwaysTemplate)
@@ -39,12 +39,12 @@ class PQAssetCategoryCell: UICollectionViewCell {
         return seleImage
     }()
 
-    @objc class func assetCategoryCell(collectionView: UICollectionView, indexPath: IndexPath) -> PQAssetCategoryCell {
+    @objc class public func assetCategoryCell(collectionView: UICollectionView, indexPath: IndexPath) -> PQAssetCategoryCell {
         let cell: PQAssetCategoryCell = collectionView.dequeueReusableCell(withReuseIdentifier: "PQAssetCategoryCell", for: indexPath) as! PQAssetCategoryCell
         return cell
     }
 
-    override init(frame: CGRect) {
+    override public init(frame: CGRect) {
         super.init(frame: frame)
         contentView.addSubview(videoImageView)
         contentView.addSubview(categoryNameLab)
@@ -52,30 +52,30 @@ class PQAssetCategoryCell: UICollectionViewCell {
         contentView.addSubview(seleImage)
     }
 
-    override var isSelected: Bool {
+    override public var isSelected: Bool {
         didSet {
             seleImage.isHidden = !isSelected
         }
     }
 
-    required init?(coder _: NSCoder) {
+    required public init?(coder _: NSCoder) {
         fatalError("init(coder:) has not been implemented")
     }
 
-    var uploadData: PQUploadModel? {
+    public var uploadData: PQUploadModel? {
         didSet {
             addData()
             addLayout()
         }
     }
 
-    func addData() {
+    public func addData() {
         videoImageView.image = uploadData?.image
         categoryNameLab.text = "\(uploadData?.title ?? "")"
         countLab.text = "(\(uploadData?.categoryList.count ?? 0))"
     }
 
-    func addLayout() {
+    public func addLayout() {
         let margin: CGFloat = 12
         let imageW: CGFloat = 66
         let countW: CGFloat = sizeWithText(text: countLab.text ?? "", font: UIFont.systemFont(ofSize: 14), size: CGSize(width: cScreenWidth - imageW - margin * 6, height: cDefaultMargin * 2)).width + cDefaultMargin

+ 9 - 9
BFFramework/Classes/Base/View/PQBaseVideoInfoView.swift

@@ -8,20 +8,20 @@
 
 import UIKit
 
-class PQBaseVideoInfoView: UIView {
-    lazy var imageView: UIImageView = {
+open class PQBaseVideoInfoView: UIView {
+    lazy public var imageView: UIImageView = {
         let imageView = UIImageView(image: UIImage.init().BF_Image(named:  "msg_default"))
         imageView.addCorner(corner: 4)
         imageView.contentMode = .scaleAspectFill
         return imageView
     }()
 
-    lazy var videoTagView: UIImageView = {
+    lazy public var videoTagView: UIImageView = {
         let videoTagView = UIImageView(image: UIImage.init().BF_Image(named:  "msg_video_tag"))
         return videoTagView
     }()
 
-    lazy var titleLab: UILabel = {
+    lazy public var titleLab: UILabel = {
         let titleLab = UILabel()
         titleLab.textColor = UIColor.hexColor(hexadecimal: "#CCCCCC")
         titleLab.numberOfLines = 3
@@ -29,7 +29,7 @@ class PQBaseVideoInfoView: UIView {
         return titleLab
     }()
 
-    override init(frame: CGRect) {
+    override public init(frame: CGRect) {
         super.init(frame: frame)
         addSubview(imageView)
         addSubview(titleLab)
@@ -37,25 +37,25 @@ class PQBaseVideoInfoView: UIView {
         backgroundColor = UIColor.hexColor(hexadecimal: "#171718")
     }
 
-    required init?(coder _: NSCoder) {
+    required public init?(coder _: NSCoder) {
         fatalError("init(coder:) has not been implemented")
     }
 
-    var videoData: PQVideoListModel? {
+   open var videoData: PQVideoListModel? {
         didSet {
             addData()
             addLayout()
         }
     }
 
-    func addData() {
+   open func addData() {
         // 这里会crash
         let coverImg = (videoData?.videoCoverSnapshotPath != nil && (videoData?.videoCoverSnapshotPath?.count ?? 0) > 0) ? videoData?.videoCoverSnapshotPath ?? "" : (videoData?.coverImg?["coverImgPath"] as? String ?? "")
         imageView.setNetImage(url: coverImg, placeholder: UIImage.init().BF_Image(named: "msg_default"))
         titleLab.text = videoData?.title
     }
 
-    func addLayout() {
+    open func addLayout() {
         let margin: CGFloat = 12
         let imageH: CGFloat = 57
         let imageW: CGFloat = imageH * (100.0 / 57.0)

+ 21 - 21
BFFramework/Classes/Base/View/PQChoseMaterialCell.swift

@@ -10,15 +10,15 @@ import Kingfisher
 import UIKit
 import Photos
 
-class PQChoseMaterialCell: UICollectionViewCell {
+public class PQChoseMaterialCell: UICollectionViewCell {
     // 是否显示素材标识
-    var isShowMediaTag: Bool = true
+    public var isShowMediaTag: Bool = true
     // 是否是已经添加过的
-    var isAdded: Bool = false
-    var representedAssetIdentifier: String!
-    var materialClicHandle: ((_ sender: UIButton, _ materialData: PQEditVisionTrackMaterialsModel?) -> Void)?
+    public var isAdded: Bool = false
+    public var representedAssetIdentifier: String!
+    public var materialClicHandle: ((_ sender: UIButton, _ materialData: PQEditVisionTrackMaterialsModel?) -> Void)?
 
-    lazy var materialImageView: AnimatedImageView = {
+    lazy public var materialImageView: AnimatedImageView = {
         let materialImageView = AnimatedImageView()
         materialImageView.contentMode = .scaleAspectFill
         materialImageView.isUserInteractionEnabled = true
@@ -26,14 +26,14 @@ class PQChoseMaterialCell: UICollectionViewCell {
         return materialImageView
     }()
 
-    lazy var borderView: UIView = {
+    lazy public var borderView: UIView = {
         let borderView = UIView()
         borderView.layer.borderColor = UIColor.hexColor(hexadecimal: "#333333").cgColor
         borderView.layer.borderWidth = 1.5
         return borderView
     }()
 
-    lazy var statusLab: UILabel = {
+    lazy public var statusLab: UILabel = {
         let statusLab = UILabel()
         statusLab.textColor = UIColor.white
         statusLab.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.7)
@@ -43,19 +43,19 @@ class PQChoseMaterialCell: UICollectionViewCell {
         return statusLab
     }()
 
-    lazy var videoStatuImageView: UIImageView = {
+    lazy public var videoStatuImageView: UIImageView = {
         let videoStatuImageView = UIImageView(image: UIImage.init().BF_Image(named:  "allPreview"))
         return videoStatuImageView
     }()
 
-    lazy var videoLoadingView: AnimatedImageView = {
+    lazy public var videoLoadingView: AnimatedImageView = {
         let videoLoadingView = AnimatedImageView()
         videoLoadingView.kf.setImage(with: URL(fileURLWithPath:  Bundle.init().BF_mainbundle().path(forResource: "material_loading", ofType: ".gif")!))
         videoLoadingView.stopAnimating()
         return videoLoadingView
     }()
 
-    lazy var choseContentView: UIView = {
+    lazy public var choseContentView: UIView = {
         let choseContentView = UIView()
         let ges = UITapGestureRecognizer(target: self, action: #selector(choseTap(ges:)))
         choseContentView.addGestureRecognizer(ges)
@@ -63,7 +63,7 @@ class PQChoseMaterialCell: UICollectionViewCell {
         return choseContentView
     }()
 
-    lazy var choseBtn: UIButton = {
+    lazy public var choseBtn: UIButton = {
         let choseBtn = UIButton(type: .custom)
         choseBtn.setBackgroundImage(UIImage.init().BF_Image(named:  "videomk_chose_nomal"), for: .normal)
         choseBtn.setBackgroundImage(UIImage.init().BF_Image(named:  "videomk_chose_selected").withRenderingMode(.alwaysTemplate), for: .selected)
@@ -77,7 +77,7 @@ class PQChoseMaterialCell: UICollectionViewCell {
     }()
 
     /// 删除按钮
-    lazy var deleteBtn: UIButton = {
+    lazy public var deleteBtn: UIButton = {
         let deleteBtn = UIButton(type: .custom)
         deleteBtn.tintColor = PQBFConfig.shared.styleBackGroundColor
         deleteBtn.setImage(PQBFConfig.shared.materialDeleteImage, for: .normal)
@@ -87,12 +87,12 @@ class PQChoseMaterialCell: UICollectionViewCell {
         return deleteBtn
     }()
 
-    @objc class func choseMaterialCell(collectionView: UICollectionView, indexPath: IndexPath) -> PQChoseMaterialCell {
+    @objc class public func choseMaterialCell(collectionView: UICollectionView, indexPath: IndexPath) -> PQChoseMaterialCell {
         let cell: PQChoseMaterialCell = collectionView.dequeueReusableCell(withReuseIdentifier: String(describing: PQChoseMaterialCell.self), for: indexPath) as! PQChoseMaterialCell
         return cell
     }
 
-    override init(frame: CGRect) {
+    override public init(frame: CGRect) {
         super.init(frame: frame)
         contentView.addSubview(borderView)
         contentView.addSubview(materialImageView)
@@ -104,18 +104,18 @@ class PQChoseMaterialCell: UICollectionViewCell {
         materialImageView.addSubview(videoLoadingView)
     }
 
-    required init?(coder _: NSCoder) {
+    required public  init?(coder _: NSCoder) {
         fatalError("init(coder:) has not been implemented")
     }
 
-    var materialData: PQEditVisionTrackMaterialsModel? {
+    public  var materialData: PQEditVisionTrackMaterialsModel? {
         didSet {
             addData()
             addLayout()
         }
     }
 
-    func addData() {
+    public func addData() {
         if materialData?.coverImageUI != nil {
             materialImageView.image = materialData?.coverImageUI
         } else if materialData?.asset != nil{
@@ -193,7 +193,7 @@ class PQChoseMaterialCell: UICollectionViewCell {
 //        }
     }
 
-    func addLayout() {
+    public  func addLayout() {
         if isAdded {
             borderView.snp.makeConstraints { make in
                 make.size.equalTo(CGSize.zero)
@@ -238,13 +238,13 @@ class PQChoseMaterialCell: UICollectionViewCell {
         }
     }
 
-    @objc func btnClick(sender: UIButton) {
+    @objc public func btnClick(sender: UIButton) {
         if materialClicHandle != nil {
             materialClicHandle!(sender, materialData)
         }
     }
 
-    @objc func choseTap(ges _: UITapGestureRecognizer) {
+    @objc public func choseTap(ges _: UITapGestureRecognizer) {
         btnClick(sender: choseBtn)
     }
 

+ 8 - 8
BFFramework/Classes/Base/View/PQFollowButton.swift

@@ -8,10 +8,10 @@
 
 import Foundation
 
-class PQFollowButton: UIButton {
-    let bgLayer = CAShapeLayer()
+public class PQFollowButton: UIButton {
+    public  let bgLayer = CAShapeLayer()
 
-    var attenBtn: UIButton = {
+    public  var attenBtn: UIButton = {
         let attenBtn = UIButton(type: .custom)
         attenBtn.isUserInteractionEnabled = false
         attenBtn.setTitle("", for: .selected)
@@ -28,23 +28,23 @@ class PQFollowButton: UIButton {
         return attenBtn
     }()
 
-    override init(frame: CGRect) {
+    override public  init(frame: CGRect) {
         super.init(frame: frame)
         addSubview(attenBtn)
     }
 
-    required init?(coder _: NSCoder) {
+    required public  init?(coder _: NSCoder) {
         fatalError("init(coder:) has not been implemented")
     }
 
-    override func layoutSubviews() {
+    override public func layoutSubviews() {
         super.layoutSubviews()
         attenBtn.snp.makeConstraints { make in
             make.edges.equalTo(self).inset(UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0))
         }
     }
 
-    func reset() {
+    public  func reset() {
         attenBtn.isHidden = false
         attenBtn.layer.removeAllAnimations()
         bgLayer.removeAllAnimations()
@@ -55,7 +55,7 @@ class PQFollowButton: UIButton {
         bgLayer.removeFromSuperlayer()
     }
 
-    func start() {
+    public  func start() {
         let bounds = self.bounds
 
         bgLayer.frame = bounds

+ 5 - 5
BFFramework/Classes/Base/View/PQGIFImageView.swift

@@ -8,16 +8,16 @@
 
 import UIKit
 
-class PQGIFImageView: UIImageView {
-    var imagesDara: [String]? {
+public class PQGIFImageView: UIImageView {
+   public var imagesDara: [String]? {
         didSet {
             generateImages()
             displayGIF(1, Int.max)
         }
     }
 
-    var images: [UIImage] = Array<UIImage>.init()
-    func generateImages() {
+    public var images: [UIImage] = Array<UIImage>.init()
+    public func generateImages() {
         if imagesDara != nil, (imagesDara?.count ?? 0) > 0 {
             for item in imagesDara! {
                 let image = UIImage(named: item)!
@@ -26,7 +26,7 @@ class PQGIFImageView: UIImageView {
         }
     }
 
-    func displayGIF(_ duration: TimeInterval, _ repeatCount: Int) {
+    public func displayGIF(_ duration: TimeInterval, _ repeatCount: Int) {
         if !isAnimating {
             layer.removeAllAnimations()
             if images.count <= 0 {

+ 2 - 2
BFFramework/Classes/Base/View/PQHeartAnimation.swift

@@ -8,11 +8,11 @@
 
 import UIKit
 
-class PQHeartAnimation: NSObject {
+public class PQHeartAnimation: NSObject {
     static let angleArr: [CGFloat] = [CGFloat.pi / 4.0, -CGFloat.pi / 4.0, 0.0]
     var isRepeat: Bool = false
 
-    static func showAnimation(isRepeat: Bool = false, point: CGPoint, size: CGFloat = 80.0, baseView: UIView, completeHander: @escaping (_ isFinised: Bool) -> Void) {
+    static public func showAnimation(isRepeat: Bool = false, point: CGPoint, size: CGFloat = 80.0, baseView: UIView, completeHander: @escaping (_ isFinised: Bool) -> Void) {
         if isRepeat, baseView.viewWithTag(cHeartTag) != nil {
             return
         }

+ 14 - 14
BFFramework/Classes/Base/View/PQSectionHeadView.swift

@@ -8,38 +8,38 @@
 
 import UIKit
 
-class PQSectionHeadView: UIView {
+public class PQSectionHeadView: UIView {
     // 清除按钮回调
-    var btnClickHandle: ((_ sender: UIButton) -> Void)?
+    public var btnClickHandle: ((_ sender: UIButton) -> Void)?
     // 是否隐藏清除按钮
-    var isHiddenClearBtn: Bool = true {
+    public var isHiddenClearBtn: Bool = true {
         didSet {
             clearBtn.isHidden = isHiddenClearBtn
         }
     }
 
-    var sectionTitle: String? {
+    public var sectionTitle: String? {
         didSet {
             addData()
             addLayout()
         }
     }
 
-    lazy var lineView: UIView = {
+    lazy public var lineView: UIView = {
         let lineView = UIView()
         lineView.backgroundColor = UIColor.hexColor(hexadecimal: "#EE0051")
         lineView.addCorner(corner: 1.5)
         return lineView
     }()
 
-    lazy var titleLab: UILabel = {
+    lazy public var titleLab: UILabel = {
         let titleLab = UILabel()
         titleLab.textColor = UIColor.white
         titleLab.font = UIFont(name: "PingFangSC", size: 16)
         return titleLab
     }()
 
-    lazy var clearBtn: UIButton = {
+    lazy public  var clearBtn: UIButton = {
         let clearBtn = UIButton(type: .custom)
         clearBtn.setTitle("全部已读 ", for: .normal)
         clearBtn.setImage(UIImage.init().BF_Image(named: "msg_clear_noreaded"), for: .normal)
@@ -50,32 +50,32 @@ class PQSectionHeadView: UIView {
         return clearBtn
     }()
 
-    override init(frame: CGRect) {
+    override public  init(frame: CGRect) {
         super.init(frame: frame)
         addSubviews()
     }
 
-    override func layoutSubviews() {
+    override public  func layoutSubviews() {
         super.layoutSubviews()
 //        addData()
 //        addLayout()
     }
 
-    required init?(coder _: NSCoder) {
+    required public  init?(coder _: NSCoder) {
         fatalError("init(coder:) has not been implemented")
     }
 
-    func addSubviews() {
+    public  func addSubviews() {
         addSubview(lineView)
         addSubview(titleLab)
         addSubview(clearBtn)
     }
 
-    func addData() {
+    public  func addData() {
         titleLab.text = sectionTitle
     }
 
-    func addLayout() {
+    public  func addLayout() {
         let lineW: CGFloat = 3
         let lineH: CGFloat = cDefaultMargin * 2
 
@@ -95,7 +95,7 @@ class PQSectionHeadView: UIView {
         clearBtn.imagePosition(at: .right, space: 0)
     }
 
-    @objc func btnClick(sender: UIButton) {
+    @objc public  func btnClick(sender: UIButton) {
         if btnClickHandle != nil {
             btnClickHandle!(sender)
         }

+ 16 - 16
BFFramework/Classes/Base/View/PQSelectedOprationView.swift

@@ -11,12 +11,12 @@ import UIKit
 // MARK: - 选择操作view
 
 /// 选择操作view
-class PQSelectedOprationView: UIView {
-    let itemH: CGFloat = cDefaultMargin * 6
-    let lineH: CGFloat = 1
-    let margin: CGFloat = 8
-    var contentH: CGFloat = 0
-    var itemList: [String]? {
+public class PQSelectedOprationView: UIView {
+    public let itemH: CGFloat = cDefaultMargin * 6
+    public  let lineH: CGFloat = 1
+    public  let margin: CGFloat = 8
+    public  var contentH: CGFloat = 0
+    public  var itemList: [String]? {
         didSet {
             if (itemList?.count ?? 0) > 0 {
                 contentH = itemH + margin + cSafeAreaHeight + CGFloat(itemList?.count ?? 0) * (itemH + 1)
@@ -27,15 +27,15 @@ class PQSelectedOprationView: UIView {
         }
     }
 
-    var completeHander: ((_ sender: UIButton) -> Void)?
-    lazy var contentView: UIView = {
+    public  var completeHander: ((_ sender: UIButton) -> Void)?
+    lazy public var contentView: UIView = {
         let contentView = UIView(frame: CGRect(x: 0, y: cScreenHeigth, width: cScreenWidth, height: itemH + margin))
         contentView.backgroundColor = UIColor.black
         contentView.addCorner(roundingCorners: [.topLeft, .topRight], corner: 11)
         return contentView
     }()
 
-    lazy var cancelBtn: UIButton = {
+    lazy public var cancelBtn: UIButton = {
         let cancelBtn = UIButton(type: .custom)
         cancelBtn.setTitle("取消", for: .normal)
         cancelBtn.setTitleColor(UIColor.hexColor(hexadecimal: "#BDBDBD"), for: .normal)
@@ -45,7 +45,7 @@ class PQSelectedOprationView: UIView {
         return cancelBtn
     }()
 
-    override init(frame: CGRect) {
+    override public init(frame: CGRect) {
         super.init(frame: frame)
         backgroundColor = cShadowColor
         addSubview(contentView)
@@ -54,16 +54,16 @@ class PQSelectedOprationView: UIView {
         addGestureRecognizer(ges)
     }
 
-    required init?(coder _: NSCoder) {
+    required public init?(coder _: NSCoder) {
         fatalError("init(coder:) has not been implemented")
     }
 
-    override func layoutSubviews() {
+    override public func layoutSubviews() {
         super.layoutSubviews()
         addSubViews()
     }
 
-    func addSubViews() {
+    public   func addSubViews() {
         if (itemList?.count ?? 0) > 0 {
             for (index, item) in itemList!.enumerated() {
                 let normalBtn = UIButton(type: .custom)
@@ -84,7 +84,7 @@ class PQSelectedOprationView: UIView {
         }
     }
 
-    @objc func removeView() {
+    @objc public func removeView() {
         UIView.animate(withDuration: 0.3, animations: { [weak self] in
             self?.contentView.frame = CGRect(x: 0, y: cScreenHeigth, width: cScreenWidth, height: self!.contentH)
         }) { [weak self] _ in
@@ -92,7 +92,7 @@ class PQSelectedOprationView: UIView {
         }
     }
 
-    class func showSelectedOprationView(itemList: [String], completeHander: @escaping ((_ sender: UIButton) -> Void)) {
+    class public func showSelectedOprationView(itemList: [String], completeHander: @escaping ((_ sender: UIButton) -> Void)) {
         let selectedOprationView: PQSelectedOprationView = PQSelectedOprationView(frame: CGRect(x: 0, y: 0, width: cScreenWidth, height: cScreenHeigth))
         selectedOprationView.completeHander = completeHander
         selectedOprationView.itemList = itemList
@@ -104,7 +104,7 @@ class PQSelectedOprationView: UIView {
         }
     }
 
-    @objc func btnClick(sender: UIButton) {
+    @objc public func btnClick(sender: UIButton) {
         if completeHander != nil {
             completeHander!(sender)
         }

+ 1 - 1
BFFramework/Classes/Base/View/PQTabBar.swift

@@ -8,7 +8,7 @@
 
 import UIKit
 
-class PQTabBar: UITabBar {
+public class PQTabBar: UITabBar {
     override open func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
         if isHidden { // 如果隐藏的话不处理事件
             return super.hitTest(point, with: event)

+ 14 - 14
BFFramework/Classes/Base/View/PQTextView.swift

@@ -8,59 +8,59 @@
 
 import UIKit
 
-class PQTextView: UITextView {
+open class PQTextView: UITextView {
     private let textValuesQueue = DispatchQueue(label: "com.BytesFlow.textValuesQueue", qos: .default)
 
-    var textDidChangedHandle: ((_ textView: UITextView) -> Void)?
+   public var textDidChangedHandle: ((_ textView: UITextView) -> Void)?
     // 最多输入的个数
-    var maxTextLength : Int?
+    public  var maxTextLength : Int?
     // 输入个数超过时提示
-    var maxTextLengthRemind : String?
+    public  var maxTextLengthRemind : String?
     /// setNeedsDisplay调用drawRect
-    var placeHolder: String = "" {
+    public  var placeHolder: String = "" {
         didSet {
             setNeedsDisplay()
         }
     }
 
     /// placeHolder是否居中
-    var isCenter: Bool = false {
+    public  var isCenter: Bool = false {
         didSet {
             setNeedsDisplay()
         }
     }
 
-    var placeHolderColor: UIColor = UIColor.gray {
+    public var placeHolderColor: UIColor = UIColor.gray {
         didSet {
             setNeedsDisplay()
         }
     }
 
-    override var font: UIFont? {
+    open override var font: UIFont? {
         didSet {
             setNeedsDisplay()
         }
     }
 
-    override var text: String! {
+    open override var text: String! {
         didSet{
            setNeedsLayout()
         }
     }
 
-    override var attributedText: NSAttributedString! {
+    open override var attributedText: NSAttributedString! {
         didSet {
             setNeedsDisplay()
         }
     }
 
-    override init(frame: CGRect, textContainer: NSTextContainer?) {
+    public override init(frame: CGRect, textContainer: NSTextContainer?) {
         super.init(frame: frame, textContainer: textContainer)
         /// default字号
         PQNotification.addObserver(self, selector: #selector(textDidChanged(noti:)), name: UITextView.textDidChangeNotification, object: self)
     }
 
-    required init?(coder _: NSCoder) {
+    required public init?(coder _: NSCoder) {
         fatalError("init(coder:) has not been implemented")
     }
 
@@ -75,7 +75,7 @@ class PQTextView: UITextView {
         }
     }
 
-    override func draw(_ rect: CGRect) {
+    open override func draw(_ rect: CGRect) {
         if hasText {
             return
         }
@@ -93,7 +93,7 @@ class PQTextView: UITextView {
         (placeHolder as NSString).draw(in: newRect, withAttributes: [NSAttributedString.Key.font: font ?? UIFont.systemFont(ofSize: 14), NSAttributedString.Key.foregroundColor: placeHolderColor])
     }
 
-    override func layoutSubviews() {
+    open override func layoutSubviews() {
         super.layoutSubviews()
         setNeedsDisplay()
     }

+ 29 - 29
BFFramework/Classes/Base/ViewModel/PQBaseViewModel.swift

@@ -13,7 +13,7 @@ import RealmSwift
 
 public class PQBaseViewModel: NSObject {
     
-    typealias completeHander = (_ userInfo: [String: Any]?, _ msg: String?) -> Void
+   public typealias completeHander = (_ userInfo: [String: Any]?, _ msg: String?) -> Void
     
     /// 搜索背景音乐
     /// - Parameters:
@@ -25,7 +25,7 @@ public class PQBaseViewModel: NSObject {
     ///   - totalDuration: 卡点音乐数据搜索-素材总时长
     ///   - completeHander: completeHander description
     /// - Returns: <#description#>
-    class func searchBGMListData(_ keyWord: String?, _ pageNum: Int = 1, _ pageSize: Int = 30,videoCount: Int = 0, imageCount: Int = 0, totalDuration: Float64 = 0, completeHander: @escaping (_ bgmList: [PQVoiceModel], _ msg: String?) -> Void) {
+    public class func searchBGMListData(_ keyWord: String?, _ pageNum: Int = 1, _ pageSize: Int = 30,videoCount: Int = 0, imageCount: Int = 0, totalDuration: Float64 = 0, completeHander: @escaping (_ bgmList: [PQVoiceModel], _ msg: String?) -> Void) {
         SWNetRequest.postRequestData(url: PQENVUtil.shared.materialSearchApi + searchBGMMaterialUrl, parames: ["keyWord": keyWord ?? "", "pageNo": pageNum, "pageSize": pageSize], encoding: JSONEncoding.default) { response, _, error, _ in
             DispatchQueue.global().async {
                 var bgmList = Array<PQVoiceModel>.init()
@@ -56,7 +56,7 @@ public class PQBaseViewModel: NSObject {
     /// 请求系统配置
     /// - Parameter completeHander: <#completeHander description#>
     /// - Returns: <#description#>
-  public  class func systemConfig(completeHander: @escaping (_ isSuccess: Bool) -> Void) {
+    public class func systemConfig(completeHander: @escaping (_ isSuccess: Bool) -> Void) {
         if PQSingletoMemoryUtil.shared.isFinishedCoging {
             completeHander(true)
             return
@@ -77,7 +77,7 @@ public class PQBaseViewModel: NSObject {
     /// 系统设置
     /// - Parameter completeHander: <#completeHander description#>
     /// - Returns: <#description#>
-    class func systemBaseConfig(completeHander: @escaping (_ isSuccess: Bool) -> Void) {
+    public class func systemBaseConfig(completeHander: @escaping (_ isSuccess: Bool) -> Void) {
         SWNetRequest.postRequestData(url: PQENVUtil.shared.longvideoapi + systemConfigUrl, parames: nil) { _, _, _, _ in
             completeHander(true)
         }
@@ -90,7 +90,7 @@ public class PQBaseViewModel: NSObject {
     ///   - videoId: <#videoId description#>
     ///   - completeHander: <#completeHander description#>
     /// - Returns: <#description#>
-    class func deleteVideo(videoId: Int, completeHander: @escaping (_ isSuccess: Bool, _ msg: String?) -> Void) {
+    public class func deleteVideo(videoId: Int, completeHander: @escaping (_ isSuccess: Bool, _ msg: String?) -> Void) {
         SWNetRequest.postRequestData(url: PQENVUtil.shared.longvideoapi + deleteVideoUrl, parames: ["videoId": videoId]) { response, _, error, _ in
             if response != nil {
                 postNotification(name: cDeleteVideoSuccessKey, userInfo: ["videoId": "\(videoId)"])
@@ -106,7 +106,7 @@ public class PQBaseViewModel: NSObject {
     ///   - videoId: 视频Id
     ///   - completeHander: <#completeHander description#>
     /// - Returns: <#description#>
-    class func hateVideo(videoId: Int, completeHander: @escaping (_ isSuccess: Bool, _ msg: String?) -> Void) {
+    public class func hateVideo(videoId: Int, completeHander: @escaping (_ isSuccess: Bool, _ msg: String?) -> Void) {
         SWNetRequest.postRequestData(url: PQENVUtil.shared.longvideoapi + hateVideoUrl, parames: ["videoId": videoId]) { response, _, error, _ in
             if response != nil {
                 completeHander(true, nil)
@@ -127,7 +127,7 @@ public class PQBaseViewModel: NSObject {
     ///   - layoutType: 页面排版方式 1:单列,2:双列
     ///   - lastTimestamp: 最后一条记录的时间戳
     /// - Returns: <#description#>
-    class func userInfoVideoList(type: Int = 1, targetUid: Int, pageSize: Int = 10, pageNo: Int, currentVideoId _: Int = 0, sortField _: Int = 1, layoutType _: Int = 2, lastTimestamp: Int, completeHander: @escaping (_ listData: [PQVideoListModel]?, _ videoList: [[PQVideoListModel]]?, _ msg: String?) -> Void) {
+    public class func userInfoVideoList(type: Int = 1, targetUid: Int, pageSize: Int = 10, pageNo: Int, currentVideoId _: Int = 0, sortField _: Int = 1, layoutType _: Int = 2, lastTimestamp: Int, completeHander: @escaping (_ listData: [PQVideoListModel]?, _ videoList: [[PQVideoListModel]]?, _ msg: String?) -> Void) {
         var url: String = PQENVUtil.shared.longvideoapi
         if type == 1 {
             url = url + latelyByCollectionIdUrl
@@ -181,7 +181,7 @@ public class PQBaseViewModel: NSObject {
     ///   - groupId: 组id
     ///   - completeHander: <#completeHander description#>
     /// - Returns: <#description#>
-    class func reportList(isReportUser: Bool, groupId _: String?, completeHander: @escaping (_ listData: [PQBaseModel]?) -> Void) {
+    public class func reportList(isReportUser: Bool, groupId _: String?, completeHander: @escaping (_ listData: [PQBaseModel]?) -> Void) {
         var url: String = PQENVUtil.shared.longvideoapi
         if isReportUser {
             url = url + reportUserListUrl
@@ -222,7 +222,7 @@ public class PQBaseViewModel: NSObject {
     ///   - reason: 举报原因
     ///   - completeHander: <#completeHander description#>
     /// - Returns: <#description#>
-    class func reportOprate(isReportUser: Bool, uniqueId: Int, reason: String?, completeHander: @escaping (_ isSuccess: Bool) -> Void) {
+    public class func reportOprate(isReportUser: Bool, uniqueId: Int, reason: String?, completeHander: @escaping (_ isSuccess: Bool) -> Void) {
         var params: [String: Any] = ["reason": reason ?? ""]
         var url: String = PQENVUtil.shared.longvideoapi
         if isReportUser {
@@ -242,7 +242,7 @@ public class PQBaseViewModel: NSObject {
     ///   - targetUid: <#targetUid description#>
     ///   - completeHander: <#completeHander description#>
     /// - Returns: <#description#>
-    class func bannedUser(isBanned: Bool, targetUid: Int, completeHander: @escaping (_ isSuccess: Bool, _ isBanned: Bool) -> Void) {
+    public class func bannedUser(isBanned: Bool, targetUid: Int, completeHander: @escaping (_ isSuccess: Bool, _ isBanned: Bool) -> Void) {
         var url: String = PQENVUtil.shared.longvideoapi
         if isBanned {
             url = url + bannedUserUrl
@@ -260,7 +260,7 @@ public class PQBaseViewModel: NSObject {
     ///   - targetUid: <#targetUid description#>
     ///   - completeHander: <#completeHander description#>
     /// - Returns: <#description#>
-    class func isBannedUser(targetUid: Int, completeHander: @escaping (_ isSuccess: Bool, _ isBanned: Bool) -> Void) {
+    public class func isBannedUser(targetUid: Int, completeHander: @escaping (_ isSuccess: Bool, _ isBanned: Bool) -> Void) {
         SWNetRequest.postRequestData(url: PQENVUtil.shared.longvideoapi + isBannedUserUrl, parames: ["targetUid": targetUid]) { response, _, _, _ in
             if response == nil {
                 completeHander(false, false)
@@ -273,7 +273,7 @@ public class PQBaseViewModel: NSObject {
     /// 获取用户管理列表
     /// - Parameter completeHander: <#completeHander description#>
     /// - Returns: <#description#>
-    class func bannedUserList(completeHander: @escaping (_ listData: [PQUserInfoModel]?) -> Void) {
+    class public func bannedUserList(completeHander: @escaping (_ listData: [PQUserInfoModel]?) -> Void) {
         SWNetRequest.postRequestData(url: PQENVUtil.shared.longvideoapi + bannedUserListUrl, parames: nil) { response, _, _, _ in
             var listData = Array<PQUserInfoModel>.init()
             if response is NSNull || response == nil {
@@ -296,7 +296,7 @@ public class PQBaseViewModel: NSObject {
     ///   - videoId: 视频id ,isBatch = true 时,用英文,隔开
     ///   - completeHander: <#completeHander description#>
     /// - Returns: <#description#>
-    class func videoDetailInfo(isBatch: Bool = false, videoId: String, completeHander: @escaping (_ videoDatas: [[PQVideoListModel]]?, _ code: Int?, _ mag: String?) -> Void) {
+    public class func videoDetailInfo(isBatch: Bool = false, videoId: String, completeHander: @escaping (_ videoDatas: [[PQVideoListModel]]?, _ code: Int?, _ mag: String?) -> Void) {
         var url: String = PQENVUtil.shared.longvideoapi
         var params: [String: Any] = [:]
 
@@ -331,7 +331,7 @@ public class PQBaseViewModel: NSObject {
         }
     }
 
-    class func h5ShareLinkInfo(videoId: String, pageSource: PAGESOURCE, completeHander: @escaping (_ shareLinkPath: String?, _ mag: String?) -> Void) {
+    public class func h5ShareLinkInfo(videoId: String, pageSource: PAGESOURCE, completeHander: @escaping (_ shareLinkPath: String?, _ mag: String?) -> Void) {
         SWNetRequest.postRequestData(url: PQENVUtil.shared.longvideoapi + h5ShareLinkUrl, parames: ["videoId": videoId, "pageSource": pageSource.rawValue, "h5WxRootPageSource": pageSource.rawValue]) { response, _, _, _ in
             if response is NSNull || response == nil {
                 completeHander(nil, "获取分享地址失败")
@@ -341,7 +341,7 @@ public class PQBaseViewModel: NSObject {
         }
     }
 
-    class func wxFriendShareInfo(videoId: String, completeHander: @escaping (_ shareImagePath: String?, _ shareTitle: String?, _ shareWeappRawId: String?, _ mag: String?) -> Void) {
+    public class func wxFriendShareInfo(videoId: String, completeHander: @escaping (_ shareImagePath: String?, _ shareTitle: String?, _ shareWeappRawId: String?, _ mag: String?) -> Void) {
         SWNetRequest.postRequestData(url: PQENVUtil.shared.longvideoapi + wxFriendUrl, parames: ["videoId": videoId]) { response, _, _, _ in
             if response is NSNull || response == nil {
                 completeHander(nil, nil, nil, "获取分享好友数据失败")
@@ -354,7 +354,7 @@ public class PQBaseViewModel: NSObject {
 
     /// 获取白名单设置
     /// - Returns: <#description#>
-    class func datashowAllowData(completeHander: @escaping (_ isShowInfo: Bool, _ msg: String?) -> Void) {
+    public class func datashowAllowData(completeHander: @escaping (_ isShowInfo: Bool, _ msg: String?) -> Void) {
         SWNetRequest.postRequestData(url: PQENVUtil.shared.longvideoapi + datashowAllowUrl, parames: ["mid": getMachineCode()], encoding: JSONEncoding.default) { response, _, _, _ in
             if response is NSNull || response == nil {
                 completeHander(false, "获取白名单数据失败")
@@ -367,7 +367,7 @@ public class PQBaseViewModel: NSObject {
     
     /// add by ak 取 STS token
     /// - Parameter completeHander: completeHander description
-    class func getStsToken(completeHander: @escaping completeHander) {
+    public class func getStsToken(completeHander: @escaping completeHander) {
         SWNetRequest.postRequestData(url: PQENVUtil.shared.longvideoapi + getStsTokenUrl, parames: ["fileType": "2", "type": 1]) { response, _, error, _ in
             if error != nil {
                 completeHander(nil, error?.msg)
@@ -380,7 +380,7 @@ public class PQBaseViewModel: NSObject {
     /// 获取OSS
     /// - Parameter completeHander: <#completeHander description#>
     /// - Returns: <#description#>
-    class func ossTempToken(completeHander: @escaping completeHander) {
+    public class func ossTempToken(completeHander: @escaping completeHander) {
         SWNetRequest.postRequestData(url: PQENVUtil.shared.longvideoapi + ossTempTokenUrl, parames: ["type": "2", "fileType": "1"]) { response, _, _, _ in
             completeHander(response as? [String: Any], nil)
         }
@@ -403,7 +403,7 @@ extension PQBaseViewModel {
     ///   - originProjectId:卡点视频制作再创作传-源项目ID从那个项目做同款
     ///   - completeHander: <#completeHander description#>
     /// - Returns: <#description#>
-    class func saveDraftbox(draftboxId: String?, title: String?, coverUrl: String?, sdata: String, videoFromScene: videoFromScene,copyType:Int? = nil,originProjectId:String? = nil, completeHander: @escaping (_ draftboxInfo: [String: Any]?, _ msg: String?) -> Void) {
+    public class func saveDraftbox(draftboxId: String?, title: String?, coverUrl: String?, sdata: String, videoFromScene: videoFromScene,copyType:Int? = nil,originProjectId:String? = nil, completeHander: @escaping (_ draftboxInfo: [String: Any]?, _ msg: String?) -> Void) {
         var parames: [String: Any] = ["sdata": sdata, "fromScene": videoFromScene.rawValue]
         if draftboxId != nil {
             parames["draftboxId"] = draftboxId
@@ -450,7 +450,7 @@ extension PQBaseViewModel {
     ///   - videoFromScene:上传场景 1:普通上传 2:创作工具,3:普通上传转创作工具,4:后台转换加工,5:卡点视频制作
     ///   - completeHander: <#completeHander description#>
     /// - Returns: <#description#>
-    class func saveProject(draftboxId: String?, sdata: String, videoFromScene: videoFromScene, completeHander: @escaping (_ projectId: String?, _ msg: String?) -> Void) {
+    public class func saveProject(draftboxId: String?, sdata: String, videoFromScene: videoFromScene, completeHander: @escaping (_ projectId: String?, _ msg: String?) -> Void) {
         var parames: [String: Any] = ["sdata": sdata,"fromScene": videoFromScene.rawValue]
         if draftboxId != nil {
             parames["draftboxId"] = draftboxId
@@ -469,7 +469,7 @@ extension PQBaseViewModel {
     /// - Parameter projectId: 项目 ID
     /// - Parameter produceStatus: 合成状态 必传-合成状态(5:合成成功,99:合成失败)
     /// - Parameter completeHander: 回调
-    class func updateProject(projectId: String?, produceStatus: String, completeHander: @escaping (_ projectId: String?, _ msg: String?) -> Void) {
+    public class func updateProject(projectId: String?, produceStatus: String, completeHander: @escaping (_ projectId: String?, _ msg: String?) -> Void) {
         var parames: [String: String] = ["produceStatus": produceStatus]
 
         if projectId != nil {
@@ -492,7 +492,7 @@ extension PQBaseViewModel {
     ///   - videoFromScene:上传场景 1:普通上传 2:创作工具,3:普通上传转创作工具,4:后台转换加工,5:卡点视频制作
     ///   - completeHander: <#completeHander description#>
     /// - Returns: <#description#>
-    class func reportSendVideo(_ projectId: String, _ videoId: String, videoFromScene: videoFromScene, completeHander: @escaping (_ isSeccess: Bool, _ msg: String?) -> Void) {
+    public class func reportSendVideo(_ projectId: String, _ videoId: String, videoFromScene: videoFromScene, completeHander: @escaping (_ isSeccess: Bool, _ msg: String?) -> Void) {
         SWNetRequest.postRequestData(url: PQENVUtil.shared.clipapiapi + reportSendVideoUrl, parames: ["projectId": projectId, "videoId": videoId, "fromScene": videoFromScene.rawValue]) { _, _, error, _ in
 
             BFLog(message: "发布视频后上报:projectId = \(projectId),videoId = \(videoId)")
@@ -510,7 +510,7 @@ extension PQBaseViewModel {
     ///   - pageSize: 每页大小
     ///   - isSelected: 是否已选
     ///   - completeHander: <#completeHander description#>
-    class func listUserDraftbox(lastTimestamp: Int, pageSize: Int = 10, isSelected: Bool = false, completeHander: @escaping (_ projectList: [PQEditProjectModel]?, _ msg: String?) -> Void) {
+    public class func listUserDraftbox(lastTimestamp: Int, pageSize: Int = 10, isSelected: Bool = false, completeHander: @escaping (_ projectList: [PQEditProjectModel]?, _ msg: String?) -> Void) {
         let params: [String: Any] = ["pageSize": pageSize, "lastTimestamp": lastTimestamp]
         SWNetRequest.postRequestData(url: PQENVUtil.shared.clipapiapi + listUserDraftboxUrl, parames: params) { response, _, error, _ in
             if error?.code == -1009 || error?.code == -1001 {
@@ -543,7 +543,7 @@ extension PQBaseViewModel {
     /// 获取草稿箱数量
     /// - Parameter completeHander: <#completeHander description#>
     /// - Returns: <#description#>
-    class func draftboxUserCount(completeHander: @escaping (_ draftboxCount: Int, _ msg: String?) -> Void) {
+    public class func draftboxUserCount(completeHander: @escaping (_ draftboxCount: Int, _ msg: String?) -> Void) {
         SWNetRequest.postRequestData(url: PQENVUtil.shared.clipapiapi + draftboxUserCountUrl, parames: nil) { response, _, error, _ in
             if response is NSNull || response == nil {
                 completeHander(0, error?.msg)
@@ -558,7 +558,7 @@ extension PQBaseViewModel {
     ///   - isBatch: 是否批量删除(多个用英文逗号分隔)
     ///   - draftboxIds: 草稿id
     ///   - completeHander: <#completeHander description#>
-    class func deleteDraftbox(isBatch: Bool = false, draftboxIds: String?, completeHander: @escaping (_ isSuccess: Bool, _ msg: String?) -> Void) {
+    public class func deleteDraftbox(isBatch: Bool = false, draftboxIds: String?, completeHander: @escaping (_ isSuccess: Bool, _ msg: String?) -> Void) {
         var url: String = PQENVUtil.shared.clipapiapi
         var params: [String: Any] = Dictionary<String, Any>.init()
         if isBatch {
@@ -579,7 +579,7 @@ extension PQBaseViewModel {
     ///   - title: 草稿箱标题
     ///   - copyType: 复制类型(1:复制自己的项目,2:创建副本(复制别人的项目) 3:再创作)
     ///   - completeHander: <#completeHander description#>
-    class func copyDraftbox(draftboxId: String?, title: String, copyType: Int, completeHander: @escaping (_ newDraftboxId: String?, _ msg: String?) -> Void) {
+    public class func copyDraftbox(draftboxId: String?, title: String, copyType: Int, completeHander: @escaping (_ newDraftboxId: String?, _ msg: String?) -> Void) {
         SWNetRequest.postRequestData(url: PQENVUtil.shared.clipapiapi + copyDraftboxUrl, parames: ["draftboxId": draftboxId ?? "", "title": title, "copyType": copyType]) { response, _, error, _ in
             if response is NSNull || response == nil {
                 completeHander(nil, error?.msg)
@@ -594,7 +594,7 @@ extension PQBaseViewModel {
     ///   - draftboxId: 草稿id
     ///   - title: 标题
     ///   - completeHander: <#completeHander description#>
-    class func updateDraftBoxTitle(draftboxId: String?, title: String, completeHander: @escaping (_ newDraftData: PQEditProjectModel?, _ msg: String?) -> Void) {
+    public class func updateDraftBoxTitle(draftboxId: String?, title: String, completeHander: @escaping (_ newDraftData: PQEditProjectModel?, _ msg: String?) -> Void) {
         SWNetRequest.postRequestData(url: PQENVUtil.shared.clipapiapi + updateDraftboxTitleUrl, parames: ["draftboxId": draftboxId ?? "", "title": title]) { response, _, error, _ in
             if response is NSNull || response == nil {
                 completeHander(nil, error?.msg)
@@ -608,7 +608,7 @@ extension PQBaseViewModel {
     /// - Parameters:
     ///   - : <# description#>
     ///   - completeHander: <#completeHander description#>
-    class func draftboxGetSdata(draftboxId: String?, completeHander: @escaping (_ projectModel: PQEditSdataModel?, _ msg: String?) -> Void) {
+    public class func draftboxGetSdata(draftboxId: String?, completeHander: @escaping (_ projectModel: PQEditSdataModel?, _ msg: String?) -> Void) {
         let params: [String: Any] = ["draftboxId": draftboxId ?? ""]
         SWNetRequest.postRequestData(url: PQENVUtil.shared.clipapiapi + draftboxGetSdataUrl, parames: params) { response, _, error, _ in
 
@@ -627,7 +627,7 @@ extension PQBaseViewModel {
     /// 素材上报扩展字段
     /// - Parameter materialData: <#materialData description#>
     /// - Returns: <#description#>
-    class func uploadReportExParams(isDownload: Bool, materialData: PQEditVisionTrackMaterialsModel?) -> [String: Any] {
+    public class func uploadReportExParams(isDownload: Bool, materialData: PQEditVisionTrackMaterialsModel?) -> [String: Any] {
         var params: [String: Any] = ["draftboxId": PQSingletoMemoryUtil.shared.draftboxId ?? "", "materialType": materialData?.type ?? ""]
         if !isDownload {
             params["materialSource"] = (materialData?.localSearchId != nil && (materialData?.localSearchId ?? "").count > 0) ? "netMaterial" : "localMaterial"

+ 11 - 11
BFFramework/Classes/Base/ViewModel/PQDownloadManager.swift

@@ -13,11 +13,11 @@ import UIKit
 
 /// 下载管理
 
-class PQDownloadManager: NSObject {
-    static let shared = PQDownloadManager()
-    let maxDownloadCount: Int = 1000 // 最大的下载数量
-    var batchDownloadData: [String: Any] = Dictionary<String, Any>.init() // 批量下载数据
-    lazy var sessionManager: PQSessionManager = {
+open class PQDownloadManager: NSObject {
+    static public let shared = PQDownloadManager()
+    public let maxDownloadCount: Int = 1000 // 最大的下载数量
+    public var batchDownloadData: [String: Any] = Dictionary<String, Any>.init() // 批量下载数据
+    lazy public var sessionManager: PQSessionManager = {
         let sessionManager = PQSessionManager("downloadConfiguration")
         return sessionManager
     }()
@@ -31,7 +31,7 @@ class PQDownloadManager: NSObject {
     ///   - progressHandle: <#progressHandle description#>
     ///   - stateHandle: <#stateHandle description#>
     /// - Returns: <#description#>
-    func download(url: String, name: String? = nil, fileExtensionType: FileExtensionType?, imageURL: String? = nil, progressHandle: @escaping ProgressHandle, stateHandle: @escaping StateHandle) {
+    public func download(url: String, name: String? = nil, fileExtensionType: FileExtensionType?, imageURL: String? = nil, progressHandle: @escaping ProgressHandle, stateHandle: @escaping StateHandle) {
         BFLog(message: "开始下载文件:\(url)")
         let subfile = PQDownloadFileManager.downloadTotalFile()
         let newFileExtensionType: FileExtensionType = fileExtensionType ?? (FileExtensionType(rawValue: url.pathExtension) ?? FileExtensionType.normal)
@@ -105,7 +105,7 @@ class PQDownloadManager: NSObject {
     ///   - urls: 需要下载urls
     ///   - downloadHandle: <#downloadHandle description#>
     /// - Returns: <#description#>
-    func batchDownload(uniqueId: String, urls: [PQDownloadModel], downloadHandle: @escaping (_ isSuccess: downloadState, _ msg: String?, _ data: [String: Any]?) -> Void) {
+    public  func batchDownload(uniqueId: String, urls: [PQDownloadModel], downloadHandle: @escaping (_ isSuccess: downloadState, _ msg: String?, _ data: [String: Any]?) -> Void) {
         BFLog(message: "urls count is \(urls.count)")
         if urls.count <= 0 {
             return
@@ -142,7 +142,7 @@ class PQDownloadManager: NSObject {
     /// 下载素材成功的通知
     /// - Parameter notification: <#notification description#>
     /// - Returns: <#description#>
-    @objc func downloadMarial(notification: Notification) {
+    @objc public func downloadMarial(notification: Notification) {
         let userInfo = notification.userInfo
         let url = userInfo?["url"] as? String
         let localPath = userInfo?["localPath"] as? String
@@ -179,7 +179,7 @@ class PQDownloadManager: NSObject {
     ///   - url: <#url description#>
     ///   - completionHandler: <#completionHandler description#>
     /// - Returns: <#description#>
-    class func downLoadFile(url: String, completionHandler: @escaping (_ filePath: String?, _ error: Error?) -> Void) {
+    public class func downLoadFile(url: String, completionHandler: @escaping (_ filePath: String?, _ error: Error?) -> Void) {
         // 创建目录
         createDirectory(path: bgMusicDirectory)
         let filePath = bgMusicDirectory + url.md5 + ".mp3"
@@ -215,11 +215,11 @@ class PQDownloadManager: NSObject {
         addNotification(self, selector: #selector(downloadMarial(notification:)), name: cDownloadMatrialSuccessKey, object: nil)
     }
 
-    override func copy() -> Any {
+    open override func copy() -> Any {
         return self
     }
 
-    override func mutableCopy() -> Any {
+    open override func mutableCopy() -> Any {
         return self
     }
 }

+ 5 - 5
BFFramework/Classes/Base/ViewModel/PQSessionManager.swift

@@ -8,8 +8,8 @@
 
 import UIKit
 
-class PQSessionManager: NSObject {
-    @Atomic var downloadTaskDatas: [String: PQDownloadModel] = Dictionary<String, PQDownloadModel>.init()
+open class PQSessionManager: NSObject {
+    public var downloadTaskDatas: [String: PQDownloadModel] = Dictionary<String, PQDownloadModel>.init()
     public var dispatchQueue: DispatchQueue! // 线程
     public var session: URLSession? // sesstion
     public var identifier: String = "" // 标示
@@ -56,7 +56,7 @@ extension PQSessionManager: URLSessionDataDelegate {
     ///   - dataTask: <#dataTask description#>
     ///   - response: <#response description#>
     ///   - completionHandler: <#completionHandler description#>
-    func urlSession(_: URLSession, dataTask: URLSessionDataTask, didReceive response: URLResponse, completionHandler: @escaping (URLSession.ResponseDisposition) -> Void) {
+   public func urlSession(_: URLSession, dataTask: URLSessionDataTask, didReceive response: URLResponse, completionHandler: @escaping (URLSession.ResponseDisposition) -> Void) {
         let taskId = dataTask.taskId
         let taskUrl = dataTask.taskUrl
         let downloadData = downloadTaskDatas[taskId]
@@ -95,7 +95,7 @@ extension PQSessionManager: URLSessionDataDelegate {
     ///   - session: <#session description#>
     ///   - dataTask: <#dataTask description#>
     ///   - data: <#data description#>
-    func urlSession(_: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) {
+    public func urlSession(_: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) {
         let taskId = dataTask.taskId
         let taskUrl = dataTask.taskUrl
         let downloadData = downloadTaskDatas[taskId]
@@ -124,7 +124,7 @@ extension PQSessionManager: URLSessionDataDelegate {
     ///   - session: <#session description#>
     ///   - task: <#task description#>
     ///   - error: <#error description#>
-    func urlSession(_: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) {
+    public func urlSession(_: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) {
         let taskId = task.taskId
         let taskUrl = task.taskUrl
         let downloadData = downloadTaskDatas[taskId]

+ 4 - 4
BFFramework/Classes/Base/ViewModel/PQUploadViewModel.swift

@@ -8,7 +8,7 @@
 
 import UIKit
 
-class PQUploadViewModel: NSObject {
+public class PQUploadViewModel: NSObject {
     /// 发布视频
     /// - Parameters:
     ///   - projectId 项目ID-发布创作的视频时必传,会在进入创作工具页时生成,以app_no_projectdata为前缀
@@ -19,7 +19,7 @@ class PQUploadViewModel: NSObject {
     ///   - descr: 描述
     ///   - videoFromScene 视频来源场景 1:普通上传 2:创作工具,3:普通上传转创作工具,4:后台转换加工,5:卡点视频制作
     /// - Returns: <#description#>
-    class func publishVideo(projectId: String?, fileExtensions: String?, title: String, videoPath: String, coverImgPath: String, descr: String, videoFromScene: videoFromScene, reCreateData: PQReCreateModel?, eventTrackData: PQVideoMakeEventTrackModel?, completeHander: @escaping (_ videoData: PQVideoListModel?, _ jsonDict: [String: Any]?, _ msg: String?) -> Void) {
+    class public func publishVideo(projectId: String?, fileExtensions: String?, title: String, videoPath: String, coverImgPath: String, descr: String, videoFromScene: videoFromScene, reCreateData: PQReCreateModel?, eventTrackData: PQVideoMakeEventTrackModel?, completeHander: @escaping (_ videoData: PQVideoListModel?, _ jsonDict: [String: Any]?, _ msg: String?) -> Void) {
         BFLog(message: "AKAKAAKprojectId is\(String(describing: projectId)) videoFromScene is \(videoFromScene)")
         SWNetRequest.postRequestData(url: PQENVUtil.shared.longvideoapi + videoSendUrl, parames: ["title": title, "fileExtensions": fileExtensions ?? "application/octet-stream", "videoPath": videoPath, "coverImgPath": coverImgPath, "descr": descr, "viewStatus": 1, "produceProjectId": (projectId ?? "") as String, "videoFromScene": videoFromScene.rawValue]) { response, _, error, _ in
             if error != nil {
@@ -74,7 +74,7 @@ class PQUploadViewModel: NSObject {
     ///   - descr: 描述
     ///   - completeHander: <#completeHander description#>
     /// - Returns: <#description#>
-    class func updateVideo(title: String, videoId: String, coverImgPath: String, descr: String, completeHander: @escaping (_ videoData: PQVideoListModel?, _ msg: String?) -> Void) {
+   public class func updateVideo(title: String, videoId: String, coverImgPath: String, descr: String, completeHander: @escaping (_ videoData: PQVideoListModel?, _ msg: String?) -> Void) {
         SWNetRequest.postRequestData(url: PQENVUtil.shared.longvideoapi + updateVideoUrl, parames: ["title": title, "videoId": videoId, "coverImgPath": coverImgPath, "descr": descr, "viewStatus": 1, "barrageSwitch": 1]) { response, _, error, _ in
             if error != nil {
                 completeHander(nil, error?.msg)
@@ -94,7 +94,7 @@ class PQUploadViewModel: NSObject {
     ///   - totalTime: 总时长
     ///   - completeHander: <#completeHander description#>
     /// - Returns: <#description#>
-    class func vodeoCoverImageList(videoId: String, videoPath: String, totalTime: Int, videoHeight: CGFloat, videoWidth: CGFloat, completeHander: @escaping (_ coverImages: [PQUploadModel]?, _ msg: String?) -> Void) {
+    class public func vodeoCoverImageList(videoId: String, videoPath: String, totalTime: Int, videoHeight: CGFloat, videoWidth: CGFloat, completeHander: @escaping (_ coverImages: [PQUploadModel]?, _ msg: String?) -> Void) {
         SWNetRequest.postRequestData(url: PQENVUtil.shared.longvideoapi + vodeoCoverImageUrl, parames: ["id": videoId, "videoPath": videoPath, "totalTime": totalTime]) { response, _, error, _ in
             if error != nil {
                 completeHander(nil, error?.msg)