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 { 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), ), ], ); } }