221 lines
5.2 KiB
Dart
221 lines
5.2 KiB
Dart
|
|
import 'package:bruno/bruno.dart';
|
|||
|
|
import 'package:flutter/material.dart';
|
|||
|
|
|
|||
|
|
class DialogUtils {
|
|||
|
|
/// 弹出一个信息展示框
|
|||
|
|
static void showMessage(
|
|||
|
|
BuildContext context,
|
|||
|
|
String title,
|
|||
|
|
String message, {
|
|||
|
|
String btnLabel = '确定',
|
|||
|
|
}) {
|
|||
|
|
BrnDialogManager.showSingleButtonDialog(
|
|||
|
|
context,
|
|||
|
|
label: btnLabel,
|
|||
|
|
title: title,
|
|||
|
|
message: message,
|
|||
|
|
onTap: () {
|
|||
|
|
Navigator.of(context).pop();
|
|||
|
|
},
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// 展示一个信息列 , message 必须是 label 和 msg
|
|||
|
|
static void showMessageList(
|
|||
|
|
BuildContext context,
|
|||
|
|
String title,
|
|||
|
|
List<dynamic> message, {
|
|||
|
|
String btnLabel = '确定',
|
|||
|
|
}) {
|
|||
|
|
List<BrnInfoModal> msg = [];
|
|||
|
|
for (var msgData in message) {
|
|||
|
|
msg.add(
|
|||
|
|
BrnInfoModal(
|
|||
|
|
keyPart: " ${msgData["label"]}",
|
|||
|
|
valuePart: msgData["msg"].toString(),
|
|||
|
|
),
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
BrnDialogManager.showSingleButtonDialog(
|
|||
|
|
context,
|
|||
|
|
label: btnLabel,
|
|||
|
|
title: title,
|
|||
|
|
messageWidget: BrnPairInfoTable(
|
|||
|
|
expandAtIndex: 4,
|
|||
|
|
isFolded: false,
|
|||
|
|
children: msg,
|
|||
|
|
),
|
|||
|
|
onTap: () {
|
|||
|
|
Navigator.of(context).pop();
|
|||
|
|
},
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// 弹出一个成功的提示框
|
|||
|
|
static void showSuccessMessage(
|
|||
|
|
BuildContext context,
|
|||
|
|
String title,
|
|||
|
|
String message, {
|
|||
|
|
String btnLabel = '确定',
|
|||
|
|
}) {
|
|||
|
|
BrnDialogManager.showSingleButtonDialog(
|
|||
|
|
context,
|
|||
|
|
showIcon: true,
|
|||
|
|
iconWidget: Image.asset("lib/images/ico/round_success.png"),
|
|||
|
|
label: btnLabel,
|
|||
|
|
title: title,
|
|||
|
|
message: message,
|
|||
|
|
onTap: () {
|
|||
|
|
Navigator.of(context).pop();
|
|||
|
|
},
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// 弹出一个警告提示框
|
|||
|
|
static void showWarningMessage(
|
|||
|
|
BuildContext context,
|
|||
|
|
String title,
|
|||
|
|
String message, {
|
|||
|
|
String btnLabel = '确定',
|
|||
|
|
}) {
|
|||
|
|
BrnDialogManager.showSingleButtonDialog(
|
|||
|
|
context,
|
|||
|
|
showIcon: true,
|
|||
|
|
iconWidget: Image.asset("lib/images/ico/round_warning.png"),
|
|||
|
|
label: btnLabel,
|
|||
|
|
title: title,
|
|||
|
|
message: message,
|
|||
|
|
onTap: () {
|
|||
|
|
Navigator.of(context).pop();
|
|||
|
|
},
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// 弹出一个错误提示框
|
|||
|
|
static void showErrorMessage(
|
|||
|
|
BuildContext context,
|
|||
|
|
String title,
|
|||
|
|
String message, {
|
|||
|
|
String btnLabel = '确定',
|
|||
|
|
}) {
|
|||
|
|
BrnDialogManager.showSingleButtonDialog(
|
|||
|
|
context,
|
|||
|
|
showIcon: true,
|
|||
|
|
iconWidget: Image.asset("lib/images/ico/round_error.png"),
|
|||
|
|
label: btnLabel,
|
|||
|
|
title: title,
|
|||
|
|
message: message,
|
|||
|
|
onTap: () {
|
|||
|
|
Navigator.of(context).pop();
|
|||
|
|
},
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// 弹出一个问题框
|
|||
|
|
static void showConfirmMessage(
|
|||
|
|
BuildContext context,
|
|||
|
|
String title,
|
|||
|
|
String message, {
|
|||
|
|
Function()? cancel,
|
|||
|
|
Function()? confirm,
|
|||
|
|
String cancelLabel = '取消',
|
|||
|
|
String confirmBtn = '确定',
|
|||
|
|
}) {
|
|||
|
|
BrnDialogManager.showConfirmDialog(
|
|||
|
|
context,
|
|||
|
|
showIcon: true,
|
|||
|
|
iconWidget: Image.asset("lib/images/ico/round_question.png"),
|
|||
|
|
title: title,
|
|||
|
|
confirm: confirmBtn,
|
|||
|
|
cancel: cancelLabel,
|
|||
|
|
message: message,
|
|||
|
|
onConfirm: () {
|
|||
|
|
Navigator.of(context).pop();
|
|||
|
|
if (confirm != null) {
|
|||
|
|
confirm();
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
onCancel: () {
|
|||
|
|
Navigator.of(context).pop();
|
|||
|
|
if (cancel != null) {
|
|||
|
|
cancel();
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// 展示一个输入框
|
|||
|
|
static void showInputMessage(
|
|||
|
|
BuildContext context,
|
|||
|
|
String title, {
|
|||
|
|
String? hintText,
|
|||
|
|
String? message,
|
|||
|
|
Function()? cancel,
|
|||
|
|
Function(String)? confirm,
|
|||
|
|
String cancelLabel = '取消',
|
|||
|
|
String confirmBtn = '确定',
|
|||
|
|
}) {
|
|||
|
|
BrnMiddleInputDialog(
|
|||
|
|
title: title,
|
|||
|
|
message: message,
|
|||
|
|
hintText: hintText,
|
|||
|
|
cancelText: cancelLabel,
|
|||
|
|
confirmText: confirmBtn,
|
|||
|
|
autoFocus: true,
|
|||
|
|
maxLength: 1000,
|
|||
|
|
maxLines: 1,
|
|||
|
|
dismissOnActionsTap: false,
|
|||
|
|
barrierDismissible: true,
|
|||
|
|
onConfirm: (value) {
|
|||
|
|
Navigator.pop(context);
|
|||
|
|
if (confirm != null) {
|
|||
|
|
confirm(value);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
onCancel: () {
|
|||
|
|
Navigator.pop(context);
|
|||
|
|
if (cancel != null) {
|
|||
|
|
cancel();
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
).show(context);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// 展示一个单选框
|
|||
|
|
static void showSingleSelectDialog(
|
|||
|
|
BuildContext context,
|
|||
|
|
String title,
|
|||
|
|
List<String> conditions, {
|
|||
|
|
Function(int, String?)? onSubmitClick,
|
|||
|
|
String msg = "",
|
|||
|
|
String submitText = "确定",
|
|||
|
|
}) {
|
|||
|
|
int selectedIndex = 0;
|
|||
|
|
showDialog(
|
|||
|
|
context: context,
|
|||
|
|
builder:
|
|||
|
|
(_) => StatefulBuilder(
|
|||
|
|
builder: (context, state) {
|
|||
|
|
return BrnSingleSelectDialog(
|
|||
|
|
isClose: true,
|
|||
|
|
title: title,
|
|||
|
|
messageText: msg,
|
|||
|
|
checkedItem: conditions[selectedIndex],
|
|||
|
|
submitText: submitText,
|
|||
|
|
isCustomFollowScroll: true,
|
|||
|
|
conditions: conditions,
|
|||
|
|
onSubmitClick: (data) {
|
|||
|
|
if (onSubmitClick != null) {
|
|||
|
|
onSubmitClick(selectedIndex, data);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
onItemClick: (BuildContext context, int index) {
|
|||
|
|
selectedIndex = index;
|
|||
|
|
},
|
|||
|
|
);
|
|||
|
|
},
|
|||
|
|
),
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
}
|