+ 进样时间去除时间偏移量

+ 进样时间新增时间补偿功能
This commit is contained in:
2025-04-12 20:19:39 +08:00
parent 114ef4c3a0
commit e21b2ba792

View File

@@ -21,16 +21,23 @@
$(document).ready(() => { $(document).ready(() => {
let tip = ` let tip = `
<p>此功能用于计算批处理中每一针样品运行的时间。</p> <p>此功能用于计算批处理中每一针样品运行的时间。</p>
<p>设置时间偏移量可以将每一针的结束时间提前,用于给查看样品图谱及现配现进等操作预留时间。</p> <p>仪器进样需要一定的时间,该部分时间虽然短,积累起来却不可忽视。</p>
<p>仪器进样需要一定的时间,该部分时间虽然短,积累起来却不可忽视。<br> <p>此功能以当前运行样品的时间为起点,再向前或向后计算其他针的时间。所以,越远离当前运行的样品,则误差越大。</p>
此功能以当前运行样品的时间为起点,再向前/向后计算其他针的时间。所以,越远离当前运行的样品,则误差越大。 <p>误差不可避免,但勾选<span style="background-color: black;color: white">时间补偿</span>可尽量校正该误差。</p>
</p>` `
$("#output").append(tip) $("#output").append(tip)
// 初始化当前日期和时间 // 初始化当前日期和时间
$("#nowDate").val(new Date().format("yyyy-MM-dd")) $("#nowDate").val(new Date().format("yyyy-MM-dd"))
$("#nowTime").val(new Date().format("hh:mm")) $("#nowTime").val(new Date().format("hh:mm"))
// 默认选中时间补偿
let offset = true
// 注册时间补偿的事件监听器
$("#offset").on("change", function () {
offset = $(this).is(":checked")
})
$("#ok").click(() => { $("#ok").click(() => {
let nowDate = $("#nowDate").val() let nowDate = $("#nowDate").val()
let nowTime = $("#nowTime").val() let nowTime = $("#nowTime").val()
@@ -38,18 +45,17 @@
let nowId = new Decimal($("#nowId").val()).toNumber() let nowId = new Decimal($("#nowId").val()).toNumber()
let time = new Decimal($("#time").val()).toNumber() let time = new Decimal($("#time").val()).toNumber()
let nowRunTime = new Decimal($("#nowRunTime").val()).toNumber() let nowRunTime = new Decimal($("#nowRunTime").val()).toNumber()
let offset = new Decimal($("#offset").val()).toNumber()
let data = [] let data = []
// 生成数据 // 生成数据
let array = genData(nowDate, nowTime, allId, nowId, time, nowRunTime, offset) let array = genData(nowDate, nowTime, allId, nowId, time, nowRunTime, offset ? 30 : 1)
let formatString = 'YYYY-MM-DD HH:mm' let formatString = 'YYYY-MM-DD HH:mm'
array.forEach((value, index) => { array.forEach((value, index) => {
data.push({ data.push({
"id": index + 1, "id": index + 1,
"startTime": value.format(formatString), "startTime": value.format(formatString),
"endTime": value.add(time, 'minute').format(formatString), "endTime": value.add(time, 'minute').format(formatString),
"offsetTime": value.add(time - offset, 'minute').format(formatString)
}) })
}) })
@@ -67,7 +73,6 @@
$("#nowId").val("") $("#nowId").val("")
$("#time").val("") $("#time").val("")
$("#nowRunTime").val("") $("#nowRunTime").val("")
// $("#offset").val("")
$("#output").empty() $("#output").empty()
$("#output").append(tip) $("#output").append(tip)
}) })
@@ -86,8 +91,8 @@
* @param {Number} nowId 当前针数(当前仪器运行到第几针) * @param {Number} nowId 当前针数(当前仪器运行到第几针)
* @param {Number} time 一针有多少分钟(包括后运行) * @param {Number} time 一针有多少分钟(包括后运行)
* @param {Number} nowRunTime 当前这针已经运行了多少分钟 * @param {Number} nowRunTime 当前这针已经运行了多少分钟
* @param {Number} offset 每一针需偏移多少分钟 * @param {Number} offset 每一针需偏移多少秒(默认 30 秒)
* @return {Array} dayjs * @return {Array} 保存了 dayjs 对象的数组,每一个元素代表一针的开始时间
*/ */
function genData(nowDate, nowTime, allId, nowId, time, nowRunTime, offset) { function genData(nowDate, nowTime, allId, nowId, time, nowRunTime, offset) {
let array = new Array(allId) let array = new Array(allId)
@@ -97,11 +102,11 @@
array[nowId - 1] = now.subtract(nowRunTime, 'minute') array[nowId - 1] = now.subtract(nowRunTime, 'minute')
// 计算当前这针前面的时间 // 计算当前这针前面的时间
for (let index = nowId - 2; index >= 0; index--) { for (let index = nowId - 2; index >= 0; index--) {
array[index] = array[index + 1].subtract(time, 'minute') array[index] = array[index + 1].subtract(time, 'minute').subtract(offset, 'second')
} }
// 计算当前这针后面的时间 // 计算当前这针后面的时间
for (let index = nowId; index < allId; index++) { for (let index = nowId; index < allId; index++) {
array[index] = array[index - 1].add(time, 'minute') array[index] = array[index - 1].add(time, 'minute').add(offset, 'second')
} }
return array return array
} }
@@ -120,15 +125,12 @@
let lineNum = document.createElement("th") let lineNum = document.createElement("th")
let startTime = document.createElement("th") let startTime = document.createElement("th")
let endTime = document.createElement("th") let endTime = document.createElement("th")
let offset = document.createElement("th")
lineNum.innerText = "序号" lineNum.innerText = "序号"
startTime.innerText = "开始时间" startTime.innerText = "开始时间"
endTime.innerText = "结束时间" endTime.innerText = "结束时间"
offset.innerText = "偏移后"
row.appendChild(lineNum) row.appendChild(lineNum)
row.appendChild(startTime) row.appendChild(startTime)
row.appendChild(endTime) row.appendChild(endTime)
// row.appendChild(offset)
table.appendChild(row) table.appendChild(row)
let highlight = 'background-color: #ffffcc;' let highlight = 'background-color: #ffffcc;'
data.forEach(element => { data.forEach(element => {
@@ -136,20 +138,16 @@
let td_id = document.createElement("td") let td_id = document.createElement("td")
let td_start_time = document.createElement("td") let td_start_time = document.createElement("td")
let td_end_time = document.createElement("td") let td_end_time = document.createElement("td")
let td_offset_time = document.createElement("td")
td_id.innerText = element.id td_id.innerText = element.id
td_start_time.innerText = element.startTime td_start_time.innerText = element.startTime
// td_end_time.innerText = element.endTime td_end_time.innerText = element.endTime
td_end_time.innerText = element.offsetTime
td_offset_time.innerText = element.offsetTime
if (element.id == nowId) tr.style = highlight if (element.id == nowId) tr.style = highlight
tr.appendChild(td_id) tr.appendChild(td_id)
tr.appendChild(td_start_time) tr.appendChild(td_start_time)
tr.appendChild(td_end_time) tr.appendChild(td_end_time)
// tr.appendChild(td_offset_time)
table.appendChild(tr) table.appendChild(tr)
}) })
return table return table
@@ -214,6 +212,23 @@
font-size: medium; font-size: medium;
line-height: 32px; line-height: 32px;
} }
.offset {
display: flex;
display: -webkit-flex;
align-items: center;
line-height: 32px;
}
.offset label {
width: 100%;
line-height: 32px;
padding-left: 5px;
}
#offset {
width: 20px;
}
</style> </style>
</head> </head>
@@ -256,10 +271,9 @@
<label for="nowRunTime">当前运行时间</label> <label for="nowRunTime">当前运行时间</label>
<div><input type="number" id="nowRunTime" inputmode="decimal" autocomplete="off"></div> <div><input type="number" id="nowRunTime" inputmode="decimal" autocomplete="off"></div>
</div> </div>
<div class="offset">
<div class="inputbox offset"> <input type="checkbox" id="offset" checked>
<label for="offset">时间偏移量</label> <label for="offset">时间补偿</label>
<div><input type="number" id="offset" inputmode="decimal" autocomplete="off" value="0"></div>
</div> </div>
</div> </div>