12.6a74eca0769148ca070c.js 12 KB

1
  1. webpackJsonp([12],{"9wIl":function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var i=t("Dd8w"),r=t.n(i),o=t("Gu7T"),s=t.n(o),l=t("Xxa5"),c=t.n(l),a=t("exGp"),d=t.n(a),h=t("Pfph"),p=t("Ze8w"),f=t("hky6"),m=t("jQQ7"),u={name:"rolePermission",data:function(){return{props:{label:"name",value:"id",emitPath:!1,multiple:!0,checkStrictly:!0},checked:!0,deptList:[],oneDimensionalList:[],permissionForm:{data_scope:"ALL",role_name:"",role_describe:""},permissionRules:{role_name:[this.MixinRequired("请输入角色名称!"),{min:1,max:10,message:"长度在 1 到 10 个字符",trigger:"blur"}]},permissions:[],allCheck:!1,allIndeterminate:!1,isAllSelected:!1}},mounted:function(){this.role_id=this.$route.params.id,this.GET_RolePermission()},beforeRouteUpdate:function(e,n,t){this.role_id=e.params.id,t()},activated:function(){this.role_id=this.$router.params.id},watch:{role_id:"GET_RolePermission"},methods:{searchSelectAllNodeIndex:function(){var e=-1;return this.permissionForm.dept_ids.forEach(function(n,t){1===n.length&&(e=t)}),e},visibleChange:function(e){console.log(e),e?this.deptList.unshift({id:"全选",name:"全选",value:"全选"}):this.deptList.shift()},selectHandle:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return d()(c.a.mark(function t(){var i,r,o,s,l;return c.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:i=n.filter(function(e){return"全选"!==e}).length,r=n.some(function(e){return"全选"===e}),o=e.MixinClone(e.permissionForm.dept_ids),r&&e.isAllSelected?(e.$refs.cascader.$refs.panel.clearCheckedNodes(),(o=o.filter(function(e){return"全选"!==e})).splice(e.searchSelectAllNodeIndex(),1),e.$set(e.permissionForm,"dept_ids",o),e.isAllSelected=!1):r&&!e.isAllSelected?(e.isAllSelected=!0,s=e.deptList,l=[],function e(n){n.forEach(function(n){l.push(n.id),n.children&&n.children.length>0&&e(n.children)})}(s),e.permissionForm.dept_ids=l):!r&&e.isAllSelected?(e.isAllSelected=!1,e.$refs.cascader.$refs.panel.clearCheckedNodes(),e.permissionForm.dept_ids=[]):i===e.oneDimensionalList.length&&(e.isAllSelected=!0,o.unshift("全选"),e.permissionForm.dept_ids=o),e.$nextTick(function(){e.$forceUpdate()});case 5:case"end":return t.stop()}},t,e)}))()},GET_DeptList:function(){var e=this;f.p().then(function(n){e.deptList=m.Foundation.buildTree(n,"0");var t=[];!function e(n){n.forEach(function(n){t.push(n),n.children&&n.children.length>0&&e(n.children)})}(n),e.oneDimensionalList=t,e.permissionForm.dept_ids.length===t.length&&(e.permissionForm.dept_ids.push("全选"),e.isAllSelected=!0)})},hasChildren:function(e){return Array.isArray(e.children)&&0!==e.children.length},handleCheckAll:function(e){this.allIndeterminate=!1,this.$set(this,"permissions",this.setPermissionsCheck(this.permissions,e))},handleCheckboxChanged:function(e,n){e.children&&e.children.length&&this.$set(e,"children",this.setPermissionsCheck(e.children,e.checked)),this.countAllPermissions(),this.countParentChecked()},setPermissionsCheck:function(e,n){var t=this,i=this.MixinClone(e);return i.map(function(e){e.checked=n,t.$set(e,"checked",n),e.children&&e.children.length&&t.$set(e,"children",t.setPermissionsCheck(e.children,n))}),i},checkIndeterminate:function(e){if(!Array.isArray(e))return!1;var n=e.length,t=e.filter(function(e){return e.checked}).length;return 0!==t&&n!==t},countAllPermissions:function(e){var n=this,t=[];(e=e||this.permissions).forEach(function(e){t.push(e),e.children&&t.push.apply(t,s()(n.countAllPermissions(e.children)))});var i=t.length,r=t.filter(function(e){return e.checked}).length;return this.allCheck=i===t.filter(function(e){return e.checked}).length,this.allIndeterminate=0!==r&&i!==r,t},countParentChecked:function(e){var n=this;(e=e||this.permissions).forEach(function(e){if(e.children&&e.children.length){n.countParentChecked(e.children);e.children.length;var t=e.children.filter(function(e){return e.checked}).length;e.checked=!!t}})},saveRolePermission:function(){var e=this;this.$refs.permissionForm.validate(function(n){if(!n)return e.$message.error("表单填写有误,请检查!"),!1;var t=r()({},e.permissionForm,{menus:e.permissions});if(t.dept_ids){t.dept_ids=t.dept_ids.filter(function(e){return"全选"!==e}),t.dept_ids&&(e.isAllSelected?(t.data_scope="ALL",t.dept_ids=t.dept_ids.join(",")):(t.data_scope="DEPT_CUSTOM",t.dept_ids=t.dept_ids.join(","))),0===e.role_id?h.b(t).then(function(){return i()}):h.f(e.role_id,t).then(function(){return i()});var i=function(){e.$message.success("保存成功!"),e.$route.params.callback(),e.$store.dispatch("delCurrentViews",{view:e.$route,$router:e.$router})}}else e.$message.error("请选择数据范围!")})},GET_RolePermission:function(){var e=this;p.e().then(function(n){0!==e.role_id?h.j(e.role_id).then(function(t){e.role_id=t.role_id,e.permissionForm.data_scope=t.data_scope,e.permissionForm.role_name=t.role_name,e.permissionForm.role_describe=t.role_describe,e.permissionForm.dept_ids=t.dept_ids.split(",");var i=e.expandRouters(t.menus);e.$set(e,"permissions",e.filterRoleRouter(n,i)),e.countAllPermissions(),e.GET_DeptList()}):(e.$set(e,"permissions",n),e.countAllPermissions(),e.GET_DeptList())})},expandRouters:function(e){var n=this,t=[];return e.forEach(function(e){e.checked&&t.push(e.identifier),e.children&&e.children.length&&t.push.apply(t,s()(n.expandRouters(e.children)))}),t},filterRoleRouter:function(e,n){var t=this,i=[];return e.forEach(function(e){n.includes(e.identifier)||e.hidden?e.checked=!0:e.checked=!1,e.children&&t.$set(e,"children",t.filterRoleRouter(e.children,n)),i.push(e)}),i}}},_=t("XyMi");var v=function(e){t("KD/+")},b=Object(_.a)(u,function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"permission-container"},[t("el-form",{ref:"permissionForm",staticClass:"demo-ruleForm",attrs:{model:e.permissionForm,rules:e.permissionRules,"label-width":"200px"}},[t("el-form-item",{attrs:{label:"角色名称",prop:"role_name"}},[t("el-input",{model:{value:e.permissionForm.role_name,callback:function(n){e.$set(e.permissionForm,"role_name",n)},expression:"permissionForm.role_name"}})],1),e._v(" "),t("el-form-item",{attrs:{label:"数据范围",prop:"dept_ids"}},[t("el-cascader",{ref:"cascader",attrs:{clearable:!1,options:e.deptList,props:e.props},on:{"visible-change":e.visibleChange,change:e.selectHandle},model:{value:e.permissionForm.dept_ids,callback:function(n){e.$set(e.permissionForm,"dept_ids",n)},expression:"permissionForm.dept_ids"}})],1),e._v(" "),t("el-form-item",{attrs:{label:"角色描述",prop:"role_describe"}},[t("el-input",{model:{value:e.permissionForm.role_describe,callback:function(n){e.$set(e.permissionForm,"role_describe",n)},expression:"permissionForm.role_describe"}})],1),e._v(" "),t("el-form-item",{attrs:{label:"角色权限",prop:"permission"}},[t("el-checkbox",{attrs:{indeterminate:e.allIndeterminate},on:{change:e.handleCheckAll},model:{value:e.allCheck,callback:function(n){e.allCheck=n},expression:"allCheck"}},[e._v("全部选择")]),e._v(" "),e._l(e.permissions,function(n,i){return t("div",{key:n.identifier,staticClass:"level_1"},[t("el-row",{attrs:{gutter:20}},[t("el-col",{attrs:{span:4}},[t("el-checkbox",{attrs:{label:n.title,indeterminate:e.checkIndeterminate(n.children)},on:{change:function(t){return e.handleCheckboxChanged(n)}},model:{value:n.checked,callback:function(t){e.$set(n,"checked",t)},expression:"item.checked"}})],1),e._v(" "),t("el-col",{attrs:{span:20}},e._l(n.children,function(i,r){return t("div",{key:i.identifier,staticClass:"checkbox-dropdown"},[t("el-popover",{attrs:{placement:"bottom",trigger:"hover","open-delay":300,disabled:!e.hasChildren(i),"append-to-body":!1}},[t("div",{attrs:{slot:"reference"},slot:"reference"},[t("el-checkbox",{attrs:{indeterminate:e.checkIndeterminate(i.children)},on:{change:function(t){return e.handleCheckboxChanged(i,n)}},nativeOn:{click:function(e){e.stopPropagation()}},model:{value:i.checked,callback:function(n){e.$set(i,"checked",n)},expression:"_item.checked"}},[e._v("\n "+e._s(i.title)+"\n "),e.hasChildren(i)?[t("i",{staticClass:"el-icon-arrow-down"})]:e._e()],2)],1),e._v(" "),e.hasChildren(i)?t("div",{staticClass:"role-dropdown__list"},e._l(i.children,function(n,r){return t("div",{key:n.identifier,staticClass:"role-dropdown"},[t("el-popover",{attrs:{placement:"right",trigger:"hover","open-delay":200,disabled:!e.hasChildren(n),"append-to-body":!1}},[t("div",{staticClass:"role-dropdown__label",attrs:{slot:"reference"},slot:"reference"},[t("el-checkbox",{attrs:{indeterminate:e.checkIndeterminate(n.children)},on:{change:function(t){return e.handleCheckboxChanged(n,i)}},nativeOn:{click:function(e){e.stopPropagation()}},model:{value:n.checked,callback:function(t){e.$set(n,"checked",t)},expression:"__item.checked"}},[e._v("\n "+e._s(n.title)+"\n "),e.hasChildren(n)?[t("i",{staticClass:"el-icon-arrow-right"})]:e._e()],2)],1),e._v(" "),e.hasChildren(n)?t("div",{staticClass:"role-dropdown__list"},e._l(n.children,function(i,r){return t("div",{key:i.identifier,staticClass:"role-dropdown"},[t("el-popover",{attrs:{placement:"right",trigger:"hover","open-delay":200,disabled:!e.hasChildren(i),"append-to-body":!1}},[t("div",{staticClass:"role-dropdown__label",attrs:{slot:"reference"},slot:"reference"},[t("el-checkbox",{attrs:{indeterminate:e.checkIndeterminate(i.children)},on:{change:function(t){return e.handleCheckboxChanged(i,n)}},nativeOn:{click:function(e){e.stopPropagation()}},model:{value:i.checked,callback:function(n){e.$set(i,"checked",n)},expression:"___item.checked"}},[e._v(e._s(i.title))])],1)])],1)}),0):e._e()])],1)}),0):e._e()])],1)}),0)],1)],1)})],2),e._v(" "),t("el-form-item",{attrs:{label:""}},[t("el-button",{staticStyle:{"margin-top":"15px"},attrs:{type:"primary",size:"small"},on:{click:e.saveRolePermission}},[e._v("保存设置")])],1)],1)],1)},[],!1,v,"data-v-531ffe0c",null);n.default=b.exports},Df3O:function(e,n,t){(e.exports=t("FZ+f")(!1)).push([e.i,"\n.permission-container[data-v-531ffe0c] {\n padding: 10px;\n background-color: #fff;\n padding-bottom: 150px;\n}\n.level_1[data-v-531ffe0c] {\n padding: 15px 0;\n border-bottom: 1px dashed #e7e7e7;\n}\n.level_1[data-v-531ffe0c]:last-child {\n border-bottom: none;\n}\n[data-v-531ffe0c] .el-form-item__label {\n padding-top: 15px;\n}\n[data-v-531ffe0c] .el-form-item__content {\n border-left: 1px solid #e7e7e7;\n padding-left: 20px;\n padding-top: 15px;\n}\n[data-v-531ffe0c] .el-form-item__content .el-form-item__error {\n padding-left: 20px;\n}\n[data-v-531ffe0c] .el-form-item:last-child .el-form-item__content {\n padding-top: 0;\n}\n[data-v-531ffe0c] .el-form-item:not(:first-child) {\n border-top: 1px solid #e7e7e7;\n position: relative;\n}\n[data-v-531ffe0c] .el-form-item:not(:first-child)::after {\n content: ' ';\n width: 1px;\n height: 22px;\n background-color: #e7e7e7;\n position: absolute;\n top: -22px;\n left: 200px;\n}\n[data-v-531ffe0c] .el-button-group {\n display: inline-block;\n}\n[data-v-531ffe0c] .el-button-group .el-button {\n display: inline-block;\n padding: 0;\n border: none;\n}\n[data-v-531ffe0c] .el-button-group .el-button:focus,[data-v-531ffe0c] .el-button-group .el-button:hover {\n color: #606266;\n border-color: #fff;\n background-color: #fff;\n}\n.checkbox-dropdown[data-v-531ffe0c] {\n display: inline-block;\n min-width: 130px;\n cursor: pointer;\n}\n.checkbox-dropdown .checked[data-v-531ffe0c] {\n color: #409EFF;\n}\n.role-dropdown[data-v-531ffe0c] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n width: 25%;\n height: 30px;\n margin-bottom: 10px;\n}\n.role-dropdown[data-v-531ffe0c]:last-child {\n margin-bottom: 0;\n}\n.role-dropdown__label[data-v-531ffe0c] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n width: 100%;\n}\n.role-dropdown__label[data-v-531ffe0c] .el-checkbox__label {\n color: inherit;\n}\n.role-dropdown__list[data-v-531ffe0c] {\n max-height: 320px;\n overflow-y: auto;\n}\n",""])},"KD/+":function(e,n,t){var i=t("Df3O");"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);t("rjj0")("b085c840",i,!0)}});