agentworkshop 0.7.16 → 0.7.18

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 (89) hide show
  1. package/.AgentWorkShop/prompts/host-tools.json +105 -0
  2. package/.output/.AgentWorkShop/prompts/host-tools.json +105 -0
  3. package/.output/nitro.json +1 -1
  4. package/.output/public/_nuxt/{DMdVWIGz.js → B-E8fXAO.js} +1 -1
  5. package/.output/public/_nuxt/{DyisHHzD.js → BA3XzwiD.js} +1 -1
  6. package/.output/public/_nuxt/{CD1SlCoI.js → BOJaHO5V.js} +4 -4
  7. package/.output/public/_nuxt/{6vYobj4F.js → BWC4HQHQ.js} +1 -1
  8. package/.output/public/_nuxt/B_C3GLsD.js +1 -0
  9. package/.output/public/_nuxt/{kkEthL84.js → Ba7YofCb.js} +1 -1
  10. package/.output/public/_nuxt/{DGVAuScD.js → C_2bTK0C.js} +1 -1
  11. package/.output/public/_nuxt/{B53Mp7lD.js → CgT5wMfz.js} +1 -1
  12. package/.output/public/_nuxt/{DT-Wg8r1.js → D4CLp1hc.js} +1 -1
  13. package/.output/public/_nuxt/{C6m-kenn.js → DAR70Lf5.js} +1 -1
  14. package/.output/public/_nuxt/{B3Psw_sL.js → DBXhDLgl.js} +1 -1
  15. package/.output/public/_nuxt/{Cj6139IM.js → DsOkkMX3.js} +1 -1
  16. package/.output/public/_nuxt/{DaE5saZg.js → QT54MQV9.js} +1 -1
  17. package/.output/public/_nuxt/{Bmpvki7M.js → UtviM1bg.js} +1 -1
  18. package/.output/public/_nuxt/_id_.IbmpkhH4.css +1 -0
  19. package/.output/public/_nuxt/builds/latest.json +1 -1
  20. package/.output/public/_nuxt/builds/meta/253c093e-3336-4451-9f11-08061bf22f01.json +1 -0
  21. package/.output/public/_nuxt/{entry.BNApuuEW.css → entry.DRUzDwmX.css} +1 -1
  22. package/.output/server/chunks/_/nitro.mjs +1130 -734
  23. package/.output/server/chunks/build/{TownView-CunmEMzS.mjs → TownView-ql2eHZOg.mjs} +4 -4
  24. package/.output/server/chunks/build/{TownView-CunmEMzS.mjs.map → TownView-ql2eHZOg.mjs.map} +1 -1
  25. package/.output/server/chunks/build/{_id_-D265Wh_k.mjs → _id_-Bs-euJPu.mjs} +215 -120
  26. package/.output/server/chunks/build/_id_-Bs-euJPu.mjs.map +1 -0
  27. package/.output/server/chunks/build/{_id_-CVnMdSeG.mjs → _id_-CwR5oLu9.mjs} +4 -4
  28. package/.output/server/chunks/build/{_id_-CVnMdSeG.mjs.map → _id_-CwR5oLu9.mjs.map} +1 -1
  29. package/.output/server/chunks/build/{_wsId_-eNJmBp05.mjs → _wsId_-B3aB9bIp.mjs} +5 -5
  30. package/.output/server/chunks/build/{_wsId_-eNJmBp05.mjs.map → _wsId_-B3aB9bIp.mjs.map} +1 -1
  31. package/.output/server/chunks/build/{daq-DxaXk_8N.mjs → daq-epWL_sC7.mjs} +5 -5
  32. package/.output/server/chunks/build/{daq-DxaXk_8N.mjs.map → daq-epWL_sC7.mjs.map} +1 -1
  33. package/.output/server/chunks/build/{dcw-B0dtiHFG.mjs → dcw-CBPaFj2f.mjs} +2 -2
  34. package/.output/server/chunks/build/{dcw-B0dtiHFG.mjs.map → dcw-CBPaFj2f.mjs.map} +1 -1
  35. package/.output/server/chunks/build/{logs-UWXeNKy_.mjs → logs-Bz1p6x_5.mjs} +3 -3
  36. package/.output/server/chunks/build/{logs-UWXeNKy_.mjs.map → logs-Bz1p6x_5.mjs.map} +1 -1
  37. package/.output/server/chunks/build/{pages-Aexs6LjD.mjs → pages-Dq7_H4FK.mjs} +3 -3
  38. package/.output/server/chunks/build/{pages-Aexs6LjD.mjs.map → pages-Dq7_H4FK.mjs.map} +1 -1
  39. package/.output/server/chunks/build/{town-BbaR-8io.mjs → town-CstiKxf_.mjs} +5 -5
  40. package/.output/server/chunks/build/{town-BbaR-8io.mjs.map → town-CstiKxf_.mjs.map} +1 -1
  41. package/.output/server/chunks/build/{useDaqStream-BkmyQT06.mjs → useDaqStream-BOOZ-p-l.mjs} +2 -2
  42. package/.output/server/chunks/build/{useDaqStream-BkmyQT06.mjs.map → useDaqStream-BOOZ-p-l.mjs.map} +1 -1
  43. package/.output/server/chunks/build/{useDcwStream-DWVoU96J.mjs → useDcwStream-DyB2ufQI.mjs} +15 -1
  44. package/.output/server/chunks/build/{useDcwStream-DWVoU96J.mjs.map → useDcwStream-DyB2ufQI.mjs.map} +1 -1
  45. package/.output/server/chunks/build/{useDeviceTwins-34WGk9aN.mjs → useDeviceTwins-ZbT86L9O.mjs} +2 -2
  46. package/.output/server/chunks/build/{useDeviceTwins-34WGk9aN.mjs.map → useDeviceTwins-ZbT86L9O.mjs.map} +1 -1
  47. package/.output/server/chunks/build/{useOpsLog-C9zTzYof.mjs → useOpsLog-8HCYFb6n.mjs} +2 -2
  48. package/.output/server/chunks/build/{useOpsLog-C9zTzYof.mjs.map → useOpsLog-8HCYFb6n.mjs.map} +1 -1
  49. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs +42 -0
  50. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs.map +1 -0
  51. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +29 -0
  52. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs.map +1 -0
  53. package/.output/server/chunks/routes/api/workshop/dcw/recipes/{_id_.patch.mjs → index.patch.mjs} +11 -6
  54. package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs.map +1 -0
  55. package/.output/server/chunks/routes/renderer.mjs +1 -1
  56. package/.output/server/chunks/virtual/entry.mjs +42 -8
  57. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  58. package/.output/server/package.json +1 -1
  59. package/app/composables/workshop/useDcwStream.ts +12 -0
  60. package/app/pages/dcw/[id].vue +219 -5
  61. package/i18n/locales/en.ts +17 -0
  62. package/i18n/locales/zh-CN.ts +17 -0
  63. package/package.json +1 -1
  64. package/scripts/_dbg-recipe-e2e.mjs +176 -0
  65. package/scripts/_dbg-recipe-stale-e2e.mjs +135 -0
  66. package/server/api/workshop/dcw/recipes/{[id].patch.ts → [id]/index.patch.ts} +9 -3
  67. package/server/api/workshop/dcw/recipes/[id]/revert.post.ts +28 -0
  68. package/server/api/workshop/dcw/recipes/[id]/versions.get.ts +14 -0
  69. package/server/data/daqs.json +203 -66
  70. package/server/data/dcw-lines.json +7 -28
  71. package/server/data/dcw-products.json +14 -7
  72. package/server/data/dcw-recipes.json +28 -14
  73. package/server/data/dcw-rollback.json +108 -9
  74. package/server/data/dcw-runs.json +430 -230
  75. package/server/data/dcw-writes.json +48 -0
  76. package/server/data/dcws.json +464 -372
  77. package/server/data/line-runs.json +23 -13
  78. package/server/services/workshop/agents/host-tool-bridge.ts +21 -1
  79. package/server/services/workshop/agents/industrial-tools.ts +256 -4
  80. package/server/services/workshop/daq/drivers.ts +16 -3
  81. package/server/services/workshop/dcw/dcw-controller.ts +61 -3
  82. package/server/services/workshop/dcw/dcw-recipe.repo.ts +96 -3
  83. package/server/services/workshop/dcw/drivers.ts +2 -2
  84. package/shared/dcw-protocol.ts +14 -2
  85. package/.output/public/_nuxt/Bc3PiGGr.js +0 -1
  86. package/.output/public/_nuxt/_id_.DTvjd6VN.css +0 -1
  87. package/.output/public/_nuxt/builds/meta/cf0a8831-4514-493d-ad5a-4e371a089ef9.json +0 -1
  88. package/.output/server/chunks/build/_id_-D265Wh_k.mjs.map +0 -1
  89. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.patch.mjs.map +0 -1
@@ -1,9 +1,9 @@
1
1
  import { _ as _plugin_vue_export_helper_default, u as useI18n, az as NuxtLink } from '../virtual/entry.mjs';
2
2
  import { s as spin_default } from './spin-HVY81X_L.mjs';
3
3
  import { a as apiErrorMessage } from './api-error-dul30BYQ.mjs';
4
- import { u as useDcwStream } from './useDcwStream-DWVoU96J.mjs';
5
- import { u as useDaqStream } from './useDaqStream-BkmyQT06.mjs';
6
- import { u as useDeviceTwins } from './useDeviceTwins-34WGk9aN.mjs';
4
+ import { u as useDcwStream } from './useDcwStream-DyB2ufQI.mjs';
5
+ import { u as useDaqStream } from './useDaqStream-BOOZ-p-l.mjs';
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';
9
9
  import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent, ssrRenderStyle, ssrRenderClass, ssrRenderAttr, ssrRenderList, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderDynamicModel } from 'vue/server-renderer';
@@ -241,6 +241,56 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
241
241
  const filterProductId = ref("");
242
242
  const visibleRecipes = computed(() => filterProductId.value ? lineRecipesAll.value.filter((r) => r.productId === filterProductId.value) : lineRecipesAll.value);
243
243
  const productName = (id) => dcw.products.find((p) => p.id === id)?.name ?? id;
244
+ function paramStatus(nodeId, lineId) {
245
+ const node = dcw.nodes.find((n) => n.id === nodeId);
246
+ if (!node) return {
247
+ code: "deleted",
248
+ label: t("dcwDetail.staleDeleted")
249
+ };
250
+ if (!node.enabled) return {
251
+ code: "disabled",
252
+ label: t("dcwDetail.staleDisabled")
253
+ };
254
+ if (lineId && node.lineId !== lineId) return {
255
+ code: "unbound",
256
+ label: t("dcwDetail.staleUnbound")
257
+ };
258
+ return null;
259
+ }
260
+ function paramNodeName(nodeId) {
261
+ return dcw.nodes.find((n) => n.id === nodeId)?.name ?? nodeId;
262
+ }
263
+ function daqWindowStatus(nodeId, lineId) {
264
+ const node = daq.nodes.find((n) => n.id === nodeId);
265
+ if (!node) return {
266
+ code: "deleted",
267
+ label: t("dcwDetail.staleDeleted")
268
+ };
269
+ if (!node.enabled) return {
270
+ code: "disabled",
271
+ label: t("dcwDetail.staleDisabled")
272
+ };
273
+ if (lineId && node.lineId !== lineId) return {
274
+ code: "unbound",
275
+ label: t("dcwDetail.staleUnbound")
276
+ };
277
+ return null;
278
+ }
279
+ const verOpen = ref(false);
280
+ const verRecipe = ref(null);
281
+ const verRows = ref([]);
282
+ const verLoading = ref(false);
283
+ const verMsg = ref("");
284
+ const verSrcLabel = (by) => by === "agent" ? "Agent" : by === "system" ? t("dcwDetail.srcSystem") : t("dcwDetail.srcUser");
285
+ function verDiff(row, idx) {
286
+ if (idx === 0) return t("dcwDetail.histInit");
287
+ const prev = verRows.value[idx - 1];
288
+ const changed = row.params.map((p) => ({
289
+ p,
290
+ old: prev.params.find((x) => x.nodeId === p.nodeId)
291
+ })).filter(({ p, old }) => !old || old.value !== p.value).map(({ p, old }) => `${dcw.nodes.find((n) => n.id === p.nodeId)?.name ?? p.nodeId}: ${old?.value ?? t("dcwDetail.histAdded")} → ${p.value}`);
292
+ return changed.length > 0 ? changed.join(";") : t("dcwDetail.histNoChange");
293
+ }
244
294
  const query = reactive({
245
295
  productId: "",
246
296
  recipeId: "",
@@ -258,6 +308,7 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
258
308
  const recipeEditing = ref(null);
259
309
  const recipeSaving = ref(false);
260
310
  const recipeError = ref("");
311
+ const recipeStaleNote = ref("");
261
312
  const recipeForm = reactive({
262
313
  productId: "",
263
314
  name: "",
@@ -277,7 +328,7 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
277
328
  const _component_NuxtLink = NuxtLink;
278
329
  const _component_a_spin = spin_default;
279
330
  if (unref(dcw).loaded && !line.value) {
280
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-366216bb><p class="banner bad" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k19337yp018"))}</p>`);
331
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-7b43b781><p class="banner bad" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k19337yp018"))}</p>`);
281
332
  _push(ssrRenderComponent(_component_NuxtLink, {
282
333
  class: "pill-btn",
283
334
  to: "/dcw"
@@ -290,122 +341,122 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
290
341
  }, _parent));
291
342
  _push(`</div>`);
292
343
  } else {
293
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-366216bb><div class="aw-page-head" data-v-366216bb><div data-v-366216bb><p class="aw-kicker" data-v-366216bb><span class="line-chip" style="${ssrRenderStyle({ background: line.value?.color ?? "#3aa0ff" })}" data-v-366216bb></span>AGENTWORKSHOP / LINE / ${ssrInterpolate(line.value?.name ?? lineId.value)}</p><h1 data-v-366216bb>${ssrInterpolate(line.value?.name ?? _ctx.$t("dcwDetail.k1b2snna151"))} · ${ssrInterpolate(_ctx.$t("dcwDetail.k1l0iow1137"))}</h1><p class="sub" data-v-366216bb>${ssrInterpolate(line.value?.description || _ctx.$t("dcwDetail.kzcbfki152"))}</p></div><div class="badges mono" data-v-366216bb><span class="badge" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))} ${ssrInterpolate(lineNodes.value.length)}</span><span class="badge" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k3waz1025"))} ${ssrInterpolate(lineProducts.value.length)}</span><span class="badge" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))} ${ssrInterpolate(lineRecipesAll.value.length)}</span></div></div><section class="aw-tile ctrl-card" data-v-366216bb><div class="ctrl-left" data-v-366216bb><button class="${ssrRenderClass([{ running: unref(dcw).controller.running }, "aw-pill"])}"${ssrRenderAttr("title", _ctx.$t("dcwDetail.k1snap154"))} data-v-366216bb><span class="${ssrRenderClass(unref(dcw).controller.running ? "i-tabler-player-pause" : "i-tabler-player-play")}" data-v-366216bb></span> ${ssrInterpolate(unref(dcw).controller.running ? _ctx.$t("dcwDetail.kplrsg153") : _ctx.$t("dcwDetail.knxgni9169"))}</button></div><div class="ctrl-right" data-v-366216bb><span class="ctrl-metrics mono" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))} ${ssrInterpolate(unref(dcw).controller.nodesOnline)}/${ssrInterpolate(unref(dcw).controller.nodesTotal)}</span><span class="sep" data-v-366216bb>·</span><span${ssrRenderAttr("title", _ctx.$t("dcwDetail.kd3ygmn001"))} data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k3wtib138"))} ${ssrInterpolate(unref(dcw).controller.writesTotal)}</span><span class="sep" data-v-366216bb>·</span><span class="${ssrRenderClass({ warn: unref(dcw).controller.writesFailed > 0 })}"${ssrRenderAttr("title", _ctx.$t("dcwDetail.kd3znl0002"))} data-v-366216bb>${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-366216bb><span class="i-tabler-template" data-v-366216bb></span> ${ssrInterpolate(_ctx.$t("dcwDetail.k1972dx9020"))}</button><button class="aw-pill add-btn" data-v-366216bb><span class="i-tabler-plus" data-v-366216bb></span> ${ssrInterpolate(_ctx.$t("dcwDetail.k1976uns021"))}</button></div></section>`);
294
- if (writeError.value || writeOk.value) _push(`<p class="${ssrRenderClass([writeError.value ? "bad" : "good", "banner"])}" data-v-366216bb>${ssrInterpolate(writeError.value || writeOk.value)}</p>`);
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>`);
295
346
  else _push(`<!---->`);
296
347
  if (unassignedNodes.value.length || unassignedProducts.value.length) {
297
- _push(`<section class="aw-tile adopt-card" data-v-366216bb><b class="adopt-title" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.kaebkky022"))}</b><div class="adopt-list" data-v-366216bb><!--[-->`);
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><!--[-->`);
298
349
  ssrRenderList(unassignedNodes.value, (n) => {
299
- _push(`<span class="adopt-chip" data-v-366216bb>${ssrInterpolate(n.name)} <button class="mini-btn" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.kyjp9fg023"))}</button></span>`);
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>`);
300
351
  });
301
352
  _push(`<!--]--><!--[-->`);
302
353
  ssrRenderList(unassignedProducts.value, (p) => {
303
- _push(`<span class="adopt-chip" data-v-366216bb>${ssrInterpolate(p.name)}(${ssrInterpolate(_ctx.$t("dcwDetail.k3km252140"))}<button class="mini-btn" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.kyjp9fg023"))}</button></span>`);
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>`);
304
355
  });
305
356
  _push(`<!--]--></div></section>`);
306
357
  } else _push(`<!---->`);
307
- _push(`<section class="aw-tile line-card" data-v-366216bb><div class="line-status" data-v-366216bb><span class="${ssrRenderClass([{ on: ls.value.active }, "line-dot"])}" data-v-366216bb></span><div class="line-info" data-v-366216bb><b data-v-366216bb>${ssrInterpolate(ls.value.active ? _ctx.$t("dcwDetail.k1pxrhx0154") : _ctx.$t("dcwDetail.k1b2hxmx170"))}</b>`);
308
- if (ls.value.active) _push(`<small class="mono dim" data-v-366216bb>${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>`);
309
- else _push(`<small class="dim" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k19pof14024"))}</small>`);
310
- _push(`</div></div><div class="line-ctl" data-v-366216bb><label class="ctl-sel" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k3waz1025"))}</span><select class="inp" data-v-366216bb><option value="" data-v-366216bb${ssrIncludeBooleanAttr(Array.isArray(lineProductId.value) ? ssrLooseContain(lineProductId.value, "") : ssrLooseEqual(lineProductId.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.kuisodh026"))}</option><!--[-->`);
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><!--[-->`);
311
362
  ssrRenderList(lineProducts.value, (p) => {
312
- _push(`<option${ssrRenderAttr("value", p.id)} data-v-366216bb${ssrIncludeBooleanAttr(Array.isArray(lineProductId.value) ? ssrLooseContain(lineProductId.value, p.id) : ssrLooseEqual(lineProductId.value, p.id)) ? " selected" : ""}>${ssrInterpolate(p.name)}</option>`);
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>`);
313
364
  });
314
- _push(`<!--]--></select></label><label class="ctl-sel" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))}</span><select class="inp"${ssrIncludeBooleanAttr(!lineProductId.value) ? " disabled" : ""} data-v-366216bb><option value="" data-v-366216bb${ssrIncludeBooleanAttr(Array.isArray(lineRecipeId.value) ? ssrLooseContain(lineRecipeId.value, "") : ssrLooseEqual(lineRecipeId.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.kutxzsz028"))}</option><!--[-->`);
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><!--[-->`);
315
366
  ssrRenderList(lineRecipes.value, (r) => {
316
- _push(`<option${ssrRenderAttr("value", r.id)}${ssrIncludeBooleanAttr(r.params.length === 0) ? " disabled" : ""} data-v-366216bb${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>`);
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>`);
317
368
  });
318
369
  _push(`<!--]--></select></label>`);
319
- if (!ls.value.active) _push(`<button class="pill-btn"${ssrIncludeBooleanAttr(lineBusy.value || !lineRecipeId.value) ? " disabled" : ""}${ssrRenderAttr("title", !lineRecipeId.value ? "开跑前必须先设定配方" : "下发配方参数并开始打标数据采集")} data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.kfb8vml029"))}</button>`);
320
- else _push(`<button class="pill-btn stop"${ssrIncludeBooleanAttr(lineBusy.value) ? " disabled" : ""} data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1xyhd2y030"))}</button>`);
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>`);
321
372
  _push(`</div>`);
322
- if (lineErr.value) _push(`<p class="banner bad" style="${ssrRenderStyle({ "margin-top": "10px" })}" data-v-366216bb>${ssrInterpolate(lineErr.value)}</p>`);
373
+ if (lineErr.value) _push(`<p class="banner bad" style="${ssrRenderStyle({ "margin-top": "10px" })}" data-v-7b43b781>${ssrInterpolate(lineErr.value)}</p>`);
323
374
  else _push(`<!---->`);
324
- if (lineMsg.value) _push(`<p class="banner good" style="${ssrRenderStyle({ "margin-top": "10px" })}" data-v-366216bb>${ssrInterpolate(lineMsg.value)}</p>`);
375
+ if (lineMsg.value) _push(`<p class="banner good" style="${ssrRenderStyle({ "margin-top": "10px" })}" data-v-7b43b781>${ssrInterpolate(lineMsg.value)}</p>`);
325
376
  else _push(`<!---->`);
326
377
  _push(`</section>`);
327
378
  if (tplOpen.value) {
328
- _push(`<div class="modal-mask" data-v-366216bb><div class="modal" data-v-366216bb><h3 class="m-title" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1x4vam0031"))} <small class="dim mono" data-v-366216bb>${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-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.ke1iyud032"))}</p><div class="tpl-chips" data-v-366216bb><!--[-->`);
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><!--[-->`);
329
380
  ssrRenderList(unref(dcw).templates, (t) => {
330
- _push(`<span class="tpl-chip"${ssrRenderAttr("title", `${t.code} · ${t.min}~${t.max} ${t.unit}${t.semantics ? ` · ${t.semantics}` : ""}`)} data-v-366216bb>${ssrInterpolate(t.name)} <small class="mono" data-v-366216bb>${ssrInterpolate(t.min)}~${ssrInterpolate(t.max)}${ssrInterpolate(t.unit)}</small><em class="${ssrRenderClass([{ builtin: t.builtin }, "tpl-tag"])}" data-v-366216bb>${ssrInterpolate(t.builtin ? _ctx.$t("dcwDetail.k3x23c141") : _ctx.$t("dcwDetail.k3t616a142"))}</em></span>`);
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>`);
331
382
  });
332
- _push(`<!--]--></div><p class="sec-label" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k169eb4s033"))}</p><div class="f-grid tpl-form" data-v-366216bb><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1f55q76034"))}<em data-v-366216bb>*</em></span><input${ssrRenderAttr("value", tplForm.name)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1tooi3o004"))} data-v-366216bb></label><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1bqk219035"))}</span><input${ssrRenderAttr("value", tplForm.ch)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k698qz0005"))} data-v-366216bb></label><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1ayxrqb036"))}</span><input${ssrRenderAttr("value", tplForm.code)} class="inp" placeholder="如 MOTOR · I" data-v-366216bb></label><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k3x4ef037"))}<em data-v-366216bb>*</em></span><input${ssrRenderAttr("value", tplForm.unit)} class="inp" placeholder="如 A" data-v-366216bb></label><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1l9jv5m038"))}<em data-v-366216bb>*</em></span><input${ssrRenderAttr("value", tplForm.min)} type="number" class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.kxz9174006"))} data-v-366216bb></label><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1l9jv4p039"))}<em data-v-366216bb>*</em></span><input${ssrRenderAttr("value", tplForm.max)} type="number" class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.kxz9167007"))} data-v-366216bb></label><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k3mxmcx040"))}</span><input${ssrRenderAttr("value", tplForm.decimals)} type="number" min="0" max="4" class="inp" data-v-366216bb></label><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k3xx56041"))}</span><select class="inp" data-v-366216bb><!--[-->`);
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><!--[-->`);
333
384
  ssrRenderList(tplIcons, (ic) => {
334
- _push(`<option${ssrRenderAttr("value", ic.key)} data-v-366216bb${ssrIncludeBooleanAttr(Array.isArray(tplForm.icon) ? ssrLooseContain(tplForm.icon, ic.key) : ssrLooseEqual(tplForm.icon, ic.key)) ? " selected" : ""}>${ssrInterpolate(ic.label)}</option>`);
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>`);
335
386
  });
336
- _push(`<!--]--></select></label></div><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.knjmyfr042"))}</span><textarea class="inp" rows="2"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1qdnfzc008"))} data-v-366216bb>${ssrInterpolate(tplForm.semantics)}</textarea></label>`);
337
- if (tplOk.value) _push(`<p class="banner good" style="${ssrRenderStyle({ "margin-top": "10px" })}" data-v-366216bb>${ssrInterpolate(tplOk.value)}</p>`);
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>`);
338
389
  else _push(`<!---->`);
339
- if (tplError.value) _push(`<p class="m-err" data-v-366216bb>${ssrInterpolate(tplError.value)}</p>`);
390
+ if (tplError.value) _push(`<p class="m-err" data-v-7b43b781>${ssrInterpolate(tplError.value)}</p>`);
340
391
  else _push(`<!---->`);
341
- _push(`<div class="m-actions" data-v-366216bb><button class="aw-pill outline" data-v-366216bb>${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-366216bb>${ssrInterpolate(tplSaving.value ? _ctx.$t("dcwDetail.k1bg4759156") : _ctx.$t("dcwDetail.k1bg9nga171"))}</button></div></div></div>`);
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>`);
342
393
  } else _push(`<!---->`);
343
394
  if (addOpen.value) {
344
- _push(`<div class="modal-mask" data-v-366216bb><div class="modal" data-v-366216bb><h3 class="m-title" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1976uns021"))}</h3><div class="seg-row" data-v-366216bb><button class="${ssrRenderClass([{ on: addScenario.value === "mock" }, "seg"])}" data-v-366216bb> Mock 模拟 PLC </button><button class="${ssrRenderClass([{ on: addScenario.value === "real" }, "seg"])}" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.kyj8fen044"))}</button></div><div class="f-grid" data-v-366216bb><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1ejzwqp045"))}</span><select class="inp" data-v-366216bb><!--[-->`);
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><!--[-->`);
345
396
  ssrRenderList(unref(dcw).templates, (t) => {
346
- _push(`<option${ssrRenderAttr("value", t.key)} data-v-366216bb${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>`);
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>`);
347
398
  });
348
- _push(`<!--]--></select></label><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1ce2k1y046"))}</span><input${ssrRenderAttr("value", addName.value)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.kgpxzy3009"))} data-v-366216bb></label><label class="f" data-v-366216bb><span data-v-366216bb>${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-366216bb></label><label class="f" data-v-366216bb><span data-v-366216bb>${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-366216bb></label></div><div class="f-grid cal-form" data-v-366216bb><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.kiune1f048"))}</span><select class="inp" data-v-366216bb><option value="none" data-v-366216bb${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-366216bb${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-366216bb><span data-v-366216bb>scale / offset</span><div style="${ssrRenderStyle({
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({
349
400
  "display": "flex",
350
401
  "gap": "6px"
351
- })}" data-v-366216bb><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-366216bb><input${ssrRenderAttr("value", addTransform.offset)} type="number" step="0.1" class="inp"${ssrIncludeBooleanAttr(addTransform.kind !== "linear") ? " disabled" : ""} title="decoder 截距" data-v-366216bb></div></label></div>`);
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>`);
352
403
  if (addScenario.value === "real") {
353
- _push(`<!--[--><div class="f-grid" data-v-366216bb><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1kt87rx050"))}</span><select class="inp" data-v-366216bb><!--[-->`);
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><!--[-->`);
354
405
  ssrRenderList(unref(DCW_DRIVERS).filter((x) => x.status !== "builtin"), (d) => {
355
- _push(`<option${ssrRenderAttr("value", d.kind)} data-v-366216bb${ssrIncludeBooleanAttr(Array.isArray(addDriver.value) ? ssrLooseContain(addDriver.value, d.kind) : ssrLooseEqual(addDriver.value, d.kind)) ? " selected" : ""}>${ssrInterpolate(d.label)}</option>`);
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>`);
356
407
  });
357
408
  _push(`<!--]--></select></label></div>`);
358
409
  if (addFields.value.length) {
359
- _push(`<div class="f-grid driver-form" data-v-366216bb><!--[-->`);
410
+ _push(`<div class="f-grid driver-form" data-v-7b43b781><!--[-->`);
360
411
  ssrRenderList(addFields.value, (f) => {
361
- _push(`<label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(f.label)}`);
412
+ _push(`<label class="f" data-v-7b43b781><span data-v-7b43b781>${ssrInterpolate(f.label)}`);
362
413
  if (f.required) _push(`<em style="${ssrRenderStyle({
363
414
  "color": "var(--tone-danger-dot)",
364
415
  "font-style": "normal"
365
- })}" data-v-366216bb>*</em>`);
416
+ })}" data-v-7b43b781>*</em>`);
366
417
  else _push(`<!---->`);
367
418
  _push(`</span>`);
368
419
  if (f.type === "select") {
369
- _push(`<select class="inp" data-v-366216bb><!--[-->`);
420
+ _push(`<select class="inp" data-v-7b43b781><!--[-->`);
370
421
  ssrRenderList(f.options, (o) => {
371
- _push(`<option${ssrRenderAttr("value", o.value)} data-v-366216bb${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>`);
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>`);
372
423
  });
373
424
  _push(`<!--]--></select>`);
374
- } 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-366216bb>`);
375
- if (f.hint) _push(`<small class="hint" data-v-366216bb>${ssrInterpolate(f.hint)}</small>`);
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>`);
376
427
  else _push(`<!---->`);
377
428
  _push(`</label>`);
378
429
  });
379
430
  _push(`<!--]--></div>`);
380
431
  } else _push(`<!---->`);
381
- _push(`<div class="test-row" data-v-366216bb><button class="pill-btn outline"${ssrIncludeBooleanAttr(addTesting.value) ? " disabled" : ""} data-v-366216bb>${ssrInterpolate(addTesting.value ? _ctx.$t("dcwDetail.k1fsh720158") : _ctx.$t("dcwDetail.k1fstglk172"))}</button>`);
382
- if (addTest.value) _push(`<span class="${ssrRenderClass([addTest.value.ok ? "good" : "bad", "test-result"])}" data-v-366216bb>${ssrInterpolate(addTest.value.ok ? "✓" : "✗")} ${ssrInterpolate(addTest.value.message)}</span>`);
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>`);
383
434
  else _push(`<!---->`);
384
435
  _push(`</div><!--]-->`);
385
436
  } else _push(`<!---->`);
386
- _push(`<label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1hgizn7051"))}</span><textarea class="inp" rows="2"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k12bnyt9011"))} data-v-366216bb>${ssrInterpolate(addSemantics.value)}</textarea></label>`);
387
- if (addError.value) _push(`<p class="m-err" data-v-366216bb>${ssrInterpolate(addError.value)}</p>`);
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>`);
388
439
  else _push(`<!---->`);
389
- _push(`<div class="m-actions" data-v-366216bb><button class="aw-pill outline" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k3xdnn052"))}</button><button class="aw-pill"${ssrIncludeBooleanAttr(addSaving.value) ? " disabled" : ""} data-v-366216bb>${ssrInterpolate(addSaving.value ? _ctx.$t("dcwDetail.k1bg4759156") : _ctx.$t("dcwDetail.k1bge46t173"))}</button></div></div></div>`);
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>`);
390
441
  } else _push(`<!---->`);
391
442
  _push(ssrRenderComponent(_component_a_spin, { spinning: !unref(dcw).loaded && !unref(dcw).error }, {
392
443
  default: withCtx((_, _push, _parent, _scopeId) => {
393
444
  if (_push) {
394
- _push(`<section class="aw-tile table-card" data-v-366216bb${_scopeId}><table class="nodes-table" data-v-366216bb${_scopeId}><thead data-v-366216bb${_scopeId}><tr data-v-366216bb${_scopeId}><th data-v-366216bb${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1e2dtkt053"))}</th><th data-v-366216bb${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k403cy054"))}</th><th data-v-366216bb${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k42w8s055"))}</th><th data-v-366216bb${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1deqh0d056"))}</th><th data-v-366216bb${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k9r7d4e018"))}</th><th data-v-366216bb${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1k79ec9057"))}</th><th data-v-366216bb${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1dexou6058"))}</th><th data-v-366216bb${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1b1nnaa059"))}</th><th data-v-366216bb${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1i8rtqt060"))}</th><th class="right" data-v-366216bb${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k40aa6061"))}</th></tr></thead><tbody data-v-366216bb${_scopeId}><!--[-->`);
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}><!--[-->`);
395
446
  ssrRenderList(lineNodes.value, (n) => {
396
- _push(`<tr class="${ssrRenderClass({ "node-paused": !n.enabled })}" data-v-366216bb${_scopeId}><td data-v-366216bb${_scopeId}><span class="mono dim" data-v-366216bb${_scopeId}>${ssrInterpolate(n.id.slice(0, 8))}</span><b data-v-366216bb${_scopeId}>${ssrInterpolate(n.name)}</b><small class="mono ch" data-v-366216bb${_scopeId}>${ssrInterpolate(dcwTemplateRefCh(n.templateRef))}</small></td><td data-v-366216bb${_scopeId}><button class="${ssrRenderClass([{ on: n.enabled }, "ctrl-toggle"])}"${ssrIncludeBooleanAttr(togglingId.value === n.id) ? " disabled" : ""}${ssrRenderAttr("title", n.enabled ? "暂停该节点控制:下发将被拒绝" : "开启该节点控制:恢复可下发")} data-v-366216bb${_scopeId}><span class="ct-dot" data-v-366216bb${_scopeId}></span> ${ssrInterpolate(n.enabled ? _ctx.$t("dcwDetail.k3o3ib3159") : _ctx.$t("dcwDetail.k3n93ed062"))}</button></td><td data-v-366216bb${_scopeId}>`);
397
- if (!n.enabled) _push(`<span class="st-pill paused" data-v-366216bb${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k3n93ed062"))}</span>`);
398
- else _push(`<span class="${ssrRenderClass([n.state, "st-pill"])}" data-v-366216bb${_scopeId}>${ssrInterpolate(stateLabel[n.state] ?? n.state)}</span>`);
399
- _push(`</td><td class="mono val" data-v-366216bb${_scopeId}>${ssrInterpolate(n.value != null ? n.value.toFixed(n.decimals) : "--")} <small data-v-366216bb${_scopeId}>${ssrInterpolate(n.unit)}</small>`);
400
- if (n.lastAckAt) _push(`<small class="dim" data-v-366216bb${_scopeId}> · ${ssrInterpolate(n.lastAckAt.slice(11, 19))}</small>`);
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>`);
401
452
  else _push(`<!---->`);
402
- _push(`</td><td class="mono val" data-v-366216bb${_scopeId}><span${ssrRenderAttr("title", n.lastReadError ?? _ctx.$t("dcwDetail.k9r7d4e019"))} class="${ssrRenderClass({ "read-stale": n.lastReadError })}" data-v-366216bb${_scopeId}>${ssrInterpolate(n.readValue != null ? n.readValue.toFixed(n.decimals) : "--")}</span><small data-v-366216bb${_scopeId}>${ssrInterpolate(n.unit)}</small>`);
403
- if (n.lastReadAt) _push(`<small class="dim" data-v-366216bb${_scopeId}> · ${ssrInterpolate(n.lastReadAt.slice(11, 19))}</small>`);
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>`);
404
455
  else _push(`<!---->`);
405
- _push(`<button class="mini-btn read-btn"${ssrIncludeBooleanAttr(readingId.value === n.id) ? " disabled" : ""}${ssrRenderAttr("title", _ctx.$t("dcwDetail.k9r7d4e020"))} data-v-366216bb${_scopeId}>${ssrInterpolate(readingId.value === n.id ? "···" : _ctx.$t("dcwDetail.k9r7d4e021"))}</button></td><td data-v-366216bb${_scopeId}><div class="write-row" data-v-366216bb${_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-366216bb${_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-366216bb${_scopeId}>${ssrInterpolate(writingId.value === n.id ? _ctx.$t("dcwDetail.k3l3h80123") : _ctx.$t("dcwDetail.k3w6td174"))}</button></div></td><td class="mono dim" data-v-366216bb${_scopeId}>${ssrInterpolate(n.min)} ~ ${ssrInterpolate(n.max)} ${ssrInterpolate(n.unit)}</td><td class="mono" data-v-366216bb${_scopeId}>${ssrInterpolate(n.holdIntervalMs == null ? _ctx.$t("dcwDetail.k3zul4160") : `${n.holdIntervalMs}ms`)} <small class="dim"${ssrRenderAttr("title", _ctx.$t("dcwDetail.k9r7d4e016"))} data-v-366216bb${_scopeId}>· ${ssrInterpolate(n.readIntervalMs === 0 ? _ctx.$t("dcwDetail.k9r7d4e022") : n.readIntervalMs == null ? _ctx.$t("dcwDetail.k9r7d4e023") : `${n.readIntervalMs}ms`)}</small></td><td data-v-366216bb${_scopeId}>${ssrInterpolate(deviceName(n.deviceBindingId))}</td><td class="right" data-v-366216bb${_scopeId}><button class="mini-btn danger" data-v-366216bb${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k3xakp063"))}</button></td></tr>`);
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>`);
406
457
  });
407
458
  _push(`<!--]-->`);
408
- if (unref(dcw).loaded && lineNodes.value.length === 0) _push(`<tr data-v-366216bb${_scopeId}><td colspan="9" data-v-366216bb${_scopeId}><div class="pane-empty" style="${ssrRenderStyle({ "min-height": "120px" })}" data-v-366216bb${_scopeId}><p class="pe-sub" data-v-366216bb${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1wtecyw064"))}</p></div></td></tr>`);
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>`);
409
460
  else _push(`<!---->`);
410
461
  _push(`</tbody></table></section>`);
411
462
  } else return [createVNode("section", { class: "aw-tile table-card" }, [createVNode("table", { class: "nodes-table" }, [createVNode("thead", null, [createVNode("tr", null, [
@@ -526,140 +577,184 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
526
577
  }),
527
578
  _: 1
528
579
  }, _parent));
529
- _push(`<section class="aw-tile recipe-card" data-v-366216bb><div class="recipe-hd" data-v-366216bb><h3 data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1j8w3hd065"))}</h3><span class="panel-tag mono" data-v-366216bb>${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-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1akm6dc066"))}</button><button class="mini-btn" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1aka0ki067"))}</button></div><p class="recipe-sub" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k6bl2q8068"))}</p>`);
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>`);
530
581
  if (lineProducts.value.length) {
531
- _push(`<div class="product-row" data-v-366216bb><button class="${ssrRenderClass([{ on: filterProductId.value === "" }, "prod-chip"])}" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k3x4t1069"))}</button><!--[-->`);
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><!--[-->`);
532
583
  ssrRenderList(lineProducts.value, (p) => {
533
- _push(`<button class="${ssrRenderClass([{ on: filterProductId.value === p.id }, "prod-chip"])}"${ssrRenderAttr("title", p.description)} data-v-366216bb>${ssrInterpolate(p.name)} <span class="prod-del"${ssrRenderAttr("title", _ctx.$t("dcwDetail.k1bpfjgx012"))} data-v-366216bb>×</span></button>`);
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>`);
534
585
  });
535
586
  _push(`<!--]--></div>`);
536
587
  } else _push(`<p class="dim" style="${ssrRenderStyle({
537
588
  "margin": "6px 0 12px",
538
589
  "font-size": "12px"
539
- })}" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.knov3zg070"))}</p>`);
540
- _push(`<div class="recipe-grid" data-v-366216bb><!--[-->`);
590
+ })}" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.knov3zg070"))}</p>`);
591
+ _push(`<div class="recipe-grid" data-v-7b43b781><!--[-->`);
541
592
  ssrRenderList(visibleRecipes.value, (r) => {
542
- _push(`<div class="recipe-item" data-v-366216bb><div class="recipe-name" data-v-366216bb><b data-v-366216bb>${ssrInterpolate(r.name)}</b><small class="dim" data-v-366216bb>${ssrInterpolate(productName(r.productId))}</small><small class="mono dim" data-v-366216bb>${ssrInterpolate(r.id)}</small></div>`);
543
- if (r.description) _push(`<p class="dim desc" data-v-366216bb>${ssrInterpolate(r.description)}</p>`);
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>`);
544
595
  else _push(`<!---->`);
545
- _push(`<div class="recipe-params mono" data-v-366216bb><!--[-->`);
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>`);
598
+ else _push(`<!---->`);
599
+ _push(`<div class="recipe-params mono" data-v-7b43b781><!--[-->`);
546
600
  ssrRenderList(r.params, (p, i) => {
547
- _push(`<span class="param-chip" data-v-366216bb>${ssrInterpolate(unref(dcw).templates.find((t) => t.key === (p.templateRef ?? "").replace("dcw-", ""))?.ch ?? p.templateRef)} = ${ssrInterpolate(p.value)}</span>`);
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>`);
603
+ else _push(`<!---->`);
604
+ _push(`</span>`);
548
605
  });
549
606
  _push(`<!--]--><!--[-->`);
550
607
  ssrRenderList(r.daqWindows, (w, i) => {
551
- _push(`<span class="param-chip daqwin"${ssrRenderAttr("title", _ctx.$t("dcwDetail.k1l11api013"))} data-v-366216bb> ◎ ${ssrInterpolate(daqNodeCh(w.nodeId))} ∈ [${ssrInterpolate(w.min ?? "-∞")}, ${ssrInterpolate(w.max ?? "+∞")}] </span>`);
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>`);
610
+ else _push(`<!---->`);
611
+ _push(`</span>`);
552
612
  });
553
- _push(`<!--]--></div><div class="recipe-actions" data-v-366216bb><button class="pill-btn" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1497qvr071"))}</button><button class="mini-btn" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k45eb0072"))}</button><button class="mini-btn danger" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k3xakp063"))}</button></div></div>`);
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>`);
615
+ else _push(`<!---->`);
616
+ _push(`</button><button class="mini-btn danger" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.k3xakp063"))}</button></div></div>`);
554
617
  });
555
618
  _push(`<!--]-->`);
556
- if (visibleRecipes.value.length === 0) _push(`<div class="pane-empty" style="${ssrRenderStyle({ "grid-column": "1 / -1" })}" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.keko1xy073"))}</div>`);
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>`);
557
620
  else _push(`<!---->`);
558
621
  _push(`</div>`);
559
- if (applyResult.value) _push(`<div class="banner good" data-v-366216bb>${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-366216bb>${ssrInterpolate(runDataLoading.value ? _ctx.$t("dcwDetail.k1br0ij9161") : _ctx.$t("dcwDetail.kxwei5175"))}</button></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>`);
560
623
  else _push(`<!---->`);
561
624
  if (lineRuns.value.length) {
562
- _push(`<div class="runs" data-v-366216bb><p class="sec-label" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1rjer8d074"))}</p><table class="nodes-table" data-v-366216bb><thead data-v-366216bb><tr data-v-366216bb><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k400lb075"))}</th><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))}</th><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k4497j076"))}</th><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1bqhtmu077"))}</th><th class="right" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k40aa6061"))}</th></tr></thead><tbody data-v-366216bb><!--[-->`);
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><!--[-->`);
563
626
  ssrRenderList([...lineRuns.value].reverse().slice(0, 8), (run) => {
564
- _push(`<tr data-v-366216bb><td class="mono" data-v-366216bb>${ssrInterpolate(run.id)}</td><td data-v-366216bb>${ssrInterpolate(run.recipeName)}</td><td class="mono dim" data-v-366216bb>${ssrInterpolate(run.startedAt.slice(5, 19))} ~ ${ssrInterpolate(run.endedAt ? run.endedAt.slice(5, 19) : _ctx.$t("dcwDetail.k3vpfg9162"))}</td><td data-v-366216bb><span class="${ssrRenderClass([run.results.every((r) => r.ok) ? "ok" : "warn", "st-pill"])}" data-v-366216bb>${ssrInterpolate(run.results.filter((r) => r.ok).length)}/${ssrInterpolate(run.results.length)}</span></td><td class="right" data-v-366216bb><button class="mini-btn"${ssrIncludeBooleanAttr(runDataLoading.value) ? " disabled" : ""} data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1dzwrdp078"))}</button>`);
565
- if (!run.endedAt) _push(`<button class="mini-btn" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1blr7y7079"))}</button>`);
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>`);
566
629
  else _push(`<!---->`);
567
630
  _push(`</td></tr>`);
568
631
  });
569
632
  _push(`<!--]--></tbody></table></div>`);
570
633
  } else _push(`<!---->`);
571
634
  if (runDataView.value) {
572
- _push(`<div class="modal-mask" data-v-366216bb><div class="modal" data-v-366216bb><h3 class="m-title" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k11lq94k145"))} ${ssrInterpolate(runDataView.value.data.run.recipeName)}(${ssrInterpolate(runDataView.value.runId)}) </h3><p class="sec-label" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1me41w8080"))}</p><table class="nodes-table" data-v-366216bb><thead data-v-366216bb><tr data-v-366216bb><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k48hde081"))}</th><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</th><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k40t11083"))}</th><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k3xuaw084"))}</th><th data-v-366216bb>min ~ max</th><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k4118o085"))}</th></tr></thead><tbody data-v-366216bb><!--[-->`);
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><!--[-->`);
573
636
  ssrRenderList(runDataView.value.data.daq, (d) => {
574
- _push(`<tr data-v-366216bb><td data-v-366216bb>${ssrInterpolate(d.ch)}<small class="mono dim" data-v-366216bb>${ssrInterpolate(d.unit)}</small></td><td data-v-366216bb>${ssrInterpolate(d.nodeName)}</td><td class="mono" data-v-366216bb>${ssrInterpolate(d.latest)}</td><td class="mono" data-v-366216bb>${ssrInterpolate(d.avg)}</td><td class="mono dim" data-v-366216bb>${ssrInterpolate(d.min)} ~ ${ssrInterpolate(d.max)}</td><td class="mono dim" data-v-366216bb>${ssrInterpolate(d.cnt)}</td></tr>`);
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>`);
575
638
  });
576
639
  _push(`<!--]-->`);
577
- if (runDataView.value.data.daq.length === 0) _push(`<tr data-v-366216bb><td colspan="6" class="dim" style="${ssrRenderStyle({
640
+ if (runDataView.value.data.daq.length === 0) _push(`<tr data-v-7b43b781><td colspan="6" class="dim" style="${ssrRenderStyle({
578
641
  "text-align": "center",
579
642
  "padding": "12px"
580
- })}" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.kd457ry086"))}</td></tr>`);
643
+ })}" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.kd457ry086"))}</td></tr>`);
581
644
  else _push(`<!---->`);
582
- _push(`</tbody></table><p class="sec-label" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k12b7cxs087"))}</p><table class="nodes-table" data-v-366216bb><thead data-v-366216bb><tr data-v-366216bb><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k3xbjr088"))}</th><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</th><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k3ncbsh089"))}</th><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k3lh3mz090"))}</th><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k454pg091"))}</th><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k40ieu092"))}</th></tr></thead><tbody data-v-366216bb><!--[-->`);
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><!--[-->`);
583
646
  ssrRenderList(runDataView.value.data.writes, (w, i) => {
584
- _push(`<tr data-v-366216bb><td data-v-366216bb>${ssrInterpolate(w.param)}</td><td data-v-366216bb>${ssrInterpolate(w.nodeName)}</td><td class="mono" data-v-366216bb>${ssrInterpolate(w.eng)}</td><td class="mono dim" data-v-366216bb>${ssrInterpolate(w.raw)}</td><td data-v-366216bb><span class="${ssrRenderClass([w.ok ? "ok" : "alarm", "st-pill"])}" data-v-366216bb>${ssrInterpolate(w.ok ? "ACK" : _ctx.$t("dcwDetail.k3yit7139"))}</span></td><td class="mono dim" data-v-366216bb>${ssrInterpolate(w.at.slice(5, 19))}</td></tr>`);
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>`);
585
648
  });
586
649
  _push(`<!--]-->`);
587
- if (runDataView.value.data.writes.length === 0) _push(`<tr data-v-366216bb><td colspan="6" class="dim" style="${ssrRenderStyle({
650
+ if (runDataView.value.data.writes.length === 0) _push(`<tr data-v-7b43b781><td colspan="6" class="dim" style="${ssrRenderStyle({
588
651
  "text-align": "center",
589
652
  "padding": "12px"
590
- })}" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.knzcp8i093"))}</td></tr>`);
653
+ })}" data-v-7b43b781>${ssrInterpolate(_ctx.$t("dcwDetail.knzcp8i093"))}</td></tr>`);
591
654
  else _push(`<!---->`);
592
- _push(`</tbody></table><div class="m-actions" data-v-366216bb><button class="aw-pill outline" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k3x62t043"))}</button></div></div></div>`);
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>`);
593
656
  } else _push(`<!---->`);
594
657
  _push(`</section>`);
595
658
  if (recipeOpen.value) {
596
- _push(`<div class="modal-mask" data-v-366216bb><div class="modal" data-v-366216bb><h3 class="m-title" data-v-366216bb>${ssrInterpolate(recipeEditing.value ? _ctx.$t("dcwDetail.k1iiwk0i163") : _ctx.$t("dcwDetail.k1efq0r9176"))}</h3><div class="f-grid" data-v-366216bb><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1dw4fzf094"))}<em data-v-366216bb>*</em></span><select class="inp" data-v-366216bb><!--[-->`);
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><!--[-->`);
597
660
  ssrRenderList(lineProducts.value, (p) => {
598
- _push(`<option${ssrRenderAttr("value", p.id)} data-v-366216bb${ssrIncludeBooleanAttr(Array.isArray(recipeForm.productId) ? ssrLooseContain(recipeForm.productId, p.id) : ssrLooseEqual(recipeForm.productId, p.id)) ? " selected" : ""}>${ssrInterpolate(p.name)}</option>`);
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>`);
599
662
  });
600
- _push(`<!--]--></select></label><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1l3f8so095"))}<em data-v-366216bb>*</em></span><input${ssrRenderAttr("value", recipeForm.name)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k12c11vm014"))} data-v-366216bb></label><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k40gkk096"))}</span><input${ssrRenderAttr("value", recipeForm.description)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1hxx8hy015"))} data-v-366216bb></label></div><p class="sec-label" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.ka1kfgh097"))}</p><!--[-->`);
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><!--[-->`);
601
664
  ssrRenderList(recipeForm.params, (p, i) => {
602
- _push(`<div class="param-row" data-v-366216bb><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1e2dtkt053"))}</span><select class="inp" data-v-366216bb><!--[-->`);
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><!--[-->`);
603
666
  ssrRenderList(lineNodes.value, (n) => {
604
- _push(`<option${ssrRenderAttr("value", n.id)} data-v-366216bb${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>`);
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>`);
605
668
  });
606
- _push(`<!--]--></select></label><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k3renp2098"))}<em data-v-366216bb>*</em></span><input${ssrRenderAttr("value", p.value)} type="number" class="inp"${ssrRenderAttr("step", .1)} data-v-366216bb></label><label class="f" data-v-366216bb><span data-v-366216bb>${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-366216bb></label><label class="f" data-v-366216bb><span data-v-366216bb>${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-366216bb></label><button class="mini-btn danger param-del" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k44idg099"))}</button></div>`);
669
+ _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
+ 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>`);
607
673
  });
608
- _push(`<!--]--><button class="mini-btn" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1broh7h100"))}</button><p class="sec-label" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1h5gues101"))}</p><!--[-->`);
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><!--[-->`);
609
675
  ssrRenderList(recipeForm.daqWindows, (w, i) => {
610
- _push(`<div class="param-row" data-v-366216bb><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1empnnb102"))}</span><select class="inp" data-v-366216bb><!--[-->`);
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><!--[-->`);
611
677
  ssrRenderList(lineDaqNodes.value, (n) => {
612
- _push(`<option${ssrRenderAttr("value", n.id)} data-v-366216bb${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>`);
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>`);
613
679
  });
614
- _push(`<!--]--></select></label><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.kqm08ap103"))}</span><input${ssrRenderAttr("value", w.min)} type="number" class="inp"${ssrRenderAttr("step", .1)} data-v-366216bb></label><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.kpypf8g104"))}</span><input${ssrRenderAttr("value", w.max)} type="number" class="inp"${ssrRenderAttr("step", .1)} data-v-366216bb></label><button class="mini-btn danger param-del" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k44idg099"))}</button></div>`);
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>`);
615
681
  });
616
- _push(`<!--]--><button class="mini-btn"${ssrIncludeBooleanAttr(lineDaqNodes.value.length === 0) ? " disabled" : ""}${ssrRenderAttr("title", lineDaqNodes.value.length === 0 ? "本产线暂无数采节点" : "")} data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.kv1de1p105"))}</button>`);
617
- if (recipeError.value) _push(`<p class="m-err" data-v-366216bb>${ssrInterpolate(recipeError.value)}</p>`);
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>`);
684
+ else _push(`<!---->`);
685
+ if (recipeError.value) _push(`<p class="m-err" data-v-7b43b781>${ssrInterpolate(recipeError.value)}</p>`);
686
+ 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
+ } else _push(`<!---->`);
689
+ 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
+ if (verRecipe.value) _push(`<span class="dim" style="${ssrRenderStyle({
692
+ "margin-left": "8px",
693
+ "font-size": "12px"
694
+ })}" data-v-7b43b781>${ssrInterpolate(verRecipe.value.name)} · v${ssrInterpolate(verRecipe.value.version)}</span>`);
618
695
  else _push(`<!---->`);
619
- _push(`<div class="m-actions" data-v-366216bb><button class="aw-pill outline" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k3xdnn052"))}</button><button class="pill-btn"${ssrIncludeBooleanAttr(recipeSaving.value) ? " disabled" : ""} data-v-366216bb>${ssrInterpolate(recipeSaving.value ? _ctx.$t("dcwDetail.k1b38d59164") : _ctx.$t("dcwDetail.k1b3kwg0177"))}</button></div></div></div>`);
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>`);
698
+ 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>`);
701
+ else {
702
+ _push(`<!--[-->`);
703
+ 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>`);
706
+ else _push(`<!---->`);
707
+ _push(`</div>`);
708
+ if (row.description) _push(`<p class="ver-desc" data-v-7b43b781>${ssrInterpolate(row.description)}</p>`);
709
+ else _push(`<!---->`);
710
+ _push(`<p class="ver-diff mono" data-v-7b43b781>${ssrInterpolate(verDiff(row, i))}</p></div>`);
711
+ });
712
+ _push(`<!--]-->`);
713
+ }
714
+ _push(`</div></div>`);
620
715
  } else _push(`<!---->`);
621
- _push(`<section class="aw-tile query-card" data-v-366216bb><p class="sec-label" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1us3jse106"))}</p><div class="q-grid" data-v-366216bb><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k3waz1025"))}</span><select class="inp" data-v-366216bb><option value="" data-v-366216bb${ssrIncludeBooleanAttr(Array.isArray(query.productId) ? ssrLooseContain(query.productId, "") : ssrLooseEqual(query.productId, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkl1jx107"))}</option><!--[-->`);
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><!--[-->`);
622
717
  ssrRenderList(lineProducts.value, (p) => {
623
- _push(`<option${ssrRenderAttr("value", p.id)} data-v-366216bb${ssrIncludeBooleanAttr(Array.isArray(query.productId) ? ssrLooseContain(query.productId, p.id) : ssrLooseEqual(query.productId, p.id)) ? " selected" : ""}>${ssrInterpolate(p.name)}</option>`);
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>`);
624
719
  });
625
- _push(`<!--]--></select></label><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))}</span><select class="inp"${ssrIncludeBooleanAttr(!query.productId) ? " disabled" : ""} data-v-366216bb><option value="" data-v-366216bb${ssrIncludeBooleanAttr(Array.isArray(query.recipeId) ? ssrLooseContain(query.recipeId, "") : ssrLooseEqual(query.recipeId, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkx7cr108"))}</option><!--[-->`);
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><!--[-->`);
626
721
  ssrRenderList(visibleRecipes.value, (r) => {
627
- _push(`<option${ssrRenderAttr("value", r.id)} data-v-366216bb${ssrIncludeBooleanAttr(Array.isArray(query.recipeId) ? ssrLooseContain(query.recipeId, r.id) : ssrLooseEqual(query.recipeId, r.id)) ? " selected" : ""}>${ssrInterpolate(r.name)}</option>`);
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>`);
628
723
  });
629
- _push(`<!--]--></select></label><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1demcae109"))}</span><select class="inp" data-v-366216bb><option value="" data-v-366216bb${ssrIncludeBooleanAttr(Array.isArray(query.paramKey) ? ssrLooseContain(query.paramKey, "") : ssrLooseEqual(query.paramKey, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkx7ya110"))}</option><!--[-->`);
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><!--[-->`);
630
725
  ssrRenderList(daqParamKeys.value, (k) => {
631
- _push(`<option${ssrRenderAttr("value", k)} data-v-366216bb${ssrIncludeBooleanAttr(Array.isArray(query.paramKey) ? ssrLooseContain(query.paramKey, k) : ssrLooseEqual(query.paramKey, k)) ? " selected" : ""}>${ssrInterpolate(k)}</option>`);
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>`);
632
727
  });
633
- _push(`<!--]--></select></label><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</span><select class="inp" data-v-366216bb><option value="" data-v-366216bb${ssrIncludeBooleanAttr(Array.isArray(query.nodeId) ? ssrLooseContain(query.nodeId, "") : ssrLooseEqual(query.nodeId, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkul3k111"))}</option><!--[-->`);
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><!--[-->`);
634
729
  ssrRenderList(lineDaqNodes.value, (n) => {
635
- _push(`<option${ssrRenderAttr("value", n.id)} data-v-366216bb${ssrIncludeBooleanAttr(Array.isArray(query.nodeId) ? ssrLooseContain(query.nodeId, n.id) : ssrLooseEqual(query.nodeId, n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}</option>`);
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>`);
636
731
  });
637
- _push(`<!--]--></select></label><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.kx2ojn0112"))}</span><input${ssrRenderAttr("value", query.lastMin)} type="number" min="1" max="10080" class="inp" data-v-366216bb></label><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.kjvnvn4113"))}</span><input${ssrRenderAttr("value", query.bucketMs)} type="number" min="1000" step="500" class="inp" data-v-366216bb></label><div class="f q-actions" data-v-366216bb><button class="pill-btn"${ssrIncludeBooleanAttr(queryBusy.value) ? " disabled" : ""} data-v-366216bb>${ssrInterpolate(queryBusy.value ? _ctx.$t("dcwDetail.k1eyx09r165") : _ctx.$t("dcwDetail.k416ek178"))}</button></div></div>`);
638
- if (queryError.value) _push(`<p class="banner bad" style="${ssrRenderStyle({ "margin-top": "8px" })}" data-v-366216bb>${ssrInterpolate(queryError.value)}</p>`);
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>`);
639
734
  else _push(`<!---->`);
640
735
  if (queryResult.value) {
641
- _push(`<div class="q-result" data-v-366216bb><table class="nodes-table" data-v-366216bb><thead data-v-366216bb><tr data-v-366216bb><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k48hde081"))}</th><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</th><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k42kcu114"))}</th><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k49ujb115"))}</th><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k40pvw116"))}</th><th data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k3xho3117"))}</th></tr></thead><tbody data-v-366216bb><!--[-->`);
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><!--[-->`);
642
737
  ssrRenderList(queryResult.value.channels, (c) => {
643
- _push(`<tr data-v-366216bb><td data-v-366216bb>${ssrInterpolate(c.ch)}<small class="mono dim" data-v-366216bb>${ssrInterpolate(c.unit)}</small></td><td data-v-366216bb>${ssrInterpolate(c.nodeName)}</td><td class="mono" data-v-366216bb>${ssrInterpolate(c.points.length)}</td><td class="mono" data-v-366216bb>${ssrInterpolate(fmtPoint(c.points[0]))}</td><td class="mono" data-v-366216bb>${ssrInterpolate(fmtPoint(c.points[c.points.length - 1]))}</td><td class="mono dim" data-v-366216bb>${ssrInterpolate(new Date(c.points[0]?.at ?? 0).toLocaleTimeString())} ~ ${ssrInterpolate(new Date(c.points[c.points.length - 1]?.at ?? 0).toLocaleTimeString())}</td></tr>`);
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>`);
644
739
  });
645
740
  _push(`<!--]--></tbody></table></div>`);
646
741
  } else _push(`<!---->`);
647
742
  _push(`</section>`);
648
743
  if (lineHistory.value.length) {
649
- _push(`<section class="aw-tile table-card" data-v-366216bb><p class="sec-label" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.kw7ym9b148"))} ${ssrInterpolate(lineHistory.value.length)} ${ssrInterpolate(_ctx.$t("dcwDetail.k40bfz150"))}</p><table class="nodes-table" data-v-366216bb><tbody data-v-366216bb><!--[-->`);
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><!--[-->`);
650
745
  ssrRenderList(lineHistory.value.slice(0, 12), (h) => {
651
- _push(`<tr data-v-366216bb><td class="mono dim" data-v-366216bb>${ssrInterpolate(h.at.slice(5, 19))}</td><td data-v-366216bb>${ssrInterpolate(h.param)}</td><td data-v-366216bb>${ssrInterpolate(h.nodeName)}</td><td class="mono" data-v-366216bb>${ssrInterpolate(h.eng)}</td><td class="mono dim" data-v-366216bb> raw ${ssrInterpolate(h.raw ?? "-")}</td><td data-v-366216bb><span class="${ssrRenderClass([h.ok ? "ok" : "alarm", "st-pill"])}" data-v-366216bb>${ssrInterpolate(h.ok ? "ACK" : _ctx.$t("dcwDetail.k3yit7139"))}</span></td><td class="dim" data-v-366216bb>${ssrInterpolate(h.recipeRunId ? _ctx.$t("dcwDetail.k6vgks7181", { p0: h.recipeRunId }) : "手动")}</td></tr>`);
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>`);
652
747
  });
653
748
  _push(`<!--]--></tbody></table></section>`);
654
749
  } else _push(`<!---->`);
655
750
  if (productOpen.value) {
656
- _push(`<div class="modal-mask" data-v-366216bb><div class="modal" data-v-366216bb><h3 class="m-title" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1efduyf118"))}</h3><div class="f-grid" data-v-366216bb><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1avjrl6119"))}<em data-v-366216bb>*</em></span><input${ssrRenderAttr("value", productForm.name)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k12c11vm014"))} data-v-366216bb></label><label class="f" data-v-366216bb><span data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k40gkk096"))}</span><input${ssrRenderAttr("value", productForm.description)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1hxx8hy015"))} data-v-366216bb></label></div>`);
657
- if (productError.value) _push(`<p class="m-err" data-v-366216bb>${ssrInterpolate(productError.value)}</p>`);
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>`);
658
753
  else _push(`<!---->`);
659
- _push(`<div class="m-actions" data-v-366216bb><button class="aw-pill outline" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k3xdnn052"))}</button><button class="pill-btn"${ssrIncludeBooleanAttr(productSaving.value) ? " disabled" : ""} data-v-366216bb>${ssrInterpolate(productSaving.value ? _ctx.$t("dcwDetail.k1bg4759156") : _ctx.$t("dcwDetail.k1bg4kn6179"))}</button></div></div></div>`);
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>`);
660
755
  } else _push(`<!---->`);
661
756
  if (unref(dcw).error) {
662
- _push(`<p class="err" data-v-366216bb>${ssrInterpolate(unref(dcw).error)}(`);
757
+ _push(`<p class="err" data-v-7b43b781>${ssrInterpolate(unref(dcw).error)}(`);
663
758
  _push(ssrRenderComponent(_component_NuxtLink, { to: "/workshop" }, {
664
759
  default: withCtx((_, _push, _parent, _scopeId) => {
665
760
  if (_push) _push(`${ssrInterpolate(_ctx.$t("dcwDetail.k1bhhheq120"))}`);
@@ -669,19 +764,19 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
669
764
  }, _parent));
670
765
  _push(`) </p>`);
671
766
  } else _push(`<!---->`);
672
- _push(`<section class="aw-tile ledger-card" data-v-366216bb><div class="ledger-head" data-v-366216bb><b data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgt001"))}</b><select class="inp" data-v-366216bb><option value="" data-v-366216bb${ssrIncludeBooleanAttr(Array.isArray(ledgerNodeId.value) ? ssrLooseContain(ledgerNodeId.value, "") : ssrLooseEqual(ledgerNodeId.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgs001"))}</option><!--[-->`);
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><!--[-->`);
673
768
  ssrRenderList(lineNodes.value, (n) => {
674
- _push(`<option${ssrRenderAttr("value", n.id)} data-v-366216bb${ssrIncludeBooleanAttr(Array.isArray(ledgerNodeId.value) ? ssrLooseContain(ledgerNodeId.value, n.id) : ssrLooseEqual(ledgerNodeId.value, n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}</option>`);
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>`);
675
770
  });
676
771
  _push(`<!--]--></select></div>`);
677
772
  if (ledger.value) {
678
- _push(`<!--[--><div class="ledger-tri" data-v-366216bb><div class="tri-cell" data-v-366216bb><small data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgv001"))}</small><b class="mono" data-v-366216bb>${ssrInterpolate(ledger.value.current ?? "--")}</b></div><div class="tri-cell" data-v-366216bb><small data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgv002"))}</small><b class="mono" data-v-366216bb>${ssrInterpolate(ledger.value.recipeTarget ?? "--")}</b></div><div class="tri-cell" data-v-366216bb><small data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgv003"))}</small><b class="mono" data-v-366216bb>${ssrInterpolate(ledger.value.lastGood ?? "--")}</b></div><button class="mini-btn" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledga001"))}</button><button class="mini-btn danger" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledga002"))}</button></div><div class="ledger-cols" data-v-366216bb><div class="ledger-col" data-v-366216bb><small class="sec-t" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgh001"))}</small><ul class="ledger-list mono" data-v-366216bb><!--[-->`);
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><!--[-->`);
679
774
  ssrRenderList(ledger.value.journal, (a) => {
680
- _push(`<li data-v-366216bb>${ssrInterpolate(a.at.slice(5, 16).replace("T", " "))} [${ssrInterpolate(a.source)}] ${ssrInterpolate(a.prevValue ?? "?")} → ${ssrInterpolate(a.newValue)}</li>`);
775
+ _push(`<li data-v-7b43b781>${ssrInterpolate(a.at.slice(5, 16).replace("T", " "))} [${ssrInterpolate(a.source)}] ${ssrInterpolate(a.prevValue ?? "?")} → ${ssrInterpolate(a.newValue)}</li>`);
681
776
  });
682
- _push(`<!--]--></ul></div><div class="ledger-col" data-v-366216bb><small class="sec-t" data-v-366216bb>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgr001"))}</small><ul class="ledger-list" data-v-366216bb><!--[-->`);
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><!--[-->`);
683
778
  ssrRenderList(ledger.value.records, (r) => {
684
- _push(`<li class="ledger-rec" data-v-366216bb><span class="${ssrRenderClass([r.status, "rec-st"])}" data-v-366216bb>${ssrInterpolate(r.status)}</span><span class="mono" data-v-366216bb>${ssrInterpolate(r.params[0]?.from ?? "?")} → ${ssrInterpolate(r.params[0]?.to)}</span><small data-v-366216bb>${ssrInterpolate(r.judge ? `${r.judge.verdict}(${r.judge.by})` : r.status === "open" ? "open" : r.closedBy ?? "")}</small></li>`);
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>`);
685
780
  });
686
781
  _push(`<!--]--></ul></div></div><!--]-->`);
687
782
  } else _push(`<!---->`);
@@ -698,7 +793,7 @@ _id__vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
698
793
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/dcw/[id].vue");
699
794
  return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
700
795
  };
701
- var _id__default = /*#__PURE__*/ _plugin_vue_export_helper_default(_id__vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-366216bb"]]);
796
+ var _id__default = /*#__PURE__*/ _plugin_vue_export_helper_default(_id__vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-7b43b781"]]);
702
797
 
703
798
  export { _id__default as default };
704
- //# sourceMappingURL=_id_-D265Wh_k.mjs.map
799
+ //# sourceMappingURL=_id_-Bs-euJPu.mjs.map