1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import 'package:flutter/material.dart';
- import 'package:get/get.dart';
- import 'package:vnoteapp/components/alert_dialog.dart';
- import 'package:vnoteapp/components/side_nav/defines.dart';
- import 'package:vnoteapp/components/side_nav/side_nav.dart';
- import 'package:vnoteapp/pages/doctor/signature_setting/controller.dart';
- import 'package:vnoteapp/pages/doctor/signature_setting/view.dart';
- import 'package:vnoteapp/pages/settings/about/view.dart';
- import 'package:vnoteapp/routes/nav_ids.dart';
- import 'package:vnoteapp/routes/route_setting.dart';
- import 'controller.dart';
- class SettingCenterPage extends GetView<SettingCenterController> {
- const SettingCenterPage({super.key});
- @override
- Widget build(BuildContext context) {
- return VSideNavView(
- navId: NavIds.SETTINGS,
- items: _buildItems(),
- );
- }
- List<VSideNavMenuItem> _buildItems() {
- final items = <VSideNavMenuItem>[];
- items.add(_buildSignatureItem());
- items.add(_buildAboutItem());
- items.add(_buildLogOutItem());
- return items;
- }
- VSideNavMenuItem _buildSignatureItem() {
- return VSideNavMenuItem(
- title: "签名设置",
- icon: const Icon(Icons.edit_document),
- route: VRouteSetting(
- "/signature",
- () => const DoctorSignatureSettingPage(),
- binding: BindingsBuilder(
- () {
- Get.lazyPut(() => DoctorSignatureSettingController());
- },
- ),
- ),
- );
- }
- VSideNavMenuItem _buildAboutItem() {
- return VSideNavMenuItem(
- title: "关于我们",
- icon: const Icon(Icons.info_outline),
- route: VRouteSetting("/about", () => const AboutPage()),
- );
- }
- VSideNavMenuItem _buildLogOutItem() {
- return VSideNavMenuItem(
- title: "退出登录",
- icon: const Icon(Icons.exit_to_app),
- onTap: () {
- // TODO: 用confirm组件替换
- Get.dialog(
- VAlertDialog(
- title: "提示",
- width: 260,
- content: Container(
- height: 32,
- padding: const EdgeInsets.symmetric(horizontal: 24),
- alignment: Alignment.center,
- child: const Text(
- "确定退出登录?",
- style: TextStyle(fontSize: 20),
- ),
- ),
- onConfirm: () {
- controller.logOut();
- },
- ),
- barrierDismissible: false,
- barrierColor: Colors.black.withOpacity(.4),
- );
- },
- );
- }
- }
|