|
|
|
|
|
define(function (require, exports, module) {
|
|
|
//引入业务类基类
|
|
|
let BaseBiz = require('apps/rht/base/rhtBiz');
|
|
|
let sys010103service = require('./sys010103service');
|
|
|
let UApp = require('apps/rht/comm/UApp');
|
|
|
let IsChooseOne = false; //是否选中【选择单个项目】
|
|
|
let IsOneTime = false; //是否选中【多组织同时日结】
|
|
|
let SelOrgs; //树状列表选中的组织
|
|
|
let SelJZItem; //日结项目(存储过程名)
|
|
|
let SelJZName; //日结项目(名称)
|
|
|
let SelJZCode; //日结项目(编号)
|
|
|
let MemoText; //提示信息
|
|
|
let dJzDate; //日结日期
|
|
|
|
|
|
/**
|
|
|
* 定义业务类对象
|
|
|
* @param vm 界面相关ViewModule
|
|
|
*/
|
|
|
function Biz(vm) {
|
|
|
//继承第一步,构造继承
|
|
|
BaseBiz.call(this, vm);
|
|
|
}
|
|
|
|
|
|
//继承第二步,方法继承
|
|
|
inherits(Biz, BaseBiz);
|
|
|
|
|
|
/**
|
|
|
* @description 点击【结账】按钮
|
|
|
*/
|
|
|
function btnJZClick() {
|
|
|
//判断是否选择了结账组织
|
|
|
if (SelOrgs.length == 0) {
|
|
|
Store.messager.err('请选择需要结账的组织!');
|
|
|
return;
|
|
|
};
|
|
|
|
|
|
//判断是否选择了结账项目
|
|
|
if (IsChooseOne == true) {
|
|
|
if (SelJZItem == '') {
|
|
|
Store.messager.err('请选择需要结账的项目!');
|
|
|
return;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
//判断结账日期
|
|
|
dJzDate = $('#RjDate').datebox('getValue');
|
|
|
if (!UApp.IsDate(dJzDate)) {
|
|
|
Store.messager.err('请选择日结日期或日结日期格式不正确!');
|
|
|
return;
|
|
|
};
|
|
|
|
|
|
//结账提示文字
|
|
|
let tmp = '结账日期:【' + dJzDate + '】\n';
|
|
|
tmp = tmp + '结账组织数量:【' + SelOrgs.length + '】\n';
|
|
|
if (IsOneTime == true) {
|
|
|
tmp = tmp + '多组织同时日结:【是】\n';
|
|
|
} else {
|
|
|
tmp = tmp + '多组织同时日结:【否】\n';
|
|
|
if (IsChooseOne == true) {
|
|
|
tmp = tmp + '选择单个项目:【是】\n';
|
|
|
tmp = tmp + '日结项目:【' + SelJZName + '】\n';
|
|
|
}
|
|
|
}
|
|
|
tmp = tmp + '现在开始结账,请耐心等待......' + '\n';
|
|
|
MemoText = MemoText + tmp;
|
|
|
|
|
|
//确认是否需要结账
|
|
|
Store.messager.confirm('确认要本次日结吗?',
|
|
|
function (isOK) {
|
|
|
//点击【取消】跳出
|
|
|
if (!isOK) {
|
|
|
return;
|
|
|
} else { //点击【确定】执行结账处理
|
|
|
$('#Memo').textbox('setValue', MemoText);
|
|
|
|
|
|
//停用所有页面元素(其实没必要,调用异步插件时系统自带loading动画且屏蔽页面)
|
|
|
SetAllElementStatus(false);
|
|
|
|
|
|
//异步执行结账
|
|
|
sys010103service.doOrgJZAsync(Store.logOn.orgCode, SelOrgs, IsOneTime, IsChooseOne, SelJZCode, SelJZName, SelJZItem, dJzDate,
|
|
|
//异步执行完时的回调处理
|
|
|
function (isOk, ret) {
|
|
|
if (!isOk) throw '访问服务器失败';
|
|
|
if (ret == null) throw '业务服务器异常';
|
|
|
if (ret.result == null) throw '业务服务器异常';
|
|
|
if (ret.result != 1) {
|
|
|
tmp = '--==<<结账失败>>==--\n';
|
|
|
tmp = tmp + '原因:' + ret.message + '\n';
|
|
|
} else {
|
|
|
tmp = '--==<<结账成功>>==--\n' + ret.message;
|
|
|
}
|
|
|
MemoText = MemoText + tmp + '==============================================\n';
|
|
|
$('#Memo').textbox('setValue', MemoText);
|
|
|
|
|
|
//启用所有页面元素(其实没必要,调用异步插件时系统自带loading动画且屏蔽页面)
|
|
|
SetAllElementStatus(true);
|
|
|
return
|
|
|
})
|
|
|
}
|
|
|
})
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @description 控制页面所有元素的启用或停用
|
|
|
* @param {*} bEnable true:启用;false:停用
|
|
|
*/
|
|
|
function SetAllElementStatus(bEnable) {
|
|
|
//启用
|
|
|
if (bEnable == true) {
|
|
|
$('#RjDate').datebox('enable');
|
|
|
let co = $('#ChooseOne');
|
|
|
let ot = $('#OneTime');
|
|
|
co.checkbox('enable');
|
|
|
if(IsChooseOne) {
|
|
|
co.checkbox('check');
|
|
|
}else {
|
|
|
co.checkbox('uncheck');
|
|
|
}
|
|
|
if (IsChooseOne == true) {
|
|
|
$('#RjItem').combobox('enable');
|
|
|
ot.checkbox('disable');
|
|
|
ot.checkbox('uncheck');
|
|
|
IsOneTime = false;
|
|
|
} else {
|
|
|
$('#RjItem').combobox('disable');
|
|
|
ot.checkbox('enable');
|
|
|
};
|
|
|
|
|
|
document.getElementById('btnJZ').disabled = false;
|
|
|
|
|
|
let treeObj = $.fn.zTree.getZTreeObj("tree_Org");
|
|
|
let nodes = treeObj.getNodes();
|
|
|
let nodearray = treeObj.transformToArray(nodes);
|
|
|
for (let i = 0, l = nodearray.length; i < l; i++) {
|
|
|
treeObj.setChkDisabled(nodearray[i], false);
|
|
|
}
|
|
|
}
|
|
|
//停用
|
|
|
else {
|
|
|
let co = $('#ChooseOne');
|
|
|
let ot = $('#OneTime');
|
|
|
$('#RjDate').datebox('disable');
|
|
|
co.checkbox('disable');
|
|
|
$('#RjItem').combobox('disable');
|
|
|
ot.checkbox('disable');
|
|
|
document.getElementById('btnJZ').disabled = true;
|
|
|
|
|
|
let treeObj = $.fn.zTree.getZTreeObj("tree_Org");
|
|
|
let nodes = treeObj.getNodes();
|
|
|
let nodearray = treeObj.transformToArray(nodes);
|
|
|
for (let i = 0, l = nodearray.length; i < l; i++) {
|
|
|
treeObj.setChkDisabled(nodearray[i], true);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @description 点击【选择单个项目】
|
|
|
*/
|
|
|
function ChooseOneClick() {
|
|
|
let ChooseOne = $('#ChooseOne');
|
|
|
let ot = $('#OneTime');
|
|
|
if (ChooseOne.checkbox('options').checked) {
|
|
|
IsChooseOne = true;
|
|
|
$('#RjItem').combobox('enable');
|
|
|
ot.checkbox('uncheck');
|
|
|
IsOneTime = false;
|
|
|
ot.checkbox('disable');
|
|
|
$('#RjItem').combobox('enable');
|
|
|
} else {
|
|
|
IsChooseOne = false;
|
|
|
$('#RjItem').combobox('disable');
|
|
|
ot.checkbox('check');
|
|
|
IsOneTime = true;
|
|
|
ot.checkbox('enable');
|
|
|
$('#RjItem').combobox('disable');
|
|
|
$('#RjItem').combobox('clear');
|
|
|
}
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @description 点击【多组织同时日结】
|
|
|
*/
|
|
|
function OneTimeClick() {
|
|
|
let OneTime = $('#OneTime');
|
|
|
if (OneTime.checkbox('options').checked) {
|
|
|
IsOneTime = true;
|
|
|
} else {
|
|
|
IsOneTime = false;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @description 点击树时
|
|
|
* @param {*} e
|
|
|
* @param {*} treeId 树ID
|
|
|
* @param {*} treeNode 节点ID
|
|
|
*/
|
|
|
function onNodeTreeClick(e, treeId, treeNode) {
|
|
|
//无处理
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @description 节点checked或unchecked时
|
|
|
* @param {*} e
|
|
|
* @param {*} treeId 树ID
|
|
|
* @param {*} treeNode 节点ID
|
|
|
*/
|
|
|
function onNodeCheck(e, treeId, treeNode) {
|
|
|
//获取已选择的节点信息
|
|
|
SelOrgs = $.fn.zTree.getZTreeObj(treeId).getCheckedNodes(true);
|
|
|
if(SelOrgs.length > 1) {
|
|
|
let co = $('#ChooseOne');
|
|
|
co.checkbox('disable');
|
|
|
co.checkbox('uncheck');
|
|
|
IsChooseOne = false;
|
|
|
$('#RjItem').combobox('disable');
|
|
|
$('#RjItem').combobox('clear');
|
|
|
SelJZCode = '';
|
|
|
SelJZItem = '';
|
|
|
SelJZName = '';
|
|
|
}else {
|
|
|
$('#ChooseOne').checkbox('enable');
|
|
|
}
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @description 初始化下拉列表
|
|
|
* @param {*} comboboxObj 下拉列表对象
|
|
|
*/
|
|
|
function initComboBox(comboboxObj) {
|
|
|
//调用插件获取日结项目并组装为下拉列表项
|
|
|
let RjItemInfo = sys010103service.getRjItem(Store.logOn.orgCode);
|
|
|
let RjItems = [];
|
|
|
if (RjItemInfo.result != 1) {
|
|
|
Store.MESSAGER.err(RjItemInfo.message);
|
|
|
} else {
|
|
|
for (let i = 0, len = RjItemInfo.data.length; i <= len - 1; i++) {
|
|
|
RjItems.push({
|
|
|
itemCode: RjItemInfo.data[i].itemcode,
|
|
|
itemName: RjItemInfo.data[i].itemcode + '-' + RjItemInfo.data[i].itemname,
|
|
|
scriptCode: RjItemInfo.data[i].scriptcode
|
|
|
});
|
|
|
};
|
|
|
};
|
|
|
|
|
|
//生成下拉列表内容
|
|
|
comboboxObj.combobox('loadData', RjItems);
|
|
|
|
|
|
//日结项目选择时
|
|
|
$('#RjItem').combobox({
|
|
|
onSelect: function (record) {
|
|
|
SelJZItem = record.scriptCode;
|
|
|
SelJZName = record.itemName;
|
|
|
SelJZCode = record.itemCode;
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @description 初始化树状列表
|
|
|
* @param {*} treeObj 树对象
|
|
|
*/
|
|
|
function initTree(treeObj) {
|
|
|
//树选项
|
|
|
let treeSetting = {
|
|
|
view: {
|
|
|
selectedMulti: false //允许多选
|
|
|
},
|
|
|
check: {
|
|
|
enable: true, //允许勾选
|
|
|
chkboxType: {
|
|
|
"Y": "s",
|
|
|
"N": "s"
|
|
|
} //父节点与子节点勾选关系
|
|
|
},
|
|
|
data: {
|
|
|
simpleData: {
|
|
|
enable: true //使用简单JSON构建树
|
|
|
}
|
|
|
},
|
|
|
callback: {
|
|
|
onClick: onNodeTreeClick, //单击时响应事件
|
|
|
onCheck: onNodeCheck //勾选时响应事件
|
|
|
}
|
|
|
};
|
|
|
|
|
|
//调用插件获取组织信息并组装为树的节点信息
|
|
|
let OrgTreeInfo = sys010103service.getOrgTree(Store.logOn.orgCode);
|
|
|
let zTreeNodes = [];
|
|
|
if (OrgTreeInfo.result != 1) {
|
|
|
Store.MESSAGER.err(OrgTreeInfo.message);
|
|
|
} else {
|
|
|
for (let i = 0, len = OrgTreeInfo.data.length; i <= len - 1; i++) {
|
|
|
zTreeNodes.push({
|
|
|
id: OrgTreeInfo.data[i].id, //节点ID
|
|
|
pId: OrgTreeInfo.data[i].pid, //父节点ID
|
|
|
orgcode: OrgTreeInfo.data[i].orgcode, //组织编码
|
|
|
name: OrgTreeInfo.data[i].orgcode + '-' + OrgTreeInfo.data[i].orgname, //节点显示信息
|
|
|
open: true //是否展开
|
|
|
});
|
|
|
};
|
|
|
};
|
|
|
|
|
|
//创建树
|
|
|
$.fn.zTree.init(treeObj, treeSetting, zTreeNodes);
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @description 初始化完毕
|
|
|
*/
|
|
|
Biz.prototype.initCompleted = function () {
|
|
|
//初始化全局变量
|
|
|
IsChooseOne = false;
|
|
|
IsOneTime = false;
|
|
|
SelOrgs = [];
|
|
|
SelJZCode = '';
|
|
|
SelJZName = '';
|
|
|
SelJZItem = '';
|
|
|
MemoText = '';
|
|
|
|
|
|
//对页面中的元素进行事件绑定
|
|
|
let btnJZ = document.getElementById('btnJZ');
|
|
|
btnJZ.addEventListener('click', btnJZClick, false);
|
|
|
|
|
|
//let ChooseOne = document.getElementById('ChooseOne');
|
|
|
//ChooseOne.addEventListener('click', ChooseOneClick, false);
|
|
|
$('#ChooseOne').checkbox({onChange:ChooseOneClick})
|
|
|
|
|
|
// let OneTime = document.getElementById('OneTime');
|
|
|
// OneTime.addEventListener('click', OneTimeClick, false);
|
|
|
$('#OneTime').checkbox({onChange:OneTimeClick})
|
|
|
|
|
|
//初始化日结项目ComboBox
|
|
|
initComboBox($('#RjItem'));
|
|
|
|
|
|
//初始化组织树
|
|
|
initTree($('#tree_Org'));
|
|
|
|
|
|
//页面元素默认状态
|
|
|
$('#OneTime').checkbox('check');
|
|
|
IsOneTime = true;
|
|
|
$('#RjDate').datebox('setValue', UApp.getNowFormatDate());
|
|
|
$('#RjItem').combobox('disable');
|
|
|
};
|
|
|
|
|
|
return Biz;
|
|
|
}); |