|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html lang="en" xmlns:th="http://www.thymeleaf.org">
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="utf-8">
|
|
|
|
|
<title>分步表单</title>
|
|
|
|
|
<meta name="renderer" content="webkit">
|
|
|
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
|
|
|
|
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
|
|
|
|
|
<link rel="stylesheet" href="/static/css/public.css" media="all">
|
|
|
|
|
<link rel="stylesheet" href="/static/js/lay-module/step-lay/step.css" media="all">
|
|
|
|
|
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<div class="layuimini-container">
|
|
|
|
|
<div class="layuimini-main">
|
|
|
|
|
|
|
|
|
|
<div class="layui-fluid">
|
|
|
|
|
<div class="layui-card">
|
|
|
|
|
<div class="layui-card-body" style="padding-top: 0px;">
|
|
|
|
|
<div id="stepForm" lay-filter="stepForm" style="margin: 0 auto;">
|
|
|
|
|
<div style="margin-top: 30px">
|
|
|
|
|
<button th:style="'display:'+${display}" onclick="downloadExcel()">下载</button>
|
|
|
|
|
<table id="demo" class="layui-table"
|
|
|
|
|
style="margin: 0 auto;max-width: 800px;">
|
|
|
|
|
<colgroup>
|
|
|
|
|
<col width="150">
|
|
|
|
|
<col width="200">
|
|
|
|
|
</colgroup>
|
|
|
|
|
|
|
|
|
|
<tbody>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>申请编号</td>
|
|
|
|
|
<td id="applicationId" th:text="${record.getCode()}">123456</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>出库业务类型</td>
|
|
|
|
|
<td id="outTypeName" th:text="${record.getOutTypeName()}">备注</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<input style="display: none" id="id" th:value="${record.getId()}">
|
|
|
|
|
<tr th:each="recordMin,iterStar: ${recordMinList}">
|
|
|
|
|
<td>物料名称</td>
|
|
|
|
|
<td>
|
|
|
|
|
<button th:text="${recordMin.getMname()}" th:value="${recordMin.getId()}"
|
|
|
|
|
onclick="selectThisMinRecord(this)"></button>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>是否为转移申请</td>
|
|
|
|
|
<td id="isTransfer" th:text="${record.getIstransfer() == 2 ?'否':'是'} ">外芯仓库</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>仓库名称</td>
|
|
|
|
|
<td id="depositoryName" th:text="${record.getDepositoryName()}">外芯仓库</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr th:style="'display:'+${adisplay}">
|
|
|
|
|
<td>申请部门</td>
|
|
|
|
|
<td id="adminorg" th:text="${record.getAdminorgName()}">部门</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>使用部门</td>
|
|
|
|
|
<td id="useAdminorg" th:text="${record.getUseAdminorgName()}">部门</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr th:style="'display:'+${cdisplay}">
|
|
|
|
|
<td>施工单位</td>
|
|
|
|
|
<td id="constructUnitId" th:text="${record.getConstructionUnitName()}">施工单位</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>处理人</td>
|
|
|
|
|
<td th:text="${outDisposer}"></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>所处库位</td>
|
|
|
|
|
<td id="placeCode" th:text="${record.getPCode()}">0000</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>数量</td>
|
|
|
|
|
<td id="quantity" th:text="${record.getQuantity()}">409</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr th:style="'display:'+${display}">
|
|
|
|
|
<td>金额</td>
|
|
|
|
|
<td id="price" th:text="${record.getPrice()}">2016-11-28</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>状态</td>
|
|
|
|
|
<td id="state" th:text="${record.getState()}">2016-11-28</td>
|
|
|
|
|
<td id="pass" th:text="${record.getPass()}" style="display:none;"></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
<!-- 用于展示审批流程-->
|
|
|
|
|
<div class="layui-timeline">
|
|
|
|
|
<div class="layui-timeline-item" id="applicantNode">
|
|
|
|
|
<i class="layui-icon layui-timeline-axis layui-icon-friends"></i>
|
|
|
|
|
<div class="layui-timeline-content layui-text">
|
|
|
|
|
<h3 class="layui-timeline-title">申请人:</h3>
|
|
|
|
|
<p>
|
|
|
|
|
<img th:src="${record.getApplicantUserIconPhoto()}"
|
|
|
|
|
style="vertical-align:middle;height: 50px;margin: 0px 10px">
|
|
|
|
|
<span th:text="${record.getApplicantName()}"></span>
|
|
|
|
|
</p>
|
|
|
|
|
<p th:text="'申请时间:'+${record.getApplicantTime()}"></p>
|
|
|
|
|
<p th:text="'申请事由:'+${record.getApplyRemark()}"></p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="layui-timeline-item" id="firstApprovalNode">
|
|
|
|
|
<i id="firstApprovalNodeIcon"
|
|
|
|
|
class="layui-icon layui-timeline-axis layui-icon-friends"></i>
|
|
|
|
|
<div class="layui-timeline-content layui-text">
|
|
|
|
|
<h3 id="firstApprovalNodeTitle" class="layui-timeline-title">审批人:审批中</h3>
|
|
|
|
|
<div th:each="d,iterStar:${record.getDepartmentheadUserIconPhoto()}">
|
|
|
|
|
<img th:src="${d.getValue()}" style="vertical-align:middle;height: 50px;margin: 0px 10px">
|
|
|
|
|
<span id="firstApprovalNodeUserName" th:text="${d.getKey()}"></span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
|
|
|
|
|
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
|
|
|
|
|
<script>
|
|
|
|
|
function selectThisMinRecord(obj) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function downloadExcel() {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 用于构造审批节点
|
|
|
|
|
function createApprovalNode(nodeName, record, timeLineStartItemForId) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
layui.use(['form', 'step'], function () {
|
|
|
|
|
var $ = layui.$,
|
|
|
|
|
form = layui.form,
|
|
|
|
|
step = layui.step;
|
|
|
|
|
step.render({
|
|
|
|
|
elem: '#stepForm',
|
|
|
|
|
filter: 'stepForm',
|
|
|
|
|
width: '100%', //设置容器宽度
|
|
|
|
|
stepWidth: '750px',
|
|
|
|
|
height: '100%',
|
|
|
|
|
// number:number,
|
|
|
|
|
// position: position,
|
|
|
|
|
stepItems: []
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let id = $("#id").val();
|
|
|
|
|
// 定义当前查看的出库单
|
|
|
|
|
let record = {};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 用于生成审批节点
|
|
|
|
|
* @param nodeName 当前节点名称
|
|
|
|
|
* @param record 当前数据
|
|
|
|
|
* @param timeLineStartItemForId 开始行
|
|
|
|
|
*/
|
|
|
|
|
createApprovalNode = function (nodeName, record, timeLineStartItemForId) {
|
|
|
|
|
let timeLineEndItem = `</div></div>`;
|
|
|
|
|
let approvalNode;
|
|
|
|
|
let nodeState = record[nodeName + "Pass"];
|
|
|
|
|
if (nodeState === "3") {
|
|
|
|
|
// 如果平衡岗未审批
|
|
|
|
|
let approvalNodeForTitleName = '<h3 class="layui-timeline-title">审批人:审批中</h3>';
|
|
|
|
|
let UserIconPhoto = record[nodeName + "UserIconPhoto"];
|
|
|
|
|
let approvalNodeForIconPhoto = '';
|
|
|
|
|
for (let key in UserIconPhoto) {
|
|
|
|
|
if (UserIconPhoto.hasOwnProperty(key)) {
|
|
|
|
|
let depositoryManagerIconPhotoItem = '<div>' +
|
|
|
|
|
'<img alt="头像" src="' + UserIconPhoto[key] + '" style="vertical-align: middle;height: 50px;">' +
|
|
|
|
|
'<span>' + key + '</span>' +
|
|
|
|
|
'</div>';
|
|
|
|
|
approvalNodeForIconPhoto += depositoryManagerIconPhotoItem;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
approvalNode = timeLineStartItemForId + approvalNodeForTitleName + approvalNodeForIconPhoto + timeLineEndItem;
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
let approvalNodeForTitleName = '<h3 class="layui-timeline-title">审批人:';
|
|
|
|
|
let approvalNodeForDisposeMessage = '<p>审批意见:' + record[nodeName + "Message"] + '</p>';
|
|
|
|
|
let timeLineStartItemForIcon;
|
|
|
|
|
let UserIconPhoto = record[nodeName + "UserIconPhoto"];
|
|
|
|
|
let approvalNodeForIconPhoto = '';
|
|
|
|
|
for (let key in UserIconPhoto) {
|
|
|
|
|
if (UserIconPhoto.hasOwnProperty(key)) {
|
|
|
|
|
let IconPhotoItem = '<div>' +
|
|
|
|
|
'<img alt="头像" src="' + UserIconPhoto[key] + '" style="vertical-align: middle;height: 50px;margin:0px 10px">' +
|
|
|
|
|
'<span>' + key + '</span>' +
|
|
|
|
|
'<div style="position: absolute;right: 0;top: 35px">';
|
|
|
|
|
if (nodeState === "1") {
|
|
|
|
|
IconPhotoItem += '已通过 ';
|
|
|
|
|
} else if (nodeState === "2") {
|
|
|
|
|
IconPhotoItem += '已驳回 ';
|
|
|
|
|
}
|
|
|
|
|
IconPhotoItem += record[nodeName + "Time"] + '</div></div>';
|
|
|
|
|
approvalNodeForIconPhoto += IconPhotoItem;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (nodeState === "1") {
|
|
|
|
|
// 如果审批通过
|
|
|
|
|
timeLineStartItemForIcon = timeLineStartItemForId.replace("layui-icon-friends", "layui-icon-ok");
|
|
|
|
|
approvalNodeForTitleName += '已通过</h3>';
|
|
|
|
|
|
|
|
|
|
} else if (nodeState === "2") {
|
|
|
|
|
timeLineStartItemForIcon = timeLineStartItemForId.replace("layui-icon-friends", "layui-icon-close");
|
|
|
|
|
approvalNodeForTitleName += '已驳回</h3>';
|
|
|
|
|
}
|
|
|
|
|
approvalNode = timeLineStartItemForIcon + approvalNodeForTitleName + approvalNodeForIconPhoto + approvalNodeForDisposeMessage + timeLineEndItem;
|
|
|
|
|
}
|
|
|
|
|
return approvalNode;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
|
url: "/depositoryRecord/getApplicationOutRecord",
|
|
|
|
|
type: "post",
|
|
|
|
|
dataType: 'json',
|
|
|
|
|
data: JSON.stringify({"id": id}),
|
|
|
|
|
contentType: "application/json;charset=utf-8",
|
|
|
|
|
beforeSend: function () {
|
|
|
|
|
this.layerIndex = layer.open({type:3,shade:[0.25,'#000'],icon:2,speed:0});
|
|
|
|
|
},
|
|
|
|
|
success: function (res) {
|
|
|
|
|
record = res.data;
|
|
|
|
|
|
|
|
|
|
// 用于创造时间线节点
|
|
|
|
|
let timeLineStartItem = `<div class="layui-timeline-item" id="placeholder">
|
|
|
|
|
<i class="layui-icon layui-timeline-axis layui-icon-friends"></i>
|
|
|
|
|
<div class="layui-timeline-content layui-text">`;
|
|
|
|
|
let timeLineEndItem = `</div></div>`;
|
|
|
|
|
|
|
|
|
|
// 获取第一个审批节点
|
|
|
|
|
let firstApprovalNode = $("#firstApprovalNode");
|
|
|
|
|
// 获取第一个审批节点图标
|
|
|
|
|
let firstApprovalNodeIcon = $("#firstApprovalNodeIcon");
|
|
|
|
|
// 获取第一个审批节点标题
|
|
|
|
|
let firstApprovalNodeTitle = $("#firstApprovalNodeTitle");
|
|
|
|
|
// 获取第一个审批节点用户名
|
|
|
|
|
let firstApprovalNodeUserName = $("#firstApprovalNodeUserName");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取部门负责人节点审批相关信息(第一个节点)
|
|
|
|
|
let departmentheadTime = record.departmentheadTime;
|
|
|
|
|
let departmentheadPass = record.departmentheadPass;
|
|
|
|
|
let departmentheadMessage = record.departmentheadMessage;
|
|
|
|
|
// 获取仓储中心负责人节点审批相关信息(第二个节点)
|
|
|
|
|
let depositoryManagerPass = record.depositoryManagerPass;
|
|
|
|
|
// 获取平衡岗人员相关信息
|
|
|
|
|
let balancePoster = record.balancePoster;
|
|
|
|
|
let balancePosterPass = record.balancePosterPass;
|
|
|
|
|
|
|
|
|
|
if (departmentheadPass !== "3") {
|
|
|
|
|
// 如果已经进行了审批
|
|
|
|
|
firstApprovalNodeIcon.removeClass("layui-icon-friends"); // 删除当前图标
|
|
|
|
|
let firstApprovalTime = '<div style="position: absolute;right: 0;top: 35px">';
|
|
|
|
|
// 如果部门负责人审批时间不为空
|
|
|
|
|
if (departmentheadPass === "1") {
|
|
|
|
|
firstApprovalNodeTitle.text("审批人:已通过");
|
|
|
|
|
firstApprovalNodeIcon.addClass("layui-icon-ok"); // 更换为审批通过
|
|
|
|
|
firstApprovalTime += "已通过    ";
|
|
|
|
|
} else {
|
|
|
|
|
firstApprovalTime += "已驳回    ";
|
|
|
|
|
firstApprovalNodeTitle.text("审批人:已驳回");
|
|
|
|
|
firstApprovalNodeIcon.addClass("layui-icon-close"); // 更换为审批未通过
|
|
|
|
|
}
|
|
|
|
|
firstApprovalTime = firstApprovalTime + departmentheadTime + '</div></div>';
|
|
|
|
|
firstApprovalNodeUserName.after(firstApprovalTime);
|
|
|
|
|
firstApprovalNodeUserName.after("<p>审批意见:" + departmentheadMessage + "</p>");
|
|
|
|
|
|
|
|
|
|
// 声明用于depositoryManager节点是第几个节点(默认第二个审批节点)
|
|
|
|
|
let flagForBalancerNode = 2;
|
|
|
|
|
// 配置平衡岗节点(第二个节点)
|
|
|
|
|
if (balancePoster !== "" && departmentheadPass === "1") {
|
|
|
|
|
let nodeName = "balancePoster";
|
|
|
|
|
let timeLineStartItemForId = timeLineStartItem.replace("placeholder", "secondApprovalNode");
|
|
|
|
|
let approvalNode = createApprovalNode(nodeName, record, timeLineStartItemForId);
|
|
|
|
|
// 如果需要平衡岗且第一个节点审批完成
|
|
|
|
|
if (balancePosterPass === "3") {
|
|
|
|
|
flagForBalancerNode = -1; // 不展示
|
|
|
|
|
} else {
|
|
|
|
|
if (balancePosterPass === "1") {
|
|
|
|
|
// 如果平衡岗审批通过
|
|
|
|
|
flagForBalancerNode = 3; // 为第三个节点
|
|
|
|
|
} else if (balancePosterPass === "2") {
|
|
|
|
|
// 如果平衡岗未审批通过
|
|
|
|
|
flagForBalancerNode = -1; // 不展示
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
firstApprovalNode.after(approvalNode);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 配置仓储管理员节点(第三或第二个节点)
|
|
|
|
|
if (depositoryManagerPass !== "4" && departmentheadPass === "1" && flagForBalancerNode !== -1) {
|
|
|
|
|
|
|
|
|
|
let timeLineStartItemForId;
|
|
|
|
|
if (flagForBalancerNode === 2) {
|
|
|
|
|
// 如果是第二个节点
|
|
|
|
|
timeLineStartItemForId = timeLineStartItem.replace("placeholder", "secondApprovalNode");
|
|
|
|
|
} else {
|
|
|
|
|
// 如果是第三个节点
|
|
|
|
|
timeLineStartItemForId = timeLineStartItem.replace("placeholder", "thirdApprovalNode");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 如果可以查看该节点
|
|
|
|
|
let nodeName = "depositoryManager";
|
|
|
|
|
let approvalNode = createApprovalNode(nodeName, record, timeLineStartItemForId);
|
|
|
|
|
if (flagForBalancerNode === 2) {
|
|
|
|
|
// 如果是第二个节点
|
|
|
|
|
firstApprovalNode.after(approvalNode);
|
|
|
|
|
} else {
|
|
|
|
|
// 如果是第三个节点
|
|
|
|
|
$("#secondApprovalNode").after(approvalNode);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 配置出库人员节点
|
|
|
|
|
if (departmentheadPass === "1" && (depositoryManagerPass === "4" || depositoryManagerPass === "1")) {
|
|
|
|
|
let completeOutTime = record.outTime;
|
|
|
|
|
let pass = record.pass;
|
|
|
|
|
let approvalNodeForCompleteOutUserName = '<h3 class="layui-timeline-title">出库人员:';
|
|
|
|
|
let approvalCompleteOutNode;
|
|
|
|
|
let completeOutUserIconPhoto = record.completeOutUserIconPhoto;
|
|
|
|
|
let approvalNodeForCompleteOutUserIconPhoto = '';
|
|
|
|
|
for (let key in completeOutUserIconPhoto) {
|
|
|
|
|
if (completeOutUserIconPhoto.hasOwnProperty(key)) {
|
|
|
|
|
let depositoryManagerIconPhotoItem = '<p>' +
|
|
|
|
|
'<img alt="头像" src="' + completeOutUserIconPhoto[key] + '" style="vertical-align: middle;height: 50px;">' +
|
|
|
|
|
'<span>' + key + '</span>' +
|
|
|
|
|
'</p>';
|
|
|
|
|
approvalNodeForCompleteOutUserIconPhoto += depositoryManagerIconPhotoItem;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (pass === 1) {
|
|
|
|
|
approvalNodeForCompleteOutUserName+='</h3>';
|
|
|
|
|
let approvalNodeForCompleteOutState = '<p>处理状态:出库完成</p>';
|
|
|
|
|
let approvalNodeForCompleteOutTime = '<p>完成时间:' + completeOutTime + '</p>';
|
|
|
|
|
approvalCompleteOutNode = timeLineStartItem.replace("layui-icon-friends", "layui-icon-ok") + approvalNodeForCompleteOutUserName + approvalNodeForCompleteOutUserIconPhoto + approvalNodeForCompleteOutState + approvalNodeForCompleteOutTime + timeLineEndItem;
|
|
|
|
|
} else {
|
|
|
|
|
approvalNodeForCompleteOutUserName+='出库中</h3>';
|
|
|
|
|
approvalCompleteOutNode = timeLineStartItem + approvalNodeForCompleteOutUserName + approvalNodeForCompleteOutUserIconPhoto + timeLineEndItem;
|
|
|
|
|
}
|
|
|
|
|
if (flagForBalancerNode === 2) {
|
|
|
|
|
if (depositoryManagerPass !== "4") {
|
|
|
|
|
|
|
|
|
|
$("#secondApprovalNode").after(approvalCompleteOutNode);
|
|
|
|
|
} else {
|
|
|
|
|
firstApprovalNode.after(approvalCompleteOutNode);
|
|
|
|
|
}
|
|
|
|
|
} else if (flagForBalancerNode === 3) {
|
|
|
|
|
$("#thirdApprovalNode").after(approvalCompleteOutNode);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
layer.close(this.layerIndex);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
selectThisMinRecord = function (obj) {
|
|
|
|
|
// console.log(obj)
|
|
|
|
|
var minId = obj.value;
|
|
|
|
|
layer.open({
|
|
|
|
|
type: 2,
|
|
|
|
|
title: '详情',
|
|
|
|
|
skin: 'layui-layer-rim',
|
|
|
|
|
maxmin: true,
|
|
|
|
|
shadeClose: true, //点击遮罩关闭层
|
|
|
|
|
area: ['100%', '100%'],
|
|
|
|
|
move: '.layui-layer-title',
|
|
|
|
|
fixed: false,
|
|
|
|
|
content: '/form_step_lookByminRecordOut?id=' + minId,
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
downloadExcel = function () {
|
|
|
|
|
window.open("/depositoryRecord/downloadOutRecord?id=" + id, "_self");
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
</script>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|