You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

172 lines
6.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

define(function (require, exports, module) {
let BaseBiz = require('apps/rht/base/rhtBiz');
let rhtComm = require('apps/rht/comm/rhtComm');
let Service = require('./sys0223service');
let multiWindow = require("system/views/pages/multiwindowdiv/multiwindowdiv");
/**
* 控制按钮的可用
* @param opCode 按钮编码
* @return [description]
*/
function Biz(vm) {
//继承第一步,构造继承
BaseBiz.call(this, vm);
}
//继承第二步,方法继承
inherits(Biz, BaseBiz);
//增加右键菜单按钮并控制状态
Biz.prototype.getContextMenus = function (ds, source) {
let menus = this.super("getContextMenus", ds, source)
let edit = ds.getEditable();
let curRow = this.dsMaster.currentRow;
//仅在明细表点击右键时 本按钮可用
menus.push({
text: '批量增加明细',
opCode: 'plAdd',
disabled: (!(ds.name == "dsDetail")) || (curRow == 0) || (edit)
});
menus.push({
text: '批量删除明细',
opCode: 'plDel',
disabled: (!(ds.name == "dsDetail")) || (curRow == 0) || (edit)
});
return menus;
};
//定义按钮事件
Biz.prototype.doOp = function (opCode) {
let self = this;
let curRow = this.dsMaster.currentRow;
let UserID = curRow ? TypeUtil.toString(curRow['UserID']) : '';
if (UserID == '') return false;
if (opCode == 'plDel') {
let ds = self.dsDetail;
this.onedtplDel(self, ds, UserID);
};
if (opCode == 'plAdd') {
let ret = Service.getSlideMenuData("USaveOrg", "GetRoleCode", UserID, "", "", "", "");
let RoleCode='';
if (ret.result == 1) {
if (ret.data != null)
{
RoleCode=ret.data.RoleCode;
}
}
//从待选择窗口剔除当前明细表已有的数据
let exists = new Array();
for (let j = 0; j < self.dsDetail.rows.length; j++) {
exists.push({
'OrgCode': self.dsDetail.rows[j].OrgCode,
'DepCode': self.dsDetail.rows[j].DepCode
});
}
//定义多选窗口界面
let param={
exists: exists,
uiObjCode: '5522',
biz: self,
enablePager: true,
pk: "OrgCode,DepCode",
fixQuery: {
'IsActive': '1',
'IsYw': '1'
},
showCheckColumn: true,
funcCode: self.FuncCode,
ds: self.dsDetail,
itreator: function (row) {
let isOK = self.addrows(row,UserID,RoleCode);
if (isOK != true) {
//加上这个代码 就能将商品触发的校验报错展示,但本次的提示不展示(不知道这啥情况,暂时这样用吧)
dbody.currentRow.setColumnError("OrgCode","批量导入数据失败,校验失败!");
return false;
}
return true;
}
};
//new多选窗体 并打开
let myWindow = new multiWindow(param);
myWindow.open();
};
};
//批量增加每行后触发操作
Biz.prototype.addrows = function (row,UserID,RoleCode) {
let ds = this.dsDetail;
if (row != null) {
let ret = Service.getSlideMenuData("USaveOrg", "Adddata", UserID, row.OrgCode, row.OrgClass, row.DepCode, RoleCode);
if (ret.result != 1) {
Store.messager.tip(row.OrgCode+"门店"+row.DepCode+"部门,增加组织部门权限数据失败!"+ret.messager);
return false;
};
/*
let dr = ds.addRow();
if ((!dr.setColumnText('UserID', UserID))
|| (!dr.setColumnText('OrgCode', row.OrgCode))
|| (!dr.setColumnText('OrgStyle', row.OrgClass))
|| (!dr.setColumnText('DepCode', row.DepCode))
|| (!dr.setColumnText('RoleCode', RoleCode))){
return false;
}
ds.save();
*/
};
return true;
};
//按钮事件处理
Biz.prototype.onedtplDel = function (biz, ds, UserID) {
Store.messager.confirm("确认要删除选中的组织部门权限数据吗?",function(isOK){
if(!isOK){
return false;
}
else{
let isel=0;
//定义JSON将选中数据打包传后台处理
let data = [];
for (let i = ds.rows.length - 1; i > -1; i--) {
let row = ds.rows[i];
if (row['$is_sel'] !== undefined) {
if (row['$is_sel'] == true) {
data.push(
{
OrgCode:row.OrgCode,
DepCode:row.DepCode
}
);
//row.delete();
isel=isel+1;
};
};
};
if (isel==0){
Store.messager.err('请选择需要删除的明细表数据。');
return false;
};
let ret = Service.getSlideMenuData("USaveOrg", "Deldata", UserID, data, "", "", "");
if (ret.result == 1) {
Store.messager.tip("删除选中的组织部门权限数据成功!");
rhtComm.MWriteOprLog(Store.logOn.orgCode,Store.logOn.userId,Store.logOn.userCode,Store.logOn.userName,'','','用户组织部门权限设置','批量删除选中的组织部门权限数据');
return true;
}
else
{
Store.messager.tip("删除选中的组织部门权限数据失败!"+ret.messager);
return false;
};
};
});
// return true;
};
return Biz;
});