<template>
|
<div class="logLog_box">
|
<My-bread
|
:list="[
|
`${$t('userManage.userManage')}`,
|
`${$t('userManage.roleManage')}`,
|
]"
|
></My-bread>
|
<el-divider />
|
<div class="inquire">
|
<el-form ref="ruleForm" :model="roleForm" :inline="true">
|
<el-form-item :label="$t('userManage.RM.roleName')" prop="username">
|
<el-input v-model="roleForm.username" />
|
</el-form-item>
|
<el-form-item
|
:label="$t('userManage.RM.ownedSystem')"
|
prop="ownedSystem"
|
>
|
<el-input
|
v-model="roleForm.value"
|
:disabled="true"
|
:placeholder="$t('common.pleaseInput')"
|
/>
|
<el-button style="margin-left: 20px" @click="showDepTree(1)">{{
|
$t('common.choose')
|
}}</el-button>
|
</el-form-item>
|
<br />
|
<el-form-item>
|
<el-button @click="InsertFormdialog = true"
|
><i class="el-icon-circle-plus-outline"></i> {{
|
$t('userManage.RM.add')
|
}}</el-button
|
>
|
</el-form-item>
|
<el-form-item>
|
<el-button @click="onSubmit('ruleForm')"
|
><i class="el-icon-search"></i> {{
|
$t('userManage.RM.query')
|
}}</el-button
|
>
|
</el-form-item>
|
<el-form-item>
|
<el-button @click="resetForm('ruleForm')"
|
><i class="el-icon-delete"></i> {{
|
$t('userManage.RM.reset')
|
}}</el-button
|
>
|
</el-form-item>
|
</el-form>
|
</div>
|
<div class="table_box">
|
<el-table :data="tableData" stripe style="width: 100%" height="99%">
|
<el-table-column
|
align="center"
|
type="index"
|
:label="$t('userManage.RM.index')"
|
width="70px"
|
/>
|
<el-table-column align="center" prop="id" v-if="false" />
|
<el-table-column
|
align="center"
|
prop="name"
|
:label="$t('userManage.RM.roleName')"
|
/>
|
|
<el-table-column
|
align="center"
|
prop="depName"
|
:label="$t('userManage.RM.ownedSystem')"
|
/>
|
<el-table-column
|
align="center"
|
prop="descr"
|
:label="$t('userManage.RM.describe')"
|
/>
|
|
<el-table-column
|
align="center"
|
prop="createUser"
|
:label="$t('userManage.RM.creationuser')"
|
/>
|
<el-table-column
|
align="center"
|
prop="createTime"
|
:label="$t('userManage.RM.creationtime')"
|
:formatter="formatTime"
|
/>
|
<el-table-column
|
align="center"
|
prop="UpdateUser"
|
:label="$t('userManage.RM.updateonuser')"
|
/>
|
<el-table-column
|
align="center"
|
prop="updateTime"
|
:label="$t('userManage.RM.updateontime')"
|
:formatter="formatTime"
|
/>
|
<el-table-column
|
align="center"
|
prop="bak"
|
:label="$t('userManage.RM.remarks')"
|
/>
|
<el-table-column
|
fixed="right"
|
:label="$t('common.operate')"
|
width="200"
|
>
|
<template slot-scope="scope">
|
<el-button
|
type="warning"
|
@click="handleEdit(scope.$index, scope.row)"
|
size="small"
|
>{{ $t('common.update') }}</el-button
|
>
|
<el-button
|
type="danger"
|
@click="handleDelete(scope.$index, scope.row)"
|
size="small"
|
>{{ $t('common.delete') }}</el-button
|
>
|
</template>
|
</el-table-column>
|
</el-table>
|
<div style="margin-top: 25px" class="pagination_box">
|
<el-pagination
|
@size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
:current-page="listData.pageIndex"
|
:page-sizes="[10, 20, 30, 40]"
|
:page-size="listData.pageSize"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="count"
|
>
|
</el-pagination>
|
</div>
|
</div>
|
<el-dialog
|
:title="$t('userManage.RM.insertRole')"
|
top="15vh"
|
width="80vh"
|
style="overflow: hidden"
|
:visible.sync="InsertFormdialog"
|
>
|
<el-form :model="insertform">
|
<el-form-item
|
:label="$t('userManage.RM.roleName')"
|
:label-width="formLabelWidth"
|
>
|
<el-input v-model="insertform.name" autocomplete="off"></el-input>
|
</el-form-item>
|
<el-form-item
|
:label="$t('userManage.RM.ownedSystem')"
|
:label-width="formLabelWidth"
|
:prop="insertform.depValue"
|
:rules="[{ required: true, message: '不能为空' }]"
|
>
|
<el-input
|
v-model="insertform.depValue"
|
:disabled="true"
|
:placeholder="$t('common.pleaseInput')"
|
/>
|
<el-button style="margin-left: 20px" @click="showDepTree(2)">{{
|
$t('common.choose')
|
}}</el-button>
|
</el-form-item>
|
<el-form-item
|
:label="$t('userManage.RM.describe')"
|
:label-width="formLabelWidth"
|
>
|
<el-input v-model="insertform.descr" autocomplete="off"></el-input>
|
</el-form-item>
|
<el-form-item
|
:label="$t('userManage.RM.remarks')"
|
:label-width="formLabelWidth"
|
>
|
<el-input v-model="insertform.bak" autocomplete="off"></el-input>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click="insertFromClose">{{ $t('common.close') }}</el-button>
|
<el-button type="primary" @click="insertFromData">{{
|
$t('common.confirm')
|
}}</el-button>
|
</div>
|
</el-dialog>
|
<el-dialog
|
:title="$t('userManage.RM.insertRole')"
|
top="15vh"
|
width="80vh"
|
style="overflow: hidden"
|
:visible.sync="UpdateFormdialog"
|
>
|
<el-form :model="updateform">
|
<el-form-item
|
:label="$t('userManage.RM.roleName')"
|
:label-width="formLabelWidth"
|
>
|
<el-input v-model="updateform.name" autocomplete="off"></el-input>
|
</el-form-item>
|
|
<el-form-item
|
:label="$t('userManage.RM.ownedSystem')"
|
:label-width="formLabelWidth"
|
:prop="updateform.depValue"
|
>
|
<el-input
|
v-model="updateform.depValue"
|
:disabled="true"
|
:placeholder="$t('common.pleaseInput')"
|
/>
|
<el-button style="margin-left: 20px" @click="showDepTree(3)">{{
|
$t('common.choose')
|
}}</el-button>
|
</el-form-item>
|
<el-form-item
|
:label="$t('userManage.RM.describe')"
|
:label-width="formLabelWidth"
|
>
|
<el-input v-model="updateform.descr" autocomplete="off"></el-input>
|
</el-form-item>
|
<el-form-item
|
:label="$t('userManage.RM.remarks')"
|
:label-width="formLabelWidth"
|
>
|
<el-input v-model="updateform.bak" autocomplete="off"></el-input>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click="updateFromClose">{{ $t('common.close') }}</el-button>
|
<el-button type="primary" @click="updateFromData">{{
|
$t('common.confirm')
|
}}</el-button>
|
</div>
|
</el-dialog>
|
<div class="leftTree" v-if="showCata">
|
<div class="treeBox">
|
<role-dep-tree></role-dep-tree>
|
</div>
|
<div class="btnBox">
|
<el-button type="primary" size="small" @click="selectCataName"
|
>确定</el-button
|
>
|
<el-button type="primary" size="small" @click="showCata = false"
|
>取消</el-button
|
>
|
</div>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import moment from 'moment';
|
import MyBread from '../../components/MyBread.vue';
|
import roleDepTree from './roleDepTree.vue';
|
import {
|
select_Role_ByPageAndCount,
|
selectdepTab,
|
insertRole,
|
deleteRole,
|
selectDep,
|
updateRole,
|
} from '../../api/api';
|
export default {
|
//import引入的组件需要注入到对象中才能使用
|
components: {
|
MyBread,
|
roleDepTree,
|
},
|
data() {
|
return {
|
showCata: false,
|
formLabelWidth: '120px',
|
InsertFormdialog: false,
|
UpdateFormdialog: false,
|
roleForm: {},
|
cataName: '',
|
depValue: '',
|
elTreeFlag: 0,
|
path_id: '',
|
tableData: [],
|
insertform: {},
|
updateform: {},
|
count: 0,
|
selData: [],
|
listData: {
|
name: null,
|
depName: null,
|
pageIndex: 1,
|
pageSize: 10,
|
},
|
};
|
},
|
methods: {
|
formatTime(row, column) {
|
let date = row[column.property];
|
|
if (date === undefined || date === null) {
|
return '';
|
}
|
|
return moment(parseInt(date)).format('YYYY-MM-DD HH:mm:ss');
|
},
|
showDepTree(res) {
|
this.showCata = true;
|
this.elTreeFlag = res;
|
},
|
selectCataName() {
|
this.cataName = this.$store.state.catalogueName;
|
this.path_id = this.$store.state.cataNode.id;
|
var value;
|
if (this.cataName.indexOf('>') != -1) {
|
var data = this.$store.state.catalogueName.split('>');
|
value = data[data.length - 1];
|
} else {
|
value = this.$store.state.catalogueName;
|
}
|
this.$store.commit('changeCata', ''); //清空state的面包屑
|
this.$store.commit('changeNode', ''); //清空state的节点对象
|
this.showCata = false;
|
switch (this.elTreeFlag) {
|
case 1:
|
this.roleForm.value = value;
|
this.roleForm.depid = this.path_id;
|
break;
|
case 2:
|
this.insertform.depid = this.path_id;
|
this.insertform.depValue = value;
|
break;
|
case 3:
|
this.updateform.depid = this.path_id;
|
this.updateform.depValue = value;
|
break;
|
}
|
},
|
async getRoleTabelData() {
|
if (this.listData.tab == '') {
|
delete this.listData.tab;
|
}
|
this.listData.name = this.roleForm.username;
|
this.listData.depName = this.roleForm.value;
|
const data = await select_Role_ByPageAndCount(this.listData);
|
if (data.code != 200) {
|
this.$message.error('列表调用失败');
|
}
|
this.tableData = data.result;
|
this.count = data.count;
|
},
|
async getSelectDepTab() {
|
this.selectData = [];
|
const data = await selectdepTab();
|
if (data.code != 200) {
|
this.$message.error('下拉调用失败');
|
}
|
data.result.forEach((e) => {
|
if (e) {
|
this.selData.push({
|
label: e.name,
|
value: e.id,
|
});
|
}
|
});
|
},
|
insertFromClose() {
|
this.InsertFormdialog = false;
|
this.insertform = {};
|
},
|
async insertFromData() {
|
if (this.insertform.depValue == null) {
|
this.$message({
|
message: '请选择角色所属单位',
|
type: 'warning',
|
});
|
return;
|
}
|
const data = await insertRole(this.insertform);
|
if (data.code == 200) {
|
this.InsertFormdialog = false;
|
this.insertform = {};
|
this.$message({
|
message: '添加成功!',
|
type: 'success',
|
});
|
this.getRoleTabelData();
|
} else {
|
this.$message({
|
message: '添加失败!',
|
type: 'warning',
|
});
|
}
|
},
|
updateFromClose() {
|
this.UpdateFormdialog = false;
|
this.updateform = {};
|
},
|
async updateFromData() {
|
if (this.updateform.depValue == null) {
|
this.$message({
|
message: '请选择角色所属单位',
|
type: 'warning',
|
});
|
return;
|
}
|
const data = await updateRole(this.updateform);
|
if (data.code == 200) {
|
this.UpdateFormdialog = false;
|
this.updateform = {};
|
this.$message({
|
message: '修改成功!',
|
type: 'success',
|
});
|
this.getRoleTabelData();
|
} else {
|
this.$message({
|
message: '修改失败!',
|
type: 'warning',
|
});
|
}
|
},
|
async handleDelete(index, row) {
|
const data = await deleteRole({ id: row.id.toString() });
|
if (data.code == 200) {
|
this.InsertFormdialog = false;
|
this.$message({
|
message: '删除成功!',
|
type: 'success',
|
});
|
this.getRoleTabelData();
|
} else {
|
this.$message({
|
message: '删除失败!',
|
type: 'warning',
|
});
|
}
|
},
|
handleSizeChange(val) {
|
this.listData.pageSize = val;
|
this.getRoleTabelData();
|
},
|
handleCurrentChange(val) {
|
this.listData.pageIndex = val;
|
this.getRoleTabelData();
|
},
|
async handleEdit(index, row) {
|
this.updateform = row;
|
const data = await selectDep({ id: row.depid });
|
this.updateform.depValue = data.result.name;
|
this.UpdateFormdialog = true;
|
},
|
onSubmit() {
|
this.getRoleTabelData();
|
},
|
resetForm(formName) {
|
this.$refs[formName].resetFields();
|
this.roleForm = {};
|
this.getRoleTabelData();
|
},
|
},
|
created() {
|
this.getRoleTabelData();
|
this.getSelectDepTab();
|
},
|
};
|
</script>
|
<style lang="less" scoped>
|
//@import url(); 引入公共css类
|
.logLog_box {
|
background: rgb(240, 242, 245);
|
border-radius: 10px;
|
height: 100%;
|
padding: 10px;
|
box-sizing: border-box;
|
.el-input {
|
width: 300px;
|
}
|
.leftTree {
|
position: absolute;
|
z-index: 9999;
|
top: 9%;
|
left: 37%;
|
width: 400px;
|
height: 600px;
|
background: #f0f2f5;
|
border: 1px solid #000;
|
.treeBox {
|
height: 550px;
|
overflow: auto;
|
/deep/ .el-tree-node__content:hover {
|
background-color: rgb(153, 153, 153);
|
}
|
}
|
.btnBox {
|
width: 123px;
|
margin: 10px auto 0;
|
// background-color: red;
|
}
|
}
|
.inquire {
|
height: 115px;
|
overflow: auto;
|
padding: 10px;
|
margin-top: 20px;
|
background: #fff;
|
border-radius: 5px;
|
border: 1px solid rgb(202, 201, 204);
|
margin-bottom: 10px;
|
.el-form-item {
|
margin: 7px;
|
}
|
}
|
.table_box {
|
height: 70%;
|
padding: 10px;
|
background: #fff;
|
border-radius: 5px;
|
border: 1px solid rgb(202, 201, 204);
|
}
|
.text-center {
|
text-align: center;
|
}
|
}
|
</style>
|