配餐项目前端文件
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.
 
 
 

81 lines
2.2 KiB

import { HttpParams } from "@angular/common/http";
import { AbstractControl, FormControl, FormGroup } from "@angular/forms";
import { AnyObject } from "@cdk/types";
export class Utils {
static validateFormGroup(formGroup: FormGroup) {
if (!formGroup.valid) {
Object.keys(formGroup.controls).forEach((field) => {
const control = formGroup.get(field);
if (control instanceof FormControl) {
control.markAsDirty();
control.markAsTouched({ onlySelf: true });
control.updateValueAndValidity({ onlySelf: true });
} else if (control instanceof FormGroup) {
Utils.validateFormGroup(control);
}
});
}
return formGroup.valid;
}
static validateFormControl(control: AbstractControl) {
control.markAsDirty();
control.markAsTouched({ onlySelf: true });
control.updateValueAndValidity({ onlySelf: true });
return control.valid;
}
static queryify(query: {}): string {
const o = Object.create(null);
Object.entries(query).forEach(([k, v]) => {
if (v !== void 0 && v !== null) {
o[k] = v;
}
});
return new URLSearchParams(o).toString();
}
static getHostByEnvironment(prod?: boolean) {
const protocol = window.location.protocol;
const host = prod ? window.location.host : `localhost:${window.location.port}`;
return `${protocol}//${host}`;
}
static objectToHttpParams(obj: AnyObject, parentKey = ""): HttpParams {
let params = new HttpParams();
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
const value = obj[key];
const paramName = parentKey ? `${parentKey}.${key}` : key;
if (typeof value === "object" && !Array.isArray(value)) {
params = params.appendAll(Utils.objectToHttpParams(value, paramName) as any);
} else {
params = params.append(paramName, value);
}
}
}
return params;
}
static objectToFormData(obj: AnyObject): FormData {
let params = new FormData();
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
const value = obj[key];
if (![void 0, null, ""].includes(value)) {
params.append(key, value);
}
}
}
return params;
}
// static detectionImagePath(jobId: string, imgName: string) {
// return `/record/${jobId}/detect/${imgName}`;
// }
}