import { Component, OnInit, Input, HostBinding } from "@angular/core";
import { FormGroup } from "@angular/forms";
import { trim } from 'lodash-es';
import { CommonUtils } from '@farris/ui-common';
import { IDynamicBaseControl, IDyanmicHelpControl } from "../../interfaces/dynamic-control.interface";
@Component({
selector: "dynamic-help",
template: `
`,
styles: []
})
export class HelpComponent implements OnInit {
@HostBinding('class') className: string;
@Input()
control: IDyanmicHelpControl;
@Input()
form: FormGroup;
options: any;
constructor(private utils: CommonUtils) {}
ngOnInit() {
this.options = this.control.control;
this.className = this.control.className ? this.control.className : 'col-12 col-md-6 col-xl-3 col-el-2';
}
/**
* @param helpData 选中的数据,如果是多选,是数组;如果是单选,是普通对象
* @param mapFields
* @param bindingData 帮助所在form的value对象
*/
mapping =(helpData: any, mapFields: any) => {
console.log('helpData ', helpData);
if (mapFields) {
const helpFields = Object.keys(mapFields);
helpFields.forEach( (f: any) => {
let val = '';
if (helpData) {
if (helpData instanceof Array) {
val = helpData.map( (h: any) => {
return this.utils.getValue(f, h);
}).join(',');
} else {
val = this.utils.getValue(f, helpData);
}
}
mapFields[f].split(',').forEach( (ff: any) => {
const field = trim(ff);
// this.utils.setValue(bindingData, field, val);
this.form.controls[field].setValue(val);
});
});
}
}
}