试验管理
This commit is contained in:
parent
e9e44f4866
commit
2c40bd6d68
|
|
@ -339,6 +339,7 @@ function saveData(data) {
|
|||
//试验依据列表
|
||||
var yjList = convertToYjList(data.field);
|
||||
var experDevList = convertToExperDevList(data.field);
|
||||
console.log(experDevList)
|
||||
|
||||
//主要设备
|
||||
var mainDevList = [{
|
||||
|
|
@ -465,6 +466,7 @@ function convertToExperDevList(originalData){
|
|||
deviceIds.forEach(deviceId => {
|
||||
// 使用deviceId来构建键名
|
||||
const devIdKey = `devId-${deviceId}`;
|
||||
const departmentIdKey = `departmentId-${deviceId}`;
|
||||
const devCodeKey = `devCode-${deviceId}`;
|
||||
const manufacturerKey = `manufacturer-${deviceId}`;
|
||||
const manufactureDateKey = `manufactureDate-${deviceId}`;
|
||||
|
|
@ -480,6 +482,7 @@ function convertToExperDevList(originalData){
|
|||
// 创建设备信息对象
|
||||
const deviceItem = {
|
||||
devId: originalData[devIdKey],
|
||||
departmentId: originalData[departmentIdKey],
|
||||
devCode: originalData[devCodeKey],
|
||||
manufacturer: originalData[manufacturerKey],
|
||||
manufactureDate: originalData[manufactureDateKey],
|
||||
|
|
@ -683,9 +686,10 @@ function generateHeaders(data) {
|
|||
firstLevelHeader.colSpan = item.itemList.length;
|
||||
firstLevelHeader.classList.add('center-aligned');
|
||||
// firstLevelHeader.textContent = `${item.experTypeName} - ${item.amount}`;
|
||||
firstLevelHeader.innerHTML=`<div style="display: flex;width: 100%;" >
|
||||
<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%" />
|
||||
<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%" />
|
||||
firstLevelHeader.innerHTML=`
|
||||
${item.experTypeName} - ${item.amount}
|
||||
<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>`;
|
||||
thead.rows[0].appendChild(firstLevelHeader);
|
||||
|
||||
|
|
@ -693,9 +697,9 @@ function generateHeaders(data) {
|
|||
item.itemList.forEach(subItem => {
|
||||
const secondLevelHeader = document.createElement('th');
|
||||
secondLevelHeader.classList.add('center-aligned');
|
||||
secondLevelHeader.innerHTML=`<div style="display: flex;width: 100%;overflow: auto;">
|
||||
<input class="layui-input" readonly title="${subItem.itemName}" id="itemName-${counter}-${totalCols}" name="itemName-${counter}-${totalCols}" value="${subItem.itemName}" style="border: 0px !important;">
|
||||
</div>
|
||||
secondLevelHeader.innerHTML=`
|
||||
${subItem.itemName}
|
||||
<input type="hidden" class="layui-input" id="itemName-${counter}-${totalCols}" name="itemName-${counter}-${totalCols}" value="${subItem.itemName}" >
|
||||
`
|
||||
// secondLevelHeader.textContent = subItem.itemName;
|
||||
secondRow.appendChild(secondLevelHeader);
|
||||
|
|
@ -723,14 +727,15 @@ function generateRows(data,sampleDeviceVos){
|
|||
const row = document.createElement('tr');
|
||||
row.innerHTML = `
|
||||
<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"><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="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 id="amounts-${idCounter}" 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="30" id="devModule-${idCounter}" lay-verify="required" class="layui-input" name="devModule-${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 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 maxlength="60" id="remarks-${idCounter}" lay-verify="required" class="layui-input" name="remarks-${idCounter}" /></td>
|
||||
`;
|
||||
// 遍历itemList的长度,而不是itemList本身,以匹配表头的列数
|
||||
for (let i = 0; i < columns; i++) {
|
||||
|
|
@ -741,6 +746,7 @@ function generateRows(data,sampleDeviceVos){
|
|||
input.id = `devData-${idCounter}-${i + 1}`;
|
||||
input.name = `devData-${idCounter}-${i + 1}`;
|
||||
input.classList.add('layui-input');
|
||||
input.maxLength='30';
|
||||
input.setAttribute('lay-verify', 'required');
|
||||
td.appendChild(input);
|
||||
row.appendChild(td);
|
||||
|
|
|
|||
|
|
@ -77,23 +77,26 @@ function initTable(dataList, limit, page) {
|
|||
templet: function (d) {
|
||||
var testResult="";
|
||||
var html = '';
|
||||
for (let i = 0; i < d.sampleList.length; i++) {
|
||||
if (d.sampleList[i].testResult == "合格") {
|
||||
var sampleList = JSON.stringify(d.sampleList);
|
||||
if(d.sampleList.length>0){
|
||||
for (let i = 0; i < d.sampleList.length; i++) {
|
||||
if (d.sampleList[i].testResult == "合格") {
|
||||
|
||||
}else{
|
||||
testResult = d.sampleList[i].testResult
|
||||
}else{
|
||||
testResult = d.sampleList[i].testResult
|
||||
}
|
||||
}
|
||||
// sampleList = JSON.stringify(d.sampleList);
|
||||
}
|
||||
|
||||
if(testResult=="不合格"){
|
||||
// 添加包裹元素并应用类
|
||||
html += "<span class='layui-show-details' style='color: #F39268; cursor: pointer'>" +
|
||||
"<i data-details='" + JSON.stringify(d) + "'></i>" + // 注意这里是字符串形式
|
||||
html += "<span class='layui-show-details' onmouseover='getMouseover("+ sampleList +")' onmouseout='getMouseout()' style='color: #F39268; cursor: pointer'>" +
|
||||
d.sampleQuantity +
|
||||
"</span>";
|
||||
}else{
|
||||
// 添加包裹元素并应用类
|
||||
html += "<span class='layui-show-details' style='color: #2A6EDF; cursor: pointer'>" +
|
||||
"<i data-details='" + JSON.stringify(d) + "'></i>" + // 注意这里是字符串形式
|
||||
html += "<span class='layui-show-details' onmouseover='getMouseover("+ sampleList +")' onmouseout='getMouseout()' style='color: #2A6EDF; cursor: pointer'>" +
|
||||
d.sampleQuantity +
|
||||
"</span>";
|
||||
|
||||
|
|
@ -137,9 +140,12 @@ function initTable(dataList, limit, page) {
|
|||
{title: "原始记录", unresize: true, width: 300, align: "center",
|
||||
templet: function (d) {
|
||||
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 == "审批不通过") {
|
||||
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;
|
||||
} else {
|
||||
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) {
|
||||
|
|
|
|||
|
|
@ -121,6 +121,7 @@ function setTableData(data){
|
|||
const rowNumber = index + 1;
|
||||
// 赋值
|
||||
$(`#devId-${rowNumber}`).val(item.id);
|
||||
$(`#departmentId-${rowNumber}`).val(item.departmentId);
|
||||
$(`#devCode-${rowNumber}`).val(item.devCode);
|
||||
$(`#manufacturer-${rowNumber}`).val(item.manufacturer);
|
||||
$(`#manufactureDate-${rowNumber}`).val(item.manufactureDate);
|
||||
|
|
|
|||
|
|
@ -127,7 +127,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.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() {
|
||||
temp_all_list.splice(0,temp_all_list.length)
|
||||
pages(pageNum, limitSize);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -51,6 +51,39 @@ function setParams(params) {
|
|||
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">
|
||||
<thead >
|
||||
<tr>
|
||||
<th style="width: 240px !important;" rowspan="2" class="center-aligned ">编号</th>
|
||||
<th style="width: 240px !important;" rowspan="2" class="center-aligned ">客户自编号</th>
|
||||
<th style="width: 240px !important;" colspan="3" class="center-aligned ">样品信息</th>
|
||||
<th style="width: 240px !important;" rowspan="2" class="center-aligned ">外观状态</th>
|
||||
<th style="width: 240px !important;" 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 rowspan="2" class="center-aligned ">客户自编号</th>
|
||||
<th colspan="3" class="center-aligned ">样品信息</th>
|
||||
<th rowspan="2" class="center-aligned ">外观状态</th>
|
||||
<th rowspan="2" class="center-aligned ">金额</th>
|
||||
<th rowspan="2" class="center-aligned ">备注</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th style="width: 240px !important;" class="center-aligned ">生产厂家</th>
|
||||
<th style="width: 240px !important;" class="center-aligned ">生产日期</th>
|
||||
<th style="width: 240px !important;" class="center-aligned ">规格型号</th>
|
||||
<th class="center-aligned ">生产厂家</th>
|
||||
<th class="center-aligned ">生产日期</th>
|
||||
<th class="center-aligned ">规格型号</th>
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
|
|
|
|||
Loading…
Reference in New Issue