Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
ethan
/
appframe
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Commit 6cfc527e
authored
2026-01-23 15:45:58 +0800
by
tanghuan
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
账号与安全中增加学生信息
1 parent
c3934af4
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
131 additions
and
2 deletions
lib/bloc/login_main_cubit.dart
lib/bloc/login_phone_cubit.dart
lib/bloc/login_qr_cubit.dart
lib/bloc/setting/account_cubit.dart
lib/data/repositories/message/role_info_handler.dart
lib/ui/pages/setting/account_page.dart
lib/bloc/login_main_cubit.dart
View file @
6cfc527
...
@@ -244,6 +244,9 @@ class LoginMainCubit extends Cubit<LoginMainState> {
...
@@ -244,6 +244,9 @@ class LoginMainCubit extends Cubit<LoginMainState> {
var
classCode
=
''
;
var
classCode
=
''
;
var
userType
=
0
;
var
userType
=
0
;
var
stuId
=
''
;
var
stuId
=
''
;
var
className
=
''
;
var
stuName
=
''
;
var
relation
=
''
;
var
sharedPreferences
=
getIt
.
get
<
SharedPreferences
>();
var
sharedPreferences
=
getIt
.
get
<
SharedPreferences
>();
...
@@ -252,6 +255,9 @@ class LoginMainCubit extends Cubit<LoginMainState> {
...
@@ -252,6 +255,9 @@ class LoginMainCubit extends Cubit<LoginMainState> {
classCode
=
role
[
'classCode'
];
classCode
=
role
[
'classCode'
];
userType
=
role
[
'userType'
];
userType
=
role
[
'userType'
];
stuId
=
role
[
'stuId'
];
stuId
=
role
[
'stuId'
];
className
=
role
[
'className'
];
stuName
=
role
[
'stuName'
];
relation
=
role
[
'relation'
]
??
''
;
List
<
String
>
classIdList
=
[];
List
<
String
>
classIdList
=
[];
for
(
var
role
in
roles
)
{
for
(
var
role
in
roles
)
{
...
@@ -295,6 +301,9 @@ class LoginMainCubit extends Cubit<LoginMainState> {
...
@@ -295,6 +301,9 @@ class LoginMainCubit extends Cubit<LoginMainState> {
sharedPreferences
.
setString
(
'auth_classCode'
,
classCode
);
sharedPreferences
.
setString
(
'auth_classCode'
,
classCode
);
sharedPreferences
.
setInt
(
'auth_userType'
,
userType
);
sharedPreferences
.
setInt
(
'auth_userType'
,
userType
);
sharedPreferences
.
setString
(
'auth_stuId'
,
stuId
);
sharedPreferences
.
setString
(
'auth_stuId'
,
stuId
);
sharedPreferences
.
setString
(
'auth_className'
,
className
);
sharedPreferences
.
setString
(
'auth_stuName'
,
stuName
);
sharedPreferences
.
setString
(
'auth_relation'
,
relation
);
debugPrint
(
'loginType:
${state.loginType}
appleUid:
${state.appleUserIdentifier}
'
);
debugPrint
(
'loginType:
${state.loginType}
appleUid:
${state.appleUserIdentifier}
'
);
// 针对 Apple 登录
// 针对 Apple 登录
...
...
lib/bloc/login_phone_cubit.dart
View file @
6cfc527
...
@@ -157,6 +157,9 @@ class LoginPhoneCubit extends Cubit<LoginPhoneState> {
...
@@ -157,6 +157,9 @@ class LoginPhoneCubit extends Cubit<LoginPhoneState> {
var
classCode
=
''
;
var
classCode
=
''
;
var
userType
=
0
;
var
userType
=
0
;
var
stuId
=
''
;
var
stuId
=
''
;
var
className
=
''
;
var
stuName
=
''
;
var
relation
=
''
;
var
sharedPreferences
=
getIt
.
get
<
SharedPreferences
>();
var
sharedPreferences
=
getIt
.
get
<
SharedPreferences
>();
...
@@ -165,6 +168,9 @@ class LoginPhoneCubit extends Cubit<LoginPhoneState> {
...
@@ -165,6 +168,9 @@ class LoginPhoneCubit extends Cubit<LoginPhoneState> {
classCode
=
role
[
'classCode'
];
classCode
=
role
[
'classCode'
];
userType
=
role
[
'userType'
];
userType
=
role
[
'userType'
];
stuId
=
role
[
'stuId'
];
stuId
=
role
[
'stuId'
];
className
=
role
[
'className'
];
stuName
=
role
[
'stuName'
];
relation
=
role
[
'relation'
]
??
''
;
// 将角色中的班级数据处理后,进行缓存
// 将角色中的班级数据处理后,进行缓存
List
<
String
>
classIdList
=
[];
List
<
String
>
classIdList
=
[];
...
@@ -211,6 +217,9 @@ class LoginPhoneCubit extends Cubit<LoginPhoneState> {
...
@@ -211,6 +217,9 @@ class LoginPhoneCubit extends Cubit<LoginPhoneState> {
sharedPreferences
.
setString
(
'auth_classCode'
,
classCode
);
sharedPreferences
.
setString
(
'auth_classCode'
,
classCode
);
sharedPreferences
.
setInt
(
'auth_userType'
,
userType
);
sharedPreferences
.
setInt
(
'auth_userType'
,
userType
);
sharedPreferences
.
setString
(
'auth_stuId'
,
stuId
);
sharedPreferences
.
setString
(
'auth_stuId'
,
stuId
);
sharedPreferences
.
setString
(
'auth_className'
,
className
);
sharedPreferences
.
setString
(
'auth_stuName'
,
stuName
);
sharedPreferences
.
setString
(
'auth_relation'
,
relation
);
router
.
go
(
router
.
go
(
'/web'
,
'/web'
,
...
...
lib/bloc/login_qr_cubit.dart
View file @
6cfc527
...
@@ -150,15 +150,26 @@ class LoginQrCubit extends Cubit<LoginQrState> {
...
@@ -150,15 +150,26 @@ class LoginQrCubit extends Cubit<LoginQrState> {
}
}
var
data
=
resultData
[
'data'
]
as
Map
<
String
,
dynamic
>;
var
data
=
resultData
[
'data'
]
as
Map
<
String
,
dynamic
>;
_handleLoginSuccess
(
data
);
}
void
_handleLoginSuccess
(
Map
<
String
,
dynamic
>
data
)
{
var
roles
=
data
[
'roles'
];
var
roles
=
data
[
'roles'
];
// 过滤出家长角色的数据
// 过滤出家长角色的数据
roles
.
removeWhere
((
element
)
=>
element
[
'userType'
]
!=
2
);
if
(
roles
?.
isNotEmpty
??
false
)
{
roles
.
removeWhere
((
element
)
=>
element
[
'userType'
]
!=
2
);
}
else
{
roles
=
[];
}
var
sessionCode
=
data
[
'sessionCode'
];
var
sessionCode
=
data
[
'sessionCode'
];
var
userCode
=
data
[
'userCode'
];
var
userCode
=
data
[
'userCode'
];
var
classCode
=
''
;
var
classCode
=
''
;
var
userType
=
0
;
var
userType
=
0
;
var
stuId
=
''
;
var
stuId
=
''
;
var
className
=
''
;
var
stuName
=
''
;
var
relation
=
''
;
var
sharedPreferences
=
getIt
.
get
<
SharedPreferences
>();
var
sharedPreferences
=
getIt
.
get
<
SharedPreferences
>();
...
@@ -167,6 +178,9 @@ class LoginQrCubit extends Cubit<LoginQrState> {
...
@@ -167,6 +178,9 @@ class LoginQrCubit extends Cubit<LoginQrState> {
classCode
=
role
[
'classCode'
];
classCode
=
role
[
'classCode'
];
userType
=
role
[
'userType'
];
userType
=
role
[
'userType'
];
stuId
=
role
[
'stuId'
];
stuId
=
role
[
'stuId'
];
className
=
role
[
'className'
];
stuName
=
role
[
'stuName'
];
relation
=
role
[
'relation'
];
// 将角色中的班级数据处理后,进行缓存
// 将角色中的班级数据处理后,进行缓存
List
<
String
>
classIdList
=
[];
List
<
String
>
classIdList
=
[];
...
@@ -194,7 +208,7 @@ class LoginQrCubit extends Cubit<LoginQrState> {
...
@@ -194,7 +208,7 @@ class LoginQrCubit extends Cubit<LoginQrState> {
if
(
preClassCode
!=
''
&&
if
(
preClassCode
!=
''
&&
roles
.
any
((
element
)
=>
roles
.
any
((
element
)
=>
element
[
'classCode'
]
==
preClassCode
&&
element
[
'classCode'
]
==
preClassCode
&&
element
[
'userType'
]
==
preUserType
&&
element
[
'userType'
]
==
preUserType
&&
element
[
'stuId'
]
==
preStuId
))
{
element
[
'stuId'
]
==
preStuId
))
{
classCode
=
preClassCode
;
classCode
=
preClassCode
;
...
@@ -213,6 +227,9 @@ class LoginQrCubit extends Cubit<LoginQrState> {
...
@@ -213,6 +227,9 @@ class LoginQrCubit extends Cubit<LoginQrState> {
sharedPreferences
.
setString
(
'auth_classCode'
,
classCode
);
sharedPreferences
.
setString
(
'auth_classCode'
,
classCode
);
sharedPreferences
.
setInt
(
'auth_userType'
,
userType
);
sharedPreferences
.
setInt
(
'auth_userType'
,
userType
);
sharedPreferences
.
setString
(
'auth_stuId'
,
stuId
);
sharedPreferences
.
setString
(
'auth_stuId'
,
stuId
);
sharedPreferences
.
setString
(
'auth_className'
,
className
);
sharedPreferences
.
setString
(
'auth_stuName'
,
stuName
);
sharedPreferences
.
setString
(
'auth_relation'
,
relation
);
router
.
go
(
router
.
go
(
'/web'
,
'/web'
,
...
...
lib/bloc/setting/account_cubit.dart
View file @
6cfc527
...
@@ -12,12 +12,18 @@ class AccountState extends Equatable {
...
@@ -12,12 +12,18 @@ class AccountState extends Equatable {
final
String
nickname
;
final
String
nickname
;
final
String
imgIcon
;
final
String
imgIcon
;
final
String
className
;
final
String
stuName
;
const
AccountState
({
const
AccountState
({
this
.
loaded
=
false
,
this
.
loaded
=
false
,
this
.
name
=
''
,
this
.
name
=
''
,
this
.
phone
=
''
,
this
.
phone
=
''
,
this
.
nickname
=
''
,
this
.
nickname
=
''
,
this
.
imgIcon
=
''
,
this
.
imgIcon
=
''
,
this
.
className
=
''
,
this
.
stuName
=
''
,
});
});
AccountState
copyWith
({
AccountState
copyWith
({
...
@@ -26,6 +32,8 @@ class AccountState extends Equatable {
...
@@ -26,6 +32,8 @@ class AccountState extends Equatable {
String
?
phone
,
String
?
phone
,
String
?
nickname
,
String
?
nickname
,
String
?
imgIcon
,
String
?
imgIcon
,
String
?
className
,
String
?
stuName
,
})
{
})
{
return
AccountState
(
return
AccountState
(
loaded:
loaded
??
this
.
loaded
,
loaded:
loaded
??
this
.
loaded
,
...
@@ -33,6 +41,8 @@ class AccountState extends Equatable {
...
@@ -33,6 +41,8 @@ class AccountState extends Equatable {
phone:
phone
??
this
.
phone
,
phone:
phone
??
this
.
phone
,
nickname:
nickname
??
this
.
nickname
,
nickname:
nickname
??
this
.
nickname
,
imgIcon:
imgIcon
??
this
.
imgIcon
,
imgIcon:
imgIcon
??
this
.
imgIcon
,
className:
className
??
this
.
className
,
stuName:
stuName
??
this
.
stuName
,
);
);
}
}
...
@@ -43,6 +53,8 @@ class AccountState extends Equatable {
...
@@ -43,6 +53,8 @@ class AccountState extends Equatable {
phone
,
phone
,
nickname
,
nickname
,
imgIcon
,
imgIcon
,
className
,
stuName
,
];
];
}
}
...
@@ -57,6 +69,8 @@ class AccountCubit extends Cubit<AccountState> {
...
@@ -57,6 +69,8 @@ class AccountCubit extends Cubit<AccountState> {
Future
<
void
>
init
()
async
{
Future
<
void
>
init
()
async
{
var
sharedPreferences
=
getIt
.
get
<
SharedPreferences
>();
var
sharedPreferences
=
getIt
.
get
<
SharedPreferences
>();
var
userCode
=
sharedPreferences
.
getString
(
'auth_userCode'
)
??
''
;
var
userCode
=
sharedPreferences
.
getString
(
'auth_userCode'
)
??
''
;
var
className
=
sharedPreferences
.
getString
(
'auth_className'
)
??
''
;
var
stuName
=
sharedPreferences
.
getString
(
'auth_stuName'
)
??
''
;
try
{
try
{
var
result
=
await
_phoneAuthRepository
.
bindCheck
(
userCode
);
var
result
=
await
_phoneAuthRepository
.
bindCheck
(
userCode
);
var
code
=
result
[
'code'
];
var
code
=
result
[
'code'
];
...
@@ -72,6 +86,8 @@ class AccountCubit extends Cubit<AccountState> {
...
@@ -72,6 +86,8 @@ class AccountCubit extends Cubit<AccountState> {
phone:
data
[
'phone'
],
phone:
data
[
'phone'
],
nickname:
data
[
'nickname'
],
nickname:
data
[
'nickname'
],
imgIcon:
data
[
'imgIcon'
],
imgIcon:
data
[
'imgIcon'
],
className:
className
,
stuName:
stuName
,
),
),
);
);
}
catch
(
e
)
{
}
catch
(
e
)
{
...
...
lib/data/repositories/message/role_info_handler.dart
View file @
6cfc527
...
@@ -13,12 +13,18 @@ class RoleInfoHandler extends MessageHandler {
...
@@ -13,12 +13,18 @@ class RoleInfoHandler extends MessageHandler {
final
String
classCode
=
params
[
'classCode'
]
as
String
;
final
String
classCode
=
params
[
'classCode'
]
as
String
;
final
int
userType
=
params
[
'userType'
]
as
int
;
final
int
userType
=
params
[
'userType'
]
as
int
;
final
String
stuId
=
params
[
'stuId'
]
as
String
??
''
;
final
String
stuId
=
params
[
'stuId'
]
as
String
??
''
;
final
String
className
=
params
[
'className'
]
as
String
??
''
;
final
String
stuName
=
params
[
'stuName'
]
as
String
??
''
;
final
String
relation
=
params
[
'relation'
]
as
String
??
''
;
var
sharedPreferences
=
getIt
.
get
<
SharedPreferences
>();
var
sharedPreferences
=
getIt
.
get
<
SharedPreferences
>();
sharedPreferences
.
setString
(
'auth_userCode'
,
userId
);
sharedPreferences
.
setString
(
'auth_userCode'
,
userId
);
sharedPreferences
.
setString
(
'auth_classCode'
,
classCode
);
sharedPreferences
.
setString
(
'auth_classCode'
,
classCode
);
sharedPreferences
.
setInt
(
'auth_userType'
,
userType
);
sharedPreferences
.
setInt
(
'auth_userType'
,
userType
);
sharedPreferences
.
setString
(
'auth_stuId'
,
stuId
);
sharedPreferences
.
setString
(
'auth_stuId'
,
stuId
);
sharedPreferences
.
setString
(
'auth_className'
,
className
);
sharedPreferences
.
setString
(
'auth_stuName'
,
stuName
);
sharedPreferences
.
setString
(
'auth_relation'
,
relation
);
sharedPreferences
.
setString
(
'pre_userCode'
,
userId
);
sharedPreferences
.
setString
(
'pre_userCode'
,
userId
);
sharedPreferences
.
setString
(
'pre_classCode'
,
classCode
);
sharedPreferences
.
setString
(
'pre_classCode'
,
classCode
);
...
...
lib/ui/pages/setting/account_page.dart
View file @
6cfc527
...
@@ -11,6 +11,41 @@ class AccountPage extends StatelessWidget {
...
@@ -11,6 +11,41 @@ class AccountPage extends StatelessWidget {
create:
(
context
)
=>
AccountCubit
(
AccountState
()),
create:
(
context
)
=>
AccountCubit
(
AccountState
()),
child:
BlocConsumer
<
AccountCubit
,
AccountState
>(
child:
BlocConsumer
<
AccountCubit
,
AccountState
>(
builder:
(
context
,
state
)
{
builder:
(
context
,
state
)
{
var
childInfoTable
=
(
state
.
className
.
isNotEmpty
&&
state
.
stuName
.
isNotEmpty
)
?
[
SizedBox
(
height:
24.0
),
Align
(
alignment:
Alignment
.
centerLeft
,
child:
Padding
(
padding:
EdgeInsets
.
symmetric
(
horizontal:
4.0
),
child:
Text
(
'孩子信息'
,
style:
TextStyle
(
fontSize:
12.0
,
color:
Colors
.
black87
,
),
),
),
),
SizedBox
(
height:
8.0
),
Container
(
margin:
EdgeInsets
.
symmetric
(
horizontal:
4.0
),
decoration:
BoxDecoration
(
color:
Color
(
0xFFF7F9FF
),
borderRadius:
BorderRadius
.
circular
(
8.0
),
border:
Border
.
all
(
color:
Color
(
0xFFE0E6F7
),
width:
1
),
),
child:
Column
(
children:
[
_buildInfoRow
(
'班级'
,
state
.
className
,
Icons
.
school
),
Divider
(
height:
1
,
color:
Color
(
0xFFE0E6F7
)),
_buildInfoRow
(
'学生'
,
state
.
stuName
,
Icons
.
person
),
],
),
),
]
:
[];
return
Scaffold
(
return
Scaffold
(
backgroundColor:
Colors
.
white
,
backgroundColor:
Colors
.
white
,
appBar:
AppBar
(
appBar:
AppBar
(
...
@@ -45,6 +80,7 @@ class AccountPage extends StatelessWidget {
...
@@ -45,6 +80,7 @@ class AccountPage extends StatelessWidget {
state
.
nickname
,
state
.
nickname
,
style:
TextStyle
(
fontSize:
12.0
),
style:
TextStyle
(
fontSize:
12.0
),
),
),
...
childInfoTable
,
],
],
),
),
),
),
...
@@ -189,4 +225,40 @@ class AccountPage extends StatelessWidget {
...
@@ -189,4 +225,40 @@ class AccountPage extends StatelessWidget {
),
),
);
);
}
}
Widget
_buildInfoRow
(
String
label
,
String
value
,
IconData
icon
)
{
return
Padding
(
padding:
EdgeInsets
.
symmetric
(
horizontal:
16.0
,
vertical:
12.0
),
child:
Row
(
children:
[
Icon
(
icon
,
size:
18.0
,
color:
Color
(
0xFF7691FA
),
),
SizedBox
(
width:
8.0
),
SizedBox
(
width:
60
,
child:
Text
(
label
,
style:
TextStyle
(
fontSize:
14.0
,
color:
Colors
.
grey
[
600
],
fontWeight:
FontWeight
.
w500
,
),
),
),
Expanded
(
child:
Text
(
value
,
style:
TextStyle
(
fontSize:
14.0
,
color:
Colors
.
black87
,
),
),
),
],
),
);
}
}
}
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment