<!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"
|
v-loading="save_loading"
|
element-loading-text="正在保存中"
|
element-loading-spinner="el-icon-loading"
|
element-loading-background="rgba(0, 0, 0, 0.8)"
|
>
|
<div class="topbar">
|
<span>{{title}}</span>
|
|
<div style="float: right; margin: 0px; margin-right: 20px;">
|
<el-button-group style="margin-left: 3px;">
|
<el-button :disabled="!(selectRole.id)" @click="saveRoleField">保 存</el-button>
|
</el-button-group>
|
<!-- <el-button-group style="margin-left: 3px;">
|
<el-button :disabled="!(selectRole.id && selectUserMapping.id)" type="danger" @click="onDelPopedom">删 除</el-button>
|
</el-button-group> -->
|
</div>
|
</div>
|
|
<div style="padding: 0 20px; box-sizing: border-box;">
|
<div :style="{width: '40%', height: tableHeight +'px', float: 'left', border: '1px solid #ccc'}">
|
<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="table1"
|
:table-fields="tableFields_role"
|
:table-data="tableData"
|
:table-height="tableHeight - 60"
|
:is-show-index="true"
|
:is-pagination="false"
|
:is-highlight-row="true"
|
|
v-on:row-click="rowClick"
|
>
|
</h-table>
|
</div>
|
</div>
|
|
<div :style="{width: '59%', height: tableHeight + 'px', float: 'right', border: '1px solid #ccc'}">
|
<div style="height: 40px; border-bottom: 1px solid #ccc; overflow: hidden;">
|
<div style="float: left; margin-left: 10px; font-weight: bold; line-height: 40px;">
|
<span>商业相关字段</span>
|
<!-- <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="getDefaultSelect"
|
v-on:on-query="getDefaultSelect"
|
v-on:on-init-query="onInitFilter"
|
v-on:on-edit-query="onEditFilter"
|
>
|
</h-form-filter>
|
</div> -->
|
</div>
|
|
</div>
|
<div style="padding-left: 10px; padding-right: 10px; box-sizing: border-box;">
|
<h-table
|
ref="table_user"
|
:tableloading="tableloading"
|
:table-fields="tableFields"
|
:table-data="tableData_user"
|
:table-height="tableHeight - 60"
|
:is-highlight-row="true"
|
:is-pagination="false"
|
|
|
v-on:get-data="getData_user"
|
v-on:row-click="rowClick_user"
|
>
|
<!--
|
:is-within-edit-table-data="isWithinEditTableData"
|
:pagesize="pagesize_user"
|
:pagenum="pagenum_user"
|
:total="total_user"
|
-->
|
</h-table>
|
</div>
|
</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: "sysRole",// "VEmployeeAndUser",
|
save_loading: false,
|
filterTxt: "default_customer=1",
|
filterFieldsName: "empRoleConfig_",
|
tabaleFieldsName: "empRoleConfig_",
|
title: "商业角色必填项设置",
|
filterAttr: {
|
columnnumber: 3,
|
labelwidth: "80px",
|
labelposition: "right",
|
size: "medium",
|
border: "3px solid #c6c6c600"
|
},
|
orderby: "",
|
tableHeight:400,
|
|
tableHeight_user:0,
|
pagesize_user: 10,
|
pagenum_user: 1,
|
total_user: 0,
|
|
selectMenu: {
|
menuId: {
|
role: []
|
}
|
}, //需要添加的资源
|
menuId:"",
|
roleId: "",
|
selectRole: {},
|
tableData_user: [],
|
selectUserMapping: {},
|
tableFields_role: [
|
{isshow: "T", field: "id", name: "id", align: "center"},
|
{isshow: "T", field: "name", name: "名称", align: "left"},
|
],
|
|
filterFields_user: [
|
{isshow: "T", field: "type", fieldname: "type", name: "模块", type: "select",
|
options: [{label:"商业信息",value:"business"},
|
{label:"发货主体",value:"delivery"},
|
{label:"资质证照",value:"licence_zz"},
|
{label:"资质质保",value:"licence_zb"},
|
{label:"资质开票",value:"licence_kp"},
|
{label:"资质收货",value:"licence_sh"},
|
{label:"资质采购",value:"licence_cg"},
|
]},
|
],
|
isWithinEditTableData: true,
|
tableFields_user: [
|
{isshow: "T", field: "type_name", name: "模块"},
|
{isshow: "T", field: "name", name: "字段"},
|
{isshow: "T", field: "is_required", name: "系统必填", formatterjson: "{\"T\": \"必填\"}"},
|
{isshow: "T", field: "roleis_required", name: "是否必填", type: "select",
|
options: [
|
{label:"是",value:"T"},
|
{label:"否",value:"F"},
|
]},
|
],
|
|
filterFields_customer: [
|
{isshow: "T", field: "emp_name", fieldname: "e.md_description", name: "名称", fieldtype: "like"},
|
{isshow: "T", field: "emp_code", fieldname: "e.md_code", name: "编号", fieldtype: "like"},
|
],
|
tableFields_customer: [
|
{isshow: "T", field: "emp_name", name: "商业名称"},
|
{isshow: "T", field: "emp_code", name: "商业编号"}
|
],
|
|
},
|
created() {
|
this.pageAttr.heightType = "page";
|
this.tableHeight_role = this.tableHeight - 60;
|
this.pageCode = "A8-3_3";
|
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.filterFields = clone(me.filterFields_user);
|
me.tableFields = clone(me.tableFields_user);
|
|
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_;
|
}
|
}
|
},
|
|
onTableDataAfter() {
|
let me = this;
|
if (this.tableData.length > 0){
|
this.$nextTick(function(){
|
this.isRefresh = true;
|
this.$nextTick(function(){
|
if (me.pageAttr && me.pageAttr.heightType == "table") {
|
me.tableHeight = settableHeight(me.$refs.table1.$el, me.pagesize) - 10;
|
}
|
else if (me.pageAttr && me.pageAttr.heightType == "page") {
|
var el_list = [];
|
if (me.$refs.form1 && me.$refs.form1.$el) {
|
el_list.push(me.$refs.form1.$el);
|
}
|
|
me.tableHeight = setpageHeight(me.$refs.table1.$el, el_list) - 10;
|
}
|
})
|
})
|
}
|
else if (me.pageAttr && me.pageAttr.heightType == "page") {
|
var el_list = [];
|
if (me.$refs.form1 && me.$refs.form1.$el) {
|
el_list.push(me.$refs.form1.$el);
|
}
|
me.tableHeight = setpageHeight(me.$refs.table1.$el, el_list);
|
}
|
},
|
|
rowClick(obj) {
|
let me = this;
|
me.selectRole = obj.row;
|
//me.selectUserMapping = {};
|
this.pagenum_user = 1;
|
|
/* if(me.selectRole.id == "2") {//是商业角色
|
me.filterFields = clone(me.filterFields_customer);
|
me.tableFields = clone(me.tableFields_customer);
|
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_;
|
}
|
}
|
} */
|
/* else {
|
me.filterFields = clone(me.filterFields_user);
|
me.tableFields = clone(me.tableFields_user);
|
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_;
|
}
|
}
|
} */
|
|
me.getDefaultSelect();
|
},
|
|
getData_user(page) {
|
this.pagesize_user = page.pagesize;
|
this.pagenum_user = page.pagenum;
|
this.getDefaultSelect();
|
},
|
|
onInitFilter() {
|
this.filterObj = {};
|
this.getDefaultSelect();
|
},
|
|
getDefaultSelect() {
|
let me = this;
|
var filter_ = "1=1";
|
if (this.filterObj.type) {
|
filter_ = "c_fields.type='" + this.filterObj.type + "'";
|
}
|
var dataname_ = "getCustomerRequiredByRoleid";
|
|
param_ = {
|
isClientMode: false,
|
dataname: dataname_,
|
filter: filter_,
|
role_id: me.selectRole.id,
|
returnType: "entityset",
|
}
|
Server.call("root/data/procedure", param_, function(result) {
|
console.log(result);
|
me.tableData_user = [];
|
me.total_user = 0;
|
if (result && result.data && result.data.entityset) {
|
let data_ = result.data.entityset;
|
data_.map(d=>{
|
if (d.is_required != "T") {
|
d.isWithinEdit = true;
|
}
|
})
|
|
//me.total_user = result.data.page.recordcount;
|
me.tableData_user = clone(data_);
|
}
|
});
|
},
|
|
rowClick_user(obj) {
|
let me = this;
|
me.selectUserMapping = obj.row;
|
},
|
|
saveRoleField() {
|
var me = this;
|
var tableData_ = [];
|
me.save_loading = true;
|
me.tableData_user.map(f=>{
|
if (f.roleis_required == "T") {
|
var rf_ = {
|
id: uuid_short(),
|
role_id: me.selectRole.id,
|
field_id: f.id,
|
roleis_required: "T"
|
}
|
tableData_.push(rf_);
|
}
|
})
|
|
//清空该角色的原必填,并添加新必填
|
let param1 = {
|
filter:{
|
role_id: me.selectRole.id
|
},
|
|
isClientMode: false,
|
dataname: 'c_role_fields',
|
}
|
Server.call("root/data/deleteEntitySet", param1, function(result) {
|
let param = {
|
isClientMode: false,
|
dataName: "c_role_fields",
|
datas: tableData_
|
}
|
Server.call("root/data/batchSaveEntity", param, function(result) {
|
console.log(result);
|
me.save_loading = false;
|
})
|
});
|
},
|
|
onAddPopedom() {
|
var me = this;
|
var fileid = this.selectRole.id;
|
var url = "../permission/pages/emp_role_config_customeru_edit.html";
|
if(fileid == "2") {
|
url = "../permission/pages/emp_role_config_customer_edit.html";
|
}
|
var config = {
|
totab: false,
|
icon: "icon-product",
|
text: "设置" + this.selectRole.name + "的用户",
|
id: "role_mapping_" + fileid,
|
url: url,
|
data: this.selectRole,
|
delta: {},
|
callback: function(obj, callback) {
|
me.getDefaultSelect();
|
if (callback) {
|
callback();
|
}
|
}
|
};
|
|
this.doPopupByPublic(config);
|
},
|
|
/* onDelPopedom() {
|
var me = this;
|
var rolename = this.selectRole.name;
|
var empname = this.selectUserMapping.emp_name;
|
|
Root.confirm('确定删除角色' + rolename + '与用户' + empname + '的关系吗?', '确认提示', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(() => {
|
let param = {
|
id: this.selectUserMapping.id,
|
isClientMode: false,
|
dataname: "sysRoleMapping",
|
}
|
var fieldobjlist = [
|
{
|
type: "del",
|
field: "business_id",
|
fieldname: "角色关联员工",
|
predata: this.selectUserMapping.emp_code
|
}
|
]
|
Server.call("root/data/deleteEntity", param, function(result) {
|
console.log(result);
|
var operatelogdataobj_ = {
|
businessid: me.selectRole.id,
|
businessname: me.selectRole.name,
|
dataname: "sysRoleMapping",
|
operateremark: "删除角色关联员工"
|
};
|
var fieldobjlist_ = fieldobjlist;
|
me.addlog("userRoleChange", operatelogdataobj_, fieldobjlist_, function(){
|
Root.message({
|
type: 'success',
|
message: '删除成功!'
|
});
|
me.getDefaultSelect();
|
});
|
});
|
|
}).catch(() => {
|
Root.message({
|
type: 'info',
|
message: '已取消删除'
|
});
|
});
|
}, */
|
|
addlog(code, operatelogdataobj, fieldobjlist, callback) {
|
var id_ = uuid_short();
|
var fieldobjlist_ = [];
|
fieldobjlist.map(f=>{
|
var f_ = {
|
parentId: id_,
|
operateType: f.type,
|
field: f.field,
|
fieldName: f.fieldname,
|
pre: f.predata || "",
|
currentData: f.currentdata || ""
|
}
|
fieldobjlist_.push(f_);
|
});
|
|
var param = {
|
isClientMode: false,
|
id: id_,
|
type: code,
|
operateCode: localStorage.getItem("emp_code"),
|
operateName: localStorage.getItem("emp_name"),
|
userId: localStorage.getItem("id"),
|
businessId: operatelogdataobj.businessid,
|
businessName: operatelogdataobj.businessname,
|
dataName: operatelogdataobj.dataname,
|
operateRemark: operatelogdataobj.operateremark,
|
sourceType: "EC",
|
detailList: fieldobjlist_
|
}
|
Server.call("root/api/addCustomerLogs", param, function(result) {
|
if (result.success) {
|
if (callback) {
|
callback();
|
}
|
}
|
});
|
},
|
|
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++) {
|
let item = 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;
|
if(item == arr_.length-1) {
|
Server.call("root/tool/delCache", {}, function(result) {
|
|
})
|
}
|
});
|
}
|
});
|
},
|
|
}
|
});
|
</script>
|
</body>
|
</html>
|