From 69659ea640f4ca35476715ca22919998b3aafa1f Mon Sep 17 00:00:00 2001
From: cwchen <1048842385@qq.com>
Date: Fri, 24 Jan 2025 14:33:51 +0800
Subject: [PATCH] =?UTF-8?q?=E9=9C=80=E6=B1=82=E8=AE=A1=E5=88=92=E4=BF=AE?=
=?UTF-8?q?=E6=94=B9=E9=A1=B5=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
js/demandPlan/apply_plan_list.js | 9 +
js/demandPlan/child/apply_plan_edit_form.js | 465 ++++++++++++++++++
.../child/apply_plan_edit_form.html | 137 ++++++
3 files changed, 611 insertions(+)
create mode 100644 js/demandPlan/child/apply_plan_edit_form.js
create mode 100644 page/demandPlan/child/apply_plan_edit_form.html
diff --git a/js/demandPlan/apply_plan_list.js b/js/demandPlan/apply_plan_list.js
index 563dfb8..32809ec 100644
--- a/js/demandPlan/apply_plan_list.js
+++ b/js/demandPlan/apply_plan_list.js
@@ -173,8 +173,12 @@ function initTable() {
align: "center",
unresize: true,
templet: function (d) {
+ let status = getCheckStatus(d.statusType, d.status);
let html = "";
html += "详情";
+ if (status.indexOf('驳回') > -1) {
+ html += "
|
修改";
+ }
return html;
},
},
@@ -232,6 +236,11 @@ function applyPlan(obj) {
openIframeByParamObj("apply_plan", "机具需求计划申请", "./child/apply_plan_form.html", "92%", "95%", obj);
}
+// 申请修改
+function editApplyPlan(obj) {
+ openIframeByParamObj("editApplyPlan", "机具需求计划申请修改", "./child/apply_plan_edit_form.html", "92%", "95%", obj);
+}
+
// 详情
function applyPlanDetail(obj) {
openIframeByParamObj("apply_plan_detail", "详情", "./child/apply_plan_detail.html", "92%", "95%", obj);
diff --git a/js/demandPlan/child/apply_plan_edit_form.js b/js/demandPlan/child/apply_plan_edit_form.js
new file mode 100644
index 0000000..2cef8c2
--- /dev/null
+++ b/js/demandPlan/child/apply_plan_edit_form.js
@@ -0,0 +1,465 @@
+let idParam, objParam;
+let form, laydate, layer, upload, table, util;
+let pageNum = 1, tableIns; // 定义分页
+let jjDataArr = []; // 配件数据
+let proList = []; // 工程下拉选
+let delIdArr = [];
+let detailIdArr = [];
+function setParams(obj) {
+ objParam = JSON.parse(obj);
+ 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.render();
+ getProList();
+ getPlanDetails();
+ getPlanDetailsList();
+ });
+}
+
+// 工程下拉选
+function getProList() {
+ let url = dataUrl + 'backstage/planApplication/getProList';
+ ajaxRequest(url, "POST", null, false, function () {
+ }, function (result) {
+ if (result.code === 200) {
+ setSelectData(result.data);
+ }
+ }, function (xhr, status, error) {
+ errorFn(xhr, status, error)
+ }, null);
+}
+
+// 工程下拉选赋值
+function setSelectData(proList) {
+ let html = '';
+ $.each(proList, function (index, item) {
+ html += ''
+ })
+ $('#projectId').empty().append(html);
+ layui.form.render();
+}
+
+// 计划申请详情
+function getPlanDetails() {
+ let params = {
+ encryptedData: JSON.stringify({
+ 'id': objParam.id
+ })
+ };
+ let url = dataUrl + 'backstage/planApplication/getPlanDetails';
+ 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) {
+ form.val('formInfo', obj);
+ layui.form.render();
+ }
+}
+
+// 安全工器具明细
+function getPlanDetailsList() {
+ let params = {
+ encryptedData: JSON.stringify({
+ 'id': objParam.id
+ })
+ };
+ let url = dataUrl + 'backstage/planApplication/getPlanDetailsList2';
+ ajaxRequest(url, "POST", params, true, function () {
+ }, function (result) {
+ console.error(result);
+ if (result.code === 200) {
+ setTable(result.data);
+ } else {
+ }
+ }, function (xhr, status, error) {
+ errorFn(xhr, status, error)
+ }, null);
+
+ function setTable(obj) {
+ $.each(obj, function (index, item) {
+ let obj = Object.assign({}, item);
+ obj.ppName = item.type;
+ obj.pName = item.typeName;
+ obj.name = item.module;
+ obj.dataId = item.id;
+ obj.id = item.moduleId;
+ jjDataArr.push(obj);
+ detailIdArr.push(item.id);
+ })
+ $('#no_data_title').css({ 'display': 'none' });
+ $('#search-info').removeAttr('style');
+ $('#table-box').removeAttr('style');
+ setTableData(jjDataArr);
+ }
+}
+
+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();
+ // 校验配件入库数量
+ if (list.length === 0) {
+ return layer.msg('未添加机具数据', { icon: 7 });
+ }
+ for (let i = 0; i < list.length; i++) {
+ if (parseInt(list[i].needNum) === 0) {
+ return layer.msg('机具明细,第' + (i + 1) + '行,未填写需用量', { icon: 7 });
+ }
+ if (parseInt(list[i].times) === 0) {
+ return layer.msg('机具明细,第' + (i + 1) + '行,未填写需用天数', { icon: 7 });
+ }
+ }
+ data.field.id = objParam.id;
+ data.field.jsonData = JSON.stringify(list);
+ // 删除的工器具ID
+ let detailIdArr2 = [];
+ $.each(jjDataArr, function (index, item) {
+ detailIdArr2.push(item.dataId);
+ })
+ console.error(detailIdArr);
+ console.error(detailIdArr2);
+ let delDetailArr = getMinus(detailIdArr2, detailIdArr);
+ console.error(delDetailArr);
+
+ if (delDetailArr && delDetailArr.length > 0) {
+ data.field.delIds = delDetailArr;
+ }
+ let loadingMsg = layer.msg('正在提交保存,请稍等...', { icon: 16, shade: 0.01, time: '0' });
+ let url = dataUrl + 'backstage/planApplication/updatePlan';
+ let params = {
+ encryptedData: JSON.stringify(data.field)
+ };
+ ajaxRequest(url, 'POST', params, true, 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 getMinus(a, b) {
+ let minus = b.filter(item => !a.includes(item));
+ return minus;
+ }
+}
+
+// 机具明细数据
+function getBaseTableData() {
+ let tableData = [];
+ $('#baseTable tbody tr').each(function (index, item) {
+ let times = $(this).find('td').eq(7).find('input[name="times"]').val();
+ let needNum = $(this).find('td').eq(6).find('input[name="needNum"]').val();
+ let dataId = null;
+ if ($(this).attr('dataId') === 'undefined') {
+ dataId = null;
+ } else {
+ dataId = $(this).attr('dataId');
+ }
+ tableData.push({
+ moduleId: $(this).attr('id'),
+ id: dataId,
+ 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,
+ times: times ? times : 0,
+ remarks: $(this).find('td').eq(8).find('input[name="remarks"]').val(),
+ })
+ })
+ return tableData;
+}
+
+// 选择机具类型
+function chooseFitType() {
+ let params = {};
+ openIframeByParamObj("choose_fit_type", '选择需求计划机具类型(设备类请备注大、中、小)', "./choose_tool_type_list.html", '92%', '95%', params);
+}
+// 查询
+function search() {
+ let keyWord = $('#pName').val();
+ let keyWord2 = $('#name').val();
+ if (!keyWord && !keyWord2) {
+ setTableData(jjDataArr);
+ } else if (keyWord && !keyWord2) {
+ let dataList = jjDataArr.filter(item => {
+ return item.pName.indexOf(keyWord) > -1;
+ })
+ setTableData(dataList);
+ } else if (!keyWord && keyWord2) {
+ let dataList = jjDataArr.filter(item => {
+ return item.name.indexOf(keyWord2) > -1;
+ })
+ setTableData(dataList);
+ } else if (keyWord && keyWord2) {
+ let dataList = jjDataArr.filter(item => {
+ return item.pName.indexOf(keyWord) > -1 && item.name.indexOf(keyWord2) > -1;
+ })
+ setTableData(dataList);
+ }
+}
+
+// 重置
+function resetSearch() {
+ $('#pName').val('');
+ $('#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) {
+ // 如果对象存在,则替换它
+ let oldData = jjDataArr[index];
+ newObject.dataId = oldData.dataId;
+ 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.ppName + " | ";
+ html += "" + l.pName + " | ";
+ html += "" + l.name + " | ";
+ html += "" + l.unit + " | ";
+ html += "" + setFormInput(l.needNum, 1) + " | ";
+ html += "" + setFormInput(l.times == null ? 0 : l.times, 2) + " | ";
+ html += "" + setFormInput(l.remarks, 3) + " | ";
+ 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/demandPlan/child/apply_plan_edit_form.html b/page/demandPlan/child/apply_plan_edit_form.html
new file mode 100644
index 0000000..1097122
--- /dev/null
+++ b/page/demandPlan/child/apply_plan_edit_form.html
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+ 需求计划申请修改
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+
您还没选择需用机具类型
+
请先添加机具类型后再执申请操作
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file