优化了老师端的等待状态判断逻辑

This commit is contained in:
zhutao
2025-11-23 22:09:39 +08:00
parent 5784a0a5d4
commit 4ecb0c35d6
8 changed files with 276 additions and 67 deletions

View File

@@ -0,0 +1,91 @@
import 'package:flutter/material.dart';
class ConfigDialog extends StatelessWidget {
final String title;
final String content;
final TextStyle? contentStyle;
final String confirmText;
final String cancelText;
final bool showCancel;
final void Function()? onConfirm;
final void Function()? onCancel;
const ConfigDialog({
super.key,
this.title = "",
required this.content,
this.contentStyle,
this.confirmText = '确定',
this.cancelText = '取消',
this.showCancel = true,
this.onConfirm,
this.onCancel,
});
@override
Widget build(BuildContext context) {
Color borderColor = Theme.of(context).colorScheme.surfaceContainer;
return AlertDialog(
actionsPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 5),
contentPadding: const EdgeInsets.symmetric(horizontal: 0, vertical: 0),
elevation: 0,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)),
title: Visibility(
visible: title.isNotEmpty,
child: Container(
margin: const EdgeInsets.only(bottom: 15),
child: Text(
title,
textAlign: TextAlign.center,
style: const TextStyle(fontSize: 16, fontWeight: FontWeight.w700),
),
),
),
content: Container(
padding: const EdgeInsets.only(bottom: 20, left: 20, right: 20),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(width: 1, color: borderColor),
),
),
child: Text(content, textAlign: TextAlign.center, style: contentStyle),
),
actions: [
SizedBox(
height: 40,
child: Row(
children: [
if (showCancel) ...[
Expanded(
child: TextButton(
onPressed: onCancel,
child: Text(
cancelText,
textAlign: TextAlign.center,
),
),
),
Container(
width: 1,
margin: EdgeInsets.symmetric(horizontal: 10),
color: borderColor,
),
],
Expanded(
child: TextButton(
onPressed: onConfirm,
child: Text(
confirmText,
style: TextStyle(
color: Theme.of(context).primaryColor,
),
),
),
),
],
),
),
],
);
}
}

View File