<template>
|
<div>
|
<el-dialog
|
:title="title"
|
:visible.sync="show"
|
width="65%"
|
:destroy-on-close="true"
|
:close-on-click-modal="false"
|
:modal-append-to-body="false"
|
:modal="false"
|
:before-close="close">
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
|
<el-form-item label="角色名称" prop="roleName">
|
<el-input
|
v-model="queryParams.roleName"
|
placeholder="请输入角色名称"
|
clearable
|
@clear="handleQuery"
|
style="width: 240px"
|
@keyup.enter.native="handleQuery"
|
/>
|
</el-form-item>
|
<el-form-item>
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
</el-form-item>
|
</el-form>
|
|
<el-table ref="dataTable" :row-key="getRowKey" v-loading="loading" :data="roleList" @selection-change="handleMultipleRoleSelect">
|
<el-table-column type="selection" width="50" align="center" :reserve-selection="true"/>
|
<el-table-column label="角色编号" prop="roleId"/>
|
<el-table-column label="角色名称" prop="roleName" :show-overflow-tooltip="true"/>
|
<el-table-column label="权限字符" prop="roleKey" :show-overflow-tooltip="true"/>
|
<el-table-column label="显示顺序" prop="roleSort"/>
|
<el-table-column label="创建时间" align="center" prop="createTime">
|
<template slot-scope="scope">
|
<span>{{ parseTime(scope.row.createTime) }}</span>
|
</template>
|
</el-table-column>
|
</el-table>
|
|
<pagination
|
v-show="total>0"
|
:total="total"
|
:page-sizes="[5,10]"
|
layout="prev, pager, next"
|
:page.sync="queryParams.pageNum"
|
:limit.sync="queryParams.pageSize"
|
@pagination="getList"
|
/>
|
|
<span slot="footer" class="dialog-footer">
|
<el-button type="primary" @click="submit">确 定</el-button>
|
</span>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
import { listRole} from "@/api/system/role";
|
import {StrUtil} from "@/utils/StrUtil";
|
|
export default {
|
name: "MyRole",
|
dicts: ['sys_normal_disable'],
|
// 接受父组件的值
|
props: {
|
show: {
|
type: Boolean,
|
required: true,
|
default: true
|
},
|
title: {
|
type: String,
|
required: false,
|
default: '候选角色'
|
},
|
// 回显数据传值
|
selectValues: {
|
type: Array,
|
default: [],
|
required: false
|
}
|
},
|
data() {
|
return {
|
// 遮罩层
|
loading: true,
|
// 显示搜索条件
|
showSearch: true,
|
// 总条数
|
total: 0,
|
// 角色表格数据
|
roleList: [],
|
// 查询参数
|
queryParams: {
|
pageNum: 1,
|
pageSize: 5,
|
roleName: undefined,
|
roleKey: undefined,
|
status: undefined
|
},
|
selectRoleList: [] // 回显数据传值
|
};
|
},
|
watch: {
|
},
|
mounted() {
|
this.getList();
|
},
|
methods: {
|
// 保存选中的数据id,row-key就是要指定一个key标识这一行的数据
|
getRowKey (row) {
|
console.log(row.roleId)
|
return row.roleId
|
},
|
setChecked(val) {
|
|
this.selectRoleList = val
|
console.log("接收到的数据", this.selectRoleList)
|
this.$nextTick(() => {
|
this.selectRoleList.forEach(check => {
|
this.$refs.dataTable.toggleRowSelection(check, true)
|
})
|
});
|
},
|
close() {
|
this.$emit("close")
|
},
|
submit() {
|
this.$emit("submit", this.selectRoleList)
|
},
|
/** 查询角色列表 */
|
getList() {
|
this.loading = true;
|
listRole(this.queryParams).then(response => {
|
this.roleList = response.rows;
|
this.total = response.total;
|
this.loading = false;
|
}
|
);
|
},
|
// 多选框选中数据
|
handleMultipleRoleSelect(rows) {
|
this.selectRoleList = [...new Set(rows)]
|
},
|
/** 搜索按钮操作 */
|
handleQuery() {
|
this.queryParams.pageNum = 1;
|
this.getList();
|
},
|
/** 重置按钮操作 */
|
resetQuery() {
|
this.handleQuery();
|
},
|
}
|
};
|
</script>
|
<style scoped>
|
|
</style>
|