measure_search_input.dart 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import 'package:fis_i18n/i18n.dart';
  2. import 'package:fis_jsonrpc/rpc.dart';
  3. import 'package:fis_measure/interfaces/process/workspace/application.dart';
  4. import 'package:fis_measure/process/workspace/measure_data_controller.dart';
  5. import 'package:fis_measure/process/workspace/measure_handler.dart';
  6. import 'package:fis_measure/utils/prompt_box.dart';
  7. import 'package:fis_measure/view/measure/tool_chest_title.dart';
  8. import 'package:fis_ui/base_define/page.dart';
  9. import 'package:fis_ui/index.dart';
  10. import 'package:fis_ui/interface/interactive_container.dart';
  11. import 'package:flutter/material.dart';
  12. import 'package:get/get.dart';
  13. class LeftSelectInput extends FStatefulWidget implements FInteractiveContainer {
  14. @override
  15. final String pageName = 'LeftSelectInput';
  16. const LeftSelectInput({super.key});
  17. @override
  18. FState<LeftSelectInput> createState() => _LeftSelectInputState();
  19. }
  20. class _LeftSelectInputState extends FState<LeftSelectInput> {
  21. late final application = Get.find<IApplication>();
  22. /// 数据
  23. late final measureData = Get.find<MeasureDataController>();
  24. late final measureHandler = Get.find<MeasureHandler>();
  25. String annotationItem = '';
  26. /// 添加操作后更新注释
  27. void getAnnotationList() async {
  28. List<String> annotationList = [];
  29. var measureCommentItemResult =
  30. await measureData.getCommentsByApplicationAsync(
  31. application.applicationName,
  32. application.categoryName,
  33. );
  34. measureData.measureCommentItemResult =
  35. measureCommentItemResult?.commentItems ?? [];
  36. measureCommentItemResult?.commentItems?.forEach((element) {
  37. annotationList.add(element.text ?? '');
  38. });
  39. measureData.annotationList = annotationList;
  40. }
  41. @override
  42. FWidget build(BuildContext context) {
  43. return FContainer(
  44. padding: const EdgeInsets.only(
  45. left: 15,
  46. right: 15,
  47. bottom: 5,
  48. ),
  49. child: FRow(
  50. crossAxisAlignment: CrossAxisAlignment.center,
  51. children: [
  52. FBorderInput(
  53. height: 38,
  54. hintSize: 16,
  55. contentSize: 16,
  56. maxLength: 20,
  57. fillColor: Colors.white,
  58. borderColor: const Color.fromARGB(255, 187, 180, 180),
  59. suffixIcon: FMaterial(
  60. color: Colors.transparent,
  61. child: FIconButton(
  62. name: "pleaseAddCcomment",
  63. onPressed: () async {
  64. if (annotationItem.isEmpty) {
  65. PromptBox.toast(i18nBook.measure.AddCcomment.t);
  66. } else {
  67. var result = await measureData.addAnnotation(
  68. application,
  69. annotationItem,
  70. );
  71. if (result ?? false) {
  72. measureHandler.changedTab = TabEnum.tabMeasureTool;
  73. measureHandler.changedTab = TabEnum.tabNodesTool;
  74. getAnnotationList();
  75. }
  76. }
  77. },
  78. icon: const FIcon(
  79. Icons.add,
  80. ),
  81. businessParent: widget,
  82. ),
  83. ),
  84. hintText: i18nBook.measure.AddCcomment.t,
  85. onChanged: (value) {
  86. annotationItem = value;
  87. },
  88. ),
  89. ],
  90. ),
  91. );
  92. }
  93. }