试验管理

This commit is contained in:
lSun 2024-07-25 20:08:04 +08:00
parent ca9e8a2086
commit 9030f67757
8 changed files with 211 additions and 15 deletions

View File

@ -354,6 +354,9 @@ function saveData(data) {
//获取试验项内容列表
var items = convertToItems(data.field);
if(data.field["id"] !=""){
items = convertToItemsUpdate(data.field);
}
// 获取select元素
// var selectElement = document.getElementById('devCode');
@ -392,7 +395,7 @@ function saveData(data) {
//
'paramsData':paramsData
}
debugger;
console.log(obj)
let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0});
@ -501,6 +504,7 @@ function convertToExperDevList(originalData){
return experDevList;
}
function convertToItems(obj){
var dataField = obj;
var items = [];
@ -531,6 +535,8 @@ function convertToItems(obj){
// 填充 itemName 数据
Object.keys(dataField).forEach(key => {
if (key.startsWith('itemName-')) {
debugger
const parts = key.split('-');
const experTypeIndex = parts[1];
const itemIndex = parts[2];
@ -553,6 +559,64 @@ function convertToItems(obj){
items.sort((a, b) => a.itemsSort - b.itemsSort);
return items;
}
function convertToItemsUpdate(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({
"id":"",
"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];
item.id= dataField['experTypeId-' + experTypeIndex];
});
// 填充 itemName 数据
Object.keys(dataField).forEach(key => {
if (key.startsWith('itemName-')) {
debugger
const parts = key.split('-');
const experTypeIndex = parts[1];
const itemIndex = parts[2];
const itemNum = parseInt(itemIndex);
const itemName = dataField[key];
const id = dataField['itemId-' + experTypeIndex + '-' + itemNum];
// 找到对应的试验项并添加试验项内容
items[experTypeIndex - 1].item.push({
"id":id,
"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,});
@ -688,6 +752,7 @@ function generateHeaders(data) {
// firstLevelHeader.textContent = `${item.experTypeName} - ${item.amount}`;
firstLevelHeader.innerHTML=`
${item.experTypeName} - ${item.amount}
<input type="hidden" class="layui-input" id="experTypeId-${counter}" name="experTypeId-${counter}" value="${item.id}">
<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>`;
@ -699,6 +764,7 @@ function generateHeaders(data) {
secondLevelHeader.classList.add('center-aligned');
secondLevelHeader.innerHTML=`
${subItem.itemName}
<input type="hidden" class="layui-input" id="itemId-${counter}-${totalCols}" name="itemId-${counter}-${totalCols}" value="${subItem.id}" >
<input type="hidden" class="layui-input" id="itemName-${counter}-${totalCols}" name="itemName-${counter}-${totalCols}" value="${subItem.itemName}" >
`
// secondLevelHeader.textContent = subItem.itemName;

View File

@ -1,6 +1,8 @@
let form, layer, table, tableIns,idParam,customNumParam;
let pageNum = 1, limitSize = 10; // 默认第一页分页数量为10
var pers = checkPermission();
function setParams(params) {
idParam = JSON.parse(params).id;
customNumParam = JSON.parse(params).customNum;
@ -140,16 +142,26 @@ function initTable(dataList, limit, page) {
{title: "原始记录", unresize: true, width: 300, align: "center",
templet: function (d) {
var html = '';
let search ="";
let search ="";
let edit = "";
var experId = d.experId;
var sampleId = d.sampleId;
var devTypeCode = d.devTypeCode;
if(d.status != "待试验"){
search="<a class=\"layui-icon layui-icon-search\" title='查看' style=\"color: blue;\" onclick=\"checkData('" + d.experId + "','" + d.sampleId + "','"+ d.devTypeCode+"')\"></a>";
search = buttonCheck(experId,sampleId,devTypeCode, "", pers);
// 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 layui-icon-edit\" title='编制' style=\"color: blue;\" onclick=\"addData('" + d.experId + "','" + d.sampleId + "','"+ d.devTypeCode+"')\"></a>";
html=search+edit;
} else {
html=search;
// edit="<a class=\"layui-icon layui-icon-edit\" title='编制' style=\"color: blue;\" onclick=\"addData('" + d.experId + "','" + d.sampleId + "','"+ d.devTypeCode+"')\"></a>";
if (experId!=null && experId!='null') {
edit=buttonEditTest(experId,sampleId,devTypeCode, "sys:experimentalTest:edit", pers);
}else{
edit=buttonAdd(experId,sampleId,devTypeCode, "sys:experimentalTest:add", pers);
}
}
html = search+edit;
return html;
}
},
@ -248,6 +260,15 @@ function reloadData() {
}
// 查看
function buttonCheck(experId,sampleId,devTypeCode, permission, pers){
if(permission != ""){
if ($.inArray(permission, pers) < 0) {
return ""
}
}
var btn=$("<a class=\"layui-icon layui-icon-search\" title='查看' style=\"color: blue;\" onclick=\"checkData('" + experId + "','" + sampleId + "','"+ devTypeCode+"')\"></a>");
return btn.prop("outerHTML");
}
function checkData(experId,sampleId,devTypeCode) {
let param = {
'experId': experId,
@ -259,6 +280,24 @@ function checkData(experId,sampleId,devTypeCode) {
}
// 试验新增、修改
function buttonEditTest(experId,sampleId,devTypeCode, permission, pers){
if(permission != ""){
if ($.inArray(permission, pers) < 0) {
return ""
}
}
var btn=$("<a class=\"layui-icon layui-icon-edit\" title='编制' style=\"color: blue;\" onclick=\"addData('" + experId + "','" + sampleId + "','"+ devTypeCode+"')\"></a>");
return btn.prop("outerHTML");
}
function buttonAdd(experId,sampleId,devTypeCode, permission, pers){
if(permission != ""){
if ($.inArray(permission, pers) < 0) {
return ""
}
}
var btn= $("<a class=\"layui-icon layui-icon-edit\" title='新增' style=\"color: blue;\" onclick=\"addData('" + experId + "','" + sampleId + "','"+ devTypeCode+"')\"></a>");
return btn.prop("outerHTML");
}
function addData(experId,sampleId,devTypeCode) {
let title = '新增试验'
if (experId!=null && experId!='null') {

View File

@ -3,6 +3,8 @@ let pageNum = 1, limitSize = 10; // 默认第一页分页数量为10
let temp_table_list = []; // 临时保存每页的所有数据
let temp_all_list = []; // 临时保存所有选中的数据
var pers = checkPermission();
layui.use(['form', 'layer', 'table', 'laydate'], function () {
form = layui.form;
layer = layui.layer;
@ -127,7 +129,11 @@ function initTable(dataList, limit, page) {
},*/
{title: "操作", unresize: true, width: 300, align: "center",
templet: function (d) {
return '<a href="#" class="layui-icon layui-icon-set-sm" style="color: blue;cursor:pointer;" title="试验" onclick="testClick(\'' + d.id + '\',\''+d.customNum+'\')"></a>';
var id = d.id;
var customNum = d.customNum
var edit = buttonTest(id,customNum, "sys:experimentalTest:query", pers);
return edit;
//return '<a href="#" class="layui-icon layui-icon-set-sm" style="color: blue;cursor:pointer;" title="试验" onclick="testClick(\'' + d.id + '\',\''+d.customNum+'\')"></a>';
}
},
],
@ -247,14 +253,24 @@ function reloadData() {
pages(pageNum, limitSize);
}
// 试验标准新增、修改
// 试验验详情查询
function buttonTest(id,customNum, permission, pers){
if(permission != ""){
if ($.inArray(permission, pers) < 0) {
return "";
}
}
//return '<a href="#" class="layui-icon layui-icon-set-sm" style="color: blue;cursor:pointer;" title="试验" onclick="testClick(\'' + d.id + '\',\''+d.customNum+'\')"></a>';
var btn = $("<button class='layui-btn layui-btn-xs' title='试验' onclick='testClick(\"" + id +"\",\"" + customNum +"\")'><i class='layui-icon layui-icon-set-sm'></i></button>");
return btn.prop("outerHTML");
}
function testClick(id,customNum) {
let title = '试验'
let param = {
'id': id,
'customNum':customNum
}
openIframeMax("testList", title, "child/testList.html", '100%', '100%', param);
openIframeMaxRefresh("testList", title, "child/testList.html", '100%', '100%', param);
}
function getDevSelected() {

View File

@ -1,5 +1,7 @@
let form, layer, table, tableIns;
let pageNum = 1, limitSize = 10; // 默认第一页分页数量为10
var pers = checkPermission();
layui.use(['form', 'layer', 'table', 'laydate'], function () {
form = layui.form;
layer = layui.layer;
@ -70,9 +72,15 @@ function initTable(dataList, limit, page) {
templet: function (d) {
let html = '';
let del="<a class=\"layui-icon layui-icon-delete\" style='cursor:pointer;' title='删除' onclick=\"delData('" + d.id + "')\"></a>"
let edit="<a class=\"layui-icon layui-icon-edit\" style='cursor:pointer;' title='修改' onclick=\"addData('" + d.id + "')\"></a>";
let search="<a class=\"layui-icon layui-icon-search\" style='cursor:pointer;' title='查看' onclick=\"checkData('" + d.id + "')\"></a>";
let id = d.id;
var edit = buttonEdit(id, "sys:experimentStandard:edit", pers);
var search = buttonSearch(id, "", pers);
var del = buttonDel(id, "sys:experimentStandard:del", pers);
// let del="<a class=\"layui-icon layui-icon-delete\" style='cursor:pointer;' title='删除' onclick=\"delData('" + d.id + "')\"></a>"
// let edit="<a class=\"layui-icon layui-icon-edit\" style='cursor:pointer;' title='修改' onclick=\"addData('" + d.id + "')\"></a>";
// let search="<a class=\"layui-icon layui-icon-search\" style='cursor:pointer;' title='查看' onclick=\"checkData('" + d.id + "')\"></a>";
html=search+edit+del;
return html;
}
@ -122,6 +130,15 @@ function reloadData() {
}
// 试验标准新增、修改
function buttonEdit(id, permission, pers){
if(permission != ""){
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var btn = $("<button class='layui-btn layui-btn-xs' title='编辑' onclick='addData(\"" + id +"\")'><i class='layui-icon layui-icon-edit'></i></button>");
return btn.prop("outerHTML");
}
function addData(id) {
let title = '新增试验标准'
if (id) {
@ -134,6 +151,16 @@ function addData(id) {
}
// 查看试验标准
function buttonSearch(id, permission, pers){
if(permission != ""){
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var btn = $("<button class='layui-btn layui-btn-xs' title='查看' onclick='checkData(\"" + id +"\")'><i class='layui-icon layui-icon-search'></i></button>");
return btn.prop("outerHTML");
}
function checkData(id) {
let param = {
'id': id
@ -142,6 +169,17 @@ function checkData(id) {
}
/*删除用户*/
function buttonDel(id, permission, pers){
if(permission != ""){
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var btn = $("<button class='layui-btn layui-btn-xs' title='编辑' onclick='delData(\""+id+"\")'><i class='layui-icon layui-icon-delete'></i></button>");
return btn.prop("outerHTML");
}
function delData(id) {
layer.confirm("确定删除吗?", {
move: false

View File

@ -181,6 +181,40 @@ function openIframeMax(id, title, content, width, height, params) {
// console.log(layer)
// layer.max(layerIndex)
// 弹窗打开后立即调用 layer.full
// layer.full(layerIndex);
}
//关闭后刷新页面
function openIframeMaxRefresh(id, title, content, width, height, params) {
let layerIndex = layer.open({
id: id,
type: 2,
title: ['<div style="border-left: 3px solid #00377A;color:#00377A;font-size:18px;display: flex;letter-spacing:1px;align-items: center;height: 20px;padding: 0 10px;font-weight: bold;">' + title + '</div>', 'font-size:16px;background-color:#f0f0f0;display: flex;align-items: center;'],
content: content,
shade: 0.3,
shadeClose: false,
area: [width, height],
maxmin: true,
move: false,
success: function () {
let iframeWin = window["layui-layer-iframe" + layerIndex];
// console.log(params)
iframeWin.setParams(JSON.stringify(params));
},
cancel:function () {
// 视频监控-历史回放关闭前回调
if(params.videoMonitor){
let iframeWin = window["layui-layer-iframe" + layerIndex];
iframeWin.clickLogout();
}
},end:function () {
reloadData()
}
});
// console.log(layer)
// layer.max(layerIndex)
// 弹窗打开后立即调用 layer.full
// layer.full(layerIndex);
}

View File

@ -11,6 +11,7 @@
<script src="../../../../js/openIframe.js"></script>
<script src="../../../../js/my/aes.js"></script>
<script src="../../../../js/ajaxRequest.js"></script>
<script src="../../../../js/my/permission.js"></script>
<title>试验</title>
</head>
<body>

View File

@ -13,6 +13,7 @@
<script src="../../../js/openIframe.js"></script>
<script src="../../../js/my/aes.js"></script>
<script src="../../../js/ajaxRequest.js"></script>
<script type="text/javascript" src="../../../js/my/permission.js"></script>
<title>试验管理</title>
</head>
<body>
@ -45,7 +46,7 @@
<div class="layui-inline btns">
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm btn-1" permission="sys:experimental:query" onclick="query(1)">查询
</button>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm btn-2"
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm btn-2" permission="sys:experimentalTest:commitCheckTestData"
onclick="commitCheckTestData()">
<div class="layout" style="justify-content: space-around;">
<p>审查</p></div>

View File

@ -11,6 +11,7 @@
<script src="../../../js/openIframe.js"></script>
<script src="../../../js/my/aes.js"></script>
<script src="../../../js/ajaxRequest.js"></script>
<script type="text/javascript" src="../../../js/my/permission.js"></script>
<title>试验标准管理</title>
</head>
<body>
@ -28,7 +29,7 @@
<div class="layui-inline btns">
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm btn-1" permission="sys:experimentStandard:query" onclick="query(1)">查询
</button>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm btn-2"
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm btn-2" permission="sys:experimentStandard:add"
onclick="addData(null)">
<div class="layout" style="justify-content: space-around;"><img
src="../../../img/form/add_icon3.png">