登录页面Obx修改

This commit is contained in:
tanlinxing 2024-09-12 10:35:02 +08:00
parent 680afe5b41
commit cd260e1044
9 changed files with 711 additions and 510 deletions

View File

@ -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,
); );
} }
} }

View File

@ -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

View File

@ -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"; //

View 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;
}

View File

@ -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();

View File

@ -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();
}
}

View File

@ -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();
}
}