templateController static method
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']);
}
}
''';
}