UNPKG

@kre-form/ant

Version:

664 lines 83.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, Input, ElementRef, } from "@angular/core"; import { NzMessageService } from "ng-zorro-antd/message"; import { FormGroup, FormBuilder, } from "@angular/forms"; import { KreFormCommonService, } from "@kre-form/core"; import { BehaviorSubject } from "rxjs"; import { KreSetFormFieldService } from "../../tools/setField.service"; import * as _ from "lodash"; import * as moment_ from "moment"; /** @type {?} */ const moment = moment_; export class KreFormDSField { /** * @param {?} message * @param {?} fb * @param {?} kreFormCommonService * @param {?} kreSetFieldService * @param {?} el */ constructor(message, fb, kreFormCommonService, kreSetFieldService, el) { this.message = message; this.fb = fb; this.kreFormCommonService = kreFormCommonService; this.kreSetFieldService = kreSetFieldService; this.el = el; this.formField = { key: "", type: "", templateOptions: { type: null, label: null, description: null, parameterId: null, maxLength: null, minLength: null, max: null, min: null, precision: null, placeholder: null, required: false, tips: null, pattern: null, rows: 4, hideSelect: null, selectType: "single", labelI18n: [], tipsI18n: [], }, fontProperty: { fontSize: 14, color: "#323232", fontWeight: false, fontStyle: false, }, defaultValue: null, editProperty: { config: true, }, show: true, hide: false, }; this.fontSizeList = []; this.defaultList = []; this.defaultValue = null; this.hideSelect = []; this._langConfig = []; this.limit = { maxLength: null, minLength: null, max: null, min: null, maxDate: null, minDate: null, }; this.modalType = "default"; this.form = new FormGroup({}); this.model = {}; // options = {}; this.formFildConfig = []; // multiple = 'default'; // multiple this.globalSubmit = new BehaviorSubject(String); this.tmp = 0; } /** * @param {?} value * @return {?} */ set langConfig(value) { this._langConfig = value; } /** * @return {?} */ get langConfig() { return this._langConfig; } /** * @param {?} value * @return {?} */ set field(value) { _.assignIn(this.formField, _.cloneDeep(value)); if (this.formField.type === "textarea" && this.formField.templateOptions) { if (this.formField.templateOptions.rows === undefined || this.formField.templateOptions.rows === null) { this.formField.templateOptions.rows = 4; } } if (this.formField.type === "datetime" && (/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions)).type === "time" && !!this.formField.defaultValue) { this.formField.defaultValue = new Date(this.formField.defaultValue); } if (this.formField.type === "select") { if (this.formField.templateOptions.selectType === "multiple") { this.defaultValue = []; if (!_.isEmpty(this.formField.defaultValue)) { ((/** @type {?} */ (this.formField.defaultValue))).forEach((/** * @param {?} el * @return {?} */ (el) => { this.defaultValue.push(el.value); })); } } else { this.defaultValue = null; if (!_.isEmpty(this.formField.defaultValue)) { this.defaultValue = this.formField.defaultValue[0].value; } } } if (this.formField.type === "select" && !_.isEmpty((/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions)).hideSelect)) { ((/** @type {?} */ ((/** @type {?} */ (this.formField.templateOptions)).hideSelect))).forEach((/** * @param {?} el * @return {?} */ (el) => { this.hideSelect.push(el.value); })); } this.formField.hide = !this.formField["show"]; this.newPrimitive(this.formField); // if (!this.formField!.templateOptions!.labelI18n) { // this.formField!.templateOptions!.labelI18n = this.langConfig; // } // if (!this.formField!.templateOptions!.tipsI18n) { // this.formField!.templateOptions!.tipsI18n = this.langConfig; // } // if ( // !!this.formField!.templateOptions!.label && // !(this.formField!.templateOptions!.labelI18n as any[]).filter( // (el) => el.language === "zh-cn" // )[0].value // ) { // (this.formField!.templateOptions!.labelI18n as any[]).filter( // (el) => el.language === "zh-cn" // )[0].value = this.formField!.templateOptions!.label; // } this.limit.min = -999999; if (!!(/** @type {?} */ ((/** @type {?} */ (this.formField)).primitiveProperty)).min || (/** @type {?} */ ((/** @type {?} */ (this.formField)).primitiveProperty)).min === 0) { this.limit.min = (/** @type {?} */ ((/** @type {?} */ (this.formField)).primitiveProperty)).min; } this.limit.max = (/** @type {?} */ ((/** @type {?} */ (this.formField)).primitiveProperty)).max || 999999; this.limit.minLength = (/** @type {?} */ ((/** @type {?} */ (this.formField)).primitiveProperty)).minLength || 0; this.limit.maxLength = (/** @type {?} */ ((/** @type {?} */ (this.formField)).primitiveProperty)).maxLength || 500; this.limit.maxDate = (/** @type {?} */ ((/** @type {?} */ (this.formField)).primitiveProperty)).maxDate || "2050-12-31"; this.limit.minDate = (/** @type {?} */ ((/** @type {?} */ (this.formField)).primitiveProperty)).minDate || "1900-01-01"; } /** * @param {?} value * @return {?} */ newPrimitive(value) { if (value.primitiveProperty === null || value.primitiveProperty === undefined) { value.primitiveProperty = {}; } /** @type {?} */ const list = [ "maxLength", "minLength", "max", "min", "precision", "maxDate", "minDate", ]; list.forEach((/** * @param {?} key * @return {?} */ (key) => { if (value.primitiveProperty[key] === null || value.primitiveProperty[key] === undefined) { value.primitiveProperty[key] = value.templateOptions[key]; } })); // if ( // value.primitiveProperty.maxLength === null || // value.primitiveProperty.maxLength === undefined // ) { // value.primitiveProperty.maxLength = value.templateOptions.maxLength; // } // if ( // value.primitiveProperty.minLength === null || // value.primitiveProperty.minLength === undefined // ) { // value.primitiveProperty.minLength = value.templateOptions.minLength; // } // if ( // value.primitiveProperty.max === null || // value.primitiveProperty.max === undefined // ) { // value.primitiveProperty.max = value.templateOptions.max; // } // if ( // value.primitiveProperty.min === null || // value.primitiveProperty.min === undefined // ) { // value.primitiveProperty.min = value.templateOptions.min; // } // if ( // value.primitiveProperty.precision === null || // value.primitiveProperty.precision === undefined // ) { // value.primitiveProperty.precision = value.templateOptions.precision; // } // if ( // value.primitiveProperty.maxDate === null || // value.primitiveProperty.maxDate === undefined // ) { // value.primitiveProperty.maxDate = value.templateOptions.maxDate; // } // if ( // value.primitiveProperty.minDate === null || // value.primitiveProperty.minDate === undefined // ) { // value.primitiveProperty.minDate = value.templateOptions.minDate; // } } /** * @param {?} value * @return {?} */ set options(value) { value.forEach((/** * @param {?} el * @return {?} */ (el) => { if (el.parameterId === (/** @type {?} */ (this.formField.templateOptions)).parameterId) { this.defaultList.push({ label: el.label, value: el.value, }); } })); } /** * @return {?} */ ngOnInit() { for (let i = 12; i <= 20; i++) { this.fontSizeList.push(i); } } /** * @param {?} changes * @return {?} */ ngOnChanges(changes) { } /** * @param {?} e * @param {?} type * @return {?} */ defaultValueChange(e, type) { this.formField.defaultValue = []; if (type === "multiple") { if (!_.isEmpty((/** @type {?} */ (e)))) { (/** @type {?} */ (e)).forEach((/** * @param {?} el * @return {?} */ (el) => { this.formField.defaultValue.push({ label: this.defaultList.filter((/** * @param {?} ele * @return {?} */ (ele) => ele.value === el))[0]["label"], value: this.defaultList.filter((/** * @param {?} ele * @return {?} */ (ele) => ele.value === el))[0]["value"], }); })); } } else { this.formField.defaultValue.push({ label: this.defaultList.filter((/** * @param {?} ele * @return {?} */ (ele) => ele.value === e))[0]["label"], value: this.defaultList.filter((/** * @param {?} ele * @return {?} */ (ele) => ele.value === e))[0]["value"], }); } } /** * @param {?} e * @return {?} */ hideSelectChange(e) { if (!_.isEmpty(e)) { (/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions)).hideSelect = []; e.forEach((/** * @param {?} el * @return {?} */ (el) => { (/** @type {?} */ ((/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions)).hideSelect)).push({ label: this.defaultList.filter((/** * @param {?} ele * @return {?} */ (ele) => ele.value === el))[0]["label"], value: this.defaultList.filter((/** * @param {?} ele * @return {?} */ (ele) => ele.value === el))[0]["value"], }); })); } else { (/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions)).hideSelect = null; } } /** * @return {?} */ checkSave() { /** @type {?} */ let type = this.formField.type; if (type == "text" || type == "textarea") { if (_.get(this.formField, "templateOptions.minLength") >= _.get(this.formField, "templateOptions.maxLength")) { this.message.error("最大长度必须大于最小长度"); return false; } } if (type == "number") { if (_.get(this.formField, "templateOptions.min") >= _.get(this.formField, "templateOptions.max")) { this.message.error("最大值必须大于最小值"); return false; } } return true; } /** * @param {?} caller * @param {?} callback * @return {?} */ initBehaviorSubject(caller, callback) { this.globalSubmit = new BehaviorSubject(String); if (callback != undefined && callback != null && callback != "") { callback.call(caller); } } /** * @return {?} */ frmSubmit() { this.el.nativeElement.querySelector("#btn-basic-save").click(); if (this.form) { for (const i in this.form.controls) { this.form.controls[i].markAsDirty(); this.form.controls[i].updateValueAndValidity(); } if (this.form.valid) { this.tmp = this.tmp + 1; if (this.tmp == 1) { this.globalSubmit.next("OK"); this.getFieldInfo(this.formField); } } } } /** * @return {?} */ ngOnDestroy() { this.globalSubmit.unsubscribe(); } /** * @param {?} field * @return {?} */ getFieldInfo(field) { if (this.model["editor"] != undefined) { field.editor = this.model["editor"]; } if (!this.model.hasOwnProperty("hide")) { field.hide = !this.model["show"]; } console.log(field.hide); if (this.model["hide"] != undefined && this.model["hide"] != null) { field.hide = this.model["hide"]; field.show != this.model["hide"]; } if (_.get(this.model, "templateOptions.description") != undefined) { field["templateOptions"]["description"] = _.get(this.model, "templateOptions.description"); } if (_.get(this.model, "templateOptions.maxLength") != undefined) { field.templateOptions.maxLength = _.get(this.model, "templateOptions.maxLength"); } if (_.get(this.model, "templateOptions.minLength") != undefined) { field.templateOptions.minLength = _.get(this.model, "templateOptions.minLength"); } if (_.get(this.model, "templateOptions.minLength") != undefined) { field.templateOptions.max = _.get(this.model, "templateOptions.max"); } if (_.get(this.model, "templateOptions.min")) { field.templateOptions.min = _.get(this.model, "templateOptions.min"); } if (_.get(this.model, "templateOptions.precision") != undefined) { field.templateOptions.precision = _.get(this.model, "templateOptions.precision"); } if (_.get(this.model, "templateOptions.placeholder") != undefined) { field.templateOptions.placeholder = _.get(this.model, "templateOptions.placeholder"); } if (_.get(this.model, "templateOptions.required") != undefined) { field.templateOptions.required = _.get(this.model, "templateOptions.required"); } if (_.get(this.model, "templateOptions.tips") != undefined) { field.templateOptions.tips = _.get(this.model, "templateOptions.tips"); } if (_.get(this.model, "templateOptions.pattern") != undefined) { field.templateOptions.pattern = _.get(this.model, "templateOptions.pattern"); } if (_.get(this.model, "templateOptions.rows") != undefined) { field.templateOptions.rows = _.get(this.model, "templateOptions.rows"); } } /** * @param {?} e * @return {?} */ fieldHideChange(e) { this.formField.show = !e; } /** * @param {?} e * @return {?} */ nameChange(e) { (/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions)).labelI18n = e; (/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions)).label = ((/** @type {?} */ ((/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions)).labelI18n))).filter((/** * @param {?} el * @return {?} */ (el) => el.language === "zh-cn"))[0].value; } /** * @param {?} e * @return {?} */ tipsChange(e) { (/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions)).tipsI18n = e; } /** * @param {?} time * @param {?} type * @return {?} */ dateTimeChange(time, type) { if (time) { switch (type) { case "date": time = moment(time).format("YYYY/MM/DD 00:00:00"); break; case "year": time = moment(time).format("YYYY/01/01 00:00:00"); break; case "month": time = moment(time).format("YYYY/MM/01 00:00:00"); break; default: break; } } else { time = ""; } this.formField.defaultValue = time; } /** * @return {?} */ nzDefaultValueMin() { if (!!(/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions))["min"]) { return Math.max((/** @type {?} */ (this.limit))["min"], (/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions))["min"]); } else { return (/** @type {?} */ (this.limit))["min"]; } } /** * @return {?} */ nzDefaultValueMax() { if (!!(/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions))["max"]) { return Math.min((/** @type {?} */ (this.limit))["max"], (/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions))["max"]); } else { return (/** @type {?} */ (this.limit))["max"]; } } /** * @return {?} */ nzMaxMin() { /** @type {?} */ let min = (/** @type {?} */ (this.limit))["min"]; if (!!(/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions))["min"] && !!this.formField.defaultValue) { min = Math.max((/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions))["min"], this.formField.defaultValue); } else if (!(/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions))["min"] && !!this.formField.defaultValue) { min = this.formField.defaultValue; } else if (!!(/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions))["min"] && !this.formField.defaultValue) { min = (/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions))["min"]; } else { min = (/** @type {?} */ (this.limit))["min"]; } return min; } /** * @return {?} */ nzMaxMax() { /** @type {?} */ let max = (/** @type {?} */ (this.limit))["max"]; return max; } /** * @return {?} */ nzMinMin() { return (/** @type {?} */ (this.limit))["min"]; } /** * @return {?} */ nzMinMax() { /** @type {?} */ let max = (/** @type {?} */ (this.limit))["max"]; if (!!(/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions))["max"] && !!this.formField.defaultValue) { max = Math.min((/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions))["max"], this.formField.defaultValue); } else if (!(/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions))["max"] && !!this.formField.defaultValue) { max = this.formField.defaultValue; } else if (!!(/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions))["max"] && !this.formField.defaultValue) { max = (/** @type {?} */ ((/** @type {?} */ (this.formField)).templateOptions))["max"]; } else { max = (/** @type {?} */ (this.limit))["max"]; } return max; } } KreFormDSField.decorators = [ { type: Component, args: [{ selector: "kreform-ds_field", template: "<div class=\"builder-content\">\n <div class=\"content\">\n <div class=\"label\">\u5B57\u6BB5\u540D\u79F0</div>\n <div class=\"control\">\n {{ formField.key }}\n </div>\n </div>\n <div\n class=\"content\"\n *ngIf=\"\n formField.type != 'repeat' &&\n formField.type != 'tabular' &&\n formField.type != 'line' &&\n formField.type != 'htmlcontent' &&\n formField.type != 'anchor'\n \"\n >\n <div class=\"label\">\u663E\u793A\u540D\u79F0</div>\n <div class=\"control\">\n <!-- {{ formField!.templateOptions!.label }} -->\n\n <input\n nz-input\n placeholder=\"\u663E\u793A\u540D\u79F0\"\n [(ngModel)]=\"formField!.templateOptions!.label\"\n />\n <!-- <demo-text-en\n [lang]=\"lang\"\n [labelI18n]=\"formField!.templateOptions!.labelI18n\"\n (inputChange)=\"nameChange($event)\"\n ></demo-text-en> -->\n </div>\n </div>\n <ng-container\n *ngIf=\"\n formField.type != 'repeat' &&\n formField.type != 'tabular' &&\n formField.type != 'line' &&\n formField.type != 'avatar' &&\n formField.type != 'button'\n \"\n >\n <div class=\"content\">\n <div class=\"label\">\u5B57\u4F53\u5927\u5C0F</div>\n <div class=\"control\">\n <nz-select\n [(ngModel)]=\"formField!.fontProperty!.fontSize\"\n nzPlaceHolder=\"\u8BF7\u9009\u62E9\u5B57\u4F53\u5927\u5C0F\"\n >\n <nz-option\n *ngFor=\"let i of fontSizeList\"\n [nzValue]=\"i\"\n [nzLabel]=\"i\"\n ></nz-option>\n </nz-select>\n </div>\n </div>\n\n <div class=\"content\">\n <div class=\"label\">\u5B57\u4F53\u989C\u8272</div>\n <div class=\"control\">\n <nz-input-group [nzSuffix]=\"topbarTemplate\">\n <input\n type=\"text\"\n [(colorPicker)]=\"formField!.fontProperty!.color\"\n [(ngModel)]=\"formField!.fontProperty!.color\"\n [ngModelOptions]=\"{ standalone: true }\"\n nz-input\n placeholder=\"\"\n />\n </nz-input-group>\n <ng-template #topbarTemplate>\n <div\n class=\"color-rect\"\n [ngStyle]=\"{ 'background-color': formField!.fontProperty!.color }\"\n ></div>\n </ng-template>\n </div>\n </div>\n <div class=\"content\">\n <div class=\"label\">\u662F\u5426\u52A0\u7C97</div>\n <div class=\"control\">\n <nz-switch\n [(ngModel)]=\"formField!.fontProperty!.fontWeight\"\n nzCheckedChildren=\"\u662F\"\n nzUnCheckedChildren=\"\u5426\"\n >\n </nz-switch>\n </div>\n </div>\n <div class=\"content\">\n <div class=\"label\">\u662F\u5426\u503E\u659C</div>\n <div class=\"control\">\n <nz-switch\n [(ngModel)]=\"formField!.fontProperty!.fontStyle\"\n nzCheckedChildren=\"\u662F\"\n nzUnCheckedChildren=\"\u5426\"\n >\n </nz-switch>\n </div>\n </div>\n </ng-container>\n\n <div class=\"content\" *ngIf=\"formField.type === 'textarea'\">\n <div class=\"label\">\u663E\u793A\u884C\u6570</div>\n <div class=\"control\">\n <nz-input-number\n [nzMin]=\"1\"\n [nzStep]=\"1\"\n [nzPrecision]=\"0\"\n [(ngModel)]=\"formField!.templateOptions!['rows']\"\n >\n </nz-input-number>\n </div>\n </div>\n\n <ng-container\n *ngIf=\"\n formField.type === 'select' ||\n formField.type === 'text' ||\n formField.type === 'numbers' ||\n formField.type === 'textarea' ||\n formField.type === 'datetime'\n \"\n >\n <div class=\"content\" [class.textarea]=\"formField.type === 'textarea'\">\n <div class=\"label\">\u9ED8\u8BA4\u503C</div>\n <div class=\"control\" *ngIf=\"formField.type === 'text'\">\n <input\n nz-input\n placeholder=\"\u9ED8\u8BA4\u503C\"\n [(ngModel)]=\"formField.defaultValue\"\n />\n </div>\n <div class=\"control\" *ngIf=\"formField.type === 'textarea'\">\n <textarea\n [rows]=\"formField!.templateOptions!['rows']\"\n nz-input\n wrap=\"hard\"\n placeholder=\"\u9ED8\u8BA4\u503C\"\n [(ngModel)]=\"formField.defaultValue\"\n ></textarea>\n </div>\n\n <div class=\"control\" *ngIf=\"formField.type === 'numbers'\">\n <nz-input-number\n [(ngModel)]=\"formField.defaultValue\"\n [nzMin]=\"nzDefaultValueMin()\"\n [nzMax]=\"nzDefaultValueMax()\"\n [nzPrecision]=\"formField!.templateOptions!['precision']\"\n >\n </nz-input-number>\n </div>\n\n <div class=\"control\" *ngIf=\"formField.type === 'select'\">\n <nz-select\n [(ngModel)]=\"defaultValue\"\n (ngModelChange)=\"\n defaultValueChange($event, formField!.templateOptions!.selectType)\n \"\n nzAllowClear\n [nzMode]=\"\n formField!.templateOptions!.selectType === 'multiple'\n ? 'multiple'\n : 'default'\n \"\n [nzMaxTagCount]=\"3\"\n nzPlaceHolder=\"\u8BF7\u9009\u62E9\u9ED8\u8BA4\u503C\"\n >\n <nz-option\n *ngFor=\"let i of defaultList\"\n [nzValue]=\"i.value\"\n [nzLabel]=\"i.label\"\n ></nz-option>\n </nz-select>\n </div>\n\n <div class=\"control\" *ngIf=\"formField.type === 'datetime'\">\n <ng-container [ngSwitch]=\"formField!.templateOptions!.type\">\n <ng-container *ngSwitchCase=\"'datetime'\">\n <nz-date-picker\n nzShowTime\n [nzShowTime]=\"{ nzFormat: 'HH:mm' }\"\n nzFormat=\"yyyy/MM/dd HH:mm\"\n [(ngModel)]=\"formField.defaultValue\"\n (ngModelChange)=\"dateTimeChange($event, 'datetime')\"\n ></nz-date-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <nz-date-picker\n nzFormat=\"yyyy/MM/dd\"\n [(ngModel)]=\"formField.defaultValue\"\n (ngModelChange)=\"dateTimeChange($event, 'date')\"\n ></nz-date-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"'year'\">\n <nz-year-picker\n nzFormat=\"yyyy\"\n [(ngModel)]=\"formField.defaultValue\"\n (ngModelChange)=\"dateTimeChange($event, 'year')\"\n ></nz-year-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"'month'\">\n <nz-month-picker\n nzFormat=\"yyyy/MM\"\n [(ngModel)]=\"formField.defaultValue\"\n (ngModelChange)=\"dateTimeChange($event, 'month')\"\n ></nz-month-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"'time'\">\n <nz-time-picker\n nzFormat=\"HH:mm\"\n [(ngModel)]=\"formField.defaultValue\"\n nzClearText=\"\"\n ></nz-time-picker>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <nz-date-picker\n nzShowTime\n [nzShowTime]=\"{ nzFormat: 'HH:mm' }\"\n nzFormat=\"yyyy/MM/dd HH:mm\"\n [(ngModel)]=\"formField.defaultValue\"\n ></nz-date-picker>\n </ng-container>\n </ng-container>\n </div>\n </div>\n\n <div class=\"content\" *ngIf=\"formField.type === 'select'\">\n <div class=\"label\">\u9690\u85CF\u9009\u9879\u503C</div>\n <div class=\"control\">\n <nz-select\n [(ngModel)]=\"hideSelect\"\n (ngModelChange)=\"hideSelectChange($event)\"\n nzAllowClear\n nzMode=\"multiple\"\n [nzMaxTagCount]=\"3\"\n nzPlaceHolder=\"\u8BF7\u9009\u62E9\u9690\u85CF\u9009\u9879\u503C\"\n >\n <nz-option\n *ngFor=\"let i of defaultList\"\n [nzValue]=\"i.value\"\n [nzLabel]=\"i.label\"\n ></nz-option>\n </nz-select>\n </div>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"formField.type === 'text' || formField.type === 'textarea'\"\n >\n <div class=\"content\">\n <div class=\"label\">\u6700\u5927\u957F\u5EA6</div>\n <div class=\"control\">\n <nz-input-number\n [nzMin]=\"limit!['minLength']\"\n [nzMax]=\"limit!['maxLength']\"\n [nzStep]=\"1\"\n [nzPrecision]=\"0\"\n [(ngModel)]=\"formField!.templateOptions!['maxLength']\"\n >\n </nz-input-number>\n </div>\n </div>\n <div class=\"content\">\n <div class=\"label\">\u6700\u5C0F\u957F\u5EA6</div>\n <div class=\"control\">\n <nz-input-number\n [nzMin]=\"0\"\n [nzStep]=\"1\"\n [nzPrecision]=\"0\"\n [nzMin]=\"limit!['minLength']\"\n [nzMax]=\"limit!['maxLength']\"\n [(ngModel)]=\"formField!.templateOptions!['minLength']\"\n ></nz-input-number>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"formField.type === 'numbers'\">\n <div class=\"content\">\n <div class=\"label\">\u6700\u5927\u503C</div>\n <div class=\"control\">\n <nz-input-number\n [nzStep]=\"1\"\n [nzPrecision]=\"formField!.templateOptions!['precision']\"\n [nzMin]=\"nzMaxMin()\"\n [nzMax]=\"nzMaxMax()\"\n [(ngModel)]=\"formField!.templateOptions!['max']\"\n >\n </nz-input-number>\n </div>\n </div>\n <div class=\"content\">\n <div class=\"label\">\u6700\u5C0F\u503C</div>\n <div class=\"control\">\n <nz-input-number\n [nzStep]=\"1\"\n [nzPrecision]=\"formField!.templateOptions!['precision']\"\n [nzMin]=\"nzMinMin()\"\n [nzMax]=\"nzMinMax()\"\n [(ngModel)]=\"formField!.templateOptions!['min']\"\n >\n </nz-input-number>\n </div>\n </div>\n <div\n class=\"content\"\n *ngIf=\"formField!.primitiveProperty!['precision'] != 0\"\n >\n <div class=\"label\">\u7CBE\u5EA6</div>\n <div class=\"control\">\n <nz-input-number\n [nzMin]=\"0\"\n [nzStep]=\"1\"\n [nzPrecision]=\"0\"\n [nzMax]=\"formField!.primitiveProperty!['precision']\"\n [(ngModel)]=\"formField!.templateOptions!['precision']\"\n >\n </nz-input-number>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"formField!.editProperty!.hide !== false\">\n <div class=\"content\">\n <div class=\"label\">\u662F\u5426\u9690\u85CF</div>\n <div class=\"control\">\n <nz-switch\n [(ngModel)]=\"formField.hide\"\n (ngModelChange)=\"fieldHideChange($event)\"\n nzCheckedChildren=\"\u662F\"\n nzUnCheckedChildren=\"\u5426\"\n >\n </nz-switch>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"formField.type === 'htmlcontent'\">\n <div class=\"content\">\n <div class=\"label\">\u662F\u5426\u4F5C\u4E3A\u5BFC\u822A</div>\n <div class=\"control\">\n <nz-switch\n [(ngModel)]=\"formField!.templateOptions!.isNav\"\n nzCheckedChildren=\"\u662F\"\n nzUnCheckedChildren=\"\u5426\"\n >\n </nz-switch>\n </div>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"\n formField.type != 'repeat' &&\n formField.type != 'tabular' &&\n formField.type != 'line' &&\n formField.type != 'htmlcontent' &&\n formField.type != 'button' &&\n formField.type != 'anchor'\n \"\n >\n <div class=\"content\">\n <div class=\"label\">\u662F\u5426\u5FC5\u586B</div>\n <div class=\"control\">\n <nz-switch\n [(ngModel)]=\"formField!.templateOptions!['required']\"\n nzCheckedChildren=\"\u662F\"\n nzUnCheckedChildren=\"\u5426\"\n >\n </nz-switch>\n </div>\n </div>\n <div class=\"content\">\n <div class=\"label\">\u662F\u5426\u53EF\u7F16\u8F91</div>\n <div class=\"control\">\n <nz-switch\n [(ngModel)]=\"formField!.editor\"\n nzCheckedChildren=\"\u662F\"\n nzUnCheckedChildren=\"\u5426\"\n >\n </nz-switch>\n </div>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"\n formField.type != 'repeat' &&\n formField.type != 'tabular' &&\n formField.type != 'line' &&\n formField.type != 'htmlcontent' &&\n formField.type != 'button' &&\n formField.type != 'anchor'\n \"\n >\n <div class=\"content\">\n <div class=\"label\">\u8BF4\u660Etips</div>\n <div class=\"control\">\n <input\n nz-input\n placeholder=\"\u8BF4\u660Etips\"\n [(ngModel)]=\"formField!.templateOptions!.tips\"\n />\n <!-- <demo-text-en\n [langConfig]=\"langConfig\"\n [labelI18n]=\"formField!.templateOptions!.tipsI18n\"\n (inputChange)=\"tipsChange($event)\"\n ></demo-text-en> -->\n </div>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"formField.type == 'repeat' || formField.type == 'tabular'\"\n >\n <div class=\"content\">\n <div class=\"label\">\u6700\u591A\u6761\u6570</div>\n <div class=\"control\">\n <nz-input-number\n [nzMin]=\"0\"\n [nzStep]=\"1\"\n [nzPrecision]=\"0\"\n [(ngModel)]=\"formField!.templateOptions!['maxLength']\"\n >\n </nz-input-number>\n </div>\n </div>\n <div\n class=\"content\"\n *ngIf=\"formField.type == 'repeat' || formField.type == 'tabular'\"\n >\n <div class=\"label\">\u663E\u793A\u65B9\u5F0F</div>\n <div class=\"control\">\n <nz-select\n nzPlaceHolder=\"\u8BF7\u9009\u62E9\u663E\u793A\u65B9\u5F0F\"\n [(ngModel)]=\"formField!.templateOptions!['type']\"\n >\n <nz-option [nzLabel]=\"'\u5757\u72B6'\" [nzValue]=\"'card'\"></nz-option>\n <nz-option [nzLabel]=\"'\u5217\u8868'\" [nzValue]=\"'table'\"></nz-option>\n </nz-select>\n </div>\n </div>\n </ng-container>\n <!-- <div class=\"content\">\n <div class=\"label\">\n \u5360\u4F4D\u7B26\n </div>\n <div class=\"control\">\n <input nz-input [(ngModel)]=\"formField.templateOptions['placeholder']\" readonly disabled />\n </div>\n </div>\n <div class=\"content textarea\">\n <div class=\"label\">\n \u63D0\u793A\u4FE1\u606F\n </div>\n <div class=\"control\">\n <textarea nz-input rows=\"3\" [(ngModel)]=\"formField.templateOptions['tips']\" readonly disabled> </textarea>\n </div>\n </div> -->\n <ng-container\n *ngIf=\"formField.type == 'htmlcontent' || formField.type == 'anchor'\"\n >\n <div class=\"content textarea\">\n <div class=\"label\">\u6587\u672C\u63CF\u8FF0</div>\n <div class=\"control\">\n <textarea\n nz-input\n rows=\"3\"\n wrap=\"hard\"\n [(ngModel)]=\"formField!.templateOptions!['description']\"\n ></textarea>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"\n formField.type != 'repeat' &&\n formField.type != 'tabular' &&\n formField.type != 'line' &&\n formField.type != 'htmlcontent' &&\n formField.type != 'anchor' &&\n formField.type != 'upload'\n \"\n >\n <div class=\"content textarea\">\n <div class=\"label\">\u6B63\u5219\u8868\u8FBE\u5F0F</div>\n <div class=\"control\">\n <textarea\n nz-input\n rows=\"3\"\n [(ngModel)]=\"formField!.templateOptions!['pattern']\"\n >\n </textarea>\n </div>\n </div>\n </ng-container>\n</div>\n<div class=\"vxbutton\" style=\"display: none\">\n <button id=\"btn-basic-save\" form=\"kreform\">SAVE</button>\n</div>\n", providers: [KreSetFormFieldService], styles: [":host ::ng-deep .builder-content{width:100%;padding:18px 0 0 12px;display:inline-block}:host ::ng-deep .builder-content .content{width:50%;float:left;margin:0 0 15px;min-height:45px;display:flex}:host ::ng-deep .builder-content .content .label{width:120px;text-align:right;padding:5px 10px 0 0}:host ::ng-deep .builder-content .content .control{flex:1;padding:0 15px 0 0}:host ::ng-deep .builder-content .content .control .ant-input-number,:host ::ng-deep .builder-content .content .control nz-select{width:100%!important}:host ::ng-deep .builder-content .content .color-rect{width:20px;height:20px}:host ::ng-deep .builder-content .textarea{width:100%}"] }] } ]; /** @nocollapse */ KreFormDSField.ctorParameters = () => [ { type: NzMessageService }, { type: FormBuilder }, { type: KreFormCommonService }, { type: KreSetFormFieldService }, { type: ElementRef } ]; KreFormDSField.propDecorators = { langConfig: [{ type: Input }], field: [{ type: Input }], modalType: [{ type: Input }], options: [{ type: Input }] }; if (false) { /** @type {?} */ KreFormDSField.prototype.formField; /** @type {?} */ KreFormDSField.prototype.fontSizeList; /** @type {?} */ KreFormDSField.prototype.defaultList; /** @type {?} */ KreFormDSField.prototype.defaultValue; /** @type {?} */ KreFormDSField.prototype.hideSelect; /** @type {?} */ KreFormDSField.prototype._langConfig; /** @type {?} */ KreFormDSField.prototype.limit; /** @type {?} */ KreFormDSField.prototype.modalType; /** @type {?} */ KreFormDSField.prototype.form; /** @type {?} */ KreFormDSField.prototype.model; /** @type {?} */ KreFormDSField.prototype.formFildConfig; /** @type {?} */ KreFormDSField.prototype.globalSubmit; /** @type {?} */ KreFormDSField.prototype.tmp; /** @type {?} */ KreFormDSField.prototype.message; /** * @type {?} * @private */ KreFormDSField.prototype.fb; /** @type {?} */ KreFormDSField.prototype.kreFormCommonService; /** @type {?} */ KreFormDSField.prototype.kreSetFieldService; /** * @type {?} * @private */ KreFormDSField.prototype.el; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGtyZS1mb3JtL2FudC8iLCJzb3VyY2VzIjpbImxpYi9kZXNpZ24vZmllbGQvaW5kZXguY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFLTCxVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUNMLFNBQVMsRUFDVCxXQUFXLEdBSVosTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBT0wsb0JBQW9CLEdBR3JCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQzs7TUFDNUIsTUFBTSxHQUFHLE9BQU87QUFPdEIsTUFBTSxPQUFPLGNBQWM7Ozs7Ozs7O0lBd096QixZQUNTLE9BQXlCLEVBQ3hCLEVBQWUsRUFDaEIsb0JBQTBDLEVBQzFDLGtCQUEwQyxFQUN6QyxFQUFjO1FBSmYsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFDeEIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNoQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBd0I7UUFDekMsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQTVPeEIsY0FBUyxHQUFRO1lBQ2YsR0FBRyxFQUFFLEVBQUU7WUFDUCxJQUFJLEVBQUUsRUFBRTtZQUNSLGVBQWUsRUFBRTtnQkFDZixJQUFJLEVBQUUsSUFBSTtnQkFDVixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVB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