@ecip/system
Version:
2 lines • 38.7 kB
JavaScript
!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@ecip/shared"),require("@angular/router"),require("rxjs"),require("@angular/forms"),require("rxjs/index"),require("@delon/cache"),require("@ecip/service"),require("@angular/core"),require("ng-zorro-antd"),require("@delon/theme")):"function"==typeof define&&define.amd?define("@ecip/system",["exports","@ecip/shared","@angular/router","rxjs","@angular/forms","rxjs/index","@delon/cache","@ecip/service","@angular/core","ng-zorro-antd","@delon/theme"],r):r((n.ecip=n.ecip||{},n.ecip.system={}),n[1][0]["0-rc"][5],n.ng.router,n.rxjs,n.ng.forms,n.rxjs.index,n.cache,n[1][0]["0-rc"][5],n.ng.core,n.ngZorroAntd,n.theme)}(this,function(n,r,e,s,a,l,t,i,o,d,c){"use strict";function m(n,r){var e="function"==typeof Symbol&&n[Symbol.iterator];if(!e)return n;var t,i,o=e.call(n),a=[];try{for(;(void 0===r||0<r--)&&!(t=o.next()).done;)a.push(t.value)}catch(l){i={error:l}}finally{try{t&&!t.done&&(e=o["return"])&&e.call(o)}finally{if(i)throw i.error}}return a}var p=function(){function n(n,r,e,t,i,o,a,l){var d=this;this.modal=n,this.msgSrv=r,this.resourceService=e,this.userService=t,this.appsService=i,this.http=o,this.fb=a,this.cacheService=l,this.record={},this.isViewpermission=!1,this.defaultpermission=!1,this.loading=!1,this.stateList=this.cacheService.get("api/dict/type/enableState"),this.typeSrcList=this.cacheService.get("api/dict/type/typeSrc"),this.urlTargetList=this.cacheService.get("api/dict/type/urlTarget"),this.typeNodeList=this.cacheService.get("api/dict/type/typeNode"),this.codeAsyncValidator=function(n){return s.Observable.create(function(r){if(!n.value)return r.next(null),void r.complete();d.resourceService.checkCode({code:n.value,id:d.record.id}).subscribe(function(n){!0===n.valid?r.next(null):r.next({error:!0,duplicated:!0}),r.complete()})})}}return n.prototype.ngOnInit=function(){var n,r,e,t=this;this.loading=!0,this.typeSrcList.subscribe(function(n){n&&(t.typeSrc=n[0])}),this.urlTargetList.subscribe(function(n){n&&(t.urlTarget=n[0])}),this.typeNodeList.subscribe(function(n){n&&(t.typeNode=n[0])});var i=null,o="";this.record.id?this.isViewpermission=2!==this.record.typeNode:this.isRoot?(e=0,r=!(n=!1)):(this.isViewpermission=2!==this.parent.typeNode,r=!(n=!0),i=this.parent.id,o=this.parent.path?","+this.parent.id+this.parent.path:","+this.parent.id+",",e=this.parent.nodeLevel+1);this.form=this.fb.group({appId:[this.appId,[]],code:[null,[a.Validators.required],[this.codeAsyncValidator]],rsrcName:[null,[a.Validators.required]],deptId:[null,[]],pid:[i,[]],path:[o,[]],typeSrc:[this.typeSrc?this.typeSrc.value:"",[a.Validators.required]],typeNode:[this.typeNode?this.typeNode.value:"",[a.Validators.required]],url:[null,[]],urlTarget:[this.urlTarget?this.urlTarget.value:"",[]],rsrcIcon:[null,[]],rsrcStatus:[1,[a.Validators.required]],flagBreadcrumb:[n,[a.Validators.required]],flagMenuGroup:[r,[a.Validators.required]],sortNm:[0,[a.Validators.required]],permission:[null,[]],beginTime:[null,[]],endTime:[null,[]],nodeLevel:[e,[]],defaultpermission:[!1,[a.Validators.required]]}),this.record.id&&this.resourceService.getById(this.record.id).subscribe(function(n){t.form.patchValue(n),t.i=n})},n.prototype.compareNumStr=function(n,r){return n==r},n.prototype.submit=function(){var e=this;for(var n in this.form.controls)this.form.controls[n].markAsDirty(),this.form.controls[n].updateValueAndValidity();this.form.invalid||(this.record.id?this.resourceService.put(this.record.id,this.form.value).subscribe(function(n){e.msgSrv.success("保存成功"),e.form.value.defaultpermission&&e.resourceService.addDefaultPermission(n).subscribe(function(){}),e.modal.close({result:n,addFlag:e.form.value.defaultpermission})}):this.resourceService.post(this.form.value).subscribe(function(r){e.msgSrv.success("保存成功"),e.form.value.defaultpermission&&e.resourceService.addDefaultPermission(r).subscribe(function(n){r.children=[],n.forEach(function(n){r.children.push(n)})}),e.modal.close(r)}))},n.prototype.close=function(){this.modal.destroy()},n.decorators=[{type:o.Component,args:[{selector:"app-system-resource-edit",template:'<div class="modal-header">\r\n <div *ngIf="!record.id" class="modal-title">新增信息</div>\r\n <div *ngIf="record.id" class="modal-title">编辑 {{ record.account }} 信息</div>\r\n</div>\r\n<nz-spin *ngIf="!i && !record.id" class="modal-spin"></nz-spin>\r\n<form *ngIf="!record.id || record.id && i" nz-form [formGroup]="form" (ngSubmit)="submit()">\r\n <div nz-row>\r\n <div nz-col nzSpan="12">\r\n <nz-form-item>\r\n <nz-form-label nzXs="24" nzSm="7" nzRequired nzFor="code">编码</nz-form-label>\r\n <nz-form-control nzXs="24" nzSm="12" nzMd="10" nzHasFeedback>\r\n <input nz-input formControlName="code">\r\n <nz-form-explain *ngIf="form.get(\'code\').dirty && form.get(\'code\').errors || form.get(\'code\').pending ">\r\n <ng-container *ngIf="form.get(\'code\').hasError(\'required\')">\r\n 请输入编码\r\n </ng-container>\r\n <ng-container *ngIf="form.get(\'code\').hasError(\'duplicated\')">\r\n 编码已存在\r\n </ng-container>\r\n <ng-container *ngIf="form.get(\'code\').pending">\r\n 校验中...\r\n </ng-container>\r\n </nz-form-explain>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n\r\n <div nz-col nzSpan="12">\r\n <nz-form-item>\r\n <nz-form-label nzXs="24" nzSm="7" nzFor="urlTarget">url类型</nz-form-label>\r\n <nz-form-control nzXs="24" nzSm="12" nzMd="10" nzHasFeedback>\r\n <nz-select [compareWith]="compareNumStr" nzAllowClear formControlName="urlTarget">\r\n <nz-option *ngFor="let urlTarget of urlTargetList | async" [nzValue]="urlTarget.value" [nzLabel]="urlTarget.label"></nz-option>\r\n </nz-select>\r\n <nz-form-explain *ngIf="form.get(\'urlTarget\').dirty && form.get(\'urlTarget\').errors">\r\n 请选择url类型\r\n </nz-form-explain>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n </div>\r\n <div nz-row>\r\n <div nz-col nzSpan="12">\r\n <nz-form-item>\r\n <nz-form-label nzXs="24" nzSm="7" nzRequired nzFor="rsrcName">资源名称</nz-form-label>\r\n <nz-form-control nzXs="24" nzSm="12" nzMd="10" nzHasFeedback>\r\n <input nz-input formControlName="rsrcName">\r\n <nz-form-explain *ngIf="form.get(\'rsrcName\').dirty && form.get(\'rsrcName\').errors">\r\n 请输入资源名称\r\n </nz-form-explain>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n\r\n <div nz-col nzSpan="12">\r\n <nz-form-item>\r\n <nz-form-label nzXs="24" nzSm="7" nzRequired nzFor="typeSrc">资源分类</nz-form-label>\r\n <nz-form-control nzXs="24" nzSm="12" nzMd="10" nzHasFeedback>\r\n <nz-select [compareWith]="compareNumStr" nzAllowClear formControlName="typeSrc">\r\n <nz-option *ngFor="let typeSrc of typeSrcList | async" [nzValue]="typeSrc.value" [nzLabel]="typeSrc.label"></nz-option>\r\n </nz-select>\r\n <nz-form-explain *ngIf="form.get(\'typeSrc\').dirty && form.get(\'typeSrc\').errors">\r\n 请选择资源分类\r\n </nz-form-explain>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n </div>\r\n <div nz-row>\r\n <div nz-col nzSpan="12">\r\n <nz-form-item>\r\n <nz-form-label nzXs="24" nzSm="7" nzRequired nzFor="typeNode">资源类型</nz-form-label>\r\n <nz-form-control nzXs="24" nzSm="12" nzMd="10" nzHasFeedback>\r\n <nz-select [compareWith]="compareNumStr" nzAllowClear formControlName="typeNode">\r\n <nz-option *ngFor="let typeNode of typeNodeList | async" [nzValue]="typeNode.value" [nzLabel]="typeNode.label"></nz-option>\r\n </nz-select>\r\n <nz-form-explain *ngIf="form.get(\'typeNode\').dirty && form.get(\'typeNode\').errors">\r\n 请选择资源类型\r\n </nz-form-explain>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n <div nz-col nzSpan="12">\r\n <nz-form-item>\r\n <nz-form-label nzXs="24" nzSm="7" nzFor="url">URL</nz-form-label>\r\n <nz-form-control nzXs="24" nzSm="12" nzMd="10" nzHasFeedback>\r\n <input nz-input formControlName="url">\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n </div>\r\n <div nz-row>\r\n <div nz-col nzSpan="12">\r\n <nz-form-item>\r\n <nz-form-label nzXs="24" nzSm="7" nzFor="rsrcIcon">资源样式</nz-form-label>\r\n <nz-form-control nzXs="24" nzSm="12" nzMd="10" nzHasFeedback>\r\n <input nz-input formControlName="rsrcIcon">\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n <div nz-col nzSpan="12">\r\n <nz-form-item>\r\n <nz-form-label nzXs="24" nzSm="7" nzFor="permission">权限标志</nz-form-label>\r\n <nz-form-control nzXs="24" nzSm="12" nzMd="10" nzHasFeedback>\r\n <input nz-input formControlName="permission">\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n </div>\r\n <div nz-row>\r\n <div nz-col nzSpan="12">\r\n <nz-form-item>\r\n <nz-form-label nzXs="24" nzSm="7" nzRequired nzFor="flagBreadcrumb">显示在面包屑</nz-form-label>\r\n <nz-form-control nzXs="24" nzSm="12" nzMd="10">\r\n <nz-radio-group formControlName="flagBreadcrumb">\r\n <label nz-radio [nzValue]="true">显示</label>\r\n <label nz-radio [nzValue]="false">不显示</label>\r\n </nz-radio-group>\r\n <nz-form-explain *ngIf="form.get(\'flagBreadcrumb\').dirty && form.get(\'flagBreadcrumb\').errors">\r\n 请选择\r\n </nz-form-explain>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n <div nz-col nzSpan="12">\r\n <nz-form-item>\r\n <nz-form-label nzXs="24" nzSm="7" nzRequired nzFor="flagMenuGroup">是否菜单组</nz-form-label>\r\n <nz-form-control nzXs="24" nzSm="12" nzMd="10">\r\n <nz-radio-group formControlName="flagMenuGroup">\r\n <label nz-radio [nzValue]="true">是</label>\r\n <label nz-radio [nzValue]="false">否</label>\r\n </nz-radio-group>\r\n <nz-form-explain *ngIf="form.get(\'flagMenuGroup\').dirty && form.get(\'flagMenuGroup\').errors">\r\n 请选择\r\n </nz-form-explain>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n </div>\r\n <div nz-row>\r\n <div nz-col nzSpan="12">\r\n <nz-form-item>\r\n <nz-form-label nzXs="24" nzSm="7" nzRequired nzFor="sortNm">排序</nz-form-label>\r\n <nz-form-control nzXs="24" nzSm="12" nzMd="10" nzHasFeedback>\r\n <input nz-input formControlName="sortNm">\r\n <nz-form-explain *ngIf="form.get(\'sortNm\').dirty && form.get(\'sortNm\').errors">\r\n 请输入排序\r\n </nz-form-explain>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n <div nz-col nzSpan="12">\r\n <nz-form-item>\r\n <nz-form-label nzXs="24" nzSm="7" nzRequired nzFor="rsrcStatus">启用状态</nz-form-label>\r\n <nz-form-control nzXs="24" nzSm="12" nzMd="10">\r\n <nz-radio-group formControlName="rsrcStatus">\r\n <label nz-radio *ngFor="let state of stateList | async" [nzValue]="state.value">{{state.label}}</label>\r\n </nz-radio-group>\r\n <nz-form-explain *ngIf="form.get(\'rsrcStatus\').dirty && form.get(\'rsrcStatus\').errors">\r\n 请选择启用状态\r\n </nz-form-explain>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n </div>\r\n\r\n <div nz-row *ngIf="this.isViewpermission">\r\n <div nz-col nzSpan="12">\r\n <nz-form-item>\r\n <nz-form-label nzXs="24" nzSm="7" nzRequired nzFor="defaultpermission">新增默认权限</nz-form-label>\r\n <nz-form-control nzXs="24" nzSm="12" nzMd="10">\r\n <nz-radio-group formControlName="defaultpermission">\r\n <label nz-radio [nzValue]="true">是</label>\r\n <label nz-radio [nzValue]="false">否</label>\r\n </nz-radio-group>\r\n <nz-form-explain *ngIf="form.get(\'defaultpermission\').dirty && form.get(\'defaultpermission\').errors">\r\n 请选择\r\n </nz-form-explain>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-footer">\r\n <button nz-button type="button" (click)="close()">关闭</button>\r\n <button nz-button type="submit" [disabled]="!form.valid" nzType="primary" [nzLoading]="http.loading">保存</button>\r\n </div>\r\n</form>\r\n'}]}],n.ctorParameters=function(){return[{type:d.NzModalRef},{type:d.NzMessageService},{type:i.ResourceService},{type:i.UserService},{type:i.AppsService},{type:c._HttpClient},{type:a.FormBuilder},{type:t.CacheService}]},n}(),u=function(){function n(n,r,e,t,i){this.resourceService=n,this.appsService=r,this.modal=e,this.msgSrv=t,this.cacheService=i,this.searchSchema={properties:{id:{type:"string",title:"编号"}}},this.data=[],this.dataList={},this.appId=-1}return n.prototype.ngOnInit=function(){var r=this;this.appsService.getList().subscribe(function(n){r.appList=n}),this.appChange()},n.prototype.appChange=function(){var r=this;this.resourceService.getList({appId:this.appId}).subscribe(function(n){r.data=n,r.data.forEach(function(n){r.dataList[n.id]=n})})},n.prototype.addChild=function(n){this.selectId=n,this.add(!1)},n.prototype.add=function(r){var e,t=this;if(!r){if(!this.selectId)return void this.msgSrv.warning("请选择父节点");e=this.dataList[this.selectId]}this.modal.createStatic(p,{i:{},isRoot:r,parent:e,appId:this.appId}).subscribe(function(n){t.dataList[n.id]=n,r?t.data.push(n):(e.children||(e.children=[],e.expand=!0),e.children.push(n))})},n.prototype.addpermission=function(r){this.resourceService.addDefaultPermission(r).subscribe(function(n){r.children||(r.children=[]),n.forEach(function(n){r.children.push(n)})})},n.prototype.edit=function(r){var e=this;this.modal.createStatic(p,{record:r}).subscribe(function(n){r=Object.assign(r,n.result),n.addFlag&&e.resourceService.getChildren(n.result.id).subscribe(function(n){r.children=[],n.forEach(function(n){r.children.push(n)})}),e.dataList[n.result.id]=r})},n.prototype["delete"]=function(r){var e=this;this.resourceService.deleteById(r.id).subscribe(function(n){if(e.msgSrv.success("删除成功"),!r.pid)return e.data=e.data.filter(function(n){return n.id!==r.id}),void(e.dataList[r.id]=null);e.dataList[r.pid].children=e.dataList[r.pid].children.filter(function(n){return n.id!==r.id})})},n.prototype.collapse=function(r,n){var e=this;!n||0<r.children.length||this.resourceService.getChildren(r.id).subscribe(function(n){r.children=n,r.children.forEach(function(n){e.dataList[n.id]=n})})},n.decorators=[{type:o.Component,args:[{selector:"app-system-resource",template:'<page-header [action]="phPhAction">\r\n <ng-template #phPhAction>\r\n <nz-dropdown>\r\n <button acl [acl-ability]="\'resource:add\'" nz-button nz-dropdown nzType="primary">\r\n 新建\r\n <i class="anticon anticon-down"></i>\r\n </button>\r\n <ul nz-menu>\r\n <li (click)="add(true)" nz-menu-item>\r\n <a>根节点</a>\r\n </li>\r\n <li (click)="add(false)" nz-menu-item>\r\n <a>子节点</a>\r\n </li>\r\n </ul>\r\n </nz-dropdown>\r\n </ng-template>\r\n</page-header>\r\n<nz-card>\r\n <form nz-form [nzLayout]="\'inline\'">\r\n \x3c!--<nz-form-item> <nz-col class="ant-form-item-control-wrapper"> <div class="ant-form-item-control"> <button nz-popconfirm nzTitle="确认授权吗?" (nzOnConfirm)="assign()" nz-button nzType="primary">授权</button> <button nz-popconfirm nzTitle="确认取消授权吗?" (nzOnConfirm)="cancel()" nz-button nzType="warning">取消授权</button> </div> </nz-col> </nz-form-item>--\x3e\r\n <nz-form-item>\r\n <nz-form-label>系统</nz-form-label>\r\n <nz-col class="ant-form-item-control-wrapper">\r\n <div class="ant-form-item-control">\r\n <nz-select style="width: 240px" name="appId" nzShowSearch [(ngModel)]="appId" (ngModelChange)="appChange()">\r\n <nz-option *ngFor="let option of appList" [nzLabel]="option.appName" [nzValue]="option.appId"></nz-option>\r\n </nz-select>\r\n </div>\r\n </nz-col>\r\n </nz-form-item>\r\n </form>\r\n \x3c!--<sf mode="search" [schema]="searchSchema" (formSubmit)="st.reset($event)" (formReset)="st.reset($event)"></sf>--\x3e\r\n \x3c!--<simple-table [data]="url" [extraParams]="params" [total]="total" [columns]="columns" [preDataChange]="dataChange" [resReName]="{list: \'results\' }" (radioChange)="radioChange($event)"> <!–<ng-template #expand let-item let-index="index" let-column="column"> {{ item.description }} </ng-template>–> <ng-template st-row="custom" let-item let-index="index"> <nz-tooltip [nzTitle]="\'年龄:\' + item.phone"> <span nz-tooltip>tooltip: {{item.phone}}-{{index}}</span> </nz-tooltip> </ng-template> </simple-table>--\x3e\r\n <nz-radio-group style="display: inline" [(ngModel)]="selectId">\r\n <nz-table style="margin-top: 16px" #nzTable [nzData]="data" [nzShowPagination]="false" [nzFrontPagination]="false" [nzBordered]="true" [nzLoading]="resourceService.http.loading" [nzScroll]="{x:\'2000px\'}">\r\n <thead>\r\n <tr>\r\n <th nzWidth="65px" nzLeft="0px"></th>\r\n <th nzWidth="200px" nzLeft="65px">资源名称</th>\r\n \x3c!--<th >系统</th>--\x3e\r\n <th>编码</th>\r\n \x3c!--<th>组织机构</th>--\x3e\r\n <th>资源分类</th>\r\n <th>资源类型</th>\r\n <th>AppID</th>\r\n <th>URL</th>\r\n <th>URL类型</th>\r\n <th>资源样式</th>\r\n <th>权限标志</th>\r\n <th>显示在面包屑</th>\r\n <th>是否菜单组</th>\r\n <th>排序</th>\r\n <th>启用状态</th>\r\n <th nzWidth="150px" nzRight="0px">操作</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-template #recursiveList let-data>\r\n <ng-template ngFor let-item [ngForOf]="data">\r\n <tr>\r\n <td nzLeft="0px">\r\n <label nz-radio [nzValue]="item.id"></label>\r\n </td>\r\n <td nzLeft="65px" [nzIndentSize]="(item.nodeLevel)*20" [nzShowExpand]="item.children" [(nzExpand)]="item.expand" (nzExpandChange)="collapse(item,$event)">{{item.rsrcName}}</td>\r\n \x3c!--<td>{{item.appId}}</td>--\x3e\r\n <td>{{item.code}}</td>\r\n \x3c!--<td>{{item.deptId}}</td>--\x3e\r\n <td>{{item.typeSrc | dictLabel : "typeSrc" | async}}</td>\r\n <td>{{item.typeNode | dictLabel : "typeNode" | async}}</td>\r\n <td>{{item.appId}}</td>\r\n <td>{{item.url}}</td>\r\n <td>{{item.urlTarget}}</td>\r\n <td>{{item.rsrcIcon}}</td>\r\n <td>{{item.permission}}</td>\r\n <td>{{item.flagBreadcrumbText}}</td>\r\n <td>{{item.flagMenuGroupText}}</td>\r\n <td>{{item.sortNm}}</td>\r\n <td>{{item.rsrcStatusText}}</td>\r\n <td nzRight="0px">\r\n <a acl [acl-ability]="\'resource:add\'" (click)="addChild(item.id)">添加子节点</a>\r\n <nz-divider nzType="vertical" acl [acl-ability]="\'resource:add\'"></nz-divider>\r\n <nz-dropdown [acl]="{ ability: [\'resource:auth\', \'resource:edit\', \'resource:remove\'], mode: \'oneOf\' }">\r\n <a nz-dropdown>\r\n <i class="anticon anticon-down"></i>\r\n </a>\r\n <ul nz-menu>\r\n <li acl [acl-ability]="\'resource:auth\'" nz-popconfirm nzTitle="是否添加:查看、新增、修改、删除默认权限?" (nzOnConfirm)="addpermission(item)" nz-menu-item>\r\n <a>新增默认权限</a>\r\n </li>\r\n <li acl [acl-ability]="\'resource:edit\'" (click)="edit(item)" nz-menu-item>\r\n <a>编辑</a>\r\n </li>\r\n <li acl [acl-ability]="\'resource:remove\'" nz-popconfirm nzTitle="确认删除吗?" (nzOnConfirm)="delete(item)" nz-menu-item>\r\n <a>删除</a>\r\n </li>\r\n </ul>\r\n </nz-dropdown>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf="item.expand && item.children?.length > 0">\r\n <ng-container *ngTemplateOutlet="recursiveList; context:{ $implicit: item.children }"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet="recursiveList; context:{ $implicit: data }"></ng-container>\r\n </tbody>\r\n </nz-table>\r\n </nz-radio-group>\r\n</nz-card>\r\n',styles:[":host ::ng-deep .ant-table-wrapper{margin-top:16px}"]}]}],n.ctorParameters=function(){return[{type:i.ResourceService},{type:i.AppsService},{type:c.ModalHelper},{type:d.NzMessageService},{type:t.CacheService}]},n.propDecorators={nzTable:[{type:o.ViewChild,args:["nzTable"]}]},n}(),z=function(){function n(n,r,e,t,i){var o=this;this.modal=n,this.msgSrv=r,this.fb=e,this.dictService=t,this.cacheService=i,this.record={},this.stateList=this.cacheService.get("api/dict/type/enableState"),this.codeAsyncValidator=function(e){return l.Observable.create(function(r){if(!e.value)return r.next(null),void r.complete();var n=o.parent?o.parent.id:null;o.dictService.checkVkey({id:o.record.id,pid:n,vkey:e.value}).subscribe(function(n){!0===n.valid?r.next(null):r.next({error:!0,duplicated:!0}),r.complete()})})},this.typeAsyncValidator=function(n){return l.Observable.create(function(r){if(!n.value)return r.next(null),void r.complete();o.isRoot?o.dictService.checkDictType({id:o.record.id,dictType:n.value}).subscribe(function(n){!0===n.valid?r.next(null):r.next({error:!0,duplicated:!0}),r.complete()}):(r.next(null),r.complete())})}}return n.prototype.ngOnInit=function(){var r=this,n=null,e="";if(this.record.id||(this.isRoot?this.ableOperate=!0:(this.ableOperate=!1,n=this.parent.id,e=this.parent.dictType)),this.form=this.fb.group({pid:[n,[]],dictType:[e,[a.Validators.required],[this.typeAsyncValidator]],vkey:["",[],[this.codeAsyncValidator]],vname:[null,[a.Validators.required]],remark:[null,[]],sortNum:[0,[a.Validators.required]],rsvn:[null,[]],valid:[1,[a.Validators.required]],createTime:[null,[]],updateTime:[null,[]],creator:[null,[]],operator:[null,[]]}),this.record.id){if(this.isRoot){var t=this.form.get("vkey");t.clearAsyncValidators(),t.updateValueAndValidity()}this.dictService.getById(this.record.id).subscribe(function(n){r.isRoot=!n.pid,r.form.patchValue(n),r.i=n})}},n.prototype.compareNumStr=function(n,r){return n==r},n.prototype.submit=function(){var r=this;for(var n in this.form.controls)this.form.controls[n].markAsDirty(),this.form.controls[n].updateValueAndValidity();this.form.invalid||(this.record.id?this.dictService.put(this.record.id,this.form.value).subscribe(function(n){r.msgSrv.success("保存成功"),r.modal.close(n)}):this.dictService.post(this.form.value).subscribe(function(n){r.msgSrv.success("保存成功"),r.modal.close(n)}))},n.prototype.close=function(){this.modal.destroy()},n.decorators=[{type:o.Component,args:[{selector:"app-system-dict-edit",template:'<div class="modal-header">\r\n <div *ngIf="!record.id" class="modal-title">新增信息</div>\r\n <div *ngIf="record.id" class="modal-title">编辑 {{ record.account }} 信息</div>\r\n</div>\r\n<nz-spin *ngIf="!i && !record.id" class="modal-spin"></nz-spin>\r\n<form *ngIf="!record.id || record.id && i" nz-form [formGroup]="form" (ngSubmit)="submit()">\r\n <div nz-row>\r\n <div nz-col nzSpan="24" *ngIf="!isRoot">\r\n <nz-form-item>\r\n <nz-form-label nzXs="24" nzSm="7" nzRequired nzFor="vkey">编码</nz-form-label>\r\n <nz-form-control nzXs="24" nzSm="12" nzMd="10" nzHasFeedback>\r\n <input nz-input formControlName="vkey" required>\r\n <nz-form-explain *ngIf="form.get(\'vkey\').dirty && form.get(\'vkey\').errors || form.get(\'vkey\').pending ">\r\n <ng-container *ngIf="form.get(\'vkey\').hasError(\'required\')">\r\n 请输入编码\r\n </ng-container>\r\n <ng-container *ngIf="form.get(\'vkey\').hasError(\'duplicated\')">\r\n 编码已存在\r\n </ng-container>\r\n <ng-container *ngIf="form.get(\'vkey\').pending">\r\n 校验中...\r\n </ng-container>\r\n </nz-form-explain>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n </div>\r\n <div nz-row>\r\n <div nz-col nzSpan="24">\r\n <nz-form-item>\r\n <nz-form-label nzXs="24" nzSm="7" nzRequired nzFor="vname">名称</nz-form-label>\r\n <nz-form-control nzXs="24" nzSm="12" nzMd="10" nzHasFeedback>\r\n <input nz-input formControlName="vname">\r\n <nz-form-explain *ngIf="form.get(\'vname\').dirty && form.get(\'vname\').errors">\r\n 请输入名称\r\n </nz-form-explain>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n </div>\r\n\r\n <div nz-row>\r\n <div nz-col nzSpan="24">\r\n <nz-form-item>\r\n <nz-form-label nzXs="24" nzSm="7" nzRequired nzFor="dictType">分类</nz-form-label>\r\n <nz-form-control nzXs="24" nzSm="12" nzMd="10" nzHasFeedback>\r\n <input *ngIf="isRoot" nz-input formControlName="dictType">\r\n <nz-form-text *ngIf="!isRoot">{{form.get(\'dictType\').value}}</nz-form-text>\r\n <nz-form-explain *ngIf="form.get(\'dictType\').dirty && form.get(\'dictType\').errors || form.get(\'dictType\').pending ">\r\n <ng-container *ngIf="form.get(\'dictType\').hasError(\'required\')">\r\n 请输入类型\r\n </ng-container>\r\n <ng-container *ngIf="form.get(\'dictType\').hasError(\'duplicated\')">\r\n 根类型已存在\r\n </ng-container>\r\n <ng-container *ngIf="form.get(\'dictType\').pending">\r\n 校验中...\r\n </ng-container>\r\n </nz-form-explain>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n </div>\r\n <div nz-row>\r\n <div nz-col nzSpan="24">\r\n <nz-form-item>\r\n <nz-form-label nzXs="24" nzSm="7" nzRequired nzFor="sortNum">排序</nz-form-label>\r\n <nz-form-control nzXs="24" nzSm="12" nzMd="10" nzHasFeedback>\r\n <input nz-input formControlName="sortNum">\r\n <nz-form-explain *ngIf="form.get(\'sortNum\').dirty && form.get(\'sortNum\').errors">\r\n 请输入排序\r\n </nz-form-explain>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n </div>\r\n\r\n <div nz-row>\r\n <div nz-col nzSpan="24">\r\n <nz-form-item>\r\n <nz-form-label nzXs="24" nzSm="7" nzFor="remark">备注</nz-form-label>\r\n <nz-form-control nzXs="24" nzSm="12" nzMd="10" nzHasFeedback>\r\n <input nz-input formControlName="remark">\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n </div>\r\n\r\n <div nz-row>\r\n <div nz-col nzSpan="24">\r\n <nz-form-item>\r\n <nz-form-label nzXs="24" nzSm="7" nzRequired nzFor="valid">启用状态</nz-form-label>\r\n <nz-form-control nzXs="24" nzSm="12" nzMd="10">\r\n <nz-radio-group formControlName="valid">\r\n <label nz-radio *ngFor="let state of stateList | async" [nzValue]="state.value">{{state.label}}</label>\r\n </nz-radio-group>\r\n <nz-form-explain *ngIf="form.get(\'valid\').dirty && form.get(\'valid\').errors">\r\n 请选择启用状态\r\n </nz-form-explain>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-footer">\r\n <button nz-button type="button" (click)="close()">关闭</button>\r\n <button nz-button type="submit" [disabled]="!form.valid" nzType="primary" [nzLoading]="dictService.http.loading">保存</button>\r\n </div>\r\n</form>\r\n'}]}],n.ctorParameters=function(){return[{type:d.NzModalRef},{type:d.NzMessageService},{type:a.FormBuilder},{type:i.DictService},{type:t.CacheService}]},n}(),f=function(){function n(n,r,e){this.modal=n,this.msgSrv=r,this.dictService=e,this.isVisible=!1,this.isOkLoading=!1,this.searchSchema={properties:{vkey:{type:"string",title:"编码"}}},this.data=[],this.dataList={}}return n.prototype.ngOnInit=function(){var r=this;this.dictService.getList(this.sf.value).subscribe(function(n){r.data=n,r.data.forEach(function(n){r.dataList[n.id]=n})})},n.prototype.addChild=function(n){this.selectId=n,this.add(!1)},n.prototype.add=function(r){var e,t=this;if(!r){if(!this.selectId)return void this.msgSrv.warning("请选择父节点");e=this.dataList[this.selectId]}this.modal.createStatic(z,{i:{},isRoot:r,parent:e}).subscribe(function(n){t.dataList[n.id]=n,r?t.data.push(n):(e.children||(e.children=[],e.expand=!0),e.children.push(n))})},n.prototype.edit=function(r){var e=this;this.modal.createStatic(z,{record:r}).subscribe(function(n){1<n.length?e.dictService.getList().subscribe(function(n){e.data=n,e.data.forEach(function(n){e.dataList[n.id]=n})}):(r=Object.assign(r,n[0]),e.dataList[n.id]=n[0])})},n.prototype.collapse=function(r,n){var e=this;!n||0<r.children.length||this.dictService.getChildren(r.id).subscribe(function(n){r.children=n,r.children.forEach(function(n){e.dataList[n.id]=n})})},n.prototype.deleteModal=function(){this.isVisible=!0},n.prototype.deleteOk=function(r){var e=this;this.isOkLoading=!0,this.dictService.deleteById(r.id).subscribe(function(n){if(e.isVisible=!1,e.isOkLoading=!1,e.msgSrv.success("删除成功"),!r.pid)return e.data=e.data.filter(function(n){return n.id!==r.id}),void(e.dataList[r.id]=null);e.dataList[r.pid].children=e.dataList[r.pid].children.filter(function(n){return n.id!==r.id})})},n.prototype.deleteCancel=function(){this.isVisible=!1},n.decorators=[{type:o.Component,args:[{selector:"app-system-dict",template:'<page-header [action]="phPhAction">\r\n <ng-template #phPhAction>\r\n <nz-dropdown>\r\n <button acl [acl-ability]="\'dict:add\'" nz-button nz-dropdown nzType="primary">\r\n 新建\r\n <i class="anticon anticon-down"></i>\r\n </button>\r\n <ul nz-menu>\r\n <li (click)="add(true)" nz-menu-item>\r\n <a>根节点</a>\r\n </li>\r\n <li (click)="add(false)" nz-menu-item>\r\n <a>子节点</a>\r\n </li>\r\n </ul>\r\n </nz-dropdown>\r\n </ng-template>\r\n</page-header>\r\n<nz-card>\r\n <sf #sf mode="search" [schema]="searchSchema" (formSubmit)="ngOnInit()" (formReset)="sf.reset($event)"></sf>\r\n \x3c!--<simple-table [data]="url" [extraParams]="params" [total]="total" [columns]="columns" [preDataChange]="dataChange" [resReName]="{list: \'results\' }" (radioChange)="radioChange($event)"> <!–<ng-template #expand let-item let-index="index" let-column="column"> {{ item.description }} </ng-template>–> <ng-template st-row="custom" let-item let-index="index"> <nz-tooltip [nzTitle]="\'年龄:\' + item.phone"> <span nz-tooltip>tooltip: {{item.phone}}-{{index}}</span> </nz-tooltip> </ng-template> </simple-table>--\x3e\r\n <nz-radio-group style="display: inline" [(ngModel)]="selectId">\r\n <nz-table style="margin-top: 16px" #nzTable [nzData]="data" [nzShowPagination]="false" [nzFrontPagination]="false" [nzBordered]="true" [nzLoading]="dictService.http.loading" [nzScroll]="{x:\'2000px\'}">\r\n <thead>\r\n <tr>\r\n <th nzWidth="65px" nzLeft="0px"></th>\r\n <th nzWidth="200px" nzLeft="65px">名称</th>\r\n <th>编码</th>\r\n <th>分类</th>\r\n <th>备注</th>\r\n <th>排序</th>\r\n \x3c!--<th>版本</th>--\x3e\r\n <th>启用状态</th>\r\n <th>创建时间</th>\r\n <th>修改时间</th>\r\n <th>创建者</th>\r\n <th>操作者</th>\r\n <th nzWidth="150px" nzRight="0px" style="text-align: center;">操作</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-template #recursiveList let-data>\r\n <ng-template ngFor let-item [ngForOf]="data">\r\n <tr>\r\n <td nzLeft="0px">\r\n <label nz-radio [nzValue]="item.id" *ngIf="!item.pid"></label>\r\n </td>\r\n <td nzLeft="65px" [nzIndentSize]="20" [nzShowExpand]="item.children" [(nzExpand)]="item.expand" (nzExpandChange)="collapse(item,$event)">{{item.vname}}</td>\r\n <td>{{item.vkey}}</td>\r\n <td>{{item.dictType}}</td>\r\n <td>{{item.remark}}</td>\r\n <td>{{item.sortNum}}</td>\r\n \x3c!--<td>{{item.rsvn}}</td>--\x3e\r\n <td>{{item.validText}}</td>\r\n <td>{{item.createTime}}</td>\r\n <td>{{item.updateTime}}</td>\r\n <td>{{item.creator}}</td>\r\n <td>{{item.operator}}</td>\r\n <td nzRight="0px" style="width: 150px; text-align: center">\r\n <a *ngIf="!item.pid" (click)="addChild(item.id)" acl [acl-ability]="\'dict:add\'">添加子节点</a>\r\n <nz-divider *ngIf="!item.pid" nzType="vertical"></nz-divider>\r\n <nz-dropdown [acl]="{ ability: [\'dict:edit\', \'dict:remove\'], mode: \'oneOf\' }">\r\n <a nz-dropdown>\r\n <i class="anticon anticon-down"></i>\r\n </a>\r\n <ul nz-menu>\r\n <li acl [acl-ability]="\'dict:edit\'" (click)="edit(item)" nz-menu-item>\r\n <a>编辑</a>\r\n </li>\r\n <li acl [acl-ability]="\'dict:remove\'" nz-popconfirm *ngIf="!item.pid" nzTitle="是否确认删除该词根及其下所有词?" (nzOnConfirm)="deleteOk(item)" (nzOnCancel)="deleteCancel()" nz-menu-item>\r\n <a>删除</a>\r\n </li>\r\n <li acl [acl-ability]="\'dict:remove\'" nz-popconfirm *ngIf="item.pid" nzTitle="是否确认删除该词?" (nzOnConfirm)="deleteOk(item)" (nzOnCancel)="deleteCancel()" nz-menu-item>\r\n <a>删除</a>\r\n </li>\r\n </ul>\r\n </nz-dropdown>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf="item.expand && item.children?.length > 0">\r\n <ng-container *ngTemplateOutlet="recursiveList; context:{ $implicit: item.children }"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet="recursiveList; context:{ $implicit: data }"></ng-container>\r\n </tbody>\r\n </nz-table>\r\n </nz-radio-group>\r\n</nz-card>',styles:[":host ::ng-deep .ant-table-wrapper{margin-top:16px}"]}]}],n.ctorParameters=function(){return[{type:c.ModalHelper},{type:d.NzMessageService},{type:i.DictService}]},n.propDecorators={st:[{type:o.ViewChild,args:["st"]}],sf:[{type:o.ViewChild,args:["sf"]}],nzTable:[{type:o.ViewChild,args:["nzTable"]}]},n}(),h=[{path:"resource",component:u},{path:"dict",component:f}],g=function(){function n(){}return n.decorators=[{type:o.NgModule,args:[{imports:[e.RouterModule.forChild(h)],exports:[e.RouterModule]}]}],n}(),v=function(){function n(n,r,e){this.modal=n,this.msgSrv=r,this.resourceService=e,this.record={}}return n.prototype.ngOnInit=function(){var r=this;this.resourceService.getById(this.record.id).subscribe(function(n){return r.i=n})},n.prototype.close=function(){this.modal.destroy()},n.decorators=[{type:o.Component,args:[{selector:"app-system-resource-view",template:'<div class="modal-header">\r\n <div class="modal-title">查看 {{ record.id }} 信息</div>\r\n</div>\r\n<nz-spin *ngIf="!i" class="modal-spin"></nz-spin>\r\n<sv-container *ngIf="i">\r\n <sv label="姓名">{{ i.owner }}</sv>\r\n <sv label="会员卡号">32943898021309809423</sv>\r\n <sv label="身份证">3321944288191034921</sv>\r\n <sv label="联系方式">18112345678</sv>\r\n <sv label="联系地址">曲丽丽 18100000000 浙江省杭州市西湖区黄姑山路工专路交叉路口</sv>\r\n</sv-container>\r\n<div class="modal-footer">\r\n <button nz-button type="button" (click)="close()">关闭</button>\r\n</div>'}]}],n.ctorParameters=function(){return[{type:d.NzModalRef},{type:d.NzMessageService},{type:i.ResourceService}]},n}(),b=function(){function n(n,r,e){this.modal=n,this.msgSrv=r,this.http=e,this.record={}}return n.prototype.ngOnInit=function(){},n.prototype.close=function(){this.modal.destroy()},n.decorators=[{type:o.Component,args:[{selector:"app-system-dict-view",template:'<div class="modal-header">\r\n <div class="modal-title">查看 {{ record.id }} 信息</div>\r\n</div>\r\n<nz-spin *ngIf="!i" class="modal-spin"></nz-spin>\r\n<sv-container *ngIf="i">\r\n <sv label="姓名">{{ i.owner }}</sv>\r\n <sv label="会员卡号">32943898021309809423</sv>\r\n <sv label="身份证">3321944288191034921</sv>\r\n <sv label="联系方式">18112345678</sv>\r\n <sv label="联系地址">曲丽丽 18100000000 浙江省杭州市西湖区黄姑山路工专路交叉路口</sv>\r\n</sv-container>\r\n<div class="modal-footer">\r\n <button nz-button type="button" (click)="close()">关闭</button>\r\n</div>'}]}],n.ctorParameters=function(){return[{type:d.NzModalRef},{type:d.NzMessageService},{type:c._HttpClient}]},n}(),y=[u,f],S=[p,v,z,b],x=function(){function n(){}return n.decorators=[{type:o.NgModule,args:[{imports:[r.SharedModule,g],declarations:function e(){for(var n=[],r=0;r<arguments.length;r++)n=n.concat(m(arguments[r]));return n}(y,S),entryComponents:S}]}],n}();n.SystemModule=x,n.SystemRoutingModule=g,n.SystemDictComponent=f,n.SystemDictEditComponent=z,n.SystemDictViewComponent=b,n.SystemResourceComponent=u,n.SystemResourceEditComponent=p,n.SystemResourceViewComponent=v,Object.defineProperty(n,"__esModule",{value:!0})});
//# sourceMappingURL=system.umd.min.js.map