提交 59edb857 编写于 作者: zhentian.jia's avatar zhentian.jia

角色管理 学情报告更新

上级 116995e6
......@@ -72,15 +72,32 @@
</el-form>
</el-row>
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="userId" label="用户ID" align="center"></el-table-column>
<!-- <el-table-column prop="userId" label="用户ID" align="center"></el-table-column> -->
<el-table-column prop="userName" label="姓名" align="center"></el-table-column>
<el-table-column prop="county" label="所属区县" align="center"></el-table-column>
<el-table-column prop="organizationName" label="所属机构" align="center"></el-table-column>
<el-table-column prop="departmentsName" label="科室" align="center"></el-table-column>
<el-table-column prop="projeceRole" label="角色" align="center">
<template slot-scope="scope">
<span>{{ scope.row.projeceRole | projeceRoleType }}</span>
</template>
</el-table-column>
<el-table-column prop="organizationName" label="所属机构" align="center"></el-table-column>
<el-table-column prop="departmentsName" label="科室" align="center"></el-table-column>
<el-table-column prop="area" label="负责区域" align="center">
<template slot-scope="scope">
<el-popover
placement="bottom"
title=""
width="200"
trigger="hover"
class="more-text">
<p class="more-text">
{{ scope.row.departmentsName }}
!!!是一段内这是一段内容,这是一段内这是一段内容,这是一段内这是这是一段内容,这是一段内这是一段内容,这是一段内这是一段内容,这是一段内这是一段内容,这是一段内一段内容,这是一段内这是一段内容,这是一段内这是一段内容,这是一段内这是一段内容,这是一段内容,这是一段内容,这是一段内容
</p>
<p slot="reference">{{ scope.row.departmentsName }}</p>
</el-popover>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="400" align="left">
<template slot-scope="scope">
<el-button
......@@ -106,6 +123,7 @@
size="small"
v-show="scope.row.projeceRole == 'L3'"
@click="addArea()"
:disabled="activeUser !== 'L1'"
>追加区域权限</el-button>
</template>
</el-table-column>
......@@ -142,7 +160,7 @@
<p v-else>
确认将{{ dialog.role }}
<span class="user-name">"{{ dialog.name }}"</span>
{{ dialog.option }}吗?"
{{ dialog.option }}吗?
</p>
<span slot="footer" class="dialog-footer">
......@@ -205,7 +223,7 @@
width="70%"
class="dialog-area"
center>
<el-col class="area-choose" :span="12">
<el-col class="area-choose" :span="15">
<el-tree
default-expand-all
:data="treeData"
......@@ -229,7 +247,16 @@
</span>
</el-tree>
</el-col>
<el-col class="rim" :span="11"></el-col>
<el-col class="area-choose" :span="8">
<p class="area-p"><i class="el-icon-bottom"></i>追加下列区域的学情报告查看权限 已选择({{ tagsRegion.length }})</p>
<el-tag
v-for="tag in tagsRegion"
:key="tag.name"
closable
:type="tag.type"
@close="handleCloseTree(tag)"
>{{tag.name}}</el-tag>
</el-col>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogArea = false">取消</el-button>
<el-button type="primary" size="small" @click="dialogArea = false">确认</el-button>
......@@ -378,15 +405,17 @@ export default {
nowL: this.scopeRow.projeceRole
};
vm.GET("portal/portalProjectOrRole/roleLevelUpdate", req).then(res => {
this.dialog.show = false;
vm.dialog.show = false;
if (res.code == "000000") {
console.log(res);
this.queryRoleList();
vm.queryRoleList();
vm.$message({
message: '设置成功!',
type: 'success'
});
} else {
this.$message.error('设置失败!');
}
vm.$message({
type: 'info',
message: res.message,
})
});
},
handleSizeChange(val) {
......@@ -519,6 +548,25 @@ export default {
this.$refs.tree.setCheckedKeys(treeIdList);
this.tagsRegion = checkList;
},
initCheckList(allSelectedKeys) {
this.tagsRegion = [];
// console.log(allSelectedKeys);
// console.log(this.$refs.tree.getCheckedNodes());
let nodeData = this.$refs.tree.getCheckedNodes();
for (let i = 0; i < nodeData.length; i++) {
for (let j = 0; j < allSelectedKeys.length; j++) {
if (
allSelectedKeys[j].type == 1 &&
nodeData[i].id == allSelectedKeys[j].key
) {
let tagObj = {};
tagObj.name = nodeData[i].label;
tagObj.key = nodeData[i].id;
this.tagsRegion.push(tagObj);
}
}
}
},
onChecked() {
let cData = [],
oldData = (this.treeData.length && this.treeData.slice()) || [],
......@@ -535,7 +583,42 @@ export default {
allSelectedKeys = savedCheckedKeys.concat(savedHalfCheckedKeys);
this.allSelectedKeys = allSelectedKeys;
// this.initCheckList(allSelectedKeys);
this.initCheckList(allSelectedKeys);
},
// 递归删除列表中所有子节点
delSubKeysByNode(node, checkedKeys) {
let idIndex;
if (node.children && node.children.length) {
if (node.children && node.children.length) {
node.children.forEach(elm => {
idIndex = checkedKeys.findIndex(id => {
return id === elm.id;
});
if (idIndex > -1) {
checkedKeys.splice(idIndex, 1);
}
if (elm.children && elm.children.length) {
this.delSubKeysByNode(elm, checkedKeys);
}
});
}
}
},
// 去除子节点
handlerCheckedData(oldData, checkedKeys) {
oldData.forEach(element => {
for (let i = 0; i < checkedKeys.length; i++) {
// 如果此节点被选中,则删除所有子节点
if (element.id === checkedKeys[i]) {
this.delSubKeysByNode(element, checkedKeys);
} else {
if (element.children && element.children.length) {
this.handlerCheckedData(element.children, checkedKeys);
}
}
}
});
return checkedKeys;
},
//添加子节点
append(data, node) {
......@@ -577,6 +660,22 @@ export default {
this.$refs.tree.setCheckedKeys(checkList);
});
},
//通过key设置tree
setCheckedKeys(tagsRegion) {
console.log(tagsRegion);
let treeKeyList = [];
for (let index = 0; index < tagsRegion.length; index++) {
treeKeyList[index] = tagsRegion[index].key;
}
console.log(treeKeyList);
this.$refs.tree.setCheckedKeys(treeKeyList);
},
//删除label节点 同步树结构
handleCloseTree(tag) {
this.tagsRegion.splice(this.tagsRegion.indexOf(tag), 1);
this.setCheckedKeys(this.tagsRegion);
},
}
};
</script>
......@@ -604,6 +703,13 @@ export default {
margin-left: 10px;
}
}
.user-name {
color: #449284;
}
.more-text {
max-height: 40px;
overflow-y: scroll;
}
.dialog-p {
text-align: center;
span {
......@@ -653,12 +759,39 @@ export default {
.el-dialog__body {
overflow: hidden;
.area-choose {
padding: 10px 0 0 10px;
height: 515px;
overflow-y: scroll;
border: 1px solid #dddddd;
.el-icon-caret-bottom {
color: #449284;
}
.area-p {
color: #449284;
margin-bottom: 10px;
}
.el-checkbox__input.is-indeterminate .el-checkbox__inner {
background-color: #449284;
border-color: #449284;
}
}
}
}
.el-tag {
margin: 0 10px 10px 0;
border: 1.3px solid #48a8fe;
color: #1e92fe;
background-color: #e7f6fe;
.el-icon-close {
width: 13px;
height: 13px;
line-height: 13px;
font-size: 12px;
background-color: #0486fe;
border-radius: 50%;
color: #d4edfe;
}
}
}
.table-empty {
img {
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册