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 = "未获取到账号权限信息(影响接单派单),点击确认重新获取权限(点击取消将会退出应用)。"