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); }); }); } } }