用户没有获取到权限的情况下弹窗提 示重新获取

This commit is contained in:
DDIsFriend
2023-11-17 17:59:05 +08:00
parent 59a11d6250
commit cfd5d93c71
7 changed files with 237 additions and 60 deletions

View File

@@ -1151,7 +1151,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 4.0.1; MARKETING_VERSION = 4.0.2;
PRODUCT_BUNDLE_IDENTIFIER = com.sino.supplier; PRODUCT_BUNDLE_IDENTIFIER = com.sino.supplier;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
@@ -1368,7 +1368,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 4.0.1; MARKETING_VERSION = 4.0.2;
PRODUCT_BUNDLE_IDENTIFIER = com.sino.supplier; PRODUCT_BUNDLE_IDENTIFIER = com.sino.supplier;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
@@ -1425,7 +1425,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 4.0.1; MARKETING_VERSION = 4.0.2;
PRODUCT_BUNDLE_IDENTIFIER = com.sino.supplier; PRODUCT_BUNDLE_IDENTIFIER = com.sino.supplier;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";

View File

@@ -3579,8 +3579,8 @@
filePath = "OrderScheduling/Global/User/UserPermission.swift" filePath = "OrderScheduling/Global/User/UserPermission.swift"
startingColumnNumber = "9223372036854775807" startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "32" startingLineNumber = "37"
endingLineNumber = "32" endingLineNumber = "37"
landmarkName = "init()" landmarkName = "init()"
landmarkType = "7"> landmarkType = "7">
</BreakpointContent> </BreakpointContent>
@@ -4845,5 +4845,101 @@
</Locations> </Locations>
</BreakpointContent> </BreakpointContent>
</BreakpointProxy> </BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "DD1381E7-616D-4126-9D53-127EE8F3C58D"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "OrderScheduling/Global/User/UserPermission.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "45"
endingLineNumber = "45"
landmarkName = "init()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "CFD576AC-73E3-415B-A980-0665A6FECA93"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Pods/DDNetworkingOfAlamofireKit_Private/DDNetworkingOfAlamofireKit_Private/Classes/DDAF.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "35"
endingLineNumber = "35"
landmarkName = "post(urlString:parameters:encoding:headers:responseType:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "A9FCC6E5-032F-4920-BD1A-EE1CA080F8C3"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "OrderScheduling/Global/User/UserPermission.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "118"
endingLineNumber = "118"
landmarkName = "init()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "01151435-003A-46C9-9FE1-43550ED213F5"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "OrderScheduling/Global/User/UserPermission.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "36"
endingLineNumber = "36"
landmarkName = "init()"
landmarkType = "7">
<Locations>
<Location
uuid = "01151435-003A-46C9-9FE1-43550ED213F5 - 57f4233fc3fbbbf9"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "OrderScheduling.UserPermission.init() -&gt; OrderScheduling.UserPermission"
moduleName = "OrderScheduling"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/zd/Desktop/%E4%B8%AD%E9%81%93%E6%95%91%E6%8F%B4/OrderScheduling/OrderScheduling/Global/User/UserPermission.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "36"
endingLineNumber = "36"
offsetFromSymbolStart = "828">
</Location>
<Location
uuid = "01151435-003A-46C9-9FE1-43550ED213F5 - f19df26092a59558"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "closure #2 (Swift.Optional&lt;Any&gt;, Swift.Bool) -&gt; RxSwift.PrimitiveSequence&lt;RxSwift.SingleTrait, Swift.Optional&lt;OrderScheduling.ResponseModel&lt;Swift.Array&lt;Swift.String&gt;&gt;&gt;&gt; in OrderScheduling.UserPermission.init() -&gt; OrderScheduling.UserPermission"
moduleName = "OrderScheduling"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/zd/Desktop/%E4%B8%AD%E9%81%93%E6%95%91%E6%8F%B4/OrderScheduling/OrderScheduling/Global/User/UserPermission.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "37"
endingLineNumber = "37"
offsetFromSymbolStart = "40">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
</Breakpoints> </Breakpoints>
</Bucket> </Bucket>

View File

@@ -362,6 +362,50 @@ open class Entry {
SwiftEntryKit.display(entry: view, using: attributes) 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 { public func isCurrentlyDisplaying(entryNamed name: String? = nil) -> Bool {
return SwiftEntryKit.isCurrentlyDisplaying(entryNamed: name) return SwiftEntryKit.isCurrentlyDisplaying(entryNamed: name)
} }

View File

@@ -25,70 +25,103 @@ open class UserPermission {
public var canSupplierRemarkBtn : Bool = false public var canSupplierRemarkBtn : Bool = false
public var canSupplierAuditEditCostBtn : Bool = false public var canSupplierAuditEditCostBtn : Bool = false
public var canSupplierAuditUploadPhotoBtn : Bool = false public var canSupplierAuditUploadPhotoBtn : Bool = false
lazy private var alert = CommonAlertView()
init() { init() {
Observable.combineLatest(relay, USER.refreshTokenSub) Observable.combineLatest(relay, USER.refreshTokenSub)
.observe(on: MainScheduler.instance)
.do(onNext: { (_,_) in
UIApplication.shared.dd_keyWindow.rootViewController?.view.dd_showHUD()
})
.flatMapLatest { (_,_) in .flatMapLatest { (_,_) in
return RQ.userOperationPermissions() 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 .subscribe(onNext: {[weak self] response in
self?.canRejectDispatchHandle = false if response?.success == true {
if response?.data?.contains(where: { value in self?.canRejectDispatchHandle = false
value == UserOperationPermissionsDataModel.DataEnum.rejectDispatchHandle.rawValue if response?.data?.contains(where: { value in
}) == true { value == UserOperationPermissionsDataModel.DataEnum.rejectDispatchHandle.rawValue
self?.canRejectDispatchHandle = true }) == true {
} self?.canRejectDispatchHandle = true
}
self?.canAcceptDispatchHandle = false self?.canAcceptDispatchHandle = false
if response?.data?.contains(where: { value in if response?.data?.contains(where: { value in
value == UserOperationPermissionsDataModel.DataEnum.acceptDispatchHandle.rawValue value == UserOperationPermissionsDataModel.DataEnum.acceptDispatchHandle.rawValue
}) == true { }) == true {
self?.canAcceptDispatchHandle = true self?.canAcceptDispatchHandle = true
} }
self?.canWaitdispatchBtn = false self?.canWaitdispatchBtn = false
if response?.data?.contains(where: { value in if response?.data?.contains(where: { value in
value == UserOperationPermissionsDataModel.DataEnum.waitdispatchBtn.rawValue value == UserOperationPermissionsDataModel.DataEnum.waitdispatchBtn.rawValue
}) == true { }) == true {
self?.canWaitdispatchBtn = true self?.canWaitdispatchBtn = true
} }
self?.canWaitModifyDispatchBtn = false self?.canWaitModifyDispatchBtn = false
if response?.data?.contains(where: { value in if response?.data?.contains(where: { value in
value == UserOperationPermissionsDataModel.DataEnum.waitModifyDispatchBtn.rawValue value == UserOperationPermissionsDataModel.DataEnum.waitModifyDispatchBtn.rawValue
}) == true { }) == true {
self?.canWaitModifyDispatchBtn = true self?.canWaitModifyDispatchBtn = true
} }
self?.canDealWith = false self?.canDealWith = false
if response?.data?.contains(where: { value in if response?.data?.contains(where: { value in
value == UserOperationPermissionsDataModel.DataEnum.dealWith.rawValue value == UserOperationPermissionsDataModel.DataEnum.dealWith.rawValue
}) == true { }) == true {
self?.canDealWith = true self?.canDealWith = true
} }
self?.canSupplierRemarkBtn = false self?.canSupplierRemarkBtn = false
if response?.data?.contains(where: { value in if response?.data?.contains(where: { value in
value == UserOperationPermissionsDataModel.DataEnum.supplierRemarkBtn.rawValue value == UserOperationPermissionsDataModel.DataEnum.supplierRemarkBtn.rawValue
}) == true { }) == true {
self?.canSupplierRemarkBtn = true self?.canSupplierRemarkBtn = true
} }
self?.canSupplierAuditEditCostBtn = false self?.canSupplierAuditEditCostBtn = false
if response?.data?.contains(where: { value in if response?.data?.contains(where: { value in
value == UserOperationPermissionsDataModel.DataEnum.supplierAuditEditCostBtn.rawValue value == UserOperationPermissionsDataModel.DataEnum.supplierAuditEditCostBtn.rawValue
}) == true { }) == true {
self?.canSupplierAuditEditCostBtn = true self?.canSupplierAuditEditCostBtn = true
} }
self?.canSupplierAuditUploadPhotoBtn = false self?.canSupplierAuditUploadPhotoBtn = false
if response?.data?.contains(where: { value in if response?.data?.contains(where: { value in
value == UserOperationPermissionsDataModel.DataEnum.supplierAuditUploadPhotoBtn.rawValue value == UserOperationPermissionsDataModel.DataEnum.supplierAuditUploadPhotoBtn.rawValue
}) == true { }) == true {
self?.canSupplierAuditUploadPhotoBtn = true self?.canSupplierAuditUploadPhotoBtn = true
} }
self?.userPermissionRelay.accept(response?.data) self?.userPermissionRelay.accept(response?.data)
}else{
if let alert = self?.alert {
alert.contentLabel.text = notObtainUserPermissions
ENTRY.showUserPermissionsEntry(view: alert,name: notObtainUserPermissionsEntry)
}
}
})
.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)
alert.cancelButton.rx.tap
.observe(on: MainScheduler.instance)
.subscribe(onNext: { _ in
exit(0)
}) })
.disposed(by: disposeBag) .disposed(by: disposeBag)
} }

View File

@@ -22,3 +22,5 @@ public let acceptOrderViewEntry = "acceptOrderViewEntry"
public let pushNotiCommonViewEntry = "pushNotiCommonViewEntry" public let pushNotiCommonViewEntry = "pushNotiCommonViewEntry"
public let vehicleLogoutEntry = "vehicleLogoutEntry" public let vehicleLogoutEntry = "vehicleLogoutEntry"
public let notObtainUserPermissionsEntry = "notObtainPermissionsEntry"

View File

@@ -24,3 +24,5 @@ public let dispatchOrderInputLicense = "请输入救援车车牌"
public let dispatchOrderSuccess = "派单成功" public let dispatchOrderSuccess = "派单成功"
public let isTheNewestVserion = "已是最新版本" public let isTheNewestVserion = "已是最新版本"
public let notObtainUserPermissions = "未获取到账号权限信息(影响接单派单),点击确认重新获取权限(点击取消将会退出应用)。"