{"version":3,"sources":["webpack:///./src/components/PagedTableView/index.vue?bce5","webpack:///./src/components/PagedTableView/index.vue?18c1","webpack:///./src/components/PagedTableView/index.vue?ca9e","webpack:///./src/components/PagedTableView/index.vue","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./src/views/admin/role/list.vue?677c","webpack:///./src/views/admin/role/edit.vue?c522","webpack:///./src/views/admin/role/edit.vue?eb18","webpack:///./src/views/admin/role/edit.vue?9775","webpack:///./src/views/admin/role/edit.vue","webpack:///./src/views/admin/role/list.vue?7e62","webpack:///./src/views/admin/role/list.vue?d44f","webpack:///./src/views/admin/role/list.vue","webpack:///./src/views/admin/role/permissionGrant/permissionGrantTree.vue?a924","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./src/views/admin/role/permissionGrant/components/functionGrant.vue?b23e","webpack:///./src/views/admin/role/editSinglePage.vue?c6bf","webpack:///./src/views/admin/role/permissionGrant/permissionGrantTree.vue?9e7c","webpack:///./src/views/admin/role/permissionGrant/providers/cmsCategories.vue?ef82","webpack:///./src/views/admin/role/permissionGrant/providers/cmsCategories.vue?dfd9","webpack:///./src/views/admin/role/permissionGrant/providers/cmsCategories.vue?c102","webpack:///./src/views/admin/role/permissionGrant/providers/cmsCategories.vue","webpack:///./src/views/admin/role/permissionGrant/providers/album.vue?d560","webpack:///./src/views/admin/role/permissionGrant/providers/album.vue?d471","webpack:///./src/views/admin/role/permissionGrant/providers/album.vue?fbc6","webpack:///./src/views/admin/role/permissionGrant/providers/album.vue","webpack:///./src/views/admin/role/permissionGrant/components/dataPermissionGrant.vue?4a24","webpack:///./src/views/admin/role/permissionGrant/components/dataPermissionGrant.vue?50fe","webpack:///./src/views/admin/role/permissionGrant/components/dataPermissionGrant.vue?1791","webpack:///./src/views/admin/role/permissionGrant/components/dataPermissionGrant.vue","webpack:///./src/views/admin/role/permissionGrant/components/functionGrant.vue?2903","webpack:///./src/views/admin/role/permissionGrant/components/functionGrant.vue?2489","webpack:///./src/views/admin/role/permissionGrant/components/functionGrant.vue?aea6","webpack:///./src/views/admin/role/permissionGrant/components/functionGrant.vue","webpack:///./src/views/admin/role/permissionGrant/permissionGrantTree.vue?da8e","webpack:///./src/views/admin/role/permissionGrant/permissionGrantTree.vue?8ad2","webpack:///./src/views/admin/role/permissionGrant/permissionGrantTree.vue","webpack:///./src/views/admin/role/permissionGrant/permissionTree.ts","webpack:///./src/views/admin/role/editSinglePage.vue?8b79","webpack:///./src/views/admin/role/editSinglePage.vue?5644","webpack:///./src/views/admin/role/editSinglePage.vue","webpack:///./src/views/admin/role/permissionGrant/components/dataPermissionGrant.vue?513f"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","directives","name","rawName","value","hiddenQueryForm","expression","attrs","nativeOn","$event","preventDefault","model","callback","$$v","queryForm","_t","on","handleSearch","_v","handleResetSearch","_s","totalMoneyTitle","_f","totalMoney","_e","table","tableItems","sort","handleSelectionChange","page","pageSizeChoose","pageSize","totalCount","$set","handleSizeChange","current_change","detailTitle","showDetail","onCloseDetail","staticRenderFns","listLoading","sorting","newValue","fetchData","$bus","$on","selection","$emit","console","log","pageParameter","skipCount","maxResultCount","fetchResult","searchFunction","Object","assign","then","res","items","resetForm","key","excludeResetKeys","indexOf","undefined","refreshData","e","prop","order","$router","push","indexRouteName","pageSizes","length","$route","meta","title","required","default","component","$","notARegExp","requireObjectCoercible","correctIsRegExpLogic","target","proto","forced","includes","searchString","String","arguments","scopedSlots","_u","fn","proxy","handleCreate","scope","row","handleEdit","$index","isStatic","handleDelete","viewRoleUsers","id","show","cancel","ref","roleRule","form","staticStyle","routesData","slot","save","isProcessNodeChange","grantedPermissions","permissions","allScopes","defaultData","displayName","normalizedName","description","isDefault","roleScopes","message","trigger","type","pattern","max","getpermissionDefinitionAll","fetchRoleScopes","api","enumService","getValues","typeName","loading","$loading","dataId","role","getRoleForEdit","$tree","$refs","tree","rolePermissions","map","p","children","find","x","parentId","setCheckedKeys","finally","setTimeout","close","$nextTick","dataForm","clearValidate","permissionDefinition","getAll","validate","valid","getCheckedNodes","item","halfKeys","getHalfCheckedKeys","concat","update","body","create","$message","success","node","checked","setAllChildrenChecked","$node","getNode","parent","data","setChecked","i","child","keyword","params","index","toString","roleId","$confirm","delete","components","EditRole","PagedTableView","$includes","addToUnscopables","arrayMethodUsesToLength","USES_TO_LENGTH","ACCESSORS","1","el","currentTab","permissionItems","back","_l","permissionItem","label","onPermissionGrantChange","treeData","defaultProps","grantValues","onCmsCategoryCheckChange","values","cmsCategory","disabled","labelProperty","idProperty","keyProperty","array","childrenProperty","fieldMappings","parentIdProperty","parentNode","parentIdValue","cmsCategoryTree","isChecked","isSubTreeHasChecked","checkedCategories","getCheckedKeys","deep","displayItems","dataPermissionScopeProvider","getItems","providerName","dataLimitSetting","dataPermissionProvider","permission","dataLimit","enableDataPermission","enableDataPermissionSpecifiedLimit","dataPermissionSpecifiedDataSourceProvider","DataPermissionDataSourceAlbum","DataPermissionDataSourceCmsCategories","functions","permissionFunction","onFunctionGrantChange","_functions","hasGrantSome","filter","s","isHiddenForMenu","expand","grantPermissions","nodes","cancelAllGrant","activeCollapses","grantAllParents","grantAllChildren","cancelGrantAllChildren","forEach","some","FunctionGrant","DataPermissionGrant","createPermissionGrantTree","grantedDataPermissions","result","definition","dataPermissionSettingFilterResult","permissionCode","dataPermissionSetting","All","details","Specified","Mine","enableDataPermissionForCreator","MyDepartment","MyDepartmentAndSubs","getGrantedPermissions","getGrantedDataPermissions","dataPermissionSettings","parseInt","initPermissionGrantTree","permissionDefinitions","getGrantedDataPermissionSettings","formModel","input","PermissionGrantTree"],"mappings":"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","file":"js/admin-role.f841eb16.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app-container\"},[_c('el-row',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.hiddenQueryForm),expression:\"!hiddenQueryForm\"}],staticClass:\"row-bg\",attrs:{\"justify\":\"space-around\"}},[_c('el-form',{staticClass:\"query-form\",attrs:{\"inline\":true},nativeOn:{\"submit\":function($event){$event.preventDefault();}},model:{value:(_vm.queryForm),callback:function ($$v) {_vm.queryForm=$$v},expression:\"queryForm\"}},[_vm._t(\"condition\"),_c('el-button',{staticClass:\"margin-bottom-20\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.handleSearch}},[_c('i',{staticClass:\"el-icon-search\"}),_vm._v(\"查询 \")]),_c('el-button',{staticClass:\"margin-bottom-20\",attrs:{\"type\":\"default\"},on:{\"click\":_vm.handleResetSearch}},[_c('i',{staticClass:\"el-icon-refresh\"}),_vm._v(\"重置刷新 \")]),_vm._t(\"other-buttons\")],2)],1),_vm._t(\"buttons\"),(_vm.showTotalMoney)?_c('div',{staticClass:\"margin-bottom-20\"},[_vm._v(_vm._s(_vm.totalMoneyTitle)+\":\"+_vm._s(_vm._f(\"formatMoney\")(_vm.totalMoney))+\"元\")]):_vm._e(),_c('el-table',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.table.listLoading),expression:\"table.listLoading\"}],attrs:{\"data\":_vm.tableItems,\"element-loading-text\":\"loading...\",\"border\":\"\",\"stripe\":\"\",\"fit\":\"\",\"highlight-current-row\":\"\"},on:{\"sort-change\":_vm.sort,\"selection-change\":_vm.handleSelectionChange}},[_vm._t(\"table\")],2),_c('el-pagination',{attrs:{\"current-page\":_vm.table.page,\"page-sizes\":_vm.pageSizeChoose,\"page-size\":_vm.table.pageSize,\"layout\":\"total,sizes, prev, pager, next\",\"total\":_vm.table.totalCount},on:{\"update:currentPage\":function($event){return _vm.$set(_vm.table, \"page\", $event)},\"update:current-page\":function($event){return _vm.$set(_vm.table, \"page\", $event)},\"size-change\":_vm.handleSizeChange,\"current-change\":_vm.current_change}}),_c('el-drawer',{attrs:{\"title\":_vm.detailTitle,\"visible\":_vm.showDetail,\"before-close\":_vm.onCloseDetail},on:{\"update:visible\":function($event){_vm.showDetail=$event}}},[_c('router-view')],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport {Component, Prop, Watch} from \"vue-property-decorator\";\r\n\r\ninterface ISoringPagedResultDto {\r\n sorting: string;\r\n maxResultCount: number;\r\n skipCount: number;\r\n}\r\n\r\nimport {Vue} from \"vue-property-decorator\";\r\nimport {constants} from \"http2\";\r\n\r\n@Component({name: \"PagedTableView\"})\r\nexport default class PagedTableView extends Vue {\r\n @Prop()\r\n queryForm: any;\r\n\r\n @Prop({required: true})\r\n searchFunction!: Function;\r\n\r\n @Prop({})\r\n pageSizes!: Array;\r\n\r\n @Prop({required: false, default: 10})\r\n pageSize!: number;\r\n\r\n @Prop({required: false, default: 0})\r\n showTotalMoney!: number;\r\n @Prop({required: false, default: 0})\r\n totalMoney!: number;\r\n @Prop({required: false, default: \"合计\"})\r\n totalMoneyTitle!: number;\r\n\r\n @Prop()\r\n resetForm!: Function;\r\n\r\n @Prop({required: false})\r\n excludeResetKeys!: Array;\r\n\r\n @Prop({required: false, default: false})\r\n hiddenQueryForm!: boolean;\r\n\r\n @Prop({required: false, default: ''})\r\n indexRouteName!: string;\r\n\r\n @Prop({required: false, default: 0})\r\n detailId: any;\r\n\r\n get pageSizeChoose() {\r\n if (this.pageSizes && this.pageSizes.length) {\r\n return this.pageSizes;\r\n } else {\r\n return [10, 20, 50, 100];\r\n }\r\n }\r\n\r\n showDetail: boolean = false;\r\n\r\n @Watch('detailId')\r\n onDetailIdChange(newValue: any) {\r\n if (newValue) {\r\n this.showDetail = true;\r\n } else {\r\n this.showDetail = false\r\n }\r\n }\r\n\r\n\r\n // private fields\r\n tableItems: any = [];\r\n table: any = {\r\n listLoading: true,\r\n page: 1,\r\n totalCount: 0,\r\n pageSize: 0,\r\n sorting: \"\",\r\n };\r\n\r\n\r\n created() {\r\n this.table.pageSize = this.pageSize;\r\n this.fetchData();\r\n\r\n let $bus = (this as any).$bus;\r\n if ($bus) {\r\n $bus.$on(\"data-updated\", () => this.fetchData());\r\n $bus.$on(\"data-created\", () => this.fetchData());\r\n $bus.$on(\"data-deleted\", () => this.fetchData());\r\n $bus.$on(\"api-action-completed\", () => this.fetchData());\r\n }\r\n }\r\n\r\n handleSelectionChange(selection: any[]) {\r\n this.$emit(\"selectionList\", selection);\r\n }\r\n\r\n refreshData() {\r\n console.log(\"pagedTableView:refreshData\");\r\n this.table.page = 1;\r\n this.fetchData();\r\n }\r\n\r\n\r\n fetchData() {\r\n const pageParameter: ISoringPagedResultDto = {\r\n skipCount: (this.table.page - 1) * this.table.pageSize,\r\n maxResultCount: this.table.pageSize,\r\n sorting: this.table.sorting,\r\n };\r\n this.table.listLoading = true;\r\n\r\n const fetchResult = this.searchFunction(\r\n Object.assign({}, this.queryForm, pageParameter)\r\n );\r\n fetchResult.then((res: any) => {\r\n this.table.listLoading = false;\r\n this.tableItems = res.items!;\r\n this.table.totalCount = res.totalCount!;\r\n if (this.table.totalCount) {\r\n this.$emit(\"fetchDataList\", this.tableItems);\r\n }\r\n });\r\n\r\n return fetchResult;\r\n }\r\n\r\n // events handles\r\n handleSearch() {\r\n this.table.page = 1;\r\n this.fetchData();\r\n }\r\n\r\n handleResetSearch() {\r\n if (this.resetForm !== null && typeof this.resetForm === \"function\") {\r\n this.resetForm();\r\n } else {\r\n if (this.queryForm) {\r\n for (let key in this.queryForm) {\r\n if (\r\n (this.excludeResetKeys &&\r\n this.excludeResetKeys.indexOf(key) === -1) ||\r\n !this.excludeResetKeys\r\n )\r\n this.queryForm[key] = undefined;\r\n }\r\n }\r\n }\r\n this.refreshData();\r\n }\r\n\r\n // 更新当前页\r\n async current_change(e: number) {\r\n this.table.page = e;\r\n await this.fetchData();\r\n }\r\n\r\n // Table排序\r\n async sort(e: any) {\r\n console.log(\"sort : \", e);\r\n if (e.prop && e.order) {\r\n this.table.sorting = `${e.prop} ${e.order}`;\r\n }\r\n this.fetchData();\r\n }\r\n\r\n // 修改一页显示的条目\r\n handleSizeChange(e: number) {\r\n this.table.pageSize = e;\r\n this.fetchData();\r\n }\r\n\r\n onCloseDetail() {\r\n this.showDetail = false\r\n this.$emit('detail-close')\r\n this.$router.push({\r\n name: this.indexRouteName\r\n })\r\n\r\n }\r\n\r\n get detailTitle() {\r\n if ((this as any).$route.meta.title) {\r\n return (this as any).$route.meta.title;\r\n } else {\r\n return \"详情\";\r\n }\r\n }\r\n\r\n\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4dfb1dff&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4dfb1dff\",\n null\n \n)\n\nexport default component.exports","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('paged-table-view',{attrs:{\"search-function\":_vm.fetchData,\"query-form\":_vm.queryForm},scopedSlots:_vm._u([{key:\"condition\",fn:function(){return [_c('el-form-item',[_c('el-input',{attrs:{\"clearable\":\"\",\"type\":\"text\",\"placeholder\":\"请输入关键字查询\"},model:{value:(_vm.queryForm.keyword),callback:function ($$v) {_vm.$set(_vm.queryForm, \"keyword\", $$v)},expression:\"queryForm.keyword\"}})],1)]},proxy:true},{key:\"buttons\",fn:function(){return [_c('el-divider',{staticClass:\"query-form-divider\"}),_c('el-button',{directives:[{name:\"permission\",rawName:\"v-permission\",value:('Pages.Roles.Create'),expression:\"'Pages.Roles.Create'\"}],staticClass:\"margin-bottom-20\",attrs:{\"type\":\"success\"},on:{\"click\":_vm.handleCreate}},[_c('i',{staticClass:\"el-icon-plus\"}),_vm._v(\"新建 \")])]},proxy:true},{key:\"table\",fn:function(){return [_c('el-table-column',{attrs:{\"label\":\"角色编码\",\"prop\":\"name\"}}),_c('el-table-column',{attrs:{\"label\":\"角色名称\",\"prop\":\"displayName\"}}),_c('el-table-column',{attrs:{\"label\":\"默认角色\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.isDefault)?_c('el-tag',[_vm._v(\" 默认 \"),_c('el-tooltip',{staticClass:\"item\",attrs:{\"content\":\"新建用户时默认赋予用户的权限\",\"placement\":\"top\"}},[_c('svg-icon',{attrs:{\"name\":\"question\"}})],1)],1):_vm._e()]}}])}),_c('el-table-column',{attrs:{\"label\":\"锁定\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.isStatic)?_c('el-tag',{attrs:{\"effect\":\"plain\"}},[_vm._v(\" 锁定 \"),_c('el-tooltip',{staticClass:\"item\",attrs:{\"content\":\"锁定的权限为系统默认,不能删除\",\"placement\":\"top\"}},[_c('svg-icon',{attrs:{\"name\":\"question\"}})],1)],1):_vm._e()]}}])}),_c('el-table-column',{attrs:{\"label\":\"备注\",\"prop\":\"description\"}}),_c('el-table-column',{attrs:{\"label\":\"操作\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{directives:[{name:\"permission\",rawName:\"v-permission\",value:('Pages.Roles.Update'),expression:\"'Pages.Roles.Update'\"}],attrs:{\"size\":\"mini\"},on:{\"click\":function($event){return _vm.handleEdit(scope.$index, scope.row)}}},[_vm._v(\"编辑\")]),(!scope.row.isStatic)?_c('el-button',{directives:[{name:\"permission\",rawName:\"v-permission\",value:('Pages.Roles.Delete'),expression:\"'Pages.Roles.Delete'\"}],attrs:{\"size\":\"mini\",\"type\":\"danger\"},on:{\"click\":function($event){return _vm.handleDelete(scope.$index, scope.row)}}},[_vm._v(\"删除\")]):_vm._e(),_c('el-button',{attrs:{\"size\":\"mini\",\"type\":\"warning\"},on:{\"click\":function($event){return _vm.viewRoleUsers(scope.row.id)}}},[_vm._v(\"角色用户\")])]}}])})]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{\"title\":_vm.title,\"visible\":_vm.show,\"close-on-click-modal\":false},on:{\"update:visible\":function($event){_vm.show=$event},\"close\":_vm.cancel}},[_c('el-form',{ref:\"dataForm\",attrs:{\"rules\":_vm.roleRule,\"model\":_vm.form,\"label-position\":\"top\"}},[_c('el-tabs',{attrs:{\"tabPosition\":\"left\"}},[_c('el-tab-pane',{attrs:{\"label\":\"基础信息\"}},[_c('el-form-item',{attrs:{\"label\":\"角色编号\",\"prop\":\"name\"}},[_c('el-input',{attrs:{\"autocomplete\":\"off\",\"disabled\":_vm.form.isStatic},model:{value:(_vm.form.name),callback:function ($$v) {_vm.$set(_vm.form, \"name\", $$v)},expression:\"form.name\"}})],1),_c('el-form-item',{attrs:{\"label\":\"角色名称\",\"prop\":\"displayName\"}},[_c('el-input',{attrs:{\"autocomplete\":\"false\",\"disabled\":_vm.form.isStatic},model:{value:(_vm.form.displayName),callback:function ($$v) {_vm.$set(_vm.form, \"displayName\", $$v)},expression:\"form.displayName\"}})],1),_c('el-form-item',{attrs:{\"label\":\"默认角色\",\"prop\":\"isDefault\"}},[_c('el-switch',{attrs:{\"active-color\":\"#13ce66\",\"inactive-color\":\"#ff4949\",\"disabled\":_vm.form.isStatic},model:{value:(_vm.form.isDefault),callback:function ($$v) {_vm.$set(_vm.form, \"isDefault\", $$v)},expression:\"form.isDefault\"}}),_c('el-tooltip',{staticClass:\"item\",attrs:{\"content\":\"新建用户时默认赋予用户的权限\",\"placement\":\"top\"}},[_c('svg-icon',{staticStyle:{\"margin\":\"0 20px\"},attrs:{\"name\":\"question\"}})],1)],1),_c('el-form-item',{attrs:{\"label\":\"锁定\",\"prop\":\"isStatic\"}},[_c('el-switch',{attrs:{\"active-color\":\"#13ce66\",\"inactive-color\":\"#ff4949\"},model:{value:(_vm.form.isStatic),callback:function ($$v) {_vm.$set(_vm.form, \"isStatic\", $$v)},expression:\"form.isStatic\"}}),_c('el-tooltip',{staticClass:\"item\",attrs:{\"content\":\"锁定的权限为系统默认,不能删除\",\"placement\":\"top\"}},[_c('svg-icon',{staticStyle:{\"margin\":\"0 20px\"},attrs:{\"name\":\"question\"}})],1)],1),_c('el-form-item',{attrs:{\"label\":\"备注\",\"prop\":\"description\"}},[_c('el-input',{model:{value:(_vm.form.description),callback:function ($$v) {_vm.$set(_vm.form, \"description\", $$v)},expression:\"form.description\"}})],1)],1),_c('el-tab-pane',{attrs:{\"label\":\"权限\"}},[_c('div',{staticStyle:{\"max-height\":\"400px\",\"overflow-y\":\"auto\"}},[_c('el-form-item',{attrs:{\"label\":\"权限\"}},[_c('el-tree',{ref:\"tree\",attrs:{\"node-key\":\"key\",\"data\":_vm.routesData,\"show-checkbox\":\"\",\"default-expand-all\":\"\"}})],1)],1)])],1)],1),_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{attrs:{\"type\":\"default\"},on:{\"click\":_vm.cancel}},[_vm._v(\"取消\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"确定\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n Component,\n Vue,\n Inject,\n Prop,\n Watch,\n Ref\n} from \"vue-property-decorator\";\n\nimport api from \"@/api\";\nimport {\n GetRoleForEditOutput,\n RoleDto,\n RoleCreateOrUpdateDto,\n PermissionDefinitionDto,\n SelectListItem, CreateRoleDto\n} from \"@/api/appService\";\nimport { createNgTree, rebuildKeys, getKeys } from \"@/utils/tree\";\nimport { ElForm } from 'element-ui/types/form';\n\n@Component({\n name:'EditRole'\n})\nexport default class EditRole extends Vue {\n @Ref() readonly dataForm!: ElForm;\n\n isProcessNodeChange:boolean = false;\n\n routesData: PermissionDefinitionDto[] = [];\n grantedPermissions: any[] = [];\n permissions: any[] = [];\n\n allScopes: SelectListItem[] = [];\n\n @Prop({required:true})\n dataId!:number;\n\n defaultData: CreateRoleDto | RoleDto = {\n name: undefined,\n displayName: undefined,\n normalizedName: undefined,\n description: undefined,\n grantedPermissions: [],\n id:0,\n isDefault:false,\n isStatic:false,\n roleScopes:[]\n };\n\n\n show = false;\n form: CreateRoleDto = { ...this.defaultData };\n\n async created(){\n await this.getpermissionDefinitionAll()\n this.fetchRoleScopes();\n }\n\n get title() {\n if (this.dataId) {\n return `编辑 ${this.form.displayName}`;\n } else {\n return \"新建\";\n }\n }\n\n fetchRoleScopes() {\n api.enumService.getValues({typeName:'PermissionDefinitionScope'}).then(res=>{\n this.allScopes = res\n })\n }\n\n @Watch(\"show\")\n async onShowChange(value: boolean) {\n if (value) {\n const loading = this.$loading({\n target: \".el-dialog\"\n });\n if(this.dataId){\n await api.role\n .getRoleForEdit({ id: this.dataId })\n .then((res: GetRoleForEditOutput) => {\n this.form = res.role!;\n if(!this.form.roleScopes){\n this.form.roleScopes = [];\n }\n this.grantedPermissions = res.grantedPermissions!;\n this.permissions = res.permissions!;\n this.routesData = createNgTree(\n this.permissions,\n \"parentId\",\n \"id\",\n null,\n \"children\",\n \"\",\n false,\n 'name'\n );\n console.log(\"routesData\", this.routesData);\n const $tree = (this.$refs.tree as any);\n\n const rolePermissions = [] as any\n this.grantedPermissions.map(p => {\n let children = this.grantedPermissions.find(x=>{\n if(x.parentId==p.id){\n return x;\n }\n })\n if(!children){\n rolePermissions.push(p.name)\n }else{\n // if (p.parentId > 0) {\n // rolePermissions.push(p.name)\n // }\n }\n\n })\n\n $tree.setCheckedKeys(rolePermissions);\n })\n .finally(() => {\n setTimeout(() => {\n loading.close();\n }, 200);\n });\n } else {\n this.form = {...this.defaultData};\n }\n\n\n } else {\n this.form = { ...this.defaultData };\n }\n this.$nextTick(() => {\n this.dataForm.clearValidate();\n });\n }\n\n\n async getpermissionDefinitionAll() {\n await api.permissionDefinition.getAll({ maxResultCount:33567 }).then(res => {\n // this.allPermissions = res;\n this.routesData = createNgTree(\n res.items!,\n \"parentId\",\n \"id\",\n null,\n \"children\",\n \"\",\n false,\n 'name'\n );\n })\n }\n async save() {\n (this.$refs.dataForm as any).validate(async (valid: boolean) => {\n if (valid) {\n let p = [];\n const $tree = this.$refs.tree as any;\n p = $tree.getCheckedNodes().map((item:any)=>item.key);\n let halfKeys = $tree.getHalfCheckedKeys();\n if (halfKeys) {\n p = p.concat(halfKeys);\n }\n if (this.dataId) {\n await api.role.update({\n body: { ...this.form, grantedPermissions: p }\n });\n } else {\n await api.role.create({\n body: { ...this.form, grantedPermissions: p }\n });\n }\n this.show = false;\n this.$message.success(\"更新成功\");\n this.$emit(\"onSave\");\n }\n });\n }\n\n handlePermissionNodeCheck(node:any,checked:boolean){\n if(this.isProcessNodeChange){\n return;\n }\n this.isProcessNodeChange = true;\n const $tree = (this.$refs.tree as any);\n this.setAllChildrenChecked($tree,node,checked);\n\n // set parent checked\n let $node = $tree.getNode(node.key);\n while($node.parent && $node.parent!==null && $node.parent.data && $node.parent.data.id){\n let key = $node.parent.data.key;\n $tree.setChecked(key,true);\n $node = $tree.getNode(key);\n }\n\n setTimeout(()=>{\n this.isProcessNodeChange = false;\n },100);\n }\n\n setAllChildrenChecked($tree:any, node:any,checked:boolean){\n if(node.children && node.children.length > 0){\n for(let i = 0;i {\n await api.role\n .delete({\n id: row.id\n })\n .then(res => {\n this.$message({\n type: \"success\",\n message: \"删除成功!\"\n });\n });\n });\n }\n\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./list.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./list.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./list.vue?vue&type=template&id=c75dafc8&scoped=true&\"\nimport script from \"./list.vue?vue&type=script&lang=ts&\"\nexport * from \"./list.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c75dafc8\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissionGrantTree.vue?vue&type=style&index=0&id=211fbfcd&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissionGrantTree.vue?vue&type=style&index=0&id=211fbfcd&scoped=true&lang=scss&\"","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./functionGrant.vue?vue&type=style&index=0&id=4d52b342&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./functionGrant.vue?vue&type=style&index=0&id=4d52b342&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app-container\"},[_c('el-form',{ref:\"dataForm\",attrs:{\"label-position\":\"right\",\"label-width\":\"80px\",\"model\":_vm.form}},[_c('el-tabs',{model:{value:(_vm.currentTab),callback:function ($$v) {_vm.currentTab=$$v},expression:\"currentTab\"}},[_c('el-tab-pane',{attrs:{\"label\":\"角色信息\",\"name\":\"basic\"}},[_c('el-row',[_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"角色编号\",\"prop\":\"name\"}},[_c('el-input',{attrs:{\"autocomplete\":\"off\",\"disabled\":_vm.form.isStatic},model:{value:(_vm.form.name),callback:function ($$v) {_vm.$set(_vm.form, \"name\", $$v)},expression:\"form.name\"}})],1),_c('el-form-item',{attrs:{\"label\":\"角色名称\",\"prop\":\"displayName\"}},[_c('el-input',{attrs:{\"autocomplete\":\"false\",\"disabled\":_vm.form.isStatic},model:{value:(_vm.form.displayName),callback:function ($$v) {_vm.$set(_vm.form, \"displayName\", $$v)},expression:\"form.displayName\"}})],1),_c('el-form-item',{attrs:{\"label\":\"默认角色\",\"prop\":\"isDefault\"}},[_c('el-switch',{attrs:{\"active-color\":\"#13ce66\",\"inactive-color\":\"#ff4949\",\"disabled\":_vm.form.isStatic},model:{value:(_vm.form.isDefault),callback:function ($$v) {_vm.$set(_vm.form, \"isDefault\", $$v)},expression:\"form.isDefault\"}}),_c('el-tooltip',{staticClass:\"item\",attrs:{\"content\":\"新建用户时默认赋予用户的权限\",\"placement\":\"top\"}},[_c('svg-icon',{staticStyle:{\"margin\":\"0 20px\"},attrs:{\"name\":\"question\"}})],1)],1),_c('el-form-item',{attrs:{\"label\":\"锁定\",\"prop\":\"isStatic\"}},[_c('el-switch',{attrs:{\"active-color\":\"#13ce66\",\"inactive-color\":\"#ff4949\"},model:{value:(_vm.form.isStatic),callback:function ($$v) {_vm.$set(_vm.form, \"isStatic\", $$v)},expression:\"form.isStatic\"}}),_c('el-tooltip',{staticClass:\"item\",attrs:{\"content\":\"锁定的权限为系统默认,不能删除\",\"placement\":\"top\"}},[_c('svg-icon',{staticStyle:{\"margin\":\"0 20px\"},attrs:{\"name\":\"question\"}})],1)],1),_c('el-form-item',{attrs:{\"label\":\"备注\",\"prop\":\"description\"}},[_c('el-input',{model:{value:(_vm.form.description),callback:function ($$v) {_vm.$set(_vm.form, \"description\", $$v)},expression:\"form.description\"}})],1)],1)],1)],1),_c('el-tab-pane',{attrs:{\"label\":\"权限分配\",\"name\":\"grant\"}},[_c('permission-grant-tree',{attrs:{\"nodes\":_vm.permissionItems,\"granted-permissions\":_vm.grantedPermissions}})],1)],1)],1),_c('el-divider'),_c('div',{staticClass:\"margin-top-xs\"},[_c('el-button',{attrs:{\"type\":\"default\"},on:{\"click\":function($event){return _vm.$router.back()}}},[_vm._v(\"返回\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.save()}}},[_vm._v(\"保存\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"permission-tree\"},_vm._l((_vm.menus),function(permissionItem){return _c('li',{key:permissionItem.id,staticClass:\"permission-item\"},[_c('div',{staticClass:\"header\"},[_c('el-checkbox',{attrs:{\"label\":permissionItem.label},on:{\"change\":function($event){return _vm.onPermissionGrantChange($event,permissionItem)}},model:{value:(permissionItem.checked),callback:function ($$v) {_vm.$set(permissionItem, \"checked\", $$v)},expression:\"permissionItem.checked\"}},[_vm._v(\" \"+_vm._s(permissionItem.label)+\" \")])],1),_c('div',{staticClass:\"permission-detail\"},[_c('function-grant',{attrs:{\"node\":permissionItem}}),_c('data-permission-grant',{attrs:{\"node\":permissionItem}})],1),(permissionItem.children)?_c('permission-grant-tree',{attrs:{\"nodes\":permissionItem.children}}):_vm._e()],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-tree',{ref:\"cmsCategoryTree\",attrs:{\"data\":_vm.treeData,\"show-checkbox\":\"\",\"node-key\":\"id\",\"props\":_vm.defaultProps,\"default-checked-keys\":_vm.grantValues},on:{\"check-change\":_vm.onCmsCategoryCheckChange}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nimport {Component, Model, Prop, Ref, Vue, Watch} from \"vue-property-decorator\";\r\nimport {createNgTree, createTree, INgNode} from \"@/utils/tree\";\r\nimport {CmsCategoryDto} from \"@/api/appService\";\r\nimport api from '@/api/index'\r\nimport {ElTree} from \"element-ui/types/tree\";\r\n\r\n@Component({\r\n name: 'DataPermissionDataSourceCmsCategories'\r\n})\r\nexport default class DataPermissionDataSourceCmsCategories extends Vue {\r\n\r\n\r\n\r\n\r\n @Model('change',{required: false,default:[]})\r\n grantValues!: string[];\r\n\r\n\r\n values:string[] = [];\r\n\r\n\r\n treeData: INgNode[] = []\r\n\r\n defaultProps = {\r\n label: 'label',\r\n children: 'children'\r\n }\r\n\r\n @Watch('values',{deep:true})\r\n onValuesChange(newValue:string[]){\r\n this.$emit('change',newValue)\r\n }\r\n\r\n created() {\r\n\r\n this.values = this.grantValues;\r\n\r\n api.cmsCategory.getAll({maxResultCount:65535}).then(res => {\r\n this.treeData = createTree({\r\n disabled: false,\r\n labelProperty: 'displayName',\r\n idProperty: 'id',\r\n keyProperty: 'id',\r\n array: res.items??[],\r\n childrenProperty: 'children',\r\n fieldMappings: () => {\r\n },\r\n parentIdProperty: 'parentId',\r\n parentNode: undefined,\r\n parentIdValue:null\r\n })\r\n\r\n this.$nextTick(()=>{\r\n (this.$refs.cmsCategoryTree as any).setCheckedKeys(this.values)\r\n })\r\n })\r\n }\r\n\r\n onCmsCategoryCheckChange(data:INgNode, isChecked: boolean,isSubTreeHasChecked:boolean){\r\n const checkedCategories = (this.$refs.cmsCategoryTree as any).getCheckedKeys();\r\n this.$emit('change', checkedCategories)\r\n }\r\n\r\n}\r\n\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./cmsCategories.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./cmsCategories.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./cmsCategories.vue?vue&type=template&id=1019bd22&scoped=true&\"\nimport script from \"./cmsCategories.vue?vue&type=script&lang=ts&\"\nexport * from \"./cmsCategories.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1019bd22\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-select',{attrs:{\"multiple\":\"\",\"collapse-tags\":\"\",\"placeholder\":\"请选择要分配的相册\"},model:{value:(_vm.values),callback:function ($$v) {_vm.values=$$v},expression:\"values\"}},_vm._l((_vm.displayItems),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.displayName,\"value\":item.id.toString()}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nimport api from '@/api/index'\r\nimport {DisplayItem} from \"@/api/appService\";\r\nimport {Component, Model, Prop, Vue, Watch} from \"vue-property-decorator\";\r\n\r\n@Component({\r\n name:'DataPermissionDataSourceAlbum'\r\n})\r\nexport default class DataPermissionDataSourceAlbum extends Vue {\r\n\r\n displayItems: DisplayItem[] = []\r\n\r\n @Model('change',{required: false,default:[]})\r\n grantValues!: string[];\r\n\r\n\r\n values:string[] = [];\r\n\r\n created() {\r\n this.values = this.grantValues\r\n api.dataPermissionScopeProvider.getItems({providerName:'Album'}).then(values => {\r\n this.displayItems = values;\r\n })\r\n }\r\n\r\n @Watch('values',{deep:true})\r\n onValuesChange(newValue:string[]){\r\n this.$emit('change',newValue)\r\n }\r\n}\r\n\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./album.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./album.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./album.vue?vue&type=template&id=e23a00d4&scoped=true&\"\nimport script from \"./album.vue?vue&type=script&lang=ts&\"\nexport * from \"./album.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e23a00d4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.permissionDefinition.enableDataPermission)?_c('div',{staticClass:\"data-permission-setting\"},[_c('div',{staticClass:\"data-permission-title\"},[_vm._v(\" 数据权限 \")]),_c('div',{staticClass:\"data-permission-config-container\"},[_c('el-radio',{attrs:{\"label\":\"Mine\"},model:{value:(_vm.dataLimitSetting.scope),callback:function ($$v) {_vm.$set(_vm.dataLimitSetting, \"scope\", $$v)},expression:\"dataLimitSetting.scope\"}},[_vm._v(\"只看自己\")]),_c('el-radio',{attrs:{\"label\":\"MyDepartment\"},model:{value:(_vm.dataLimitSetting.scope),callback:function ($$v) {_vm.$set(_vm.dataLimitSetting, \"scope\", $$v)},expression:\"dataLimitSetting.scope\"}},[_vm._v(\"本部门\")]),_c('el-radio',{attrs:{\"label\":\"All\"},model:{value:(_vm.dataLimitSetting.scope),callback:function ($$v) {_vm.$set(_vm.dataLimitSetting, \"scope\", $$v)},expression:\"dataLimitSetting.scope\"}},[_vm._v(\"全部\")]),(_vm.permissionDefinition.enableDataPermissionSpecifiedLimit)?_c('el-radio',{attrs:{\"label\":\"Specified\"},model:{value:(_vm.dataLimitSetting.scope),callback:function ($$v) {_vm.$set(_vm.dataLimitSetting, \"scope\", $$v)},expression:\"dataLimitSetting.scope\"}},[_vm._v(\"指定范围 \")]):_vm._e(),(_vm.dataPermissionProvider === 'Album')?_c('data-permission-data-source-album',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.dataLimitSetting.scope === 'Specified'),expression:\"dataLimitSetting.scope === 'Specified'\"}],model:{value:(_vm.dataLimitSetting.details),callback:function ($$v) {_vm.$set(_vm.dataLimitSetting, \"details\", $$v)},expression:\"dataLimitSetting.details\"}}):_vm._e(),(_vm.dataPermissionProvider === 'CmsCategory')?_c('data-permission-data-source-cms-categories',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.dataLimitSetting.scope === 'Specified'),expression:\"dataLimitSetting.scope === 'Specified'\"}],model:{value:(_vm.dataLimitSetting.details),callback:function ($$v) {_vm.$set(_vm.dataLimitSetting, \"details\", $$v)},expression:\"dataLimitSetting.details\"}}):_vm._e()],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nimport {Component, Prop, Vue} from \"vue-property-decorator\";\r\nimport {IPermissionTreeNode} from \"@/views/admin/role/permissionGrant/permissionTree\";\r\nimport DataPermissionDataSourceAlbum from \"@/views/admin/role/permissionGrant/providers/album.vue\";\r\nimport DataPermissionDataSourceCmsCategories from \"@/views/admin/role/permissionGrant/providers/cmsCategories.vue\";\r\n\r\n@Component({\r\n name: 'DataPermissionGrant',\r\n components: {\r\n DataPermissionDataSourceAlbum,\r\n DataPermissionDataSourceCmsCategories\r\n }\r\n})\r\nexport default class DataPermissionGrant extends Vue {\r\n\r\n @Prop({required: true})\r\n node!: IPermissionTreeNode;\r\n\r\n\r\n get permissionDefinition() {\r\n return this.node.data.permission\r\n }\r\n\r\n get dataLimitSetting() {\r\n return this.node.data.dataLimit\r\n }\r\n\r\n get dataPermissionProvider(): string {\r\n return (this.permissionDefinition.enableDataPermission && this.permissionDefinition.enableDataPermissionSpecifiedLimit)\r\n ? this.permissionDefinition.dataPermissionSpecifiedDataSourceProvider!\r\n : ''\r\n }\r\n\r\n}\r\n\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dataPermissionGrant.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dataPermissionGrant.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./dataPermissionGrant.vue?vue&type=template&id=61ffd26e&scoped=true&\"\nimport script from \"./dataPermissionGrant.vue?vue&type=script&lang=ts&\"\nexport * from \"./dataPermissionGrant.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./dataPermissionGrant.vue?vue&type=style&index=0&id=61ffd26e&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"61ffd26e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.functions.length)?_c('div',{staticClass:\"functions\"},[_c('div',{staticClass:\"title\"},[_vm._v(\" 操作权限 \")]),_vm._l((_vm.functions),function(permissionFunction){return _c('el-checkbox',{key:permissionFunction.id,on:{\"change\":function($event){return _vm.onFunctionGrantChange($event,permissionFunction)}},model:{value:(permissionFunction.checked),callback:function ($$v) {_vm.$set(permissionFunction, \"checked\", $$v)},expression:\"permissionFunction.checked\"}},[_vm._v(\" \"+_vm._s(permissionFunction.label)+\" \")])})],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nimport {Component, Prop, Vue} from \"vue-property-decorator\";\r\nimport {IPermissionTreeNode} from \"@/views/admin/role/permissionGrant/permissionTree\";\r\n\r\n@Component({\r\n name: 'FunctionGrant'\r\n})\r\nexport default class FunctionGrant extends Vue {\r\n\r\n @Prop({required: true})\r\n node!: IPermissionTreeNode;\r\n\r\n private _functions?: IPermissionTreeNode[] = undefined;\r\n\r\n get functions() {\r\n if (!this._functions) {\r\n if (this.node.children) {\r\n this._functions = this.node.children.filter(item => item.data.permission.isHiddenForMenu === true);\r\n } else {\r\n this._functions = []\r\n }\r\n }\r\n return this._functions;\r\n }\r\n\r\n onFunctionGrantChange(newValue: boolean, node: IPermissionTreeNode) {\r\n if (newValue) {\r\n this.node.checked = true;\r\n let parentNode = this.node.parent;\r\n while (parentNode) {\r\n parentNode.checked = true;\r\n parentNode = parentNode.parent;\r\n }\r\n } else {\r\n\r\n const hasGrantSome = this.functions.filter(s => s.checked).length > 0;\r\n if (!hasGrantSome) {\r\n this.node.checked = false;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n}\r\n\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./functionGrant.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./functionGrant.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./functionGrant.vue?vue&type=template&id=4d52b342&scoped=true&\"\nimport script from \"./functionGrant.vue?vue&type=script&lang=ts&\"\nexport * from \"./functionGrant.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./functionGrant.vue?vue&type=style&index=0&id=4d52b342&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4d52b342\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\n\r\nimport api from '@/api'\r\nimport {Component, Prop, Vue, Watch} from \"vue-property-decorator\";\r\nimport DataPermissionDataSourceCmsCategories from \"@/views/admin/role/permissionGrant/providers/cmsCategories.vue\";\r\nimport DataPermissionDataSourceAlbum from \"@/views/admin/role/permissionGrant/providers/album.vue\";\r\nimport {IPermissionTreeNode} from \"@/views/admin/role/permissionGrant/permissionTree\";\r\nimport {PermissionDefinitionDto} from \"@/api/appService\";\r\nimport DataPermissionGrant from \"@/views/admin/role/permissionGrant/components/dataPermissionGrant.vue\";\r\nimport FunctionGrant from \"@/views/admin/role/permissionGrant/components/functionGrant.vue\";\r\nimport permissions from \"@/core/permission\";\r\n\r\n\r\nfunction getEmptyValues() {\r\n return [];\r\n}\r\n\r\n@Component({\r\n name: 'PermissionGrantTree',\r\n components: {FunctionGrant, DataPermissionGrant, DataPermissionDataSourceCmsCategories, DataPermissionDataSourceAlbum}\r\n})\r\nexport default class PermissionGrantTree extends Vue {\r\n\r\n @Prop({required: true})\r\n nodes!: IPermissionTreeNode[];\r\n\r\n @Prop({required: false})\r\n parentNode?: IPermissionTreeNode;\r\n\r\n @Prop({required: false})\r\n grantedPermissions?: string[];\r\n\r\n expand = true;\r\n\r\n\r\n @Watch('grantedPermissions')\r\n onGrantedPermissionsChange(newValue: string[]) {\r\n if (!newValue || !newValue.length) {\r\n this.cancelAllGrant()\r\n } else {\r\n this.grantPermissions(this.nodes, newValue)\r\n }\r\n }\r\n\r\n\r\n created() {\r\n this.activeCollapses = this.nodes.map(item => item.id)\r\n }\r\n\r\n getEmptyValues(){\r\n return []\r\n }\r\n\r\n get menus() {\r\n return this.nodes.filter(s => s.data.permission.isHiddenForMenu === false)\r\n }\r\n\r\n get hasSubItems() {\r\n return this.permissionItem.children && this.permissionItem.children.length;\r\n }\r\n\r\n\r\n get permissionDefinition(): PermissionDefinitionDto {\r\n return this.permissionItem.data.permission;\r\n }\r\n\r\n get dataPermissionProvider(): string {\r\n return (this.permissionDefinition.enableDataPermission && this.permissionDefinition.enableDataPermissionSpecifiedLimit)\r\n ? this.permissionDefinition.dataPermissionSpecifiedDataSourceProvider!\r\n : ''\r\n }\r\n\r\n onPermissionGrantChange(newValue: boolean, permissionItem: IPermissionTreeNode) {\r\n if (newValue) {\r\n this.grantAllParents(permissionItem);\r\n this.grantAllChildren(permissionItem);\r\n } else {\r\n this.cancelGrantAllChildren(permissionItem)\r\n }\r\n }\r\n\r\n grantAllParents(permissionItem?: IPermissionTreeNode) {\r\n if (permissionItem && permissionItem.parent) {\r\n permissionItem.parent.checked = true;\r\n }\r\n }\r\n\r\n grantAllChildren(permissionItem: IPermissionTreeNode) {\r\n if (permissionItem.children && permissionItem.children.length) {\r\n\r\n permissionItem.children.forEach(item => {\r\n console.log('grantAllChildren grant:', item.label)\r\n item.checked = true;\r\n this.grantAllChildren(item)\r\n })\r\n }\r\n }\r\n\r\n cancelGrantAllChildren(permissionItem: IPermissionTreeNode) {\r\n if (permissionItem.children) {\r\n permissionItem.children.forEach(item => {\r\n item.checked = false;\r\n this.cancelGrantAllChildren(item)\r\n })\r\n }\r\n }\r\n\r\n cancelAllGrant() {\r\n this.nodes.forEach(node => {\r\n node.checked = false;\r\n this.cancelGrantAllChildren(node)\r\n })\r\n }\r\n\r\n grantPermissions(nodes: IPermissionTreeNode[] | undefined, grantedPermissions: string[]) {\r\n if (nodes && nodes.length) {\r\n nodes.forEach(item => {\r\n if (grantedPermissions.some(permission => permission === item.data.permission.name)) {\r\n item.checked = true;\r\n } else {\r\n item.checked = false\r\n }\r\n this.grantPermissions(item.children, grantedPermissions);\r\n })\r\n }\r\n }\r\n\r\n\r\n}\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissionGrantTree.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./permissionGrantTree.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./permissionGrantTree.vue?vue&type=template&id=211fbfcd&scoped=true&\"\nimport script from \"./permissionGrantTree.vue?vue&type=script&lang=ts&\"\nexport * from \"./permissionGrantTree.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./permissionGrantTree.vue?vue&type=style&index=0&id=211fbfcd&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"211fbfcd\",\n null\n \n)\n\nexport default component.exports","import {DataPermissionScopeType, DataPermissionSettingDto, PermissionDefinitionDto} from \"@/api/appService\";\r\nimport permission from \"@/core/permission\";\r\n\r\nexport interface PermissionGrant {\r\n\r\n permission: PermissionDefinitionDto;\r\n dataLimit?: {\r\n scope: DataPermissionScopeType;\r\n details?: string[],\r\n permissionCode: string;\r\n };\r\n\r\n\r\n}\r\n\r\n\r\nexport interface IPermissionTreeNode {\r\n data: PermissionGrant;\r\n checked: boolean;\r\n id: any;\r\n label: string;\r\n children?: IPermissionTreeNode[];\r\n parent?: IPermissionTreeNode;\r\n}\r\n\r\n\r\nexport function createPermissionGrantTree(grantedDataPermissions: DataPermissionSettingDto[], items: PermissionDefinitionDto[], parentId: number | null, parentNode?: IPermissionTreeNode): IPermissionTreeNode[] {\r\n\r\n var result = items.filter(item => item.parentId === parentId).map(definition => {\r\n\r\n // get dataPermissionSetting of current permissionDefinition\r\n const dataPermissionSettingFilterResult = grantedDataPermissions.filter(item => item.permissionCode === definition.name);\r\n let dataPermissionSetting: DataPermissionSettingDto | undefined = (dataPermissionSettingFilterResult.length ? dataPermissionSettingFilterResult[0] : undefined)\r\n\r\n\r\n // build node\r\n var node = {\r\n id: definition.id,\r\n checked: false,\r\n label: definition.displayName,\r\n data: {\r\n permission: definition\r\n },\r\n parent: parentNode\r\n } as IPermissionTreeNode;\r\n\r\n // configuration data permission\r\n if (definition.enableDataPermission) {\r\n node.data.dataLimit = {\r\n permissionCode: definition.name!,\r\n scope: DataPermissionScopeType.All,\r\n details: dataPermissionSetting?.details ?? []\r\n }\r\n\r\n if (!dataPermissionSetting) {\r\n // if has not grant data permission , the scope default value is All or Mine\r\n node.data.dataLimit.scope = definition.enableDataPermissionForCreator ? DataPermissionScopeType.Mine : DataPermissionScopeType.All;\r\n } else {\r\n node.data.dataLimit.scope = dataPermissionSetting.scope!;\r\n // if permissionDefinition disable dataPermission-specifiedLimit, and dataPermission.scope old value is specified\r\n // then set scope to Mine\r\n if (!definition.enableDataPermissionSpecifiedLimit && dataPermissionSetting.scope === DataPermissionScopeType.Specified) {\r\n node.data.dataLimit.scope = DataPermissionScopeType.Mine\r\n }\r\n\r\n // if permissionDefinition disable dataPermissionLimitByCreator,\r\n // then set is scope to all\r\n if (!definition.enableDataPermissionForCreator\r\n && [DataPermissionScopeType.Mine, DataPermissionScopeType.MyDepartment, DataPermissionScopeType.MyDepartmentAndSubs].includes(dataPermissionSetting.scope!)) {\r\n node.data.dataLimit.scope = DataPermissionScopeType.All\r\n }\r\n\r\n }\r\n }\r\n\r\n node.children = createPermissionGrantTree(grantedDataPermissions, items, definition.id!, node)\r\n\r\n return node;\r\n\r\n });\r\n\r\n return result;\r\n\r\n\r\n}\r\n\r\n\r\nexport function getGrantedPermissions(nodes: IPermissionTreeNode[] | undefined): string[] {\r\n\r\n let result: string[] = []\r\n\r\n if (nodes && nodes.length) {\r\n nodes.forEach(permissionItem => {\r\n if (permissionItem.checked) {\r\n result.push(permissionItem.data.permission.name!)\r\n }\r\n result = [...result, ...getGrantedPermissions(permissionItem.children)]\r\n })\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function getGrantedDataPermissions(nodes: IPermissionTreeNode[] | undefined): DataPermissionSettingDto[] {\r\n let result: DataPermissionSettingDto[] = [];\r\n if (nodes && nodes.length) {\r\n nodes.forEach(permissionItem=>{\r\n if(permissionItem.checked){\r\n console.log('getGrantedDataPermissions:', permissionItem.label, permissionItem.data.dataLimit)\r\n if(permissionItem.data.dataLimit){\r\n result.push({\r\n permissionCode: permissionItem.data.dataLimit.permissionCode,\r\n scope: permissionItem.data.dataLimit.scope,\r\n details: permissionItem.data.dataLimit.details\r\n })\r\n }\r\n result = [...result, ...getGrantedDataPermissions(permissionItem.children)]\r\n }\r\n })\r\n }\r\n return result;\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nimport {\r\n Component,\r\n Vue,\r\n Inject,\r\n Prop,\r\n Watch,\r\n Ref\r\n} from \"vue-property-decorator\";\r\nimport {ElForm} from \"element-ui/types/form\";\r\nimport PermissionGrantTree from \"@/views/admin/role/permissionGrant/permissionGrantTree.vue\";\r\nimport api from \"@/api/index\";\r\nimport {\r\n DataPermissionSettingDto,\r\n GetRoleForEditOutput,\r\n PermissionDefinitionDto,\r\n RoleCreateOrUpdateDto\r\n} from \"@/api/appService\";\r\nimport {\r\n createPermissionGrantTree, getGrantedDataPermissions,\r\n getGrantedPermissions,\r\n IPermissionTreeNode\r\n} from \"@/views/admin/role/permissionGrant/permissionTree\";\r\n\r\n@Component({\r\n name: 'RoleEditSinglePage',\r\n components: {PermissionGrantTree}\r\n})\r\nexport default class RoleEditSinglePage extends Vue {\r\n @Ref() readonly dataForm!: ElForm;\r\n\r\n currentTab = 'basic'\r\n\r\n permissionItems: IPermissionTreeNode[] = []\r\n\r\n roleId: number = 0;\r\n\r\n form: RoleCreateOrUpdateDto = {\r\n id: 0,\r\n dataPermissionSettings: undefined,\r\n description: '',\r\n displayName: '',\r\n grantedPermissions: [],\r\n isDefault: false,\r\n isStatic: false,\r\n name: '',\r\n roleScopes: [],\r\n normalizedName: '',\r\n };\r\n\r\n grantedPermissions: string [] = []\r\n\r\n\r\n async created() {\r\n console.log('entry role-singleEditPage')\r\n this.roleId = parseInt(this.$route.params.id ?? 0)\r\n await this.initPermissionGrantTree();\r\n\r\n if (this.roleId) {\r\n api.role.getRoleForEdit({id: this.roleId}).then((res:GetRoleForEditOutput) => {\r\n this.form = {...this.form, ...res.role}\r\n if (!this.form.roleScopes) {\r\n this.form.roleScopes = []\r\n }\r\n if(res.grantedPermissions){\r\n this.grantedPermissions = res.grantedPermissions.map(permission=>permission.name!)\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\n async initPermissionGrantTree() {\r\n let permissionDefinitions: PermissionDefinitionDto[] = []\r\n await api.permissionDefinition.getAll({maxResultCount: 65535}).then(result => {\r\n permissionDefinitions = result.items!\r\n })\r\n let grantedDataPermissions: DataPermissionSettingDto[] = []\r\n await api.role.getGrantedDataPermissionSettings({roleId: this.roleId}).then(res => {\r\n grantedDataPermissions = res\r\n })\r\n\r\n this.permissionItems = createPermissionGrantTree(grantedDataPermissions, permissionDefinitions, null);\r\n\r\n\r\n }\r\n\r\n async save() {\r\n\r\n const formModel = this.$refs.dataForm as any;\r\n formModel.validate(async (valid: boolean) => {\r\n if (!valid) {\r\n return false;\r\n }\r\n const input :RoleCreateOrUpdateDto = {\r\n ...this.form,\r\n grantedPermissions: getGrantedPermissions(this.permissionItems),\r\n dataPermissionSettings: getGrantedDataPermissions(this.permissionItems)\r\n }\r\n if(this.roleId){\r\n await api.role.update({body:input}).then(res=>{\r\n this.$message.success(\"角色更新完成\");\r\n this.$router.back()\r\n })\r\n } else {\r\n await api.role.create({body:input}).then(res=>{\r\n this.$message.success(\"角色创建完成\");\r\n this.$router.back()\r\n })\r\n }\r\n\r\n });\r\n }\r\n\r\n roleRule = {\r\n name: [\r\n {\r\n required: true,\r\n message: \"请输入角色编号\",\r\n trigger: \"blur\"\r\n },\r\n {\r\n type: \"string\",\r\n pattern: \"^([a-zA-Z]{1}[a-zA-Z0-9]{0,100})$\",\r\n message: \"角色编号仅能为字母与数字的组合,且只能以字母开头\",\r\n trigger: \"blur\"\r\n },\r\n {\r\n max: 100,\r\n message: \"最多100个字符\",\r\n trigger: \"blur\"\r\n }\r\n ],\r\n displayName: [\r\n {\r\n required: true,\r\n message: \"请输入角色名称\",\r\n trigger: \"blur\"\r\n },\r\n {\r\n max: 100,\r\n message: \"最多100个字符\",\r\n trigger: \"blur\"\r\n }\r\n ],\r\n description: [\r\n {required: false},\r\n {\r\n max: 200,\r\n message: \"最多200个字符\"\r\n }\r\n ]\r\n };\r\n\r\n}\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editSinglePage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editSinglePage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./editSinglePage.vue?vue&type=template&id=ffd632ce&scoped=true&\"\nimport script from \"./editSinglePage.vue?vue&type=script&lang=ts&\"\nexport * from \"./editSinglePage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ffd632ce\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dataPermissionGrant.vue?vue&type=style&index=0&id=61ffd26e&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dataPermissionGrant.vue?vue&type=style&index=0&id=61ffd26e&scoped=true&lang=scss&\""],"sourceRoot":""}