<!doctype html>
|
<html>
|
<head>
|
<meta charset="utf-8">
|
<title>人员角色</title>
|
<script src="../../../js/vue/vue.js"></script>
|
<script src="../../../js/vue/element-ui/lib/index.js"></script>
|
<script src="../../../js/vue/axios/dist/axios.min.js"></script>
|
<script src="../js/myelement.js"></script>
|
<script src="../../../js/vue/page.js"></script>
|
<script src="../../../js/common.js"></script>
|
|
<link href="../../../js/vue/element-ui/lib/theme-chalk/index.css" rel="stylesheet">
|
<link href="../../../css/myelement.css" rel="stylesheet">
|
<link href="../../../css/iconfont.css" rel="stylesheet">
|
<link href="../../../css/page.css" rel="stylesheet">
|
<link href="//at.alicdn.com/t/font_2374495_13ltsxm2eor.css" rel="stylesheet">
|
</head>
|
|
<body>
|
<div id="vbody">
|
<div id="page_root">
|
<div class="topbar">
|
<span>{{title}}</span>
|
</div>
|
|
<div style="padding: 0 20px; box-sizing: border-box;">
|
<div style="width: 59%; height: 100%; float: left; border: 1px solid #ccc;">
|
<div style="height: 40px; border-bottom: 1px solid #ccc;">
|
|
<div style="float: left; margin-left: 10px; font-weight: bold; line-height: 40px;">
|
<div style="float: right; margin: 0px;">
|
<h-form-filter ref="form1"
|
:form-attr="filterAttr"
|
:table-fields="filterFields"
|
:form-data="filterObj"
|
:isbuttonquery="false"
|
|
v-on:on-formchange="onQuery"
|
v-on:show-popup="showFilterPopup"
|
v-on:on-query="onQuery"
|
v-on:on-init-query="onInitFilter"
|
v-on:on-edit-query="onEditFilter"
|
>
|
</h-form-filter>
|
</div>
|
</div>
|
|
</div>
|
<h-table
|
ref="table1"
|
:tableloading="tableloading"
|
:table-fields="tableFields"
|
:table-data="tableData"
|
:is-edit-table-data="isEditTableData"
|
:table-height="tableHeight"
|
:is-highlight-row="true"
|
:pagesize="pagesize"
|
:pagenum="pagenum"
|
:total="total"
|
v-on:get-data="getData"
|
v-on:row-click="rowClick">
|
</h-table>
|
</div>
|
<div
|
:style="{width: '40%', height: tableHeight + 120+'px', float: 'right', border: '1px solid #ccc'}">
|
<el-container >
|
|
<el-main
|
:style="{height: tableHeight +300 +'px', 'border-left': '1px solid #ccc', padding: 0}">
|
<div style="border-bottom: 1px solid #ccc; height: 40px; padding-left: 20px;">
|
<div style="float: left; margin-left: 10px; font-weight: bold; line-height: 40px;">
|
<span>角色列表</span>
|
</div>
|
<div style="float: right; margin: 5px;">
|
<el-button-group style="margin-left: 3px;">
|
<el-button @click="onSaveResourceByPage">保存</el-button>
|
</el-button-group>
|
</div>
|
</div>
|
<div style="padding-left: 10px; padding-right: 10px; box-sizing: border-box;">
|
<h-table ref="table_role" :table-fields="tableFields_Role"
|
:table-data="tableData_role" :select-table-data="selectRole"
|
:table-height="tab_tableHeight" :is-selection="true" row-key="id"
|
:is-show-index="true" :is-pagination="false"
|
v-on:selection-change="selectionRole">
|
</h-table>
|
</div>
|
</el-main>
|
</el-container>
|
</div>
|
</div>
|
</div>
|
<div id="page_loading" style="position: absolute; top:0px; width: 100vw; height: 100vh;">
|
<div class="spinner">
|
<div class="cube1"></div>
|
<div class="cube2"></div>
|
</div>
|
</div>
|
</div>
|
|
<script type="text/javascript">
|
|
var initlized = false;
|
|
new ListVue({
|
el: "#vbody",
|
data: {
|
dataname: "VEmployeeAndUser",
|
tabaleFieldsName: "empRoleConfig_",
|
filterFieldsName: "empRoleConfig_",
|
title: "人员角色",
|
filterAttr: {
|
columnnumber: 3,
|
labelwidth: "80px",
|
labelposition: "right",
|
size: "medium",
|
border: "3px solid #c6c6c600"
|
},
|
orderby: "",
|
|
tab_tableHeight:0,
|
selectMenu: {
|
menuId: {
|
role: []
|
}
|
}, //需要添加的资源
|
tableHeight:420,
|
menuId:"",
|
selectRole: [],
|
tableData_role: [],
|
tableFields_Role: [
|
{isshow: "T", field: "id", name: "id", align: "center"},
|
{isshow: "T", field: "name", name: "名称", align: "left"},
|
],
|
|
},
|
created() {
|
this.tab_tableHeight = this.tableHeight - 60;
|
this.pageCode = "A1-5";
|
this.getResoures();
|
},
|
|
mounted() {
|
this.initData();
|
this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
|
hideLoading();
|
});
|
},
|
|
methods:{
|
initData() {
|
if (initlized) { return; }
|
initlized = true;
|
|
this.onQuery();
|
},
|
|
onServerInitData(data) {
|
var me = this.data;
|
|
me.tableFields = data.tableFields;
|
me.filterFields = data.filterFields;
|
|
if(me.filterFields.length > 0) {
|
for(var i=0; i < me.filterFields.length; i++) {
|
let fieldObj_ = me.filterFields[i];
|
|
me.filterFieldsObj[fieldObj_.field] = fieldObj_;
|
}
|
}
|
if(me.tableFields.length > 0) {
|
for(var i=0; i < me.tableFields.length; i++) {
|
let fieldObj_ = me.tableFields[i];
|
|
me.tableFieldsObj[fieldObj_.field] = fieldObj_;
|
}
|
}
|
},
|
|
rowClick(obj) {
|
let me = this;
|
me.pageId = obj.row.employeeid;
|
me.pageCode = obj.row.employee_code;
|
me.menuId = obj.row.employeeid;
|
me.selectMenu[me.menuId] = {
|
role: []
|
};
|
me.selectRole = [];
|
var params = {
|
isClientMode: false,
|
dataname: "sysRole", //buttonByTab/buttonByPanel
|
filter: "1=1",
|
}
|
Server.call("root/data/getEntitySet", params, function(result) {
|
console.log(result);
|
if (result && result.data) {
|
let data_ = result.data.entityset;
|
me.tableData_role = clone(data_);
|
me.getDefaultSelect(data_,"Role")
|
}
|
|
})
|
},
|
getDefaultSelect(data_,type) {
|
let id = "";
|
for (let i = 0; i < data_.length; i++) {
|
if (i == data_.length - 1) {
|
id = id + data_[i].id
|
} else {
|
id = id + data_[i].id + "','"
|
}
|
}
|
console.log(id)
|
let me = this;
|
filter_ = "sys_role_mapping.business_id='" + me.pageCode + "'";
|
|
param_ = {
|
isClientMode: false,
|
dataname: "getRoleByEmployee",
|
filter: filter_,
|
}
|
Server.call("root/data/getEntitySet", param_, function(result) {
|
console.log(result);
|
if (result && result.data) {
|
let data__ = result.data.entityset;
|
let arr = [];
|
for (let i = 0; i < data__.length; i++) {
|
arr[i] = data__[i].id
|
}
|
|
me.selectRole = arr;
|
//me['select' + type] = arr;
|
me.selectMenu[me.menuId][type.toLowerCase()] = arr;
|
|
}
|
});
|
},
|
|
|
selectionRole(val) {
|
this.selectMenu[this.menuId].role = val;
|
},
|
onSaveResourceByPage() {
|
|
this.saveResourceByPage('Role');
|
|
this.$message({
|
message: '保存成功',
|
type: 'success'
|
});
|
},
|
saveResourceByPage(type) {
|
|
let id = "";
|
let arr = this.selectRole
|
|
for (let i = 0; i < arr.length; i++) {
|
if (i == arr.length - 1) {
|
id = id + arr[i]
|
} else {
|
id = id + arr[i] + "','"
|
}
|
}
|
console.log(id)
|
|
var roleType = this.selectRole.type;
|
let me = this;
|
let filter_ = "business_id='"+ me.pageCode +"'";
|
|
param_ = {
|
isClientMode: false,
|
dataname: "sysRoleMapping",
|
filter: filter_,
|
}
|
Server.call("root/data/deleteEntitySet", param_, function(result) {
|
console.log(result);
|
let arr_ = me.selectMenu[me.menuId][type.toLowerCase()];
|
|
for (let i = 0; i < arr_.length; i++) {
|
param_ = {
|
business_id: me.pageCode,
|
|
role_id: arr_[i].id,
|
type: "employee",
|
}
|
param_.isClientMode = false,
|
param_.dataname = "sysRoleMapping",
|
|
Server.call("root/data/insertEntity", param_, function(result) {
|
console.log(result);
|
|
let arr1 = me.selectMenu[me.menuId][type.toLowerCase()]
|
arr = [];
|
for(let i = 0; i < arr1.length; i++) {
|
arr[i] = arr1[i].id
|
}
|
console.log(arr1)
|
console.log(arr)
|
me['select' + type] = arr;
|
});
|
}
|
});
|
},
|
|
}
|
});
|
</script>
|
</body>
|
</html>
|