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 = '';
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 = '';
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 = '';
+ 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 @@