pda_template/lib/core/utils/extensions/dialogUtils.dart

221 lines
5.2 KiB
Dart
Raw Normal View History

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;
},
);
},
),
);
}
}