{"__symbolic":"module","version":4,"metadata":{"AdminService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bit","name":"BitHttpService","line":10,"character":18}]}],"originLists":[{"__symbolic":"method"}],"lists":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"edit":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"status":[{"__symbolic":"method"}],"validedUsername":[{"__symbolic":"method"}]}},"AdminIndexComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"van-admin-index","template":"<bit-header>\n  <button nz-button nzType=\"primary\" [bitOpen]=\"['admin-add']\">\n    <span>{{ bit.l[\"add\"] }}</span>\n  </button>\n</bit-header>\n<ng-template #title>\n  <nz-space>\n    <ng-container *ngIf=\"lists.hasSearch('username')\">\n      <nz-input-group *nzSpaceItem nzSearch [nzAddOnAfter]=\"nzAddOnAfter\" style=\"width: 320px\">\n        <input\n          nz-input\n          [bitSearchStart]=\"lists\"\n          [placeholder]=\"bit.l['search']\"\n          [(ngModel)]=\"lists.search['username'].value\"\n          (after)=\"getLists(true)\"\n        />\n      </nz-input-group>\n      <ng-template #nzAddOnAfter>\n        <button\n          nzSearch\n          nz-button\n          nzType=\"primary\"\n          [bitSearchStart]=\"lists\"\n          (after)=\"getLists(true)\"\n        >\n          <i nz-icon nzType=\"search\"></i>\n        </button>\n      </ng-template>\n    </ng-container>\n    <button *nzSpaceItem nz-button (click)=\"getLists(true)\">\n      <i nz-icon nzType=\"sync\"></i> {{ bit.l[\"refreshLists\"] }}\n    </button>\n    <button *nzSpaceItem nz-button [bitSearchClear]=\"lists\" (after)=\"getLists(true)\">\n      <i nz-icon nzType=\"clear\"></i> {{ bit.l[\"clearSearch\"] }}\n    </button>\n    <button *nzSpaceItem nz-button nzDanger [disabled]=\"!lists.batch\" (click)=\"deleteCheckData()\">\n      <i nz-icon nzType=\"rest\"></i> {{ bit.l[\"bulkDelete\"] }}\n    </button>\n  </nz-space>\n</ng-template>\n<nz-card [nzTitle]=\"title\">\n  <nz-table\n    #table\n    [nzData]=\"lists.data\"\n    [nzLoading]=\"lists.loading\"\n    [nzTotal]=\"lists.totals\"\n    [nzPageSize]=\"lists.limit\"\n    [nzFrontPagination]=\"false\"\n    [(nzPageIndex)]=\"lists.index\"\n    (nzPageIndexChange)=\"getLists()\"\n    nzSize=\"middle\"\n  >\n    <thead>\n    <tr>\n      <th\n        nzShowCheckbox\n        nzWidth=\"65px\"\n        [(nzChecked)]=\"lists.checked\"\n        [nzIndeterminate]=\"lists.indeterminate\"\n        (nzCheckedChange)=\"lists.checkedAll($event)\"\n      ></th>\n      <th nzWidth=\"200px\">{{ bit.l[\"username\"] }}（{{ bit.l[\"call\"] }}）</th>\n      <th nzWidth=\"200px\">{{ bit.l[\"role\"] }}</th>\n      <th>{{ bit.l[\"permission\"] }}</th>\n      <th>{{ bit.l[\"status\"] }}</th>\n      <th nzWidth=\"300px\" nzRight=\"0px\">{{ bit.l[\"action\"] }}</th>\n    </tr>\n    </thead>\n    <tbody>\n    <tr *ngFor=\"let data of table.data\">\n      <td\n        nzShowCheckbox\n        [(nzChecked)]=\"data.checked\"\n        (nzCheckedChange)=\"lists.refreshStatus()\"\n      ></td>\n      <td>\n          <span>\n            {{ data.username }}\n            <ng-container *ngIf=\"data.call\"> （{{ data.call }}） </ng-container>\n          </span>\n        <a (click)=\"openAdminVisable(data)\">\n          <i nz-icon nzType=\"audit\"></i>\n        </a>\n      </td>\n      <td>\n        <ng-container *ngFor=\"let x of data.role | Split: ',';last as isLast\">\n          <ng-container *ngIf=\"role.hasOwnProperty(x)\">\n            {{ role[x].name | object: bit.locale }}\n          </ng-container>\n          <ng-container *ngIf=\"!isLast\">,</ng-container>\n        </ng-container>\n      </td>\n      <td nzBreakWord>\n        <ng-container *ngFor=\"let x of data.permission | Split: ','; last as isLast\">\n          {{ permission[x] | object: bit.locale }}\n          <ng-container *ngIf=\"!isLast\">,</ng-container>\n        </ng-container>\n      </td>\n      <td>\n        <nz-switch\n          [(ngModel)]=\"data.status\"\n          [nzCheckedChildren]=\"bit.l['on']\"\n          [nzUnCheckedChildren]=\"bit.l['off']\"\n          [bitStatusChange]=\"adminService.status(data)\"\n          [bitControl]=\"true\"\n          (response)=\"statusFeedback($event)\"\n        >\n        </nz-switch>\n      </td>\n      <td>\n        <a [bitOpen]=\"['admin-edit', data.id]\">\n          <i nz-icon nzType=\"edit\"></i> {{ bit.l[\"edit\"] }}\n        </a>\n        <nz-divider nzType=\"vertical\"></nz-divider>\n        <a (click)=\"deleteData([data.id])\">\n          <i nz-icon nzType=\"delete\"></i> {{ bit.l[\"delete\"] }}\n        </a>\n      </td>\n    </tr>\n    </tbody>\n  </nz-table>\n</nz-card>\n\n<nz-drawer\n  [nzWidth]=\"540\"\n  [nzClosable]=\"false\"\n  [nzVisible]=\"adminVisible\"\n  (nzOnClose)=\"closeAdminVisable()\"\n>\n  <ng-container *nzDrawerContent>\n    <nz-descriptions\n      *ngIf=\"adminData\"\n      nzLayout=\"vertical\"\n      nzBordered\n      [nzColumn]=\"1\"\n      nzSize=\"middle\"\n    >\n      <nz-descriptions-item [nzTitle]=\"bit.l['call']\">\n        <ng-container *ngIf=\"adminData.call; else empty\">\n          {{ adminData.call }}\n        </ng-container>\n      </nz-descriptions-item>\n      <nz-descriptions-item [nzTitle]=\"bit.l['email']\">\n        <ng-container *ngIf=\"adminData.email; else empty\">\n          {{ adminData.email }}\n        </ng-container>\n      </nz-descriptions-item>\n      <nz-descriptions-item [nzTitle]=\"bit.l['phone']\">\n        <ng-container *ngIf=\"adminData.phone; else empty\">\n          {{ adminData.phone }}\n        </ng-container>\n      </nz-descriptions-item>\n      <nz-descriptions-item *ngIf=\"adminData.avatar\" [nzTitle]=\"bit.l['avatar']\">\n        <img nz-image width=\"200px\" height=\"200px\" [nzSrc]=\"bit.static + adminData.avatar\" />\n      </nz-descriptions-item>\n      <ng-template #empty>-</ng-template>\n    </nz-descriptions>\n  </ng-container>\n</nz-drawer>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bit","name":"BitSwalService","line":21,"character":18},{"__symbolic":"reference","module":"ngx-bit","name":"BitService","line":22,"character":16},{"__symbolic":"reference","name":"AdminService"},{"__symbolic":"reference","module":"van-skeleton/role","name":"RoleService","line":24,"character":25},{"__symbolic":"reference","module":"ng-zorro-antd/message","name":"NzMessageService","line":25,"character":21},{"__symbolic":"reference","module":"van-skeleton/permission","name":"PermissionService","line":26,"character":31}]}],"ngOnInit":[{"__symbolic":"method"}],"getLists":[{"__symbolic":"method"}],"getRole":[{"__symbolic":"method"}],"getPermission":[{"__symbolic":"method"}],"openAdminVisable":[{"__symbolic":"method"}],"closeAdminVisable":[{"__symbolic":"method"}],"deleteData":[{"__symbolic":"method"}],"deleteCheckData":[{"__symbolic":"method"}],"statusFeedback":[{"__symbolic":"method"}]}},"AdminAddComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"van-admin-add","template":"<bit-header back></bit-header>\n\n<nz-card>\n  <form nz-form [formGroup]=\"form\" (bitFormSubmit)=\"submit($event)\">\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\" nzRequired>\n        {{ bit.l[\"username\"] }}\n      </nz-form-label>\n      <nz-form-control\n        bitCol=\"control\"\n        nzHasFeedback\n        [nzValidatingTip]=\"bit.l['validating']\"\n        [nzErrorTip]=\"username.ref\"\n      >\n        <input nz-input formControlName=\"username\" [placeholder]=\"bit.l['usernamePlaceholder']\" />\n        <bit-error-tip\n          #username\n          [hasError]=\"{\n            required: bit.l['usernameRequire'],\n            minlength: bit.l['usernameCorrectly'],\n            maxlength: bit.l['usernameCorrectly'],\n            duplicated: bit.l['usernameDuplicated']\n          }\"\n        ></bit-error-tip>\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\" nzRequired>\n        {{ bit.l[\"role\"] }}\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\">\n        <nz-select\n          nzMode=\"multiple\"\n          formControlName=\"role\"\n          [nzPlaceHolder]=\"bit.l['rolePlaceholder']\"\n        >\n          <ng-template ngFor let-x [ngForOf]=\"roleLists\">\n            <nz-option [nzLabel]=\"x.name | object: bit.locale\" [nzValue]=\"x.key\"></nz-option>\n          </ng-template>\n        </nz-select>\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\" nzRequired>\n        <span>\n          {{ bit.l[\"password\"] }}\n          <i nz-icon nzType=\"question-circle\" [nz-tooltip]=\"bit.l['passwordTips']\"> </i>\n        </span>\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\" nzHasFeedback [nzErrorTip]=\"password.ref\">\n        <input\n          nz-input\n          type=\"password\"\n          formControlName=\"password\"\n          autocomplete=\"new-password\"\n          [placeholder]=\"bit.l['passwordPlaceholder']\"\n        />\n        <bit-error-tip\n          #password\n          [hasError]=\"{\n            required: bit.l['passwordRequire'],\n            min: bit.l['passwordMinLength'],\n            max: bit.l['passwordMaxLength'],\n            lowercase: bit.l['passwordLowercase'],\n            uppercase: bit.l['passwordUppercase'],\n            number: bit.l['passwordNumber'],\n            symbol: bit.l['passwordSymbol']\n          }\"\n        ></bit-error-tip>\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\" nzRequired>\n        {{ bit.l[\"passwordCheck\"] }}\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\" nzHasFeedback [nzErrorTip]=\"passwordCheck.ref\">\n        <input\n          nz-input\n          type=\"password\"\n          formControlName=\"password_check\"\n          [placeholder]=\"bit.l['passwordPlaceholder']\"\n        />\n        <bit-error-tip\n          #passwordCheck\n          [hasError]=\"{\n            required: bit.l['passwordRequire'],\n            correctly: bit.l['passwordCorrectly']\n          }\"\n        ></bit-error-tip>\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\">\n        <span>\n          {{ bit.l[\"personalRole\"] }}\n        </span>\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\">\n        <nz-space>\n          <nz-button-group *nzSpaceItem>\n            <button nz-button type=\"button\" (click)=\"allChecked()\">\n              <i nz-icon nzType=\"check-square\"></i>\n              {{ bit.l[\"checked\"] }}\n            </button>\n            <button nz-button type=\"button\" (click)=\"allUnchecked()\">\n              <i nz-icon nzType=\"close-square\"></i>\n              {{ bit.l[\"unchecked\"] }}\n            </button>\n          </nz-button-group>\n          <nz-button-group *nzSpaceItem>\n            <button nz-button type=\"button\" (click)=\"allExpand()\">\n              <i nz-icon nzType=\"node-expand\"></i>\n              {{ bit.l[\"expand\"] }}\n            </button>\n            <button nz-button type=\"button\" (click)=\"allClose()\">\n              <i nz-icon nzType=\"node-collapse\"></i>\n              {{ bit.l[\"close\"] }}\n            </button>\n          </nz-button-group>\n        </nz-space>\n\n        <nz-divider [nzDashed]=\"true\"></nz-divider>\n\n        <nz-tree\n          #nzTree\n          [nzBlockNode]=\"true\"\n          [nzShowLine]=\"true\"\n          [nzShowIcon]=\"true\"\n          [nzExpandAll]=\"true\"\n          [nzData]=\"nodes\"\n          (nzCheckBoxChange)=\"setResource()\"\n          nzCheckable\n        >\n        </nz-tree>\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\">\n        <span>\n          {{ bit.l[\"permission\"] }}\n        </span>\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\">\n        <nz-select\n          nzMode=\"multiple\"\n          formControlName=\"permission\"\n          [nzPlaceHolder]=\"bit.l['permissionPlaceholder']\"\n        >\n          <ng-container *ngFor=\"let x of permissionLists\">\n            <nz-option [nzLabel]=\"x.name | object: bit.locale\" [nzValue]=\"x.key\"></nz-option>\n          </ng-container>\n        </nz-select>\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\">\n        {{ bit.l[\"call\"] }}\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\" nzHasFeedback>\n        <input nz-input formControlName=\"call\" [placeholder]=\"bit.l['callPlaceholder']\" />\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\">\n        {{ bit.l[\"email\"] }}\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\" nzHasFeedback [nzErrorTip]=\"email.ref\">\n        <input nz-input formControlName=\"email\" [placeholder]=\"bit.l['emailPlaceholder']\" />\n        <bit-error-tip\n          #email\n          [hasError]=\"{\n            email: bit.l['emailCorrectly']\n          }\"\n        ></bit-error-tip>\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\">\n        {{ bit.l[\"phone\"] }}\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\" nzHasFeedback>\n        <input nz-input formControlName=\"phone\" [placeholder]=\"bit.l['phonePlaceholder']\" />\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\">\n        {{ bit.l[\"avatar\"] }}\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\">\n        <p>{{ bit.l[\"avatarTips\"] }}</p>\n        <nz-upload nzName=\"image\" bitUpload nzListType=\"picture-card\" (nzChange)=\"upload($event)\">\n          <ng-container *ngIf=\"!avatar\">\n            <i nz-icon nzType=\"plus\"></i>\n            <div class=\"ant-upload-text\">{{ bit.l[\"upload\"] }}</div>\n          </ng-container>\n          <img width=\"120\" *ngIf=\"avatar\" [src]=\"bit.static + avatar\" class=\"avatar\" />\n        </nz-upload>\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\" nzRequired>\n        {{ bit.l[\"status\"] }}\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\">\n        <nz-switch\n          formControlName=\"status\"\n          [nzCheckedChildren]=\"bit.l['on']\"\n          [nzUnCheckedChildren]=\"bit.l['off']\"\n        >\n        </nz-switch>\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-divider></nz-divider>\n\n    <nz-form-item>\n      <nz-form-control bitCol=\"submit\">\n        <nz-space>\n          <button *nzSpaceItem nz-button nzType=\"primary\" [disabled]=\"!form.valid\">\n            <i nz-icon nzType=\"check\"></i> {{ bit.l[\"submit\"] }}\n          </button>\n          <button *nzSpaceItem nz-button type=\"button\" bitBack>\n            <i nz-icon nzType=\"close\"></i> {{ bit.l[\"cancel\"] }}\n          </button>\n        </nz-space>\n      </nz-form-control>\n    </nz-form-item>\n  </form>\n</nz-card>\n"}]}],"members":{"nzTree":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":18,"character":3},"arguments":["nzTree",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bit","name":"BitSwalService","line":27,"character":18},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":28,"character":16},{"__symbolic":"reference","module":"ngx-bit","name":"BitService","line":29,"character":16},{"__symbolic":"reference","module":"ngx-bit","name":"BitEventsService","line":30,"character":20},{"__symbolic":"reference","module":"ng-zorro-antd/notification","name":"NzNotificationService","line":31,"character":26},{"__symbolic":"reference","name":"AdminService"},{"__symbolic":"reference","module":"van-skeleton/role","name":"RoleService","line":33,"character":25},{"__symbolic":"reference","module":"van-skeleton/resource","name":"ResourceService","line":34,"character":29},{"__symbolic":"reference","module":"van-skeleton/permission","name":"PermissionService","line":35,"character":31}]}],"ngOnInit":[{"__symbolic":"method"}],"getRole":[{"__symbolic":"method"}],"getNodes":[{"__symbolic":"method"}],"setResource":[{"__symbolic":"method"}],"allChecked":[{"__symbolic":"method"}],"allUnchecked":[{"__symbolic":"method"}],"allCheckedStatus":[{"__symbolic":"method"}],"allExpand":[{"__symbolic":"method"}],"allClose":[{"__symbolic":"method"}],"allExpandStatus":[{"__symbolic":"method"}],"getPermission":[{"__symbolic":"method"}],"upload":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}]}},"AdminEditComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"van-admin-edit","template":"<bit-header back></bit-header>\n\n<nz-card>\n  <form nz-form [formGroup]=\"form\" (bitFormSubmit)=\"submit($event)\">\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\" nzRequired>\n        {{ bit.l[\"username\"] }}\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\">\n        <input nz-input [readonly]=\"true\" [value]=\"username\" />\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\" nzRequired>\n        {{ bit.l[\"role\"] }}\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\">\n        <nz-select\n          nzMode=\"multiple\"\n          formControlName=\"role\"\n          [nzPlaceHolder]=\"bit.l['rolePlaceholder']\"\n        >\n          <ng-template ngFor let-x [ngForOf]=\"roleLists\">\n            <nz-option [nzLabel]=\"x.name | object: bit.locale\" [nzValue]=\"x.key\"></nz-option>\n          </ng-template>\n        </nz-select>\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\">\n        <span>\n          {{ bit.l[\"password\"] }}\n          <i nz-icon nzType=\"question-circle\" [nz-tooltip]=\"bit.l['passwordTips']\"> </i>\n        </span>\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\" nzHasFeedback [nzErrorTip]=\"password.ref\">\n        <input\n          nz-input\n          type=\"password\"\n          formControlName=\"password\"\n          autocomplete=\"new-password\"\n          [placeholder]=\"bit.l['passwordPlaceholder']\"\n        />\n\n        <bit-error-tip\n          #password\n          [hasError]=\"{\n            min: bit.l['passwordMinLength'],\n            max: bit.l['passwordMaxLength'],\n            lowercase: bit.l['passwordLowercase'],\n            uppercase: bit.l['passwordUppercase'],\n            number: bit.l['passwordNumber'],\n            symbol: bit.l['passwordSymbol']\n          }\"\n        ></bit-error-tip>\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\">\n        {{ bit.l[\"passwordCheck\"] }}\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\" nzHasFeedback [nzErrorTip]=\"passwordCheck.ref\">\n        <input\n          nz-input\n          type=\"password\"\n          formControlName=\"password_check\"\n          [placeholder]=\"bit.l['passwordPlaceholder']\"\n        />\n        <bit-error-tip\n          #passwordCheck\n          [hasError]=\"{\n            correctly: bit.l['passwordCorrectly']\n          }\"\n        ></bit-error-tip>\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\" nzRequired>\n        {{ bit.l[\"resource\"] }}\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\">\n        <nz-space>\n          <nz-button-group *nzSpaceItem>\n            <button nz-button type=\"button\" (click)=\"allChecked()\">\n              <i nz-icon nzType=\"check-square\"></i>\n              {{ bit.l[\"checked\"] }}\n            </button>\n            <button nz-button type=\"button\" (click)=\"allUnchecked()\">\n              <i nz-icon nzType=\"close-square\"></i>\n              {{ bit.l[\"unchecked\"] }}\n            </button>\n          </nz-button-group>\n          <nz-button-group *nzSpaceItem>\n            <button nz-button type=\"button\" (click)=\"allExpand()\">\n              <i nz-icon nzType=\"node-expand\"></i>\n              {{ bit.l[\"expand\"] }}\n            </button>\n            <button nz-button type=\"button\" (click)=\"allClose()\">\n              <i nz-icon nzType=\"node-collapse\"></i>\n              {{ bit.l[\"close\"] }}\n            </button>\n          </nz-button-group>\n        </nz-space>\n\n        <nz-divider [nzDashed]=\"true\"></nz-divider>\n\n        <nz-tree\n          #nzTree\n          [nzBlockNode]=\"true\"\n          [nzShowLine]=\"true\"\n          [nzShowIcon]=\"true\"\n          [nzExpandAll]=\"true\"\n          [nzData]=\"nodes\"\n          (nzCheckBoxChange)=\"setResource()\"\n          nzCheckable\n        >\n        </nz-tree>\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\">\n        <span>\n          {{ bit.l[\"permission\"] }}\n        </span>\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\">\n        <nz-select\n          style=\"width: 100%\"\n          nzMode=\"multiple\"\n          formControlName=\"permission\"\n          [nzPlaceHolder]=\"bit.l['permissionPlaceholder']\"\n        >\n          <ng-container *ngFor=\"let x of permissionLists\">\n            <nz-option [nzLabel]=\"x.name | object: bit.locale\" [nzValue]=\"x.key\"></nz-option>\n          </ng-container>\n        </nz-select>\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\">\n        {{ bit.l[\"call\"] }}\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\" nzHasFeedback>\n        <input nz-input formControlName=\"call\" [placeholder]=\"bit.l['callPlaceholder']\" />\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\">\n        {{ bit.l[\"email\"] }}\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\" nzHasFeedback [nzErrorTip]=\"email.ref\">\n        <input nz-input formControlName=\"email\" [placeholder]=\"bit.l['emailPlaceholder']\" />\n        <bit-error-tip\n          #email\n          [hasError]=\"{\n            email: bit.l['emailCorrectly']\n          }\"\n        ></bit-error-tip>\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\">\n        {{ bit.l[\"phone\"] }}\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\" nzHasFeedback>\n        <input nz-input formControlName=\"phone\" [placeholder]=\"bit.l['phonePlaceholder']\" />\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\">\n        {{ bit.l[\"avatar\"] }}\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\">\n        <p>{{ bit.l[\"avatarTips\"] }}</p>\n        <nz-upload nzName=\"image\" bitUpload nzListType=\"picture-card\" (nzChange)=\"upload($event)\">\n          <ng-container *ngIf=\"!avatar\">\n            <i nz-icon nzType=\"plus\"></i>\n            <div class=\"ant-upload-text\">{{ bit.l[\"upload\"] }}</div>\n          </ng-container>\n          <img width=\"120\" *ngIf=\"avatar\" [src]=\"bit.static + avatar\" class=\"avatar\" />\n        </nz-upload>\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-form-item>\n      <nz-form-label bitCol=\"label\" nzRequired>\n        {{ bit.l[\"status\"] }}\n      </nz-form-label>\n      <nz-form-control bitCol=\"control\">\n        <nz-switch\n          formControlName=\"status\"\n          [nzCheckedChildren]=\"bit.l['on']\"\n          [nzUnCheckedChildren]=\"bit.l['off']\"\n        >\n        </nz-switch>\n      </nz-form-control>\n    </nz-form-item>\n\n    <nz-divider></nz-divider>\n\n    <nz-form-item>\n      <nz-form-control bitCol=\"submit\">\n        <nz-space>\n          <button *nzSpaceItem nz-button nzType=\"primary\" [disabled]=\"!form.valid\">\n            <i nz-icon nzType=\"check\"></i> {{ bit.l[\"submit\"] }}\n          </button>\n          <button *nzSpaceItem nz-button type=\"button\" bitBack>\n            <i nz-icon nzType=\"close\"></i> {{ bit.l[\"cancel\"] }}\n          </button>\n        </nz-space>\n      </nz-form-control>\n    </nz-form-item>\n  </form>\n</nz-card>\n"}]}],"members":{"nzTree":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":19,"character":3},"arguments":["nzTree",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bit","name":"BitSwalService","line":31,"character":18},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":32,"character":16},{"__symbolic":"reference","module":"ngx-bit","name":"BitService","line":33,"character":16},{"__symbolic":"reference","module":"ngx-bit","name":"BitEventsService","line":34,"character":20},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":35,"character":19},{"__symbolic":"reference","module":"ng-zorro-antd/notification","name":"NzNotificationService","line":36,"character":26},{"__symbolic":"reference","name":"AdminService"},{"__symbolic":"reference","module":"van-skeleton/role","name":"RoleService","line":38,"character":25},{"__symbolic":"reference","module":"van-skeleton/resource","name":"ResourceService","line":39,"character":29},{"__symbolic":"reference","module":"van-skeleton/permission","name":"PermissionService","line":40,"character":31}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"getData":[{"__symbolic":"method"}],"getRole":[{"__symbolic":"method"}],"getNodes":[{"__symbolic":"method"}],"setResource":[{"__symbolic":"method"}],"allChecked":[{"__symbolic":"method"}],"allUnchecked":[{"__symbolic":"method"}],"allCheckedStatus":[{"__symbolic":"method"}],"allExpand":[{"__symbolic":"method"}],"allClose":[{"__symbolic":"method"}],"allExpandStatus":[{"__symbolic":"method"}],"getPermission":[{"__symbolic":"method"}],"upload":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}]}},"AdminModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"van-skeleton","name":"ShareModule","line":8,"character":4}],"declarations":[{"__symbolic":"reference","name":"AdminIndexComponent"},{"__symbolic":"reference","name":"AdminAddComponent"},{"__symbolic":"reference","name":"AdminEditComponent"}],"exports":[{"__symbolic":"reference","name":"AdminIndexComponent"},{"__symbolic":"reference","name":"AdminAddComponent"},{"__symbolic":"reference","name":"AdminEditComponent"}]}]}],"members":{}}},"origins":{"AdminService":"./admin.service","AdminIndexComponent":"./admin-index/admin-index.component","AdminAddComponent":"./admin-add/admin-add.component","AdminEditComponent":"./admin-edit/admin-edit.component","AdminModule":"./admin.module"},"importAs":"van-skeleton/admin"}