diff --git a/OrderScheduling.xcodeproj/project.pbxproj b/OrderScheduling.xcodeproj/project.pbxproj index ce2d8c9..c293962 100644 --- a/OrderScheduling.xcodeproj/project.pbxproj +++ b/OrderScheduling.xcodeproj/project.pbxproj @@ -1151,7 +1151,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 4.0.1; + MARKETING_VERSION = 4.0.2; PRODUCT_BUNDLE_IDENTIFIER = com.sino.supplier; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -1368,7 +1368,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 4.0.1; + MARKETING_VERSION = 4.0.2; PRODUCT_BUNDLE_IDENTIFIER = com.sino.supplier; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -1425,7 +1425,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 4.0.1; + MARKETING_VERSION = 4.0.2; PRODUCT_BUNDLE_IDENTIFIER = com.sino.supplier; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/UserInterfaceState.xcuserstate b/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/UserInterfaceState.xcuserstate index 7a88a06..c186676 100644 Binary files a/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/UserInterfaceState.xcuserstate and b/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index c10b0c3..e22a5af 100644 --- a/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -3579,8 +3579,8 @@ filePath = "OrderScheduling/Global/User/UserPermission.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "32" - endingLineNumber = "32" + startingLineNumber = "37" + endingLineNumber = "37" landmarkName = "init()" landmarkType = "7"> @@ -4845,5 +4845,101 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/OrderScheduling/Entry/Entry.swift b/OrderScheduling/Entry/Entry.swift index 3ac58f7..3fda4ea 100644 --- a/OrderScheduling/Entry/Entry.swift +++ b/OrderScheduling/Entry/Entry.swift @@ -362,6 +362,50 @@ open class Entry { SwiftEntryKit.display(entry: view, using: attributes) } + func showUserPermissionsEntry(view:UIView,name:String? = nil) { + var attributes = EKAttributes() + attributes = .centerFloat + attributes.name = name + attributes.precedence = .override(priority: .normal, dropEnqueuedEntries: false) + attributes.displayMode = .inferred + attributes.displayDuration = .infinity + attributes.screenBackground = .color(color: .clear) + attributes.entryBackground = .color(color: .white) + attributes.screenInteraction = .absorbTouches + attributes.entryInteraction = .absorbTouches + attributes.scroll = .disabled + attributes.entranceAnimation = .init( + translate: .init( + duration: 0.25, + spring: .init(damping: 1, initialVelocity: 0) + ) + ) + attributes.exitAnimation = .init( + translate: .init(duration: 0.25) + ) + attributes.popBehavior = .animated( + animation: .init( + translate: .init(duration: 0.25) + ) + ) + attributes.shadow = .active( + with: .init( + color: .black, + opacity: 0.3, + radius: 6 + ) + ) + attributes.positionConstraints.size = .init( + width: .constant(value: auto(280)), + height: .constant(value: auto(130)) + ) + attributes.positionConstraints.verticalOffset = 0 + attributes.positionConstraints.safeArea = .overridden + attributes.positionConstraints.rotation.isEnabled = false + attributes.statusBar = .light + SwiftEntryKit.display(entry: view, using: attributes) + } + public func isCurrentlyDisplaying(entryNamed name: String? = nil) -> Bool { return SwiftEntryKit.isCurrentlyDisplaying(entryNamed: name) } diff --git a/OrderScheduling/Global/User/UserPermission.swift b/OrderScheduling/Global/User/UserPermission.swift index e67cb69..ad3211e 100644 --- a/OrderScheduling/Global/User/UserPermission.swift +++ b/OrderScheduling/Global/User/UserPermission.swift @@ -25,70 +25,103 @@ open class UserPermission { public var canSupplierRemarkBtn : Bool = false public var canSupplierAuditEditCostBtn : Bool = false public var canSupplierAuditUploadPhotoBtn : Bool = false - + lazy private var alert = CommonAlertView() + init() { Observable.combineLatest(relay, USER.refreshTokenSub) + .observe(on: MainScheduler.instance) + .do(onNext: { (_,_) in + UIApplication.shared.dd_keyWindow.rootViewController?.view.dd_showHUD() + }) .flatMapLatest { (_,_) in return RQ.userOperationPermissions() } + .observe(on: MainScheduler.instance) + .do(onNext: { _ in + UIApplication.shared.dd_keyWindow.rootViewController?.view.dd_hideHUD() + }) + .observe(on: MainScheduler.instance) .subscribe(onNext: {[weak self] response in - self?.canRejectDispatchHandle = false - if response?.data?.contains(where: { value in - value == UserOperationPermissionsDataModel.DataEnum.rejectDispatchHandle.rawValue - }) == true { - self?.canRejectDispatchHandle = true + if response?.success == true { + self?.canRejectDispatchHandle = false + if response?.data?.contains(where: { value in + value == UserOperationPermissionsDataModel.DataEnum.rejectDispatchHandle.rawValue + }) == true { + self?.canRejectDispatchHandle = true + } + + self?.canAcceptDispatchHandle = false + if response?.data?.contains(where: { value in + value == UserOperationPermissionsDataModel.DataEnum.acceptDispatchHandle.rawValue + }) == true { + self?.canAcceptDispatchHandle = true + } + + self?.canWaitdispatchBtn = false + if response?.data?.contains(where: { value in + value == UserOperationPermissionsDataModel.DataEnum.waitdispatchBtn.rawValue + }) == true { + self?.canWaitdispatchBtn = true + } + + self?.canWaitModifyDispatchBtn = false + if response?.data?.contains(where: { value in + value == UserOperationPermissionsDataModel.DataEnum.waitModifyDispatchBtn.rawValue + }) == true { + self?.canWaitModifyDispatchBtn = true + } + + self?.canDealWith = false + if response?.data?.contains(where: { value in + value == UserOperationPermissionsDataModel.DataEnum.dealWith.rawValue + }) == true { + self?.canDealWith = true + } + + self?.canSupplierRemarkBtn = false + if response?.data?.contains(where: { value in + value == UserOperationPermissionsDataModel.DataEnum.supplierRemarkBtn.rawValue + }) == true { + self?.canSupplierRemarkBtn = true + } + + self?.canSupplierAuditEditCostBtn = false + if response?.data?.contains(where: { value in + value == UserOperationPermissionsDataModel.DataEnum.supplierAuditEditCostBtn.rawValue + }) == true { + self?.canSupplierAuditEditCostBtn = true + } + + self?.canSupplierAuditUploadPhotoBtn = false + if response?.data?.contains(where: { value in + value == UserOperationPermissionsDataModel.DataEnum.supplierAuditUploadPhotoBtn.rawValue + }) == true { + self?.canSupplierAuditUploadPhotoBtn = true + } + + self?.userPermissionRelay.accept(response?.data) + }else{ + if let alert = self?.alert { + alert.contentLabel.text = notObtainUserPermissions + ENTRY.showUserPermissionsEntry(view: alert,name: notObtainUserPermissionsEntry) + } } - - self?.canAcceptDispatchHandle = false - if response?.data?.contains(where: { value in - value == UserOperationPermissionsDataModel.DataEnum.acceptDispatchHandle.rawValue - }) == true { - self?.canAcceptDispatchHandle = true + }) + .disposed(by: disposeBag) + + alert.sureButton.rx.tap + .observe(on: MainScheduler.instance) + .subscribe(onNext: {[weak self] _ in + ENTRY.dismiss(name: notObtainUserPermissionsEntry) {[weak self] in + self?.relay.accept(nil) } + }) + .disposed(by: disposeBag) - self?.canWaitdispatchBtn = false - if response?.data?.contains(where: { value in - value == UserOperationPermissionsDataModel.DataEnum.waitdispatchBtn.rawValue - }) == true { - self?.canWaitdispatchBtn = true - } - - self?.canWaitModifyDispatchBtn = false - if response?.data?.contains(where: { value in - value == UserOperationPermissionsDataModel.DataEnum.waitModifyDispatchBtn.rawValue - }) == true { - self?.canWaitModifyDispatchBtn = true - } - - self?.canDealWith = false - if response?.data?.contains(where: { value in - value == UserOperationPermissionsDataModel.DataEnum.dealWith.rawValue - }) == true { - self?.canDealWith = true - } - - self?.canSupplierRemarkBtn = false - if response?.data?.contains(where: { value in - value == UserOperationPermissionsDataModel.DataEnum.supplierRemarkBtn.rawValue - }) == true { - self?.canSupplierRemarkBtn = true - } - - self?.canSupplierAuditEditCostBtn = false - if response?.data?.contains(where: { value in - value == UserOperationPermissionsDataModel.DataEnum.supplierAuditEditCostBtn.rawValue - }) == true { - self?.canSupplierAuditEditCostBtn = true - } - - self?.canSupplierAuditUploadPhotoBtn = false - if response?.data?.contains(where: { value in - value == UserOperationPermissionsDataModel.DataEnum.supplierAuditUploadPhotoBtn.rawValue - }) == true { - self?.canSupplierAuditUploadPhotoBtn = true - } - - self?.userPermissionRelay.accept(response?.data) + alert.cancelButton.rx.tap + .observe(on: MainScheduler.instance) + .subscribe(onNext: { _ in + exit(0) }) .disposed(by: disposeBag) } diff --git a/OrderScheduling/Strings/EntryStrings.swift b/OrderScheduling/Strings/EntryStrings.swift index 5a17cd6..6c48592 100644 --- a/OrderScheduling/Strings/EntryStrings.swift +++ b/OrderScheduling/Strings/EntryStrings.swift @@ -22,3 +22,5 @@ public let acceptOrderViewEntry = "acceptOrderViewEntry" public let pushNotiCommonViewEntry = "pushNotiCommonViewEntry" public let vehicleLogoutEntry = "vehicleLogoutEntry" + +public let notObtainUserPermissionsEntry = "notObtainPermissionsEntry" diff --git a/OrderScheduling/Strings/LocalizedStrings.swift b/OrderScheduling/Strings/LocalizedStrings.swift index f39a7f8..768e399 100644 --- a/OrderScheduling/Strings/LocalizedStrings.swift +++ b/OrderScheduling/Strings/LocalizedStrings.swift @@ -24,3 +24,5 @@ public let dispatchOrderInputLicense = "请输入救援车车牌" public let dispatchOrderSuccess = "派单成功" public let isTheNewestVserion = "已是最新版本" + +public let notObtainUserPermissions = "未获取到账号权限信息(影响接单派单),点击确认重新获取权限(点击取消将会退出应用)。"