import 'package:fis_jsonrpc/rpc.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:vitalapp/components/cell.dart';
import 'package:vitalapp/pages/contract/package_info/view.dart';
import 'package:vitalapp/pages/contract/package_list/controller.dart';

class FamilyDoctorServicePackagePage
    extends GetView<ServicePackageContractController> {
  const FamilyDoctorServicePackagePage({super.key});

  @override
  Widget build(BuildContext context) {
    return buildServicePackageList(context);
  }

  Widget buildItem(ServicePackDTO servicePackDTO, BuildContext context) {
    return InkWell(
      onTap: () {
        controller.changeServicePackage(servicePackDTO);
      },
      child: Container(
        margin: const EdgeInsets.symmetric(
          vertical: 10,
        ),
        child: Row(
          children: [
            Container(
              padding: const EdgeInsets.only(right: 20),
              child: Obx(
                () => Icon(
                  Icons.check_circle_outline,
                  size: 35,
                  color: controller.state.selectedServicePackage
                          .contains(servicePackDTO)
                      ? Theme.of(context).primaryColor
                      : Colors.grey.shade500,
                ),
              ),
            ),
            Expanded(
              child: Container(
                child: Text(
                  servicePackDTO.name ?? '',
                  style: const TextStyle(color: Colors.black, fontSize: 20),
                ),
              ),
            ),
            Container(
              padding: const EdgeInsets.only(right: 50),
              child: IconButton(
                icon: Image.asset(
                  "assets/images/showPackage.png",
                  width: 30,
                  height: 30,
                  fit: BoxFit.cover,
                ),
                onPressed: () {
                  Navigator.push(
                    context,
                    MaterialPageRoute(
                        builder: (context) =>
                            PackageInfoPage(dto: servicePackDTO)),
                  );
                },
              ),
            ),
          ],
        ),
      ),
    );
  }

  Widget buildServicePackageList(BuildContext context) {
    return Obx(
      () => Container(
        alignment: Alignment.topCenter,
        child: SingleChildScrollView(
          child: controller.state.servicePackageItems.isEmpty
              ? Container(
                  margin: const EdgeInsets.only(top: 80),
                  child: Column(
                    children: [
                      Center(
                        child: Image.asset(
                          "assets/images/no_data.png",
                          width: 300,
                          height: 300,
                          fit: BoxFit.cover,
                        ),
                      ),
                      const Text(
                        "暂无数据，先看看别的吧",
                        style: TextStyle(fontSize: 18),
                      ),
                    ],
                  ),
                )
              : Container(
                  padding: const EdgeInsets.symmetric(horizontal: 16),
                  margin: const EdgeInsets.only(bottom: 50),
                  child: Column(
                    children: [
                      VListFormCellGroup(
                        children: [
                          ...controller.state.servicePackageItems
                              .map((ServicePackDTO e) => buildItem(e, context))
                              .toList(),
                        ],
                      ),
                    ],
                  ),
                ),
        ),
      ),
    );
  }

  //  Widget buildAlertDialog(ServicePackDTO servicePackDTO) {
  //   return VAlertDialog(
  //     title: '${servicePackDTO.name}详情',
  //     content: Container(
  //         height: 200,
  //         alignment: Alignment.topLeft,
  //         padding: const EdgeInsets.symmetric(horizontal: 15),
  //         child: Column(
  //           crossAxisAlignment: CrossAxisAlignment.start,
  //           children: [
  //             LayoutBuilder(
  //               builder: (BuildContext context, BoxConstraints constraints) {
  //                 return ConstrainedBox(
  //                   constraints: const BoxConstraints(
  //                     maxHeight: 100,
  //                   ),
  //                   child: Scrollbar(
  //                     thumbVisibility: true,
  //                     child: ListView(
  //                       shrinkWrap: true,
  //                       children: [
  //                         Text(
  //                           servicePackDTO.content ?? "",
  //                           style: const TextStyle(fontSize: 16),
  //                         ),
  //                       ],
  //                     ),
  //                   ),
  //                 );
  //               },
  //             ),
  //             const SizedBox(
  //               height: 5,
  //             ),
  //             const Text(
  //               '服务项目',
  //               style: TextStyle(fontWeight: FontWeight.bold, fontSize: 18),
  //             ),
  //             const SizedBox(
  //               height: 5,
  //             ),
  //             Expanded(
  //               child: Text(
  //                 controller.getServiceItemsName(
  //                   servicePackDTO.items ?? [],
  //                 ),
  //               ),
  //             )
  //           ],
  //         )),
  //     // actions: <Widget>[
  //     //   TextButton(
  //     //     child: const Text('取消'),
  //     //     onPressed: () {
  //     //       Navigator.of(context).pop(); // 关闭对话框
  //     //     },
  //     //   ),
  //     //   TextButton(
  //     //     child: const Text('确定'),
  //     //     onPressed: () {
  //     //       // 在这里处理确定按钮的逻辑
  //     //       Navigator.of(context).pop(); // 关闭对话框
  //     //     },
  //     //   ),
  //     // ],
  //   );
  // }
}
