审核角色配置
This commit is contained in:
parent
a1de52de8f
commit
1b1e7bbb65
|
|
@ -3870,5 +3870,67 @@ export function addAuditFlow (data) {
|
|||
url: '/greenH5/greenWebmodul/rest/greenRole/addAuditFlow',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 审批角色列表
|
||||
export function auditRoleList (data) {
|
||||
return request({
|
||||
url: '/greenH5/greenWebmodul/rest/greenRole/getHouseCheckRoleList',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 获取用户
|
||||
export function getCheckUserInfo (data) {
|
||||
return request({
|
||||
url: '/greenH5/greenWebmodul/rest/greenRole/getCheckUserInfo',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
// 新增审批角色
|
||||
export function addHouseCheckRole (data) {
|
||||
return request({
|
||||
url: '/greenH5/greenWebmodul/rest/greenRole/addHouseCheckRole',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
// 编辑审批角色
|
||||
export function editAuditRole (data) {
|
||||
return request({
|
||||
url: '/greenH5/greenWebmodul/rest/greenRole/modify',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 编辑审批角色
|
||||
export function delAuditRole (data) {
|
||||
return request({
|
||||
url: '/greenH5/greenWebmodul/rest/greenRole/delete',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 审批角色详情
|
||||
export function getAuditRoleDetail (data) {
|
||||
return request({
|
||||
url: '/greenH5/greenWebmodul/rest/greenRole/getCheckUserByRole',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 审批角色-绑定用户
|
||||
export function bandAuditUser (data) {
|
||||
return request({
|
||||
url: '/greenH5/greenWebmodul/rest/greenRole/addPersonByRole',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
|
@ -0,0 +1,361 @@
|
|||
<template>
|
||||
<el-container class="container">
|
||||
<el-header class="filter-container">
|
||||
<el-form :inline="true" :model="formInline" class="demo-form-inline">
|
||||
<div>
|
||||
<el-form-item label="角色名称" class="form-flex">
|
||||
<el-input @input="e => formInline.roleName = validForbid(e)" :value="formInline.roleName" maxlength="20"
|
||||
placeholder="请输入内容"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="onSubmit()">查询</el-button>
|
||||
<el-button type="primary" @click="newAdd()">新增</el-button>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
</el-header>
|
||||
<div class="table">
|
||||
<el-table :element-loading-text="loadingMsg" v-loading="loading" :data="tableData" stripe border
|
||||
style="width:100%">
|
||||
<el-table-column fixed prop="num" label="序号" min-width="50" width="50">
|
||||
<template slot-scope="scope">{{ page.sizePage * ((page.limit == 0 ? 1 : page.limit) - 1) + (scope.$index + 1)
|
||||
}}</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="roleName" label="角色名称" min-width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-popover placement="top-start" title width="200" trigger="hover" :content="scope.row.roleName">
|
||||
<div class="maxsize" slot="reference">{{ scope.row.roleName }}</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="操作" min-width="100" align="center">
|
||||
<template slot-scope="{row}">
|
||||
<el-button type="primary" size="mini" @click="editUser(row)">编辑</el-button>
|
||||
<el-button type="primary" size="mini" @click="bandUser(row)">绑定用户</el-button>
|
||||
<el-button type="danger" size="mini" @click="del(row.id)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<!-- 分页 -->
|
||||
<div class="foot-total">
|
||||
<Paging @currentChanges="currentChanges" :pageNum="parseInt(page.limit)" :size="parseInt(page.sizePage)"
|
||||
:total="parseInt(page.total)" />
|
||||
</div>
|
||||
|
||||
<!-- 编辑 -->
|
||||
<Ticketopop v-if="isflag" :btn="num" :title="title" @closeDialog="closeDialog" @submit="submit" :dataForm="row"
|
||||
:disabled="loading" :width="600" />
|
||||
<!-- 绑定用户 -->
|
||||
<BandUser v-if="isflag2" :btn="num" :title="title2" @closeDialog2="closeDialog2" @submit2="submit2" :dataForm="row2"
|
||||
:usersList="usersList" :disabled="loading" :width="600" />
|
||||
</el-container>
|
||||
</template>
|
||||
<script>
|
||||
import Paging from "@/views/Public/paging.vue";
|
||||
import { auditRoleList, getCheckUserInfo, addHouseCheckRole, editAuditRole, delAuditRole, bandAuditUser, getAuditRoleDetail } from "@/api/getdata";
|
||||
import Ticketopop from "./popup/ticketpop.vue";
|
||||
import BandUser from "./popup/bandUser.vue";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loading: false, //初始化loading
|
||||
loadingMsg: "",
|
||||
row: {},
|
||||
row2: {},
|
||||
title: '',
|
||||
dataList: [],
|
||||
usersList: [],
|
||||
validation: false,
|
||||
formInline: {
|
||||
roleName: "",
|
||||
roleCode: "",
|
||||
roleType: ""
|
||||
},
|
||||
page: {
|
||||
limit: 0 /** 当前点击*/,
|
||||
sizePage: 10 /** 当前多少页*/,
|
||||
total: 0 /**总数 */
|
||||
},
|
||||
tableData: [],
|
||||
isflag: false /**用于设置弹窗 */,
|
||||
isflag2: false /**用于绑定用户设置弹窗 */,
|
||||
num: 3
|
||||
};
|
||||
},
|
||||
components: {
|
||||
Paging,
|
||||
Ticketopop,
|
||||
BandUser
|
||||
},
|
||||
mounted() {
|
||||
this.createLoad();
|
||||
if (this.$route.params.index) {
|
||||
this.currentChanges(this.$route.params.index);
|
||||
} else {
|
||||
this.getlist();
|
||||
}
|
||||
this.getUserList();
|
||||
},
|
||||
methods: {
|
||||
createLoad() {
|
||||
this.loading = true;
|
||||
this.loadingMsg = "加载中...";
|
||||
},
|
||||
clearLoad() {
|
||||
this.loading = false;
|
||||
this.loadingMsg = "";
|
||||
},
|
||||
// 分页
|
||||
currentChanges(val) {
|
||||
this.createLoad();
|
||||
this.page.limit = val;
|
||||
this.getlist();
|
||||
},
|
||||
getlist() {
|
||||
this.createLoad();
|
||||
let Content = {
|
||||
roleName: this.formInline.roleName,
|
||||
currentPage: this.page.limit == 0 ? 1 : this.page.limit,
|
||||
pageIndex: this.page.limit == 0 ? 1 : this.page.limit,
|
||||
pageSize: 10,
|
||||
};
|
||||
auditRoleList(Content)
|
||||
.then(res => {
|
||||
if (res.returnCode == "1") {
|
||||
|
||||
this.clearLoad();
|
||||
this.tableData = res.returnData.data;
|
||||
this.page.total = res.returnData.total;
|
||||
this.page.limit = res.returnData.currentPage;
|
||||
this.tableData.id = res.returnData.data.id;
|
||||
} else {
|
||||
this.$message({
|
||||
message: res.returnMsg,
|
||||
type: "warning"
|
||||
});
|
||||
setTimeout(() => {
|
||||
this.clearLoad();
|
||||
}, 300);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
setTimeout(() => {
|
||||
this.clearLoad();
|
||||
}, 300);
|
||||
});
|
||||
},
|
||||
// 查询用户
|
||||
getUserList() {
|
||||
getCheckUserInfo({})
|
||||
.then(res => {
|
||||
console.log(res);
|
||||
if (res.returnCode == '1') {
|
||||
this.usersList = res.returnData;
|
||||
}
|
||||
}).catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
// 审批角色绑定用户详情
|
||||
getAuditRole(id) {
|
||||
getAuditRoleDetail({ roleId: id })
|
||||
.then(res => {
|
||||
if (res.returnCode == '1') {
|
||||
let userObjArr = res.returnData;
|
||||
let userIdArr = [];
|
||||
for (let i = 0; i < userObjArr.length; i++) {
|
||||
userIdArr.push(userObjArr[i].USER_ID);
|
||||
}
|
||||
this.row2.userId = userIdArr;
|
||||
this.title2 = '绑定用户';
|
||||
this.isflag2 = true;
|
||||
// return res.returnData;
|
||||
}
|
||||
}).catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
onSubmit() {
|
||||
console.log(this.formInline);
|
||||
this.page.limit = 1;
|
||||
this.createLoad();
|
||||
this.getlist();
|
||||
},
|
||||
newAdd() {
|
||||
var data = {
|
||||
id: 0,
|
||||
roleCode: '',
|
||||
roleName: '',
|
||||
roleType: '3',
|
||||
isDeleted: 'N'
|
||||
};
|
||||
this.row = data;
|
||||
this.title = '新增角色';
|
||||
this.isflag = true;
|
||||
},
|
||||
del(id) {
|
||||
this.$alert("确认进行删除嘛?", "确认", {
|
||||
confirmButtonText: "确定",
|
||||
callback: action => {
|
||||
if (action == "confirm") {
|
||||
this.createLoad();
|
||||
let Content = {
|
||||
id: id
|
||||
};
|
||||
delAuditRole(Content)
|
||||
.then(res => {
|
||||
if (res.returnCode == "1") {
|
||||
this.$message({
|
||||
message: res.returnMsg,
|
||||
type: "success"
|
||||
});
|
||||
this.getlist();
|
||||
this.dialogTableVisible = false;
|
||||
} else {
|
||||
this.$message({
|
||||
message: res.returnMsg,
|
||||
type: "warning"
|
||||
});
|
||||
setTimeout(() => {
|
||||
this.clearLoad();
|
||||
}, 300);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
setTimeout(() => {
|
||||
this.clearLoad();
|
||||
}, 300);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
editUser(data) {
|
||||
// this.row = data;
|
||||
this.row = Object.assign({}, data);
|
||||
this.title = '修改角色';
|
||||
this.isflag = true;
|
||||
},
|
||||
bandUser(data) {
|
||||
data.userId = [];
|
||||
this.row2 = Object.assign({}, data);
|
||||
this.getAuditRole(data.id);
|
||||
},
|
||||
closeDialog() {
|
||||
this.isflag = false;
|
||||
this.row = {};
|
||||
},
|
||||
closeDialog2() {
|
||||
this.isflag2 = false;
|
||||
this.row2 = {};
|
||||
|
||||
},
|
||||
// 提交
|
||||
submit(e) {
|
||||
this.createLoad();
|
||||
if (e.id == 0) {
|
||||
e.creator = 'admin';
|
||||
e.modifier = 'admin';
|
||||
e.id = null;
|
||||
addHouseCheckRole(e)
|
||||
.then(res => {
|
||||
if (res.returnCode == '1') {
|
||||
this.$message({
|
||||
message: res.returnMsg,
|
||||
type: "success"
|
||||
});
|
||||
this.isflag = false;
|
||||
this.getlist();
|
||||
this.row = {};
|
||||
} else {
|
||||
this.clearLoad();
|
||||
this.$message({
|
||||
message: res.returnMsg,
|
||||
type: "warning"
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.clearLoad();
|
||||
});
|
||||
} else {
|
||||
e.modifier = 'admin';
|
||||
editAuditRole(e)
|
||||
.then(res => {
|
||||
if (res.returnCode == '1') {
|
||||
this.$message({
|
||||
message: res.returnMsg,
|
||||
type: "success"
|
||||
});
|
||||
this.isflag = false;
|
||||
this.getlist();
|
||||
this.row = {};
|
||||
} else {
|
||||
this.clearLoad();
|
||||
this.$message({
|
||||
message: res.returnMsg,
|
||||
type: "warning"
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.clearLoad();
|
||||
});
|
||||
}
|
||||
},
|
||||
submit2(e) {
|
||||
this.createLoad();
|
||||
bandAuditUser(e)
|
||||
.then(res => {
|
||||
if (res.returnCode == '1') {
|
||||
this.$message({
|
||||
message: res.returnMsg,
|
||||
type: "success"
|
||||
});
|
||||
this.isflag2 = false;
|
||||
this.getlist();
|
||||
this.row2 = {};
|
||||
} else {
|
||||
this.clearLoad();
|
||||
this.$message({
|
||||
message: res.returnMsg,
|
||||
type: "warning"
|
||||
});
|
||||
}
|
||||
}).catch(err => {
|
||||
this.clearLoad();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
.filter-container {
|
||||
width: 100%;
|
||||
height: auto !important;
|
||||
/* flex-basis: 120px; */
|
||||
}
|
||||
|
||||
.block {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.secondrow {
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
.table {
|
||||
/* width: */
|
||||
background: #eeeeee;
|
||||
padding: 10px;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.upload-demo {
|
||||
margin: 0 -21px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,99 @@
|
|||
<template>
|
||||
<!-- 小型弹窗,用于完成,删除,保存等操作 -->
|
||||
<el-dialog class="l-dialog" :class="lDialog" :title="title" :visible.sync="dialogVisible" :showClose="false"
|
||||
:closeOnClickModal="false">
|
||||
<div>
|
||||
<el-form :model="dataForm" ref="ruleForm" label-width="110px">
|
||||
<el-form-item label="角色名称">
|
||||
<el-input style="width:100%" v-model="dataForm.roleName" :disabled="true" maxlength="20"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="绑定用户">
|
||||
<el-select style="width:100%" v-model="dataForm.userId" multiple filterable default-first-option placeholder="请选择用户">
|
||||
<el-option v-for="item in usersList" :key="item.userId" :label="`${item.roleName} - ${item.userName}`" :value="item.userId">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button class="clear-btn" @click="handleClose" :disabled="disabled">取消</el-button>
|
||||
<el-button type="primary" class="search-btn" :disabled="disabled" @click="submitForm()">确认</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
props: ["width", "dataForm", "title", "disabled", "usersList"],
|
||||
data() {
|
||||
return {
|
||||
roles: [],
|
||||
lDialog: this.width > 500 ? "w700" : "w500",
|
||||
dialogVisible: true,
|
||||
isDisabled: true,
|
||||
options: [],
|
||||
roleIds: [],
|
||||
menuIds: [],
|
||||
menuList: [],
|
||||
defaultProps: {
|
||||
children: 'children',
|
||||
label: 'name'
|
||||
},
|
||||
roleTypes: ['WEB角色', 'APP角色'],
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
},
|
||||
methods: {
|
||||
/*关闭弹窗 */
|
||||
handleClose() {
|
||||
this.dialogVisible = false;
|
||||
this.$emit("closeDialog2");
|
||||
setTimeout(() => {
|
||||
this.dialogVisible = true;
|
||||
});
|
||||
},
|
||||
/**确认弹窗 */
|
||||
sureBtnClick() {
|
||||
this.dialogVisible = false;
|
||||
this.$emit("closeDialog2");
|
||||
setTimeout(() => {
|
||||
this.dialogVisible = true;
|
||||
});
|
||||
},
|
||||
/**验证 */
|
||||
submitForm() {
|
||||
let data = JSON.parse(JSON.stringify(this.dataForm));
|
||||
data.userId = data.userId.join(',');
|
||||
data.roleId = data.id;
|
||||
this.$emit('submit2', data);
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.w700 .el-dialog {
|
||||
width: 700px;
|
||||
}
|
||||
|
||||
.w500 .el-dialog {
|
||||
width: 500px;
|
||||
}
|
||||
|
||||
.w500 .el-dialog__header,
|
||||
.w700 .el-dialog__header {
|
||||
background: #eeeeee;
|
||||
text-align: center;
|
||||
|
||||
.el-dialog__title {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.yxq .el-range-separator {
|
||||
margin-right: 7px !important;
|
||||
}
|
||||
|
||||
.el-date-editor--daterange.el-input__inner {
|
||||
width: 260px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
<template>
|
||||
<!-- 小型弹窗,用于完成,删除,保存等操作 -->
|
||||
<el-dialog class="l-dialog" :class="lDialog" :title="title" :visible.sync="dialogVisible" :showClose="false"
|
||||
:closeOnClickModal="false">
|
||||
<div>
|
||||
<el-form :model="dataForm" ref="ruleForm" label-width="110px">
|
||||
<el-form-item label="角色名称">
|
||||
<el-input style="width:100%" v-model="dataForm.roleName" maxlength="20"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button class="clear-btn" @click="handleClose" :disabled="disabled">取消</el-button>
|
||||
<el-button type="primary" class="search-btn" :disabled="disabled" @click="submitForm()">确认</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
props: ["width", "dataForm", "title", "disabled", "usersList"],
|
||||
data() {
|
||||
return {
|
||||
roles: [],
|
||||
lDialog: this.width > 500 ? "w700" : "w500",
|
||||
dialogVisible: true,
|
||||
isDisabled: true,
|
||||
options: [],
|
||||
roleIds: [],
|
||||
menuIds: [],
|
||||
menuList: [],
|
||||
defaultProps: {
|
||||
children: 'children',
|
||||
label: 'name'
|
||||
},
|
||||
roleTypes: ['WEB角色', 'APP角色'],
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
},
|
||||
methods: {
|
||||
/*关闭弹窗 */
|
||||
handleClose() {
|
||||
this.dialogVisible = false;
|
||||
this.$emit("closeDialog");
|
||||
setTimeout(() => {
|
||||
this.dialogVisible = true;
|
||||
});
|
||||
},
|
||||
/**确认弹窗 */
|
||||
sureBtnClick() {
|
||||
this.dialogVisible = false;
|
||||
this.$emit("closeDialog");
|
||||
setTimeout(() => {
|
||||
this.dialogVisible = true;
|
||||
});
|
||||
},
|
||||
/**验证 */
|
||||
submitForm(formName) {
|
||||
let data = this.dataForm;
|
||||
data.roleType = '3';
|
||||
this.$emit('submit', data);
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.w700 .el-dialog {
|
||||
width: 700px;
|
||||
}
|
||||
|
||||
.w500 .el-dialog {
|
||||
width: 500px;
|
||||
}
|
||||
|
||||
.w500 .el-dialog__header,
|
||||
.w700 .el-dialog__header {
|
||||
background: #eeeeee;
|
||||
text-align: center;
|
||||
|
||||
.el-dialog__title {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.yxq .el-range-separator {
|
||||
margin-right: 7px !important;
|
||||
}
|
||||
|
||||
.el-date-editor--daterange.el-input__inner {
|
||||
width: 260px;
|
||||
}
|
||||
</style>
|
||||
Loading…
Reference in New Issue