feat(client): 应用内注册新门店(两栏品牌页 + 表单)
- 新增 RegisterScreen(左品牌面板 3 步引导 + 右表单:门店名/电话/地址/ 管理员/账号/密码/确认 + 同意条款),还原原型两栏设计,全 token 化 - AuthRepository.register → POST /api/v1/register(后端已有),成功弹门店编号 引导去登录 - 路由加 /register(公开路由);登录页「前往官网注册」→ 应用内「立即注册」 - 整屏 golden ×三主题入回归闸 (购买流/通知中心按指示暂不做) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
This commit is contained in:
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import '../../screens/auth/login_screen.dart';
|
||||
import '../../screens/auth/register_screen.dart';
|
||||
import '../../screens/shell/app_shell.dart';
|
||||
import '../../screens/stock_in/stock_in_list_screen.dart';
|
||||
import '../../screens/stock_in/stock_in_form_screen.dart';
|
||||
@@ -41,6 +42,7 @@ class _RouterNotifier extends ChangeNotifier {
|
||||
final isLoggedIn = authState.isLoggedIn;
|
||||
final loc = state.matchedLocation;
|
||||
final isPublicRoute = loc == '/login' ||
|
||||
loc == '/register' ||
|
||||
loc.startsWith('/product/') ||
|
||||
loc.startsWith('/shop/');
|
||||
final result = !authState.initialized
|
||||
@@ -93,6 +95,10 @@ final appRouterProvider = Provider<GoRouter>((ref) {
|
||||
path: '/login',
|
||||
builder: (context, state) => const LoginScreen(),
|
||||
),
|
||||
GoRoute(
|
||||
path: '/register',
|
||||
builder: (context, state) => const RegisterScreen(),
|
||||
),
|
||||
// 各栏目拆为独立分支:StatefulShellRoute.indexedStack 让每个分支的 Navigator
|
||||
// 及其页面 State 常驻,跨栏目切换不再销毁上一页(半填表单/内部 tab/滚动位置保活)。
|
||||
// 分支顺序必须与 AppShell._navItems 一致(navigationShell.currentIndex 据此高亮)。
|
||||
|
||||
Reference in New Issue
Block a user