agentworkshop 0.7.41 → 0.7.44

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 (265) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/B8uy9iRW.js +1 -0
  3. package/.output/public/_nuxt/BGTYYQH-.js +1 -0
  4. package/.output/public/_nuxt/BUmHEJ77.js +2 -0
  5. package/.output/public/_nuxt/BY7YrV_D.js +1 -0
  6. package/.output/public/_nuxt/Bqcgz95s.js +18 -0
  7. package/.output/public/_nuxt/C7UlqPeD.js +1 -0
  8. package/.output/public/_nuxt/CTmDn-YP.js +1 -0
  9. package/.output/public/_nuxt/Cs8pVeVG.js +1 -0
  10. package/.output/public/_nuxt/DKySmNPI.js +14 -0
  11. package/.output/public/_nuxt/Di0NY_ht.js +1 -0
  12. package/.output/public/_nuxt/Du9v6qGB.js +1 -0
  13. package/.output/public/_nuxt/{DGbd-UiG.js → EHlEMRii.js} +1 -1
  14. package/.output/public/_nuxt/Eke1fs-U.js +1 -0
  15. package/.output/public/_nuxt/{DeJykBFf.js → H0BcqZtT.js} +1 -1
  16. package/.output/public/_nuxt/{C4oW1HsE.js → HSYEkkce.js} +1 -1
  17. package/.output/public/_nuxt/{D_OTvQza.js → J9oU00D1.js} +1 -1
  18. package/.output/public/_nuxt/OmpTerminalPanel.BxR5-lvi.css +1 -0
  19. package/.output/public/_nuxt/SSyAPaHc.js +1 -0
  20. package/.output/public/_nuxt/TownView.li4EMQxK.css +1 -0
  21. package/.output/public/_nuxt/VdLk4jLE2.js +1 -0
  22. package/.output/public/_nuxt/_id_.BhsXoEuk.css +1 -0
  23. package/.output/public/_nuxt/_id_.DQyj-WKN.css +1 -0
  24. package/.output/public/_nuxt/{_wsId_.B4WiqkIS.css → _wsId_.CTx-BlfF.css} +1 -1
  25. package/.output/public/_nuxt/aShsv_rG.js +19 -0
  26. package/.output/public/_nuxt/{yF0aYMF1.js → aesgXKSr.js} +3 -3
  27. package/.output/public/_nuxt/agents.B21nUEUX.css +1 -0
  28. package/.output/public/_nuxt/aml.ekTjxFkf.css +1 -0
  29. package/.output/public/_nuxt/builds/latest.json +1 -1
  30. package/.output/public/_nuxt/builds/meta/b5506ef0-f48e-4f14-a6c0-d65e505d0b09.json +1 -0
  31. package/.output/public/_nuxt/channel-templates.DplM1pJ3.css +1 -0
  32. package/.output/public/_nuxt/daq.BdVmoIfe.css +1 -0
  33. package/.output/public/_nuxt/dcw.DCgyzpWV.css +1 -0
  34. package/.output/public/_nuxt/{default.J32SgqFY.css → default.Bh3L2HU8.css} +1 -1
  35. package/.output/public/_nuxt/lHAxdSsj.js +1 -0
  36. package/.output/public/_nuxt/pages.j9rzRocr.css +1 -0
  37. package/.output/public/_nuxt/plugins.DhiZbHU8.css +1 -0
  38. package/.output/public/_nuxt/settings.BRx9rIDg.css +1 -0
  39. package/.output/public/_nuxt/teams.BLlOPB_Z.css +1 -0
  40. package/.output/public/_nuxt/tokens.De8xzszn.css +1 -0
  41. package/.output/public/_nuxt/workshop.D1jFNkrn.css +1 -0
  42. package/.output/server/chunks/_/nitro.mjs +748 -733
  43. package/.output/server/chunks/build/{OmpTerminalPanel-Cu_s4i0A.mjs → OmpTerminalPanel-CVvxpsF7.mjs} +15 -15
  44. package/.output/server/chunks/build/{OmpTerminalPanel-Cu_s4i0A.mjs.map → OmpTerminalPanel-CVvxpsF7.mjs.map} +1 -1
  45. package/.output/server/chunks/build/{TownView--otsnr_7.mjs → TownView-CJ6IsDCc.mjs} +226 -225
  46. package/.output/server/chunks/build/{TownView--otsnr_7.mjs.map → TownView-CJ6IsDCc.mjs.map} +1 -1
  47. package/.output/server/chunks/build/{_id_-Brv-JSvr.mjs → _id_-CVD_H0ir.mjs} +143 -142
  48. package/.output/server/chunks/build/_id_-CVD_H0ir.mjs.map +1 -0
  49. package/.output/server/chunks/build/{_id_-D9pl1OZy.mjs → _id_-CtxMb3qp.mjs} +41 -41
  50. package/.output/server/chunks/build/_id_-CtxMb3qp.mjs.map +1 -0
  51. package/.output/server/chunks/build/{_wsId_-BASfDf0s.mjs → _wsId_-DpY3T-md.mjs} +514 -444
  52. package/.output/server/chunks/build/{_wsId_-BASfDf0s.mjs.map → _wsId_-DpY3T-md.mjs.map} +1 -1
  53. package/.output/server/chunks/build/{agents-CLQqJF2y.mjs → agents-DsCkuXDV.mjs} +49 -46
  54. package/.output/server/chunks/build/agents-DsCkuXDV.mjs.map +1 -0
  55. package/.output/server/chunks/build/{aml-_7FdFL2p.mjs → aml-CT0xKGKI.mjs} +122 -105
  56. package/.output/server/chunks/build/aml-CT0xKGKI.mjs.map +1 -0
  57. package/.output/server/chunks/build/builtin-catalog-edpDcgfL.mjs +117 -0
  58. package/.output/server/chunks/build/builtin-catalog-edpDcgfL.mjs.map +1 -0
  59. package/.output/server/chunks/build/{channel-templates-p6SZNjlM.mjs → channel-templates-Dla9FbYa.mjs} +49 -37
  60. package/.output/server/chunks/build/channel-templates-Dla9FbYa.mjs.map +1 -0
  61. package/.output/server/chunks/build/{daq-DkMvD8sg.mjs → daq-DWWSKGAV.mjs} +89 -88
  62. package/.output/server/chunks/build/daq-DWWSKGAV.mjs.map +1 -0
  63. package/.output/server/chunks/build/{dcw-C1jgVJkO.mjs → dcw-CT8k17_E.mjs} +44 -43
  64. package/.output/server/chunks/build/dcw-CT8k17_E.mjs.map +1 -0
  65. package/.output/server/chunks/build/{default-BE4r0FZN.mjs → default-D3525UFX.mjs} +16 -15
  66. package/.output/server/chunks/build/{default-BE4r0FZN.mjs.map → default-D3525UFX.mjs.map} +1 -1
  67. package/.output/server/chunks/build/{monitor-C0okQaXz.mjs → monitor-Dh2Kvaq5.mjs} +2 -2
  68. package/.output/server/chunks/build/{monitor-C0okQaXz.mjs.map → monitor-Dh2Kvaq5.mjs.map} +1 -1
  69. package/.output/server/chunks/build/{pages-B0bUWnC6.mjs → pages-BHcSBM2D.mjs} +24 -18
  70. package/.output/server/chunks/build/pages-BHcSBM2D.mjs.map +1 -0
  71. package/.output/server/chunks/build/{plugins-lGlUr1lj.mjs → plugins-BNgIi61W.mjs} +23 -17
  72. package/.output/server/chunks/build/plugins-BNgIi61W.mjs.map +1 -0
  73. package/.output/server/chunks/build/{settings-Ddd1qx2Z.mjs → settings-ipYBDWdn.mjs} +45 -44
  74. package/.output/server/chunks/build/settings-ipYBDWdn.mjs.map +1 -0
  75. package/.output/server/chunks/build/{teams-MEDLZdMn.mjs → teams-5lx-CwFa.mjs} +47 -44
  76. package/.output/server/chunks/build/teams-5lx-CwFa.mjs.map +1 -0
  77. package/.output/server/chunks/build/{tokens-C7fTM5C2.mjs → tokens-q-IDT8Io.mjs} +73 -53
  78. package/.output/server/chunks/build/tokens-q-IDT8Io.mjs.map +1 -0
  79. package/.output/server/chunks/build/{town-CoQdblbZ.mjs → town-QJWB5wng.mjs} +3 -2
  80. package/.output/server/chunks/build/town-QJWB5wng.mjs.map +1 -0
  81. package/.output/server/chunks/build/{workshop-BL5bhfs0.mjs → workshop-BIlCj_ZP.mjs} +45 -45
  82. package/.output/server/chunks/build/workshop-BIlCj_ZP.mjs.map +1 -0
  83. package/.output/server/chunks/routes/renderer.mjs +1 -1
  84. package/.output/server/chunks/virtual/entry.mjs +637 -86
  85. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  86. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  87. package/.output/server/package.json +1 -1
  88. package/README-zh.md +13 -3
  89. package/README.md +13 -3
  90. package/app/components/AppHeader.vue +961 -959
  91. package/app/components/workshop/A2aRpcDebugger.vue +237 -237
  92. package/app/components/workshop/AgentInspectorDrawer.vue +424 -424
  93. package/app/components/workshop/AgentLanesView.vue +998 -998
  94. package/app/components/workshop/ArtifactCard.vue +120 -120
  95. package/app/components/workshop/AssetLibrary.vue +452 -452
  96. package/app/components/workshop/ChannelSessionList.vue +812 -804
  97. package/app/components/workshop/CommandPalette.vue +269 -269
  98. package/app/components/workshop/Composer.vue +827 -827
  99. package/app/components/workshop/DeviceTwinPanel.vue +643 -643
  100. package/app/components/workshop/EventBlock.vue +602 -602
  101. package/app/components/workshop/FileSelectorModal.vue +188 -188
  102. package/app/components/workshop/InspectorPanel.vue +301 -301
  103. package/app/components/workshop/MemoryPanel.vue +364 -364
  104. package/app/components/workshop/MultiChannelView.vue +189 -189
  105. package/app/components/workshop/TaskBoardView.vue +686 -686
  106. package/app/components/workshop/TaskInspectorDrawer.vue +390 -390
  107. package/app/components/workshop/TranscriptTimeline.vue +601 -601
  108. package/app/components/workshop/blocks/ClusterArtifact.vue +61 -61
  109. package/app/components/workshop/blocks/ClusterError.vue +85 -85
  110. package/app/components/workshop/blocks/ClusterLife.vue +87 -87
  111. package/app/components/workshop/blocks/ClusterMember.vue +95 -93
  112. package/app/components/workshop/blocks/ClusterMemory.vue +84 -84
  113. package/app/components/workshop/blocks/ClusterOther.vue +67 -67
  114. package/app/components/workshop/blocks/ClusterStatus.vue +149 -147
  115. package/app/components/workshop/blocks/ClusterTool.vue +158 -158
  116. package/app/components/workshop/terminal/OmpTerminalPanel.vue +1011 -1011
  117. package/app/components/workshop/town/TownView.vue +56 -56
  118. package/app/middleware/locale-cookie.global.ts +22 -0
  119. package/app/pages/aml/index.vue +24 -2
  120. package/app/pages/daq/[id].vue +11 -11
  121. package/app/pages/daq/index.vue +2316 -2316
  122. package/app/pages/dcw/[id].vue +18 -19
  123. package/app/pages/dcw/index.vue +3 -3
  124. package/app/pages/index.vue +987 -981
  125. package/app/pages/plugins/index.vue +317 -311
  126. package/app/pages/settings.vue +1564 -1562
  127. package/app/pages/tokens.vue +15 -15
  128. package/app/pages/workshop/agents.vue +612 -609
  129. package/app/pages/workshop/channel-templates.vue +18 -11
  130. package/app/pages/workshop/index.vue +668 -668
  131. package/app/pages/workshop/teams.vue +743 -740
  132. package/app/pages/workshop/w/[wsId].vue +704 -704
  133. package/app/plugins/locale-restore.client.ts +16 -1
  134. package/app/utils/builtin-catalog.ts +104 -0
  135. package/config.yml +170 -170
  136. package/docs/full-test-plan.md +2 -3
  137. package/i18n/locales/en.ts +293 -35
  138. package/i18n/locales/zh-CN.ts +265 -7
  139. package/package.json +2 -2
  140. package/scripts/_dbg-perms-e2e.mjs +132 -109
  141. package/scripts/_demo-agentteam-capture.mjs +278 -0
  142. package/scripts/_e2e-ui-functional.mjs +371 -0
  143. package/scripts/_i18n-en-cjk-scan.mjs +28 -0
  144. package/scripts/_i18n-en-verify.mjs +107 -0
  145. package/scripts/_i18n-extra-checks.mjs +53 -0
  146. package/scripts/_i18n-scan-hardcoded.mjs +180 -0
  147. package/scripts/_i18n-verify-keys.mjs +50 -0
  148. package/scripts/_loop-biax-campaign.mjs +15 -9
  149. package/scripts/_sweep-button-contrast.mjs +87 -0
  150. package/scripts/ui/record-demo.mjs +557 -0
  151. package/server/plugins-builtin/diag-bridge/index.mjs +608 -661
  152. package/server/plugins-builtin/rag-bridge/index.mjs +57 -133
  153. package/server/services/workshop/daq/drivers.ts +11 -0
  154. package/.output/public/_nuxt/88GOowgO2.js +0 -1
  155. package/.output/public/_nuxt/BN16aRdQ.js +0 -1
  156. package/.output/public/_nuxt/BWVhZntO.js +0 -1
  157. package/.output/public/_nuxt/BXxH0UQE.js +0 -1
  158. package/.output/public/_nuxt/BsROmY89.js +0 -1
  159. package/.output/public/_nuxt/C0ZrS1KL.js +0 -19
  160. package/.output/public/_nuxt/C4s_niy-.js +0 -14
  161. package/.output/public/_nuxt/D6mbFA-a.js +0 -1
  162. package/.output/public/_nuxt/DS8qj8EL.js +0 -1
  163. package/.output/public/_nuxt/DUjW5Yq5.js +0 -1
  164. package/.output/public/_nuxt/Dap5PmTL.js +0 -2
  165. package/.output/public/_nuxt/Dqw1lpr-.js +0 -1
  166. package/.output/public/_nuxt/DvLxILQP.js +0 -1
  167. package/.output/public/_nuxt/OmpTerminalPanel.B_Pl5Ynm.css +0 -1
  168. package/.output/public/_nuxt/TownView.f-YOdXRs.css +0 -1
  169. package/.output/public/_nuxt/_id_.D9ymtHB5.css +0 -1
  170. package/.output/public/_nuxt/_id_.jf-_8E_c.css +0 -1
  171. package/.output/public/_nuxt/agents.ZD0rVdHE.css +0 -1
  172. package/.output/public/_nuxt/aml.BN8ZEW4h.css +0 -1
  173. package/.output/public/_nuxt/builds/meta/78a295bb-2072-48a4-8b46-6d545fdae743.json +0 -1
  174. package/.output/public/_nuxt/channel-templates.BOtahzPi.css +0 -1
  175. package/.output/public/_nuxt/daq.DjSgY94l.css +0 -1
  176. package/.output/public/_nuxt/dcw.8Y7FqCVN.css +0 -1
  177. package/.output/public/_nuxt/eqq3wWQF.js +0 -18
  178. package/.output/public/_nuxt/pages.D7aSDlUI.css +0 -1
  179. package/.output/public/_nuxt/plugins.sb4nDGqr.css +0 -1
  180. package/.output/public/_nuxt/qr6R6Ha1.js +0 -1
  181. package/.output/public/_nuxt/settings.BTgR-NiE.css +0 -1
  182. package/.output/public/_nuxt/teams.CxnxKVVs.css +0 -1
  183. package/.output/public/_nuxt/tokens.BFY7qv4f.css +0 -1
  184. package/.output/public/_nuxt/workshop.CR_QzeAN.css +0 -1
  185. package/.output/server/chunks/build/_id_-Brv-JSvr.mjs.map +0 -1
  186. package/.output/server/chunks/build/_id_-D9pl1OZy.mjs.map +0 -1
  187. package/.output/server/chunks/build/agents-CLQqJF2y.mjs.map +0 -1
  188. package/.output/server/chunks/build/aml-_7FdFL2p.mjs.map +0 -1
  189. package/.output/server/chunks/build/channel-templates-p6SZNjlM.mjs.map +0 -1
  190. package/.output/server/chunks/build/daq-DkMvD8sg.mjs.map +0 -1
  191. package/.output/server/chunks/build/dcw-C1jgVJkO.mjs.map +0 -1
  192. package/.output/server/chunks/build/pages-B0bUWnC6.mjs.map +0 -1
  193. package/.output/server/chunks/build/plugins-lGlUr1lj.mjs.map +0 -1
  194. package/.output/server/chunks/build/settings-Ddd1qx2Z.mjs.map +0 -1
  195. package/.output/server/chunks/build/teams-MEDLZdMn.mjs.map +0 -1
  196. package/.output/server/chunks/build/tokens-C7fTM5C2.mjs.map +0 -1
  197. package/.output/server/chunks/build/town-CoQdblbZ.mjs.map +0 -1
  198. package/.output/server/chunks/build/workshop-BL5bhfs0.mjs.map +0 -1
  199. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.continue.json +0 -1
  200. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.json +0 -1
  201. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/054bb4bc4e4217a2ab0b0c6b663747214a9af464f5568ea60e784704e340bb0f.source +0 -153
  202. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/0554197c3d2bac203a1f5c48a5d52495d1336db1bd7aa4f4c19875810363e684.source +0 -153
  203. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/05c203d12a954fffba942e1d626e3f5fec05b18a5aef2bac003b7884a4b77406.source +0 -431
  204. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/145a6e6ba811af35aed31e0cc3211f53706a14980fa069ee9e3c1591139f96f0.source +0 -180
  205. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/1ae0fb281f97899c025e368ca73f41349b01fb5f85b19e08d7ebccff49095ed5.source +0 -112
  206. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/20ee9967aa0541c516db7575bdd4a1a745939bc7016bd10d7635903113edb8ec.source +0 -227
  207. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/233751843aeba9d4c5263f275b8102de00443c06f286918cbd23e0b6729e01aa.source +0 -131
  208. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/263c2e05b425e5c322e60c6475279f963bab3a873eb521b21df7fec935a46597.source +0 -160
  209. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/2ac5eaac28eaaee2178c4b32014df8e732f9dd432a285a872f5b7f31c1395fa4.source +0 -157
  210. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/33a0db0d2d95d2c11d0720090458e5fba1425376f5ceb5b422d1d3471be3226b.source +0 -348
  211. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/359e474ae83db35e4615d3728de6bf694b64d4dce9b536730a3b6518f9c0494a.source +0 -296
  212. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/37a4c3c31c4b70f6b719c53d1e9c4fcba603f31adfdd11bb6ef9f0d094923c56.source +0 -285
  213. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/461feca1c14a695eb8b0f17a6f95fe97eeceabc0510faaea4ba6d25bde147d8d.source +0 -217
  214. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/4cfadbda8591f29d5e1e230dc000e701b756e850441b3900fb596a4d2f6e98c2.source +0 -301
  215. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/50ca2810cf0b248c96948994c0c404531bbad6e553166b6816b3b03bfa0f75d2.source +0 -151
  216. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/52d9e8cb591a9ae86e238c3620a610cd386717bee222c0f37b25b2ac7e523dc4.source +0 -135
  217. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/6c87daafa4c006560a954636a97333f6123153c9d34d96203f7ee3a14e556357.source +0 -156
  218. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/77bc47854b577900621cacf1697f81fa2bc005af129d37614a97a3441c08f99f.source +0 -72
  219. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/7bbb789d3a527817118cf8399ed1861d6a962ade10878fd07223435d333a7089.source +0 -469
  220. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/86b7c1daafc8b60ba9982dde5bf1bcc74265709483c176e71f23ec6fc267451f.source +0 -259
  221. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/8df66d62bd41984d0970e8236882080c5085ac937d07a29779463d6a03b37c76.source +0 -97
  222. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/9962f2d1b3a85137bd40cc835725600b39f89ee02a27c06b2e0402e1eafde115.source +0 -277
  223. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/a1090ea066b792cb201739f4994e37bf7c12f52e805239a1eab87f18a537f266.source +0 -171
  224. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/a5241091650134d0919897e086a606a3846c8b2b54f8b4c84a8696c145ac3e9e.source +0 -425
  225. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/af19fa4c6e34d5540028be4b17600161283af3a2a2dfc61a3fdc0834436a0c14.source +0 -99
  226. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/b3713d78e2b2f93905ff6be8d58a8d0a2f42dea322eb67c987fda22ff6a084d5.source +0 -325
  227. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/b3849943c3aff102d1af815631fc843a2a52c17646a4b04696ece323e483bbec.source +0 -332
  228. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/bac735a3803a6650b7f1eb8f587e6dc5c68ea055000c3c99a11789438b78e837.source +0 -43
  229. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/d32c24d61eb8b33c73e5a8fc7e4dc7ef437aed238ee4371c2b00617e6104090a.source +0 -154
  230. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/d5170dc9a9879fda04fdf91d8a110d4efb6787ee38dda596d4da899883d36a72.source +0 -531
  231. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/dc59bcd7bb397be63ba2f2c3fec23f3782dcb17d2d75a9981eeced761f33eb32.source +0 -439
  232. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/eb5ff8cf66b92aec7bf6726781d8df74faa2b030c3aaac17d6b00c1fc04c9b32.source +0 -323
  233. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/f10615a6fae18436e70d1201b2d44fdae3174a3aa7bb4db97dea1b3ed291d721.source +0 -433
  234. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/f36d3e271668bc1260c2823542d22dbf1d0f7041ff16b1ac175bce2256e582ca.source +0 -280
  235. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/f94449380af09f31ac352152007146a75cc80bae8d6411ffe57b2c56f933b0ff.source +0 -117
  236. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/fe4dfd81178fd6b648335f6405d9ede71319aebde796008e50db21f8adf44c99.source +0 -160
  237. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/ffb4e3aa548cfdadabaa44ab599f9b6a3ca6288176a2cc7a4b2fc2a12b5fb848.source +0 -101
  238. package/scripts/.mimosa/hook-status/sess_aeaecb58-8833-4b83-b93c-050467d21e03-d944d71bb3.json +0 -14
  239. package/scripts/_dbg-audit-all-pages.mjs +0 -43
  240. package/scripts/_dbg-daq-frames-e2e.mjs +0 -118
  241. package/scripts/_dbg-daq-rowstyle-verify.mjs +0 -112
  242. package/scripts/_dbg-hitl-timeout-e2e.mjs +0 -93
  243. package/scripts/_dbg-live-line-e2e.mjs +0 -279
  244. package/scripts/_dbg-minimal-omp.mjs +0 -77
  245. package/scripts/_dbg-mode-nav.mjs +0 -173
  246. package/scripts/_dbg-real-scenario-timeline.log +0 -55
  247. package/scripts/_dbg-team-repro.mjs +0 -76
  248. package/scripts/_dbg-town-agents-probe.mjs +0 -60
  249. package/scripts/_dbg-visual-acceptance.mjs +0 -63
  250. package/scripts/_townview_style.css +0 -1185
  251. package/scripts/_townview_template.html +0 -1215
  252. package/server/data/agent-node-bindings.json +0 -554
  253. package/server/data/daq-templates.json +0 -16
  254. package/server/data/daqs.json +0 -7464
  255. package/server/data/dcw-lines.json +0 -1787
  256. package/server/data/dcw-products.json +0 -1626
  257. package/server/data/dcw-recipes.json +0 -4672
  258. package/server/data/dcw-rollback.json +0 -20754
  259. package/server/data/dcw-runs.json +0 -6354
  260. package/server/data/dcw-templates.json +0 -146
  261. package/server/data/dcw-writes.json +0 -15650
  262. package/server/data/dcws.json +0 -9033
  263. package/server/data/device-twins.json +0 -133
  264. package/server/data/line-runs.json +0 -322
  265. package/server/data/scene-layouts.json +0 -277
@@ -4,6 +4,7 @@ import { a as apiErrorMessage } from './api-error-dul30BYQ.mjs';
4
4
  import { u as useDcwStream } from './useDcwStream-UPiX-3iO.mjs';
5
5
  import { u as useDaqStream } from './useDaqStream-DfCFpb3p.mjs';
6
6
  import { u as useDeviceTwins } from './useDeviceTwins-Yko6nNPF.mjs';
7
+ import { c as catalogTplName } from './builtin-catalog-edpDcgfL.mjs';
7
8
  import { defineComponent, computed, ref, reactive, unref, mergeProps, withCtx, createTextVNode, toDisplayString, createVNode, openBlock, createBlock, Fragment, renderList, createCommentVNode, withDirectives, vModelText, useSSRContext } from 'vue';
8
9
  import { useRoute } from 'vue-router';
9
10
  import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent, ssrRenderStyle, ssrRenderClass, ssrRenderAttr, ssrRenderList, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderDynamicModel } from 'vue/server-renderer';
@@ -60,13 +61,13 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
60
61
  dcw.ensureWsFeed();
61
62
  const nodeDeviceNames = (n) => (n.deviceIds ?? (n.deviceBindingId ? [n.deviceBindingId] : [])).map((id) => deviceName(id)).join(" / ") || "—";
62
63
  const deviceName = (id) => id ? deviceTwins.twins.find((t) => t.id === id)?.name ?? id : t("dcwDetail.k3own4q121");
63
- const stateLabel = {
64
+ const stateLabel = computed(() => ({
64
65
  idle: t("dcwDetail.k3zgkk122"),
65
66
  writing: t("dcwDetail.k3l3h80123"),
66
- ok: "已 ACK",
67
+ ok: t("dcwDetail.stAck"),
67
68
  error: t("dcwDetail.k40reu124"),
68
69
  offline: t("dcwDetail.k44c2n125")
69
- };
70
+ }));
70
71
  function dcwTemplateRefCh(templateRef) {
71
72
  const ref = templateRef ?? "";
72
73
  return dcw.templates.find((t) => t.key === (ref.startsWith("dcw-") ? ref.slice(4) : ref))?.ch ?? ref;
@@ -332,7 +333,7 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
332
333
  const _component_NuxtLink = NuxtLink;
333
334
  const _component_a_spin = spin_default;
334
335
  if (unref(dcw).loaded && !line.value) {
335
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-ff580c34><p class="banner bad" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k19337yp018"))}</p>`);
336
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-84c0b97c><p class="banner bad" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k19337yp018"))}</p>`);
336
337
  _push(ssrRenderComponent(_component_NuxtLink, {
337
338
  class: "pill-btn",
338
339
  to: "/dcw"
@@ -345,122 +346,122 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
345
346
  }, _parent));
346
347
  _push(`</div>`);
347
348
  } else {
348
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-ff580c34><div class="aw-page-head" data-v-ff580c34><div data-v-ff580c34><p class="aw-kicker" data-v-ff580c34><span class="line-chip" style="${ssrRenderStyle({ background: line.value?.color ?? "#3aa0ff" })}" data-v-ff580c34></span>AGENTWORKSHOP / LINE / ${ssrInterpolate(line.value?.name ?? lineId.value)}</p><h1 data-v-ff580c34>${ssrInterpolate(line.value?.name ?? _ctx.$t("dcwDetail.k1b2snna151"))} · ${ssrInterpolate(_ctx.$t("dcwDetail.k1l0iow1137"))}</h1><p class="sub" data-v-ff580c34>${ssrInterpolate(line.value?.description || _ctx.$t("dcwDetail.kzcbfki152"))}</p></div><div class="badges mono" data-v-ff580c34><span class="badge" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))} ${ssrInterpolate(lineNodes.value.length)}</span><span class="badge" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k3waz1025"))} ${ssrInterpolate(lineProducts.value.length)}</span><span class="badge" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))} ${ssrInterpolate(lineRecipesAll.value.length)}</span></div></div><section class="aw-tile ctrl-card" data-v-ff580c34><div class="ctrl-left" data-v-ff580c34><button class="${ssrRenderClass([{ running: unref(dcw).controller.running }, "aw-pill"])}"${ssrRenderAttr("title", _ctx.$t("dcwDetail.k1snap154"))} data-v-ff580c34><span class="${ssrRenderClass(unref(dcw).controller.running ? "i-tabler-player-pause" : "i-tabler-player-play")}" data-v-ff580c34></span> ${ssrInterpolate(unref(dcw).controller.running ? _ctx.$t("dcwDetail.kplrsg153") : _ctx.$t("dcwDetail.knxgni9169"))}</button></div><div class="ctrl-right" data-v-ff580c34><span class="ctrl-metrics mono" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))} ${ssrInterpolate(unref(dcw).controller.nodesOnline)}/${ssrInterpolate(unref(dcw).controller.nodesTotal)}</span><span class="sep" data-v-ff580c34>·</span><span${ssrRenderAttr("title", _ctx.$t("dcwDetail.kd3ygmn001"))} data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k3wtib138"))} ${ssrInterpolate(unref(dcw).controller.writesTotal)}</span><span class="sep" data-v-ff580c34>·</span><span class="${ssrRenderClass({ warn: unref(dcw).controller.writesFailed > 0 })}"${ssrRenderAttr("title", _ctx.$t("dcwDetail.kd3znl0002"))} data-v-ff580c34>${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-ff580c34><span class="i-tabler-template" data-v-ff580c34></span> ${ssrInterpolate(_ctx.$t("dcwDetail.k1972dx9020"))}</button><button class="aw-pill add-btn" data-v-ff580c34><span class="i-tabler-plus" data-v-ff580c34></span> ${ssrInterpolate(_ctx.$t("dcwDetail.k1976uns021"))}</button></div></section>`);
349
- if (writeError.value || writeOk.value) _push(`<p class="${ssrRenderClass([writeError.value ? "bad" : "good", "banner"])}" data-v-ff580c34>${ssrInterpolate(writeError.value || writeOk.value)}</p>`);
349
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-84c0b97c><div class="aw-page-head" data-v-84c0b97c><div data-v-84c0b97c><p class="aw-kicker" data-v-84c0b97c><span class="line-chip" style="${ssrRenderStyle({ background: line.value?.color ?? "#3aa0ff" })}" data-v-84c0b97c></span>AGENTWORKSHOP / LINE / ${ssrInterpolate(line.value?.name ?? lineId.value)}</p><h1 data-v-84c0b97c>${ssrInterpolate(line.value?.name ?? _ctx.$t("dcwDetail.k1b2snna151"))} · ${ssrInterpolate(_ctx.$t("dcwDetail.k1l0iow1137"))}</h1><p class="sub" data-v-84c0b97c>${ssrInterpolate(line.value?.description || _ctx.$t("dcwDetail.kzcbfki152"))}</p></div><div class="badges mono" data-v-84c0b97c><span class="badge" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))} ${ssrInterpolate(lineNodes.value.length)}</span><span class="badge" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k3waz1025"))} ${ssrInterpolate(lineProducts.value.length)}</span><span class="badge" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))} ${ssrInterpolate(lineRecipesAll.value.length)}</span></div></div><section class="aw-tile ctrl-card" data-v-84c0b97c><div class="ctrl-left" data-v-84c0b97c><button class="${ssrRenderClass([{ running: unref(dcw).controller.running }, "aw-pill"])}"${ssrRenderAttr("title", _ctx.$t("dcwDetail.k1snap154"))} data-v-84c0b97c><span class="${ssrRenderClass(unref(dcw).controller.running ? "i-tabler-player-pause" : "i-tabler-player-play")}" data-v-84c0b97c></span> ${ssrInterpolate(unref(dcw).controller.running ? _ctx.$t("dcwDetail.kplrsg153") : _ctx.$t("dcwDetail.knxgni9169"))}</button></div><div class="ctrl-right" data-v-84c0b97c><span class="ctrl-metrics mono" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))} ${ssrInterpolate(unref(dcw).controller.nodesOnline)}/${ssrInterpolate(unref(dcw).controller.nodesTotal)}</span><span class="sep" data-v-84c0b97c>·</span><span${ssrRenderAttr("title", _ctx.$t("dcwDetail.kd3ygmn001"))} data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k3wtib138"))} ${ssrInterpolate(unref(dcw).controller.writesTotal)}</span><span class="sep" data-v-84c0b97c>·</span><span class="${ssrRenderClass({ warn: unref(dcw).controller.writesFailed > 0 })}"${ssrRenderAttr("title", _ctx.$t("dcwDetail.kd3znl0002"))} data-v-84c0b97c>${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-84c0b97c><span class="i-tabler-template" data-v-84c0b97c></span> ${ssrInterpolate(_ctx.$t("dcwDetail.k1972dx9020"))}</button><button class="aw-pill add-btn" data-v-84c0b97c><span class="i-tabler-plus" data-v-84c0b97c></span> ${ssrInterpolate(_ctx.$t("dcwDetail.k1976uns021"))}</button></div></section>`);
350
+ if (writeError.value || writeOk.value) _push(`<p class="${ssrRenderClass([writeError.value ? "bad" : "good", "banner"])}" data-v-84c0b97c>${ssrInterpolate(writeError.value || writeOk.value)}</p>`);
350
351
  else _push(`<!---->`);
351
352
  if (unassignedNodes.value.length || unassignedProducts.value.length) {
352
- _push(`<section class="aw-tile adopt-card" data-v-ff580c34><b class="adopt-title" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.kaebkky022"))}</b><div class="adopt-list" data-v-ff580c34><!--[-->`);
353
+ _push(`<section class="aw-tile adopt-card" data-v-84c0b97c><b class="adopt-title" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.kaebkky022"))}</b><div class="adopt-list" data-v-84c0b97c><!--[-->`);
353
354
  ssrRenderList(unassignedNodes.value, (n) => {
354
- _push(`<span class="adopt-chip" data-v-ff580c34>${ssrInterpolate(n.name)} <button class="mini-btn" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.kyjp9fg023"))}</button></span>`);
355
+ _push(`<span class="adopt-chip" data-v-84c0b97c>${ssrInterpolate(n.name)} <button class="mini-btn" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.kyjp9fg023"))}</button></span>`);
355
356
  });
356
357
  _push(`<!--]--><!--[-->`);
357
358
  ssrRenderList(unassignedProducts.value, (p) => {
358
- _push(`<span class="adopt-chip" data-v-ff580c34>${ssrInterpolate(p.name)}(${ssrInterpolate(_ctx.$t("dcwDetail.k3km252140"))}<button class="mini-btn" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.kyjp9fg023"))}</button></span>`);
359
+ _push(`<span class="adopt-chip" data-v-84c0b97c>${ssrInterpolate(p.name)}(${ssrInterpolate(_ctx.$t("dcwDetail.k3km252140"))}<button class="mini-btn" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.kyjp9fg023"))}</button></span>`);
359
360
  });
360
361
  _push(`<!--]--></div></section>`);
361
362
  } else _push(`<!---->`);
362
- _push(`<section class="aw-tile line-card" data-v-ff580c34><div class="line-status" data-v-ff580c34><span class="${ssrRenderClass([{ on: ls.value.active }, "line-dot"])}" data-v-ff580c34></span><div class="line-info" data-v-ff580c34><b data-v-ff580c34>${ssrInterpolate(ls.value.active ? _ctx.$t("dcwDetail.k1pxrhx0154") : _ctx.$t("dcwDetail.k1b2hxmx170"))}</b>`);
363
- if (ls.value.active) _push(`<small class="mono dim" data-v-ff580c34>${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>`);
364
- else _push(`<small class="dim" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k19pof14024"))}</small>`);
365
- _push(`</div></div><div class="line-ctl" data-v-ff580c34><label class="ctl-sel" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k3waz1025"))}</span><select class="inp" data-v-ff580c34><option value="" data-v-ff580c34${ssrIncludeBooleanAttr(Array.isArray(lineProductId.value) ? ssrLooseContain(lineProductId.value, "") : ssrLooseEqual(lineProductId.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.kuisodh026"))}</option><!--[-->`);
363
+ _push(`<section class="aw-tile line-card" data-v-84c0b97c><div class="line-status" data-v-84c0b97c><span class="${ssrRenderClass([{ on: ls.value.active }, "line-dot"])}" data-v-84c0b97c></span><div class="line-info" data-v-84c0b97c><b data-v-84c0b97c>${ssrInterpolate(ls.value.active ? _ctx.$t("dcwDetail.k1pxrhx0154") : _ctx.$t("dcwDetail.k1b2hxmx170"))}</b>`);
364
+ if (ls.value.active) _push(`<small class="mono dim" data-v-84c0b97c>${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>`);
365
+ else _push(`<small class="dim" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k19pof14024"))}</small>`);
366
+ _push(`</div></div><div class="line-ctl" data-v-84c0b97c><label class="ctl-sel" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k3waz1025"))}</span><select class="inp" data-v-84c0b97c><option value="" data-v-84c0b97c${ssrIncludeBooleanAttr(Array.isArray(lineProductId.value) ? ssrLooseContain(lineProductId.value, "") : ssrLooseEqual(lineProductId.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.kuisodh026"))}</option><!--[-->`);
366
367
  ssrRenderList(lineProducts.value, (p) => {
367
- _push(`<option${ssrRenderAttr("value", p.id)} data-v-ff580c34${ssrIncludeBooleanAttr(Array.isArray(lineProductId.value) ? ssrLooseContain(lineProductId.value, p.id) : ssrLooseEqual(lineProductId.value, p.id)) ? " selected" : ""}>${ssrInterpolate(p.name)}</option>`);
368
+ _push(`<option${ssrRenderAttr("value", p.id)} data-v-84c0b97c${ssrIncludeBooleanAttr(Array.isArray(lineProductId.value) ? ssrLooseContain(lineProductId.value, p.id) : ssrLooseEqual(lineProductId.value, p.id)) ? " selected" : ""}>${ssrInterpolate(p.name)}</option>`);
368
369
  });
369
- _push(`<!--]--></select></label><label class="ctl-sel" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))}</span><select class="inp"${ssrIncludeBooleanAttr(!lineProductId.value) ? " disabled" : ""} data-v-ff580c34><option value="" data-v-ff580c34${ssrIncludeBooleanAttr(Array.isArray(lineRecipeId.value) ? ssrLooseContain(lineRecipeId.value, "") : ssrLooseEqual(lineRecipeId.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.kutxzsz028"))}</option><!--[-->`);
370
+ _push(`<!--]--></select></label><label class="ctl-sel" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))}</span><select class="inp"${ssrIncludeBooleanAttr(!lineProductId.value) ? " disabled" : ""} data-v-84c0b97c><option value="" data-v-84c0b97c${ssrIncludeBooleanAttr(Array.isArray(lineRecipeId.value) ? ssrLooseContain(lineRecipeId.value, "") : ssrLooseEqual(lineRecipeId.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.kutxzsz028"))}</option><!--[-->`);
370
371
  ssrRenderList(lineRecipes.value, (r) => {
371
- _push(`<option${ssrRenderAttr("value", r.id)}${ssrIncludeBooleanAttr(r.params.length === 0) ? " disabled" : ""} data-v-ff580c34${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>`);
372
+ _push(`<option${ssrRenderAttr("value", r.id)}${ssrIncludeBooleanAttr(r.params.length === 0) ? " disabled" : ""} data-v-84c0b97c${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>`);
372
373
  });
373
374
  _push(`<!--]--></select></label>`);
374
- if (!ls.value.active) _push(`<button class="pill-btn"${ssrIncludeBooleanAttr(lineBusy.value || !lineRecipeId.value) ? " disabled" : ""}${ssrRenderAttr("title", !lineRecipeId.value ? "开跑前必须先设定配方" : "下发配方参数并开始打标数据采集")} data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.kfb8vml029"))}</button>`);
375
- else _push(`<button class="pill-btn stop"${ssrIncludeBooleanAttr(lineBusy.value) ? " disabled" : ""} data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1xyhd2y030"))}</button>`);
375
+ if (!ls.value.active) _push(`<button class="pill-btn"${ssrIncludeBooleanAttr(lineBusy.value || !lineRecipeId.value) ? " disabled" : ""}${ssrRenderAttr("title", !lineRecipeId.value ? _ctx.$t("dcwDetail.startNeedRecipe") : _ctx.$t("dcwDetail.startTip"))} data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.kfb8vml029"))}</button>`);
376
+ else _push(`<button class="pill-btn stop"${ssrIncludeBooleanAttr(lineBusy.value) ? " disabled" : ""} data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1xyhd2y030"))}</button>`);
376
377
  _push(`</div>`);
377
- if (lineErr.value) _push(`<p class="banner bad" style="${ssrRenderStyle({ "margin-top": "10px" })}" data-v-ff580c34>${ssrInterpolate(lineErr.value)}</p>`);
378
+ if (lineErr.value) _push(`<p class="banner bad" style="${ssrRenderStyle({ "margin-top": "10px" })}" data-v-84c0b97c>${ssrInterpolate(lineErr.value)}</p>`);
378
379
  else _push(`<!---->`);
379
- if (lineMsg.value) _push(`<p class="banner good" style="${ssrRenderStyle({ "margin-top": "10px" })}" data-v-ff580c34>${ssrInterpolate(lineMsg.value)}</p>`);
380
+ if (lineMsg.value) _push(`<p class="banner good" style="${ssrRenderStyle({ "margin-top": "10px" })}" data-v-84c0b97c>${ssrInterpolate(lineMsg.value)}</p>`);
380
381
  else _push(`<!---->`);
381
382
  _push(`</section>`);
382
383
  if (tplOpen.value) {
383
- _push(`<div class="modal-mask" data-v-ff580c34><div class="modal" data-v-ff580c34><h3 class="m-title" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1x4vam0031"))} <small class="dim mono" data-v-ff580c34>${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-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.ke1iyud032"))}</p><div class="tpl-chips" data-v-ff580c34><!--[-->`);
384
+ _push(`<div class="modal-mask" data-v-84c0b97c><div class="modal" data-v-84c0b97c><h3 class="m-title" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1x4vam0031"))} <small class="dim mono" data-v-84c0b97c>${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-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.ke1iyud032"))}</p><div class="tpl-chips" data-v-84c0b97c><!--[-->`);
384
385
  ssrRenderList(unref(dcw).templates, (tpl) => {
385
- _push(`<span class="tpl-chip"${ssrRenderAttr("title", `${tpl.code} · ${tpl.min}~${tpl.max} ${tpl.unit}${tpl.semantics ? ` · ${tpl.semantics}` : ""}`)} data-v-ff580c34>${ssrInterpolate(tpl.name)} <small class="mono" data-v-ff580c34>${ssrInterpolate(tpl.min)}~${ssrInterpolate(tpl.max)}${ssrInterpolate(tpl.unit)}</small><em class="${ssrRenderClass([{ builtin: tpl.builtin }, "tpl-tag"])}" data-v-ff580c34>${ssrInterpolate(tpl.builtin ? _ctx.$t("dcwDetail.k3x23c141") : _ctx.$t("dcwDetail.k3t616a142"))}</em></span>`);
386
+ _push(`<span class="tpl-chip"${ssrRenderAttr("title", `${tpl.code} · ${tpl.min}~${tpl.max} ${tpl.unit}${tpl.semantics ? ` · ${tpl.semantics}` : ""}`)} data-v-84c0b97c>${ssrInterpolate(("catalogTplName" in _ctx ? _ctx.catalogTplName : unref(catalogTplName))(unref(t), tpl))} <small class="mono" data-v-84c0b97c>${ssrInterpolate(tpl.min)}~${ssrInterpolate(tpl.max)}${ssrInterpolate(tpl.unit)}</small><em class="${ssrRenderClass([{ builtin: tpl.builtin }, "tpl-tag"])}" data-v-84c0b97c>${ssrInterpolate(tpl.builtin ? _ctx.$t("dcwDetail.k3x23c141") : _ctx.$t("dcwDetail.k3t616a142"))}</em></span>`);
386
387
  });
387
- _push(`<!--]--></div><p class="sec-label" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k169eb4s033"))}</p><div class="f-grid tpl-form" data-v-ff580c34><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1f55q76034"))}<em data-v-ff580c34>*</em></span><input${ssrRenderAttr("value", tplForm.name)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1tooi3o004"))} data-v-ff580c34></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1bqk219035"))}</span><input${ssrRenderAttr("value", tplForm.ch)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k698qz0005"))} data-v-ff580c34></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1ayxrqb036"))}</span><input${ssrRenderAttr("value", tplForm.code)} class="inp" placeholder="如 MOTOR · I" data-v-ff580c34></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k3x4ef037"))}<em data-v-ff580c34>*</em></span><input${ssrRenderAttr("value", tplForm.unit)} class="inp" placeholder="如 A" data-v-ff580c34></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1l9jv5m038"))}<em data-v-ff580c34>*</em></span><input${ssrRenderAttr("value", tplForm.min)} type="number" class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.kxz9174006"))} data-v-ff580c34></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1l9jv4p039"))}<em data-v-ff580c34>*</em></span><input${ssrRenderAttr("value", tplForm.max)} type="number" class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.kxz9167007"))} data-v-ff580c34></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k3mxmcx040"))}</span><input${ssrRenderAttr("value", tplForm.decimals)} type="number" min="0" max="4" class="inp" data-v-ff580c34></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k3xx56041"))}</span><select class="inp" data-v-ff580c34><!--[-->`);
388
+ _push(`<!--]--></div><p class="sec-label" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k169eb4s033"))}</p><div class="f-grid tpl-form" data-v-84c0b97c><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1f55q76034"))}<em data-v-84c0b97c>*</em></span><input${ssrRenderAttr("value", tplForm.name)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1tooi3o004"))} data-v-84c0b97c></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1bqk219035"))}</span><input${ssrRenderAttr("value", tplForm.ch)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k698qz0005"))} data-v-84c0b97c></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1ayxrqb036"))}</span><input${ssrRenderAttr("value", tplForm.code)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.codePh"))} data-v-84c0b97c></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k3x4ef037"))}<em data-v-84c0b97c>*</em></span><input${ssrRenderAttr("value", tplForm.unit)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.unitPh"))} data-v-84c0b97c></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1l9jv5m038"))}<em data-v-84c0b97c>*</em></span><input${ssrRenderAttr("value", tplForm.min)} type="number" class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.kxz9174006"))} data-v-84c0b97c></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1l9jv4p039"))}<em data-v-84c0b97c>*</em></span><input${ssrRenderAttr("value", tplForm.max)} type="number" class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.kxz9167007"))} data-v-84c0b97c></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k3mxmcx040"))}</span><input${ssrRenderAttr("value", tplForm.decimals)} type="number" min="0" max="4" class="inp" data-v-84c0b97c></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k3xx56041"))}</span><select class="inp" data-v-84c0b97c><!--[-->`);
388
389
  ssrRenderList(tplIcons, (ic) => {
389
- _push(`<option${ssrRenderAttr("value", ic.key)} data-v-ff580c34${ssrIncludeBooleanAttr(Array.isArray(tplForm.icon) ? ssrLooseContain(tplForm.icon, ic.key) : ssrLooseEqual(tplForm.icon, ic.key)) ? " selected" : ""}>${ssrInterpolate(ic.label)}</option>`);
390
+ _push(`<option${ssrRenderAttr("value", ic.key)} data-v-84c0b97c${ssrIncludeBooleanAttr(Array.isArray(tplForm.icon) ? ssrLooseContain(tplForm.icon, ic.key) : ssrLooseEqual(tplForm.icon, ic.key)) ? " selected" : ""}>${ssrInterpolate(ic.label)}</option>`);
390
391
  });
391
- _push(`<!--]--></select></label></div><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.knjmyfr042"))}</span><textarea class="inp" rows="2"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1qdnfzc008"))} data-v-ff580c34>${ssrInterpolate(tplForm.semantics)}</textarea></label>`);
392
- if (tplOk.value) _push(`<p class="banner good" style="${ssrRenderStyle({ "margin-top": "10px" })}" data-v-ff580c34>${ssrInterpolate(tplOk.value)}</p>`);
392
+ _push(`<!--]--></select></label></div><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.knjmyfr042"))}</span><textarea class="inp" rows="2"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1qdnfzc008"))} data-v-84c0b97c>${ssrInterpolate(tplForm.semantics)}</textarea></label>`);
393
+ if (tplOk.value) _push(`<p class="banner good" style="${ssrRenderStyle({ "margin-top": "10px" })}" data-v-84c0b97c>${ssrInterpolate(tplOk.value)}</p>`);
393
394
  else _push(`<!---->`);
394
- if (tplError.value) _push(`<p class="m-err" data-v-ff580c34>${ssrInterpolate(tplError.value)}</p>`);
395
+ if (tplError.value) _push(`<p class="m-err" data-v-84c0b97c>${ssrInterpolate(tplError.value)}</p>`);
395
396
  else _push(`<!---->`);
396
- _push(`<div class="m-actions" data-v-ff580c34><button class="aw-pill outline" data-v-ff580c34>${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-ff580c34>${ssrInterpolate(tplSaving.value ? _ctx.$t("dcwDetail.k1bg4759156") : _ctx.$t("dcwDetail.k1bg9nga171"))}</button></div></div></div>`);
397
+ _push(`<div class="m-actions" data-v-84c0b97c><button class="aw-pill outline" data-v-84c0b97c>${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-84c0b97c>${ssrInterpolate(tplSaving.value ? _ctx.$t("dcwDetail.k1bg4759156") : _ctx.$t("dcwDetail.k1bg9nga171"))}</button></div></div></div>`);
397
398
  } else _push(`<!---->`);
398
399
  if (addOpen.value) {
399
- _push(`<div class="modal-mask" data-v-ff580c34><div class="modal" data-v-ff580c34><h3 class="m-title" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1976uns021"))}</h3><div class="seg-row" data-v-ff580c34><button class="${ssrRenderClass([{ on: addScenario.value === "mock" }, "seg"])}" data-v-ff580c34> Mock 模拟 PLC </button><button class="${ssrRenderClass([{ on: addScenario.value === "real" }, "seg"])}" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.kyj8fen044"))}</button></div><div class="f-grid" data-v-ff580c34><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1ejzwqp045"))}</span><select class="inp" data-v-ff580c34><!--[-->`);
400
+ _push(`<div class="modal-mask" data-v-84c0b97c><div class="modal" data-v-84c0b97c><h3 class="m-title" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1976uns021"))}</h3><div class="seg-row" data-v-84c0b97c><button class="${ssrRenderClass([{ on: addScenario.value === "mock" }, "seg"])}" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.mockPlc"))}</button><button class="${ssrRenderClass([{ on: addScenario.value === "real" }, "seg"])}" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.kyj8fen044"))}</button></div><div class="f-grid" data-v-84c0b97c><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1ejzwqp045"))}</span><select class="inp" data-v-84c0b97c><!--[-->`);
400
401
  ssrRenderList(unref(dcw).templates, (tpl) => {
401
- _push(`<option${ssrRenderAttr("value", tpl.key)} data-v-ff580c34${ssrIncludeBooleanAttr(Array.isArray(addTemplate.value) ? ssrLooseContain(addTemplate.value, tpl.key) : ssrLooseEqual(addTemplate.value, tpl.key)) ? " selected" : ""}>${ssrInterpolate(tpl.name)} · ${ssrInterpolate(tpl.ch)}(${ssrInterpolate(tpl.min)}~${ssrInterpolate(tpl.max)} ${ssrInterpolate(tpl.unit)})${ssrInterpolate(tpl.builtin ? "" : _ctx.$t("dcwDetail.kr45rk9157"))}</option>`);
402
+ _push(`<option${ssrRenderAttr("value", tpl.key)} data-v-84c0b97c${ssrIncludeBooleanAttr(Array.isArray(addTemplate.value) ? ssrLooseContain(addTemplate.value, tpl.key) : ssrLooseEqual(addTemplate.value, tpl.key)) ? " selected" : ""}>${ssrInterpolate(("catalogTplName" in _ctx ? _ctx.catalogTplName : unref(catalogTplName))(unref(t), tpl))} · ${ssrInterpolate(tpl.ch)}(${ssrInterpolate(tpl.min)}~${ssrInterpolate(tpl.max)} ${ssrInterpolate(tpl.unit)})${ssrInterpolate(tpl.builtin ? "" : _ctx.$t("dcwDetail.kr45rk9157"))}</option>`);
402
403
  });
403
- _push(`<!--]--></select></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1ce2k1y046"))}</span><input${ssrRenderAttr("value", addName.value)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.kgpxzy3009"))} data-v-ff580c34></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${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-ff580c34></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${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-ff580c34></label></div><div class="f-grid cal-form" data-v-ff580c34><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.kiune1f048"))}</span><select class="inp" data-v-ff580c34><option value="none" data-v-ff580c34${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-ff580c34${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-ff580c34><span data-v-ff580c34>scale / offset</span><div style="${ssrRenderStyle({
404
+ _push(`<!--]--></select></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1ce2k1y046"))}</span><input${ssrRenderAttr("value", addName.value)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.kgpxzy3009"))} data-v-84c0b97c></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${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-84c0b97c></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${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-84c0b97c></label></div><div class="f-grid cal-form" data-v-84c0b97c><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.kiune1f048"))}</span><select class="inp" data-v-84c0b97c><option value="none" data-v-84c0b97c${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-84c0b97c${ssrIncludeBooleanAttr(Array.isArray(addTransform.kind) ? ssrLooseContain(addTransform.kind, "linear") : ssrLooseEqual(addTransform.kind, "linear")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.linearCalOpt"))}</option></select></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>scale / offset</span><div style="${ssrRenderStyle({
404
405
  "display": "flex",
405
406
  "gap": "6px"
406
- })}" data-v-ff580c34><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-ff580c34><input${ssrRenderAttr("value", addTransform.offset)} type="number" step="0.1" class="inp"${ssrIncludeBooleanAttr(addTransform.kind !== "linear") ? " disabled" : ""} title="decoder 截距" data-v-ff580c34></div></label></div>`);
407
+ })}" data-v-84c0b97c><input${ssrRenderAttr("value", addTransform.scale)} type="number" step="0.1" class="inp"${ssrIncludeBooleanAttr(addTransform.kind !== "linear") ? " disabled" : ""}${ssrRenderAttr("title", _ctx.$t("dcwDetail.calScaleTip"))} data-v-84c0b97c><input${ssrRenderAttr("value", addTransform.offset)} type="number" step="0.1" class="inp"${ssrIncludeBooleanAttr(addTransform.kind !== "linear") ? " disabled" : ""}${ssrRenderAttr("title", _ctx.$t("dcwDetail.calOffsetTip"))} data-v-84c0b97c></div></label></div>`);
407
408
  if (addScenario.value === "real") {
408
- _push(`<!--[--><div class="f-grid" data-v-ff580c34><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1kt87rx050"))}</span><select class="inp" data-v-ff580c34><!--[-->`);
409
+ _push(`<!--[--><div class="f-grid" data-v-84c0b97c><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1kt87rx050"))}</span><select class="inp" data-v-84c0b97c><!--[-->`);
409
410
  ssrRenderList(driverCatalog.value.filter((x) => x.status !== "builtin"), (d) => {
410
- _push(`<option${ssrRenderAttr("value", d.kind)} data-v-ff580c34${ssrIncludeBooleanAttr(Array.isArray(addDriver.value) ? ssrLooseContain(addDriver.value, d.kind) : ssrLooseEqual(addDriver.value, d.kind)) ? " selected" : ""}>${ssrInterpolate(d.label)}${ssrInterpolate(d.plugin ? " ⌁" : "")}</option>`);
411
+ _push(`<option${ssrRenderAttr("value", d.kind)} data-v-84c0b97c${ssrIncludeBooleanAttr(Array.isArray(addDriver.value) ? ssrLooseContain(addDriver.value, d.kind) : ssrLooseEqual(addDriver.value, d.kind)) ? " selected" : ""}>${ssrInterpolate(d.label)}${ssrInterpolate(d.plugin ? " ⌁" : "")}</option>`);
411
412
  });
412
413
  _push(`<!--]--></select></label></div>`);
413
414
  if (addFields.value.length) {
414
- _push(`<div class="f-grid driver-form" data-v-ff580c34><!--[-->`);
415
+ _push(`<div class="f-grid driver-form" data-v-84c0b97c><!--[-->`);
415
416
  ssrRenderList(addFields.value, (f) => {
416
- _push(`<label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(f.label)}`);
417
+ _push(`<label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(f.label)}`);
417
418
  if (f.required) _push(`<em style="${ssrRenderStyle({
418
419
  "color": "var(--tone-danger-dot)",
419
420
  "font-style": "normal"
420
- })}" data-v-ff580c34>*</em>`);
421
+ })}" data-v-84c0b97c>*</em>`);
421
422
  else _push(`<!---->`);
422
423
  _push(`</span>`);
423
424
  if (f.type === "select") {
424
- _push(`<select class="inp" data-v-ff580c34><!--[-->`);
425
+ _push(`<select class="inp" data-v-84c0b97c><!--[-->`);
425
426
  ssrRenderList(f.options, (o) => {
426
- _push(`<option${ssrRenderAttr("value", o.value)} data-v-ff580c34${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>`);
427
+ _push(`<option${ssrRenderAttr("value", o.value)} data-v-84c0b97c${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>`);
427
428
  });
428
429
  _push(`<!--]--></select>`);
429
- } 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-ff580c34>`);
430
- if (f.hint) _push(`<small class="hint" data-v-ff580c34>${ssrInterpolate(f.hint)}</small>`);
430
+ } 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-84c0b97c>`);
431
+ if (f.hint) _push(`<small class="hint" data-v-84c0b97c>${ssrInterpolate(f.hint)}</small>`);
431
432
  else _push(`<!---->`);
432
433
  _push(`</label>`);
433
434
  });
434
435
  _push(`<!--]--></div>`);
435
436
  } else _push(`<!---->`);
436
- _push(`<div class="test-row" data-v-ff580c34><button class="pill-btn outline"${ssrIncludeBooleanAttr(addTesting.value) ? " disabled" : ""} data-v-ff580c34>${ssrInterpolate(addTesting.value ? _ctx.$t("dcwDetail.k1fsh720158") : _ctx.$t("dcwDetail.k1fstglk172"))}</button>`);
437
- if (addTest.value) _push(`<span class="${ssrRenderClass([addTest.value.ok ? "good" : "bad", "test-result"])}" data-v-ff580c34>${ssrInterpolate(addTest.value.ok ? "✓" : "✗")} ${ssrInterpolate(addTest.value.message)}</span>`);
437
+ _push(`<div class="test-row" data-v-84c0b97c><button class="pill-btn outline"${ssrIncludeBooleanAttr(addTesting.value) ? " disabled" : ""} data-v-84c0b97c>${ssrInterpolate(addTesting.value ? _ctx.$t("dcwDetail.k1fsh720158") : _ctx.$t("dcwDetail.k1fstglk172"))}</button>`);
438
+ if (addTest.value) _push(`<span class="${ssrRenderClass([addTest.value.ok ? "good" : "bad", "test-result"])}" data-v-84c0b97c>${ssrInterpolate(addTest.value.ok ? "✓" : "✗")} ${ssrInterpolate(addTest.value.message)}</span>`);
438
439
  else _push(`<!---->`);
439
440
  _push(`</div><!--]-->`);
440
441
  } else _push(`<!---->`);
441
- _push(`<label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1hgizn7051"))}</span><textarea class="inp" rows="2"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k12bnyt9011"))} data-v-ff580c34>${ssrInterpolate(addSemantics.value)}</textarea></label>`);
442
- if (addError.value) _push(`<p class="m-err" data-v-ff580c34>${ssrInterpolate(addError.value)}</p>`);
442
+ _push(`<label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1hgizn7051"))}</span><textarea class="inp" rows="2"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k12bnyt9011"))} data-v-84c0b97c>${ssrInterpolate(addSemantics.value)}</textarea></label>`);
443
+ if (addError.value) _push(`<p class="m-err" data-v-84c0b97c>${ssrInterpolate(addError.value)}</p>`);
443
444
  else _push(`<!---->`);
444
- _push(`<div class="m-actions" data-v-ff580c34><button class="aw-pill outline" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k3xdnn052"))}</button><button class="aw-pill"${ssrIncludeBooleanAttr(addSaving.value) ? " disabled" : ""} data-v-ff580c34>${ssrInterpolate(addSaving.value ? _ctx.$t("dcwDetail.k1bg4759156") : _ctx.$t("dcwDetail.k1bge46t173"))}</button></div></div></div>`);
445
+ _push(`<div class="m-actions" data-v-84c0b97c><button class="aw-pill outline" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k3xdnn052"))}</button><button class="aw-pill"${ssrIncludeBooleanAttr(addSaving.value) ? " disabled" : ""} data-v-84c0b97c>${ssrInterpolate(addSaving.value ? _ctx.$t("dcwDetail.k1bg4759156") : _ctx.$t("dcwDetail.k1bge46t173"))}</button></div></div></div>`);
445
446
  } else _push(`<!---->`);
446
447
  _push(ssrRenderComponent(_component_a_spin, { spinning: !unref(dcw).loaded && !unref(dcw).error }, {
447
448
  default: withCtx((_, _push, _parent, _scopeId) => {
448
449
  if (_push) {
449
- _push(`<section class="aw-tile table-card" data-v-ff580c34${_scopeId}><table class="nodes-table" data-v-ff580c34${_scopeId}><thead data-v-ff580c34${_scopeId}><tr data-v-ff580c34${_scopeId}><th data-v-ff580c34${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1e2dtkt053"))}</th><th data-v-ff580c34${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k403cy054"))}</th><th data-v-ff580c34${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k42w8s055"))}</th><th data-v-ff580c34${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1deqh0d056"))}</th><th data-v-ff580c34${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k9r7d4e018"))}</th><th data-v-ff580c34${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1k79ec9057"))}</th><th data-v-ff580c34${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1dexou6058"))}</th><th data-v-ff580c34${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1b1nnaa059"))}</th><th data-v-ff580c34${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1i8rtqt060"))}</th><th class="right" data-v-ff580c34${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k40aa6061"))}</th></tr></thead><tbody data-v-ff580c34${_scopeId}><!--[-->`);
450
+ _push(`<section class="aw-tile table-card" data-v-84c0b97c${_scopeId}><table class="nodes-table" data-v-84c0b97c${_scopeId}><thead data-v-84c0b97c${_scopeId}><tr data-v-84c0b97c${_scopeId}><th data-v-84c0b97c${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1e2dtkt053"))}</th><th data-v-84c0b97c${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k403cy054"))}</th><th data-v-84c0b97c${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k42w8s055"))}</th><th data-v-84c0b97c${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1deqh0d056"))}</th><th data-v-84c0b97c${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k9r7d4e018"))}</th><th data-v-84c0b97c${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1k79ec9057"))}</th><th data-v-84c0b97c${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1dexou6058"))}</th><th data-v-84c0b97c${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1b1nnaa059"))}</th><th data-v-84c0b97c${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1i8rtqt060"))}</th><th class="right" data-v-84c0b97c${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k40aa6061"))}</th></tr></thead><tbody data-v-84c0b97c${_scopeId}><!--[-->`);
450
451
  ssrRenderList(lineNodes.value, (n) => {
451
- _push(`<tr class="${ssrRenderClass({ "node-paused": !n.enabled })}" data-v-ff580c34${_scopeId}><td data-v-ff580c34${_scopeId}><span class="mono dim" data-v-ff580c34${_scopeId}>${ssrInterpolate(n.id.slice(0, 8))}</span><b data-v-ff580c34${_scopeId}>${ssrInterpolate(n.name)}</b><small class="mono ch" data-v-ff580c34${_scopeId}>${ssrInterpolate(dcwTemplateRefCh(n.templateRef))}</small></td><td data-v-ff580c34${_scopeId}><button class="${ssrRenderClass([{ on: n.enabled }, "ctrl-toggle"])}"${ssrIncludeBooleanAttr(togglingId.value === n.id) ? " disabled" : ""}${ssrRenderAttr("title", n.enabled ? "暂停该节点控制:下发将被拒绝" : "开启该节点控制:恢复可下发")} data-v-ff580c34${_scopeId}><span class="ct-dot" data-v-ff580c34${_scopeId}></span> ${ssrInterpolate(n.enabled ? _ctx.$t("dcwDetail.k3o3ib3159") : _ctx.$t("dcwDetail.k3n93ed062"))}</button></td><td data-v-ff580c34${_scopeId}>`);
452
- if (!n.enabled) _push(`<span class="st-pill paused" data-v-ff580c34${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k3n93ed062"))}</span>`);
453
- else _push(`<span class="${ssrRenderClass([n.state, "st-pill"])}" data-v-ff580c34${_scopeId}>${ssrInterpolate(stateLabel[n.state] ?? n.state)}</span>`);
454
- _push(`</td><td class="mono val" data-v-ff580c34${_scopeId}>${ssrInterpolate(n.value != null ? n.value.toFixed(n.decimals) : "--")} <small data-v-ff580c34${_scopeId}>${ssrInterpolate(n.unit)}</small>`);
455
- if (n.lastAckAt) _push(`<small class="dim" data-v-ff580c34${_scopeId}> · ${ssrInterpolate(n.lastAckAt.slice(11, 19))}</small>`);
452
+ _push(`<tr class="${ssrRenderClass({ "node-paused": !n.enabled })}" data-v-84c0b97c${_scopeId}><td data-v-84c0b97c${_scopeId}><span class="mono dim" data-v-84c0b97c${_scopeId}>${ssrInterpolate(n.id.slice(0, 8))}</span><b data-v-84c0b97c${_scopeId}>${ssrInterpolate(n.name)}</b><small class="mono ch" data-v-84c0b97c${_scopeId}>${ssrInterpolate(dcwTemplateRefCh(n.templateRef))}</small></td><td data-v-84c0b97c${_scopeId}><button class="${ssrRenderClass([{ on: n.enabled }, "ctrl-toggle"])}"${ssrIncludeBooleanAttr(togglingId.value === n.id) ? " disabled" : ""}${ssrRenderAttr("title", n.enabled ? _ctx.$t("dcwDetail.pauseCtrlTip") : _ctx.$t("dcwDetail.enableCtrlTip"))} data-v-84c0b97c${_scopeId}><span class="ct-dot" data-v-84c0b97c${_scopeId}></span> ${ssrInterpolate(n.enabled ? _ctx.$t("dcwDetail.k3o3ib3159") : _ctx.$t("dcwDetail.k3n93ed062"))}</button></td><td data-v-84c0b97c${_scopeId}>`);
453
+ if (!n.enabled) _push(`<span class="st-pill paused" data-v-84c0b97c${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k3n93ed062"))}</span>`);
454
+ else _push(`<span class="${ssrRenderClass([n.state, "st-pill"])}" data-v-84c0b97c${_scopeId}>${ssrInterpolate(stateLabel.value[n.state] ?? n.state)}</span>`);
455
+ _push(`</td><td class="mono val" data-v-84c0b97c${_scopeId}>${ssrInterpolate(n.value != null ? n.value.toFixed(n.decimals) : "--")} <small data-v-84c0b97c${_scopeId}>${ssrInterpolate(n.unit)}</small>`);
456
+ if (n.lastAckAt) _push(`<small class="dim" data-v-84c0b97c${_scopeId}> · ${ssrInterpolate(n.lastAckAt.slice(11, 19))}</small>`);
456
457
  else _push(`<!---->`);
457
- _push(`</td><td class="mono val" data-v-ff580c34${_scopeId}><span${ssrRenderAttr("title", n.lastReadError ?? _ctx.$t("dcwDetail.k9r7d4e019"))} class="${ssrRenderClass({ "read-stale": n.lastReadError })}" data-v-ff580c34${_scopeId}>${ssrInterpolate(n.readValue != null ? n.readValue.toFixed(n.decimals) : "--")}</span><small data-v-ff580c34${_scopeId}>${ssrInterpolate(n.unit)}</small>`);
458
- if (n.lastReadAt) _push(`<small class="dim" data-v-ff580c34${_scopeId}> · ${ssrInterpolate(n.lastReadAt.slice(11, 19))}</small>`);
458
+ _push(`</td><td class="mono val" data-v-84c0b97c${_scopeId}><span${ssrRenderAttr("title", n.lastReadError ?? _ctx.$t("dcwDetail.k9r7d4e019"))} class="${ssrRenderClass({ "read-stale": n.lastReadError })}" data-v-84c0b97c${_scopeId}>${ssrInterpolate(n.readValue != null ? n.readValue.toFixed(n.decimals) : "--")}</span><small data-v-84c0b97c${_scopeId}>${ssrInterpolate(n.unit)}</small>`);
459
+ if (n.lastReadAt) _push(`<small class="dim" data-v-84c0b97c${_scopeId}> · ${ssrInterpolate(n.lastReadAt.slice(11, 19))}</small>`);
459
460
  else _push(`<!---->`);
460
- _push(`<button class="mini-btn read-btn"${ssrIncludeBooleanAttr(readingId.value === n.id) ? " disabled" : ""}${ssrRenderAttr("title", _ctx.$t("dcwDetail.k9r7d4e020"))} data-v-ff580c34${_scopeId}>${ssrInterpolate(readingId.value === n.id ? "···" : _ctx.$t("dcwDetail.k9r7d4e021"))}</button></td><td data-v-ff580c34${_scopeId}><div class="write-row" data-v-ff580c34${_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-ff580c34${_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-ff580c34${_scopeId}>${ssrInterpolate(writingId.value === n.id ? _ctx.$t("dcwDetail.k3l3h80123") : _ctx.$t("dcwDetail.k3w6td174"))}</button></div></td><td class="mono dim" data-v-ff580c34${_scopeId}>${ssrInterpolate(n.min)} ~ ${ssrInterpolate(n.max)} ${ssrInterpolate(n.unit)}</td><td class="mono" data-v-ff580c34${_scopeId}>${ssrInterpolate(n.holdIntervalMs == null ? _ctx.$t("dcwDetail.k3zul4160") : `${n.holdIntervalMs}ms`)} <small class="dim"${ssrRenderAttr("title", _ctx.$t("dcwDetail.k9r7d4e016"))} data-v-ff580c34${_scopeId}>· ${ssrInterpolate(n.readIntervalMs === 0 ? _ctx.$t("dcwDetail.k9r7d4e022") : n.readIntervalMs == null ? _ctx.$t("dcwDetail.k9r7d4e023") : `${n.readIntervalMs}ms`)}</small></td><td data-v-ff580c34${_scopeId}>${ssrInterpolate(nodeDeviceNames(n))}</td><td class="right" data-v-ff580c34${_scopeId}><button class="mini-btn danger" data-v-ff580c34${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k3xakp063"))}</button></td></tr>`);
461
+ _push(`<button class="mini-btn read-btn"${ssrIncludeBooleanAttr(readingId.value === n.id) ? " disabled" : ""}${ssrRenderAttr("title", _ctx.$t("dcwDetail.k9r7d4e020"))} data-v-84c0b97c${_scopeId}>${ssrInterpolate(readingId.value === n.id ? "···" : _ctx.$t("dcwDetail.k9r7d4e021"))}</button></td><td data-v-84c0b97c${_scopeId}><div class="write-row" data-v-84c0b97c${_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 ? _ctx.$t("dcwDetail.pausedTip") : "")} data-v-84c0b97c${_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 ? _ctx.$t("dcwDetail.pausedTip") : _ctx.$t("dcwDetail.writeTip"))} data-v-84c0b97c${_scopeId}>${ssrInterpolate(writingId.value === n.id ? _ctx.$t("dcwDetail.k3l3h80123") : _ctx.$t("dcwDetail.k3w6td174"))}</button></div></td><td class="mono dim" data-v-84c0b97c${_scopeId}>${ssrInterpolate(n.min)} ~ ${ssrInterpolate(n.max)} ${ssrInterpolate(n.unit)}</td><td class="mono" data-v-84c0b97c${_scopeId}>${ssrInterpolate(n.holdIntervalMs == null ? _ctx.$t("dcwDetail.k3zul4160") : `${n.holdIntervalMs}ms`)} <small class="dim"${ssrRenderAttr("title", _ctx.$t("dcwDetail.k9r7d4e016"))} data-v-84c0b97c${_scopeId}>· ${ssrInterpolate(n.readIntervalMs === 0 ? _ctx.$t("dcwDetail.k9r7d4e022") : n.readIntervalMs == null ? _ctx.$t("dcwDetail.k9r7d4e023") : `${n.readIntervalMs}ms`)}</small></td><td data-v-84c0b97c${_scopeId}>${ssrInterpolate(nodeDeviceNames(n))}</td><td class="right" data-v-84c0b97c${_scopeId}><button class="mini-btn danger" data-v-84c0b97c${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k3xakp063"))}</button></td></tr>`);
461
462
  });
462
463
  _push(`<!--]-->`);
463
- if (unref(dcw).loaded && lineNodes.value.length === 0) _push(`<tr data-v-ff580c34${_scopeId}><td colspan="9" data-v-ff580c34${_scopeId}><div class="pane-empty" style="${ssrRenderStyle({ "min-height": "120px" })}" data-v-ff580c34${_scopeId}><p class="pe-sub" data-v-ff580c34${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1wtecyw064"))}</p></div></td></tr>`);
464
+ if (unref(dcw).loaded && lineNodes.value.length === 0) _push(`<tr data-v-84c0b97c${_scopeId}><td colspan="9" data-v-84c0b97c${_scopeId}><div class="pane-empty" style="${ssrRenderStyle({ "min-height": "120px" })}" data-v-84c0b97c${_scopeId}><p class="pe-sub" data-v-84c0b97c${_scopeId}>${ssrInterpolate(_ctx.$t("dcwDetail.k1wtecyw064"))}</p></div></td></tr>`);
464
465
  else _push(`<!---->`);
465
466
  _push(`</tbody></table></section>`);
466
467
  } else return [createVNode("section", { class: "aw-tile table-card" }, [createVNode("table", { class: "nodes-table" }, [createVNode("thead", null, [createVNode("tr", null, [
@@ -487,7 +488,7 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
487
488
  createVNode("td", null, [createVNode("button", {
488
489
  class: ["ctrl-toggle", { on: n.enabled }],
489
490
  disabled: togglingId.value === n.id,
490
- title: n.enabled ? "暂停该节点控制:下发将被拒绝" : "开启该节点控制:恢复可下发",
491
+ title: n.enabled ? _ctx.$t("dcwDetail.pauseCtrlTip") : _ctx.$t("dcwDetail.enableCtrlTip"),
491
492
  onClick: ($event) => toggleControl(n.id, !n.enabled)
492
493
  }, [createVNode("span", { class: "ct-dot" }), createTextVNode(" " + toDisplayString(n.enabled ? _ctx.$t("dcwDetail.k3o3ib3159") : _ctx.$t("dcwDetail.k3n93ed062")), 1)], 10, [
493
494
  "disabled",
@@ -500,7 +501,7 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
500
501
  }, toDisplayString(_ctx.$t("dcwDetail.k3n93ed062")), 1)) : (openBlock(), createBlock("span", {
501
502
  key: 1,
502
503
  class: ["st-pill", n.state]
503
- }, toDisplayString(stateLabel[n.state] ?? n.state), 3))]),
504
+ }, toDisplayString(stateLabel.value[n.state] ?? n.state), 3))]),
504
505
  createVNode("td", { class: "mono val" }, [
505
506
  createTextVNode(toDisplayString(n.value != null ? n.value.toFixed(n.decimals) : "--") + " ", 1),
506
507
  createVNode("small", null, toDisplayString(n.unit), 1),
@@ -539,7 +540,7 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
539
540
  max: n.max,
540
541
  step: 10 ** -n.decimals,
541
542
  disabled: !n.enabled,
542
- title: !n.enabled ? "当前节点暂停:开启控制后方可设定" : ""
543
+ title: !n.enabled ? _ctx.$t("dcwDetail.pausedTip") : ""
543
544
  }, null, 8, [
544
545
  "onUpdate:modelValue",
545
546
  "placeholder",
@@ -556,7 +557,7 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
556
557
  ]]), createVNode("button", {
557
558
  class: "mini-btn write-btn",
558
559
  disabled: !n.enabled || writingId.value === n.id || setInputs[n.id] == null || setInputs[n.id] === "",
559
- title: !n.enabled ? "当前节点暂停:开启控制后方可设定" : "下发设定值",
560
+ title: !n.enabled ? _ctx.$t("dcwDetail.pausedTip") : _ctx.$t("dcwDetail.writeTip"),
560
561
  onClick: ($event) => doWrite(n.id, Number(setInputs[n.id]))
561
562
  }, toDisplayString(writingId.value === n.id ? _ctx.$t("dcwDetail.k3l3h80123") : _ctx.$t("dcwDetail.k3w6td174")), 9, [
562
563
  "disabled",
@@ -581,184 +582,184 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
581
582
  }),
582
583
  _: 1
583
584
  }, _parent));
584
- _push(`<section class="aw-tile recipe-card" data-v-ff580c34><div class="recipe-hd" data-v-ff580c34><h3 data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1j8w3hd065"))}</h3><span class="panel-tag mono" data-v-ff580c34>${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-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1akm6dc066"))}</button><button class="mini-btn" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1aka0ki067"))}</button></div><p class="recipe-sub" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k6bl2q8068"))}</p>`);
585
+ _push(`<section class="aw-tile recipe-card" data-v-84c0b97c><div class="recipe-hd" data-v-84c0b97c><h3 data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1j8w3hd065"))}</h3><span class="panel-tag mono" data-v-84c0b97c>${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-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1akm6dc066"))}</button><button class="mini-btn" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1aka0ki067"))}</button></div><p class="recipe-sub" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k6bl2q8068"))}</p>`);
585
586
  if (lineProducts.value.length) {
586
- _push(`<div class="product-row" data-v-ff580c34><button class="${ssrRenderClass([{ on: filterProductId.value === "" }, "prod-chip"])}" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k3x4t1069"))}</button><!--[-->`);
587
+ _push(`<div class="product-row" data-v-84c0b97c><button class="${ssrRenderClass([{ on: filterProductId.value === "" }, "prod-chip"])}" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k3x4t1069"))}</button><!--[-->`);
587
588
  ssrRenderList(lineProducts.value, (p) => {
588
- _push(`<button class="${ssrRenderClass([{ on: filterProductId.value === p.id }, "prod-chip"])}"${ssrRenderAttr("title", p.description)} data-v-ff580c34>${ssrInterpolate(p.name)} <span class="prod-del"${ssrRenderAttr("title", _ctx.$t("dcwDetail.k1bpfjgx012"))} data-v-ff580c34>×</span></button>`);
589
+ _push(`<button class="${ssrRenderClass([{ on: filterProductId.value === p.id }, "prod-chip"])}"${ssrRenderAttr("title", p.description)} data-v-84c0b97c>${ssrInterpolate(p.name)} <span class="prod-del"${ssrRenderAttr("title", _ctx.$t("dcwDetail.k1bpfjgx012"))} data-v-84c0b97c>×</span></button>`);
589
590
  });
590
591
  _push(`<!--]--></div>`);
591
592
  } else _push(`<p class="dim" style="${ssrRenderStyle({
592
593
  "margin": "6px 0 12px",
593
594
  "font-size": "12px"
594
- })}" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.knov3zg070"))}</p>`);
595
- _push(`<div class="recipe-grid" data-v-ff580c34><!--[-->`);
595
+ })}" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.knov3zg070"))}</p>`);
596
+ _push(`<div class="recipe-grid" data-v-84c0b97c><!--[-->`);
596
597
  ssrRenderList(visibleRecipes.value, (r) => {
597
- _push(`<div class="recipe-item" data-v-ff580c34><div class="recipe-name" data-v-ff580c34><b data-v-ff580c34>${ssrInterpolate(r.name)}</b>`);
598
- if (r.version) _push(`<span class="param-chip mono"${ssrRenderAttr("title", unref(t)("dcwDetail.histTitle"))} data-v-ff580c34>v${ssrInterpolate(r.version)}</span>`);
598
+ _push(`<div class="recipe-item" data-v-84c0b97c><div class="recipe-name" data-v-84c0b97c><b data-v-84c0b97c>${ssrInterpolate(r.name)}</b>`);
599
+ if (r.version) _push(`<span class="param-chip mono"${ssrRenderAttr("title", unref(t)("dcwDetail.histTitle"))} data-v-84c0b97c>v${ssrInterpolate(r.version)}</span>`);
599
600
  else _push(`<!---->`);
600
- _push(`<small class="dim" data-v-ff580c34>${ssrInterpolate(productName(r.productId))}</small><small class="mono dim" data-v-ff580c34>${ssrInterpolate(r.id)}</small></div>`);
601
- if (r.description) _push(`<p class="dim desc" data-v-ff580c34>${ssrInterpolate(r.description)}</p>`);
601
+ _push(`<small class="dim" data-v-84c0b97c>${ssrInterpolate(productName(r.productId))}</small><small class="mono dim" data-v-84c0b97c>${ssrInterpolate(r.id)}</small></div>`);
602
+ if (r.description) _push(`<p class="dim desc" data-v-84c0b97c>${ssrInterpolate(r.description)}</p>`);
602
603
  else _push(`<!---->`);
603
- _push(`<div class="recipe-params mono" data-v-ff580c34><!--[-->`);
604
+ _push(`<div class="recipe-params mono" data-v-84c0b97c><!--[-->`);
604
605
  ssrRenderList(r.params, (p, i) => {
605
- _push(`<span class="${ssrRenderClass([{ stale: paramStatus(p.nodeId, r.lineId) }, "param-chip"])}"${ssrRenderAttr("title", paramStatus(p.nodeId, r.lineId)?.label ?? "")} data-v-ff580c34>${ssrInterpolate(paramNodeName(p.nodeId))} = ${ssrInterpolate(p.value)}`);
606
- if (paramStatus(p.nodeId, r.lineId)) _push(`<span class="chip-stale-tag" data-v-ff580c34>${ssrInterpolate(paramStatus(p.nodeId, r.lineId).label)}</span>`);
606
+ _push(`<span class="${ssrRenderClass([{ stale: paramStatus(p.nodeId, r.lineId) }, "param-chip"])}"${ssrRenderAttr("title", paramStatus(p.nodeId, r.lineId)?.label ?? "")} data-v-84c0b97c>${ssrInterpolate(paramNodeName(p.nodeId))} = ${ssrInterpolate(p.value)}`);
607
+ if (paramStatus(p.nodeId, r.lineId)) _push(`<span class="chip-stale-tag" data-v-84c0b97c>${ssrInterpolate(paramStatus(p.nodeId, r.lineId).label)}</span>`);
607
608
  else _push(`<!---->`);
608
609
  _push(`</span>`);
609
610
  });
610
611
  _push(`<!--]--><!--[-->`);
611
612
  ssrRenderList(r.daqWindows, (w, i) => {
612
- _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-ff580c34> ◎ ${ssrInterpolate(daqNodeCh(w.nodeId))} ∈ [${ssrInterpolate(w.min ?? "-∞")}, ${ssrInterpolate(w.max ?? "+∞")}]`);
613
- if (daqWindowStatus(w.nodeId, r.lineId)) _push(`<span class="chip-stale-tag" data-v-ff580c34>${ssrInterpolate(daqWindowStatus(w.nodeId, r.lineId).label)}</span>`);
613
+ _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-84c0b97c> ◎ ${ssrInterpolate(daqNodeCh(w.nodeId))} ∈ [${ssrInterpolate(w.min ?? "-∞")}, ${ssrInterpolate(w.max ?? "+∞")}]`);
614
+ if (daqWindowStatus(w.nodeId, r.lineId)) _push(`<span class="chip-stale-tag" data-v-84c0b97c>${ssrInterpolate(daqWindowStatus(w.nodeId, r.lineId).label)}</span>`);
614
615
  else _push(`<!---->`);
615
616
  _push(`</span>`);
616
617
  });
617
- _push(`<!--]--></div><div class="recipe-actions" data-v-ff580c34><button class="pill-btn" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1497qvr071"))}</button><button class="mini-btn" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k45eb0072"))}</button><button class="mini-btn" data-v-ff580c34>${ssrInterpolate(unref(t)("dcwDetail.histBtn"))}`);
618
- if (r.version) _push(`<span class="mono" data-v-ff580c34>·v${ssrInterpolate(r.version)}</span>`);
618
+ _push(`<!--]--></div><div class="recipe-actions" data-v-84c0b97c><button class="pill-btn" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1497qvr071"))}</button><button class="mini-btn" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k45eb0072"))}</button><button class="mini-btn" data-v-84c0b97c>${ssrInterpolate(unref(t)("dcwDetail.histBtn"))}`);
619
+ if (r.version) _push(`<span class="mono" data-v-84c0b97c>·v${ssrInterpolate(r.version)}</span>`);
619
620
  else _push(`<!---->`);
620
- _push(`</button><button class="mini-btn danger" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k3xakp063"))}</button></div></div>`);
621
+ _push(`</button><button class="mini-btn danger" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k3xakp063"))}</button></div></div>`);
621
622
  });
622
623
  _push(`<!--]-->`);
623
- if (visibleRecipes.value.length === 0) _push(`<div class="pane-empty" style="${ssrRenderStyle({ "grid-column": "1 / -1" })}" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.keko1xy073"))}</div>`);
624
+ if (visibleRecipes.value.length === 0) _push(`<div class="pane-empty" style="${ssrRenderStyle({ "grid-column": "1 / -1" })}" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.keko1xy073"))}</div>`);
624
625
  else _push(`<!---->`);
625
626
  _push(`</div>`);
626
- if (applyResult.value) _push(`<div class="banner good" data-v-ff580c34>${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-ff580c34>${ssrInterpolate(runDataLoading.value ? _ctx.$t("dcwDetail.k1br0ij9161") : _ctx.$t("dcwDetail.kxwei5175"))}</button></div>`);
627
+ if (applyResult.value) _push(`<div class="banner good" data-v-84c0b97c>${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-84c0b97c>${ssrInterpolate(runDataLoading.value ? _ctx.$t("dcwDetail.k1br0ij9161") : _ctx.$t("dcwDetail.kxwei5175"))}</button></div>`);
627
628
  else _push(`<!---->`);
628
629
  if (lineRuns.value.length) {
629
- _push(`<div class="runs" data-v-ff580c34><p class="sec-label" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1rjer8d074"))}</p><table class="nodes-table" data-v-ff580c34><thead data-v-ff580c34><tr data-v-ff580c34><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k400lb075"))}</th><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))}</th><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k4497j076"))}</th><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1bqhtmu077"))}</th><th class="right" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k40aa6061"))}</th></tr></thead><tbody data-v-ff580c34><!--[-->`);
630
+ _push(`<div class="runs" data-v-84c0b97c><p class="sec-label" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1rjer8d074"))}</p><table class="nodes-table" data-v-84c0b97c><thead data-v-84c0b97c><tr data-v-84c0b97c><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k400lb075"))}</th><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))}</th><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k4497j076"))}</th><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1bqhtmu077"))}</th><th class="right" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k40aa6061"))}</th></tr></thead><tbody data-v-84c0b97c><!--[-->`);
630
631
  ssrRenderList([...lineRuns.value].reverse().slice(0, 8), (run) => {
631
- _push(`<tr data-v-ff580c34><td class="mono" data-v-ff580c34>${ssrInterpolate(run.id)}</td><td data-v-ff580c34>${ssrInterpolate(run.recipeName)}</td><td class="mono dim" data-v-ff580c34>${ssrInterpolate(run.startedAt.slice(5, 19))} ~ ${ssrInterpolate(run.endedAt ? run.endedAt.slice(5, 19) : _ctx.$t("dcwDetail.k3vpfg9162"))}</td><td data-v-ff580c34><span class="${ssrRenderClass([run.results.every((r) => r.ok) ? "ok" : "warn", "st-pill"])}" data-v-ff580c34>${ssrInterpolate(run.results.filter((r) => r.ok).length)}/${ssrInterpolate(run.results.length)}</span></td><td class="right" data-v-ff580c34><button class="mini-btn"${ssrIncludeBooleanAttr(runDataLoading.value) ? " disabled" : ""} data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1dzwrdp078"))}</button>`);
632
- if (!run.endedAt) _push(`<button class="mini-btn" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1blr7y7079"))}</button>`);
632
+ _push(`<tr data-v-84c0b97c><td class="mono" data-v-84c0b97c>${ssrInterpolate(run.id)}</td><td data-v-84c0b97c>${ssrInterpolate(run.recipeName)}</td><td class="mono dim" data-v-84c0b97c>${ssrInterpolate(run.startedAt.slice(5, 19))} ~ ${ssrInterpolate(run.endedAt ? run.endedAt.slice(5, 19) : _ctx.$t("dcwDetail.k3vpfg9162"))}</td><td data-v-84c0b97c><span class="${ssrRenderClass([run.results.every((r) => r.ok) ? "ok" : "warn", "st-pill"])}" data-v-84c0b97c>${ssrInterpolate(run.results.filter((r) => r.ok).length)}/${ssrInterpolate(run.results.length)}</span></td><td class="right" data-v-84c0b97c><button class="mini-btn"${ssrIncludeBooleanAttr(runDataLoading.value) ? " disabled" : ""} data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1dzwrdp078"))}</button>`);
633
+ if (!run.endedAt) _push(`<button class="mini-btn" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1blr7y7079"))}</button>`);
633
634
  else _push(`<!---->`);
634
635
  _push(`</td></tr>`);
635
636
  });
636
637
  _push(`<!--]--></tbody></table></div>`);
637
638
  } else _push(`<!---->`);
638
639
  if (runDataView.value) {
639
- _push(`<div class="modal-mask" data-v-ff580c34><div class="modal" data-v-ff580c34><h3 class="m-title" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k11lq94k145"))} ${ssrInterpolate(runDataView.value.data.run.recipeName)}(${ssrInterpolate(runDataView.value.runId)}) </h3><p class="sec-label" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1me41w8080"))}</p><table class="nodes-table" data-v-ff580c34><thead data-v-ff580c34><tr data-v-ff580c34><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k48hde081"))}</th><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</th><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k40t11083"))}</th><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k3xuaw084"))}</th><th data-v-ff580c34>min ~ max</th><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k4118o085"))}</th></tr></thead><tbody data-v-ff580c34><!--[-->`);
640
+ _push(`<div class="modal-mask" data-v-84c0b97c><div class="modal" data-v-84c0b97c><h3 class="m-title" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k11lq94k145"))} ${ssrInterpolate(runDataView.value.data.run.recipeName)}(${ssrInterpolate(runDataView.value.runId)}) </h3><p class="sec-label" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1me41w8080"))}</p><table class="nodes-table" data-v-84c0b97c><thead data-v-84c0b97c><tr data-v-84c0b97c><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k48hde081"))}</th><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</th><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k40t11083"))}</th><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k3xuaw084"))}</th><th data-v-84c0b97c>min ~ max</th><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k4118o085"))}</th></tr></thead><tbody data-v-84c0b97c><!--[-->`);
640
641
  ssrRenderList(runDataView.value.data.daq, (d) => {
641
- _push(`<tr data-v-ff580c34><td data-v-ff580c34>${ssrInterpolate(d.ch)}<small class="mono dim" data-v-ff580c34>${ssrInterpolate(d.unit)}</small></td><td data-v-ff580c34>${ssrInterpolate(d.nodeName)}</td><td class="mono" data-v-ff580c34>${ssrInterpolate(d.latest)}</td><td class="mono" data-v-ff580c34>${ssrInterpolate(d.avg)}</td><td class="mono dim" data-v-ff580c34>${ssrInterpolate(d.min)} ~ ${ssrInterpolate(d.max)}</td><td class="mono dim" data-v-ff580c34>${ssrInterpolate(d.cnt)}</td></tr>`);
642
+ _push(`<tr data-v-84c0b97c><td data-v-84c0b97c>${ssrInterpolate(d.ch)}<small class="mono dim" data-v-84c0b97c>${ssrInterpolate(d.unit)}</small></td><td data-v-84c0b97c>${ssrInterpolate(d.nodeName)}</td><td class="mono" data-v-84c0b97c>${ssrInterpolate(d.latest)}</td><td class="mono" data-v-84c0b97c>${ssrInterpolate(d.avg)}</td><td class="mono dim" data-v-84c0b97c>${ssrInterpolate(d.min)} ~ ${ssrInterpolate(d.max)}</td><td class="mono dim" data-v-84c0b97c>${ssrInterpolate(d.cnt)}</td></tr>`);
642
643
  });
643
644
  _push(`<!--]-->`);
644
- if (runDataView.value.data.daq.length === 0) _push(`<tr data-v-ff580c34><td colspan="6" class="dim" style="${ssrRenderStyle({
645
+ if (runDataView.value.data.daq.length === 0) _push(`<tr data-v-84c0b97c><td colspan="6" class="dim" style="${ssrRenderStyle({
645
646
  "text-align": "center",
646
647
  "padding": "12px"
647
- })}" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.kd457ry086"))}</td></tr>`);
648
+ })}" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.kd457ry086"))}</td></tr>`);
648
649
  else _push(`<!---->`);
649
- _push(`</tbody></table><p class="sec-label" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k12b7cxs087"))}</p><table class="nodes-table" data-v-ff580c34><thead data-v-ff580c34><tr data-v-ff580c34><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k3xbjr088"))}</th><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</th><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k3ncbsh089"))}</th><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k3lh3mz090"))}</th><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k454pg091"))}</th><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k40ieu092"))}</th></tr></thead><tbody data-v-ff580c34><!--[-->`);
650
+ _push(`</tbody></table><p class="sec-label" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k12b7cxs087"))}</p><table class="nodes-table" data-v-84c0b97c><thead data-v-84c0b97c><tr data-v-84c0b97c><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k3xbjr088"))}</th><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</th><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k3ncbsh089"))}</th><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k3lh3mz090"))}</th><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k454pg091"))}</th><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k40ieu092"))}</th></tr></thead><tbody data-v-84c0b97c><!--[-->`);
650
651
  ssrRenderList(runDataView.value.data.writes, (w, i) => {
651
- _push(`<tr data-v-ff580c34><td data-v-ff580c34>${ssrInterpolate(w.param)}</td><td data-v-ff580c34>${ssrInterpolate(w.nodeName)}</td><td class="mono" data-v-ff580c34>${ssrInterpolate(w.eng)}</td><td class="mono dim" data-v-ff580c34>${ssrInterpolate(w.raw)}</td><td data-v-ff580c34><span class="${ssrRenderClass([w.ok ? "ok" : "alarm", "st-pill"])}" data-v-ff580c34>${ssrInterpolate(w.ok ? "ACK" : _ctx.$t("dcwDetail.k3yit7139"))}</span></td><td class="mono dim" data-v-ff580c34>${ssrInterpolate(w.at.slice(5, 19))}</td></tr>`);
652
+ _push(`<tr data-v-84c0b97c><td data-v-84c0b97c>${ssrInterpolate(w.param)}</td><td data-v-84c0b97c>${ssrInterpolate(w.nodeName)}</td><td class="mono" data-v-84c0b97c>${ssrInterpolate(w.eng)}</td><td class="mono dim" data-v-84c0b97c>${ssrInterpolate(w.raw)}</td><td data-v-84c0b97c><span class="${ssrRenderClass([w.ok ? "ok" : "alarm", "st-pill"])}" data-v-84c0b97c>${ssrInterpolate(w.ok ? "ACK" : _ctx.$t("dcwDetail.k3yit7139"))}</span></td><td class="mono dim" data-v-84c0b97c>${ssrInterpolate(w.at.slice(5, 19))}</td></tr>`);
652
653
  });
653
654
  _push(`<!--]-->`);
654
- if (runDataView.value.data.writes.length === 0) _push(`<tr data-v-ff580c34><td colspan="6" class="dim" style="${ssrRenderStyle({
655
+ if (runDataView.value.data.writes.length === 0) _push(`<tr data-v-84c0b97c><td colspan="6" class="dim" style="${ssrRenderStyle({
655
656
  "text-align": "center",
656
657
  "padding": "12px"
657
- })}" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.knzcp8i093"))}</td></tr>`);
658
+ })}" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.knzcp8i093"))}</td></tr>`);
658
659
  else _push(`<!---->`);
659
- _push(`</tbody></table><div class="m-actions" data-v-ff580c34><button class="aw-pill outline" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k3x62t043"))}</button></div></div></div>`);
660
+ _push(`</tbody></table><div class="m-actions" data-v-84c0b97c><button class="aw-pill outline" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k3x62t043"))}</button></div></div></div>`);
660
661
  } else _push(`<!---->`);
661
662
  _push(`</section>`);
662
663
  if (recipeOpen.value) {
663
- _push(`<div class="modal-mask" data-v-ff580c34><div class="modal" data-v-ff580c34><h3 class="m-title" data-v-ff580c34>${ssrInterpolate(recipeEditing.value ? _ctx.$t("dcwDetail.k1iiwk0i163") : _ctx.$t("dcwDetail.k1efq0r9176"))}</h3><div class="f-grid" data-v-ff580c34><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1dw4fzf094"))}<em data-v-ff580c34>*</em></span><select class="inp" data-v-ff580c34><!--[-->`);
664
+ _push(`<div class="modal-mask" data-v-84c0b97c><div class="modal" data-v-84c0b97c><h3 class="m-title" data-v-84c0b97c>${ssrInterpolate(recipeEditing.value ? _ctx.$t("dcwDetail.k1iiwk0i163") : _ctx.$t("dcwDetail.k1efq0r9176"))}</h3><div class="f-grid" data-v-84c0b97c><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1dw4fzf094"))}<em data-v-84c0b97c>*</em></span><select class="inp" data-v-84c0b97c><!--[-->`);
664
665
  ssrRenderList(lineProducts.value, (p) => {
665
- _push(`<option${ssrRenderAttr("value", p.id)} data-v-ff580c34${ssrIncludeBooleanAttr(Array.isArray(recipeForm.productId) ? ssrLooseContain(recipeForm.productId, p.id) : ssrLooseEqual(recipeForm.productId, p.id)) ? " selected" : ""}>${ssrInterpolate(p.name)}</option>`);
666
+ _push(`<option${ssrRenderAttr("value", p.id)} data-v-84c0b97c${ssrIncludeBooleanAttr(Array.isArray(recipeForm.productId) ? ssrLooseContain(recipeForm.productId, p.id) : ssrLooseEqual(recipeForm.productId, p.id)) ? " selected" : ""}>${ssrInterpolate(p.name)}</option>`);
666
667
  });
667
- _push(`<!--]--></select></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1l3f8so095"))}<em data-v-ff580c34>*</em></span><input${ssrRenderAttr("value", recipeForm.name)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k12c11vm014"))} data-v-ff580c34></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k40gkk096"))}</span><input${ssrRenderAttr("value", recipeForm.description)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1hxx8hy015"))} data-v-ff580c34></label></div><p class="sec-label" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.ka1kfgh097"))}</p><!--[-->`);
668
+ _push(`<!--]--></select></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1l3f8so095"))}<em data-v-84c0b97c>*</em></span><input${ssrRenderAttr("value", recipeForm.name)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k12c11vm014"))} data-v-84c0b97c></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k40gkk096"))}</span><input${ssrRenderAttr("value", recipeForm.description)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1hxx8hy015"))} data-v-84c0b97c></label></div><p class="sec-label" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.ka1kfgh097"))}</p><!--[-->`);
668
669
  ssrRenderList(recipeForm.params, (p, i) => {
669
- _push(`<div class="param-row" data-v-ff580c34><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1e2dtkt053"))}</span><select class="inp" data-v-ff580c34><!--[-->`);
670
+ _push(`<div class="param-row" data-v-84c0b97c><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1e2dtkt053"))}</span><select class="inp" data-v-84c0b97c><!--[-->`);
670
671
  ssrRenderList(lineNodes.value, (n) => {
671
- _push(`<option${ssrRenderAttr("value", n.id)} data-v-ff580c34${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>`);
672
+ _push(`<option${ssrRenderAttr("value", n.id)} data-v-84c0b97c${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>`);
672
673
  });
673
674
  _push(`<!--]--></select>`);
674
- if (paramStatus(p.nodeId, lineId.value)) _push(`<span class="row-stale" data-v-ff580c34>${ssrInterpolate(paramStatus(p.nodeId, lineId.value).label)}</span>`);
675
+ if (paramStatus(p.nodeId, lineId.value)) _push(`<span class="row-stale" data-v-84c0b97c>${ssrInterpolate(paramStatus(p.nodeId, lineId.value).label)}</span>`);
675
676
  else _push(`<!---->`);
676
- _push(`</label><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k3renp2098"))}<em data-v-ff580c34>*</em></span><input${ssrRenderAttr("value", p.value)} type="number" class="inp"${ssrRenderAttr("step", .1)} data-v-ff580c34></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${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-ff580c34></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${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-ff580c34></label><button class="mini-btn danger param-del" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k44idg099"))}</button></div>`);
677
+ _push(`</label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k3renp2098"))}<em data-v-84c0b97c>*</em></span><input${ssrRenderAttr("value", p.value)} type="number" class="inp"${ssrRenderAttr("step", .1)} data-v-84c0b97c></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${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-84c0b97c></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${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-84c0b97c></label><button class="mini-btn danger param-del" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k44idg099"))}</button></div>`);
677
678
  });
678
- _push(`<!--]--><button class="mini-btn" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1broh7h100"))}</button><p class="sec-label" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1h5gues101"))}</p><!--[-->`);
679
+ _push(`<!--]--><button class="mini-btn" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1broh7h100"))}</button><p class="sec-label" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1h5gues101"))}</p><!--[-->`);
679
680
  ssrRenderList(recipeForm.daqWindows, (w, i) => {
680
- _push(`<div class="param-row" data-v-ff580c34><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1empnnb102"))}</span><select class="inp" data-v-ff580c34><!--[-->`);
681
+ _push(`<div class="param-row" data-v-84c0b97c><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1empnnb102"))}</span><select class="inp" data-v-84c0b97c><!--[-->`);
681
682
  ssrRenderList(lineDaqNodes.value, (n) => {
682
- _push(`<option${ssrRenderAttr("value", n.id)} data-v-ff580c34${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>`);
683
+ _push(`<option${ssrRenderAttr("value", n.id)} data-v-84c0b97c${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>`);
683
684
  });
684
- _push(`<!--]--></select></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.kqm08ap103"))}</span><input${ssrRenderAttr("value", w.min)} type="number" class="inp"${ssrRenderAttr("step", .1)} data-v-ff580c34></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.kpypf8g104"))}</span><input${ssrRenderAttr("value", w.max)} type="number" class="inp"${ssrRenderAttr("step", .1)} data-v-ff580c34></label><button class="mini-btn danger param-del" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k44idg099"))}</button></div>`);
685
+ _push(`<!--]--></select></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.kqm08ap103"))}</span><input${ssrRenderAttr("value", w.min)} type="number" class="inp"${ssrRenderAttr("step", .1)} data-v-84c0b97c></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.kpypf8g104"))}</span><input${ssrRenderAttr("value", w.max)} type="number" class="inp"${ssrRenderAttr("step", .1)} data-v-84c0b97c></label><button class="mini-btn danger param-del" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k44idg099"))}</button></div>`);
685
686
  });
686
- _push(`<!--]--><button class="mini-btn"${ssrIncludeBooleanAttr(lineDaqNodes.value.length === 0) ? " disabled" : ""}${ssrRenderAttr("title", lineDaqNodes.value.length === 0 ? "本产线暂无数采节点" : "")} data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.kv1de1p105"))}</button>`);
687
- if (recipeStaleNote.value) _push(`<p class="m-note" data-v-ff580c34>${ssrInterpolate(recipeStaleNote.value)}</p>`);
687
+ _push(`<!--]--><button class="mini-btn"${ssrIncludeBooleanAttr(lineDaqNodes.value.length === 0) ? " disabled" : ""}${ssrRenderAttr("title", lineDaqNodes.value.length === 0 ? _ctx.$t("dcwDetail.noDaqTip") : "")} data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.kv1de1p105"))}</button>`);
688
+ if (recipeStaleNote.value) _push(`<p class="m-note" data-v-84c0b97c>${ssrInterpolate(recipeStaleNote.value)}</p>`);
688
689
  else _push(`<!---->`);
689
- if (recipeError.value) _push(`<p class="m-err" data-v-ff580c34>${ssrInterpolate(recipeError.value)}</p>`);
690
+ if (recipeError.value) _push(`<p class="m-err" data-v-84c0b97c>${ssrInterpolate(recipeError.value)}</p>`);
690
691
  else _push(`<!---->`);
691
- _push(`<div class="m-actions" data-v-ff580c34><button class="aw-pill outline" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k3xdnn052"))}</button><button class="pill-btn"${ssrIncludeBooleanAttr(recipeSaving.value) ? " disabled" : ""} data-v-ff580c34>${ssrInterpolate(recipeSaving.value ? _ctx.$t("dcwDetail.k1b38d59164") : _ctx.$t("dcwDetail.k1b3kwg0177"))}</button></div></div></div>`);
692
+ _push(`<div class="m-actions" data-v-84c0b97c><button class="aw-pill outline" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k3xdnn052"))}</button><button class="pill-btn"${ssrIncludeBooleanAttr(recipeSaving.value) ? " disabled" : ""} data-v-84c0b97c>${ssrInterpolate(recipeSaving.value ? _ctx.$t("dcwDetail.k1b38d59164") : _ctx.$t("dcwDetail.k1b3kwg0177"))}</button></div></div></div>`);
692
693
  } else _push(`<!---->`);
693
694
  if (verOpen.value) {
694
- _push(`<div class="modal-mask" data-v-ff580c34><div class="modal" style="${ssrRenderStyle({ "max-width": "760px" })}" data-v-ff580c34><div class="modal-head" data-v-ff580c34><h3 data-v-ff580c34>${ssrInterpolate(unref(t)("dcwDetail.histTitle"))}`);
695
+ _push(`<div class="modal-mask" data-v-84c0b97c><div class="modal" style="${ssrRenderStyle({ "max-width": "760px" })}" data-v-84c0b97c><div class="modal-head" data-v-84c0b97c><h3 data-v-84c0b97c>${ssrInterpolate(unref(t)("dcwDetail.histTitle"))}`);
695
696
  if (verRecipe.value) _push(`<span class="dim" style="${ssrRenderStyle({
696
697
  "margin-left": "8px",
697
698
  "font-size": "12px"
698
- })}" data-v-ff580c34>${ssrInterpolate(verRecipe.value.name)} · v${ssrInterpolate(verRecipe.value.version)}</span>`);
699
+ })}" data-v-84c0b97c>${ssrInterpolate(verRecipe.value.name)} · v${ssrInterpolate(verRecipe.value.version)}</span>`);
699
700
  else _push(`<!---->`);
700
- _push(`</h3><button class="mini-btn" data-v-ff580c34> ✕ </button></div>`);
701
- if (verMsg.value) _push(`<p class="banner good" style="${ssrRenderStyle({ "margin": "6px 0" })}" data-v-ff580c34>${ssrInterpolate(verMsg.value)}</p>`);
701
+ _push(`</h3><button class="mini-btn" data-v-84c0b97c> ✕ </button></div>`);
702
+ if (verMsg.value) _push(`<p class="banner good" style="${ssrRenderStyle({ "margin": "6px 0" })}" data-v-84c0b97c>${ssrInterpolate(verMsg.value)}</p>`);
702
703
  else _push(`<!---->`);
703
- if (verLoading.value) _push(`<p class="dim" data-v-ff580c34>${ssrInterpolate(unref(t)("dcwDetail.histLoading"))}</p>`);
704
- else if (verRows.value.length === 0) _push(`<div class="pane-empty" data-v-ff580c34>${ssrInterpolate(unref(t)("dcwDetail.histEmpty"))}</div>`);
704
+ if (verLoading.value) _push(`<p class="dim" data-v-84c0b97c>${ssrInterpolate(unref(t)("dcwDetail.histLoading"))}</p>`);
705
+ else if (verRows.value.length === 0) _push(`<div class="pane-empty" data-v-84c0b97c>${ssrInterpolate(unref(t)("dcwDetail.histEmpty"))}</div>`);
705
706
  else {
706
707
  _push(`<!--[-->`);
707
708
  ssrRenderList(verRows.value, (row, i) => {
708
- _push(`<div class="${ssrRenderClass([{ cur: row.current }, "ver-row"])}" data-v-ff580c34><div class="ver-head" data-v-ff580c34><span class="mono ver-v" data-v-ff580c34>v${ssrInterpolate(row.version)}</span><span class="${ssrRenderClass([row.by ?? (row.current ? "cur" : ""), "ver-src"])}" data-v-ff580c34>${ssrInterpolate(row.current ? unref(t)("dcwDetail.histCurrent") : verSrcLabel(row.by))}</span><span class="mono dim" data-v-ff580c34>${ssrInterpolate(row.at.slice(0, 19).replace("T", " "))}</span><span class="ver-actor" data-v-ff580c34>${ssrInterpolate(row.actorName || "—")}</span>`);
709
- if (!row.current) _push(`<button class="mini-btn" data-v-ff580c34>${ssrInterpolate(unref(t)("dcwDetail.revertTo"))}</button>`);
709
+ _push(`<div class="${ssrRenderClass([{ cur: row.current }, "ver-row"])}" data-v-84c0b97c><div class="ver-head" data-v-84c0b97c><span class="mono ver-v" data-v-84c0b97c>v${ssrInterpolate(row.version)}</span><span class="${ssrRenderClass([row.by ?? (row.current ? "cur" : ""), "ver-src"])}" data-v-84c0b97c>${ssrInterpolate(row.current ? unref(t)("dcwDetail.histCurrent") : verSrcLabel(row.by))}</span><span class="mono dim" data-v-84c0b97c>${ssrInterpolate(row.at.slice(0, 19).replace("T", " "))}</span><span class="ver-actor" data-v-84c0b97c>${ssrInterpolate(row.actorName || "—")}</span>`);
710
+ if (!row.current) _push(`<button class="mini-btn" data-v-84c0b97c>${ssrInterpolate(unref(t)("dcwDetail.revertTo"))}</button>`);
710
711
  else _push(`<!---->`);
711
712
  _push(`</div>`);
712
- if (row.description) _push(`<p class="ver-desc" data-v-ff580c34>${ssrInterpolate(row.description)}</p>`);
713
+ if (row.description) _push(`<p class="ver-desc" data-v-84c0b97c>${ssrInterpolate(row.description)}</p>`);
713
714
  else _push(`<!---->`);
714
- _push(`<p class="ver-diff mono" data-v-ff580c34>${ssrInterpolate(verDiff(row, i))}</p></div>`);
715
+ _push(`<p class="ver-diff mono" data-v-84c0b97c>${ssrInterpolate(verDiff(row, i))}</p></div>`);
715
716
  });
716
717
  _push(`<!--]-->`);
717
718
  }
718
719
  _push(`</div></div>`);
719
720
  } else _push(`<!---->`);
720
- _push(`<section class="aw-tile query-card" data-v-ff580c34><p class="sec-label" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1us3jse106"))}</p><div class="q-grid" data-v-ff580c34><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k3waz1025"))}</span><select class="inp" data-v-ff580c34><option value="" data-v-ff580c34${ssrIncludeBooleanAttr(Array.isArray(query.productId) ? ssrLooseContain(query.productId, "") : ssrLooseEqual(query.productId, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkl1jx107"))}</option><!--[-->`);
721
+ _push(`<section class="aw-tile query-card" data-v-84c0b97c><p class="sec-label" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1us3jse106"))}</p><div class="q-grid" data-v-84c0b97c><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k3waz1025"))}</span><select class="inp" data-v-84c0b97c><option value="" data-v-84c0b97c${ssrIncludeBooleanAttr(Array.isArray(query.productId) ? ssrLooseContain(query.productId, "") : ssrLooseEqual(query.productId, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkl1jx107"))}</option><!--[-->`);
721
722
  ssrRenderList(lineProducts.value, (p) => {
722
- _push(`<option${ssrRenderAttr("value", p.id)} data-v-ff580c34${ssrIncludeBooleanAttr(Array.isArray(query.productId) ? ssrLooseContain(query.productId, p.id) : ssrLooseEqual(query.productId, p.id)) ? " selected" : ""}>${ssrInterpolate(p.name)}</option>`);
723
+ _push(`<option${ssrRenderAttr("value", p.id)} data-v-84c0b97c${ssrIncludeBooleanAttr(Array.isArray(query.productId) ? ssrLooseContain(query.productId, p.id) : ssrLooseEqual(query.productId, p.id)) ? " selected" : ""}>${ssrInterpolate(p.name)}</option>`);
723
724
  });
724
- _push(`<!--]--></select></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))}</span><select class="inp"${ssrIncludeBooleanAttr(!query.productId) ? " disabled" : ""} data-v-ff580c34><option value="" data-v-ff580c34${ssrIncludeBooleanAttr(Array.isArray(query.recipeId) ? ssrLooseContain(query.recipeId, "") : ssrLooseEqual(query.recipeId, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkx7cr108"))}</option><!--[-->`);
725
+ _push(`<!--]--></select></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k48grv027"))}</span><select class="inp"${ssrIncludeBooleanAttr(!query.productId) ? " disabled" : ""} data-v-84c0b97c><option value="" data-v-84c0b97c${ssrIncludeBooleanAttr(Array.isArray(query.recipeId) ? ssrLooseContain(query.recipeId, "") : ssrLooseEqual(query.recipeId, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkx7cr108"))}</option><!--[-->`);
725
726
  ssrRenderList(visibleRecipes.value, (r) => {
726
- _push(`<option${ssrRenderAttr("value", r.id)} data-v-ff580c34${ssrIncludeBooleanAttr(Array.isArray(query.recipeId) ? ssrLooseContain(query.recipeId, r.id) : ssrLooseEqual(query.recipeId, r.id)) ? " selected" : ""}>${ssrInterpolate(r.name)}</option>`);
727
+ _push(`<option${ssrRenderAttr("value", r.id)} data-v-84c0b97c${ssrIncludeBooleanAttr(Array.isArray(query.recipeId) ? ssrLooseContain(query.recipeId, r.id) : ssrLooseEqual(query.recipeId, r.id)) ? " selected" : ""}>${ssrInterpolate(r.name)}</option>`);
727
728
  });
728
- _push(`<!--]--></select></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1demcae109"))}</span><select class="inp" data-v-ff580c34><option value="" data-v-ff580c34${ssrIncludeBooleanAttr(Array.isArray(query.paramKey) ? ssrLooseContain(query.paramKey, "") : ssrLooseEqual(query.paramKey, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkx7ya110"))}</option><!--[-->`);
729
+ _push(`<!--]--></select></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1demcae109"))}</span><select class="inp" data-v-84c0b97c><option value="" data-v-84c0b97c${ssrIncludeBooleanAttr(Array.isArray(query.paramKey) ? ssrLooseContain(query.paramKey, "") : ssrLooseEqual(query.paramKey, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkx7ya110"))}</option><!--[-->`);
729
730
  ssrRenderList(daqParamKeys.value, (k) => {
730
- _push(`<option${ssrRenderAttr("value", k)} data-v-ff580c34${ssrIncludeBooleanAttr(Array.isArray(query.paramKey) ? ssrLooseContain(query.paramKey, k) : ssrLooseEqual(query.paramKey, k)) ? " selected" : ""}>${ssrInterpolate(k)}</option>`);
731
+ _push(`<option${ssrRenderAttr("value", k)} data-v-84c0b97c${ssrIncludeBooleanAttr(Array.isArray(query.paramKey) ? ssrLooseContain(query.paramKey, k) : ssrLooseEqual(query.paramKey, k)) ? " selected" : ""}>${ssrInterpolate(k)}</option>`);
731
732
  });
732
- _push(`<!--]--></select></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</span><select class="inp" data-v-ff580c34><option value="" data-v-ff580c34${ssrIncludeBooleanAttr(Array.isArray(query.nodeId) ? ssrLooseContain(query.nodeId, "") : ssrLooseEqual(query.nodeId, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkul3k111"))}</option><!--[-->`);
733
+ _push(`<!--]--></select></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</span><select class="inp" data-v-84c0b97c><option value="" data-v-84c0b97c${ssrIncludeBooleanAttr(Array.isArray(query.nodeId) ? ssrLooseContain(query.nodeId, "") : ssrLooseEqual(query.nodeId, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1bkul3k111"))}</option><!--[-->`);
733
734
  ssrRenderList(lineDaqNodes.value, (n) => {
734
- _push(`<option${ssrRenderAttr("value", n.id)} data-v-ff580c34${ssrIncludeBooleanAttr(Array.isArray(query.nodeId) ? ssrLooseContain(query.nodeId, n.id) : ssrLooseEqual(query.nodeId, n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}</option>`);
735
+ _push(`<option${ssrRenderAttr("value", n.id)} data-v-84c0b97c${ssrIncludeBooleanAttr(Array.isArray(query.nodeId) ? ssrLooseContain(query.nodeId, n.id) : ssrLooseEqual(query.nodeId, n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}</option>`);
735
736
  });
736
- _push(`<!--]--></select></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.kx2ojn0112"))}</span><input${ssrRenderAttr("value", query.lastMin)} type="number" min="1" max="10080" class="inp" data-v-ff580c34></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.kjvnvn4113"))}</span><input${ssrRenderAttr("value", query.bucketMs)} type="number" min="1000" step="500" class="inp" data-v-ff580c34></label><div class="f q-actions" data-v-ff580c34><button class="pill-btn"${ssrIncludeBooleanAttr(queryBusy.value) ? " disabled" : ""} data-v-ff580c34>${ssrInterpolate(queryBusy.value ? _ctx.$t("dcwDetail.k1eyx09r165") : _ctx.$t("dcwDetail.k416ek178"))}</button></div></div>`);
737
- if (queryError.value) _push(`<p class="banner bad" style="${ssrRenderStyle({ "margin-top": "8px" })}" data-v-ff580c34>${ssrInterpolate(queryError.value)}</p>`);
737
+ _push(`<!--]--></select></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.kx2ojn0112"))}</span><input${ssrRenderAttr("value", query.lastMin)} type="number" min="1" max="10080" class="inp" data-v-84c0b97c></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.kjvnvn4113"))}</span><input${ssrRenderAttr("value", query.bucketMs)} type="number" min="1000" step="500" class="inp" data-v-84c0b97c></label><div class="f q-actions" data-v-84c0b97c><button class="pill-btn"${ssrIncludeBooleanAttr(queryBusy.value) ? " disabled" : ""} data-v-84c0b97c>${ssrInterpolate(queryBusy.value ? _ctx.$t("dcwDetail.k1eyx09r165") : _ctx.$t("dcwDetail.k416ek178"))}</button></div></div>`);
738
+ if (queryError.value) _push(`<p class="banner bad" style="${ssrRenderStyle({ "margin-top": "8px" })}" data-v-84c0b97c>${ssrInterpolate(queryError.value)}</p>`);
738
739
  else _push(`<!---->`);
739
740
  if (queryResult.value) {
740
- _push(`<div class="q-result" data-v-ff580c34><table class="nodes-table" data-v-ff580c34><thead data-v-ff580c34><tr data-v-ff580c34><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k48hde081"))}</th><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</th><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k42kcu114"))}</th><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k49ujb115"))}</th><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k40pvw116"))}</th><th data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k3xho3117"))}</th></tr></thead><tbody data-v-ff580c34><!--[-->`);
741
+ _push(`<div class="q-result" data-v-84c0b97c><table class="nodes-table" data-v-84c0b97c><thead data-v-84c0b97c><tr data-v-84c0b97c><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k48hde081"))}</th><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k45uio082"))}</th><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k42kcu114"))}</th><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k49ujb115"))}</th><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k40pvw116"))}</th><th data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k3xho3117"))}</th></tr></thead><tbody data-v-84c0b97c><!--[-->`);
741
742
  ssrRenderList(queryResult.value.channels, (c) => {
742
- _push(`<tr data-v-ff580c34><td data-v-ff580c34>${ssrInterpolate(c.ch)}<small class="mono dim" data-v-ff580c34>${ssrInterpolate(c.unit)}</small></td><td data-v-ff580c34>${ssrInterpolate(c.nodeName)}</td><td class="mono" data-v-ff580c34>${ssrInterpolate(c.points.length)}</td><td class="mono" data-v-ff580c34>${ssrInterpolate(fmtPoint(c.points[0]))}</td><td class="mono" data-v-ff580c34>${ssrInterpolate(fmtPoint(c.points[c.points.length - 1]))}</td><td class="mono dim" data-v-ff580c34>${ssrInterpolate(new Date(c.points[0]?.at ?? 0).toLocaleTimeString())} ~ ${ssrInterpolate(new Date(c.points[c.points.length - 1]?.at ?? 0).toLocaleTimeString())}</td></tr>`);
743
+ _push(`<tr data-v-84c0b97c><td data-v-84c0b97c>${ssrInterpolate(c.ch)}<small class="mono dim" data-v-84c0b97c>${ssrInterpolate(c.unit)}</small></td><td data-v-84c0b97c>${ssrInterpolate(c.nodeName)}</td><td class="mono" data-v-84c0b97c>${ssrInterpolate(c.points.length)}</td><td class="mono" data-v-84c0b97c>${ssrInterpolate(fmtPoint(c.points[0]))}</td><td class="mono" data-v-84c0b97c>${ssrInterpolate(fmtPoint(c.points[c.points.length - 1]))}</td><td class="mono dim" data-v-84c0b97c>${ssrInterpolate(new Date(c.points[0]?.at ?? 0).toLocaleTimeString())} ~ ${ssrInterpolate(new Date(c.points[c.points.length - 1]?.at ?? 0).toLocaleTimeString())}</td></tr>`);
743
744
  });
744
745
  _push(`<!--]--></tbody></table></div>`);
745
746
  } else _push(`<!---->`);
746
747
  _push(`</section>`);
747
748
  if (lineHistory.value.length) {
748
- _push(`<section class="aw-tile table-card" data-v-ff580c34><p class="sec-label" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.kw7ym9b148"))} ${ssrInterpolate(lineHistory.value.length)} ${ssrInterpolate(_ctx.$t("dcwDetail.k40bfz150"))}</p><table class="nodes-table" data-v-ff580c34><tbody data-v-ff580c34><!--[-->`);
749
+ _push(`<section class="aw-tile table-card" data-v-84c0b97c><p class="sec-label" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.kw7ym9b148"))} ${ssrInterpolate(lineHistory.value.length)} ${ssrInterpolate(_ctx.$t("dcwDetail.k40bfz150"))}</p><table class="nodes-table" data-v-84c0b97c><tbody data-v-84c0b97c><!--[-->`);
749
750
  ssrRenderList(lineHistory.value.slice(0, 12), (h) => {
750
- _push(`<tr data-v-ff580c34><td class="mono dim" data-v-ff580c34>${ssrInterpolate(h.at.slice(5, 19))}</td><td data-v-ff580c34>${ssrInterpolate(h.param)}</td><td data-v-ff580c34>${ssrInterpolate(h.nodeName)}</td><td class="mono" data-v-ff580c34>${ssrInterpolate(h.eng)}</td><td class="mono dim" data-v-ff580c34> raw ${ssrInterpolate(h.raw ?? "-")}</td><td data-v-ff580c34><span class="${ssrRenderClass([h.ok ? "ok" : "alarm", "st-pill"])}" data-v-ff580c34>${ssrInterpolate(h.ok ? "ACK" : _ctx.$t("dcwDetail.k3yit7139"))}</span></td><td class="dim" data-v-ff580c34>${ssrInterpolate(h.recipeRunId ? _ctx.$t("dcwDetail.k6vgks7181", { p0: h.recipeRunId }) : "手动")}</td></tr>`);
751
+ _push(`<tr data-v-84c0b97c><td class="mono dim" data-v-84c0b97c>${ssrInterpolate(h.at.slice(5, 19))}</td><td data-v-84c0b97c>${ssrInterpolate(h.param)}</td><td data-v-84c0b97c>${ssrInterpolate(h.nodeName)}</td><td class="mono" data-v-84c0b97c>${ssrInterpolate(h.eng)}</td><td class="mono dim" data-v-84c0b97c> raw ${ssrInterpolate(h.raw ?? "-")}</td><td data-v-84c0b97c><span class="${ssrRenderClass([h.ok ? "ok" : "alarm", "st-pill"])}" data-v-84c0b97c>${ssrInterpolate(h.ok ? "ACK" : _ctx.$t("dcwDetail.k3yit7139"))}</span></td><td class="dim" data-v-84c0b97c>${ssrInterpolate(h.recipeRunId ? _ctx.$t("dcwDetail.k6vgks7181", { p0: h.recipeRunId }) : _ctx.$t("dcwDetail.manualTag"))}</td></tr>`);
751
752
  });
752
753
  _push(`<!--]--></tbody></table></section>`);
753
754
  } else _push(`<!---->`);
754
755
  if (productOpen.value) {
755
- _push(`<div class="modal-mask" data-v-ff580c34><div class="modal" data-v-ff580c34><h3 class="m-title" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1efduyf118"))}</h3><div class="f-grid" data-v-ff580c34><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1avjrl6119"))}<em data-v-ff580c34>*</em></span><input${ssrRenderAttr("value", productForm.name)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k12c11vm014"))} data-v-ff580c34></label><label class="f" data-v-ff580c34><span data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k40gkk096"))}</span><input${ssrRenderAttr("value", productForm.description)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1hxx8hy015"))} data-v-ff580c34></label></div>`);
756
- if (productError.value) _push(`<p class="m-err" data-v-ff580c34>${ssrInterpolate(productError.value)}</p>`);
756
+ _push(`<div class="modal-mask" data-v-84c0b97c><div class="modal" data-v-84c0b97c><h3 class="m-title" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1efduyf118"))}</h3><div class="f-grid" data-v-84c0b97c><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1avjrl6119"))}<em data-v-84c0b97c>*</em></span><input${ssrRenderAttr("value", productForm.name)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k12c11vm014"))} data-v-84c0b97c></label><label class="f" data-v-84c0b97c><span data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k40gkk096"))}</span><input${ssrRenderAttr("value", productForm.description)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("dcwDetail.k1hxx8hy015"))} data-v-84c0b97c></label></div>`);
757
+ if (productError.value) _push(`<p class="m-err" data-v-84c0b97c>${ssrInterpolate(productError.value)}</p>`);
757
758
  else _push(`<!---->`);
758
- _push(`<div class="m-actions" data-v-ff580c34><button class="aw-pill outline" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k3xdnn052"))}</button><button class="pill-btn"${ssrIncludeBooleanAttr(productSaving.value) ? " disabled" : ""} data-v-ff580c34>${ssrInterpolate(productSaving.value ? _ctx.$t("dcwDetail.k1bg4759156") : _ctx.$t("dcwDetail.k1bg4kn6179"))}</button></div></div></div>`);
759
+ _push(`<div class="m-actions" data-v-84c0b97c><button class="aw-pill outline" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k3xdnn052"))}</button><button class="pill-btn"${ssrIncludeBooleanAttr(productSaving.value) ? " disabled" : ""} data-v-84c0b97c>${ssrInterpolate(productSaving.value ? _ctx.$t("dcwDetail.k1bg4759156") : _ctx.$t("dcwDetail.k1bg4kn6179"))}</button></div></div></div>`);
759
760
  } else _push(`<!---->`);
760
761
  if (unref(dcw).error) {
761
- _push(`<p class="err" data-v-ff580c34>${ssrInterpolate(unref(dcw).error)}(`);
762
+ _push(`<p class="err" data-v-84c0b97c>${ssrInterpolate(unref(dcw).error)}(`);
762
763
  _push(ssrRenderComponent(_component_NuxtLink, { to: "/workshop" }, {
763
764
  default: withCtx((_, _push, _parent, _scopeId) => {
764
765
  if (_push) _push(`${ssrInterpolate(_ctx.$t("dcwDetail.k1bhhheq120"))}`);
@@ -768,19 +769,19 @@ var _id__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
768
769
  }, _parent));
769
770
  _push(`) </p>`);
770
771
  } else _push(`<!---->`);
771
- _push(`<section class="aw-tile ledger-card" data-v-ff580c34><div class="ledger-head" data-v-ff580c34><b data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgt001"))}</b><select class="inp" data-v-ff580c34><option value="" data-v-ff580c34${ssrIncludeBooleanAttr(Array.isArray(ledgerNodeId.value) ? ssrLooseContain(ledgerNodeId.value, "") : ssrLooseEqual(ledgerNodeId.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgs001"))}</option><!--[-->`);
772
+ _push(`<section class="aw-tile ledger-card" data-v-84c0b97c><div class="ledger-head" data-v-84c0b97c><b data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgt001"))}</b><select class="inp" data-v-84c0b97c><option value="" data-v-84c0b97c${ssrIncludeBooleanAttr(Array.isArray(ledgerNodeId.value) ? ssrLooseContain(ledgerNodeId.value, "") : ssrLooseEqual(ledgerNodeId.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgs001"))}</option><!--[-->`);
772
773
  ssrRenderList(lineNodes.value, (n) => {
773
- _push(`<option${ssrRenderAttr("value", n.id)} data-v-ff580c34${ssrIncludeBooleanAttr(Array.isArray(ledgerNodeId.value) ? ssrLooseContain(ledgerNodeId.value, n.id) : ssrLooseEqual(ledgerNodeId.value, n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}</option>`);
774
+ _push(`<option${ssrRenderAttr("value", n.id)} data-v-84c0b97c${ssrIncludeBooleanAttr(Array.isArray(ledgerNodeId.value) ? ssrLooseContain(ledgerNodeId.value, n.id) : ssrLooseEqual(ledgerNodeId.value, n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}</option>`);
774
775
  });
775
776
  _push(`<!--]--></select></div>`);
776
777
  if (ledger.value) {
777
- _push(`<!--[--><div class="ledger-tri" data-v-ff580c34><div class="tri-cell" data-v-ff580c34><small data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgv001"))}</small><b class="mono" data-v-ff580c34>${ssrInterpolate(ledger.value.current ?? "--")}</b></div><div class="tri-cell" data-v-ff580c34><small data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgv002"))}</small><b class="mono" data-v-ff580c34>${ssrInterpolate(ledger.value.recipeTarget ?? "--")}</b></div><div class="tri-cell" data-v-ff580c34><small data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgv003"))}</small><b class="mono" data-v-ff580c34>${ssrInterpolate(ledger.value.lastGood ?? "--")}</b></div><button class="mini-btn" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledga001"))}</button><button class="mini-btn danger" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledga002"))}</button></div><div class="ledger-cols" data-v-ff580c34><div class="ledger-col" data-v-ff580c34><small class="sec-t" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgh001"))}</small><ul class="ledger-list mono" data-v-ff580c34><!--[-->`);
778
+ _push(`<!--[--><div class="ledger-tri" data-v-84c0b97c><div class="tri-cell" data-v-84c0b97c><small data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgv001"))}</small><b class="mono" data-v-84c0b97c>${ssrInterpolate(ledger.value.current ?? "--")}</b></div><div class="tri-cell" data-v-84c0b97c><small data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgv002"))}</small><b class="mono" data-v-84c0b97c>${ssrInterpolate(ledger.value.recipeTarget ?? "--")}</b></div><div class="tri-cell" data-v-84c0b97c><small data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgv003"))}</small><b class="mono" data-v-84c0b97c>${ssrInterpolate(ledger.value.lastGood ?? "--")}</b></div><button class="mini-btn" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledga001"))}</button><button class="mini-btn danger" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledga002"))}</button></div><div class="ledger-cols" data-v-84c0b97c><div class="ledger-col" data-v-84c0b97c><small class="sec-t" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgh001"))}</small><ul class="ledger-list mono" data-v-84c0b97c><!--[-->`);
778
779
  ssrRenderList(ledger.value.journal, (a) => {
779
- _push(`<li data-v-ff580c34>${ssrInterpolate(a.at.slice(5, 16).replace("T", " "))} [${ssrInterpolate(a.source)}] ${ssrInterpolate(a.prevValue ?? "?")} → ${ssrInterpolate(a.newValue)}</li>`);
780
+ _push(`<li data-v-84c0b97c>${ssrInterpolate(a.at.slice(5, 16).replace("T", " "))} [${ssrInterpolate(a.source)}] ${ssrInterpolate(a.prevValue ?? "?")} → ${ssrInterpolate(a.newValue)}</li>`);
780
781
  });
781
- _push(`<!--]--></ul></div><div class="ledger-col" data-v-ff580c34><small class="sec-t" data-v-ff580c34>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgr001"))}</small><ul class="ledger-list" data-v-ff580c34><!--[-->`);
782
+ _push(`<!--]--></ul></div><div class="ledger-col" data-v-84c0b97c><small class="sec-t" data-v-84c0b97c>${ssrInterpolate(_ctx.$t("dcwDetail.k1ledgr001"))}</small><ul class="ledger-list" data-v-84c0b97c><!--[-->`);
782
783
  ssrRenderList(ledger.value.records, (r) => {
783
- _push(`<li class="ledger-rec" data-v-ff580c34><span class="${ssrRenderClass([r.status, "rec-st"])}" data-v-ff580c34>${ssrInterpolate(r.status)}</span><span class="mono" data-v-ff580c34>${ssrInterpolate(r.params[0]?.from ?? "?")} → ${ssrInterpolate(r.params[0]?.to)}</span><small data-v-ff580c34>${ssrInterpolate(r.judge ? `${r.judge.verdict}(${r.judge.by})` : r.status === "open" ? "open" : r.closedBy ?? "")}</small></li>`);
784
+ _push(`<li class="ledger-rec" data-v-84c0b97c><span class="${ssrRenderClass([r.status, "rec-st"])}" data-v-84c0b97c>${ssrInterpolate(r.status)}</span><span class="mono" data-v-84c0b97c>${ssrInterpolate(r.params[0]?.from ?? "?")} → ${ssrInterpolate(r.params[0]?.to)}</span><small data-v-84c0b97c>${ssrInterpolate(r.judge ? `${r.judge.verdict}(${r.judge.by})` : r.status === "open" ? "open" : r.closedBy ?? "")}</small></li>`);
784
785
  });
785
786
  _push(`<!--]--></ul></div></div><!--]-->`);
786
787
  } else _push(`<!---->`);
@@ -797,7 +798,7 @@ _id__vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
797
798
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/dcw/[id].vue");
798
799
  return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
799
800
  };
800
- var _id__default = /*#__PURE__*/ _plugin_vue_export_helper_default(_id__vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-ff580c34"]]);
801
+ var _id__default = /*#__PURE__*/ _plugin_vue_export_helper_default(_id__vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-84c0b97c"]]);
801
802
 
802
803
  export { _id__default as default };
803
- //# sourceMappingURL=_id_-Brv-JSvr.mjs.map
804
+ //# sourceMappingURL=_id_-CVD_H0ir.mjs.map