123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import 'dart:convert';
- import 'package:flutter/material.dart';
- import 'package:get/get.dart';
- import 'package:vnoteapp/components/button.dart';
- import 'controller.dart';
- class DoctorSignatureSettingPage
- extends GetView<DoctorSignatureSettingController> {
- const DoctorSignatureSettingPage({super.key});
- @override
- Widget build(BuildContext context) {
- return Column(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- _buildPreview(),
- const SizedBox(height: 20),
- _buildOperateRow(),
- ],
- );
- }
- Widget _buildOperateRow() {
- return VButton(
- label: "设 置",
- onTap: controller.rewrite,
- );
- }
- Widget _buildPreview() {
- return Obx(() {
- final imageWidget = controller.state.signaturBase64 != null
- ? _buildBase64Preview()
- : _buildEmptyPreview();
- return Container(
- decoration: BoxDecoration(
- color: Colors.white,
- border: Border.all(color: Colors.grey),
- ),
- width: 420,
- height: 270,
- child: imageWidget,
- );
- });
- }
- Widget _buildBase64Preview() {
- final base64 = controller.state.signaturBase64!;
- final bytes = base64Decode(base64);
- return Image.memory(
- bytes,
- fit: BoxFit.contain,
- );
- }
- Widget _buildEmptyPreview() {
- return const Column(
- mainAxisAlignment: MainAxisAlignment.center,
- mainAxisSize: MainAxisSize.min,
- children: [
- Icon(
- Icons.person_4_outlined,
- size: 56,
- ),
- SizedBox(height: 12),
- Text(
- "未设置",
- style: TextStyle(fontSize: 32),
- ),
- ],
- );
- }
- }
|