Files
h5/src/views/rolePermissions/index copy.vue
T
2024-04-18 17:15:06 +08:00

265 lines
7.0 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div>
<div>
<!-- 搜索 -->
<div class="form-adapt-container">
<el-card shadow="hover">
<CommonHead
@search-data="searchForm"
@reset-data="reset"
@newly-data="add"
></CommonHead>
<!-- newly-data删除所选事件 -->
<!-- reset-data重置表单内容 -->
<!-- search-data搜索事件接收被搜索的内容 -->
<el-form>
<el-form-item label="角色范围" style="margin-top: 10px">
<el-select
size="mini"
v-model="firstLevelRoleid"
placeholder="请选择所属范围"
>
<el-option
v-for="(item, index) in firstLevelRoleList"
:label="item.name"
:key="index"
:value="item.id"
@click.native="queryRoleList(item.id)"
></el-option>
</el-select>
</el-form-item>
</el-form>
</el-card>
<CommonTables
v-loading="loading"
:delete-func="deleteData"
:edit-func="editData"
:columns="columns"
:data="RoleList"
></CommonTables>
<!-- <Pagination
:total="total"
:pageNum="query.pageNum"
:pageSize="query.pageSize"
@clickCurrent="onClickCurrent"
@clickSize="onClickSize"
/> -->
</div>
</div>
<!-- 对话框 -->
<el-dialog
title="设置权限"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"
>
<el-tree
ref="treeOne"
:data="LevelPermissionList"
show-checkbox
node-key="id"
:props="defaultProps"
>
</el-tree>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false" size="mini"> </el-button>
<el-button type="primary" @click="confirmSettingRules" size="mini"
> </el-button
>
</span>
</el-dialog>
</div>
</template>
<script>
import columns from "./columns";
import {
rqGetRoleList,
rqGetPermissionList,
rqQueryPermission,
rqModifyOrAddPermissions,
} from "./api";
export default {
name: "rolePermissions",
data() {
return {
columns,
total: 0,
query: {
pageNum: 1,
pageSize: 10,
},
loading: false,
ruleList: [],
dialogVisible: false,
// 一级角色列表
firstLevelRoleList: [],
// 一级id
firstLevelRoleid: "默认",
//操作角色列表
RoleList: [],
// 一级权限列表
LevelPermissionList: [],
// 一级id
firstLevelPermission: "",
defaultProps: {
children: "authorities",
label: "alias",
},
// 角色的id
formRC: {
roleid: "",
// 点击已经选中的id集合
authorityids: [],
},
// 进来已经选择的
selectedByDefault: [],
};
},
created() {
this.getRoleList();
this.getPermissionList();
this.queryRoleList(592539677);
},
methods: {
// 搜索按钮
searchForm() {
this.$message("正在搜索");
},
// 重置按钮
reset() {
this.bus.$emit("onCurrentContextmenuClick", {
id: 0,
path: this.$route.path,
});
},
// 添加
add() {
this.$message("角色新增请联系钉钉后台管理员");
},
// 删除
async deleteData(row) {
this.$message("该角色暂时无法删除");
},
// 编辑
async editData(item) {
this.formRC.roleid = item.id;
this.dialogVisible = true;
console.log(item);
let res = await rqQueryPermission(item.id);
if (res.code == 200) {
let arr = res.data.map((item, index) => {
return item.id;
});
this.selectedByDefault = arr;
this.$refs.treeOne.setCheckedKeys(arr);
} else {
this.$message.error("网络错误");
}
},
// 点击切换页数
onClickCurrent(val) {
this.query.pageNum = val;
this.getAttendanceFormData();
},
// 点击了每页页数
onClickSize(val) {
this.query.pageSize = val;
this.getAttendanceFormData();
},
handleClose(done) {
this.$confirm("确认关闭?")
.then((_) => {
done();
})
.catch((_) => {});
},
// 获取角色列表分类
async getRoleList() {
try {
this.loading = true;
// let result = await rqGetRuleList(this.query.pageNum, this.query.pageSize);//做了分页
let result = await rqGetRoleList();
if (result.code == 200) {
this.loading = false;
this.firstLevelRoleList = result.data;
// this.total = result.data.total;
} else {
this.loading = false;
this.$message.error("服务器错误");
}
} catch (error) {
this.loading = false;
this.$message.error("网络错误");
}
},
// 查询角色列表
async queryRoleList(id) {
try {
this.loading = true;
// let result = await rqGetRuleList(this.query.pageNum, this.query.pageSize);//做了分页
let result = await rqGetRoleList(id);
if (result.code == 200) {
this.loading = false;
this.RoleList = result.data;
// this.total = result.data.total;
} else {
this.loading = false;
this.$message.error("网络错误");
}
} catch (error) {
this.loading = false;
this.$message.error("网络错误");
}
},
// 获取权限列表
async getPermissionList() {
console.log(111);
try {
this.loading = true;
// let result = await rqGetRuleList(this.query.pageNum, this.query.pageSize);//做了分页
let result = await rqGetPermissionList();
if (result.code == 200) {
this.loading = false;
this.LevelPermissionList = result.data;
// this.total = result.data.total;
} else {
this.loading = false;
this.$message.error("服务器错误");
}
} catch (error) {
this.loading = false;
this.$message.error("网络错误");
}
},
// 确认新增或者修改按钮
async confirmSettingRules() {
const treeInstance = this.$refs.treeOne;
// 调用 getCheckedNodes 方法获取已勾选的节点数组
const checkedNodes = treeInstance.getCheckedNodes();
console.log(checkedNodes);
let arr = checkedNodes.map((ion, index) => {
return ion.id;
});
this.formRC.authorityids = arr;
let res = await rqModifyOrAddPermissions(this.formRC);
if (res.code == 200) {
this.$message.success("设置成功");
this.dialogVisible = false;
} else {
this.dialogVisible = false;
this.$message.success("服务器错误");
}
},
},
};
</script>
<style lang="scss" scoped></style>