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.
277 lines
11 KiB
277 lines
11 KiB
layui.use(['form', 'layer', 'table', 'laytpl', 'laydate'], function () {
|
|
var form = layui.form,
|
|
layer = parent.layer === undefined ? layui.layer : top.layer,
|
|
$ = layui.jquery,
|
|
laytpl = layui.laytpl,
|
|
table = layui.table,
|
|
laydate = layui.laydate;
|
|
var UserId = JSON.parse(window.sessionStorage.getItem("userInfo")).UserCode;
|
|
var UserName = JSON.parse(window.sessionStorage.getItem("userInfo")).USERS_NAME;
|
|
var acc_data = { data: [] };
|
|
var rep_data = { data: [] };
|
|
var app_data = { data: [] };
|
|
|
|
//请假类型
|
|
load_dvc_type = function () {
|
|
$.post("../../ashx/CommonHandler.ashx", {
|
|
Action: "getDicList",
|
|
modtype: "OALEAVETYPE",
|
|
random: new Date().getTime() //随机参数
|
|
}, function (res) {
|
|
if (res && res.data) {
|
|
var optionStr = "";
|
|
res.data.forEach(function (obj, index, arr) {
|
|
optionStr += "<option value='" + obj.DIC_VALUE + "'>" + obj.DIC_TEXT + "</option>";
|
|
});
|
|
$("#l_type").append(optionStr);
|
|
form.render();
|
|
}
|
|
});
|
|
}
|
|
load_dvc_type();
|
|
var sTime, eTime;
|
|
//开始时间选择器
|
|
laydate.render({
|
|
elem: '#s_time',
|
|
type: 'datetime',
|
|
done: function (value, date) {
|
|
sTime = value;
|
|
checkDate()
|
|
}
|
|
});
|
|
//结束时间选择器
|
|
laydate.render({
|
|
elem: '#e_time',
|
|
type: 'datetime',
|
|
done: function (value, date) {
|
|
eTime = value;
|
|
checkDate()
|
|
}
|
|
});
|
|
|
|
function checkDate() {
|
|
if (sTime == null || eTime == null || sTime == "" || eTime == "") {
|
|
$("#l_num").val("");
|
|
return false;
|
|
}
|
|
if (sTime >= eTime) {
|
|
layer.msg("[开始时间]必须小于[结束时间]");
|
|
setTimeout(function () { $("#e_time").val(null); $("#l_num").val(null); }, 1);
|
|
return false;
|
|
}
|
|
var lNum = getDays(sTime, eTime);
|
|
$("#l_num").val(lNum);
|
|
}
|
|
|
|
function getDays(startDate, endDate) {
|
|
startDate = startDate.replace(new RegExp("-", "gm"), "/");
|
|
var startDateM = (new Date(startDate)).getTime();
|
|
|
|
endDate = endDate.replace(new RegExp("-", "gm"), "/");
|
|
var endDateM = (new Date(endDate)).getTime();
|
|
|
|
var datetime = 1000 * 60 * 60;
|
|
var minusDays = (endDateM - startDateM) / datetime;
|
|
var days = Math.round(minusDays);
|
|
|
|
var day, hour;
|
|
if (days < 1) {
|
|
return "1小时";
|
|
} else if (days >= 24) {
|
|
day = parseInt(days / 24);
|
|
hour = days % 24;
|
|
if (hour == 0) {
|
|
return day + "天";
|
|
} else {
|
|
return day + "天" + hour + "小时";
|
|
}
|
|
} else {
|
|
hour = days;
|
|
return hour + "小时";
|
|
}
|
|
}
|
|
|
|
//随行人
|
|
$("#acc_ppl").click(function () {
|
|
$("#chkStyle").val("checkbox");
|
|
layui.layer.open({
|
|
type: 2,
|
|
title: '随行人选择',
|
|
area: ['260px', '420px'],
|
|
content: '../Tree/Orgtree.html',
|
|
btn: ['确定'],
|
|
success: function (layero, index) {
|
|
var pid = $("#acc_pplId").val();
|
|
var body = layui.layer.getChildFrame('body', index);
|
|
body.find("#treeID").val(pid);
|
|
},
|
|
yes: function (index, layero) {
|
|
acc_data.data.length = 0;
|
|
var iframeWin = window[layero.find('iframe')[0]['name']];
|
|
var datas = iframeWin.window.returnData();
|
|
datas = JSON.parse(datas);
|
|
var treeId = "", treeName = "", count = 0;
|
|
for (var i = 0; i < datas.length; i++) {
|
|
if (datas[i].TYPE == "emp") {
|
|
if (count == 0) {
|
|
treeName += datas[i].NAME;
|
|
} else {
|
|
treeName += "," + datas[i].NAME;
|
|
}
|
|
var acc_pplobj = new Object();
|
|
acc_pplobj.ppl_Id = datas[i].ID;
|
|
acc_pplobj.ppl_Name = datas[i].NAME;
|
|
acc_data.data.push(acc_pplobj);
|
|
count++;
|
|
}
|
|
}
|
|
$("#acc_ppl").val(treeName);
|
|
layui.layer.close(index); //如果设定了yes回调,需进行手工关闭
|
|
}
|
|
});
|
|
});
|
|
|
|
//顶班人
|
|
$("#rep_ppl").click(function () {
|
|
$("#chkStyle").val("checkbox");
|
|
layui.layer.open({
|
|
type: 2,
|
|
title: '顶班人选择',
|
|
area: ['260px', '420px'],
|
|
content: '../Tree/Orgtree.html?',
|
|
btn: ['确定'],
|
|
success: function (layero, index) {
|
|
var pid = $("#rep_pplId").val();
|
|
var body = layui.layer.getChildFrame('body', index);
|
|
body.find("#treeID").val(pid);
|
|
},
|
|
yes: function (index, layero) {
|
|
rep_data.data.length = 0;
|
|
var iframeWin = window[layero.find('iframe')[0]['name']];
|
|
var datas = iframeWin.window.returnData();
|
|
datas = JSON.parse(datas);
|
|
var treeId = "", treeName = "", count = 0;
|
|
for (var i = 0; i < datas.length; i++) {
|
|
console.log(i + ":" + datas[i].NAME);
|
|
if (datas[i].TYPE == "emp") {
|
|
if (count == 0) {
|
|
treeName += datas[i].NAME;
|
|
} else {
|
|
treeName += "," + datas[i].NAME;
|
|
}
|
|
var rep_pplobj = new Object();
|
|
rep_pplobj.ppl_Id = datas[i].ID;
|
|
rep_pplobj.ppl_Name = datas[i].NAME;
|
|
rep_data.data.push(rep_pplobj);
|
|
count++;
|
|
}
|
|
}
|
|
$("#rep_ppl").val(treeName);
|
|
layui.layer.close(index); //如果设定了yes回调,需进行手工关闭
|
|
}
|
|
});
|
|
});
|
|
|
|
//审批人
|
|
$("#approverAdd").click(function () {
|
|
$("#chkStyle").val("radio");
|
|
layui.layer.open({
|
|
type: 2,
|
|
title: '审批人选择',
|
|
area: ['260px', '420px'],
|
|
content: '../Tree/OrgLeadertree.html',
|
|
btn: ['确定'],
|
|
success: function (layero, index) {
|
|
var body = layui.layer.getChildFrame('body', index);
|
|
},
|
|
yes: function (index, layero) {
|
|
$("#chkStyle").val("");
|
|
var iframeWin = window[layero.find('iframe')[0]['name']];
|
|
var datas = iframeWin.window.returnData();
|
|
datas = JSON.parse(datas);
|
|
for (var i = 0; i < datas.length; i++) {
|
|
console.log(i+":"+datas[i].NAME);
|
|
if (datas[i].TYPE == "emp") {
|
|
var flag = true;
|
|
for (var y = 0; y < app_data.data.length; y++) {
|
|
if (app_data.data[y].ppl_Id == datas[i].ID) {
|
|
layer.msg("选择的审批人已经添加过了,不可重复添加");
|
|
flag = false;
|
|
break;
|
|
}
|
|
}
|
|
if (flag) {
|
|
var button1 = '<button class="layui-btn layui-btn-sm layui-btn-normal" data-value=' + datas[i].ID + '><i class="layui-icon"></i> ' + datas[i].NAME + '</button>';
|
|
button1 += '<i style="margin:0 5px;font-size:20px" class="iconfont icon-youjiantou"></i>'
|
|
var button = "<input style='width:60px' class='layui-btn layui-btn-sm layui-btn-normal' data-value='" + datas[i].ID + "' value='" + datas[i].NAME + "'/>——>";
|
|
var app_pplobj = new Object();
|
|
app_pplobj.ppl_Id = datas[i].ID;
|
|
app_pplobj.ppl_Name = datas[i].NAME;
|
|
$("#approverAdd").before(button1);
|
|
app_data.data.push(app_pplobj);
|
|
}
|
|
}
|
|
}
|
|
layui.layer.close(index); //如果设定了yes回调,需进行手工关闭
|
|
}
|
|
});
|
|
});
|
|
|
|
//审批人
|
|
$("#approverList").on("click", "button", function () {
|
|
$(this).next("i").remove();
|
|
$(this).remove();
|
|
var pplId = $(this).attr("data-value");
|
|
for (var i = 0; i < app_data.data.length; i++) {
|
|
if (app_data.data[i].ppl_Id == pplId) {
|
|
app_data.data.splice(i, 1);
|
|
}
|
|
}
|
|
});
|
|
form.on("submit(AddEdit)", function (data) {
|
|
if (app_data.data.length == 0) {
|
|
top.layer.msg('请添加审批人!');
|
|
return;
|
|
}
|
|
//load提交
|
|
var index = layer.msg('数据提交中,请稍候', { icon: 16, time: false, shade: 0.8 });
|
|
$.post("../../ashx/OaLeaveHandler.ashx", {
|
|
Action: "add",
|
|
ppl_id: UserId, //申请人ID (员工表ID)
|
|
ppl_name: UserName, //申请人姓名
|
|
l_type: $("#l_type").val(), //请假类型 (字典表value)
|
|
//l_typeName: $("#l_type option:selected").text(),//请假类型名称
|
|
s_time: $("#s_time").val(), //开始时间
|
|
e_time: $("#e_time").val(), //结束时间
|
|
l_num: $("#l_num").val(), //请假天数
|
|
l_out: $("#l_out").val(), //去向
|
|
acc_pplId: JSON.stringify(acc_data), //随行人(员工表ID ","分割)
|
|
rep_pplId: JSON.stringify(rep_data), //顶班人(员工表ID ","分割)
|
|
l_reason: $("#l_reason").val(), //请假事由
|
|
app_pplId: JSON.stringify(app_data), //审批人
|
|
random: new Date().getTime() //随机参数(员工表ID ","分割)
|
|
}, function (res) {
|
|
console.log(res);
|
|
layer.close(index);
|
|
res = $.parseJSON(res);
|
|
if (res.code == 1) {
|
|
// parent.layer.msg(res.msg);
|
|
var title = "请假申请审批";
|
|
var content = UserName + "的请假申请,请审批!";
|
|
var usercode = "";
|
|
usercode = app_data.data[0].ppl_Id;
|
|
sendMessage(title, content, usercode);
|
|
top.layer.msg("申请成功!");
|
|
parent.location.reload();
|
|
layer.close(index);
|
|
} else {
|
|
layer.close(index);
|
|
layer.msg(res.msg);
|
|
}
|
|
});
|
|
layer.close(index);
|
|
return false;
|
|
})
|
|
|
|
startMqttServer();
|
|
})
|