(function (global) {
|
if (global.MonitorCardKit) {
|
return;
|
}
|
|
function ensureStyles() {
|
if (document.getElementById("monitor-card-kit-style")) {
|
return;
|
}
|
var style = document.createElement("style");
|
style.id = "monitor-card-kit-style";
|
style.textContent = [
|
"watch-crn-card,watch-dual-crn-card,devp-card,watch-rgv-card{display:block;width:100%;min-width:0;min-height:0;flex:1 1 auto;}",
|
".mc-root{display:flex;flex-direction:column;width:100%;height:100%;min-width:0;min-height:0;color:#375067;font-size:12px;}",
|
".mc-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:10px;}",
|
".mc-title{flex:1;font-size:14px;font-weight:700;color:#22384f;}",
|
".mc-search{display:flex;gap:8px;flex:1;}",
|
".mc-input,.mc-select{width:100%;height:34px;padding:0 11px;border-radius:10px;border:1px solid rgba(219,228,236,.96);background:rgba(255,255,255,.84);box-sizing:border-box;color:#334155;outline:none;}",
|
".mc-input:focus,.mc-select:focus{border-color:rgba(112,148,190,.62);box-shadow:0 0 0 3px rgba(112,148,190,.1);}",
|
".mc-btn{height:34px;padding:0 12px;border-radius:10px;border:none;background:#6f95bd;color:#fff;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;}",
|
".mc-btn.mc-btn-ghost{background:rgba(255,255,255,.88);color:#46607a;border:1px solid rgba(219,228,236,.96);}",
|
".mc-btn.mc-btn-soft{background:rgba(233,239,245,.92);color:#46607a;border:1px solid rgba(210,220,231,.98);}",
|
".mc-control-toggle{margin-bottom:8px;}",
|
".mc-control{margin-bottom:10px;padding:12px;border:1px solid rgba(223,232,240,.94);border-radius:14px;background:rgba(248,251,253,.88);}",
|
".mc-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}",
|
".mc-field{display:flex;flex-direction:column;gap:5px;}",
|
".mc-field.mc-span-2{grid-column:1 / -1;}",
|
".mc-field-label{font-size:11px;font-weight:700;color:#72859a;}",
|
".mc-action-row{display:flex;flex-wrap:wrap;gap:8px;grid-column:1 / -1;padding-top:8px;margin-top:2px;border-top:1px dashed rgba(216,226,235,.92);}",
|
".mc-collapse{flex:1;min-height:0;overflow:auto;padding-right:2px;}",
|
".mc-item{border:1px solid rgba(223,232,240,.92);border-radius:14px;background:rgba(255,255,255,.72);margin-bottom:10px;overflow:hidden;}",
|
".mc-item.is-open{border-color:rgba(132,166,201,.48);box-shadow:0 10px 18px rgba(148,163,184,.08);}",
|
".mc-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border:none;background:transparent;cursor:pointer;text-align:left;color:inherit;}",
|
".mc-head-main{min-width:0;flex:1;}",
|
".mc-head-title{font-size:13px;font-weight:700;color:#27425c;line-height:1.35;}",
|
".mc-head-subtitle{margin-top:3px;font-size:11px;color:#7c8d9f;line-height:1.35;}",
|
".mc-head-right{display:flex;align-items:center;gap:8px;flex-shrink:0;}",
|
".mc-badge{padding:4px 8px;border-radius:999px;font-size:10px;font-weight:700;}",
|
".mc-badge.is-success{background:rgba(82,177,126,.12);color:#2d7650;}",
|
".mc-badge.is-working{background:rgba(111,149,189,.12);color:#3f6286;}",
|
".mc-badge.is-warning{background:rgba(214,162,94,.14);color:#9b6a24;}",
|
".mc-badge.is-danger{background:rgba(207,126,120,.14);color:#a14e4a;}",
|
".mc-badge.is-muted{background:rgba(148,163,184,.14);color:#748397;}",
|
".mc-chevron{font-size:14px;color:#6f8194;line-height:1;}",
|
".mc-body{padding:0 14px 14px;border-top:1px solid rgba(232,238,244,.92);}",
|
".mc-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;}",
|
".mc-detail-cell{padding:10px 12px;border-radius:12px;background:rgba(247,250,252,.9);border:1px solid rgba(232,238,244,.96);}",
|
".mc-detail-label{font-size:11px;color:#7c8d9f;}",
|
".mc-detail-value{margin-top:4px;font-size:12px;color:#31485f;line-height:1.45;word-break:break-all;}",
|
".mc-inline-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}",
|
".mc-link{padding:0;border:none;background:transparent;color:#4677a4;font-size:12px;font-weight:600;cursor:pointer;}",
|
".mc-empty{padding:24px 10px;text-align:center;color:#8b9aad;}",
|
".mc-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:10px;color:#708396;font-size:11px;}",
|
".mc-page-btn{height:30px;padding:0 10px;border-radius:8px;border:1px solid rgba(219,228,236,.96);background:rgba(255,255,255,.86);color:#46607a;cursor:pointer;}",
|
".mc-page-btn[disabled]{opacity:.45;cursor:not-allowed;}",
|
".mc-code{font-family:monospace;}",
|
"@media (max-width: 1100px){.mc-control-grid{grid-template-columns:1fr;}.mc-field.mc-span-2{grid-column:auto;}.mc-toolbar{flex-direction:column;align-items:stretch;}.mc-search{width:100%;}.mc-detail-grid{grid-template-columns:1fr;}}"
|
].join("");
|
document.head.appendChild(style);
|
}
|
|
function showMessage(vm, message, type) {
|
if (!message) {
|
return;
|
}
|
if (vm && typeof vm.$message === "function") {
|
vm.$message({
|
message: message,
|
type: type === "danger" ? "error" : (type || "info")
|
});
|
return;
|
}
|
if (vm && vm.$root && typeof vm.$root.showPageMessage === "function") {
|
vm.$root.showPageMessage(message, type === "danger" ? "error" : type);
|
return;
|
}
|
if (global.ELEMENT && typeof global.ELEMENT.Message === "function") {
|
global.ELEMENT.Message({
|
message: message,
|
type: type === "danger" ? "error" : (type || "info")
|
});
|
return;
|
}
|
if (global.layer && typeof global.layer.msg === "function") {
|
var iconMap = { success: 1, danger: 2, warning: 0 };
|
global.layer.msg(message, {
|
icon: iconMap[type] != null ? iconMap[type] : 0,
|
time: 1800
|
});
|
return;
|
}
|
console[type === "danger" ? "error" : "log"](message);
|
}
|
|
function orDash(value) {
|
return value == null || value === "" ? "-" : String(value);
|
}
|
|
function yesNo(value) {
|
if (value === true || value === "Y" || value === "y" || value === 1 || value === "1") {
|
return "Y";
|
}
|
if (value === false || value === "N" || value === "n" || value === 0 || value === "0") {
|
return "N";
|
}
|
return value ? "Y" : "N";
|
}
|
|
function deviceStatusLabel(status, fallbackManual) {
|
var normalized = String(status || "").toUpperCase();
|
if (normalized === "AUTO") {
|
return "自动";
|
}
|
if (normalized === "WORKING") {
|
return "作业中";
|
}
|
if (normalized === "ERROR") {
|
return "故障";
|
}
|
return fallbackManual || "离线";
|
}
|
|
function statusTone(label) {
|
if (label === "自动") {
|
return "success";
|
}
|
if (label === "作业中") {
|
return "working";
|
}
|
if (label === "手动") {
|
return "warning";
|
}
|
if (label === "故障" || label === "报警") {
|
return "danger";
|
}
|
return "muted";
|
}
|
|
global.MonitorCardKit = {
|
ensureStyles: ensureStyles,
|
showMessage: showMessage,
|
orDash: orDash,
|
yesNo: yesNo,
|
deviceStatusLabel: deviceStatusLabel,
|
statusTone: statusTone
|
};
|
})(window);
|