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
0f45a67d
Commit
0f45a67d
authored
Jul 09, 2021
by
laishanqi
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
c209a100
8d709232
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
125 additions
and
9 deletions
+125
-9
main.dart
netrain_flutter_app/lib/main.dart
+2
-0
LoginApi.dart
netrain_flutter_app/lib/zhangfeng/LoginApi.dart
+8
-3
LoginPage.dart
netrain_flutter_app/lib/zhangfeng/LoginPage.dart
+22
-2
BaseHttpModel.dart
netrain_flutter_app/lib/zhangfeng/Network/BaseHttpModel.dart
+1
-1
HttpManager.dart
netrain_flutter_app/lib/zhangfeng/Network/HttpManager.dart
+4
-2
UserData.dart
netrain_flutter_app/lib/zhangfeng/UserData.dart
+50
-0
UserModel.dart
netrain_flutter_app/lib/zhangfeng/UserModel.dart
+16
-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/main.dart
View file @
0f45a67d
...
...
@@ -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/UserData.dart'
;
import
'zhangfeng/LoginPage.dart'
;
...
...
@@ -15,6 +16,7 @@ void main() {
runApp
(
MyApp
());
// runApp(Login());
// runApp(TestPage());
UserData
.
instance
;
print
(
"启动"
);
}
...
...
netrain_flutter_app/lib/zhangfeng/LoginApi.dart
View file @
0f45a67d
import
'Network/HttpManager.dart'
;
import
'Network/BaseHttpModel.dart'
;
import
'Network/UrlPath.dart'
;
import
'UserModel.dart'
;
import
'UserData.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
);
UserData
.
getInstance
().
saveUserModel
(
userModel
);
if
(
onResult
!=
null
){
onResult
(
data
,
errorMsg
);
}
});
}
}
netrain_flutter_app/lib/zhangfeng/LoginPage.dart
View file @
0f45a67d
import
'package:flutter/material.dart'
;
import
'package:fluttertoast/fluttertoast.dart'
;
import
'package:netrain_flutter_app/zhangfeng/Network/HttpManager.dart'
;
import
'LoginApi.dart'
;
import
'UserData.dart'
;
class
LoginRequestPage
extends
StatefulWidget
{
final
String
title
=
"登录页"
;
@override
_LoginState
createState
()
=>
_LoginState
();
}
...
...
@@ -12,6 +14,10 @@ class LoginRequestPage extends StatefulWidget {
class
_LoginState
extends
State
<
LoginRequestPage
>
{
// This widget is the root of your application.
void
_loginAction
()
{
if
(
UserData
.
instance
.
userModel
!=
null
&&
UserData
.
instance
.
userModel
.
token
!=
null
){
Fluttertoast
.
showToast
(
msg:
'已经登录'
);
return
;
}
Map
<
String
,
String
>
map
=
new
Map
<
String
,
String
>();
map
[
'workNumber'
]
=
'NTR000007'
;
map
[
'password'
]
=
'123456'
;
...
...
@@ -20,7 +26,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
()
{
UserData
.
instance
.
removeUserModel
();
Fluttertoast
.
showToast
(
msg:
'退出成功'
);
}
@override
...
...
@@ -37,6 +53,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/Network/BaseHttpModel.dart
View file @
0f45a67d
...
...
@@ -14,7 +14,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 @
0f45a67d
...
...
@@ -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/UserData.dart
0 → 100644
View file @
0f45a67d
import
'dart:convert'
;
import
'UserModel.dart'
;
import
'package:shared_preferences/shared_preferences.dart'
;
class
UserData
{
UserModel
userModel
;
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
()
{
// 初始化
getUserModel
();
}
saveUserModel
(
UserModel
userModel
)
async
{
SharedPreferences
pref
=
await
SharedPreferences
.
getInstance
();
//将data转换成json字符串
var
jsonStr
=
json
.
encode
(
userModel
);
pref
.
setString
(
'UserModel'
,
jsonStr
);
this
.
userModel
=
userModel
;
}
// 读取 SharedPreferences
getUserModel
()
async
{
SharedPreferences
prefs
=
await
SharedPreferences
.
getInstance
();
final
jsonStr
=
prefs
.
getString
(
'UserModel'
);
if
(
jsonStr
!=
null
&&
jsonStr
.
length
>
0
){
//先将json字符串转json
Map
json
=
jsonDecode
(
jsonStr
);
//将json转model
final
model
=
new
UserModel
.
fromJson
(
json
);
this
.
userModel
=
model
;
}
}
removeUserModel
()
async
{
SharedPreferences
prefs
=
await
SharedPreferences
.
getInstance
();
prefs
.
setString
(
'UserModel'
,
""
);
this
.
userModel
=
null
;
}
}
\ No newline at end of file
netrain_flutter_app/lib/zhangfeng/UserModel.dart
0 → 100644
View file @
0f45a67d
import
'package:json_annotation/json_annotation.dart'
;
part
'UserModel.g.dart'
;
@JsonSerializable
()
class
UserModel
{
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
);
}
netrain_flutter_app/lib/zhangfeng/UserModel.g.dart
0 → 100644
View file @
0f45a67d
// 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 @
0f45a67d
...
...
@@ -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