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
ed94d18a
Commit
ed94d18a
authored
Jul 09, 2021
by
jishuaishuai
Browse files
Options
Browse Files
Download
Plain Diff
解决冲突
parents
fd93b7de
838d0fe1
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
367 additions
and
67 deletions
+367
-67
AppColors.dart
netrain_flutter_app/lib/common/AppColors.dart
+10
-0
Images.dart
netrain_flutter_app/lib/common/Images.dart
+0
-0
dwMain.dart
netrain_flutter_app/lib/douwen/dwMain.dart
+1
-1
layout_page.dart
netrain_flutter_app/lib/laishanqi/layout_page.dart
+4
-2
HomePage.dart
netrain_flutter_app/lib/laishanqi/netrain/HomePage.dart
+1
-1
RegisterPage.dart
..._flutter_app/lib/laishanqi/netrain/user/RegisterPage.dart
+61
-21
loginPage.dart
...ain_flutter_app/lib/laishanqi/netrain/user/loginPage.dart
+16
-4
main.dart
netrain_flutter_app/lib/main.dart
+38
-29
car_details.dart
netrain_flutter_app/lib/xuehao/car_details.dart
+49
-0
list_page.dart
netrain_flutter_app/lib/xuehao/list_page.dart
+2
-0
LoginApi.dart
netrain_flutter_app/lib/zhangfeng/LoginApi.dart
+7
-3
LoginPage.dart
netrain_flutter_app/lib/zhangfeng/LoginPage.dart
+21
-2
NestModel.dart
netrain_flutter_app/lib/zhangfeng/NestModel.dart
+18
-0
NestModel.g.dart
netrain_flutter_app/lib/zhangfeng/NestModel.g.dart
+28
-0
BaseHttpModel.dart
netrain_flutter_app/lib/zhangfeng/Network/BaseHttpModel.dart
+2
-1
HttpManager.dart
netrain_flutter_app/lib/zhangfeng/Network/HttpManager.dart
+4
-2
SaveModel.dart
netrain_flutter_app/lib/zhangfeng/Network/SaveModel.dart
+43
-0
UserModel.dart
netrain_flutter_app/lib/zhangfeng/UserModel.dart
+40
-0
UserModel.g.dart
netrain_flutter_app/lib/zhangfeng/UserModel.g.dart
+21
-0
pubspec.yaml
netrain_flutter_app/pubspec.yaml
+1
-1
No files found.
netrain_flutter_app/lib/common/AppColors.dart
0 → 100644
View file @
ed94d18a
/// 项目颜色配置
class
AppColors
{
/// 主色
static
const
mainColor
=
0xff2893FF
;
/// hint颜色
static
const
hintText
=
0xffb4b4b4
;
/// 输入框字体颜色
static
const
EditTextColor
=
0xff333333
;
}
\ No newline at end of file
netrain_flutter_app/lib/
laishanqi/netrai
n/Images.dart
→
netrain_flutter_app/lib/
commo
n/Images.dart
View file @
ed94d18a
File moved
netrain_flutter_app/lib/douwen/dwMain.dart
View file @
ed94d18a
import
'package:flutter/material.dart'
;
import
'package:fluttertoast/fluttertoast.dart'
;
import
'package:netrain_flutter_app/
laishanqi/netrai
n/Images.dart'
;
import
'package:netrain_flutter_app/
commo
n/Images.dart'
;
import
'secondpage.dart'
;
...
...
netrain_flutter_app/lib/laishanqi/layout_page.dart
View file @
ed94d18a
...
...
@@ -42,9 +42,11 @@ class _LayoutGroupState extends State<LayoutPage> {
blurRadius:
15
,
spreadRadius:
-
5
)
]),
child:
Rais
edButton
(
child:
Elevat
edButton
(
child:
Text
(
"按钮"
),
onPressed:
()
{},
onPressed:
()
{
Navigator
.
pushNamed
(
context
,
"register"
);
},
)),
Container
(
margin:
EdgeInsets
.
all
(
10
),
...
...
netrain_flutter_app/lib/laishanqi/netrain/HomePage.dart
View file @
ed94d18a
import
'package:flutter/cupertino.dart'
;
import
'package:flutter/material.dart'
;
import
'Images.dart'
;
import
'
../../common/
Images.dart'
;
class
HomePage
extends
StatefulWidget
{
@override
...
...
netrain_flutter_app/lib/laishanqi/netrain/user/RegisterPage.dart
View file @
ed94d18a
import
'package:flutter/material.dart'
;
import
'package:netrain_flutter_app/common/AppColors.dart'
;
import
'package:netrain_flutter_app/douwen/dwMain.dart'
;
/**
* 注册页
*/
class
RegisterPage
extends
StatefulWidget
{
class
RegisterPage
extends
StatefulWidget
{
@override
State
createState
()
=>
_RegisterState
();
}
class
_RegisterState
extends
State
{
class
_RegisterState
extends
State
{
// 输入框控制器
final
nameController
=
TextEditingController
();
final
phoneController
=
TextEditingController
();
final
codeController
=
TextEditingController
();
final
passwordController
=
TextEditingController
();
@override
Widget
build
(
BuildContext
context
)
{
// 获取上一个页面的传值
List
<
String
>
args
=
ModalRoute
.
of
(
context
).
settings
.
arguments
;
phoneController
.
text
=
args
.
first
;
return
registerWidget
();
}
Widget
registerWidget
()
{
@override
void
dispose
()
{
super
.
dispose
();
nameController
.
dispose
();
phoneController
.
dispose
();
codeController
.
dispose
();
passwordController
.
dispose
();
}
Widget
registerWidget
()
{
return
MaterialApp
(
theme:
ThemeData
(
primaryColor:
Colors
.
white
,
...
...
@@ -27,22 +46,43 @@ class _RegisterState extends State{
appBar:
AppBar
(
leading:
IconButton
(
icon:
Icon
(
Icons
.
arrow_back
),
onPressed:
(){
Navigator
.
of
(
context
).
pushNamed
(
"/"
);
onPressed:
()
{
Navigator
.
of
(
context
).
popUntil
(
ModalRoute
.
withName
(
"main"
));
// Navigator.of(context).pushNamed("login2");
},
),
centerTitle:
true
,
title:
Text
(
"注册"
),
elevation:
0
,
),
body:
ListView
(
body:
Container
(
margin:
EdgeInsets
.
fromLTRB
(
16
,
16
,
16
,
0
),
child:
ListView
(
children:
[
_getTextField
(
"请输入姓名"
,
nameController
),
_getTextField
(
"请输入手机号码"
,
phoneController
),
Stack
(
children:
[
_getTextField
(
"请输入验证码"
,
codeController
),
// Positioned(child: )
],),
_getTextField
(
"请输入9-16位密码"
,
passwordController
),
],
),
),
)
),
);
}
/// 输入框
Widget
_getTextField
(
String
hintText
,
TextEditingController
controller
){
return
TextField
(
style:
TextStyle
(
color:
Color
(
AppColors
.
EditTextColor
),
fontSize:
16
),
decoration:
InputDecoration
(
hintText:
hintText
,
hintStyle:
TextStyle
(
color:
Color
(
AppColors
.
hintText
)),
),
controller:
controller
,
);
}
}
\ No newline at end of file
netrain_flutter_app/lib/laishanqi/netrain/user/loginPage.dart
View file @
ed94d18a
...
...
@@ -6,7 +6,7 @@ import 'package:netrain_flutter_app/laishanqi/netrain/Http/HttpUtil.dart';
import
'package:netrain_flutter_app/laishanqi/netrain/user/RegisterPage.dart'
;
import
'../HomePage.dart'
;
import
'../Images.dart'
;
import
'../
../../common/
Images.dart'
;
/// 登录页
class
LoginPage
extends
StatefulWidget
{
...
...
@@ -22,10 +22,11 @@ class _LoginState extends State<LoginPage> {
@override
Widget
build
(
BuildContext
context
)
{
print
(
"loginPage.dart initState"
);
var
mqtt
=
MqttClient
();
mqtt
.
connect
();
HttpUtil
.
get
(
HttpUtil
.
global_config
).
then
((
Response
value
)
{
Fluttertoast
.
showToast
(
msg:
"global_config 请求成功 "
);
});
...
...
@@ -107,7 +108,9 @@ class _LoginState extends State<LoginPage> {
children:
[
MaterialButton
(
onPressed:
()
{
Navigator
.
pushNamed
(
context
,
"register"
);
// 跳转到注册页,把手机号传递过去
Navigator
.
pushNamed
(
context
,
"register"
,
arguments:
[
phoneController
.
text
]);
// Navigator.push(context,MaterialPageRoute(builder: (context) => RegisterPage()));
},
child:
Text
(
...
...
@@ -116,7 +119,16 @@ class _LoginState extends State<LoginPage> {
),
),
Text
(
" | "
,
style:
TextStyle
(
color:
Colors
.
blue
)),
Text
(
"忘记密码"
,
style:
TextStyle
(
color:
Colors
.
blue
))
MaterialButton
(
onPressed:
()
{
Navigator
.
pushNamed
(
context
,
"layout"
);
// Navigator.push(context,MaterialPageRoute(builder: (context) => RegisterPage()));
},
child:
Text
(
"忘记密码"
,
style:
TextStyle
(
color:
Colors
.
blue
),
),
),
],
),
),
...
...
netrain_flutter_app/lib/main.dart
View file @
ed94d18a
...
...
@@ -8,6 +8,7 @@ import 'laishanqi/layout_page.dart';
import
'laishanqi/netrain/user/loginPage.dart'
;
import
'laishanqi/netrain/user/RegisterPage.dart'
;
import
'laishanqi/photo.dart'
;
import
'zhangfeng/UserModel.dart'
;
import
'jishuaishuai/student.dart'
;
...
...
@@ -17,6 +18,7 @@ void main() {
runApp
(
MyApp
());
// runApp(Login());
// runApp(TestPage());
UserModel
.
getModel
();
print
(
"启动"
);
}
...
...
@@ -24,35 +26,43 @@ class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget
build
(
BuildContext
context
)
{
return
WillPopScope
(
child:
MaterialApp
(
return
WillPopScope
(
child:
MaterialApp
(
title:
'Flutter Demo'
,
initialRoute:
"/
"
,
initialRoute:
"main
"
,
theme:
ThemeData
(
primarySwatch:
Colors
.
blue
,
visualDensity:
VisualDensity
.
adaptivePlatformDensity
,
),
home:
Scaffold
(
appBar:
AppBar
(
title:
Text
(
"路由"
),
),
body:
RouterNavigator
(
title:
'Flutter Demo Home Page'
),
),
routes:
<
String
,
WidgetBuilder
>{
"less"
:
(
context
)
=>
LessGroupPage
(),
"ful"
:
(
context
)
=>
FulGroupPage
(),
"layout"
:
(
context
)
=>
LayoutPage
(),
"photo"
:
(
context
)
=>
PhotoApp
(),
"register"
:
(
context
)
=>
RegisterPage
(),
"login"
:
(
context
)
=>
LoginPage
(),
"listPage"
:(
context
)
=>
List_Page
(),
"LoginRequestPage"
:(
context
)
=>
LoginRequestPage
(),
"main"
:
(
context
)
=>
mainPage
(),
"student"
:(
context
)
=>
jssPageDemo
()
},
),
onWillPop:
()
async
{
),
onWillPop:
()
async
{
Fluttertoast
.
showToast
(
msg:
"退出"
);
return
true
;
});
}
}
Widget
mainPage
(
){
return
Scaffold
(
appBar:
AppBar
(
title:
Text
(
"路由"
),
),
body:
RouterNavigator
(
title:
'Flutter Demo Home Page'
),
);
}
class
RouterNavigator
extends
StatefulWidget
{
...
...
@@ -64,7 +74,7 @@ class RouterNavigator extends StatefulWidget {
}
class
_RouterNavigatorState
extends
State
<
RouterNavigator
>
{
bool
byName
=
fals
e
;
bool
byName
=
tru
e
;
@override
Widget
build
(
BuildContext
context
)
{
...
...
@@ -84,7 +94,7 @@ class _RouterNavigatorState extends State<RouterNavigator> {
_item
(
"layout页面"
,
LayoutPage
(),
'layout'
),
_item
(
"拍照页面"
,
PhotoApp
(),
'photo'
),
_item
(
"登陆"
,
LoginPage
(),
'login'
),
_item
(
"登录网络请求"
,
LoginRequestPage
(),
'
loginRequest
'
),
_item
(
"登录网络请求"
,
LoginRequestPage
(),
'
LoginRequestPage
'
),
_item
(
"listview页面"
,
List_Page
(),
'listPage'
),
_item
(
"jssDemo"
,
jssPageDemo
(),
'student'
)
],
...
...
@@ -94,13 +104,12 @@ class _RouterNavigatorState extends State<RouterNavigator> {
_item
(
String
title
,
page
,
String
routeName
)
{
return
Container
(
child:
Rais
edButton
(
child:
Elevat
edButton
(
onPressed:
()
{
if
(
byName
)
{
Navigator
.
pushNamed
(
context
,
routeName
);
}
else
{
Navigator
.
push
(
context
,
MaterialPageRoute
(
builder:
(
context
)
=>
page
));
Navigator
.
push
(
context
,
MaterialPageRoute
(
builder:
(
context
)
=>
page
,));
}
},
child:
Text
(
title
),
...
...
netrain_flutter_app/lib/xuehao/car_details.dart
0 → 100644
View file @
ed94d18a
import
'package:flutter/material.dart'
;
/**
* @author xuehao
* on 2021/7/9
*/
class
CarDetailsPage
extends
StatefulWidget
{
String
name
,
imageUrl
;
CarDetailsPage
({
Key
key
,
@required
this
.
name
,
@required
this
.
imageUrl
})
:
super
(
key:
key
);
@override
_CarDetailsState
createState
()
=>
_CarDetailsState
(
name
,
imageUrl
);
}
class
_CarDetailsState
extends
State
<
CarDetailsPage
>
{
String
name
,
imageUrl
;
_CarDetailsState
(
this
.
name
,
this
.
imageUrl
);
@override
Widget
build
(
BuildContext
context
)
{
return
MaterialApp
(
title:
"car_details"
,
home:
Scaffold
(
appBar:
AppBar
(
title:
Text
(
"汽车详情"
),
centerTitle:
true
,
leading:
new
IconButton
(
onPressed:
()
{
Navigator
.
pop
(
context
);
},
icon:
Icon
(
Icons
.
arrow_back_ios
)),
),
body:
Center
(
child:
Column
(
mainAxisAlignment:
MainAxisAlignment
.
center
,
children:
[
Text
(
name
),
SizedBox
(
height:
40
),
Image
.
network
(
imageUrl
),
],
),
),
),
);
}
}
netrain_flutter_app/lib/xuehao/list_page.dart
View file @
ed94d18a
import
'package:flutter/material.dart'
;
import
'package:flutter_easyrefresh/easy_refresh.dart'
;
import
'package:fluttertoast/fluttertoast.dart'
;
import
'package:netrain_flutter_app/xuehao/car_details.dart'
;
import
'Car.dart'
;
class
List_Page
extends
StatefulWidget
{
...
...
@@ -85,6 +86,7 @@ class _ListPageState extends State<List_Page> {
onTap:
()
{
var
data
=
datas
[
position
];
Fluttertoast
.
showToast
(
msg:
"我点击了
${data.name}
"
);
Navigator
.
push
(
context
,
new
MaterialPageRoute
(
builder:
(
context
)
=>
new
CarDetailsPage
(
name:
data
.
name
,
imageUrl:
data
.
imageUrl
,)));
},
));
}
...
...
netrain_flutter_app/lib/zhangfeng/LoginApi.dart
View file @
ed94d18a
import
'Network/HttpManager.dart'
;
import
'Network/BaseHttpModel.dart'
;
import
'
Network/UrlPath
.dart'
;
import
'
UserModel
.dart'
;
/// 所有接口类
class
LoginApi
{
///示例请求
static
loginRequest
(
Map
<
String
,
dynamic
>
param
)
{
static
loginRequest
(
Map
<
String
,
dynamic
>
param
,
OnResult
onResult
)
{
return
HttpManager
.
getInstance
().
request
(
'auth/oauth/token'
,
parameters:
param
,
onResult:
(
data
,
errorMsg
){
BaseHttpModel
httpModel
=
data
;
print
(
httpModel
.
data
);
UserModel
userModel
=
UserModel
.
fromJson
(
httpModel
.
data
);
UserModel
.
saveModel
(
userModel
);
if
(
onResult
!=
null
){
onResult
(
data
,
errorMsg
);
}
});
}
}
netrain_flutter_app/lib/zhangfeng/LoginPage.dart
View file @
ed94d18a
import
'package:flutter/material.dart'
;
import
'package:fluttertoast/fluttertoast.dart'
;
import
'package:netrain_flutter_app/zhangfeng/UserModel.dart'
;
import
'LoginApi.dart'
;
class
LoginRequestPage
extends
StatefulWidget
{
final
String
title
=
"登录页"
;
@override
_LoginState
createState
()
=>
_LoginState
();
}
...
...
@@ -12,6 +13,10 @@ class LoginRequestPage extends StatefulWidget {
class
_LoginState
extends
State
<
LoginRequestPage
>
{
// This widget is the root of your application.
void
_loginAction
()
{
if
(
UserModel
.
getModel
()
!=
null
){
Fluttertoast
.
showToast
(
msg:
'已经登录'
);
return
;
}
Map
<
String
,
String
>
map
=
new
Map
<
String
,
String
>();
map
[
'workNumber'
]
=
'NTR000007'
;
map
[
'password'
]
=
'123456'
;
...
...
@@ -20,7 +25,17 @@ class _LoginState extends State<LoginRequestPage> {
map
[
'client_id'
]
=
'app'
;
map
[
'client_secret'
]
=
'123456'
;
map
[
'platform'
]
=
'0'
;
LoginApi
.
loginRequest
(
map
);
LoginApi
.
loginRequest
(
map
,
(
httpModel
,
error
){
if
(
error
!=
null
){
Fluttertoast
.
showToast
(
msg:
error
);
}
else
{
Fluttertoast
.
showToast
(
msg:
'登录成功'
);
}
});
}
void
_logoutAction
()
{
UserModel
.
removeModel
();
Fluttertoast
.
showToast
(
msg:
'退出成功'
);
}
@override
...
...
@@ -37,6 +52,10 @@ class _LoginState extends State<LoginRequestPage> {
onPressed:
_loginAction
,
child:
Icon
(
Icons
.
add
),
),
FloatingActionButton
(
onPressed:
_logoutAction
,
child:
Icon
(
Icons
.
add
),
),
],
),
),
// This trailing comma makes auto-formatting nicer for build methods.
...
...
netrain_flutter_app/lib/zhangfeng/NestModel.dart
0 → 100644
View file @
ed94d18a
import
'package:json_annotation/json_annotation.dart'
;
part
'NestModel.g.dart'
;
@JsonSerializable
()
class
NestModel
{
final
name
;
final
email
;
final
List
<
NestModel
>
childrens
;
final
NestModel
nest
;
NestModel
(
this
.
name
,
this
.
email
,
this
.
childrens
,
this
.
nest
);
factory
NestModel
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
=>
_$NestModelFromJson
(
json
);
Map
<
String
,
dynamic
>
toJson
()
=>
_$NestModelToJson
(
this
);
}
\ No newline at end of file
netrain_flutter_app/lib/zhangfeng/NestModel.g.dart
0 → 100644
View file @
ed94d18a
// GENERATED CODE - DO NOT MODIFY BY HAND
part of
'NestModel.dart'
;
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
NestModel
_$NestModelFromJson
(
Map
<
String
,
dynamic
>
json
)
{
return
NestModel
(
json
[
'name'
],
json
[
'email'
],
(
json
[
'childrens'
]
as
List
)
?.
map
((
e
)
=>
e
==
null
?
null
:
NestModel
.
fromJson
(
e
as
Map
<
String
,
dynamic
>))
?.
toList
(),
json
[
'nest'
]
==
null
?
null
:
NestModel
.
fromJson
(
json
[
'nest'
]
as
Map
<
String
,
dynamic
>),
);
}
Map
<
String
,
dynamic
>
_$NestModelToJson
(
NestModel
instance
)
=>
<
String
,
dynamic
>{
'name'
:
instance
.
name
,
'email'
:
instance
.
email
,
'childrens'
:
instance
.
childrens
,
'nest'
:
instance
.
nest
,
};
netrain_flutter_app/lib/zhangfeng/Network/BaseHttpModel.dart
View file @
ed94d18a
...
...
@@ -6,6 +6,7 @@ part 'BaseHttpModel.g.dart';
class
BaseHttpModel
{
final
data
;
final
code
;
@JsonKey
(
name:
'message'
)
final
msg
;
BaseHttpModel
(
this
.
data
,
this
.
code
,
this
.
msg
);
...
...
@@ -14,7 +15,7 @@ class BaseHttpModel{
Map
<
String
,
dynamic
>
toJson
()
=>
_$BaseHttpModelToJson
(
this
);
bool
isSuccess
(){
return
this
.
code
==
20
0
;
return
this
.
code
==
0
;
}
String
errorMsg
()
{
...
...
netrain_flutter_app/lib/zhangfeng/Network/HttpManager.dart
View file @
ed94d18a
...
...
@@ -3,6 +3,8 @@ import 'package:netrain_flutter_app/zhangfeng/Network/BaseHttpModel.dart';
import
'BaseHttpModel.dart'
;
import
'UrlPath.dart'
;
typedef
OnResult
=
void
Function
(
BaseHttpModel
t
,
String
errorMsg
)
;
class
HttpManager
{
static
HttpManager
_instance
=
HttpManager
.
_internal
();
Dio
_dio
;
...
...
@@ -46,7 +48,7 @@ class HttpManager {
request
(
String
url
,
{
parameters
,
method
=
'GET'
,
Function
(
BaseHttpModel
t
,
String
errorMsg
)
onResult
})
async
{
OnResult
onResult
})
async
{
parameters
=
parameters
??
{};
if
(
onResult
==
null
){
return
;
...
...
@@ -55,7 +57,7 @@ class HttpManager {
Response
response
=
await
_dio
.
request
(
url
,
queryParameters:
parameters
,
options:
new
Options
(
method:
method
));
BaseHttpModel
httpModel
=
BaseHttpModel
.
fromJson
(
response
.
data
);
if
(
httpModel
.
isSuccess
()
==
true
)
{
if
(
httpModel
.
isSuccess
())
{
onResult
(
httpModel
,
null
);
}
else
{
onResult
(
httpModel
,
httpModel
.
errorMsg
());
...
...
netrain_flutter_app/lib/zhangfeng/Network/SaveModel.dart
0 → 100644
View file @
ed94d18a
import
'dart:convert'
;
import
'package:shared_preferences/shared_preferences.dart'
;
class
SaveModel
{
// factory UserData() => getInstance();
// static UserData get instance => getInstance();
// static UserData _instance;
//
// static UserData getInstance() {
// if (_instance == null) {
// _instance = new UserData._internal();
// }
// return _instance;
// }
//
// UserData._internal() {
//
// }
static
saveModel
(
dynamic
model
,
String
modelName
)
async
{
SharedPreferences
pref
=
await
SharedPreferences
.
getInstance
();
//将data转换成json字符串
var
jsonStr
=
json
.
encode
(
model
);
pref
.
setString
(
modelName
,
jsonStr
);
}
// 读取 SharedPreferences
static
Future
<
Map
>
getModel
(
String
modelName
)
async
{
SharedPreferences
prefs
=
await
SharedPreferences
.
getInstance
();
final
jsonStr
=
prefs
.
getString
(
modelName
);
if
(
jsonStr
!=
null
&&
jsonStr
.
length
>
0
){
//先将json字符串转json
Map
json
=
jsonDecode
(
jsonStr
);
return
json
;
}
return
null
;
}
static
removeModel
(
String
modelName
)
async
{
SharedPreferences
prefs
=
await
SharedPreferences
.
getInstance
();
prefs
.
setString
(
modelName
,
""
);
}
}
\ No newline at end of file
netrain_flutter_app/lib/zhangfeng/UserModel.dart
0 → 100644
View file @
ed94d18a
import
'package:json_annotation/json_annotation.dart'
;
import
'package:netrain_flutter_app/zhangfeng/Network/SaveModel.dart'
;
part
'UserModel.g.dart'
;
@JsonSerializable
()
class
UserModel
{
static
UserModel
sharedModelInstance_
;
final
token
;
final
header
;
final
tokenHead
;
UserModel
(
this
.
token
,
this
.
header
,
this
.
tokenHead
);
factory
UserModel
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
=>
_$UserModelFromJson
(
json
);
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'
);
}
}
netrain_flutter_app/lib/zhangfeng/UserModel.g.dart
0 → 100644
View file @
ed94d18a
// GENERATED CODE - DO NOT MODIFY BY HAND
part of
'UserModel.dart'
;
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
UserModel
_$UserModelFromJson
(
Map
<
String
,
dynamic
>
json
)
{
return
UserModel
(
json
[
'token'
],
json
[
'header'
],
json
[
'tokenHead'
],
);
}
Map
<
String
,
dynamic
>
_$UserModelToJson
(
UserModel
instance
)
=>
<
String
,
dynamic
>{
'token'
:
instance
.
token
,
'header'
:
instance
.
header
,
'tokenHead'
:
instance
.
tokenHead
,
};
netrain_flutter_app/pubspec.yaml
View file @
ed94d18a
...
...
@@ -42,7 +42,7 @@ dependencies:
dio
:
^4.0.0
#网络库
convert
:
^3.0.1
#转码器
pull_to_refresh
:
^2.0.0
shared_preferences
:
^2.0.6
dev_dependencies
:
...
...
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