agentworkshop 0.7.21 → 0.7.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/BJbhwS5o.js +1 -0
  3. package/.output/public/_nuxt/Bo8t5fkJ.js +1 -0
  4. package/.output/public/_nuxt/{DBXhDLgl.js → BuiGDfMB.js} +1 -1
  5. package/.output/public/_nuxt/{QT54MQV9.js → C53drffV.js} +1 -1
  6. package/.output/public/_nuxt/{BA3XzwiD.js → CEHmSufQ.js} +2 -2
  7. package/.output/public/_nuxt/Dc32T41C.js +1 -0
  8. package/.output/public/_nuxt/DtzZqC0z.js +1 -0
  9. package/.output/public/_nuxt/{BOJaHO5V.js → Ko9mMsJj.js} +3 -3
  10. package/.output/public/_nuxt/{TownView.BHLKAjEu.css → TownView.zu2rU5nS.css} +1 -1
  11. package/.output/public/_nuxt/_id_.C-YXjn8Q.css +1 -0
  12. package/.output/public/_nuxt/_id_.MbzdFygI.css +1 -0
  13. package/.output/public/_nuxt/_wsId_.BqWBlY7X.css +1 -0
  14. package/.output/public/_nuxt/builds/latest.json +1 -1
  15. package/.output/public/_nuxt/builds/meta/1adc96e0-8bbd-4a79-ac7e-b6952556fef8.json +1 -0
  16. package/.output/public/_nuxt/daq.3OKj58HH.css +1 -0
  17. package/.output/public/_nuxt/dbi5bHkY.js +2 -0
  18. package/.output/public/_nuxt/dcw.rXH2fc2Z.css +1 -0
  19. package/.output/public/_nuxt/entry.OR_psZHp.css +1 -0
  20. package/.output/public/_nuxt/{DsOkkMX3.js → jyQyulh-.js} +1 -1
  21. package/.output/public/_nuxt/logs.DMOM-iHe.css +1 -0
  22. package/.output/public/_nuxt/{B-E8fXAO.js → n3vMFfrv.js} +1 -1
  23. package/.output/server/chunks/_/nitro.mjs +842 -717
  24. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  25. package/.output/server/chunks/build/{TownView-ql2eHZOg.mjs → TownView-DxeQe1Bl.mjs} +144 -143
  26. package/.output/server/chunks/build/{TownView-ql2eHZOg.mjs.map → TownView-DxeQe1Bl.mjs.map} +1 -1
  27. package/.output/server/chunks/build/{_id_-CwR5oLu9.mjs → _id_-DQDqj-cZ.mjs} +33 -35
  28. package/.output/server/chunks/build/_id_-DQDqj-cZ.mjs.map +1 -0
  29. package/.output/server/chunks/build/{_id_-Bs-euJPu.mjs → _id_-DY6v6sqB.mjs} +138 -137
  30. package/.output/server/chunks/build/_id_-DY6v6sqB.mjs.map +1 -0
  31. package/.output/server/chunks/build/{_wsId_-B3aB9bIp.mjs → _wsId_-C2O5zZsI.mjs} +6 -6
  32. package/.output/server/chunks/build/{_wsId_-B3aB9bIp.mjs.map → _wsId_-C2O5zZsI.mjs.map} +1 -1
  33. package/.output/server/chunks/build/{daq-epWL_sC7.mjs → daq-B-3xCp_2.mjs} +146 -118
  34. package/.output/server/chunks/build/daq-B-3xCp_2.mjs.map +1 -0
  35. package/.output/server/chunks/build/{dcw-CBPaFj2f.mjs → dcw-BL2dhuz7.mjs} +43 -43
  36. package/.output/server/chunks/build/{dcw-CBPaFj2f.mjs.map → dcw-BL2dhuz7.mjs.map} +1 -1
  37. package/.output/server/chunks/build/{logs-Bz1p6x_5.mjs → logs-Dto_umFY.mjs} +44 -38
  38. package/.output/server/chunks/build/logs-Dto_umFY.mjs.map +1 -0
  39. package/.output/server/chunks/build/{pages-Dq7_H4FK.mjs → pages-D9tOoJsf.mjs} +2 -2
  40. package/.output/server/chunks/build/{pages-Dq7_H4FK.mjs.map → pages-D9tOoJsf.mjs.map} +1 -1
  41. package/.output/server/chunks/build/{town-CstiKxf_.mjs → town-Dsh0jlwZ.mjs} +3 -3
  42. package/.output/server/chunks/build/{town-CstiKxf_.mjs.map → town-Dsh0jlwZ.mjs.map} +1 -1
  43. package/.output/server/chunks/build/{useDaqStream-BOOZ-p-l.mjs → useDaqStream-DkRL3tEW.mjs} +9 -1
  44. package/.output/server/chunks/build/{useDaqStream-BOOZ-p-l.mjs.map → useDaqStream-DkRL3tEW.mjs.map} +1 -1
  45. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +1 -1
  46. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs.map +1 -1
  47. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +34 -0
  48. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs.map +1 -0
  49. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +1 -1
  50. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs.map +1 -1
  51. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +33 -0
  52. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs.map +1 -0
  53. package/.output/server/chunks/routes/renderer.mjs +1 -1
  54. package/.output/server/chunks/virtual/entry.mjs +16 -8
  55. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  56. package/.output/server/package.json +1 -1
  57. package/app/assets/css/main.css +306 -161
  58. package/app/components/workshop/blocks/ClusterArtifact.vue +0 -16
  59. package/app/components/workshop/town/TownView.vue +7082 -7076
  60. package/app/composables/workshop/useDaqStream.ts +10 -0
  61. package/app/pages/daq/[id].vue +919 -937
  62. package/app/pages/daq/index.vue +67 -43
  63. package/app/pages/dcw/[id].vue +6 -5
  64. package/app/pages/dcw/index.vue +1 -30
  65. package/app/pages/logs/index.vue +99 -87
  66. package/i18n/locales/en.ts +3 -0
  67. package/i18n/locales/zh-CN.ts +5 -0
  68. package/package.json +148 -148
  69. package/scripts/_dbg-device-bind-e2e.mjs +129 -0
  70. package/scripts/_dbg-logs-ui-e2e.py +125 -0
  71. package/server/api/workshop/daq/[id]/bind.post.ts +5 -2
  72. package/server/api/workshop/daq/[id]/bindings.put.ts +22 -0
  73. package/server/api/workshop/dcw/[id]/bind.post.ts +4 -2
  74. package/server/api/workshop/dcw/[id]/bindings.put.ts +21 -0
  75. package/server/data/daqs.json +405 -100
  76. package/server/data/dcw-lines.json +7 -0
  77. package/server/data/dcw-rollback.json +21 -10
  78. package/server/data/dcw-runs.json +50 -54
  79. package/server/data/dcw-writes.json +24 -0
  80. package/server/data/dcws.json +505 -216
  81. package/server/data/line-runs.json +18 -18
  82. package/server/services/workshop/agents/industrial-context.ts +231 -222
  83. package/server/services/workshop/daq/daq-controller.ts +76 -23
  84. package/server/services/workshop/daq/daq-node.ts +11 -1
  85. package/server/services/workshop/dcw/dcw-controller.ts +50 -2
  86. package/server/services/workshop/dcw/dcw-node.ts +10 -1
  87. package/shared/daq-protocol.ts +2 -0
  88. package/shared/dcw-protocol.ts +2 -0
  89. package/.output/public/_nuxt/B_C3GLsD.js +0 -1
  90. package/.output/public/_nuxt/Ba7YofCb.js +0 -2
  91. package/.output/public/_nuxt/C_2bTK0C.js +0 -1
  92. package/.output/public/_nuxt/CgT5wMfz.js +0 -1
  93. package/.output/public/_nuxt/D4CLp1hc.js +0 -1
  94. package/.output/public/_nuxt/_id_.DIxEKj88.css +0 -1
  95. package/.output/public/_nuxt/_id_.IbmpkhH4.css +0 -1
  96. package/.output/public/_nuxt/_wsId_.BFyCuUwS.css +0 -1
  97. package/.output/public/_nuxt/builds/meta/5d344836-03a5-4f47-a0a7-fd30192f5a8f.json +0 -1
  98. package/.output/public/_nuxt/daq.6IrhVVfy.css +0 -1
  99. package/.output/public/_nuxt/dcw.rpqpOYQ8.css +0 -1
  100. package/.output/public/_nuxt/entry.DRUzDwmX.css +0 -1
  101. package/.output/public/_nuxt/logs.BarkrvUp.css +0 -1
  102. package/.output/server/chunks/build/_id_-Bs-euJPu.mjs.map +0 -1
  103. package/.output/server/chunks/build/_id_-CwR5oLu9.mjs.map +0 -1
  104. package/.output/server/chunks/build/daq-epWL_sC7.mjs.map +0 -1
  105. package/.output/server/chunks/build/logs-Bz1p6x_5.mjs.map +0 -1
@@ -2,7 +2,7 @@ import { _ as _plugin_vue_export_helper_default, u as useI18n, az as NuxtLink }
2
2
  import { s as spin_default } from './spin-HVY81X_L.mjs';
3
3
  import { a as apiErrorMessage } from './api-error-dul30BYQ.mjs';
4
4
  import { u as useDcwStream } from './useDcwStream-DyB2ufQI.mjs';
5
- import { u as useDaqStream } from './useDaqStream-BOOZ-p-l.mjs';
5
+ import { u as useDaqStream } from './useDaqStream-DkRL3tEW.mjs';
6
6
  import { u as useDeviceTwins } from './useDeviceTwins-ZbT86L9O.mjs';
7
7
  import { defineComponent, computed, ref, reactive, unref, mergeProps, withCtx, createTextVNode, toDisplayString, createVNode, openBlock, createBlock, Fragment, renderList, createCommentVNode, withDirectives, vModelText, useSSRContext } from 'vue';
8
8
  import { useRoute } from 'vue-router';
@@ -56,6 +56,7 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
56
56
  const ls = computed(() => dcw.lineStateOf(lineId.value));
57
57
  dcw.load();
58
58
  dcw.ensureWsFeed();
59
+ const nodeDeviceNames = (n) => (n.deviceIds ?? (n.deviceBindingId ? [n.deviceBindingId] : [])).map((id) => deviceName(id)).join(" / ") || "—";
59
60
  const deviceName = (id) => id ? deviceTwins.twins.find((t) => t.id === id)?.name ?? id : t("dcwDetail.k3own4q121");
60
61
  const stateLabel = {
61
62
  idle: t("dcwDetail.k3zgkk122"),
@@ -328,7 +329,7 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
328
329
  const _component_NuxtLink = NuxtLink;
329
330
  const _component_a_spin = spin_default;
330
331
  if (unref(dcw).loaded && !line.value) {
331
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-7b43b781><p class="banner bad" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k19337yp018"))}</p>`);
332
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-385b5f14><p class="banner bad" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k19337yp018"))}</p>`);
332
333
  _push(ssrRenderComponent(_component_NuxtLink, {
333
334
  class: "pill-btn",
334
335
  to: "/dcw"
@@ -341,122 +342,122 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
341
342
  }, _parent));
342
343
  _push(`</div>`);
343
344
  } else {
344
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-7b43b781><div class="aw-page-head" data-v-7b43b781><div data-v-7b43b781><p class="aw-kicker" data-v-7b43b781><span class="line-chip" style="${ssrRenderStyle({ background: line.value?.color ?? "#3aa0ff" })}" data-v-7b43b781></span>AGENTWORKSHOP / LINE / ${ssrInterpolate(line.value?.name ?? lineId.value)}</p><h1 data-v-7b43b781>${ssrInterpolate(line.value?.name ?? _ctx.$t("dcwDetail.k1b2snna151"))} · ${ssrInterpolate(_ctx.$t("dcwDetail.k1l0iow1137"))}</h1><p class="sub" data-v-7b43b781>${ssrInterpolate(line.value?.description || _ctx.$t("dcwDetail.kzcbfki152"))}</p></div><div class="badges mono" data-v-7b43b781><span class="badge" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))} ${ssrInterpolate(lineNodes.value.length)}</span><span class="badge" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3waz1025"))} ${ssrInterpolate(lineProducts.value.length)}</span><span class="badge" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))} ${ssrInterpolate(lineRecipesAll.value.length)}</span></div></div><section class="aw-tile ctrl-card" data-v-7b43b781><div class="ctrl-left" data-v-7b43b781><button class="${ssrRenderClass([{ running: unref(dcw).controller.running }, "aw-pill"])}"${ssrRenderAttr("title", _ctx.$t("dcwDetail.k1snap154"))} data-v-7b43b781><span class="${ssrRenderClass(unref(dcw).controller.running ? "i-tabler-player-pause" : "i-tabler-player-play")}" data-v-7b43b781></span> ${ssrInterpolate(unref(dcw).controller.running ? _ctx.$t("dcwDetail.kplrsg153") : _ctx.$t("dcwDetail.knxgni9169"))}</button></div><div class="ctrl-right" data-v-7b43b781><span class="ctrl-metrics mono" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))} ${ssrInterpolate(unref(dcw).controller.nodesOnline)}/${ssrInterpolate(unref(dcw).controller.nodesTotal)}</span><span class="sep" data-v-7b43b781>·</span><span${ssrRenderAttr("title", _ctx.$t("dcwDetail.kd3ygmn001"))} data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3wtib138"))} ${ssrInterpolate(unref(dcw).controller.writesTotal)}</span><span class="sep" data-v-7b43b781>·</span><span class="${ssrRenderClass({ warn: unref(dcw).controller.writesFailed > 0 })}"${ssrRenderAttr("title", _ctx.$t("dcwDetail.kd3znl0002"))} data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3yit7139"))} ${ssrInterpolate(unref(dcw).controller.writesFailed)}</span></span><button class="aw-pill outline"${ssrRenderAttr("title", _ctx.$t("dcwDetail.kc4ixly003"))} data-v-7b43b781><span class="i-tabler-template" data-v-7b43b781></span> ${ssrInterpolate(_ctx.$t("dcwDetail.k1972dx9020"))}</button><button class="aw-pill add-btn" data-v-7b43b781><span class="i-tabler-plus" data-v-7b43b781></span> ${ssrInterpolate(_ctx.$t("dcwDetail.k1976uns021"))}</button></div></section>`);
345
- if (writeError.value || writeOk.value) _push(`<p class="${ssrRenderClass([writeError.value ? "bad" : "good", "banner"])}" data-v-7b43b781>${ssrInterpolate(writeError.value || writeOk.value)}</p>`);
345
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-385b5f14><div class="aw-page-head" data-v-385b5f14><div data-v-385b5f14><p class="aw-kicker" data-v-385b5f14><span class="line-chip" style="${ssrRenderStyle({ background: line.value?.color ?? "#3aa0ff" })}" data-v-385b5f14></span>AGENTWORKSHOP / LINE / ${ssrInterpolate(line.value?.name ?? lineId.value)}</p><h1 data-v-385b5f14>${ssrInterpolate(line.value?.name ?? _ctx.$t("dcwDetail.k1b2snna151"))} · ${ssrInterpolate(_ctx.$t("dcwDetail.k1l0iow1137"))}</h1><p class="sub" data-v-385b5f14>${ssrInterpolate(line.value?.description || _ctx.$t("dcwDetail.kzcbfki152"))}</p></div><div class="badges mono" data-v-385b5f14><span class="badge" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))} ${ssrInterpolate(lineNodes.value.length)}</span><span class="badge" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3waz1025"))} ${ssrInterpolate(lineProducts.value.length)}</span><span class="badge" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))} ${ssrInterpolate(lineRecipesAll.value.length)}</span></div></div><section class="aw-tile ctrl-card" data-v-385b5f14><div class="ctrl-left" data-v-385b5f14><button class="${ssrRenderClass([{ running: unref(dcw).controller.running }, "aw-pill"])}"${ssrRenderAttr("title", _ctx.$t("dcwDetail.k1snap154"))} data-v-385b5f14><span class="${ssrRenderClass(unref(dcw).controller.running ? "i-tabler-player-pause" : "i-tabler-player-play")}" data-v-385b5f14></span> ${ssrInterpolate(unref(dcw).controller.running ? _ctx.$t("dcwDetail.kplrsg153") : _ctx.$t("dcwDetail.knxgni9169"))}</button></div><div class="ctrl-right" data-v-385b5f14><span class="ctrl-metrics mono" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))} ${ssrInterpolate(unref(dcw).controller.nodesOnline)}/${ssrInterpolate(unref(dcw).controller.nodesTotal)}</span><span class="sep" data-v-385b5f14>·</span><span${ssrRenderAttr("title", _ctx.$t("dcwDetail.kd3ygmn001"))} data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3wtib138"))} ${ssrInterpolate(unref(dcw).controller.writesTotal)}</span><span class="sep" data-v-385b5f14>·</span><span class="${ssrRenderClass({ warn: unref(dcw).controller.writesFailed > 0 })}"${ssrRenderAttr("title", _ctx.$t("dcwDetail.kd3znl0002"))} data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3yit7139"))} ${ssrInterpolate(unref(dcw).controller.writesFailed)}</span></span><button class="aw-pill outline"${ssrRenderAttr("title", _ctx.$t("dcwDetail.kc4ixly003"))} data-v-385b5f14><span class="i-tabler-template" data-v-385b5f14></span> ${ssrInterpolate(_ctx.$t("dcwDetail.k1972dx9020"))}</button><button class="aw-pill add-btn" data-v-385b5f14><span class="i-tabler-plus" data-v-385b5f14></span> ${ssrInterpolate(_ctx.$t("dcwDetail.k1976uns021"))}</button></div></section>`);
346
+ if (writeError.value || writeOk.value) _push(`<p class="${ssrRenderClass([writeError.value ? "bad" : "good", "banner"])}" data-v-385b5f14>${ssrInterpolate(writeError.value || writeOk.value)}</p>`);
346
347
  else _push(`<!---->`);
347
348
  if (unassignedNodes.value.length || unassignedProducts.value.length) {
348
- _push(`<section class="aw-tile adopt-card" data-v-7b43b781><b class="adopt-title" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.kaebkky022"))}</b><div class="adopt-list" data-v-7b43b781><!--[-->`);
349
+ _push(`<section class="aw-tile adopt-card" data-v-385b5f14><b class="adopt-title" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.kaebkky022"))}</b><div class="adopt-list" data-v-385b5f14><!--[-->`);
349
350
  ssrRenderList(unassignedNodes.value, (n) => {
350
- _push(`<span class="adopt-chip" data-v-7b43b781>${ssrInterpolate(n.name)} <button class="mini-btn" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.kyjp9fg023"))}</button></span>`);
351
+ _push(`<span class="adopt-chip" data-v-385b5f14>${ssrInterpolate(n.name)} <button class="mini-btn" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.kyjp9fg023"))}</button></span>`);
351
352
  });
352
353
  _push(`<!--]--><!--[-->`);
353
354
  ssrRenderList(unassignedProducts.value, (p) => {
354
- _push(`<span class="adopt-chip" data-v-7b43b781>${ssrInterpolate(p.name)}(${ssrInterpolate(_ctx.$t("dcwDetail.k3km252140"))}<button class="mini-btn" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.kyjp9fg023"))}</button></span>`);
355
+ _push(`<span class="adopt-chip" data-v-385b5f14>${ssrInterpolate(p.name)}(${ssrInterpolate(_ctx.$t("dcwDetail.k3km252140"))}<button class="mini-btn" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.kyjp9fg023"))}</button></span>`);
355
356
  });
356
357
  _push(`<!--]--></div></section>`);
357
358
  } else _push(`<!---->`);
358
- _push(`<section class="aw-tile line-card" data-v-7b43b781><div class="line-status" data-v-7b43b781><span class="${ssrRenderClass([{ on: ls.value.active }, "line-dot"])}" data-v-7b43b781></span><div class="line-info" data-v-7b43b781><b data-v-7b43b781>${ssrInterpolate(ls.value.active ? _ctx.$t("dcwDetail.k1pxrhx0154") : _ctx.$t("dcwDetail.k1b2hxmx170"))}</b>`);
359
- if (ls.value.active) _push(`<small class="mono dim" data-v-7b43b781>${ssrInterpolate(ls.value.productName)} · ${ssrInterpolate(ls.value.recipeName)} · ${ssrInterpolate(_ctx.$t("dcwDetail.k400lb075"))} ${ssrInterpolate(ls.value.runId)} · ${ssrInterpolate(_ctx.$t("dcwDetail.k3zkt2166"))} ${ssrInterpolate(ls.value.startedAt?.slice(11, 19))} ${ssrInterpolate(_ctx.$t("dcwDetail.k69vag8168"))} ${ssrInterpolate(ls.value.taggedSamples)} ${ssrInterpolate(_ctx.$t("dcwDetail.k4118o085"))}</small>`);
360
- else _push(`<small class="dim" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k19pof14024"))}</small>`);
361
- _push(`</div></div><div class="line-ctl" data-v-7b43b781><label class="ctl-sel" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3waz1025"))}</span><select class="inp" data-v-7b43b781><option value="" data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(lineProductId.value) ? ssrLooseContain(lineProductId.value, "") : ssrLooseEqual(lineProductId.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.kuisodh026"))}</option><!--[-->`);
359
+ _push(`<section class="aw-tile line-card" data-v-385b5f14><div class="line-status" data-v-385b5f14><span class="${ssrRenderClass([{ on: ls.value.active }, "line-dot"])}" data-v-385b5f14></span><div class="line-info" data-v-385b5f14><b data-v-385b5f14>${ssrInterpolate(ls.value.active ? _ctx.$t("dcwDetail.k1pxrhx0154") : _ctx.$t("dcwDetail.k1b2hxmx170"))}</b>`);
360
+ if (ls.value.active) _push(`<small class="mono dim" data-v-385b5f14>${ssrInterpolate(ls.value.productName)} · ${ssrInterpolate(ls.value.recipeName)} · ${ssrInterpolate(_ctx.$t("dcwDetail.k400lb075"))} ${ssrInterpolate(ls.value.runId)} · ${ssrInterpolate(_ctx.$t("dcwDetail.k3zkt2166"))} ${ssrInterpolate(ls.value.startedAt?.slice(11, 19))} ${ssrInterpolate(_ctx.$t("dcwDetail.k69vag8168"))} ${ssrInterpolate(ls.value.taggedSamples)} ${ssrInterpolate(_ctx.$t("dcwDetail.k4118o085"))}</small>`);
361
+ else _push(`<small class="dim" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k19pof14024"))}</small>`);
362
+ _push(`</div></div><div class="line-ctl" data-v-385b5f14><label class="ctl-sel" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3waz1025"))}</span><select class="inp" data-v-385b5f14><option value="" data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(lineProductId.value) ? ssrLooseContain(lineProductId.value, "") : ssrLooseEqual(lineProductId.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.kuisodh026"))}</option><!--[-->`);
362
363
  ssrRenderList(lineProducts.value, (p) => {
363
- _push(`<option${ssrRenderAttr("value", p.id)} data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(lineProductId.value) ? ssrLooseContain(lineProductId.value, p.id) : ssrLooseEqual(lineProductId.value, p.id)) ? " selected" : ""}>${ssrInterpolate(p.name)}</option>`);
364
+ _push(`<option${ssrRenderAttr("value", p.id)} data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(lineProductId.value) ? ssrLooseContain(lineProductId.value, p.id) : ssrLooseEqual(lineProductId.value, p.id)) ? " selected" : ""}>${ssrInterpolate(p.name)}</option>`);
364
365
  });
365
- _push(`<!--]--></select></label><label class="ctl-sel" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))}</span><select class="inp"${ssrIncludeBooleanAttr(!lineProductId.value) ? " disabled" : ""} data-v-7b43b781><option value="" data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(lineRecipeId.value) ? ssrLooseContain(lineRecipeId.value, "") : ssrLooseEqual(lineRecipeId.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.kutxzsz028"))}</option><!--[-->`);
366
+ _push(`<!--]--></select></label><label class="ctl-sel" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))}</span><select class="inp"${ssrIncludeBooleanAttr(!lineProductId.value) ? " disabled" : ""} data-v-385b5f14><option value="" data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(lineRecipeId.value) ? ssrLooseContain(lineRecipeId.value, "") : ssrLooseEqual(lineRecipeId.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.kutxzsz028"))}</option><!--[-->`);
366
367
  ssrRenderList(lineRecipes.value, (r) => {
367
- _push(`<option${ssrRenderAttr("value", r.id)}${ssrIncludeBooleanAttr(r.params.length === 0) ? " disabled" : ""} data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(lineRecipeId.value) ? ssrLooseContain(lineRecipeId.value, r.id) : ssrLooseEqual(lineRecipeId.value, r.id)) ? " selected" : ""}>${ssrInterpolate(r.name)}${ssrInterpolate(r.params.length === 0 ? _ctx.$t("dcwDetail.k1hicmch155") : _ctx.$t("dcwDetail.k1lzfi4g180", { p0: r.params.length }))}</option>`);
368
+ _push(`<option${ssrRenderAttr("value", r.id)}${ssrIncludeBooleanAttr(r.params.length === 0) ? " disabled" : ""} data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(lineRecipeId.value) ? ssrLooseContain(lineRecipeId.value, r.id) : ssrLooseEqual(lineRecipeId.value, r.id)) ? " selected" : ""}>${ssrInterpolate(r.name)}${ssrInterpolate(r.params.length === 0 ? _ctx.$t("dcwDetail.k1hicmch155") : _ctx.$t("dcwDetail.k1lzfi4g180", { p0: r.params.length }))}</option>`);
368
369
  });
369
370
  _push(`<!--]--></select></label>`);
370
- if (!ls.value.active) _push(`<button class="pill-btn"${ssrIncludeBooleanAttr(lineBusy.value || !lineRecipeId.value) ? " disabled" : ""}${ssrRenderAttr("title", !lineRecipeId.value ? "开跑前必须先设定配方" : "下发配方参数并开始打标数据采集")} data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.kfb8vml029"))}</button>`);
371
- else _push(`<button class="pill-btn stop"${ssrIncludeBooleanAttr(lineBusy.value) ? " disabled" : ""} data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1xyhd2y030"))}</button>`);
371
+ if (!ls.value.active) _push(`<button class="pill-btn"${ssrIncludeBooleanAttr(lineBusy.value || !lineRecipeId.value) ? " disabled" : ""}${ssrRenderAttr("title", !lineRecipeId.value ? "开跑前必须先设定配方" : "下发配方参数并开始打标数据采集")} data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.kfb8vml029"))}</button>`);
372
+ else _push(`<button class="pill-btn stop"${ssrIncludeBooleanAttr(lineBusy.value) ? " disabled" : ""} data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1xyhd2y030"))}</button>`);
372
373
  _push(`</div>`);
373
- if (lineErr.value) _push(`<p class="banner bad" style="${ssrRenderStyle({ "margin-top": "10px" })}" data-v-7b43b781>${ssrInterpolate(lineErr.value)}</p>`);
374
+ if (lineErr.value) _push(`<p class="banner bad" style="${ssrRenderStyle({ "margin-top": "10px" })}" data-v-385b5f14>${ssrInterpolate(lineErr.value)}</p>`);
374
375
  else _push(`<!---->`);
375
- if (lineMsg.value) _push(`<p class="banner good" style="${ssrRenderStyle({ "margin-top": "10px" })}" data-v-7b43b781>${ssrInterpolate(lineMsg.value)}</p>`);
376
+ if (lineMsg.value) _push(`<p class="banner good" style="${ssrRenderStyle({ "margin-top": "10px" })}" data-v-385b5f14>${ssrInterpolate(lineMsg.value)}</p>`);
376
377
  else _push(`<!---->`);
377
378
  _push(`</section>`);
378
379
  if (tplOpen.value) {
379
- _push(`<div class="modal-mask" data-v-7b43b781><div class="modal" data-v-7b43b781><h3 class="m-title" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1x4vam0031"))} <small class="dim mono" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3x23c141"))} ${ssrInterpolate(unref(dcw).templates.filter((t) => t.builtin).length)} · ${ssrInterpolate(_ctx.$t("dcwDetail.k3t616a142"))} ${ssrInterpolate(unref(dcw).templates.filter((t) => !t.builtin).length)}</small></h3><p class="dim tpl-hint" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.ke1iyud032"))}</p><div class="tpl-chips" data-v-7b43b781><!--[-->`);
380
+ _push(`<div class="modal-mask" data-v-385b5f14><div class="modal" data-v-385b5f14><h3 class="m-title" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1x4vam0031"))} <small class="dim mono" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3x23c141"))} ${ssrInterpolate(unref(dcw).templates.filter((t) => t.builtin).length)} · ${ssrInterpolate(_ctx.$t("dcwDetail.k3t616a142"))} ${ssrInterpolate(unref(dcw).templates.filter((t) => !t.builtin).length)}</small></h3><p class="dim tpl-hint" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.ke1iyud032"))}</p><div class="tpl-chips" data-v-385b5f14><!--[-->`);
380
381
  ssrRenderList(unref(dcw).templates, (t) => {
381
- _push(`<span class="tpl-chip"${ssrRenderAttr("title", `${t.code} · ${t.min}~${t.max} ${t.unit}${t.semantics ? ` · ${t.semantics}` : ""}`)} data-v-7b43b781>${ssrInterpolate(t.name)} <small class="mono" data-v-7b43b781>${ssrInterpolate(t.min)}~${ssrInterpolate(t.max)}${ssrInterpolate(t.unit)}</small><em class="${ssrRenderClass([{ builtin: t.builtin }, "tpl-tag"])}" data-v-7b43b781>${ssrInterpolate(t.builtin ? _ctx.$t("dcwDetail.k3x23c141") : _ctx.$t("dcwDetail.k3t616a142"))}</em></span>`);
382
+ _push(`<span class="tpl-chip"${ssrRenderAttr("title", `${t.code} · ${t.min}~${t.max} ${t.unit}${t.semantics ? ` · ${t.semantics}` : ""}`)} data-v-385b5f14>${ssrInterpolate(t.name)} <small class="mono" data-v-385b5f14>${ssrInterpolate(t.min)}~${ssrInterpolate(t.max)}${ssrInterpolate(t.unit)}</small><em class="${ssrRenderClass([{ builtin: t.builtin }, "tpl-tag"])}" data-v-385b5f14>${ssrInterpolate(t.builtin ? _ctx.$t("dcwDetail.k3x23c141") : _ctx.$t("dcwDetail.k3t616a142"))}</em></span>`);
382
383
  });
383
- _push(`<!--]--></div><p class="sec-label" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k169eb4s033"))}</p><div class="f-grid tpl-form" data-v-7b43b781><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1f55q76034"))}<em data-v-7b43b781>*</em></span><input${ssrRenderAttr("value", tplForm.name)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1tooi3o004"))} data-v-7b43b781></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1bqk219035"))}</span><input${ssrRenderAttr("value", tplForm.ch)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k698qz0005"))} data-v-7b43b781></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1ayxrqb036"))}</span><input${ssrRenderAttr("value", tplForm.code)} class="inp" placeholder="如 MOTOR · I" data-v-7b43b781></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3x4ef037"))}<em data-v-7b43b781>*</em></span><input${ssrRenderAttr("value", tplForm.unit)} class="inp" placeholder="如 A" data-v-7b43b781></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1l9jv5m038"))}<em data-v-7b43b781>*</em></span><input${ssrRenderAttr("value", tplForm.min)} type="number" class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.kxz9174006"))} data-v-7b43b781></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1l9jv4p039"))}<em data-v-7b43b781>*</em></span><input${ssrRenderAttr("value", tplForm.max)} type="number" class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.kxz9167007"))} data-v-7b43b781></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3mxmcx040"))}</span><input${ssrRenderAttr("value", tplForm.decimals)} type="number" min="0" max="4" class="inp" data-v-7b43b781></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3xx56041"))}</span><select class="inp" data-v-7b43b781><!--[-->`);
384
+ _push(`<!--]--></div><p class="sec-label" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k169eb4s033"))}</p><div class="f-grid tpl-form" data-v-385b5f14><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1f55q76034"))}<em data-v-385b5f14>*</em></span><input${ssrRenderAttr("value", tplForm.name)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1tooi3o004"))} data-v-385b5f14></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1bqk219035"))}</span><input${ssrRenderAttr("value", tplForm.ch)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k698qz0005"))} data-v-385b5f14></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1ayxrqb036"))}</span><input${ssrRenderAttr("value", tplForm.code)} class="inp" placeholder="如 MOTOR · I" data-v-385b5f14></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3x4ef037"))}<em data-v-385b5f14>*</em></span><input${ssrRenderAttr("value", tplForm.unit)} class="inp" placeholder="如 A" data-v-385b5f14></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1l9jv5m038"))}<em data-v-385b5f14>*</em></span><input${ssrRenderAttr("value", tplForm.min)} type="number" class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.kxz9174006"))} data-v-385b5f14></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1l9jv4p039"))}<em data-v-385b5f14>*</em></span><input${ssrRenderAttr("value", tplForm.max)} type="number" class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.kxz9167007"))} data-v-385b5f14></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3mxmcx040"))}</span><input${ssrRenderAttr("value", tplForm.decimals)} type="number" min="0" max="4" class="inp" data-v-385b5f14></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3xx56041"))}</span><select class="inp" data-v-385b5f14><!--[-->`);
384
385
  ssrRenderList(tplIcons, (ic) => {
385
- _push(`<option${ssrRenderAttr("value", ic.key)} data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(tplForm.icon) ? ssrLooseContain(tplForm.icon, ic.key) : ssrLooseEqual(tplForm.icon, ic.key)) ? " selected" : ""}>${ssrInterpolate(ic.label)}</option>`);
386
+ _push(`<option${ssrRenderAttr("value", ic.key)} data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(tplForm.icon) ? ssrLooseContain(tplForm.icon, ic.key) : ssrLooseEqual(tplForm.icon, ic.key)) ? " selected" : ""}>${ssrInterpolate(ic.label)}</option>`);
386
387
  });
387
- _push(`<!--]--></select></label></div><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.knjmyfr042"))}</span><textarea class="inp" rows="2"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1qdnfzc008"))} data-v-7b43b781>${ssrInterpolate(tplForm.semantics)}</textarea></label>`);
388
- if (tplOk.value) _push(`<p class="banner good" style="${ssrRenderStyle({ "margin-top": "10px" })}" data-v-7b43b781>${ssrInterpolate(tplOk.value)}</p>`);
388
+ _push(`<!--]--></select></label></div><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.knjmyfr042"))}</span><textarea class="inp" rows="2"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1qdnfzc008"))} data-v-385b5f14>${ssrInterpolate(tplForm.semantics)}</textarea></label>`);
389
+ if (tplOk.value) _push(`<p class="banner good" style="${ssrRenderStyle({ "margin-top": "10px" })}" data-v-385b5f14>${ssrInterpolate(tplOk.value)}</p>`);
389
390
  else _push(`<!---->`);
390
- if (tplError.value) _push(`<p class="m-err" data-v-7b43b781>${ssrInterpolate(tplError.value)}</p>`);
391
+ if (tplError.value) _push(`<p class="m-err" data-v-385b5f14>${ssrInterpolate(tplError.value)}</p>`);
391
392
  else _push(`<!---->`);
392
- _push(`<div class="m-actions" data-v-7b43b781><button class="aw-pill outline" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3x62t043"))}</button><button class="pill-btn"${ssrIncludeBooleanAttr(tplSaving.value || !tplForm.name.trim() || tplForm.unit.trim() === "" || tplForm.min === "" || tplForm.max === "") ? " disabled" : ""} data-v-7b43b781>${ssrInterpolate(tplSaving.value ? _ctx.$t("dcwDetail.k1bg4759156") : _ctx.$t("dcwDetail.k1bg9nga171"))}</button></div></div></div>`);
393
+ _push(`<div class="m-actions" data-v-385b5f14><button class="aw-pill outline" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3x62t043"))}</button><button class="pill-btn"${ssrIncludeBooleanAttr(tplSaving.value || !tplForm.name.trim() || tplForm.unit.trim() === "" || tplForm.min === "" || tplForm.max === "") ? " disabled" : ""} data-v-385b5f14>${ssrInterpolate(tplSaving.value ? _ctx.$t("dcwDetail.k1bg4759156") : _ctx.$t("dcwDetail.k1bg9nga171"))}</button></div></div></div>`);
393
394
  } else _push(`<!---->`);
394
395
  if (addOpen.value) {
395
- _push(`<div class="modal-mask" data-v-7b43b781><div class="modal" data-v-7b43b781><h3 class="m-title" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1976uns021"))}</h3><div class="seg-row" data-v-7b43b781><button class="${ssrRenderClass([{ on: addScenario.value === "mock" }, "seg"])}" data-v-7b43b781> Mock 模拟 PLC </button><button class="${ssrRenderClass([{ on: addScenario.value === "real" }, "seg"])}" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.kyj8fen044"))}</button></div><div class="f-grid" data-v-7b43b781><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1ejzwqp045"))}</span><select class="inp" data-v-7b43b781><!--[-->`);
396
+ _push(`<div class="modal-mask" data-v-385b5f14><div class="modal" data-v-385b5f14><h3 class="m-title" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1976uns021"))}</h3><div class="seg-row" data-v-385b5f14><button class="${ssrRenderClass([{ on: addScenario.value === "mock" }, "seg"])}" data-v-385b5f14> Mock 模拟 PLC </button><button class="${ssrRenderClass([{ on: addScenario.value === "real" }, "seg"])}" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.kyj8fen044"))}</button></div><div class="f-grid" data-v-385b5f14><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1ejzwqp045"))}</span><select class="inp" data-v-385b5f14><!--[-->`);
396
397
  ssrRenderList(unref(dcw).templates, (t) => {
397
- _push(`<option${ssrRenderAttr("value", t.key)} data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(addTemplate.value) ? ssrLooseContain(addTemplate.value, t.key) : ssrLooseEqual(addTemplate.value, t.key)) ? " selected" : ""}>${ssrInterpolate(t.name)} · ${ssrInterpolate(t.ch)}(${ssrInterpolate(t.min)}~${ssrInterpolate(t.max)} ${ssrInterpolate(t.unit)})${ssrInterpolate(t.builtin ? "" : _ctx.$t("dcwDetail.kr45rk9157"))}</option>`);
398
+ _push(`<option${ssrRenderAttr("value", t.key)} data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(addTemplate.value) ? ssrLooseContain(addTemplate.value, t.key) : ssrLooseEqual(addTemplate.value, t.key)) ? " selected" : ""}>${ssrInterpolate(t.name)} · ${ssrInterpolate(t.ch)}(${ssrInterpolate(t.min)}~${ssrInterpolate(t.max)} ${ssrInterpolate(t.unit)})${ssrInterpolate(t.builtin ? "" : _ctx.$t("dcwDetail.kr45rk9157"))}</option>`);
398
399
  });
399
- _push(`<!--]--></select></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1ce2k1y046"))}</span><input${ssrRenderAttr("value", addName.value)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.kgpxzy3009"))} data-v-7b43b781></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1vyb8im047"))}</span><input${ssrRenderAttr("value", addHold.value)} type="number" min="0" max="3600000" step="500" class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.kb1srz0010"))} data-v-7b43b781></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k9r7d4e016"))}</span><input${ssrRenderAttr("value", addRead.value)} type="number" min="0" max="3600000" step="500" class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k9r7d4e017"))} data-v-7b43b781></label></div><div class="f-grid cal-form" data-v-7b43b781><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.kiune1f048"))}</span><select class="inp" data-v-7b43b781><option value="none" data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(addTransform.kind) ? ssrLooseContain(addTransform.kind, "none") : ssrLooseEqual(addTransform.kind, "none")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.kkzy0k049"))}</option><option value="linear" data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(addTransform.kind) ? ssrLooseContain(addTransform.kind, "linear") : ssrLooseEqual(addTransform.kind, "linear")) ? " selected" : ""}> 线性标定:PLC值 = (物理值 - offset) / scale </option></select></label><label class="f" data-v-7b43b781><span data-v-7b43b781>scale / offset</span><div style="${ssrRenderStyle({
400
+ _push(`<!--]--></select></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1ce2k1y046"))}</span><input${ssrRenderAttr("value", addName.value)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.kgpxzy3009"))} data-v-385b5f14></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1vyb8im047"))}</span><input${ssrRenderAttr("value", addHold.value)} type="number" min="0" max="3600000" step="500" class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.kb1srz0010"))} data-v-385b5f14></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k9r7d4e016"))}</span><input${ssrRenderAttr("value", addRead.value)} type="number" min="0" max="3600000" step="500" class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k9r7d4e017"))} data-v-385b5f14></label></div><div class="f-grid cal-form" data-v-385b5f14><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.kiune1f048"))}</span><select class="inp" data-v-385b5f14><option value="none" data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(addTransform.kind) ? ssrLooseContain(addTransform.kind, "none") : ssrLooseEqual(addTransform.kind, "none")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.kkzy0k049"))}</option><option value="linear" data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(addTransform.kind) ? ssrLooseContain(addTransform.kind, "linear") : ssrLooseEqual(addTransform.kind, "linear")) ? " selected" : ""}> 线性标定:PLC值 = (物理值 - offset) / scale </option></select></label><label class="f" data-v-385b5f14><span data-v-385b5f14>scale / offset</span><div style="${ssrRenderStyle({
400
401
  "display": "flex",
401
402
  "gap": "6px"
402
- })}" data-v-7b43b781><input${ssrRenderAttr("value", addTransform.scale)} type="number" step="0.1" class="inp"${ssrIncludeBooleanAttr(addTransform.kind !== "linear") ? " disabled" : ""} title="decoder 斜率(≠0):物理值 = scale × PLC值 + offset;下发时自动取逆" data-v-7b43b781><input${ssrRenderAttr("value", addTransform.offset)} type="number" step="0.1" class="inp"${ssrIncludeBooleanAttr(addTransform.kind !== "linear") ? " disabled" : ""} title="decoder 截距" data-v-7b43b781></div></label></div>`);
403
+ })}" data-v-385b5f14><input${ssrRenderAttr("value", addTransform.scale)} type="number" step="0.1" class="inp"${ssrIncludeBooleanAttr(addTransform.kind !== "linear") ? " disabled" : ""} title="decoder 斜率(≠0):物理值 = scale × PLC值 + offset;下发时自动取逆" data-v-385b5f14><input${ssrRenderAttr("value", addTransform.offset)} type="number" step="0.1" class="inp"${ssrIncludeBooleanAttr(addTransform.kind !== "linear") ? " disabled" : ""} title="decoder 截距" data-v-385b5f14></div></label></div>`);
403
404
  if (addScenario.value === "real") {
404
- _push(`<!--[--><div class="f-grid" data-v-7b43b781><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1kt87rx050"))}</span><select class="inp" data-v-7b43b781><!--[-->`);
405
+ _push(`<!--[--><div class="f-grid" data-v-385b5f14><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1kt87rx050"))}</span><select class="inp" data-v-385b5f14><!--[-->`);
405
406
  ssrRenderList(unref(DCW_DRIVERS).filter((x) => x.status !== "builtin"), (d) => {
406
- _push(`<option${ssrRenderAttr("value", d.kind)} data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(addDriver.value) ? ssrLooseContain(addDriver.value, d.kind) : ssrLooseEqual(addDriver.value, d.kind)) ? " selected" : ""}>${ssrInterpolate(d.label)}</option>`);
407
+ _push(`<option${ssrRenderAttr("value", d.kind)} data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(addDriver.value) ? ssrLooseContain(addDriver.value, d.kind) : ssrLooseEqual(addDriver.value, d.kind)) ? " selected" : ""}>${ssrInterpolate(d.label)}</option>`);
407
408
  });
408
409
  _push(`<!--]--></select></label></div>`);
409
410
  if (addFields.value.length) {
410
- _push(`<div class="f-grid driver-form" data-v-7b43b781><!--[-->`);
411
+ _push(`<div class="f-grid driver-form" data-v-385b5f14><!--[-->`);
411
412
  ssrRenderList(addFields.value, (f) => {
412
- _push(`<label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(f.label)}`);
413
+ _push(`<label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(f.label)}`);
413
414
  if (f.required) _push(`<em style="${ssrRenderStyle({
414
415
  "color": "var(--tone-danger-dot)",
415
416
  "font-style": "normal"
416
- })}" data-v-7b43b781>*</em>`);
417
+ })}" data-v-385b5f14>*</em>`);
417
418
  else _push(`<!---->`);
418
419
  _push(`</span>`);
419
420
  if (f.type === "select") {
420
- _push(`<select class="inp" data-v-7b43b781><!--[-->`);
421
+ _push(`<select class="inp" data-v-385b5f14><!--[-->`);
421
422
  ssrRenderList(f.options, (o) => {
422
- _push(`<option${ssrRenderAttr("value", o.value)} data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(addCfg.value[f.key]) ? ssrLooseContain(addCfg.value[f.key], o.value) : ssrLooseEqual(addCfg.value[f.key], o.value)) ? " selected" : ""}>${ssrInterpolate(o.label)}</option>`);
423
+ _push(`<option${ssrRenderAttr("value", o.value)} data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(addCfg.value[f.key]) ? ssrLooseContain(addCfg.value[f.key], o.value) : ssrLooseEqual(addCfg.value[f.key], o.value)) ? " selected" : ""}>${ssrInterpolate(o.label)}</option>`);
423
424
  });
424
425
  _push(`<!--]--></select>`);
425
- } else _push(`<input${ssrRenderDynamicModel(f.type === "number" ? "number" : "text", addCfg.value[f.key], null)}${ssrRenderAttr("type", f.type === "number" ? "number" : "text")}${ssrRenderAttr("placeholder", f.placeholder)} class="inp" data-v-7b43b781>`);
426
- if (f.hint) _push(`<small class="hint" data-v-7b43b781>${ssrInterpolate(f.hint)}</small>`);
426
+ } else _push(`<input${ssrRenderDynamicModel(f.type === "number" ? "number" : "text", addCfg.value[f.key], null)}${ssrRenderAttr("type", f.type === "number" ? "number" : "text")}${ssrRenderAttr("placeholder", f.placeholder)} class="inp" data-v-385b5f14>`);
427
+ if (f.hint) _push(`<small class="hint" data-v-385b5f14>${ssrInterpolate(f.hint)}</small>`);
427
428
  else _push(`<!---->`);
428
429
  _push(`</label>`);
429
430
  });
430
431
  _push(`<!--]--></div>`);
431
432
  } else _push(`<!---->`);
432
- _push(`<div class="test-row" data-v-7b43b781><button class="pill-btn outline"${ssrIncludeBooleanAttr(addTesting.value) ? " disabled" : ""} data-v-7b43b781>${ssrInterpolate(addTesting.value ? _ctx.$t("dcwDetail.k1fsh720158") : _ctx.$t("dcwDetail.k1fstglk172"))}</button>`);
433
- if (addTest.value) _push(`<span class="${ssrRenderClass([addTest.value.ok ? "good" : "bad", "test-result"])}" data-v-7b43b781>${ssrInterpolate(addTest.value.ok ? "✓" : "✗")} ${ssrInterpolate(addTest.value.message)}</span>`);
433
+ _push(`<div class="test-row" data-v-385b5f14><button class="pill-btn outline"${ssrIncludeBooleanAttr(addTesting.value) ? " disabled" : ""} data-v-385b5f14>${ssrInterpolate(addTesting.value ? _ctx.$t("dcwDetail.k1fsh720158") : _ctx.$t("dcwDetail.k1fstglk172"))}</button>`);
434
+ if (addTest.value) _push(`<span class="${ssrRenderClass([addTest.value.ok ? "good" : "bad", "test-result"])}" data-v-385b5f14>${ssrInterpolate(addTest.value.ok ? "✓" : "✗")} ${ssrInterpolate(addTest.value.message)}</span>`);
434
435
  else _push(`<!---->`);
435
436
  _push(`</div><!--]-->`);
436
437
  } else _push(`<!---->`);
437
- _push(`<label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1hgizn7051"))}</span><textarea class="inp" rows="2"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k12bnyt9011"))} data-v-7b43b781>${ssrInterpolate(addSemantics.value)}</textarea></label>`);
438
- if (addError.value) _push(`<p class="m-err" data-v-7b43b781>${ssrInterpolate(addError.value)}</p>`);
438
+ _push(`<label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1hgizn7051"))}</span><textarea class="inp" rows="2"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k12bnyt9011"))} data-v-385b5f14>${ssrInterpolate(addSemantics.value)}</textarea></label>`);
439
+ if (addError.value) _push(`<p class="m-err" data-v-385b5f14>${ssrInterpolate(addError.value)}</p>`);
439
440
  else _push(`<!---->`);
440
- _push(`<div class="m-actions" data-v-7b43b781><button class="aw-pill outline" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3xdnn052"))}</button><button class="aw-pill"${ssrIncludeBooleanAttr(addSaving.value) ? " disabled" : ""} data-v-7b43b781>${ssrInterpolate(addSaving.value ? _ctx.$t("dcwDetail.k1bg4759156") : _ctx.$t("dcwDetail.k1bge46t173"))}</button></div></div></div>`);
441
+ _push(`<div class="m-actions" data-v-385b5f14><button class="aw-pill outline" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3xdnn052"))}</button><button class="aw-pill"${ssrIncludeBooleanAttr(addSaving.value) ? " disabled" : ""} data-v-385b5f14>${ssrInterpolate(addSaving.value ? _ctx.$t("dcwDetail.k1bg4759156") : _ctx.$t("dcwDetail.k1bge46t173"))}</button></div></div></div>`);
441
442
  } else _push(`<!---->`);
442
443
  _push(ssrRenderComponent(_component_a_spin, { spinning: !unref(dcw).loaded && !unref(dcw).error }, {
443
444
  default: withCtx((_, _push, _parent, _scopeId) => {
444
445
  if (_push) {
445
- _push(`<section class="aw-tile table-card" data-v-7b43b781${_scopeId}><table class="nodes-table" data-v-7b43b781${_scopeId}><thead data-v-7b43b781${_scopeId}><tr data-v-7b43b781${_scopeId}><th data-v-7b43b781${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1e2dtkt053"))}</th><th data-v-7b43b781${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k403cy054"))}</th><th data-v-7b43b781${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k42w8s055"))}</th><th data-v-7b43b781${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1deqh0d056"))}</th><th data-v-7b43b781${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k9r7d4e018"))}</th><th data-v-7b43b781${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1k79ec9057"))}</th><th data-v-7b43b781${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1dexou6058"))}</th><th data-v-7b43b781${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1b1nnaa059"))}</th><th data-v-7b43b781${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1i8rtqt060"))}</th><th class="right" data-v-7b43b781${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k40aa6061"))}</th></tr></thead><tbody data-v-7b43b781${_scopeId}><!--[-->`);
446
+ _push(`<section class="aw-tile table-card" data-v-385b5f14${_scopeId}><table class="nodes-table" data-v-385b5f14${_scopeId}><thead data-v-385b5f14${_scopeId}><tr data-v-385b5f14${_scopeId}><th data-v-385b5f14${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1e2dtkt053"))}</th><th data-v-385b5f14${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k403cy054"))}</th><th data-v-385b5f14${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k42w8s055"))}</th><th data-v-385b5f14${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1deqh0d056"))}</th><th data-v-385b5f14${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k9r7d4e018"))}</th><th data-v-385b5f14${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1k79ec9057"))}</th><th data-v-385b5f14${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1dexou6058"))}</th><th data-v-385b5f14${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1b1nnaa059"))}</th><th data-v-385b5f14${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1i8rtqt060"))}</th><th class="right" data-v-385b5f14${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k40aa6061"))}</th></tr></thead><tbody data-v-385b5f14${_scopeId}><!--[-->`);
446
447
  ssrRenderList(lineNodes.value, (n) => {
447
- _push(`<tr class="${ssrRenderClass({ "node-paused": !n.enabled })}" data-v-7b43b781${_scopeId}><td data-v-7b43b781${_scopeId}><span class="mono dim" data-v-7b43b781${_scopeId}>${ssrInterpolate(n.id.slice(0, 8))}</span><b data-v-7b43b781${_scopeId}>${ssrInterpolate(n.name)}</b><small class="mono ch" data-v-7b43b781${_scopeId}>${ssrInterpolate(dcwTemplateRefCh(n.templateRef))}</small></td><td data-v-7b43b781${_scopeId}><button class="${ssrRenderClass([{ on: n.enabled }, "ctrl-toggle"])}"${ssrIncludeBooleanAttr(togglingId.value === n.id) ? " disabled" : ""}${ssrRenderAttr("title", n.enabled ? "暂停该节点控制:下发将被拒绝" : "开启该节点控制:恢复可下发")} data-v-7b43b781${_scopeId}><span class="ct-dot" data-v-7b43b781${_scopeId}></span> ${ssrInterpolate(n.enabled ? _ctx.$t("dcwDetail.k3o3ib3159") : _ctx.$t("dcwDetail.k3n93ed062"))}</button></td><td data-v-7b43b781${_scopeId}>`);
448
- if (!n.enabled) _push(`<span class="st-pill paused" data-v-7b43b781${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k3n93ed062"))}</span>`);
449
- else _push(`<span class="${ssrRenderClass([n.state, "st-pill"])}" data-v-7b43b781${_scopeId}>${ssrInterpolate(stateLabel[n.state] ?? n.state)}</span>`);
450
- _push(`</td><td class="mono val" data-v-7b43b781${_scopeId}>${ssrInterpolate(n.value != null ? n.value.toFixed(n.decimals) : "--")} <small data-v-7b43b781${_scopeId}>${ssrInterpolate(n.unit)}</small>`);
451
- if (n.lastAckAt) _push(`<small class="dim" data-v-7b43b781${_scopeId}> · ${ssrInterpolate(n.lastAckAt.slice(11, 19))}</small>`);
448
+ _push(`<tr class="${ssrRenderClass({ "node-paused": !n.enabled })}" data-v-385b5f14${_scopeId}><td data-v-385b5f14${_scopeId}><span class="mono dim" data-v-385b5f14${_scopeId}>${ssrInterpolate(n.id.slice(0, 8))}</span><b data-v-385b5f14${_scopeId}>${ssrInterpolate(n.name)}</b><small class="mono ch" data-v-385b5f14${_scopeId}>${ssrInterpolate(dcwTemplateRefCh(n.templateRef))}</small></td><td data-v-385b5f14${_scopeId}><button class="${ssrRenderClass([{ on: n.enabled }, "ctrl-toggle"])}"${ssrIncludeBooleanAttr(togglingId.value === n.id) ? " disabled" : ""}${ssrRenderAttr("title", n.enabled ? "暂停该节点控制:下发将被拒绝" : "开启该节点控制:恢复可下发")} data-v-385b5f14${_scopeId}><span class="ct-dot" data-v-385b5f14${_scopeId}></span> ${ssrInterpolate(n.enabled ? _ctx.$t("dcwDetail.k3o3ib3159") : _ctx.$t("dcwDetail.k3n93ed062"))}</button></td><td data-v-385b5f14${_scopeId}>`);
449
+ if (!n.enabled) _push(`<span class="st-pill paused" data-v-385b5f14${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k3n93ed062"))}</span>`);
450
+ else _push(`<span class="${ssrRenderClass([n.state, "st-pill"])}" data-v-385b5f14${_scopeId}>${ssrInterpolate(stateLabel[n.state] ?? n.state)}</span>`);
451
+ _push(`</td><td class="mono val" data-v-385b5f14${_scopeId}>${ssrInterpolate(n.value != null ? n.value.toFixed(n.decimals) : "--")} <small data-v-385b5f14${_scopeId}>${ssrInterpolate(n.unit)}</small>`);
452
+ if (n.lastAckAt) _push(`<small class="dim" data-v-385b5f14${_scopeId}> · ${ssrInterpolate(n.lastAckAt.slice(11, 19))}</small>`);
452
453
  else _push(`<!---->`);
453
- _push(`</td><td class="mono val" data-v-7b43b781${_scopeId}><span${ssrRenderAttr("title", n.lastReadError ?? _ctx.$t("dcwDetail.k9r7d4e019"))} class="${ssrRenderClass({ "read-stale": n.lastReadError })}" data-v-7b43b781${_scopeId}>${ssrInterpolate(n.readValue != null ? n.readValue.toFixed(n.decimals) : "--")}</span><small data-v-7b43b781${_scopeId}>${ssrInterpolate(n.unit)}</small>`);
454
- if (n.lastReadAt) _push(`<small class="dim" data-v-7b43b781${_scopeId}> · ${ssrInterpolate(n.lastReadAt.slice(11, 19))}</small>`);
454
+ _push(`</td><td class="mono val" data-v-385b5f14${_scopeId}><span${ssrRenderAttr("title", n.lastReadError ?? _ctx.$t("dcwDetail.k9r7d4e019"))} class="${ssrRenderClass({ "read-stale": n.lastReadError })}" data-v-385b5f14${_scopeId}>${ssrInterpolate(n.readValue != null ? n.readValue.toFixed(n.decimals) : "--")}</span><small data-v-385b5f14${_scopeId}>${ssrInterpolate(n.unit)}</small>`);
455
+ if (n.lastReadAt) _push(`<small class="dim" data-v-385b5f14${_scopeId}> · ${ssrInterpolate(n.lastReadAt.slice(11, 19))}</small>`);
455
456
  else _push(`<!---->`);
456
- _push(`<button class="mini-btn read-btn"${ssrIncludeBooleanAttr(readingId.value === n.id) ? " disabled" : ""}${ssrRenderAttr("title", _ctx.$t("dcwDetail.k9r7d4e020"))} data-v-7b43b781${_scopeId}>${ssrInterpolate(readingId.value === n.id ? "···" : _ctx.$t("dcwDetail.k9r7d4e021"))}</button></td><td data-v-7b43b781${_scopeId}><div class="write-row" data-v-7b43b781${_scopeId}><input${ssrRenderAttr("value", setInputs[n.id])} type="number" class="inp write-inp mono"${ssrRenderAttr("placeholder", `${n.min}~${n.max}`)}${ssrRenderAttr("min", n.min)}${ssrRenderAttr("max", n.max)}${ssrRenderAttr("step", 10 ** -n.decimals)}${ssrIncludeBooleanAttr(!n.enabled) ? " disabled" : ""}${ssrRenderAttr("title", !n.enabled ? "当前节点暂停:开启控制后方可设定" : "")} data-v-7b43b781${_scopeId}><button class="mini-btn write-btn"${ssrIncludeBooleanAttr(!n.enabled || writingId.value === n.id || setInputs[n.id] == null || setInputs[n.id] === "") ? " disabled" : ""}${ssrRenderAttr("title", !n.enabled ? "当前节点暂停:开启控制后方可设定" : "下发设定值")} data-v-7b43b781${_scopeId}>${ssrInterpolate(writingId.value === n.id ? _ctx.$t("dcwDetail.k3l3h80123") : _ctx.$t("dcwDetail.k3w6td174"))}</button></div></td><td class="mono dim" data-v-7b43b781${_scopeId}>${ssrInterpolate(n.min)} ~ ${ssrInterpolate(n.max)} ${ssrInterpolate(n.unit)}</td><td class="mono" data-v-7b43b781${_scopeId}>${ssrInterpolate(n.holdIntervalMs == null ? _ctx.$t("dcwDetail.k3zul4160") : `${n.holdIntervalMs}ms`)} <small class="dim"${ssrRenderAttr("title", _ctx.$t("dcwDetail.k9r7d4e016"))} data-v-7b43b781${_scopeId}>· ${ssrInterpolate(n.readIntervalMs === 0 ? _ctx.$t("dcwDetail.k9r7d4e022") : n.readIntervalMs == null ? _ctx.$t("dcwDetail.k9r7d4e023") : `${n.readIntervalMs}ms`)}</small></td><td data-v-7b43b781${_scopeId}>${ssrInterpolate(deviceName(n.deviceBindingId))}</td><td class="right" data-v-7b43b781${_scopeId}><button class="mini-btn danger" data-v-7b43b781${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k3xakp063"))}</button></td></tr>`);
457
+ _push(`<button class="mini-btn read-btn"${ssrIncludeBooleanAttr(readingId.value === n.id) ? " disabled" : ""}${ssrRenderAttr("title", _ctx.$t("dcwDetail.k9r7d4e020"))} data-v-385b5f14${_scopeId}>${ssrInterpolate(readingId.value === n.id ? "···" : _ctx.$t("dcwDetail.k9r7d4e021"))}</button></td><td data-v-385b5f14${_scopeId}><div class="write-row" data-v-385b5f14${_scopeId}><input${ssrRenderAttr("value", setInputs[n.id])} type="number" class="inp write-inp mono"${ssrRenderAttr("placeholder", `${n.min}~${n.max}`)}${ssrRenderAttr("min", n.min)}${ssrRenderAttr("max", n.max)}${ssrRenderAttr("step", 10 ** -n.decimals)}${ssrIncludeBooleanAttr(!n.enabled) ? " disabled" : ""}${ssrRenderAttr("title", !n.enabled ? "当前节点暂停:开启控制后方可设定" : "")} data-v-385b5f14${_scopeId}><button class="mini-btn write-btn"${ssrIncludeBooleanAttr(!n.enabled || writingId.value === n.id || setInputs[n.id] == null || setInputs[n.id] === "") ? " disabled" : ""}${ssrRenderAttr("title", !n.enabled ? "当前节点暂停:开启控制后方可设定" : "下发设定值")} data-v-385b5f14${_scopeId}>${ssrInterpolate(writingId.value === n.id ? _ctx.$t("dcwDetail.k3l3h80123") : _ctx.$t("dcwDetail.k3w6td174"))}</button></div></td><td class="mono dim" data-v-385b5f14${_scopeId}>${ssrInterpolate(n.min)} ~ ${ssrInterpolate(n.max)} ${ssrInterpolate(n.unit)}</td><td class="mono" data-v-385b5f14${_scopeId}>${ssrInterpolate(n.holdIntervalMs == null ? _ctx.$t("dcwDetail.k3zul4160") : `${n.holdIntervalMs}ms`)} <small class="dim"${ssrRenderAttr("title", _ctx.$t("dcwDetail.k9r7d4e016"))} data-v-385b5f14${_scopeId}>· ${ssrInterpolate(n.readIntervalMs === 0 ? _ctx.$t("dcwDetail.k9r7d4e022") : n.readIntervalMs == null ? _ctx.$t("dcwDetail.k9r7d4e023") : `${n.readIntervalMs}ms`)}</small></td><td data-v-385b5f14${_scopeId}>${ssrInterpolate(nodeDeviceNames(n))}</td><td class="right" data-v-385b5f14${_scopeId}><button class="mini-btn danger" data-v-385b5f14${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k3xakp063"))}</button></td></tr>`);
457
458
  });
458
459
  _push(`<!--]-->`);
459
- if (unref(dcw).loaded && lineNodes.value.length === 0) _push(`<tr data-v-7b43b781${_scopeId}><td colspan="9" data-v-7b43b781${_scopeId}><div class="pane-empty" style="${ssrRenderStyle({ "min-height": "120px" })}" data-v-7b43b781${_scopeId}><p class="pe-sub" data-v-7b43b781${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1wtecyw064"))}</p></div></td></tr>`);
460
+ if (unref(dcw).loaded && lineNodes.value.length === 0) _push(`<tr data-v-385b5f14${_scopeId}><td colspan="9" data-v-385b5f14${_scopeId}><div class="pane-empty" style="${ssrRenderStyle({ "min-height": "120px" })}" data-v-385b5f14${_scopeId}><p class="pe-sub" data-v-385b5f14${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1wtecyw064"))}</p></div></td></tr>`);
460
461
  else _push(`<!---->`);
461
462
  _push(`</tbody></table></section>`);
462
463
  } else return [createVNode("section", { class: "aw-tile table-card" }, [createVNode("table", { class: "nodes-table" }, [createVNode("thead", null, [createVNode("tr", null, [
@@ -564,7 +565,7 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
564
565
  class: "dim",
565
566
  title: _ctx.$t("dcwDetail.k9r7d4e016")
566
567
  }, "· " + toDisplayString(n.readIntervalMs === 0 ? _ctx.$t("dcwDetail.k9r7d4e022") : n.readIntervalMs == null ? _ctx.$t("dcwDetail.k9r7d4e023") : `${n.readIntervalMs}ms`), 9, ["title"])]),
567
- createVNode("td", null, toDisplayString(deviceName(n.deviceBindingId)), 1),
568
+ createVNode("td", null, toDisplayString(nodeDeviceNames(n)), 1),
568
569
  createVNode("td", { class: "right" }, [createVNode("button", {
569
570
  class: "mini-btn danger",
570
571
  onClick: ($event) => unref(dcw).removeNode(n.id)
@@ -577,184 +578,184 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
577
578
  }),
578
579
  _: 1
579
580
  }, _parent));
580
- _push(`<section class="aw-tile recipe-card" data-v-7b43b781><div class="recipe-hd" data-v-7b43b781><h3 data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1j8w3hd065"))}</h3><span class="panel-tag mono" data-v-7b43b781>${ssrInterpolate(lineProducts.value.length)} ${ssrInterpolate(_ctx.$t("dcwDetail.k1av3wgs143"))} ${ssrInterpolate(visibleRecipes.value.length)} ${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))}</span><button class="pill-btn" style="${ssrRenderStyle({ "margin-left": "auto" })}" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1akm6dc066"))}</button><button class="mini-btn" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1aka0ki067"))}</button></div><p class="recipe-sub" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k6bl2q8068"))}</p>`);
581
+ _push(`<section class="aw-tile recipe-card" data-v-385b5f14><div class="recipe-hd" data-v-385b5f14><h3 data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1j8w3hd065"))}</h3><span class="panel-tag mono" data-v-385b5f14>${ssrInterpolate(lineProducts.value.length)} ${ssrInterpolate(_ctx.$t("dcwDetail.k1av3wgs143"))} ${ssrInterpolate(visibleRecipes.value.length)} ${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))}</span><button class="pill-btn" style="${ssrRenderStyle({ "margin-left": "auto" })}" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1akm6dc066"))}</button><button class="mini-btn" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1aka0ki067"))}</button></div><p class="recipe-sub" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k6bl2q8068"))}</p>`);
581
582
  if (lineProducts.value.length) {
582
- _push(`<div class="product-row" data-v-7b43b781><button class="${ssrRenderClass([{ on: filterProductId.value === "" }, "prod-chip"])}" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3x4t1069"))}</button><!--[-->`);
583
+ _push(`<div class="product-row" data-v-385b5f14><button class="${ssrRenderClass([{ on: filterProductId.value === "" }, "prod-chip"])}" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3x4t1069"))}</button><!--[-->`);
583
584
  ssrRenderList(lineProducts.value, (p) => {
584
- _push(`<button class="${ssrRenderClass([{ on: filterProductId.value === p.id }, "prod-chip"])}"${ssrRenderAttr("title", p.description)} data-v-7b43b781>${ssrInterpolate(p.name)} <span class="prod-del"${ssrRenderAttr("title", _ctx.$t("dcwDetail.k1bpfjgx012"))} data-v-7b43b781>×</span></button>`);
585
+ _push(`<button class="${ssrRenderClass([{ on: filterProductId.value === p.id }, "prod-chip"])}"${ssrRenderAttr("title", p.description)} data-v-385b5f14>${ssrInterpolate(p.name)} <span class="prod-del"${ssrRenderAttr("title", _ctx.$t("dcwDetail.k1bpfjgx012"))} data-v-385b5f14>×</span></button>`);
585
586
  });
586
587
  _push(`<!--]--></div>`);
587
588
  } else _push(`<p class="dim" style="${ssrRenderStyle({
588
589
  "margin": "6px 0 12px",
589
590
  "font-size": "12px"
590
- })}" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.knov3zg070"))}</p>`);
591
- _push(`<div class="recipe-grid" data-v-7b43b781><!--[-->`);
591
+ })}" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.knov3zg070"))}</p>`);
592
+ _push(`<div class="recipe-grid" data-v-385b5f14><!--[-->`);
592
593
  ssrRenderList(visibleRecipes.value, (r) => {
593
- _push(`<div class="recipe-item" data-v-7b43b781><div class="recipe-name" data-v-7b43b781><b data-v-7b43b781>${ssrInterpolate(r.name)}</b>`);
594
- if (r.version) _push(`<span class="param-chip mono"${ssrRenderAttr("title", unref(t)("dcwDetail.histTitle"))} data-v-7b43b781>v${ssrInterpolate(r.version)}</span>`);
594
+ _push(`<div class="recipe-item" data-v-385b5f14><div class="recipe-name" data-v-385b5f14><b data-v-385b5f14>${ssrInterpolate(r.name)}</b>`);
595
+ if (r.version) _push(`<span class="param-chip mono"${ssrRenderAttr("title", unref(t)("dcwDetail.histTitle"))} data-v-385b5f14>v${ssrInterpolate(r.version)}</span>`);
595
596
  else _push(`<!---->`);
596
- _push(`<small class="dim" data-v-7b43b781>${ssrInterpolate(productName(r.productId))}</small><small class="mono dim" data-v-7b43b781>${ssrInterpolate(r.id)}</small></div>`);
597
- if (r.description) _push(`<p class="dim desc" data-v-7b43b781>${ssrInterpolate(r.description)}</p>`);
597
+ _push(`<small class="dim" data-v-385b5f14>${ssrInterpolate(productName(r.productId))}</small><small class="mono dim" data-v-385b5f14>${ssrInterpolate(r.id)}</small></div>`);
598
+ if (r.description) _push(`<p class="dim desc" data-v-385b5f14>${ssrInterpolate(r.description)}</p>`);
598
599
  else _push(`<!---->`);
599
- _push(`<div class="recipe-params mono" data-v-7b43b781><!--[-->`);
600
+ _push(`<div class="recipe-params mono" data-v-385b5f14><!--[-->`);
600
601
  ssrRenderList(r.params, (p, i) => {
601
- _push(`<span class="${ssrRenderClass([{ stale: paramStatus(p.nodeId, r.lineId) }, "param-chip"])}"${ssrRenderAttr("title", paramStatus(p.nodeId, r.lineId)?.label ?? "")} data-v-7b43b781>${ssrInterpolate(paramNodeName(p.nodeId))} = ${ssrInterpolate(p.value)}`);
602
- if (paramStatus(p.nodeId, r.lineId)) _push(`<span class="chip-stale-tag" data-v-7b43b781>${ssrInterpolate(paramStatus(p.nodeId, r.lineId).label)}</span>`);
602
+ _push(`<span class="${ssrRenderClass([{ stale: paramStatus(p.nodeId, r.lineId) }, "param-chip"])}"${ssrRenderAttr("title", paramStatus(p.nodeId, r.lineId)?.label ?? "")} data-v-385b5f14>${ssrInterpolate(paramNodeName(p.nodeId))} = ${ssrInterpolate(p.value)}`);
603
+ if (paramStatus(p.nodeId, r.lineId)) _push(`<span class="chip-stale-tag" data-v-385b5f14>${ssrInterpolate(paramStatus(p.nodeId, r.lineId).label)}</span>`);
603
604
  else _push(`<!---->`);
604
605
  _push(`</span>`);
605
606
  });
606
607
  _push(`<!--]--><!--[-->`);
607
608
  ssrRenderList(r.daqWindows, (w, i) => {
608
- _push(`<span class="${ssrRenderClass([{ stale: daqWindowStatus(w.nodeId, r.lineId) }, "param-chip daqwin"])}"${ssrRenderAttr("title", daqWindowStatus(w.nodeId, r.lineId)?.label ?? _ctx.$t("dcwDetail.k1l11api013"))} data-v-7b43b781> ◎ ${ssrInterpolate(daqNodeCh(w.nodeId))} ∈ [${ssrInterpolate(w.min ?? "-∞")}, ${ssrInterpolate(w.max ?? "+∞")}]`);
609
- if (daqWindowStatus(w.nodeId, r.lineId)) _push(`<span class="chip-stale-tag" data-v-7b43b781>${ssrInterpolate(daqWindowStatus(w.nodeId, r.lineId).label)}</span>`);
609
+ _push(`<span class="${ssrRenderClass([{ stale: daqWindowStatus(w.nodeId, r.lineId) }, "param-chip daqwin"])}"${ssrRenderAttr("title", daqWindowStatus(w.nodeId, r.lineId)?.label ?? _ctx.$t("dcwDetail.k1l11api013"))} data-v-385b5f14> ◎ ${ssrInterpolate(daqNodeCh(w.nodeId))} ∈ [${ssrInterpolate(w.min ?? "-∞")}, ${ssrInterpolate(w.max ?? "+∞")}]`);
610
+ if (daqWindowStatus(w.nodeId, r.lineId)) _push(`<span class="chip-stale-tag" data-v-385b5f14>${ssrInterpolate(daqWindowStatus(w.nodeId, r.lineId).label)}</span>`);
610
611
  else _push(`<!---->`);
611
612
  _push(`</span>`);
612
613
  });
613
- _push(`<!--]--></div><div class="recipe-actions" data-v-7b43b781><button class="pill-btn" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1497qvr071"))}</button><button class="mini-btn" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k45eb0072"))}</button><button class="mini-btn" data-v-7b43b781>${ssrInterpolate(unref(t)("dcwDetail.histBtn"))}`);
614
- if (r.version) _push(`<span class="mono" data-v-7b43b781>·v${ssrInterpolate(r.version)}</span>`);
614
+ _push(`<!--]--></div><div class="recipe-actions" data-v-385b5f14><button class="pill-btn" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1497qvr071"))}</button><button class="mini-btn" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k45eb0072"))}</button><button class="mini-btn" data-v-385b5f14>${ssrInterpolate(unref(t)("dcwDetail.histBtn"))}`);
615
+ if (r.version) _push(`<span class="mono" data-v-385b5f14>·v${ssrInterpolate(r.version)}</span>`);
615
616
  else _push(`<!---->`);
616
- _push(`</button><button class="mini-btn danger" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3xakp063"))}</button></div></div>`);
617
+ _push(`</button><button class="mini-btn danger" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3xakp063"))}</button></div></div>`);
617
618
  });
618
619
  _push(`<!--]-->`);
619
- if (visibleRecipes.value.length === 0) _push(`<div class="pane-empty" style="${ssrRenderStyle({ "grid-column": "1 / -1" })}" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.keko1xy073"))}</div>`);
620
+ if (visibleRecipes.value.length === 0) _push(`<div class="pane-empty" style="${ssrRenderStyle({ "grid-column": "1 / -1" })}" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.keko1xy073"))}</div>`);
620
621
  else _push(`<!---->`);
621
622
  _push(`</div>`);
622
- if (applyResult.value) _push(`<div class="banner good" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1l3hrvp144"))} ${ssrInterpolate(applyResult.value.runId)} ${ssrInterpolate(_ctx.$t("dcwDetail.k1g3lh2v167"))}${ssrInterpolate(applyResult.value.ok)}/${ssrInterpolate(applyResult.value.total)} ${ssrInterpolate(_ctx.$t("dcwDetail.k1bqci06149"))} <button class="mini-btn" style="${ssrRenderStyle({ "margin-left": "10px" })}"${ssrIncludeBooleanAttr(runDataLoading.value) ? " disabled" : ""} data-v-7b43b781>${ssrInterpolate(runDataLoading.value ? _ctx.$t("dcwDetail.k1br0ij9161") : _ctx.$t("dcwDetail.kxwei5175"))}</button></div>`);
623
+ if (applyResult.value) _push(`<div class="banner good" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1l3hrvp144"))} ${ssrInterpolate(applyResult.value.runId)} ${ssrInterpolate(_ctx.$t("dcwDetail.k1g3lh2v167"))}${ssrInterpolate(applyResult.value.ok)}/${ssrInterpolate(applyResult.value.total)} ${ssrInterpolate(_ctx.$t("dcwDetail.k1bqci06149"))} <button class="mini-btn" style="${ssrRenderStyle({ "margin-left": "10px" })}"${ssrIncludeBooleanAttr(runDataLoading.value) ? " disabled" : ""} data-v-385b5f14>${ssrInterpolate(runDataLoading.value ? _ctx.$t("dcwDetail.k1br0ij9161") : _ctx.$t("dcwDetail.kxwei5175"))}</button></div>`);
623
624
  else _push(`<!---->`);
624
625
  if (lineRuns.value.length) {
625
- _push(`<div class="runs" data-v-7b43b781><p class="sec-label" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1rjer8d074"))}</p><table class="nodes-table" data-v-7b43b781><thead data-v-7b43b781><tr data-v-7b43b781><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k400lb075"))}</th><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))}</th><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k4497j076"))}</th><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1bqhtmu077"))}</th><th class="right" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k40aa6061"))}</th></tr></thead><tbody data-v-7b43b781><!--[-->`);
626
+ _push(`<div class="runs" data-v-385b5f14><p class="sec-label" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1rjer8d074"))}</p><table class="nodes-table" data-v-385b5f14><thead data-v-385b5f14><tr data-v-385b5f14><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k400lb075"))}</th><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))}</th><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k4497j076"))}</th><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1bqhtmu077"))}</th><th class="right" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k40aa6061"))}</th></tr></thead><tbody data-v-385b5f14><!--[-->`);
626
627
  ssrRenderList([...lineRuns.value].reverse().slice(0, 8), (run) => {
627
- _push(`<tr data-v-7b43b781><td class="mono" data-v-7b43b781>${ssrInterpolate(run.id)}</td><td data-v-7b43b781>${ssrInterpolate(run.recipeName)}</td><td class="mono dim" data-v-7b43b781>${ssrInterpolate(run.startedAt.slice(5, 19))} ~ ${ssrInterpolate(run.endedAt ? run.endedAt.slice(5, 19) : _ctx.$t("dcwDetail.k3vpfg9162"))}</td><td data-v-7b43b781><span class="${ssrRenderClass([run.results.every((r) => r.ok) ? "ok" : "warn", "st-pill"])}" data-v-7b43b781>${ssrInterpolate(run.results.filter((r) => r.ok).length)}/${ssrInterpolate(run.results.length)}</span></td><td class="right" data-v-7b43b781><button class="mini-btn"${ssrIncludeBooleanAttr(runDataLoading.value) ? " disabled" : ""} data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1dzwrdp078"))}</button>`);
628
- if (!run.endedAt) _push(`<button class="mini-btn" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1blr7y7079"))}</button>`);
628
+ _push(`<tr data-v-385b5f14><td class="mono" data-v-385b5f14>${ssrInterpolate(run.id)}</td><td data-v-385b5f14>${ssrInterpolate(run.recipeName)}</td><td class="mono dim" data-v-385b5f14>${ssrInterpolate(run.startedAt.slice(5, 19))} ~ ${ssrInterpolate(run.endedAt ? run.endedAt.slice(5, 19) : _ctx.$t("dcwDetail.k3vpfg9162"))}</td><td data-v-385b5f14><span class="${ssrRenderClass([run.results.every((r) => r.ok) ? "ok" : "warn", "st-pill"])}" data-v-385b5f14>${ssrInterpolate(run.results.filter((r) => r.ok).length)}/${ssrInterpolate(run.results.length)}</span></td><td class="right" data-v-385b5f14><button class="mini-btn"${ssrIncludeBooleanAttr(runDataLoading.value) ? " disabled" : ""} data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1dzwrdp078"))}</button>`);
629
+ if (!run.endedAt) _push(`<button class="mini-btn" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1blr7y7079"))}</button>`);
629
630
  else _push(`<!---->`);
630
631
  _push(`</td></tr>`);
631
632
  });
632
633
  _push(`<!--]--></tbody></table></div>`);
633
634
  } else _push(`<!---->`);
634
635
  if (runDataView.value) {
635
- _push(`<div class="modal-mask" data-v-7b43b781><div class="modal" data-v-7b43b781><h3 class="m-title" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k11lq94k145"))} ${ssrInterpolate(runDataView.value.data.run.recipeName)}(${ssrInterpolate(runDataView.value.runId)}) </h3><p class="sec-label" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1me41w8080"))}</p><table class="nodes-table" data-v-7b43b781><thead data-v-7b43b781><tr data-v-7b43b781><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k48hde081"))}</th><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</th><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k40t11083"))}</th><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3xuaw084"))}</th><th data-v-7b43b781>min ~ max</th><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k4118o085"))}</th></tr></thead><tbody data-v-7b43b781><!--[-->`);
636
+ _push(`<div class="modal-mask" data-v-385b5f14><div class="modal" data-v-385b5f14><h3 class="m-title" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k11lq94k145"))} ${ssrInterpolate(runDataView.value.data.run.recipeName)}(${ssrInterpolate(runDataView.value.runId)}) </h3><p class="sec-label" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1me41w8080"))}</p><table class="nodes-table" data-v-385b5f14><thead data-v-385b5f14><tr data-v-385b5f14><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k48hde081"))}</th><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</th><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k40t11083"))}</th><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3xuaw084"))}</th><th data-v-385b5f14>min ~ max</th><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k4118o085"))}</th></tr></thead><tbody data-v-385b5f14><!--[-->`);
636
637
  ssrRenderList(runDataView.value.data.daq, (d) => {
637
- _push(`<tr data-v-7b43b781><td data-v-7b43b781>${ssrInterpolate(d.ch)}<small class="mono dim" data-v-7b43b781>${ssrInterpolate(d.unit)}</small></td><td data-v-7b43b781>${ssrInterpolate(d.nodeName)}</td><td class="mono" data-v-7b43b781>${ssrInterpolate(d.latest)}</td><td class="mono" data-v-7b43b781>${ssrInterpolate(d.avg)}</td><td class="mono dim" data-v-7b43b781>${ssrInterpolate(d.min)} ~ ${ssrInterpolate(d.max)}</td><td class="mono dim" data-v-7b43b781>${ssrInterpolate(d.cnt)}</td></tr>`);
638
+ _push(`<tr data-v-385b5f14><td data-v-385b5f14>${ssrInterpolate(d.ch)}<small class="mono dim" data-v-385b5f14>${ssrInterpolate(d.unit)}</small></td><td data-v-385b5f14>${ssrInterpolate(d.nodeName)}</td><td class="mono" data-v-385b5f14>${ssrInterpolate(d.latest)}</td><td class="mono" data-v-385b5f14>${ssrInterpolate(d.avg)}</td><td class="mono dim" data-v-385b5f14>${ssrInterpolate(d.min)} ~ ${ssrInterpolate(d.max)}</td><td class="mono dim" data-v-385b5f14>${ssrInterpolate(d.cnt)}</td></tr>`);
638
639
  });
639
640
  _push(`<!--]-->`);
640
- if (runDataView.value.data.daq.length === 0) _push(`<tr data-v-7b43b781><td colspan="6" class="dim" style="${ssrRenderStyle({
641
+ if (runDataView.value.data.daq.length === 0) _push(`<tr data-v-385b5f14><td colspan="6" class="dim" style="${ssrRenderStyle({
641
642
  "text-align": "center",
642
643
  "padding": "12px"
643
- })}" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.kd457ry086"))}</td></tr>`);
644
+ })}" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.kd457ry086"))}</td></tr>`);
644
645
  else _push(`<!---->`);
645
- _push(`</tbody></table><p class="sec-label" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k12b7cxs087"))}</p><table class="nodes-table" data-v-7b43b781><thead data-v-7b43b781><tr data-v-7b43b781><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3xbjr088"))}</th><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</th><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3ncbsh089"))}</th><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3lh3mz090"))}</th><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k454pg091"))}</th><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k40ieu092"))}</th></tr></thead><tbody data-v-7b43b781><!--[-->`);
646
+ _push(`</tbody></table><p class="sec-label" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k12b7cxs087"))}</p><table class="nodes-table" data-v-385b5f14><thead data-v-385b5f14><tr data-v-385b5f14><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3xbjr088"))}</th><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</th><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3ncbsh089"))}</th><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3lh3mz090"))}</th><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k454pg091"))}</th><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k40ieu092"))}</th></tr></thead><tbody data-v-385b5f14><!--[-->`);
646
647
  ssrRenderList(runDataView.value.data.writes, (w, i) => {
647
- _push(`<tr data-v-7b43b781><td data-v-7b43b781>${ssrInterpolate(w.param)}</td><td data-v-7b43b781>${ssrInterpolate(w.nodeName)}</td><td class="mono" data-v-7b43b781>${ssrInterpolate(w.eng)}</td><td class="mono dim" data-v-7b43b781>${ssrInterpolate(w.raw)}</td><td data-v-7b43b781><span class="${ssrRenderClass([w.ok ? "ok" : "alarm", "st-pill"])}" data-v-7b43b781>${ssrInterpolate(w.ok ? "ACK" : _ctx.$t("dcwDetail.k3yit7139"))}</span></td><td class="mono dim" data-v-7b43b781>${ssrInterpolate(w.at.slice(5, 19))}</td></tr>`);
648
+ _push(`<tr data-v-385b5f14><td data-v-385b5f14>${ssrInterpolate(w.param)}</td><td data-v-385b5f14>${ssrInterpolate(w.nodeName)}</td><td class="mono" data-v-385b5f14>${ssrInterpolate(w.eng)}</td><td class="mono dim" data-v-385b5f14>${ssrInterpolate(w.raw)}</td><td data-v-385b5f14><span class="${ssrRenderClass([w.ok ? "ok" : "alarm", "st-pill"])}" data-v-385b5f14>${ssrInterpolate(w.ok ? "ACK" : _ctx.$t("dcwDetail.k3yit7139"))}</span></td><td class="mono dim" data-v-385b5f14>${ssrInterpolate(w.at.slice(5, 19))}</td></tr>`);
648
649
  });
649
650
  _push(`<!--]-->`);
650
- if (runDataView.value.data.writes.length === 0) _push(`<tr data-v-7b43b781><td colspan="6" class="dim" style="${ssrRenderStyle({
651
+ if (runDataView.value.data.writes.length === 0) _push(`<tr data-v-385b5f14><td colspan="6" class="dim" style="${ssrRenderStyle({
651
652
  "text-align": "center",
652
653
  "padding": "12px"
653
- })}" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.knzcp8i093"))}</td></tr>`);
654
+ })}" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.knzcp8i093"))}</td></tr>`);
654
655
  else _push(`<!---->`);
655
- _push(`</tbody></table><div class="m-actions" data-v-7b43b781><button class="aw-pill outline" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3x62t043"))}</button></div></div></div>`);
656
+ _push(`</tbody></table><div class="m-actions" data-v-385b5f14><button class="aw-pill outline" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3x62t043"))}</button></div></div></div>`);
656
657
  } else _push(`<!---->`);
657
658
  _push(`</section>`);
658
659
  if (recipeOpen.value) {
659
- _push(`<div class="modal-mask" data-v-7b43b781><div class="modal" data-v-7b43b781><h3 class="m-title" data-v-7b43b781>${ssrInterpolate(recipeEditing.value ? _ctx.$t("dcwDetail.k1iiwk0i163") : _ctx.$t("dcwDetail.k1efq0r9176"))}</h3><div class="f-grid" data-v-7b43b781><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1dw4fzf094"))}<em data-v-7b43b781>*</em></span><select class="inp" data-v-7b43b781><!--[-->`);
660
+ _push(`<div class="modal-mask" data-v-385b5f14><div class="modal" data-v-385b5f14><h3 class="m-title" data-v-385b5f14>${ssrInterpolate(recipeEditing.value ? _ctx.$t("dcwDetail.k1iiwk0i163") : _ctx.$t("dcwDetail.k1efq0r9176"))}</h3><div class="f-grid" data-v-385b5f14><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1dw4fzf094"))}<em data-v-385b5f14>*</em></span><select class="inp" data-v-385b5f14><!--[-->`);
660
661
  ssrRenderList(lineProducts.value, (p) => {
661
- _push(`<option${ssrRenderAttr("value", p.id)} data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(recipeForm.productId) ? ssrLooseContain(recipeForm.productId, p.id) : ssrLooseEqual(recipeForm.productId, p.id)) ? " selected" : ""}>${ssrInterpolate(p.name)}</option>`);
662
+ _push(`<option${ssrRenderAttr("value", p.id)} data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(recipeForm.productId) ? ssrLooseContain(recipeForm.productId, p.id) : ssrLooseEqual(recipeForm.productId, p.id)) ? " selected" : ""}>${ssrInterpolate(p.name)}</option>`);
662
663
  });
663
- _push(`<!--]--></select></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1l3f8so095"))}<em data-v-7b43b781>*</em></span><input${ssrRenderAttr("value", recipeForm.name)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k12c11vm014"))} data-v-7b43b781></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k40gkk096"))}</span><input${ssrRenderAttr("value", recipeForm.description)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1hxx8hy015"))} data-v-7b43b781></label></div><p class="sec-label" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.ka1kfgh097"))}</p><!--[-->`);
664
+ _push(`<!--]--></select></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1l3f8so095"))}<em data-v-385b5f14>*</em></span><input${ssrRenderAttr("value", recipeForm.name)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k12c11vm014"))} data-v-385b5f14></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k40gkk096"))}</span><input${ssrRenderAttr("value", recipeForm.description)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1hxx8hy015"))} data-v-385b5f14></label></div><p class="sec-label" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.ka1kfgh097"))}</p><!--[-->`);
664
665
  ssrRenderList(recipeForm.params, (p, i) => {
665
- _push(`<div class="param-row" data-v-7b43b781><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1e2dtkt053"))}</span><select class="inp" data-v-7b43b781><!--[-->`);
666
+ _push(`<div class="param-row" data-v-385b5f14><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1e2dtkt053"))}</span><select class="inp" data-v-385b5f14><!--[-->`);
666
667
  ssrRenderList(lineNodes.value, (n) => {
667
- _push(`<option${ssrRenderAttr("value", n.id)} data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(p.nodeId) ? ssrLooseContain(p.nodeId, n.id) : ssrLooseEqual(p.nodeId, n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}(${ssrInterpolate(dcwTemplateRefCh(n.templateRef))} · ${ssrInterpolate(n.min)}~${ssrInterpolate(n.max)} ${ssrInterpolate(n.unit)}) </option>`);
668
+ _push(`<option${ssrRenderAttr("value", n.id)} data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(p.nodeId) ? ssrLooseContain(p.nodeId, n.id) : ssrLooseEqual(p.nodeId, n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}(${ssrInterpolate(dcwTemplateRefCh(n.templateRef))} · ${ssrInterpolate(n.min)}~${ssrInterpolate(n.max)} ${ssrInterpolate(n.unit)}) </option>`);
668
669
  });
669
670
  _push(`<!--]--></select>`);
670
- if (paramStatus(p.nodeId, lineId.value)) _push(`<span class="row-stale" data-v-7b43b781>${ssrInterpolate(paramStatus(p.nodeId, lineId.value).label)}</span>`);
671
+ if (paramStatus(p.nodeId, lineId.value)) _push(`<span class="row-stale" data-v-385b5f14>${ssrInterpolate(paramStatus(p.nodeId, lineId.value).label)}</span>`);
671
672
  else _push(`<!---->`);
672
- _push(`</label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3renp2098"))}<em data-v-7b43b781>*</em></span><input${ssrRenderAttr("value", p.value)} type="number" class="inp"${ssrRenderAttr("step", .1)} data-v-7b43b781></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k134rw3b146"))}${ssrInterpolate(nodeMin(p.nodeId) ?? "-")})</span><input${ssrRenderAttr("value", p.min)} type="number" class="inp"${ssrRenderAttr("step", .1)}${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k5vew9z016"))} data-v-7b43b781></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.khrv911147"))}${ssrInterpolate(nodeMax(p.nodeId) ?? "-")})</span><input${ssrRenderAttr("value", p.max)} type="number" class="inp"${ssrRenderAttr("step", .1)}${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.kzoh5pr017"))} data-v-7b43b781></label><button class="mini-btn danger param-del" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k44idg099"))}</button></div>`);
673
+ _push(`</label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3renp2098"))}<em data-v-385b5f14>*</em></span><input${ssrRenderAttr("value", p.value)} type="number" class="inp"${ssrRenderAttr("step", .1)} data-v-385b5f14></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k134rw3b146"))}${ssrInterpolate(nodeMin(p.nodeId) ?? "-")})</span><input${ssrRenderAttr("value", p.min)} type="number" class="inp"${ssrRenderAttr("step", .1)}${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k5vew9z016"))} data-v-385b5f14></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.khrv911147"))}${ssrInterpolate(nodeMax(p.nodeId) ?? "-")})</span><input${ssrRenderAttr("value", p.max)} type="number" class="inp"${ssrRenderAttr("step", .1)}${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.kzoh5pr017"))} data-v-385b5f14></label><button class="mini-btn danger param-del" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k44idg099"))}</button></div>`);
673
674
  });
674
- _push(`<!--]--><button class="mini-btn" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1broh7h100"))}</button><p class="sec-label" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1h5gues101"))}</p><!--[-->`);
675
+ _push(`<!--]--><button class="mini-btn" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1broh7h100"))}</button><p class="sec-label" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1h5gues101"))}</p><!--[-->`);
675
676
  ssrRenderList(recipeForm.daqWindows, (w, i) => {
676
- _push(`<div class="param-row" data-v-7b43b781><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1empnnb102"))}</span><select class="inp" data-v-7b43b781><!--[-->`);
677
+ _push(`<div class="param-row" data-v-385b5f14><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1empnnb102"))}</span><select class="inp" data-v-385b5f14><!--[-->`);
677
678
  ssrRenderList(lineDaqNodes.value, (n) => {
678
- _push(`<option${ssrRenderAttr("value", n.id)} data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(w.nodeId) ? ssrLooseContain(w.nodeId, n.id) : ssrLooseEqual(w.nodeId, n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}(${ssrInterpolate(n.min)}~${ssrInterpolate(n.max)} ${ssrInterpolate(n.unit)}) </option>`);
679
+ _push(`<option${ssrRenderAttr("value", n.id)} data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(w.nodeId) ? ssrLooseContain(w.nodeId, n.id) : ssrLooseEqual(w.nodeId, n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}(${ssrInterpolate(n.min)}~${ssrInterpolate(n.max)} ${ssrInterpolate(n.unit)}) </option>`);
679
680
  });
680
- _push(`<!--]--></select></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.kqm08ap103"))}</span><input${ssrRenderAttr("value", w.min)} type="number" class="inp"${ssrRenderAttr("step", .1)} data-v-7b43b781></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.kpypf8g104"))}</span><input${ssrRenderAttr("value", w.max)} type="number" class="inp"${ssrRenderAttr("step", .1)} data-v-7b43b781></label><button class="mini-btn danger param-del" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k44idg099"))}</button></div>`);
681
+ _push(`<!--]--></select></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.kqm08ap103"))}</span><input${ssrRenderAttr("value", w.min)} type="number" class="inp"${ssrRenderAttr("step", .1)} data-v-385b5f14></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.kpypf8g104"))}</span><input${ssrRenderAttr("value", w.max)} type="number" class="inp"${ssrRenderAttr("step", .1)} data-v-385b5f14></label><button class="mini-btn danger param-del" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k44idg099"))}</button></div>`);
681
682
  });
682
- _push(`<!--]--><button class="mini-btn"${ssrIncludeBooleanAttr(lineDaqNodes.value.length === 0) ? " disabled" : ""}${ssrRenderAttr("title", lineDaqNodes.value.length === 0 ? "本产线暂无数采节点" : "")} data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.kv1de1p105"))}</button>`);
683
- if (recipeStaleNote.value) _push(`<p class="m-note" data-v-7b43b781>${ssrInterpolate(recipeStaleNote.value)}</p>`);
683
+ _push(`<!--]--><button class="mini-btn"${ssrIncludeBooleanAttr(lineDaqNodes.value.length === 0) ? " disabled" : ""}${ssrRenderAttr("title", lineDaqNodes.value.length === 0 ? "本产线暂无数采节点" : "")} data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.kv1de1p105"))}</button>`);
684
+ if (recipeStaleNote.value) _push(`<p class="m-note" data-v-385b5f14>${ssrInterpolate(recipeStaleNote.value)}</p>`);
684
685
  else _push(`<!---->`);
685
- if (recipeError.value) _push(`<p class="m-err" data-v-7b43b781>${ssrInterpolate(recipeError.value)}</p>`);
686
+ if (recipeError.value) _push(`<p class="m-err" data-v-385b5f14>${ssrInterpolate(recipeError.value)}</p>`);
686
687
  else _push(`<!---->`);
687
- _push(`<div class="m-actions" data-v-7b43b781><button class="aw-pill outline" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3xdnn052"))}</button><button class="pill-btn"${ssrIncludeBooleanAttr(recipeSaving.value) ? " disabled" : ""} data-v-7b43b781>${ssrInterpolate(recipeSaving.value ? _ctx.$t("dcwDetail.k1b38d59164") : _ctx.$t("dcwDetail.k1b3kwg0177"))}</button></div></div></div>`);
688
+ _push(`<div class="m-actions" data-v-385b5f14><button class="aw-pill outline" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3xdnn052"))}</button><button class="pill-btn"${ssrIncludeBooleanAttr(recipeSaving.value) ? " disabled" : ""} data-v-385b5f14>${ssrInterpolate(recipeSaving.value ? _ctx.$t("dcwDetail.k1b38d59164") : _ctx.$t("dcwDetail.k1b3kwg0177"))}</button></div></div></div>`);
688
689
  } else _push(`<!---->`);
689
690
  if (verOpen.value) {
690
- _push(`<div class="modal-mask" data-v-7b43b781><div class="modal" style="${ssrRenderStyle({ "max-width": "760px" })}" data-v-7b43b781><div class="modal-head" data-v-7b43b781><h3 data-v-7b43b781>${ssrInterpolate(unref(t)("dcwDetail.histTitle"))}`);
691
+ _push(`<div class="modal-mask" data-v-385b5f14><div class="modal" style="${ssrRenderStyle({ "max-width": "760px" })}" data-v-385b5f14><div class="modal-head" data-v-385b5f14><h3 data-v-385b5f14>${ssrInterpolate(unref(t)("dcwDetail.histTitle"))}`);
691
692
  if (verRecipe.value) _push(`<span class="dim" style="${ssrRenderStyle({
692
693
  "margin-left": "8px",
693
694
  "font-size": "12px"
694
- })}" data-v-7b43b781>${ssrInterpolate(verRecipe.value.name)} · v${ssrInterpolate(verRecipe.value.version)}</span>`);
695
+ })}" data-v-385b5f14>${ssrInterpolate(verRecipe.value.name)} · v${ssrInterpolate(verRecipe.value.version)}</span>`);
695
696
  else _push(`<!---->`);
696
- _push(`</h3><button class="mini-btn" data-v-7b43b781> ✕ </button></div>`);
697
- if (verMsg.value) _push(`<p class="banner good" style="${ssrRenderStyle({ "margin": "6px 0" })}" data-v-7b43b781>${ssrInterpolate(verMsg.value)}</p>`);
697
+ _push(`</h3><button class="mini-btn" data-v-385b5f14> ✕ </button></div>`);
698
+ if (verMsg.value) _push(`<p class="banner good" style="${ssrRenderStyle({ "margin": "6px 0" })}" data-v-385b5f14>${ssrInterpolate(verMsg.value)}</p>`);
698
699
  else _push(`<!---->`);
699
- if (verLoading.value) _push(`<p class="dim" data-v-7b43b781>${ssrInterpolate(unref(t)("dcwDetail.histLoading"))}</p>`);
700
- else if (verRows.value.length === 0) _push(`<div class="pane-empty" data-v-7b43b781>${ssrInterpolate(unref(t)("dcwDetail.histEmpty"))}</div>`);
700
+ if (verLoading.value) _push(`<p class="dim" data-v-385b5f14>${ssrInterpolate(unref(t)("dcwDetail.histLoading"))}</p>`);
701
+ else if (verRows.value.length === 0) _push(`<div class="pane-empty" data-v-385b5f14>${ssrInterpolate(unref(t)("dcwDetail.histEmpty"))}</div>`);
701
702
  else {
702
703
  _push(`<!--[-->`);
703
704
  ssrRenderList(verRows.value, (row, i) => {
704
- _push(`<div class="${ssrRenderClass([{ cur: row.current }, "ver-row"])}" data-v-7b43b781><div class="ver-head" data-v-7b43b781><span class="mono ver-v" data-v-7b43b781>v${ssrInterpolate(row.version)}</span><span class="${ssrRenderClass([row.by ?? (row.current ? "cur" : ""), "ver-src"])}" data-v-7b43b781>${ssrInterpolate(row.current ? unref(t)("dcwDetail.histCurrent") : verSrcLabel(row.by))}</span><span class="mono dim" data-v-7b43b781>${ssrInterpolate(row.at.slice(0, 19).replace("T", " "))}</span><span class="ver-actor" data-v-7b43b781>${ssrInterpolate(row.actorName || "—")}</span>`);
705
- if (!row.current) _push(`<button class="mini-btn" data-v-7b43b781>${ssrInterpolate(unref(t)("dcwDetail.revertTo"))}</button>`);
705
+ _push(`<div class="${ssrRenderClass([{ cur: row.current }, "ver-row"])}" data-v-385b5f14><div class="ver-head" data-v-385b5f14><span class="mono ver-v" data-v-385b5f14>v${ssrInterpolate(row.version)}</span><span class="${ssrRenderClass([row.by ?? (row.current ? "cur" : ""), "ver-src"])}" data-v-385b5f14>${ssrInterpolate(row.current ? unref(t)("dcwDetail.histCurrent") : verSrcLabel(row.by))}</span><span class="mono dim" data-v-385b5f14>${ssrInterpolate(row.at.slice(0, 19).replace("T", " "))}</span><span class="ver-actor" data-v-385b5f14>${ssrInterpolate(row.actorName || "—")}</span>`);
706
+ if (!row.current) _push(`<button class="mini-btn" data-v-385b5f14>${ssrInterpolate(unref(t)("dcwDetail.revertTo"))}</button>`);
706
707
  else _push(`<!---->`);
707
708
  _push(`</div>`);
708
- if (row.description) _push(`<p class="ver-desc" data-v-7b43b781>${ssrInterpolate(row.description)}</p>`);
709
+ if (row.description) _push(`<p class="ver-desc" data-v-385b5f14>${ssrInterpolate(row.description)}</p>`);
709
710
  else _push(`<!---->`);
710
- _push(`<p class="ver-diff mono" data-v-7b43b781>${ssrInterpolate(verDiff(row, i))}</p></div>`);
711
+ _push(`<p class="ver-diff mono" data-v-385b5f14>${ssrInterpolate(verDiff(row, i))}</p></div>`);
711
712
  });
712
713
  _push(`<!--]-->`);
713
714
  }
714
715
  _push(`</div></div>`);
715
716
  } else _push(`<!---->`);
716
- _push(`<section class="aw-tile query-card" data-v-7b43b781><p class="sec-label" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1us3jse106"))}</p><div class="q-grid" data-v-7b43b781><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3waz1025"))}</span><select class="inp" data-v-7b43b781><option value="" data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(query.productId) ? ssrLooseContain(query.productId, "") : ssrLooseEqual(query.productId, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkl1jx107"))}</option><!--[-->`);
717
+ _push(`<section class="aw-tile query-card" data-v-385b5f14><p class="sec-label" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1us3jse106"))}</p><div class="q-grid" data-v-385b5f14><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3waz1025"))}</span><select class="inp" data-v-385b5f14><option value="" data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(query.productId) ? ssrLooseContain(query.productId, "") : ssrLooseEqual(query.productId, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkl1jx107"))}</option><!--[-->`);
717
718
  ssrRenderList(lineProducts.value, (p) => {
718
- _push(`<option${ssrRenderAttr("value", p.id)} data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(query.productId) ? ssrLooseContain(query.productId, p.id) : ssrLooseEqual(query.productId, p.id)) ? " selected" : ""}>${ssrInterpolate(p.name)}</option>`);
719
+ _push(`<option${ssrRenderAttr("value", p.id)} data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(query.productId) ? ssrLooseContain(query.productId, p.id) : ssrLooseEqual(query.productId, p.id)) ? " selected" : ""}>${ssrInterpolate(p.name)}</option>`);
719
720
  });
720
- _push(`<!--]--></select></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))}</span><select class="inp"${ssrIncludeBooleanAttr(!query.productId) ? " disabled" : ""} data-v-7b43b781><option value="" data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(query.recipeId) ? ssrLooseContain(query.recipeId, "") : ssrLooseEqual(query.recipeId, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkx7cr108"))}</option><!--[-->`);
721
+ _push(`<!--]--></select></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))}</span><select class="inp"${ssrIncludeBooleanAttr(!query.productId) ? " disabled" : ""} data-v-385b5f14><option value="" data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(query.recipeId) ? ssrLooseContain(query.recipeId, "") : ssrLooseEqual(query.recipeId, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkx7cr108"))}</option><!--[-->`);
721
722
  ssrRenderList(visibleRecipes.value, (r) => {
722
- _push(`<option${ssrRenderAttr("value", r.id)} data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(query.recipeId) ? ssrLooseContain(query.recipeId, r.id) : ssrLooseEqual(query.recipeId, r.id)) ? " selected" : ""}>${ssrInterpolate(r.name)}</option>`);
723
+ _push(`<option${ssrRenderAttr("value", r.id)} data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(query.recipeId) ? ssrLooseContain(query.recipeId, r.id) : ssrLooseEqual(query.recipeId, r.id)) ? " selected" : ""}>${ssrInterpolate(r.name)}</option>`);
723
724
  });
724
- _push(`<!--]--></select></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1demcae109"))}</span><select class="inp" data-v-7b43b781><option value="" data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(query.paramKey) ? ssrLooseContain(query.paramKey, "") : ssrLooseEqual(query.paramKey, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkx7ya110"))}</option><!--[-->`);
725
+ _push(`<!--]--></select></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1demcae109"))}</span><select class="inp" data-v-385b5f14><option value="" data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(query.paramKey) ? ssrLooseContain(query.paramKey, "") : ssrLooseEqual(query.paramKey, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkx7ya110"))}</option><!--[-->`);
725
726
  ssrRenderList(daqParamKeys.value, (k) => {
726
- _push(`<option${ssrRenderAttr("value", k)} data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(query.paramKey) ? ssrLooseContain(query.paramKey, k) : ssrLooseEqual(query.paramKey, k)) ? " selected" : ""}>${ssrInterpolate(k)}</option>`);
727
+ _push(`<option${ssrRenderAttr("value", k)} data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(query.paramKey) ? ssrLooseContain(query.paramKey, k) : ssrLooseEqual(query.paramKey, k)) ? " selected" : ""}>${ssrInterpolate(k)}</option>`);
727
728
  });
728
- _push(`<!--]--></select></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</span><select class="inp" data-v-7b43b781><option value="" data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(query.nodeId) ? ssrLooseContain(query.nodeId, "") : ssrLooseEqual(query.nodeId, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkul3k111"))}</option><!--[-->`);
729
+ _push(`<!--]--></select></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</span><select class="inp" data-v-385b5f14><option value="" data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(query.nodeId) ? ssrLooseContain(query.nodeId, "") : ssrLooseEqual(query.nodeId, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkul3k111"))}</option><!--[-->`);
729
730
  ssrRenderList(lineDaqNodes.value, (n) => {
730
- _push(`<option${ssrRenderAttr("value", n.id)} data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(query.nodeId) ? ssrLooseContain(query.nodeId, n.id) : ssrLooseEqual(query.nodeId, n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}</option>`);
731
+ _push(`<option${ssrRenderAttr("value", n.id)} data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(query.nodeId) ? ssrLooseContain(query.nodeId, n.id) : ssrLooseEqual(query.nodeId, n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}</option>`);
731
732
  });
732
- _push(`<!--]--></select></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.kx2ojn0112"))}</span><input${ssrRenderAttr("value", query.lastMin)} type="number" min="1" max="10080" class="inp" data-v-7b43b781></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.kjvnvn4113"))}</span><input${ssrRenderAttr("value", query.bucketMs)} type="number" min="1000" step="500" class="inp" data-v-7b43b781></label><div class="f q-actions" data-v-7b43b781><button class="pill-btn"${ssrIncludeBooleanAttr(queryBusy.value) ? " disabled" : ""} data-v-7b43b781>${ssrInterpolate(queryBusy.value ? _ctx.$t("dcwDetail.k1eyx09r165") : _ctx.$t("dcwDetail.k416ek178"))}</button></div></div>`);
733
- if (queryError.value) _push(`<p class="banner bad" style="${ssrRenderStyle({ "margin-top": "8px" })}" data-v-7b43b781>${ssrInterpolate(queryError.value)}</p>`);
733
+ _push(`<!--]--></select></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.kx2ojn0112"))}</span><input${ssrRenderAttr("value", query.lastMin)} type="number" min="1" max="10080" class="inp" data-v-385b5f14></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.kjvnvn4113"))}</span><input${ssrRenderAttr("value", query.bucketMs)} type="number" min="1000" step="500" class="inp" data-v-385b5f14></label><div class="f q-actions" data-v-385b5f14><button class="pill-btn"${ssrIncludeBooleanAttr(queryBusy.value) ? " disabled" : ""} data-v-385b5f14>${ssrInterpolate(queryBusy.value ? _ctx.$t("dcwDetail.k1eyx09r165") : _ctx.$t("dcwDetail.k416ek178"))}</button></div></div>`);
734
+ if (queryError.value) _push(`<p class="banner bad" style="${ssrRenderStyle({ "margin-top": "8px" })}" data-v-385b5f14>${ssrInterpolate(queryError.value)}</p>`);
734
735
  else _push(`<!---->`);
735
736
  if (queryResult.value) {
736
- _push(`<div class="q-result" data-v-7b43b781><table class="nodes-table" data-v-7b43b781><thead data-v-7b43b781><tr data-v-7b43b781><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k48hde081"))}</th><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</th><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k42kcu114"))}</th><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k49ujb115"))}</th><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k40pvw116"))}</th><th data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3xho3117"))}</th></tr></thead><tbody data-v-7b43b781><!--[-->`);
737
+ _push(`<div class="q-result" data-v-385b5f14><table class="nodes-table" data-v-385b5f14><thead data-v-385b5f14><tr data-v-385b5f14><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k48hde081"))}</th><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</th><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k42kcu114"))}</th><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k49ujb115"))}</th><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k40pvw116"))}</th><th data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3xho3117"))}</th></tr></thead><tbody data-v-385b5f14><!--[-->`);
737
738
  ssrRenderList(queryResult.value.channels, (c) => {
738
- _push(`<tr data-v-7b43b781><td data-v-7b43b781>${ssrInterpolate(c.ch)}<small class="mono dim" data-v-7b43b781>${ssrInterpolate(c.unit)}</small></td><td data-v-7b43b781>${ssrInterpolate(c.nodeName)}</td><td class="mono" data-v-7b43b781>${ssrInterpolate(c.points.length)}</td><td class="mono" data-v-7b43b781>${ssrInterpolate(fmtPoint(c.points[0]))}</td><td class="mono" data-v-7b43b781>${ssrInterpolate(fmtPoint(c.points[c.points.length - 1]))}</td><td class="mono dim" data-v-7b43b781>${ssrInterpolate(new Date(c.points[0]?.at ?? 0).toLocaleTimeString())} ~ ${ssrInterpolate(new Date(c.points[c.points.length - 1]?.at ?? 0).toLocaleTimeString())}</td></tr>`);
739
+ _push(`<tr data-v-385b5f14><td data-v-385b5f14>${ssrInterpolate(c.ch)}<small class="mono dim" data-v-385b5f14>${ssrInterpolate(c.unit)}</small></td><td data-v-385b5f14>${ssrInterpolate(c.nodeName)}</td><td class="mono" data-v-385b5f14>${ssrInterpolate(c.points.length)}</td><td class="mono" data-v-385b5f14>${ssrInterpolate(fmtPoint(c.points[0]))}</td><td class="mono" data-v-385b5f14>${ssrInterpolate(fmtPoint(c.points[c.points.length - 1]))}</td><td class="mono dim" data-v-385b5f14>${ssrInterpolate(new Date(c.points[0]?.at ?? 0).toLocaleTimeString())} ~ ${ssrInterpolate(new Date(c.points[c.points.length - 1]?.at ?? 0).toLocaleTimeString())}</td></tr>`);
739
740
  });
740
741
  _push(`<!--]--></tbody></table></div>`);
741
742
  } else _push(`<!---->`);
742
743
  _push(`</section>`);
743
744
  if (lineHistory.value.length) {
744
- _push(`<section class="aw-tile table-card" data-v-7b43b781><p class="sec-label" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.kw7ym9b148"))} ${ssrInterpolate(lineHistory.value.length)} ${ssrInterpolate(_ctx.$t("dcwDetail.k40bfz150"))}</p><table class="nodes-table" data-v-7b43b781><tbody data-v-7b43b781><!--[-->`);
745
+ _push(`<section class="aw-tile table-card" data-v-385b5f14><p class="sec-label" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.kw7ym9b148"))} ${ssrInterpolate(lineHistory.value.length)} ${ssrInterpolate(_ctx.$t("dcwDetail.k40bfz150"))}</p><table class="nodes-table" data-v-385b5f14><tbody data-v-385b5f14><!--[-->`);
745
746
  ssrRenderList(lineHistory.value.slice(0, 12), (h) => {
746
- _push(`<tr data-v-7b43b781><td class="mono dim" data-v-7b43b781>${ssrInterpolate(h.at.slice(5, 19))}</td><td data-v-7b43b781>${ssrInterpolate(h.param)}</td><td data-v-7b43b781>${ssrInterpolate(h.nodeName)}</td><td class="mono" data-v-7b43b781>${ssrInterpolate(h.eng)}</td><td class="mono dim" data-v-7b43b781> raw ${ssrInterpolate(h.raw ?? "-")}</td><td data-v-7b43b781><span class="${ssrRenderClass([h.ok ? "ok" : "alarm", "st-pill"])}" data-v-7b43b781>${ssrInterpolate(h.ok ? "ACK" : _ctx.$t("dcwDetail.k3yit7139"))}</span></td><td class="dim" data-v-7b43b781>${ssrInterpolate(h.recipeRunId ? _ctx.$t("dcwDetail.k6vgks7181", { p0: h.recipeRunId }) : "手动")}</td></tr>`);
747
+ _push(`<tr data-v-385b5f14><td class="mono dim" data-v-385b5f14>${ssrInterpolate(h.at.slice(5, 19))}</td><td data-v-385b5f14>${ssrInterpolate(h.param)}</td><td data-v-385b5f14>${ssrInterpolate(h.nodeName)}</td><td class="mono" data-v-385b5f14>${ssrInterpolate(h.eng)}</td><td class="mono dim" data-v-385b5f14> raw ${ssrInterpolate(h.raw ?? "-")}</td><td data-v-385b5f14><span class="${ssrRenderClass([h.ok ? "ok" : "alarm", "st-pill"])}" data-v-385b5f14>${ssrInterpolate(h.ok ? "ACK" : _ctx.$t("dcwDetail.k3yit7139"))}</span></td><td class="dim" data-v-385b5f14>${ssrInterpolate(h.recipeRunId ? _ctx.$t("dcwDetail.k6vgks7181", { p0: h.recipeRunId }) : "手动")}</td></tr>`);
747
748
  });
748
749
  _push(`<!--]--></tbody></table></section>`);
749
750
  } else _push(`<!---->`);
750
751
  if (productOpen.value) {
751
- _push(`<div class="modal-mask" data-v-7b43b781><div class="modal" data-v-7b43b781><h3 class="m-title" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1efduyf118"))}</h3><div class="f-grid" data-v-7b43b781><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1avjrl6119"))}<em data-v-7b43b781>*</em></span><input${ssrRenderAttr("value", productForm.name)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k12c11vm014"))} data-v-7b43b781></label><label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k40gkk096"))}</span><input${ssrRenderAttr("value", productForm.description)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1hxx8hy015"))} data-v-7b43b781></label></div>`);
752
- if (productError.value) _push(`<p class="m-err" data-v-7b43b781>${ssrInterpolate(productError.value)}</p>`);
752
+ _push(`<div class="modal-mask" data-v-385b5f14><div class="modal" data-v-385b5f14><h3 class="m-title" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1efduyf118"))}</h3><div class="f-grid" data-v-385b5f14><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1avjrl6119"))}<em data-v-385b5f14>*</em></span><input${ssrRenderAttr("value", productForm.name)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k12c11vm014"))} data-v-385b5f14></label><label class="f" data-v-385b5f14><span data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k40gkk096"))}</span><input${ssrRenderAttr("value", productForm.description)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1hxx8hy015"))} data-v-385b5f14></label></div>`);
753
+ if (productError.value) _push(`<p class="m-err" data-v-385b5f14>${ssrInterpolate(productError.value)}</p>`);
753
754
  else _push(`<!---->`);
754
- _push(`<div class="m-actions" data-v-7b43b781><button class="aw-pill outline" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3xdnn052"))}</button><button class="pill-btn"${ssrIncludeBooleanAttr(productSaving.value) ? " disabled" : ""} data-v-7b43b781>${ssrInterpolate(productSaving.value ? _ctx.$t("dcwDetail.k1bg4759156") : _ctx.$t("dcwDetail.k1bg4kn6179"))}</button></div></div></div>`);
755
+ _push(`<div class="m-actions" data-v-385b5f14><button class="aw-pill outline" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k3xdnn052"))}</button><button class="pill-btn"${ssrIncludeBooleanAttr(productSaving.value) ? " disabled" : ""} data-v-385b5f14>${ssrInterpolate(productSaving.value ? _ctx.$t("dcwDetail.k1bg4759156") : _ctx.$t("dcwDetail.k1bg4kn6179"))}</button></div></div></div>`);
755
756
  } else _push(`<!---->`);
756
757
  if (unref(dcw).error) {
757
- _push(`<p class="err" data-v-7b43b781>${ssrInterpolate(unref(dcw).error)}(`);
758
+ _push(`<p class="err" data-v-385b5f14>${ssrInterpolate(unref(dcw).error)}(`);
758
759
  _push(ssrRenderComponent(_component_NuxtLink, { to: "/workshop" }, {
759
760
  default: withCtx((_, _push, _parent, _scopeId) => {
760
761
  if (_push) _push(`${ssrInterpolate(_ctx.$t("dcwDetail.k1bhhheq120"))}`);
@@ -764,19 +765,19 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
764
765
  }, _parent));
765
766
  _push(`) </p>`);
766
767
  } else _push(`<!---->`);
767
- _push(`<section class="aw-tile ledger-card" data-v-7b43b781><div class="ledger-head" data-v-7b43b781><b data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgt001"))}</b><select class="inp" data-v-7b43b781><option value="" data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(ledgerNodeId.value) ? ssrLooseContain(ledgerNodeId.value, "") : ssrLooseEqual(ledgerNodeId.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgs001"))}</option><!--[-->`);
768
+ _push(`<section class="aw-tile ledger-card" data-v-385b5f14><div class="ledger-head" data-v-385b5f14><b data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgt001"))}</b><select class="inp" data-v-385b5f14><option value="" data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(ledgerNodeId.value) ? ssrLooseContain(ledgerNodeId.value, "") : ssrLooseEqual(ledgerNodeId.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgs001"))}</option><!--[-->`);
768
769
  ssrRenderList(lineNodes.value, (n) => {
769
- _push(`<option${ssrRenderAttr("value", n.id)} data-v-7b43b781${ssrIncludeBooleanAttr(Array.isArray(ledgerNodeId.value) ? ssrLooseContain(ledgerNodeId.value, n.id) : ssrLooseEqual(ledgerNodeId.value, n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}</option>`);
770
+ _push(`<option${ssrRenderAttr("value", n.id)} data-v-385b5f14${ssrIncludeBooleanAttr(Array.isArray(ledgerNodeId.value) ? ssrLooseContain(ledgerNodeId.value, n.id) : ssrLooseEqual(ledgerNodeId.value, n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}</option>`);
770
771
  });
771
772
  _push(`<!--]--></select></div>`);
772
773
  if (ledger.value) {
773
- _push(`<!--[--><div class="ledger-tri" data-v-7b43b781><div class="tri-cell" data-v-7b43b781><small data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgv001"))}</small><b class="mono" data-v-7b43b781>${ssrInterpolate(ledger.value.current ?? "--")}</b></div><div class="tri-cell" data-v-7b43b781><small data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgv002"))}</small><b class="mono" data-v-7b43b781>${ssrInterpolate(ledger.value.recipeTarget ?? "--")}</b></div><div class="tri-cell" data-v-7b43b781><small data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgv003"))}</small><b class="mono" data-v-7b43b781>${ssrInterpolate(ledger.value.lastGood ?? "--")}</b></div><button class="mini-btn" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledga001"))}</button><button class="mini-btn danger" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledga002"))}</button></div><div class="ledger-cols" data-v-7b43b781><div class="ledger-col" data-v-7b43b781><small class="sec-t" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgh001"))}</small><ul class="ledger-list mono" data-v-7b43b781><!--[-->`);
774
+ _push(`<!--[--><div class="ledger-tri" data-v-385b5f14><div class="tri-cell" data-v-385b5f14><small data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgv001"))}</small><b class="mono" data-v-385b5f14>${ssrInterpolate(ledger.value.current ?? "--")}</b></div><div class="tri-cell" data-v-385b5f14><small data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgv002"))}</small><b class="mono" data-v-385b5f14>${ssrInterpolate(ledger.value.recipeTarget ?? "--")}</b></div><div class="tri-cell" data-v-385b5f14><small data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgv003"))}</small><b class="mono" data-v-385b5f14>${ssrInterpolate(ledger.value.lastGood ?? "--")}</b></div><button class="mini-btn" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledga001"))}</button><button class="mini-btn danger" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledga002"))}</button></div><div class="ledger-cols" data-v-385b5f14><div class="ledger-col" data-v-385b5f14><small class="sec-t" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgh001"))}</small><ul class="ledger-list mono" data-v-385b5f14><!--[-->`);
774
775
  ssrRenderList(ledger.value.journal, (a) => {
775
- _push(`<li data-v-7b43b781>${ssrInterpolate(a.at.slice(5, 16).replace("T", " "))} [${ssrInterpolate(a.source)}] ${ssrInterpolate(a.prevValue ?? "?")} → ${ssrInterpolate(a.newValue)}</li>`);
776
+ _push(`<li data-v-385b5f14>${ssrInterpolate(a.at.slice(5, 16).replace("T", " "))} [${ssrInterpolate(a.source)}] ${ssrInterpolate(a.prevValue ?? "?")} → ${ssrInterpolate(a.newValue)}</li>`);
776
777
  });
777
- _push(`<!--]--></ul></div><div class="ledger-col" data-v-7b43b781><small class="sec-t" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgr001"))}</small><ul class="ledger-list" data-v-7b43b781><!--[-->`);
778
+ _push(`<!--]--></ul></div><div class="ledger-col" data-v-385b5f14><small class="sec-t" data-v-385b5f14>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgr001"))}</small><ul class="ledger-list" data-v-385b5f14><!--[-->`);
778
779
  ssrRenderList(ledger.value.records, (r) => {
779
- _push(`<li class="ledger-rec" data-v-7b43b781><span class="${ssrRenderClass([r.status, "rec-st"])}" data-v-7b43b781>${ssrInterpolate(r.status)}</span><span class="mono" data-v-7b43b781>${ssrInterpolate(r.params[0]?.from ?? "?")} → ${ssrInterpolate(r.params[0]?.to)}</span><small data-v-7b43b781>${ssrInterpolate(r.judge ? `${r.judge.verdict}(${r.judge.by})` : r.status === "open" ? "open" : r.closedBy ?? "")}</small></li>`);
780
+ _push(`<li class="ledger-rec" data-v-385b5f14><span class="${ssrRenderClass([r.status, "rec-st"])}" data-v-385b5f14>${ssrInterpolate(r.status)}</span><span class="mono" data-v-385b5f14>${ssrInterpolate(r.params[0]?.from ?? "?")} → ${ssrInterpolate(r.params[0]?.to)}</span><small data-v-385b5f14>${ssrInterpolate(r.judge ? `${r.judge.verdict}(${r.judge.by})` : r.status === "open" ? "open" : r.closedBy ?? "")}</small></li>`);
780
781
  });
781
782
  _push(`<!--]--></ul></div></div><!--]-->`);
782
783
  } else _push(`<!---->`);
@@ -793,7 +794,7 @@ _id__vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
793
794
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/dcw/[id].vue");
794
795
  return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
795
796
  };
796
- var _id__default = /*#__PURE__*/ _plugin_vue_export_helper_default(_id__vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-7b43b781"]]);
797
+ var _id__default = /*#__PURE__*/ _plugin_vue_export_helper_default(_id__vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-385b5f14"]]);
797
798
 
798
799
  export { _id__default as default };
799
- //# sourceMappingURL=_id_-Bs-euJPu.mjs.map
800
+ //# sourceMappingURL=_id_-DY6v6sqB.mjs.map