角色修改完成

This commit is contained in:
xiayuping666
2024-04-22 14:47:26 +08:00
parent 2d7cbc4d9d
commit 1f0b347af6
3 changed files with 109 additions and 2 deletions
+2
View File
@@ -197,6 +197,8 @@ export default {
this.classList(); this.classList();
this.$message.success('修改成功') this.$message.success('修改成功')
this.isUpdateDialog = false this.isUpdateDialog = false
this.nodeData.className = this.updateForm.name
}) })
}, },
// 点击修改按钮 // 点击修改按钮
+11
View File
@@ -74,6 +74,17 @@ export function putDeptUser (data) {
data data
}) })
} }
// 设置角色
export function putUserRole (userId, roleId) {
return request({
url: `/manager/role/user`,
method: 'put',
data:{
userid: userId,
roleIds: roleId
}
})
}
+96 -2
View File
@@ -62,6 +62,15 @@
size="small" size="small"
>转移人员 >转移人员
</el-button> </el-button>
<el-button
@click="onClickAddRole(scope.row)"
slot="reference"
style="margin-left: 10px;"
class="el-icon-edit"
type="text"
size="small"
>修改角色
</el-button>
<el-popconfirm <el-popconfirm
@confirm="onClickDelete(scope.row)" @confirm="onClickDelete(scope.row)"
:title="'确定要删除吗?'" :title="'确定要删除吗?'"
@@ -206,12 +215,39 @@
<el-button type="primary" @click="onClickAffirmTransferUser">确定转移</el-button> <el-button type="primary" @click="onClickAffirmTransferUser">确定转移</el-button>
</span> </span>
</el-dialog> </el-dialog>
<!-- 添加角色模态框 -->
<el-dialog title="角色添加"
:visible.sync="isAddRoleDialog"
width="30%">
<el-form ref="transferForm" :model="deptForm" label-width="80px">
<!-- <el-form-item v-if="roleIds.length" label="角色名称" prop="name">
<el-cascader
v-model="roleIds"
:options="roleArr"
:props="{ multiple: true, checkStrictly: true, label: 'name', value: 'id', children: 'childrenList' }"
collapse-tags
clearable></el-cascader>
</el-form-item> -->
<el-form-item label="角色名称" prop="name">
<Treeselect v-model="roleIds" :multiple= "true" :options="roleArr" :normalizer="normalizerRole" placeholder="选择角色" />
<div style="margin-top: 200px;"></div>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="isTransferDialog = false"> </el-button>
<el-button type="primary" @click="onClickAffirmAddRole">添加</el-button>
</span>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import columns from "./columns"; import columns from "./columns";
import { getDept, getDeptUser, postDept, putDept, deleteDept, getallUser, postDeptUser, deleteDeptUser, putDeptUser } from "./api"; import { getDept, getDeptUser, postDept, putDept, deleteDept, getallUser, postDeptUser, deleteDeptUser, putDeptUser, putUserRole } from "./api";
import { getRole, postRole, putRole, deleteRole} from "../rolePermissions/api";
import { formatDate } from "@/com/index"; import { formatDate } from "@/com/index";
import CommonHead from './components/CommonHead.vue' import CommonHead from './components/CommonHead.vue'
import Treeselect from "@riophae/vue-treeselect"; import Treeselect from "@riophae/vue-treeselect";
@@ -268,6 +304,10 @@ export default {
transferForm: { transferForm: {
newDeptId: null, newDeptId: null,
}, // 转移部门的模态框 }, // 转移部门的模态框
isAddRoleDialog: false, // 添加角色模态框
roleArr: [], // 角色列表
roleIds: [], // 角色id
userId: null, // 设置角色的userid
}; };
}, },
components: { components: {
@@ -278,11 +318,49 @@ export default {
async created() { async created() {
this.deptList() this.deptList()
this.allUserList() this.allUserList()
// 获取角色列表
getRole().then(res =>{
this.roleArr = res
})
}, },
mounted () { mounted () {
}, },
methods: { methods: {
// 添加角色
onClickAffirmAddRole() {
if(this.roleIds.length === 0){
this.$message.error('请选择角色')
}else {
let arr = []
this.roleIds.forEach(it =>{ // 选中为一级 展开所有下级数据
let obj = this.roleArr.find( item => {return item.id === it })
if(obj){
arr = [ ...arr, ...obj.childrenList]
}else {
arr.push(it)
}
})
let idsArr = arr.map(item => {
let id = ''
item.name ? id = item.id : id = item
return id
})
putUserRole(this.userId, idsArr).then(res =>{
this.deptUserList(this.deptData.deptId)
this.$message.success('添加成功')
this.isAddRoleDialog = false
})
}
},
// 点击添加角色
onClickAddRole(item) {
this.isAddRoleDialog = true
this.roleIds = item.roleIds
this.userId = item.userid
console.log(item.roleIds)
},
// 点击确定转移用户部门 // 点击确定转移用户部门
onClickAffirmTransferUser() { onClickAffirmTransferUser() {
if(this.transferForm.newDeptId){ if(this.transferForm.newDeptId){
@@ -357,6 +435,13 @@ export default {
return { id: node.deptId, label: node.name, children: node.childrenList }; return { id: node.deptId, label: node.name, children: node.childrenList };
} }
}, },
normalizerRole(node) {
if (node.childrenList && !node.childrenList.length) {
return { id: node.id, label: node.name, };
}else {
return { id: node.id, label: node.name, children: node.childrenList };
}
},
handleNodeClick(item) { handleNodeClick(item) {
this.deptData = item this.deptData = item
// localStorage.setItem('defaultCheckClass', JSON.stringify(item) ) // localStorage.setItem('defaultCheckClass', JSON.stringify(item) )
@@ -376,7 +461,16 @@ export default {
// 获取部门用户列表 // 获取部门用户列表
deptUserList(deptId){ deptUserList(deptId){
getDeptUser(deptId, this.query).then( res =>{ getDeptUser(deptId, this.query).then( res =>{
this.deptUserArr = res this.deptUserArr = res.map(item =>{
let roleIds = []
let arr = item.roleList.map(it =>{
roleIds.push(it.id)
return it.name
})
item.roleName = arr.join(', ')
item.roleIds = roleIds
return item
})
}) })
}, },
// 获取所有用户列表 用于添加部门人员 // 获取所有用户列表 用于添加部门人员