试验管理
This commit is contained in:
parent
e9e44f4866
commit
2c40bd6d68
|
|
@ -339,6 +339,7 @@ function saveData(data) {
|
||||||
//试验依据列表
|
//试验依据列表
|
||||||
var yjList = convertToYjList(data.field);
|
var yjList = convertToYjList(data.field);
|
||||||
var experDevList = convertToExperDevList(data.field);
|
var experDevList = convertToExperDevList(data.field);
|
||||||
|
console.log(experDevList)
|
||||||
|
|
||||||
//主要设备
|
//主要设备
|
||||||
var mainDevList = [{
|
var mainDevList = [{
|
||||||
|
|
@ -465,6 +466,7 @@ function convertToExperDevList(originalData){
|
||||||
deviceIds.forEach(deviceId => {
|
deviceIds.forEach(deviceId => {
|
||||||
// 使用deviceId来构建键名
|
// 使用deviceId来构建键名
|
||||||
const devIdKey = `devId-${deviceId}`;
|
const devIdKey = `devId-${deviceId}`;
|
||||||
|
const departmentIdKey = `departmentId-${deviceId}`;
|
||||||
const devCodeKey = `devCode-${deviceId}`;
|
const devCodeKey = `devCode-${deviceId}`;
|
||||||
const manufacturerKey = `manufacturer-${deviceId}`;
|
const manufacturerKey = `manufacturer-${deviceId}`;
|
||||||
const manufactureDateKey = `manufactureDate-${deviceId}`;
|
const manufactureDateKey = `manufactureDate-${deviceId}`;
|
||||||
|
|
@ -480,6 +482,7 @@ function convertToExperDevList(originalData){
|
||||||
// 创建设备信息对象
|
// 创建设备信息对象
|
||||||
const deviceItem = {
|
const deviceItem = {
|
||||||
devId: originalData[devIdKey],
|
devId: originalData[devIdKey],
|
||||||
|
departmentId: originalData[departmentIdKey],
|
||||||
devCode: originalData[devCodeKey],
|
devCode: originalData[devCodeKey],
|
||||||
manufacturer: originalData[manufacturerKey],
|
manufacturer: originalData[manufacturerKey],
|
||||||
manufactureDate: originalData[manufactureDateKey],
|
manufactureDate: originalData[manufactureDateKey],
|
||||||
|
|
@ -683,9 +686,10 @@ function generateHeaders(data) {
|
||||||
firstLevelHeader.colSpan = item.itemList.length;
|
firstLevelHeader.colSpan = item.itemList.length;
|
||||||
firstLevelHeader.classList.add('center-aligned');
|
firstLevelHeader.classList.add('center-aligned');
|
||||||
// firstLevelHeader.textContent = `${item.experTypeName} - ${item.amount}`;
|
// firstLevelHeader.textContent = `${item.experTypeName} - ${item.amount}`;
|
||||||
firstLevelHeader.innerHTML=`<div style="display: flex;width: 100%;" >
|
firstLevelHeader.innerHTML=`
|
||||||
<input type="text" class="layui-input " title="${item.experTypeName}" readonly id="experTypeName-${counter}" name="experTypeName-${counter}" value="${item.experTypeName}" readonly style="border: 0px !important;width: 80%" />
|
${item.experTypeName} - ${item.amount}
|
||||||
<input type="text" class="layui-input " title="${item.amount}" readonly id="amount-${counter}" name="amount-${counter}" readonly value="${item.amount}" style="border: 0px !important;width: 20%" />
|
<input type="hidden" class="layui-input " id="experTypeName-${counter}" name="experTypeName-${counter}" value="${item.experTypeName}" />
|
||||||
|
<input type="hidden" class="layui-input " id="amount-${counter}" name="amount-${counter}" readonly value="${item.amount}" />
|
||||||
</div>`;
|
</div>`;
|
||||||
thead.rows[0].appendChild(firstLevelHeader);
|
thead.rows[0].appendChild(firstLevelHeader);
|
||||||
|
|
||||||
|
|
@ -693,9 +697,9 @@ function generateHeaders(data) {
|
||||||
item.itemList.forEach(subItem => {
|
item.itemList.forEach(subItem => {
|
||||||
const secondLevelHeader = document.createElement('th');
|
const secondLevelHeader = document.createElement('th');
|
||||||
secondLevelHeader.classList.add('center-aligned');
|
secondLevelHeader.classList.add('center-aligned');
|
||||||
secondLevelHeader.innerHTML=`<div style="display: flex;width: 100%;overflow: auto;">
|
secondLevelHeader.innerHTML=`
|
||||||
<input class="layui-input" readonly title="${subItem.itemName}" id="itemName-${counter}-${totalCols}" name="itemName-${counter}-${totalCols}" value="${subItem.itemName}" style="border: 0px !important;">
|
${subItem.itemName}
|
||||||
</div>
|
<input type="hidden" class="layui-input" id="itemName-${counter}-${totalCols}" name="itemName-${counter}-${totalCols}" value="${subItem.itemName}" >
|
||||||
`
|
`
|
||||||
// secondLevelHeader.textContent = subItem.itemName;
|
// secondLevelHeader.textContent = subItem.itemName;
|
||||||
secondRow.appendChild(secondLevelHeader);
|
secondRow.appendChild(secondLevelHeader);
|
||||||
|
|
@ -723,14 +727,15 @@ function generateRows(data,sampleDeviceVos){
|
||||||
const row = document.createElement('tr');
|
const row = document.createElement('tr');
|
||||||
row.innerHTML = `
|
row.innerHTML = `
|
||||||
<input type="hidden" id="devId-${idCounter}" name="devId-${idCounter}" value="${sampleDeviceVos[i].id}">
|
<input type="hidden" id="devId-${idCounter}" name="devId-${idCounter}" value="${sampleDeviceVos[i].id}">
|
||||||
|
<input type="hidden" id="departmentId-${idCounter}" name="departmentId-${idCounter}" value="${sampleDeviceVos[i].departmentId}">
|
||||||
<td class="table-cell-wide">${idCounter}</td>
|
<td class="table-cell-wide">${idCounter}</td>
|
||||||
<td class="table-cell-wide"><input style="border: 0px !important;" id="devCode-${idCounter}" readonly class="layui-input" name="devCode-${idCounter}" value="${sampleDeviceVos[i].devCode}" /></td>
|
<td class="table-cell-wide"><input style="border: 0px !important;" id="devCode-${idCounter}" readonly class="layui-input" name="devCode-${idCounter}" value="${sampleDeviceVos[i].devCode}" /></td>
|
||||||
<td class="table-cell-wide"><input id="manufacturer-${idCounter}" lay-verify="required" class="layui-input" name="manufacturer-${idCounter}" /></td>
|
<td class="table-cell-wide"><input maxlength="30" id="manufacturer-${idCounter}" lay-verify="required" class="layui-input" name="manufacturer-${idCounter}" /></td>
|
||||||
<td class="table-cell-wide"><input id="manufactureDate-${idCounter}" lay-verify="required" class="layui-input" name="manufactureDate-${idCounter}" readonly /></td>
|
<td class="table-cell-wide"><input id="manufactureDate-${idCounter}" lay-verify="required" class="layui-input" name="manufactureDate-${idCounter}" readonly /></td>
|
||||||
<td class="table-cell-wide"><input id="devModule-${idCounter}" lay-verify="required" class="layui-input" name="devModule-${idCounter}" /></td>
|
<td class="table-cell-wide"><input maxlength="30" id="devModule-${idCounter}" lay-verify="required" class="layui-input" name="devModule-${idCounter}" /></td>
|
||||||
<td class="table-cell-wide"><input id="devStatus-${idCounter}" lay-verify="required" class="layui-input" name="devStatus-${idCounter}" /></td>
|
<td class="table-cell-wide"><input maxlength="30" id="devStatus-${idCounter}" lay-verify="required" class="layui-input" name="devStatus-${idCounter}" /></td>
|
||||||
<td class="table-cell-wide"><input id="amounts-${idCounter}" lay-verify="required" class="layui-input" name="amounts-${idCounter}" /></td>
|
<td class="table-cell-wide"><input maxlength="6" id="amounts-${idCounter}" type="text" lay-affix="number" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1')" min="0" lay-verify="required" class="layui-input" name="amounts-${idCounter}" /></td>
|
||||||
<td class="table-cell-wide"><input id="remarks-${idCounter}" lay-verify="required" class="layui-input" name="remarks-${idCounter}" /></td>
|
<td class="table-cell-wide"><input maxlength="60" id="remarks-${idCounter}" lay-verify="required" class="layui-input" name="remarks-${idCounter}" /></td>
|
||||||
`;
|
`;
|
||||||
// 遍历itemList的长度,而不是itemList本身,以匹配表头的列数
|
// 遍历itemList的长度,而不是itemList本身,以匹配表头的列数
|
||||||
for (let i = 0; i < columns; i++) {
|
for (let i = 0; i < columns; i++) {
|
||||||
|
|
@ -741,6 +746,7 @@ function generateRows(data,sampleDeviceVos){
|
||||||
input.id = `devData-${idCounter}-${i + 1}`;
|
input.id = `devData-${idCounter}-${i + 1}`;
|
||||||
input.name = `devData-${idCounter}-${i + 1}`;
|
input.name = `devData-${idCounter}-${i + 1}`;
|
||||||
input.classList.add('layui-input');
|
input.classList.add('layui-input');
|
||||||
|
input.maxLength='30';
|
||||||
input.setAttribute('lay-verify', 'required');
|
input.setAttribute('lay-verify', 'required');
|
||||||
td.appendChild(input);
|
td.appendChild(input);
|
||||||
row.appendChild(td);
|
row.appendChild(td);
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,8 @@ function initTable(dataList, limit, page) {
|
||||||
templet: function (d) {
|
templet: function (d) {
|
||||||
var testResult="";
|
var testResult="";
|
||||||
var html = '';
|
var html = '';
|
||||||
|
var sampleList = JSON.stringify(d.sampleList);
|
||||||
|
if(d.sampleList.length>0){
|
||||||
for (let i = 0; i < d.sampleList.length; i++) {
|
for (let i = 0; i < d.sampleList.length; i++) {
|
||||||
if (d.sampleList[i].testResult == "合格") {
|
if (d.sampleList[i].testResult == "合格") {
|
||||||
|
|
||||||
|
|
@ -84,16 +86,17 @@ function initTable(dataList, limit, page) {
|
||||||
testResult = d.sampleList[i].testResult
|
testResult = d.sampleList[i].testResult
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// sampleList = JSON.stringify(d.sampleList);
|
||||||
|
}
|
||||||
|
|
||||||
if(testResult=="不合格"){
|
if(testResult=="不合格"){
|
||||||
// 添加包裹元素并应用类
|
// 添加包裹元素并应用类
|
||||||
html += "<span class='layui-show-details' style='color: #F39268; cursor: pointer'>" +
|
html += "<span class='layui-show-details' onmouseover='getMouseover("+ sampleList +")' onmouseout='getMouseout()' style='color: #F39268; cursor: pointer'>" +
|
||||||
"<i data-details='" + JSON.stringify(d) + "'></i>" + // 注意这里是字符串形式
|
|
||||||
d.sampleQuantity +
|
d.sampleQuantity +
|
||||||
"</span>";
|
"</span>";
|
||||||
}else{
|
}else{
|
||||||
// 添加包裹元素并应用类
|
// 添加包裹元素并应用类
|
||||||
html += "<span class='layui-show-details' style='color: #2A6EDF; cursor: pointer'>" +
|
html += "<span class='layui-show-details' onmouseover='getMouseover("+ sampleList +")' onmouseout='getMouseout()' style='color: #2A6EDF; cursor: pointer'>" +
|
||||||
"<i data-details='" + JSON.stringify(d) + "'></i>" + // 注意这里是字符串形式
|
|
||||||
d.sampleQuantity +
|
d.sampleQuantity +
|
||||||
"</span>";
|
"</span>";
|
||||||
|
|
||||||
|
|
@ -137,9 +140,12 @@ function initTable(dataList, limit, page) {
|
||||||
{title: "原始记录", unresize: true, width: 300, align: "center",
|
{title: "原始记录", unresize: true, width: 300, align: "center",
|
||||||
templet: function (d) {
|
templet: function (d) {
|
||||||
var html = '';
|
var html = '';
|
||||||
let search="<a class=\"layui-icon \" style='cursor:pointer;' title='查看' style=\"color: blue;\" onclick=\"checkData('" + d.experId + "','" + d.sampleId + "','"+ d.devTypeCode+"')\">查看</a>";
|
let search ="";
|
||||||
|
if(d.status != "待试验"){
|
||||||
|
search="<a class=\"layui-icon layui-icon-search\" title='查看' style=\"color: blue;\" onclick=\"checkData('" + d.experId + "','" + d.sampleId + "','"+ d.devTypeCode+"')\"></a>";
|
||||||
|
}
|
||||||
if (d.status == "待试验" || d.status == "待提交" || d.status == "审阅不通过" || d.status == "审核不通过" || d.status == "审批不通过") {
|
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.sampleId + "','"+ d.devTypeCode+"')\">编制</a>";
|
let edit="<a class=\"layui-icon layui-icon-edit\" title='编制' style=\"color: blue;\" onclick=\"addData('" + d.experId + "','" + d.sampleId + "','"+ d.devTypeCode+"')\"></a>";
|
||||||
html=search+edit;
|
html=search+edit;
|
||||||
} else {
|
} else {
|
||||||
html=search;
|
html=search;
|
||||||
|
|
@ -158,6 +164,52 @@ function initTable(dataList, limit, page) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var devOpenIndex='';
|
||||||
|
function getMouseover(data){
|
||||||
|
// console.log(data)
|
||||||
|
// openIframeTable(data)
|
||||||
|
var html = '<table class="layui-table" lay-skin="line" lay-size="sm" style="width: 100%;">' +
|
||||||
|
'<thead>' +
|
||||||
|
'<tr>' +
|
||||||
|
'<th>序号</th>' +
|
||||||
|
'<th>设备编号</th>' +
|
||||||
|
'<th>试验结果</th>'+
|
||||||
|
'</tr>'+
|
||||||
|
'</thead>'
|
||||||
|
|
||||||
|
html += '<tbody>';
|
||||||
|
if (data.length>0){
|
||||||
|
for (let i = 0; i < data.length; i++){
|
||||||
|
html += '<tr>' +
|
||||||
|
'<td>' + (i+1) + '</td>' +
|
||||||
|
'<td title="'+ data[i].devCode +'" style="cursor: pointer;" >' + data[i].devCode + '</td>' +
|
||||||
|
'<td title="'+ data[i].testResult +'" style="cursor: pointer;">' + data[i].testResult + '</td>' +
|
||||||
|
'</tr>';
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
html += '<tr>' +
|
||||||
|
'<td colspan="3" style="text-align: center">暂无数据</td>' +
|
||||||
|
'</tr>';
|
||||||
|
}
|
||||||
|
html += '</tbody>';
|
||||||
|
html += '</table>';
|
||||||
|
|
||||||
|
devOpenIndex = layer.open({
|
||||||
|
type: 0,
|
||||||
|
title: '设备信息',
|
||||||
|
area: ['300px', '300px'],
|
||||||
|
content: html,
|
||||||
|
btn: ['关闭'],
|
||||||
|
yes: function (index, layero) {
|
||||||
|
layer.close(index);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function getMouseout(){
|
||||||
|
// alert("鼠标移出");
|
||||||
|
// layer.close(devOpenIndex);
|
||||||
|
}
|
||||||
|
|
||||||
// 获取参数
|
// 获取参数
|
||||||
function getReqParams(page, limit, type) {
|
function getReqParams(page, limit, type) {
|
||||||
|
|
|
||||||
|
|
@ -121,6 +121,7 @@ function setTableData(data){
|
||||||
const rowNumber = index + 1;
|
const rowNumber = index + 1;
|
||||||
// 赋值
|
// 赋值
|
||||||
$(`#devId-${rowNumber}`).val(item.id);
|
$(`#devId-${rowNumber}`).val(item.id);
|
||||||
|
$(`#departmentId-${rowNumber}`).val(item.departmentId);
|
||||||
$(`#devCode-${rowNumber}`).val(item.devCode);
|
$(`#devCode-${rowNumber}`).val(item.devCode);
|
||||||
$(`#manufacturer-${rowNumber}`).val(item.manufacturer);
|
$(`#manufacturer-${rowNumber}`).val(item.manufacturer);
|
||||||
$(`#manufactureDate-${rowNumber}`).val(item.manufactureDate);
|
$(`#manufactureDate-${rowNumber}`).val(item.manufactureDate);
|
||||||
|
|
|
||||||
|
|
@ -127,7 +127,7 @@ function initTable(dataList, limit, page) {
|
||||||
},*/
|
},*/
|
||||||
{title: "操作", unresize: true, width: 300, align: "center",
|
{title: "操作", unresize: true, width: 300, align: "center",
|
||||||
templet: function (d) {
|
templet: function (d) {
|
||||||
return '<a href="#" style="color: blue;" onclick="testClick(\'' + d.id + '\',\''+d.customNum+'\')">试验</a>';
|
return '<a href="#" class="layui-icon layui-icon-set-sm" style="color: blue;cursor:pointer;" title="试验" onclick="testClick(\'' + d.id + '\',\''+d.customNum+'\')"></a>';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
@ -242,6 +242,7 @@ function query() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function reloadData() {
|
function reloadData() {
|
||||||
|
temp_all_list.splice(0,temp_all_list.length)
|
||||||
pages(pageNum, limitSize);
|
pages(pageNum, limitSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,39 @@ function setParams(params) {
|
||||||
saveData(data);
|
saveData(data);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var ins = selectInput.getInstance("#experDevName");
|
||||||
|
// 监听select 选择事件
|
||||||
|
ins.on('itemSelect(experDevName)', function(obj) {
|
||||||
|
var devId=JSON.stringify(ins.getValue().value).replace(/"/g, '');
|
||||||
|
getEcho(devId);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//下拉选回显
|
||||||
|
function getEcho(devId){
|
||||||
|
let url = dataUrl + '/sys/select/getDevices';
|
||||||
|
let obj = {
|
||||||
|
'id':devId
|
||||||
|
}
|
||||||
|
let params = {
|
||||||
|
encryptedData: encryptCBC(JSON.stringify(obj))
|
||||||
|
}
|
||||||
|
ajaxRequest(url, "POST", params, false, function () {
|
||||||
|
}, function (result) {
|
||||||
|
if (result.code === 200) {
|
||||||
|
console.log(result.data)
|
||||||
|
if(result.data.length>0){
|
||||||
|
$('#experDevModule').val(result.data[0].devModule);
|
||||||
|
$('#experDevCode').val(result.data[0].devCode);
|
||||||
|
$('#devContractDate').val(result.data[0].contractDate);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
layer.alert(result.msg, {icon: 2})
|
||||||
|
}
|
||||||
|
}, function (xhr) {
|
||||||
|
error(xhr)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -201,18 +201,18 @@
|
||||||
<table class="layui-table" id="dynamicTable">
|
<table class="layui-table" id="dynamicTable">
|
||||||
<thead >
|
<thead >
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width: 240px !important;" rowspan="2" class="center-aligned ">编号</th>
|
<th rowspan="2" class="center-aligned ">编号</th>
|
||||||
<th style="width: 240px !important;" rowspan="2" class="center-aligned ">客户自编号</th>
|
<th rowspan="2" class="center-aligned ">客户自编号</th>
|
||||||
<th style="width: 240px !important;" colspan="3" class="center-aligned ">样品信息</th>
|
<th colspan="3" class="center-aligned ">样品信息</th>
|
||||||
<th style="width: 240px !important;" rowspan="2" class="center-aligned ">外观状态</th>
|
<th rowspan="2" class="center-aligned ">外观状态</th>
|
||||||
<th style="width: 240px !important;" rowspan="2" class="center-aligned ">金额</th>
|
<th rowspan="2" class="center-aligned ">金额</th>
|
||||||
<th style="width: 240px !important;" rowspan="2" class="center-aligned ">备注</th>
|
<th rowspan="2" class="center-aligned ">备注</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width: 240px !important;" class="center-aligned ">生产厂家</th>
|
<th class="center-aligned ">生产厂家</th>
|
||||||
<th style="width: 240px !important;" class="center-aligned ">生产日期</th>
|
<th class="center-aligned ">生产日期</th>
|
||||||
<th style="width: 240px !important;" class="center-aligned ">规格型号</th>
|
<th class="center-aligned ">规格型号</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
</thead>
|
</thead>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue