<!DOCTYPE html>
|
<html>
|
<head>
|
<meta charset="utf-8" />
|
<title>生产资源产能</title>
|
<link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
|
<link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
|
<script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
|
<script src="../../../layuiadmin/layui/layui.js"></script>
|
<script src="../../../layuiadmin/Scripts/json2.js"></script>
|
<script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
|
<script src="../../../layuiadmin/Scripts/webConfig.js"></script>
|
<script src="../../../layuiadmin/PubCustom.js"></script>
|
<style>
|
/* 防止下拉框的下拉列表被隐藏---必须设置--- */
|
.layui-table-cell {
|
overflow: visible !important;
|
}
|
/* 使得下拉框与单元格刚好合适 */
|
td .layui-form-select {
|
margin-top: -10px;
|
margin-left: -15px;
|
margin-right: -15px;
|
}
|
</style>
|
</head>
|
<body>
|
<div class="layui-fluid" style="padding: 0;">
|
<div class="layui-card" style="padding: 2px;background-color: #efefef;">
|
<div class="layui-card-body" style="padding: 1px;">
|
<form class="layui-form" action="" lay-filter="formData" style="background-color:white;">
|
<div style="padding: 10px;">
|
<button class="layui-btn layui-btn-normal" type="button" lay-submit="" lay-filter="Exit" id="Exit">退出</button>
|
<button class="layui-btn layui-btn-normal" type="button" lay-submit="" lay-filter="btnSave" id="btnSave">保存</button>
|
</div>
|
<div class="layui-tab" lay-filter="tab-POStockInBill">
|
<div class="layui-tab-content">
|
<div class="layui-tab-item layui-show">
|
<div class="layui-form-item" style="padding-top: 10px;">
|
<div class="layui-row">
|
<div class="layui-inline">
|
<label class="layui-form-label" style="width: 85px;">物料代码</label>
|
<div class="layui-input-block" style="margin-left: 120px;">
|
<input type="text" class="layui-input" name="HMaterNumber" lay-verify="HMaterNumber" id="HMaterNumber" style="width: 100%; display: inline-block; background-color: #efefef4d;" readonly>
|
<input type="hidden" class="layui-input" name="HMaterID" lay-verify="HMaterID" id="HMaterID" value="0">
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label" style="width: 85px;">物料名称</label>
|
<div class="layui-input-block" style="margin-left: 120px;">
|
<input type="text" class="layui-input" name="HMaterName" lay-verify="HMaterName" id="HMaterName" style="width: 100%; display: inline-block; background-color: #efefef4d;" readonly>
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label" style="width: 85px;">规格型号</label>
|
<div class="layui-input-block" style="margin-left: 120px;">
|
<input type="text" class="layui-input" name="HMaterModel" lay-verify="HMaterModel" id="HMaterModel" style="width: 100%; display: inline-block; background-color: #efefef4d;" readonly>
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label" style="width: 85px;">工序</label>
|
<div class="layui-input-block" style="margin-left: 120px;">
|
<input type="text" class="layui-input" name="HProcName" lay-verify="HProcName" id="HProcName" style="width: 100%; display: inline-block; background-color: #efefef4d;" readonly>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
<table class="layui-hide" id="mainTable" lay-filter="mainTable"></table>
|
<script type="text/html" id="toolbarDemo">
|
<div class="layui-btn-container">
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-AddLine"><i class="layui-icon layui-icon-form"></i>增加一行</button>
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-CopyLine"><i class="layui-icon layui-icon-form"></i>复制一行</button>
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="btn_Refresh"><i class="layui-icon layui-icon-form"></i>刷新优先级</button>
|
</div>
|
</script>
|
</form>
|
</div>
|
</div>
|
</div>
|
</body>
|
</html>
|
<script type="text/html" id="barDemo">
|
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
|
</script>
|
<script>
|
|
//#region 文本框输入搜索相关数据-变量
|
var childPage = null; //获取子窗口对象,用于操作子窗口的变量和方法
|
var currRowIndex = 0; //用于定位子窗口当前选中的行
|
var childData = null; //用于获取子窗口返回的数据
|
//#endregion
|
|
layui.config({
|
base: '../../../layuiadmin/' //静态资源所在路径
|
}).extend({
|
index: 'lib/index' //主入口模块
|
}).use(['index', 'form', 'laydate', 'table', 'element'], function () {
|
//参数
|
var params = getUrlVars();
|
var HMaterNumber = params[params[0]]; //从参数中获取 物料代码
|
var HMaterName = params[params[1]]; //从参数中获取 物料名称
|
var HMaterModel = params[params[2]]; //从单据获取 规格型号
|
var HProcName = params[params[3]]; //从单据获取 工序名称
|
var HBillInterID = params[params[4]]; //从单据获取 单据ID
|
var HBillEntryID = params[params[5]]; //从单据获取 单据子ID
|
|
//#region 公共变量
|
var $ = layui.$
|
, admin = layui.admin
|
, layer = layui.layer
|
, table = layui.table
|
, form = layui.form
|
, element = layui.element;
|
//查询条件
|
var sWhere = "";
|
var option = [];
|
var rowdata = [{
|
"HInterID": HBillInterID, "HEntryID": HBillEntryID, "HSourceID": 0, "HSourceNumber": "", "HSourceName": ""
|
, "HWorkQty_Source": "", "HEntryStdEmpQty": "", "HEntryStdEmpAvg": "", "HSortNum": "", "HRemark": ""
|
}];
|
//#endregion
|
|
//#region 进入页面即加载
|
|
//初始化界面
|
set_ClearBill();
|
|
//#endregion
|
|
//#region 触发事件:包括form.on(){}格式的所有点击事件、选择事件等
|
|
//保存提交
|
form.on('submit(btnSave)', function (data) {//提交
|
set_AddNew(data);
|
});
|
|
//退出
|
form.on('submit(Exit)', function () {
|
Pub_Close(1);
|
})
|
|
//头工具栏事件
|
table.on('toolbar(mainTable)', function (obj) {
|
var checkStatus = table.checkStatus('mainTable')
|
, data = checkStatus.data;
|
//新增行表格数据
|
var NewRow = {
|
"HInterID": HBillInterID, "HEntryID": HBillEntryID, "HSourceID": 0, "HSourceNumber": "", "HSourceName": ""
|
, "HWorkQty_Source": "", "HEntryStdEmpQty": "", "HEntryStdEmpAvg": "", "HSortNum": "", "HRemark": ""
|
};
|
|
switch (obj.event) {
|
case 'btn-AddLine':
|
table.cache["mainTable"].push(NewRow);
|
option.data = table.cache["mainTable"];
|
|
table.render(option);
|
break;
|
case 'btn-CopyLine':
|
var copydata = JSON.stringify(data);
|
if (data.length <= 0) {
|
layer.msg("请选择需要复制的一行!");
|
}
|
else if (data.length > 1) {
|
layer.msg("只能选择复制一行!");
|
}
|
else {
|
var copydata2 = copydata.substring(1, copydata.length);//去除首行字符'['
|
var copyrow = copydata2.substring(0, copydata2.length - 1);//去除末尾字符']'
|
table.cache["mainTable"].push(JSON.parse(copyrow));//将复制的行强转成json追加到表格上
|
option.data = table.cache["mainTable"];//将数据绑定到data上
|
table.render(option);//将数据渲染到表格上
|
}
|
break;
|
//刷新流水号
|
case 'btn_Refresh':
|
btn_Refresh(data);
|
break;
|
}
|
});
|
|
//行内事件
|
table.on('tool(mainTable)', function (obj) {
|
set_GridDelete(obj); //行内删除
|
set_GridCellCheck(obj); //行内快捷键筛选
|
});
|
|
//#endregion
|
|
//#region 此页面所有的方法
|
|
//初始化界面
|
function set_ClearBill() {
|
$("#HMaterNumber").val(getParams("HMaterNumber"));
|
$("#HMaterName").val(getParams("HMaterName"));
|
$("#HMaterModel").val(getParams("HMaterModel"));
|
$("#HProcName").val(getParams("HProcName"));
|
|
set_InitGrid();
|
|
RoadBillMain(HBillInterID, HBillEntryID);
|
}
|
|
//保存HMaker
|
function set_AddNew(data) {
|
$('#btnSave').addClass("layui-btn-disabled").attr("disabled", true);//禁用保存按钮
|
|
var num = [];
|
for (var i = 0; i < table.cache["mainTable"].length; i++) {
|
if (table.cache["mainTable"][i] != "") {
|
table.cache["mainTable"][i].LAY_TABLE_INDEX = i;
|
num.push(table.cache["mainTable"][i])
|
}
|
}
|
|
var sSubStr = JSON.stringify(num);
|
//var hentryid = linteridSub;//子表 排序id
|
var sMainSub = sSubStr + ";" + sessionStorage["HUserName"];
|
|
$.ajax({
|
url: GetWEBURL() + '/Gy_RoutingBillSub/AddWorkQty',
|
type: "POST",
|
data: { "sMainSub": sMainSub },
|
success: function (data1) {
|
if (data1.count == 1) {
|
layer.msg(data1.Message);
|
} else {
|
$('#btnSave').removeClass("layui-btn-disabled").attr("disabled", false);//启用保存按钮
|
layer.alert(data1.code + data1.Message, { icon: 5 });
|
}
|
}, error: function () {
|
$('#btnSave').removeClass("layui-btn-disabled").attr("disabled", false);//启用保存按钮
|
layer.alert("接口请求失败!", { icon: 5 });
|
}
|
});
|
}
|
|
//初始化页面
|
function set_InitGrid() {
|
option = {
|
elem: '#mainTable'
|
, toolbar: '#toolbarDemo'
|
, limit: 500
|
, height: 500
|
, totalRow: true
|
, loading: false
|
, cols: [[ //表头
|
{ type: 'checkbox', totalRowText: '合计行' }
|
, { type: 'numbers', title: '序号', totalRow: true }
|
, { field: 'HInterID', title: 'HInterID', hide: true }
|
, { field: 'HEntryID', title: 'HEntryID', hide: true }
|
, { field: 'HSourceID', title: '生产资源ID', hide: true }
|
, { field: 'HSourceNumber', title: '生产资源代码', edit: 'text', event: "HSourceNumber" }
|
, { field: 'HSourceName', title: '生产资源' }
|
, { field: 'HWorkQty_Source', title: '产能', edit: 'text' }
|
, { field: 'HEntryStdEmpQty', title: '标准人数', edit: 'text' }
|
, { field: 'HEntryStdEmpAvg', title: '人均产能', edit: 'text' }//f7
|
, { field: 'HSortNum', title: '优先级', edit: 'text' }
|
, { field: 'HRemark', title: '备注', edit: 'text' }//f7
|
, { fixed: 'right', title: '操作', toolbar: '#barDemo' }
|
]]
|
}
|
|
option.data = rowdata;
|
table.render(option);
|
}
|
|
//#region编辑 页面赋值
|
function RoadBillMain(HInterID,HEntryID)//加载表头
|
{
|
|
$.ajax({
|
url: GetWEBURL() + "/Gy_RoutingBill/EditWorkQty",
|
type: "GET",
|
async: false,
|
data: { "HInterID": HInterID, "HEntryID": HEntryID },
|
success: function (result) {
|
if (result.count == 1) {
|
var data = result.data;
|
|
var HDataArr = [];
|
for (var i = 0; i < data.length; i++) {
|
HDataArr.push({
|
"HInterID": data[i].hmainid, "HEntryID": data[i].hsubid, "HSourceID": data[i].HSourceID, "HSourceNumber": data[i].生产资源代码
|
, "HSourceName": data[i].生产资源名称, "HWorkQty_Source": data[i].生产资源产能, "HEntryStdEmpQty": data[i].生产资源标准人数
|
, "HEntryStdEmpAvg": data[i].生产资源人均产能, "HSortNum": data[i].优先级, "HRemark": data[i].备注
|
})
|
}
|
|
option.data = HDataArr
|
table.render(option);
|
} else {
|
option.data = rowdata;
|
table.render(option);
|
}
|
}, error: function () {
|
layer.close(ajaxLoad);
|
layer.alert("接口请求失败!", { icon: 5 });
|
}
|
})
|
}
|
//#endregion
|
|
//自动配置优先级
|
function btn_Refresh(data) {
|
for (var i = 0; i < option.data.length; i++) {
|
option.data[i]["HSortNum"] = (i + 1) * 10;
|
}
|
table.render(option);
|
}
|
|
//#region F7快捷键
|
function set_GridCellCheck(obj) {
|
$(document).off('keydown', ".layui-table-edit").on('keydown', '.layui-table-edit', function (e) {
|
//#region 子表文本框输入后检索数据
|
if (event.key != "F7") {
|
var errKeys = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight", "Enter"];
|
if (obj.event == "HSourceNumber") { //定位当前正在输入的文本框的列名
|
if ($.inArray(event.key, errKeys) == -1) { //如果按下的键位不是 方向键,则刷新弹窗中的数据
|
if (childPage == null) { //判断当前子窗口是否已经打开,若未打卡,则打开页面,并获取子窗口的对象
|
var offset = $(this).offset(); //获取触发事件的元素的位置,用于定位子窗口打开的位置
|
var innerHeight = window.innerHeight;
|
var top = offset.top + 0.05 * innerHeight;
|
var left = offset.left;
|
if (top + 0.05 * innerHeight + 0.3 * innerHeight > innerHeight) {
|
top = top - 0.3 * innerHeight - 0.05 * innerHeight;
|
}
|
layer.open({
|
type: 2 //弹窗类型
|
, skin: 'layui-layer-rim' //加上边框
|
, area: ['25%', '30%'] //大小
|
, shadeClose: true //点击遮罩时关闭弹窗
|
, offset: [top, left]
|
, title: false //不显示标题栏
|
//, title: '项目费用列表' //标题
|
, shift: 2 //弹出动画
|
, closeBtn: 0 //禁用关闭按钮
|
, content: ["../../基础资料/通用基础资料/Gy_CommonBaseData.html?OperationType=2", "yes"]
|
, success: function (layero, index) {
|
setTimeout(function () {
|
var value = $(e.currentTarget).val().replace("'", ""); //获取文本框最新值
|
currRowIndex = 0;
|
var tableView = "h_v_Gy_SourceList";
|
var childSWhere = "select top(10) HItemID,生产资源代码,生产资源名称 from " + tableView + " where 1=1 and (生产资源代码 like '%" + value + "%' or 生产资源名称 like '%" + value + "%') order by 生产资源代码 desc";
|
childPage.getData(childSWhere, tableView);
|
}, 200);
|
}
|
, end: function () {
|
obj.event = "";
|
childPage = null;
|
currRowIndex = 0;
|
if (childData != null) {
|
obj.update({
|
"HSourceID": childData.HItemID
|
, "HSourceNumber": childData.生产资源代码
|
, "HSourceName": childData.生产资源名称
|
})
|
|
childData = null;
|
}
|
}
|
});
|
} else {
|
setTimeout(function () {
|
var value = $(e.currentTarget).val().replace("'", ""); //获取文本框最新值
|
currRowIndex = 0;
|
var tableView = "h_v_Gy_SourceList";
|
var childSWhere = "select top(10) HItemID,生产资源代码,生产资源名称 from " + tableView + " where 1=1 and (生产资源代码 like '%" + value + "%' or 生产资源名称 like '%" + value + "%') order by 生产资源代码 desc";
|
childPage.getData(childSWhere, tableView);
|
}, 200);
|
}
|
} else { //如果按下的键位是 方向键,则调整窗口中 选中行 的位置
|
if (event.key == "ArrowUp") {
|
currRowIndex--;
|
childPage.setSelectedRow(currRowIndex);
|
} else if (event.key == "ArrowDown") {
|
currRowIndex++;
|
childPage.setSelectedRow(currRowIndex);
|
} else if (event.key == "Enter") {
|
//手动失焦
|
var element = document.getElementById("HBillNo");
|
element.focus();
|
|
childPage.getSelectedData(currRowIndex);
|
|
if (childData != null) {
|
obj.update({
|
"HSourceID": childData.HItemID
|
, "HSourceNumber": childData.生产资源代码
|
, "HSourceName": childData.生产资源名称
|
})
|
|
childData = null;
|
}
|
|
|
childPage = null;
|
currRowIndex = 0;
|
childData = null;
|
obj.event = "";
|
}
|
}
|
}
|
|
}
|
//#endregion
|
|
if (event.key == "F7") {
|
//生产资源
|
if (obj.event == "HSourceNumber") {
|
//打开人员表 小窗体
|
layer.open({
|
type: 2
|
, skin: "layui-layer-rim" //加上边框
|
, title: "生产资源列表" //标题
|
, closeBtn: 1 //窗体右上角关闭 的 样式
|
, shift: 2 //弹出动画
|
, area: ["90%", "90%"] //窗体大小
|
, maxmin: true //设置最大最小按钮是否显示
|
, content: ['../../基础资料/生产基础资料/Gy_Source.html', 'yes']
|
, btn: ["确定", "取消"]
|
, btn1: function (index, laero) {
|
//按钮一 的回调
|
var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
|
var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
|
|
if (checkStatus.data.length != 1) {
|
return layer.msg("请选择一条数据");
|
}
|
//更新表格缓存的数据
|
obj.update({
|
"HSourceID": checkStatus.data[0].HItemID
|
, "HSourceNumber": checkStatus.data[0].生产资源代码
|
, "HSourceName": checkStatus.data[0].生产资源名称
|
})
|
layer.close(index);//关闭弹窗
|
}
|
})
|
}
|
|
obj.event = "";
|
return false;
|
}
|
})
|
}
|
//#endregion
|
|
//行内删除
|
function set_GridDelete(obj) {
|
var data = obj.data;
|
var rowIndex = $(obj.tr).attr("data-index");
|
if (obj.event === 'del') {
|
layer.confirm('真的删除行吗?', function (index) {
|
obj.del();
|
option.data = table.cache["mainTable"];//将数据绑定到data上
|
table.reload(option);
|
layer.close(index);
|
});
|
}
|
}
|
|
//获取参数
|
function getUrlVars() {
|
var vars = [], hash;
|
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
|
for (var i = 0; i < hashes.length; i++) {
|
hash = hashes[i].split('=');
|
vars.push(hash[0]);
|
vars[hash[0]] = hash[1];
|
}
|
return vars;
|
}
|
|
//将url参数中的中文乱码重新转换成中文
|
function getParams(key) {
|
var reg = new RegExp("(^|&)" + key + "=([^&]*)(&|$)");
|
//如果地址栏中出现中文则进行编码
|
var r = encodeURI(window.location.search).substr(1).match(reg);
|
if (r != null) {
|
//将中文编码的字符重新变成中文
|
return decodeURI(unescape(r[2]));
|
}
|
return null;
|
};
|
|
//#endregion
|
|
});
|
|
|
</script>
|