试验管理

This commit is contained in:
lSun 2024-07-23 09:29:25 +08:00
parent ba9a224e85
commit da7a92ab6c
8 changed files with 851 additions and 76 deletions

View File

@ -0,0 +1,566 @@
let form, layer, dtree, util, idParam,devTypeCodeParam, phoneParam, selectInput, laydate, table;
let arr = ['background', 'web', 'mobile', 'wx'];
let background, web, mobile, wx;
let data = [], appResList = [];
// 角色下拉选
let roleList;
let orgData;
var cols = []; // 初始化为空,因为我们将动态构建表头
function setParams(params) {
idParam = JSON.parse(params).id;
devTypeCodeParam = JSON.parse(params).devTypeCode;
layui.config({
base: "../../../../js/layui-v2.6.8/dtree/", //此处路径请自行处理, 可以使用绝对路径
}).extend({
dtree: 'dtree',
selectInput: 'selectInput/selectInput'
}).use(['form', 'layer', 'dtree', 'util', 'selectInput', 'laydate', 'table'], function () {
layer = layui.layer;
laydate = layui.laydate;
form = layui.form;
util = layui.util;
dtree = layui.dtree;
selectInput = layui.selectInput;
table = layui.table;
laydate.render({
elem: '#devContractDate'
});
if (idParam) {
getTestById();
}
//设备类别
getDicts("dev_code",'devTypeName',"","设备类别",30);
//试验地点
getDicts("sy_local",'experLocal',"","试验地点",30);
//试验设备列表
getDevList("devName-1" ,"","试验设备列表",30);
//设备名称
getDevList("experDevName" ,"","设备名称",30);
//试验依据
getDicts("sy_basis",'basisName-1',"","试验依据",30);
form.on('submit(formData)', function (data) {
saveData(data);
});
});
}
function getDicts(code,id,value,name,maxlength){
let url = dataUrl + '/sys/select/getDicts';
let obj = {
'code':code
}
let params = {
encryptedData: encryptCBC(JSON.stringify(obj))
}
ajaxRequest(url, "POST", params, false, function () {
}, function (result) {
if (result.code === 200) {
getSelect(result.data, id,value,name,maxlength);
} else {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
error(xhr)
});
}
//试验设备列表
function getDevList(id,value,name,maxlength) {
let url = dataUrl + '/sys/select/getDevices';
ajaxRequest(url, "POST", null, false, function () {
}, function (result) {
if (result.code === 200) {
let formattedData = result.data.map(({devName, devId}) => ({name: devName, value: devId}));
getSelect(formattedData, id,value,name,maxlength);
} else {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
error(xhr)
});
}
//新增标题
function titleAdd() {
// 获取当前已有的'dev'类元素
var devElems = document.querySelectorAll('.info');
var count = devElems.length +1 ;
// 创建新的div元素
var newDiv = document.createElement('div');
newDiv.className = 'info';
newDiv.style.marginTop = '2%';
newDiv.style.display='flex';
newDiv.style.flexDirection='column';
newDiv.style.border='1px solid #ccc';
newDiv.innerHTML = `
<div style="display: flex;">
<input lay-verify="required" type="text" class="layui-input" id="experTypeName-${count}" name="experTypeName-${count}" placeholder="请输入名称" style="border: 0px" />
<input lay-verify="required" type="text" class="layui-input" id="amount-${count}" name="amount-${count}" placeholder="请输入金额" style="border: 0px" />
<button class="layui-btn layui-btn-norma save" onclick="itemNameAdd(${count})" title="新增子标题">+</button>
<button class="layui-btn layui-btn-primary cancel" onclick="itemNameDel(${count})" title="删除子标题">-</button>
</div>
<div style="display: flex;width: 100%;overflow: auto;" class="subtitle-${count}">
<input lay-verify="required" placeholder="请输入名称" class="layui-input-dev" id="itemName-${count}-1" name="itemName-${count}-1">
</div>
`;
// 将新div插入到现有'dev'元素之后
var parent = devElems[count - 2].parentNode;
parent.insertBefore(newDiv, parent.querySelector('.btn-box'));
}
//删除标题
function titleDel() {
// 获取所有的'dev'类元素
var devElems = document.querySelectorAll('.info');
var count = devElems.length;
// 检查是否至少保留一个'dev'元素
if (count > 1) {
// 删除最后一个'dev'元素
devElems[count - 1].remove();
} else {
layer.msg('至少保留一个试验设备信息');
}
}
//新增子标题
function itemNameAdd(num) {
// 获取包含 input 元素的 div
var divElement = document.querySelector('.subtitle-'+num);
// 获取所有 input 元素
var inputs = divElement.querySelectorAll('input');
// 初始化最大 id 为0
var maxId = 0;
// 遍历所有 input 元素,找出最大的 id
inputs.forEach(function(input) {
var idParts = input.id.split('-');
if (idParts[0] === 'itemName' && !isNaN(idParts[1])) {
var idNum = parseInt(idParts[2], 10);
if (idNum > maxId) {
maxId = idNum;
}
}
});
// 创建一个新的 input 元素id为下一个数字
var newInput = document.createElement('input');
newInput.type = 'text';
newInput.setAttribute('lay-verify', 'required');
newInput.className = 'layui-input-dev';
newInput.placeholder = '请输入名称';
newInput.id = 'itemName-'+num+'-' + (maxId + 1);
newInput.name = 'itemName-'+num+'-' + (maxId + 1);
// 将新的 input 元素追加到 div 中
divElement.appendChild(newInput);
}
//删除子标题
function itemNameDel(num) {
// 获取包含 input 元素的 div
var divElement = document.querySelector('.subtitle-'+num);
// 获取所有的 input 元素
var inputs = divElement.querySelectorAll('input');
// 检查是否有超过一个 input 元素
if (inputs.length > 1) {
// 获取最后一个 input 元素
var lastInput = inputs[inputs.length - 1];
// 删除最后一个 input 元素
divElement.removeChild(lastInput);
}else{
layer.msg('至少保留一个子标题');
}
}
//新增试验设备列表
function devAdd() {
// 获取当前已有的'dev'类元素
var devElems = document.querySelectorAll('.dev');
var count = devElems.length +1 ;
// 创建新的div元素
var newDiv = document.createElement('div');
newDiv.className = 'layui-inline dev';
newDiv.innerHTML = `
<label class="layui-form-label"><i style="padding: 0 10px;">*</i></label>
<div class="layui-input-inline" id="devName-${count}">
</div>
`;
// 将新div插入到现有'dev'元素之后
var parent = devElems[count - 2].parentNode;
parent.insertBefore(newDiv, parent.querySelector('.btn-box'));
getDevList("devName-"+count,"","试验设备列表",30);
}
//删除试验设备列表
function devDel() {
// 获取所有的'dev'类元素
var devElems = document.querySelectorAll('.dev');
var count = devElems.length;
// 检查是否至少保留一个'dev'元素
if (count > 1) {
// 删除最后一个'dev'元素
devElems[count - 1].remove();
} else {
layer.msg('至少保留一个试验设备信息');
}
}
//新增试验依据
function basisAdd() {
// 获取当前已有的类元素
var devElems = document.querySelectorAll('.basis');
var count = devElems.length+1;
// 创建新的div元素
var newDiv = document.createElement('div');
newDiv.className = 'layui-inline basis';
newDiv.innerHTML = `
<label class="layui-form-label"><i style="padding: 0 10px;">*</i></label>
<div class="layui-input-inline" id="basisName-${count}">
</div>
`;
// 将新div插入到现有元素之后
var parent = devElems[count - 2].parentNode;
parent.insertBefore(newDiv, parent.querySelector('.btn-box'));
getDicts("sy_basis","basisName-" + count,"","试验依据",30);
}
//删除试验依据
function basisDel() {
// 获取所有类元素
var devElems = document.querySelectorAll('.basis');
var count = devElems.length;
if (count > 1) {
// 删除最后一个
devElems[count - 1].remove();
} else {
layer.msg('至少保留一个试验依据');
}
}
function saveData2() {
$('#formSubmit').trigger('click')
}
function saveData(data) {
//获取试验设备列表
var devList = convertToDevList(data.field);
//试验依据列表
var yjList = convertToYjList(data.field);
//主要设备
var mainDevList = [{
"devTypeCode": "",
"devTypeName": "",
"experDevName": data.field["experDevName"],
"experDevModule": data.field["experDevModule"],
"experDevCode": data.field["experDevCode"],
"devContractDate": data.field["devContractDate"],
"experId": null
}];
//获取试验项内容列表
var items = convertToItems(data.field);
var ins = selectInput.getInstance("#devTypeName");
let paramsData = {
'yjList':yjList,
'devList':devList,
'mainDevList':mainDevList,
'items':items,
}
let obj = {
'id': data.field["id"],
'devTypeCode': ins.getValue(),
'devTypeName': data.field["devTypeName"],
'devModule': data.field["devModule"],
'experLocalCode':'',
'experLocal': data.field["experLocal"],
'paramsData':paramsData
}
let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0});
let url = dataUrl + "/experimentStandard/addData";
let params = obj;
if(params.id !=""){
url = dataUrl + "/experimentStandard/editData";
}
params={
encryptedData:encryptCBC(JSON.stringify(params))
}
ajaxRequest(url, "POST", params, true, function () {
$('.save').addClass("layui-btn-disabled").attr("disabled", true);
$('.cancel').addClass("layui-btn-disabled").attr("disabled", true);
}, function (result) {
layer.close(loadingMsg); // 关闭提示层
if (result.code === 200) {
closePage(1);
parent.layer.msg(result.msg, {icon: 1});
} else {
layer.alert(result.msg, {icon: 2})
$('.save').removeClass("layui-btn-disabled").attr("disabled", false);
$('.cancel').removeClass("layui-btn-disabled").attr("disabled", false);
}
}, function (xhr) {
layer.close(loadingMsg); // 关闭提示层
$('.save').removeClass("layui-btn-disabled").attr("disabled", false);
$('.cancel').removeClass("layui-btn-disabled").attr("disabled", false);
error(xhr)
});
}
function convertToDevList(obj){
return Object.entries(obj)
.filter(([key, value]) => key.startsWith('devName-'))
.map(([key, value]) => ({
devTypeCode: "",
devTypeName: "", // 如果需要,可以在这里使用 key 或 value
devName: value,
devId: null
}));
}
function convertToYjList(obj){
return Object.entries(obj)
.filter(([key, value]) => key.startsWith('basisName-'))
.map(([key, value]) => ({
basisName: value,
}));
}
function convertToItems(obj){
var dataField = obj;
var items = [];
// 先收集所有的 experTypeName 键名,以便知道有多少个试验项
var experTypeNames = Object.keys(dataField).filter(key => key.startsWith('experTypeName-'));
var experTypeCount = experTypeNames.length;
// 预创建试验项对象,先不填充数据
for (let i = 0; i < experTypeCount; i++) {
items.push({
"experTypeCode": "",
"experTypeName": "",
"experNum": 0, // 将会在后面设置
"itemsSort": i + 1,
"amount": "",
"item": []
});
}
// 填充数据
experTypeNames.forEach(key => {
const experTypeIndex = key.split('-')[1];
const item = items[experTypeIndex - 1];
item.experTypeName = dataField[key];
item.amount = dataField['amount-' + experTypeIndex];
});
// 填充 itemName 数据
Object.keys(dataField).forEach(key => {
if (key.startsWith('itemName-')) {
const parts = key.split('-');
const experTypeIndex = parts[1];
const itemIndex = parts[2];
const itemNum = parseInt(itemIndex);
const itemName = dataField[key];
// 找到对应的试验项并添加试验项内容
items[experTypeIndex - 1].item.push({
"itemName": itemName,
"itemNum": itemNum
});
}
});
// 设置 experNum 为 item 数组的长度
items.forEach(item => {
item.experNum = item.item.length;
});
// 按照 itemsSort 排序
items.sort((a, b) => a.itemsSort - b.itemsSort);
return items;
}
function getTestById() {
let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: false, time: 0,});
let url = dataUrl + "/experimental/getTestBasicInfo";
let params = {
id: idParam,
devTypeCode:devTypeCodeParam
}
params={
encryptedData:encryptCBC(JSON.stringify(params))
}
ajaxRequest(url, "POST", params, true, function () {
}, function (result) {
layer.close(loadingMsg); // 关闭提示层
if (result.code === 200) {
console.log("试验form=" + result.data)
setFormData(result.data);
} else if (result.code === 500) {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
layer.close(loadingMsg); // 关闭提示层
error(xhr)
});
}
function setFormData(data) {
if (data) {
$('#id').val(data.id);
//设备类别
getDicts("dev_code",'devTypeName',data.devTypeName,"设备类别",30);
//设备规格
$('#devModule').val(data.devModule)
//试验地点
getDicts("sy_local",'experLocal',data.experLocal,"试验地点",30);
//试验设备列表
for (let i = 0; i < data.deviceVos.length; i++) {
var k = i+1;
if(k>1){
devAdd()
}
getDevList("devName-"+k ,data.deviceVos[i].devName,"试验设备列表",30);
}
//设备名称
getDevList("experDevName" ,data.mainDeviceVos[0].experDevName,"设备名称",30);
//设备型号
$('#experDevModule').val(data.mainDeviceVos[0].experDevModule)
//设备编号
$('#experDevCode').val(data.mainDeviceVos[0].experDevCode)
//合同生效日期
$('#devContractDate').val(data.mainDeviceVos[0].devContractDate)
//试验依据
for (let i = 0; i < data.basisVos.length; i++) {
var k = i+1;
if(k>1){
basisAdd()
}
getDicts("sy_basis",'basisName-'+k,data.basisVos[i].basisName,"试验依据",30);
}
//试验项信息
console.log(data);
console.log(data.configItemsVos);
for (let i = 0; i < data.configItemsVos.length; i++) {
var k = i+1;
//标题大于1
if(k>1){
// 新增一个标题
titleAdd();
}else{
}
// 循环判断子标题
for (let j = 0; j < data.configItemsVos[i].itemList.length; j++){
var kk = j+1;
//子标题大于1
if(kk>1){
//新增一个子标题
itemNameAdd(k);
}
}
}
// 赋值
data.configItemsVos.forEach((item, index) => {
const experTypeNameInput = document.getElementById(`experTypeName-${index + 1}`);
const amountInput = document.getElementById(`amount-${index + 1}`);
const subtitleContainer = document.querySelector(`.subtitle-${index + 1}`);
// 设置主标题和金额输入框的值
experTypeNameInput.value = item.experTypeName;
amountInput.value = item.amount;
// 清空现有的子标题输入框
while (subtitleContainer.firstChild) {
subtitleContainer.removeChild(subtitleContainer.firstChild);
}
// 添加子标题输入框
item.itemList.forEach((subItem, subIndex) => {
const inputElement = document.createElement('input');
inputElement.type = 'text';
inputElement.classList.add('layui-input-dev');
inputElement.setAttribute('lay-verify', 'required');
inputElement.setAttribute('placeholder', '请输入名称');
inputElement.setAttribute('name', `itemName-${index + 1}-${subIndex + 1}`);
inputElement.id = `itemName-${index + 1}-${subIndex + 1}`;
inputElement.value = subItem.itemName;
subtitleContainer.appendChild(inputElement);
});
});
// if(data.configItemsVos.length>1){
// for (let i = 0; i < data.configItemsVos.length; i++) {
//
// }
// }else{
// if(data.configItemsVos[0].itemList.length>2){
// for (let i = 0; i < data.configItemsVos[0].itemList.length; i++){
// var divElement = document.querySelector('.subtitle-1');
// // 创建一个新的 input 元素id为下一个数字
// var newInput = document.createElement('input');
// newInput.type = 'text';
// newInput.setAttribute('lay-verify', 'required');
// newInput.className = 'layui-input-dev';
// newInput.placeholder = '请输入名称';
// newInput.vlue = data.configItemsVos[0].itemList[i].itemName;
// newInput.id = 'itemName-1'+'-' + (3 + i);
// newInput.name = 'itemName-1'+'-' + (3 + i);
// // 将新的 input 元素追加到 div 中
// divElement.appendChild(newInput);
// }
// }else{
// for(let i = 0; i < data.configItemsVos[0].itemList.length; i++){
//
// }
// // $('#itemName-1-1').val(data.items[0].item.)
// // $('#itemName-1-2').val(data.items[0].item.devContractDate)
// }
// }
layui.form.render();
}
}
// 关闭页面
function closePage(type) {
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
parent.layer.close(index); //再执行关闭
if (type === 1) {
parent.reloadData()
}
}

View File

@ -1,13 +1,18 @@
let form, layer, table, tableIns;
let form, layer, table, tableIns,idParam;
let pageNum = 1, limitSize = 10; // 默认第一页分页数量为10
layui.use(['form', 'layer', 'table', 'laydate'], function () {
form = layui.form;
layer = layui.layer;
table = layui.table;
layui.form.render();
getDevSelected();
pages(1, 10, 1);
})
function setParams(params) {
idParam = JSON.parse(params).id;
layui.use(['form', 'layer', 'table', 'laydate'], function () {
form = layui.form;
layer = layui.layer;
table = layui.table;
layui.form.render();
getDevSelected();
pages(1, 10, 1);
})
}
function pages(pageNum, pageSize, typeNum) {
let params = getReqParams(pageNum, pageSize, typeNum);
@ -72,14 +77,14 @@ function initTable(dataList, limit, page) {
{title: "原始记录", unresize: true, width: 300, align: "center",
templet: function (d) {
var html = '';
if (d.status == "待提交" || d.status == "审阅不通过" || d.status == "审核不通过" || d.status == "审批不通过") {
let search="<a class=\"layui-icon \" style='cursor:pointer;' title='查看' style=\"color: blue;\" onclick=\"checkData('" + d.id + "')\">查看</a>";
let edit="<a class=\"layui-icon \" style='cursor:pointer;' title='编制' style=\"color: blue;\" onclick=\"addData('" + d.id + "')\">编制</a>";
let search="<a class=\"layui-icon \" style='cursor:pointer;' title='查看' style=\"color: blue;\" onclick=\"checkData('" + d.experId + "','"+ d.devTypeCode+"')\">查看</a>";
if (d.status == "待试验" || d.status == "待提交" || d.status == "审阅不通过" || d.status == "审核不通过" || d.status == "审批不通过") {
let edit="<a class=\"layui-icon \" style='cursor:pointer;' title='编制' style=\"color: blue;\" onclick=\"addData('" + d.experId + "','"+ d.devTypeCode+"')\">编制</a>";
html=search+edit;
return html;
} else {
html=search;
}
return html;
}
},
],
@ -96,26 +101,24 @@ function initTable(dataList, limit, page) {
// 获取参数
function getReqParams(page, limit, type) {
console.log(idParam)
let obj = {};
if (!type) {
obj = {
page: page + "",
limit: limit + "",
devTypeCode: $('#devId').val(),
keyWord: $('#keyWord').val(),
sampleUserName: $('#sampleUserName').val(),
sampleDate: $('#sampleDate').val(),
id: idParam
};
} else {
obj = {
page: '1',
limit: '10',
devTypeCode: '',
keyWord: '',
sampleUserName: '',
sampleDate: '',
id: idParam
};
}
console.log(obj)
obj={
encryptedData:encryptCBC(JSON.stringify(obj))
}
@ -132,13 +135,17 @@ function reloadData() {
pages(pageNum, limitSize);
}
// 试验标准新增、修改
function testClick(id) {
let title = '试验'
let param = {
'id': id
// 试验新增、修改
function addData(id,devTypeCode) {
let title = '新增试验'
if (id) {
title = '修改试验';
}
openIframeMax("testList", title, "child/addTestStandards.html", '1000px', '625px', param);
let param = {
'id': id,
'devTypeCode':devTypeCode
}
openIframeMax("testForm", title, "testForm.html", '80%', '100%', param);
}
function getDevSelected() {

View File

@ -105,7 +105,7 @@ function initTable(dataList, limit, page) {
},
{title: "操作", unresize: true, width: 300, align: "center",
templet: function (d) {
return '<a href="#" style="color: blue;" onclick="testClick(\'' + d + '\')">试验</a>';
return '<a href="#" style="color: blue;" onclick="testClick(\'' + d.id + '\')">试验</a>';
}
},
],
@ -164,7 +164,7 @@ function testClick(id) {
let param = {
'id': id
}
openIframeMax("testList", title, "child/testList.html", '1000px', '625px', param);
openIframeMax("testList", title, "child/testList.html", '100%', '100%', param);
}
function getDevSelected() {

View File

@ -193,7 +193,6 @@ function devAdd() {
var newDiv = document.createElement('div');
newDiv.className = 'layui-inline dev';
newDiv.innerHTML = `
<label class="layui-form-label"><i style="padding: 0 10px;">*</i></label>
<div class="layui-input-inline" id="devName-${count}">
</div>
`;

View File

@ -130,7 +130,7 @@ function addData(id) {
let param = {
'id': id
}
openIframeMax("addOrEditTestStandards", title, "child/addTestStandards.html", '1000px', '625px', param);
openIframeMax("addOrEditTestStandards", title, "child/addTestStandards.html", '80%', '100%', param);
}
// 查看试验标准
@ -138,7 +138,7 @@ function checkData(id) {
let param = {
'id': id
}
openIframeMax("addOrEditTestStandards", "查看试验标准", "child/checkTestStandards.html", '1000px', '625px', param);
openIframeMax("addOrEditTestStandards", "查看试验标准", "child/checkTestStandards.html", '80%', '80%', param);
}
/*删除用户*/

View File

@ -155,7 +155,7 @@ function openIframeMax(id, title, content, width, height, params) {
}
}
});
console.log(layer)
// console.log(layer)
// layer.max(layerIndex)
// 弹窗打开后立即调用 layer.full

View File

@ -0,0 +1,177 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="../../../../js/layui-v2.6.8/css/layui.css" media="all">
<link rel="stylesheet" href="../../../../js/layui-v2.6.8/dtree/dtree.css">
<link rel="stylesheet" href="../../../../js/layui-v2.6.8/dtree/font/dtreefont.css">
<link rel="stylesheet" href="../../../../css/dataForm.css">
<script src="../../../../js/libs/jquery-2.1.1.min.js" charset="UTF-8" type="text/javascript"></script>
<script src="../../../../js/layui-v2.6.8/layui.js" charset="UTF-8" type="text/javascript"></script>
<script src="../../../../js/publicJs.js"></script>
<script src="../../../../js/select.js"></script>
<script src="../../../../js/dict.js"></script>
<script src="../../../../js/ajaxRequest.js"></script>
<script src="../../../../js/my/aes.js"></script>
<title>试验新增、修改</title>
<style>
.switch{
line-height: 35px;
cursor:pointer;
}
.layui-input-dev{
display: flex;
border: 0px;
color: #595959 !important;
border: 1px solid #d9d9d9 !important;
height: 40px;
font-size: 16px;
background-color: transparent;
padding: 3px 6px;
letter-spacing: 1px;
}
</style>
</head>
<body>
<div id="main-box">
<form class="layui-form" onsubmit="return false;">
<input hidden id="id" name="id">
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>设备类别</label>
<div class="layui-input-inline" id="devTypeName" name="devTypeName">
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>设备规格</label>
<div class="layui-input-inline" >
<input type="text" id="devModule" name="devModule" lay-verify="required" class="layui-input" placeholder="请输入设备规格" />
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>样品数量</label>
<div class="layui-input-inline" >
<input type="text" id="devModule" name="devModule" lay-verify="required" class="layui-input" placeholder="请输入样品数量" />
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>收样日期</label>
<div class="layui-input-inline" >
<input type="text" id="devModule" name="devModule" lay-verify="required" class="layui-input" placeholder="请输入收样日期" />
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>试验日期</label>
<div class="layui-input-inline" >
<input type="text" id="devModule" name="devModule" lay-verify="required" class="layui-input" placeholder="请选择试验日期" />
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>下次试验日期</label>
<div class="layui-input-inline" >
<input type="text" id="devModule" name="devModule" lay-verify="required" class="layui-input" placeholder="请选择下次试验日期" />
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>试验地点</label>
<div class="layui-input-inline" id="experLocal">
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;" >
<div class="layui-inline dev">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>试验设备列表</label>
<div class="layui-input-inline" id="devName-1">
</div>
</div>
<div class="btn-box">
<button class="layui-btn layui-btn-norma save" onclick="devAdd()">新增试验设备列表</button>
<button class="layui-btn layui-btn-primary cancel" onclick="devDel()">删除试验设备列表</button>
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>设备名称</label>
<div class="layui-input-inline" id="experDevName">
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>设备型号</label>
<div class="layui-input-inline" >
<input type="text" id="experDevModule" name="experDevModule" lay-verify="required" class="layui-input" placeholder="请输入设备型号" />
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>设备编号</label>
<div class="layui-input-inline" >
<input type="text" id="experDevCode" name="experDevCode" lay-verify="required" class="layui-input" placeholder="请输入设备编号" />
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>合同生效日期</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" lay-verify="required" id="devContractDate" name="devContractDate" placeholder="请选择日期">
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;" >
<div class="layui-inline basis">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>试验依据</label>
<div class="layui-input-inline" id="basisName-1">
</div>
</div>
<div class="btn-box">
<button class="layui-btn layui-btn-norma save" onclick="basisAdd()">新增试验依据</button>
<button class="layui-btn layui-btn-primary cancel" onclick="basisDel()">删除试验依据</button>
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<div class="layui-inline ">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>试验项信息</label>
<div class="layui-input-inline" style="display: flex;flex-direction: column;" >
<div style="display: flex;flex-direction: column;border: 1px solid #ccc" class="info">
<div style="display: flex;">
<input lay-verify="required" type="text" id="experTypeName-1" name="experTypeName-1" class="layui-input" placeholder="请输入名称" maxlength="30" style="border: 0px" />
<input lay-verify="required" type="text" id="amount-1" name="amount-1" class="layui-input" placeholder="请输入金额" maxlength="6" style="border: 0px" />
<button class="layui-btn layui-btn-norma save" onclick="itemNameAdd(1)" title="新增子标题">+</button>
<button class="layui-btn layui-btn-primary cancel" onclick="itemNameDel(1)" title="删除子标题">-</button>
</div>
<div style="display: flex;width: 100%;overflow: auto;" class="subtitle-1">
<input lay-verify="required" placeholder="请输入名称" name="itemName-1-1" class="layui-input-dev" id="itemName-1-1" >
<!-- <input lay-verify="required" placeholder="请输入名称" name="itemName-1-2" class="layui-input-dev" id="itemName-1-2">-->
</div>
</div>
</div>
</div>
</div>
<div class="btn-box">
<button class="layui-btn layui-btn-norma save" onclick="titleAdd()">新增标题</button>
<button class="layui-btn layui-btn-primary cancel" onclick="titleDel()">删除标题</button>
</div>
<button type="submit" id="formSubmit" class="layui-btn" lay-submit="" lay-filter="formData"
style="display: none;"></button>
</form>
</div>
<div class="btn-box">
<button class="layui-btn layui-btn-norma save" onclick="saveData2()">确定</button>
<button class="layui-btn layui-btn-primary cancel" onclick="closePage()">取消</button>
</div>
</body>
<script src="../../../../js/basis/standard/child/testForm.js" charset="UTF-8" type="text/javascript"></script>
<script src="../../../../js/basis/tools/child/select.js" charset="UTF-8" type="text/javascript"></script>
</html>

View File

@ -31,81 +31,107 @@
padding: 3px 6px;
letter-spacing: 1px;
}
.layui-form-item .layui-input-inline{
width: 340px;
}
</style>
</head>
<body>
<div id="main-box">
<form class="layui-form" onsubmit="return false;">
<input hidden id="id" name="id">
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>设备类别</label>
<div class="layui-input-inline" id="devTypeName" name="devTypeName">
<div style="width: 98%;margin-top: 2%;margin-left: 1%" >
<h2>基础数据</h2>
</div>
<div class="layui-form-item" >
<div class="layui-inline">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>设备类别</label>
<div class="layui-input-inline" id="devTypeName" name="devTypeName">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>设备规格</label>
<div class="layui-input-inline" >
<input type="text" id="devModule" name="devModule" lay-verify="required" class="layui-input" placeholder="请输入设备规格" />
</div>
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>设备规格</label>
<div class="layui-input-inline" >
<input type="text" id="devModule" name="devModule" lay-verify="required" class="layui-input" placeholder="请输入设备规格" />
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<div class="layui-form-item" >
<div class="layui-inline">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>试验地点</label>
<div class="layui-input-inline" id="experLocal">
</div>
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;" >
<div class="layui-inline dev">
<div class="layui-inline">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>试验设备列表</label>
<div class="layui-input-inline" id="devName-1">
<div class="layui-input-inline" style="display: flex;" >
<div style="width: 100%;flex-direction: column;">
<div class="layui-inline dev">
<div class="layui-input-inline" id="devName-1">
</div>
</div>
</div>
<div style="display: flex;margin-left: 1%;">
<button class="layui-btn layui-btn-norma save" onclick="devAdd()" title="新增试验设备列表">+</button>
<button class="layui-btn layui-btn-primary cancel" onclick="devDel()" title="删除试验设备列表">-</button>
</div>
</div>
</div>
<div class="btn-box">
<button class="layui-btn layui-btn-norma save" onclick="devAdd()">新增试验设备列表</button>
<button class="layui-btn layui-btn-primary cancel" onclick="devDel()">删除试验设备列表</button>
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>设备名称</label>
<div class="layui-input-inline" id="experDevName">
</div>
<div style="width: 98%;margin-top: 2%;margin-left: 1%" >
<h2>主设备</h2>
</div>
<div class="layui-form-item" >
<div class="layui-inline">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>设备名称</label>
<div class="layui-input-inline" id="experDevName">
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>设备型号</label>
<div class="layui-input-inline" >
<input type="text" id="experDevModule" name="experDevModule" lay-verify="required" class="layui-input" placeholder="请输入设备型号" />
</div>
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>设备编号</label>
<div class="layui-input-inline" >
<input type="text" id="experDevCode" name="experDevCode" lay-verify="required" class="layui-input" placeholder="请输入设备编号" />
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>合同生效日期</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" lay-verify="required" id="devContractDate" name="devContractDate" placeholder="请选择日期">
<div class="layui-inline">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>设备型号</label>
<div class="layui-input-inline" >
<input type="text" id="experDevModule" name="experDevModule" lay-verify="required" class="layui-input" placeholder="请输入设备型号" />
</div>
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;" >
<div class="layui-form-item" >
<div class="layui-inline">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>设备编号</label>
<div class="layui-input-inline" >
<input type="text" id="experDevCode" name="experDevCode" lay-verify="required" class="layui-input" placeholder="请输入设备编号" />
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>合同生效日期</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" lay-verify="required" id="devContractDate" name="devContractDate" placeholder="请选择日期">
</div>
</div>
</div>
<div class="layui-form-item" >
<div class="layui-inline basis">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>试验依据</label>
<div class="layui-input-inline" id="basisName-1">
</div>
</div>
<div class="btn-box">
<button class="layui-btn layui-btn-norma save" onclick="basisAdd()">新增试验依据</button>
<button class="layui-btn layui-btn-primary cancel" onclick="basisDel()">删除试验依据</button>
<button class="layui-btn layui-btn-norma save" onclick="basisAdd()" title="新增试验依据">+</button>
<button class="layui-btn layui-btn-primary cancel" onclick="basisDel()" title="删除试验依据">-</button>
</div>
</div>
@ -130,8 +156,8 @@
</div>
<div class="btn-box">
<button class="layui-btn layui-btn-norma save" onclick="titleAdd()">新增标题</button>
<button class="layui-btn layui-btn-primary cancel" onclick="titleDel()">删除标题</button>
<button class="layui-btn layui-btn-norma save" onclick="titleAdd()" title="新增标题">+</button>
<button class="layui-btn layui-btn-primary cancel" onclick="titleDel()" title="删除标题">-</button>
</div>
<button type="submit" id="formSubmit" class="layui-btn" lay-submit="" lay-filter="formData"