班组注册
This commit is contained in:
parent
b158ad6705
commit
c94d978e83
|
|
@ -312,7 +312,7 @@
|
|||
<if test="auditStatus != null">audit_status,</if>
|
||||
<if test="infoFileUrl != null">info_file_url,</if>
|
||||
<if test="applyMan != null">apply_man,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
create_time,
|
||||
status,
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
|
|
|
|||
|
|
@ -2,6 +2,9 @@ let form, table, tree;
|
|||
let alreadyChooseTrees = [];
|
||||
let selectData = [];
|
||||
let workTypeList = [];
|
||||
|
||||
let infoFileUrl = "";
|
||||
let faceUrl = "";
|
||||
const sexList = [
|
||||
{
|
||||
id: 1,
|
||||
|
|
@ -19,8 +22,8 @@ let memberInfoList = [
|
|||
idCard: "", // 身份证号码
|
||||
workType: "", // 工种
|
||||
sex: "", // 性别
|
||||
faceUrl: "", // 人脸照片
|
||||
isTeamLeader: 1, // 是否是班长
|
||||
faceUrl: "", // 人脸照片
|
||||
},
|
||||
];
|
||||
|
||||
|
|
@ -49,6 +52,63 @@ layui.use(["table", "form", "upload", "tree"], function () {
|
|||
$("#fileInput1").click();
|
||||
});
|
||||
|
||||
// 班组成员人脸照片上传事件委托
|
||||
$("#memberInfo").on("click", ".uploadBtn", function () {
|
||||
const index = $(this).attr("id").split("-")[1]
|
||||
$(`#fileInput-${index}`).click()
|
||||
})
|
||||
|
||||
// 班组成员人脸照片文件选择处理
|
||||
$("#memberInfo").on("change", "input[type='file']", function () {
|
||||
const index = $(this).attr("id").split("-")[1]
|
||||
const file = $(this)[0].files[0]
|
||||
|
||||
if (!file) return
|
||||
|
||||
const fileName = file.name
|
||||
const fileExtension = fileName.split(".").pop().toLowerCase()
|
||||
|
||||
// 校验文件类型,确保是 .jpg 或 .png 文件
|
||||
if (fileExtension !== "jpg" && fileExtension !== "png") {
|
||||
layer.msg("请选择图片文件(.jpg 或 .png)", {
|
||||
icon: 2,
|
||||
time: 2000,
|
||||
})
|
||||
$(this).val("")
|
||||
$(`#fileInfo-${index}`).html("")
|
||||
return
|
||||
}
|
||||
|
||||
$(`#fileInfo-${index}`).html("选中的文件:" + fileName)
|
||||
|
||||
const formData = new FormData()
|
||||
formData.append("file", file)
|
||||
|
||||
$.ajax({
|
||||
url: ctxPath + "/organizational/uploadFaceImg",
|
||||
type: "POST",
|
||||
data: formData,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success: (res) => {
|
||||
console.log(res, `成员${index}人脸上传成功`)
|
||||
if (res.res == "1" || res.res == 1) {
|
||||
// 将上传成功的URL存储到对应成员的数据中
|
||||
if (memberInfoList[index]) {
|
||||
memberInfoList[index].faceUrl = res.obj
|
||||
}
|
||||
layer.msg("上传成功", { icon: 6, time: 1500 })
|
||||
}
|
||||
},
|
||||
error: (err) => {
|
||||
console.error(err)
|
||||
layer.msg("上传失败,请重试", { icon: 5, time: 2000 })
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
|
||||
// 文件选择后的回调处理
|
||||
$("#fileInput").on("change", function () {
|
||||
const file = $("#fileInput")[0].files[0];
|
||||
|
|
@ -66,6 +126,27 @@ layui.use(["table", "form", "upload", "tree"], function () {
|
|||
} else {
|
||||
$("#fileInfo").html("选中的文件:" + fileName);
|
||||
}
|
||||
|
||||
|
||||
const formData = new FormData();
|
||||
formData.append("file", file);
|
||||
|
||||
$.ajax({
|
||||
url: ctxPath + "/organizational/uploadFaceImg",
|
||||
type: "POST",
|
||||
data: formData,
|
||||
processData: false, // 告诉jQuery不要处理数据
|
||||
contentType: false,
|
||||
success: function (res) {
|
||||
console.log(res, "人脸上传成功");
|
||||
if(res.res == "1" || res.res == 1){
|
||||
faceUrl = res.obj;
|
||||
}
|
||||
},
|
||||
error: function (err) {
|
||||
console.error(err);
|
||||
},
|
||||
});
|
||||
});
|
||||
// 文件选择后的回调处理
|
||||
$("#fileInput1").on("change", function () {
|
||||
|
|
@ -99,6 +180,9 @@ layui.use(["table", "form", "upload", "tree"], function () {
|
|||
contentType: false,
|
||||
success: function (res) {
|
||||
console.log(res, "上传成功");
|
||||
if(res.res == "1" || res.res == 1){
|
||||
infoFileUrl = res.obj;
|
||||
}
|
||||
},
|
||||
error: function (err) {
|
||||
console.error(err);
|
||||
|
|
@ -172,13 +256,76 @@ layui.use(["table", "form", "upload", "tree"], function () {
|
|||
});
|
||||
}
|
||||
|
||||
$("#stagingBtn").on("click", () => {
|
||||
const formData = {}
|
||||
formData.teamGroupName = $("#teamGroupName").val()
|
||||
formData.subContractor = $("#subContractor").val()
|
||||
formData.teamType = $("#teamType").val()
|
||||
formData.name = $("#name").val()
|
||||
formData.phone = $("#phone").val()
|
||||
formData.idCard = $("#idCard").val()
|
||||
formData.workType = $("#workType").val()
|
||||
formData.sex = $("#sex").val()
|
||||
|
||||
console.log("暂存表单数据:", JSON.stringify(formData))
|
||||
|
||||
const groupMemberList = memberInfoList.map((e, index) => {
|
||||
return {
|
||||
name: $(`#name-${index}`).val() || "",
|
||||
phone: $(`#phone-${index}`).val() || "",
|
||||
idCard: $(`#idCard-${index}`).val() || "",
|
||||
workType: $(`#workType-${index}`).val() || "",
|
||||
sex: $(`#sex-${index}`).val() || "",
|
||||
isTeamLeader: 1,
|
||||
faceUrl: e.faceUrl || "",
|
||||
}
|
||||
})
|
||||
|
||||
console.log("暂存班组成员信息数据:", groupMemberList)
|
||||
|
||||
const submitData = {
|
||||
teamGroupName: formData.teamGroupName || "",
|
||||
subContractor: formData.subContractor || "",
|
||||
infoFileUrl: infoFileUrl || "",
|
||||
teamType: formData.teamType || "",
|
||||
name: formData.name || "",
|
||||
tableSource: "pm_dept",
|
||||
level: 5,
|
||||
phone: formData.phone || "",
|
||||
idCard: formData.idCard || "",
|
||||
workType: formData.workType || "",
|
||||
sex: formData.sex || "",
|
||||
auditStatus: 0,
|
||||
isTeamLeader: 0,
|
||||
faceUrl: faceUrl || "",
|
||||
teamPersons: groupMemberList,
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: ctxPath + "/organizational/registerTeamGroup",
|
||||
type: "POST",
|
||||
contentType: "application/json;charset=utf-8",
|
||||
data: JSON.stringify(submitData),
|
||||
success: (res) => {
|
||||
if (res.res === 1) {
|
||||
layer.msg("暂存成功", { icon: 6 }, () => {
|
||||
parent.layer.close(parent.layer.getFrameIndex(window.name))
|
||||
window.parent.location.reload()
|
||||
})
|
||||
} else {
|
||||
layer.msg(res.resMsg)
|
||||
}
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
form.on("submit(formSubmit)", function (data) {
|
||||
// 表单提交事件监听
|
||||
const field = data.field;
|
||||
// 校验文件是否选择
|
||||
const file = $("#fileInput1")[0].files[0];
|
||||
if (!file) {
|
||||
layer.msg("请上传文件", { icon: 2, time: 2000 });
|
||||
layer.msg("请上传信息评审表文件", { icon: 2, time: 2000 });
|
||||
return false;
|
||||
}
|
||||
console.log("表单数据:", JSON.stringify(field));
|
||||
|
|
@ -193,6 +340,7 @@ layui.use(["table", "form", "upload", "tree"], function () {
|
|||
workType: $(`#workType-${index}`).val(),
|
||||
sex: $(`#sex-${index}`).val(),
|
||||
isTeamLeader: 1,
|
||||
faceUrl: e.faceUrl || "",
|
||||
};
|
||||
});
|
||||
|
||||
|
|
@ -201,45 +349,60 @@ layui.use(["table", "form", "upload", "tree"], function () {
|
|||
|
||||
formDataWithFile.append("teamGroupName", field.teamGroupName);
|
||||
formDataWithFile.append("subContractor", field.subContractor);
|
||||
formDataWithFile.append("infoFileUrl", file); // 信息评审表url
|
||||
formDataWithFile.append("infoFileUrl", infoFileUrl); // 信息评审表url
|
||||
formDataWithFile.append("teamType", field.teamType);
|
||||
formDataWithFile.append("name", field.name);
|
||||
formDataWithFile.append("tableSource", "pm_dept");
|
||||
formDataWithFile.append("level", 5); // 固定值
|
||||
formDataWithFile.append("phone", field.phone);
|
||||
formDataWithFile.append("idCard", field.idCard);
|
||||
formDataWithFile.append("workType", field.workType);
|
||||
formDataWithFile.append("sex", field.sex);
|
||||
formDataWithFile.append("faceUrl", file); // 人脸照片url
|
||||
formDataWithFile.append("level", 5); // 固定值
|
||||
formDataWithFile.append("tableSource", "pm_dept");
|
||||
formDataWithFile.append("isTeamLeader", 0); // 固定值
|
||||
formDataWithFile.append("auditStatus", 1);
|
||||
formDataWithFile.append("teamPersons", groupMemberList);
|
||||
formDataWithFile.append("isTeamLeader", 0); // 固定值
|
||||
formDataWithFile.append("faceUrl", file); // 人脸照片url
|
||||
|
||||
|
||||
const submitData = {
|
||||
teamGroupName: field.teamGroupName,
|
||||
subContractor: field.subContractor,
|
||||
infoFileUrl: infoFileUrl,
|
||||
teamType: field.teamType,
|
||||
name: field.name,
|
||||
tableSource:"pm_dept",
|
||||
level: 5,
|
||||
phone: field.phone,
|
||||
idCard: field.idCard,
|
||||
workType: field.workType,
|
||||
sex: field.sex,
|
||||
auditStatus: 1,
|
||||
isTeamLeader: 0,
|
||||
faceUrl: faceUrl, // 上传后返回的 URL
|
||||
teamPersons: groupMemberList
|
||||
};
|
||||
|
||||
//班组成员信息
|
||||
formDataWithFile.append("teamPersons", JSON.stringify(groupMemberList));
|
||||
$.ajax({
|
||||
url: ctxPath + "/organizational/registerTeamGroup",
|
||||
type: "POST",
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
data: formDataWithFile,
|
||||
success: function (res) {
|
||||
contentType: "application/json;charset=utf-8",
|
||||
data: JSON.stringify(submitData),
|
||||
success: res => {
|
||||
if (res.res === 1) {
|
||||
layer.msg("新增成功", { icon: 6, time: 1500 }, function () {
|
||||
var index = parent.layer.getFrameIndex(window.name); // 获取当前 iframe 层的索引
|
||||
layer.msg("成功", { icon: 6 }, () => {
|
||||
parent.layer.close(parent.layer.getFrameIndex(window.name));
|
||||
window.parent.location.reload();
|
||||
parent.layer.close(index); // 关闭弹窗
|
||||
});
|
||||
} else if (res.res === 0) {
|
||||
layer.msg(res.resMsg, { icon: 5 });
|
||||
} else {
|
||||
layer.msg(res.resMsg);
|
||||
}
|
||||
},
|
||||
error: function () {
|
||||
layer.msg("网络异常,请重试", { icon: 5 });
|
||||
},
|
||||
}
|
||||
});
|
||||
return false; // 阻止默认提交行为
|
||||
});
|
||||
|
||||
|
||||
// 获取工种类型下拉框
|
||||
async function getWorkTypeNew() {
|
||||
await new Promise((resolve) => {
|
||||
|
|
@ -272,8 +435,8 @@ layui.use(["table", "form", "upload", "tree"], function () {
|
|||
idCard: "",
|
||||
workType: "",
|
||||
sex: "",
|
||||
faceUrl: "",
|
||||
isTeamLeader: 1,
|
||||
faceUrl: "",
|
||||
});
|
||||
constructMemberInfo(index);
|
||||
});
|
||||
|
|
@ -379,5 +542,12 @@ layui.use(["table", "form", "upload", "tree"], function () {
|
|||
memberInfoList.splice(index, 1);
|
||||
console.log("删除", memberInfoList);
|
||||
$(`#memberInfo-${index}`).remove();
|
||||
|
||||
// 重新渲染所有成员信息以更新索引
|
||||
$("#memberInfo").empty()
|
||||
memberInfoList.forEach((item, newIndex) => {
|
||||
constructMemberInfo(newIndex)
|
||||
})
|
||||
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -244,6 +244,8 @@
|
|||
<div class="layui-form-item">
|
||||
<div class="layui-input-block submit">
|
||||
<button class="layui-btn" lay-submit lay-filter="formSubmit">保存</button>
|
||||
|
||||
<button class="layui-btn" type="button" lay-filter="formStaging" id="stagingBtn">暂存</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue