diff --git a/css/demandPlan/apply_plan_detail.css b/css/demandPlan/apply_plan_detail.css new file mode 100644 index 0000000..0b9933f --- /dev/null +++ b/css/demandPlan/apply_plan_detail.css @@ -0,0 +1,108 @@ +.layout { + display: flex; + justify-content: center; + align-items: center; +} + +#main-box { + width: 100%; + height: 100%; + padding: 0 2% 0 2%; + box-sizing: border-box; +} + +#plan-detail-box { + width: 100%; + height: 80px; + flex-direction: column; + align-items: baseline; + justify-content: space-evenly; +} + +#plan-detail-box>p, #plan-basic-box>p, #oper-record-box p, + #implement-box p { + font-size: 20px; + font-weight: bold; +} + +#plan-basic-box { + width: 100%; + height: 250px; + flex-direction: column; + align-items: baseline; + justify-content: space-evenly; +} + +.classTable { + width: 100%; + table-layout: fixed; + text-align: center; + border-collapse: collapse; + border-spacing: 1px; + box-sizing: border-box; +} + +.classTable tr td, .classTable tr th { + height: 50px; + box-sizing: border-box; + border: 1px solid #ddd; + padding: 10px 20px; + text-align: left; +} + +.classTable tr td, .classTable tr th { + width: 20% +} + +.classTable tr td:nth-child(1), .classTable tr th:nth-child(1) { + width: 40% +} + +.classTable tr:nth-child(odd) { + background-color: #f2f2f2; +} + +#implement-box { + width: 100%; + flex-direction: column; + align-items: baseline; + justify-content: space-evenly; +} + +#oper-record-box { + width: 100%; + flex-direction: column; + align-items: baseline; + justify-content: space-evenly; +} + +.layui-timeline { + margin-top: 10px; + width: 100%; +} + +.oper-info { + height: 80px; +} + +.oper-info>div:nth-child(1) { + width: 7%; + height: 100% +} + +.oper-info>div:nth-child(2) { + width: 73%; + height: 100% +} + +.oper-info>div:nth-child(3) { + width: 20%; + height: 100% +} + +.user-oper { + flex-direction: column; +} +.page-content{ + width: 100%; +} \ No newline at end of file diff --git a/css/demandPlan/excess_inventory_source.css b/css/demandPlan/excess_inventory_source.css new file mode 100644 index 0000000..306353f --- /dev/null +++ b/css/demandPlan/excess_inventory_source.css @@ -0,0 +1,60 @@ +body { + margin: 0; + padding: 0; + height: 99%; +} + +.layout { + display: flex; + align-items: center; + justify-content: center; +} + +#main-box { + width: 100%; + height: 100%; + background-color: #fff; + border-radius: 5px; +} + +#basic-box { + width: 100%; +} + +.title { + width: 100%; + height: 30px; + justify-content: start; + padding: 0 0 0 20px; + box-sizing: border-box; +} + +.title p { + font-size: 14px; + font-weight: bold; + +} + +.classTable { + width: 98%; + margin: 0 1% 0 1%; + table-layout: fixed; + text-align: center; + border-collapse: collapse; + border-spacing: 1px; + box-sizing: border-box; +} + +.classTable tr td, +.classTable tr th { + height: 50px; + box-sizing: border-box; + border: 1px solid #ddd; + padding: 10px 20px; + text-align: left; +} + + +.classTable tr th{ + background-color: #f2f2f2; +} \ No newline at end of file diff --git a/js/demandPlan/child/apply_plan_detail.js b/js/demandPlan/child/apply_plan_detail.js new file mode 100644 index 0000000..7f2cf59 --- /dev/null +++ b/js/demandPlan/child/apply_plan_detail.js @@ -0,0 +1,233 @@ +let idParam, objParam; +let details; +let form, layer, laydate; +function setParams(obj) { + objParam = JSON.parse(obj); + idParam = objParam.id; + layui.use(['form', 'layer', 'laydate'], function () { + form = layui.form; + layer = layui.layer; + laydate = layui.laydate; + }); + setCheckStatus(); + getDetailById(); +} + +// 基本信息 +function setPlanBasicTableInfo(obj) { + $('#proName').html(obj.proName); + $('#projectPart').html(obj.projectPart); + $('#projectContent').html(obj.projectContent); + $('#needTime').html(obj.needTime); + $('#remark').html(obj.remark); +} + +// 查询 +function search() { + let keyWord = $('#keyWord').val(); + let keyWord2 = $('#keyWord2').val(); + if (!keyWord && !keyWord2) { + getbaseList(details); + } else if (keyWord && !keyWord2) { + let dataList = details.filter(item => { + console.log(item.type.indexOf(keyWord)); + return item.type.indexOf(keyWord) > -1; + }) + getbaseList(dataList); + } else if (!keyWord && keyWord2) { + let dataList = details.filter(item => { + console.log(item.module.indexOf(keyWord2)); + return item.module.indexOf(keyWord2) > -1; + }) + getbaseList(dataList); + } else if (keyWord && keyWord2) { + let dataList = details.filter(item => { + console.log(item.module.indexOf(keyWord2)); + console.log(item.type.indexOf(keyWord)); + return item.type.indexOf(keyWord) > -1 && item.module.indexOf(keyWord2) > -1;; + }) + getbaseList(dataList); + } +} + +// 重置 +function resetSearch() { + $('#keyWord').val(''); + $('#keyWord2').val(''); + getbaseList(details); +} + +function getbaseList(results) { + var html = ""; + if (results && results.length > 0) { + for (var i = 0; i < results.length; i++) { + var l = results[i]; + html += ""; + html += "" + + (i + 1) + ""; + html += "" + l.typeName + ""; + html += "" + l.type + ""; + html += "" + l.module + ""; + html += "" + l.unit + ""; + html += "" + l.needNum + ""; + html += "" + l.times + ""; + html += "" + l.remarks + ""; + html += ""; + } + } else { + html += "没有相关数据"; + } + $("#baseTable tbody").empty().append(html); +} + +function rowFunction(id) { + var h = ""; + h += ""; + h += ""; + h += ""; + return h; +} + +// 导出 +function exportData() { + let params = { + "id": idParam + } + exportCommon(bonuspath + '/backstage/planApplication/exportDetail', 'POST', params, "机具明细"); +} + + +// 操作记录 +function setOperRecordInfo(list, obj) { + let creator = obj.creator; // 发起人 + let html = ''; + if (list && list.length > 0) { + let imgUrl = '../../../images/user_head_icon.png'; + let imgUrl2 = '../../../images/time_icon.png'; + $.each(list, function (index, item) { + let operData = ""; + let dept = ''; + let minutes = item.minutes; + if (item.hours === 0 && item.minutes === 0) { + minutes = 1; + } + if (item.auditType === '0' || item.auditType === '1') { + dept = '项目部'; + } else if (item.auditType === '2') { + dept = '分公司'; + } else if (item.auditType === '3') { + dept = '项管中心'; + } else if (item.auditType === '4') { + dept = '机具公司'; + } + // 操作流程 + if (item.auditType === '0') { + operData = '发起申请'; + } else if (item.auditType === '1') { + operData = '重新提交申请'; + } else if (item.auditType === '2' && item.auditStatus === '2') { + operData = '审核确认通过,共耗时:' + item.hours + '小时' + minutes + '分钟 原因备注:' + item.auditRemarks + ''; + } else if (item.auditType === '2' && item.auditStatus === '3') { + operData = '驳回-给发起人' + creator + ',共耗时:' + item.hours + '小时' + minutes + '分钟 原因备注:' + item.auditRemarks + ''; + } else if (item.auditType === '3' && item.auditStatus === '2') { + operData = '审核确认通过,共耗时:' + item.hours + '小时' + minutes + '分钟 原因备注:' + item.auditRemarks + ''; + } else if (item.auditType === '3' && item.auditStatus === '3') { + operData = '驳回-给发起人' + creator + ',共耗时:' + item.hours + '小时' + minutes + '分钟 原因备注:' + item.auditRemarks + ''; + } else if (item.auditType === '4' && item.auditStatus === '2') { + operData = '完结-审核确认通过,共耗时:' + item.hours + '小时' + minutes + '分钟 原因备注:' + item.auditRemarks + ''; + } else if (item.auditType === '4' && item.auditStatus === '3') { + operData = '驳回-给发起人' + creator + ',共耗时:' + item.hours + '小时' + minutes + '分钟 原因备注:' + item.auditRemarks + ''; + } + html += '
' + + '' + + '
' + + '

' + item.auditTime.substring(0, 10) + '

' + + '
' + + '
' + + '
' + + '' + + '
' + + '
' + + '
' + + '' + item.auditUser + '(' + item.phone + ')' + dept + '' + + '
' + + '
' + + '' + operData + '' + + '
' + + '
' + + '
' + + '' + + '' + item.auditTime + '' + + '
' + + '
' + + '
' + + '
' + + '
'; + }) + } + $('.layui-timeline').empty().append(html); +} + +// 设置计划编号/审核状态 +function setCheckStatus() { + $('#code').empty().html(objParam.code); + $('#checkStatus').html(getCheckStatus(objParam.statusType, objParam.status)); +} + +// 审核状态 +function getCheckStatus(statusType, status) { + var company = ""; + if (statusType === '1') { + return "审核通过"; + } else if (statusType === '2') { + company = "分公司"; + } else if (statusType === '3') { + company = "项目管理中心"; + } else if (statusType === '4') { + company = "机具公司"; + } + if (status === '1') { + return "待" + company + "审核"; + } else if (status === '2') { + return "审核通过"; + } else if (status === '3') { + return "" + company + "审核驳回"; + } + return "待审核"; +} + +// 详情 +function getDetailById() { + let params = { + encryptedData: JSON.stringify({ + 'id': idParam + }) + }; + let url = dataUrl + 'backstage/planApplication/getPlanDetails'; + ajaxRequest(url, "POST", params, true, function () { + }, function (result) { + console.log(result); + if (result.code === 200) { + setPlanBasicTableInfo(result.obj); + getbaseList(result.obj.details); + setOperRecordInfo(result.obj.auditList,result.obj); + details = result.obj.details; + } + }, function (xhr, status, error) { + errorFn(xhr, status, error) + }, null); +} + +// 打印 +function print() { + Print('#body', { + onStart: function () { + console.log('onStart', new Date()) + }, + onEnd: function () { + console.log('onEnd', new Date()) + } + }) +} \ No newline at end of file diff --git a/js/demandPlan/child/early_info_list.js b/js/demandPlan/child/early_info_list.js index 5a68f17..8774ff6 100644 --- a/js/demandPlan/child/early_info_list.js +++ b/js/demandPlan/child/early_info_list.js @@ -1,8 +1,8 @@ -let form, table, element; +let form, table, element,layer; let typeParam; function setParams(type) { typeParam = type; - layui.use(["form", "table", 'element'], function () { + layui.use(["form", "table", 'element','layer'], function () { form = layui.form; table = layui.table; element = layui.element; diff --git a/js/demandPlan/child/excess_inventory_list.js b/js/demandPlan/child/excess_inventory_list.js index 1a4b4c1..a5670f4 100644 --- a/js/demandPlan/child/excess_inventory_list.js +++ b/js/demandPlan/child/excess_inventory_list.js @@ -1,11 +1,12 @@ -let form, table, element,tableIns,layer; +let form, table, element, tableIns, layer; let pageNum = 1; -layui.use(["form", "table", 'element','layer'], function () { - form = layui.form; - table = layui.table; - element = layui.element; - initTable(); - }); +layui.use(["form", "table", 'element', 'layer'], function () { + form = layui.form; + table = layui.table; + element = layui.element; + layer = layui.layer; + initTable(); +}); // 查询/重置 function queryTable(type) { @@ -34,7 +35,7 @@ function reloadTable(pageNum) { encryptedData: JSON.stringify({ 'name': $('#name').val(), 'module': $('#module').val(), - type:1 + type: 1 }), }, }, @@ -55,7 +56,7 @@ function initTable() { encryptedData: JSON.stringify({ 'name': $('#name').val(), 'module': $('#module').val(), - type:1 + type: 1 }), }, request: { @@ -73,82 +74,82 @@ function initTable() { cols: [ [ { - width: '9.9%', - title: "序号", - align: "center", - templet: function (d) { - return d.LAY_NUM; - }, + width: '9.9%', + title: "序号", + align: "center", + templet: function (d) { + return d.LAY_NUM; + }, }, { - field: "type", - width: '10%', - title: "物机类型 ", - unresize: true, - align: "center", + field: "type", + width: '10%', + title: "物机类型 ", + unresize: true, + align: "center", }, { - field: "name", - width: '15%', - title: "物机名称", - unresize: true, - align: "center", + field: "name", + width: '15%', + title: "物机名称", + unresize: true, + align: "center", }, { - field: "module", - width: '15%', - title: "规格 ", - unresize: true, + field: "module", + width: '15%', + title: "规格 ", + unresize: true, }, { - field: "unit", - title: "单位", - width: '10%', - unresize: true, - align: "center", + field: "unit", + title: "单位", + width: '10%', + unresize: true, + align: "center", }, { - field: "needNum", - title: "需要量", - width: '10%', - unresize: true, - align: "center", - templet: function (d) { - return setNumColor(d.needNum,1); - }, + field: "needNum", + title: "需要量", + width: '10%', + unresize: true, + align: "center", + templet: function (d) { + return setNumColor(d.needNum, 1); + }, }, { - field: "num", - title: "库存量", - width: '10%', - unresize: true, - align: "center", - templet: function (d) { - return setNumColor(d.num,2); - }, + field: "num", + title: "库存量", + width: '10%', + unresize: true, + align: "center", + templet: function (d) { + return setNumColor(d.num, 2); + }, }, { - field: "diff", - title: "超出量", - width: '10%', - unresize: true, - align: "center", - templet: function (d) { - return setNumColor(d.diff,3); - }, + field: "diff", + title: "超出量", + width: '10%', + unresize: true, + align: "center", + templet: function (d) { + return setNumColor(d.diff, 3); + }, }, { - title: "来源工程", - width: '10%', - align: "center", - unresize: true, - templet: function (d) { - let html = ""; - html += "查看来源"; - return html; - }, + title: "来源工程", + width: '10%', + align: "center", + unresize: true, + templet: function (d) { + let html = ""; + html += "查看来源"; + return html; + }, }, - ] + ] ], limits: [10, 15, 20, 25, 50, 100], limit: 10, @@ -170,13 +171,13 @@ function setFontBold(value) { function setNumColor(value, type) { let color = "#409Eff"; if (type === 1) { - color = "#409Eff"; + color = "#409Eff"; } else if (type === 2) { - color = "#19be6b"; + color = "#19be6b"; } else if (type === 3) { - color = "#f56c6c"; - }else if (type === 4) { - color = "#f56c6c"; + color = "#f56c6c"; + } else if (type === 4) { + color = "#f56c6c"; } return '' + value + ""; } @@ -204,6 +205,6 @@ function print() { } // 查看来源 -function viewSource(id) { - openIframeByParam("viewSource", "未发货机具设备超出库存数量-数据来源", "./view_resource_list.html", "92%", "95%", id); +function viewSource(obj) { + openIframeByParamObj2("excess_inventory_source", "数据来源", "./excess_inventory_source.html", "92%", "95%", obj); } \ No newline at end of file diff --git a/js/demandPlan/child/excess_inventory_source.js b/js/demandPlan/child/excess_inventory_source.js new file mode 100644 index 0000000..ad03922 --- /dev/null +++ b/js/demandPlan/child/excess_inventory_source.js @@ -0,0 +1,154 @@ +let objParam; +let form, table, element, tableIns, layer; +let pageNum = 1; +function setParams(obj) { + objParam = JSON.parse(obj); + console.log(objParam); + layui.use(["form", "table", 'element', 'layer'], function () { + form = layui.form; + table = layui.table; + element = layui.element; + layer = layui.layer; + getDataInfoDetails(); + initTable(); + }); +} + +// 基本数据 +function getDataInfoDetails() { + let encryptedData = { + 'moduleId': objParam.moduleId, + }; + let url = dataUrl + 'backstage/planOut/getDataInfoDetails?encryptedData=' + encodeURIComponent(JSON.stringify(encryptedData)); + ajaxRequest(url, "GET", null, true, function () { + }, function (result) { + console.log(result); + if (result.code === 200) { + setData(result.data); + } + }, function (xhr, status, error) { + errorFn(xhr, status, error) + }, null); + + function setData(obj) { + $('#type').html(obj.type); + $('#name').html(obj.name); + $('#unit').html(obj.unit); + $('#module').html(obj.module); + } +} + +function initTable() { + tableIns = table.render({ + elem: "#currentTableId", + id: 'currentTableId', + headers: { + authorization: sessionStorage.getItem("gz-token"), + }, + height: "full-180", + url: dataUrl + "backstage/planOut/getDataPlanByPage", + where: { + encryptedData: JSON.stringify({ + 'moduleId': objParam.moduleId + }), + }, + request: { + pageName: 'pageNum', + limitName: 'pageSize' + }, + parseData: function (res) { // res 即为原始返回的数据 + return { + "code": 0, // 解析接口状态 + "msg": '获取成功', // 解析提示文本 + "count": res.total, // 解析数据长度 + "data": res.list // 解析数据列表 + }; + }, + cols: [ + [ + { + width: '9.8%', + title: "序号", + align: "center", + templet: function (d) { + return d.LAY_NUM; + }, + }, + { + field: "proName", + width: '30%', + title: "工程名称 ", + unresize: true, + align: "center", + }, + { + field: "code", + width: '30%', + title: "需求计划编号", + unresize: true, + align: "center", + templet: function (d) { + let html = ""; + html += ""+d.code+""; + return html; + }, + }, + { + field: "needNum", + width: '10%', + title: "需用量 ", + unresize: true, + templet: function (d) { + return setNumColor(d.needNum, 1); + }, + }, + { + field: "needNum", + title: "已发货量", + width: '10%', + unresize: true, + align: "center", + templet: function (d) { + return setNumColor(d.needNum, 2); + }, + }, + { + field: "needNum", + title: "待发货量", + width: '10%', + unresize: true, + align: "center", + templet: function (d) { + return setNumColor(d.needNum, 3); + }, + } + ] + ], + limits: [10, 15, 20, 25, 50, 100], + limit: 10, + page: true, + done: function (res, curr, count) { + pageNum = tableIns.config.page.curr; + element.render(); + table.resize("currentTableId"); + }, + }); +} + +// 数量颜色 1.需要量 2.已发货量 3.待发货量 +function setNumColor(value, type) { + let color = "#409Eff"; + if (type === 1) { + color = "#409Eff"; + } else if (type === 2) { + color = "#19be6b"; + } else if (type === 3) { + color = "#f56c6c"; + } + return '' + value + ""; +} + +// 需求计划编号 +function demand_plan(obj){ + openIframeByParamObj2("demand_plan", "机具需求计划", "./excess_inventory_source.html", "92%", "95%", obj); +} \ No newline at end of file diff --git a/js/demandPlan/child/unplanned_quantity_list.js b/js/demandPlan/child/unplanned_quantity_list.js index f75e3fd..a49bf6d 100644 --- a/js/demandPlan/child/unplanned_quantity_list.js +++ b/js/demandPlan/child/unplanned_quantity_list.js @@ -34,7 +34,7 @@ function reloadTable(pageNum) { encryptedData: JSON.stringify({ 'name': $('#name').val(), 'module': $('#module').val(), - type:2 + type: 2 }), }, }, @@ -55,7 +55,7 @@ function initTable() { encryptedData: JSON.stringify({ 'name': $('#name').val(), 'module': $('#module').val(), - type:2 + type: 2 }), }, request: { @@ -132,7 +132,7 @@ function initTable() { unresize: true, templet: function (d) { let html = ""; - html += "来源查询"; + html += "查看来源"; return html; }, }, @@ -158,13 +158,13 @@ function setFontBold(value) { function setNumColor(value, type) { let color = "#409Eff"; if (type === 1) { - color = "#409Eff"; + color = "#409Eff"; } else if (type === 2) { - color = "#19be6b"; + color = "#19be6b"; } else if (type === 3) { - color = "#f56c6c"; - }else if (type === 4) { - color = "#f56c6c"; + color = "#f56c6c"; + } else if (type === 4) { + color = "#f56c6c"; } return '' + value + ""; } diff --git a/js/openIframe.js b/js/openIframe.js index 4746388..745e1ee 100644 --- a/js/openIframe.js +++ b/js/openIframe.js @@ -57,3 +57,25 @@ function openIframeByParamObj(id, title, content, width, height,paramsObj) { end:function(){} }); } + +function openIframeByParamObj2(id, title, content, width, height,paramsObj) { + let layerIndex = parent.layer.open({ + id: id, + type: 2, + title: ['
' + title + '
', 'font-size:16px;background-color:#f0f0f0;display: flex;align-items: center;'], + content: content, + shade: 0.3, + anim: 2, + shadeClose: false, + area: [width, height], + move: false, + success: function () { + if(paramsObj){ + let iframeWin = parent.window["layui-layer-iframe" + layerIndex]; + iframeWin.setParams(JSON.stringify(paramsObj)); + } + }, + cancel:function () {}, + end:function(){} + }); +} \ No newline at end of file diff --git a/page/demandPlan/child/apply_plan_detail.html b/page/demandPlan/child/apply_plan_detail.html new file mode 100644 index 0000000..706f886 --- /dev/null +++ b/page/demandPlan/child/apply_plan_detail.html @@ -0,0 +1,146 @@ + + + + + + 机具需求计划 + + + + + + +
+
+
+

机具需求计划

+ +
+
+

+
+ +
+
+
+ +
+

基本信息

+
+ + + + + + + + + + + + + + + + + + + +
项目名称项目部分工程内容需用日期
计划说明
+
+
+ +
+

机具明细

+
+
+
+
+
+
+    + + + + +
+
+ + +
+ + + + + + + + + + + + + + +
序号物机类型物机名称规格单位需用量需用天数备注
+ +
+
+
+
+ +
+

操作记录

+
+
+ +
+

8月18日

+
+
+
+ +
+
+
+ 王天峰(13787220576)项目管理中心 +
+
+ 完结-审核确认通过,共耗时:21小时16分钟 原因备注:无 +
+
+
+ 2020-12-23 22:31 +
+
+
+
+
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/page/demandPlan/child/excess_inventory_list.html b/page/demandPlan/child/excess_inventory_list.html index 4558f6c..75149f0 100644 --- a/page/demandPlan/child/excess_inventory_list.html +++ b/page/demandPlan/child/excess_inventory_list.html @@ -60,4 +60,5 @@ + \ No newline at end of file diff --git a/page/demandPlan/child/excess_inventory_source.html b/page/demandPlan/child/excess_inventory_source.html new file mode 100644 index 0000000..a7a2cb3 --- /dev/null +++ b/page/demandPlan/child/excess_inventory_source.html @@ -0,0 +1,68 @@ + + + + + + 超库存量-来源 + + + + + + + +
+
+
+ +

基本信息

+
+
+ + + + + + + + + + + + + + + + + + + + + +
物机类型物机名称规格单位
未发货量库存量差量工程数量
+
+
+
+
+ +

来源明细

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