import 'package:ef/ef.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:flutterflow_ui/flutterflow_ui.dart';
import 'package:loading_indicator/loading_indicator.dart';
import 'package:vbvs_app/common/color/appConstants.dart';
import 'package:vbvs_app/common/util/FitTool.dart';
import 'package:vbvs_app/common/util/MyUtils.dart';
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
import 'package:vbvs_app/component/tool/CustomCard.dart';
import 'package:vbvs_app/component/tool/FrostedDialog.dart';
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
import 'package:vbvs_app/controller/device/blueteeth_bind_controller.dart';
import 'package:vbvs_app/controller/theme_controller/ThemeController.dart';
import 'package:vbvs_app/model/BleDeviceData.dart';
import 'package:vbvs_app/pages/device_bind/componnet/FancyCircleCheckbox.dart';

void showBindDoubleDialog(
  BuildContext context,
  List<BleDeviceData> devices, {
  required void Function(int selectedIndex) onConfirm,
  required VoidCallback onCancel,
}) {
  ThemeController themeController = Get.find();
  BlueteethBindController blueteethBindController = Get.find();

  // 初始化默认选中 deviceIndex0 为 true
  blueteethBindController.model.deviceIndex0 = true;
  blueteethBindController.model.deviceIndex1 = false;
  blueteethBindController.model.deviceIndex2 = false;

  showDialog(
    context: context,
    barrierDismissible: true,
    barrierColor: Colors.black.withOpacity(0.5),
    builder: (BuildContext context) {
      return FrostedDialog(
        blurSigma: 3.0,
        child: Container(
          decoration: BoxDecoration(
            color: themeController.currentColor.sc17,
            borderRadius: BorderRadius.circular(20.0),
          ),
          padding: EdgeInsetsDirectional.fromSTEB(0.rpx, 0, 0.rpx, 0),
          child: Container(
            width: double.infinity,
            constraints: BoxConstraints(
              maxHeight: MediaQuery.sizeOf(context).height * 0.656,
            ),
            child: Column(
              mainAxisSize: MainAxisSize.min,
              children: [
                // 标题
                Align(
                  alignment: AlignmentDirectional(0, 0),
                  child: Padding(
                    padding:
                        EdgeInsetsDirectional.fromSTEB(0.rpx, 93.rpx, 0, 0),
                    child: Text(
                      '蓝牙绑定.双人版绑定标题'.tr,
                      style: TextStyle(
                        fontFamily: 'Inter',
                        fontSize: 30.rpx,
                        letterSpacing: 0.0,
                        color: themeController.currentColor.sc3,
                      ),
                    ),
                  ),
                ),
                // 全选
                _buildCheckboxRow(
                  context,
                  title: '蓝牙绑定.绑定全部'.tr,
                  value: () => blueteethBindController.model.deviceIndex0!,
                  onChanged: (v) {
                    if (!blueteethBindController.model.deviceIndex0!) {
                      blueteethBindController.model.deviceIndex0 = true;
                      blueteethBindController.model.deviceIndex1 = false;
                      blueteethBindController.model.deviceIndex2 = false;
                      blueteethBindController.updateAll();
                    }
                  },
                ),
                // 主设备
                _buildCheckboxRow(
                  context,
                  title: '蓝牙绑定.主设备'.tr +
                      "${devices[0].mac}" +
                      (devices[0].bind == false ? "可绑定".tr : "已被绑定".tr),
                  value: () => blueteethBindController.model.deviceIndex1!,
                  onChanged: (v) {
                    if (!blueteethBindController.model.deviceIndex1!) {
                      blueteethBindController.model.deviceIndex0 = false;
                      blueteethBindController.model.deviceIndex1 = true;
                      blueteethBindController.model.deviceIndex2 = false;
                      blueteethBindController.updateAll();
                    }
                  },
                ),
                // 从设备
                _buildCheckboxRow(
                  context,
                  title: '蓝牙绑定.从设备'.tr +
                      "${devices[1].mac}" +
                      (devices[1].bind == false ? "可绑定".tr : "已被绑定".tr),
                  value: () => blueteethBindController.model.deviceIndex2!,
                  onChanged: (v) {
                    if (!blueteethBindController.model.deviceIndex2!) {
                      blueteethBindController.model.deviceIndex0 = false;
                      blueteethBindController.model.deviceIndex1 = false;
                      blueteethBindController.model.deviceIndex2 = true;
                      blueteethBindController.updateAll();
                    }
                  },
                ),

                // 确定按钮
                Padding(
                  padding: EdgeInsetsDirectional.fromSTEB(
                      60.rpx, 100.rpx, 60.rpx, 0),
                  child: _buildActionButton(
                    context,
                    text: '蓝牙绑定.确定'.tr,
                    onTap: () {
                      Get.back();

                      int selectedIndex =
                          blueteethBindController.model.deviceIndex0!
                              ? 0
                              : (blueteethBindController.model.deviceIndex1!
                                  ? 1
                                  : 2);

                      onConfirm(selectedIndex);
                    },
                  ),
                ),
                // 取消按钮
                Padding(
                  padding: EdgeInsetsDirectional.fromSTEB(
                      60.rpx, 19.rpx, 60.rpx, 60.rpx),
                  child: _buildActionButton(
                    context,
                    text: '蓝牙绑定.取消'.tr,
                    onTap: () {
                      Get.back();
                      onCancel();
                    },
                  ),
                ),
              ],
            ),
          ),
        ),
      );
    },
  );
}

Future<void> showUnBindDeviceDialog(BuildContext context) async {}

Future<void> showHaveBindDialog(BuildContext context) async {
  ThemeController themeController = Get.find();

  return showDialog(
    context: context,
    barrierDismissible: true,
    barrierColor: Colors.black.withOpacity(0.5),
    builder: (BuildContext context) {
      return FrostedDialog(
        blurSigma: 3.0,
        child: Container(
          decoration: BoxDecoration(
            color: Colors.white,
            borderRadius: BorderRadius.circular(20.0),
          ),
          padding: EdgeInsetsDirectional.fromSTEB(60.rpx, 0, 60.rpx, 0),
          child: Container(
            width: double.infinity,
            constraints: BoxConstraints(
              maxHeight: MediaQuery.sizeOf(context).height * 0.656,
            ),
            child: Column(
              mainAxisSize: MainAxisSize.min,
              children: [
                Align(
                  alignment: AlignmentDirectional(0, 0),
                  child: Padding(
                    padding: EdgeInsetsDirectional.fromSTEB(
                        0.rpx, 93.rpx, 0.rpx, 0.rpx),
                    child: Text(
                      '无法绑定'.tr,
                      style: TextStyle(
                        fontFamily: 'Inter',
                        fontSize: 30.rpx,
                        letterSpacing: 0.0,
                        color: stringToColor("#333333"),
                      ),
                    ),
                  ),
                ),
                Padding(
                  padding: EdgeInsetsDirectional.fromSTEB(
                      0.rpx, 70.rpx, 0.rpx, 56.rpx),
                  child: RichText(
                    text: TextSpan(children: [
                      TextSpan(
                        text: "无法绑定1".tr,
                        style: TextStyle(
                          color: stringToColor("#333333"),
                          fontSize: AppConstants().normal_text_fontSize,
                        ),
                      ),
                      TextSpan(
                        text: "无法绑定2".tr,
                        style: TextStyle(
                          color: stringToColor("#333333"),
                          fontSize: AppConstants().normal_text_fontSize,
                        ),
                      ),
                      TextSpan(
                        text: "无法绑定3".tr,
                        style: TextStyle(
                          color: stringToColor("#333333"),
                          fontSize: AppConstants().normal_text_fontSize,
                        ),
                      ),
                    ]),
                  ),
                ),
                Padding(
                  padding: EdgeInsetsDirectional.fromSTEB(0, 19.rpx, 0, 60.rpx),
                  child: CustomCard(
                    borderRadius: AppConstants().button_container_radius,
                    onTap: () {
                      Get.back(result: true);
                    },
                    colors: [
                      themeController.currentColor.sc1,
                      themeController.currentColor.sc2,
                    ],
                    child: Container(
                      width: MediaQuery.sizeOf(context).width,
                      height: MediaQuery.sizeOf(context).height * 0.055,
                      constraints: BoxConstraints(
                        minWidth: 500.rpx,
                        minHeight: 90.rpx,
                      ),
                      child: Row(
                        mainAxisSize: MainAxisSize.max,
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: [
                          Text(
                            '知道了'.tr,
                            style: TextStyle(
                              color: themeController.currentColor.sc3,
                              fontFamily: 'Inter',
                              fontSize: AppConstants().normal_text_fontSize,
                              letterSpacing: 0.0,
                            ),
                          ),
                        ].divide(SizedBox(
                          width: 17.rpx,
                        )),
                      ),
                    ),
                  ),
                ),
              ],
            ),
          ),
        ),
      );
    },
  );
}

void showLoadingDialog(BuildContext context, {String? title}) {
  ThemeController themeController = Get.find();
  showDialog(
    context: context,
    barrierDismissible: true,
    barrierColor: Colors.black.withOpacity(0.5),
    builder: (BuildContext context) {
      return FrostedDialog(
        blurSigma: 3.0,
        child: Container(
          decoration: BoxDecoration(
            color: Colors.transparent,
            borderRadius: BorderRadius.circular(20.0),
          ),
          padding: EdgeInsetsDirectional.fromSTEB(60.rpx, 0, 60.rpx, 0),
          child: Container(
            width: double.infinity,
            constraints: BoxConstraints(
              maxHeight: MediaQuery.sizeOf(context).height * 0.656,
            ),
            child: Column(
              mainAxisSize: MainAxisSize.min,
              children: [
                // Align(
                //   alignment: AlignmentDirectional(0, 0),
                //   child: Padding(
                //     padding: EdgeInsetsDirectional.fromSTEB(
                //         0.rpx, 93.rpx, 0.rpx, 0.rpx),
                //     child: Text(
                //       '蓝牙绑定.无法绑定'.tr,
                //       style: TextStyle(
                //             fontFamily: 'Inter',
                //             fontSize: 30.rpx,
                //             letterSpacing: 0.0,
                //             color: themeController.currentColor.sc3,
                //           ),
                //     ),
                //   ),
                // ),
                Padding(
                  padding: EdgeInsetsDirectional.fromSTEB(
                      0.rpx, 93.rpx, 0.rpx, 0.rpx),
                  child: SizedBox(
                    width: 120.rpx,
                    height: 120.rpx,
                    child: LoadingIndicator(
                        indicatorType: Indicator.ballSpinFadeLoader,
                        colors: [
                          themeController.currentColor.sc3,
                        ],
                        strokeWidth: 1,
                        backgroundColor: Colors.transparent,
                        pathBackgroundColor: themeController.currentColor.sc3),
                  ),
                ),

                Padding(
                  padding: EdgeInsetsDirectional.fromSTEB(
                      0.rpx, 27.rpx, 0.rpx, 56.rpx),
                  child: RichText(
                    text: TextSpan(children: [
                      TextSpan(
                        text: title ?? "连接中...".tr,
                        style: TextStyle(
                          color: themeController.currentColor.sc3,
                          fontSize: AppConstants().normal_text_fontSize,
                        ),
                      ),
                    ]),
                  ),
                ),
              ],
            ),
          ),
        ),
      );
    },
  );
}

Widget _buildCheckboxRow(
  BuildContext context, {
  required String title,
  required bool Function() value,
  required void Function(bool) onChanged,
}) {
  ThemeController themeController = Get.find();
  return Padding(
    padding: EdgeInsetsDirectional.fromSTEB(60.rpx, 64.rpx, 0.rpx, 0.rpx),
    child: Row(
      mainAxisSize: MainAxisSize.max,
      children: [
        Obx(() => FancyCircleCheckbox(
              borderColor: themeController.currentColor.sc3,
              fillColor: themeController.currentColor.sc2,
              value: value(),
              onChanged: onChanged,
            )),
        Expanded(
          child: Builder(
            builder: (_) {
              final bool isBindable = title.contains('可绑定'.tr);
              final bool isBound = title.contains('已被绑定'.tr);

              // 提取主文本部分
              final String mainText =
                  title.replaceAll('可绑定'.tr, '').replaceAll('已被绑定'.tr, '');

              return RichText(
                text: TextSpan(
                  children: [
                    TextSpan(
                      text: mainText,
                      style: TextStyle(
                        fontFamily: 'Inter',
                        letterSpacing: 0.0,
                        fontSize: AppConstants().normal_text_fontSize,
                        color: themeController.currentColor.sc3,
                      ),
                    ),
                    if (isBindable)
                      TextSpan(
                        text: "(" + '可绑定'.tr + ")",
                        style: TextStyle(
                          fontSize: AppConstants().normal_text_fontSize,
                          color: themeController.currentColor.sc1,
                        ),
                      ),
                    if (isBound)
                      TextSpan(
                        text: "(" + '已被绑定'.tr + ")",
                        style: TextStyle(
                          fontSize: AppConstants().normal_text_fontSize,
                          color: themeController.currentColor.sc9,
                        ),
                      ),
                  ],
                ),
              );
            },
          ),
        ),
      ].divide(SizedBox(width: 21.rpx)),
    ),
  );
}

Widget _buildActionButton(
  BuildContext context, {
  required String text,
  required VoidCallback onTap,
}) {
  ThemeController themeController = Get.find();
  return CustomCard(
    borderRadius: AppConstants().button_container_radius,
    onTap: onTap,
    colors: '蓝牙绑定.确定'.tr == text
        ? [
            themeController.currentColor.sc1,
            themeController.currentColor.sc2,
          ]
        : [Colors.transparent],
    child: Container(
      width: MediaQuery.sizeOf(context).width,
      height: MediaQuery.sizeOf(context).height * 0.055,
      constraints: BoxConstraints(
        minWidth: 500.rpx,
        minHeight: 90.rpx,
      ),
      decoration: '蓝牙绑定.确定'.tr == text
          ? BoxDecoration()
          : BoxDecoration(
              border: Border.all(
                color: themeController.currentColor.sc3, // 你可以换成指定颜色
                width: 1.0.rpx,
              ),
              borderRadius: BorderRadius.circular(50.rpx), // 可选：加圆角
            ),
      child: Row(
        mainAxisSize: MainAxisSize.max,
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Text(
            text,
            style: TextStyle(
              color: themeController.currentColor.sc3,
              fontFamily: 'Inter',
              fontSize: AppConstants().normal_text_fontSize,
              letterSpacing: 0.0,
            ),
          ),
        ].divide(SizedBox(width: 17.rpx)),
      ),
    ),
  );
}

void showConfirmDialog(
  BuildContext context,
  Widget widget,
  String title, {
  required VoidCallback onConfirm,
  required VoidCallback onCancel,
}) {
  ThemeController themeController = Get.find();
  BlueteethBindController blueteethBindController = Get.find();
  try {
    showDialog(
      context: context,
      barrierDismissible: true,
      barrierColor: Colors.black.withOpacity(0.5), // 背景模糊色
      builder: (BuildContext context) {
        return FrostedDialog(
          blurSigma: 3.0,
          child: Container(
            decoration: BoxDecoration(
              color: Colors.white,
              borderRadius: BorderRadius.circular(20.0),
            ),
            padding: EdgeInsetsDirectional.fromSTEB(31.rpx, 0, 31.rpx, 0),
            child: Container(
              width: double.infinity,
              constraints: BoxConstraints(
                maxHeight: MediaQuery.sizeOf(context).height * 0.656,
              ),
              child: Column(
                mainAxisSize: MainAxisSize.min,
                children: [
                  // 标题
                  // Row(
                  //   mainAxisAlignment: MainAxisAlignment.end,
                  //   children: [
                  //     ClickableContainer(
                  //       backgroundColor: Colors.transparent, // 容器背景色
                  //       highlightColor:
                  //           themeController.currentColor.sc21, // 点击时的背景色
                  //       padding: EdgeInsets.zero, // 这里去掉外部的 padding，避免影响点击范围
                  //       onTap: () {
                  //         Get.back();
                  //         onCancel();
                  //       },
                  //       child: Padding(
                  //         // padding:
                  //         //     EdgeInsetsDirectional.fromSTEB(0, 33.rpx, 0, 0.rpx),
                  //         padding: EdgeInsetsDirectional.fromSTEB(
                  //             33.rpx, 33.rpx, 33.rpx, 33.rpx),
                  //         child: SvgPicture.asset(
                  //           'assets/img/icon/close.svg',
                  //           width: 25.rpx,
                  //           height: 25.rpx, // 如果 SVG 中没有固定颜色，使用 color 设置
                  //           color: themeController.currentColor.sc3,
                  //         ),
                  //       ),
                  //     ),
                  //   ],
                  // ),

                  Align(
                    alignment: AlignmentDirectional(0, 0),
                    child: Padding(
                      padding: EdgeInsetsDirectional.fromSTEB(
                          33.rpx, 60.rpx, 33.rpx, 33.rpx),
                      child: Text(
                        title,
                        style: TextStyle(
                          fontFamily: 'Inter',
                          fontSize: 30.rpx,
                          letterSpacing: 0.0,
                          color: stringToColor("#333333"),
                          fontWeight: FontWeight.w600,
                        ),
                      ),
                    ),
                  ),
                  Padding(
                    padding: EdgeInsetsDirectional.fromSTEB(
                        33.rpx, 0.rpx, 33.rpx, 0.rpx),
                    child: widget,
                  ),
                  Padding(
                    padding: EdgeInsetsDirectional.fromSTEB(
                        33.rpx, 58.rpx, 33.rpx, 60.rpx),
                    child: Row(
                      mainAxisAlignment: MainAxisAlignment.center,
                      children: [
                        CustomCard(
                          borderRadius: AppConstants().normal_container_radius,
                          onTap: () async {
                            Get.back();
                            onCancel();
                          },
                          colors: [
                            stringToColor("1592AA"),
                            stringToColor("006FA3"),
                          ],
                          child: Container(
                            width: MediaQuery.sizeOf(context).width * 0.115,
                            height: MediaQuery.sizeOf(context).height * 0.055,
                            constraints: BoxConstraints(
                              minWidth: 160.rpx,
                              minHeight: 90.rpx,
                            ),
                            child: Row(
                              mainAxisSize: MainAxisSize.max,
                              mainAxisAlignment: MainAxisAlignment.center,
                              children: [
                                Text(
                                  "否".tr,
                                  style: TextStyle(
                                    color: themeController.currentColor.sc3,
                                    fontFamily: 'Inter',
                                    fontSize:
                                        AppConstants().normal_text_fontSize,
                                    letterSpacing: 0.0,
                                  ),
                                ),
                              ].divide(SizedBox(width: 17.rpx)),
                            ),
                          ),
                        ),
                        CustomCard(
                          borderRadius: AppConstants().normal_container_radius,
                          onTap: () {
                            Get.back();
                            onConfirm();
                            // await Future.delayed(Duration(milliseconds: 300));
                          },
                          colors: [
                            stringToColor("1592AA"),
                            stringToColor("006FA3"),
                          ],
                          child: Container(
                            width: MediaQuery.sizeOf(context).width * 0.215,
                            height: MediaQuery.sizeOf(context).height * 0.055,
                            constraints: BoxConstraints(
                              minWidth: 160.rpx,
                              minHeight: 90.rpx,
                            ),
                            child: Row(
                              mainAxisSize: MainAxisSize.max,
                              mainAxisAlignment: MainAxisAlignment.center,
                              children: [
                                Text(
                                  "是".tr,
                                  style: TextStyle(
                                    color: themeController.currentColor.sc3,
                                    fontFamily: 'Inter',
                                    fontSize:
                                        AppConstants().normal_text_fontSize,
                                    letterSpacing: 0.0,
                                  ),
                                ),
                              ].divide(SizedBox(width: 17.rpx)),
                            ),
                          ),
                        ),
                      ].divide(SizedBox(
                        width: 70.rpx,
                      )),
                    ),
                  ),
                ],
              ),
            ),
          ),
        );
      },
    );
  } catch (e) {
    print(e);
  }
}

void showSingleConfirmDialog(
  BuildContext context,
  Widget widget,
  String title, {
  required VoidCallback onConfirm,
  required VoidCallback onCancel,
  String confirmText = "确定",
}) {
  ThemeController themeController = Get.find();
  BlueteethBindController blueteethBindController = Get.find();

  showDialog(
    context: context,
    barrierDismissible: true,
    barrierColor: Colors.black.withOpacity(0.5), // 背景模糊色
    builder: (BuildContext context) {
      return FrostedDialog(
        blurSigma: 3.0,
        child: Container(
          decoration: BoxDecoration(
            color: themeController.currentColor.sc17,
            borderRadius: BorderRadius.circular(20.0),
          ),
          padding: EdgeInsetsDirectional.fromSTEB(31.rpx, 0, 31.rpx, 0),
          child: Container(
            width: double.infinity,
            constraints: BoxConstraints(
              maxHeight: MediaQuery.sizeOf(context).height * 0.656,
            ),
            child: Column(
              mainAxisSize: MainAxisSize.min,
              children: [
                // 标题
                Row(
                  mainAxisAlignment: MainAxisAlignment.end,
                  children: [
                    ClickableContainer(
                      backgroundColor: Colors.transparent, // 容器背景色
                      highlightColor:
                          themeController.currentColor.sc21, // 点击时的背景色
                      padding: EdgeInsets.zero, // 这里去掉外部的 padding，避免影响点击范围
                      onTap: () {
                        Get.back();
                        onCancel();
                      },
                      child: Padding(
                        // padding:
                        //     EdgeInsetsDirectional.fromSTEB(0, 33.rpx, 0, 0.rpx),
                        padding: EdgeInsetsDirectional.fromSTEB(
                            33.rpx, 33.rpx, 33.rpx, 33.rpx),
                        child: SvgPicture.asset(
                          'assets/img/icon/close.svg',
                          width: 25.rpx,
                          height: 25.rpx, // 如果 SVG 中没有固定颜色，使用 color 设置
                          color: themeController.currentColor.sc3,
                        ),
                      ),
                    ),
                  ],
                ),
                Align(
                  alignment: AlignmentDirectional(0, 0),
                  child: Padding(
                    padding: EdgeInsetsDirectional.fromSTEB(
                        33.rpx, 60.rpx, 33.rpx, 33.rpx),
                    child: Text(
                      title,
                      style: TextStyle(
                        fontFamily: 'Inter',
                        fontSize: 30.rpx,
                        letterSpacing: 0.0,
                        color: themeController.currentColor.sc3,
                      ),
                    ),
                  ),
                ),
                Padding(
                  padding: EdgeInsetsDirectional.fromSTEB(
                      33.rpx, 0.rpx, 33.rpx, 0.rpx),
                  child: widget,
                ),
                Padding(
                  padding: EdgeInsetsDirectional.fromSTEB(
                      33.rpx, 58.rpx, 33.rpx, 60.rpx),
                  child: Row(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: [
                      CustomCard(
                        borderRadius: AppConstants().button_container_radius,
                        onTap: () {
                          Get.back();
                          onConfirm();
                          // await Future.delayed(Duration(milliseconds: 300));
                        },
                        colors: [
                          themeController.currentColor.sc1,
                          themeController.currentColor.sc2,
                        ],
                        child: Container(
                          width: MediaQuery.sizeOf(context).width * 0.43,
                          height: MediaQuery.sizeOf(context).height * 0.055,
                          constraints: BoxConstraints(
                            minWidth: 160.rpx,
                            minHeight: 90.rpx,
                          ),
                          child: Row(
                            mainAxisSize: MainAxisSize.max,
                            mainAxisAlignment: MainAxisAlignment.center,
                            children: [
                              Text(
                                confirmText,
                                style: TextStyle(
                                  color: themeController.currentColor.sc3,
                                  fontFamily: 'Inter',
                                  fontSize: AppConstants().normal_text_fontSize,
                                  letterSpacing: 0.0,
                                ),
                              ),
                            ].divide(SizedBox(width: 17.rpx)),
                          ),
                        ),
                      ),
                    ].divide(SizedBox(
                      width: 70.rpx,
                    )),
                  ),
                ),
              ],
            ),
          ),
        ),
      );
    },
  );
}

void showWifiDialog(
  BuildContext context,
  Widget widget,
  String title, {
  required VoidCallback onConfirm,
}) {
  ThemeController themeController = Get.find();
  BlueteethBindController blueteethBindController = Get.find();

  showDialog(
    context: context,
    barrierDismissible: true,
    barrierColor: Colors.black.withOpacity(0.5), // 背景模糊色
    builder: (BuildContext context) {
      return FrostedDialog(
        blurSigma: 3.0,
        child: Container(
          decoration: BoxDecoration(
            color: Colors.white,
            borderRadius: BorderRadius.circular(20.0),
          ),
          padding: EdgeInsetsDirectional.fromSTEB(64.rpx, 0, 64.rpx, 0),
          child: Container(
            width: double.infinity,
            constraints: BoxConstraints(
              maxHeight: MediaQuery.sizeOf(context).height * 0.656,
            ),
            child: Column(
              mainAxisSize: MainAxisSize.min,
              children: [
                // 标题
                Row(
                  mainAxisAlignment: MainAxisAlignment.end,
                  children: [
                    ClickableContainer(
                      backgroundColor: Colors.transparent, // 容器背景色
                      highlightColor:
                          themeController.currentColor.sc21, // 点击时的背景色
                      padding: EdgeInsets.zero, // 这里去掉外部的 padding，避免影响点击范围
                      onTap: () {
                        Get.back();
                      },
                      child: Padding(
                        padding: EdgeInsetsDirectional.fromSTEB(
                            20.rpx, 33.rpx, 20.rpx, 20.rpx),
                        child: SvgPicture.asset(
                          'assets/img/icon/close.svg',
                          width: 25.rpx,
                          height: 25.rpx, // 如果 SVG 中没有固定颜色，使用 color 设置
                          color: stringToColor("#878787"),
                        ),
                      ),
                    ),
                  ],
                ),

                Align(
                  alignment: AlignmentDirectional(0, 0),
                  child: Padding(
                    padding:
                        EdgeInsetsDirectional.fromSTEB(0.rpx, 20.rpx, 0, 0),
                    child: Text(
                      title,
                      style: TextStyle(
                        fontFamily: 'Inter',
                        fontSize: 30.rpx,
                        letterSpacing: 0.0,
                        color: stringToColor("#333333"),
                      ),
                    ),
                  ),
                ),
                widget,
                Padding(
                  padding: EdgeInsetsDirectional.fromSTEB(0, 58.rpx, 0, 60.rpx),
                  child: Row(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: [
                      CustomCard(
                        borderRadius: AppConstants().normal_container_radius,
                        onTap: () {
                          if (blueteethBindController.model.wifiPass == null ||
                              blueteethBindController.model.wifiPass!.isEmpty) {
                            TopSlideNotification.show(
                              context,
                              text: "密码为空".tr,
                              textColor: themeController.currentColor.sc9,
                            );
                          } else {
                            onConfirm();
                            Get.back();
                          }
                        },
                        colors: AppConstants().mhtNormalButton,
                        gradientDirection: GradientDirection.vertical,
                        child: Container(
                          width: MediaQuery.sizeOf(context).width * 0.115,
                          height: MediaQuery.sizeOf(context).height * 0.055,
                          constraints: BoxConstraints(
                            minWidth: 160.rpx,
                            minHeight: 90.rpx,
                          ),
                          child: Row(
                            mainAxisSize: MainAxisSize.max,
                            mainAxisAlignment: MainAxisAlignment.center,
                            children: [
                              Text(
                                "连接".tr,
                                style: TextStyle(
                                  color: Colors.white,
                                  fontFamily: 'Inter',
                                  fontSize: AppConstants().normal_text_fontSize,
                                  letterSpacing: 0.0,
                                ),
                              ),
                            ].divide(SizedBox(width: 17.rpx)),
                          ),
                        ),
                      ),
                    ].divide(SizedBox(
                      width: 70.rpx,
                    )),
                  ),
                ),
              ],
            ),
          ),
        ),
      );
    },
  );
}

Future<void> showTipDialog(
  BuildContext context,
  Widget widget, {
  Color? backgroundColor,
}) {
  ThemeController themeController = Get.find();
  BlueteethBindController blueteethBindController = Get.find();

  return showDialog(
    context: context,
    barrierDismissible: true,
    barrierColor: Colors.black.withOpacity(0.5),
    builder: (BuildContext context) {
      return FrostedDialog(
        blurSigma: 3.0,
        child: Container(
          decoration: BoxDecoration(
            color: backgroundColor ?? Colors.white,
            borderRadius: BorderRadius.circular(20.0),
          ),
          padding: EdgeInsetsDirectional.fromSTEB(64.rpx, 0, 64.rpx, 0),
          child: Container(
            width: double.infinity,
            constraints: BoxConstraints(
              maxHeight: MediaQuery.sizeOf(context).height * 0.656,
            ),
            child: Column(
              mainAxisSize: MainAxisSize.min,
              children: [
                Align(
                  alignment: AlignmentDirectional(0, 0),
                  child: Padding(
                    padding: EdgeInsetsDirectional.fromSTEB(
                        0.rpx, 93.rpx, 0, 74.rpx),
                    child: widget,
                  ),
                ),
                Padding(
                  padding: EdgeInsetsDirectional.fromSTEB(0, 19.rpx, 0, 60.rpx),
                  child: CustomCard(
                    gradientDirection: GradientDirection.vertical,
                    borderRadius: AppConstants().button_container_radius,
                    onTap: () {
                      Get.back(); // 关闭对话框
                    },
                    colors: [
                      stringToColor("FCFCFC"),
                      stringToColor("CEECE3"),
                    ],
                    child: Container(
                      width: MediaQuery.sizeOf(context).width,
                      height: MediaQuery.sizeOf(context).height * 0.055,
                      constraints: BoxConstraints(
                        minWidth: 500.rpx,
                        minHeight: 90.rpx,
                      ),
                      child: Row(
                        mainAxisSize: MainAxisSize.max,
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: [
                          Text(
                            '知道了'.tr,
                            style: TextStyle(
                              color: stringToColor("#333333"),
                              fontFamily: 'Inter',
                              fontSize: AppConstants().normal_text_fontSize,
                              letterSpacing: 0.0,
                            ),
                          ),
                        ].divide(SizedBox(width: 17.rpx)),
                      ),
                    ),
                  ),
                ),
              ],
            ),
          ),
        ),
      );
    },
  );
}

Future<void> showUnBindTipDialog(
  BuildContext context,
  Widget widget, {
  Color? backgroundColor,
  VoidCallback? onConfirm, // “继续”按钮回调
  VoidCallback? onCancel, // “下次再说”按钮回调
}) {
  ThemeController themeController = Get.find();
  BlueteethBindController blueteethBindController = Get.find();

  return showDialog(
    context: context,
    barrierDismissible: true,
    barrierColor: Colors.black.withOpacity(0.5),
    builder: (BuildContext context) {
      return FrostedDialog(
        blurSigma: 3.0,
        child: Container(
          decoration: BoxDecoration(
            color: backgroundColor ?? themeController.currentColor.sc17,
            borderRadius: BorderRadius.circular(20.0),
          ),
          padding: EdgeInsetsDirectional.fromSTEB(64.rpx, 0, 64.rpx, 0),
          child: Container(
            width: double.infinity,
            constraints: BoxConstraints(
              maxHeight: MediaQuery.sizeOf(context).height * 0.656,
            ),
            child: Column(
              mainAxisSize: MainAxisSize.min,
              children: [
                Align(
                  alignment: AlignmentDirectional(0, 0),
                  child: Padding(
                    padding: EdgeInsetsDirectional.fromSTEB(
                        0.rpx, 93.rpx, 0, 30.rpx),
                    child: widget,
                  ),
                ),
                Padding(
                  padding: EdgeInsetsDirectional.fromSTEB(0, 0.rpx, 0, 10.rpx),
                  child: CustomCard(
                    borderRadius: AppConstants().button_container_radius,
                    onTap: () {
                      Get.back(); // 关闭对话框
                      if (onConfirm != null) {
                        onConfirm(); // 调用确认回调
                      }
                    },
                    colors: [
                      themeController.currentColor.sc1,
                      themeController.currentColor.sc2,
                    ],
                    child: Container(
                      width: MediaQuery.sizeOf(context).width,
                      height: MediaQuery.sizeOf(context).height * 0.055,
                      constraints: BoxConstraints(
                        minWidth: 500.rpx,
                        minHeight: 90.rpx,
                      ),
                      child: Row(
                        mainAxisSize: MainAxisSize.max,
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: [
                          Text(
                            '继续'.tr,
                            style: TextStyle(
                              color: themeController.currentColor.sc3,
                              fontFamily: 'Inter',
                              fontSize: AppConstants().normal_text_fontSize,
                              letterSpacing: 0.0,
                            ),
                          ),
                        ].divide(SizedBox(width: 17.rpx)),
                      ),
                    ),
                  ),
                ),
                Padding(
                  padding: EdgeInsetsDirectional.fromSTEB(0, 19.rpx, 0, 60.rpx),
                  child: CustomCard(
                    borderRadius: AppConstants().button_container_radius,
                    onTap: () {
                      Get.back(); // 关闭对话框
                      if (onCancel != null) {
                        onCancel(); // 调用取消回调
                      }
                    },
                    colors: [Colors.transparent],
                    child: Container(
                      width: MediaQuery.sizeOf(context).width,
                      height: MediaQuery.sizeOf(context).height * 0.055,
                      decoration: BoxDecoration(
                        border: Border.all(
                          color: Colors.white,
                          width: 0.5.rpx,
                        ),
                        borderRadius: BorderRadius.circular(
                            AppConstants().button_container_radius),
                      ),
                      constraints: BoxConstraints(
                        minWidth: 500.rpx,
                        minHeight: 90.rpx,
                      ),
                      child: Row(
                        mainAxisSize: MainAxisSize.max,
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: [
                          Text(
                            '下次再说'.tr,
                            style: TextStyle(
                              color: themeController.currentColor.sc3,
                              fontFamily: 'Inter',
                              fontSize: AppConstants().normal_text_fontSize,
                              letterSpacing: 0.0,
                            ),
                          ),
                        ].divide(SizedBox(width: 17.rpx)),
                      ),
                    ),
                  ),
                ),
              ],
            ),
          ),
        ),
      );
    },
  );
}
