templateController static method

String templateController(
  1. String name,
  2. String module
)

Implementation

static String templateController(String name, String module) {
  String filterName = _upperFirst(name);
  return '''
part of 'index.dart';

class ${filterName}Controller extends GetxController {
// State & Controller
static ${filterName}Controller get to => Get.find();

TextEditingController inputControllerEqpId = TextEditingController();
TextEditingController inputControllerLotId = TextEditingController();

// 日期范围
DateTimeRangeModel? dateRange;

// 列表数据
List<ListModel> list = [];
// 获取选中数量
int get isSelectedLength => list.where((e) => e.isSelected == true).length;

@override
void onClose() {
  inputControllerEqpId.dispose();
  inputControllerLotId.dispose();
  super.onClose();
}

// Actions
// 查询列表
Future<void> getList() async {
  try {
    String eqpId = inputControllerEqpId.text;
    String lotId = inputControllerLotId.text;

    final fieldValidator = FieldValidator(validators: [
      {"model": eqpId, "validators": ValidatorRequired(label: 'eqpId'.tr)},
      {"model": lotId, "validators": ValidatorRequired(label: 'lotId'.tr)},
    ]);
    if (!fieldValidator.validate()) return;

    Map<String, dynamic> params = {
      'eqpId': eqpId,
      'lotId': lotId,
      'startTime': dateRange?.startTime,
      'endTime': dateRange?.endTime,
    };

    List<dynamic> res = await HttpService.instance.get(
      ${filterName}Apis.getListApi,
      params: params
    );

    list = res.map((e) => ListModel.fromJson(e)).toList();
    update(['listScreen', 'overlayScreen']);
  } catch (e, s) {
    CrashlyticsService.instance.reportError('查询列表', e, s);
  }
}

// 确认
Future<void> confirm() async {
  try {
    List<ListModel> selectedList = list.where((e) => e.isSelected == true).toList();
    if (selectedList.isEmpty) {
      CustomToast.show('请选择数据');
      return;
    }

    List<String> ids = selectedList.map((e) => e.id ?? '').toList();
    Map<String, dynamic> data = {'ids': ids};

    await HttpService.instance.post(${filterName}Apis.confirmApi, data: data);
    clear();
  } catch (e, s) {
    CrashlyticsService.instance.reportError('确认', e, s);
  }
}

// 清空
void clear() {
  inputControllerEqpId.clear();
  inputControllerLotId.clear();
  dateRange = null;
  list.clear();
  update(['listScreen', 'bottomFloatBarScreen']);
}

// 更新日期范围
void updateDateRange(DateTimeRangeModel? value) {
  dateRange = value;
  update(['queryScreen']);
}

// 更新全部选中
void updateAllSelected(bool v) {
  for (ListModel e in list) {
    e.isSelected = v;
  }
  update(['listScreen', 'bottomFloatBarScreen']);
}

// 更新行选中
void updateRowSelected(ListModel item) {
  item.isSelected = !(item.isSelected ?? false);
  update(['listScreen', 'bottomFloatBarScreen']);
}
}
''';
}