part of user_order_coin_awaiting;

/// 紫荆币待支付
class UserOrderCoinAwaitingPage extends StatefulWidget {
  final String orderNum; // 订单编号
  const UserOrderCoinAwaitingPage({Key? key, required this.orderNum})
      : super(key: key);

  @override
  State<UserOrderCoinAwaitingPage> createState() =>
      _UserOrderCoinAwaitingState();
}

class _UserOrderCoinAwaitingState extends State<UserOrderCoinAwaitingPage> {
  late UserOrderCoinAwaitingController myController;

  @override
  void initState() {
    myController = Get.put(UserOrderCoinAwaitingController(widget.orderNum));
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return FutureBuilder(
      future: myController.getOrderInfo(),
      builder: (context, snapshot) {
        if (snapshot.connectionState == ConnectionState.waiting) {
          return Scaffold(
            appBar: AppBar(
              centerTitle: true,
              title: const Text('待支付'),
            ),
          );
        } else {
          return WillPopScope(
            onWillPop: () async {
              context.pop(true);
              return false;
            },
            child: GetBuilder<UserOrderCoinAwaitingController>(
                init: UserOrderCoinAwaitingController(widget.orderNum),
                builder: (controller) => Scaffold(
                      appBar: CustomAppBar(
                        title: const Text('待支付'),
                        actions: [],
                      ),
                      body: Column(
                        children: [
                          Container(
                            margin: EdgeInsets.symmetric(
                                horizontal: AppTheme.margin,
                                vertical: AppTheme.margin),
                            decoration: BoxDecoration(
                              borderRadius: BorderRadius.circular(8.w),
                              color: Colors.white,
                              boxShadow: [
                                BoxShadow(
                                  color: Colours.cC7.withOpacity(0.5),
                                  offset: Offset(3.w, 0),
                                  blurRadius: 10.w,
                                  spreadRadius: 0.w,
                                ),
                              ],
                            ),
                            child: ClipRRect(
                              borderRadius: BorderRadius.circular(8.w),
                              child: Column(
                                mainAxisAlignment: MainAxisAlignment.start,
                                mainAxisSize: MainAxisSize.min,
                                children: [
                                  Padding(
                                    padding: EdgeInsets.only(
                                        left: 12.0.w,
                                        top: 17.5.w,
                                        bottom: 12.0.w),
                                    child: Row(
                                      mainAxisAlignment:
                                          MainAxisAlignment.start,
                                      crossAxisAlignment:
                                          CrossAxisAlignment.start,
                                      children: [
                                        Image.asset(
                                          'assets/images/coin.png',
                                          // fit: BoxFit.cover, // 设置适应方式为充满
                                          width: 42.0.w,
                                          height: 42.0.w,
                                        ),
                                        Expanded(
                                          child: Padding(
                                            padding:
                                                EdgeInsets.only(right: 16.5.w),
                                            child: Column(
                                              mainAxisAlignment:
                                                  MainAxisAlignment
                                                      .spaceBetween,
                                              crossAxisAlignment:
                                                  CrossAxisAlignment.end,
                                              // 下面的Text靠左
                                              children: [
                                                Text(
                                                  '充值${controller.model.bean}紫荆币',
                                                  style: TextStyle(
                                                    color: Colours.c3,
                                                    fontWeight: Fonts.bold,
                                                    fontSize: 13.w,
                                                  ),
                                                  maxLines: 2,
                                                  overflow: TextOverflow
                                                      .ellipsis, // 超过部分显示省略号
                                                ),
                                                SizedBox(height: 9.w),
                                                Text(
                                                  "需付款 ¥${controller.model.finalTotalPrice}",
                                                  style: TextStyle(
                                                    color: Colours.cAB1941,
                                                    fontWeight: Fonts.bold,
                                                    fontSize: 14.w,
                                                  ),
                                                ),
                                              ],
                                            ),
                                          ),
                                        ),
                                      ],
                                    ),
                                  ),
                                  Container(
                                    color: Colours.cLine,
                                    margin: EdgeInsets.only(
                                        left: 10.w, right: 10.w, bottom: 12.w),
                                    height: 1.w,
                                  ),
                                  Container(
                                    padding: EdgeInsets.only(
                                        left: 11.5.w,
                                        bottom: 8.w,
                                        right: 23.5.w),
                                    child: Column(
                                      mainAxisAlignment:
                                          MainAxisAlignment.spaceEvenly,
                                      children: controller.orderAwaitings
                                          .map((model) {
                                        return Padding(
                                          padding: EdgeInsets.only(top: 12.w),
                                          child: Row(
                                            mainAxisAlignment:
                                                MainAxisAlignment.spaceBetween,
                                            children: [
                                              Text(
                                                model.name,
                                                style: TextStyle(
                                                    fontSize: 13.w,
                                                    height: 1.6.w,
                                                    color: Colours.c9),
                                              ),
                                              Text(
                                                model.value.toString(),
                                                style: TextStyle(
                                                    fontSize: 13.w,
                                                    height: 1.6.w,
                                                    color: Colours.c3),
                                              ),
                                            ],
                                          ),
                                        );
                                      }).toList(),
                                    ),
                                  ),
                                  SizedBox(
                                    height: 13.5.w,
                                  ),
                                ],
                              ),
                            ),
                          ),
                          SizedBox(
                            height: 11.5.w,
                          ),
                          Container(
                            margin: EdgeInsets.symmetric(horizontal: 15.w),
                            height: 40.w,
                            decoration: BoxDecoration(
                                color: AppTheme.primary,
                                borderRadius: BorderRadius.circular(180.w),
                                border: Border.all(
                                    color: Colours.cC31F4C, width: 0.5.w)),
                            child: Center(
                              child: GestureDetector(
                                  onTap: () {
                                    // print("保存昵称");
                                    // context.pushNamed(Routes.orderEvaluate);
                                  },
                                  child: Text(
                                    '立即支付 ¥${controller.model.finalTotalPrice}',
                                    style: TextStyle(
                                        fontWeight: Fonts.medium,
                                        fontSize: 14.w,
                                        color: Colours.cFF),
                                  )),
                            ),
                          ),
                          SizedBox(
                            height: 11.5.w,
                          ),
                          GestureDetector(
                            onTap: () {
                              showDialog(
                                context: context,
                                builder: (BuildContext context) {
                                  return AlertDialog(
                                    shape: RoundedRectangleBorder(
                                      borderRadius:
                                          BorderRadius.circular(8.0.w),
                                    ),
                                    contentPadding: EdgeInsets.zero,
                                    // 移除内容部分的内边距
                                    content: Wrap(
                                      children: [
                                        Container(
                                          margin: EdgeInsets.only(
                                              top: 44.w,
                                              bottom: 29.w), // 调整上下间距
                                          child: Center(
                                            child: Text(
                                              '确定取消订单吗',
                                              style: TextStyle(
                                                fontSize: 15.w,
                                                fontWeight: Fonts.medium,
                                                color: Colours.c3,
                                              ),
                                            ),
                                          ),
                                        ),
                                        Container(
                                          height: 1.w, // 设置分割线的高度
                                          width: double.infinity, // 设置分割线的宽度
                                          color: Colours.cLine, // 设置分割线的颜色
                                        ),
                                      ],
                                    ),
                                    // 去除操作按钮区域的内边距
                                    actionsPadding: EdgeInsets.zero,
                                    actions: <Widget>[
                                      Row(
                                        mainAxisAlignment:
                                            MainAxisAlignment.spaceEvenly,
                                        // 或者使用MainAxisAlignment.spaceEvenly
                                        children: [
                                          GestureDetector(
                                            onTap: () =>
                                                Navigator.of(context).pop(),
                                            child: const Text(
                                              '取消',
                                              style: TextStyle(
                                                fontSize: 12,
                                                fontWeight: Fonts.medium,
                                                color: Colours.c6,
                                              ),
                                            ),
                                          ),
                                          Container(
                                            height: 39.5.w, // 设置分割线的高度
                                            width: 1, // 设置分割线的宽度
                                            color: Colours.cLine, // 设置分割线的颜色
                                          ),
                                          GestureDetector(
                                            onTap: () {
                                              controller.cancelPay();
                                              Navigator.of(context).pop();
                                              Navigator.pop(context);
                                            },
                                            child: const Text(
                                              '确定',
                                              style: TextStyle(
                                                fontSize: 12,
                                                fontWeight: Fonts.medium,
                                                color: Colours.cAB1941,
                                              ),
                                            ),
                                          ),
                                        ],
                                      ),
                                    ],
                                  );
                                },
                              );
                            },
                            child: Text(
                              '取消订单',
                              style: TextStyle(
                                fontWeight: Fonts.medium,
                                fontSize: 15.w,
                                color: Colours.c9,
                              ),
                            ),
                          ),
                        ],
                      ),
                    )),
          );
        }
      },
    );
  }
}
