Merge remote-tracking branch 'origin/master'

This commit is contained in:
haozq 2025-02-26 16:55:53 +08:00
commit 3640434634
3 changed files with 137 additions and 119 deletions

View File

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

View File

@ -64,16 +64,24 @@ function initTable() {
, {field: 'evaluateMonth', align: 'center', title: '评价年月'}
, {field: 'projectNum', align: 'center', title: '项目数量'}
, {field: 'outsourcerNum', align: 'center', title: '外包商数量'}
, {field: 'isApprove', align: 'center', title: '评价状态', templet: d =>{
, {
field: 'isApprove', align: 'center', title: '评价状态', templet: d => {
if (d.rejectReason) {
return '评价驳回'
} else {
return Number(d.isApprove) === 0 ? '待评价' : (Number(d.isApprove) === 1 ? '已评价' : '')
}
// Number(d.isApprove) === 0 ? '待评价' : (Number(d.isApprove) === 1 ? '已评价' : '')
}}
, {field: 'status', align: 'center', title: '审核状态', templet: d =>
Number(d.status) === 0 ? '待审核' : (Number(d.status) === 1 ? '已审核' : '审核中')
}
}
, {
field: 'status', align: 'center', title: '审核状态', templet: d => {
if (d.rejectReason) {
return '审核驳回'
} else {
return Number(d.status) === 0 ? '待审核' : (Number(d.status) === 1 ? '已审核' : '审核中')
}
}
}
, {field: 'rejectReason', align: 'center', title: '驳回原因'}
, {

View File

@ -20,6 +20,10 @@
display: flex;
align-items: center;
}
.layui-layer-iframe .layui-layer-btn0 {
display: none;
}
</style>
</head>
@ -189,12 +193,14 @@
loading: true,
done: function (res) {
var tableView = this.elem.next();
layui.each(res.data, function (i, item) {
if (item.isApprove == '1') { // Condition to make the row non-editable
layui.each(res.data, function (i, item1) {
if (item1.isApprove == '1') { // Condition to make the row non-editable
}
var cols = tableView.find('tr[data-index=' + i + ']').find('td');
cols.each(function (index, item) {
//对field为subNameproName 的列不进行设置
if (index > 2) {
if (index > 2 && index != cols.length - 1) {
$(this).data('edit', 'false');
$(this).removeAttr('data-edit');
$(this).addClass('layui-disabled');
@ -203,12 +209,22 @@
//将td元素的style属性设置为pointer-events: none禁止点击
$(this).css('pointer-events', 'none');
delete item.dataset.edit
let fileDom = '';
// 只要有文件列表并且文件列表数量大于0添加文件信息
// if (item1.fileList && item1.fileList.length > 0) {
// // 根据文件列表的索引判断将哪个文件添加到相应的列
// fileDom = `<span>${item1.fileList[index - 3]}</span>`;
// }
// console.log('fileDomfileDomfileDomfileDom', fileDom)
// // 将fileDom添加到当前单元格
// $(this).append(fileDom);
}
});
}
});
var columsName = ['subName'];//需要合并的列名称 ['business_tenant_name','land','contract_begin','contract_end','history_arrears','period'];
var columsIndex = [1];//需要合并的列索引值 [2,3,5,6,14,15];
@ -225,31 +241,31 @@
text: '评价',
type: 'button'
});
let fileList = []
let uploadDom = []
// 将自定义元素插入到最后一个单元格
div.append(customElement);
customElement.on('click', function (event) {
event.stopPropagation(); // 阻止事件冒泡
event.stopPropagation()
event.preventDefault()
console.log('按钮被点击了');
let rowIndex = $(this).closest('tr').data('index')
const tableList = JSON.parse(msg)
console.log('rowIndex当前行的索引', rowIndex)
// 在这里添加按钮点击后的逻辑
// 组装dom
let formHtml = `<div class="dialog-title">${tableList[rowIndex].proName}</div>`
let innerHtml = ''
dialogLabelList.forEach((e, index) => {
fileList.push('')
uploadDom.push('#uploadBtn' + index)
innerHtml += `<div style="padding:6px 0;display: flex; align-items: center;">
<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]}">
<button type="button" data-index="${index}" class="uploadBtn" 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;">
+ 上传评分依据
</button>
<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>`
})
@ -273,41 +289,31 @@
var upload = layui.upload;
// 执行上传功能
var uploadInst = upload.render({
elem: '.uploadBtn', // 上传按钮
url: ctxPath + '/upload/file', // 文件上传接口(这里要根据实际接口替换)
accept: 'file', // 选择文件类型
multiple: false, // 支持多文件上传
auto: true, // 禁用自动上传,点击确定按钮后上传
bindAction: '#uploadConfirm', // 确定按钮触发上传
choose: function (obj) {
// 当选择文件时会触发这个方法
var files = obj.pushFile(); // 获取文件列表
console.log(files);
obj.pushFile([])
},
elem: uploadDom.join(','),
url: ctxPath + '/upload/file',
accept: 'file',
multiple: false,
done: function (res) {
// 上传完毕回调
console.log('文件上传成功');
console.log(res);
var dataIndex = $(this.elem).data('index');
console.log('当前按钮的 data-index:', dataIndex);
fileList[dataIndex] = res.obj
// 隐藏当前上传按钮
// $(this.elem).hide();
$(`#uploadBtn${dataIndex}`).hide()
// 插入新的 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);
$(`#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(); // 阻止默认行为
@ -315,7 +321,7 @@
// });
},
yes: function (index, layero) {
yes: function (index) {
// 点击"确定"按钮时的逻辑
let formData = {};
@ -334,12 +340,14 @@
})
const currentRows = tableList[rowIndex]
Object.assign(currentRows, formData)
currentRows.fileList = fileList
let dataForm = {
templateId: getUrlParam('templateId'),
evaluateId: getUrlParam('id'),
id: getUrlParam('detailsId'),
jsonData: JSON.stringify([currentRows]),
titleFiled: fields.join(',')
titleFiled: fields.join(','),
}
console.log('提交时的formDat参数', dataForm)
@ -363,12 +371,9 @@
// 这里可以执行你需要的操作
},
btn2: function (index, layero) {
// 点击"取消"按钮时的逻辑
console.log('取消按钮被点击了');
// 这里可以执行你需要的操作,通常是关闭弹框
layer.close(index); // 关闭弹框
return false; // 防止关闭弹框后执行默认的按钮行为
btn2: function (index) {
layer.close(index) // 关闭弹框
return false
}
})
});
@ -377,9 +382,13 @@
var dataIndex = $(this).data('index');
console.log('删除图标被点击data-index:', dataIndex);
fileList[dataIndex] = ''
// 执行删除操作
$(this).parent().remove()
// $(this).parent().remove()
$(`#upload-success_${dataIndex}`).hide(function () {
// 当隐藏完之后,移除插入的内容
$(`#upload-success_${dataIndex} .prepend-content`).remove();
})
$(`#uploadBtn${dataIndex}`).show()
});
tableLoading && layer.close(tableLoading);
@ -397,54 +406,54 @@
}
});
// 单元格普通编辑事件
table.on('edit(baseTable)', function (obj) {
var value = obj.value // 得到修改后的值
var data = obj.data // 得到所在行所有键值
var field = obj.field; // 得到字段
//判断修改的是当前行的第几个单元格
let index = headerRows[2].findIndex(item => item.field === field);
//获取其对应的二级标题 用于计算
let currentItem = headerRows[1][index];
let standardScore = Number(currentItem.standardScore);
//是否包含前缀0
if (value.indexOf('0') === 0 && value.length > 1) {
layer.msg('输入值不能以0开头');
//清空当前单元格
obj.update({
[field]: ''
});
return;
}
//判断是否数字
if (value < 0) {
layer.msg('输入值不能小于0');
//清空当前单元格
obj.update({
[field]: ''
});
return;
}
if (!isPositiveInteger(value)) {
layer.msg('请输入正整数');
//清空当前单元格
obj.update({
[field]: ''
});
return;
}
if (value > standardScore) {
layer.msg('输入值不能大于标准值');
//清空当前单元格
obj.update({
[field]: ''
});
return;
}
// // 更新数据中对应的字段
let update = {};
update[field] = value;
obj.update(update);
});
// table.on('edit(baseTable)', function (obj) {
// var value = obj.value // 得到修改后的值
// var data = obj.data // 得到所在行所有键值
// var field = obj.field; // 得到字段
// //判断修改的是当前行的第几个单元格
// let index = headerRows[2].findIndex(item => item.field === field);
// //获取其对应的二级标题 用于计算
// let currentItem = headerRows[1][index];
// let standardScore = Number(currentItem.standardScore);
// //是否包含前缀0
// if (value.indexOf('0') === 0 && value.length > 1) {
// layer.msg('输入值不能以0开头');
// //清空当前单元格
// obj.update({
// [field]: ''
// });
// return;
// }
// //判断是否数字
// if (value < 0) {
// layer.msg('输入值不能小于0');
// //清空当前单元格
// obj.update({
// [field]: ''
// });
// return;
// }
// if (!isPositiveInteger(value)) {
// layer.msg('请输入正整数');
// //清空当前单元格
// obj.update({
// [field]: ''
// });
// return;
// }
// if (value > standardScore) {
// layer.msg('输入值不能大于标准值');
// //清空当前单元格
// obj.update({
// [field]: ''
// });
// return;
// }
// // // 更新数据中对应的字段
// let update = {};
// update[field] = value;
// obj.update(update);
// });
}