This commit is contained in:
liang.chao 2025-08-20 15:58:29 +08:00
parent 252497a7e9
commit dce11e050c
14 changed files with 1099 additions and 49 deletions

View File

@ -39,6 +39,7 @@ public class TeamGroupBean {
// 信息评审表
private String infoFileUrl;
private String applyMan;
private String applyManName;
private String createTime;
private String level;
private String tableSource;

View File

@ -392,11 +392,10 @@ public class OrganizationalController extends BaseController<EvaluateBean> {
AjaxRes ar = getAjaxRes();
Integer i = service.revokeRegisterTeamGroup(bean);
if (i > 0) {
ar.success("撤回成功");
return ar.success("撤回成功");
} else {
ar.error("撤回失败");
return ar.error("撤回失败");
}
return ar;
}
@PostMapping("/uploadFaceImg")

View File

@ -162,5 +162,5 @@ public interface OutsourcerEvaluateDao {
Integer getExaminePerson(ExamineBean o);
List<String> getAuditPersonByDeptAndRoleName(String applyMan );
List<Long> getAuditPersonByDeptAndRoleName(String applyMan );
}

View File

@ -270,11 +270,11 @@ public class TeamGroupServiceImpl implements TeamGroupService {
public List<TeamGroupBean> auditRegisterList(TeamGroupBean teamGroupBean) {
List<TeamGroupBean> list = new ArrayList<>();
List<TeamGroupBean> registerList = teamGroupDao.getRegisterList(teamGroupBean);
if (teamGroupBean.getAuditType() == 1) {
if (teamGroupBean.getAuditType() != null && teamGroupBean.getAuditType() == 1) {
// 各事业部审核人
for (TeamGroupBean groupBean : registerList) {
// 获取申请人的部门审核人
List<String> stringList = dao.getAuditPersonByDeptAndRoleName(groupBean.getApplyMan());
List<Long> stringList = dao.getAuditPersonByDeptAndRoleName(groupBean.getApplyMan());
if (stringList != null && !stringList.isEmpty() && stringList.contains(UserUtil.getLoginUser().getId())) {
list.add(groupBean);
}
@ -298,9 +298,13 @@ public class TeamGroupServiceImpl implements TeamGroupService {
// 班长姓名
groupBean.setTeamLeader(teamLeader.getName());
// 班长手机号
groupBean.setPhone(teamLeader.getPhone());
if (StringUtils.isNotBlank(teamLeader.getPhone())){
groupBean.setPhone(AesCbcUtils.encrypt(teamLeader.getPhone()));
}
// 班长身份证号
groupBean.setIdCard(teamLeader.getIdCard());
if (StringUtils.isNotBlank(teamLeader.getIdCard())){
groupBean.setIdCard(AesCbcUtils.encrypt(teamLeader.getIdCard()));
}
// 注册骨干人员数量
groupBean.setPersonNum(teamLeader.getPersonNum());
}

View File

@ -868,7 +868,7 @@
AND evaluate_node = #{evaluateNode}
</if>
</select>
<select id="getAuditPersonByDeptAndRoleName" resultType="java.lang.String">
<select id="getAuditPersonByDeptAndRoleName" resultType="java.lang.Long">
SELECT
userId
FROM

View File

@ -201,7 +201,8 @@
poi.create_time createTime,
poi.info_file_url infoFileUrl,
poi.audit_status auditStatus,
su.username applyMan,
su.id applyMan,
su.username applyManName,
CASE
WHEN poi.audit_status = 0 THEN '草稿'
WHEN poi.audit_status = 1 THEN '待事业部审核'
@ -234,6 +235,7 @@
tp.name AS name,
tp.phone AS phone,
tp.id_card AS idCard,
poi.apply_man AS applyMan,
team_stats.personNum
FROM
pm_org_info poi

View File

@ -0,0 +1,257 @@
// 专责审批 js文件
let layer, laydate, table, form, loginUser;
$(function () {
layui.use(["layer", "laydate", "table", "form"], function () {
layer = layui.layer;
laydate = layui.laydate;
form = layui.form;
table = layui.table;
initLayDate(laydate);
loginUser = JSON.parse(localStorage.getItem("loginUser"));
laydate.render({
elem: "#startDate",
type: "month",
format: "yyyy-MM",
});
initTable();
});
});
function search(type) {
if (type === 1) {
} else {
$("#keyWord").val("");
$("#status").val("");
$("#startDate").val("");
$("#endDate").val("");
form.render("select");
}
table.reload("baseTable", {
url: ctxPath + "/teamGroup/auditRegisterList",
page: {
curr: 1,
},
where: {
type: "audit",
auditType: 1,
keyWord: $("#keyWord").val(),
status: $("#status").val(),
startDate: $("#startDate").val(),
endDate: $("#endDate").val(),
},
});
}
function initTable() {
//渲染表格
table.render({
elem: "#baseTable",
url: ctxPath + "/teamGroup/auditRegisterList", //数据接口
method: "get", //方式默认是get
toolbar: "default", //开启工具栏,此处显示默认图标,可以自定义模板,详见文档
where: {
type: "audit",
auditType: 1,
}, //post请求必须加where post请求需要的参数
cellMinWidth: 80,
cols: [
[
//表头
{
field: "number",
width: 80,
title: "序号",
align: "center",
type: "numbers",
},
{field: "teamGroupName", align: "center", title: "注册班组名称"},
{field: "teamLeader", align: "center", title: "班组长姓名"},
{
field: 'phone', title: '班长联系电话', width: '15%', align: "center",
templet: function (d) {
if (d.phone) {
let phone = decryptCBC(d.phone);
return maskSensitiveInfo(phone, "phone");
} else {
return "";
}
}
},
{
field: 'idCard', title: '身份证号码', width: '15%', align: "center",
templet: function (d) {
let idCard = decryptCBC(d.idCard);
return maskSensitiveInfo(idCard, "idCard");
}
},
{field: "personNum", align: "center", title: "注册骨干人员数量"},
{
field: "infoFileUrl",
align: "center",
title: "信息评审表",
templet: function (d) {
return '<a onclick="openTeamMemberPage(\'' + d.infoFileUrl + '\')" style="color: #1E9FFF; cursor: pointer;">查看</a>';
}
},
{field: "createTime", align: "center", title: "申请时间"},
{field: "applyManName", align: "center", title: "申请人"},
{field: "auditStatusName", align: "center", title: "审核状态"},
{
fixed: "right",
width: 180,
title: "操作",
align: "center",
templet: (d) => {
let text = "";
text +=
'<a lay-event="view" style="color: #009688;cursor: pointer;font-size:' +
' 15px;margin-left: 10px"' +
' id="view">查看</a>';
if (d.auditStatus == 1) {
text +=
'<a lay-event="audit" style="color: #009688;cursor: pointer;font-size:' +
' 15px;margin-left: 10px"' +
' id="audit">审核</a>';
}
return text;
},
},
],
],
id: "baseTable",
page: true, //开启分页
loading: true, //数据加载中。。。
limits: [10, 20, 100], //一页选择显示3,5或10条数据
limit: 10, //一页显示5条数据
response: {
statusCode: 200, //规定成功的状态码默认0
},
parseData: function (res) {
//将原始数据解析成 table 组件所规定的数据res为从url中get到的数据
let result;
if (res.data !== "" && res.data != null && res.data !== "null") {
if (this.page.curr) {
result = res.data.slice(
this.limit * (this.page.curr - 1),
this.limit * this.page.curr
);
} else {
result = res.data.slice(0, this.limit);
}
}
return {
code: res.code, //解析接口状态
msg: res.msg, //解析提示文本
count: res.count, //解析数据长度
data: result, //解析数据列表
};
},
toolbar: "#toolbar",
});
table.on("tool(test)", function (obj) {
const data = obj.data; //当前行数据
const rowIndex = obj.index;
const layEvent = obj.event; //当前点击的事件名
switch (layEvent) {
case "view":
ViewReviews(data, "查看");
break;
case "audit":
AuditReviews(data, "审核");
break;
default:
console.warn(`未知事件: ${layEvent}`);
}
});
//查看
function ViewReviews(data, title) {
localStorage.setItem("teamGroupData", data);
try {
layer.open({
type: 2,
title: title,
shade: 0.3,
area: ["98%", "98%"],
scrollbar: true,
move: true,
anim: 2,
shadeClose: false,
content:
"./registerEdit.html",
success: function (layero, index) {
let iframeWin = window["layui-layer-iframe" + index];
iframeWin.setParams(data.id, index, title);
},
});
} catch (error) {
console.error("ViewReviews 错误:", error);
}
}
}
//审核
function AuditReviews(data, title) {
try {
layer.confirm('是否通过?', {
title: title || '提示',
icon: 3,
shade: 0.3,
btn: ['通过', '驳回'] // 左边是“通过”,右边是“驳回”
}, function (index) {
// 点击“通过”按钮
let item = {
id: data.id,
auditStatus: 2 // 通过
};
submitAudit(item, index);
}, function (index) {
// 点击“驳回”按钮
let item = {
id: data.id,
auditStatus: 5 // 驳回
};
submitAudit(item, index);
});
} catch (error) {
console.error("AuditReviews 错误:", error);
layer.msg("发生异常,请查看控制台", {icon: 2});
}
// 封装提交逻辑,避免重复代码
function submitAudit(item, index) {
$.ajax({
url: `${ctxPath}/teamGroup/auditRegister`,
type: "POST",
data: JSON.stringify(item),
dataType: "json",
contentType: "application/json",
success: function (res) {
if (res.res === 1) {
layer.msg("审核成功", {icon: 1});
// 可以在这里刷新列表或更新状态
} else {
layer.msg("操作失败:" + (res.resMsg || "未知错误"), {icon: 2});
}
layer.close(index); // 关闭弹窗
search(1);
},
error: function () {
layer.msg("服务异常,请稍后重试", {
icon: 2,
time: 2000
});
layer.close(index);
}
});
}
}
//班组人员列表
function openTeamMemberPage(data) {
const filePath = ctxPath + "/statics/" + data.split('/upload/')[1]
window.open(filePath)
}

View File

@ -0,0 +1,256 @@
// 专责审批 js文件
let layer, laydate, table, form, loginUser;
$(function () {
layui.use(["layer", "laydate", "table", "form"], function () {
layer = layui.layer;
laydate = layui.laydate;
form = layui.form;
table = layui.table;
initLayDate(laydate);
loginUser = JSON.parse(localStorage.getItem("loginUser"));
laydate.render({
elem: "#startDate",
type: "month",
format: "yyyy-MM",
});
initTable();
});
});
function search(type) {
if (type === 1) {
} else {
$("#keyWord").val("");
$("#status").val("");
$("#startDate").val("");
$("#endDate").val("");
form.render("select");
}
table.reload("baseTable", {
url: ctxPath + "/teamGroup/auditRegisterList",
page: {
curr: 1,
},
where: {
type: "audit",
keyWord: $("#keyWord").val(),
status: $("#status").val(),
startDate: $("#startDate").val(),
endDate: $("#endDate").val(),
},
});
}
function initTable() {
//渲染表格
table.render({
elem: "#baseTable",
url: ctxPath + "/teamGroup/auditRegisterList", //数据接口
method: "get", //方式默认是get
toolbar: "default", //开启工具栏,此处显示默认图标,可以自定义模板,详见文档
where: {
type: "audit"
}, //post请求必须加where post请求需要的参数
cellMinWidth: 80,
cols: [
[
//表头
{
field: "number",
width: 80,
title: "序号",
align: "center",
type: "numbers",
},
{field: "department", align: "center", title: "所属事业部"},
{field: "teamGroupName", align: "center", title: "注册班组名称"},
{field: "teamLeader", align: "center", title: "班组长姓名"},
{
field: 'phone', title: '班长联系电话', width: '15%', align: "center",
templet: function (d) {
if (d.phone) {
let phone = decryptCBC(d.phone);
return maskSensitiveInfo(phone, "phone");
} else {
return "";
}
}
},
{
field: 'idCard', title: '身份证号码', width: '15%', align: "center",
templet: function (d) {
let idCard = decryptCBC(d.idCard);
return maskSensitiveInfo(idCard, "idCard");
}
},
{field: "personNum", align: "center", title: "注册骨干人员数量"},
{
field: "infoFileUrl",
align: "center",
title: "信息评审表",
templet: function (d) {
return '<a onclick="openTeamMemberPage(\'' + d.infoFileUrl + '\')" style="color: #1E9FFF; cursor: pointer;">查看</a>';
}
},
{field: "createTime", align: "center", title: "申请时间"},
{field: "applyManName", align: "center", title: "申请人"},
{field: "auditStatusName", align: "center", title: "审核状态"},
{
fixed: "right",
width: 180,
title: "操作",
align: "center",
templet: (d) => {
let text = "";
text +=
'<a lay-event="view" style="color: #009688;cursor: pointer;font-size:' +
' 15px;margin-left: 10px"' +
' id="view">查看</a>';
if (d.auditStatus == 2) {
text +=
'<a lay-event="audit" style="color: #009688;cursor: pointer;font-size:' +
' 15px;margin-left: 10px"' +
' id="audit">审核</a>';
}
return text;
},
},
],
],
id: "baseTable",
page: true, //开启分页
loading: true, //数据加载中。。。
limits: [10, 20, 100], //一页选择显示3,5或10条数据
limit: 10, //一页显示5条数据
response: {
statusCode: 200, //规定成功的状态码默认0
},
parseData: function (res) {
//将原始数据解析成 table 组件所规定的数据res为从url中get到的数据
let result;
if (res.data !== "" && res.data != null && res.data !== "null") {
if (this.page.curr) {
result = res.data.slice(
this.limit * (this.page.curr - 1),
this.limit * this.page.curr
);
} else {
result = res.data.slice(0, this.limit);
}
}
return {
code: res.code, //解析接口状态
msg: res.msg, //解析提示文本
count: res.count, //解析数据长度
data: result, //解析数据列表
};
},
toolbar: "#toolbar",
});
table.on("tool(test)", function (obj) {
const data = obj.data; //当前行数据
const rowIndex = obj.index;
const layEvent = obj.event; //当前点击的事件名
switch (layEvent) {
case "view":
ViewReviews(data, "查看");
break;
case "audit":
AuditReviews(data, "审核");
break;
default:
console.warn(`未知事件: ${layEvent}`);
}
});
//查看
function ViewReviews(data, title) {
localStorage.setItem("teamGroupData", data);
try {
layer.open({
type: 2,
title: title,
shade: 0.3,
area: ["98%", "98%"],
scrollbar: true,
move: true,
anim: 2,
shadeClose: false,
content:
"./registerEdit.html",
success: function (layero, index) {
let iframeWin = window["layui-layer-iframe" + index];
iframeWin.setParams(data.id, index, title);
},
});
} catch (error) {
console.error("ViewReviews 错误:", error);
}
}
}
//审核
function AuditReviews(data, title) {
try {
layer.confirm('是否通过?', {
title: title || '提示',
icon: 3,
shade: 0.3,
btn: ['通过', '驳回'] // 左边是“通过”,右边是“驳回”
}, function (index) {
// 点击“通过”按钮
let item = {
id: data.id,
auditStatus: 3 // 通过
};
submitAudit(item, index);
}, function (index) {
// 点击“驳回”按钮
let item = {
id: data.id,
auditStatus: 5 // 驳回
};
submitAudit(item, index);
});
} catch (error) {
console.error("AuditReviews 错误:", error);
layer.msg("发生异常,请查看控制台", {icon: 2});
}
// 封装提交逻辑,避免重复代码
function submitAudit(item, index) {
$.ajax({
url: `${ctxPath}/teamGroup/auditRegister`,
type: "POST",
data: JSON.stringify(item),
dataType: "json",
contentType: "application/json",
success: function (res) {
if (res.res === 1) {
layer.msg("审核成功", {icon: 1});
// 可以在这里刷新列表或更新状态
} else {
layer.msg("操作失败:" + (res.resMsg || "未知错误"), {icon: 2});
}
layer.close(index); // 关闭弹窗
search(1);
},
error: function () {
layer.msg("服务异常,请稍后重试", {
icon: 2,
time: 2000
});
layer.close(index);
}
});
}
}
//班组人员列表
function openTeamMemberPage(data) {
const filePath = ctxPath + "/statics/" + data.split('/upload/')[1]
window.open(filePath)
}

View File

@ -0,0 +1,256 @@
// 专责审批 js文件
let layer, laydate, table, form, loginUser;
$(function () {
layui.use(["layer", "laydate", "table", "form"], function () {
layer = layui.layer;
laydate = layui.laydate;
form = layui.form;
table = layui.table;
initLayDate(laydate);
loginUser = JSON.parse(localStorage.getItem("loginUser"));
laydate.render({
elem: "#startDate",
type: "month",
format: "yyyy-MM",
});
initTable();
});
});
function search(type) {
if (type === 1) {
} else {
$("#keyWord").val("");
$("#status").val("");
$("#startDate").val("");
$("#endDate").val("");
form.render("select");
}
table.reload("baseTable", {
url: ctxPath + "/teamGroup/auditRegisterList",
page: {
curr: 1,
},
where: {
type: "audit",
keyWord: $("#keyWord").val(),
status: $("#status").val(),
startDate: $("#startDate").val(),
endDate: $("#endDate").val(),
},
});
}
function initTable() {
//渲染表格
table.render({
elem: "#baseTable",
url: ctxPath + "/teamGroup/auditRegisterList", //数据接口
method: "get", //方式默认是get
toolbar: "default", //开启工具栏,此处显示默认图标,可以自定义模板,详见文档
where: {
type: "audit"
}, //post请求必须加where post请求需要的参数
cellMinWidth: 80,
cols: [
[
//表头
{
field: "number",
width: 80,
title: "序号",
align: "center",
type: "numbers",
},
{field: "department", align: "center", title: "所属事业部"},
{field: "teamGroupName", align: "center", title: "注册班组名称"},
{field: "teamLeader", align: "center", title: "班组长姓名"},
{
field: 'phone', title: '班长联系电话', width: '15%', align: "center",
templet: function (d) {
if (d.phone) {
let phone = decryptCBC(d.phone);
return maskSensitiveInfo(phone, "phone");
} else {
return "";
}
}
},
{
field: 'idCard', title: '身份证号码', width: '15%', align: "center",
templet: function (d) {
let idCard = decryptCBC(d.idCard);
return maskSensitiveInfo(idCard, "idCard");
}
},
{field: "personNum", align: "center", title: "注册骨干人员数量"},
{
field: "infoFileUrl",
align: "center",
title: "信息评审表",
templet: function (d) {
return '<a onclick="openTeamMemberPage(\'' + d.infoFileUrl + '\')" style="color: #1E9FFF; cursor: pointer;">查看</a>';
}
},
{field: "createTime", align: "center", title: "申请时间"},
{field: "applyManName", align: "center", title: "申请人"},
{field: "auditStatusName", align: "center", title: "审核状态"},
{
fixed: "right",
width: 180,
title: "操作",
align: "center",
templet: (d) => {
let text = "";
text +=
'<a lay-event="view" style="color: #009688;cursor: pointer;font-size:' +
' 15px;margin-left: 10px"' +
' id="view">查看</a>';
if (d.auditStatus == 3) {
text +=
'<a lay-event="audit" style="color: #009688;cursor: pointer;font-size:' +
' 15px;margin-left: 10px"' +
' id="audit">审核</a>';
}
return text;
},
},
],
],
id: "baseTable",
page: true, //开启分页
loading: true, //数据加载中。。。
limits: [10, 20, 100], //一页选择显示3,5或10条数据
limit: 10, //一页显示5条数据
response: {
statusCode: 200, //规定成功的状态码默认0
},
parseData: function (res) {
//将原始数据解析成 table 组件所规定的数据res为从url中get到的数据
let result;
if (res.data !== "" && res.data != null && res.data !== "null") {
if (this.page.curr) {
result = res.data.slice(
this.limit * (this.page.curr - 1),
this.limit * this.page.curr
);
} else {
result = res.data.slice(0, this.limit);
}
}
return {
code: res.code, //解析接口状态
msg: res.msg, //解析提示文本
count: res.count, //解析数据长度
data: result, //解析数据列表
};
},
toolbar: "#toolbar",
});
table.on("tool(test)", function (obj) {
const data = obj.data; //当前行数据
const rowIndex = obj.index;
const layEvent = obj.event; //当前点击的事件名
switch (layEvent) {
case "view":
ViewReviews(data, "查看");
break;
case "audit":
AuditReviews(data, "审核");
break;
default:
console.warn(`未知事件: ${layEvent}`);
}
});
//查看
function ViewReviews(data, title) {
localStorage.setItem("teamGroupData", data);
try {
layer.open({
type: 2,
title: title,
shade: 0.3,
area: ["98%", "98%"],
scrollbar: true,
move: true,
anim: 2,
shadeClose: false,
content:
"./registerEdit.html",
success: function (layero, index) {
let iframeWin = window["layui-layer-iframe" + index];
iframeWin.setParams(data.id, index, title);
},
});
} catch (error) {
console.error("ViewReviews 错误:", error);
}
}
}
//审核
function AuditReviews(data, title) {
try {
layer.confirm('是否通过?', {
title: title || '提示',
icon: 3,
shade: 0.3,
btn: ['通过', '驳回']
}, function (index) {
// 点击“通过”按钮
let item = {
id: data.id,
auditStatus: 4 // 通过
};
submitAudit(item, index);
}, function (index) {
// 点击“驳回”按钮
let item = {
id: data.id,
auditStatus: 5 // 驳回
};
submitAudit(item, index);
});
} catch (error) {
console.error("AuditReviews 错误:", error);
layer.msg("发生异常,请查看控制台", {icon: 2});
}
// 封装提交逻辑,避免重复代码
function submitAudit(item, index) {
$.ajax({
url: `${ctxPath}/teamGroup/auditRegister`,
type: "POST",
data: JSON.stringify(item),
dataType: "json",
contentType: "application/json",
success: function (res) {
if (res.res === 1) {
layer.msg("审核成功", {icon: 1});
// 可以在这里刷新列表或更新状态
} else {
layer.msg("操作失败:" + (res.resMsg || "未知错误"), {icon: 2});
}
layer.close(index); // 关闭弹窗
search(1);
},
error: function () {
layer.msg("服务异常,请稍后重试", {
icon: 2,
time: 2000
});
layer.close(index);
}
});
}
}
//班组人员列表
function openTeamMemberPage(data) {
const filePath = ctxPath + "/statics/" + data.split('/upload/')[1]
window.open(filePath)
}

View File

@ -27,12 +27,24 @@ let memberInfoList = [
},
];
function setParams(id,index){
function setParams(id,index,title){
layui.use(["table", "form", "upload", "tree"], function () {
const $ = layui.$;
form = layui.form;
upload = layui.upload;
table = layui.table;
if (title === "查看") {
layui.$(".submit").css("display", "none");
layui.$("#addMemberBtn").css("display", "none");
layui.$("#uploadBtn").css("display", "none");
layui.$("#uploadBtn1").css("display", "none");
// 如果按钮是异步加载的,需要等待一段时间
setTimeout(function() {
layui.$('[id^="deleteMemberBtn-"]').hide();
layui.$('[id^="uploadBtn-"]').hide();
}, 100);
}
form.verify({
idCard: function (value, item) {
if (!checkPsidno(value)) {

View File

@ -76,7 +76,8 @@ function initTable() {
}
}
},
{ field: 'idCard', title: '身份证号码', width: '15%', align: "center",
{
field: 'idCard', title: '身份证号码', width: '15%', align: "center",
templet: function (d) {
let idCard = decryptCBC(d.idCard);
return maskSensitiveInfo(idCard, "idCard");
@ -92,7 +93,7 @@ function initTable() {
}
},
{field: "createTime", align: "center", title: "申请时间"},
{field: "applyMan", align: "center", title: "申请人"},
{field: "applyManName", align: "center", title: "申请人"},
{field: "auditStatusName", align: "center", title: "审核状态"},
{
fixed: "right",
@ -102,20 +103,27 @@ function initTable() {
templet: (d) => {
let text = "";
let auditStatus = d.auditStatus;
if(auditStatus ==0 || auditStatus == 5){
if (auditStatus == 0 || auditStatus == 5) {
text +=
'<a lay-event="edit" style="color: #009688;cursor: pointer;font-size: 15px"' +
' id="edit">编辑</a>';
}
text +=
'<a lay-event="del" style="color: #009688;cursor: pointer;font-size:' +
' 15px;margin-left: 10px"' +
' id="del">删除</a>';
if (d.status == 1 && loginUser.id === d.userId) {
text +=
'<a lay-event="exit" style="color: #009688;cursor: pointer;font-size:' +
'<a lay-event="edit" style="color: #009688;cursor: pointer;font-size:' +
' 15px;margin-left: 10px"' +
' id="exit">退场</a>';
' id="edit">编辑</a>';
text +=
'<a lay-event="del" style="color: #009688;cursor: pointer;font-size:' +
' 15px;margin-left: 10px"' +
' id="del">删除</a>';
}
if (auditStatus == 1) {
text +=
'<a lay-event="revoke" style="color: #009688;cursor: pointer;font-size:' +
' 15px;margin-left: 10px"' +
' id="revoke">撤回</a>';
}
if (auditStatus == 1 || auditStatus == 2 || auditStatus == 5) {
text +=
'<a lay-event="view" style="color: #009688;cursor: pointer;font-size:' +
' 15px;margin-left: 10px"' +
' id="view">查看</a>';
}
return text;
},
@ -161,11 +169,14 @@ function initTable() {
case "edit":
ViewReviews(data, "编辑");
break;
case "view":
ViewReviews(data, "查看");
break;
case "del":
DelReviews(data, "删除");
break;
case "exit":
ExitReviews(data, "退场");
case "revoke":
ExitReviews(data, "撤回");
break;
default:
console.warn(`未知事件: ${layEvent}`);
@ -186,12 +197,10 @@ function initTable() {
anim: 2,
name: "editTeamGroup",
shadeClose: false,
// content:
// './editForm.html',
content:'./registerEdit.html',
content: './registerEdit.html',
success: function (layero, index) {
let iframeWin = window["layui-layer-iframe" + index];
iframeWin.setParams(data.id, index);
iframeWin.setParams(data.id, index, title);
},
});
} catch (error) {
@ -254,45 +263,38 @@ function initTable() {
}
}
//退场
//撤回
function ExitReviews(data, title) {
console.log("data", data)
try {
layer.confirm('是否确认退场', {
layer.confirm('是否撤回', {
title: title || '提示',
icon: 3,
shade: 0.3,
btn: ['确定', '取消']
}, function (index) {
// 禁用按钮防止重复提交
$(".save").addClass("layui-btn-disabled").attr("disabled", true);
$(".cancel").addClass("layui-btn-disabled").attr("disabled", true);
let item = {
id: data.id
id: data.id,
auditStatus: 0
};
$.ajax({
url: `${ctxPath}` + '/organizational/userOutData',
url: `${ctxPath}` + '/organizational/revokeRegisterTeamGroup',
type: "POST",
data: JSON.stringify(item),
dataType: "json",
contentType: "application/json",
success: function (res) {
$(".save").removeClass("layui-btn-disabled").attr("disabled", false);
$(".cancel").removeClass("layui-btn-disabled").attr("disabled", false);
if (res.res === 1) {
openEvaluatePage(res.obj)
if (res.code === 200) {
layer.msg("撤回成功", {icon: 1});
} else {
layer.msg("删除失败:" + (res.resMsg || "未知错误"), {icon: 2});
layer.msg("撤回失败:" + (res.resMsg || "未知错误"), {icon: 2});
}
layer.close(index); // 关闭弹窗
search(1);
},
error: function () {
layer.close(loadingMsg);
$(".save").removeClass("layui-btn-disabled").attr("disabled", false);
$(".cancel").removeClass("layui-btn-disabled").attr("disabled", false);
layer.msg("服务异常,请稍后重试", {
icon: 2,
time: 2000
@ -304,7 +306,7 @@ function initTable() {
layer.close(index);
});
} catch (error) {
console.error("DelReviews 错误:", error);
console.error("ExitReviews 错误:", error);
layer.msg("发生异常,请查看控制台", {icon: 2});
}
}
@ -312,7 +314,7 @@ function initTable() {
//班组人员列表
function openTeamMemberPage(data) {
const filePath = ctxPath +"/statics/"+ data.split('/upload/')[1]
const filePath = ctxPath + "/statics/" + data.split('/upload/')[1]
window.open(filePath)
}

View File

@ -0,0 +1,87 @@
<!Doctype html>
<html lang="">
<head>
<title>外包企业管理</title>
<link rel="stylesheet" href="../../../layui/css/layui.css"/>
<style>
#tree-table-box table thead th {
font-size: 16px;
font-weight: bold;
color: #404040;
}
.layui-table thead tr {
background-color: #f0f0f0;
height: 50px;
}
.layui-table td, .layui-table th, .layui-table-col-set, .layui-table-fixed-r, .layui-table-grid-down, .layui-table-header, .layui-table-mend, .layui-table-page, .layui-table-tips-main, .layui-table-tool, .layui-table-total, .layui-table-view, .layui-table[lay-skin=line], .layui-table[lay-skin=row] {
border-color: #ddd;
}
a:hover, a:focus {
color: #2a6496;
text-decoration: underline;
}
a {
color: #428bca;
text-decoration: none;
}
</style>
</head>
<body>
<div class="row-fluid" style="padding: 10px">
<div class="col-xs-12">
<form id="baseForm" class="layui-form" method="POST" onsubmit="return false;">
<div class="layui-row" style="display: flex;flex-direction: row;padding: 10px;width: 98%">
<input type="text" style="width: 20%;" name="keyWord" id="keyWord"
lay-verify="required"
placeholder="请输入关键字"
autocomplete="off"
class="layui-input">
<select id="status" class="layui-select" name="status">
<option value="">请选择审核状态</option>
<option value="0">草稿</option>
<option value="1">待事业部审核</option>
<option value="2">待专责审核</option>
<option value="3">待汇总审核</option>
<option value="4">已通过</option>
<option value="5">已驳回</option>
</select>
<div class="layui-inline" id="timeRange">
<div class="layui-input-inline">
<input type="text" autocomplete="off" id="startDate" class="layui-input"
placeholder="请选择申请开始日期">
</div>
-
<div class="layui-input-inline">
<input type="text" autocomplete="off" id="endDate" class="layui-input"
placeholder="请选择申请结束日期">
</div>
</div>
<button type="button" class="layui-btn layui-bg-blue" style="margin-left: 10px;"
onclick="search(1)">查询
</button>
<button type="button" class="layui-btn layui-bg-blue" onclick="search(2)">重置</button>
</div>
</form>
<div id="tree-table-box" style="padding: 10px">
<table id="baseTable" class="layui-table" lay-filter="test"></table>
</div>
</div>
</div>
<script src="../../../js/publicJs.js"></script>
<script type="text/javascript" src="../../../js/AesCbc.js"></script>
<script type="text/javascript" src="../../../js/common_methon.js"></script>
<script type="text/javascript" src="../../../js/libs/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="../../../js/jq.js"></script>
<script type="text/javascript" src="../../../js/my/permission.js"></script>
<script type="text/javascript" src="../../../js/select.js"></script>
<script src="../../../layui/layui.js"></script>
<script src="../../../js/evaluate/teamGroup/auditRegisterTeamGroup.js?v=1"></script>
</body>
</html>

View File

@ -0,0 +1,87 @@
<!Doctype html>
<html lang="">
<head>
<title>外包企业管理</title>
<link rel="stylesheet" href="../../../layui/css/layui.css"/>
<style>
#tree-table-box table thead th {
font-size: 16px;
font-weight: bold;
color: #404040;
}
.layui-table thead tr {
background-color: #f0f0f0;
height: 50px;
}
.layui-table td, .layui-table th, .layui-table-col-set, .layui-table-fixed-r, .layui-table-grid-down, .layui-table-header, .layui-table-mend, .layui-table-page, .layui-table-tips-main, .layui-table-tool, .layui-table-total, .layui-table-view, .layui-table[lay-skin=line], .layui-table[lay-skin=row] {
border-color: #ddd;
}
a:hover, a:focus {
color: #2a6496;
text-decoration: underline;
}
a {
color: #428bca;
text-decoration: none;
}
</style>
</head>
<body>
<div class="row-fluid" style="padding: 10px">
<div class="col-xs-12">
<form id="baseForm" class="layui-form" method="POST" onsubmit="return false;">
<div class="layui-row" style="display: flex;flex-direction: row;padding: 10px;width: 98%">
<input type="text" style="width: 20%;" name="keyWord" id="keyWord"
lay-verify="required"
placeholder="请输入关键字"
autocomplete="off"
class="layui-input">
<select id="status" class="layui-select" name="status">
<option value="">请选择审核状态</option>
<option value="0">草稿</option>
<option value="1">待事业部审核</option>
<option value="2">待专责审核</option>
<option value="3">待汇总审核</option>
<option value="4">已通过</option>
<option value="5">已驳回</option>
</select>
<div class="layui-inline" id="timeRange">
<div class="layui-input-inline">
<input type="text" autocomplete="off" id="startDate" class="layui-input"
placeholder="请选择申请开始日期">
</div>
-
<div class="layui-input-inline">
<input type="text" autocomplete="off" id="endDate" class="layui-input"
placeholder="请选择申请结束日期">
</div>
</div>
<button type="button" class="layui-btn layui-bg-blue" style="margin-left: 10px;"
onclick="search(1)">查询
</button>
<button type="button" class="layui-btn layui-bg-blue" onclick="search(2)">重置</button>
</div>
</form>
<div id="tree-table-box" style="padding: 10px">
<table id="baseTable" class="layui-table" lay-filter="test"></table>
</div>
</div>
</div>
<script src="../../../js/publicJs.js"></script>
<script type="text/javascript" src="../../../js/AesCbc.js"></script>
<script type="text/javascript" src="../../../js/common_methon.js"></script>
<script type="text/javascript" src="../../../js/libs/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="../../../js/jq.js"></script>
<script type="text/javascript" src="../../../js/my/permission.js"></script>
<script type="text/javascript" src="../../../js/select.js"></script>
<script src="../../../layui/layui.js"></script>
<script src="../../../js/evaluate/teamGroup/auditRegisterTeamGroup2.js?v=1"></script>
</body>
</html>

View File

@ -0,0 +1,87 @@
<!Doctype html>
<html lang="">
<head>
<title>外包企业管理</title>
<link rel="stylesheet" href="../../../layui/css/layui.css"/>
<style>
#tree-table-box table thead th {
font-size: 16px;
font-weight: bold;
color: #404040;
}
.layui-table thead tr {
background-color: #f0f0f0;
height: 50px;
}
.layui-table td, .layui-table th, .layui-table-col-set, .layui-table-fixed-r, .layui-table-grid-down, .layui-table-header, .layui-table-mend, .layui-table-page, .layui-table-tips-main, .layui-table-tool, .layui-table-total, .layui-table-view, .layui-table[lay-skin=line], .layui-table[lay-skin=row] {
border-color: #ddd;
}
a:hover, a:focus {
color: #2a6496;
text-decoration: underline;
}
a {
color: #428bca;
text-decoration: none;
}
</style>
</head>
<body>
<div class="row-fluid" style="padding: 10px">
<div class="col-xs-12">
<form id="baseForm" class="layui-form" method="POST" onsubmit="return false;">
<div class="layui-row" style="display: flex;flex-direction: row;padding: 10px;width: 98%">
<input type="text" style="width: 20%;" name="keyWord" id="keyWord"
lay-verify="required"
placeholder="请输入关键字"
autocomplete="off"
class="layui-input">
<select id="status" class="layui-select" name="status">
<option value="">请选择审核状态</option>
<option value="0">草稿</option>
<option value="1">待事业部审核</option>
<option value="2">待专责审核</option>
<option value="3">待汇总审核</option>
<option value="4">已通过</option>
<option value="5">已驳回</option>
</select>
<div class="layui-inline" id="timeRange">
<div class="layui-input-inline">
<input type="text" autocomplete="off" id="startDate" class="layui-input"
placeholder="请选择申请开始日期">
</div>
-
<div class="layui-input-inline">
<input type="text" autocomplete="off" id="endDate" class="layui-input"
placeholder="请选择申请结束日期">
</div>
</div>
<button type="button" class="layui-btn layui-bg-blue" style="margin-left: 10px;"
onclick="search(1)">查询
</button>
<button type="button" class="layui-btn layui-bg-blue" onclick="search(2)">重置</button>
</div>
</form>
<div id="tree-table-box" style="padding: 10px">
<table id="baseTable" class="layui-table" lay-filter="test"></table>
</div>
</div>
</div>
<script src="../../../js/publicJs.js"></script>
<script type="text/javascript" src="../../../js/AesCbc.js"></script>
<script type="text/javascript" src="../../../js/common_methon.js"></script>
<script type="text/javascript" src="../../../js/libs/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="../../../js/jq.js"></script>
<script type="text/javascript" src="../../../js/my/permission.js"></script>
<script type="text/javascript" src="../../../js/select.js"></script>
<script src="../../../layui/layui.js"></script>
<script src="../../../js/evaluate/teamGroup/auditRegisterTeamGroup3.js?v=1"></script>
</body>
</html>