UNPKG

@kre-form/ant

Version:

252 lines 20.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, Input, Output, EventEmitter, ViewChild, ChangeDetectorRef } from "@angular/core"; import * as _ from "lodash"; import { DataService } from "../../service/data.service"; export class KreFormOrg { /** * @param {?} dataService * @param {?} cd */ constructor(dataService, cd) { this.dataService = dataService; this.cd = cd; this.fieldConfig = {}; this.tag = true; this.treeChangeEvent = new EventEmitter(); //组织数据 this.data = []; this.dimension = true; this.selectData = []; this.curOrgId = ""; this.orgData = []; this.treeData = []; this.controlid = ""; this.treeid = ""; this.selectedKey = []; this.skeletonStatus = 0; } //选择节点 /** * @return {?} */ get selectedNode() { return _.cloneDeep(this.selectData); } /** * @return {?} */ get selectType() { /** @type {?} */ let res = ""; if (this.fieldConfig != undefined && this.fieldConfig != null && this.fieldConfig.templateOptions != undefined && this.fieldConfig.templateOptions != null && this.fieldConfig.templateOptions.selectType != undefined) { res = this.fieldConfig.templateOptions.selectType; } return res; } /** * @return {?} */ ngOnInit() { /** @type {?} */ let orgControl = _.get(this.fieldConfig, "templateOptions.controlid"); if (orgControl != undefined && orgControl != null && orgControl != "") { this.controlid = _.get(this.fieldConfig, "templateOptions.controlid"); } this.getOrgData(); } /** * @return {?} */ ngAfterViewInit() { this.cd.detectChanges(); } /** * @param {?} changes * @return {?} */ ngOnChanges(changes) { } //获取组织数据集 /** * @return {?} */ getOrgData() { this.dataService.getSysCtrOrgTree().subscribe((/** * @param {?} res * @return {?} */ (res) => { this.data = res; if (this.data != null && this.data.length > 0) { if (this.data[0].children != undefined) { this.curOrgId = this.data[0].key; this.treeData = this.data[0].children; } } this.getTreeSelectData(); })); } /** * @return {?} */ getTreeSelectData() { if (this.fieldConfig != null && this.fieldConfig.model != undefined && this.fieldConfig.model != null && this.fieldConfig.key != undefined && this.fieldConfig.key != null && this.fieldConfig.model[this.fieldConfig.key] != undefined && this.fieldConfig.model[this.fieldConfig.key] != null) { this.selectData = _.cloneDeep(this.fieldConfig.model[this.fieldConfig.key]); } } /** * @param {?} event * @return {?} */ orgChange(event) { this.data.forEach((/** * @param {?} item * @return {?} */ (item) => { if (item.key === event) { this.treeData = item.children; } })); this.selectData.forEach((/** * @param {?} item * @return {?} */ (item) => { this.setTreeChecked(this.data, item.value); })); } /** * @param {?} event * @return {?} */ treeChange(event) { if (this.dimension) { this.data.forEach((/** * @param {?} item * @return {?} */ (item) => { this.setTreeUnChecked(item.children, event.delete); })); } this.treeChangeEvent.emit(this.selectData); } /** * @param {?} tree * @param {?} key * @return {?} */ setTreeUnChecked(tree, key) { if (tree && tree.length > 0) { tree.forEach((/** * @param {?} item * @return {?} */ (item) => { if (item.key === key) { item.checked = false; } else { if (item.children && item.children.length > 0) { this.setTreeUnChecked(item.children, key); } } })); } return; } /** * @param {?} tree * @param {?} key * @return {?} */ setTreeChecked(tree, key) { if (tree && tree.length > 0) { tree.forEach((/** * @param {?} item * @return {?} */ (item) => { if (item.key === key) { item.checked = true; } else { if (item.children && item.children.length > 0) { this.setTreeChecked(item.children, key); } } })); } return; } } KreFormOrg.decorators = [ { type: Component, args: [{ selector: "kreform-org", template: "<div class=\"org-select\" *ngIf=\"dimension==true\">\n <span>\u7EF4\u5EA6\uFF1A</span>\n <nz-select [(ngModel)]=\"curOrgId\" (ngModelChange)=\"orgChange($event)\">\n <ng-container *ngFor=\"let item of data;\">\n <nz-option [nzValue]=\"item.key\" [nzLabel]=\"item.title\"></nz-option>\n </ng-container>\n </nz-select>\n</div>\n<div class=\"org-tree\"> \n <kreform-private-tree [data]=\"treeData\" [selectType]=\"selectType\" [selectData]=\"selectData\" [tag]=\"tag\" (treeChangeEvent)=\"treeChange($event)\"></kreform-private-tree>\n</div>", providers: [DataService], styles: [":host ::ng-deep .org-select{min-width:500px;padding:15px 0 0 15px;font-size:12px}:host ::ng-deep .org-select nz-select{min-width:250px}:host ::ng-deep .org-select .ant-select{font-size:12px}:host ::ng-deep .org-select .ant-select-dropdown{font-size:12px}:host ::ng-deep .org-tree{height:calc(100% - 47px);padding:0 0 0 10px}:host ::ng-deep .org-tree .tree-item{padding-left:0!important}:host ::ng-deep .org-tree .tree-tag{margin-top:-47px}"] }] } ]; /** @nocollapse */ KreFormOrg.ctorParameters = () => [ { type: DataService }, { type: ChangeDetectorRef } ]; KreFormOrg.propDecorators = { fieldConfig: [{ type: Input }], tag: [{ type: Input }], treeChangeEvent: [{ type: Output }], nzTreeComponent: [{ type: ViewChild, args: ["nzTreeComponent", { static: false },] }] }; if (false) { /** @type {?} */ KreFormOrg.prototype.fieldConfig; /** @type {?} */ KreFormOrg.prototype.tag; /** @type {?} */ KreFormOrg.prototype.treeChangeEvent; /** @type {?} */ KreFormOrg.prototype.data; /** @type {?} */ KreFormOrg.prototype.dimension; /** @type {?} */ KreFormOrg.prototype.selectData; /** @type {?} */ KreFormOrg.prototype.curOrgId; /** @type {?} */ KreFormOrg.prototype.orgData; /** @type {?} */ KreFormOrg.prototype.treeData; /** @type {?} */ KreFormOrg.prototype.controlid; /** @type {?} */ KreFormOrg.prototype.treeid; /** @type {?} */ KreFormOrg.prototype.nzTreeComponent; /** @type {?} */ KreFormOrg.prototype.selectedKey; /** @type {?} */ KreFormOrg.prototype.skeletonStatus; /** @type {?} */ KreFormOrg.prototype.dataService; /** * @type {?} * @private */ KreFormOrg.prototype.cd; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGtyZS1mb3JtL2FudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL29yZy9pbmRleC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxFQUlULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQVF2QixPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQVE1QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFRekQsTUFBTSxPQUFPLFVBQVU7Ozs7O0lBNENyQixZQUFtQixXQUF3QixFQUFVLEVBQXFCO1FBQXZELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUEzQ2pFLGdCQUFXLEdBQXVCLEVBQUUsQ0FBQztRQUNyQyxRQUFHLEdBQVksSUFBSSxDQUFDO1FBQ25CLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQzs7UUFHcEQsU0FBSSxHQUFnQixFQUFFLENBQUM7UUFDdkIsY0FBUyxHQUFZLElBQUksQ0FBQztRQUMxQixlQUFVLEdBQW1CLEVBQUUsQ0FBQztRQUNoQyxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBcUJ0QixZQUFPLEdBQWUsRUFBRSxDQUFDO1FBQ3pCLGFBQVEsR0FBZ0IsRUFBRSxDQUFDO1FBRTNCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDdkIsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQU1wQixnQkFBVyxHQUFVLEVBQUUsQ0FBQztRQUN4QixtQkFBYyxHQUFXLENBQUMsQ0FBQztJQUdtRCxDQUFDOzs7OztJQWhDL0UsSUFBSSxZQUFZO1FBQ2QsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxDQUFDOzs7O0lBRUQs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OztJQUdmLGlDQUErQjs7Ozs7SUFBRSx3QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIE9uSW5pdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBWaWV3Q2hpbGQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgZm9yd2FyZFJlZixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgTnpUcmVlQ29tcG9uZW50IH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvdHJlZVwiO1xuaW1wb3J0IHtcbiAgRmllbGRXcmFwcGVyLFxuICBLcmVGb3JtRmllbGRDb25maWcsXG4gIEtyZVRhYmxlRmllbGRDb25maWdcbn0gZnJvbSBcIkBrcmUtZm9ybS9jb3JlXCI7XG5pbXBvcnQgKiBhcyBfIGZyb20gXCJsb2Rhc2hcIjtcblxuaW1wb3J0IHtcbiAgSVNlbGVjdGVkTm9kZSxcbiAgSU9yZ0RhdGEsXG4gIElUcmVlRGF0YSxcbiAgSUNoZWNrZWRUcmVlXG59IGZyb20gXCIuLi8uLi90b29scy91dGlsXCI7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RhdGEuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwia3JlZm9ybS1vcmdcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vaW5kZXguY29tcG9uZW50Lmxlc3NcIl0sXG4gIHByb3ZpZGVyczogW0RhdGFTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBLcmVGb3JtT3JnIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZmllbGRDb25maWc6IEtyZUZvcm1GaWVsZENvbmZpZyA9IHt9O1xuICBASW5wdXQoKSB0YWc6IGJvb2xlYW4gPSB0cnVlO1xuICBAT3V0cHV0KCkgdHJlZUNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLy/nu4Tnu4fmlbDmja5cbiAgZGF0YTogSVRyZWVEYXRhW10gPSBbXTtcbiAgZGltZW5zaW9uOiBib29sZWFuID0gdHJ1ZTtcbiAgc2VsZWN0RGF0YTogSUNoZWNrZWRUcmVlW10gPSBbXTtcbiAgY3VyT3JnSWQ6IHN0cmluZyA9IFwiXCI7XG5cbiAgLy/pgInmi6noioLngrlcbiAgZ2V0IHNlbGVjdGVkTm9kZSgpIHtcbiAgICByZXR1cm4gXy5jbG9uZURlZXAodGhpcy5zZWxlY3REYXRhKTtcbiAgfVxuXG4gIGdldCBzZWxlY3RUeXBlKCkge1xuICAgIGxldCByZXMgPSBcIlwiO1xuICAgIGlmIChcbiAgICAgIHRoaXMuZmllbGRDb25maWcgIT0gdW5kZWZpbmVkICYmXG4gICAgICB0aGlzLmZpZWxkQ29uZmlnICE9IG51bGwgJiZcbiAgICAgIHRoaXMuZmllbGRDb25maWcudGVtcGxhdGVPcHRpb25zICE9IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5maWVsZENvbmZpZy50ZW1wbGF0ZU9wdGlvbnMgIT0gbnVsbCAmJlxuICAgICAgdGhpcy5maWVsZENvbmZpZy50ZW1wbGF0ZU9wdGlvbnMuc2VsZWN0VHlwZSAhPSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIHJlcyA9IHRoaXMuZmllbGRDb25maWcudGVtcGxhdGVPcHRpb25zLnNlbGVjdFR5cGU7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBvcmdEYXRhOiBJT3JnRGF0YVtdID0gW107XG4gIHRyZWVEYXRhOiBJVHJlZURhdGFbXSA9IFtdO1xuXG4gIGNvbnRyb2xpZDogc3RyaW5nID0gXCJcIjtcbiAgdHJlZWlkOiBzdHJpbmcgPSBcIlwiO1xuXG5cbiAgQFZpZXdDaGlsZChcIm56VHJlZUNvbXBvbmVudFwiLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgbnpUcmVlQ29tcG9uZW50OiBOelRyZWVDb21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgc2VsZWN0ZWRLZXk6IGFueVtdID0gW107XG4gIHNrZWxldG9uU3RhdHVzOiBudW1iZXIgPSAwO1xuXG5cbiAgY29uc3RydWN0b3IocHVibGljIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGxldCBvcmdDb250cm9sID0gXy5nZXQodGhpcy5maWVsZENvbmZpZywgXCJ0ZW1wbGF0ZU9wdGlvbnMuY29udHJvbGlkXCIpO1xuICAgIGlmIChvcmdDb250cm9sICE9IHVuZGVmaW5lZCAmJiBvcmdDb250cm9sICE9IG51bGwgJiYgb3JnQ29udHJvbCAhPSBcIlwiKSB7XG4gICAgICB0aGlzLmNvbnRyb2xpZCA9IF8uZ2V0KHRoaXMuZmllbGRDb25maWcsIFwidGVtcGxhdGVPcHRpb25zLmNvbnRyb2xpZFwiKTtcbiAgICB9XG4gICAgdGhpcy5nZXRPcmdEYXRhKCk7XG4gIH1cblxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykgeyB9XG5cbiAgLy/ojrflj5bnu4Tnu4fmlbDmja7pm4ZcbiAgZ2V0T3JnRGF0YSgpIHtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLmdldFN5c0N0ck9yZ1RyZWUoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICB0aGlzLmRhdGEgPSByZXM7XG4gICAgICBpZiAodGhpcy5kYXRhICE9IG51bGwgJiYgdGhpcy5kYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZih0aGlzLmRhdGFbMF0uY2hpbGRyZW4hPXVuZGVmaW5lZCl7XG4gICAgICAgICAgdGhpcy5jdXJPcmdJZCA9IHRoaXMuZGF0YVswXS5rZXk7XG4gICAgICAgICAgdGhpcy50cmVlRGF0YSA9IHRoaXMuZGF0YVswXS5jaGlsZHJlbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5nZXRUcmVlU2VsZWN0RGF0YSgpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0VHJlZVNlbGVjdERhdGEoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5maWVsZENvbmZpZyAhPSBudWxsICYmXG4gICAgICB0aGlzLmZpZWxkQ29uZmlnLm1vZGVsICE9IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5maWVsZENvbmZpZy5tb2RlbCAhPSBudWxsICYmXG4gICAgICB0aGlzLmZpZWxkQ29uZmlnLmtleSAhPSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuZmllbGRDb25maWcua2V5ICE9IG51bGwgJiZcbiAgICAgIHRoaXMuZmllbGRDb25maWcubW9kZWxbdGhpcy5maWVsZENvbmZpZy5rZXldICE9IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5maWVsZENvbmZpZy5tb2RlbFt0aGlzLmZpZWxkQ29uZmlnLmtleV0gIT0gbnVsbFxuICAgICkge1xuICAgICAgdGhpcy5zZWxlY3REYXRhID0gXy5jbG9uZURlZXAoXG4gICAgICAgIHRoaXMuZmllbGRDb25maWcubW9kZWxbdGhpcy5maWVsZENvbmZpZy5rZXldXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG9yZ0NoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5kYXRhLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgaWYgKGl0ZW0ua2V5ID09PSBldmVudCkge1xuICAgICAgICB0aGlzLnRyZWVEYXRhID0gaXRlbS5jaGlsZHJlbjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdERhdGEuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICB0aGlzLnNldFRyZWVDaGVja2VkKHRoaXMuZGF0YSwgaXRlbS52YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICB0cmVlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5kaW1lbnNpb24pIHtcbiAgICAgIHRoaXMuZGF0YS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zZXRUcmVlVW5DaGVja2VkKGl0ZW0uY2hpbGRyZW4sIGV2ZW50LmRlbGV0ZSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy50cmVlQ2hhbmdlRXZlbnQuZW1pdCh0aGlzLnNlbGVjdERhdGEpO1xuICB9XG5cbiAgc2V0VHJlZVVuQ2hlY2tlZCh0cmVlOiBJVHJlZURhdGFbXSwga2V5OiBzdHJpbmcpIHtcbiAgICBpZiAodHJlZSAmJiB0cmVlLmxlbmd0aCA+IDApIHtcbiAgICAgIHRyZWUuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmtleSA9PT0ga2V5KSB7XG4gICAgICAgICAgaXRlbS5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4gJiYgaXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnNldFRyZWVVbkNoZWNrZWQoaXRlbS5jaGlsZHJlbiwga2V5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBzZXRUcmVlQ2hlY2tlZCh0cmVlOiBJVHJlZURhdGFbXSwga2V5OiBzdHJpbmcpIHtcbiAgICBpZiAodHJlZSAmJiB0cmVlLmxlbmd0aCA+IDApIHtcbiAgICAgIHRyZWUuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmtleSA9PT0ga2V5KSB7XG4gICAgICAgICAgaXRlbS5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbiAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VHJlZUNoZWNrZWQoaXRlbS5jaGlsZHJlbiwga2V5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxufVxuIl19