parent
86bc47ca7f
commit
1f1cb1ba55
|
|
@ -4,7 +4,7 @@
|
||||||
<selectionStates>
|
<selectionStates>
|
||||||
<SelectionState runConfigName="app">
|
<SelectionState runConfigName="app">
|
||||||
<option name="selectionMode" value="DROPDOWN" />
|
<option name="selectionMode" value="DROPDOWN" />
|
||||||
<DropdownSelection timestamp="2026-03-12T03:05:40.770377400Z">
|
<DropdownSelection timestamp="2026-03-12T07:23:49.466247900Z">
|
||||||
<Target type="DEFAULT_BOOT">
|
<Target type="DEFAULT_BOOT">
|
||||||
<handle>
|
<handle>
|
||||||
<DeviceId pluginId="PhysicalDevice" identifier="serial=JRBI89BIE6AI5TG6" />
|
<DeviceId pluginId="PhysicalDevice" identifier="serial=JRBI89BIE6AI5TG6" />
|
||||||
|
|
|
||||||
|
|
@ -224,7 +224,7 @@ fun MainScreen(generalViewModel: GeneralViewModel, loginViewModel: LoginViewMode
|
||||||
AccountBindScreen(navController = navController)
|
AccountBindScreen(navController = navController)
|
||||||
}
|
}
|
||||||
composable(ScreenRoute.ManagerAccount.route) {
|
composable(ScreenRoute.ManagerAccount.route) {
|
||||||
AccountManagerScreen(navController = navController, loginViewModel = loginViewModel)
|
AccountManagerScreen(navController = navController)
|
||||||
}
|
}
|
||||||
composable(ScreenRoute.AboutMine.route) {
|
composable(ScreenRoute.AboutMine.route) {
|
||||||
AboutScreen(navController = navController)
|
AboutScreen(navController = navController)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package com.img.rabbit.pages.screen.mine.setting
|
package com.img.rabbit.pages.screen.mine.setting
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
|
||||||
import androidx.compose.foundation.Image
|
import androidx.compose.foundation.Image
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.border
|
import androidx.compose.foundation.border
|
||||||
|
|
@ -34,7 +33,6 @@ import androidx.compose.ui.draw.scale
|
||||||
import androidx.compose.ui.draw.shadow
|
import androidx.compose.ui.draw.shadow
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.layout.ContentScale
|
import androidx.compose.ui.layout.ContentScale
|
||||||
import androidx.compose.ui.platform.LocalContext
|
|
||||||
import androidx.compose.ui.res.painterResource
|
import androidx.compose.ui.res.painterResource
|
||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
|
|
@ -51,20 +49,16 @@ import com.img.rabbit.components.CenterToast
|
||||||
import com.img.rabbit.pages.dialog.TipsDialog
|
import com.img.rabbit.pages.dialog.TipsDialog
|
||||||
import com.img.rabbit.pages.toolbar.TitleBar
|
import com.img.rabbit.pages.toolbar.TitleBar
|
||||||
import com.img.rabbit.provider.storage.PreferenceUtil
|
import com.img.rabbit.provider.storage.PreferenceUtil
|
||||||
import com.img.rabbit.utils.AppEventBus
|
|
||||||
import com.img.rabbit.utils.LoginBindEvent
|
|
||||||
import com.img.rabbit.viewmodel.AccountManagerViewModel
|
import com.img.rabbit.viewmodel.AccountManagerViewModel
|
||||||
import com.img.rabbit.viewmodel.LoginViewModel
|
import com.img.rabbit.viewmodel.LoginViewModel
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
|
|
||||||
@SuppressLint("UnrememberedMutableState")
|
|
||||||
@Composable
|
@Composable
|
||||||
fun AccountManagerScreen(navController: NavHostController, viewModel: AccountManagerViewModel = viewModel(), loginViewModel: LoginViewModel) {
|
fun AccountManagerScreen(navController: NavHostController, viewModel: AccountManagerViewModel = viewModel()) {
|
||||||
val context = LocalContext.current
|
var showDialogStatus by remember { mutableStateOf(false) }
|
||||||
var showDialogStatus by mutableStateOf(false)
|
var selectedUserInfo by remember { mutableStateOf<UserInfoEntity?>(null) }
|
||||||
var selectedUserInfo by mutableStateOf<UserInfoEntity?>(null)
|
|
||||||
|
|
||||||
val userList by remember { viewModel.accountState }
|
val userList by viewModel.accountState
|
||||||
|
|
||||||
LaunchedEffect(Unit) {
|
LaunchedEffect(Unit) {
|
||||||
viewModel.requestAccount()
|
viewModel.requestAccount()
|
||||||
|
|
@ -72,11 +66,6 @@ fun AccountManagerScreen(navController: NavHostController, viewModel: AccountMan
|
||||||
|
|
||||||
LaunchedEffect(viewModel.switchState.value) {
|
LaunchedEffect(viewModel.switchState.value) {
|
||||||
if (viewModel.switchState.value != null && viewModel.switchState.value?.data?.token != null) {
|
if (viewModel.switchState.value != null && viewModel.switchState.value?.data?.token != null) {
|
||||||
val loginInfo = viewModel.switchState.value?.data
|
|
||||||
PreferenceUtil.saveLoginType(null)
|
|
||||||
loginInfo?.let { PreferenceUtil.saveLoginInfo(it) }
|
|
||||||
PreferenceUtil.saveAccessToken(viewModel.switchState.value?.data?.token)
|
|
||||||
AppEventBus.post( LoginBindEvent.Login(userId = loginInfo?.user_id?:"", loginType = null, isLogin = true, data = loginInfo) )
|
|
||||||
CenterToast.show("切换账号成功!")
|
CenterToast.show("切换账号成功!")
|
||||||
|
|
||||||
//延迟执行,确保返回时,接口已经拿到最新的用户信息
|
//延迟执行,确保返回时,接口已经拿到最新的用户信息
|
||||||
|
|
@ -336,5 +325,5 @@ private fun AddItem(navController: NavController){
|
||||||
@Preview(showBackground = true)
|
@Preview(showBackground = true)
|
||||||
@Composable
|
@Composable
|
||||||
private fun PreviewAccountManagerScreen(){
|
private fun PreviewAccountManagerScreen(){
|
||||||
AccountManagerScreen(navController = rememberNavController(), loginViewModel = viewModel())
|
AccountManagerScreen(navController = rememberNavController())
|
||||||
}
|
}
|
||||||
|
|
@ -8,6 +8,9 @@ import com.img.rabbit.bean.response.LoginInfoEntity
|
||||||
import com.img.rabbit.bean.response.UserInfoEntity
|
import com.img.rabbit.bean.response.UserInfoEntity
|
||||||
import com.img.rabbit.provider.api.ApiManager
|
import com.img.rabbit.provider.api.ApiManager
|
||||||
import com.img.rabbit.provider.api.ResultVo
|
import com.img.rabbit.provider.api.ResultVo
|
||||||
|
import com.img.rabbit.provider.storage.PreferenceUtil
|
||||||
|
import com.img.rabbit.utils.AppEventBus
|
||||||
|
import com.img.rabbit.utils.LoginBindEvent
|
||||||
import okhttp3.RequestBody.Companion.toRequestBody
|
import okhttp3.RequestBody.Companion.toRequestBody
|
||||||
|
|
||||||
class AccountManagerViewModel : BaseViewModel() {
|
class AccountManagerViewModel : BaseViewModel() {
|
||||||
|
|
@ -43,6 +46,11 @@ class AccountManagerViewModel : BaseViewModel() {
|
||||||
mLaunch {
|
mLaunch {
|
||||||
val response = ApiManager.serviceVo.login(jsonObject.toString().toRequestBody())
|
val response = ApiManager.serviceVo.login(jsonObject.toString().toRequestBody())
|
||||||
if (response.status) {
|
if (response.status) {
|
||||||
|
val loginInfo = response.data
|
||||||
|
PreferenceUtil.saveLoginType(null)
|
||||||
|
PreferenceUtil.saveLoginInfo(loginInfo)
|
||||||
|
PreferenceUtil.saveAccessToken(loginInfo.token)
|
||||||
|
AppEventBus.post( LoginBindEvent.Login(userId = loginInfo.user_id, loginType = null, isLogin = true, data = loginInfo) )
|
||||||
// 处理切换账号
|
// 处理切换账号
|
||||||
switchState.value = response
|
switchState.value = response
|
||||||
}else{
|
}else{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue