Merge remote-tracking branch 'origin/master'

This commit is contained in:
zfh 2025-02-26 18:57:16 +08:00
commit 09813ecbc0
3 changed files with 163 additions and 136 deletions

View File

@ -146,7 +146,7 @@ public class OutsourcerEvaluateServiceImpl implements OutsourcerEvaluateService
childList.add(childMap); childList.add(childMap);
} }
} }
oneList = oneList.stream().distinct().collect(Collectors.toList()); // oneList = oneList.stream().distinct().collect(Collectors.toList());
Map<String, Object> upload = new LinkedHashMap<>(); Map<String, Object> upload = new LinkedHashMap<>();
upload.put("title", "操作"); upload.put("title", "操作");
upload.put("mergeType", "rowspan"); upload.put("mergeType", "rowspan");
@ -360,7 +360,6 @@ public class OutsourcerEvaluateServiceImpl implements OutsourcerEvaluateService
public AjaxRes saveEvaluateData(EvaluateDataBean o) { public AjaxRes saveEvaluateData(EvaluateDataBean o) {
AjaxRes ar = new AjaxRes(); AjaxRes ar = new AjaxRes();
try { try {
String deptId = UserUtil.getLoginUser().getDeptId(); String deptId = UserUtil.getLoginUser().getDeptId();
String userId = String.valueOf(UserUtil.getLoginUser().getId()); String userId = String.valueOf(UserUtil.getLoginUser().getId());
o.setDeptId(deptId); o.setDeptId(deptId);
@ -1075,7 +1074,7 @@ public class OutsourcerEvaluateServiceImpl implements OutsourcerEvaluateService
private void addSummaryMap(List<Map<String, Object>> twoList, SetTemplateBean setTemplateBean, int childNum, private void addSummaryMap(List<Map<String, Object>> twoList, SetTemplateBean setTemplateBean, int childNum,
int twoNum, String parentId) { int twoNum, String parentId) {
//判断当前二级标题下是否有部门 且二级标题大于1 //判断当前二级标题下是否有部门 且二级标题大于1
if (childNum > 1 && setTemplateBean.getResponsibleDepartment().split(",").length > 1) { if (childNum > 1 && setTemplateBean.getResponsibleDepartment().split(",").length > 0) {
//添加小计 //添加小计
addChildMap(twoList, createTemplateBean("小计", setTemplateBean.getParentId(), setTemplateBean.getId()), 2, addChildMap(twoList, createTemplateBean("小计", setTemplateBean.getParentId(), setTemplateBean.getId()), 2,
2, parentId); 2, parentId);

View File

@ -238,12 +238,11 @@ function initTable() {
layerOptions.yes = function (index, layero) { layerOptions.yes = function (index, layero) {
//提交子页面时执行 //提交子页面时执行
// 获取弹出层中的form表单元素 // 获取弹出层中的form表单元素
// const formSubmit = layer.getChildFrame("form", index); const formSubmit = layer.getChildFrame("form", index);
// 查找class样式为submitBtn的按钮 // 查找class样式为submitBtn的按钮
// const submited = formSubmit.find("button.subBtn"); const submited = formSubmit.find("button.subBtn");
// 触发点击事件,会对表单进行验证,验证成功则提交表单,失败则返回错误信息 // 触发点击事件,会对表单进行验证,验证成功则提交表单,失败则返回错误信息
// submited.click(); submited.click();
initTable();
}; };
layer.open(layerOptions); layer.open(layerOptions);
} }

View File

@ -20,10 +20,6 @@
display: flex; display: flex;
align-items: center; align-items: center;
} }
.layui-layer-iframe .layui-layer-btn0 {
display: none;
}
</style> </style>
</head> </head>
@ -34,12 +30,12 @@
<table class="layui-table" id="baseTable" lay-filter="baseTable" style="overflow-x: auto;"> <table class="layui-table" id="baseTable" lay-filter="baseTable" style="overflow-x: auto;">
</table> </table>
</div> </div>
<!-- <div class="layui-form-item" style="display: none"> <div class="layui-form-item" style="display: none">
<div class="layui-input-block"> <div class="layui-input-block">
<button type="submit" class="layui-btn subBtn" id="commit" lay-submit lay-filter="formDemo">提交 <button type="submit" class="layui-btn subBtn" id="commit" lay-submit lay-filter="formDemo">提交
</button> </button>
</div> </div>
</div> --> </div>
</form> </form>
<script src="../../../js/publicJs.js"></script> <script src="../../../js/publicJs.js"></script>
<script src="../../../js/common_methon.js"></script> <script src="../../../js/common_methon.js"></script>
@ -62,7 +58,7 @@
tableLoading = layer.load(2, { shade: [0.1, '#fff'] }); tableLoading = layer.load(2, { shade: [0.1, '#fff'] });
initTable(); initTable();
form.on('submit(formDemo)', function (data) { form.on('submit(formDemo)', function (data) {
// getTableData(); getTableData();
return false; return false;
}); });
}); });
@ -223,43 +219,39 @@
// $(this).append(fileDom); // $(this).append(fileDom);
} }
}); if (index === cols.length - 1) {
// let lastRow = tableView.find('tr').last(); // 找到最后一行
// let lastCell = lastRow.find('td').last(); // 找到最后一个单元格
// let div = lastCell.find('div')
let div = $(this).find('div')
}); // 创建自定义 DOM 元素
var columsName = ['subName'];//需要合并的列名称 ['business_tenant_name','land','contract_begin','contract_end','history_arrears','period']; let customElement = $('<button>', {
var columsIndex = [1];//需要合并的列索引值 [2,3,5,6,14,15]; class: 'layui-btn layui-btn-sm',
merge(res, columsName, columsIndex); id: 'evaluate-btn',
text: '评价',
type: 'button'
});
let fileList = []
let uploadDom = []
let lastRow = tableView.find('tr').last(); // 找到最后一行 // 将自定义元素插入到最后一个单元格
let lastCell = lastRow.find('td').last(); // 找到最后一个单元格 div.append(customElement);
let div = lastCell.find('div')
// 创建自定义 DOM 元素 customElement.on('click', function (event) {
let customElement = $('<button>', { event.stopPropagation()
class: 'layui-btn layui-btn-sm', event.preventDefault()
id: 'evaluate-btn', let rowIndex = $(this).closest('tr').data('index')
text: '评价', const tableList = JSON.parse(msg)
type: 'button'
});
let fileList = []
let uploadDom = []
// 将自定义元素插入到最后一个单元格
div.append(customElement);
customElement.on('click', function (event) {
event.stopPropagation()
event.preventDefault()
let rowIndex = $(this).closest('tr').data('index')
const tableList = JSON.parse(msg)
// 组装dom // 组装dom
let formHtml = `<div class="dialog-title">${tableList[rowIndex].proName}</div>` let formHtml = `<div class="dialog-title">${tableList[rowIndex].proName}</div>`
let innerHtml = '' let innerHtml = ''
dialogLabelList.forEach((e, index) => { dialogLabelList.forEach((e, index) => {
fileList.push('') fileList.push('')
uploadDom.push('#uploadBtn' + index) uploadDom.push('#uploadBtn' + index)
innerHtml += `<div style="padding:6px 0;display: flex; align-items: center;"> innerHtml += `<div style="padding:6px 0;display: flex; align-items: center;">
<div style="margin-right: 10px;width: 200px";>${e.title}</div> <div style="margin-right: 10px;width: 200px";>${e.title}</div>
<input type="text" data-id="${dialogLabelInfo[index].field}" id="numberInput" name="numberInput" min="0.01" step="0.01" placeholder="请输入大于0的数字" style=";width:180px; padding:1px 5px;" value="${tableList[rowIndex][dialogLabelInfo[index].field]}"> <input type="text" data-id="${dialogLabelInfo[index].field}" id="numberInput" name="numberInput" min="0.01" step="0.01" placeholder="请输入大于0的数字" style=";width:180px; padding:1px 5px;" value="${tableList[rowIndex][dialogLabelInfo[index].field]}">
<button type="button" data-index="${index}" id="uploadBtn${index}" style="color: #4CAF50; border: none; margin-left: 10px; cursor: pointer;"> <button type="button" data-index="${index}" id="uploadBtn${index}" style="color: #4CAF50; border: none; margin-left: 10px; cursor: pointer;">
@ -268,115 +260,152 @@
<div class="upload-success" id="upload-success_${index}" style="display:none"><i data-index="${index}" class="layui-icon" style="font-size: 18px; color: red; cursor: pointer;">&#xe640;</i> </div> <div class="upload-success" id="upload-success_${index}" style="display:none"><i data-index="${index}" class="layui-icon" style="font-size: 18px; color: red; cursor: pointer;">&#xe640;</i> </div>
</div>` </div>`
}) })
formHtml += ` formHtml += `
<div style="padding: 12px;"> <div style="padding: 12px;">
<form id="uploadForm"> <form id="uploadForm">
${innerHtml} ${innerHtml}
</form> </form>
</div>` </div>`
layer.open({ layer.open({
type: 1, type: 1,
area: ['auto', 'auto'], // 宽高 area: ['auto', 'auto'], // 宽高
content: formHtml, content: formHtml,
title: '评分', title: '评分',
btn: ['确定', '取消'], btn: ['确定', '取消'],
success: function (layero, index) { success: function (layero, index) {
// 点击上传按钮的逻辑 // 点击上传按钮的逻辑
layui.use('upload', function () { layui.use('upload', function () {
var upload = layui.upload; var upload = layui.upload;
// 执行上传功能 // 执行上传功能
var uploadInst = upload.render({ var uploadInst = upload.render({
elem: uploadDom.join(','), elem: uploadDom.join(','),
url: ctxPath + '/upload/file', url: ctxPath + '/upload/file',
accept: 'file', accept: 'file',
multiple: false, multiple: false,
done: function (res) { done: function (res) {
// 上传完毕回调 // 上传完毕回调
console.log('文件上传成功'); console.log('文件上传成功');
console.log(res); console.log(res);
var dataIndex = $(this.elem).data('index'); var dataIndex = $(this.elem).data('index');
fileList[dataIndex] = res.obj fileList[dataIndex] = res.obj
// 隐藏当前上传按钮
$(`#uploadBtn${dataIndex}`).hide()
$(`#upload-success_${dataIndex}`).show()
$(`#upload-success_${dataIndex}`).prepend(`<span class="prepend-content">${res.message}</span>`)
// 插入新的 DOM 元素,
// var newDom = $(`<div class="upload-success">${res.message}<i data-index="${dataIndex}" class="layui-icon" style="font-size: 18px; color: red; cursor: pointer;">&#xe640;</i> </div>`);
// $(this.elem).parent().append(newDom);
},
error: function () {
// 请求异常回调
console.log('文件上传失败');
}
})
})
// $('.uploadBtn').on('click', function (event) {
// event.stopPropagation(); // 阻止事件冒泡
// event.preventDefault(); // 阻止默认行为
// console.log('上传附件按钮被点击了');
// });
// 隐藏当前上传按钮
$(`#uploadBtn${dataIndex}`).hide()
$(`#upload-success_${dataIndex}`).show()
$(`#upload-success_${dataIndex}`).prepend(`<span class="prepend-content">${res.message}</span>`)
// 插入新的 DOM 元素,
// var newDom = $(`<div class="upload-success">${res.message}<i data-index="${dataIndex}" class="layui-icon" style="font-size: 18px; color: red; cursor: pointer;">&#xe640;</i> </div>`);
// $(this.elem).parent().append(newDom);
}, },
error: function () { yes: function (index) {
// 请求异常回调 // 点击"确定"按钮时的逻辑
console.log('文件上传失败');
}
})
})
// $('.uploadBtn').on('click', function (event) {
// event.stopPropagation(); // 阻止事件冒泡
// event.preventDefault(); // 阻止默认行为
// console.log('上传附件按钮被点击了');
// });
}, let formData = {};
yes: function (index) { let fields = dialogLabelInfo.map((e) => e.field)
// 点击"确定"按钮时的逻辑 $('#uploadForm input').each(function () {
let inputValue = $(this).val();
let formData = {}; if (parseFloat(inputValue) < 0) {
let fields = dialogLabelInfo.map((e) => e.field) layer.msg('请输入大于0的数字')
$('#uploadForm input').each(function () { return false
let inputValue = $(this).val(); }
let dataId = $(this).data('id') // 获取 data-id
if (dataId && inputValue) {
formData[dataId] = inputValue * 1 // 将 data-id 作为键,输入框的值作为值
}
})
const currentRows = tableList[rowIndex]
Object.assign(currentRows, formData)
if (parseFloat(inputValue) < 0) { currentRows.fileList = fileList
layer.msg('请输入大于0的数字')
return false
}
let dataId = $(this).data('id') // 获取 data-id
if (dataId && inputValue) {
formData[dataId] = inputValue * 1 // 将 data-id 作为键,输入框的值作为值
}
})
const currentRows = tableList[rowIndex]
Object.assign(currentRows, formData)
currentRows.fileList = fileList for (let key in formData) {
let dataForm = { let curTd = tableView.find('tr[data-index=' + rowIndex + ']').find('td[data-field=' + key + ']')
templateId: getUrlParam('templateId'),
evaluateId: getUrlParam('id'),
id: getUrlParam('detailsId'),
jsonData: JSON.stringify([currentRows]),
titleFiled: fields.join(','),
}
console.log('提交时的formDat参数', dataForm) if (curTd.length > 0) {
let path = getUrlParam("type") == '0' ? '/outsourcer/saveEvaluateData' : '/outsourcer/updateEvaluateData'; $(curTd).find('.layui-table-cell').text(formData[key]);
$.ajax({ } else {
url: ctxPath + path, console.log('没有找到对应的 td', key);
type: 'post', }
data: dataForm, }
success: function (res) {
if (res.res == '1') {
layer.msg('保存成功'); layer.msg('保存成功');
layer.close(index); // 关闭弹框 layer.close(index); // 关闭弹框
initTable()
} else { // 更新当前行的表格数据
layer.msg(res.resMsg); // let colsNew = tableView.find('tr[data-index=' + rowIndex + ']').find('td');
// 遍历所有列,更新相应的单元格
// colsNew.each(function (index, td) {
// // 获取字段名,和表格列的字段对应
// let fieldName = dialogLabelInfo[index]?.field;
// // 如果该列对应的字段存在,则更新该单元格的值
// if (fieldName && currentRows[fieldName] !== undefined) {
// $(td).text(formData[fieldName]);
// }
// })
// let dataForm = {
// templateId: getUrlParam('templateId'),
// evaluateId: getUrlParam('id'),
// id: getUrlParam('detailsId'),
// jsonData: JSON.stringify([currentRows]),
// titleFiled: fields.join(','),
// }
// console.log('提交时的formDat参数', dataForm)
// let path = getUrlParam("type") == '0' ? '/outsourcer/saveEvaluateData' : '/outsourcer/updateEvaluateData';
// $.ajax({
// url: ctxPath + path,
// type: 'post',
// data: dataForm,
// success: function (res) {
// if (res.res == '1') {
// layer.msg('保存成功');
// layer.close(index); // 关闭弹框
// initTable()
// } else {
// layer.msg(res.resMsg);
// }
// }
// })
// 这里可以执行你需要的操作
},
btn2: function (index) {
layer.close(index) // 关闭弹框
return false
} }
} })
}) });
// 这里可以执行你需要的操作
},
btn2: function (index) {
layer.close(index) // 关闭弹框
return false
} }
})
});
}); });
var columsName = ['subName'];//需要合并的列名称 ['business_tenant_name','land','contract_begin','contract_end','history_arrears','period'];
var columsIndex = [1];//需要合并的列索引值 [2,3,5,6,14,15];
merge(res, columsName, columsIndex);
$(document).on('click', '.upload-success i', function () { $(document).on('click', '.upload-success i', function () {
var dataIndex = $(this).data('index'); var dataIndex = $(this).data('index');