From 7de35ffbc2a0729d1f6db11b91d3db81493af403 Mon Sep 17 00:00:00 2001 From: lSun <15893999301@qq.com> Date: Fri, 21 Mar 2025 18:17:05 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9C=80=E6=B1=82=E8=AE=A1=E5=88=92=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E5=AF=BC=E5=85=A5=E8=A1=A8=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../child/choose_crane_type_list.js | 91 +++++++++++++++++- .../child/choose_tool_type_list.js | 86 ++++++++++++++++- js/aq_demand_plan/child/choose_type_list.js | 86 ++++++++++++++++- .../child/choose_crane_type_list.html | 11 ++- .../child/choose_tool_type_list.html | 12 ++- .../child/choose_type_list.html | 11 ++- template/吊车类型导入模板.xlsx | Bin 0 -> 9368 bytes template/安全工器具类型导入模板.xlsx | Bin 0 -> 9402 bytes template/机具类型导入模板.xlsx | Bin 0 -> 9385 bytes 9 files changed, 288 insertions(+), 9 deletions(-) create mode 100644 template/吊车类型导入模板.xlsx create mode 100644 template/安全工器具类型导入模板.xlsx create mode 100644 template/机具类型导入模板.xlsx diff --git a/js/aq_demand_plan/child/choose_crane_type_list.js b/js/aq_demand_plan/child/choose_crane_type_list.js index 2405bfc..fc22989 100644 --- a/js/aq_demand_plan/child/choose_crane_type_list.js +++ b/js/aq_demand_plan/child/choose_crane_type_list.js @@ -14,6 +14,10 @@ function setParams(obj) { element = layui.element; layer = layui.layer; util = layui.util; + + $("#saveZipButton").click(function(){ + importExcel(); + }); initTable(); }); } @@ -113,7 +117,7 @@ function initTable() { }, }, { - field: "ppName", + field: "type", width: '10%', title: "车辆类型", unresize: true, @@ -121,7 +125,7 @@ function initTable() { sort:true, }, { - field: "pName", + field: "name", width: '10%', title: "车辆名称", unresize: true, @@ -129,7 +133,7 @@ function initTable() { sort:true, }, { - field: "name", + field: "model", width: '10%', title: "规格", unresize: true, @@ -339,4 +343,83 @@ function closePage(type, params,pageSource) { window.parent.addFitDatas(params,pageSource); } parent.layer.close(index); // 再执行关闭 -} \ No newline at end of file +} + +// 下载模板文件 +function craneDownload() { + window.location.href = '../../../template/吊车类型导入模板.xlsx'; +} + +//导入excel文件 +function importExcel() { + var formData = new FormData($('form')[0]); + var name = $("#articleImageFile").val(); + if (name == null || name == "") { + return; + } + if (!(name.endsWith(".xls") || name.endsWith(".xlsx") || name.endsWith(".xlsm"))) { + layer.msg("请上传正确的Excel表格!"); + $("#articleImageFile").val(""); + return; + } + formData.append("file[]", $("#articleImageFile")[0].files[0]); + let loadingMsg = layer.msg('正在提交,请稍等...', { icon: 16, shade: 0.01, time: '0' }); + let url = dataUrlCar + "backstage/carType/importExcelTools"; + ajaxRequestByUploadFile(url, formData, function () { + $('.save').addClass("layui-btn-disabled").attr("disabled", true); + $('.cancel').addClass("layui-btn-disabled").attr("disabled", true); + }, function (result) { + $('.save').removeClass("layui-btn-disabled").attr("disabled", false); + $('.cancel').removeClass("layui-btn-disabled").attr("disabled", false); + if (result.code === 200) { + layer.close(loadingMsg); + // 对返回的数据进行处理 + updateTableWithImportedData(result.data); + } else { + layer.close(loadingMsg); + layer.msg(result.msg, { icon: 2 }); + } + }, function (xhr, status, error) { + layer.close(loadingMsg); // 关闭提示层 + layer.msg('服务异常,请稍后重试', { icon: 16, scrollbar: false, time: 2000 }); + $('.save').removeClass("layui-btn-disabled").attr("disabled", false); + $('.cancel').removeClass("layui-btn-disabled").attr("disabled", false); + errorFn(xhr, status, error) + }, null); + $("#articleImageFile").val(""); +} + +function updateTableWithImportedData(data) { + // 更新当前表格中显示的数据 + const tableData = table.cache.currentTableId || [] + let updated = false + + // 遍历当前表格数据,更新匹配的行 + for (let i = 0; i < tableData.length; i++) { + const rowData = tableData[i] + // 在导入数据中查找匹配项 + const importedItem = data.find((item) => item.id === rowData.id) + if (importedItem) { + // 更新表格数据 + rowData.needNum = importedItem.needNum + rowData.times = importedItem.times + rowData.remarks = importedItem.remarks + updated = true + + // 更新表格中对应单元格的显示 + const rowIndex = rowData.LAY_INDEX + // 更新需用量单元格 + $(`tr[data-index="${rowIndex}"] td[data-field="needNum"] .layui-table-cell`).text(importedItem.needNum || "") + // 更新退还日期单元格 + $(`tr[data-index="${rowIndex}"] td[data-field="times"] .layui-table-cell`).text(importedItem.times || "") + // 更新备注单元格 + $(`tr[data-index="${rowIndex}"] td[data-field="remarks"] .layui-table-cell`).text(importedItem.remarks || "") + } + } + + // 如果有更新,同步更新全局数据 + if (updated) { + quanju = [...tableData] + } + layer.msg("数据导入成功", { icon: 1 }) +} diff --git a/js/aq_demand_plan/child/choose_tool_type_list.js b/js/aq_demand_plan/child/choose_tool_type_list.js index 27953d2..bfd4923 100644 --- a/js/aq_demand_plan/child/choose_tool_type_list.js +++ b/js/aq_demand_plan/child/choose_tool_type_list.js @@ -14,6 +14,11 @@ function setParams(obj) { element = layui.element; layer = layui.layer; util = layui.util; + + $("#saveZipButton").click(function(){ + importExcel(); + }); + initTable(); }); } @@ -339,4 +344,83 @@ function closePage(type, params,pageSource) { window.parent.addFitDatas(params,pageSource); } parent.layer.close(index); // 再执行关闭 -} \ No newline at end of file +} + +// 下载模板文件 +function toolsDownload() { + window.location.href = '../../../template/机具类型导入模板.xlsx'; +} + +//导入excel文件 +function importExcel() { + var formData = new FormData($('form')[0]); + var name = $("#articleImageFile").val(); + if (name == null || name == "") { + return; + } + if (!(name.endsWith(".xls") || name.endsWith(".xlsx") || name.endsWith(".xlsm"))) { + layer.msg("请上传正确的Excel表格!"); + $("#articleImageFile").val(""); + return; + } + formData.append("file[]", $("#articleImageFile")[0].files[0]); + let loadingMsg = layer.msg('正在提交,请稍等...', { icon: 16, shade: 0.01, time: '0' }); + let url = dataUrlDevice + "backstage/planApplication/importExcelTools"; + ajaxRequestByUploadFile(url, formData, function () { + $('.save').addClass("layui-btn-disabled").attr("disabled", true); + $('.cancel').addClass("layui-btn-disabled").attr("disabled", true); + }, function (result) { + $('.save').removeClass("layui-btn-disabled").attr("disabled", false); + $('.cancel').removeClass("layui-btn-disabled").attr("disabled", false); + if (result.code === 200) { + layer.close(loadingMsg); + // 对返回的数据进行处理 + updateTableWithImportedData(result.data); + } else { + layer.close(loadingMsg); + layer.msg(result.msg, { icon: 2 }); + } + }, function (xhr, status, error) { + layer.close(loadingMsg); // 关闭提示层 + layer.msg('服务异常,请稍后重试', { icon: 16, scrollbar: false, time: 2000 }); + $('.save').removeClass("layui-btn-disabled").attr("disabled", false); + $('.cancel').removeClass("layui-btn-disabled").attr("disabled", false); + errorFn(xhr, status, error) + }, null); + $("#articleImageFile").val(""); +} + +function updateTableWithImportedData(data) { + // 更新当前表格中显示的数据 + const tableData = table.cache.currentTableId || [] + let updated = false + + // 遍历当前表格数据,更新匹配的行 + for (let i = 0; i < tableData.length; i++) { + const rowData = tableData[i] + // 在导入数据中查找匹配项 + const importedItem = data.find((item) => item.id === rowData.id) + if (importedItem) { + // 更新表格数据 + rowData.needNum = importedItem.needNum + rowData.times = importedItem.times + rowData.remarks = importedItem.remarks + updated = true + + // 更新表格中对应单元格的显示 + const rowIndex = rowData.LAY_INDEX + // 更新需用量单元格 + $(`tr[data-index="${rowIndex}"] td[data-field="needNum"] .layui-table-cell`).text(importedItem.needNum || "") + // 更新退还日期单元格 + $(`tr[data-index="${rowIndex}"] td[data-field="times"] .layui-table-cell`).text(importedItem.times || "") + // 更新备注单元格 + $(`tr[data-index="${rowIndex}"] td[data-field="remarks"] .layui-table-cell`).text(importedItem.remarks || "") + } + } + + // 如果有更新,同步更新全局数据 + if (updated) { + quanju = [...tableData] + } + layer.msg("数据导入成功", { icon: 1 }) +} diff --git a/js/aq_demand_plan/child/choose_type_list.js b/js/aq_demand_plan/child/choose_type_list.js index 72d393b..8362487 100644 --- a/js/aq_demand_plan/child/choose_type_list.js +++ b/js/aq_demand_plan/child/choose_type_list.js @@ -15,6 +15,11 @@ function setParams(obj) { layer = layui.layer; util = layui.util; laydate = layui.laydate; + + $("#saveZipButton").click(function(){ + importExcel(); + }); + initTable(); }); } @@ -362,4 +367,83 @@ function closePage(type, params,pageSource) { window.parent.addFitDatas(params,pageSource); } parent.layer.close(index); // 再执行关闭 -} \ No newline at end of file +} + +// 下载模板文件 +function typeDownload() { + window.location.href = '../../../template/安全工器具类型导入模板.xlsx'; +} + +//导入excel文件 +function importExcel() { + var formData = new FormData($('form')[0]); + var name = $("#articleImageFile").val(); + if (name == null || name == "") { + return; + } + if (!(name.endsWith(".xls") || name.endsWith(".xlsx") || name.endsWith(".xlsm"))) { + layer.msg("请上传正确的Excel表格!"); + $("#articleImageFile").val(""); + return; + } + formData.append("file[]", $("#articleImageFile")[0].files[0]); + let loadingMsg = layer.msg('正在提交,请稍等...', { icon: 16, shade: 0.01, time: '0' }); + let url = dataUrlDevice + "backstage/planApply/importExcelTools"; + ajaxRequestByUploadFile(url, formData, function () { + $('.save').addClass("layui-btn-disabled").attr("disabled", true); + $('.cancel').addClass("layui-btn-disabled").attr("disabled", true); + }, function (result) { + $('.save').removeClass("layui-btn-disabled").attr("disabled", false); + $('.cancel').removeClass("layui-btn-disabled").attr("disabled", false); + if (result.code === 200) { + layer.close(loadingMsg); + // 对返回的数据进行处理 + updateTableWithImportedData(result.data); + } else { + layer.close(loadingMsg); + layer.msg(result.msg, { icon: 2 }); + } + }, function (xhr, status, error) { + layer.close(loadingMsg); // 关闭提示层 + layer.msg('服务异常,请稍后重试', { icon: 16, scrollbar: false, time: 2000 }); + $('.save').removeClass("layui-btn-disabled").attr("disabled", false); + $('.cancel').removeClass("layui-btn-disabled").attr("disabled", false); + errorFn(xhr, status, error) + }, null); + $("#articleImageFile").val(""); +} + +function updateTableWithImportedData(data) { + // 更新当前表格中显示的数据 + const tableData = table.cache.currentTableId || [] + let updated = false + + // 遍历当前表格数据,更新匹配的行 + for (let i = 0; i < tableData.length; i++) { + const rowData = tableData[i] + // 在导入数据中查找匹配项 + const importedItem = data.find((item) => item.id === rowData.id) + if (importedItem) { + // 更新表格数据 + rowData.needNum = importedItem.needNum + rowData.times = importedItem.times + rowData.remarks = importedItem.remarks + updated = true + + // 更新表格中对应单元格的显示 + const rowIndex = rowData.LAY_INDEX + // 更新需用量单元格 + $(`tr[data-index="${rowIndex}"] td[data-field="needNum"] .layui-table-cell`).text(importedItem.needNum || "") + // 更新退还日期单元格 + $(`tr[data-index="${rowIndex}"] td[data-field="times"] .layui-table-cell`).text(importedItem.times || "") + // 更新备注单元格 + $(`tr[data-index="${rowIndex}"] td[data-field="remarks"] .layui-table-cell`).text(importedItem.remarks || "") + } + } + + // 如果有更新,同步更新全局数据 + if (updated) { + quanju = [...tableData] + } + layer.msg("数据导入成功", { icon: 1 }) +} diff --git a/page/aq_demand_plan/child/choose_crane_type_list.html b/page/aq_demand_plan/child/choose_crane_type_list.html index 5a88ab5..371e812 100644 --- a/page/aq_demand_plan/child/choose_crane_type_list.html +++ b/page/aq_demand_plan/child/choose_crane_type_list.html @@ -62,6 +62,15 @@

已选:0

+ +
+ + + + + +
@@ -83,4 +92,4 @@ - \ No newline at end of file + diff --git a/page/aq_demand_plan/child/choose_tool_type_list.html b/page/aq_demand_plan/child/choose_tool_type_list.html index 33b4a26..4f8d2b5 100644 --- a/page/aq_demand_plan/child/choose_tool_type_list.html +++ b/page/aq_demand_plan/child/choose_tool_type_list.html @@ -59,9 +59,19 @@ +

已选:0

+ +
+ + + + + +
@@ -83,4 +93,4 @@ - \ No newline at end of file + diff --git a/page/aq_demand_plan/child/choose_type_list.html b/page/aq_demand_plan/child/choose_type_list.html index a26a73c..5a968c8 100644 --- a/page/aq_demand_plan/child/choose_type_list.html +++ b/page/aq_demand_plan/child/choose_type_list.html @@ -62,6 +62,15 @@

已选:0

+ +
+ + + + + +
@@ -83,4 +92,4 @@ - \ No newline at end of file + diff --git a/template/吊车类型导入模板.xlsx b/template/吊车类型导入模板.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3fb6a0e759914226cfeaf0be9b3851b7a34e1e3e GIT binary patch literal 9368 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 s{o3I_>i2)H{9y(Ep7+go50UFTWB>pF literal 0 HcmV?d00001 diff --git a/template/机具类型导入模板.xlsx b/template/机具类型导入模板.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3023dc26b99b0c52c176dd4db00c514ff2c2e687 GIT binary patch literal 9385 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 literal 0 HcmV?d00001