2021-01-21 01:06:55 +08:00
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html>
|
|
|
|
|
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="utf-8">
|
|
|
|
|
<title>layui</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="../../../lib/layui-v2.5.5/css/layui.css" media="all">
|
|
|
|
|
<link rel="stylesheet" href="../../../css/public.css" media="all">
|
|
|
|
|
<style>
|
|
|
|
|
body {
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
<body>
|
|
|
|
|
<div class="layui-form layuimini-form">
|
|
|
|
|
|
|
|
|
|
<div class="layui-form-item">
|
|
|
|
|
<label class="layui-form-label required">设计总成图号</label>
|
|
|
|
|
<div class="layui-input-block">
|
|
|
|
|
<input type="text" name="designAssyNum" required lay-verify="required" lay-reqtext="设计总成图号不能为空"
|
|
|
|
|
placeholder="请输入设计总成图号" value="" class="layui-input">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="layui-form-item">
|
|
|
|
|
<label class="layui-form-label required">BOM名称</label>
|
|
|
|
|
<div class="layui-input-block">
|
|
|
|
|
<input type="text" name="name" required lay-verify="required" lay-reqtext="BOM名称不能为空"
|
|
|
|
|
placeholder="请输入BOM名称" value="" class="layui-input">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2021-01-25 02:01:17 +08:00
|
|
|
|
<div class="layui-form-item">
|
|
|
|
|
<label class="layui-form-label">备注</label>
|
|
|
|
|
<div class="layui-input-block">
|
|
|
|
|
<input type="text" name="remark" placeholder="请输入备注" value="" class="layui-input">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2021-01-21 01:06:55 +08:00
|
|
|
|
<div class="layui-form-item">
|
|
|
|
|
|
|
|
|
|
<script type="text/html" id="toolbar">
|
|
|
|
|
<div class="layui-btn-container">
|
|
|
|
|
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="addLine">添加</button>
|
|
|
|
|
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="deleteLine">删除</button>
|
|
|
|
|
</div>
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<table class="layui-hide" id="addBOMDetailsList" lay-filter="addBOMDetailsList"></table>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="layui-form-item">
|
|
|
|
|
<div class="layui-input-block">
|
|
|
|
|
<button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<script src="../../../lib/layui-v2.5.5/layui.js" charset="utf-8"></script>
|
|
|
|
|
<script src="../../../js/PublicParameters/PublicParameters.js" charset="utf-8"></script>
|
|
|
|
|
<script>
|
|
|
|
|
layui.use(['form', 'table'], function () {
|
|
|
|
|
var form = layui.form,
|
|
|
|
|
layer = layui.layer,
|
|
|
|
|
table = layui.table;
|
|
|
|
|
$ = layui.$;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
table.render({
|
|
|
|
|
elem: '#addBOMDetailsList',
|
|
|
|
|
skin: 'row', //边框风格
|
|
|
|
|
even: true, //开启隔行背景
|
2021-01-25 02:01:17 +08:00
|
|
|
|
data: [],
|
2021-01-21 01:06:55 +08:00
|
|
|
|
toolbar: '#toolbar',
|
|
|
|
|
defaultToolbar: [],
|
|
|
|
|
cols: [[
|
|
|
|
|
{ type: "checkbox", width: 50 },
|
|
|
|
|
{ type: "numbers", title: '序号', width: 50 },
|
2021-01-25 02:01:17 +08:00
|
|
|
|
{ field: 'relationshipName', width: 120, title: '所属关系', sort: true, align: "center", edit: "text" },
|
|
|
|
|
{ field: 'codeOrFigureNum', width: 150, title: '代号(图号)', sort: true, align: "center", edit: "text" },
|
|
|
|
|
{ field: 'nameAndSpecs', width: 200, title: '名称及规格', align: "left", edit: "text" },
|
|
|
|
|
{ field: 'materials', width: 150, title: '材料', align: "left", edit: "text" },
|
|
|
|
|
{ field: 'suppliersName', width: 150, title: '供应商', align: "left", edit: "text" },
|
|
|
|
|
{ field: 'amountOfUnit', width: 100, title: '单台用量', align: "center", edit: "text" },
|
|
|
|
|
{ field: 'unit', width: 60, title: '单位', align: "center", edit: "text" },
|
|
|
|
|
{ field: 'price', width: 60, title: '单价', align: "center", edit: "text" },
|
|
|
|
|
{ field: 'amount', width: 80, title: '金额', align: "center", edit: "text" },
|
|
|
|
|
{ field: 'borrowings', width: 150, title: '借用件(共用属性)', align: "left", edit: "text" },
|
|
|
|
|
{ field: 'remark', width: 275, title: '备注', align: "left", edit: "text" },
|
2021-01-21 01:06:55 +08:00
|
|
|
|
]],
|
2021-01-25 02:01:17 +08:00
|
|
|
|
limit: 999,
|
2021-01-21 01:06:55 +08:00
|
|
|
|
page: false,
|
|
|
|
|
skin: 'line'
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* toolbar监听事件
|
|
|
|
|
*/
|
|
|
|
|
table.on('toolbar(addBOMDetailsList)', function (obj) {
|
|
|
|
|
if (obj.event === 'addLine') { // 监听添加操作
|
|
|
|
|
var Data = table.cache["addBOMDetailsList"];
|
|
|
|
|
var datas = {
|
2021-01-25 02:01:17 +08:00
|
|
|
|
"relationshipName": "", "codeOrFigureNum": "", "nameAndSpecs": "", "materials": "", "suppliersName": "", "amountOfUnit": "",
|
|
|
|
|
"unit": "", "price": "", "amount": "", "borrowings": "", "remark": ""
|
2021-01-21 01:06:55 +08:00
|
|
|
|
}
|
|
|
|
|
Data.push(datas);
|
|
|
|
|
table.reload('addBOMDetailsList', {
|
|
|
|
|
data: Data
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$(window).on("resize", function () {
|
|
|
|
|
layer.full(index);
|
|
|
|
|
});
|
|
|
|
|
} else if (obj.event === 'deleteLine') { // 监听删除操作
|
|
|
|
|
var checkStatus = table.checkStatus('addBOMDetailsList');
|
|
|
|
|
if (checkStatus.data.length == 0) {
|
|
|
|
|
layer.alert('请选择至少一条数据!');
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var tableDT = table.cache["addBOMDetailsList"];
|
|
|
|
|
var tableArr = [];
|
|
|
|
|
for (var i = 0; i < tableDT.length; i++) {//遍历表格缓存数组
|
|
|
|
|
var btnObj = tableDT[i];
|
|
|
|
|
if (btnObj.LAY_CHECKED) {//条件:选中
|
|
|
|
|
tableDT.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
|
|
|
|
|
i--;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
tableArr = tableDT;
|
|
|
|
|
|
|
|
|
|
table.reload("addBOMDetailsList", {
|
|
|
|
|
data: tableArr // 将新数据重新载入表格
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//监听提交
|
|
|
|
|
form.on('submit(saveBtn)', function (data) {
|
|
|
|
|
layer.confirm('确认保存吗?', function () {
|
|
|
|
|
var apiUrl = GetWebApiUrl();
|
|
|
|
|
var CurrUserInfo = layui.sessionData('CurrUserInfo');
|
2021-01-25 02:01:17 +08:00
|
|
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
|
url: apiUrl + "/api/services/app/BOM/CheckBOM", //请求的url地址
|
|
|
|
|
dataType: "json", //返回格式为json
|
|
|
|
|
//async: false,//请求是否异步,默认为异步,这也是ajax重要特性
|
|
|
|
|
contentType: 'application/json',
|
|
|
|
|
data: JSON.stringify({
|
|
|
|
|
designAssyNum: data.field.designAssyNum,
|
|
|
|
|
name: data.field.name,
|
|
|
|
|
remark: data.field.remark,
|
|
|
|
|
createTime: getDatetime(),
|
|
|
|
|
createUserID: CurrUserInfo.data.userid,
|
|
|
|
|
createUserName: CurrUserInfo.data.userName,
|
|
|
|
|
isAnnex: 0,
|
|
|
|
|
isDelete: 0
|
|
|
|
|
}), //参数值
|
|
|
|
|
type: "POST", //请求方式
|
|
|
|
|
success: function (req) {
|
|
|
|
|
//请求成功时处理
|
|
|
|
|
if (req.result.code != 1) {
|
|
|
|
|
layer.msg("设计总成图号存在重复,请修改后再保存!");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
error: function () {
|
|
|
|
|
/*错误信息处理*/
|
|
|
|
|
layer.msg("验证BOM信息失败,请重试!");
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var addBOMDetailsListData = table.cache["addBOMDetailsList"];
|
|
|
|
|
for (let index = 0; index < addBOMDetailsListData.length; index++) {
|
|
|
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
|
url: apiUrl + "/api/services/app/BOMDetails/CheckBOMDetails", //请求的url地址
|
|
|
|
|
dataType: "json", //返回格式为json
|
|
|
|
|
//async: false,//请求是否异步,默认为异步,这也是ajax重要特性
|
|
|
|
|
contentType: 'application/json',
|
|
|
|
|
data: JSON.stringify({
|
|
|
|
|
codeOrFigureNum: addBOMDetailsListData[index].codeOrFigureNum,
|
|
|
|
|
|
|
|
|
|
isAnnex: 0,
|
|
|
|
|
isDelete: 0
|
|
|
|
|
}), //参数值
|
|
|
|
|
type: "POST", //请求方式
|
|
|
|
|
success: function (req) {
|
|
|
|
|
//请求成功时处理
|
|
|
|
|
if (req.result.code != 1) {
|
|
|
|
|
layer.msg("序号:" + index + " 的代号(图号)重复,请修改后再保存!");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
error: function () {
|
|
|
|
|
/*错误信息处理*/
|
|
|
|
|
layer.msg("保存失败,请重试!");
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
2021-01-21 01:06:55 +08:00
|
|
|
|
}
|
2021-01-25 02:01:17 +08:00
|
|
|
|
|
2021-01-21 01:06:55 +08:00
|
|
|
|
$.ajax({
|
2021-01-25 02:01:17 +08:00
|
|
|
|
url: apiUrl + "/api/services/app/BOM/CreateBOM", //请求的url地址
|
2021-01-21 01:06:55 +08:00
|
|
|
|
dataType: "json", //返回格式为json
|
|
|
|
|
//async: false,//请求是否异步,默认为异步,这也是ajax重要特性
|
|
|
|
|
contentType: 'application/json',
|
|
|
|
|
data: JSON.stringify({
|
2021-01-25 02:01:17 +08:00
|
|
|
|
designAssyNum: data.field.designAssyNum,
|
|
|
|
|
name: data.field.name,
|
2021-01-21 01:06:55 +08:00
|
|
|
|
remark: data.field.remark,
|
|
|
|
|
createTime: getDatetime(),
|
|
|
|
|
createUserID: CurrUserInfo.data.userid,
|
|
|
|
|
createUserName: CurrUserInfo.data.userName,
|
2021-01-25 02:01:17 +08:00
|
|
|
|
isAnnex: 0,
|
2021-01-21 01:06:55 +08:00
|
|
|
|
isDelete: 0
|
|
|
|
|
}), //参数值
|
|
|
|
|
type: "POST", //请求方式
|
|
|
|
|
success: function (req) {
|
|
|
|
|
//请求成功时处理
|
|
|
|
|
if (req.result.code == 1) {
|
2021-01-25 02:01:17 +08:00
|
|
|
|
if (addBOMDetailsListData.length > 0) {
|
|
|
|
|
//获取已保存的BOM主数据ID
|
|
|
|
|
$.ajax({
|
|
|
|
|
url: apiUrl + "/api/services/app/BOM/GetAllBOM", //请求的url地址
|
|
|
|
|
dataType: "json", //返回格式为json
|
|
|
|
|
//async: false,//请求是否异步,默认为异步,这也是ajax重要特性
|
|
|
|
|
data: { DesignAssyNum: data.field.designAssyNum }, //参数值
|
|
|
|
|
type: "GET", //请求方式
|
|
|
|
|
success: function (req) {
|
|
|
|
|
//请求成功时处理
|
|
|
|
|
var BOMID = req.result.data[0].id;
|
|
|
|
|
for (let index = 0; index < addBOMDetailsListData.length; index++) {
|
|
|
|
|
$.ajax({
|
|
|
|
|
url: apiUrl + "/api/services/app/BOMDetails/CreateBOMDetails", //请求的url地址
|
|
|
|
|
dataType: "json", //返回格式为json
|
|
|
|
|
//async: false,//请求是否异步,默认为异步,这也是ajax重要特性
|
|
|
|
|
contentType: 'application/json',
|
|
|
|
|
data: JSON.stringify({
|
|
|
|
|
bomid: BOMID,
|
|
|
|
|
relationshipName: addBOMDetailsListData[index].relationshipName,
|
|
|
|
|
codeOrFigureNum: addBOMDetailsListData[index].codeOrFigureNum,
|
|
|
|
|
nameAndSpecs: addBOMDetailsListData[index].nameAndSpecs,
|
|
|
|
|
materials: addBOMDetailsListData[index].materials,
|
|
|
|
|
suppliersName: addBOMDetailsListData[index].suppliersName,
|
|
|
|
|
amountOfUnit: addBOMDetailsListData[index].amountOfUnit,
|
|
|
|
|
unit: addBOMDetailsListData[index].unit,
|
|
|
|
|
price: addBOMDetailsListData[index].price,
|
|
|
|
|
amount: addBOMDetailsListData[index].amount,
|
|
|
|
|
borrowings: addBOMDetailsListData[index].borrowings,
|
|
|
|
|
remark: addBOMDetailsListData[index].remark,
|
|
|
|
|
createTime: getDatetime(),
|
|
|
|
|
createUserID: CurrUserInfo.data.userid,
|
|
|
|
|
createUserName: CurrUserInfo.data.userName,
|
|
|
|
|
isAnnex: 0,
|
|
|
|
|
isDelete: 0
|
|
|
|
|
}), //参数值
|
|
|
|
|
type: "POST", //请求方式
|
|
|
|
|
success: function (req) {
|
|
|
|
|
//请求成功时处理
|
|
|
|
|
if (req.result.code == 1) {
|
|
|
|
|
layer.msg('保存成功', { time: 1000 }, function () {
|
|
|
|
|
// 关闭弹出层
|
|
|
|
|
var iframeIndex = parent.layer.getFrameIndex(window.name);
|
|
|
|
|
// 刷新父页面
|
|
|
|
|
window.parent.location.reload();
|
|
|
|
|
parent.layer.close(iframeIndex);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
else if (req.result.code == 2) {
|
|
|
|
|
layer.msg(req.result.msg);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
layer.msg(req.result.msg);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
error: function () {
|
|
|
|
|
/*错误信息处理*/
|
|
|
|
|
layer.msg("BOM子表数据保存失败,请重试!");
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
error: function () {
|
|
|
|
|
/*错误信息处理*/
|
|
|
|
|
layer.msg("获取BOM主信息ID失败,请重试!");
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
layer.msg('保存成功', { time: 1000 }, function () {
|
|
|
|
|
// 关闭弹出层
|
|
|
|
|
var iframeIndex = parent.layer.getFrameIndex(window.name);
|
|
|
|
|
// 刷新父页面
|
|
|
|
|
window.parent.location.reload();
|
|
|
|
|
parent.layer.close(iframeIndex);
|
|
|
|
|
});
|
|
|
|
|
}
|
2021-01-21 01:06:55 +08:00
|
|
|
|
}
|
|
|
|
|
else if (req.result.code == 2) {
|
|
|
|
|
layer.msg(req.result.msg);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
layer.msg(req.result.msg);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
error: function () {
|
|
|
|
|
/*错误信息处理*/
|
|
|
|
|
layer.msg("保存失败,请重试!");
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
return false;
|
|
|
|
|
});
|
|
|
|
|
return false;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
</body>
|
|
|
|
|
|
|
|
|
|
</html>
|