|
@@ -1,566 +1,188 @@
|
|
|
import 'dart:convert';
|
|
|
-import 'dart:io';
|
|
|
|
|
|
-import 'package:fis_jsonrpc/rpc.dart';
|
|
|
import 'package:flutter/material.dart';
|
|
|
import 'package:get/get.dart';
|
|
|
-import 'package:intl/intl.dart';
|
|
|
-import 'package:vnoteapp/components/alert_dialog.dart';
|
|
|
import 'package:vnoteapp/components/appbar.dart';
|
|
|
-import 'package:vnoteapp/components/cell.dart';
|
|
|
-import 'package:vnoteapp/components/dialog_date.dart';
|
|
|
-import 'package:vnoteapp/components/dialog_input.dart';
|
|
|
-import 'package:vnoteapp/components/dialog_select.dart';
|
|
|
-import 'package:vnoteapp/components/panel.dart';
|
|
|
-import 'package:vnoteapp/store/store.dart';
|
|
|
+import 'package:vnoteapp/components/button.dart';
|
|
|
+import 'package:vnoteapp/components/side_nav/defines.dart';
|
|
|
+import 'package:vnoteapp/components/side_nav/side_nav.dart';
|
|
|
+import 'package:vnoteapp/pages/contract/package_list/widgets/capture_portrait.dart';
|
|
|
+import 'package:vnoteapp/pages/contract/package_list/widgets/family_doctor_service_package.dart';
|
|
|
+import 'package:vnoteapp/pages/contract/package_list/widgets/personal_information.dart';
|
|
|
+import 'package:vnoteapp/pages/contract/package_list/widgets/service_information.dart';
|
|
|
+import 'package:vnoteapp/routes/nav_ids.dart';
|
|
|
+import 'package:vnoteapp/routes/route_setting.dart';
|
|
|
import 'controller.dart';
|
|
|
-import 'package:image_picker/image_picker.dart';
|
|
|
|
|
|
class ServicePackageContractPage
|
|
|
extends GetView<ServicePackageContractController> {
|
|
|
const ServicePackageContractPage({super.key});
|
|
|
static const double labelSize = 20;
|
|
|
-
|
|
|
@override
|
|
|
Widget build(BuildContext context) {
|
|
|
return Scaffold(
|
|
|
- backgroundColor: const Color.fromRGBO(238, 238, 238, 1),
|
|
|
+ backgroundColor: Colors.white,
|
|
|
appBar: VAppBar(
|
|
|
titleWidget: const Text(
|
|
|
"签约",
|
|
|
style: TextStyle(fontSize: 24),
|
|
|
),
|
|
|
- actions: [
|
|
|
- TextButton(
|
|
|
- onPressed: () {
|
|
|
- Get.back();
|
|
|
- Get.toNamed(
|
|
|
- "/contract/contract_template",
|
|
|
- parameters: {
|
|
|
- "templateCode": "53C3323BB6444A109B2369703EFFDFF9",
|
|
|
- "patientInfo": json.encode(controller.patient.toJson()),
|
|
|
- "servicePackageCodes":
|
|
|
- controller.state.selectedServicePackageCode,
|
|
|
- "servicePackageNames":
|
|
|
- controller.state.selectedServicePackageName,
|
|
|
- "serviceTime": controller.state.serviceTime.toString(),
|
|
|
- "serviceStartDate":
|
|
|
- controller.state.serviceStartDate.toString(),
|
|
|
- "base64Image": controller.base64Image,
|
|
|
- "notes": controller.state.notes,
|
|
|
- },
|
|
|
- );
|
|
|
- },
|
|
|
- child: const Text(
|
|
|
- '下一步',
|
|
|
- style: TextStyle(color: Colors.white, fontSize: 20),
|
|
|
- ),
|
|
|
- ),
|
|
|
- const SizedBox(
|
|
|
- width: 15,
|
|
|
- ),
|
|
|
- ],
|
|
|
),
|
|
|
- endDrawer: _servicePackageDrawer(context),
|
|
|
- body: Builder(builder: (context) {
|
|
|
- return Padding(
|
|
|
- padding: const EdgeInsets.symmetric(horizontal: 200, vertical: 8),
|
|
|
- child: ListView(
|
|
|
- children: [
|
|
|
- Column(
|
|
|
- children: [
|
|
|
- _buildPhotoVPanel(),
|
|
|
- const SizedBox(height: 16),
|
|
|
- _buildContractDoctorVPanel(),
|
|
|
- const SizedBox(height: 16),
|
|
|
- _buildPatientVPanel(),
|
|
|
- const SizedBox(height: 16),
|
|
|
- _buildServicePackageVPanel(context),
|
|
|
- ],
|
|
|
- ),
|
|
|
- ],
|
|
|
+ body: Stack(
|
|
|
+ children: [
|
|
|
+ VSideNavView(
|
|
|
+ navId: NavIds.CONTRACT,
|
|
|
+ items: _buildItems(),
|
|
|
),
|
|
|
- );
|
|
|
- }),
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- Drawer _servicePackageDrawer(BuildContext context) {
|
|
|
- const double titleSize = 20;
|
|
|
- const double labelSize = 18;
|
|
|
- Widget buildAlertDialog(ServicePackDTO servicePackDTO) {
|
|
|
- return VAlertDialog(
|
|
|
- title: '${servicePackDTO.name}详情',
|
|
|
- content: Container(
|
|
|
- height: 200,
|
|
|
- alignment: Alignment.topLeft,
|
|
|
- padding: const EdgeInsets.symmetric(horizontal: 15),
|
|
|
- child: Column(
|
|
|
- crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
+ Positioned(
|
|
|
+ bottom: 8,
|
|
|
+ left: 200,
|
|
|
+ right: 200,
|
|
|
+ child: Row(
|
|
|
+ mainAxisAlignment: MainAxisAlignment.spaceAround,
|
|
|
children: [
|
|
|
- LayoutBuilder(
|
|
|
- builder: (BuildContext context, BoxConstraints constraints) {
|
|
|
- return ConstrainedBox(
|
|
|
- constraints: const BoxConstraints(
|
|
|
- maxHeight: 100,
|
|
|
- ),
|
|
|
- child: Scrollbar(
|
|
|
- thumbVisibility: true,
|
|
|
- child: ListView(
|
|
|
- shrinkWrap: true,
|
|
|
- children: [
|
|
|
- Text(
|
|
|
- servicePackDTO.content ?? "",
|
|
|
- style: const TextStyle(fontSize: 16),
|
|
|
- ),
|
|
|
- ],
|
|
|
- ),
|
|
|
- ),
|
|
|
+ VButton(
|
|
|
+ label: "下一步",
|
|
|
+ onTap: () {
|
|
|
+ Get.back();
|
|
|
+ Get.toNamed(
|
|
|
+ "/contract/contract_template",
|
|
|
+ parameters: {
|
|
|
+ "templateCode": "53C3323BB6444A109B2369703EFFDFF9",
|
|
|
+ "patientInfo": json.encode(controller.patient.toJson()),
|
|
|
+ "servicePackageCodes":
|
|
|
+ controller.state.selectedServicePackageCode,
|
|
|
+ "servicePackageNames":
|
|
|
+ controller.state.selectedServicePackageName,
|
|
|
+ "serviceTime": controller.state.serviceTime.toString(),
|
|
|
+ "serviceStartDate":
|
|
|
+ controller.state.serviceStartDate.toString(),
|
|
|
+ "base64Image": controller.base64Image,
|
|
|
+ "notes": controller.state.notes,
|
|
|
+ },
|
|
|
);
|
|
|
},
|
|
|
),
|
|
|
- const SizedBox(
|
|
|
- height: 5,
|
|
|
- ),
|
|
|
- const Text(
|
|
|
- '服务项目',
|
|
|
- style: TextStyle(fontWeight: FontWeight.bold, fontSize: 18),
|
|
|
- ),
|
|
|
- const SizedBox(
|
|
|
- height: 5,
|
|
|
- ),
|
|
|
- Expanded(
|
|
|
- child: Text(
|
|
|
- controller.getServiceItemsName(
|
|
|
- servicePackDTO.items ?? [],
|
|
|
- ),
|
|
|
- ),
|
|
|
- )
|
|
|
],
|
|
|
- )),
|
|
|
- // actions: <Widget>[
|
|
|
- // TextButton(
|
|
|
- // child: const Text('取消'),
|
|
|
- // onPressed: () {
|
|
|
- // Navigator.of(context).pop(); // 关闭对话框
|
|
|
- // },
|
|
|
- // ),
|
|
|
- // TextButton(
|
|
|
- // child: const Text('确定'),
|
|
|
- // onPressed: () {
|
|
|
- // // 在这里处理确定按钮的逻辑
|
|
|
- // Navigator.of(context).pop(); // 关闭对话框
|
|
|
- // },
|
|
|
- // ),
|
|
|
- // ],
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- Widget buildItem(ServicePackDTO servicePackDTO) {
|
|
|
- return InkWell(
|
|
|
- onTap: () {
|
|
|
- controller.changeServicePackage(servicePackDTO);
|
|
|
- },
|
|
|
- child: Container(
|
|
|
- margin: const EdgeInsets.symmetric(
|
|
|
- vertical: 10,
|
|
|
- horizontal: 50,
|
|
|
- ),
|
|
|
- padding: const EdgeInsets.symmetric(horizontal: 30, vertical: 15),
|
|
|
- decoration: BoxDecoration(
|
|
|
- color: Colors.white,
|
|
|
- borderRadius: const BorderRadius.all(
|
|
|
- Radius.circular(
|
|
|
- 8,
|
|
|
- ),
|
|
|
),
|
|
|
- border: Border.all(
|
|
|
- color: controller.state.selectedServicePackage
|
|
|
- .contains(servicePackDTO)
|
|
|
- ? Theme.of(context).primaryColor
|
|
|
- : Colors.transparent,
|
|
|
- width: 2,
|
|
|
- ),
|
|
|
- ),
|
|
|
- child: Row(
|
|
|
- children: [
|
|
|
- Container(
|
|
|
- padding: const EdgeInsets.only(right: 20),
|
|
|
- child: Obx(
|
|
|
- () => Icon(
|
|
|
- Icons.check_circle_outline,
|
|
|
- size: 35,
|
|
|
- color: controller.state.selectedServicePackage
|
|
|
- .contains(servicePackDTO)
|
|
|
- ? Theme.of(context).primaryColor
|
|
|
- : Colors.grey.shade500,
|
|
|
- ),
|
|
|
- ),
|
|
|
- ),
|
|
|
- Expanded(
|
|
|
- child: Column(
|
|
|
- children: [
|
|
|
- Row(
|
|
|
- children: [
|
|
|
- Expanded(
|
|
|
- child: Text(
|
|
|
- servicePackDTO.name ?? '',
|
|
|
- style: const TextStyle(
|
|
|
- fontSize: 25,
|
|
|
- fontWeight: FontWeight.bold,
|
|
|
- ),
|
|
|
- ),
|
|
|
- ),
|
|
|
- Expanded(
|
|
|
- child: Row(
|
|
|
- children: [
|
|
|
- const Text(
|
|
|
- '服务人群:',
|
|
|
- style: TextStyle(fontSize: titleSize),
|
|
|
- ),
|
|
|
- Text(
|
|
|
- controller.setNormalLabels(
|
|
|
- servicePackDTO.labels ?? [],
|
|
|
- ),
|
|
|
- style: const TextStyle(fontSize: labelSize),
|
|
|
- ),
|
|
|
- ],
|
|
|
- ),
|
|
|
- ),
|
|
|
- ],
|
|
|
- ),
|
|
|
- const SizedBox(
|
|
|
- height: 10,
|
|
|
- ),
|
|
|
- Row(
|
|
|
- mainAxisSize: MainAxisSize.max,
|
|
|
- children: [
|
|
|
- Expanded(
|
|
|
- child: Row(
|
|
|
- mainAxisSize: MainAxisSize.max,
|
|
|
- children: [
|
|
|
- const Text(
|
|
|
- '服务包介绍:',
|
|
|
- style: TextStyle(fontSize: titleSize),
|
|
|
- ),
|
|
|
- Expanded(
|
|
|
- child: Container(
|
|
|
- alignment: Alignment.centerLeft,
|
|
|
- height: 50,
|
|
|
- child: Text(
|
|
|
- servicePackDTO.content ?? '',
|
|
|
- overflow: TextOverflow.ellipsis,
|
|
|
- maxLines: 2,
|
|
|
- style: const TextStyle(fontSize: labelSize),
|
|
|
- ),
|
|
|
- ),
|
|
|
- ),
|
|
|
- ],
|
|
|
- ),
|
|
|
- ),
|
|
|
- ],
|
|
|
- ),
|
|
|
- ],
|
|
|
- ),
|
|
|
- ),
|
|
|
- Container(
|
|
|
- padding: const EdgeInsets.only(left: 20),
|
|
|
- child: TextButton(
|
|
|
- child: const Text(
|
|
|
- '查看',
|
|
|
- style: TextStyle(fontSize: 18),
|
|
|
- ),
|
|
|
- onPressed: () async {
|
|
|
- // await Get.toNamed(
|
|
|
- // '/contract/package_info',
|
|
|
- // parameters: {
|
|
|
- // "servicePack": json.encode(servicePackDTO.toJson()),
|
|
|
- // },
|
|
|
- // );
|
|
|
- showDialog(
|
|
|
- context: context,
|
|
|
- builder: (BuildContext context) {
|
|
|
- return buildAlertDialog(servicePackDTO);
|
|
|
- },
|
|
|
- );
|
|
|
- },
|
|
|
- ),
|
|
|
- ),
|
|
|
- ],
|
|
|
),
|
|
|
- ),
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- Widget buildCancelButton() {
|
|
|
- return TextButton(
|
|
|
- onPressed: () {
|
|
|
- Get.back();
|
|
|
- },
|
|
|
- child: const Text(
|
|
|
- '取消',
|
|
|
- style: TextStyle(fontSize: 25),
|
|
|
- ),
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- Widget buildConfirmButton() {
|
|
|
- return TextButton(
|
|
|
- onPressed: () {},
|
|
|
- child: const Text(
|
|
|
- '确定',
|
|
|
- style: TextStyle(fontSize: 25),
|
|
|
- ),
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- Widget buildHeader() {
|
|
|
- return Container(
|
|
|
- decoration: const BoxDecoration(
|
|
|
- color: Colors.white,
|
|
|
- ),
|
|
|
- height: 90,
|
|
|
- padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 10),
|
|
|
- child: Row(
|
|
|
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
- children: [
|
|
|
- buildCancelButton(),
|
|
|
- buildConfirmButton(),
|
|
|
- ],
|
|
|
- ),
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- Widget buildServicePackageList() {
|
|
|
- return Obx(
|
|
|
- () => Expanded(
|
|
|
- child: controller.state.servicePackageItems.isEmpty
|
|
|
- ? Container(
|
|
|
- margin: const EdgeInsets.only(top: 80),
|
|
|
- child: Column(
|
|
|
- children: [
|
|
|
- Center(
|
|
|
- child: Image.asset(
|
|
|
- "assets/images/no_data.png",
|
|
|
- width: 300,
|
|
|
- height: 300,
|
|
|
- fit: BoxFit.cover,
|
|
|
- ),
|
|
|
- ),
|
|
|
- const Text(
|
|
|
- "暂无数据,先看看别的吧",
|
|
|
- style: TextStyle(fontSize: 18),
|
|
|
- ),
|
|
|
- ],
|
|
|
- ),
|
|
|
- )
|
|
|
- : ListView(
|
|
|
- children: controller.state.servicePackageItems
|
|
|
- .map((ServicePackDTO e) => buildItem(e))
|
|
|
- .toList(),
|
|
|
- ),
|
|
|
- ),
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- return Drawer(
|
|
|
- shape: const RoundedRectangleBorder(
|
|
|
- borderRadius: BorderRadiusDirectional.horizontal(
|
|
|
- end: Radius.circular(0),
|
|
|
- ),
|
|
|
- ),
|
|
|
- width: MediaQuery.of(context).size.width * 0.7,
|
|
|
- child: Container(
|
|
|
- color: Colors.grey.shade300,
|
|
|
- child: Column(
|
|
|
- mainAxisSize: MainAxisSize.max,
|
|
|
- children: [
|
|
|
- // buildHeader(),
|
|
|
- const SizedBox(
|
|
|
- height: 30,
|
|
|
- ),
|
|
|
- buildServicePackageList(),
|
|
|
- const SizedBox(
|
|
|
- height: 10,
|
|
|
- ),
|
|
|
- ],
|
|
|
- ),
|
|
|
+ // const FloatingWindow(),
|
|
|
+ ],
|
|
|
),
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- Future<String> convertImageToBase64(XFile image) async {
|
|
|
- List<int> imageBytes = await image.readAsBytes();
|
|
|
- String base64Image = base64Encode(imageBytes);
|
|
|
- return base64Image;
|
|
|
+ List<VSideNavMenuItem> _buildItems() {
|
|
|
+ final items = <VSideNavMenuItem>[];
|
|
|
+ items.add(_buildCapturePortrait());
|
|
|
+ items.add(_buildPersonalInformation());
|
|
|
+ items.add(_buildServiceInformation());
|
|
|
+ items.add(_buildFamilyDoctorServicePackage());
|
|
|
+
|
|
|
+ return items;
|
|
|
}
|
|
|
|
|
|
- Widget _buildPhotoVPanel() {
|
|
|
- return VListFormCellGroup(
|
|
|
- children: [
|
|
|
- Obx(
|
|
|
- () => VListFormCell(
|
|
|
- label: '拍照',
|
|
|
- height: 70,
|
|
|
- contentWidget: controller.state.userImage != null
|
|
|
- ? Image.file(
|
|
|
- File(controller.state.userImage!.path),
|
|
|
- )
|
|
|
- : const Center(
|
|
|
- child: Icon(
|
|
|
- Icons.account_box_rounded,
|
|
|
- size: 70,
|
|
|
- ),
|
|
|
- ),
|
|
|
- onTap: () async {
|
|
|
- XFile? image =
|
|
|
- await ImagePicker().pickImage(source: ImageSource.camera);
|
|
|
- controller.state.userImage = image;
|
|
|
- String base64Image = await convertImageToBase64(image!);
|
|
|
- controller.base64Image = base64Image;
|
|
|
- },
|
|
|
- ),
|
|
|
- )
|
|
|
- ],
|
|
|
+ VSideNavMenuItem _buildCapturePortrait() {
|
|
|
+ return VSideNavMenuItem(
|
|
|
+ title: "人像采集",
|
|
|
+ icon: Icon(Icons.edit_document, color: Colors.grey.shade700),
|
|
|
+ // onTap: () {}
|
|
|
+ route: VRouteSetting(
|
|
|
+ "/capture_portrait_page",
|
|
|
+ () => const CapturePortraitPage(),
|
|
|
+ binding: BindingsBuilder(
|
|
|
+ () {
|
|
|
+ Get.lazyPut(() => ServicePackageContractController());
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ ),
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- Widget _buildContractDoctorVPanel() {
|
|
|
- return VListFormCellGroup(
|
|
|
- children: [
|
|
|
- Obx(
|
|
|
- () => VListFormCell(
|
|
|
- label: '服务日期',
|
|
|
- content: DateFormat('yyyy-MM-dd')
|
|
|
- .format(controller.state.serviceStartDate),
|
|
|
- onTap: () async {
|
|
|
- final result = await VDialogDate(
|
|
|
- title: '服务日期',
|
|
|
- initialValue: controller.state.serviceStartDate,
|
|
|
- ).show();
|
|
|
- controller.state.serviceStartDate = result;
|
|
|
- },
|
|
|
- ),
|
|
|
- ),
|
|
|
- Obx(
|
|
|
- () => VListFormCell(
|
|
|
- label: '服务年限',
|
|
|
- content: '${controller.state.serviceTime}年',
|
|
|
- onTap: () async {
|
|
|
- String? result = await VDialogSelect<VSelectModel, String>(
|
|
|
- source: [
|
|
|
- VSelectModel(code: "1", name: "1年"),
|
|
|
- VSelectModel(code: "2", name: "2年"),
|
|
|
- VSelectModel(code: "3", name: "3年"),
|
|
|
- ],
|
|
|
- labelGetter: (data) => data.name,
|
|
|
- valueGetter: (data) => data.code,
|
|
|
- ).show();
|
|
|
- controller.state.serviceTime = int.parse(result ?? '1');
|
|
|
- },
|
|
|
- ),
|
|
|
- ),
|
|
|
- VListFormCell(
|
|
|
- label: '签约医生',
|
|
|
- content: Store.user.principalName,
|
|
|
+ VSideNavMenuItem _buildServiceInformation() {
|
|
|
+ return VSideNavMenuItem(
|
|
|
+ title: "服务信息",
|
|
|
+ icon: Icon(Icons.edit_document, color: Colors.grey.shade700),
|
|
|
+ // onTap: () {}
|
|
|
+ route: VRouteSetting(
|
|
|
+ "/service_information_page",
|
|
|
+ () => const ServiceInformationPage(),
|
|
|
+ binding: BindingsBuilder(
|
|
|
+ () {
|
|
|
+ Get.lazyPut(() => ServicePackageContractController());
|
|
|
+ },
|
|
|
),
|
|
|
- VListFormCell(
|
|
|
- label: '医生电话',
|
|
|
- content: Store.user.principalPhone,
|
|
|
- ),
|
|
|
- ],
|
|
|
+ ),
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- Widget _buildPatientVPanel() {
|
|
|
- return Stack(
|
|
|
- children: [
|
|
|
- Obx(
|
|
|
- () => VListFormCellGroup(
|
|
|
- children: [
|
|
|
- VListFormCell(
|
|
|
- label: '姓名',
|
|
|
- content: controller.state.name,
|
|
|
- ),
|
|
|
- VListFormCell(
|
|
|
- label: '联系电话',
|
|
|
- content: controller.state.phone,
|
|
|
- ),
|
|
|
- if (controller.state.isExpendPatient) ...[
|
|
|
- VListFormCell(
|
|
|
- label: '身份证号码',
|
|
|
- content: controller.state.cardNo,
|
|
|
- ),
|
|
|
- const VListFormCell(
|
|
|
- label: '民族',
|
|
|
- content: '汉族',
|
|
|
- ),
|
|
|
- VListFormCell(
|
|
|
- label: '性别',
|
|
|
- content: controller.state.genderDesc,
|
|
|
- ),
|
|
|
- VListFormCell(
|
|
|
- label: '出生日期',
|
|
|
- content: DateFormat('yyyy-MM-dd').format(
|
|
|
- controller.state.birthday,
|
|
|
- ),
|
|
|
- ),
|
|
|
- ]
|
|
|
- ],
|
|
|
- ),
|
|
|
+ VSideNavMenuItem _buildFamilyDoctorServicePackage() {
|
|
|
+ return VSideNavMenuItem(
|
|
|
+ title: "家庭医生服务包",
|
|
|
+ icon: Icon(Icons.edit_document, color: Colors.grey.shade700),
|
|
|
+ // onTap: () {}
|
|
|
+ route: VRouteSetting(
|
|
|
+ "/family_doctor_service_package_page",
|
|
|
+ () => const FamilyDoctorServicePackagePage(),
|
|
|
+ binding: BindingsBuilder(
|
|
|
+ () {
|
|
|
+ Get.lazyPut(() => ServicePackageContractController());
|
|
|
+ },
|
|
|
),
|
|
|
- Positioned(
|
|
|
- right: 0,
|
|
|
- top: 0,
|
|
|
- child: IconButton(
|
|
|
- onPressed: () {
|
|
|
- controller.state.isExpendPatient =
|
|
|
- !controller.state.isExpendPatient;
|
|
|
- },
|
|
|
- icon: Obx(
|
|
|
- () => Icon(
|
|
|
- controller.state.isExpendPatient
|
|
|
- ? Icons.keyboard_arrow_up_rounded
|
|
|
- : Icons.keyboard_arrow_down_rounded,
|
|
|
- color: Colors.grey.shade400,
|
|
|
- size: 30,
|
|
|
- ),
|
|
|
- ),
|
|
|
- ),
|
|
|
- )
|
|
|
- ],
|
|
|
+ ),
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- Widget _buildServicePackageVPanel(BuildContext context) {
|
|
|
- return VPanel(
|
|
|
- child: VListFormCellGroup(
|
|
|
- children: [
|
|
|
- Obx(
|
|
|
- () => VListFormCell(
|
|
|
- label: '家庭医生服务包',
|
|
|
- height: 70,
|
|
|
- content: controller.state.selectedServicePackageName,
|
|
|
- onTap: () {
|
|
|
- Scaffold.of(context).openEndDrawer();
|
|
|
- },
|
|
|
- ),
|
|
|
- ),
|
|
|
- Obx(
|
|
|
- () => VListFormCell(
|
|
|
- label: '备注',
|
|
|
- content: controller.state.notes,
|
|
|
- onTap: () async {
|
|
|
- String? result = await VDialogInput(
|
|
|
- title: '备注',
|
|
|
- initialValue: controller.state.notes,
|
|
|
- ).show();
|
|
|
- controller.state.notes = result ?? controller.state.notes;
|
|
|
- },
|
|
|
- ),
|
|
|
- ),
|
|
|
- ],
|
|
|
+ VSideNavMenuItem _buildPersonalInformation() {
|
|
|
+ return VSideNavMenuItem(
|
|
|
+ title: "个人信息",
|
|
|
+ icon: Icon(Icons.edit_document, color: Colors.grey.shade700),
|
|
|
+ // onTap: () {}
|
|
|
+ route: VRouteSetting(
|
|
|
+ "/personal_information_page",
|
|
|
+ () => const PersonalInformationPage(),
|
|
|
+ binding: BindingsBuilder(
|
|
|
+ () {
|
|
|
+ Get.lazyPut(() => ServicePackageContractController());
|
|
|
+ },
|
|
|
+ ),
|
|
|
),
|
|
|
);
|
|
|
}
|
|
|
+
|
|
|
+ // VSideNavMenuItem _buildAboutItem() {
|
|
|
+ // return VSideNavMenuItem(
|
|
|
+ // title: "人群分类",
|
|
|
+ // isRequired: true,
|
|
|
+ // icon: Icon(Icons.info_outline, color: Colors.grey.shade700),
|
|
|
+ // route: VRouteSetting(
|
|
|
+ // "/crowd_label_panel",
|
|
|
+ // () => CrowdLabel(),
|
|
|
+ // binding: BindingsBuilder(
|
|
|
+ // () {
|
|
|
+ // Get.lazyPut(() => CrowdLabelsController());
|
|
|
+ // Get.lazyPut(() => CreatePatientController());
|
|
|
+ // },
|
|
|
+ // ),
|
|
|
+ // ),
|
|
|
+ // // route: VRouteSetting("/about", () => const AboutPage()),
|
|
|
+ // );
|
|
|
+ // }
|
|
|
+
|
|
|
+ // VSideNavMenuItem _buildLogOutItem() {
|
|
|
+ // return VSideNavMenuItem(
|
|
|
+ // title: "个人信息",
|
|
|
+ // icon: Icon(Icons.exit_to_app, color: Colors.grey.shade700),
|
|
|
+ // route: VRouteSetting(
|
|
|
+ // "/patient_info_panel",
|
|
|
+ // () => const PatientInfo(),
|
|
|
+ // binding: BindingsBuilder(
|
|
|
+ // () {
|
|
|
+ // Get.lazyPut(() => CreatePatientController());
|
|
|
+ // },
|
|
|
+ // ),
|
|
|
+ // ),
|
|
|
+ // // shouldRearrage: true, // TODO: 调整样式后启用
|
|
|
+ // );
|
|
|
+ // }
|
|
|
}
|