123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- import 'dart:io';
- import 'package:auto_route/auto_route.dart';
- import 'package:eitc_erm_dental_flutter/entity/history_item_info.dart';
- import 'package:eitc_erm_dental_flutter/funcs.dart';
- import 'package:eitc_erm_dental_flutter/pages/history/vm/history_view_model.dart';
- import 'package:flutter/material.dart';
- import 'package:flutter_riverpod/flutter_riverpod.dart';
- import 'package:photo_view/photo_view.dart';
- import '../../app_router.gr.dart';
- import 'widget/history_view_operation_view.dart';
- import 'widget/history_view_title.dart';
- ///照片查看页面
- @RoutePage(name: "photoViewRoute")
- class PhotoViewPage extends ConsumerStatefulWidget {
- final HistoryItemInfo? info;
- const PhotoViewPage({super.key, required this.info});
- @override
- ConsumerState createState() => _PhotoViewPageState();
- }
- class _PhotoViewPageState extends ConsumerState<PhotoViewPage> {
- @override
- void initState() {
- super.initState();
- //开启屏幕旋转
- screenEnableRotate();
- }
- @override
- void dispose() {
- super.dispose();
- //关闭屏幕旋转
- screenDisableRotate();
- }
- @override
- Widget build(BuildContext context) {
- Widget photoView = widget.info == null
- ? const SizedBox()
- : PhotoView(imageProvider: FileImage(File(widget.info!.path)));
- return Scaffold(
- body: SafeArea(
- child: Container(
- color: Colors.black,
- child: Stack(
- children: [
- photoView,
- Align(
- alignment: Alignment.topLeft,
- child: HistoryViewTitle(
- name: widget.info?.name,
- ),
- ),
- HistoryViewOperationView(
- onUpload: () => _onUpload(context),
- onDelete: () => _onDelete(context),
- ),
- ],
- ),
- ),
- ),
- );
- }
- void _onUpload(BuildContext context) async {
- if (!await checkInternetWifi()) {
- return;
- }
- if (context.mounted) {
- context.pushRoute(UploadSelectClinicRoute(
- uploadList: [widget.info!], isFromView: true));
- }
- }
- void _onDelete(BuildContext context) async {
- bool? bo = await showDeleteAlertDialog(context, getS().deletePhotoHint);
- if (bo == null || !bo) {
- return;
- }
- bool result =
- await ref.read(historyListProvider.notifier).delete([widget.info!]);
- if (result) {
- showToast(text: getS().deleteSuccess);
- if (context.mounted) {
- Navigator.pop(context, widget.info);
- }
- } else {
- showToast(text: getS().deleteFailed);
- }
- }
- }
|