<!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="float: right; margin: 0px;">
|
<h-form-filter ref="form1"
|
:form-attr="filterAttr"
|
:table-fields="filterFields"
|
:form-data="filterObj"
|
:isbuttonquery="true"
|
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>
|
<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: "人员角色",
|
filterObj:{
|
type:"employee"
|
},
|
filterAttr: {
|
columnnumber: 3,
|
labelwidth: "80px",
|
labelposition: "right",
|
size: "medium",
|
border: "3px solid #c6c6c600"
|
},
|
orderby: "",
|
emp_code:"",
|
emp_name:"",
|
tab_tableHeight:0,
|
selectMenu: [], //需要添加的资源
|
selectMenu_old: [], //需要添加的资源
|
tableHeight:420,
|
menuId:"",
|
selectRole: [],
|
tableData_role: [],
|
requestNum:0,
|
tableFields_Role: [
|
{isshow: "T", field: "id", name: "id", align: "center"},
|
{isshow: "T", field: "name", name: "名称", align: "left"},
|
],
|
|
},
|
created() {
|
this.pageCode = "A1-5";
|
this.getResoures();
|
},
|
|
mounted() {
|
let me = this;
|
this.initData();
|
var params = {
|
isClientMode: false,
|
dataname: "sysRole", //buttonByTab/buttonByPanel
|
filter: "1=1",
|
}
|
Server.call("root/data/getEntitySet", params, function(result) {
|
if (result && result.data) {
|
me.tableData_role = result.data.entityset;
|
me.$nextTick(()=>{
|
me.tab_tableHeight = me.tableHeight + 60;
|
})
|
}
|
})
|
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.emp_code = obj.row.employee_code;
|
me.emp_name = obj.row.md_description;
|
me.selectRole = [];
|
me.selectMenu = [];
|
me.selectMenu_old = [];
|
me.getDefaultSelect();
|
|
},
|
getDefaultSelect() {
|
let me = this;
|
filter_ = "sys_role_mapping.business_id='" + me.emp_code + "'";
|
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.selectMenu_old.push(data_[i]);
|
}
|
me.selectRole = arr;
|
//me['select' + type] = arr;
|
|
|
}
|
});
|
},
|
|
|
selectionRole(arr) {
|
this.selectMenu = arr;
|
},
|
doQuery: function(total_tab) {
|
let me = this;
|
let filter_ = "1=1";
|
this.filterList = [];
|
this.selectedrow = {};
|
filter_ += this.filter_;
|
for(var k in this.filterObj) {
|
let k_val = this.filterObj[k];
|
|
if (typeof(k_val) == "string") {
|
this.filterObj[k] = k_val = k_val.replace(/(^\s*)|(\s*$)/g, "");
|
}
|
|
let fieldObj_ = this.filterFieldsObj[k];
|
|
if (!fieldObj_) {
|
continue
|
}
|
|
let type_ = fieldObj_.type;
|
let valfield_ = fieldObj_.valfield;
|
if (type_ == "popup" && valfield_) {
|
k_val = this.filterObj[valfield_];
|
if (!this.filterObj[valfield_] && this.filterObj[k]) {
|
k_val = this.filterObj[k];
|
}
|
}
|
|
let field_ = fieldObj_.field;
|
let fieldtype_ = "equal";
|
|
|
if (fieldObj_.fieldname) {
|
field_ = fieldObj_.fieldname
|
}
|
if (fieldObj_.fieldtype) {
|
fieldtype_ = fieldObj_.fieldtype
|
}
|
if (typeof(k_val) != "string") {
|
filter_ += " and " + field_ + " = " + k_val ;
|
}
|
else if (type_ != "daterange") {
|
//注释:type: equal(等于)/in(在多个数据中)/like(模糊)/minval(最小值)/maxval(最大值)/mininclude(最小且包含该值)/maxinclude(最大且包含该值)
|
if (fieldtype_ == "like" && field_ != 'type') {
|
filter_ += " and " + field_ + " like '%" + k_val +"%'";
|
}else if(field_ == 'type') {
|
if(k_val == 'employee') {
|
this.dataname = 'VEmployeeAndUser'
|
filter_ += " and sys_user.name not like 'CT%'";
|
}else {
|
this.dataname = 'VBusinessAndUser'
|
filter_ += " and sys_user.name like 'CT%'";
|
}
|
}
|
else {
|
filter_ += " and " + field_ + " = '" + k_val +"'";
|
}
|
}
|
|
}
|
|
if (this.filterObjBydefault != {}) {
|
for(var k in this.filterObjBydefault) {
|
let k_val = this.filterObjBydefault[k];
|
filter_ += " and " + k + " = '" + k_val +"'";
|
}
|
}
|
|
if (this.filterTxt) {
|
filter_ += " and " + this.filterTxt;
|
}
|
|
let param_ = {
|
isClientMode: false,
|
dataname: this.dataname,
|
filterList: this.filterList,
|
filter: filter_,
|
orderby: this.orderby,
|
page: {
|
no: this.pagenum,
|
pagesize: this.pagesize
|
},
|
//attachmeta: true
|
}
|
|
if (this.paramObjBydefault != {}) {
|
for(var k in this.paramObjBydefault) {
|
let k_val = this.paramObjBydefault[k];
|
param_[k] = k_val;
|
}
|
}
|
|
me.tableData = [];
|
me.tableloading = true;
|
Server.call("root/data/getEntitySet", param_, function(result) {
|
console.log(result);
|
me.tableloading = false;
|
|
if (me[total_tab] || me[total_tab] == 0) {
|
me[total_tab] = 0;
|
if (me.totaltab == total_tab) {
|
me.total = me[total_tab];
|
}
|
}
|
else {
|
me.total = 0;
|
}
|
|
if (result && result.data && result.data.entityset) {
|
var data_ = result.data.entityset;
|
if (me[total_tab] || me[total_tab] == 0) {
|
me[total_tab] = result.data.page.recordcount;
|
if (me.totaltab == total_tab) {
|
me.total = me[total_tab];
|
}
|
}
|
else {
|
me.total = result.data.page.recordcount;
|
}
|
|
me.tableData = data_;
|
}
|
|
me.tableDataAfter();
|
});
|
},
|
onInitFilter: function() {
|
//清空
|
this.filterObj = {type:"employee"};
|
this.onQuery();
|
},
|
onSaveResourceByPage() {
|
|
this.saveResourceByPage('Role');
|
|
this.$message({
|
message: '保存成功',
|
type: 'success'
|
});
|
},
|
saveResourceByPage(type) {
|
let me = this;
|
let filter_ = "business_id='"+ me.emp_code +"'";
|
param_ = {
|
isClientMode: false,
|
dataname: "sysRoleMapping",
|
filter: filter_,
|
}
|
Server.call("root/data/deleteEntitySet", param_, function(result) {
|
console.log(result);
|
let arr_ = me.selectMenu;
|
|
for (let i = 0; i < arr_.length; i++) {
|
let item = i;
|
param_ = {
|
business_id: me.emp_code,
|
|
role_id: arr_[i].id,
|
type: "employee",
|
}
|
param_.isClientMode = false,
|
param_.dataname = "sysRoleMapping",
|
|
Server.call("root/data/insertEntity", param_, function(result) {
|
if(item == arr_.length-1) {
|
|
/* let logs = [];
|
let bool = false;
|
for (var i = 0; i < me.selectMenu.length; i++) {
|
for (var j = 0; j < me.selectMenu_old.length; j++) {
|
if(me.selectMenu_old[j].id == me.selectMenu[i].id) {
|
bool = true;
|
break;
|
}else {
|
bool = false;
|
}
|
}
|
if(bool) {
|
|
}else {
|
let log = {
|
type:"userRoleChange",
|
operate_code:window.top.userinfo.employee.code,
|
operate_name:window.top.userinfo.employee.name,
|
business_id:me.selectMenu[i].id,
|
data_name:"sysRoleMapping",
|
business_name:me.selectMenu[i].name,
|
create_time:new Date,
|
source_type:"EC",
|
operate_remark:"用户-" + me.emp_code + " " + me.emp_name + "-添加角色-" + me.selectMenu[i].name
|
}
|
logs.push(log)
|
}
|
}
|
for (var i = 0; i < me.selectMenu_old.length; i++) {
|
for (var j = 0; j < me.selectMenu.length; j++) {
|
if(me.selectMenu[j].id == me.selectMenu_old[i].id) {
|
bool = true;
|
break;
|
}else {
|
bool = false;
|
}
|
}
|
if(bool) {
|
|
}else {
|
let log = {
|
type:"userRoleChange",
|
operate_code:window.top.userinfo.employee.code,
|
operate_name:window.top.userinfo.employee.name,
|
business_id:me.selectMenu_old[i].id,
|
data_name:"sysRoleMapping",
|
business_name:me.selectMenu_old[i].name,
|
create_time:new Date,
|
source_type:"EC",
|
operate_remark:"用户-" + me.emp_code + " " + me.emp_name + "-删除角色"
|
}
|
logs.push(log)
|
}
|
}
|
for (var i = 0; i < logs.length; i++) {
|
let params_log = logs[i];
|
params_log.dataname = "customerOperateLog";
|
Server.call("root/data/insertEntity", params_log, function(result) {
|
me.requestNum++;
|
if(me.requestNum == logs.length) {
|
me.selectRole = [];
|
me.onQuery();
|
}
|
})
|
} */
|
Server.call("root/tool/delCache", {}, function(result) {
|
|
})
|
}
|
});
|
}
|
});
|
},
|
|
}
|
});
|
</script>
|
</body>
|
</html>
|