Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
N
netrain_flutter_app
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
邹志胜
netrain_flutter_app
Commits
f822dca6
Commit
f822dca6
authored
Jul 09, 2021
by
“Icebear”
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
抽出Model的存储类,不需要单例类
parent
8d709232
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
76 additions
and
8 deletions
+76
-8
main.dart
netrain_flutter_app/lib/main.dart
+4
-3
LoginApi.dart
netrain_flutter_app/lib/zhangfeng/LoginApi.dart
+2
-2
LoginPage.dart
netrain_flutter_app/lib/zhangfeng/LoginPage.dart
+3
-3
SaveModel.dart
netrain_flutter_app/lib/zhangfeng/Network/SaveModel.dart
+43
-0
UserModel.dart
netrain_flutter_app/lib/zhangfeng/UserModel.dart
+24
-0
No files found.
netrain_flutter_app/lib/main.dart
View file @
f822dca6
...
@@ -8,7 +8,7 @@ import 'laishanqi/layout_page.dart';
...
@@ -8,7 +8,7 @@ import 'laishanqi/layout_page.dart';
import
'laishanqi/netrain/user/loginPage.dart'
;
import
'laishanqi/netrain/user/loginPage.dart'
;
import
'laishanqi/netrain/user/RegisterPage.dart'
;
import
'laishanqi/netrain/user/RegisterPage.dart'
;
import
'laishanqi/photo.dart'
;
import
'laishanqi/photo.dart'
;
import
'zhangfeng/User
Data
.dart'
;
import
'zhangfeng/User
Model
.dart'
;
import
'zhangfeng/LoginPage.dart'
;
import
'zhangfeng/LoginPage.dart'
;
...
@@ -16,7 +16,7 @@ void main() {
...
@@ -16,7 +16,7 @@ void main() {
runApp
(
MyApp
());
runApp
(
MyApp
());
// runApp(Login());
// runApp(Login());
// runApp(TestPage());
// runApp(TestPage());
User
Data
.
instance
;
User
Model
.
getModel
()
;
print
(
"启动"
);
print
(
"启动"
);
}
}
...
@@ -40,6 +40,7 @@ class MyApp extends StatelessWidget {
...
@@ -40,6 +40,7 @@ class MyApp extends StatelessWidget {
"register"
:
(
context
)
=>
RegisterPage
(),
"register"
:
(
context
)
=>
RegisterPage
(),
"login"
:
(
context
)
=>
LoginPage
(),
"login"
:
(
context
)
=>
LoginPage
(),
"listPage"
:(
context
)
=>
List_Page
(),
"listPage"
:(
context
)
=>
List_Page
(),
"LoginRequestPage"
:(
context
)
=>
LoginRequestPage
(),
"main"
:
(
context
)
=>
mainPage
(),
"main"
:
(
context
)
=>
mainPage
(),
},
},
),
),
...
@@ -88,7 +89,7 @@ class _RouterNavigatorState extends State<RouterNavigator> {
...
@@ -88,7 +89,7 @@ class _RouterNavigatorState extends State<RouterNavigator> {
_item
(
"layout页面"
,
LayoutPage
(),
'layout'
),
_item
(
"layout页面"
,
LayoutPage
(),
'layout'
),
_item
(
"拍照页面"
,
PhotoApp
(),
'photo'
),
_item
(
"拍照页面"
,
PhotoApp
(),
'photo'
),
_item
(
"登陆"
,
LoginPage
(),
'login'
),
_item
(
"登陆"
,
LoginPage
(),
'login'
),
_item
(
"登录网络请求"
,
LoginRequestPage
(),
'
loginRequest
'
),
_item
(
"登录网络请求"
,
LoginRequestPage
(),
'
LoginRequestPage
'
),
_item
(
"listview页面"
,
List_Page
(),
'listPage'
),
_item
(
"listview页面"
,
List_Page
(),
'listPage'
),
],
],
),
),
...
...
netrain_flutter_app/lib/zhangfeng/LoginApi.dart
View file @
f822dca6
import
'Network/HttpManager.dart'
;
import
'Network/HttpManager.dart'
;
import
'Network/BaseHttpModel.dart'
;
import
'Network/BaseHttpModel.dart'
;
import
'UserModel.dart'
;
import
'UserModel.dart'
;
import
'
UserData
.dart'
;
import
'
Network/SaveModel
.dart'
;
/// 所有接口类
/// 所有接口类
class
LoginApi
{
class
LoginApi
{
...
@@ -10,7 +10,7 @@ class LoginApi {
...
@@ -10,7 +10,7 @@ class LoginApi {
return
HttpManager
.
getInstance
().
request
(
'auth/oauth/token'
,
parameters:
param
,
onResult:
(
data
,
errorMsg
){
return
HttpManager
.
getInstance
().
request
(
'auth/oauth/token'
,
parameters:
param
,
onResult:
(
data
,
errorMsg
){
BaseHttpModel
httpModel
=
data
;
BaseHttpModel
httpModel
=
data
;
UserModel
userModel
=
UserModel
.
fromJson
(
httpModel
.
data
);
UserModel
userModel
=
UserModel
.
fromJson
(
httpModel
.
data
);
User
Data
.
getInstance
().
saveUser
Model
(
userModel
);
User
Model
.
save
Model
(
userModel
);
if
(
onResult
!=
null
){
if
(
onResult
!=
null
){
onResult
(
data
,
errorMsg
);
onResult
(
data
,
errorMsg
);
}
}
...
...
netrain_flutter_app/lib/zhangfeng/LoginPage.dart
View file @
f822dca6
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'package:fluttertoast/fluttertoast.dart'
;
import
'package:fluttertoast/fluttertoast.dart'
;
import
'package:netrain_flutter_app/zhangfeng/Network/HttpManager.dart'
;
import
'package:netrain_flutter_app/zhangfeng/Network/HttpManager.dart'
;
import
'package:netrain_flutter_app/zhangfeng/UserModel.dart'
;
import
'LoginApi.dart'
;
import
'LoginApi.dart'
;
import
'UserData.dart'
;
class
LoginRequestPage
extends
StatefulWidget
{
class
LoginRequestPage
extends
StatefulWidget
{
final
String
title
=
"登录页"
;
final
String
title
=
"登录页"
;
...
@@ -14,7 +14,7 @@ class LoginRequestPage extends StatefulWidget {
...
@@ -14,7 +14,7 @@ class LoginRequestPage extends StatefulWidget {
class
_LoginState
extends
State
<
LoginRequestPage
>
{
class
_LoginState
extends
State
<
LoginRequestPage
>
{
// This widget is the root of your application.
// This widget is the root of your application.
void
_loginAction
()
{
void
_loginAction
()
{
if
(
User
Data
.
instance
.
userModel
!=
null
&&
UserData
.
instance
.
userModel
.
token
!=
null
){
if
(
User
Model
.
getModel
()
!=
null
){
Fluttertoast
.
showToast
(
msg:
'已经登录'
);
Fluttertoast
.
showToast
(
msg:
'已经登录'
);
return
;
return
;
}
}
...
@@ -35,7 +35,7 @@ class _LoginState extends State<LoginRequestPage> {
...
@@ -35,7 +35,7 @@ class _LoginState extends State<LoginRequestPage> {
});
});
}
}
void
_logoutAction
()
{
void
_logoutAction
()
{
User
Data
.
instance
.
removeUser
Model
();
User
Model
.
remove
Model
();
Fluttertoast
.
showToast
(
msg:
'退出成功'
);
Fluttertoast
.
showToast
(
msg:
'退出成功'
);
}
}
...
...
netrain_flutter_app/lib/zhangfeng/
UserData
.dart
→
netrain_flutter_app/lib/zhangfeng/
Network/SaveModel
.dart
View file @
f822dca6
import
'dart:convert'
;
import
'dart:convert'
;
import
'UserModel.dart'
;
import
'package:shared_preferences/shared_preferences.dart'
;
import
'package:shared_preferences/shared_preferences.dart'
;
class
UserData
{
class
SaveModel
{
UserModel
userModel
;
// factory UserData() => getInstance();
factory
UserData
()
=>
getInstance
();
// static UserData get instance => getInstance();
static
UserData
get
instance
=>
getInstance
();
// static UserData _instance;
static
UserData
_instance
;
//
// static UserData getInstance() {
static
UserData
getInstance
()
{
// if (_instance == null) {
if
(
_instance
==
null
)
{
// _instance = new UserData._internal();
_instance
=
new
UserData
.
_internal
();
// }
}
// return _instance;
return
_instance
;
// }
}
//
// UserData._internal() {
UserData
.
_internal
()
{
//
// 初始化
// }
getUserModel
();
}
s
aveUserModel
(
UserModel
userModel
)
async
{
s
tatic
saveModel
(
dynamic
model
,
String
modelName
)
async
{
SharedPreferences
pref
=
await
SharedPreferences
.
getInstance
();
SharedPreferences
pref
=
await
SharedPreferences
.
getInstance
();
//将data转换成json字符串
//将data转换成json字符串
var
jsonStr
=
json
.
encode
(
userModel
);
var
jsonStr
=
json
.
encode
(
model
);
pref
.
setString
(
'UserModel'
,
jsonStr
);
pref
.
setString
(
modelName
,
jsonStr
);
this
.
userModel
=
userModel
;
}
}
// 读取 SharedPreferences
// 读取 SharedPreferences
getUserModel
(
)
async
{
static
Future
<
Map
>
getModel
(
String
modelName
)
async
{
SharedPreferences
prefs
=
await
SharedPreferences
.
getInstance
();
SharedPreferences
prefs
=
await
SharedPreferences
.
getInstance
();
final
jsonStr
=
prefs
.
getString
(
'UserModel'
);
final
jsonStr
=
prefs
.
getString
(
modelName
);
if
(
jsonStr
!=
null
&&
jsonStr
.
length
>
0
){
if
(
jsonStr
!=
null
&&
jsonStr
.
length
>
0
){
//先将json字符串转json
//先将json字符串转json
Map
json
=
jsonDecode
(
jsonStr
);
Map
json
=
jsonDecode
(
jsonStr
);
//将json转model
return
json
;
final
model
=
new
UserModel
.
fromJson
(
json
);
this
.
userModel
=
model
;
}
}
return
null
;
}
}
removeUserModel
(
)
async
{
static
removeModel
(
String
modelName
)
async
{
SharedPreferences
prefs
=
await
SharedPreferences
.
getInstance
();
SharedPreferences
prefs
=
await
SharedPreferences
.
getInstance
();
prefs
.
setString
(
'UserModel'
,
""
);
prefs
.
setString
(
modelName
,
""
);
this
.
userModel
=
null
;
}
}
}
}
\ No newline at end of file
netrain_flutter_app/lib/zhangfeng/UserModel.dart
View file @
f822dca6
import
'package:json_annotation/json_annotation.dart'
;
import
'package:json_annotation/json_annotation.dart'
;
import
'package:netrain_flutter_app/zhangfeng/Network/SaveModel.dart'
;
part
'UserModel.g.dart'
;
part
'UserModel.g.dart'
;
@JsonSerializable
()
@JsonSerializable
()
class
UserModel
{
class
UserModel
{
static
UserModel
sharedModelInstance_
;
final
token
;
final
token
;
final
header
;
final
header
;
final
tokenHead
;
final
tokenHead
;
...
@@ -13,4 +16,25 @@ class UserModel{
...
@@ -13,4 +16,25 @@ class UserModel{
factory
UserModel
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
=>
_$UserModelFromJson
(
json
);
factory
UserModel
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
=>
_$UserModelFromJson
(
json
);
Map
<
String
,
dynamic
>
toJson
()
=>
_$UserModelToJson
(
this
);
Map
<
String
,
dynamic
>
toJson
()
=>
_$UserModelToJson
(
this
);
static
UserModel
getModel
(){
if
(
sharedModelInstance_
==
null
){
SaveModel
.
getModel
(
'UserModel'
).
then
((
json
)
=>
{
if
(
json
!=
null
){
sharedModelInstance_
=
new
UserModel
.
fromJson
(
json
)
}
});
}
return
sharedModelInstance_
;
}
static
removeModel
()
{
SaveModel
.
removeModel
(
'UserModel'
);
sharedModelInstance_
=
null
;
}
static
saveModel
(
UserModel
userModel
){
sharedModelInstance_
=
userModel
;
SaveModel
.
saveModel
(
userModel
,
'UserModel'
);
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
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 comment