diff --git a/api/init.json b/api/init.json index 0cbdcae..1dec006 100644 --- a/api/init.json +++ b/api/init.json @@ -79,6 +79,12 @@ "icon": "fa fa-tachometer", "target": "_self" }, + { + "title": "配件领用", + "href": "page/accessory/accessory_apply_list.html", + "icon": "fa fa-tachometer", + "target": "_self" + }, { "title": "领料出库", "href": "page/accessory/accessory_out_bound_list.html", diff --git a/js/accessory/accessory_apply_list.js b/js/accessory/accessory_apply_list.js index afbb570..52feb59 100644 --- a/js/accessory/accessory_apply_list.js +++ b/js/accessory/accessory_apply_list.js @@ -148,7 +148,7 @@ function initTable() { html += "编辑"; }else{ // html += "详情"; - html += "详情"; + html += "详情"; } return html; }, @@ -165,11 +165,16 @@ function initTable() { }); } -// 详情 配件报废 +// 详情 配件申请新增 function addAccessoryApply(obj) { openIframeByParamObj("accessory_apply_add", "新增", "../accessory/child/accessory_apply_add.html", "92%", "95%", obj); } -function accessoryApplyDetail(obj) { - openIframeByParamObj("accessory_apply_detail", "详情", "../accessory/child/accessory_apply_detail.html", "92%", "95%", obj); +function accessoryApplyDetail(obj,type) { + if (type===1){ + openIframeByParamObj("accessory_apply_edit", "编辑", "../accessory/child/accessory_apply_edit.html", "92%", "95%", obj); + } else { + openIframeByParamObj("accessory_apply_detail", "详情", "../accessory/child/accessory_apply_detail.html", "92%", "95%", obj); + } + } \ No newline at end of file diff --git a/js/accessory/child/accessory_apply_add.js b/js/accessory/child/accessory_apply_add.js index 5a6db72..d3e5359 100644 --- a/js/accessory/child/accessory_apply_add.js +++ b/js/accessory/child/accessory_apply_add.js @@ -5,6 +5,10 @@ let jjDataArr = []; // 配件数据 let proList = []; // 工程下拉选 let jjDetailArr = []; // 入库配件类型数据 let delIdArr = []; +let proNameAll; +let proIdAll; +let deviceIdAll; +let devCodeAll; function setParams(obj) { objParam = JSON.parse(obj); @@ -26,10 +30,31 @@ function setParams(obj) { form.on('submit(formData)', function (data) { submitApply(data); }); + // 监听单选按钮变化 + form.on("radio(partType)", (data) => { + console.log(data.value); + toggleFields(data.value) + }) + // 页面加载时调用一次,确保初始状态正确 + var partType = $("input[name='partType']:checked").val() + toggleFields(partType) + form.render(); }); } +// 切换字段显示状态的函数 +function toggleFields(partType) { + console.log("partType:",partType) + if (partType === "tool") { + // 如果选择了工器具,则隐藏内部编号和使用单位 + document.getElementById("internalAndDepartmentFields").style.display = "none" + } else if (partType === "equipment") { + // 如果选择了设备,则显示内部编号和使用单位 + document.getElementById("internalAndDepartmentFields").style.display = "" + } +} + // 监听按钮点击事件 document.getElementById('internalCode').addEventListener('click', function () { // 打开弹框并渲染表格 @@ -99,16 +124,30 @@ document.getElementById('internalCode').addEventListener('click', function () { jsonResponse = JSON.parse(xhr.responseText); // 处理响应数据 if (jsonResponse.data.proName == null){ + proIdAll=null; + proNameAll=null; + devCodeAll=null; + deviceIdAll=null; + document.getElementById('internalCode').value = ''; + document.getElementById('department').value = ''; + console.log(proIdAll,deviceIdAll) layer.msg('未查询到工程信息', {icon: 7}); + } else { + console.log(jsonResponse.data); + document.getElementById('internalCode').value = data[0].deviceCode; + document.getElementById('department').value = jsonResponse.data.proName; + proIdAll=jsonResponse.data.proId; + proNameAll=jsonResponse.data.proName; + devCodeAll=data[0].deviceCode; + deviceIdAll=data[0].id; + console.log(proIdAll,deviceIdAll) + layer.close(index); // 关闭弹窗 } } else if (xhr.readyState == 4) { console.error("Error fetching data"); } }; xhr.send(); - document.getElementById('internalCode').value = data[0].deviceCode; - document.getElementById('department').value = jsonResponse.data.proName; - layer.close(index); // 关闭弹窗 } else { layer.msg('请选择一行数据'); } @@ -138,22 +177,50 @@ function setNumColor(value, type) { // 1.需要量 2.已发货量 3.差缺量 // 提交 function submitApply(data) { let list = getBaseTableData(); + console.log(list) // 校验配件入库数量 if (list.length === 0) { - return layer.msg('未添加机具数据', {icon: 7}); + return layer.msg('未添加配件数据', {icon: 7}); } for (let i = 0; i < list.length; i++) { - if (list[i].needNum === 0) { - return layer.msg('机具明细,第' + (i + 1) + '行,未填写需用量', {icon: 7}); + if (list[i].applyNum === 0) { + return layer.msg('配件明细,第' + (i + 1) + '行,未填写本次申请量', {icon: 7}); } } - data.field.jsonData = JSON.stringify(list); + var type; + var deviceId; + var devCode; + var proId; + var proName; + var userName; + var partType = $("input[name='partType']:checked").val() + if (partType === "equipment"){ + if (proIdAll===null || deviceIdAll===null){ + return layer.msg('请选择内部编号', {icon: 7}); + } + type = "0"; + } else { + type = "1"; + } + deviceId=deviceIdAll; + devCode=data.field.internalCode; + proId=proIdAll; + proName=data.field.department; + userName=data.field.projectPart; + data.field.type=type; + data.field.deviceId=deviceId; + data.field.devCode=devCode; + data.field.proId=proId; + data.field.proName=proName; + data.field.userName=userName; + data.field.detailsList = list; let loadingMsg = layer.msg('正在提交保存,请稍等...', {icon: 16, shade: 0.01, time: '0'}); let url = dataUrl + 'base/partApply/addPartApply'; let params = { encryptedData: JSON.stringify(data.field) }; - ajaxRequest(url, 'POST', params, true, function () { + console.log("params:",params); + ajaxRequest(url, 'POST', params, false, function () { $('.save').addClass("layui-btn-disabled").attr("disabled", true); $('.cancel').addClass("layui-btn-disabled").attr("disabled", true); }, function (result) { @@ -179,14 +246,14 @@ function submitApply(data) { function getBaseTableData() { let tableData = []; $('#baseTable tbody tr').each(function (index, item) { - let needNum = $(this).find('td').eq(6).find('input[name="needNum"]').val(); + let needNum = $(this).find('td').eq(7).find('input[name="needNum"]').val(); tableData.push({ - moduleId: $(this).attr('id'), - type: $(this).find('td').eq(2).html(), - typeName: $(this).find('td').eq(3).html(), - module: $(this).find('td').eq(4).html(), - unit: $(this).find('td').eq(5).html(), - needNum: needNum ? needNum : 0, + partId: $(this).attr('id'), + partName: $(this).find('td').eq(2).html(), + partModel: $(this).find('td').eq(3).html(), + partUnit:$(this).find('td').eq(5).html(), + partType:$(this).find('td').eq(6).html(), + applyNum: needNum ? needNum : 0, }) }) return tableData; @@ -201,13 +268,15 @@ function chooseFitType() { // 查询 function search() { - let keyWord = $('#Name').val(); + let keyWord = $('#name').val(); if (keyWord) { let dataList = jjDataArr.filter(item => { - return item.Name.indexOf(keyWord) > -1; + return item.name.indexOf(keyWord) > -1; }) setTableData(dataList); - } + } else { + setTableData(jjDataArr); + } } // 重置 @@ -260,18 +329,16 @@ function setTableData(results) { html += ''; html += "" + (i + 1) + ""; - // html += "" + l.ppName + ""; - // html += "" + l.pName + ""; html += "" + l.name + ""; html += "" + l.model + ""; html += "" + l.num + ""; + html += "" + l.unit + ""; + html += "" + l.type + ""; html += "" + setFormInput(l.needNum, 1) + ""; - // html += "" + setFormInput(l.times == null ? 0 : l.times, 2) + ""; - // html += "" + setFormInput(l.remarks, 3) + ""; html += ""; } } else { - html += "没有相关数据"; + html += "没有相关数据"; } $("#baseTable tbody").empty().append(html); layui.form.render(); @@ -279,13 +346,9 @@ function setTableData(results) { function setFormInput(value, type) { let html = '
'; - if (type === 1) { // 需用量 - html += ''; - } /*else if (type === 2) { // 需用天数 - html += ''; - } else if (type === 3) { // 备注 - html += ''; - }*/ + if (type === 1) { // 本次申请量 + html += ''; + } html += '
'; return html; diff --git a/js/accessory/child/accessory_apply_detail.js b/js/accessory/child/accessory_apply_detail.js index 6e89ed0..6bda3c1 100644 --- a/js/accessory/child/accessory_apply_detail.js +++ b/js/accessory/child/accessory_apply_detail.js @@ -3,10 +3,16 @@ let form, laydate, layer, upload, table, util; let pageNum = 1, tableIns; // 定义分页 let jjDataArr = []; // 配件数据 let jjDetailArr = []; // 入库配件类型数据 +let detailIdArr = []; let delIdArr = []; +let proNameAll; +let proIdAll; +let deviceIdAll; +let devCodeAll; function setParams(obj) { objParam = JSON.parse(obj); + console.log(objParam); layui.use(['form', 'layer', 'laydate', 'upload', 'table'], function () { form = layui.form; layer = layui.layer; @@ -17,11 +23,93 @@ function setParams(obj) { laydate.render({ elem: '#needTime' }); - initTable(); form.verify(); + form.on('submit(formData)', function (data) { + submitApply(data); + }); + // 监听单选按钮变化 + form.on("radio(partType)", (data) => { + console.log(data.value); + toggleFields(data.value) + }) form.render(); + getPlanDetails(); + // initTable(); }); } + +// 切换字段显示状态的函数 +function toggleFields(partType) { + console.log("partType:",partType) + if (partType === "tool") { + // 如果选择了工器具,则隐藏内部编号和使用单位 + document.getElementById("internalAndDepartmentFields").style.display = "none" + } else if (partType === "equipment") { + // 如果选择了设备,则显示内部编号和使用单位 + document.getElementById("internalAndDepartmentFields").style.display = "" + } +} + +// 计划申请详情 +function getPlanDetails() { + let params = { + 'id': objParam.id + }; + let url = dataUrl + 'base/partApply/getPartApplyDetails'; + ajaxRequest(url, "POST", params, true, function () { + }, function (result) { + console.error(result); + if (result.code === 200) { + setFormData(result.data); + } else { + } + }, function (xhr, status, error) { + errorFn(xhr, status, error) + }, null); + + function setFormData(obj) { + obj.projectPart=obj.userName; + var radios = document.getElementsByName('partType'); + if (obj.type==="1"){ + //工器具 + radios[0].checked = true; + toggleFields("tool"); + } else { + //设备 + radios[1].checked = true; + toggleFields("equipment"); + obj.internalCode=obj.devCode; + deviceIdAll=obj.deviceId; + obj.department=obj.proName; + proIdAll=obj.proId; + } + console.log("obj:",obj) + form.val('formInfo', obj); + layui.form.render(); + getPlanDetailsList(obj.detailsList); + } +} + +// 安全工器具明细 +function getPlanDetailsList(obj) { + $.each(obj, function (index, item) { + let obj = Object.assign({}, item); + obj.partId = item.partId; + obj.name = item.partName; + obj.model = item.partModel; + obj.unit = item.partUnit; + obj.type = item.partType; + obj.needNum=item.applyNum; + obj.num=item.num; + jjDataArr.push(obj); + detailIdArr.push(item.id); + }) + $('#no_data_title').css({ 'display': 'none' }); + $('#search-info').removeAttr('style'); + $('#table-box').removeAttr('style'); + setTableData(jjDataArr); +} + // 初始化表格 function initTable() { tableIns = table.render({ @@ -167,22 +255,51 @@ function setNumColor(value, type) { // 1.需要量 2.已发货量 3.差缺量 // 提交 function submitApply(data) { let list = getBaseTableData(); + console.log(list) // 校验配件入库数量 if (list.length === 0) { - return layer.msg('未添加机具数据', {icon: 7}); + return layer.msg('未添加配件数据', {icon: 7}); } for (let i = 0; i < list.length; i++) { - if (list[i].needNum === 0) { - return layer.msg('机具明细,第' + (i + 1) + '行,未填写需用量', {icon: 7}); + if (list[i].applyNum === 0) { + return layer.msg('配件明细,第' + (i + 1) + '行,未填写本次申请量', {icon: 7}); } } - data.field.jsonData = JSON.stringify(list); + var type; + var deviceId; + var devCode; + var proId; + var proName; + var userName; + var partType = $("input[name='partType']:checked").val() + if (partType === "equipment"){ + if (proIdAll===null || deviceIdAll===null){ + return layer.msg('请选择内部编号', {icon: 7}); + } + type = "0"; + } else { + type = "1"; + } + deviceId=deviceIdAll; + devCode=data.field.internalCode; + proId=proIdAll; + proName=data.field.department; + userName=data.field.projectPart; + data.field.type=type; + data.field.deviceId=deviceId; + data.field.devCode=devCode; + data.field.proId=proId; + data.field.proName=proName; + data.field.userName=userName; + data.field.detailsList = list; + data.field.id=objParam.id; let loadingMsg = layer.msg('正在提交保存,请稍等...', {icon: 16, shade: 0.01, time: '0'}); - let url = dataUrl + 'base/partApply/addPartApply'; + let url = dataUrl + 'base/partApply/updatePartApply'; let params = { encryptedData: JSON.stringify(data.field) }; - ajaxRequest(url, 'POST', params, true, function () { + console.log("params:",params); + ajaxRequest(url, 'POST', params, false, function () { $('.save').addClass("layui-btn-disabled").attr("disabled", true); $('.cancel').addClass("layui-btn-disabled").attr("disabled", true); }, function (result) { @@ -208,14 +325,14 @@ function submitApply(data) { function getBaseTableData() { let tableData = []; $('#baseTable tbody tr').each(function (index, item) { - let needNum = $(this).find('td').eq(6).find('input[name="needNum"]').val(); + let needNum = $(this).find('td').eq(7).find('input[name="needNum"]').val(); tableData.push({ - moduleId: $(this).attr('id'), - type: $(this).find('td').eq(2).html(), - typeName: $(this).find('td').eq(3).html(), - module: $(this).find('td').eq(4).html(), - unit: $(this).find('td').eq(5).html(), - needNum: needNum ? needNum : 0, + partId: $(this).attr('id'), + partName: $(this).find('td').eq(2).html(), + partModel: $(this).find('td').eq(3).html(), + partUnit:$(this).find('td').eq(5).html(), + partType:$(this).find('td').eq(6).html(), + applyNum: needNum ? needNum : 0, }) }) return tableData; @@ -230,12 +347,14 @@ function chooseFitType() { // 查询 function search() { - let keyWord = $('#Name').val(); - if (keyWord) { + let keyWord = $('#name').val(); + if (keyWord) { let dataList = jjDataArr.filter(item => { - return item.Name.indexOf(keyWord) > -1; + return item.name.indexOf(keyWord) > -1; }) setTableData(dataList); + } else { + setTableData(jjDataArr); } } @@ -289,18 +408,16 @@ function setTableData(results) { html += ''; html += "" + (i + 1) + ""; - // html += "" + l.ppName + ""; - // html += "" + l.pName + ""; html += "" + l.name + ""; html += "" + l.model + ""; html += "" + l.num + ""; + html += "" + l.unit + ""; + html += "" + l.type + ""; html += "" + setFormInput(l.needNum, 1) + ""; - // html += "" + setFormInput(l.times == null ? 0 : l.times, 2) + ""; - // html += "" + setFormInput(l.remarks, 3) + ""; html += ""; } } else { - html += "没有相关数据"; + html += "没有相关数据"; } $("#baseTable tbody").empty().append(html); layui.form.render(); @@ -308,13 +425,9 @@ function setTableData(results) { function setFormInput(value, type) { let html = '
'; - if (type === 1) { // 需用量 - html += ''; - } /*else if (type === 2) { // 需用天数 - html += ''; - } else if (type === 3) { // 备注 - html += ''; - }*/ + if (type === 1) { // 本次申请量 + html += ''; + } html += '
'; return html; diff --git a/js/accessory/child/accessory_apply_edit.js b/js/accessory/child/accessory_apply_edit.js new file mode 100644 index 0000000..5623b21 --- /dev/null +++ b/js/accessory/child/accessory_apply_edit.js @@ -0,0 +1,541 @@ +let idParam, objParam; +let form, laydate, layer, upload, table, util; +let pageNum = 1, tableIns; // 定义分页 +let jjDataArr = []; // 配件数据 +let jjDetailArr = []; // 入库配件类型数据 +let detailIdArr = []; +let delIdArr = []; +let proNameAll; +let proIdAll; +let deviceIdAll; +let devCodeAll; + +function setParams(obj) { + objParam = JSON.parse(obj); + console.log(objParam); + layui.use(['form', 'layer', 'laydate', 'upload', 'table'], function () { + form = layui.form; + layer = layui.layer; + laydate = layui.laydate; + upload = layui.upload; + table = layui.table; + util = layui.util; + laydate.render({ + elem: '#needTime' + }); + form.verify(); + form.on('submit(formData)', function (data) { + submitApply(data); + }); + // 监听单选按钮变化 + form.on("radio(partType)", (data) => { + console.log(data.value); + toggleFields(data.value) + }) + form.render(); + getPlanDetails(); + // initTable(); + }); +} + +// 切换字段显示状态的函数 +function toggleFields(partType) { + console.log("partType:",partType) + if (partType === "tool") { + // 如果选择了工器具,则隐藏内部编号和使用单位 + document.getElementById("internalAndDepartmentFields").style.display = "none" + } else if (partType === "equipment") { + // 如果选择了设备,则显示内部编号和使用单位 + document.getElementById("internalAndDepartmentFields").style.display = "" + } +} + +// 计划申请详情 +function getPlanDetails() { + let params = { + 'id': objParam.id + }; + let url = dataUrl + 'base/partApply/getPartApplyDetails'; + ajaxRequest(url, "POST", params, true, function () { + }, function (result) { + console.error(result); + if (result.code === 200) { + setFormData(result.data); + } else { + } + }, function (xhr, status, error) { + errorFn(xhr, status, error) + }, null); + + function setFormData(obj) { + obj.projectPart=obj.userName; + var radios = document.getElementsByName('partType'); + if (obj.type==="1"){ + //工器具 + radios[0].checked = true; + toggleFields("tool"); + } else { + //设备 + radios[1].checked = true; + toggleFields("equipment"); + obj.internalCode=obj.devCode; + deviceIdAll=obj.deviceId; + obj.department=obj.proName; + proIdAll=obj.proId; + } + console.log("obj:",obj) + form.val('formInfo', obj); + layui.form.render(); + getPlanDetailsList(obj.detailsList); + } +} + +// 安全工器具明细 +function getPlanDetailsList(obj) { + $.each(obj, function (index, item) { + let obj = Object.assign({}, item); + obj.partId = item.partId; + obj.name = item.partName; + obj.model = item.partModel; + obj.unit = item.partUnit; + obj.type = item.partType; + obj.needNum=item.applyNum; + obj.num=item.num; + jjDataArr.push(obj); + detailIdArr.push(item.id); + }) + $('#no_data_title').css({ 'display': 'none' }); + $('#search-info').removeAttr('style'); + $('#table-box').removeAttr('style'); + setTableData(jjDataArr); +} + +// 监听按钮点击事件 +document.getElementById('internalCode').addEventListener('click', function () { + // 打开弹框并渲染表格 + layer.open({ + type: 1, // 类型:1表示页面层 + area: ['800px', '525px'], // 宽高 + content: ` +
+
+
+ +
+
+ `, + success: function (layero, index) { + // 在弹框成功打开后初始化表格 + table.render({ + elem: '#dataTable', // 指定原始表格元素选择器(推荐id选择器) + headers: { + authorization: sessionStorage.getItem("gz-token"), + }, + height: 400, + url: dataUrl + 'base/partApply/getDevList',// 数据接口,这里假设你有一个数据接口返回JSON数据 + page: true, // 开启分页 + 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: [[ // 表头 + {type: 'radio'}, // 单选框列 + { + width: '20%', + title: "序号", + align: "center", + templet: function (d) { + return d.LAY_NUM; + }, + }, + {field: 'deviceCode', title: '内部编号', width: '40%'}, + {field: 'module', title: '机型', width: '40%'} + ]] + }); + // 确定按钮点击事件 + document.getElementById('confirmBtn').onclick = function () { + var checkStatus = table.checkStatus('dataTable'); // 获取选中行的状态 + var data = checkStatus.data; // 获取选中的行数据 + if (data.length > 0) { + // 发起查询接口请求 + var xhr = new XMLHttpRequest(); + var jsonResponse; + xhr.open("GET", dataUrl + 'base/partApply/getProInfo?id=' + encodeURIComponent(data[0].id), true); + xhr.setRequestHeader("authorization", sessionStorage.getItem("gz-token")); + console.log(xhr); // 或者进行其他处理逻辑 + xhr.onreadystatechange = function () { + if (xhr.readyState === 4 && xhr.status === 200) { // 请求已完成 + jsonResponse = JSON.parse(xhr.responseText); + // 处理响应数据 + if (jsonResponse.data.proName == null){ + proIdAll=null; + proNameAll=null; + devCodeAll=null; + deviceIdAll=null; + document.getElementById('internalCode').value = ''; + document.getElementById('department').value = ''; + console.log(proIdAll,deviceIdAll) + layer.msg('未查询到工程信息', {icon: 7}); + } else { + console.log(jsonResponse.data); + document.getElementById('internalCode').value = data[0].deviceCode; + document.getElementById('department').value = jsonResponse.data.proName; + proIdAll=jsonResponse.data.proId; + proNameAll=jsonResponse.data.proName; + devCodeAll=data[0].deviceCode; + deviceIdAll=data[0].id; + console.log(proIdAll,deviceIdAll) + layer.close(index); // 关闭弹窗 + } + } else if (xhr.readyState == 4) { + console.error("Error fetching data"); + } + }; + xhr.send(); + } else { + layer.msg('请选择一行数据'); + } + }; + } + }); +}); + + +function saveData2() { + $('#formSubmit').trigger('click') +} + +function setNumColor(value, type) { // 1.需要量 2.已发货量 3.差缺量 + let color = '#66b1ff'; + if (type === 1) { + color = '#66b1ff'; + } else if (type === 2) { + color = '#19be6b'; + } else if (type === 3) { + color = '#ff9900'; + } + return '' + value + ""; +} + + +// 提交 +function submitApply(data) { + let list = getBaseTableData(); + console.log(list) + // 校验配件入库数量 + if (list.length === 0) { + return layer.msg('未添加配件数据', {icon: 7}); + } + for (let i = 0; i < list.length; i++) { + if (list[i].applyNum === 0) { + return layer.msg('配件明细,第' + (i + 1) + '行,未填写本次申请量', {icon: 7}); + } + } + var type; + var deviceId; + var devCode; + var proId; + var proName; + var userName; + var partType = $("input[name='partType']:checked").val() + if (partType === "equipment"){ + if (proIdAll===null || deviceIdAll===null){ + return layer.msg('请选择内部编号', {icon: 7}); + } + type = "0"; + } else { + type = "1"; + } + deviceId=deviceIdAll; + devCode=data.field.internalCode; + proId=proIdAll; + proName=data.field.department; + userName=data.field.projectPart; + data.field.type=type; + data.field.deviceId=deviceId; + data.field.devCode=devCode; + data.field.proId=proId; + data.field.proName=proName; + data.field.userName=userName; + data.field.detailsList = list; + data.field.id=objParam.id; + let loadingMsg = layer.msg('正在提交保存,请稍等...', {icon: 16, shade: 0.01, time: '0'}); + let url = dataUrl + 'base/partApply/updatePartApply'; + let params = { + encryptedData: JSON.stringify(data.field) + }; + console.log("params:",params); + ajaxRequest(url, 'POST', params, false, function () { + $('.save').addClass("layui-btn-disabled").attr("disabled", true); + $('.cancel').addClass("layui-btn-disabled").attr("disabled", true); + }, function (result) { + layer.close(loadingMsg); + $('.save').removeClass("layui-btn-disabled").attr("disabled", false); + $('.cancel').removeClass("layui-btn-disabled").attr("disabled", false); + if (result.code === 200) { + parent.layer.msg(result.msg, {icon: 1}); + closePage(1); + } else { + 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); +} + +// 获取机具明细数据 +function getBaseTableData() { + let tableData = []; + $('#baseTable tbody tr').each(function (index, item) { + let needNum = $(this).find('td').eq(7).find('input[name="needNum"]').val(); + tableData.push({ + partId: $(this).attr('id'), + partName: $(this).find('td').eq(2).html(), + partModel: $(this).find('td').eq(3).html(), + partUnit:$(this).find('td').eq(5).html(), + partType:$(this).find('td').eq(6).html(), + applyNum: needNum ? needNum : 0, + }) + }) + return tableData; +} + + +// 选择机具类型 +function chooseFitType() { + let params = {}; + openIframeByParamObj("choose_part_type", '', "./choose_part_type_list.html", '92%', '95%', params); +} + +// 查询 +function search() { + let keyWord = $('#name').val(); + if (keyWord) { + let dataList = jjDataArr.filter(item => { + return item.name.indexOf(keyWord) > -1; + }) + setTableData(dataList); + } else { + setTableData(jjDataArr); + } +} + +// 重置 +function resetSearch() { + $('#name').val(''); + setTableData(jjDataArr); +} + +// 子页面回调数据 +function addFitDatas(data) { + console.log('新增的数据:' + data); + if (jjDataArr.length > 0) { // 继续添加数据 + let newJjDataArr = JSON.parse(data); + $.each(newJjDataArr, function (index, item) { + updateOrAddObject(item.id, item); + }); + // setTableData(jjDataArr); + goOnAddData(); + } else { // 第一次添加数据 + jjDataArr = JSON.parse(data); + if (jjDataArr && jjDataArr.length > 0) { + $('#no_data_title').css({'display': 'none'}); + $('#search-info').removeAttr('style'); + $('#table-box').removeAttr('style'); + setTableData(jjDataArr); + } + } + + function updateOrAddObject(id, newObject) { + const index = jjDataArr.findIndex(obj => obj.id === id); + if (index !== -1) { + // 如果对象存在,则替换它 + jjDataArr[index] = newObject; + } else { + // 如果对象不存在,则添加到数组 + jjDataArr.push(newObject); + } + } +} + +// 入库配件明细表格赋值 +function setTableData(results) { + $('#allCheck').prop('checked', false) + delIdArr.splice(0, delIdArr.length); + var html = ""; + if (results && results.length > 0) { + for (var i = 0; i < results.length; i++) { + var l = results[i]; + html += ""; + html += ''; + html += "" + + (i + 1) + ""; + html += "" + l.name + ""; + html += "" + l.model + ""; + html += "" + l.num + ""; + html += "" + l.unit + ""; + html += "" + l.type + ""; + html += "" + setFormInput(l.needNum, 1) + ""; + html += ""; + } + } else { + html += "没有相关数据"; + } + $("#baseTable tbody").empty().append(html); + layui.form.render(); +} + +function setFormInput(value, type) { + let html = '
'; + if (type === 1) { // 本次申请量 + html += ''; + } + html += '
'; + return html; + +} + +// 复选框全选 +function selectAll(selectStatus) {//传入参数(全选框的选中状态) + if (selectStatus) { + $("input[name='check']").each(function (i, n) { + n.checked = true; + }); + $.each(jjDataArr, function (index, item) { + delIdArr.push(item.id); + }) + } else { + $("input[name='check']").each(function (i, n) { + n.checked = false; + }); + delIdArr.splice(0, delIdArr.length); + } +} + +// 单个选中 +function sel(selectStatus, that, id) { + if (selectStatus) { + $(that).prop('checked', true); + delIdArr.push(id); + } else { + $(that).prop('checked', false); + for (let i = 0; i < delIdArr.length; i++) { + if (delIdArr[i] == id) { + delIdArr.splice(i, 1); + break; + } + } + } +} + +// 删除选中 +function delFitType() { + if (delIdArr.length == 0) { + layer.msg('请先选择需要删除的数据!', {icon: 7}) + return; + } + let layerIndex = layer.confirm('
确定要删除选中数据吗!
', {title: '操作提示'}, function () { + layer.close(layerIndex); + for (let i = 0; i < delIdArr.length; i++) { + for (let j = 0; j < jjDataArr.length; j++) { + let id = jjDataArr[j].id; + if (delIdArr[i] == id) { + jjDataArr.splice(j, 1); + break; + } + } + } + if (jjDataArr.length === 0) { + $('#no_data_title').removeAttr('style'); + $('#search-info').css({'display': 'none'}); + $('#table-box').css({'display': 'none'}); + } else { + // setTableData(jjDataArr); + handleDelTableData(delIdArr); + } + delIdArr.splice(0, delIdArr.length); + }); +} + +// 删除表格数据 +function handleDelTableData(delIdArr) { + if (delIdArr.length > 0) { + $.each(delIdArr, function (index, item) { + $('#baseTable tbody tr').each(function () { + let id = $(this).attr('id'); + if (parseInt(id) === item) { + $(this).remove(); + return false; + } + }) + }) + } + $('#baseTable tbody tr').each(function (index, item) { + $(this).find('td').eq(1).html(index + 1); + }) +} + +// 继续添加数据 +function goOnAddData() { + if (jjDataArr.length > 0) { + $.each(jjDataArr, function (index, item) { + $('#baseTable tbody tr').each(function () { + let id = $(this).attr('id'); + if (parseInt(id) === parseInt(item.id)) { + let times = $(this).find('td').eq(7).find('input[name="times"]').val(), + needNum = $(this).find('td').eq(6).find('input[name="needNum"]').val(), + remarks = $(this).find('td').eq(8).find('input[name="remarks"]').val(); + if (!item.times || parseInt(item.times) === 0) { + item.times = times; + } + if (!item.needNum || parseInt(item.needNum) === 0) { + item.needNum = needNum; + } + if (!item.remarks) { + item.remarks = remarks; + } + } + }) + }); + setTableData(jjDataArr); + $('#baseTable tbody tr').each(function (index, item) { + $(this).find('td').eq(1).html(index + 1); + }) + } +} + +// 校验数据 +function checkValue(that, type, name) { + let value = $(that).val(); + if (type === 1 || type === 2) { // 需用量 / 需用天数 + const regex = /^(0|[1-9]\d{0,6})$/; + if (!regex.test(value) && value) { + layer.msg('' + name + '输入不合法,请重新输入!', {icon: 5}) + $(that).val(0); + } + } +} + +// 关闭页面 +function closePage(type) { + let index = parent.layer.getFrameIndex(window.name); // 先得到当前 iframe层的索引 + if (type == 1) { + window.parent.reloadData(); + } + parent.layer.close(index); // 再执行关闭 +} \ No newline at end of file diff --git a/page/accessory/child/accessory_apply_add.html b/page/accessory/child/accessory_apply_add.html index 63b0219..c850185 100644 --- a/page/accessory/child/accessory_apply_add.html +++ b/page/accessory/child/accessory_apply_add.html @@ -15,64 +15,46 @@
-
+ lay-verify="required" maxlength="50" disabled="true">
+
- - + +
-
+ +
+ maxlength="50" lay-affix="clear" placeholder="请选择内部编号">
+ maxlength="50" lay-affix="clear" placeholder="自动带入工程名称" disabled="true">
- +
diff --git a/page/accessory/child/accessory_apply_detail.html b/page/accessory/child/accessory_apply_detail.html index ac50d70..4a0dbd7 100644 --- a/page/accessory/child/accessory_apply_detail.html +++ b/page/accessory/child/accessory_apply_detail.html @@ -14,48 +14,50 @@
- +
+ lay-verify="required" maxlength="50" disabled="true">
+
- - + +
-
+ +
+ maxlength="50" placeholder="请选择内部编号" disabled="true">
+ maxlength="50" placeholder="自动带入工程名称" disabled="true">
- +
+ class="layui-textarea" maxLength="250" disabled="true">
- - + +
@@ -113,6 +115,10 @@
+
+ + +
diff --git a/page/accessory/child/accessory_apply_edit.html b/page/accessory/child/accessory_apply_edit.html new file mode 100644 index 0000000..01ea8fe --- /dev/null +++ b/page/accessory/child/accessory_apply_edit.html @@ -0,0 +1,130 @@ + + + + + + + 新增配件申请 + + + + + + + +
+
+
+
+
+ +
+ +
+
+ +
+
+ +
+ + +
+
+
+
+ + +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+ +
+
+ +
+
+ +

配件明细

+
+ +
+ 无数据 +

您还没选择申请的配件

+

请先选择需要配件后才能执行操作

+ +
+ + +
+
+ + +
+
+ + + + + + + + \ No newline at end of file