862 lines
21 KiB
Plaintext
862 lines
21 KiB
Plaintext
|
|
<%@ page contentType="text/html;charset=UTF-8"%>
|
|||
|
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
|
|||
|
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
|||
|
|
<!DOCTYPE html>
|
|||
|
|
<html>
|
|||
|
|
<head>
|
|||
|
|
<%@include file="../../baseset.jsp"%>
|
|||
|
|
<%@include file="../../systemset.jsp"%>
|
|||
|
|
<link rel="stylesheet"
|
|||
|
|
href="${bonuspath}/static/js/layui-v2.9.18/layui/css/layui.css" />
|
|||
|
|
<script src="${bonuspath}/static/js/layui-v2.9.18/layui/layui.js"></script>
|
|||
|
|
<link rel="stylesheet"
|
|||
|
|
href="${bonuspath}/static/plugins/zTree/3.5/zTreeStyle.css" />
|
|||
|
|
<script
|
|||
|
|
src="${bonuspath}/static/plugins/zTree/3.5/jquery.ztree.core-3.5.min.js"></script>
|
|||
|
|
<title></title>
|
|||
|
|
|
|||
|
|
<style type="text/css">
|
|||
|
|
.btn-box {
|
|||
|
|
width: 100%;
|
|||
|
|
height: 80px;
|
|||
|
|
box-sizing: border-box;
|
|||
|
|
display: flex;
|
|||
|
|
justify-content: end;
|
|||
|
|
align-items: center;
|
|||
|
|
padding-right: 2%;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#baseInfo tr {
|
|||
|
|
height: 2.5em;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#baseInfo tr>input {
|
|||
|
|
width: 96%;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.inp {
|
|||
|
|
width: 80%;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.a {
|
|||
|
|
text-align: left;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.tree-div {
|
|||
|
|
padding: 0px 5px;
|
|||
|
|
background: #cae6e8;
|
|||
|
|
border: 1px solid #cae6e8;
|
|||
|
|
width: 300px;
|
|||
|
|
height: 30px;
|
|||
|
|
position: absolute;
|
|||
|
|
top: 24%;
|
|||
|
|
border-radius: 5px;
|
|||
|
|
z-index: 999;
|
|||
|
|
overflow-x: hidden;
|
|||
|
|
cursor: pointer;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.treeTitle {
|
|||
|
|
font-size: 1.2em;
|
|||
|
|
text-align: center;
|
|||
|
|
width: 190px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.required_icon, th span {
|
|||
|
|
font-size: 16px;
|
|||
|
|
color: red;
|
|||
|
|
margin: 0 5px 0 5px
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.layui-form-label {
|
|||
|
|
width: 120px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.layui-form-item .layui-input-inline {
|
|||
|
|
width: 350px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#baseInfo tr th {
|
|||
|
|
vertical-align: middle;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.customTable {
|
|||
|
|
width: 96%;
|
|||
|
|
margin: 0 2% 0 2%;
|
|||
|
|
}
|
|||
|
|
</style>
|
|||
|
|
</head>
|
|||
|
|
<body>
|
|||
|
|
<div id="main-box">
|
|||
|
|
<form class="layui-form" onsubmit="return false;"
|
|||
|
|
onclick="return false;">
|
|||
|
|
<div class="layui-form-item" style="margin-top: 1%;">
|
|||
|
|
<div class="layui-inline">
|
|||
|
|
<label class="layui-form-label"><span class="required_icon">*</span>申请工程</label>
|
|||
|
|
<div class="layui-input-inline layui-input-wrap"
|
|||
|
|
style="background-color: #fff !important;">
|
|||
|
|
<select name="projectId" id="projectId" lay-verify="required" lay-search
|
|||
|
|
class="layui-select">
|
|||
|
|
</select>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="layui-inline">
|
|||
|
|
<label class="layui-form-label"><span class="required_icon">*</span>需用日期</label>
|
|||
|
|
<div class="layui-input-inline layui-input-wrap">
|
|||
|
|
<input type="text" name="needTime" id="needTime"
|
|||
|
|
lay-verify="required" lay-affix="clear" class="layui-input"
|
|||
|
|
placeholder="请选择需用日期" readonly="readonly"
|
|||
|
|
style="cursor: pointer;">
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="layui-form-item">
|
|||
|
|
|
|||
|
|
<div class="layui-inline">
|
|||
|
|
<label class="layui-form-label"><span class="required_icon">*</span>项目部分</label>
|
|||
|
|
<div class="layui-input-inline layui-input-wrap">
|
|||
|
|
<input type="text" name="projectPart" id="projectPart"
|
|||
|
|
lay-verify="required" autocomplete="off" lay-affix="clear"
|
|||
|
|
class="layui-input" maxlength="50" placeholder="请输入项目部分">
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="layui-inline">
|
|||
|
|
<label class="layui-form-label"><span class="required_icon">*</span>施工地点</label>
|
|||
|
|
<div class="layui-input-inline layui-input-wrap">
|
|||
|
|
<input type="text" name="projectContent" id="projectContent"
|
|||
|
|
lay-verify="required" autocomplete="off" lay-affix="clear"
|
|||
|
|
class="layui-input" maxlength="50" placeholder="请输入施工地点">
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="layui-form-item">
|
|||
|
|
<label class="layui-form-label"><span class="required_icon">*</span>计划说明</label>
|
|||
|
|
<div class="layui-input-inline" style="width: 844px;">
|
|||
|
|
<textarea placeholder="请输入计划说明" lay-verify="required" id="remark"
|
|||
|
|
name="remark" class="layui-textarea" maxLength="500"></textarea>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<button type="submit" id="formSubmit" class="layui-btn" lay-submit=""
|
|||
|
|
lay-filter="formData" style="display: none;"></button>
|
|||
|
|
</form>
|
|||
|
|
|
|||
|
|
<table id="baseInfo" cellspacing="0" cellpadding="0" border="0"
|
|||
|
|
class="customTable">
|
|||
|
|
<tbody class="a">
|
|||
|
|
<input type="hidden" name="taskId" value="${taskId}" />
|
|||
|
|
<tr class="out_source">
|
|||
|
|
<td colspan="6">
|
|||
|
|
<table>
|
|||
|
|
<tr>
|
|||
|
|
<td width="90%">
|
|||
|
|
<div style="right: 10%; position: fixed; bottom: auto;"
|
|||
|
|
title="点击拖拽" id="typeTree" class="tree-div">
|
|||
|
|
<div class="treeTitle">
|
|||
|
|
选择机具<a onclick="unfoldOrPickUpTypeTree(this)"
|
|||
|
|
style="font-size: 0.8em; margin-left: 1em; cursor: pointer;"
|
|||
|
|
title="点击开展或收起">展开</a>
|
|||
|
|
</div>
|
|||
|
|
<input style="margin-left: 10px; margin-top: 5px;" type="text"
|
|||
|
|
id="key" placeholder="Search..." value="${keyWord}"
|
|||
|
|
onblur="keyChange(1)" oninput="keyChange(2)" />
|
|||
|
|
<div>
|
|||
|
|
<ul id="machineTypeTree" class="ztree"></ul>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div id="b" onclick="t()"></div>
|
|||
|
|
</td>
|
|||
|
|
|
|||
|
|
</tr>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
</td>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</tr>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<tr>
|
|||
|
|
<td colspan="6">
|
|||
|
|
<table id="machineTable"
|
|||
|
|
class="table table-striped table-bordered table-hover">
|
|||
|
|
<thead>
|
|||
|
|
<tr>
|
|||
|
|
<th style="width: 5%" class="center hidden-480">序号</th>
|
|||
|
|
<th style="width: 15%" class="center">物机类型</th>
|
|||
|
|
<th style="width: 15%" class="center">物机名称</th>
|
|||
|
|
<th style="width: 10%" class="center">规格</th>
|
|||
|
|
<th style="width: 10%" class="center">单位</th>
|
|||
|
|
<th style="width: 10%" class="center"><span>*</span>需用量</th>
|
|||
|
|
<th style="width: 10%" class="center"><span>*</span>需用天数</th>
|
|||
|
|
<th style="width: 15%" class="center">备注</th>
|
|||
|
|
<th style="width: 10%" class="center">操作</th>
|
|||
|
|
</tr>
|
|||
|
|
</thead>
|
|||
|
|
<tbody id="list">
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
<div class="btn-box">
|
|||
|
|
<button class="layui-btn layui-btn-normal save" onclick="saveData2()">提交申请</button>
|
|||
|
|
<button class="layui-btn layui-btn-primary cancel"
|
|||
|
|
onclick="closePage()">返回</button>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<script type="text/javascript">
|
|||
|
|
|
|||
|
|
var machines ={};//机具容器
|
|||
|
|
var p; //父页面对象,多层关闭时使用
|
|||
|
|
|
|||
|
|
var form,laydate,layer;
|
|||
|
|
layui.use(['form', 'laydate'], function(){
|
|||
|
|
form = layui.form;
|
|||
|
|
layer = layui.layer;
|
|||
|
|
laydate = layui.laydate;
|
|||
|
|
laydate.render({
|
|||
|
|
elem: '#needTime'
|
|||
|
|
});
|
|||
|
|
form.verify();
|
|||
|
|
form.on('submit(formData)', function (data) {
|
|||
|
|
submitApply(data);
|
|||
|
|
});
|
|||
|
|
getProSelect();
|
|||
|
|
form.render();
|
|||
|
|
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
function saveData2() {
|
|||
|
|
$('#formSubmit').trigger('click')
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 工程下拉选
|
|||
|
|
function getProSelect() {
|
|||
|
|
$.ajax({
|
|||
|
|
url : bonuspath + '/backstage/planApplication/getProList',
|
|||
|
|
type: 'post',
|
|||
|
|
data: {},
|
|||
|
|
dataType:"JSON",
|
|||
|
|
success: function (result) {
|
|||
|
|
if (result.res === 1) {
|
|||
|
|
setProList(result.obj);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function setProList(list) {
|
|||
|
|
let html = '<option value="">请选择</option>';
|
|||
|
|
if(list && list.length > 0){
|
|||
|
|
$.each(list, function (index, item) {
|
|||
|
|
html += '<option value="' + item.id + '">' + item.name + '</option>';
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
$('#projectId').empty().append(html);
|
|||
|
|
layui.form.render();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
$(function () {
|
|||
|
|
|
|||
|
|
|
|||
|
|
$("#typeTree").mousedown(function(ev){
|
|||
|
|
var div1 = document.getElementById("typeTree");
|
|||
|
|
var oevent = ev || event;
|
|||
|
|
var dx = oevent.clientX;
|
|||
|
|
var distanceX = div1.offsetWidth;
|
|||
|
|
|
|||
|
|
document.onmousemove = function(ev){
|
|||
|
|
var oevent = ev || event;
|
|||
|
|
var diff = oevent.clientX - dx;
|
|||
|
|
div1.style.width = (distanceX - diff) + 'px';
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
document.onmouseup = function(){
|
|||
|
|
document.onmousemove = null;
|
|||
|
|
document.onmouseup = null;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
getMachineTypeTreeData();
|
|||
|
|
|
|||
|
|
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
var leaseCompany = localStorage.getItem("leaseCompany");
|
|||
|
|
var projectName = localStorage.getItem("projectName");
|
|||
|
|
$("#leaseCompany").val(leaseCompany);
|
|||
|
|
$("#projectName").val(projectName);
|
|||
|
|
|
|||
|
|
function t(){
|
|||
|
|
|
|||
|
|
$("#typeTree").css("height", "30px");
|
|||
|
|
$("#typeTree").css("overflow-y",null);
|
|||
|
|
$("#typeTree>a").text("展开");
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 打开或收起类型树
|
|||
|
|
*/
|
|||
|
|
function unfoldOrPickUpTypeTree(that){
|
|||
|
|
if($("#typeTree").outerHeight(true) < 40){
|
|||
|
|
$("#typeTree").css("height","400px");
|
|||
|
|
$("#typeTree").css("overflow-y","auto");
|
|||
|
|
$(that).text("收起");
|
|||
|
|
}else{
|
|||
|
|
$("#typeTree").css("height", "30px");
|
|||
|
|
$("#typeTree").css("overflow-y",null);
|
|||
|
|
$(that).text("展开");
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var nodeArray = [];
|
|||
|
|
var preArray = [];
|
|||
|
|
var nodeObj = {};
|
|||
|
|
|
|||
|
|
//定义树节点初始数据
|
|||
|
|
var zNodes1 = [];
|
|||
|
|
|
|||
|
|
//获取数据初始化树
|
|||
|
|
function getMachineTypeTreeData(name) {
|
|||
|
|
$.ajax({
|
|||
|
|
type : 'POST',
|
|||
|
|
url : bonuspath + '/backstage/planApplication/getDevTreeList',
|
|||
|
|
data : {
|
|||
|
|
name:name
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
success : function(result) {
|
|||
|
|
console.log(result);
|
|||
|
|
/* var nodes = zNodes1.concat(result.obj.list);
|
|||
|
|
nodes.push({id: "0", pId: null, name: "物资类型", open: true,code:""});
|
|||
|
|
$.fn.zTree.init($("#machineTypeTree"), setting1, nodes); */
|
|||
|
|
initData(result.obj);
|
|||
|
|
var nodes = zNodes1.concat(result.obj);
|
|||
|
|
|
|||
|
|
$.fn.zTree.init($("#machineTypeTree"), setting1, nodes);
|
|||
|
|
var treeObj = $.fn.zTree.init($("#machineTypeTree"), setting1, nodes);
|
|||
|
|
fillter(treeObj);
|
|||
|
|
},
|
|||
|
|
error : function(e) {
|
|||
|
|
JY.Model.info(e.resMsg);
|
|||
|
|
},
|
|||
|
|
dataType : 'json'
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
function fillter(treeObj) {
|
|||
|
|
//获得树形图对象
|
|||
|
|
var nodeList = treeObj.getNodes();//展开第一个根节点
|
|||
|
|
for(var i = 0; i < nodeList.length; i++) { //设置节点展开第二级节点
|
|||
|
|
treeObj.expandNode(nodeList[i], false, false, true);
|
|||
|
|
var nodespan = nodeList[i].children;
|
|||
|
|
if(nodespan && nodespan.length > 0){
|
|||
|
|
for(var j = 0; j < nodespan.length; j++) { //设置节点展开第三级节点
|
|||
|
|
treeObj.expandNode(nodespan[j], false, false, true);
|
|||
|
|
var nodespans = nodespan[j].children;
|
|||
|
|
|
|||
|
|
if(nodespans!=null){
|
|||
|
|
for(var k = 0; k < nodespans.length; k++) { //设置节点展开第三级节点
|
|||
|
|
treeObj.expandNode(nodespans[k], false, false, true);
|
|||
|
|
}
|
|||
|
|
}else{
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @author zp
|
|||
|
|
* @date
|
|||
|
|
* @function 将数组里面对象装进 id为键 值为数组中对象的 json对象 以便快速定位到该值
|
|||
|
|
* @returns
|
|||
|
|
*/
|
|||
|
|
function keyChange(flag){
|
|||
|
|
if(flag == 1){
|
|||
|
|
var keyWord = $("#key").val().trim();
|
|||
|
|
if(!JY.Object.notNull(keyWord)){
|
|||
|
|
var nodes = zNodes1.concat(JsonToArray(nodeObj));
|
|||
|
|
$.fn.zTree.init($("#machineTypeTree"), setting1, nodes);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}else{
|
|||
|
|
|
|||
|
|
var keyWord = $("#key").val().trim();
|
|||
|
|
|
|||
|
|
var keyObj = {};
|
|||
|
|
if(nodeArray!=null){
|
|||
|
|
var size = nodeArray.length;
|
|||
|
|
var name="";
|
|||
|
|
var node = {};
|
|||
|
|
var p = {};
|
|||
|
|
var pp = {};
|
|||
|
|
for(var i = 0; i < size ; i++){
|
|||
|
|
node = nodeArray[i];
|
|||
|
|
name = node.name;
|
|||
|
|
if(name.indexOf(keyWord) != -1){
|
|||
|
|
keyObj[node.id] = node;
|
|||
|
|
if(node.level == 3){
|
|||
|
|
p =nodeObj[node.pId];
|
|||
|
|
keyObj[p.id] = p;
|
|||
|
|
pp = nodeObj[p.pId];
|
|||
|
|
keyObj[pp.id] = pp;
|
|||
|
|
for (var key in nodeObj){
|
|||
|
|
if(nodeObj[key].pId == node.id){
|
|||
|
|
keyObj[nodeObj[key].id] = nodeObj[key];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}else if(node.level == 2){
|
|||
|
|
p =nodeObj[node.pId];
|
|||
|
|
keyObj[p.id] = p;
|
|||
|
|
for (var key in nodeObj){
|
|||
|
|
if(nodeObj[key].pId == node.id){
|
|||
|
|
|
|||
|
|
keyObj[nodeObj[key].id] = nodeObj[key];
|
|||
|
|
for(var keyy in nodeObj){
|
|||
|
|
if(nodeObj[keyy].pId == nodeObj[key].id){
|
|||
|
|
keyObj[nodeObj[keyy].id] = nodeObj[keyy];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}else if(node.level == 1){
|
|||
|
|
for (var key in nodeObj){
|
|||
|
|
if(nodeObj[key].pId == node.id){
|
|||
|
|
keyObj[nodeObj[key].id] = nodeObj[key];
|
|||
|
|
for(var keyy in nodeObj){
|
|||
|
|
if(nodeObj[keyy].pId == nodeObj[key].id){
|
|||
|
|
keyObj[nodeObj[keyy].id] = nodeObj[keyy];
|
|||
|
|
for(var keyyy in nodeObj){
|
|||
|
|
if(nodeObj[keyyy].pId == nodeObj[keyy].id){
|
|||
|
|
keyObj[nodeObj[keyyy].id] = nodeObj[keyyy];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}else{
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
var nodes = zNodes1.concat(JsonToArray(keyObj));
|
|||
|
|
$.fn.zTree.init($("#machineTypeTree"), setting1, nodes);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @author
|
|||
|
|
* @date
|
|||
|
|
* @function 将数组里面对象装进 id为键 值为数组中对象的 json对象 以便快速定位到该值
|
|||
|
|
* @returns
|
|||
|
|
*/
|
|||
|
|
function initData(arr){
|
|||
|
|
nodeArray = arr;
|
|||
|
|
preArray = arr;
|
|||
|
|
var size = nodeArray.length;
|
|||
|
|
var node ={};
|
|||
|
|
var key ="";
|
|||
|
|
for(var i = 0;i<size;i++){
|
|||
|
|
node = nodeArray[i];
|
|||
|
|
key=node.id;
|
|||
|
|
nodeObj[key]=node;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @author zp
|
|||
|
|
* @date
|
|||
|
|
* @function 排除指定id的node
|
|||
|
|
* @returns 数组对象
|
|||
|
|
*/
|
|||
|
|
function excludeUnitId(arr){
|
|||
|
|
initData(arr);
|
|||
|
|
if(excludeArr.indexOf(",") == -1){
|
|||
|
|
delete nodeObj[excludeArr];
|
|||
|
|
}else{
|
|||
|
|
var a = excludeArr.split(",");
|
|||
|
|
deleteExclode(a);
|
|||
|
|
}
|
|||
|
|
nodeArray = JsonToArray(nodeObj,1)
|
|||
|
|
return nodeArray;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @author zp
|
|||
|
|
* @date
|
|||
|
|
* @function 将传入的json对值全部封装进数组
|
|||
|
|
* @returns 数组对象
|
|||
|
|
*/
|
|||
|
|
function JsonToArray(obj,flag){
|
|||
|
|
var arr = [];
|
|||
|
|
for (var key in obj){
|
|||
|
|
arr.push(obj[key]);
|
|||
|
|
}
|
|||
|
|
var size = arr.length;
|
|||
|
|
if(flag != 1){
|
|||
|
|
for(var i = 0;i<size;i++){
|
|||
|
|
arr[i].open = true;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return arr;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
//树的设置
|
|||
|
|
var setting1 = {
|
|||
|
|
view : {
|
|||
|
|
selectedMulti : false
|
|||
|
|
},
|
|||
|
|
data : {
|
|||
|
|
simpleData : {
|
|||
|
|
enable : true
|
|||
|
|
},
|
|||
|
|
showTitle:true,
|
|||
|
|
key: {
|
|||
|
|
title: "name" //设置title提示信息对应的属性名称 也就是节点相关的某个属性 这样设置显示的是属性 title的内容
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
edit : {
|
|||
|
|
enable : false
|
|||
|
|
},
|
|||
|
|
callback : {
|
|||
|
|
// 不允许拖拽
|
|||
|
|
onClick : chooseNode,
|
|||
|
|
beforeDrag : beforeDrag,
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//不允许拖拽
|
|||
|
|
function beforeDrag(treeId, treeNodes) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
var oob={};
|
|||
|
|
/**
|
|||
|
|
* 单击节点事件
|
|||
|
|
* @returns
|
|||
|
|
*/
|
|||
|
|
function chooseNode(event,treeId,treeNode){
|
|||
|
|
//console.log(JSON.stringify(treeNode))
|
|||
|
|
if(!treeNode.isParent ){
|
|||
|
|
|
|||
|
|
|
|||
|
|
oob = treeNode;
|
|||
|
|
saveMaInfo(oob);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
function saveMaInfo(oob){
|
|||
|
|
|
|||
|
|
if(JSON.stringify(oob) == JSON.stringify({})){
|
|||
|
|
var indexMsg = layer.confirm("<h5 style='color:red;'>请选择物资!</h5>", {btn: ['关闭']},function(){
|
|||
|
|
layer.close(indexMsg);
|
|||
|
|
});
|
|||
|
|
}else{
|
|||
|
|
if(validPartIsSelected(oob)){
|
|||
|
|
var indexMsg = layer.confirm("<h5 style='color:red;'>已经选择了该物资!</h5>", {btn: ['关闭']},function(){
|
|||
|
|
layer.close(indexMsg);
|
|||
|
|
});
|
|||
|
|
}else{
|
|||
|
|
invokeSubPageFunction(oob);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @author
|
|||
|
|
* @date 2020-04-22
|
|||
|
|
* @function 条件查询
|
|||
|
|
* @returns
|
|||
|
|
*/
|
|||
|
|
function search(){
|
|||
|
|
$("#search").trigger("click")
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @author
|
|||
|
|
* @date 2020-04-24
|
|||
|
|
* @function 启动执行
|
|||
|
|
* @returns
|
|||
|
|
*/
|
|||
|
|
$(function () {
|
|||
|
|
|
|||
|
|
$("#keyWord").keydown(function(e) {
|
|||
|
|
keycode = e.which || e.keyCode;
|
|||
|
|
if (keycode == 13) {
|
|||
|
|
search();
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
p = window.parent;
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @author
|
|||
|
|
* @date 2020-04-29
|
|||
|
|
* @function 提交申请审核结果
|
|||
|
|
* @returns
|
|||
|
|
*/
|
|||
|
|
function submitApply(data){
|
|||
|
|
var machines = [];
|
|||
|
|
var size = $(".pa").size();
|
|||
|
|
if(size == 0){
|
|||
|
|
var indexMsg = layer.confirm("<h5 style='color:red'>您还没有选择任何需求,请先选择设备!</h5>", {btn: ['确认']},function(){
|
|||
|
|
layer.close(indexMsg);})
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
$(".pa").each(function(){
|
|||
|
|
o = paramConversionToObjOfForm2(this);
|
|||
|
|
machines.push(o);
|
|||
|
|
});
|
|||
|
|
data.field.jsonData = JSON.stringify(machines);
|
|||
|
|
let loadingMsg = layer.msg('正在提交保存,请稍等...', {
|
|||
|
|
icon: 16
|
|||
|
|
,shade: 0.01
|
|||
|
|
,time:'0'
|
|||
|
|
});
|
|||
|
|
console.log(JSON.stringify(data.field));
|
|||
|
|
$.ajax({
|
|||
|
|
url: bonuspath +'/backstage/planApplication/addPlan',
|
|||
|
|
type: 'POST',
|
|||
|
|
data: JSON.stringify(data.field),
|
|||
|
|
dataType: 'json',
|
|||
|
|
contentType:"application/json",
|
|||
|
|
beforeSend: function () {
|
|||
|
|
$('.save').addClass("layui-btn-disabled").attr("disabled", true);
|
|||
|
|
$('.cancel').addClass("layui-btn-disabled").attr("disabled", true);
|
|||
|
|
},
|
|||
|
|
success: function (result) {
|
|||
|
|
layer.close(loadingMsg); // 关闭提示层
|
|||
|
|
if (result.res === 1) {
|
|||
|
|
parent.layer.msg(result.msg, { icon: 1 });
|
|||
|
|
closePage(1);
|
|||
|
|
} else{
|
|||
|
|
var indexMsg = layer.confirm(result.resMsg, {btn: ['关闭']},function(){
|
|||
|
|
layer.close(indexMsg);
|
|||
|
|
});
|
|||
|
|
$('.save').removeClass("layui-btn-disabled").attr("disabled", false);
|
|||
|
|
$('.cancel').removeClass("layui-btn-disabled").attr("disabled", false);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
error: function (result) {
|
|||
|
|
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);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//解析表格数据
|
|||
|
|
function paramConversionToObjOfForm2(that){
|
|||
|
|
let obj = {
|
|||
|
|
'moduleId' : $(that).find('th').eq(0).html(),
|
|||
|
|
'type' : $(that).find('th').eq(2).html(),
|
|||
|
|
'typeName': $(that).find('th').eq(3).html(),
|
|||
|
|
'module' : $(that).find('th').eq(4).html(),
|
|||
|
|
'unit' : $(that).find('th').eq(5).html(),
|
|||
|
|
'needNum' : $(that).find('th').eq(6).children('input').val(),
|
|||
|
|
'times' : $(that).find('th').eq(7).children('input').val(),
|
|||
|
|
'remarks' : $(that).find('th').eq(8).children('input').val()
|
|||
|
|
};
|
|||
|
|
return obj;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @author
|
|||
|
|
* @date 2020-04-29
|
|||
|
|
* @function 回调子页面函数
|
|||
|
|
* @returns
|
|||
|
|
*/
|
|||
|
|
function invokeSubPageFunction(obj){
|
|||
|
|
$("#list").append(renderData(obj));
|
|||
|
|
machines[obj.id] = obj;
|
|||
|
|
/* var id = obj.id;
|
|||
|
|
var isCount = obj.isCount;
|
|||
|
|
|
|||
|
|
$.ajax({
|
|||
|
|
type : 'POST',
|
|||
|
|
url : bonuspath + '/backstage/machineType/getNumAndPick',
|
|||
|
|
data : {
|
|||
|
|
id:id,
|
|||
|
|
isCount:isCount
|
|||
|
|
},
|
|||
|
|
dataType : 'json',
|
|||
|
|
success : function(data) {
|
|||
|
|
//alert(JSON.stringify(data))
|
|||
|
|
|
|||
|
|
machines[obj.id] = obj;
|
|||
|
|
obj.storageNum = data.obj.nums;
|
|||
|
|
obj.preOutNum = data.obj.allNums;
|
|||
|
|
|
|||
|
|
var size = Object.getOwnPropertyNames(machines).length
|
|||
|
|
$("#list").append(renderData(obj,size));
|
|||
|
|
},
|
|||
|
|
error : function(e) {
|
|||
|
|
JY.Model.info(e.resMsg);
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
}); */
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var user;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @author
|
|||
|
|
* @date 2020-04-29
|
|||
|
|
* @function 校验是否已经选择
|
|||
|
|
* @returns
|
|||
|
|
*/
|
|||
|
|
function validPartIsSelected(obj){
|
|||
|
|
if(machines[obj.id]){
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @author
|
|||
|
|
* @date 2020-04-29
|
|||
|
|
* @function 渲染数据
|
|||
|
|
* @returns
|
|||
|
|
*/
|
|||
|
|
function renderData(obj){
|
|||
|
|
console.info(obj)
|
|||
|
|
var index = $('.pa').size() + 1;
|
|||
|
|
var html = "";
|
|||
|
|
html += "<tr class='pa'>";
|
|||
|
|
html += "<th class='center' style='display:none'>"+obj.id+"</th>";
|
|||
|
|
html += "<th class='center'>"+index+"</th>";
|
|||
|
|
html += "<th class='center'>"+setNullValue(obj.ppName)+"</th>";
|
|||
|
|
html += "<th class='center'>"+setNullValue(obj.pName)+"</th>";
|
|||
|
|
html += "<th class='center'>"+setNullValue(obj.name)+"</th>";
|
|||
|
|
html += "<th class='center'>"+setNullValue(obj.unit)+"</th>";
|
|||
|
|
html += "<th class='center'><input style='width:90%;height:2.5em;border: 1px solid #d5d5d5 !important;padding: 0 5px 0 5px;' onblur='validNum(this,1)' maxLength='8' value='1'></th>";
|
|||
|
|
html += "<th class='center'><input style='width:90%;height:2.5em;border: 1px solid #d5d5d5 !important;padding: 0 5px 0 5px;'onblur='validNum(this,2)' maxLength='4' value='1'></th>";
|
|||
|
|
/* if(JY.Object.notNull(obj.unitName)){
|
|||
|
|
html += "<th class='center'>"+obj.unitName+"</th>";
|
|||
|
|
}else{
|
|||
|
|
html += "<th class='center'>暂无</th>";
|
|||
|
|
} */
|
|||
|
|
/* if(JY.Object.notNull(obj.keepName)){
|
|||
|
|
html += "<th class='center'>"+obj.keepName+"</th>";
|
|||
|
|
}else{
|
|||
|
|
html += "<th class='center'>暂无</th>";
|
|||
|
|
} */
|
|||
|
|
html += "<th class='center'><input onblur='checkText(this)' maxLength='255' filed='remarks,val' type='text' style='width:100%;height:2.5em;'></th>";
|
|||
|
|
html += "<th class='center'><a style='color:#4491d3;cursor: pointer;' onclick='delPartData("+obj.id+",this)'>删除</a></th></tr>";
|
|||
|
|
|
|||
|
|
return html;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 设置空值
|
|||
|
|
function setNullValue(value){
|
|||
|
|
if(!value){
|
|||
|
|
return '/';
|
|||
|
|
}
|
|||
|
|
return value;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @author
|
|||
|
|
* @date 2019-06-19
|
|||
|
|
* @function
|
|||
|
|
* @returns
|
|||
|
|
*/
|
|||
|
|
function validNum(that,type){
|
|||
|
|
var num = $(that).val();
|
|||
|
|
if(type === 1){ // 需用量 最少为1 最大不能超过十位数
|
|||
|
|
const regex = /^(?!0\d)\d{1,8}$/;
|
|||
|
|
if(!regex.test(num)){
|
|||
|
|
var indexMsg = layer.confirm("<h5 style='color:red'>需用量最少为1,最大输入6位数,且为正整数!</h5>", {btn: ['确认']},function(){
|
|||
|
|
layer.close(indexMsg);})
|
|||
|
|
$(that).val(1);
|
|||
|
|
}
|
|||
|
|
}else if(type === 2){ // 需用天数
|
|||
|
|
const regex = /^(?!0\d)\d{1,4}$/;
|
|||
|
|
if(!regex.test(num)){
|
|||
|
|
var indexMsg = layer.confirm("<h5 style='color:red'>需用天数最少为1,最大输入4位数,且为正整数!</h5>", {btn: ['确认']},function(){
|
|||
|
|
layer.close(indexMsg);})
|
|||
|
|
$(that).val(1);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @author
|
|||
|
|
* @date 2019-08-27
|
|||
|
|
* @function
|
|||
|
|
* @returns
|
|||
|
|
*/
|
|||
|
|
function delPartData(id,that){
|
|||
|
|
var indexMsg = layer.confirm("<h5 style='color:red'>您确定删除此条数据吗?</h5>", {btn: ['确定','取消']},function(){
|
|||
|
|
layer.close(indexMsg);
|
|||
|
|
$(that).parent().parent().remove();
|
|||
|
|
delete machines[id];
|
|||
|
|
if($('.pa').size() > 0){
|
|||
|
|
$("#list .pa").each(function(index,item){
|
|||
|
|
console.log(index);
|
|||
|
|
$(this).find('th').eq(1).html(index + 1)
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 关闭页面
|
|||
|
|
function closePage(type) {
|
|||
|
|
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
|||
|
|
if (type == 1) {
|
|||
|
|
window.parent.reloadData();
|
|||
|
|
}
|
|||
|
|
parent.layer.close(index); //再执行关闭
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
</script>
|
|||
|
|
</body>
|
|||
|
|
</html>
|