@kre-form/ant
Version:
211 lines (208 loc) • 17.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component } from "@angular/core";
import { FieldType } from "@kre-form/core";
import * as _ from "lodash";
import { KreFormAntService } from "../tools/service";
import { NzModalService } from "ng-zorro-antd/modal";
import { KreDialogService } from "../service/dialog.service";
import { KreFormTree } from "../components/tree/index.component";
import { KreFormEmployee } from "../components/employee/index.component";
import { KreFormOrg } from "../components/org/index.component";
import { KreFormPostion } from "../components/postion/index.component";
import { KreFormArea } from "../components/area/index.component";
export class KreFormFieldLookUp extends FieldType {
/**
* @param {?} dyService
* @param {?} modal
* @param {?} kreDialogService
*/
constructor(dyService, modal, kreDialogService) {
super();
this.modal = modal;
this.kreDialogService = kreDialogService;
this.service = dyService;
}
/**
* @param {?} sign
* @return {?}
*/
fieldOperational(sign) {
this.service.fieldOperational(sign, this.field);
}
/**
* @return {?}
*/
lookup() {
/** @type {?} */
let template;
/** @type {?} */
let type = _.get(this.field, "templateOptions.type");
/** @type {?} */
let para = {
fieldConfig: this.field,
tag: false,
};
switch (type) {
case "tree":
template = KreFormTree;
para.tag = true;
break;
break;
case "employee":
template = KreFormEmployee;
break;
case "organizational":
template = KreFormOrg;
para.tag = true;
break;
case "position":
template = KreFormPostion;
break;
case "area":
template = KreFormArea;
break;
default:
break;
}
if (template) {
this.kreDialogService.CreateModelDialog({
nzTitle: "选择 - " + this.to["label"],
size: "large",
nzContent: template,
}, para, (/**
* @param {?} instance
* @param {?} modal
* @return {?}
*/
(instance, modal) => {
/** @type {?} */
let res = instance.selectedNode;
if (this.model != undefined &&
this.model != null &&
this.key != undefined &&
this.key != null) {
if (res != null && res.length > 0) {
this.model[this.key] = res;
this.formControl.markAsTouched();
}
else {
this.model[this.key] = [];
this.formControl.markAsTouched();
}
}
else {
this.model[this.key] = res;
this.formControl.markAsTouched();
}
modal.destroy();
}));
}
}
/**
* @return {?}
*/
removeValue() {
if (this.model != undefined &&
this.model != null &&
this.key != undefined &&
this.key != null &&
this.model[this.key] != undefined &&
this.model[this.key] != null) {
this.model[this.key] = [];
this.formControl.markAsTouched();
}
}
}
KreFormFieldLookUp.decorators = [
{ type: Component, args: [{
selector: "krefield-lookup",
template: `
<ng-container *ngIf="formStatus !== 0">
<div class="fieldOperational">
<div class="fieldcheckbox">
<label
*ngIf="isCheckboxShow == true"
nz-checkbox
[(ngModel)]="field.checked"
></label>
</div>
<div class="fieldControl">
<div class="label">
<span *ngIf="to.required">*</span>{{ to.label }}
</div>
<div class="control">
<input nz-input disabled />
</div>
<kreform-fieldbutton
*ngIf="isCheckboxShow == true"
[field]="field"
(buttonClick)="fieldOperational($event)"
></kreform-fieldbutton>
</div>
</div>
</ng-container>
<ng-container *ngIf="formStatus === 0">
<ng-container *ngIf="editor === true">
<nz-input-group [nzSuffix]="suffixTemplate">
<input
nz-input
[class.is-invalid]="showError"
[placeholder]="placeHolder"
[value]="textLookUp"
readonly="true"
/>
</nz-input-group>
<!-- <div class="tips">
<i
class="icon-bangzhu"
[nzTooltipTitle]="tips"
nzTooltipPlacement="top"
nz-tooltip
*ngIf="tips != ''"
></i>
</div> -->
<nz-input-group [nzSuffix]="suffixTemplate" style="display:none;">
<input
nz-input
[formControl]="formControl"
[kreFormAttributes]="field"
[class.is-invalid]="showError"
readonly="true"
/></nz-input-group>
</ng-container>
<div class="fieldtext" *ngIf="editor === false">{{ textLookUp }}</div>
</ng-container>
<ng-template #suffixTemplate>
<i (click)="lookup()" class="icon-tianjin"></i>
<!--<i
nz-icon
nzType="close"
nzTheme="outline"
(click)="removeValue()"
*ngIf="textLookUp != null && textLookUp != ''"
></i>-->
</ng-template>
`
}] }
];
/** @nocollapse */
KreFormFieldLookUp.ctorParameters = () => [
{ type: KreFormAntService },
{ type: NzModalService },
{ type: KreDialogService }
];
if (false) {
/** @type {?} */
KreFormFieldLookUp.prototype.service;
/**
* @type {?}
* @private
*/
KreFormFieldLookUp.prototype.modal;
/** @type {?} */
KreFormFieldLookUp.prototype.kreDialogService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGtyZS1mb3JtL2FudC8iLCJzb3VyY2VzIjpbImxpYi90eXBlcy9sb29rdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBMkVqRSxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsU0FBUzs7Ozs7O0lBRy9DLFlBQ0UsU0FBNEIsRUFDcEIsS0FBcUIsRUFDdEIsZ0JBQWtDO1FBRXpDLEtBQUssRUFBRSxDQUFDO1FBSEEsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUd6QyxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztJQUMzQixDQUFDOzs7OztJQUVELGdCQUFnQixDQUFDLElBQVk7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFD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SUFDSCxDQUFDOzs7WUF2S0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUVUO2FBQ0Y7Ozs7WUFsRlEsaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxnQkFBZ0I7Ozs7SUFrRnZCLHFDQUFhOzs7OztJQUlYLG1DQUE2Qjs7SUFDN0IsOENBQXlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gXCJAa3JlLWZvcm0vY29yZVwiO1xuaW1wb3J0ICogYXMgXyBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQgeyBLcmVGb3JtQW50U2VydmljZSB9IGZyb20gXCIuLi90b29scy9zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOek1vZGFsU2VydmljZSB9IGZyb20gXCJuZy16b3Jyby1hbnRkL21vZGFsXCI7XG5pbXBvcnQgeyBLcmVEaWFsb2dTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2UvZGlhbG9nLnNlcnZpY2VcIjtcblxuaW1wb3J0IHsgS3JlRm9ybVRyZWUgfSBmcm9tIFwiLi4vY29tcG9uZW50cy90cmVlL2luZGV4LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgS3JlRm9ybUVtcGxveWVlIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvZW1wbG95ZWUvaW5kZXguY29tcG9uZW50XCI7XG5pbXBvcnQgeyBLcmVGb3JtT3JnIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvb3JnL2luZGV4LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgS3JlRm9ybVBvc3Rpb24gfSBmcm9tIFwiLi4vY29tcG9uZW50cy9wb3N0aW9uL2luZGV4LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgS3JlRm9ybUFyZWEgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9hcmVhL2luZGV4LmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwia3JlZmllbGQtbG9va3VwXCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm1TdGF0dXMgIT09IDBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZE9wZXJhdGlvbmFsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZGNoZWNrYm94XCI+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAqbmdJZj1cImlzQ2hlY2tib3hTaG93ID09IHRydWVcIlxuICAgICAgICAgICAgbnotY2hlY2tib3hcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmllbGQuY2hlY2tlZFwiXG4gICAgICAgICAgPjwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRDb250cm9sXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInRvLnJlcXVpcmVkXCI+Kjwvc3Bhbj57eyB0by5sYWJlbCB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sXCI+XG4gICAgICAgICAgICA8aW5wdXQgbnotaW5wdXQgZGlzYWJsZWQgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8a3JlZm9ybS1maWVsZGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJpc0NoZWNrYm94U2hvdyA9PSB0cnVlXCJcbiAgICAgICAgICAgIFtmaWVsZF09XCJmaWVsZFwiXG4gICAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwiZmllbGRPcGVyYXRpb25hbCgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9rcmVmb3JtLWZpZWxkYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm1TdGF0dXMgPT09IDBcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlZGl0b3IgPT09IHRydWVcIj5cbiAgICAgICAgPG56LWlucHV0LWdyb3VwIFtuelN1ZmZpeF09XCJzdWZmaXhUZW1wbGF0ZVwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgbnotaW5wdXRcbiAgICAgICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cInNob3dFcnJvclwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInRleHRMb29rVXBcIlxuICAgICAgICAgICAgcmVhZG9ubHk9XCJ0cnVlXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L256LWlucHV0LWdyb3VwPlxuICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJ0aXBzXCI+XG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1iYW5nemh1XCJcbiAgICAgICAgICAgIFtuelRvb2x0aXBUaXRsZV09XCJ0aXBzXCJcbiAgICAgICAgICAgIG56VG9vbHRpcFBsYWNlbWVudD1cInRvcFwiXG4gICAgICAgICAgICBuei10b29sdGlwXG4gICAgICAgICAgICAqbmdJZj1cInRpcHMgIT0gJydcIlxuICAgICAgICAgID48L2k+XG4gICAgICAgIDwvZGl2PiAtLT5cblxuICAgICAgICA8bnotaW5wdXQtZ3JvdXAgW256U3VmZml4XT1cInN1ZmZpeFRlbXBsYXRlXCIgc3R5bGU9XCJkaXNwbGF5Om5vbmU7XCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBuei1pbnB1dFxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICAgICAgICAgIFtrcmVGb3JtQXR0cmlidXRlc109XCJmaWVsZFwiXG4gICAgICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJzaG93RXJyb3JcIlxuICAgICAgICAgICAgcmVhZG9ubHk9XCJ0cnVlXCJcbiAgICAgICAgLz48L256LWlucHV0LWdyb3VwPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZHRleHRcIiAqbmdJZj1cImVkaXRvciA9PT0gZmFsc2VcIj57eyB0ZXh0TG9va1VwIH19PC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNzdWZmaXhUZW1wbGF0ZT5cbiAgICAgIDxpIChjbGljayk9XCJsb29rdXAoKVwiIGNsYXNzPVwiaWNvbi10aWFuamluXCI+PC9pPlxuICAgICAgPCEtLTxpXG4gICAgICAgIG56LWljb25cbiAgICAgICAgbnpUeXBlPVwiY2xvc2VcIlxuICAgICAgICBuelRoZW1lPVwib3V0bGluZVwiXG4gICAgICAgIChjbGljayk9XCJyZW1vdmVWYWx1ZSgpXCJcbiAgICAgICAgKm5nSWY9XCJ0ZXh0TG9va1VwICE9IG51bGwgJiYgdGV4dExvb2tVcCAhPSAnJ1wiXG4gICAgICA+PC9pPi0tPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIEtyZUZvcm1GaWVsZExvb2tVcCBleHRlbmRzIEZpZWxkVHlwZSB7XG4gIHNlcnZpY2U6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkeVNlcnZpY2U6IEtyZUZvcm1BbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9kYWw6IE56TW9kYWxTZXJ2aWNlLFxuICAgIHB1YmxpYyBrcmVEaWFsb2dTZXJ2aWNlOiBLcmVEaWFsb2dTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zZXJ2aWNlID0gZHlTZXJ2aWNlO1xuICB9XG5cbiAgZmllbGRPcGVyYXRpb25hbChzaWduOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlcnZpY2UuZmllbGRPcGVyYXRpb25hbChzaWduLCB0aGlzLmZpZWxkKTtcbiAgfVxuXG4gIGxvb2t1cCgpIHtcbiAgICBsZXQgdGVtcGxhdGU6IGFueTtcbiAgICBsZXQgdHlwZSA9IF8uZ2V0KHRoaXMuZmllbGQsIFwidGVtcGxhdGVPcHRpb25zLnR5cGVcIik7XG4gICAgbGV0IHBhcmEgPSB7XG4gICAgICBmaWVsZENvbmZpZzogdGhpcy5maWVsZCxcbiAgICAgIHRhZzogZmFsc2UsXG4gICAgfTtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgXCJ0cmVlXCI6XG4gICAgICAgIHRlbXBsYXRlID0gS3JlRm9ybVRyZWU7XG4gICAgICAgIHBhcmEudGFnID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImVtcGxveWVlXCI6XG4gICAgICAgIHRlbXBsYXRlID0gS3JlRm9ybUVtcGxveWVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJvcmdhbml6YXRpb25hbFwiOlxuICAgICAgICB0ZW1wbGF0ZSA9IEtyZUZvcm1Pcmc7XG4gICAgICAgIHBhcmEudGFnID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwicG9zaXRpb25cIjpcbiAgICAgICAgdGVtcGxhdGUgPSBLcmVGb3JtUG9zdGlvbjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiYXJlYVwiOlxuICAgICAgICB0ZW1wbGF0ZSA9IEtyZUZvcm1BcmVhO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBpZiAodGVtcGxhdGUpIHtcbiAgICAgIHRoaXMua3JlRGlhbG9nU2VydmljZS5DcmVhdGVNb2RlbERpYWxvZyhcbiAgICAgICAge1xuICAgICAgICAgIG56VGl0bGU6IFwi6YCJ5oupIC0gXCIgKyB0aGlzLnRvW1wibGFiZWxcIl0sXG4gICAgICAgICAgc2l6ZTogXCJsYXJnZVwiLFxuICAgICAgICAgIG56Q29udGVudDogdGVtcGxhdGUsXG4gICAgICAgIH0sXG4gICAgICAgIHBhcmEsXG4gICAgICAgIChpbnN0YW5jZTogYW55LCBtb2RhbDogYW55KSA9PiB7XG4gICAgICAgICAgbGV0IHJlczogYW55ID0gaW5zdGFuY2Uuc2VsZWN0ZWROb2RlO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMubW9kZWwgIT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICB0aGlzLm1vZGVsICE9IG51bGwgJiZcbiAgICAgICAgICAgIHRoaXMua2V5ICE9IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgdGhpcy5rZXkgIT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgaWYgKHJlcyAhPSBudWxsICYmIHJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIHRoaXMubW9kZWxbdGhpcy5rZXldID0gcmVzO1xuXG4gICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5tb2RlbFt0aGlzLmtleV0gPSBbXTtcblxuICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tb2RlbFt0aGlzLmtleV0gPSByZXM7XG5cbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtb2RhbC5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlVmFsdWUoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5tb2RlbCAhPSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMubW9kZWwgIT0gbnVsbCAmJlxuICAgICAgdGhpcy5rZXkgIT0gdW5kZWZpbmVkICYmXG4gICAgICB0aGlzLmtleSAhPSBudWxsICYmXG4gICAgICB0aGlzLm1vZGVsW3RoaXMua2V5XSAhPSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMubW9kZWxbdGhpcy5rZXldICE9IG51bGxcbiAgICApIHtcbiAgICAgIHRoaXMubW9kZWxbdGhpcy5rZXldID0gW107XG5cbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgIH1cbiAgfVxufVxuIl19