角色配置修改菜单,车库按钮注释

This commit is contained in:
shenyanpei
2021-08-30 15:32:16 +08:00
parent 59171f9543
commit ebe387e932
2 changed files with 710 additions and 602 deletions
+127 -19
View File
@@ -32,17 +32,20 @@
class="common-button-primary add-button" class="common-button-primary add-button"
@click="roleAdd" @click="roleAdd"
v-btn-permission="'93e75b6ec0b2b6b0b40d2b11adeba88a'" v-btn-permission="'93e75b6ec0b2b6b0b40d2b11adeba88a'"
size="mini">配置角色权限</el-button> size="mini">配置角色权限
</el-button>
<el-button type="primary" <el-button type="primary"
class="common-button-primary add-button" class="common-button-primary add-button"
@click="roleAddData" @click="roleAddData"
v-btn-permission="'bb2571b08179edb36880aae169cb2e54'" v-btn-permission="'bb2571b08179edb36880aae169cb2e54'"
size="mini">配置数据权限</el-button> size="mini">配置数据权限
</el-button>
<el-button type="primary" <el-button type="primary"
class="common-button-primary add-button" class="common-button-primary add-button"
@click="RolesAdd(1)" @click="RolesAdd(1)"
v-btn-permission="'3e0cee86b3522d4233df8f1f11ab02c7'" v-btn-permission="'3e0cee86b3522d4233df8f1f11ab02c7'"
size="mini">新增角色</el-button> size="mini">新增角色
</el-button>
</div> </div>
<div class="content"> <div class="content">
<el-table <el-table
@@ -95,8 +98,12 @@
<el-dropdown trigger="click" @command="handleCommand"> <el-dropdown trigger="click" @command="handleCommand">
<i class="iconfont">&#xe61e;</i> <i class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item v-btn-permission="'38e362493fd7603dc7fddd1f3ac8971c'" :command="[scope.row, '编辑']">编辑</el-dropdown-item> <el-dropdown-item v-btn-permission="'38e362493fd7603dc7fddd1f3ac8971c'" :command="[scope.row, '编辑']">
<el-dropdown-item v-btn-permission="'025368d14944c4c4c86da29109b5f383'" :command="[scope.row, '删除']">删除</el-dropdown-item> 编辑
</el-dropdown-item>
<el-dropdown-item v-btn-permission="'025368d14944c4c4c86da29109b5f383'" :command="[scope.row, '删除']">
删除
</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</div> </div>
@@ -118,20 +125,24 @@
v-if="modalshowflag" v-if="modalshowflag"
node-key="id" node-key="id"
class="filter-tree" class="filter-tree"
v-loading="twoLoading"
:data="treeData2" :data="treeData2"
:props="defaultProps2" :props="defaultProps2"
:default-checked-keys="nodeList" :default-checked-keys="nodeList"
:expand-on-click-node="false" :expand-on-click-node="false"
default-expand-all default-expand-all
highlight-current highlight-current
show-checkbox :show-checkbox="true"
check-strictly :check-strictly="true"
@check="nodeClick2"
ref="tree2"> ref="tree2">
</el-tree> </el-tree>
</div> </div>
<div slot="footer"> <div slot="footer">
<el-button class="common-button-default" size="mini" icon="el-icon-close" @click="closeDialog">取消</el-button> <el-button class="common-button-default" size="mini" icon="el-icon-close" @click="closeDialog">取消</el-button>
<el-button class="common-button-primary" size="mini" icon="el-icon-check" type="primary" @click="confirmDialog">确定</el-button> <el-button class="common-button-primary" size="mini" icon="el-icon-check" type="primary" @click="confirmDialog">
确定
</el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog <el-dialog
@@ -151,14 +162,18 @@
default-expand-all default-expand-all
highlight-current highlight-current
:expand-on-click-node="false" :expand-on-click-node="false"
show-checkbox :show-checkbox="true"
check-strictly :check-strictly="true"
@check="nodeClick"
ref="tree3"> ref="tree3">
</el-tree> </el-tree>
</div> </div>
<div slot="footer"> <div slot="footer">
<el-button class="common-button-default" size="mini" icon="el-icon-close" @click="closeDialogData">取消</el-button> <el-button class="common-button-default" size="mini" icon="el-icon-close" @click="closeDialogData">取消
<el-button class="common-button-primary" size="mini" icon="el-icon-check" type="primary" @click="confirmDialogData">确定</el-button> </el-button>
<el-button class="common-button-primary" size="mini" icon="el-icon-check" type="primary" @click="confirmDialogData">
确定
</el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog <el-dialog
@@ -207,7 +222,8 @@
</div> </div>
<div slot="footer"> <div slot="footer">
<el-button class="common-button-default" size="mini" icon="el-icon-close" @click="AddRoleCancel">取消</el-button> <el-button class="common-button-default" size="mini" icon="el-icon-close" @click="AddRoleCancel">取消</el-button>
<el-button class="common-button-primary" size="mini" icon="el-icon-check" type="primary" @click="AddRoleOk">确定</el-button> <el-button class="common-button-primary" size="mini" icon="el-icon-check" type="primary" @click="AddRoleOk">确定
</el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-drawer <el-drawer
@@ -240,8 +256,10 @@
icon="el-icon-check" icon="el-icon-check"
type="primary" type="primary"
@click="SuperiorRoleOk" @click="SuperiorRoleOk"
>确定</el-button> >确定
<el-button size="mini" class="common-button-default" icon="el-icon-close" @click="SuperiorRoleCancle">取消</el-button> </el-button>
<el-button size="mini" class="common-button-default" icon="el-icon-close" @click="SuperiorRoleCancle">取消
</el-button>
</div> </div>
</el-drawer> </el-drawer>
</div> </div>
@@ -252,6 +270,7 @@ export default {
name: 'role-manage', name: 'role-manage',
data() { data() {
return { return {
twoLoading: false,
type: '', // 新增/编辑状态 type: '', // 新增/编辑状态
addRoleTitle: '', addRoleTitle: '',
SuperiorRoleData: {}, SuperiorRoleData: {},
@@ -444,6 +463,70 @@ export default {
closeDialogData() { closeDialogData() {
this.modalflag = false this.modalflag = false
}, },
/** 父子节点的级联 */
nodeClick(currentObj, treeStatus) {
// 用于:父子节点严格互不关联时,父节点勾选变化时通知子节点同步变化,实现单向关联。
let selected = treeStatus.checkedKeys.indexOf(currentObj.id) // -1未选中
// 选中
if (selected !== -1) {
// 子节点只要被选中父节点就被选中
this.selectedParent(currentObj)
this.selectedParent2(currentObj)
// 统一处理子节点为相同的勾选状态
this.uniteChildSame(currentObj, true)
} else {
// 未选中 处理子节点全部未选中
if (currentObj.children.length !== 0) {
this.uniteChildSame(currentObj, false)
}
}
},
// 统一处理子节点为相同的勾选状态
uniteChildSame(treeList, isSelected) {
// this.$refs.tree3.setChecked(treeList.id, isSelected)
this.$refs.tree2.setChecked(treeList.id, isSelected)
for (let i = 0; i < treeList.children.length; i++) {
this.uniteChildSame(treeList.children[i], isSelected)
}
},
// 统一处理父节点为选中
selectedParent(currentObj) {
let currentNode = this.$refs.tree3.getNode(currentObj)
if (currentNode.parent.key !== undefined) {
this.$refs.tree3.setChecked(currentNode.parent, true)
this.selectedParent(currentNode.parent)
}
},
nodeClick2(currentObj, treeStatus) {
// 用于:父子节点严格互不关联时,父节点勾选变化时通知子节点同步变化,实现单向关联。
let selected = treeStatus.checkedKeys.indexOf(currentObj.id) // -1未选中
// 选中
if (selected !== -1) {
// 子节点只要被选中父节点就被选中
this.selectedParent2(currentObj)
// 统一处理子节点为相同的勾选状态
this.uniteChildSame2(currentObj, true)
} else {
// 未选中 处理子节点全部未选中
if (currentObj.children.length !== 0) {
this.uniteChildSame2(currentObj, false)
}
}
},
// 统一处理子节点为相同的勾选状态
uniteChildSame2(treeList, isSelected) {
this.$refs.tree2.setChecked(treeList.id, isSelected)
for (let i = 0; i < treeList.children.length; i++) {
this.uniteChildSame2(treeList.children[i], isSelected)
}
},
selectedParent2(currentObj) {
let currentNode = this.$refs.tree2.getNode(currentObj)
if (currentNode.parent.key !== undefined) {
this.$refs.tree2.setChecked(currentNode.parent, true)
this.selectedParent2(currentNode.parent)
}
},
roleAddData() { roleAddData() {
this.$http.get('sarRole/role/resource', { this.$http.get('sarRole/role/resource', {
roleId: this.id roleId: this.id
@@ -472,16 +555,20 @@ export default {
this.$http.get('lawss/sarMenu', {}, {}, res => { this.$http.get('lawss/sarMenu', {}, {}, res => {
if (res.ok) { if (res.ok) {
this.treeData2 = res.data this.treeData2 = res.data
this.twoLoading = false
} }
}) })
}, },
roleAdd() { // 配置角色资源 roleAdd() { // 配置角色资源
this.treeTwoLoading = true
this.$http.get('sarRole/role/menu', { this.$http.get('sarRole/role/menu', {
roleId: this.id roleId: this.id,
}, {}, res => { }, {}, res => {
if (res.ok) { if (res.ok) {
this.modalshowflag = true
this.nodeList = res.data this.nodeList = res.data
this.twoLoading = true
this.modalshowflag = true
this.getTree2()
} }
}) })
}, },
@@ -532,7 +619,6 @@ export default {
}, },
mounted() { mounted() {
this.getTree() this.getTree()
this.getTree2()
this.getTree3() this.getTree3()
} }
} }
@@ -540,44 +626,55 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
@import '~@/assets/styles/mixins'; @import '~@/assets/styles/mixins';
.role-manage { .role-manage {
display: flex; display: flex;
height: 100%; height: 100%;
/deep/ .el-form-item__content { /deep/ .el-form-item__content {
width: 100%; width: 100%;
} }
.filter-tree1 { .filter-tree1 {
height: 100%; height: 100%;
} }
.tree-close { .tree-close {
.tree { .tree {
left: -200px !important; left: -200px !important;
} }
.tree-right { .tree-right {
width: calc(~'100% - 15px') !important; width: calc(~'100% - 15px') !important;
} }
.side-bar-collapse { .side-bar-collapse {
background: #5596CC !important; background: #5596CC !important;
color: #FFF; color: #FFF;
} }
} }
.tree-closed { .tree-closed {
width: 15px !important; width: 15px !important;
} }
.tree-content { .tree-content {
background: #fff; background: #fff;
width: 16%; width: 16%;
position: relative; position: relative;
.tree { .tree {
width: 95%; width: 95%;
position: absolute; position: absolute;
left: 0; left: 0;
} }
.tree-collapse { .tree-collapse {
position: absolute; position: absolute;
right: 0; right: 0;
} }
} }
.tree-right { .tree-right {
overflow-y: hidden; overflow-y: hidden;
padding: 0; padding: 0;
@@ -586,6 +683,7 @@ export default {
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
.content { .content {
padding: 0px; padding: 0px;
display: flex; display: flex;
@@ -594,6 +692,7 @@ export default {
flex: auto; flex: auto;
//height: calc(~'100% - 105px - 56px'); //height: calc(~'100% - 105px - 56px');
} }
.pagination { .pagination {
position: static; position: static;
width: 100% !important; width: 100% !important;
@@ -601,23 +700,32 @@ export default {
} }
} }
} }
/deep/ .el-dialog {
margin-top: 9vh !important;
width: 35%;
}
.myDialog { .myDialog {
/deep/ .el-tree { /deep/ .el-tree {
height: 300px; height: 500px;
overflow: auto; overflow: auto;
} }
} }
/deep/ .el-select__tags { /deep/ .el-select__tags {
overflow-x: hidden; overflow-x: hidden;
} }
/deep/ .width-all { /deep/ .width-all {
width: 100%; width: 100%;
} }
.laws-tree { .laws-tree {
/deep/ .clearable { /deep/ .clearable {
top: 20px; top: 20px;
} }
} }
.add-form-item { .add-form-item {
display: flex; display: flex;
} }
@@ -39,9 +39,9 @@
</div> </div>
</el-card> </el-card>
<div class="action-bar"> <div class="action-bar">
<el-button plain class="common-button-primary" v-btn-permission="''" size="mini" @click="transfer">调取</el-button> <!-- <el-button plain class="common-button-primary" v-btn-permission="''" size="mini" @click="transfer">调取</el-button>-->
<el-button plain class="common-button-primary" v-btn-permission="''" size="mini" @click="deleteList">批量删除 <!-- <el-button plain class="common-button-primary" v-btn-permission="''" size="mini" @click="deleteList">批量删除-->
</el-button> <!-- </el-button>-->
<el-button class="common-button-default export-button" <el-button class="common-button-default export-button"
size="mini" @click="exportStandard" size="mini" @click="exportStandard"
v-btn-permission="''" v-btn-permission="''"