| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import 'dart:ui';
- import 'package:flutter/material.dart';
- import 'package:flutter_screenutil/flutter_screenutil.dart';
- import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
- import 'package:qr_flutter/qr_flutter.dart';
- import '../resource/assets.gen.dart';
- import '../resource/colors.gen.dart';
- import '../resource/string.gen.dart';
- class WechatQrCodeDialog {
- static const String _tag = 'WechatQrCodeDialog';
- static void show(
- {required String qrCodeUrl,
- VoidCallback? onDismiss,
- VoidCallback? onCloseCallback,
- VoidCallback? loadSuccessCallback}) {
- SmartDialog.show(
- tag: _tag,
- onDismiss: onDismiss,
- backDismiss: false,
- builder: (_) {
- return WechatQrCodeView(
- qrCodeUrl: qrCodeUrl, onCloseCallback: onCloseCallback);
- },
- clickMaskDismiss: false);
- loadSuccessCallback?.call();
- }
- static void dismiss() {
- SmartDialog.dismiss(tag: _tag);
- }
- }
- class WechatQrCodeView extends Dialog {
- final String qrCodeUrl;
- VoidCallback? onCloseCallback;
- WechatQrCodeView({super.key, required this.qrCodeUrl, this.onCloseCallback});
- @override
- Widget build(BuildContext context) {
- return IntrinsicHeight(
- child: Column(
- children: [
- Container(
- padding: EdgeInsets.all(26.w),
- decoration: BoxDecoration(
- color: Colors.white,
- borderRadius: BorderRadius.circular(10.w),
- ),
- child: Column(
- children: [
- SizedBox(
- width: 220.w,
- height: 220.w,
- child: QrImageView(
- data: qrCodeUrl,
- version: QrVersions.auto,
- size: 220.w,
- backgroundColor: Colors.white,
- )),
- SizedBox(height: 16.w),
- Text(StringName.wechatPayQrCodeTips,
- style: TextStyle(fontSize: 14.sp, color: ColorName.black90))
- ],
- ),
- ),
- SizedBox(height: 20.w),
- GestureDetector(
- onTap: () {
- onCloseCallback?.call();
- WechatQrCodeDialog.dismiss();
- },
- child: Assets.images.iconMemberRetainClose
- .image(width: 32.w, height: 32.w))
- ],
- ),
- );
- }
- }
|