修复账号切换后「我的」页当前账号展示错误,并统一举报摄影师首页 URI。
切换账号时以用户选中账号为准写入展示标题与业务作用域,避免沿用旧门店名称;同时将首页举报摄影师入口 URI 对齐为 report_photographer。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -212,7 +212,8 @@ struct AccountSwitchView: View {
|
||||
accountContext: accountContext,
|
||||
permissionContext: permissionContext,
|
||||
profileAPI: profileAPI,
|
||||
accountContextAPI: accountContextAPI
|
||||
accountContextAPI: accountContextAPI,
|
||||
selectedAccount: account
|
||||
)
|
||||
}
|
||||
appRouter.reset()
|
||||
@ -226,14 +227,7 @@ struct AccountSwitchView: View {
|
||||
}
|
||||
|
||||
private var currentAccountId: String? {
|
||||
guard let current = accountContext.profile else { return nil }
|
||||
if let store = accountContext.currentStore {
|
||||
return "\(V9StoreUser.accountTypeValue)_\(store.id)"
|
||||
}
|
||||
if let scenic = accountContext.currentScenic {
|
||||
return "\(V9ScenicUser.accountTypeValue)_\(scenic.id)"
|
||||
}
|
||||
return current.userId.isEmpty ? nil : current.userId
|
||||
accountContext.currentAccountIdentifier
|
||||
}
|
||||
|
||||
/// 判断账号是否为当前已选账号。
|
||||
|
||||
@ -494,20 +494,51 @@ struct ProfileView: View {
|
||||
}
|
||||
|
||||
private var currentAccountDisplayName: String {
|
||||
nonEmpty(accountContext.currentAccountDisplayTitle)
|
||||
?? (isStoreAccountContext ? resolvedStoreAccountName : resolvedScenicAccountName)
|
||||
}
|
||||
|
||||
/// 门店账号展示名:优先门店名称,不回退到景区名称。
|
||||
private var resolvedStoreAccountName: String {
|
||||
nonEmpty(accountContext.currentStore?.name)
|
||||
?? nonEmpty(accountContext.currentScenic?.name)
|
||||
?? accountContext.profile?.displayName
|
||||
?? nonEmpty(matchedStoreScope?.name)
|
||||
?? nonEmpty(accountContext.profile?.displayName)
|
||||
?? viewModel.displayNickname
|
||||
}
|
||||
|
||||
/// 景区账号展示名:优先景区名称。
|
||||
private var resolvedScenicAccountName: String {
|
||||
nonEmpty(accountContext.currentScenic?.name)
|
||||
?? nonEmpty(accountContext.profile?.displayName)
|
||||
?? viewModel.displayNickname
|
||||
}
|
||||
|
||||
/// 当前上下文是否应按门店账号展示。
|
||||
private var isStoreAccountContext: Bool {
|
||||
accountContext.accountType == V9StoreUser.accountTypeValue
|
||||
}
|
||||
|
||||
/// 从门店作用域中匹配当前门店,用于 currentStore 尚未就绪时的展示兜底。
|
||||
private var matchedStoreScope: BusinessScope? {
|
||||
if let currentStore = accountContext.currentStore {
|
||||
return currentStore
|
||||
}
|
||||
guard accountContext.accountType == V9StoreUser.accountTypeValue else { return nil }
|
||||
if accountContext.storeScopes.count == 1 {
|
||||
return accountContext.storeScopes.first
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
private var currentAccountTypeText: String {
|
||||
if accountContext.currentStore != nil {
|
||||
switch accountContext.accountType {
|
||||
case V9StoreUser.accountTypeValue:
|
||||
return "门店账号"
|
||||
}
|
||||
if accountContext.currentScenic != nil {
|
||||
case V9ScenicUser.accountTypeValue:
|
||||
return "景区账号"
|
||||
default:
|
||||
return nonEmpty(viewModel.userInfo?.roleName) ?? "账号"
|
||||
}
|
||||
return nonEmpty(viewModel.userInfo?.roleName) ?? "账号"
|
||||
}
|
||||
|
||||
private var nicknameBinding: Binding<String> {
|
||||
|
||||
Reference in New Issue
Block a user