登录页面Obx修改
This commit is contained in:
parent
680afe5b41
commit
cd260e1044
@ -1,17 +1,26 @@
|
|||||||
import 'package:cpnav/appbar.dart';
|
import 'package:cpnav/appbar.dart';
|
||||||
|
import 'package:cpnav/pages/login/loginprefs.dart';
|
||||||
import 'package:cpnav/pages/pass_track/controller.dart';
|
import 'package:cpnav/pages/pass_track/controller.dart';
|
||||||
import 'package:cpnav/pages/pass_track/bottomIcon/iconController.dart';
|
import 'package:cpnav/pages/pass_track/bottomIcon/iconController.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:scence_map/controller.dart';
|
import 'package:scence_map/controller.dart';
|
||||||
|
import 'pages/login/login_page.dart';
|
||||||
|
import 'pages/login/my_routes.dart';
|
||||||
import 'pages/pass_track/view.dart';
|
import 'pages/pass_track/view.dart';
|
||||||
|
import 'service/pile_cm.dart';
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: []); //设置全屏
|
SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: []); //设置全屏
|
||||||
Get.put(PassTrackController('WXLMB', 'cp_road'));
|
Get.put(PassTrackController('WXLMB', 'cp_road'));
|
||||||
Get.put(IconController());
|
Get.put(IconController());
|
||||||
|
Get.put(LoginPageController());
|
||||||
|
Get.put(AccountLoginController());
|
||||||
|
Get.put(PhoneLoginController());
|
||||||
|
LoginPrefs loginPrefs = LoginPrefs();
|
||||||
|
loginPrefs.removeToken();
|
||||||
runApp(const MyApp());
|
runApp(const MyApp());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -24,25 +33,12 @@ class MyApp extends StatelessWidget {
|
|||||||
return MaterialApp(
|
return MaterialApp(
|
||||||
title: 'Flutter Demo',
|
title: 'Flutter Demo',
|
||||||
theme: ThemeData(
|
theme: ThemeData(
|
||||||
// This is the theme of your application.
|
|
||||||
//
|
|
||||||
// TRY THIS: Try running your application with "flutter run". You'll see
|
|
||||||
// the application has a purple toolbar. Then, without quitting the app,
|
|
||||||
// try changing the seedColor in the colorScheme below to Colors.green
|
|
||||||
// and then invoke "hot reload" (save your changes or press the "hot
|
|
||||||
// reload" button in a Flutter-supported IDE, or press "r" if you used
|
|
||||||
// the command line to start the app).
|
|
||||||
//
|
|
||||||
// Notice that the counter didn't reset back to zero; the application
|
|
||||||
// state is not lost during the reload. To reset the state, use hot
|
|
||||||
// restart instead.
|
|
||||||
//
|
|
||||||
// This works for code too, not just values: Most code changes can be
|
|
||||||
// tested with just a hot reload.
|
|
||||||
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
|
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
|
||||||
useMaterial3: true,
|
useMaterial3: true,
|
||||||
),
|
),
|
||||||
home: const MyHomePage(title: 'Flutter Demo Home Page'),
|
home: const MyHomePage(title: 'Flutter Demo Home Page'),
|
||||||
|
initialRoute: "home",
|
||||||
|
onGenerateRoute: onGenerateRoute,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,75 +0,0 @@
|
|||||||
import 'package:get/get.dart';
|
|
||||||
import 'package:get_storage/get_storage.dart';
|
|
||||||
|
|
||||||
import 'package:cpnav/models/user.dart';
|
|
||||||
|
|
||||||
class LoginPrefs extends GetxController {
|
|
||||||
static const String expireStr = "expire"; //用户名
|
|
||||||
static const String tokenStr = "token"; //token
|
|
||||||
static const String phoneStr = "phone";
|
|
||||||
final box = GetStorage(); // 实例化 GetStorage
|
|
||||||
|
|
||||||
Future<String> init() async {
|
|
||||||
await GetStorage.init(); // 初始化 GetStorage
|
|
||||||
return 'ok';
|
|
||||||
}
|
|
||||||
|
|
||||||
void saveExpire(int expire) {
|
|
||||||
box.write(expireStr, expire);
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
|
|
||||||
int getExpire() {
|
|
||||||
return box.read(expireStr) ?? 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void saveToken(String token) {
|
|
||||||
box.write(tokenStr, token);
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
|
|
||||||
String getToken() {
|
|
||||||
return box.read(tokenStr) ?? "";
|
|
||||||
}
|
|
||||||
|
|
||||||
void removeExpire() {
|
|
||||||
box.remove(expireStr);
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
|
|
||||||
void removeToken() {
|
|
||||||
box.remove(tokenStr);
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
|
|
||||||
void savePhone(String phone) {
|
|
||||||
box.write(phoneStr, phone);
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
|
|
||||||
String getPhone() {
|
|
||||||
return box.read(phoneStr) ?? "";
|
|
||||||
}
|
|
||||||
|
|
||||||
void clearLogin() {
|
|
||||||
box.erase(); // 清除所有数据
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class UserController extends GetxController {
|
|
||||||
final box = GetStorage(); // 实例化 GetStorage
|
|
||||||
|
|
||||||
UserModel? getUser() {
|
|
||||||
final userMap = box.read('user');
|
|
||||||
if (userMap != null) {
|
|
||||||
return UserModel.fromJson(userMap);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
void setUser(Map user) {
|
|
||||||
box.write('user', user);
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:get_storage/get_storage.dart';
|
import 'package:get_storage/get_storage.dart';
|
||||||
|
|
||||||
import 'package:cpnav/models/user.dart';
|
import 'package:cpnav/pages/login/user.dart';
|
||||||
|
|
||||||
class LoginPrefs extends GetxController {
|
class LoginPrefs extends GetxController {
|
||||||
static const String expireStr = "expire"; //用户名
|
static const String expireStr = "expire"; //用户名
|
||||||
|
48
lib/pages/login/my_routes.dart
Normal file
48
lib/pages/login/my_routes.dart
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
//配置路由
|
||||||
|
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import '../../main.dart';
|
||||||
|
import 'login_page.dart';
|
||||||
|
import 'loginprefs.dart';
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 这个方法是固定写法,功能就像是一个拦截器。
|
||||||
|
*/
|
||||||
|
Route<dynamic>? onGenerateRoute(RouteSettings settings) {
|
||||||
|
Map<String, Widget> routes = {
|
||||||
|
'home': MyHomePage(title: 'Flutter Demo Home Page'), //定义app路径
|
||||||
|
'login': const Login(), //定义login路径
|
||||||
|
};
|
||||||
|
|
||||||
|
String routerName = routeBeforeHook(settings);
|
||||||
|
bool mathMap = false;
|
||||||
|
Route<dynamic>? mathWidget;
|
||||||
|
routes.forEach((key, v) {
|
||||||
|
if (key == routerName) {
|
||||||
|
mathMap = true;
|
||||||
|
mathWidget = MaterialPageRoute(builder: (BuildContext context) => v);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (mathMap) {
|
||||||
|
return mathWidget;
|
||||||
|
}
|
||||||
|
return MaterialPageRoute(
|
||||||
|
builder: (BuildContext context) => const Text('404'));
|
||||||
|
}
|
||||||
|
|
||||||
|
String routeBeforeHook(RouteSettings settings) {
|
||||||
|
if (checkToken() == false) {
|
||||||
|
return 'login';
|
||||||
|
} else {
|
||||||
|
return settings.name!;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool checkToken() {
|
||||||
|
LoginPrefs loginPrefs = LoginPrefs();
|
||||||
|
String token = loginPrefs.getToken();
|
||||||
|
if ('' != token) return true;
|
||||||
|
return false;
|
||||||
|
}
|
@ -2,7 +2,8 @@ import 'dart:convert';
|
|||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'package:http/http.dart' as http;
|
import 'package:http/http.dart' as http;
|
||||||
import 'package:http/http.dart';
|
import 'package:http/http.dart';
|
||||||
import 'loginprefs.dart';
|
|
||||||
|
import '../pages/login/loginprefs.dart';
|
||||||
|
|
||||||
LoginPrefs loginPrefs = LoginPrefs();
|
LoginPrefs loginPrefs = LoginPrefs();
|
||||||
|
|
||||||
|
@ -1,74 +0,0 @@
|
|||||||
import 'package:get_storage/get_storage.dart';
|
|
||||||
|
|
||||||
import 'package:cpnav/models/user.dart';
|
|
||||||
|
|
||||||
class LoginPrefs {
|
|
||||||
static const String expireStr = "expire"; //用户名
|
|
||||||
static const String tokenStr = "token"; //token
|
|
||||||
static const String phoneStr = "phone";
|
|
||||||
final box = GetStorage(); // 实例化 GetStorage
|
|
||||||
|
|
||||||
Future<String> init() async {
|
|
||||||
await GetStorage.init(); // 初始化 GetStorage
|
|
||||||
return 'ok';
|
|
||||||
}
|
|
||||||
|
|
||||||
void saveExpire(int expire) {
|
|
||||||
box.write(expireStr, expire);
|
|
||||||
// update();
|
|
||||||
}
|
|
||||||
|
|
||||||
int getExpire() {
|
|
||||||
return box.read(expireStr) ?? 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void saveToken(String token) {
|
|
||||||
box.write(tokenStr, token);
|
|
||||||
// update();
|
|
||||||
}
|
|
||||||
|
|
||||||
String getToken() {
|
|
||||||
return box.read(tokenStr) ?? "";
|
|
||||||
}
|
|
||||||
|
|
||||||
void removeExpire() {
|
|
||||||
box.remove(expireStr);
|
|
||||||
// update();
|
|
||||||
}
|
|
||||||
|
|
||||||
void removeToken() {
|
|
||||||
box.remove(tokenStr);
|
|
||||||
// update();
|
|
||||||
}
|
|
||||||
|
|
||||||
void savePhone(String phone) {
|
|
||||||
box.write(phoneStr, phone);
|
|
||||||
// update();
|
|
||||||
}
|
|
||||||
|
|
||||||
String getPhone() {
|
|
||||||
return box.read(phoneStr) ?? "";
|
|
||||||
}
|
|
||||||
|
|
||||||
void clearLogin() {
|
|
||||||
box.erase(); // 清除所有数据
|
|
||||||
// update();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class UserController {
|
|
||||||
final box = GetStorage(); // 实例化 GetStorage
|
|
||||||
|
|
||||||
UserModel? getUser() {
|
|
||||||
final userMap = box.read('user');
|
|
||||||
if (userMap != null) {
|
|
||||||
return UserModel.fromJson(userMap);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
void setUser(Map user) {
|
|
||||||
box.write('user', user);
|
|
||||||
// update();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,75 +0,0 @@
|
|||||||
import 'package:get/get.dart';
|
|
||||||
import 'package:get_storage/get_storage.dart';
|
|
||||||
|
|
||||||
import 'package:cpnav/models/user.dart';
|
|
||||||
|
|
||||||
class LoginPrefs extends GetxController {
|
|
||||||
static const String expireStr = "expire"; //用户名
|
|
||||||
static const String tokenStr = "token"; //token
|
|
||||||
static const String phoneStr = "phone";
|
|
||||||
final box = GetStorage(); // 实例化 GetStorage
|
|
||||||
|
|
||||||
Future<String> init() async {
|
|
||||||
await GetStorage.init(); // 初始化 GetStorage
|
|
||||||
return 'ok';
|
|
||||||
}
|
|
||||||
|
|
||||||
void saveExpire(int expire) {
|
|
||||||
box.write(expireStr, expire);
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
|
|
||||||
int getExpire() {
|
|
||||||
return box.read(expireStr) ?? 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void saveToken(String token) {
|
|
||||||
box.write(tokenStr, token);
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
|
|
||||||
String getToken() {
|
|
||||||
return box.read(tokenStr) ?? "";
|
|
||||||
}
|
|
||||||
|
|
||||||
void removeExpire() {
|
|
||||||
box.remove(expireStr);
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
|
|
||||||
void removeToken() {
|
|
||||||
box.remove(tokenStr);
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
|
|
||||||
void savePhone(String phone) {
|
|
||||||
box.write(phoneStr, phone);
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
|
|
||||||
String getPhone() {
|
|
||||||
return box.read(phoneStr) ?? "";
|
|
||||||
}
|
|
||||||
|
|
||||||
void clearLogin() {
|
|
||||||
box.erase(); // 清除所有数据
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class UserController extends GetxController {
|
|
||||||
final box = GetStorage(); // 实例化 GetStorage
|
|
||||||
|
|
||||||
UserModel? getUser() {
|
|
||||||
final userMap = box.read('user');
|
|
||||||
if (userMap != null) {
|
|
||||||
return UserModel.fromJson(userMap);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
void setUser(Map user) {
|
|
||||||
box.write('user', user);
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user