var _person = {}
var _hrOrgUnit = {}
var _HRBizDefine = [] // 用户设置的变动操作
var isSameDatePersonChange = null
//是否一天多次变动 是,最后工作日等于离职日期;
//false:根据 isDefaultSameday判断最后工作日和离职日期是否同一天
var isDefaultSameday = null
//最后工作日和离职日期是否同一天( true:同一天;false:最后工作日是离职日期前一天)
var isResignNextMonth = null
_this.pageinit = function () {
initHeader()
checkIsExistResignBill()
// getExistResignBillInfo()
// $("#btnAddnew").hide()
// mbos('editgrid1').addEntry()
if (requestParam.operateState === "ADDNEW") {
mbos('editgrid1').addEntry()
setTimeout(function () {
setBillId()
CheckDefaultSameDayService("")
getHRBizDefineByUiClass()
}, 1000)
}
mbos("applicationHistory").bind("click", function () {
mbos.ui.open({
path: mbos.pageInfo.path,
name: "bill.listui",
});
})
$("#application_img").on('error', function () {
$(this).attr('src', '/mbos/store/4000148/'+mbos.pageInfo.path+'/default.png');
});
}
_this.edit = function (event) {
return page.edit && page.edit(event);
}
_this.addnew = function (event) {
return page.addnew && page.addnew(event);
}
_this.save = function (event) {
//202503加入社保数据校验;
var opValiflag = opValidate();
if(!opValiflag){
return;
}
var vali = mbos.ng.invokeAllScope("validate", { method: "save" });
if (!vali) {
return;
}
if (event.isvaliSuccess === false) {
return;
}
if (requestParam.operateState === "ADDNEW") {
mbos("billState").value({ isenum: true, value: 0 })
}
function _save() {
return CheckResignBillInfoService(function () { save(event) })
}
//弱校验提示
CheckWeakService(_save);
//CheckResignAssign(_save)
}
_this.submit = function (event) {
//202503加入社保数据校验;
var opValiflag = opValidate();
if(!opValiflag){
return;
}
var vali = mbos.ng.invokeAllScope("validate", { method: "submit" });
if (!vali) {
return;
}
mbos("billState").value({ isenum: true, value: 1 })
function _submit() {
return CheckResignBillInfoService(function () { submit(event) })
}
//弱校验提示
CheckWeakService(_submit);
// CheckResignAssign(_submit)
}
_this.back = function (event) {
return page.back && page.back(event);
}
_this.afterSave = function (e) {
if (requestParam.operateState === "ADDNEW") {
mbos.ui.open({
path: mbos.pageInfo.path,
name: "application.editui",
params: {
billID: e.keyValue,
operateState: "EDIT"
}
});
} else {
}
}
mbos('entity').bind('afterLoad', function () {
if (requestParam.operateState !== "ADDNEW") {
getHRBizDefineByUiClass()
}
})
// 获取变动操作联动数据
function getHRBizDefineByUiClass() {
mbos.eas.invokeScript({
name: "commonOSFservice",
param: ['getHRBizDefineByUiClass', JSON.stringify({ uiClass: "com.kingdee.eas.hr.affair.app.ResignBizBill.form" })],
success: function (res) {
_HRBizDefine = res
var { outEmpType, affairActionReason, variationReason } = res[0] || {outEmpType:[], affairActionReason: [], variationReason: []}
var first = res.map((item) => "'" + item.number + "'");
var sec = outEmpType.map((item) => "'" + item.number + "'");
var thrid = affairActionReason.map((item) => "'" + item.number + "'");
var fourth = variationReason.map((item) => "'" + item.number + "'");
if (requestParam.operateState === "ADDNEW" && res.length) {
mbos("entrys.hrBizDefine", 0).value({ name: res[0].name, id: res[0].id, number: res[0].number });
if (sec.length === 1) mbos("entrys.oldEmpType", 0).value(outEmpType[0])
if (thrid.length === 1) mbos("entrys.affairActionReason", 0).value(affairActionReason[0])
if (fourth.length === 1) mbos("entrys.variationReason", 0).value(variationReason[0])
}
// 用户设置的F7选项为空时, 把过滤条件设成xnull, 否则会全部显示
if (first.length === 0) { first = ['"xnull"'] }
if (sec.length === 0) { sec = ['"xnull"'] }
if (thrid.length === 0) { thrid = ['"xnull"'] }
if (fourth.length === 0) { fourth = ['"xnull"'] }
// F7 选项 过滤
mbos("entrys.hrBizDefine", 0).attr('dynamicFilter', 'number in (' + first.join(",") + ')');
mbos("entrys.oldEmpType", 0).attr('dynamicFilter', 'number in (' + sec.join(",") + ')');
mbos("entrys.affairActionReason", 0).attr('dynamicFilter', 'number in (' + thrid.join(",") + ')');
mbos("entrys.variationReason", 0).attr('dynamicFilter', 'number in (' + fourth.join(",") + ')');
},
error: function (data) {
if (typeof (data) == "string") {
mbos.msgBox.showError("", data);
} else {
mbos.msgBox.showError({ ...data, msg: "" });
}
}
})
}
_this.bizdatachange = function (event) {
// isSameDatePersonChange
//是否一天多次变动 是,最后工作日等于离职日期;
//false:根据 isDefaultSameday判断最后工作日和离职日期是否同一天
//isDefaultSameday
var value = event.new_value
if (!value) return
CheckDefaultSameDayService(value, callback)
function callback() {
var nextDate = "";
if (isSameDatePersonChange) {
mbos("entrys.leftCompanyDate", 0).value(value);
} else {
if (isDefaultSameday) {
mbos("entrys.leftCompanyDate", 0).value(value)
} else {
var prev = getPrevDate(value)
mbos("entrys.leftCompanyDate", 0).value(prev)
}
}
}
}
//后一天
function getNextDate(value) {
var date = new Date(value)
var nextDate = new Date(date.getTime() + 24 * 60 * 60 * 1000)
nextDate = nextDate.format('yyyy-MM-dd')
return nextDate
}
function getPrevDate(value, day) {
var date = new Date(value)
var prevDate = day ? new Date(date.getTime() + day * 24 * 60 * 60 * 1000) : new Date(date.getTime() - 24 * 60 * 60 * 1000)
var s1 = prevDate.format('yyyy-MM-dd')
return s1
}
_this.leftdatechange = function (event) {
var value = event.new_value
var bizDate = mbos("entrys.bizDate", 0).value()
if (!bizDate) {
var param1 = { title: localeResource.msg50 };
mbos.ui.showInfo(param1);
return
}
var prev = getPrevDate(bizDate)
if (isSameDatePersonChange) {
if (value !== bizDate) {
var param2 = { title: localeResource.msg43 };
mbos.ui.showInfo(param2);
mbos("entrys.leftCompanyDate", 0).value(bizDate);
//禁用用户日期
nextDate = getNextDate(bizDate);
mbos("entrys.forbidUserDate", 0).value(nextDate);
}
} else {
if (value !== bizDate && value !== prev) {
var param3 = { title: localeResource.msg44 };
mbos.ui.showInfo(param3);
mbos("entrys.leftCompanyDate", 0).value(bizDate);
//禁用用户日期
nextDate = getNextDate(bizDate);
mbos("entrys.forbidUserDate", 0).value(nextDate);
}else{
//禁用用户日期
nextDate = getNextDate(value);
mbos("entrys.forbidUserDate", 0).value(nextDate);
}
}
}
mbos('page').bind('afterRendered', function () {
})
mbos("page").bind("afterSave", function (e) {
var param1 = { title: localeResource.msg45 };
mbos.ui.showInfo(param1);
if (requestParam.operateState === "ADDNEW") {
mbos.ui.open({
path: mbos.pageInfo.path,
name: "application.editui",
params: {
billID: e.keyValue,
operateState: "EDIT"
}
});
}
})
mbos("page").bind("afterSubmit", function (e) {
var param1 = { title: localeResource.msg46 };
mbos.ui.showInfo(param1);
mbos.ui.open({
path: mbos.pageInfo.path,
name: "bill.listui",
params: {
billID: mbos("entity").value().id,
}
});
})
//保存,提交弱校验提示
function CheckWeakService(callback) {
initEntityDataBeforeRequest()
var data = mbos('entity').data
mbos.eas.invokeScript({
name: "commonOSFservice",
param: ['checkWeakHireOrFlucExisService', JSON.stringify({ model: data })],
success: function (res) {
if (res.errorCode == '1') {
mbos.ui.showConfirm({
title: localeResource.msg53,
msg: res.msg,
callback: function (data) {
if (data == 0) {
//点击确定
CheckResignAssign(callback)
//callback && callback()
}
}
});
} else {
CheckResignAssign(callback)
}
},
error: function (data) {
if (typeof (data) == "string") {
mbos.msgBox.showError("", data);
} else {
mbos.msgBox.showError({ ...data, msg: "" });
}
}
})
}
function setBillId() {
var param = [];
param[0] = mbos('entity').data.bosType;
mbos.eas.invokeScript({
name: "getbillid",
param: param,
success: function (data) {
mbos('entity').data.id = data;
}
})
}
function initEntityDataBeforeRequest() {
mbos("hrOrgUnit").value(_hrOrgUnit)
mbos('entrys.person', 0).value(_person)
mbos("applier").value(_person)
mbos("isMultiEntry").value(false)
var data = mbos('entity').data
data._entityName = "com.kingdee.eas.hr.affair.app.ResignBizBill"
data.ismobile = "true"
}
// 获取头部信息
function initHeader() {
mbos.eas.invokeScript({
name: "commonOSFservice",
param: ['getMobileUserInfoService', JSON.stringify({})],
success: function (res) {
var { personName, companyName, photo = "xxx", positionName, departmentName, personNumber, hrOrgUnit } = res
_person.name = personName
_person.id = easContext.person.id
console.log(easContext.person)
_person.bosType = easContext.person.bosType
_hrOrgUnit = hrOrgUnit // id name
$("#applicationHistory").text(localeResource.msg7)
console.log($("#application_number"), personNumber, "per")
$("#application_img").attr("src", photo ? "data:image/png;base64," + photo : '/mbos/store/4000148/'+mbos.pageInfo.path+'/default.png')
$("#application_name").text(personName)
$("#application_number").text(personNumber)
$("#application_job").text(positionName + (departmentName ? (" | " + departmentName) : ""))
$("#application_company").text(companyName);
mbos("entrys_oldAdminOrg", 0).value({ name: res.adminName, id: res.adminId });
mbos("entrys_oldPosition", 0).value({ name: res.positionName, id: res.positionId });
mbos("entrys_oldJobGrade", 0).value({ name: res.jobGradeName, id: res.jobGradeId });
mbos("entrys_oldJobLevel", 0).value({ name: res.jobLevelName, id: res.jobLevelId });
$(".header_container").css("visibility", "visible")
if (requestParam.operateState === "ADDNEW") {
GetResignEmpBillNum()
}
setTimeout(function(){
var dataSubmit = mbos('entity').value();
mbos('nextperson1').checkParticipantPerson({
editdata: dataSubmit,
callback: function(){
var nextPerson = mbos('entity').data.workflowNextPerson;
}
});
},1000);
},
error: function (e) {
$("#applicationHeader").hide()
}
})
}
//是否存在在途的单据
function getExistResignBillInfo() {
mbos.eas.invokeScript({
name: "commonOSFservice",
param: ['GetExistResignBillInfoService', JSON.stringify({})],
success: function (res) {
if (res.isExist) {
mbos.ui.open({
path: mbos.pageInfo.path,
name: "billDetail.editui",
params: {
billID: mbos("entity").value().id,
}
});
}
},
error: function (e) {
console.log(e);
}
})
}
//检查员工有待办任务时是否允许提交离职申请
function CheckResignAssign(callback) {
initEntityDataBeforeRequest()
var data = mbos('entity').data
console.log(data, "检查员工有待办任务时是否允许提交离职申请 data--------")
mbos.eas.invokeScript({
name: "commonOSFservice",
param: ['CheckResignAssignService', JSON.stringify({ model: data })],
success: function (res) {
var { isContainAssign, isResignCheck, assignMsg } = res
if (isContainAssign) {
if (isResignCheck) {
mbos.ui.showConfirm({
title: assignMsg,
msg: "",
callback: function (data) {
if (data == 0) {
callback && callback()
}
}
});
} else {
mbos.ui.showInfo({ title: assignMsg, msg: "" });
}
} else {
callback && callback()
}
},
error: function (data) {
if (typeof (data) == "string") {
mbos.msgBox.showError("", data);
} else {
mbos.msgBox.showError({ ...data, msg: "" });
}
}
})
}
// 保存和提交前校验业务数据
function CheckResignBillInfoService(callback, fallback) {
var data = mbos('entity').data
mbos.eas.invokeScript({
name: "commonOSFservice",
param: ['CheckResignBillInfoService', JSON.stringify({ model: data })],
success: function (res) {
callback && callback()
},
error: function (data) {
if (typeof (data) == "string") {
mbos.msgBox.showError("", data);
} else {
mbos.msgBox.showError({ ...data, msg: "" });
}
}
})
}
// 是否申请记录存在单据
function checkIsExistResignBill() {
mbos.eas.invokeScript({
name: "commonOSFservice",
param: ['IsExistResignBillRecordsService', JSON.stringify({})],
success: function (res) {
if (res.isExist) {
$("#applicationHistory").show()
}
},
error: function (e) {
console.log(e);
}
})
}
// 获取单据编号
function GetResignEmpBillNum() {
var data = {
hrOrgUnitId: _hrOrgUnit.id,
businessType: 3,
personId: _person.id
}
mbos.eas.invokeScript({
name: "commonOSFservice",
param: ['GetResignEmpBillNumService', JSON.stringify(data)],
success: function (res) {
if (res.respObj) {
mbos('number').value(res.respObj)
} else {
mbos('number').show()
}
},
error: function (data) {
if (typeof (data) == "string") {
mbos.msgBox.showError("", data);
} else {
mbos.msgBox.showError({ ...data, msg: "" });
}
}
})
}
_this.bdczchange = function (event) {
console.log(_HRBizDefine)
console.log(event)
var { outEmpType, affairActionReason, variationReason } = _HRBizDefine.find((item) => item.id === event.new_value.id) || { outEmpType: [], affairActionReason: [], variationReason: [] }
var sec = outEmpType.map((item) => "'" + item.number + "'");
var thrid = affairActionReason.map((item) => "'" + item.number + "'");
var fourth = variationReason.map((item) => "'" + item.number + "'");
if (sec.length === 1) mbos("entrys.oldEmpType", 0).value(outEmpType[0])
if (thrid.length === 1) mbos("entrys.affairActionReason", 0).value(affairActionReason[0])
if (fourth.length === 1) mbos("entrys.variationReason", 0).value(variationReason[0])
if (sec.length === 0) { sec = ['"xnull"'] }
if (thrid.length === 0) { thrid = ['"xnull"'] }
if (fourth.length === 0) { fourth = ['"xnull"'] }
mbos("entrys.oldEmpType", 0).attr('dynamicFilter', 'number in (' + sec.join(",") + ')');
mbos("entrys.affairActionReason", 0).attr('dynamicFilter', 'number in (' + thrid.join(",") + ')');
mbos("entrys.variationReason", 0).attr('dynamicFilter', 'number in (' + fourth.join(",") + ')');
}
function getEditData() {
mbos('entity').data.fromMbos = true;
return mbos('entity').data;
}
function save(e) {
var vali = mbos.ng.invokeAllScope("validate", { method: "save" });
if (!vali) {
return;
}
if (e.isvaliSuccess === false) {
return;
}
// this should be a init Action! TODO
mbos.post({
url: "/mbos/editpage/save",
param: {
"bostype": getEditData().bosType,
"model": JSON.stringify(getEditData()),
"uiname": requestParam.name
},
success: function (data) {
event = event || {};
angular.extend(event, data);
mbos.page.fire("afterSave", event);
},
error: function (data) {
if (typeof (data) == "string") {
mbos.msgBox.showError("", data);
} else {
mbos.msgBox.showError({ ...data, msg: "" });
}
}
});
}
function submit(e) {
console.log(111111)
var vali = mbos.ng.invokeAllScope("validate", { method: "submit" });
if (!vali) {
return;
}
if (e.isvaliSuccess === false) {
return;
}
//
if (requestParam.isfromlcjs) {
getEditData().isfromlcjs = requestParam.isfromlcjs;
}
if (requestParam.ssotype == "workflow") {
getEditData().isfromlcjs = requestParam.isfromlcjs;
}
if (e.isvaliSuccess === false) {
return;
}
mbos.post({
url: "/mbos/editpage/submit",
param: { "bostype": getEditData().bosType, "uiname": requestParam.name, "model": JSON.stringify(getEditData()) },
success: function (data) {
event = event || {};
if (requestParam.ssotype == "workflow") {
window.parent.postMessage("hasmbos", "*");
return;
}
mbos.page.fire("afterSubmit", event);
//mbos._invoke("afterSubmit", event);
},
error: function (data) {
if (typeof (data) == "string") {
mbos.msgBox.showError("", data);
} else {
mbos.msgBox.showError({ ...data, msg: "" });
}
}
});
};
// 离职日期和最后工作日期是否同一天
function CheckDefaultSameDayService(date, callback) {
var data = {
personId: easContext.person.id,
hrOrgUnitId: _hrOrgUnit.id,
date: date
}
mbos.eas.invokeScript({
name: "commonOSFservice",
param: ['CheckDefaultSameDayService', JSON.stringify(data)],
success: function (res) {
console.log(res, 'res--------------')
if (res.respCode == "000000") {
isDefaultSameday = res.respObj.isDefaultSameday
isSameDatePersonChange = res.respObj.isSameDatePersonChange
isResignNextMonth = res.respObj.isResignNextMonth
var bizDate = res.respObj.bizDate
console.log(bizDate, '--bizDate-----')
if (bizDate) {
mbos('entrys.bizDate', 0).value(bizDate)
}
callback && callback()
}
},
error: function (data) {
if (typeof (data) == "string") {
mbos.msgBox.showError("", data);
} else {
mbos.msgBox.showError({ ...data, msg: "" });
}
}
})
}
Date.prototype.format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"H+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
_this.suggestchange = function (event) {
var value = event.new_value
if (value.length >= 200) {
mbos.ui.showInfo({ title: localeResource.msg52 });
mbos('textarea2', 0).value(value.substr(0, 200))
}
}
////202503加入社保数据校验;
_this.ces_change = function(event){
var value = event.new_value.value;
if(value == 0 ){
//添加图标,并且图标放入控件的后面
$('#entrys_suspensionDate_0 label').append('*');
$('#entrys_deduction_0 label').append('*');
$('#entrys_otherSocialInfo_0 label').append('*');
}else{
//移除图标
$('#entrys_suspensionDate_0 label span').remove();
$('#entrys_deduction_0 label span').remove();
$('#entrys_otherSocialInfo_0 label span').remove();
}
}
//校验方法//202503加入社保数据校验;
function opValidate() {
var cesEnum = mbos('entrys_fiveinsurances_0').value().value;
var sionDate = mbos('entrys_suspensionDate_0').value();
var deducVal = mbos('entrys_deduction_0').value();
var otherSo = mbos('entrys_otherSocialInfo_0').value();
var isValid = true;
var errorMsg = "";
//如果cesEnum == 0 并且sionDate或deducVal或otherSo其中一个为空或者不存在,则提示不能为空
if (cesEnum == 0 && (!sionDate || !deducVal || !otherSo)) {
isValid = false;
errorMsg = "社保结算信息必填,请检查!";
}
if (!isValid) {
mbos.ui.showError({ title: errorMsg });
return false;
}
return true;
}