+ L414-5KR 相关物质修改提示信息

+ 目录结构调整
This commit is contained in:
2023-01-14 22:48:02 +08:00
parent e1e206d066
commit b0521ece6b
19 changed files with 77 additions and 4992 deletions

302
views/lod.html Normal file
View File

@@ -0,0 +1,302 @@
<!DOCTYPE html>
<html lang="zh-cmn-Hans">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>干燥失重</title>
<link rel="stylesheet" href="../statics/github.css">
<link rel="stylesheet" href="../statics/theme.css">
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script type="module">
import { Decimal } from "../statics/modules/decimal.mjs"
import { IO } from "../statics/modules/tools.js"
let io = new IO('lod')
let debug = false
let tip = `
<br><b>操作过程:</b>
<br>&nbsp;&nbsp; 1. 空瓶干燥 3 小时
<br>&nbsp;&nbsp; 2. 冷却称重
<br>&nbsp;&nbsp; 3. 干燥 1 小时
<br>&nbsp;&nbsp; 4. 冷却称重(1) 并加样(2)
<br>&nbsp;&nbsp; 5. 干燥 3 小时
<br>&nbsp;&nbsp; 6. 冷却称重
<br>&nbsp;&nbsp; 7. 干燥 1 小时
<br>&nbsp;&nbsp; 8. 冷却称重(3)
<br>
`
let decimal = Decimal.set({
rounding: Decimal.ROUND_HALF_EVEN,
precision: 12
})
$(document).ready(() => {
$(".msgbox").append(tip)
loadSavedContentsList()
// 若有前面页面的传值,则导入传入的值
if (window.location.search.startsWith('?data')) {
let data = getUrlParams('data').replaceAll('%22', '"')
importData(JSON.parse(data))
}
$("#ok").click(() => {
let m0l = $("#m0l").val()
let m1l = $("#m1l").val()
let m3l = $("#m3l").val()
let m0r = $("#m0r").val()
let m1r = $("#m1r").val()
let m3r = $("#m3r").val()
let lod1 = lod(m0l, m1l, m3l)
let lod2 = lod(m0r, m1r, m3r)
let average = decimal.add(lod1, lod2).div(2).toString()
let format = (value) => {
if (value <= 0) return `<span style="color: red;">${value}</span>`
return value
}
let msg = `<br>
第一组干燥失重 = ${format(lod1)}<br>
第二组干燥失重 = ${format(lod2)}<br>
两组干燥失重平均值 = ${format(average)}<br>
${m0l != '' && m1l != '' ? `第一组恒重后空瓶+样 = ${decimal.add(m0l, m1l).toString()}` : ''}<br>
${m0r != '' && m1r != '' ? `第二组恒重后空瓶+样 = ${decimal.add(m0r, m1r).toString()}` : ''}<br>
`
message(msg)
})
$("#clear").click(() => {
if (!window.confirm("所填写的数据将被清空,确定?")) return
$("#lod-name").val("")
clearInput()
})
$("#new_page").click(() => {
// 将当前页面的数据封装,并通过 URL 参数传递给新页面
let data = JSON.stringify(io.collectData($("input")))
let search = `?data=${data}`.replaceAll('"', '%22')
let url = `${window.location.origin}${window.location.pathname}${search}`
window.open(url, "_blank")
})
$("#save").click(() => {
let id = $("#lod-name").val()
if (id.length == 0) {
confirm("请输入或选择样品批号!")
return
}
io.write(id, JSON.stringify(io.collectData($("input"))))
loadSavedContentsList()
})
$("#restore").click(() => {
let id = $("#lod-name").val()
if (id.length == 0) {
confirm("请输入或选择样品批号!")
return
}
let lod = JSON.parse(io.read(id))
io.exportData(lod, $("input"))
})
$("#remove").click(() => {
let id = $("#lod-name").val()
if (id.length == 0) {
confirm("请输入或选择样品批号!")
return
}
if (confirm(`确认删除 ${id} 的数据?`)) {
io.remove(id)
loadSavedContentsList()
$("#lod-name").val("")
clearInput()
}
})
if (debug) {
$("#m0l").val(18.34625)
$("#m1l").val(1.04213)
$("#m3l").val(19.38511)
$("#m0r").val(21.23537)
$("#m1r").val(1.00242)
$("#m3r").val(22.23460)
}
})
function clearInput() {
$("#m0l").val("")
$("#m1l").val("")
$("#m3l").val("")
$("#m0r").val("")
$("#m1r").val("")
$("#m3r").val("")
message(tip)
}
// 需要导入哪些
function importData(data) {
io.exportData(data, $("input"))
clearInput()
// 对批号自增
let id = data.lod_name
if (data.lod_name.indexOf('-')) {
let x = data.lod_name.split('-')
id = x[x.length - 1]
}
id = decimal.add(id, 1)
if (data.lod_name.indexOf('-')) {
id = data.lod_name.substring(0, data.lod_name.lastIndexOf('-') + 1) + id
}
$("#lod-name").val(id)
}
function getUrlParams(key) {
let params = window.location.search.substring(1).split("&")
for (const v of params) {
let pair = v.split("=")
if (pair[0] == key) return pair[1]
}
}
function loadSavedContentsList() {
// load data from localStorage to input.
$("#keys").empty()
let keys = io.listKeys().sort()
keys.forEach(key => {
let timestamp = JSON.parse(io.read(key)).timestamp
let time = new Date(timestamp).format("yyyy-MM-dd hh:mm")
let option = document.createElement("option")
$(option).attr("value", key)
$(option).attr("label", `保存于 ${time}`)
$("#keys").append(option)
})
}
// check storage available
function storageAvailable(type) {
let storage
try {
storage = window[type]
const x = '__storage_test__'
storage.setItem(x, x)
storage.removeItem(x)
return true
}
catch (e) {
return e instanceof DOMException && (
// everything except Firefox
e.code === 22 ||
// Firefox
e.code === 1014 ||
// test name field too, because code might not be present
// everything except Firefox
e.name === 'QuotaExceededError' ||
// Firefox
e.name === 'NS_ERROR_DOM_QUOTA_REACHED') &&
// acknowledge QuotaExceededError only if there's something already stored
(storage && storage.length !== 0)
}
}
function message(msg) {
$(".msgbox").empty()
$(".msgbox").append(msg)
}
/**
* 计算干燥失重
* @param m0 恒重后空瓶重
* @param m1 样品重
* @param m3 干燥恒重后带样品重
* @return 干燥失重(%
*/
function lod(m0, m1, m3) {
if (checkNull(m0, m1, m3)) {
return "0"
}
let a = new Decimal(m0)
let b = new Decimal(m1)
let c = new Decimal(m3)
// a + b - c / b
let d = decimal.add(a, b).minus(c)
let e = d.div(b).mul(100)
return e.toString()
}
function checkNull(m0, m1, m3) {
return m0 == '' || m1 == '' || m3 == ''
}
// 为 Date 创建日期格式化方法
Date.prototype.format = function (fmt) {
let o = {
"M+": this.getMonth() + 1, // 月份
"d+": this.getDate(), // 日
"h+": this.getHours(), // 小时
"m+": this.getMinutes(), // 分
"s+": this.getSeconds(), // 秒
"q+": Math.floor((this.getMonth() + 3) / 3),// 季度
"S": this.getMilliseconds() // 毫秒
}
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length))
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)))
}
}
return fmt
}
</script>
</head>
<body>
<h3>干燥失重</h3>
<input type="text" name="lod-name" id="lod-name" list="keys" placeholder="样品批号"><br><br>
<div class="one-team">
第一组<br>
<input type="number" name="m0l" id="m0l" class="one-input m0" placeholder="恒重后空瓶重(1)" inputmode="decimal"><br>
<input type="number" name="m1l" id="m1l" class="one-input m1" placeholder="样品重(2)" inputmode="decimal"><br>
<input type="number" name="m3l" id="m3l" class="one-input m3" placeholder="干燥恒重后带样品重(3)"
inputmode="decimal"><br>
<br>
</div>
<div class="two-team">
第二组<br>
<input type="number" name="m0r" id="m0r" class="two-input m0" placeholder="恒重后空瓶重(1)" inputmode="decimal"><br>
<input type="number" name="m1r" id="m1r" class="two-input m1" placeholder="样品重(2)" inputmode="decimal"><br>
<input type="number" name="m3r" id="m3r" class="two-input m3" placeholder="干燥恒重后带样品重(3)"
inputmode="decimal"><br>
<br>
</div>
<div class="buttons">
<button id="new_page">新开标签页</button>
<button id="clear">清除内容</button>
<button id="ok">计算</button><br>
<button id="remove">删除</button>
<button id="restore">恢复</button>
<button id="save">保存</button>
</div>
<div class="msgbox"></div>
<datalist id="keys"></datalist>
</body>
</html>