import 'package:flutter/material.dart'; import 'dart:io'; import 'package:flutter/services.dart'; import 'package:qhd_prevention/customWidget/toast_util.dart'; import 'package:qhd_prevention/http/ApiService.dart'; import 'package:qhd_prevention/pages/my_appbar.dart'; import '../../tools/tools.dart'; import 'mine_sign_page.dart'; class FirstSignPage extends StatefulWidget { const FirstSignPage({super.key}); @override State createState() => _SignatureUpdatePageState(); } class _SignatureUpdatePageState extends State { String imagePath = ""; Future refreshSign() async { if (imagePath.isEmpty) { ToastUtil.showNormal(context, '请签字'); return; } LoadingDialogHelper.show(); final result = await ApiService.refreshSignInfo(imagePath); LoadingDialogHelper.hide(); if (result['result'] == 'success') { ToastUtil.showSuccess(context, '保存成功'); Navigator.pop(context); } } @override Widget build(BuildContext context) { return Scaffold( appBar: MyAppbar(title: "更新签字信息"), body: Container( margin: EdgeInsets.all(16), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text("用户", style: TextStyle(color: Colors.black, fontSize: 16)), _buildConfirmButton(), ], ), const SizedBox(height: 8), Row( children: [ if (imagePath.isNotEmpty) Text( '签字照片:', style: TextStyle( fontSize: 14, fontWeight: FontWeight.bold, color: Colors.grey, ), ), const SizedBox(width: 15), if (imagePath.isNotEmpty) Image.file( File(imagePath), width: 230, height: 150, fit: BoxFit.fill, ), ], ), const SizedBox(height: 8), // 确认按钮 // const Spacer(), _buildTrueButton(), ], ), ), ); } Widget _buildTrueButton() { return Center( child: ElevatedButton( onPressed: () { refreshSign(); }, style: ElevatedButton.styleFrom( backgroundColor: const Color(0xFF4285F4), padding: const EdgeInsets.symmetric(vertical: 5, horizontal: 80), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), ), child: Text('确认', style: TextStyle(fontSize: 14, color: Colors.white)), ), ); } Widget _buildConfirmButton() { return SizedBox( width: 80, height: 30, child: ElevatedButton( onPressed: () async { await NativeOrientation.setLandscape(); final path = await Navigator.push( context, MaterialPageRoute(builder: (context) => MineSignPage()), ); await NativeOrientation.setPortrait(); // 更新状态(当子页面关闭时) setState(() { imagePath = path ?? ''; }); }, style: ElevatedButton.styleFrom( backgroundColor: const Color(0xFF4285F4), padding: const EdgeInsets.symmetric(vertical: 5), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), ), child: Text( '手写签字', style: TextStyle(fontSize: 12, color: Colors.white), ), ), ); } }