配餐项目前端文件
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.5 KiB

2 years ago
import { ApiService } from "@admin/app/services";
2 years ago
import { Component, OnInit } from "@angular/core";
import { FormArray, FormBuilder, FormGroup } from "@angular/forms";
import { FormValidators } from "@cdk/validators";
@Component({
selector: "app-food-form",
templateUrl: "./food-form.component.html",
styleUrls: ["./food-form.component.less"],
})
export class FoodFormComponent implements OnInit {
2 years ago
constructor(private fb: FormBuilder, private api: ApiService) {}
2 years ago
formGroup!: FormGroup;
2 years ago
public globalEnum = this.api.globalEnum;
2 years ago
get nutrition(): FormArray {
return this.formGroup.get("nutrition") as FormArray;
}
ngOnInit(): void {
this.formGroup = this.fb.group({
id: this.fb.control("", [FormValidators.required()]),
name: this.fb.control("", [FormValidators.required()]),
type: this.fb.control("", [FormValidators.required()]),
nutrition: this.fb.array([], [FormValidators.required()]),
});
2 years ago
this.api.getAllEnum().subscribe((r) => {});
}
nutritionChange(v: string, idx: number) {
const nutrient = this.globalEnum.nutrient.find((f) => f.key === v);
this.nutrition.at(idx).patchValue({
measurement: nutrient?.measurement,
});
2 years ago
}
createNutrition() {
this.nutrition.push(
this.fb.group({
nutritionName: this.fb.control("", [FormValidators.required()]),
nutritionNum: this.fb.control(0, [FormValidators.required()]),
2 years ago
measurement: this.fb.control("", [FormValidators.required()]),
2 years ago
})
);
}
removeNutrition(idx: number) {
this.nutrition.removeAt(idx);
}
}