czl-web/js/personnelPool/dome.js

324 lines
10 KiB
JavaScript
Raw Normal View History

2025-05-20 13:54:27 +08:00
var startWorkFiles = {};
2025-05-20 16:19:38 +08:00
var table;
var form;
var upload;
2025-05-20 13:54:27 +08:00
var example = null;
var pers = null;
// 设置全局变量以保存选中行信息
let ids = new Array();
$(function () {
2025-05-20 16:19:38 +08:00
layui.use(["layer", "form", "table", "upload"], function () {
2025-05-20 13:54:27 +08:00
var layer = layui.layer;
form = layui.form;
table = layui.table;
upload = layui.upload;
2025-05-20 16:19:38 +08:00
init(table, form, "");
2025-05-20 13:54:27 +08:00
var uploadIns = upload.render({
2025-05-20 16:19:38 +08:00
elem: "#importBt", //绑定元素
2025-05-20 13:54:27 +08:00
url: ctxPath + "/ma/sendoff/import",
2025-05-20 16:19:38 +08:00
accept: "file", //允许上传的文件类型
exts: "xlsx|xls",
auto: true, //是否自动上传
multiple: false, //是否支持多文件上传
choose: function (obj) {
//选择文件后的回调函数
2025-05-20 13:54:27 +08:00
},
2025-05-20 16:19:38 +08:00
before: function () {
layer.msg("数据导入中,请稍等。。。", {
icon: 4,
2025-05-20 13:54:27 +08:00
});
this.data = {
2025-05-20 16:19:38 +08:00
fileType: "sendoff",
2025-05-20 13:54:27 +08:00
};
},
2025-05-20 16:19:38 +08:00
done: function (res, index, upload) {
//上传完毕的回调函数
2025-05-20 13:54:27 +08:00
layer.closeAll("loading");
2025-05-20 16:19:38 +08:00
if (res.code == 200) {
layer.msg("导入成功", { icon: 1, time: 2000 }, function () {
table.reload("layuiTable");
2025-05-20 13:54:27 +08:00
});
} else {
2025-05-20 16:19:38 +08:00
layer.msg(res.msg, { icon: 2 });
2025-05-20 13:54:27 +08:00
}
2025-05-20 16:19:38 +08:00
},
error: function () {
2025-05-20 13:54:27 +08:00
layer.closeAll("loading");
console.log("请求异常回调");
2025-05-20 16:19:38 +08:00
},
2025-05-20 13:54:27 +08:00
});
$("#searchBt").click(function () {
var keyWord = $("#keyWord").val();
// var title = $("#title").val();
2025-05-20 16:19:38 +08:00
init(table, form, keyWord);
2025-05-20 13:54:27 +08:00
});
$("#resetBt").click(function () {
2025-05-20 16:19:38 +08:00
var keyWord = "";
2025-05-20 13:54:27 +08:00
$("#keyWord").val("");
// $("#title").val("");
2025-05-20 16:19:38 +08:00
layui.form.render("select");
init(table, form, keyWord);
2025-05-20 13:54:27 +08:00
});
});
pers = checkPermission();
2025-05-20 16:19:38 +08:00
});
2025-05-20 13:54:27 +08:00
2025-05-20 16:19:38 +08:00
function init(table, form, keyWord) {
2025-05-20 13:54:27 +08:00
table.render({
2025-05-20 16:19:38 +08:00
elem: "#layuiTable",
url: ctxPath + "/ma/sendoff/list?keyWord=" + keyWord,
method: "post",
cols: [
[
{ type: "checkbox", fixed: "left" },
{
field: "ID",
title: "序号",
width: "3%",
sort: true,
type: "numbers",
},
{ field: "cxPzTime", title: "冲销凭证日期", align: "center" },
{ field: "cxPzCode", title: "冲销凭证号", align: "center" },
{ field: "maCode", title: "物料号", align: "center" },
{ field: "maName", title: "物料名称", align: "center" },
{ field: "fhPzCode", title: "发货凭证号", align: "center" },
{
field: "right",
title: "操作",
toolbar: "#barDemo",
align: "center",
},
],
],
limits: [5, 10, 20, 50, 100, 500], //一页选择显示3,5或10条数据
limit: 10, //一页显示5条数据
response: {
statusCode: 200, //规定成功的状态码默认0
},
parseData: function (res) {
//将原始数据解析成 table 组件所规定的数据res为从url中get到的数据
2025-05-20 13:54:27 +08:00
let result;
if (res.count > 0) {
if (this.page.curr) {
2025-05-20 16:19:38 +08:00
result = res.data.slice(
this.limit * (this.page.curr - 1),
this.limit * this.page.curr
);
2025-05-20 13:54:27 +08:00
} else {
result = res.data.slice(0, this.limit);
}
}
return {
2025-05-20 16:19:38 +08:00
code: res.code, //解析接口状态
msg: res.msg, //解析提示文本
count: res.count, //解析数据长度
data: result, //解析数据列表
2025-05-20 13:54:27 +08:00
};
2025-05-20 16:19:38 +08:00
},
id: "layuiTable",
page: true, //开启分页
height: 600,
2025-05-20 13:54:27 +08:00
});
2025-05-20 16:19:38 +08:00
table.on("tool(contact)", function (obj) {
2025-05-20 13:54:27 +08:00
var data = obj.data;
2025-05-20 16:19:38 +08:00
if (obj.event === "del") {
2025-05-20 13:54:27 +08:00
del(data.id);
2025-05-20 16:19:38 +08:00
} else if (obj.event === "edit") {
2025-05-20 13:54:27 +08:00
edit(data.id);
}
});
}
/**
* 新增
*/
2025-05-20 16:19:38 +08:00
function add() {
localStorage.setItem("type", "1");
2025-05-20 13:54:27 +08:00
var index = layer.open({
2025-05-20 16:19:38 +08:00
title: "新增",
2025-05-20 13:54:27 +08:00
type: 2,
2025-05-20 16:19:38 +08:00
content: "./child/sendoffAddForm.html",
area: ["80%", "70%"],
2025-05-20 13:54:27 +08:00
maxmin: false,
2025-05-20 16:19:38 +08:00
btn: ["确定 ", "取消"],
yes: function (index, layero) {
var formSubmit = layer.getChildFrame("form", index);
var submited = formSubmit.find("button")[0];
2025-05-20 13:54:27 +08:00
// 触发点击事件,会对表单进行验证,验证成功则提交表单,失败则返回错误信息
submited.click();
},
2025-05-20 16:19:38 +08:00
btn2: function (index, layero) {},
2025-05-20 13:54:27 +08:00
});
}
/**
* 修改
* */
function edit(id) {
2025-05-20 16:19:38 +08:00
localStorage.setItem("type", "2");
2025-05-20 13:54:27 +08:00
$.ajax({
2025-05-20 16:19:38 +08:00
type: "post",
url: ctxPath + "/ma/sendoff/getById",
2025-05-20 13:54:27 +08:00
data: {
2025-05-20 16:19:38 +08:00
id: id,
2025-05-20 13:54:27 +08:00
},
2025-05-20 16:19:38 +08:00
dataType: "text",
2025-05-20 13:54:27 +08:00
success: function (data) {
2025-05-20 16:19:38 +08:00
var height = "80%";
var width = "70%";
2025-05-20 13:54:27 +08:00
var index = layer.open({
2025-05-20 16:19:38 +08:00
title: "修改",
2025-05-20 13:54:27 +08:00
type: 2,
2025-05-20 16:19:38 +08:00
content: "./child/sendoffForm.html",
2025-05-20 13:54:27 +08:00
area: [width, height],
maxmin: false,
2025-05-20 16:19:38 +08:00
btn: ["确定 ", "取消"],
success: function (layero, index) {
var myIframe = window[layero.find("iframe")[0]["name"]];
2025-05-20 13:54:27 +08:00
var fnc = myIframe.setData(data); //aaa()为子页面的方法
},
2025-05-20 16:19:38 +08:00
yes: function (index, layero) {
var formSubmit = layer.getChildFrame("form", index);
var submited = formSubmit.find("button")[0];
2025-05-20 13:54:27 +08:00
// 触发点击事件,会对表单进行验证,验证成功则提交表单,失败则返回错误信息
submited.click();
},
2025-05-20 16:19:38 +08:00
btn2: function (index, layero) {},
2025-05-20 13:54:27 +08:00
});
2025-05-20 16:19:38 +08:00
},
});
2025-05-20 13:54:27 +08:00
}
/**
* 删除
* */
function del(id) {
2025-05-20 16:19:38 +08:00
layer.confirm("确定删除吗?", function () {
2025-05-20 13:54:27 +08:00
$.ajax({
2025-05-20 16:19:38 +08:00
type: "post",
url: ctxPath + "/ma/sendoff/delete",
2025-05-20 13:54:27 +08:00
data: {
2025-05-20 16:19:38 +08:00
id: id,
2025-05-20 13:54:27 +08:00
},
success: function (data) {
2025-05-20 16:19:38 +08:00
if (data.code == 200) {
layer.alert("删除成功", { icon: 1 }, () => {
2025-05-20 13:54:27 +08:00
location.reload();
});
2025-05-20 16:19:38 +08:00
} else {
layer.alert("删除失败", { icon: 2 });
2025-05-20 13:54:27 +08:00
}
2025-05-20 16:19:38 +08:00
},
});
});
2025-05-20 13:54:27 +08:00
}
2025-05-20 16:19:38 +08:00
function getData(day) {
var today = new Date();
var targetday = today.getTime() + 1000 * 60 * 60 * 24 * day;
today.setTime(targetday);
var tYear = today.getFullYear();
var tMonth = today.getMonth();
var tDate = today.getDate();
tMonth = this.doHandMonth(tMonth + 1);
tDate = this.doHandMonth(tDate);
return tYear + "-" + tMonth + "-" + tDate;
2025-05-20 13:54:27 +08:00
}
2025-05-20 16:19:38 +08:00
function doHandMonth(month) {
var m = month;
if (month.toString().length == 1) {
m = "0" + month;
2025-05-20 13:54:27 +08:00
}
2025-05-20 16:19:38 +08:00
return m;
2025-05-20 13:54:27 +08:00
}
2025-05-20 16:19:38 +08:00
function batchDeleteBtn() {
var selectData = layui.table.checkStatus("layuiTable").data;
2025-05-20 13:54:27 +08:00
console.log(selectData);
let ids = [];
2025-05-20 16:19:38 +08:00
for (let i = 0; i < selectData.length; i++) {
ids.push(selectData[i].id);
2025-05-20 13:54:27 +08:00
}
console.log(ids);
2025-05-20 16:19:38 +08:00
if (ids.toString() == "") {
return layer.alert("请选择需要删除的数据", { icon: 0 });
} else {
layer.confirm(
"确定删除所选 " + ids.length + " 条数据吗?",
function () {
$.ajax({
type: "delete",
url: ctxPath + "/ma/sendoff/" + ids.toString(),
success: function (data) {
if (data.code == 200) {
layer.msg("删除成功", { icon: 1 }, function () {
table.reload("layuiTable");
});
} else {
layer.alert("删除失败", { icon: 2 });
}
},
});
}
);
2025-05-20 13:54:27 +08:00
}
}
function exportData() {
2025-05-20 16:19:38 +08:00
var index = layer.msg("数据导出中,请稍等。。。", {
icon: 4,
2025-05-20 13:54:27 +08:00
});
var token = localStorage.getItem("token");
var djCode = $("#djCode").val();
var maCode = $("#maCode").val();
var param = {
2025-05-20 16:19:38 +08:00
djCode: djCode,
maCode: maCode,
};
var url =
ctxPath +
"/ma/sendoff/export?param=" +
encodeURIComponent(JSON.stringify(param));
2025-05-20 13:54:27 +08:00
var xhr = new XMLHttpRequest();
xhr.open("get", url, true);
//设置xhr请求的超时时间
xhr.timeout = 100000;
//设置响应返回的数据格式
2025-05-20 16:19:38 +08:00
xhr.responseType = "blob"; // 转换流
2025-05-20 13:54:27 +08:00
xhr.setRequestHeader("token", token);
//构造表单数据
xhr.onload = function () {
if (this.status === 200) {
var blob = this.response;
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
a.href = url;
layer.close(index);
a.download = "发货冲销对应表-导出.xlsx"; // 文件名
} else if (this.status === 401) {
localStorage.removeItem("token");
layer.msg('用户登录过期,请重新登录', {icon: 5, time: 2000}, function () {
2025-10-28 14:37:54 +08:00
location.href = contentPath+'/login.html';
2025-05-20 13:54:27 +08:00
});
}
a.click();
window.URL.revokeObjectURL(url);
};
xhr.send();
}
function downloadFile() {
var token = localStorage.getItem("token");
2025-05-20 16:19:38 +08:00
window.location.href =
ctxPath +
"/download/download?filename=发货冲销对应表-导入模板.xlsx&token=" +
token;
2025-05-20 13:54:27 +08:00
}