From 185ecf4430a6bd4c2564fcd7b56eb087b4f9acab Mon Sep 17 00:00:00 2001 From: hayu <1604366271@qq.com> Date: Mon, 29 Dec 2025 15:24:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=89=E5=85=A8=E5=B7=A5=E5=99=A8=E5=85=B7?= =?UTF-8?q?=E5=8F=B0=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/init.json | 6 + js/aq_inventory/safety_tools_ledger.js | 229 +++++++++++++++++++++ page/aq_inventory/safety_tools_ledger.html | 74 +++++++ 3 files changed, 309 insertions(+) create mode 100644 js/aq_inventory/safety_tools_ledger.js create mode 100644 page/aq_inventory/safety_tools_ledger.html diff --git a/api/init.json b/api/init.json index 04ca8dc..78a032f 100644 --- a/api/init.json +++ b/api/init.json @@ -73,6 +73,12 @@ "icon": "fa fa-th", "target": "_self", "child": [ + { + "title": "安全工器具台账", + "href": "page/aq_inventory/safety_tools_ledger.html", + "icon": "fa fa-th-large", + "target": "_self" + }, { "title": "工程领退台账", "href": "page/aq_inventory/project_material_statistics.html", diff --git a/js/aq_inventory/safety_tools_ledger.js b/js/aq_inventory/safety_tools_ledger.js new file mode 100644 index 0000000..72d0c45 --- /dev/null +++ b/js/aq_inventory/safety_tools_ledger.js @@ -0,0 +1,229 @@ +let form, table; +let tableIns; +let pageNum = 1; // 定义分页 +layui.use(["form", "table"], function () { + form = layui.form; + table = layui.table; + initTable(); + getStatistics(); +}); + + +// 数据概览 +function getStatistics() { + let encryptedData = {}; + let url = dataUrl + 'backstage/projectMaterial/getStatistics?encryptedData=' + encodeURIComponent(JSON.stringify(encryptedData)); + ajaxRequest(url, "GET", null, true, function () { + }, function (result) { + if (result.code === 200) { + setNum(result.data); + } + }, function (xhr, status, error) { + errorFn(xhr, status, error) + }, null); + + // 数据概览赋值 + function setNum(obj) { + $('#num').html(parseInt(obj.projectCount || 0)); + $('#num2').html(parseInt(obj.totalPurchaseCount || 0)); + $('#num3').html(parseInt(obj.totalOutCount || 0)); + $('#num4').html(parseInt(obj.totalShortageCount || 0)); + } +} + +// 查询/重置 +function queryTable(type) { + if (type === 1) { + let keyWord = $('#keyWord').val(); + let flag = checkValue(keyWord); + if (flag) { + $('#keyWord').val(''); + return layer.msg('关键字查询包含特殊字符,请重新输入', { icon: 2 }); + } + let useUnit = $('#useUnit').val(); + let flag2 = checkValue(useUnit); + if (flag2) { + $('#useUnit').val(''); + return layer.msg('领用单位查询包含特殊字符,请重新输入', { icon: 2 }); + } + reloadTable(1); + } else if (type === 2) { + $('#keyWord').val(''); + $('#useUnit').val(''); + $('#isShortage').val(''); + layui.form.render(); + reloadTable(1); + } +} + +// 刷新页面数据 +function reloadData() { + reloadTable(1); + getStatistics(); +} + +// 重载表格 +function reloadTable(pageNum) { + table.reload("currentTableId", { + where: { + encryptedData: JSON.stringify({ + 'keyWord': $('#keyWord').val(), + 'isShortage': $('#isShortage').val() + }), + }, + }, + ); +} + +// 初始化表格 +function initTable() { + tableIns = table.render({ + elem: "#currentTableId", + id: 'currentTableId', + headers: { + authorization: sessionStorage.getItem("gz-token"), + }, + // height: "full-300", + url: dataUrl + "backstage/inventoryCount/getSafetyToolsLedger", + where: { + encryptedData: JSON.stringify({ + 'keyWord': $('#keyWord').val() + }), + }, + request: { + pageName: 'pageNum', + limitName: 'pageSize' + }, + parseData: function (res) { // res 即为原始返回的数据 + if(res.code === 401){ + closeWindowOpen(); + } + return { + "code": 0, // 解析接口状态 + "msg": '获取成功', // 解析提示文本 + "count": res.total, // 解析数据长度 + "data": res.list // 解析数据列表 + }; + }, + cols: [ + [ + { + width: '5%', + title: "序号", + align: "center", + templet: function (d) { + return d.LAY_NUM; + }, + }, + { + field: "type", + width: '15%', + title: "物资类型", + unresize: true, + align: "center", + }, + { + field: "name", + width: '15%', + title: "物资名称", + unresize: true, + align: "center", + }, + { + field: "model", + width: '18%', + title: "规格型号", + unresize: true, + align: "center", + }, + { + field: "storageNum", + width: '16%', + title: "库存量", + unresize: true, + align: "center", + sort: true, + }, + { + field: "totalCk", + width: '16%', + title: "出库总量", + unresize: true, + align: "center", + sort: true, + templet: function (d) { + return d.totalCk || 0; + }, + }, + { + field: "totalBack", + width: '15%', + title: "退还数量", + unresize: true, + align: "center", + sort: true, + templet: function (d) { + return d.totalBack || 0; + }, + }, + ], + ], + limits: [10, 20, 30, 50, 100], + limit: 50, + page: false, + done: function (res, curr, count) { + pageNum = tableIns.config.page.curr; + table.resize("currentTableId"); + }, + }); +} + +// 查看详情 +function viewDetail(id) { + layer.msg('查看工程物料详情功能待开发', { icon: 1 }); + // 这里可以添加查看详情的逻辑,比如打开新窗口或弹窗显示详细信息 + // openIframe('工程物料详情', 'page/aq_inventory/project_material_detail.html?id=' + id); +} + +// 导出Excel +function exportExcel() { + let keyWord = $('#keyWord').val(); + let isShortage = $('#isShortage').val(); + + let params = { + 'keyWord': keyWord, + 'isShortage': isShortage + }; + + let encryptedData = JSON.stringify(params); + let url = dataUrl + 'backstage/inventoryCount/exportLedgerListByProjectAndModel?encryptedData=' + encodeURIComponent(encryptedData); + + // 创建隐藏的下载链接 + let link = document.createElement('a'); + link.href = url; + link.download = '工程物料统计_' + new Date().getTime() + '.xlsx'; + link.style.display = 'none'; + + // 添加授权头并下载 + fetch(url, { + method: 'GET', + headers: { + 'authorization': sessionStorage.getItem("gz-token") + } + }).then(response => { + if (response.ok) { + return response.blob(); + } + throw new Error('导出失败'); + }).then(blob => { + let downloadUrl = window.URL.createObjectURL(blob); + link.href = downloadUrl; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + window.URL.revokeObjectURL(downloadUrl); + layer.msg('导出成功', { icon: 1 }); + }).catch(error => { + layer.msg('导出失败:' + error.message, { icon: 2 }); + }); +} \ No newline at end of file diff --git a/page/aq_inventory/safety_tools_ledger.html b/page/aq_inventory/safety_tools_ledger.html new file mode 100644 index 0000000..ea564f1 --- /dev/null +++ b/page/aq_inventory/safety_tools_ledger.html @@ -0,0 +1,74 @@ + + + + + + 工程物料统计 + + + + + + + + + + + +
+
+
+ 搜索信息 +
+
+
+
+
+ +
+
+
+ + + +
+
+ +
+
+
+
+
+
+
+
+ + + + + + + + \ No newline at end of file