hn_cloud_web/smz-web/js/work/smallSubManagement/lumpSumAddForm.js

195 lines
6.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var example = null;
var pers = null;
var form = null;
var lumpSumProId = localStorage.getItem("lumpSumProId");
var lumpSumType = localStorage.getItem("lumpSumType");
var selectedRows = []; // 用于记录需要回显的行标识
layui.use(['layer', 'laydate', 'form'], function () {
form = layui.form;
form.render();
form.verify();
pers = checkPermission();
$(document).ready(function() {
init(); // 初始化表格
});
$("#searchBt").click(function () {
example.ajax.reload();
});
$("#checkall").change(function () {
if ($(this).is(':checked')) {
$('input[name="checked"]').each(function () {
$(this).prop("checked", true);
});
} else {
$('input[name="checked"]').each(function () {
$(this).prop("checked", false);
});
}
});
form.on('submit(formDemo)', function (data) {
var id = [];
var gx = [];
var pilePosition = [];
var gxList = [];
var groupedData = {};
var oTable = $('#dt-table').dataTable();
var rowcollection = oTable.$(".checkall:checked", {"page": "all"});
rowcollection.each(function (index, elem) {
var checkbox_value = $(elem).val();
var strArr = checkbox_value.split(",").map(item => item.trim()); // 去除空格
id.push(strArr[0]);
gx.push(strArr[1]);
pilePosition.push(strArr[2]);
const gxId = strArr[0];
const gxName = strArr[1];
const gxZw = strArr[2];
// 构建 gxList 数组,每项是一个独立对象
gxList.push({
gxId: gxId,
gxName: gxName,
gxZw: gxZw
});
if (!groupedData[strArr[1]]) {
groupedData[strArr[1]] = [];
}
groupedData[strArr[1]].push(strArr[2]);
});
if (id.length == 0) {
layer.msg("请先勾选", {icon: 2, time: 2000})
return false;
}
// 构建字符串列表
var resultStrings = [];
for (var gxName in groupedData) {
var positions = groupedData[gxName].join(',');
var formattedStr = `${gxName}工序${positions}桩位`;
resultStrings.push(formattedStr);
}
// 将数据传给父页面
var index = parent.layer.getFrameIndex(window.name); // 获取当前iframe层索引
parent.layer.close(index); // 关闭当前弹窗
// 向父页面传递数据
window.parent.receiveDataFromChild(JSON.stringify(gxList),JSON.stringify(resultStrings));
});
});
function init() {
example = $('#dt-table').DataTable({
"searching": false, // 禁用搜索
"processing": true, // 加载数据时显示进度状态
"serverSide": false,
'scrollY': "640px",
'scroller': true,
'scrollCollapse': true,
'deferRender': true,
"language": {
"url": "../../../js/plugin/datatables/Chinese.lang"
},
"ajax": {
"url": smz_ht_url + "/commonSelect/getGxPilePositions",
"type": "get",
"dataSrc": function (res) {
if (res.res === 1) {
return res.obj; // 使用 obj 作为数据源
} else {
layer.msg(res.resMsg || '数据加载失败');
return [];
}
},
"data": function (d) {
d.proId = lumpSumProId;
d.type = lumpSumType;
d.gxName = $("#gxName").val();
d.pilePosition = $("#pilePosition").val();
},
"error": function (xhr, textStatus, errorThrown) {
var msg = xhr.responseText;
console.log(msg);
var response = JSON.parse(msg);
var code = response.code;
var message = response.message;
if (code == 400) {
layer.msg(message);
} else if (code == 401) {
localStorage.removeItem("token");
layer.msg("token过期请先登录", {shift: -1, time: 1000}, function () {
location.href = smz_ht_url + '/login.html';
});
} else if (code == 403) {
console.log("未授权:" + message);
layer.msg('未授权');
} else if (code == 500) {
console.log('系统错误:' + message);
}
}
},
"lengthMenu": [ [10, 20, 50], [10, 20, 50] ], // 设置每页显示数据量选项
"paging": false, // 禁用分页
"ordering": false, // 禁用排序
"drawCallback": function() {
// 这里可以根据需要进行额外的处理
},
"dom": "<'dt-toolbar'r>t<'dt-toolbar-footer'<'col-sm-4 col-xs-4 hidden-xs'i><'col-xs-8 col-sm-8' p v>><'dt-table-length'l>",
"columns": [
{
"width": "3%",
"data": null,
"bSortable": false,
render: function (data, type, full, meta) {
if (!full || typeof full.id === 'undefined') {
return '<input class="checkall" name="checked" type="checkbox"/>';
}
return '<input class="checkall" name="checked" value="' + full.id + ' , '+ full.gx +' , '+ full.pilePosition +'" type="checkbox"/>';
}
},
{
"data": "gx",
"width": "5%",
"defaultContent": "" // 如果字段缺失,默认显示空字符串
},
{
"data": "pilePosition",
"width": "6%",
"defaultContent": "" // 如果字段缺失,默认显示空字符串
}
],
"order": [], // 在栏目列上显示排序功能
"drawCallback": function () {
const table = $('#dt-table').DataTable();
table.rows().every(function () {
const data = this.data();
const rowValue = `${data.id},${data.gx},${data.pilePosition}`;
if (selectedRows.includes(rowValue)) {
const checkbox = $(this.node()).find('.checkall');
checkbox.prop('checked', true);
checkbox.prop('disabled', true); // 禁止用户取消
}
});
},
});
}
// 接收父页面传入的历史选中数据
function receiveDataFromParent(gxListStr) {
try {
const parsed = JSON.parse(gxListStr);
selectedRows = parsed.map(item => `${item.gxId},${item.gxName},${item.gxZw}`);
} catch (e) {
console.error("解析失败", e);
selectedRows = [];
}
console.log("接收到的数据:", selectedRows)
}