123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- import 'package:flutter/material.dart';
- import 'package:get/get.dart';
- import 'package:vitalapp/architecture/utils/advance_debounce.dart';
- import 'package:vitalapp/architecture/values/features.dart';
- import 'package:vitalapp/components/button.dart';
- import 'package:vitalapp/components/side_nav/defines.dart';
- import 'package:vitalapp/components/side_nav/side_nav.dart';
- import 'package:vitalapp/pages/patient/create/controller.dart';
- import 'package:vitalapp/pages/patient/create/widgets/area.dart';
- import 'package:vitalapp/pages/patient/create/widgets/crowd_label.dart';
- import 'package:vitalapp/pages/patient/create/widgets/patient_info.dart';
- import 'package:vitalapp/pages/patient_info/view.dart';
- import 'package:vitalapp/store/store.dart';
- class CreatePatientPage extends GetView<CreatePatientController> {
- const CreatePatientPage({super.key});
- @override
- Widget build(BuildContext context) {
- return Stack(
- children: [
- VSideNavView(
- // navId: NavIds.CREATE,
- items: _buildItems(),
- ),
- Positioned(
- bottom: 8,
- left: 200,
- right: 200,
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceAround,
- children: [
- VButton(
- label: "保存",
- onTap: () {
- Debouncer.run(
- () {
- controller.saveAndBack();
- },
- );
- },
- ),
- ],
- ),
- ),
- ],
- );
- }
- List<VSideNavMenuItem> _buildItems() {
- final items = <VSideNavMenuItem>[];
- items.add(_buildLogOutItem());
- items.add(_buildSignatureItem());
- if (Store.user.hasFeature(FeatureKeys.CrowdClassification)) {
- items.add(_buildAboutItem());
- }
- return items;
- }
- VSideNavMenuItem _buildSignatureItem() {
- return VSideNavMenuItem(
- title: "服务信息",
- icon: Icon(Icons.edit_document, color: Colors.grey.shade700),
- pageBuilder: (_) => _buildInterval(
- const Area(),
- ),
- );
- }
- VSideNavMenuItem _buildAboutItem() {
- return VSideNavMenuItem(
- title: "人群分类",
- isRequired: true,
- icon: Icon(Icons.info_outline, color: Colors.grey.shade700),
- pageBuilder: (_) => _buildInterval(
- const CrowdLabelView(),
- ),
- );
- }
- VSideNavMenuItem _buildLogOutItem() {
- final ScrollController scrollController = ScrollController();
- return VSideNavMenuItem(
- title: "个人信息",
- icon:
- Icon(Icons.medical_information_outlined, color: Colors.grey.shade700),
- pageBuilder: (_) => _buildInterval(
- Scrollbar(
- controller: scrollController,
- child: SingleChildScrollView(
- controller: scrollController,
- child: Column(
- children: [
- PatientInfomationPage(
- isNeedSyncAddressCheck: true,
- isCanEditId: true,
- ),
- ],
- ),
- ),
- ),
- ),
- );
- }
- Widget _buildInterval(Widget child) {
- return Padding(
- padding: const EdgeInsets.symmetric(
- horizontal: 16,
- ),
- child: child,
- );
- }
- }
|