agentworkshop 0.5.8 → 0.6.0
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.
- package/.AgentWorkShop/prompts/compaction-hints.md +9 -9
- package/.AgentWorkShop/prompts/host-tools.json +42 -0
- package/.output/.AgentWorkShop/prompts/compaction-hints.md +9 -9
- package/.output/.AgentWorkShop/prompts/host-tools.json +42 -0
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{Dm5mD6XT.js → BD9D9pl4.js} +1 -1
- package/.output/public/_nuxt/{BdKzfJiM.js → BxD8Fg_Z.js} +1 -1
- package/.output/public/_nuxt/{dRAyjbJ6.js → C-Y5ydB6.js} +3 -3
- package/.output/public/_nuxt/{Bok1DRqh.js → C0FogB-p.js} +1 -1
- package/.output/public/_nuxt/{BUNGEK2z.js → C2QSTAWf.js} +1 -1
- package/.output/public/_nuxt/{CWDzKGtj.js → CclO6GyL.js} +1 -1
- package/.output/public/_nuxt/{B3__nfxM.js → Ck6tznoQ.js} +1 -1
- package/.output/public/_nuxt/CwS_UHeH.js +1 -0
- package/.output/public/_nuxt/{CE2ynNi9.js → CwcOEM8m.js} +1 -1
- package/.output/public/_nuxt/MhK4buEJ.js +1 -0
- package/.output/public/_nuxt/_id_.DN3U6EF9.css +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/a0ac51ef-51c0-4ff9-8484-7c90d8dd10ba.json +1 -0
- package/.output/public/_nuxt/{entry.DjhxLu-f.css → entry.DvlXlPwx.css} +1 -1
- package/.output/public/_nuxt/settings.BG0K9_MG.css +1 -0
- package/.output/server/chunks/_/error-500.mjs.map +1 -1
- package/.output/server/chunks/_/nitro.mjs +2634 -1387
- package/.output/server/chunks/_/nitro.mjs.map +1 -1
- package/.output/server/chunks/build/{OmpTerminalPanel-CZnxR3M_.mjs → OmpTerminalPanel-B_SYhmgb.mjs} +2 -2
- package/.output/server/chunks/build/{OmpTerminalPanel-CZnxR3M_.mjs.map → OmpTerminalPanel-B_SYhmgb.mjs.map} +1 -1
- package/.output/server/chunks/build/{TownView-DYlUNRZe.mjs → TownView-D9yCQe1T.mjs} +6 -6
- package/.output/server/chunks/build/{TownView-DYlUNRZe.mjs.map → TownView-D9yCQe1T.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-BOhG2yz8.mjs → _id_-CmKAEFHV.mjs} +4 -2
- package/.output/server/chunks/build/_id_-CmKAEFHV.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-CuyMYmhY.mjs → _id_-xR3AChMO.mjs} +74 -26
- package/.output/server/chunks/build/_id_-xR3AChMO.mjs.map +1 -0
- package/.output/server/chunks/build/{_wsId_-B5f5BdW2.mjs → _wsId_-C45nVrl-.mjs} +12 -10
- package/.output/server/chunks/build/{_wsId_-B5f5BdW2.mjs.map → _wsId_-C45nVrl-.mjs.map} +1 -1
- package/.output/server/chunks/build/{agents-BVaxN75W.mjs → agents-D4l1icvn.mjs} +5 -3
- package/.output/server/chunks/build/agents-D4l1icvn.mjs.map +1 -0
- package/.output/server/chunks/build/{channel-templates-D1K2IKrE.mjs → channel-templates-DqjtC-R0.mjs} +5 -3
- package/.output/server/chunks/build/channel-templates-DqjtC-R0.mjs.map +1 -0
- package/.output/server/chunks/build/{client-only-CFTHwakk.mjs → client-only-D5BzSQc6.mjs} +2 -2
- package/.output/server/chunks/build/client-only-D5BzSQc6.mjs.map +1 -0
- package/.output/server/chunks/build/{daq-ObtN1TQ4.mjs → daq-Boz_dlAQ.mjs} +6 -4
- package/.output/server/chunks/build/daq-Boz_dlAQ.mjs.map +1 -0
- package/.output/server/chunks/build/{dcw-fINr-He1.mjs → dcw-wTRwBAUi.mjs} +3 -1
- package/.output/server/chunks/build/dcw-wTRwBAUi.mjs.map +1 -0
- package/.output/server/chunks/build/{default-CVVO40Jj.mjs → default-Dt6xLdpd.mjs} +7 -5
- package/.output/server/chunks/build/{default-CVVO40Jj.mjs.map → default-Dt6xLdpd.mjs.map} +1 -1
- package/.output/server/chunks/build/interval-WlxgjTzO.mjs +9 -0
- package/.output/server/chunks/build/interval-WlxgjTzO.mjs.map +1 -0
- package/.output/server/chunks/build/{logs-DqNgCJAn.mjs → logs-Cdi-eXlN.mjs} +5 -3
- package/.output/server/chunks/build/logs-Cdi-eXlN.mjs.map +1 -0
- package/.output/server/chunks/build/{monitor-CTZLwbdw.mjs → monitor-yNoV98rf.mjs} +6 -4
- package/.output/server/chunks/build/{monitor-CTZLwbdw.mjs.map → monitor-yNoV98rf.mjs.map} +1 -1
- package/.output/server/chunks/build/{pages-DC52d7z7.mjs → pages-bWKy0ZsA.mjs} +6 -4
- package/.output/server/chunks/build/pages-bWKy0ZsA.mjs.map +1 -0
- package/.output/server/chunks/build/{plugins-DVQty7qG.mjs → plugins-B-ZNey0Z.mjs} +4 -2
- package/.output/server/chunks/build/plugins-B-ZNey0Z.mjs.map +1 -0
- package/.output/server/chunks/build/{settings-BeergncK.mjs → settings-C3T5hR2A.mjs} +21 -19
- package/.output/server/chunks/build/settings-C3T5hR2A.mjs.map +1 -0
- package/.output/server/chunks/build/{teams-CFeDlHDh.mjs → teams-QR3BBF7A.mjs} +5 -3
- package/.output/server/chunks/build/teams-QR3BBF7A.mjs.map +1 -0
- package/.output/server/chunks/build/{tokens-CBAUbOce.mjs → tokens-DFvr_TLj.mjs} +4 -2
- package/.output/server/chunks/build/tokens-DFvr_TLj.mjs.map +1 -0
- package/.output/server/chunks/build/town-BUqRobze.mjs +2 -0
- package/.output/server/chunks/build/town-BUqRobze.mjs.map +1 -1
- package/.output/server/chunks/build/{town-BxH-XXth.mjs → town-CKg6Qxba.mjs} +9 -7
- package/.output/server/chunks/build/town-CKg6Qxba.mjs.map +1 -0
- package/.output/server/chunks/build/{useDaqStream-CwORhsD7.mjs → useDaqStream-zHEptJQ_.mjs} +44 -1
- package/.output/server/chunks/build/useDaqStream-zHEptJQ_.mjs.map +1 -0
- package/.output/server/chunks/build/{useSiteConfig-Cc-ABesl.mjs → useSiteConfig-DJe_KMVr.mjs} +1 -1
- package/.output/server/chunks/build/{useSiteConfig-Cc-ABesl.mjs.map → useSiteConfig-DJe_KMVr.mjs.map} +1 -1
- package/.output/server/chunks/build/{useWorkshopApi-5er8_EHZ.mjs → useWorkshopApi-Bh5VUHWu.mjs} +1 -1
- package/.output/server/chunks/build/{useWorkshopApi-5er8_EHZ.mjs.map → useWorkshopApi-Bh5VUHWu.mjs.map} +1 -1
- package/.output/server/chunks/build/{useWorkshopWs-Dwr_1Q8f.mjs → useWorkshopWs-xcdeiSmJ.mjs} +2 -2
- package/.output/server/chunks/build/{useWorkshopWs-Dwr_1Q8f.mjs.map → useWorkshopWs-xcdeiSmJ.mjs.map} +1 -1
- package/.output/server/chunks/build/{user-CpVY4OAA.mjs → user-Dk-ytEUV.mjs} +1 -1
- package/.output/server/chunks/build/{user-CpVY4OAA.mjs.map → user-Dk-ytEUV.mjs.map} +1 -1
- package/.output/server/chunks/build/{users-BMs4s_6K.mjs → users-4FZ0yFUO.mjs} +4 -2
- package/.output/server/chunks/build/users-4FZ0yFUO.mjs.map +1 -0
- package/.output/server/chunks/build/{workshop-CJAyZ5zS.mjs → workshop-CLhwe5eo.mjs} +6 -4
- package/.output/server/chunks/build/workshop-CLhwe5eo.mjs.map +1 -0
- package/.output/server/chunks/build/{workspaces-Dq-1zvu9.mjs → workspaces-IfORCDJE.mjs} +2 -2
- package/.output/server/chunks/build/{workspaces-Dq-1zvu9.mjs.map → workspaces-IfORCDJE.mjs.map} +1 -1
- package/.output/server/chunks/routes/api/health.get.mjs +2 -0
- package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +2 -0
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post.mjs +2 -0
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/mcp/workshop.mjs +2 -0
- package/.output/server/chunks/routes/api/mcp/workshop.mjs.map +1 -1
- package/.output/server/chunks/routes/api/metrics.mjs +2 -0
- package/.output/server/chunks/routes/api/metrics.mjs.map +1 -1
- package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +2 -0
- package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs.map +1 -1
- package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +2 -0
- package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +2 -0
- package/.output/server/chunks/routes/api/plugins/manifest.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/config.get.mjs +2 -0
- package/.output/server/chunks/routes/api/system/config.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index.get.mjs +2 -0
- package/.output/server/chunks/routes/api/system/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index.patch.mjs +2 -0
- package/.output/server/chunks/routes/api/system/index.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +2 -0
- package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +2 -0
- package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/monitor.get.mjs +2 -0
- package/.output/server/chunks/routes/api/system/monitor.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/settings/events.get.mjs +3 -2
- package/.output/server/chunks/routes/api/system/settings/events.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +2 -0
- package/.output/server/chunks/routes/api/system/settings/reset.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.get.mjs +2 -0
- package/.output/server/chunks/routes/api/users/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.put.mjs +2 -0
- package/.output/server/chunks/routes/api/users/_id_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/index.get.mjs +2 -0
- package/.output/server/chunks/routes/api/users/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/index.post.mjs +2 -0
- package/.output/server/chunks/routes/api/users/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/login.post.mjs +2 -0
- package/.output/server/chunks/routes/api/users/login.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/logout.post.mjs +2 -0
- package/.output/server/chunks/routes/api/users/logout.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/me.get.mjs +2 -0
- package/.output/server/chunks/routes/api/users/me.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/register.post.mjs +2 -0
- package/.output/server/chunks/routes/api/users/register.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +2 -0
- package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +2 -0
- package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/_...path_.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/_...path_.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/audit.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/audit.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/caller.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/caller.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +36 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +53 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.patch.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index2.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index3.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index4.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/index6.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index7.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/index7.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index8.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index8.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/index8.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/runtime.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/tasks.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/users/me.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/users/register.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/renderer.mjs +1 -1
- package/.output/server/chunks/routes/renderer.mjs.map +1 -1
- package/.output/server/chunks/virtual/entry.mjs +166 -114
- package/.output/server/chunks/virtual/entry.mjs.map +1 -1
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/index.mjs +2 -0
- package/.output/server/index.mjs.map +1 -1
- package/.output/server/package.json +1 -1
- package/app/composables/workshop/useDaqStream.ts +59 -1
- package/app/config/schema.ts +8 -0
- package/app/pages/daq/[id].vue +141 -1
- package/app/pages/settings.vue +10 -5
- package/app/plugins/runtime-config.client.ts +65 -65
- package/app/stores/runtime-config.ts +212 -212
- package/config.yml +77 -70
- package/docker-compose.yml +19 -2
- package/docs/plugins.md +271 -197
- package/i18n/dicts/_en.json +7 -2
- package/i18n/dicts/daqDetail.json +8 -2
- package/i18n/locales/en.ts +55 -29
- package/i18n/locales/zh-CN.ts +55 -29
- package/nuxt.config.ts +1 -1
- package/package.json +144 -143
- package/scripts/_dbg-collab-scenario-e2e.mjs +185 -0
- package/scripts/_dbg-daq-frame-alarm.mjs +49 -0
- package/scripts/_dbg-daq-frame-ui.mjs +62 -0
- package/scripts/_dbg-daq-frame-ws.mjs +72 -0
- package/scripts/_dbg-daq-frames-e2e.mjs +118 -0
- package/scripts/_dbg-host.mjs +16 -0
- package/scripts/_dbg-plugin-agent-read.ts +56 -0
- package/scripts/_dbg-plugin-sink-rest.mjs +70 -0
- package/scripts/_dbg-plugin-sink-ui.mjs +81 -0
- package/scripts/_dbg-prompts-hotreload-test.ts +76 -0
- package/scripts/_dbg-release-smoke.mjs +104 -0
- package/scripts/home-bootstrap.mjs +18 -0
- package/scripts/i18n-merge.mjs +69 -67
- package/scripts/test-context-governor.ts +176 -176
- package/scripts/test-daq-frames.ts +180 -0
- package/scripts/test-daq-minio.ts +77 -0
- package/scripts/test-memory-rrf-mmr.ts +114 -114
- package/scripts/test-plugin-ext.ts +173 -0
- package/server/api/system/settings/events.get.ts +27 -28
- package/server/api/system/settings/index.get.ts +14 -14
- package/server/api/system/settings/index.patch.ts +22 -22
- package/server/api/system/settings/reset.post.ts +12 -12
- package/server/api/workshop/daq/[id]/frames/content.get.ts +24 -0
- package/server/api/workshop/daq/[id]/frames.get.ts +44 -0
- package/server/data/daqs.json +89 -89
- package/server/data/dcw-rollback.json +1 -1
- package/server/data/dcw-runs.json +3136 -2492
- package/server/data/dcw-writes.json +672 -0
- package/server/data/dcws.json +4 -4
- package/server/data/line-runs.json +1 -232
- package/server/plugins/daq.ts +11 -0
- package/server/plugins/system-config.ts +38 -38
- package/server/services/system-config.ts +365 -356
- package/server/services/workshop/agents/industrial-tools.ts +91 -25
- package/server/services/workshop/agents/omp-agent.ts +1955 -1895
- package/server/services/workshop/agents/plugin-tools.ts +145 -0
- package/server/services/workshop/daq/bus/queue-port.ts +18 -0
- package/server/services/workshop/daq/daq-controller.ts +216 -14
- package/server/services/workshop/daq/daq-node.ts +257 -247
- package/server/services/workshop/daq/daq-runtime.ts +36 -4
- package/server/services/workshop/daq/daq-templates.ts +213 -157
- package/server/services/workshop/daq/drivers.ts +134 -30
- package/server/services/workshop/daq/frames.ts +227 -0
- package/server/services/workshop/daq/infra.ts +31 -17
- package/server/services/workshop/daq/objectstore/disk.adapter.ts +38 -0
- package/server/services/workshop/daq/objectstore/index.ts +88 -0
- package/server/services/workshop/daq/objectstore/minio.adapter.ts +60 -0
- package/server/services/workshop/daq/objectstore/objectstore-port.ts +27 -0
- package/server/services/workshop/daq/plugin-bridge.ts +73 -0
- package/server/services/workshop/daq/png-enc.ts +71 -0
- package/server/services/workshop/daq/storage/sqlite.adapter.ts +104 -1
- package/server/services/workshop/daq/storage/timescale.adapter.ts +95 -4
- package/server/services/workshop/daq/storage/tsdb-port.ts +46 -0
- package/server/services/workshop/plugins/host.mjs +479 -417
- package/server/services/workshop/runtime/agent-runtime.ts +744 -744
- package/shared/config/schema.json +6 -1
- package/shared/daq-protocol.ts +88 -0
- package/.output/public/_nuxt/B-PgoIPN.js +0 -1
- package/.output/public/_nuxt/DVNYfGsj.js +0 -1
- package/.output/public/_nuxt/_id_.CbiF5PrV.css +0 -1
- package/.output/public/_nuxt/builds/meta/998b4cce-8563-44e5-b0ef-ff3d71a8480f.json +0 -1
- package/.output/public/_nuxt/settings.BANibAnV.css +0 -1
- package/.output/server/chunks/build/_id_-BOhG2yz8.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-CuyMYmhY.mjs.map +0 -1
- package/.output/server/chunks/build/agents-BVaxN75W.mjs.map +0 -1
- package/.output/server/chunks/build/channel-templates-D1K2IKrE.mjs.map +0 -1
- package/.output/server/chunks/build/client-only-CFTHwakk.mjs.map +0 -1
- package/.output/server/chunks/build/daq-ObtN1TQ4.mjs.map +0 -1
- package/.output/server/chunks/build/dcw-fINr-He1.mjs.map +0 -1
- package/.output/server/chunks/build/interval-Bt11uRPw.mjs +0 -9
- package/.output/server/chunks/build/interval-Bt11uRPw.mjs.map +0 -1
- package/.output/server/chunks/build/logs-DqNgCJAn.mjs.map +0 -1
- package/.output/server/chunks/build/pages-DC52d7z7.mjs.map +0 -1
- package/.output/server/chunks/build/plugins-DVQty7qG.mjs.map +0 -1
- package/.output/server/chunks/build/settings-BeergncK.mjs.map +0 -1
- package/.output/server/chunks/build/teams-CFeDlHDh.mjs.map +0 -1
- package/.output/server/chunks/build/tokens-CBAUbOce.mjs.map +0 -1
- package/.output/server/chunks/build/town-BxH-XXth.mjs.map +0 -1
- package/.output/server/chunks/build/useDaqStream-CwORhsD7.mjs.map +0 -1
- package/.output/server/chunks/build/users-BMs4s_6K.mjs.map +0 -1
- package/.output/server/chunks/build/workshop-CJAyZ5zS.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,F as t,G as n,H as r,Ht as i,St as a,Ut as o,Wt as s,a as c,b as l,et as u,f as d,ft as ee,g as f,h as p,m as te,mt as m,nt as h,p as g,rt as _,t as v,x as y,z as ne}from"./BSCpFtzG.js";import{B as re,F as ie,I as b,L as x}from"./2LwEn9gX.js";import{n as ae}from"./uBbDCfTz.js";import{t as oe}from"./ubPfs9mQ.js";import{n as se}from"./BeIfu4N3.js";import{r as S}from"./W1E3-5ML.js";import{t as ce}from"./C9f8QMp12.js";import{t as le}from"./CNs_Ozdc2.js";import{t as ue}from"./B0haAGoq.js";import{a as de,i as fe,n as pe,r as me,t as he}from"./B-PgoIPN.js";import{t as ge}from"./ClptO7LA.js";import{t as _e}from"./dt2tKE95.js";import{t as ve}from"./DRlJ2-4p.js";import{t as ye}from"./ChEKFMxj.js";var be={class:`page`},xe={class:`aw-page-head`},Se={class:`sub`},Ce={class:`badges mono`},we=[`title`],Te=[`title`],Ee={class:`txt`},De={class:`mono`},Oe={key:1,class:`infra-banner`},ke={class:`txt`},Ae={key:2,class:`infra-banner`},je={class:`txt`},Me=[`disabled`],Ne={key:3,class:`alarm-bar`},Pe={class:`bar-label`},Fe={class:`mono`},Ie={class:`alarm-scroll`},Le=[`title`],Re={class:`mono dim`},ze={class:`mono`},Be={key:0,class:`esc mono`},Ve=[`onClick`],He={class:`aw-tile ctrl-card`},Ue={class:`ctrl-row`},We={class:`ctrl-left`},Ge=[`title`],Ke={class:`cycle mono`},qe=[`title`],Je={class:`ctrl-right`},Ye={class:`ctrl-metrics mono`},Xe=[`title`],Ze=[`title`],Qe=[`title`],$e=[`title`],et={class:`line-strip`},tt={class:`strip-label`},nt={class:`mono`},rt={class:`strip-scroll`},it={key:0,class:`lp-run`},at={key:1,class:`lp-idle`},ot={class:`lp-idle`},st={class:`modal`},ct={class:`m-title`},lt={class:`seg-row`},ut={class:`f-grid`},dt={class:`f`},ft=[`value`],pt={class:`f`},mt=[`placeholder`],ht={key:0,class:`f`},gt=[`placeholder`],_t={class:`f-grid`},vt={class:`f`},yt=[`value`],bt={key:0,class:`f-grid driver-form`},xt={key:0},St=[`onUpdate:modelValue`],Ct=[`value`],wt=[`onUpdate:modelValue`,`type`,`placeholder`],Tt={key:2,class:`hint`},Et={class:`test-row`},Dt=[`disabled`],Ot={key:1,class:`m-err`},kt={class:`m-actions`},At=[`disabled`,`title`],jt={class:`modal`},Mt={class:`m-title`},Nt={class:`sec-label`},Pt={class:`tpl-table`},Ft={class:`mono dim`},It={class:`mono range`},Lt={class:`right actions`},Rt=[`onClick`],zt=[`onClick`],Bt={key:0},Vt={colspan:`3`,class:`empty`},Ht={class:`sec-label`},Ut={class:`f-grid`},Wt={class:`f`},Gt=[`placeholder`],Kt={class:`f`},qt={class:`f`},Jt=[`placeholder`],Yt={class:`f`},Xt=[`placeholder`],Zt={class:`f`},Qt={class:`f`},$t={class:`f`},en={class:`f`},tn=[`value`],nn={class:`f`},rn={class:`hint`},an={class:`f`},on={class:`hint`},sn={key:0,class:`m-err`},cn={class:`m-actions`},ln=[`disabled`],un={class:`sec-label`},dn={class:`tpl-table`},fn={class:`mono dim`},pn={class:`mono range`},mn={class:`right actions`},hn=[`onClick`],gn={class:`aw-tile opt-card`},_n={class:`opt-count mono`},vn={class:`opt-filters`},yn={value:``},bn=[`value`],xn={value:``},Sn=[`value`],Cn={key:0,class:`opt-empty`},wn={class:`opt-list`},Tn={class:`opt-line1`},En={class:`opt-node`},Dn={class:`mono opt-params`},On={class:`mono opt-time`},kn=[`disabled`,`onClick`],An=[`onClick`],jn={class:`opt-line2 mono`},Mn={key:1,class:`opt-open-hint`},Nn={key:2,class:`opt-agg`},Pn={key:3,class:`opt-agg`},Fn={key:0,class:`opt-series`},In={class:`opt-spark`,viewBox:`0 0 240 36`,preserveAspectRatio:`none`},Ln=[`points`],Rn={class:`mono`},zn={key:0,class:`opt-empty`},Bn={class:`aw-tile table-card`},Vn={class:`tbl-toolbar`},Hn={class:`filters`},Un={class:`flt`},Wn={value:``},Gn=[`value`],Kn={value:`none`},qn={class:`flt`},Jn={value:``},Yn=[`value`],Xn={value:`none`},Zn=[`title`],Qn={value:``},$n={value:`on`},er={value:`off`},tr={class:`flt`},nr={value:``},rr={value:`ok`},ir={value:`warn`},ar={value:`alarm`},or={value:`offline`},sr={class:`flt`},cr={value:``},lr=[`value`],ur={class:`flt`},dr={value:``},fr=[`value`],pr=[`title`],mr={value:``},hr={value:`live`},gr={value:`hour`},_r={value:`day`},vr={value:`old`},yr={value:`never`},br={class:`flt`},xr=[`placeholder`],Sr={class:`count mono`},Cr={class:`ops-panels`},wr={class:`panel-head`},Tr={class:`panel-body`},Er={key:0,class:`panel-empty`},Dr={class:`mono dim`},Or={class:`mono`},kr={key:0,class:`esc mono`},Ar=[`onClick`],jr={class:`ops-panel event-panel`},Mr={class:`panel-head`},Nr={class:`panel-body`},Pr={key:0,class:`panel-empty`},Fr={class:`mono dim t`},Ir=[`title`],Lr={class:`nodes-table`},Rr=[`title`],zr=[`title`],Br={class:`right`},Vr={class:`mono dim`},Hr={class:`mono ch`},Ur=[`title`],Wr=[`title`],Gr={class:`trend-cell`},Kr=[`title`],qr=[`y1`,`y2`],Jr=[`y1`,`y2`],Yr=[`points`],Xr={class:`mono`},Zr={class:`mono`},Qr=[`title`],$r=[`value`,`title`,`onChange`],ei={value:``},ti=[`value`],ni=[`title`],ri={key:1,class:`run-pill na`},ii={class:`prod-cell`},ai=[`title`],oi=[`title`],si={key:1,class:`dim`},ci=[`value`,`title`,`onChange`],li={value:``},ui=[`value`],di={class:`right`},fi=[`title`,`onClick`],pi={key:0},mi={colspan:`11`},hi={class:`pane-empty`,style:{"min-height":`120px`}},gi={class:`pe-sub`},_i={key:1},vi={colspan:`11`},yi={class:`pane-empty`,style:{"min-height":`90px`}},bi={class:`pe-sub`},xi={key:6,class:`err`},Si=120,Ci=26,C=v(e({__name:`index`,setup(e){let{t:v}=se();le({layout:`default`}),ae({title:()=>v(`titles.daq`)});let C=he(),w=ue(),wi=_e(),Ti=d(()=>w.lines.some(e=>w.lineStateOf(e.id).active));async function Ei(e,t){let n=t.target.value;try{await C.patchNode(e,{lineId:n});let t=C.nodes.find(t=>t.id===e);t&&(t.lineId=n)}catch(e){S.error(e instanceof Error?e.message:String(e))}}async function Di(e,t){let n=t.target.value;try{await C.bindNode(e,n||null)}catch(e){S.error(e instanceof Error?e.message:String(e))}}async function Oi(e){let t=!e.enabled;try{await C.patchNode(e.id,{enabled:t}),e.enabled=t,t||(e.state=`offline`),S.success(v(t?`daq.k1nodestart147`:`daq.k1nodestop146`))}catch(e){S.error(e instanceof Error?e.message:String(e))}}function ki(e){if(!e.lineId)return null;let t=w.lineStateOf(e.lineId);return!t.active||!t.recipeId?null:w.recipes.find(e=>e.id===t.recipeId)?.daqWindows?.find(t=>t.nodeId===e.id)??null}function Ai(e){let t=ki(e);return!t||e.value==null?!1:t.min!=null&&e.value<t.min||t.max!=null&&e.value>t.max}let ji=ve();function Mi(e){return{write:v(`logs.kind.write`),manual:v(`logs.kind.manual`),alarm:v(`logs.kind.alarm`),line:v(`logs.kind.line`),recipe:v(`logs.kind.recipe`),rollback:v(`logs.kind.rollback`),daq:v(`logs.kind.daq`),system:v(`logs.kind.system`)}[e]??(e||v(`logs.kind.system`))}function Ni(e){let t=new Date(e);return Number.isFinite(t.getTime())?`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}:${String(t.getSeconds()).padStart(2,`0`)}`:``}function Pi(e){let t=e.filter(Number.isFinite);if(t.length<2)return``;let n=Math.min(...t),r=Math.max(...t)-n||1;return t.map((e,i)=>`${(i/(t.length-1)*Si).toFixed(1)},${(Ci-(e-n)/r*24-1).toFixed(1)}`).join(` `)}function T(e,t){if(t==null||!Number.isFinite(t))return null;let n=e.filter(Number.isFinite);if(n.length<2)return null;let r=Math.min(...n,t),i=Math.max(...n,t)-r||1;return Number((Ci-(t-r)/i*24-1).toFixed(1))}function E(e){let t=ki(e);return t&&(t.min!=null||t.max!=null)?{min:t.min,max:t.max,source:`recipe`}:e.warnLow!=null||e.warnHigh!=null?{min:e.warnLow,max:e.warnHigh,source:`warn`}:{min:null,max:null,source:`warn`}}async function Fi(e){try{await C.ackAlarm(e),S.success(v(`daq.k1acked144`))}catch(e){S.error(e instanceof Error?e.message:String(e))}}let Ii=null;ne(()=>{wi.ensureConnected(),Ii=C.ensureWsFeed(),ji.ensureLive(),C.load(),C.fetchAlarms(),w.load(),I.load(),w.loadOptimizations(),ye(()=>{C.load(),C.fetchAlarms()},5e3,{bgMs:3e4}),ye(()=>{w.load()},15e3,{bgMs:6e4})}),t(()=>{Ii?.()});let D=ee({lineId:``,deviceId:``,template:``,driver:``,lineRun:``,state:``,time:``,search:``}),Li=d(()=>!!(D.lineId||D.deviceId||D.template||D.driver||D.lineRun||D.state||D.time||D.search.trim()));function Ri(){D.lineId=``,D.deviceId=``,D.template=``,D.driver=``,D.lineRun=``,D.state=``,D.time=``,D.search=``}let zi=d(()=>{let e=new Map;for(let t of C.nodes)e.set(t.templateRef,(e.get(t.templateRef)??0)+1);return[...e.entries()].map(([e,t])=>({ref:e,count:t,label:ba(e)}))}),Bi=d(()=>{let e=new Map;for(let t of C.nodes)e.set(t.driver,(e.get(t.driver)??0)+1);return[...e.entries()].map(([e,t])=>({kind:e,count:t,label:C.meta.drivers.find(t=>t.kind===e)?.label??e}))});function Vi(e){if(!e.lastAt)return`never`;let t=Date.now()-Date.parse(e.lastAt);return t<=3e5?`live`:t<=36e5?`hour`:t<=864e5?`day`:`old`}function Hi(e){return!D.time||Vi(e)===D.time}function Ui(e){let t=D.search.trim().toLowerCase();return!t||e.name.toLowerCase().includes(t)||e.id.toLowerCase().includes(t)}let O=m(!1),Wi=m(!1),k=m(``),A=m(``),j=m({}),Gi=m(``),Ki=d(()=>w.recipes.filter(e=>!k.value||e.lineId===k.value));function qi(e){return{open:`daq.k1optst001`,judged:`daq.k1optst008`,"judged-keep":`daq.k1optst002`,"rolled-back":`daq.k1optst003`,superseded:`daq.k1optst004`,"superseded-manual":`daq.k1optst005`,"closed-line-stop":`daq.k1optst006`,failed:`daq.k1optst007`}[e]??`daq.k1optst001`}async function Ji(){O.value=!O.value,O.value&&(Wi.value=!0,await M())}async function M(){await w.loadOptimizations({lineId:k.value||void 0,recipeId:A.value||void 0})}function Yi(){A.value&&!Ki.value.some(e=>e.id===A.value)&&(A.value=``),M()}async function Xi(e){Gi.value=e;try{let t=await w.optimizationSeries(e);j.value={...j.value,[e]:t}}finally{Gi.value=``}}function Zi(e,t=240,n=36){let r=e.map(e=>e.value??e.avg??0).filter(Number.isFinite);if(r.length<2)return``;let i=Math.min(...r),a=Math.max(...r)-i||1;return r.map((e,o)=>`${o/(r.length-1)*t},${n-(e-i)/a*n}`).join(` `)}async function Qi(e){await w.rollbackOptimization(e),await M()}function $i(e){return e==null?`--`:String(Number(e.toFixed(2)))}let ea=d(()=>{let e=new Map;for(let t of C.nodes)t.deviceBindingId&&e.set(t.deviceBindingId,(e.get(t.deviceBindingId)??0)+1);return I.twins.filter(t=>e.has(t.id)).map(t=>({id:t.id,name:ua.get(t.id)??t.name,count:e.get(t.id)}))});function ta(e){if(!D.lineRun)return!0;let t=!!e.lineId&&w.lineStateOf(e.lineId).active;return D.lineRun===`on`?t:!t}let N=d(()=>w.lines.find(e=>e.id===D.lineId)??null),P=d(()=>N.value?w.lineStateOf(N.value.id):null);function na(e){if(!e.lastAt)return!0;let t=e.intervalMs??C.controller.defaultIntervalMs;return Date.now()-Date.parse(e.lastAt)>Math.max(t*4,12e3)}function ra(e){return e.enabled?e.lineId?w.lineStateOf(e.lineId).active?!C.controller.running||na(e)?`offline`:e.state:`idle`:`unassigned`:`disabled`}function ia(e){let t=ra(e);return t===`ok`||t===`warn`||t===`alarm`}let aa={ok:v(`daq.k41k5c062`),warn:v(`daq.k49z8v063`),alarm:v(`daq.k3xmid064`),offline:v(`daq.k44c2n065`),idle:v(`daq.k3ozyqz117`),disabled:v(`daq.k1disabl130`),unassigned:v(`daq.k3ootr6053`)};function oa(e){let t=ra(e);if(t===`offline`){let n=C.controller.running?v(`daq.k1staled129`,{p0:Math.round(Math.max((e.intervalMs??C.controller.defaultIntervalMs)*4,12e3)/1e3)}):v(`daq.k1gateoff140`);return{key:t,label:aa.offline,tip:n}}if(t===`idle`)return{key:t,label:aa.idle,tip:v(`daq.k1idlehin139`)};if((t===`ok`||t===`warn`||t===`alarm`)&&Ai(e)){let t=ki(e);return{key:`alarm`,label:v(`daq.k1l3pt51104`),tip:v(`daq.k1hrrqa1122`,{p0:t?.min??`-∞`,p1:t?.max??`+∞`,p2:``})}}return{key:t,label:aa[t],tip:``}}let F=d(()=>C.nodes.filter(e=>!(D.lineId&&(D.lineId===`none`?e.lineId:(e.lineId??``)!==D.lineId)||D.deviceId&&(D.deviceId===`none`?e.deviceBindingId:e.deviceBindingId!==D.deviceId)||D.template&&e.templateRef!==D.template||D.driver&&e.driver!==D.driver||!ta(e)||D.state&&ra(e)!==D.state||!Hi(e)||!Ui(e)))),sa=d(()=>{let e=new Map;for(let t of F.value)e.set(t.id,{pill:oa(t),alarm:Ai(t),live:ia(t),tpl:ba(t.templateRef)});return e}),ca={pill:{key:`offline`,label:``,tip:``},alarm:!1,live:!1,tpl:`-`},la=d(()=>F.value.map(e=>({n:e,c:sa.value.get(e.id)??ca}))),I=ge(),ua=new Map;u(()=>I.twins,e=>{for(let t of e)ua.set(t.id,t.name)},{immediate:!0,deep:!0});let da=d(()=>I.twins.filter(e=>e.kind!==`daq`&&!(e.modelRef??``).startsWith(`daq-`)&&!(e.modelRef??``).startsWith(`dcw-`))),fa=e=>e==null?v(`daq.k9vnp9h124`,{p0:C.controller.defaultIntervalMs}):`${e}ms`,pa=e=>e==null?v(`daq.k9vnp9h124`,{p0:C.controller.defaultPublishIntervalMs}):e===0?v(`daq.k41mvv078`):`${e}ms`,L=m(!1),R=m(`mock`),z=m(me[0]?.key??`temp-tc`),B=m(`modbus-tcp`),V=m(``),ma=m(null),H=m({}),ha=ee({kind:`none`,scale:1,offset:0}),U=m(!1),W=m(null),G=m(!1),K=m(``),ga=d(()=>pe.find(e=>e.kind===B.value)),q=d(()=>ga.value?.configFields??[]),_a=e=>C.meta.drivers.find(t=>t.kind===e)?.status!==`planned`&&C.meta.driverAvailable?.[e]!==!1;u(B,()=>{let e={};for(let t of q.value)t.default!==void 0&&(e[t.key]=t.default);H.value=e,W.value=null},{immediate:!0});async function va(){U.value=!0,W.value=null;try{W.value=await C.testDriver(B.value,H.value)}catch(e){W.value={ok:!1,message:e instanceof Error?e.message:String(e)}}finally{U.value=!1}}async function ya(){G.value=!0,K.value=``;try{let e=ha.kind===`linear`?{kind:`linear`,scale:Number(ha.scale),offset:Number(ha.offset)}:void 0;if(R.value===`mock`)await C.createFromTemplate(`daq-${z.value}`,{name:V.value?{name:V.value}.name:void 0,transform:e});else{for(let e of q.value)if(e.required&&!H.value[e.key]&&H.value[e.key]!==0)throw Error(v(`daq.kyuadl0125`,{p0:e.label}));let t=C.templates.find(e=>e.key===z.value);await C.createFromTemplate(`daq-${z.value}`,{name:V.value||void 0,driver:B.value,driverConfig:{...H.value},transform:e,intervalMs:ma.value,unit:t?.unit,min:t?.min,max:t?.max,decimals:t?.decimals})}L.value=!1,V.value=``,W.value=null}catch(e){K.value=e instanceof Error?e.message:String(e)}finally{G.value=!1}}function ba(e){let t=C.templates.find(t=>t.key===de(e));return t?`${t.name} · ${t.ch}`:e||`-`}let xa=m(!1),J=m(null),Y=m(!1),X=m(``),Z=m(``),Q=ee({name:``,ch:``,code:``,unit:``,min:0,max:100,base:50,amp:2,decimals:2,icon:`thermo`}),Sa={thermo:v(`daq.k422b8079`),pressure:v(`daq.k3x6ff080`),tension:v(`daq.k3z9xc081`),encoder:v(`daq.k3subk4082`),camera:v(`daq.k47atw083`),gateway:v(`daq.kz7yhbj084`)},Ca=d(()=>C.templates.filter(e=>!e.builtin)),wa=d(()=>C.templates.filter(e=>e.builtin));function Ta(e,t=!1){Q.name=t?v(`daq.k2hbo3c126`,{p0:e.name}):e.name,Q.ch=e.ch,Q.code=e.code,Q.unit=e.unit,Q.min=e.min,Q.max=e.max,Q.base=e.base,Q.amp=e.amp,Q.decimals=e.decimals,Q.icon=e.icon}function Ea(){J.value=null,X.value=``,Z.value=``,Ta({key:``,name:``,code:``,ch:``,unit:``,base:50,amp:2,min:0,max:100,decimals:2,icon:`thermo`})}function Da(e){J.value=e.key,X.value=``,Ta(e)}function Oa(e){J.value=null,X.value=``,Ta(e,!0)}async function ka(){Y.value=!0,X.value=``;try{let e=e=>{let t=Number(e);return e===``||e==null||!Number.isFinite(t)?void 0:t},t={name:Q.name.trim(),ch:Q.ch.trim()||void 0,code:Q.code.trim()||void 0,unit:Q.unit.trim(),min:e(Q.min),max:e(Q.max),base:e(Q.base),amp:e(Q.amp),decimals:e(Q.decimals),icon:Q.icon};J.value?await C.updateTemplate(J.value,t):await C.createTemplate(t),Ea()}catch(e){X.value=e instanceof Error?e.message:String(e)}finally{Y.value=!1}}async function Aa(e){if(Z.value!==e.key){Z.value=e.key;return}try{await C.removeTemplate(e.key)}catch(e){X.value=e instanceof Error?e.message:String(e)}finally{Z.value=``}}let ja=e=>C.meta.drivers.find(t=>t.kind===e)?.status===`planned`,$=m(!1);async function Ma(){$.value=!0;try{await C.reconnectInfra()}catch{}finally{$.value=!1}}return(e,t)=>{let u=oe,d=ce;return r(),f(`div`,be,[g(`div`,xe,[g(`div`,null,[t[36]||=g(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / DAQ CONSOLE `,-1),g(`h1`,null,s(e.$t(`daq.k1emg364011`)),1),g(`p`,Se,s(e.$t(`daq.k1wmg2bz012`)),1)]),g(`div`,Ce,[g(`span`,{class:`badge`,title:e.$t(`daq.k1tsdbtip133`)},`TSDB · `+s(a(C).meta.tsdb),9,we),g(`span`,{class:`badge`,title:e.$t(`daq.k1queuet134`)},`QUEUE · `+s(a(C).meta.queue),9,Te)])]),a(C).loaded&&N.value&&P.value?(r(),f(`div`,{key:0,class:i([`infra-banner`,{good:P.value.active}])},[g(`span`,{class:i(P.value.active?`i-tabler-circle-check`:`i-tabler-info-circle`)},null,2),g(`span`,Ee,[P.value.active?(r(),f(c,{key:0},[l(s(e.$t(`daq.k3ktxbr085`))+s(N.value.name)+`」`+s(e.$t(`daq.k15lvw0o105`)),1),g(`b`,null,s(P.value.productName),1),t[37]||=l(` · Recipe:`,-1),g(`b`,null,s(P.value.recipeName),1),g(`small`,De,s(e.$t(`daq.k400lb086`))+` `+s(P.value.runId?.slice(0,8))+` · `+s(e.$t(`daq.k3zkt2106`))+` `+s(P.value.startedAt?.slice(11,19))+` `+s(e.$t(`daq.k69vag8108`))+` `+s(P.value.taggedSamples)+` `+s(e.$t(`daq.k4118o092`)),1)],64)):(r(),f(c,{key:1},[l(s(e.$t(`daq.k3ktxbr085`))+s(N.value.name)+`」`+s(e.$t(`daq.k12uge2o107`)),1)],64))]),y(u,{class:`pill-btn`,to:`/dcw/${N.value.id}`},{default:h(()=>[l(s(P.value.active?e.$t(`daq.k1ukoy0v093`):e.$t(`daq.k1cg78i8109`)),1)]),_:1},8,[`to`])],2)):a(C).loaded&&!Ti.value?(r(),f(`div`,Oe,[t[38]||=g(`span`,{class:`i-tabler-info-circle`},null,-1),g(`span`,ke,[l(s(e.$t(`daq.k19onw5w013`)),1),y(u,{to:`/dcw`},{default:h(()=>[l(s(e.$t(`daq.k1b2tk5c014`)),1)]),_:1}),l(s(e.$t(`daq.k1u9wnlg015`)),1)])])):p(``,!0),a(C).meta.infra?.degraded?(r(),f(`div`,Ae,[t[39]||=g(`span`,{class:`i-tabler-alert-triangle`},null,-1),g(`span`,je,s(a(C).meta.infra.warning),1),g(`button`,{class:`pill-btn`,disabled:$.value,onClick:Ma},s($.value?e.$t(`daq.k1ld43ur094`):e.$t(`daq.kzg9805110`)),9,Me)])):p(``,!0),a(C).alarms.length?(r(),f(`div`,Ne,[g(`span`,Pe,[t[40]||=g(`span`,{class:`i-tabler-bell-ringing bell`},null,-1),l(` `+s(e.$t(`daq.k1alarm141`))+` `,1),g(`b`,Fe,s(a(C).alarms.length),1)]),g(`div`,Ie,[(r(!0),f(c,null,n(a(C).alarms,t=>(r(),f(`span`,{key:t.id,class:`alarm-item`,title:e.$t(`daq.k1esc143`,{p0:t.escalation})},[g(`b`,null,s(t.nodeName),1),g(`span`,Re,s(t.metric),1),g(`span`,ze,s(t.value)+` `+s(t.rule===`lt-min`?`<`:`>`)+` `+s(t.threshold),1),t.escalation>0?(r(),f(`small`,Be,`+`+s(t.escalation),1)):p(``,!0),g(`button`,{class:`mini-btn ack`,onClick:e=>Fi(t.id)},s(e.$t(`daq.k1ack142`)),9,Ve)],8,Le))),128))])])):p(``,!0),g(`section`,He,[g(`div`,Ue,[g(`div`,We,[g(`button`,{class:i([`aw-pill`,{running:a(C).controller.running}]),title:e.$t(`daq.k1snap145`),onClick:t[0]||=e=>a(C).controllerAction(a(C).controller.running?`pause`:`resume`)},[g(`span`,{class:i(a(C).controller.running?`i-tabler-player-pause`:`i-tabler-player-play`)},null,2),l(` `+s(a(C).controller.running?e.$t(`daq.kpui00095`):e.$t(`daq.knxpdpt111`)),1)],10,Ge),g(`label`,Ke,[l(s(e.$t(`daq.k1ifahxj016`))+` `,1),_(g(`input`,{"onUpdate:modelValue":t[1]||=e=>a(C).controller.defaultIntervalMs=e,type:`number`,min:`200`,max:`60000`,step:`100`,onChange:t[2]||=e=>a(C).controllerAction(`config`,a(C).controller.defaultIntervalMs)},null,544),[[x,a(C).controller.defaultIntervalMs,void 0,{number:!0}]]),t[41]||=l(`ms `,-1)]),g(`label`,{class:`cycle mono`,title:e.$t(`daq.k1e8lcoo001`)},[l(s(e.$t(`daq.k1if98n0017`))+` `,1),_(g(`input`,{"onUpdate:modelValue":t[3]||=e=>a(C).controller.defaultPublishIntervalMs=e,type:`number`,min:`0`,max:`60000`,step:`100`,onChange:t[4]||=e=>a(C).controllerAction(`config`,a(C).controller.defaultIntervalMs,a(C).controller.defaultPublishIntervalMs)},null,544),[[x,a(C).controller.defaultPublishIntervalMs,void 0,{number:!0}]]),t[42]||=l(`ms `,-1)],8,qe)]),g(`div`,Je,[g(`span`,Ye,[g(`span`,null,s(e.$t(`daq.k45uio067`))+` `+s(a(C).controller.nodesOnline)+`/`+s(a(C).controller.nodesTotal),1),t[43]||=g(`span`,{class:`sep`},`·`,-1),g(`span`,{title:e.$t(`daq.k1yztsu4002`)},s(e.$t(`daq.k3xagp087`))+` `+s(a(C).meta.produced),9,Xe),t[44]||=g(`span`,{class:`sep`},`·`,-1),g(`span`,{title:e.$t(`daq.ko09iha003`)},s(e.$t(`daq.k427eu088`))+` `+s(a(C).meta.consumed),9,Ze),t[45]||=g(`span`,{class:`sep`},`·`,-1),g(`span`,{class:i({warn:(a(C).meta.dropped??0)>0}),title:e.$t(`daq.k1droptip135`)},s(e.$t(`daq.k3w8go089`))+` `+s(a(C).meta.dropped),11,Qe),t[46]||=g(`span`,{class:`sep`},`·`,-1),g(`span`,{title:e.$t(`daq.kj1jbmw004`)},s(e.$t(`daq.k3wusd090`))+` `+s(a(C).meta.samplesStored),9,$e)]),g(`button`,{class:`aw-pill outline add-btn`,onClick:t[5]||=e=>{xa.value=!0,Ea()}},[t[47]||=g(`span`,{class:`i-tabler-adjustments-horizontal`},null,-1),l(` `+s(e.$t(`daq.k1f5cv0s018`)),1)]),g(`button`,{class:`aw-pill add-btn`,onClick:t[6]||=e=>L.value=!0},[t[48]||=g(`span`,{class:`i-tabler-plus`},null,-1),l(` `+s(e.$t(`daq.k1fn0ukb019`)),1)])])]),g(`div`,et,[g(`span`,tt,[t[49]||=g(`span`,{class:`i-tabler-route`},null,-1),l(` `+s(e.$t(`daq.k1b2o3b6020`)),1),g(`small`,nt,s(a(w).lines.length),1)]),g(`div`,rt,[(r(!0),f(c,null,n(a(w).lines,n=>(r(),te(u,{key:n.id,class:i([`line-pill`,{on:a(w).lineStateOf(n.id).active}]),style:o({"--lc":n.color}),to:`/dcw/${n.id}`,title:a(w).lineStateOf(n.id).active?e.$t(`daq.k3v957u120`,{p0:n.name,p1:a(w).lineStateOf(n.id).productName,p2:a(w).lineStateOf(n.id).recipeName}):e.$t(`daq.k1x7jnru121`,{p0:n.name})},{default:h(()=>[t[50]||=g(`span`,{class:`lp-dot`},null,-1),g(`b`,null,s(n.name),1),a(w).lineStateOf(n.id).active?(r(),f(`small`,it,s(a(w).lineStateOf(n.id).recipeName??e.$t(`daq.k3vp67i096`)),1)):(r(),f(`small`,at,s(e.$t(`daq.k3zgkk021`)),1))]),_:2},1032,[`class`,`style`,`to`,`title`]))),128)),a(w).lines.length===0?(r(),te(u,{key:0,class:`line-pill`,to:`/dcw`},{default:h(()=>[t[51]||=g(`span`,{class:`lp-dot`},null,-1),g(`b`,null,s(e.$t(`daq.k1el12b1022`)),1),g(`small`,ot,s(e.$t(`daq.k8jxxe8023`)),1)]),_:1})):p(``,!0)])])]),L.value?(r(),f(`div`,{key:4,class:`modal-mask`,onClick:t[14]||=re(e=>L.value=!1,[`self`])},[g(`div`,st,[g(`h3`,ct,s(e.$t(`daq.k19rioqa024`)),1),g(`div`,lt,[g(`button`,{class:i([`seg`,{on:R.value===`mock`}]),onClick:t[7]||=e=>R.value=`mock`},s(e.$t(`daq.k1p5c1un025`)),3),g(`button`,{class:i([`seg`,{on:R.value===`real`}]),onClick:t[8]||=e=>R.value=`real`},s(e.$t(`daq.k1cbcp3o026`)),3)]),g(`div`,ut,[g(`label`,dt,[g(`span`,null,s(e.$t(`daq.k1fsgerc027`)),1),_(g(`select`,{"onUpdate:modelValue":t[9]||=e=>z.value=e,class:`inp`},[(r(!0),f(c,null,n(a(C).templates,t=>(r(),f(`option`,{key:t.key,value:t.key},s(t.name)+` · `+s(t.ch)+`(`+s(t.min)+`~`+s(t.max)+` `+s(t.unit)+`)`+s(t.builtin?``:e.$t(`daq.kr45rk9097`)),9,ft))),128))],512),[[b,z.value]])]),g(`label`,pt,[g(`span`,null,s(e.$t(`daq.k1ce2k1y028`)),1),_(g(`input`,{"onUpdate:modelValue":t[10]||=e=>V.value=e,class:`inp`,placeholder:e.$t(`daq.kgpxzy3005`)},null,8,mt),[[x,V.value]])]),R.value===`real`?(r(),f(`label`,ht,[g(`span`,null,s(e.$t(`daq.k13mfsfc029`)),1),_(g(`input`,{"onUpdate:modelValue":t[11]||=e=>ma.value=e,type:`number`,min:`200`,max:`60000`,step:`100`,class:`inp`,placeholder:e.$t(`daq.k1eg1000a136`)},null,8,gt),[[x,ma.value,void 0,{number:!0}]])])):p(``,!0)]),R.value===`real`?(r(),f(c,{key:0},[g(`div`,_t,[g(`label`,vt,[g(`span`,null,s(e.$t(`daq.k1kt87rx030`)),1),_(g(`select`,{"onUpdate:modelValue":t[12]||=e=>B.value=e,class:`inp`},[(r(!0),f(c,null,n(a(pe).filter(e=>e.status!==`planned`),t=>(r(),f(`option`,{key:t.kind,value:t.kind},s(t.label)+s(_a(t.kind)?``:e.$t(`daq.kjbqphp098`)),9,yt))),128))],512),[[b,B.value]])])]),q.value.length?(r(),f(`div`,bt,[(r(!0),f(c,null,n(q.value,e=>(r(),f(`label`,{key:e.key,class:`f`},[g(`span`,null,[l(s(e.label),1),e.required?(r(),f(`em`,xt,`*`)):p(``,!0)]),e.type===`select`?_((r(),f(`select`,{key:0,"onUpdate:modelValue":t=>H.value[e.key]=t,class:`inp`},[(r(!0),f(c,null,n(e.options,e=>(r(),f(`option`,{key:e.value,value:e.value},s(e.label),9,Ct))),128))],8,St)),[[b,H.value[e.key]]]):_((r(),f(`input`,{key:1,"onUpdate:modelValue":t=>H.value[e.key]=t,type:e.type===`number`?`number`:`text`,placeholder:e.placeholder,class:`inp`},null,8,wt)),[[ie,H.value[e.key]]]),e.hint?(r(),f(`small`,Tt,s(e.hint),1)):p(``,!0)]))),128))])):p(``,!0),g(`div`,Et,[g(`button`,{class:`pill-btn`,disabled:U.value,onClick:va},s(U.value?e.$t(`daq.k1fsh720099`):e.$t(`daq.k1fstglk112`)),9,Dt),W.value?(r(),f(`span`,{key:0,class:i([`test-result`,W.value.ok?`ok`:`bad`])},[l(s(W.value.ok?`✓`:`✗`)+` `+s(W.value.message),1),W.value.latencyMs==null?p(``,!0):(r(),f(c,{key:0},[l(`(`+s(W.value.latencyMs)+`ms)`,1)],64))],2)):p(``,!0)])],64)):p(``,!0),K.value?(r(),f(`p`,Ot,s(K.value),1)):p(``,!0),g(`div`,kt,[g(`button`,{class:`aw-pill outline`,onClick:t[13]||=e=>L.value=!1},s(e.$t(`daq.k3xdnn031`)),1),g(`button`,{class:`aw-pill`,disabled:G.value||R.value===`real`&&W.value!=null&&!W.value.ok,title:R.value===`real`&&!(W.value&&W.value.ok)?e.$t(`daq.k1needtst137`):``,onClick:ya},s(G.value?e.$t(`daq.k1bg4759100`):R.value===`real`?e.$t(`daq.k7pxjxo113`):e.$t(`daq.k1bge46t118`)),9,At)])])])):p(``,!0),xa.value?(r(),f(`div`,{key:5,class:`modal-mask`,onClick:t[25]||=re(e=>xa.value=!1,[`self`])},[g(`div`,jt,[g(`h3`,Mt,s(e.$t(`daq.k11mv96s032`)),1),g(`p`,Nt,s(e.$t(`daq.ktji4ky033`)),1),g(`table`,Pt,[g(`tbody`,null,[(r(!0),f(c,null,n(Ca.value,t=>(r(),f(`tr`,{key:t.key},[g(`td`,null,[g(`b`,null,s(t.name),1),g(`small`,Ft,s(t.code),1)]),g(`td`,It,s(t.min)+`~`+s(t.max)+` `+s(t.unit)+` · `+s(t.decimals)+` `+s(e.$t(`daq.k48oi091`)),1),g(`td`,Lt,[g(`button`,{class:`mini-btn`,onClick:e=>Da(t)},s(e.$t(`daq.k45eb0034`)),9,Rt),g(`button`,{class:`mini-btn danger`,onClick:e=>Aa(t)},s(Z.value===t.key?e.$t(`daq.k1hhheu3101`):e.$t(`daq.k3xakp114`)),9,zt)])]))),128)),Ca.value.length?p(``,!0):(r(),f(`tr`,Bt,[g(`td`,Vt,s(e.$t(`daq.kztvzbo035`)),1)]))])]),g(`p`,Ht,s(J.value?e.$t(`daq.k1iiph0s102`):e.$t(`daq.k1efixrj115`)),1),g(`div`,Ut,[g(`label`,Wt,[g(`span`,null,[l(s(e.$t(`daq.k3xhia036`)),1),t[52]||=g(`em`,null,`*`,-1)]),_(g(`input`,{"onUpdate:modelValue":t[15]||=e=>a(Q).name=e,class:`inp`,placeholder:e.$t(`daq.k5opd2t006`)},null,8,Gt),[[x,a(Q).name]])]),g(`label`,Kt,[g(`span`,null,[l(s(e.$t(`daq.k3x4ef037`)),1),t[53]||=g(`em`,null,`*`,-1)]),_(g(`input`,{"onUpdate:modelValue":t[16]||=e=>a(Q).unit=e,class:`inp`,placeholder:`如 %RH`},null,512),[[x,a(Q).unit]])]),g(`label`,qt,[g(`span`,null,s(e.$t(`daq.k1l477m0038`)),1),_(g(`input`,{"onUpdate:modelValue":t[17]||=e=>a(Q).ch=e,class:`inp`,placeholder:e.$t(`daq.kk8o4tl007`)},null,8,Jt),[[x,a(Q).ch]])]),g(`label`,Yt,[g(`span`,null,s(e.$t(`daq.k1ayxrqb039`)),1),_(g(`input`,{"onUpdate:modelValue":t[18]||=e=>a(Q).code=e,class:`inp`,placeholder:e.$t(`daq.kzn3l7l008`)},null,8,Xt),[[x,a(Q).code]])]),g(`label`,Zt,[g(`span`,null,[l(s(e.$t(`daq.k1l9jv5m040`)),1),t[54]||=g(`em`,null,`*`,-1)]),_(g(`input`,{"onUpdate:modelValue":t[19]||=e=>a(Q).min=e,type:`number`,class:`inp`},null,512),[[x,a(Q).min,void 0,{number:!0}]])]),g(`label`,Qt,[g(`span`,null,[l(s(e.$t(`daq.k1l9jv4p041`)),1),t[55]||=g(`em`,null,`*`,-1)]),_(g(`input`,{"onUpdate:modelValue":t[20]||=e=>a(Q).max=e,type:`number`,class:`inp`},null,512),[[x,a(Q).max,void 0,{number:!0}]])]),g(`label`,$t,[g(`span`,null,s(e.$t(`daq.k3mxmcx042`)),1),_(g(`input`,{"onUpdate:modelValue":t[21]||=e=>a(Q).decimals=e,type:`number`,min:`0`,max:`4`,class:`inp`},null,512),[[x,a(Q).decimals,void 0,{number:!0}]])]),g(`label`,en,[g(`span`,null,s(e.$t(`daq.k3xx56043`)),1),_(g(`select`,{"onUpdate:modelValue":t[22]||=e=>a(Q).icon=e,class:`inp`},[(r(!0),f(c,null,n(a(fe),e=>(r(),f(`option`,{key:e,value:e},s(Sa[e]),9,tn))),128))],512),[[b,a(Q).icon]])]),g(`label`,nn,[g(`span`,null,s(e.$t(`daq.k1f4eknv044`)),1),_(g(`input`,{"onUpdate:modelValue":t[23]||=e=>a(Q).base=e,type:`number`,class:`inp`},null,512),[[x,a(Q).base,void 0,{number:!0}]]),g(`small`,rn,s(e.$t(`daq.kytd15s045`)),1)]),g(`label`,an,[g(`span`,null,s(e.$t(`daq.k1f4ifpo046`)),1),_(g(`input`,{"onUpdate:modelValue":t[24]||=e=>a(Q).amp=e,type:`number`,class:`inp`},null,512),[[x,a(Q).amp,void 0,{number:!0}]]),g(`small`,on,s(e.$t(`daq.ksp2aji047`)),1)])]),X.value?(r(),f(`p`,sn,s(X.value),1)):p(``,!0),g(`div`,cn,[g(`button`,{class:`aw-pill outline`,onClick:Ea},s(e.$t(`daq.k48p40048`)),1),g(`button`,{class:`pill-btn`,disabled:Y.value,onClick:ka},s(Y.value?e.$t(`daq.k1b38d59103`):J.value?e.$t(`daq.k1b39281116`):e.$t(`daq.k1b3dtga119`)),9,ln)]),g(`p`,un,s(e.$t(`daq.k1w8s84s049`)),1),g(`table`,dn,[g(`tbody`,null,[(r(!0),f(c,null,n(wa.value,t=>(r(),f(`tr`,{key:t.key},[g(`td`,null,[g(`b`,null,s(t.name),1),g(`small`,fn,s(t.code),1)]),g(`td`,pn,s(t.min)+`~`+s(t.max)+` `+s(t.unit)+` · `+s(t.decimals)+` `+s(e.$t(`daq.k48oi091`)),1),g(`td`,mn,[g(`button`,{class:`mini-btn`,onClick:e=>Oa(t)},s(e.$t(`daq.k3y694050`)),9,hn)])]))),128))])])])])):p(``,!0),g(`section`,gn,[g(`button`,{class:`opt-head`,onClick:Ji},[t[56]||=g(`span`,{class:`i-tabler-flask`},null,-1),g(`b`,null,s(e.$t(`daq.k1optt001`)),1),g(`span`,_n,s(a(w).optimizations.length),1),g(`span`,{class:i([`opt-chevron`,{open:O.value}])},null,2)]),g(`div`,{class:i([`opt-body`,{open:O.value}])},[Wi.value?(r(),f(c,{key:0},[g(`div`,vn,[_(g(`select`,{"onUpdate:modelValue":t[26]||=e=>k.value=e,class:`inp-sel`,onChange:Yi},[g(`option`,yn,s(e.$t(`daq.k1optf001`)),1),(r(!0),f(c,null,n(a(w).lines,e=>(r(),f(`option`,{key:e.id,value:e.id},s(e.name),9,bn))),128))],544),[[b,k.value]]),_(g(`select`,{"onUpdate:modelValue":t[27]||=e=>A.value=e,class:`inp-sel`,onChange:M},[g(`option`,xn,s(e.$t(`daq.k1optf004`)),1),(r(!0),f(c,null,n(Ki.value,e=>(r(),f(`option`,{key:e.id,value:e.id},s(e.name),9,Sn))),128))],544),[[b,A.value]]),g(`button`,{class:`mini-act`,onClick:M},s(e.$t(`daq.k1optf002`)),1)]),a(w).optimizations.length===0?(r(),f(`p`,Cn,s(e.$t(`daq.k1opte001`)),1)):p(``,!0),g(`ul`,wn,[(r(!0),f(c,null,n(a(w).optimizations.slice(0,30),t=>(r(),f(`li`,{key:t.id,class:i([`opt-row`,t.status])},[g(`div`,Tn,[g(`span`,{class:i([`opt-status`,t.status])},s(e.$t(qi(t.status))),3),g(`b`,En,s(t.nodeName),1),g(`span`,Dn,s(t.params[0]?.from??`?`)+` → `+s(t.params[0]?.to),1),g(`span`,On,s(t.setAt.slice(5,16).replace(`T`,` `)),1),j.value[t.id]?p(``,!0):(r(),f(`button`,{key:0,class:`mini-act`,disabled:Gi.value===t.id,onClick:e=>Xi(t.id)},s(e.$t(`daq.k1opta001`)),9,kn)),t.status===`open`?(r(),f(`button`,{key:1,class:`mini-act danger`,onClick:e=>Qi(t.id)},s(e.$t(`daq.k1opta002`)),9,An)):p(``,!0)]),g(`div`,jn,[t.judge?(r(),f(`span`,{key:0,class:i([`opt-judge`,t.judge.verdict])},s(t.judge.verdict)+`(`+s(t.judge.by)+`): `+s(t.judge.reason.slice(0,70)),3)):t.status===`open`?(r(),f(`span`,Mn,s(e.$t(`daq.k1opto001`)),1)):p(``,!0),t.aggPending?(r(),f(`span`,Nn,s(e.$t(`daq.k1optw001`)),1)):t.windowAgg&&t.windowAgg.channels.length?(r(),f(`span`,Pn,[(r(!0),f(c,null,n(t.windowAgg.channels,t=>(r(),f(c,{key:t.daqNodeId},[l(s(t.ch)+` `+s($i(t.min))+`~`+s($i(t.max))+`(`+s(e.$t(`daq.k1optw002`))+s(t.breaches<0?`-`:t.breaches)+`) `,1)],64))),128))])):p(``,!0)]),j.value[t.id]?(r(),f(`div`,Fn,[(r(!0),f(c,null,n(j.value[t.id].channels,e=>(r(),f(`div`,{key:e.nodeId,class:`opt-ch`},[(r(),f(`svg`,In,[g(`polyline`,{points:Zi(e.points)},null,8,Ln)])),g(`span`,Rn,s(e.ch)+` `+s($i(e.points.at(-1)?.value??e.points.at(-1)?.avg))+s(e.unit),1)]))),128)),j.value[t.id].channels.length===0?(r(),f(`p`,zn,s(e.$t(`daq.k1opte002`)),1)):p(``,!0)])):p(``,!0)],2))),128))])],64)):p(``,!0)],2)]),y(d,{spinning:!a(C).loaded&&!a(C).error},{default:h(()=>[g(`section`,Bn,[g(`div`,Vn,[g(`div`,Hn,[g(`label`,Un,[g(`span`,null,s(e.$t(`daq.k3wj9n051`)),1),_(g(`select`,{"onUpdate:modelValue":t[28]||=e=>a(D).lineId=e,class:`inp-sel`},[g(`option`,Wn,s(e.$t(`daq.k1bkl9uj052`)),1),(r(!0),f(c,null,n(a(w).lines,e=>(r(),f(`option`,{key:e.id,value:e.id},s(e.name),9,Gn))),128)),g(`option`,Kn,s(e.$t(`daq.k3ootr6053`)),1)],512),[[b,a(D).lineId]])]),g(`label`,qn,[g(`span`,null,s(e.$t(`daq.k1i8rtqt054`)),1),_(g(`select`,{"onUpdate:modelValue":t[29]||=e=>a(D).deviceId=e,class:`inp-sel`},[g(`option`,Jn,s(e.$t(`daq.k1bkw4m2055`)),1),(r(!0),f(c,null,n(ea.value,e=>(r(),f(`option`,{key:e.id,value:e.id},s(e.name)+`(`+s(e.count)+`) `,9,Yn))),128)),g(`option`,Xn,s(e.$t(`daq.k3own4q056`)),1)],512),[[b,a(D).deviceId]])]),g(`label`,{class:`flt`,title:e.$t(`daq.khb8mru009`)},[g(`span`,null,s(e.$t(`daq.k1b2tkyv057`)),1),_(g(`select`,{"onUpdate:modelValue":t[30]||=e=>a(D).lineRun=e,class:`inp-sel`},[g(`option`,Qn,s(e.$t(`daq.k3x4t1058`)),1),g(`option`,$n,s(e.$t(`daq.k1nxm3p7059`)),1),g(`option`,er,s(e.$t(`daq.k1ulx34e060`)),1)],512),[[b,a(D).lineRun]])],8,Zn),g(`label`,tr,[g(`span`,null,s(e.$t(`daq.k1iwdfef061`)),1),_(g(`select`,{"onUpdate:modelValue":t[31]||=e=>a(D).state=e,class:`inp-sel`},[g(`option`,nr,s(e.$t(`daq.k3x4t1058`)),1),g(`option`,rr,s(e.$t(`daq.k41k5c062`)),1),g(`option`,ir,s(e.$t(`daq.k49z8v063`)),1),g(`option`,ar,s(e.$t(`daq.k3xmid064`)),1),g(`option`,or,s(e.$t(`daq.k44c2n065`)),1)],512),[[b,a(D).state]])]),g(`label`,sr,[g(`span`,null,s(e.$t(`daq.k1flttpl010`)),1),_(g(`select`,{"onUpdate:modelValue":t[32]||=e=>a(D).template=e,class:`inp-sel`},[g(`option`,cr,s(e.$t(`daq.k1flttpl011`)),1),(r(!0),f(c,null,n(zi.value,e=>(r(),f(`option`,{key:e.ref,value:e.ref},s(e.label)+`(`+s(e.count)+`) `,9,lr))),128))],512),[[b,a(D).template]])]),g(`label`,ur,[g(`span`,null,s(e.$t(`daq.k1fltdrv012`)),1),_(g(`select`,{"onUpdate:modelValue":t[33]||=e=>a(D).driver=e,class:`inp-sel`},[g(`option`,dr,s(e.$t(`daq.k1fltdrv013`)),1),(r(!0),f(c,null,n(Bi.value,e=>(r(),f(`option`,{key:e.kind,value:e.kind},s(e.label)+`(`+s(e.count)+`) `,9,fr))),128))],512),[[b,a(D).driver]])]),g(`label`,{class:`flt`,title:e.$t(`daq.k1flttim014`)},[g(`span`,null,s(e.$t(`daq.k1flttim015`)),1),_(g(`select`,{"onUpdate:modelValue":t[34]||=e=>a(D).time=e,class:`inp-sel`},[g(`option`,mr,s(e.$t(`daq.k1flttim016`)),1),g(`option`,hr,s(e.$t(`daq.k1timlv017`)),1),g(`option`,gr,s(e.$t(`daq.k1timhr018`)),1),g(`option`,_r,s(e.$t(`daq.k1timdy019`)),1),g(`option`,vr,s(e.$t(`daq.k1timld020`)),1),g(`option`,yr,s(e.$t(`daq.k1timnv021`)),1)],512),[[b,a(D).time]])],8,pr),g(`label`,br,[g(`span`,null,s(e.$t(`daq.k1fltsrc022`)),1),_(g(`input`,{"onUpdate:modelValue":t[35]||=e=>a(D).search=e,class:`inp-sel flt-search`,type:`search`,placeholder:e.$t(`daq.k1fltsph023`)},null,8,xr),[[x,a(D).search]])]),Li.value?(r(),f(`button`,{key:0,class:`mini-btn clear-btn`,onClick:Ri},s(e.$t(`daq.k1fygck2066`)),1)):p(``,!0)]),g(`span`,Sr,s(F.value.length)+` / `+s(a(C).nodes.length)+` `+s(e.$t(`daq.k45uio067`)),1)]),g(`div`,Cr,[g(`div`,{class:i([`ops-panel alarm-panel`,{live:a(C).alarms.length>0}])},[g(`div`,wr,[t[57]||=g(`span`,{class:`i-tabler-bell-ringing bell`},null,-1),g(`b`,null,s(e.$t(`daq.k1alarm141`)),1),g(`span`,{class:i([`mono cnt`,{hot:a(C).alarms.length>0}])},s(a(C).alarms.length),3)]),g(`div`,Tr,[a(C).alarms.length===0?(r(),f(`p`,Er,s(e.$t(`daq.k1evt001`)),1)):(r(!0),f(c,{key:1},n(a(C).alarms,n=>(r(),f(`div`,{key:n.id,class:`alarm-row`},[t[58]||=g(`span`,{class:`i-tabler-alert-triangle tri`},null,-1),g(`b`,null,s(n.nodeName),1),g(`span`,Dr,s(n.metric),1),g(`span`,Or,s(n.value)+` `+s(n.rule===`lt-min`?`<`:`>`)+` `+s(n.threshold),1),n.escalation>0?(r(),f(`small`,kr,`+`+s(n.escalation),1)):p(``,!0),g(`button`,{class:`mini-btn ack`,onClick:e=>Fi(n.id)},s(e.$t(`daq.k1ack142`)),9,Ar)]))),128))])],2),g(`div`,jr,[g(`div`,Mr,[t[60]||=g(`span`,{class:`i-tabler-activity`},null,-1),g(`b`,null,s(e.$t(`daq.k1evt002`)),1),y(u,{class:`panel-link`,to:`/logs`},{default:h(()=>[l(s(e.$t(`daq.k1evt003`)),1),t[59]||=g(`span`,{class:`i-tabler-arrow-right`},null,-1)]),_:1})]),g(`div`,Nr,[a(ji).recent.length===0?(r(),f(`p`,Pr,s(e.$t(`daq.k1evt004`)),1)):(r(!0),f(c,{key:1},n(a(ji).recent,(t,n)=>(r(),f(`div`,{key:`${t.at}:${t.actor}:${t.action}:${n}`,class:`evt-row`},[g(`span`,Fr,s(Ni(t.at)),1),g(`span`,{class:i([`src-badge`,t.actorKind])},s(t.actorKind===`agent`?`Agent`:t.actorKind===`user`?e.$t(`logs.src.user`):e.$t(`logs.src.system`)),3),g(`span`,{class:i([`kind-chip`,t.kind])},s(Mi(t.kind)),3),g(`span`,{class:`txt`,title:t.summary},s(t.summary),9,Ir)]))),128))])])]),g(`table`,Lr,[g(`thead`,null,[g(`tr`,null,[g(`th`,null,s(e.$t(`daq.k45uio067`)),1),g(`th`,null,s(e.$t(`daq.k42w8s068`)),1),g(`th`,null,s(e.$t(`daq.k3mv305069`)),1),g(`th`,null,s(e.$t(`daq.k1trnd001`)),1),g(`th`,null,s(e.$t(`daq.k1l6g2ga070`)),1),g(`th`,null,s(e.$t(`daq.k3zi0nf071`)),1),g(`th`,null,s(e.$t(`daq.k4a0la072`)),1),g(`th`,null,s(e.$t(`daq.k3wj9n051`)),1),g(`th`,{title:e.$t(`daq.k1runtipc131`)},s(e.$t(`daq.k1b2tkyv057`)),9,Rr),g(`th`,{title:e.$t(`daq.k1prdrtip132`)},s(e.$t(`daq.k1prodrc128`)),9,zr),g(`th`,null,s(e.$t(`daq.k1i8rtqt054`)),1),g(`th`,Br,s(e.$t(`daq.k40aa6073`)),1)])]),g(`tbody`,null,[(r(!0),f(c,null,n(la.value,({n:o,c:d})=>(r(),f(`tr`,{key:o.id,class:i({"row-recipe-alarm":d.alarm})},[g(`td`,null,[g(`span`,Vr,s(o.id.slice(0,8)),1),g(`b`,null,s(o.name),1),g(`small`,Hr,s(d.tpl),1)]),g(`td`,null,[g(`span`,{class:i([`st-pill`,[d.pill.key]]),title:d.pill.tip},s(d.pill.label),11,Ur)]),g(`td`,{class:i([`mono val`,{stale:!d.live,"val-alarm":o.state===`alarm`||d.alarm}]),title:d.live?void 0:d.pill.tip},[l(s(o.value==null?`--`:o.value.toFixed(o.decimals))+` `,1),g(`small`,null,s(o.unit),1)],10,Wr),g(`td`,Gr,[(r(),f(`svg`,{class:`trend`,viewBox:`0 0 120 26`,preserveAspectRatio:`none`,title:e.$t(`daq.k1trnd002`)},[T(o.hist,E(o).min)==null?p(``,!0):(r(),f(`line`,{key:0,class:`lim`,x1:`0`,y1:T(o.hist,E(o).min),x2:`120`,y2:T(o.hist,E(o).min)},null,8,qr)),T(o.hist,E(o).max)==null?p(``,!0):(r(),f(`line`,{key:1,class:`lim max`,x1:`0`,y1:T(o.hist,E(o).max),x2:`120`,y2:T(o.hist,E(o).max)},null,8,Jr)),g(`polyline`,{class:i([`trace`,{alarm:o.state===`alarm`||d.alarm}]),points:Pi(o.hist)},null,10,Yr)],8,Kr))]),g(`td`,Xr,s(fa(o.intervalMs)),1),g(`td`,Zr,s(pa(o.publishIntervalMs)),1),g(`td`,null,[g(`span`,{class:i([`drv-tag`,{planned:ja(o.driver)}]),title:ja(o.driver)?e.$t(`daq.k1plndrv138`):``},s(o.driver),11,Qr)]),g(`td`,null,[g(`select`,{class:`line-sel`,value:o.lineId,title:e.$t(`daq.k3q23v3010`),onChange:e=>Ei(o.id,e)},[g(`option`,ei,s(e.$t(`daq.k3ootr6053`)),1),(r(!0),f(c,null,n(a(w).lines,e=>(r(),f(`option`,{key:e.id,value:e.id},s(e.name),9,ti))),128))],40,$r)]),g(`td`,null,[o.lineId?(r(),f(`span`,{key:0,class:i([`run-pill`,{on:a(w).lineStateOf(o.lineId).active}]),title:e.$t(`daq.k1runtipc131`)},[t[61]||=g(`span`,{class:`rp-dot`},null,-1),l(` `+s(a(w).lineStateOf(o.lineId).active?e.$t(`daq.k3vp67i096`):e.$t(`daq.k3ozyqz117`)),1)],10,ni)):(r(),f(`span`,ri,s(e.$t(`daq.k3ootr6053`)),1))]),g(`td`,ii,[o.lineId&&a(w).lineStateOf(o.lineId).active?(r(),f(c,{key:0},[g(`b`,{title:e.$t(`daq.k1prdrtip132`)},s(a(w).lineStateOf(o.lineId).productName||`--`),9,ai),g(`small`,{class:`mono`,title:e.$t(`daq.k1prdrtip132`)},s(a(w).lineStateOf(o.lineId).recipeName||`--`),9,oi)],64)):(r(),f(`span`,si,`--`))]),g(`td`,null,[g(`select`,{class:`line-sel`,value:o.deviceBindingId??``,title:e.$t(`daq.k2bindtip137`),onChange:e=>Di(o.id,e)},[g(`option`,li,s(e.$t(`daq.k3own4q056`)),1),(r(!0),f(c,null,n(da.value,e=>(r(),f(`option`,{key:e.id,value:e.id},s(a(ua).get(e.id)??e.name),9,ui))),128))],40,ci)]),g(`td`,di,[g(`button`,{class:i([`node-toggle`,{off:!o.enabled}]),title:o.enabled?e.$t(`daq.k1nodestop146`):e.$t(`daq.k1nodestart147`),onClick:e=>Oi(o)},[g(`span`,{class:i(o.enabled?`i-tabler-player-pause`:`i-tabler-player-play`)},null,2),l(` `+s(o.enabled?e.$t(`daq.k1nodestop146`):e.$t(`daq.k1nodestart147`)),1)],10,fi),y(u,{class:`console-link`,to:`/daq/${o.id}`},{default:h(()=>[t[62]||=g(`span`,{class:`i-tabler-dashboard`},null,-1),l(` `+s(e.$t(`daq.k3o3jg2074`)),1)]),_:1},8,[`to`])])],2))),128)),a(C).loaded&&a(C).nodes.length===0?(r(),f(`tr`,pi,[g(`td`,mi,[g(`div`,hi,[g(`p`,gi,s(e.$t(`daq.kvhjyc3075`)),1)])])])):a(C).loaded&&F.value.length===0?(r(),f(`tr`,_i,[g(`td`,vi,[g(`div`,yi,[g(`p`,bi,s(e.$t(`daq.k1w20qew076`)),1)])])])):p(``,!0)])])])]),_:1},8,[`spinning`]),a(C).error?(r(),f(`p`,xi,[l(s(a(C).error)+`(`,1),y(u,{to:`/workshop`},{default:h(()=>[l(s(e.$t(`daq.k1bhhheq077`)),1)]),_:1}),t[63]||=l(`) `,-1)])):p(``,!0)])}}}),[[`__scopeId`,`data-v-ad25ed6d`]]);export{C as default};
|
|
1
|
+
import{C as e,F as t,G as n,H as r,Ht as i,St as a,Ut as o,Wt as s,a as c,b as l,et as u,f as d,ft as ee,g as f,h as p,m as te,mt as m,nt as h,p as g,rt as _,t as v,x as y,z as ne}from"./BSCpFtzG.js";import{B as re,F as ie,I as b,L as x}from"./2LwEn9gX.js";import{n as ae}from"./uBbDCfTz.js";import{t as oe}from"./ubPfs9mQ.js";import{n as se}from"./BeIfu4N3.js";import{r as S}from"./W1E3-5ML.js";import{t as ce}from"./C9f8QMp12.js";import{t as le}from"./CNs_Ozdc2.js";import{t as ue}from"./B0haAGoq.js";import{a as de,i as fe,n as pe,r as me,t as he}from"./CwS_UHeH.js";import{t as ge}from"./ClptO7LA.js";import{t as _e}from"./dt2tKE95.js";import{t as ve}from"./DRlJ2-4p.js";import{t as ye}from"./ChEKFMxj.js";var be={class:`page`},xe={class:`aw-page-head`},Se={class:`sub`},Ce={class:`badges mono`},we=[`title`],Te=[`title`],Ee={class:`txt`},De={class:`mono`},Oe={key:1,class:`infra-banner`},ke={class:`txt`},Ae={key:2,class:`infra-banner`},je={class:`txt`},Me=[`disabled`],Ne={key:3,class:`alarm-bar`},Pe={class:`bar-label`},Fe={class:`mono`},Ie={class:`alarm-scroll`},Le=[`title`],Re={class:`mono dim`},ze={class:`mono`},Be={key:0,class:`esc mono`},Ve=[`onClick`],He={class:`aw-tile ctrl-card`},Ue={class:`ctrl-row`},We={class:`ctrl-left`},Ge=[`title`],Ke={class:`cycle mono`},qe=[`title`],Je={class:`ctrl-right`},Ye={class:`ctrl-metrics mono`},Xe=[`title`],Ze=[`title`],Qe=[`title`],$e=[`title`],et={class:`line-strip`},tt={class:`strip-label`},nt={class:`mono`},rt={class:`strip-scroll`},it={key:0,class:`lp-run`},at={key:1,class:`lp-idle`},ot={class:`lp-idle`},st={class:`modal`},ct={class:`m-title`},lt={class:`seg-row`},ut={class:`f-grid`},dt={class:`f`},ft=[`value`],pt={class:`f`},mt=[`placeholder`],ht={key:0,class:`f`},gt=[`placeholder`],_t={class:`f-grid`},vt={class:`f`},yt=[`value`],bt={key:0,class:`f-grid driver-form`},xt={key:0},St=[`onUpdate:modelValue`],Ct=[`value`],wt=[`onUpdate:modelValue`,`type`,`placeholder`],Tt={key:2,class:`hint`},Et={class:`test-row`},Dt=[`disabled`],Ot={key:1,class:`m-err`},kt={class:`m-actions`},At=[`disabled`,`title`],jt={class:`modal`},Mt={class:`m-title`},Nt={class:`sec-label`},Pt={class:`tpl-table`},Ft={class:`mono dim`},It={class:`mono range`},Lt={class:`right actions`},Rt=[`onClick`],zt=[`onClick`],Bt={key:0},Vt={colspan:`3`,class:`empty`},Ht={class:`sec-label`},Ut={class:`f-grid`},Wt={class:`f`},Gt=[`placeholder`],Kt={class:`f`},qt={class:`f`},Jt=[`placeholder`],Yt={class:`f`},Xt=[`placeholder`],Zt={class:`f`},Qt={class:`f`},$t={class:`f`},en={class:`f`},tn=[`value`],nn={class:`f`},rn={class:`hint`},an={class:`f`},on={class:`hint`},sn={key:0,class:`m-err`},cn={class:`m-actions`},ln=[`disabled`],un={class:`sec-label`},dn={class:`tpl-table`},fn={class:`mono dim`},pn={class:`mono range`},mn={class:`right actions`},hn=[`onClick`],gn={class:`aw-tile opt-card`},_n={class:`opt-count mono`},vn={class:`opt-filters`},yn={value:``},bn=[`value`],xn={value:``},Sn=[`value`],Cn={key:0,class:`opt-empty`},wn={class:`opt-list`},Tn={class:`opt-line1`},En={class:`opt-node`},Dn={class:`mono opt-params`},On={class:`mono opt-time`},kn=[`disabled`,`onClick`],An=[`onClick`],jn={class:`opt-line2 mono`},Mn={key:1,class:`opt-open-hint`},Nn={key:2,class:`opt-agg`},Pn={key:3,class:`opt-agg`},Fn={key:0,class:`opt-series`},In={class:`opt-spark`,viewBox:`0 0 240 36`,preserveAspectRatio:`none`},Ln=[`points`],Rn={class:`mono`},zn={key:0,class:`opt-empty`},Bn={class:`aw-tile table-card`},Vn={class:`tbl-toolbar`},Hn={class:`filters`},Un={class:`flt`},Wn={value:``},Gn=[`value`],Kn={value:`none`},qn={class:`flt`},Jn={value:``},Yn=[`value`],Xn={value:`none`},Zn=[`title`],Qn={value:``},$n={value:`on`},er={value:`off`},tr={class:`flt`},nr={value:``},rr={value:`ok`},ir={value:`warn`},ar={value:`alarm`},or={value:`offline`},sr={class:`flt`},cr={value:``},lr=[`value`],ur={class:`flt`},dr={value:``},fr=[`value`],pr=[`title`],mr={value:``},hr={value:`live`},gr={value:`hour`},_r={value:`day`},vr={value:`old`},yr={value:`never`},br={class:`flt`},xr=[`placeholder`],Sr={class:`count mono`},Cr={class:`ops-panels`},wr={class:`panel-head`},Tr={class:`panel-body`},Er={key:0,class:`panel-empty`},Dr={class:`mono dim`},Or={class:`mono`},kr={key:0,class:`esc mono`},Ar=[`onClick`],jr={class:`ops-panel event-panel`},Mr={class:`panel-head`},Nr={class:`panel-body`},Pr={key:0,class:`panel-empty`},Fr={class:`mono dim t`},Ir=[`title`],Lr={class:`nodes-table`},Rr=[`title`],zr=[`title`],Br={class:`right`},Vr={class:`mono dim`},Hr={class:`mono ch`},Ur=[`title`],Wr=[`title`],Gr={class:`trend-cell`},Kr=[`title`],qr=[`y1`,`y2`],Jr=[`y1`,`y2`],Yr=[`points`],Xr={class:`mono`},Zr={class:`mono`},Qr=[`title`],$r=[`value`,`title`,`onChange`],ei={value:``},ti=[`value`],ni=[`title`],ri={key:1,class:`run-pill na`},ii={class:`prod-cell`},ai=[`title`],oi=[`title`],si={key:1,class:`dim`},ci=[`value`,`title`,`onChange`],li={value:``},ui=[`value`],di={class:`right`},fi=[`title`,`onClick`],pi={key:0},mi={colspan:`11`},hi={class:`pane-empty`,style:{"min-height":`120px`}},gi={class:`pe-sub`},_i={key:1},vi={colspan:`11`},yi={class:`pane-empty`,style:{"min-height":`90px`}},bi={class:`pe-sub`},xi={key:6,class:`err`},Si=120,Ci=26,C=v(e({__name:`index`,setup(e){let{t:v}=se();le({layout:`default`}),ae({title:()=>v(`titles.daq`)});let C=he(),w=ue(),wi=_e(),Ti=d(()=>w.lines.some(e=>w.lineStateOf(e.id).active));async function Ei(e,t){let n=t.target.value;try{await C.patchNode(e,{lineId:n});let t=C.nodes.find(t=>t.id===e);t&&(t.lineId=n)}catch(e){S.error(e instanceof Error?e.message:String(e))}}async function Di(e,t){let n=t.target.value;try{await C.bindNode(e,n||null)}catch(e){S.error(e instanceof Error?e.message:String(e))}}async function Oi(e){let t=!e.enabled;try{await C.patchNode(e.id,{enabled:t}),e.enabled=t,t||(e.state=`offline`),S.success(v(t?`daq.k1nodestart147`:`daq.k1nodestop146`))}catch(e){S.error(e instanceof Error?e.message:String(e))}}function ki(e){if(!e.lineId)return null;let t=w.lineStateOf(e.lineId);return!t.active||!t.recipeId?null:w.recipes.find(e=>e.id===t.recipeId)?.daqWindows?.find(t=>t.nodeId===e.id)??null}function Ai(e){let t=ki(e);return!t||e.value==null?!1:t.min!=null&&e.value<t.min||t.max!=null&&e.value>t.max}let ji=ve();function Mi(e){return{write:v(`logs.kind.write`),manual:v(`logs.kind.manual`),alarm:v(`logs.kind.alarm`),line:v(`logs.kind.line`),recipe:v(`logs.kind.recipe`),rollback:v(`logs.kind.rollback`),daq:v(`logs.kind.daq`),system:v(`logs.kind.system`)}[e]??(e||v(`logs.kind.system`))}function Ni(e){let t=new Date(e);return Number.isFinite(t.getTime())?`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}:${String(t.getSeconds()).padStart(2,`0`)}`:``}function Pi(e){let t=e.filter(Number.isFinite);if(t.length<2)return``;let n=Math.min(...t),r=Math.max(...t)-n||1;return t.map((e,i)=>`${(i/(t.length-1)*Si).toFixed(1)},${(Ci-(e-n)/r*24-1).toFixed(1)}`).join(` `)}function T(e,t){if(t==null||!Number.isFinite(t))return null;let n=e.filter(Number.isFinite);if(n.length<2)return null;let r=Math.min(...n,t),i=Math.max(...n,t)-r||1;return Number((Ci-(t-r)/i*24-1).toFixed(1))}function E(e){let t=ki(e);return t&&(t.min!=null||t.max!=null)?{min:t.min,max:t.max,source:`recipe`}:e.warnLow!=null||e.warnHigh!=null?{min:e.warnLow,max:e.warnHigh,source:`warn`}:{min:null,max:null,source:`warn`}}async function Fi(e){try{await C.ackAlarm(e),S.success(v(`daq.k1acked144`))}catch(e){S.error(e instanceof Error?e.message:String(e))}}let Ii=null;ne(()=>{wi.ensureConnected(),Ii=C.ensureWsFeed(),ji.ensureLive(),C.load(),C.fetchAlarms(),w.load(),I.load(),w.loadOptimizations(),ye(()=>{C.load(),C.fetchAlarms()},5e3,{bgMs:3e4}),ye(()=>{w.load()},15e3,{bgMs:6e4})}),t(()=>{Ii?.()});let D=ee({lineId:``,deviceId:``,template:``,driver:``,lineRun:``,state:``,time:``,search:``}),Li=d(()=>!!(D.lineId||D.deviceId||D.template||D.driver||D.lineRun||D.state||D.time||D.search.trim()));function Ri(){D.lineId=``,D.deviceId=``,D.template=``,D.driver=``,D.lineRun=``,D.state=``,D.time=``,D.search=``}let zi=d(()=>{let e=new Map;for(let t of C.nodes)e.set(t.templateRef,(e.get(t.templateRef)??0)+1);return[...e.entries()].map(([e,t])=>({ref:e,count:t,label:ba(e)}))}),Bi=d(()=>{let e=new Map;for(let t of C.nodes)e.set(t.driver,(e.get(t.driver)??0)+1);return[...e.entries()].map(([e,t])=>({kind:e,count:t,label:C.meta.drivers.find(t=>t.kind===e)?.label??e}))});function Vi(e){if(!e.lastAt)return`never`;let t=Date.now()-Date.parse(e.lastAt);return t<=3e5?`live`:t<=36e5?`hour`:t<=864e5?`day`:`old`}function Hi(e){return!D.time||Vi(e)===D.time}function Ui(e){let t=D.search.trim().toLowerCase();return!t||e.name.toLowerCase().includes(t)||e.id.toLowerCase().includes(t)}let O=m(!1),Wi=m(!1),k=m(``),A=m(``),j=m({}),Gi=m(``),Ki=d(()=>w.recipes.filter(e=>!k.value||e.lineId===k.value));function qi(e){return{open:`daq.k1optst001`,judged:`daq.k1optst008`,"judged-keep":`daq.k1optst002`,"rolled-back":`daq.k1optst003`,superseded:`daq.k1optst004`,"superseded-manual":`daq.k1optst005`,"closed-line-stop":`daq.k1optst006`,failed:`daq.k1optst007`}[e]??`daq.k1optst001`}async function Ji(){O.value=!O.value,O.value&&(Wi.value=!0,await M())}async function M(){await w.loadOptimizations({lineId:k.value||void 0,recipeId:A.value||void 0})}function Yi(){A.value&&!Ki.value.some(e=>e.id===A.value)&&(A.value=``),M()}async function Xi(e){Gi.value=e;try{let t=await w.optimizationSeries(e);j.value={...j.value,[e]:t}}finally{Gi.value=``}}function Zi(e,t=240,n=36){let r=e.map(e=>e.value??e.avg??0).filter(Number.isFinite);if(r.length<2)return``;let i=Math.min(...r),a=Math.max(...r)-i||1;return r.map((e,o)=>`${o/(r.length-1)*t},${n-(e-i)/a*n}`).join(` `)}async function Qi(e){await w.rollbackOptimization(e),await M()}function $i(e){return e==null?`--`:String(Number(e.toFixed(2)))}let ea=d(()=>{let e=new Map;for(let t of C.nodes)t.deviceBindingId&&e.set(t.deviceBindingId,(e.get(t.deviceBindingId)??0)+1);return I.twins.filter(t=>e.has(t.id)).map(t=>({id:t.id,name:ua.get(t.id)??t.name,count:e.get(t.id)}))});function ta(e){if(!D.lineRun)return!0;let t=!!e.lineId&&w.lineStateOf(e.lineId).active;return D.lineRun===`on`?t:!t}let N=d(()=>w.lines.find(e=>e.id===D.lineId)??null),P=d(()=>N.value?w.lineStateOf(N.value.id):null);function na(e){if(!e.lastAt)return!0;let t=e.intervalMs??C.controller.defaultIntervalMs;return Date.now()-Date.parse(e.lastAt)>Math.max(t*4,12e3)}function ra(e){return e.enabled?e.lineId?w.lineStateOf(e.lineId).active?!C.controller.running||na(e)?`offline`:e.state:`idle`:`unassigned`:`disabled`}function ia(e){let t=ra(e);return t===`ok`||t===`warn`||t===`alarm`}let aa={ok:v(`daq.k41k5c062`),warn:v(`daq.k49z8v063`),alarm:v(`daq.k3xmid064`),offline:v(`daq.k44c2n065`),idle:v(`daq.k3ozyqz117`),disabled:v(`daq.k1disabl130`),unassigned:v(`daq.k3ootr6053`)};function oa(e){let t=ra(e);if(t===`offline`){let n=C.controller.running?v(`daq.k1staled129`,{p0:Math.round(Math.max((e.intervalMs??C.controller.defaultIntervalMs)*4,12e3)/1e3)}):v(`daq.k1gateoff140`);return{key:t,label:aa.offline,tip:n}}if(t===`idle`)return{key:t,label:aa.idle,tip:v(`daq.k1idlehin139`)};if((t===`ok`||t===`warn`||t===`alarm`)&&Ai(e)){let t=ki(e);return{key:`alarm`,label:v(`daq.k1l3pt51104`),tip:v(`daq.k1hrrqa1122`,{p0:t?.min??`-∞`,p1:t?.max??`+∞`,p2:``})}}return{key:t,label:aa[t],tip:``}}let F=d(()=>C.nodes.filter(e=>!(D.lineId&&(D.lineId===`none`?e.lineId:(e.lineId??``)!==D.lineId)||D.deviceId&&(D.deviceId===`none`?e.deviceBindingId:e.deviceBindingId!==D.deviceId)||D.template&&e.templateRef!==D.template||D.driver&&e.driver!==D.driver||!ta(e)||D.state&&ra(e)!==D.state||!Hi(e)||!Ui(e)))),sa=d(()=>{let e=new Map;for(let t of F.value)e.set(t.id,{pill:oa(t),alarm:Ai(t),live:ia(t),tpl:ba(t.templateRef)});return e}),ca={pill:{key:`offline`,label:``,tip:``},alarm:!1,live:!1,tpl:`-`},la=d(()=>F.value.map(e=>({n:e,c:sa.value.get(e.id)??ca}))),I=ge(),ua=new Map;u(()=>I.twins,e=>{for(let t of e)ua.set(t.id,t.name)},{immediate:!0,deep:!0});let da=d(()=>I.twins.filter(e=>e.kind!==`daq`&&!(e.modelRef??``).startsWith(`daq-`)&&!(e.modelRef??``).startsWith(`dcw-`))),fa=e=>e==null?v(`daq.k9vnp9h124`,{p0:C.controller.defaultIntervalMs}):`${e}ms`,pa=e=>e==null?v(`daq.k9vnp9h124`,{p0:C.controller.defaultPublishIntervalMs}):e===0?v(`daq.k41mvv078`):`${e}ms`,L=m(!1),R=m(`mock`),z=m(me[0]?.key??`temp-tc`),B=m(`modbus-tcp`),V=m(``),ma=m(null),H=m({}),ha=ee({kind:`none`,scale:1,offset:0}),U=m(!1),W=m(null),G=m(!1),K=m(``),ga=d(()=>pe.find(e=>e.kind===B.value)),q=d(()=>ga.value?.configFields??[]),_a=e=>C.meta.drivers.find(t=>t.kind===e)?.status!==`planned`&&C.meta.driverAvailable?.[e]!==!1;u(B,()=>{let e={};for(let t of q.value)t.default!==void 0&&(e[t.key]=t.default);H.value=e,W.value=null},{immediate:!0});async function va(){U.value=!0,W.value=null;try{W.value=await C.testDriver(B.value,H.value)}catch(e){W.value={ok:!1,message:e instanceof Error?e.message:String(e)}}finally{U.value=!1}}async function ya(){G.value=!0,K.value=``;try{let e=ha.kind===`linear`?{kind:`linear`,scale:Number(ha.scale),offset:Number(ha.offset)}:void 0;if(R.value===`mock`)await C.createFromTemplate(`daq-${z.value}`,{name:V.value?{name:V.value}.name:void 0,transform:e});else{for(let e of q.value)if(e.required&&!H.value[e.key]&&H.value[e.key]!==0)throw Error(v(`daq.kyuadl0125`,{p0:e.label}));let t=C.templates.find(e=>e.key===z.value);await C.createFromTemplate(`daq-${z.value}`,{name:V.value||void 0,driver:B.value,driverConfig:{...H.value},transform:e,intervalMs:ma.value,unit:t?.unit,min:t?.min,max:t?.max,decimals:t?.decimals})}L.value=!1,V.value=``,W.value=null}catch(e){K.value=e instanceof Error?e.message:String(e)}finally{G.value=!1}}function ba(e){let t=C.templates.find(t=>t.key===de(e));return t?`${t.name} · ${t.ch}`:e||`-`}let xa=m(!1),J=m(null),Y=m(!1),X=m(``),Z=m(``),Q=ee({name:``,ch:``,code:``,unit:``,min:0,max:100,base:50,amp:2,decimals:2,icon:`thermo`}),Sa={thermo:v(`daq.k422b8079`),pressure:v(`daq.k3x6ff080`),tension:v(`daq.k3z9xc081`),encoder:v(`daq.k3subk4082`),camera:v(`daq.k47atw083`),gateway:v(`daq.kz7yhbj084`)},Ca=d(()=>C.templates.filter(e=>!e.builtin)),wa=d(()=>C.templates.filter(e=>e.builtin));function Ta(e,t=!1){Q.name=t?v(`daq.k2hbo3c126`,{p0:e.name}):e.name,Q.ch=e.ch,Q.code=e.code,Q.unit=e.unit,Q.min=e.min,Q.max=e.max,Q.base=e.base,Q.amp=e.amp,Q.decimals=e.decimals,Q.icon=e.icon}function Ea(){J.value=null,X.value=``,Z.value=``,Ta({key:``,name:``,code:``,ch:``,unit:``,base:50,amp:2,min:0,max:100,decimals:2,icon:`thermo`})}function Da(e){J.value=e.key,X.value=``,Ta(e)}function Oa(e){J.value=null,X.value=``,Ta(e,!0)}async function ka(){Y.value=!0,X.value=``;try{let e=e=>{let t=Number(e);return e===``||e==null||!Number.isFinite(t)?void 0:t},t={name:Q.name.trim(),ch:Q.ch.trim()||void 0,code:Q.code.trim()||void 0,unit:Q.unit.trim(),min:e(Q.min),max:e(Q.max),base:e(Q.base),amp:e(Q.amp),decimals:e(Q.decimals),icon:Q.icon};J.value?await C.updateTemplate(J.value,t):await C.createTemplate(t),Ea()}catch(e){X.value=e instanceof Error?e.message:String(e)}finally{Y.value=!1}}async function Aa(e){if(Z.value!==e.key){Z.value=e.key;return}try{await C.removeTemplate(e.key)}catch(e){X.value=e instanceof Error?e.message:String(e)}finally{Z.value=``}}let ja=e=>C.meta.drivers.find(t=>t.kind===e)?.status===`planned`,$=m(!1);async function Ma(){$.value=!0;try{await C.reconnectInfra()}catch{}finally{$.value=!1}}return(e,t)=>{let u=oe,d=ce;return r(),f(`div`,be,[g(`div`,xe,[g(`div`,null,[t[36]||=g(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / DAQ CONSOLE `,-1),g(`h1`,null,s(e.$t(`daq.k1emg364011`)),1),g(`p`,Se,s(e.$t(`daq.k1wmg2bz012`)),1)]),g(`div`,Ce,[g(`span`,{class:`badge`,title:e.$t(`daq.k1tsdbtip133`)},`TSDB · `+s(a(C).meta.tsdb),9,we),g(`span`,{class:`badge`,title:e.$t(`daq.k1queuet134`)},`QUEUE · `+s(a(C).meta.queue),9,Te)])]),a(C).loaded&&N.value&&P.value?(r(),f(`div`,{key:0,class:i([`infra-banner`,{good:P.value.active}])},[g(`span`,{class:i(P.value.active?`i-tabler-circle-check`:`i-tabler-info-circle`)},null,2),g(`span`,Ee,[P.value.active?(r(),f(c,{key:0},[l(s(e.$t(`daq.k3ktxbr085`))+s(N.value.name)+`」`+s(e.$t(`daq.k15lvw0o105`)),1),g(`b`,null,s(P.value.productName),1),t[37]||=l(` · Recipe:`,-1),g(`b`,null,s(P.value.recipeName),1),g(`small`,De,s(e.$t(`daq.k400lb086`))+` `+s(P.value.runId?.slice(0,8))+` · `+s(e.$t(`daq.k3zkt2106`))+` `+s(P.value.startedAt?.slice(11,19))+` `+s(e.$t(`daq.k69vag8108`))+` `+s(P.value.taggedSamples)+` `+s(e.$t(`daq.k4118o092`)),1)],64)):(r(),f(c,{key:1},[l(s(e.$t(`daq.k3ktxbr085`))+s(N.value.name)+`」`+s(e.$t(`daq.k12uge2o107`)),1)],64))]),y(u,{class:`pill-btn`,to:`/dcw/${N.value.id}`},{default:h(()=>[l(s(P.value.active?e.$t(`daq.k1ukoy0v093`):e.$t(`daq.k1cg78i8109`)),1)]),_:1},8,[`to`])],2)):a(C).loaded&&!Ti.value?(r(),f(`div`,Oe,[t[38]||=g(`span`,{class:`i-tabler-info-circle`},null,-1),g(`span`,ke,[l(s(e.$t(`daq.k19onw5w013`)),1),y(u,{to:`/dcw`},{default:h(()=>[l(s(e.$t(`daq.k1b2tk5c014`)),1)]),_:1}),l(s(e.$t(`daq.k1u9wnlg015`)),1)])])):p(``,!0),a(C).meta.infra?.degraded?(r(),f(`div`,Ae,[t[39]||=g(`span`,{class:`i-tabler-alert-triangle`},null,-1),g(`span`,je,s(a(C).meta.infra.warning),1),g(`button`,{class:`pill-btn`,disabled:$.value,onClick:Ma},s($.value?e.$t(`daq.k1ld43ur094`):e.$t(`daq.kzg9805110`)),9,Me)])):p(``,!0),a(C).alarms.length?(r(),f(`div`,Ne,[g(`span`,Pe,[t[40]||=g(`span`,{class:`i-tabler-bell-ringing bell`},null,-1),l(` `+s(e.$t(`daq.k1alarm141`))+` `,1),g(`b`,Fe,s(a(C).alarms.length),1)]),g(`div`,Ie,[(r(!0),f(c,null,n(a(C).alarms,t=>(r(),f(`span`,{key:t.id,class:`alarm-item`,title:e.$t(`daq.k1esc143`,{p0:t.escalation})},[g(`b`,null,s(t.nodeName),1),g(`span`,Re,s(t.metric),1),g(`span`,ze,s(t.value)+` `+s(t.rule===`lt-min`?`<`:`>`)+` `+s(t.threshold),1),t.escalation>0?(r(),f(`small`,Be,`+`+s(t.escalation),1)):p(``,!0),g(`button`,{class:`mini-btn ack`,onClick:e=>Fi(t.id)},s(e.$t(`daq.k1ack142`)),9,Ve)],8,Le))),128))])])):p(``,!0),g(`section`,He,[g(`div`,Ue,[g(`div`,We,[g(`button`,{class:i([`aw-pill`,{running:a(C).controller.running}]),title:e.$t(`daq.k1snap145`),onClick:t[0]||=e=>a(C).controllerAction(a(C).controller.running?`pause`:`resume`)},[g(`span`,{class:i(a(C).controller.running?`i-tabler-player-pause`:`i-tabler-player-play`)},null,2),l(` `+s(a(C).controller.running?e.$t(`daq.kpui00095`):e.$t(`daq.knxpdpt111`)),1)],10,Ge),g(`label`,Ke,[l(s(e.$t(`daq.k1ifahxj016`))+` `,1),_(g(`input`,{"onUpdate:modelValue":t[1]||=e=>a(C).controller.defaultIntervalMs=e,type:`number`,min:`200`,max:`60000`,step:`100`,onChange:t[2]||=e=>a(C).controllerAction(`config`,a(C).controller.defaultIntervalMs)},null,544),[[x,a(C).controller.defaultIntervalMs,void 0,{number:!0}]]),t[41]||=l(`ms `,-1)]),g(`label`,{class:`cycle mono`,title:e.$t(`daq.k1e8lcoo001`)},[l(s(e.$t(`daq.k1if98n0017`))+` `,1),_(g(`input`,{"onUpdate:modelValue":t[3]||=e=>a(C).controller.defaultPublishIntervalMs=e,type:`number`,min:`0`,max:`60000`,step:`100`,onChange:t[4]||=e=>a(C).controllerAction(`config`,a(C).controller.defaultIntervalMs,a(C).controller.defaultPublishIntervalMs)},null,544),[[x,a(C).controller.defaultPublishIntervalMs,void 0,{number:!0}]]),t[42]||=l(`ms `,-1)],8,qe)]),g(`div`,Je,[g(`span`,Ye,[g(`span`,null,s(e.$t(`daq.k45uio067`))+` `+s(a(C).controller.nodesOnline)+`/`+s(a(C).controller.nodesTotal),1),t[43]||=g(`span`,{class:`sep`},`·`,-1),g(`span`,{title:e.$t(`daq.k1yztsu4002`)},s(e.$t(`daq.k3xagp087`))+` `+s(a(C).meta.produced),9,Xe),t[44]||=g(`span`,{class:`sep`},`·`,-1),g(`span`,{title:e.$t(`daq.ko09iha003`)},s(e.$t(`daq.k427eu088`))+` `+s(a(C).meta.consumed),9,Ze),t[45]||=g(`span`,{class:`sep`},`·`,-1),g(`span`,{class:i({warn:(a(C).meta.dropped??0)>0}),title:e.$t(`daq.k1droptip135`)},s(e.$t(`daq.k3w8go089`))+` `+s(a(C).meta.dropped),11,Qe),t[46]||=g(`span`,{class:`sep`},`·`,-1),g(`span`,{title:e.$t(`daq.kj1jbmw004`)},s(e.$t(`daq.k3wusd090`))+` `+s(a(C).meta.samplesStored),9,$e)]),g(`button`,{class:`aw-pill outline add-btn`,onClick:t[5]||=e=>{xa.value=!0,Ea()}},[t[47]||=g(`span`,{class:`i-tabler-adjustments-horizontal`},null,-1),l(` `+s(e.$t(`daq.k1f5cv0s018`)),1)]),g(`button`,{class:`aw-pill add-btn`,onClick:t[6]||=e=>L.value=!0},[t[48]||=g(`span`,{class:`i-tabler-plus`},null,-1),l(` `+s(e.$t(`daq.k1fn0ukb019`)),1)])])]),g(`div`,et,[g(`span`,tt,[t[49]||=g(`span`,{class:`i-tabler-route`},null,-1),l(` `+s(e.$t(`daq.k1b2o3b6020`)),1),g(`small`,nt,s(a(w).lines.length),1)]),g(`div`,rt,[(r(!0),f(c,null,n(a(w).lines,n=>(r(),te(u,{key:n.id,class:i([`line-pill`,{on:a(w).lineStateOf(n.id).active}]),style:o({"--lc":n.color}),to:`/dcw/${n.id}`,title:a(w).lineStateOf(n.id).active?e.$t(`daq.k3v957u120`,{p0:n.name,p1:a(w).lineStateOf(n.id).productName,p2:a(w).lineStateOf(n.id).recipeName}):e.$t(`daq.k1x7jnru121`,{p0:n.name})},{default:h(()=>[t[50]||=g(`span`,{class:`lp-dot`},null,-1),g(`b`,null,s(n.name),1),a(w).lineStateOf(n.id).active?(r(),f(`small`,it,s(a(w).lineStateOf(n.id).recipeName??e.$t(`daq.k3vp67i096`)),1)):(r(),f(`small`,at,s(e.$t(`daq.k3zgkk021`)),1))]),_:2},1032,[`class`,`style`,`to`,`title`]))),128)),a(w).lines.length===0?(r(),te(u,{key:0,class:`line-pill`,to:`/dcw`},{default:h(()=>[t[51]||=g(`span`,{class:`lp-dot`},null,-1),g(`b`,null,s(e.$t(`daq.k1el12b1022`)),1),g(`small`,ot,s(e.$t(`daq.k8jxxe8023`)),1)]),_:1})):p(``,!0)])])]),L.value?(r(),f(`div`,{key:4,class:`modal-mask`,onClick:t[14]||=re(e=>L.value=!1,[`self`])},[g(`div`,st,[g(`h3`,ct,s(e.$t(`daq.k19rioqa024`)),1),g(`div`,lt,[g(`button`,{class:i([`seg`,{on:R.value===`mock`}]),onClick:t[7]||=e=>R.value=`mock`},s(e.$t(`daq.k1p5c1un025`)),3),g(`button`,{class:i([`seg`,{on:R.value===`real`}]),onClick:t[8]||=e=>R.value=`real`},s(e.$t(`daq.k1cbcp3o026`)),3)]),g(`div`,ut,[g(`label`,dt,[g(`span`,null,s(e.$t(`daq.k1fsgerc027`)),1),_(g(`select`,{"onUpdate:modelValue":t[9]||=e=>z.value=e,class:`inp`},[(r(!0),f(c,null,n(a(C).templates,t=>(r(),f(`option`,{key:t.key,value:t.key},s(t.name)+` · `+s(t.ch)+`(`+s(t.min)+`~`+s(t.max)+` `+s(t.unit)+`)`+s(t.builtin?``:e.$t(`daq.kr45rk9097`)),9,ft))),128))],512),[[b,z.value]])]),g(`label`,pt,[g(`span`,null,s(e.$t(`daq.k1ce2k1y028`)),1),_(g(`input`,{"onUpdate:modelValue":t[10]||=e=>V.value=e,class:`inp`,placeholder:e.$t(`daq.kgpxzy3005`)},null,8,mt),[[x,V.value]])]),R.value===`real`?(r(),f(`label`,ht,[g(`span`,null,s(e.$t(`daq.k13mfsfc029`)),1),_(g(`input`,{"onUpdate:modelValue":t[11]||=e=>ma.value=e,type:`number`,min:`200`,max:`60000`,step:`100`,class:`inp`,placeholder:e.$t(`daq.k1eg1000a136`)},null,8,gt),[[x,ma.value,void 0,{number:!0}]])])):p(``,!0)]),R.value===`real`?(r(),f(c,{key:0},[g(`div`,_t,[g(`label`,vt,[g(`span`,null,s(e.$t(`daq.k1kt87rx030`)),1),_(g(`select`,{"onUpdate:modelValue":t[12]||=e=>B.value=e,class:`inp`},[(r(!0),f(c,null,n(a(pe).filter(e=>e.status!==`planned`),t=>(r(),f(`option`,{key:t.kind,value:t.kind},s(t.label)+s(_a(t.kind)?``:e.$t(`daq.kjbqphp098`)),9,yt))),128))],512),[[b,B.value]])])]),q.value.length?(r(),f(`div`,bt,[(r(!0),f(c,null,n(q.value,e=>(r(),f(`label`,{key:e.key,class:`f`},[g(`span`,null,[l(s(e.label),1),e.required?(r(),f(`em`,xt,`*`)):p(``,!0)]),e.type===`select`?_((r(),f(`select`,{key:0,"onUpdate:modelValue":t=>H.value[e.key]=t,class:`inp`},[(r(!0),f(c,null,n(e.options,e=>(r(),f(`option`,{key:e.value,value:e.value},s(e.label),9,Ct))),128))],8,St)),[[b,H.value[e.key]]]):_((r(),f(`input`,{key:1,"onUpdate:modelValue":t=>H.value[e.key]=t,type:e.type===`number`?`number`:`text`,placeholder:e.placeholder,class:`inp`},null,8,wt)),[[ie,H.value[e.key]]]),e.hint?(r(),f(`small`,Tt,s(e.hint),1)):p(``,!0)]))),128))])):p(``,!0),g(`div`,Et,[g(`button`,{class:`pill-btn`,disabled:U.value,onClick:va},s(U.value?e.$t(`daq.k1fsh720099`):e.$t(`daq.k1fstglk112`)),9,Dt),W.value?(r(),f(`span`,{key:0,class:i([`test-result`,W.value.ok?`ok`:`bad`])},[l(s(W.value.ok?`✓`:`✗`)+` `+s(W.value.message),1),W.value.latencyMs==null?p(``,!0):(r(),f(c,{key:0},[l(`(`+s(W.value.latencyMs)+`ms)`,1)],64))],2)):p(``,!0)])],64)):p(``,!0),K.value?(r(),f(`p`,Ot,s(K.value),1)):p(``,!0),g(`div`,kt,[g(`button`,{class:`aw-pill outline`,onClick:t[13]||=e=>L.value=!1},s(e.$t(`daq.k3xdnn031`)),1),g(`button`,{class:`aw-pill`,disabled:G.value||R.value===`real`&&W.value!=null&&!W.value.ok,title:R.value===`real`&&!(W.value&&W.value.ok)?e.$t(`daq.k1needtst137`):``,onClick:ya},s(G.value?e.$t(`daq.k1bg4759100`):R.value===`real`?e.$t(`daq.k7pxjxo113`):e.$t(`daq.k1bge46t118`)),9,At)])])])):p(``,!0),xa.value?(r(),f(`div`,{key:5,class:`modal-mask`,onClick:t[25]||=re(e=>xa.value=!1,[`self`])},[g(`div`,jt,[g(`h3`,Mt,s(e.$t(`daq.k11mv96s032`)),1),g(`p`,Nt,s(e.$t(`daq.ktji4ky033`)),1),g(`table`,Pt,[g(`tbody`,null,[(r(!0),f(c,null,n(Ca.value,t=>(r(),f(`tr`,{key:t.key},[g(`td`,null,[g(`b`,null,s(t.name),1),g(`small`,Ft,s(t.code),1)]),g(`td`,It,s(t.min)+`~`+s(t.max)+` `+s(t.unit)+` · `+s(t.decimals)+` `+s(e.$t(`daq.k48oi091`)),1),g(`td`,Lt,[g(`button`,{class:`mini-btn`,onClick:e=>Da(t)},s(e.$t(`daq.k45eb0034`)),9,Rt),g(`button`,{class:`mini-btn danger`,onClick:e=>Aa(t)},s(Z.value===t.key?e.$t(`daq.k1hhheu3101`):e.$t(`daq.k3xakp114`)),9,zt)])]))),128)),Ca.value.length?p(``,!0):(r(),f(`tr`,Bt,[g(`td`,Vt,s(e.$t(`daq.kztvzbo035`)),1)]))])]),g(`p`,Ht,s(J.value?e.$t(`daq.k1iiph0s102`):e.$t(`daq.k1efixrj115`)),1),g(`div`,Ut,[g(`label`,Wt,[g(`span`,null,[l(s(e.$t(`daq.k3xhia036`)),1),t[52]||=g(`em`,null,`*`,-1)]),_(g(`input`,{"onUpdate:modelValue":t[15]||=e=>a(Q).name=e,class:`inp`,placeholder:e.$t(`daq.k5opd2t006`)},null,8,Gt),[[x,a(Q).name]])]),g(`label`,Kt,[g(`span`,null,[l(s(e.$t(`daq.k3x4ef037`)),1),t[53]||=g(`em`,null,`*`,-1)]),_(g(`input`,{"onUpdate:modelValue":t[16]||=e=>a(Q).unit=e,class:`inp`,placeholder:`如 %RH`},null,512),[[x,a(Q).unit]])]),g(`label`,qt,[g(`span`,null,s(e.$t(`daq.k1l477m0038`)),1),_(g(`input`,{"onUpdate:modelValue":t[17]||=e=>a(Q).ch=e,class:`inp`,placeholder:e.$t(`daq.kk8o4tl007`)},null,8,Jt),[[x,a(Q).ch]])]),g(`label`,Yt,[g(`span`,null,s(e.$t(`daq.k1ayxrqb039`)),1),_(g(`input`,{"onUpdate:modelValue":t[18]||=e=>a(Q).code=e,class:`inp`,placeholder:e.$t(`daq.kzn3l7l008`)},null,8,Xt),[[x,a(Q).code]])]),g(`label`,Zt,[g(`span`,null,[l(s(e.$t(`daq.k1l9jv5m040`)),1),t[54]||=g(`em`,null,`*`,-1)]),_(g(`input`,{"onUpdate:modelValue":t[19]||=e=>a(Q).min=e,type:`number`,class:`inp`},null,512),[[x,a(Q).min,void 0,{number:!0}]])]),g(`label`,Qt,[g(`span`,null,[l(s(e.$t(`daq.k1l9jv4p041`)),1),t[55]||=g(`em`,null,`*`,-1)]),_(g(`input`,{"onUpdate:modelValue":t[20]||=e=>a(Q).max=e,type:`number`,class:`inp`},null,512),[[x,a(Q).max,void 0,{number:!0}]])]),g(`label`,$t,[g(`span`,null,s(e.$t(`daq.k3mxmcx042`)),1),_(g(`input`,{"onUpdate:modelValue":t[21]||=e=>a(Q).decimals=e,type:`number`,min:`0`,max:`4`,class:`inp`},null,512),[[x,a(Q).decimals,void 0,{number:!0}]])]),g(`label`,en,[g(`span`,null,s(e.$t(`daq.k3xx56043`)),1),_(g(`select`,{"onUpdate:modelValue":t[22]||=e=>a(Q).icon=e,class:`inp`},[(r(!0),f(c,null,n(a(fe),e=>(r(),f(`option`,{key:e,value:e},s(Sa[e]),9,tn))),128))],512),[[b,a(Q).icon]])]),g(`label`,nn,[g(`span`,null,s(e.$t(`daq.k1f4eknv044`)),1),_(g(`input`,{"onUpdate:modelValue":t[23]||=e=>a(Q).base=e,type:`number`,class:`inp`},null,512),[[x,a(Q).base,void 0,{number:!0}]]),g(`small`,rn,s(e.$t(`daq.kytd15s045`)),1)]),g(`label`,an,[g(`span`,null,s(e.$t(`daq.k1f4ifpo046`)),1),_(g(`input`,{"onUpdate:modelValue":t[24]||=e=>a(Q).amp=e,type:`number`,class:`inp`},null,512),[[x,a(Q).amp,void 0,{number:!0}]]),g(`small`,on,s(e.$t(`daq.ksp2aji047`)),1)])]),X.value?(r(),f(`p`,sn,s(X.value),1)):p(``,!0),g(`div`,cn,[g(`button`,{class:`aw-pill outline`,onClick:Ea},s(e.$t(`daq.k48p40048`)),1),g(`button`,{class:`pill-btn`,disabled:Y.value,onClick:ka},s(Y.value?e.$t(`daq.k1b38d59103`):J.value?e.$t(`daq.k1b39281116`):e.$t(`daq.k1b3dtga119`)),9,ln)]),g(`p`,un,s(e.$t(`daq.k1w8s84s049`)),1),g(`table`,dn,[g(`tbody`,null,[(r(!0),f(c,null,n(wa.value,t=>(r(),f(`tr`,{key:t.key},[g(`td`,null,[g(`b`,null,s(t.name),1),g(`small`,fn,s(t.code),1)]),g(`td`,pn,s(t.min)+`~`+s(t.max)+` `+s(t.unit)+` · `+s(t.decimals)+` `+s(e.$t(`daq.k48oi091`)),1),g(`td`,mn,[g(`button`,{class:`mini-btn`,onClick:e=>Oa(t)},s(e.$t(`daq.k3y694050`)),9,hn)])]))),128))])])])])):p(``,!0),g(`section`,gn,[g(`button`,{class:`opt-head`,onClick:Ji},[t[56]||=g(`span`,{class:`i-tabler-flask`},null,-1),g(`b`,null,s(e.$t(`daq.k1optt001`)),1),g(`span`,_n,s(a(w).optimizations.length),1),g(`span`,{class:i([`opt-chevron`,{open:O.value}])},null,2)]),g(`div`,{class:i([`opt-body`,{open:O.value}])},[Wi.value?(r(),f(c,{key:0},[g(`div`,vn,[_(g(`select`,{"onUpdate:modelValue":t[26]||=e=>k.value=e,class:`inp-sel`,onChange:Yi},[g(`option`,yn,s(e.$t(`daq.k1optf001`)),1),(r(!0),f(c,null,n(a(w).lines,e=>(r(),f(`option`,{key:e.id,value:e.id},s(e.name),9,bn))),128))],544),[[b,k.value]]),_(g(`select`,{"onUpdate:modelValue":t[27]||=e=>A.value=e,class:`inp-sel`,onChange:M},[g(`option`,xn,s(e.$t(`daq.k1optf004`)),1),(r(!0),f(c,null,n(Ki.value,e=>(r(),f(`option`,{key:e.id,value:e.id},s(e.name),9,Sn))),128))],544),[[b,A.value]]),g(`button`,{class:`mini-act`,onClick:M},s(e.$t(`daq.k1optf002`)),1)]),a(w).optimizations.length===0?(r(),f(`p`,Cn,s(e.$t(`daq.k1opte001`)),1)):p(``,!0),g(`ul`,wn,[(r(!0),f(c,null,n(a(w).optimizations.slice(0,30),t=>(r(),f(`li`,{key:t.id,class:i([`opt-row`,t.status])},[g(`div`,Tn,[g(`span`,{class:i([`opt-status`,t.status])},s(e.$t(qi(t.status))),3),g(`b`,En,s(t.nodeName),1),g(`span`,Dn,s(t.params[0]?.from??`?`)+` → `+s(t.params[0]?.to),1),g(`span`,On,s(t.setAt.slice(5,16).replace(`T`,` `)),1),j.value[t.id]?p(``,!0):(r(),f(`button`,{key:0,class:`mini-act`,disabled:Gi.value===t.id,onClick:e=>Xi(t.id)},s(e.$t(`daq.k1opta001`)),9,kn)),t.status===`open`?(r(),f(`button`,{key:1,class:`mini-act danger`,onClick:e=>Qi(t.id)},s(e.$t(`daq.k1opta002`)),9,An)):p(``,!0)]),g(`div`,jn,[t.judge?(r(),f(`span`,{key:0,class:i([`opt-judge`,t.judge.verdict])},s(t.judge.verdict)+`(`+s(t.judge.by)+`): `+s(t.judge.reason.slice(0,70)),3)):t.status===`open`?(r(),f(`span`,Mn,s(e.$t(`daq.k1opto001`)),1)):p(``,!0),t.aggPending?(r(),f(`span`,Nn,s(e.$t(`daq.k1optw001`)),1)):t.windowAgg&&t.windowAgg.channels.length?(r(),f(`span`,Pn,[(r(!0),f(c,null,n(t.windowAgg.channels,t=>(r(),f(c,{key:t.daqNodeId},[l(s(t.ch)+` `+s($i(t.min))+`~`+s($i(t.max))+`(`+s(e.$t(`daq.k1optw002`))+s(t.breaches<0?`-`:t.breaches)+`) `,1)],64))),128))])):p(``,!0)]),j.value[t.id]?(r(),f(`div`,Fn,[(r(!0),f(c,null,n(j.value[t.id].channels,e=>(r(),f(`div`,{key:e.nodeId,class:`opt-ch`},[(r(),f(`svg`,In,[g(`polyline`,{points:Zi(e.points)},null,8,Ln)])),g(`span`,Rn,s(e.ch)+` `+s($i(e.points.at(-1)?.value??e.points.at(-1)?.avg))+s(e.unit),1)]))),128)),j.value[t.id].channels.length===0?(r(),f(`p`,zn,s(e.$t(`daq.k1opte002`)),1)):p(``,!0)])):p(``,!0)],2))),128))])],64)):p(``,!0)],2)]),y(d,{spinning:!a(C).loaded&&!a(C).error},{default:h(()=>[g(`section`,Bn,[g(`div`,Vn,[g(`div`,Hn,[g(`label`,Un,[g(`span`,null,s(e.$t(`daq.k3wj9n051`)),1),_(g(`select`,{"onUpdate:modelValue":t[28]||=e=>a(D).lineId=e,class:`inp-sel`},[g(`option`,Wn,s(e.$t(`daq.k1bkl9uj052`)),1),(r(!0),f(c,null,n(a(w).lines,e=>(r(),f(`option`,{key:e.id,value:e.id},s(e.name),9,Gn))),128)),g(`option`,Kn,s(e.$t(`daq.k3ootr6053`)),1)],512),[[b,a(D).lineId]])]),g(`label`,qn,[g(`span`,null,s(e.$t(`daq.k1i8rtqt054`)),1),_(g(`select`,{"onUpdate:modelValue":t[29]||=e=>a(D).deviceId=e,class:`inp-sel`},[g(`option`,Jn,s(e.$t(`daq.k1bkw4m2055`)),1),(r(!0),f(c,null,n(ea.value,e=>(r(),f(`option`,{key:e.id,value:e.id},s(e.name)+`(`+s(e.count)+`) `,9,Yn))),128)),g(`option`,Xn,s(e.$t(`daq.k3own4q056`)),1)],512),[[b,a(D).deviceId]])]),g(`label`,{class:`flt`,title:e.$t(`daq.khb8mru009`)},[g(`span`,null,s(e.$t(`daq.k1b2tkyv057`)),1),_(g(`select`,{"onUpdate:modelValue":t[30]||=e=>a(D).lineRun=e,class:`inp-sel`},[g(`option`,Qn,s(e.$t(`daq.k3x4t1058`)),1),g(`option`,$n,s(e.$t(`daq.k1nxm3p7059`)),1),g(`option`,er,s(e.$t(`daq.k1ulx34e060`)),1)],512),[[b,a(D).lineRun]])],8,Zn),g(`label`,tr,[g(`span`,null,s(e.$t(`daq.k1iwdfef061`)),1),_(g(`select`,{"onUpdate:modelValue":t[31]||=e=>a(D).state=e,class:`inp-sel`},[g(`option`,nr,s(e.$t(`daq.k3x4t1058`)),1),g(`option`,rr,s(e.$t(`daq.k41k5c062`)),1),g(`option`,ir,s(e.$t(`daq.k49z8v063`)),1),g(`option`,ar,s(e.$t(`daq.k3xmid064`)),1),g(`option`,or,s(e.$t(`daq.k44c2n065`)),1)],512),[[b,a(D).state]])]),g(`label`,sr,[g(`span`,null,s(e.$t(`daq.k1flttpl010`)),1),_(g(`select`,{"onUpdate:modelValue":t[32]||=e=>a(D).template=e,class:`inp-sel`},[g(`option`,cr,s(e.$t(`daq.k1flttpl011`)),1),(r(!0),f(c,null,n(zi.value,e=>(r(),f(`option`,{key:e.ref,value:e.ref},s(e.label)+`(`+s(e.count)+`) `,9,lr))),128))],512),[[b,a(D).template]])]),g(`label`,ur,[g(`span`,null,s(e.$t(`daq.k1fltdrv012`)),1),_(g(`select`,{"onUpdate:modelValue":t[33]||=e=>a(D).driver=e,class:`inp-sel`},[g(`option`,dr,s(e.$t(`daq.k1fltdrv013`)),1),(r(!0),f(c,null,n(Bi.value,e=>(r(),f(`option`,{key:e.kind,value:e.kind},s(e.label)+`(`+s(e.count)+`) `,9,fr))),128))],512),[[b,a(D).driver]])]),g(`label`,{class:`flt`,title:e.$t(`daq.k1flttim014`)},[g(`span`,null,s(e.$t(`daq.k1flttim015`)),1),_(g(`select`,{"onUpdate:modelValue":t[34]||=e=>a(D).time=e,class:`inp-sel`},[g(`option`,mr,s(e.$t(`daq.k1flttim016`)),1),g(`option`,hr,s(e.$t(`daq.k1timlv017`)),1),g(`option`,gr,s(e.$t(`daq.k1timhr018`)),1),g(`option`,_r,s(e.$t(`daq.k1timdy019`)),1),g(`option`,vr,s(e.$t(`daq.k1timld020`)),1),g(`option`,yr,s(e.$t(`daq.k1timnv021`)),1)],512),[[b,a(D).time]])],8,pr),g(`label`,br,[g(`span`,null,s(e.$t(`daq.k1fltsrc022`)),1),_(g(`input`,{"onUpdate:modelValue":t[35]||=e=>a(D).search=e,class:`inp-sel flt-search`,type:`search`,placeholder:e.$t(`daq.k1fltsph023`)},null,8,xr),[[x,a(D).search]])]),Li.value?(r(),f(`button`,{key:0,class:`mini-btn clear-btn`,onClick:Ri},s(e.$t(`daq.k1fygck2066`)),1)):p(``,!0)]),g(`span`,Sr,s(F.value.length)+` / `+s(a(C).nodes.length)+` `+s(e.$t(`daq.k45uio067`)),1)]),g(`div`,Cr,[g(`div`,{class:i([`ops-panel alarm-panel`,{live:a(C).alarms.length>0}])},[g(`div`,wr,[t[57]||=g(`span`,{class:`i-tabler-bell-ringing bell`},null,-1),g(`b`,null,s(e.$t(`daq.k1alarm141`)),1),g(`span`,{class:i([`mono cnt`,{hot:a(C).alarms.length>0}])},s(a(C).alarms.length),3)]),g(`div`,Tr,[a(C).alarms.length===0?(r(),f(`p`,Er,s(e.$t(`daq.k1evt001`)),1)):(r(!0),f(c,{key:1},n(a(C).alarms,n=>(r(),f(`div`,{key:n.id,class:`alarm-row`},[t[58]||=g(`span`,{class:`i-tabler-alert-triangle tri`},null,-1),g(`b`,null,s(n.nodeName),1),g(`span`,Dr,s(n.metric),1),g(`span`,Or,s(n.value)+` `+s(n.rule===`lt-min`?`<`:`>`)+` `+s(n.threshold),1),n.escalation>0?(r(),f(`small`,kr,`+`+s(n.escalation),1)):p(``,!0),g(`button`,{class:`mini-btn ack`,onClick:e=>Fi(n.id)},s(e.$t(`daq.k1ack142`)),9,Ar)]))),128))])],2),g(`div`,jr,[g(`div`,Mr,[t[60]||=g(`span`,{class:`i-tabler-activity`},null,-1),g(`b`,null,s(e.$t(`daq.k1evt002`)),1),y(u,{class:`panel-link`,to:`/logs`},{default:h(()=>[l(s(e.$t(`daq.k1evt003`)),1),t[59]||=g(`span`,{class:`i-tabler-arrow-right`},null,-1)]),_:1})]),g(`div`,Nr,[a(ji).recent.length===0?(r(),f(`p`,Pr,s(e.$t(`daq.k1evt004`)),1)):(r(!0),f(c,{key:1},n(a(ji).recent,(t,n)=>(r(),f(`div`,{key:`${t.at}:${t.actor}:${t.action}:${n}`,class:`evt-row`},[g(`span`,Fr,s(Ni(t.at)),1),g(`span`,{class:i([`src-badge`,t.actorKind])},s(t.actorKind===`agent`?`Agent`:t.actorKind===`user`?e.$t(`logs.src.user`):e.$t(`logs.src.system`)),3),g(`span`,{class:i([`kind-chip`,t.kind])},s(Mi(t.kind)),3),g(`span`,{class:`txt`,title:t.summary},s(t.summary),9,Ir)]))),128))])])]),g(`table`,Lr,[g(`thead`,null,[g(`tr`,null,[g(`th`,null,s(e.$t(`daq.k45uio067`)),1),g(`th`,null,s(e.$t(`daq.k42w8s068`)),1),g(`th`,null,s(e.$t(`daq.k3mv305069`)),1),g(`th`,null,s(e.$t(`daq.k1trnd001`)),1),g(`th`,null,s(e.$t(`daq.k1l6g2ga070`)),1),g(`th`,null,s(e.$t(`daq.k3zi0nf071`)),1),g(`th`,null,s(e.$t(`daq.k4a0la072`)),1),g(`th`,null,s(e.$t(`daq.k3wj9n051`)),1),g(`th`,{title:e.$t(`daq.k1runtipc131`)},s(e.$t(`daq.k1b2tkyv057`)),9,Rr),g(`th`,{title:e.$t(`daq.k1prdrtip132`)},s(e.$t(`daq.k1prodrc128`)),9,zr),g(`th`,null,s(e.$t(`daq.k1i8rtqt054`)),1),g(`th`,Br,s(e.$t(`daq.k40aa6073`)),1)])]),g(`tbody`,null,[(r(!0),f(c,null,n(la.value,({n:o,c:d})=>(r(),f(`tr`,{key:o.id,class:i({"row-recipe-alarm":d.alarm})},[g(`td`,null,[g(`span`,Vr,s(o.id.slice(0,8)),1),g(`b`,null,s(o.name),1),g(`small`,Hr,s(d.tpl),1)]),g(`td`,null,[g(`span`,{class:i([`st-pill`,[d.pill.key]]),title:d.pill.tip},s(d.pill.label),11,Ur)]),g(`td`,{class:i([`mono val`,{stale:!d.live,"val-alarm":o.state===`alarm`||d.alarm}]),title:d.live?void 0:d.pill.tip},[l(s(o.value==null?`--`:o.value.toFixed(o.decimals))+` `,1),g(`small`,null,s(o.unit),1)],10,Wr),g(`td`,Gr,[(r(),f(`svg`,{class:`trend`,viewBox:`0 0 120 26`,preserveAspectRatio:`none`,title:e.$t(`daq.k1trnd002`)},[T(o.hist,E(o).min)==null?p(``,!0):(r(),f(`line`,{key:0,class:`lim`,x1:`0`,y1:T(o.hist,E(o).min),x2:`120`,y2:T(o.hist,E(o).min)},null,8,qr)),T(o.hist,E(o).max)==null?p(``,!0):(r(),f(`line`,{key:1,class:`lim max`,x1:`0`,y1:T(o.hist,E(o).max),x2:`120`,y2:T(o.hist,E(o).max)},null,8,Jr)),g(`polyline`,{class:i([`trace`,{alarm:o.state===`alarm`||d.alarm}]),points:Pi(o.hist)},null,10,Yr)],8,Kr))]),g(`td`,Xr,s(fa(o.intervalMs)),1),g(`td`,Zr,s(pa(o.publishIntervalMs)),1),g(`td`,null,[g(`span`,{class:i([`drv-tag`,{planned:ja(o.driver)}]),title:ja(o.driver)?e.$t(`daq.k1plndrv138`):``},s(o.driver),11,Qr)]),g(`td`,null,[g(`select`,{class:`line-sel`,value:o.lineId,title:e.$t(`daq.k3q23v3010`),onChange:e=>Ei(o.id,e)},[g(`option`,ei,s(e.$t(`daq.k3ootr6053`)),1),(r(!0),f(c,null,n(a(w).lines,e=>(r(),f(`option`,{key:e.id,value:e.id},s(e.name),9,ti))),128))],40,$r)]),g(`td`,null,[o.lineId?(r(),f(`span`,{key:0,class:i([`run-pill`,{on:a(w).lineStateOf(o.lineId).active}]),title:e.$t(`daq.k1runtipc131`)},[t[61]||=g(`span`,{class:`rp-dot`},null,-1),l(` `+s(a(w).lineStateOf(o.lineId).active?e.$t(`daq.k3vp67i096`):e.$t(`daq.k3ozyqz117`)),1)],10,ni)):(r(),f(`span`,ri,s(e.$t(`daq.k3ootr6053`)),1))]),g(`td`,ii,[o.lineId&&a(w).lineStateOf(o.lineId).active?(r(),f(c,{key:0},[g(`b`,{title:e.$t(`daq.k1prdrtip132`)},s(a(w).lineStateOf(o.lineId).productName||`--`),9,ai),g(`small`,{class:`mono`,title:e.$t(`daq.k1prdrtip132`)},s(a(w).lineStateOf(o.lineId).recipeName||`--`),9,oi)],64)):(r(),f(`span`,si,`--`))]),g(`td`,null,[g(`select`,{class:`line-sel`,value:o.deviceBindingId??``,title:e.$t(`daq.k2bindtip137`),onChange:e=>Di(o.id,e)},[g(`option`,li,s(e.$t(`daq.k3own4q056`)),1),(r(!0),f(c,null,n(da.value,e=>(r(),f(`option`,{key:e.id,value:e.id},s(a(ua).get(e.id)??e.name),9,ui))),128))],40,ci)]),g(`td`,di,[g(`button`,{class:i([`node-toggle`,{off:!o.enabled}]),title:o.enabled?e.$t(`daq.k1nodestop146`):e.$t(`daq.k1nodestart147`),onClick:e=>Oi(o)},[g(`span`,{class:i(o.enabled?`i-tabler-player-pause`:`i-tabler-player-play`)},null,2),l(` `+s(o.enabled?e.$t(`daq.k1nodestop146`):e.$t(`daq.k1nodestart147`)),1)],10,fi),y(u,{class:`console-link`,to:`/daq/${o.id}`},{default:h(()=>[t[62]||=g(`span`,{class:`i-tabler-dashboard`},null,-1),l(` `+s(e.$t(`daq.k3o3jg2074`)),1)]),_:1},8,[`to`])])],2))),128)),a(C).loaded&&a(C).nodes.length===0?(r(),f(`tr`,pi,[g(`td`,mi,[g(`div`,hi,[g(`p`,gi,s(e.$t(`daq.kvhjyc3075`)),1)])])])):a(C).loaded&&F.value.length===0?(r(),f(`tr`,_i,[g(`td`,vi,[g(`div`,yi,[g(`p`,bi,s(e.$t(`daq.k1w20qew076`)),1)])])])):p(``,!0)])])])]),_:1},8,[`spinning`]),a(C).error?(r(),f(`p`,xi,[l(s(a(C).error)+`(`,1),y(u,{to:`/workshop`},{default:h(()=>[l(s(e.$t(`daq.k1bhhheq077`)),1)]),_:1}),t[63]||=l(`) `,-1)])):p(``,!0)])}}}),[[`__scopeId`,`data-v-ad25ed6d`]]);export{C as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ft as e}from"./BSCpFtzG.js";import{t}from"./36oeS8_R2.js";import{i as n}from"./B0haAGoq.js";var r=[`thermo`,`pressure`,`tension`,`encoder`,`camera`,`gateway`],i=[{key:`temp-tc`,name:`温度传感器`,code:`TEMP · TC`,ch:`熔体/箱体温度`,unit:`℃`,base:168,amp:3.2,min:150,max:185,decimals:1,icon:`thermo`,telemetryKey:`temperature`,semantics:`熔体/箱体温度:热工艺核心被控量,热惯性大(变化平缓)。判读:与设定值偏差 ±2℃ 内为稳态;持续单边漂移 = 加热/散热失衡;骤升骤降多为扰动或传感器异常。`},{key:`pressure-tx`,name:`压力变送器`,code:`PRESSURE · TX`,ch:`熔体压力`,unit:`MPa`,base:.82,amp:.05,min:.6,max:1.2,decimals:2,icon:`pressure`,telemetryKey:`pressure`,semantics:`熔体压力:挤出负荷的「血压计」。判读:与温度负相关(温度升→熔体黏度降→压力降);压力突升常见于滤网堵塞或出料受阻。`},{key:`tension-cell`,name:`张力传感器`,code:`TENSION · CELL`,ch:`膜张力`,unit:`kN`,base:21.4,amp:.9,min:18,max:26,decimals:1,icon:`tension`,semantics:`膜张力:成膜质量直接指标。判读:张力波动与速度/温度设定强耦合,评估张力前先确认速度稳定。`},{key:`line-encoder`,name:`速度编码器`,code:`LINE · ENCODER`,ch:`产线速度`,unit:`m/min`,base:318,amp:7,min:280,max:360,decimals:0,icon:`encoder`,semantics:`产线速度:产能直接观测量。判读:实际速度对设定值的跟随滞后反映传动惯量;速度波动会传导至张力与厚度。`},{key:`vision-cam`,name:`视觉检测相机`,code:`VISION · CAM`,ch:`表面缺陷率`,unit:`‰`,base:.42,amp:.09,min:.1,max:.9,decimals:2,icon:`camera`},{key:`power-meter`,name:`电参采集器`,code:`POWER · METER`,ch:`运行功率`,unit:`kW`,base:45.2,amp:2.6,min:38,max:55,decimals:1,icon:`gateway`},{key:`thickness-scan`,name:`测厚扫描仪`,code:`THK · SCAN`,ch:`厚度轮廓`,unit:`mm`,base:.52,amp:.018,min:.4,max:.65,decimals:3,icon:`tension`,signalKind:`vector`,vector:{points:64,min:.4,max:.65},sink:{processors:[{name:`resample`,args:{n:64}},{name:`derive-metric`,args:{name:`avg`,op:`avg`}},{name:`derive-metric`,args:{name:`max`,op:`max`}}]},metrics:[{key:`max`,label:`最大厚度`,unit:`mm`,alarmHigh:.62},{key:`avg`,label:`平均厚度`,unit:`mm`,warnLow:.47,warnHigh:.57}],semantics:`测厚仪横向扫描轮廓:多点厚度分布。判读:平均值漂移=工艺整体偏移;单点尖峰=局部缺陷(夹杂/气泡);max 越硬限=超差,须联动分切剔除。`},{key:`ccd-image`,name:`CCD 视觉相机`,code:`CCD · IMG`,ch:`表面图像`,unit:`灰度`,base:128,amp:0,min:0,max:255,decimals:0,icon:`camera`,signalKind:`image`,sink:{processors:[{name:`thumbnail`,args:{width:256}},{name:`quality-gate`}]},metrics:[{key:`brightness`,label:`平均亮度`,unit:`gray`,alarmLow:30,alarmHigh:230}],semantics:`CCD 图像帧:像素数据入对象存储,Timescale 仅存元数据与派生指标。判读:brightness 过低=曝光不足/镜头遮挡,过高=过曝;缺陷识别算法经插件处理器扩展。`}],a=e=>e.startsWith(`daq-`)?e.slice(4):e,o=[{kind:`mock`,label:`Mock 模拟源`,status:`builtin`,configFields:[]},{kind:`modbus-tcp`,label:`Modbus TCP(PLC/网关)`,status:`real`,configFields:[{key:`host`,label:`设备地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.10`,hint:`PLC 或 Modbus 网关 IP`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`Modbus TCP 标准端口 502`},{key:`unitId`,label:`单元号(unitId)`,type:`number`,default:1,hint:`从站地址,常见 1`},{key:`register`,label:`寄存器地址`,type:`number`,required:!0,placeholder:`40001`,hint:`4xxxx=保持寄存器(地址-40001 为协议偏移);3xxxx=输入寄存器`},{key:`registerType`,label:`寄存器区`,type:`select`,default:`holding`,options:[{value:`holding`,label:`保持寄存器(4x)`},{value:`input`,label:`输入寄存器(3x)`}]},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`scale`,label:`缩放系数`,type:`number`,default:1,hint:`原始值 × scale = 工程量(如 0.1)`},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]}]},{kind:`opcua`,label:`OPC UA(PLC/MES)`,status:`real`,configFields:[{key:`endpoint`,label:`端点(endpoint)`,type:`string`,required:!0,placeholder:`opc.tcp://192.168.1.10:4840`,hint:`OPC UA 服务器地址`},{key:`nodeId`,label:`节点 ID(NodeId)`,type:`string`,required:!0,placeholder:`ns=2;s=Channel1.Device1.Tag1`,hint:`要采集的变量节点`},{key:`securityMode`,label:`安全策略`,type:`select`,default:`None`,options:[{value:`None`,label:`None(无加密,内网常用)`},{value:`Sign`,label:`Sign(签名)`},{value:`SignAndEncrypt`,label:`SignAndEncrypt(签名+加密)`}]},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`},{key:`certificateFile`,label:`客户端证书路径(可选)`,type:`string`,placeholder:`certs/client_cert.pem`,hint:`Sign/SignAndEncrypt 时的 PEM 证书;留空自动生成自签`},{key:`privateKeyFile`,label:`私钥路径(可选)`,type:`string`,placeholder:`certs/client_key.pem`,hint:`与证书配对的 PEM 私钥`}]},{kind:`modbus-rtu`,label:`Modbus RTU over TCP(串口网关)`,status:`real`,configFields:[{key:`host`,label:`网关地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.50`,hint:`串口服务器/RTU 转 TCP 网关 IP(设备本身走 RS-485)`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`网关透传端口(常见 502 / 8899 / 26)`},{key:`unitId`,label:`从站地址(unitId)`,type:`number`,default:1,hint:`RS-485 总线上的从站地址`},{key:`register`,label:`寄存器地址`,type:`number`,required:!0,placeholder:`40001`,hint:`4xxxx=保持寄存器(地址-40001 为协议偏移);3xxxx=输入寄存器`},{key:`registerType`,label:`寄存器区`,type:`select`,default:`holding`,options:[{value:`holding`,label:`保持寄存器(4x)`},{value:`input`,label:`输入寄存器(3x)`}]},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`scale`,label:`缩放系数`,type:`number`,default:1,hint:`原始值 × scale = 工程量(如 0.1)`},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]}]},{kind:`mqtt`,label:`MQTT(网关/边缘采集)`,status:`real`,configFields:[{key:`host`,label:`Broker 地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.20 或 mqtt.example.com`,hint:`MQTT Broker(EMQX/Mosquitto/Aliyun IoT)地址`},{key:`port`,label:`端口`,type:`number`,default:1883,hint:`MQTT TCP 标准端口 1883(TLS 8883)`},{key:`topic`,label:`主题(topic)`,type:`string`,required:!0,placeholder:`factory/line1/temp`,hint:`设备上报数值的主题;支持 +/# 通配`},{key:`jsonPath`,label:`取值路径(可选)`,type:`string`,placeholder:`data.temperature`,hint:`payload 为 JSON 时按路径取数值,如 data.temp;纯数字报文留空`},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`}]},{kind:`http`,label:`HTTP/REST(轮询)`,status:`real`,configFields:[{key:`url`,label:`接口地址(URL)`,type:`string`,required:!0,placeholder:`http://192.168.1.30/api/sensor`,hint:`返回数值或 JSON 的 HTTP 接口`},{key:`jsonPath`,label:`取值路径(可选)`,type:`string`,placeholder:`data.value`,hint:`响应为 JSON 时按路径取数值,如 data.value;纯文本留空`},{key:`headersJSON`,label:`请求头(可选)`,type:`string`,placeholder:`{"Authorization":"Bearer xxx"}`,hint:`JSON 对象形式的 HTTP 头`}]},{kind:`s7`,label:`S7(西门子 PLC)`,status:`planned`,configFields:[]}],s=60,c=30,l=(e,t)=>n({base:`/api/workshop/daq`,path:e,init:t,retries:(t?.method??`GET`).toUpperCase()===`GET`?2:0}),u=()=>{let n=e([]),r=e([]),a=e({running:!0,defaultIntervalMs:1e3,defaultPublishIntervalMs:0,nodesTotal:0,nodesOnline:0}),o=e({tsdb:`…`,queue:`…`,drivers:[],driverAvailable:{},infra:void 0,produced:0,consumed:0,dropped:0,samplesStored:0}),u=e(i.map(e=>({...e}))),d=e({});function f(e){let t=n.findIndex(t=>t.id===e.id);t>=0?n[t]=Object.assign(n[t],e):n.push({...e,hist:[]})}let p=[],m=null;function h(){m=null;let e=p;if(p=[],!e.length)return;let t=new Map;for(let r of e){t.set(r.nodeId,r);let e=n.find(e=>e.id===r.nodeId);e&&(e.hist.push(r.value),e.hist.length>s&&e.hist.splice(0,e.hist.length-s))}for(let e of t.values()){let t=n.find(t=>t.id===e.nodeId);t&&(t.value=e.value,t.state=e.state,t.lastAt=e.at)}}function g(e){p.push(e),m||=setTimeout(h,500)}function _(e){if(e.node){if(e.op===`removed`){let t=n.findIndex(t=>t.id===e.node.id);t>=0&&n.splice(t,1);return}f(e.node)}}function v(e){u.splice(0,u.length,...e.map(e=>({...e})))}function y(e){if(!e.template)return;let t=u.findIndex(t=>t.key===e.template.key);if(e.op===`removed`){t>=0&&u.splice(t,1);return}t>=0?u[t]={...e.template}:u.push({...e.template})}function b(e){let t=Date.parse(e.at),r=d[e.nodeId]??(d[e.nodeId]=[]);r.some(e=>e.at===t)||(r.unshift({at:t,kind:e.kind,points:e.preview,metrics:e.metrics??{},thumbUrl:e.thumbUrl,contentUrl:e.thumbUrl?e.thumbUrl.replace(`thumb=1`,`thumb=0`):void 0}),r.length>c&&r.splice(c));let i=n.find(t=>t.id===e.nodeId);i&&(i.value=e.metrics?.avg??i.value,e.state&&(i.state=e.state),i.lastAt=e.at)}function x(){let e=globalThis;return e.__daqBusFed?()=>{}:(e.__daqBusFed=!0,t().subscribe(e=>{if(e.type===`daq.reading`)g(e.payload);else if(e.type===`daq.frame`)b(e.payload);else if(e.type===`daq.node.changed`)_(e.payload);else if(e.type===`daq.controller`)Object.assign(a,e.payload);else if(e.type===`daq.template.changed`)y(e.payload);else if(e.type===`daq.alarm`){let t=e.payload;r.some(e=>e.id===t.id)||r.unshift(t)}else if(e.type===`daq.alarm.changed`){let t=e.payload;if(t.ackedAt){let e=r.findIndex(e=>e.id===t.id);e>=0&&r.splice(e,1)}}}))}async function S(){try{let e=await l(``),t=new Map(n.map(e=>[e.id,e])),r=[];for(let n of e.nodes){let e=t.get(n.id);e?(Object.assign(e,n),r.push(e),t.delete(n.id)):r.push({...n,hist:[]})}n.splice(0,n.length,...r),Object.assign(a,e.controller),Object.assign(o,e.meta??{}),o.driverAvailable=e.driverAvailable??{},o.infra=e.infra,e.templates?.length&&v(e.templates),z.loaded=!0,z.error=``}catch(e){z.error=e instanceof Error?e.message:String(e)}}async function C(e,t){let n=await l(``,{method:`POST`,body:JSON.stringify({templateRef:e,...t})});return f(n.node),n.node}async function w(e,t){await l(`/${e}`,{method:`PATCH`,body:JSON.stringify(t)})}async function T(e,t,n){await l(`/${e}`,{method:`PATCH`,body:JSON.stringify({posX:t,posZ:n})})}async function E(e){await l(`/${e}`,{method:`DELETE`});let t=n.findIndex(t=>t.id===e);t>=0&&n.splice(t,1)}async function D(e,t){f((await l(`/${e}/bind`,{method:`POST`,body:JSON.stringify({deviceId:t})})).node)}async function O(e,t){return(await l(`/test-driver`,{method:`POST`,body:JSON.stringify({driver:e,driverConfig:t})})).test}async function k(e){return(await l(`/${e}/test`,{method:`POST`})).test}async function A(){try{let e=await l(`/alarms?scope=open&limit=50`);r.splice(0,r.length,...e.alarms??[])}catch{}}async function j(e){await l(`/alarms/${e}/ack`,{method:`POST`}),await A()}async function M(){let e=await l(`/infra/reconnect`,{method:`POST`});return o.infra=e.infra,await S(),e.infra}async function N(e,t,n){let r=await l(`/controller`,{method:`POST`,body:JSON.stringify({action:e,defaultIntervalMs:t,defaultPublishIntervalMs:n})});Object.assign(a,r.controller)}async function P(e,t={}){let n=new URLSearchParams;return t.fromMs!=null&&n.set(`from`,String(t.fromMs)),t.toMs!=null&&n.set(`to`,String(t.toMs)),t.bucketMs!=null&&n.set(`bucketMs`,String(t.bucketMs)),t.limit!=null&&n.set(`limit`,String(t.limit)),(await l(`/${e}/samples?${n.toString()}`)).points??[]}async function F(e,t={}){let n=new URLSearchParams;t.fromMs!=null&&n.set(`from`,String(t.fromMs)),t.toMs!=null&&n.set(`to`,String(t.toMs)),t.kind&&n.set(`kind`,t.kind),t.limit!=null&&n.set(`limit`,String(t.limit));let r=await l(`/${e}/frames?${n.toString()}`);return d[e]=r.frames??[],d[e]}async function I(e){let t=await l(`/templates`,{method:`POST`,body:JSON.stringify(e)});return y({op:`added`,template:t.template}),t.template}async function L(e,t){let n=await l(`/templates/${e}`,{method:`PATCH`,body:JSON.stringify(t)});return y({op:`updated`,template:n.template}),n.template}async function R(e){await l(`/templates/${e}`,{method:`DELETE`}),y({op:`removed`,template:{key:e}})}let z=e({nodes:n,controller:a,meta:o,templates:u,loaded:!1,error:``,ensureWsFeed:x,load:S,createFromTemplate:C,createTemplate:I,updateTemplate:L,removeTemplate:R,testDriver:O,testNode:k,reconnectInfra:M,patchNode:w,saveTransform:T,removeNode:E,bindNode:D,controllerAction:N,alarms:r,fetchAlarms:A,ackAlarm:j,nodeById:e=>n.find(t=>t.id===e),samplesOf:P,fetchFrames:F,frames:d,framesOf:e=>d[e]??[],templateOf:e=>u.find(t=>t.key===e||`daq-${t.key}`===e),ofDevice:e=>e?n.filter(t=>t.deviceBindingId===e):[]});return z},d=`__daqStream`;function f(){let e=globalThis;return e[d]||(e[d]=u()),e[d]}export{a,r as i,o as n,i as r,f as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,C as t,G as n,H as r,Ht as i,St as a,Ut as ee,Wt as o,a as s,b as c,f as l,ft as u,g as d,h as f,mt as p,nt as te,p as m,rt as h,t as g,x as ne}from"./BSCpFtzG.js";import{B as _,F as re,I as v,L as y}from"./2LwEn9gX.js";import{a as ie}from"./Bi6AiCuP.js";import{t as ae}from"./ubPfs9mQ.js";import{n as oe}from"./BeIfu4N3.js";import{t as se}from"./C9f8QMp12.js";import{n as ce,t as le}from"./B0haAGoq.js";import{t as ue}from"./B-PgoIPN.js";import{t as de}from"./ClptO7LA.js";var fe={key:0,class:`page`},pe={class:`banner bad`},me={key:1,class:`page`},he={class:`aw-page-head`},ge={class:`aw-kicker`},_e={class:`sub`},ve={class:`badges mono`},ye={class:`badge`},be={class:`badge`},xe={class:`badge`},Se={class:`aw-tile ctrl-card`},Ce={class:`ctrl-left`},we=[`title`],Te={class:`ctrl-right`},Ee={class:`ctrl-metrics mono`},De=[`title`],Oe=[`title`],ke=[`title`],Ae={key:1,class:`aw-tile adopt-card`},je={class:`adopt-title`},Me={class:`adopt-list`},Ne=[`onClick`],Pe=[`onClick`],Fe={class:`aw-tile line-card`},Ie={class:`line-status`},Le={class:`line-info`},Re={key:0,class:`mono dim`},ze={key:1,class:`dim`},Be={class:`line-ctl`},Ve={class:`ctl-sel`},He={value:``},Ue=[`value`],We={class:`ctl-sel`},Ge=[`disabled`],Ke={value:``},qe=[`value`,`disabled`],Je=[`disabled`,`title`],Ye=[`disabled`],Xe={key:0,class:`banner bad`,style:{"margin-top":`10px`}},Ze={key:1,class:`banner good`,style:{"margin-top":`10px`}},Qe={class:`modal`},$e={class:`m-title`},et={class:`dim mono`},tt={class:`dim tpl-hint`},nt={class:`tpl-chips`},rt=[`title`],it={class:`mono`},at={class:`sec-label`},ot={class:`f-grid tpl-form`},st={class:`f`},ct=[`placeholder`],lt={class:`f`},ut=[`placeholder`],dt={class:`f`},ft={class:`f`},pt={class:`f`},mt=[`placeholder`],ht={class:`f`},gt=[`placeholder`],_t={class:`f`},vt={class:`f`},yt=[`value`],bt={class:`f`},xt=[`placeholder`],St={key:0,class:`banner good`,style:{"margin-top":`10px`}},Ct={key:1,class:`m-err`},wt={class:`m-actions`},Tt=[`disabled`],Et={class:`modal`},Dt={class:`m-title`},Ot={class:`seg-row`},kt={class:`f-grid`},At={class:`f`},jt=[`value`],Mt={class:`f`},Nt=[`placeholder`],Pt={class:`f`},Ft=[`placeholder`],It={class:`f-grid cal-form`},Lt={class:`f`},Rt={value:`none`},zt={class:`f`},Bt={style:{display:`flex`,gap:`6px`}},Vt=[`disabled`],Ht=[`disabled`],Ut={class:`f-grid`},Wt={class:`f`},Gt=[`value`],Kt={key:0,class:`f-grid driver-form`},qt={key:0,style:{color:`var(--tone-danger-dot)`,"font-style":`normal`}},Jt=[`onUpdate:modelValue`],Yt=[`value`],Xt=[`onUpdate:modelValue`,`type`,`placeholder`],Zt={key:2,class:`hint`},Qt={class:`test-row`},$t=[`disabled`],en={class:`f`},tn=[`placeholder`],nn={key:1,class:`m-err`},rn={class:`m-actions`},an=[`disabled`],on={class:`aw-tile table-card`},sn={class:`nodes-table`},cn={class:`right`},ln={class:`mono dim`},un={class:`mono ch`},dn=[`disabled`,`title`,`onClick`],fn={key:0,class:`st-pill paused`},pn={class:`mono val`},mn={key:0,class:`dim`},hn={class:`write-row`},gn=[`onUpdate:modelValue`,`placeholder`,`min`,`max`,`step`,`disabled`,`title`],_n=[`disabled`,`title`,`onClick`],vn={class:`mono dim`},yn={class:`mono`},bn={class:`right`},xn=[`onClick`],Sn={key:0},Cn={colspan:`9`},wn={class:`pane-empty`,style:{"min-height":`120px`}},Tn={class:`pe-sub`},En={class:`aw-tile recipe-card`},Dn={class:`recipe-hd`},On={class:`panel-tag mono`},kn={class:`recipe-sub`},An={key:0,class:`product-row`},jn=[`title`,`onClick`],Mn=[`title`,`onClick`],Nn={key:1,class:`dim`,style:{margin:`6px 0 12px`,"font-size":`12px`}},Pn={class:`recipe-grid`},Fn={class:`recipe-name`},In={class:`dim`},Ln={class:`mono dim`},Rn={key:0,class:`dim desc`},zn={class:`recipe-params mono`},Bn=[`title`],Vn={class:`recipe-actions`},Hn=[`onClick`],Un=[`onClick`],Wn=[`onClick`],Gn={key:0,class:`pane-empty`,style:{"grid-column":`1 / -1`}},Kn={key:2,class:`banner good`},qn=[`disabled`],Jn={key:3,class:`runs`},Yn={class:`sec-label`},Xn={class:`nodes-table`},Zn={class:`right`},Qn={class:`mono`},$n={class:`mono dim`},er={class:`right`},tr=[`disabled`,`onClick`],nr=[`onClick`],rr={class:`modal`},ir={class:`m-title`},ar={class:`sec-label`},or={class:`nodes-table`},sr={class:`mono dim`},cr={class:`mono`},lr={class:`mono`},ur={class:`mono dim`},dr={class:`mono dim`},fr={key:0},pr={colspan:`6`,class:`dim`,style:{"text-align":`center`,padding:`12px`}},mr={class:`sec-label`},hr={class:`nodes-table`},gr={class:`mono`},_r={class:`mono dim`},vr={class:`mono dim`},yr={key:0},br={colspan:`6`,class:`dim`,style:{"text-align":`center`,padding:`12px`}},xr={class:`m-actions`},Sr={class:`modal`},Cr={class:`m-title`},wr={class:`f-grid`},Tr={class:`f`},Er=[`value`],Dr={class:`f`},Or=[`placeholder`],kr={class:`f`},Ar=[`placeholder`],jr={class:`sec-label`},Mr={class:`f`},Nr=[`onUpdate:modelValue`],Pr=[`value`],Fr={class:`f`},Ir=[`onUpdate:modelValue`],Lr={class:`f`},Rr=[`onUpdate:modelValue`,`placeholder`],zr={class:`f`},Br=[`onUpdate:modelValue`,`placeholder`],Vr=[`onClick`],Hr={class:`sec-label`},Ur={class:`f`},Wr=[`onUpdate:modelValue`],Gr=[`value`],Kr={class:`f`},qr=[`onUpdate:modelValue`],Jr={class:`f`},Yr=[`onUpdate:modelValue`],Xr=[`onClick`],Zr=[`disabled`,`title`],Qr={key:0,class:`m-err`},$r={class:`m-actions`},ei=[`disabled`],ti={class:`aw-tile query-card`},ni={class:`sec-label`},ri={class:`q-grid`},ii={class:`f`},ai={value:``},oi=[`value`],si={class:`f`},ci=[`disabled`],li={value:``},ui=[`value`],di={class:`f`},fi={value:``},pi=[`value`],mi={class:`f`},hi={value:``},gi=[`value`],_i={class:`f`},vi={class:`f`},yi={class:`f q-actions`},bi=[`disabled`],xi={key:0,class:`banner bad`,style:{"margin-top":`8px`}},Si={key:1,class:`q-result`},Ci={class:`nodes-table`},wi={class:`mono dim`},Ti={class:`mono`},Ei={class:`mono`},Di={class:`mono`},Oi={class:`mono dim`},ki={key:5,class:`aw-tile table-card`},Ai={class:`sec-label`},ji={class:`nodes-table`},Mi={class:`mono dim`},Ni={class:`mono`},Pi={class:`mono dim`},Fi={class:`dim`},Ii={class:`modal`},Li={class:`m-title`},Ri={class:`f-grid`},zi={class:`f`},Bi=[`placeholder`],Vi={class:`f`},Hi=[`placeholder`],Ui={key:0,class:`m-err`},Wi={class:`m-actions`},Gi=[`disabled`],Ki={key:7,class:`err`},qi={class:`aw-tile ledger-card`},Ji={class:`ledger-head`},Yi={value:``},Xi=[`value`],Zi={class:`ledger-tri`},Qi={class:`tri-cell`},$i={class:`mono`},ea={class:`tri-cell`},ta={class:`mono`},na={class:`tri-cell`},ra={class:`mono`},ia={class:`ledger-cols`},aa={class:`ledger-col`},oa={class:`sec-t`},sa={class:`ledger-list mono`},ca={class:`ledger-col`},la={class:`sec-t`},ua={class:`ledger-list`},da={class:`mono`},fa=g(t({__name:`[id]`,setup(t){let{t:g}=oe(),fa=ie(),b=le(),pa=ue(),ma=de();pa.load();let x=l(()=>String(fa.params.id??``)),S=l(()=>b.lines.find(e=>e.id===x.value)),C=l(()=>b.lineStateOf(x.value));b.load();let ha=b.ensureWsFeed();e(()=>ha());let ga=e=>e?ma.twins.find(t=>t.id===e)?.name??e:g(`dcwDetail.k3own4q121`),_a={idle:g(`dcwDetail.k3zgkk122`),writing:g(`dcwDetail.k3l3h80123`),ok:`已 ACK`,error:g(`dcwDetail.k40reu124`),offline:g(`dcwDetail.k44c2n125`)};function va(e){let t=e??``;return b.templates.find(e=>e.key===(t.startsWith(`dcw-`)?t.slice(4):t))?.ch??t}function ya(e){return b.nodeById(e)?.min}function ba(e){return b.nodeById(e)?.max}let w=l(()=>pa.nodes.filter(e=>e.lineId===x.value)),T=p(``),E=p(null),xa=p(!1);async function Sa(){if(T.value){xa.value=!0;try{E.value=await b.fetchLedger(T.value)}finally{xa.value=!1}}}async function Ca(){T.value&&(await b.rollbackNode(T.value),await Sa())}function wa(e){return pa.nodeById(e)?.name??e}let D=l(()=>b.nodes.filter(e=>e.lineId===x.value)),O=l(()=>b.products.filter(e=>e.lineId===x.value)),Ta=l(()=>b.recipes.filter(e=>e.lineId===x.value)),Ea=l(()=>b.runs.filter(e=>e.lineId===x.value)),Da=l(()=>{let e=new Set(D.value.map(e=>e.id));return b.history.filter(t=>e.has(t.nodeId))}),Oa=l(()=>b.nodes.filter(e=>!e.lineId)),ka=l(()=>b.products.filter(e=>!e.lineId));async function Aa(e){await b.patchNode(e,{lineId:x.value});let t=b.nodeById(e);t&&(t.lineId=x.value)}async function ja(e){await b.updateProduct(e,{lineId:x.value}),await b.load()}let k=u({}),Ma=p(``),A=p(``),Na=p(``);async function Pa(e,t){Ma.value=e,A.value=``,Na.value=``;try{let n=await b.write(e,t);n.ok?(Na.value=g(`dcwDetail.k1alcbyu182`,{p0:b.nodeById(e)?.name??e,p1:n.message}),k[e]=``):A.value=g(`dcwDetail.kl1e9x9183`,{p0:b.nodeById(e)?.name??e,p1:n.message})}catch(e){A.value=e instanceof Error?e.message:String(e)}finally{Ma.value=``}}let Fa=p(``);async function Ia(e,t){Fa.value=e,A.value=``;try{await b.patchNode(e,{enabled:t});let n=b.nodeById(e);n&&(n.enabled=t,t?n.state===`offline`&&(n.state=`idle`):n.state=`offline`)}catch(e){A.value=e instanceof Error?e.message:String(e)}finally{Fa.value=``}}let j=p(!1),M=p(`mock`),La=p(b.templates[0]?.key??``),N=p(`mock`),Ra=p(``),za=p(null),P=p({}),F=u({kind:`none`,scale:1,offset:0}),Ba=p(``),Va=p(!1),I=p(null),Ha=p(!1),Ua=p(``),Wa=l(()=>ce.find(e=>e.kind===N.value)),Ga=l(()=>Wa.value?.configFields??[]);function Ka(){let e={};for(let t of Ga.value)t.default!==void 0&&(e[t.key]=t.default);P.value=e,I.value=null}Ka();async function qa(){Va.value=!0,I.value=null;try{I.value=await b.testDriver(N.value,P.value)}catch(e){I.value={ok:!1,message:e instanceof Error?e.message:String(e)}}finally{Va.value=!1}}async function Ja(){Ha.value=!0,Ua.value=``;try{for(let e of Ga.value)if(e.required&&(P.value[e.key]===void 0||P.value[e.key]===``))throw Error(g(`dcwDetail.k8x1un1184`,{p0:e.label}));let e=F.kind===`linear`?{kind:`linear`,scale:Number(F.scale),offset:Number(F.offset)}:void 0;await b.createFromTemplate(`dcw-${La.value}`,{name:Ra.value.trim()||void 0,driver:N.value,driverConfig:{...P.value},transform:e,holdIntervalMs:za.value,lineId:x.value,semantics:Ba.value.trim()||void 0}),j.value=!1,Ra.value=``,Ba.value=``}catch(e){Ua.value=e instanceof Error?e.message:String(e)}finally{Ha.value=!1}}let Ya=p(!1),Xa=p(!1),L=p(``),R=p(``);function Za(){Ya.value=!0,L.value=``,R.value=``}let z=u({name:``,ch:``,code:``,unit:``,min:``,max:``,decimals:1,icon:`gateway`,semantics:``}),Qa=[{key:`thermo`,label:g(`dcwDetail.k422b8126`)},{key:`pressure`,label:g(`dcwDetail.k3x6ff127`)},{key:`tension`,label:g(`dcwDetail.k3z9xc128`)},{key:`encoder`,label:g(`dcwDetail.kjb3vhs129`)},{key:`camera`,label:g(`dcwDetail.k47atw130`)},{key:`gateway`,label:g(`dcwDetail.k48c07131`)}];async function $a(){Xa.value=!0,L.value=``,R.value=``;try{if(!z.name.trim())throw Error(g(`dcwDetail.k6ugbw2132`));if(z.unit.trim()===``)throw Error(g(`dcwDetail.kx3pg59133`));if(z.min===``||z.max===``)throw Error(g(`dcwDetail.k13awowo134`));let e=await b.createTemplate({name:z.name.trim(),ch:z.ch.trim()||z.name.trim(),code:z.code.trim()||`CUSTOM`,unit:z.unit.trim(),min:Number(z.min),max:Number(z.max),decimals:Number(z.decimals)||0,icon:z.icon,semantics:z.semantics.trim()||void 0});La.value=e.key,R.value=g(`dcwDetail.ky4e1tr185`,{p0:e.name}),z.name=``,z.ch=``,z.code=``,z.unit=``,z.min=``,z.max=``,z.semantics=``}catch(e){L.value=e instanceof Error?e.message:String(e)}finally{Xa.value=!1}}let B=p(``),V=p(``),H=p(!1),U=p(``),W=p(``),eo=l(()=>Ta.value.filter(e=>e.productId===B.value));async function to(){H.value=!0,U.value=``,W.value=``;try{if(!V.value)throw Error(g(`dcwDetail.k1b6qe0r135`));await b.startLine(x.value,V.value),U.value=g(`dcwDetail.k17jteb9186`,{p0:C.value.productName,p1:C.value.recipeName,p2:C.value.runId})}catch(e){W.value=e instanceof Error?e.message:String(e)}finally{H.value=!1}}async function no(){H.value=!0,U.value=``,W.value=``;try{let e=`${C.value.productName??``} · ${C.value.recipeName??``}`;await b.stopLine(x.value),U.value=g(`dcwDetail.kzl49pd187`,{p0:e})}catch(e){W.value=e instanceof Error?e.message:String(e)}finally{H.value=!1}}let ro=p(!1),io=p(!1),ao=p(``),G=u({name:``,description:``}),K=p(``);async function oo(){io.value=!0,ao.value=``;try{let e=await b.createProduct({name:G.name.trim(),description:G.description.trim(),lineId:x.value});B.value=e.id,K.value=e.id,ro.value=!1,G.name=``,G.description=``}catch(e){ao.value=e instanceof Error?e.message:String(e)}finally{io.value=!1}}let so=l(()=>K.value?Ta.value.filter(e=>e.productId===K.value):Ta.value),co=e=>b.products.find(t=>t.id===e)?.name??e,q=u({productId:``,recipeId:``,paramKey:``,nodeId:``,lastMin:30,bucketMs:0}),lo=p(null),uo=p(!1),fo=p(``);async function po(){uo.value=!0,fo.value=``,lo.value=null;try{lo.value=await b.queryLine({lineId:x.value,productId:q.productId||void 0,recipeId:q.recipeId||void 0,paramKey:q.paramKey||void 0,nodeId:q.nodeId||void 0,fromMs:Date.now()-q.lastMin*6e4,toMs:Date.now(),bucketMs:q.bucketMs>0?q.bucketMs:void 0,limit:2e3}),lo.value.channels.length===0&&(fo.value=g(`dcwDetail.kszv5sq136`))}catch(e){fo.value=e instanceof Error?e.message:String(e)}finally{uo.value=!1}}let mo=l(()=>b.templates.map(e=>e.key)),J=p(!1),ho=p(null),go=p(!1),Y=p(``),X=u({productId:``,name:``,description:``,params:[],daqWindows:[]}),Z=p(null),Q=p(null),$=p(!1);function _o(){ho.value=null,Y.value=``,X.productId=K.value||B.value||O.value[0]?.id||``,X.name=``,X.description=``,X.params=[{nodeId:D.value[0]?.id??``,value:``,min:``,max:``}],X.daqWindows=[],J.value=!0}function vo(e){let t=b.recipes.find(t=>t.id===e);t&&(ho.value=e,Y.value=``,X.productId=t.productId,X.name=t.name,X.description=t.description,X.params=t.params.map(e=>({nodeId:e.nodeId,value:e.value,min:e.min??``,max:e.max??``})),X.daqWindows=(t.daqWindows??[]).map(e=>({nodeId:e.nodeId,min:e.min??``,max:e.max??``})),J.value=!0)}async function yo(){go.value=!0,Y.value=``;try{let e={productId:X.productId,name:X.name.trim(),description:X.description.trim(),params:X.params.filter(e=>e.nodeId&&e.value!==``&&Number.isFinite(Number(e.value))).map(e=>({nodeId:e.nodeId,value:Number(e.value),...e.min!==``&&Number.isFinite(Number(e.min))?{min:Number(e.min)}:{},...e.max!==``&&Number.isFinite(Number(e.max))?{max:Number(e.max)}:{}})),daqWindows:X.daqWindows.filter(e=>e.nodeId&&(e.min!==``||e.max!==``)).map(e=>({nodeId:e.nodeId,...e.min!==``&&Number.isFinite(Number(e.min))?{min:Number(e.min)}:{},...e.max!==``&&Number.isFinite(Number(e.max))?{max:Number(e.max)}:{}}))};ho.value?await b.updateRecipe(ho.value,e):await b.createRecipe(e),J.value=!1}catch(e){Y.value=e instanceof Error?e.message:String(e)}finally{go.value=!1}}async function bo(e){Z.value=null,A.value=``;try{let t=await b.applyRecipe(e),n=t.results.filter(e=>e.ok).length;Z.value={runId:t.id,ok:n,total:t.results.length},n<t.results.length&&(A.value=g(`dcwDetail.ks7szkt188`,{p0:t.results.filter(e=>!e.ok).map(e=>e.message).join(`;`)}))}catch(e){A.value=e instanceof Error?e.message:String(e)}}async function xo(e){$.value=!0;try{let t=await b.runData(e);Q.value={runId:e,data:t}}catch(e){A.value=e instanceof Error?e.message:String(e)}finally{$.value=!1}}function So(e){let t=e?.value??e?.avg;return t==null?`--`:String(Math.round(t*1e3)/1e3)}return(e,t)=>{let l=ae,u=se;return a(b).loaded&&!S.value?(r(),d(`div`,fe,[m(`p`,pe,o(e.$t(`dcwDetail.k19337yp018`)),1),ne(l,{class:`pill-btn`,to:`/dcw`},{default:te(()=>[c(o(e.$t(`dcwDetail.kllwu1c019`)),1)]),_:1})])):(r(),d(`div`,me,[m(`div`,he,[m(`div`,null,[m(`p`,ge,[m(`span`,{class:`line-chip`,style:ee({background:S.value?.color??`#3aa0ff`})},null,4),c(`AGENTWORKSHOP / LINE / `+o(S.value?.name??x.value),1)]),m(`h1`,null,o(S.value?.name??e.$t(`dcwDetail.k1b2snna151`))+` · `+o(e.$t(`dcwDetail.k1l0iow1137`)),1),m(`p`,_e,o(S.value?.description||e.$t(`dcwDetail.kzcbfki152`)),1)]),m(`div`,ve,[m(`span`,ye,o(e.$t(`dcwDetail.k45uio082`))+` `+o(D.value.length),1),m(`span`,be,o(e.$t(`dcwDetail.k3waz1025`))+` `+o(O.value.length),1),m(`span`,xe,o(e.$t(`dcwDetail.k48grv027`))+` `+o(Ta.value.length),1)])]),m(`section`,Se,[m(`div`,Ce,[m(`button`,{class:i([`aw-pill`,{running:a(b).controller.running}]),title:e.$t(`dcwDetail.k1snap154`),onClick:t[0]||=e=>a(b).startStop(a(b).controller.running?`pause`:`resume`)},[m(`span`,{class:i(a(b).controller.running?`i-tabler-player-pause`:`i-tabler-player-play`)},null,2),c(` `+o(a(b).controller.running?e.$t(`dcwDetail.kplrsg153`):e.$t(`dcwDetail.knxgni9169`)),1)],10,we)]),m(`div`,Te,[m(`span`,Ee,[m(`span`,null,o(e.$t(`dcwDetail.k45uio082`))+` `+o(a(b).controller.nodesOnline)+`/`+o(a(b).controller.nodesTotal),1),t[52]||=m(`span`,{class:`sep`},`·`,-1),m(`span`,{title:e.$t(`dcwDetail.kd3ygmn001`)},o(e.$t(`dcwDetail.k3wtib138`))+` `+o(a(b).controller.writesTotal),9,De),t[53]||=m(`span`,{class:`sep`},`·`,-1),m(`span`,{class:i({warn:a(b).controller.writesFailed>0}),title:e.$t(`dcwDetail.kd3znl0002`)},o(e.$t(`dcwDetail.k3yit7139`))+` `+o(a(b).controller.writesFailed),11,Oe)]),m(`button`,{class:`aw-pill outline`,title:e.$t(`dcwDetail.kc4ixly003`),onClick:Za},[t[54]||=m(`span`,{class:`i-tabler-template`},null,-1),c(` `+o(e.$t(`dcwDetail.k1972dx9020`)),1)],8,ke),m(`button`,{class:`aw-pill add-btn`,onClick:t[1]||=e=>j.value=!0},[t[55]||=m(`span`,{class:`i-tabler-plus`},null,-1),c(` `+o(e.$t(`dcwDetail.k1976uns021`)),1)])])]),A.value||Na.value?(r(),d(`p`,{key:0,class:i([`banner`,A.value?`bad`:`good`])},o(A.value||Na.value),3)):f(``,!0),Oa.value.length||ka.value.length?(r(),d(`section`,Ae,[m(`b`,je,o(e.$t(`dcwDetail.kaebkky022`)),1),m(`div`,Me,[(r(!0),d(s,null,n(Oa.value,t=>(r(),d(`span`,{key:t.id,class:`adopt-chip`},[c(o(t.name)+` `,1),m(`button`,{class:`mini-btn`,onClick:e=>Aa(t.id)},o(e.$t(`dcwDetail.kyjp9fg023`)),9,Ne)]))),128)),(r(!0),d(s,null,n(ka.value,t=>(r(),d(`span`,{key:t.id,class:`adopt-chip`},[c(o(t.name)+`(`+o(e.$t(`dcwDetail.k3km252140`)),1),m(`button`,{class:`mini-btn`,onClick:e=>ja(t.id)},o(e.$t(`dcwDetail.kyjp9fg023`)),9,Pe)]))),128))])])):f(``,!0),m(`section`,Fe,[m(`div`,Ie,[m(`span`,{class:i([`line-dot`,{on:C.value.active}])},null,2),m(`div`,Le,[m(`b`,null,o(C.value.active?e.$t(`dcwDetail.k1pxrhx0154`):e.$t(`dcwDetail.k1b2hxmx170`)),1),C.value.active?(r(),d(`small`,Re,o(C.value.productName)+` · `+o(C.value.recipeName)+` · `+o(e.$t(`dcwDetail.k400lb075`))+` `+o(C.value.runId)+` · `+o(e.$t(`dcwDetail.k3zkt2166`))+` `+o(C.value.startedAt?.slice(11,19))+` `+o(e.$t(`dcwDetail.k69vag8168`))+` `+o(C.value.taggedSamples)+` `+o(e.$t(`dcwDetail.k4118o085`)),1)):(r(),d(`small`,ze,o(e.$t(`dcwDetail.k19pof14024`)),1))])]),m(`div`,Be,[m(`label`,Ve,[m(`span`,null,o(e.$t(`dcwDetail.k3waz1025`)),1),h(m(`select`,{"onUpdate:modelValue":t[2]||=e=>B.value=e,class:`inp`,onChange:t[3]||=e=>V.value=``},[m(`option`,He,o(e.$t(`dcwDetail.kuisodh026`)),1),(r(!0),d(s,null,n(O.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,Ue))),128))],544),[[v,B.value]])]),m(`label`,We,[m(`span`,null,o(e.$t(`dcwDetail.k48grv027`)),1),h(m(`select`,{"onUpdate:modelValue":t[4]||=e=>V.value=e,class:`inp`,disabled:!B.value},[m(`option`,Ke,o(e.$t(`dcwDetail.kutxzsz028`)),1),(r(!0),d(s,null,n(eo.value,t=>(r(),d(`option`,{key:t.id,value:t.id,disabled:t.params.length===0},o(t.name)+o(t.params.length===0?e.$t(`dcwDetail.k1hicmch155`):e.$t(`dcwDetail.k1lzfi4g180`,{p0:t.params.length})),9,qe))),128))],8,Ge),[[v,V.value]])]),C.value.active?(r(),d(`button`,{key:1,class:`pill-btn stop`,disabled:H.value,onClick:no},o(e.$t(`dcwDetail.k1xyhd2y030`)),9,Ye)):(r(),d(`button`,{key:0,class:`pill-btn`,disabled:H.value||!V.value,title:V.value?`下发配方参数并开始打标数据采集`:`开跑前必须先设定配方`,onClick:to},o(e.$t(`dcwDetail.kfb8vml029`)),9,Je))]),W.value?(r(),d(`p`,Xe,o(W.value),1)):f(``,!0),U.value?(r(),d(`p`,Ze,o(U.value),1)):f(``,!0)]),Ya.value?(r(),d(`div`,{key:2,class:`modal-mask`,onClick:t[15]||=_(e=>Ya.value=!1,[`self`])},[m(`div`,Qe,[m(`h3`,$e,[c(o(e.$t(`dcwDetail.k1x4vam0031`))+` `,1),m(`small`,et,o(e.$t(`dcwDetail.k3x23c141`))+` `+o(a(b).templates.filter(e=>e.builtin).length)+` · `+o(e.$t(`dcwDetail.k3t616a142`))+` `+o(a(b).templates.filter(e=>!e.builtin).length),1)]),m(`p`,tt,o(e.$t(`dcwDetail.ke1iyud032`)),1),m(`div`,nt,[(r(!0),d(s,null,n(a(b).templates,t=>(r(),d(`span`,{key:t.key,class:`tpl-chip`,title:`${t.code} · ${t.min}~${t.max} ${t.unit}${t.semantics?` · ${t.semantics}`:``}`},[c(o(t.name)+` `,1),m(`small`,it,o(t.min)+`~`+o(t.max)+o(t.unit),1),m(`em`,{class:i([`tpl-tag`,{builtin:t.builtin}])},o(t.builtin?e.$t(`dcwDetail.k3x23c141`):e.$t(`dcwDetail.k3t616a142`)),3)],8,rt))),128))]),m(`p`,at,o(e.$t(`dcwDetail.k169eb4s033`)),1),m(`div`,ot,[m(`label`,st,[m(`span`,null,[c(o(e.$t(`dcwDetail.k1f55q76034`)),1),t[56]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":t[5]||=e=>z.name=e,class:`inp`,placeholder:e.$t(`dcwDetail.k1tooi3o004`)},null,8,ct),[[y,z.name]])]),m(`label`,lt,[m(`span`,null,o(e.$t(`dcwDetail.k1bqk219035`)),1),h(m(`input`,{"onUpdate:modelValue":t[6]||=e=>z.ch=e,class:`inp`,placeholder:e.$t(`dcwDetail.k698qz0005`)},null,8,ut),[[y,z.ch]])]),m(`label`,dt,[m(`span`,null,o(e.$t(`dcwDetail.k1ayxrqb036`)),1),h(m(`input`,{"onUpdate:modelValue":t[7]||=e=>z.code=e,class:`inp`,placeholder:`如 MOTOR · I`},null,512),[[y,z.code]])]),m(`label`,ft,[m(`span`,null,[c(o(e.$t(`dcwDetail.k3x4ef037`)),1),t[57]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":t[8]||=e=>z.unit=e,class:`inp`,placeholder:`如 A`},null,512),[[y,z.unit]])]),m(`label`,pt,[m(`span`,null,[c(o(e.$t(`dcwDetail.k1l9jv5m038`)),1),t[58]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":t[9]||=e=>z.min=e,type:`number`,class:`inp`,placeholder:e.$t(`dcwDetail.kxz9174006`)},null,8,mt),[[y,z.min,void 0,{number:!0}]])]),m(`label`,ht,[m(`span`,null,[c(o(e.$t(`dcwDetail.k1l9jv4p039`)),1),t[59]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":t[10]||=e=>z.max=e,type:`number`,class:`inp`,placeholder:e.$t(`dcwDetail.kxz9167007`)},null,8,gt),[[y,z.max,void 0,{number:!0}]])]),m(`label`,_t,[m(`span`,null,o(e.$t(`dcwDetail.k3mxmcx040`)),1),h(m(`input`,{"onUpdate:modelValue":t[11]||=e=>z.decimals=e,type:`number`,min:`0`,max:`4`,class:`inp`},null,512),[[y,z.decimals,void 0,{number:!0}]])]),m(`label`,vt,[m(`span`,null,o(e.$t(`dcwDetail.k3xx56041`)),1),h(m(`select`,{"onUpdate:modelValue":t[12]||=e=>z.icon=e,class:`inp`},[(r(),d(s,null,n(Qa,e=>m(`option`,{key:e.key,value:e.key},o(e.label),9,yt)),64))],512),[[v,z.icon]])])]),m(`label`,bt,[m(`span`,null,o(e.$t(`dcwDetail.knjmyfr042`)),1),h(m(`textarea`,{"onUpdate:modelValue":t[13]||=e=>z.semantics=e,class:`inp`,rows:`2`,placeholder:e.$t(`dcwDetail.k1qdnfzc008`)},null,8,xt),[[y,z.semantics]])]),R.value?(r(),d(`p`,St,o(R.value),1)):f(``,!0),L.value?(r(),d(`p`,Ct,o(L.value),1)):f(``,!0),m(`div`,wt,[m(`button`,{class:`aw-pill outline`,onClick:t[14]||=e=>Ya.value=!1},o(e.$t(`dcwDetail.k3x62t043`)),1),m(`button`,{class:`pill-btn`,disabled:Xa.value||!z.name.trim()||z.unit.trim()===``||z.min===``||z.max===``,onClick:$a},o(Xa.value?e.$t(`dcwDetail.k1bg4759156`):e.$t(`dcwDetail.k1bg9nga171`)),9,Tt)])])])):f(``,!0),j.value?(r(),d(`div`,{key:3,class:`modal-mask`,onClick:t[27]||=_(e=>j.value=!1,[`self`])},[m(`div`,Et,[m(`h3`,Dt,o(e.$t(`dcwDetail.k1976uns021`)),1),m(`div`,Ot,[m(`button`,{class:i([`seg`,{on:M.value===`mock`}]),onClick:t[16]||=e=>M.value=`mock`},` Mock 模拟 PLC `,2),m(`button`,{class:i([`seg`,{on:M.value===`real`}]),onClick:t[17]||=e=>M.value=`real`},o(e.$t(`dcwDetail.kyj8fen044`)),3)]),m(`div`,kt,[m(`label`,At,[m(`span`,null,o(e.$t(`dcwDetail.k1ejzwqp045`)),1),h(m(`select`,{"onUpdate:modelValue":t[18]||=e=>La.value=e,class:`inp`},[(r(!0),d(s,null,n(a(b).templates,t=>(r(),d(`option`,{key:t.key,value:t.key},o(t.name)+` · `+o(t.ch)+`(`+o(t.min)+`~`+o(t.max)+` `+o(t.unit)+`)`+o(t.builtin?``:e.$t(`dcwDetail.kr45rk9157`)),9,jt))),128))],512),[[v,La.value]])]),m(`label`,Mt,[m(`span`,null,o(e.$t(`dcwDetail.k1ce2k1y046`)),1),h(m(`input`,{"onUpdate:modelValue":t[19]||=e=>Ra.value=e,class:`inp`,placeholder:e.$t(`dcwDetail.kgpxzy3009`)},null,8,Nt),[[y,Ra.value]])]),m(`label`,Pt,[m(`span`,null,o(e.$t(`dcwDetail.k1vyb8im047`)),1),h(m(`input`,{"onUpdate:modelValue":t[20]||=e=>za.value=e,type:`number`,min:`0`,max:`3600000`,step:`500`,class:`inp`,placeholder:e.$t(`dcwDetail.kb1srz0010`)},null,8,Ft),[[y,za.value,void 0,{number:!0}]])])]),m(`div`,It,[m(`label`,Lt,[m(`span`,null,o(e.$t(`dcwDetail.kiune1f048`)),1),h(m(`select`,{"onUpdate:modelValue":t[21]||=e=>F.kind=e,class:`inp`},[m(`option`,Rt,o(e.$t(`dcwDetail.kkzy0k049`)),1),t[60]||=m(`option`,{value:`linear`},` 线性标定:PLC值 = (物理值 - offset) / scale `,-1)],512),[[v,F.kind]])]),m(`label`,zt,[t[61]||=m(`span`,null,`scale / offset`,-1),m(`div`,Bt,[h(m(`input`,{"onUpdate:modelValue":t[22]||=e=>F.scale=e,type:`number`,step:`0.1`,class:`inp`,disabled:F.kind!==`linear`,title:`decoder 斜率(≠0):物理值 = scale × PLC值 + offset;下发时自动取逆`},null,8,Vt),[[y,F.scale,void 0,{number:!0}]]),h(m(`input`,{"onUpdate:modelValue":t[23]||=e=>F.offset=e,type:`number`,step:`0.1`,class:`inp`,disabled:F.kind!==`linear`,title:`decoder 截距`},null,8,Ht),[[y,F.offset,void 0,{number:!0}]])])])]),M.value===`real`?(r(),d(s,{key:0},[m(`div`,Ut,[m(`label`,Wt,[m(`span`,null,o(e.$t(`dcwDetail.k1kt87rx050`)),1),h(m(`select`,{"onUpdate:modelValue":t[24]||=e=>N.value=e,class:`inp`},[(r(!0),d(s,null,n(a(ce).filter(e=>e.status!==`builtin`),e=>(r(),d(`option`,{key:e.kind,value:e.kind},o(e.label),9,Gt))),128))],512),[[v,N.value]])])]),Ga.value.length?(r(),d(`div`,Kt,[(r(!0),d(s,null,n(Ga.value,e=>(r(),d(`label`,{key:e.key,class:`f`},[m(`span`,null,[c(o(e.label),1),e.required?(r(),d(`em`,qt,`*`)):f(``,!0)]),e.type===`select`?h((r(),d(`select`,{key:0,"onUpdate:modelValue":t=>P.value[e.key]=t,class:`inp`},[(r(!0),d(s,null,n(e.options,e=>(r(),d(`option`,{key:e.value,value:e.value},o(e.label),9,Yt))),128))],8,Jt)),[[v,P.value[e.key]]]):h((r(),d(`input`,{key:1,"onUpdate:modelValue":t=>P.value[e.key]=t,type:e.type===`number`?`number`:`text`,placeholder:e.placeholder,class:`inp`},null,8,Xt)),[[re,P.value[e.key]]]),e.hint?(r(),d(`small`,Zt,o(e.hint),1)):f(``,!0)]))),128))])):f(``,!0),m(`div`,Qt,[m(`button`,{class:`pill-btn outline`,disabled:Va.value,onClick:qa},o(Va.value?e.$t(`dcwDetail.k1fsh720158`):e.$t(`dcwDetail.k1fstglk172`)),9,$t),I.value?(r(),d(`span`,{key:0,class:i([`test-result`,I.value.ok?`good`:`bad`])},o(I.value.ok?`✓`:`✗`)+` `+o(I.value.message),3)):f(``,!0)])],64)):f(``,!0),m(`label`,en,[m(`span`,null,o(e.$t(`dcwDetail.k1hgizn7051`)),1),h(m(`textarea`,{"onUpdate:modelValue":t[25]||=e=>Ba.value=e,class:`inp`,rows:`2`,placeholder:e.$t(`dcwDetail.k12bnyt9011`)},null,8,tn),[[y,Ba.value]])]),Ua.value?(r(),d(`p`,nn,o(Ua.value),1)):f(``,!0),m(`div`,rn,[m(`button`,{class:`aw-pill outline`,onClick:t[26]||=e=>j.value=!1},o(e.$t(`dcwDetail.k3xdnn052`)),1),m(`button`,{class:`aw-pill`,disabled:Ha.value,onClick:Ja},o(Ha.value?e.$t(`dcwDetail.k1bg4759156`):e.$t(`dcwDetail.k1bge46t173`)),9,an)])])])):f(``,!0),ne(u,{spinning:!a(b).loaded&&!a(b).error},{default:te(()=>[m(`section`,on,[m(`table`,sn,[m(`thead`,null,[m(`tr`,null,[m(`th`,null,o(e.$t(`dcwDetail.k1e2dtkt053`)),1),m(`th`,null,o(e.$t(`dcwDetail.k403cy054`)),1),m(`th`,null,o(e.$t(`dcwDetail.k42w8s055`)),1),m(`th`,null,o(e.$t(`dcwDetail.k1deqh0d056`)),1),m(`th`,null,o(e.$t(`dcwDetail.k1k79ec9057`)),1),m(`th`,null,o(e.$t(`dcwDetail.k1dexou6058`)),1),m(`th`,null,o(e.$t(`dcwDetail.k1b1nnaa059`)),1),m(`th`,null,o(e.$t(`dcwDetail.k1i8rtqt060`)),1),m(`th`,cn,o(e.$t(`dcwDetail.k40aa6061`)),1)])]),m(`tbody`,null,[(r(!0),d(s,null,n(D.value,n=>(r(),d(`tr`,{key:n.id,class:i({"node-paused":!n.enabled})},[m(`td`,null,[m(`span`,ln,o(n.id.slice(0,8)),1),m(`b`,null,o(n.name),1),m(`small`,un,o(va(n.templateRef)),1)]),m(`td`,null,[m(`button`,{class:i([`ctrl-toggle`,{on:n.enabled}]),disabled:Fa.value===n.id,title:n.enabled?`暂停该节点控制:下发将被拒绝`:`开启该节点控制:恢复可下发`,onClick:e=>Ia(n.id,!n.enabled)},[t[62]||=m(`span`,{class:`ct-dot`},null,-1),c(` `+o(n.enabled?e.$t(`dcwDetail.k3o3ib3159`):e.$t(`dcwDetail.k3n93ed062`)),1)],10,dn)]),m(`td`,null,[n.enabled?(r(),d(`span`,{key:1,class:i([`st-pill`,n.state])},o(_a[n.state]??n.state),3)):(r(),d(`span`,fn,o(e.$t(`dcwDetail.k3n93ed062`)),1))]),m(`td`,pn,[c(o(n.value==null?`--`:n.value.toFixed(n.decimals))+` `,1),m(`small`,null,o(n.unit),1),n.lastAckAt?(r(),d(`small`,mn,` · `+o(n.lastAckAt.slice(11,19)),1)):f(``,!0)]),m(`td`,null,[m(`div`,hn,[h(m(`input`,{"onUpdate:modelValue":e=>k[n.id]=e,type:`number`,class:`inp write-inp mono`,placeholder:`${n.min}~${n.max}`,min:n.min,max:n.max,step:10**-n.decimals,disabled:!n.enabled,title:n.enabled?``:`当前节点暂停:开启控制后方可设定`},null,8,gn),[[y,k[n.id],void 0,{number:!0}]]),m(`button`,{class:`mini-btn write-btn`,disabled:!n.enabled||Ma.value===n.id||k[n.id]==null||k[n.id]===``,title:n.enabled?`下发设定值`:`当前节点暂停:开启控制后方可设定`,onClick:e=>Pa(n.id,Number(k[n.id]))},o(Ma.value===n.id?e.$t(`dcwDetail.k3l3h80123`):e.$t(`dcwDetail.k3w6td174`)),9,_n)])]),m(`td`,vn,o(n.min)+` ~ `+o(n.max)+` `+o(n.unit),1),m(`td`,yn,o(n.holdIntervalMs==null?e.$t(`dcwDetail.k3zul4160`):`${n.holdIntervalMs}ms`),1),m(`td`,null,o(ga(n.deviceBindingId)),1),m(`td`,bn,[m(`button`,{class:`mini-btn danger`,onClick:e=>a(b).removeNode(n.id)},o(e.$t(`dcwDetail.k3xakp063`)),9,xn)])],2))),128)),a(b).loaded&&D.value.length===0?(r(),d(`tr`,Sn,[m(`td`,Cn,[m(`div`,wn,[m(`p`,Tn,o(e.$t(`dcwDetail.k1wtecyw064`)),1)])])])):f(``,!0)])])])]),_:1},8,[`spinning`]),m(`section`,En,[m(`div`,Dn,[m(`h3`,null,o(e.$t(`dcwDetail.k1j8w3hd065`)),1),m(`span`,On,o(O.value.length)+` `+o(e.$t(`dcwDetail.k1av3wgs143`))+` `+o(so.value.length)+` `+o(e.$t(`dcwDetail.k48grv027`)),1),m(`button`,{class:`pill-btn`,style:{"margin-left":`auto`},onClick:_o},o(e.$t(`dcwDetail.k1akm6dc066`)),1),m(`button`,{class:`mini-btn`,onClick:t[28]||=e=>ro.value=!0},o(e.$t(`dcwDetail.k1aka0ki067`)),1)]),m(`p`,kn,o(e.$t(`dcwDetail.k6bl2q8068`)),1),O.value.length?(r(),d(`div`,An,[m(`button`,{class:i([`prod-chip`,{on:K.value===``}]),onClick:t[29]||=e=>K.value=``},o(e.$t(`dcwDetail.k3x4t1069`)),3),(r(!0),d(s,null,n(O.value,t=>(r(),d(`button`,{key:t.id,class:i([`prod-chip`,{on:K.value===t.id}]),title:t.description,onClick:e=>K.value=t.id},[c(o(t.name)+` `,1),m(`span`,{class:`prod-del`,title:e.$t(`dcwDetail.k1bpfjgx012`),onClick:_(e=>a(b).removeProduct(t.id),[`stop`])},`×`,8,Mn)],10,jn))),128))])):(r(),d(`p`,Nn,o(e.$t(`dcwDetail.knov3zg070`)),1)),m(`div`,Pn,[(r(!0),d(s,null,n(so.value,t=>(r(),d(`div`,{key:t.id,class:`recipe-item`},[m(`div`,Fn,[m(`b`,null,o(t.name),1),m(`small`,In,o(co(t.productId)),1),m(`small`,Ln,o(t.id),1)]),t.description?(r(),d(`p`,Rn,o(t.description),1)):f(``,!0),m(`div`,zn,[(r(!0),d(s,null,n(t.params,(e,t)=>(r(),d(`span`,{key:t,class:`param-chip`},o(a(b).templates.find(t=>t.key===(e.templateRef??``).replace(`dcw-`,``))?.ch??e.templateRef)+` = `+o(e.value),1))),128)),(r(!0),d(s,null,n(t.daqWindows,(t,n)=>(r(),d(`span`,{key:`w-${n}`,class:`param-chip daqwin`,title:e.$t(`dcwDetail.k1l11api013`)},` ◎ `+o(wa(t.nodeId))+` ∈ [`+o(t.min??`-∞`)+`, `+o(t.max??`+∞`)+`] `,9,Bn))),128))]),m(`div`,Vn,[m(`button`,{class:`pill-btn`,onClick:e=>bo(t.id)},o(e.$t(`dcwDetail.k1497qvr071`)),9,Hn),m(`button`,{class:`mini-btn`,onClick:e=>vo(t.id)},o(e.$t(`dcwDetail.k45eb0072`)),9,Un),m(`button`,{class:`mini-btn danger`,onClick:e=>a(b).removeRecipe(t.id)},o(e.$t(`dcwDetail.k3xakp063`)),9,Wn)])]))),128)),so.value.length===0?(r(),d(`div`,Gn,o(e.$t(`dcwDetail.keko1xy073`)),1)):f(``,!0)]),Z.value?(r(),d(`div`,Kn,[c(o(e.$t(`dcwDetail.k1l3hrvp144`))+` `+o(Z.value.runId)+` `+o(e.$t(`dcwDetail.k1g3lh2v167`))+o(Z.value.ok)+`/`+o(Z.value.total)+` `+o(e.$t(`dcwDetail.k1bqci06149`))+` `,1),m(`button`,{class:`mini-btn`,style:{"margin-left":`10px`},disabled:$.value,onClick:t[30]||=e=>xo(Z.value.runId)},o($.value?e.$t(`dcwDetail.k1br0ij9161`):e.$t(`dcwDetail.kxwei5175`)),9,qn)])):f(``,!0),Ea.value.length?(r(),d(`div`,Jn,[m(`p`,Yn,o(e.$t(`dcwDetail.k1rjer8d074`)),1),m(`table`,Xn,[m(`thead`,null,[m(`tr`,null,[m(`th`,null,o(e.$t(`dcwDetail.k400lb075`)),1),m(`th`,null,o(e.$t(`dcwDetail.k48grv027`)),1),m(`th`,null,o(e.$t(`dcwDetail.k4497j076`)),1),m(`th`,null,o(e.$t(`dcwDetail.k1bqhtmu077`)),1),m(`th`,Zn,o(e.$t(`dcwDetail.k40aa6061`)),1)])]),m(`tbody`,null,[(r(!0),d(s,null,n([...Ea.value].reverse().slice(0,8),t=>(r(),d(`tr`,{key:t.id},[m(`td`,Qn,o(t.id),1),m(`td`,null,o(t.recipeName),1),m(`td`,$n,o(t.startedAt.slice(5,19))+` ~ `+o(t.endedAt?t.endedAt.slice(5,19):e.$t(`dcwDetail.k3vpfg9162`)),1),m(`td`,null,[m(`span`,{class:i([`st-pill`,t.results.every(e=>e.ok)?`ok`:`warn`])},o(t.results.filter(e=>e.ok).length)+`/`+o(t.results.length),3)]),m(`td`,er,[m(`button`,{class:`mini-btn`,disabled:$.value,onClick:e=>xo(t.id)},o(e.$t(`dcwDetail.k1dzwrdp078`)),9,tr),t.endedAt?f(``,!0):(r(),d(`button`,{key:0,class:`mini-btn`,onClick:e=>a(b).closeRun(t.id)},o(e.$t(`dcwDetail.k1blr7y7079`)),9,nr))])]))),128))])])])):f(``,!0),Q.value?(r(),d(`div`,{key:4,class:`modal-mask`,onClick:t[32]||=_(e=>Q.value=null,[`self`])},[m(`div`,rr,[m(`h3`,ir,o(e.$t(`dcwDetail.k11lq94k145`))+` `+o(Q.value.data.run.recipeName)+`(`+o(Q.value.runId)+`) `,1),m(`p`,ar,o(e.$t(`dcwDetail.k1me41w8080`)),1),m(`table`,or,[m(`thead`,null,[m(`tr`,null,[m(`th`,null,o(e.$t(`dcwDetail.k48hde081`)),1),m(`th`,null,o(e.$t(`dcwDetail.k45uio082`)),1),m(`th`,null,o(e.$t(`dcwDetail.k40t11083`)),1),m(`th`,null,o(e.$t(`dcwDetail.k3xuaw084`)),1),t[63]||=m(`th`,null,`min ~ max`,-1),m(`th`,null,o(e.$t(`dcwDetail.k4118o085`)),1)])]),m(`tbody`,null,[(r(!0),d(s,null,n(Q.value.data.daq,e=>(r(),d(`tr`,{key:e.nodeId},[m(`td`,null,[c(o(e.ch),1),m(`small`,sr,o(e.unit),1)]),m(`td`,null,o(e.nodeName),1),m(`td`,cr,o(e.latest),1),m(`td`,lr,o(e.avg),1),m(`td`,ur,o(e.min)+` ~ `+o(e.max),1),m(`td`,dr,o(e.cnt),1)]))),128)),Q.value.data.daq.length===0?(r(),d(`tr`,fr,[m(`td`,pr,o(e.$t(`dcwDetail.kd457ry086`)),1)])):f(``,!0)])]),m(`p`,mr,o(e.$t(`dcwDetail.k12b7cxs087`)),1),m(`table`,hr,[m(`thead`,null,[m(`tr`,null,[m(`th`,null,o(e.$t(`dcwDetail.k3xbjr088`)),1),m(`th`,null,o(e.$t(`dcwDetail.k45uio082`)),1),m(`th`,null,o(e.$t(`dcwDetail.k3ncbsh089`)),1),m(`th`,null,o(e.$t(`dcwDetail.k3lh3mz090`)),1),m(`th`,null,o(e.$t(`dcwDetail.k454pg091`)),1),m(`th`,null,o(e.$t(`dcwDetail.k40ieu092`)),1)])]),m(`tbody`,null,[(r(!0),d(s,null,n(Q.value.data.writes,(t,n)=>(r(),d(`tr`,{key:n},[m(`td`,null,o(t.param),1),m(`td`,null,o(t.nodeName),1),m(`td`,gr,o(t.eng),1),m(`td`,_r,o(t.raw),1),m(`td`,null,[m(`span`,{class:i([`st-pill`,t.ok?`ok`:`alarm`])},o(t.ok?`ACK`:e.$t(`dcwDetail.k3yit7139`)),3)]),m(`td`,vr,o(t.at.slice(5,19)),1)]))),128)),Q.value.data.writes.length===0?(r(),d(`tr`,yr,[m(`td`,br,o(e.$t(`dcwDetail.knzcp8i093`)),1)])):f(``,!0)])]),m(`div`,xr,[m(`button`,{class:`aw-pill outline`,onClick:t[31]||=e=>Q.value=null},o(e.$t(`dcwDetail.k3x62t043`)),1)])])])):f(``,!0)]),J.value?(r(),d(`div`,{key:4,class:`modal-mask`,onClick:t[39]||=_(e=>J.value=!1,[`self`])},[m(`div`,Sr,[m(`h3`,Cr,o(ho.value?e.$t(`dcwDetail.k1iiwk0i163`):e.$t(`dcwDetail.k1efq0r9176`)),1),m(`div`,wr,[m(`label`,Tr,[m(`span`,null,[c(o(e.$t(`dcwDetail.k1dw4fzf094`)),1),t[64]||=m(`em`,null,`*`,-1)]),h(m(`select`,{"onUpdate:modelValue":t[33]||=e=>X.productId=e,class:`inp`},[(r(!0),d(s,null,n(O.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,Er))),128))],512),[[v,X.productId]])]),m(`label`,Dr,[m(`span`,null,[c(o(e.$t(`dcwDetail.k1l3f8so095`)),1),t[65]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":t[34]||=e=>X.name=e,class:`inp`,placeholder:e.$t(`dcwDetail.k12c11vm014`)},null,8,Or),[[y,X.name]])]),m(`label`,kr,[m(`span`,null,o(e.$t(`dcwDetail.k40gkk096`)),1),h(m(`input`,{"onUpdate:modelValue":t[35]||=e=>X.description=e,class:`inp`,placeholder:e.$t(`dcwDetail.k1hxx8hy015`)},null,8,Ar),[[y,X.description]])])]),m(`p`,jr,o(e.$t(`dcwDetail.ka1kfgh097`)),1),(r(!0),d(s,null,n(X.params,(i,a)=>(r(),d(`div`,{key:a,class:`param-row`},[m(`label`,Mr,[m(`span`,null,o(e.$t(`dcwDetail.k1e2dtkt053`)),1),h(m(`select`,{"onUpdate:modelValue":e=>i.nodeId=e,class:`inp`},[(r(!0),d(s,null,n(D.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name)+`(`+o(va(e.templateRef))+` · `+o(e.min)+`~`+o(e.max)+` `+o(e.unit)+`) `,9,Pr))),128))],8,Nr),[[v,i.nodeId]])]),m(`label`,Fr,[m(`span`,null,[c(o(e.$t(`dcwDetail.k3renp2098`)),1),t[66]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":e=>i.value=e,type:`number`,class:`inp`,step:.1},null,8,Ir),[[y,i.value,void 0,{number:!0}]])]),m(`label`,Lr,[m(`span`,null,o(e.$t(`dcwDetail.k134rw3b146`))+o(ya(i.nodeId)??`-`)+`)`,1),h(m(`input`,{"onUpdate:modelValue":e=>i.min=e,type:`number`,class:`inp`,step:.1,placeholder:e.$t(`dcwDetail.k5vew9z016`)},null,8,Rr),[[y,i.min,void 0,{number:!0}]])]),m(`label`,zr,[m(`span`,null,o(e.$t(`dcwDetail.khrv911147`))+o(ba(i.nodeId)??`-`)+`)`,1),h(m(`input`,{"onUpdate:modelValue":e=>i.max=e,type:`number`,class:`inp`,step:.1,placeholder:e.$t(`dcwDetail.kzoh5pr017`)},null,8,Br),[[y,i.max,void 0,{number:!0}]])]),m(`button`,{class:`mini-btn danger param-del`,onClick:e=>X.params.splice(a,1)},o(e.$t(`dcwDetail.k44idg099`)),9,Vr)]))),128)),m(`button`,{class:`mini-btn`,onClick:t[36]||=e=>X.params.push({nodeId:D.value[0]?.id??``,value:``,min:``,max:``})},o(e.$t(`dcwDetail.k1broh7h100`)),1),m(`p`,Hr,o(e.$t(`dcwDetail.k1h5gues101`)),1),(r(!0),d(s,null,n(X.daqWindows,(t,i)=>(r(),d(`div`,{key:`dw-${i}`,class:`param-row`},[m(`label`,Ur,[m(`span`,null,o(e.$t(`dcwDetail.k1empnnb102`)),1),h(m(`select`,{"onUpdate:modelValue":e=>t.nodeId=e,class:`inp`},[(r(!0),d(s,null,n(w.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name)+`(`+o(e.min)+`~`+o(e.max)+` `+o(e.unit)+`) `,9,Gr))),128))],8,Wr),[[v,t.nodeId]])]),m(`label`,Kr,[m(`span`,null,o(e.$t(`dcwDetail.kqm08ap103`)),1),h(m(`input`,{"onUpdate:modelValue":e=>t.min=e,type:`number`,class:`inp`,step:.1},null,8,qr),[[y,t.min,void 0,{number:!0}]])]),m(`label`,Jr,[m(`span`,null,o(e.$t(`dcwDetail.kpypf8g104`)),1),h(m(`input`,{"onUpdate:modelValue":e=>t.max=e,type:`number`,class:`inp`,step:.1},null,8,Yr),[[y,t.max,void 0,{number:!0}]])]),m(`button`,{class:`mini-btn danger param-del`,onClick:e=>X.daqWindows.splice(i,1)},o(e.$t(`dcwDetail.k44idg099`)),9,Xr)]))),128)),m(`button`,{class:`mini-btn`,disabled:w.value.length===0,title:w.value.length===0?`本产线暂无数采节点`:``,onClick:t[37]||=e=>X.daqWindows.push({nodeId:w.value[0]?.id??``,min:``,max:``})},o(e.$t(`dcwDetail.kv1de1p105`)),9,Zr),Y.value?(r(),d(`p`,Qr,o(Y.value),1)):f(``,!0),m(`div`,$r,[m(`button`,{class:`aw-pill outline`,onClick:t[38]||=e=>J.value=!1},o(e.$t(`dcwDetail.k3xdnn052`)),1),m(`button`,{class:`pill-btn`,disabled:go.value,onClick:yo},o(go.value?e.$t(`dcwDetail.k1b38d59164`):e.$t(`dcwDetail.k1b3kwg0177`)),9,ei)])])])):f(``,!0),m(`section`,ti,[m(`p`,ni,o(e.$t(`dcwDetail.k1us3jse106`)),1),m(`div`,ri,[m(`label`,ii,[m(`span`,null,o(e.$t(`dcwDetail.k3waz1025`)),1),h(m(`select`,{"onUpdate:modelValue":t[40]||=e=>q.productId=e,class:`inp`,onChange:t[41]||=e=>q.recipeId=``},[m(`option`,ai,o(e.$t(`dcwDetail.k1bkl1jx107`)),1),(r(!0),d(s,null,n(O.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,oi))),128))],544),[[v,q.productId]])]),m(`label`,si,[m(`span`,null,o(e.$t(`dcwDetail.k48grv027`)),1),h(m(`select`,{"onUpdate:modelValue":t[42]||=e=>q.recipeId=e,class:`inp`,disabled:!q.productId},[m(`option`,li,o(e.$t(`dcwDetail.k1bkx7cr108`)),1),(r(!0),d(s,null,n(so.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,ui))),128))],8,ci),[[v,q.recipeId]])]),m(`label`,di,[m(`span`,null,o(e.$t(`dcwDetail.k1demcae109`)),1),h(m(`select`,{"onUpdate:modelValue":t[43]||=e=>q.paramKey=e,class:`inp`},[m(`option`,fi,o(e.$t(`dcwDetail.k1bkx7ya110`)),1),(r(!0),d(s,null,n(mo.value,e=>(r(),d(`option`,{key:e,value:e},o(e),9,pi))),128))],512),[[v,q.paramKey]])]),m(`label`,mi,[m(`span`,null,o(e.$t(`dcwDetail.k45uio082`)),1),h(m(`select`,{"onUpdate:modelValue":t[44]||=e=>q.nodeId=e,class:`inp`},[m(`option`,hi,o(e.$t(`dcwDetail.k1bkul3k111`)),1),(r(!0),d(s,null,n(w.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,gi))),128))],512),[[v,q.nodeId]])]),m(`label`,_i,[m(`span`,null,o(e.$t(`dcwDetail.kx2ojn0112`)),1),h(m(`input`,{"onUpdate:modelValue":t[45]||=e=>q.lastMin=e,type:`number`,min:`1`,max:`10080`,class:`inp`},null,512),[[y,q.lastMin,void 0,{number:!0}]])]),m(`label`,vi,[m(`span`,null,o(e.$t(`dcwDetail.kjvnvn4113`)),1),h(m(`input`,{"onUpdate:modelValue":t[46]||=e=>q.bucketMs=e,type:`number`,min:`0`,step:`100`,class:`inp`},null,512),[[y,q.bucketMs,void 0,{number:!0}]])]),m(`div`,yi,[m(`button`,{class:`pill-btn`,disabled:uo.value,onClick:po},o(uo.value?e.$t(`dcwDetail.k1eyx09r165`):e.$t(`dcwDetail.k416ek178`)),9,bi)])]),fo.value?(r(),d(`p`,xi,o(fo.value),1)):f(``,!0),lo.value?(r(),d(`div`,Si,[m(`table`,Ci,[m(`thead`,null,[m(`tr`,null,[m(`th`,null,o(e.$t(`dcwDetail.k48hde081`)),1),m(`th`,null,o(e.$t(`dcwDetail.k45uio082`)),1),m(`th`,null,o(e.$t(`dcwDetail.k42kcu114`)),1),m(`th`,null,o(e.$t(`dcwDetail.k49ujb115`)),1),m(`th`,null,o(e.$t(`dcwDetail.k40pvw116`)),1),m(`th`,null,o(e.$t(`dcwDetail.k3xho3117`)),1)])]),m(`tbody`,null,[(r(!0),d(s,null,n(lo.value.channels,e=>(r(),d(`tr`,{key:e.nodeId},[m(`td`,null,[c(o(e.ch),1),m(`small`,wi,o(e.unit),1)]),m(`td`,null,o(e.nodeName),1),m(`td`,Ti,o(e.points.length),1),m(`td`,Ei,o(So(e.points[0])),1),m(`td`,Di,o(So(e.points[e.points.length-1])),1),m(`td`,Oi,o(new Date(e.points[0]?.at??0).toLocaleTimeString())+` ~ `+o(new Date(e.points[e.points.length-1]?.at??0).toLocaleTimeString()),1)]))),128))])])])):f(``,!0)]),Da.value.length?(r(),d(`section`,ki,[m(`p`,Ai,o(e.$t(`dcwDetail.kw7ym9b148`))+` `+o(Da.value.length)+` `+o(e.$t(`dcwDetail.k40bfz150`)),1),m(`table`,ji,[m(`tbody`,null,[(r(!0),d(s,null,n(Da.value.slice(0,12),t=>(r(),d(`tr`,{key:t.id},[m(`td`,Mi,o(t.at.slice(5,19)),1),m(`td`,null,o(t.param),1),m(`td`,null,o(t.nodeName),1),m(`td`,Ni,o(t.eng),1),m(`td`,Pi,` raw `+o(t.raw??`-`),1),m(`td`,null,[m(`span`,{class:i([`st-pill`,t.ok?`ok`:`alarm`])},o(t.ok?`ACK`:e.$t(`dcwDetail.k3yit7139`)),3)]),m(`td`,Fi,o(t.recipeRunId?e.$t(`dcwDetail.k6vgks7181`,{p0:t.recipeRunId}):`手动`),1)]))),128))])])])):f(``,!0),ro.value?(r(),d(`div`,{key:6,class:`modal-mask`,onClick:t[50]||=_(e=>ro.value=!1,[`self`])},[m(`div`,Ii,[m(`h3`,Li,o(e.$t(`dcwDetail.k1efduyf118`)),1),m(`div`,Ri,[m(`label`,zi,[m(`span`,null,[c(o(e.$t(`dcwDetail.k1avjrl6119`)),1),t[67]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":t[47]||=e=>G.name=e,class:`inp`,placeholder:e.$t(`dcwDetail.k12c11vm014`)},null,8,Bi),[[y,G.name]])]),m(`label`,Vi,[m(`span`,null,o(e.$t(`dcwDetail.k40gkk096`)),1),h(m(`input`,{"onUpdate:modelValue":t[48]||=e=>G.description=e,class:`inp`,placeholder:e.$t(`dcwDetail.k1hxx8hy015`)},null,8,Hi),[[y,G.description]])])]),ao.value?(r(),d(`p`,Ui,o(ao.value),1)):f(``,!0),m(`div`,Wi,[m(`button`,{class:`aw-pill outline`,onClick:t[49]||=e=>ro.value=!1},o(e.$t(`dcwDetail.k3xdnn052`)),1),m(`button`,{class:`pill-btn`,disabled:io.value,onClick:oo},o(io.value?e.$t(`dcwDetail.k1bg4759156`):e.$t(`dcwDetail.k1bg4kn6179`)),9,Gi)])])])):f(``,!0),a(b).error?(r(),d(`p`,Ki,[c(o(a(b).error)+`(`,1),ne(l,{to:`/workshop`},{default:te(()=>[c(o(e.$t(`dcwDetail.k1bhhheq120`)),1)]),_:1}),t[68]||=c(`) `,-1)])):f(``,!0),m(`section`,qi,[m(`div`,Ji,[m(`b`,null,o(e.$t(`dcwDetail.k1ledgt001`)),1),h(m(`select`,{"onUpdate:modelValue":t[51]||=e=>T.value=e,class:`inp`,onChange:Sa},[m(`option`,Yi,o(e.$t(`dcwDetail.k1ledgs001`)),1),(r(!0),d(s,null,n(D.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,Xi))),128))],544),[[v,T.value]])]),E.value?(r(),d(s,{key:0},[m(`div`,Zi,[m(`div`,Qi,[m(`small`,null,o(e.$t(`dcwDetail.k1ledgv001`)),1),m(`b`,$i,o(E.value.current??`--`),1)]),m(`div`,ea,[m(`small`,null,o(e.$t(`dcwDetail.k1ledgv002`)),1),m(`b`,ta,o(E.value.recipeTarget??`--`),1)]),m(`div`,na,[m(`small`,null,o(e.$t(`dcwDetail.k1ledgv003`)),1),m(`b`,ra,o(E.value.lastGood??`--`),1)]),m(`button`,{class:`mini-btn`,onClick:Sa},o(e.$t(`dcwDetail.k1ledga001`)),1),m(`button`,{class:`mini-btn danger`,onClick:Ca},o(e.$t(`dcwDetail.k1ledga002`)),1)]),m(`div`,ia,[m(`div`,aa,[m(`small`,oa,o(e.$t(`dcwDetail.k1ledgh001`)),1),m(`ul`,sa,[(r(!0),d(s,null,n(E.value.journal,e=>(r(),d(`li`,{key:e.id},o(e.at.slice(5,16).replace(`T`,` `))+` [`+o(e.source)+`] `+o(e.prevValue??`?`)+` → `+o(e.newValue),1))),128))])]),m(`div`,ca,[m(`small`,la,o(e.$t(`dcwDetail.k1ledgr001`)),1),m(`ul`,ua,[(r(!0),d(s,null,n(E.value.records,e=>(r(),d(`li`,{key:e.id,class:`ledger-rec`},[m(`span`,{class:i([`rec-st`,e.status])},o(e.status),3),m(`span`,da,o(e.params[0]?.from??`?`)+` → `+o(e.params[0]?.to),1),m(`small`,null,o(e.judge?`${e.judge.verdict}(${e.judge.by})`:e.status===`open`?`open`:e.closedBy??``),1)]))),128))])])])],64)):f(``,!0)])]))}}}),[[`__scopeId`,`data-v-050cee18`]]);export{fa as default};
|
|
1
|
+
import{B as e,C as t,G as n,H as r,Ht as i,St as a,Ut as ee,Wt as o,a as s,b as c,f as l,ft as u,g as d,h as f,mt as p,nt as te,p as m,rt as h,t as g,x as ne}from"./BSCpFtzG.js";import{B as _,F as re,I as v,L as y}from"./2LwEn9gX.js";import{a as ie}from"./Bi6AiCuP.js";import{t as ae}from"./ubPfs9mQ.js";import{n as oe}from"./BeIfu4N3.js";import{t as se}from"./C9f8QMp12.js";import{n as ce,t as le}from"./B0haAGoq.js";import{t as ue}from"./CwS_UHeH.js";import{t as de}from"./ClptO7LA.js";var fe={key:0,class:`page`},pe={class:`banner bad`},me={key:1,class:`page`},he={class:`aw-page-head`},ge={class:`aw-kicker`},_e={class:`sub`},ve={class:`badges mono`},ye={class:`badge`},be={class:`badge`},xe={class:`badge`},Se={class:`aw-tile ctrl-card`},Ce={class:`ctrl-left`},we=[`title`],Te={class:`ctrl-right`},Ee={class:`ctrl-metrics mono`},De=[`title`],Oe=[`title`],ke=[`title`],Ae={key:1,class:`aw-tile adopt-card`},je={class:`adopt-title`},Me={class:`adopt-list`},Ne=[`onClick`],Pe=[`onClick`],Fe={class:`aw-tile line-card`},Ie={class:`line-status`},Le={class:`line-info`},Re={key:0,class:`mono dim`},ze={key:1,class:`dim`},Be={class:`line-ctl`},Ve={class:`ctl-sel`},He={value:``},Ue=[`value`],We={class:`ctl-sel`},Ge=[`disabled`],Ke={value:``},qe=[`value`,`disabled`],Je=[`disabled`,`title`],Ye=[`disabled`],Xe={key:0,class:`banner bad`,style:{"margin-top":`10px`}},Ze={key:1,class:`banner good`,style:{"margin-top":`10px`}},Qe={class:`modal`},$e={class:`m-title`},et={class:`dim mono`},tt={class:`dim tpl-hint`},nt={class:`tpl-chips`},rt=[`title`],it={class:`mono`},at={class:`sec-label`},ot={class:`f-grid tpl-form`},st={class:`f`},ct=[`placeholder`],lt={class:`f`},ut=[`placeholder`],dt={class:`f`},ft={class:`f`},pt={class:`f`},mt=[`placeholder`],ht={class:`f`},gt=[`placeholder`],_t={class:`f`},vt={class:`f`},yt=[`value`],bt={class:`f`},xt=[`placeholder`],St={key:0,class:`banner good`,style:{"margin-top":`10px`}},Ct={key:1,class:`m-err`},wt={class:`m-actions`},Tt=[`disabled`],Et={class:`modal`},Dt={class:`m-title`},Ot={class:`seg-row`},kt={class:`f-grid`},At={class:`f`},jt=[`value`],Mt={class:`f`},Nt=[`placeholder`],Pt={class:`f`},Ft=[`placeholder`],It={class:`f-grid cal-form`},Lt={class:`f`},Rt={value:`none`},zt={class:`f`},Bt={style:{display:`flex`,gap:`6px`}},Vt=[`disabled`],Ht=[`disabled`],Ut={class:`f-grid`},Wt={class:`f`},Gt=[`value`],Kt={key:0,class:`f-grid driver-form`},qt={key:0,style:{color:`var(--tone-danger-dot)`,"font-style":`normal`}},Jt=[`onUpdate:modelValue`],Yt=[`value`],Xt=[`onUpdate:modelValue`,`type`,`placeholder`],Zt={key:2,class:`hint`},Qt={class:`test-row`},$t=[`disabled`],en={class:`f`},tn=[`placeholder`],nn={key:1,class:`m-err`},rn={class:`m-actions`},an=[`disabled`],on={class:`aw-tile table-card`},sn={class:`nodes-table`},cn={class:`right`},ln={class:`mono dim`},un={class:`mono ch`},dn=[`disabled`,`title`,`onClick`],fn={key:0,class:`st-pill paused`},pn={class:`mono val`},mn={key:0,class:`dim`},hn={class:`write-row`},gn=[`onUpdate:modelValue`,`placeholder`,`min`,`max`,`step`,`disabled`,`title`],_n=[`disabled`,`title`,`onClick`],vn={class:`mono dim`},yn={class:`mono`},bn={class:`right`},xn=[`onClick`],Sn={key:0},Cn={colspan:`9`},wn={class:`pane-empty`,style:{"min-height":`120px`}},Tn={class:`pe-sub`},En={class:`aw-tile recipe-card`},Dn={class:`recipe-hd`},On={class:`panel-tag mono`},kn={class:`recipe-sub`},An={key:0,class:`product-row`},jn=[`title`,`onClick`],Mn=[`title`,`onClick`],Nn={key:1,class:`dim`,style:{margin:`6px 0 12px`,"font-size":`12px`}},Pn={class:`recipe-grid`},Fn={class:`recipe-name`},In={class:`dim`},Ln={class:`mono dim`},Rn={key:0,class:`dim desc`},zn={class:`recipe-params mono`},Bn=[`title`],Vn={class:`recipe-actions`},Hn=[`onClick`],Un=[`onClick`],Wn=[`onClick`],Gn={key:0,class:`pane-empty`,style:{"grid-column":`1 / -1`}},Kn={key:2,class:`banner good`},qn=[`disabled`],Jn={key:3,class:`runs`},Yn={class:`sec-label`},Xn={class:`nodes-table`},Zn={class:`right`},Qn={class:`mono`},$n={class:`mono dim`},er={class:`right`},tr=[`disabled`,`onClick`],nr=[`onClick`],rr={class:`modal`},ir={class:`m-title`},ar={class:`sec-label`},or={class:`nodes-table`},sr={class:`mono dim`},cr={class:`mono`},lr={class:`mono`},ur={class:`mono dim`},dr={class:`mono dim`},fr={key:0},pr={colspan:`6`,class:`dim`,style:{"text-align":`center`,padding:`12px`}},mr={class:`sec-label`},hr={class:`nodes-table`},gr={class:`mono`},_r={class:`mono dim`},vr={class:`mono dim`},yr={key:0},br={colspan:`6`,class:`dim`,style:{"text-align":`center`,padding:`12px`}},xr={class:`m-actions`},Sr={class:`modal`},Cr={class:`m-title`},wr={class:`f-grid`},Tr={class:`f`},Er=[`value`],Dr={class:`f`},Or=[`placeholder`],kr={class:`f`},Ar=[`placeholder`],jr={class:`sec-label`},Mr={class:`f`},Nr=[`onUpdate:modelValue`],Pr=[`value`],Fr={class:`f`},Ir=[`onUpdate:modelValue`],Lr={class:`f`},Rr=[`onUpdate:modelValue`,`placeholder`],zr={class:`f`},Br=[`onUpdate:modelValue`,`placeholder`],Vr=[`onClick`],Hr={class:`sec-label`},Ur={class:`f`},Wr=[`onUpdate:modelValue`],Gr=[`value`],Kr={class:`f`},qr=[`onUpdate:modelValue`],Jr={class:`f`},Yr=[`onUpdate:modelValue`],Xr=[`onClick`],Zr=[`disabled`,`title`],Qr={key:0,class:`m-err`},$r={class:`m-actions`},ei=[`disabled`],ti={class:`aw-tile query-card`},ni={class:`sec-label`},ri={class:`q-grid`},ii={class:`f`},ai={value:``},oi=[`value`],si={class:`f`},ci=[`disabled`],li={value:``},ui=[`value`],di={class:`f`},fi={value:``},pi=[`value`],mi={class:`f`},hi={value:``},gi=[`value`],_i={class:`f`},vi={class:`f`},yi={class:`f q-actions`},bi=[`disabled`],xi={key:0,class:`banner bad`,style:{"margin-top":`8px`}},Si={key:1,class:`q-result`},Ci={class:`nodes-table`},wi={class:`mono dim`},Ti={class:`mono`},Ei={class:`mono`},Di={class:`mono`},Oi={class:`mono dim`},ki={key:5,class:`aw-tile table-card`},Ai={class:`sec-label`},ji={class:`nodes-table`},Mi={class:`mono dim`},Ni={class:`mono`},Pi={class:`mono dim`},Fi={class:`dim`},Ii={class:`modal`},Li={class:`m-title`},Ri={class:`f-grid`},zi={class:`f`},Bi=[`placeholder`],Vi={class:`f`},Hi=[`placeholder`],Ui={key:0,class:`m-err`},Wi={class:`m-actions`},Gi=[`disabled`],Ki={key:7,class:`err`},qi={class:`aw-tile ledger-card`},Ji={class:`ledger-head`},Yi={value:``},Xi=[`value`],Zi={class:`ledger-tri`},Qi={class:`tri-cell`},$i={class:`mono`},ea={class:`tri-cell`},ta={class:`mono`},na={class:`tri-cell`},ra={class:`mono`},ia={class:`ledger-cols`},aa={class:`ledger-col`},oa={class:`sec-t`},sa={class:`ledger-list mono`},ca={class:`ledger-col`},la={class:`sec-t`},ua={class:`ledger-list`},da={class:`mono`},fa=g(t({__name:`[id]`,setup(t){let{t:g}=oe(),fa=ie(),b=le(),pa=ue(),ma=de();pa.load();let x=l(()=>String(fa.params.id??``)),S=l(()=>b.lines.find(e=>e.id===x.value)),C=l(()=>b.lineStateOf(x.value));b.load();let ha=b.ensureWsFeed();e(()=>ha());let ga=e=>e?ma.twins.find(t=>t.id===e)?.name??e:g(`dcwDetail.k3own4q121`),_a={idle:g(`dcwDetail.k3zgkk122`),writing:g(`dcwDetail.k3l3h80123`),ok:`已 ACK`,error:g(`dcwDetail.k40reu124`),offline:g(`dcwDetail.k44c2n125`)};function va(e){let t=e??``;return b.templates.find(e=>e.key===(t.startsWith(`dcw-`)?t.slice(4):t))?.ch??t}function ya(e){return b.nodeById(e)?.min}function ba(e){return b.nodeById(e)?.max}let w=l(()=>pa.nodes.filter(e=>e.lineId===x.value)),T=p(``),E=p(null),xa=p(!1);async function Sa(){if(T.value){xa.value=!0;try{E.value=await b.fetchLedger(T.value)}finally{xa.value=!1}}}async function Ca(){T.value&&(await b.rollbackNode(T.value),await Sa())}function wa(e){return pa.nodeById(e)?.name??e}let D=l(()=>b.nodes.filter(e=>e.lineId===x.value)),O=l(()=>b.products.filter(e=>e.lineId===x.value)),Ta=l(()=>b.recipes.filter(e=>e.lineId===x.value)),Ea=l(()=>b.runs.filter(e=>e.lineId===x.value)),Da=l(()=>{let e=new Set(D.value.map(e=>e.id));return b.history.filter(t=>e.has(t.nodeId))}),Oa=l(()=>b.nodes.filter(e=>!e.lineId)),ka=l(()=>b.products.filter(e=>!e.lineId));async function Aa(e){await b.patchNode(e,{lineId:x.value});let t=b.nodeById(e);t&&(t.lineId=x.value)}async function ja(e){await b.updateProduct(e,{lineId:x.value}),await b.load()}let k=u({}),Ma=p(``),A=p(``),Na=p(``);async function Pa(e,t){Ma.value=e,A.value=``,Na.value=``;try{let n=await b.write(e,t);n.ok?(Na.value=g(`dcwDetail.k1alcbyu182`,{p0:b.nodeById(e)?.name??e,p1:n.message}),k[e]=``):A.value=g(`dcwDetail.kl1e9x9183`,{p0:b.nodeById(e)?.name??e,p1:n.message})}catch(e){A.value=e instanceof Error?e.message:String(e)}finally{Ma.value=``}}let Fa=p(``);async function Ia(e,t){Fa.value=e,A.value=``;try{await b.patchNode(e,{enabled:t});let n=b.nodeById(e);n&&(n.enabled=t,t?n.state===`offline`&&(n.state=`idle`):n.state=`offline`)}catch(e){A.value=e instanceof Error?e.message:String(e)}finally{Fa.value=``}}let j=p(!1),M=p(`mock`),La=p(b.templates[0]?.key??``),N=p(`mock`),Ra=p(``),za=p(null),P=p({}),F=u({kind:`none`,scale:1,offset:0}),Ba=p(``),Va=p(!1),I=p(null),Ha=p(!1),Ua=p(``),Wa=l(()=>ce.find(e=>e.kind===N.value)),Ga=l(()=>Wa.value?.configFields??[]);function Ka(){let e={};for(let t of Ga.value)t.default!==void 0&&(e[t.key]=t.default);P.value=e,I.value=null}Ka();async function qa(){Va.value=!0,I.value=null;try{I.value=await b.testDriver(N.value,P.value)}catch(e){I.value={ok:!1,message:e instanceof Error?e.message:String(e)}}finally{Va.value=!1}}async function Ja(){Ha.value=!0,Ua.value=``;try{for(let e of Ga.value)if(e.required&&(P.value[e.key]===void 0||P.value[e.key]===``))throw Error(g(`dcwDetail.k8x1un1184`,{p0:e.label}));let e=F.kind===`linear`?{kind:`linear`,scale:Number(F.scale),offset:Number(F.offset)}:void 0;await b.createFromTemplate(`dcw-${La.value}`,{name:Ra.value.trim()||void 0,driver:N.value,driverConfig:{...P.value},transform:e,holdIntervalMs:za.value,lineId:x.value,semantics:Ba.value.trim()||void 0}),j.value=!1,Ra.value=``,Ba.value=``}catch(e){Ua.value=e instanceof Error?e.message:String(e)}finally{Ha.value=!1}}let Ya=p(!1),Xa=p(!1),L=p(``),R=p(``);function Za(){Ya.value=!0,L.value=``,R.value=``}let z=u({name:``,ch:``,code:``,unit:``,min:``,max:``,decimals:1,icon:`gateway`,semantics:``}),Qa=[{key:`thermo`,label:g(`dcwDetail.k422b8126`)},{key:`pressure`,label:g(`dcwDetail.k3x6ff127`)},{key:`tension`,label:g(`dcwDetail.k3z9xc128`)},{key:`encoder`,label:g(`dcwDetail.kjb3vhs129`)},{key:`camera`,label:g(`dcwDetail.k47atw130`)},{key:`gateway`,label:g(`dcwDetail.k48c07131`)}];async function $a(){Xa.value=!0,L.value=``,R.value=``;try{if(!z.name.trim())throw Error(g(`dcwDetail.k6ugbw2132`));if(z.unit.trim()===``)throw Error(g(`dcwDetail.kx3pg59133`));if(z.min===``||z.max===``)throw Error(g(`dcwDetail.k13awowo134`));let e=await b.createTemplate({name:z.name.trim(),ch:z.ch.trim()||z.name.trim(),code:z.code.trim()||`CUSTOM`,unit:z.unit.trim(),min:Number(z.min),max:Number(z.max),decimals:Number(z.decimals)||0,icon:z.icon,semantics:z.semantics.trim()||void 0});La.value=e.key,R.value=g(`dcwDetail.ky4e1tr185`,{p0:e.name}),z.name=``,z.ch=``,z.code=``,z.unit=``,z.min=``,z.max=``,z.semantics=``}catch(e){L.value=e instanceof Error?e.message:String(e)}finally{Xa.value=!1}}let B=p(``),V=p(``),H=p(!1),U=p(``),W=p(``),eo=l(()=>Ta.value.filter(e=>e.productId===B.value));async function to(){H.value=!0,U.value=``,W.value=``;try{if(!V.value)throw Error(g(`dcwDetail.k1b6qe0r135`));await b.startLine(x.value,V.value),U.value=g(`dcwDetail.k17jteb9186`,{p0:C.value.productName,p1:C.value.recipeName,p2:C.value.runId})}catch(e){W.value=e instanceof Error?e.message:String(e)}finally{H.value=!1}}async function no(){H.value=!0,U.value=``,W.value=``;try{let e=`${C.value.productName??``} · ${C.value.recipeName??``}`;await b.stopLine(x.value),U.value=g(`dcwDetail.kzl49pd187`,{p0:e})}catch(e){W.value=e instanceof Error?e.message:String(e)}finally{H.value=!1}}let ro=p(!1),io=p(!1),ao=p(``),G=u({name:``,description:``}),K=p(``);async function oo(){io.value=!0,ao.value=``;try{let e=await b.createProduct({name:G.name.trim(),description:G.description.trim(),lineId:x.value});B.value=e.id,K.value=e.id,ro.value=!1,G.name=``,G.description=``}catch(e){ao.value=e instanceof Error?e.message:String(e)}finally{io.value=!1}}let so=l(()=>K.value?Ta.value.filter(e=>e.productId===K.value):Ta.value),co=e=>b.products.find(t=>t.id===e)?.name??e,q=u({productId:``,recipeId:``,paramKey:``,nodeId:``,lastMin:30,bucketMs:0}),lo=p(null),uo=p(!1),fo=p(``);async function po(){uo.value=!0,fo.value=``,lo.value=null;try{lo.value=await b.queryLine({lineId:x.value,productId:q.productId||void 0,recipeId:q.recipeId||void 0,paramKey:q.paramKey||void 0,nodeId:q.nodeId||void 0,fromMs:Date.now()-q.lastMin*6e4,toMs:Date.now(),bucketMs:q.bucketMs>0?q.bucketMs:void 0,limit:2e3}),lo.value.channels.length===0&&(fo.value=g(`dcwDetail.kszv5sq136`))}catch(e){fo.value=e instanceof Error?e.message:String(e)}finally{uo.value=!1}}let mo=l(()=>b.templates.map(e=>e.key)),J=p(!1),ho=p(null),go=p(!1),Y=p(``),X=u({productId:``,name:``,description:``,params:[],daqWindows:[]}),Z=p(null),Q=p(null),$=p(!1);function _o(){ho.value=null,Y.value=``,X.productId=K.value||B.value||O.value[0]?.id||``,X.name=``,X.description=``,X.params=[{nodeId:D.value[0]?.id??``,value:``,min:``,max:``}],X.daqWindows=[],J.value=!0}function vo(e){let t=b.recipes.find(t=>t.id===e);t&&(ho.value=e,Y.value=``,X.productId=t.productId,X.name=t.name,X.description=t.description,X.params=t.params.map(e=>({nodeId:e.nodeId,value:e.value,min:e.min??``,max:e.max??``})),X.daqWindows=(t.daqWindows??[]).map(e=>({nodeId:e.nodeId,min:e.min??``,max:e.max??``})),J.value=!0)}async function yo(){go.value=!0,Y.value=``;try{let e={productId:X.productId,name:X.name.trim(),description:X.description.trim(),params:X.params.filter(e=>e.nodeId&&e.value!==``&&Number.isFinite(Number(e.value))).map(e=>({nodeId:e.nodeId,value:Number(e.value),...e.min!==``&&Number.isFinite(Number(e.min))?{min:Number(e.min)}:{},...e.max!==``&&Number.isFinite(Number(e.max))?{max:Number(e.max)}:{}})),daqWindows:X.daqWindows.filter(e=>e.nodeId&&(e.min!==``||e.max!==``)).map(e=>({nodeId:e.nodeId,...e.min!==``&&Number.isFinite(Number(e.min))?{min:Number(e.min)}:{},...e.max!==``&&Number.isFinite(Number(e.max))?{max:Number(e.max)}:{}}))};ho.value?await b.updateRecipe(ho.value,e):await b.createRecipe(e),J.value=!1}catch(e){Y.value=e instanceof Error?e.message:String(e)}finally{go.value=!1}}async function bo(e){Z.value=null,A.value=``;try{let t=await b.applyRecipe(e),n=t.results.filter(e=>e.ok).length;Z.value={runId:t.id,ok:n,total:t.results.length},n<t.results.length&&(A.value=g(`dcwDetail.ks7szkt188`,{p0:t.results.filter(e=>!e.ok).map(e=>e.message).join(`;`)}))}catch(e){A.value=e instanceof Error?e.message:String(e)}}async function xo(e){$.value=!0;try{let t=await b.runData(e);Q.value={runId:e,data:t}}catch(e){A.value=e instanceof Error?e.message:String(e)}finally{$.value=!1}}function So(e){let t=e?.value??e?.avg;return t==null?`--`:String(Math.round(t*1e3)/1e3)}return(e,t)=>{let l=ae,u=se;return a(b).loaded&&!S.value?(r(),d(`div`,fe,[m(`p`,pe,o(e.$t(`dcwDetail.k19337yp018`)),1),ne(l,{class:`pill-btn`,to:`/dcw`},{default:te(()=>[c(o(e.$t(`dcwDetail.kllwu1c019`)),1)]),_:1})])):(r(),d(`div`,me,[m(`div`,he,[m(`div`,null,[m(`p`,ge,[m(`span`,{class:`line-chip`,style:ee({background:S.value?.color??`#3aa0ff`})},null,4),c(`AGENTWORKSHOP / LINE / `+o(S.value?.name??x.value),1)]),m(`h1`,null,o(S.value?.name??e.$t(`dcwDetail.k1b2snna151`))+` · `+o(e.$t(`dcwDetail.k1l0iow1137`)),1),m(`p`,_e,o(S.value?.description||e.$t(`dcwDetail.kzcbfki152`)),1)]),m(`div`,ve,[m(`span`,ye,o(e.$t(`dcwDetail.k45uio082`))+` `+o(D.value.length),1),m(`span`,be,o(e.$t(`dcwDetail.k3waz1025`))+` `+o(O.value.length),1),m(`span`,xe,o(e.$t(`dcwDetail.k48grv027`))+` `+o(Ta.value.length),1)])]),m(`section`,Se,[m(`div`,Ce,[m(`button`,{class:i([`aw-pill`,{running:a(b).controller.running}]),title:e.$t(`dcwDetail.k1snap154`),onClick:t[0]||=e=>a(b).startStop(a(b).controller.running?`pause`:`resume`)},[m(`span`,{class:i(a(b).controller.running?`i-tabler-player-pause`:`i-tabler-player-play`)},null,2),c(` `+o(a(b).controller.running?e.$t(`dcwDetail.kplrsg153`):e.$t(`dcwDetail.knxgni9169`)),1)],10,we)]),m(`div`,Te,[m(`span`,Ee,[m(`span`,null,o(e.$t(`dcwDetail.k45uio082`))+` `+o(a(b).controller.nodesOnline)+`/`+o(a(b).controller.nodesTotal),1),t[52]||=m(`span`,{class:`sep`},`·`,-1),m(`span`,{title:e.$t(`dcwDetail.kd3ygmn001`)},o(e.$t(`dcwDetail.k3wtib138`))+` `+o(a(b).controller.writesTotal),9,De),t[53]||=m(`span`,{class:`sep`},`·`,-1),m(`span`,{class:i({warn:a(b).controller.writesFailed>0}),title:e.$t(`dcwDetail.kd3znl0002`)},o(e.$t(`dcwDetail.k3yit7139`))+` `+o(a(b).controller.writesFailed),11,Oe)]),m(`button`,{class:`aw-pill outline`,title:e.$t(`dcwDetail.kc4ixly003`),onClick:Za},[t[54]||=m(`span`,{class:`i-tabler-template`},null,-1),c(` `+o(e.$t(`dcwDetail.k1972dx9020`)),1)],8,ke),m(`button`,{class:`aw-pill add-btn`,onClick:t[1]||=e=>j.value=!0},[t[55]||=m(`span`,{class:`i-tabler-plus`},null,-1),c(` `+o(e.$t(`dcwDetail.k1976uns021`)),1)])])]),A.value||Na.value?(r(),d(`p`,{key:0,class:i([`banner`,A.value?`bad`:`good`])},o(A.value||Na.value),3)):f(``,!0),Oa.value.length||ka.value.length?(r(),d(`section`,Ae,[m(`b`,je,o(e.$t(`dcwDetail.kaebkky022`)),1),m(`div`,Me,[(r(!0),d(s,null,n(Oa.value,t=>(r(),d(`span`,{key:t.id,class:`adopt-chip`},[c(o(t.name)+` `,1),m(`button`,{class:`mini-btn`,onClick:e=>Aa(t.id)},o(e.$t(`dcwDetail.kyjp9fg023`)),9,Ne)]))),128)),(r(!0),d(s,null,n(ka.value,t=>(r(),d(`span`,{key:t.id,class:`adopt-chip`},[c(o(t.name)+`(`+o(e.$t(`dcwDetail.k3km252140`)),1),m(`button`,{class:`mini-btn`,onClick:e=>ja(t.id)},o(e.$t(`dcwDetail.kyjp9fg023`)),9,Pe)]))),128))])])):f(``,!0),m(`section`,Fe,[m(`div`,Ie,[m(`span`,{class:i([`line-dot`,{on:C.value.active}])},null,2),m(`div`,Le,[m(`b`,null,o(C.value.active?e.$t(`dcwDetail.k1pxrhx0154`):e.$t(`dcwDetail.k1b2hxmx170`)),1),C.value.active?(r(),d(`small`,Re,o(C.value.productName)+` · `+o(C.value.recipeName)+` · `+o(e.$t(`dcwDetail.k400lb075`))+` `+o(C.value.runId)+` · `+o(e.$t(`dcwDetail.k3zkt2166`))+` `+o(C.value.startedAt?.slice(11,19))+` `+o(e.$t(`dcwDetail.k69vag8168`))+` `+o(C.value.taggedSamples)+` `+o(e.$t(`dcwDetail.k4118o085`)),1)):(r(),d(`small`,ze,o(e.$t(`dcwDetail.k19pof14024`)),1))])]),m(`div`,Be,[m(`label`,Ve,[m(`span`,null,o(e.$t(`dcwDetail.k3waz1025`)),1),h(m(`select`,{"onUpdate:modelValue":t[2]||=e=>B.value=e,class:`inp`,onChange:t[3]||=e=>V.value=``},[m(`option`,He,o(e.$t(`dcwDetail.kuisodh026`)),1),(r(!0),d(s,null,n(O.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,Ue))),128))],544),[[v,B.value]])]),m(`label`,We,[m(`span`,null,o(e.$t(`dcwDetail.k48grv027`)),1),h(m(`select`,{"onUpdate:modelValue":t[4]||=e=>V.value=e,class:`inp`,disabled:!B.value},[m(`option`,Ke,o(e.$t(`dcwDetail.kutxzsz028`)),1),(r(!0),d(s,null,n(eo.value,t=>(r(),d(`option`,{key:t.id,value:t.id,disabled:t.params.length===0},o(t.name)+o(t.params.length===0?e.$t(`dcwDetail.k1hicmch155`):e.$t(`dcwDetail.k1lzfi4g180`,{p0:t.params.length})),9,qe))),128))],8,Ge),[[v,V.value]])]),C.value.active?(r(),d(`button`,{key:1,class:`pill-btn stop`,disabled:H.value,onClick:no},o(e.$t(`dcwDetail.k1xyhd2y030`)),9,Ye)):(r(),d(`button`,{key:0,class:`pill-btn`,disabled:H.value||!V.value,title:V.value?`下发配方参数并开始打标数据采集`:`开跑前必须先设定配方`,onClick:to},o(e.$t(`dcwDetail.kfb8vml029`)),9,Je))]),W.value?(r(),d(`p`,Xe,o(W.value),1)):f(``,!0),U.value?(r(),d(`p`,Ze,o(U.value),1)):f(``,!0)]),Ya.value?(r(),d(`div`,{key:2,class:`modal-mask`,onClick:t[15]||=_(e=>Ya.value=!1,[`self`])},[m(`div`,Qe,[m(`h3`,$e,[c(o(e.$t(`dcwDetail.k1x4vam0031`))+` `,1),m(`small`,et,o(e.$t(`dcwDetail.k3x23c141`))+` `+o(a(b).templates.filter(e=>e.builtin).length)+` · `+o(e.$t(`dcwDetail.k3t616a142`))+` `+o(a(b).templates.filter(e=>!e.builtin).length),1)]),m(`p`,tt,o(e.$t(`dcwDetail.ke1iyud032`)),1),m(`div`,nt,[(r(!0),d(s,null,n(a(b).templates,t=>(r(),d(`span`,{key:t.key,class:`tpl-chip`,title:`${t.code} · ${t.min}~${t.max} ${t.unit}${t.semantics?` · ${t.semantics}`:``}`},[c(o(t.name)+` `,1),m(`small`,it,o(t.min)+`~`+o(t.max)+o(t.unit),1),m(`em`,{class:i([`tpl-tag`,{builtin:t.builtin}])},o(t.builtin?e.$t(`dcwDetail.k3x23c141`):e.$t(`dcwDetail.k3t616a142`)),3)],8,rt))),128))]),m(`p`,at,o(e.$t(`dcwDetail.k169eb4s033`)),1),m(`div`,ot,[m(`label`,st,[m(`span`,null,[c(o(e.$t(`dcwDetail.k1f55q76034`)),1),t[56]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":t[5]||=e=>z.name=e,class:`inp`,placeholder:e.$t(`dcwDetail.k1tooi3o004`)},null,8,ct),[[y,z.name]])]),m(`label`,lt,[m(`span`,null,o(e.$t(`dcwDetail.k1bqk219035`)),1),h(m(`input`,{"onUpdate:modelValue":t[6]||=e=>z.ch=e,class:`inp`,placeholder:e.$t(`dcwDetail.k698qz0005`)},null,8,ut),[[y,z.ch]])]),m(`label`,dt,[m(`span`,null,o(e.$t(`dcwDetail.k1ayxrqb036`)),1),h(m(`input`,{"onUpdate:modelValue":t[7]||=e=>z.code=e,class:`inp`,placeholder:`如 MOTOR · I`},null,512),[[y,z.code]])]),m(`label`,ft,[m(`span`,null,[c(o(e.$t(`dcwDetail.k3x4ef037`)),1),t[57]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":t[8]||=e=>z.unit=e,class:`inp`,placeholder:`如 A`},null,512),[[y,z.unit]])]),m(`label`,pt,[m(`span`,null,[c(o(e.$t(`dcwDetail.k1l9jv5m038`)),1),t[58]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":t[9]||=e=>z.min=e,type:`number`,class:`inp`,placeholder:e.$t(`dcwDetail.kxz9174006`)},null,8,mt),[[y,z.min,void 0,{number:!0}]])]),m(`label`,ht,[m(`span`,null,[c(o(e.$t(`dcwDetail.k1l9jv4p039`)),1),t[59]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":t[10]||=e=>z.max=e,type:`number`,class:`inp`,placeholder:e.$t(`dcwDetail.kxz9167007`)},null,8,gt),[[y,z.max,void 0,{number:!0}]])]),m(`label`,_t,[m(`span`,null,o(e.$t(`dcwDetail.k3mxmcx040`)),1),h(m(`input`,{"onUpdate:modelValue":t[11]||=e=>z.decimals=e,type:`number`,min:`0`,max:`4`,class:`inp`},null,512),[[y,z.decimals,void 0,{number:!0}]])]),m(`label`,vt,[m(`span`,null,o(e.$t(`dcwDetail.k3xx56041`)),1),h(m(`select`,{"onUpdate:modelValue":t[12]||=e=>z.icon=e,class:`inp`},[(r(),d(s,null,n(Qa,e=>m(`option`,{key:e.key,value:e.key},o(e.label),9,yt)),64))],512),[[v,z.icon]])])]),m(`label`,bt,[m(`span`,null,o(e.$t(`dcwDetail.knjmyfr042`)),1),h(m(`textarea`,{"onUpdate:modelValue":t[13]||=e=>z.semantics=e,class:`inp`,rows:`2`,placeholder:e.$t(`dcwDetail.k1qdnfzc008`)},null,8,xt),[[y,z.semantics]])]),R.value?(r(),d(`p`,St,o(R.value),1)):f(``,!0),L.value?(r(),d(`p`,Ct,o(L.value),1)):f(``,!0),m(`div`,wt,[m(`button`,{class:`aw-pill outline`,onClick:t[14]||=e=>Ya.value=!1},o(e.$t(`dcwDetail.k3x62t043`)),1),m(`button`,{class:`pill-btn`,disabled:Xa.value||!z.name.trim()||z.unit.trim()===``||z.min===``||z.max===``,onClick:$a},o(Xa.value?e.$t(`dcwDetail.k1bg4759156`):e.$t(`dcwDetail.k1bg9nga171`)),9,Tt)])])])):f(``,!0),j.value?(r(),d(`div`,{key:3,class:`modal-mask`,onClick:t[27]||=_(e=>j.value=!1,[`self`])},[m(`div`,Et,[m(`h3`,Dt,o(e.$t(`dcwDetail.k1976uns021`)),1),m(`div`,Ot,[m(`button`,{class:i([`seg`,{on:M.value===`mock`}]),onClick:t[16]||=e=>M.value=`mock`},` Mock 模拟 PLC `,2),m(`button`,{class:i([`seg`,{on:M.value===`real`}]),onClick:t[17]||=e=>M.value=`real`},o(e.$t(`dcwDetail.kyj8fen044`)),3)]),m(`div`,kt,[m(`label`,At,[m(`span`,null,o(e.$t(`dcwDetail.k1ejzwqp045`)),1),h(m(`select`,{"onUpdate:modelValue":t[18]||=e=>La.value=e,class:`inp`},[(r(!0),d(s,null,n(a(b).templates,t=>(r(),d(`option`,{key:t.key,value:t.key},o(t.name)+` · `+o(t.ch)+`(`+o(t.min)+`~`+o(t.max)+` `+o(t.unit)+`)`+o(t.builtin?``:e.$t(`dcwDetail.kr45rk9157`)),9,jt))),128))],512),[[v,La.value]])]),m(`label`,Mt,[m(`span`,null,o(e.$t(`dcwDetail.k1ce2k1y046`)),1),h(m(`input`,{"onUpdate:modelValue":t[19]||=e=>Ra.value=e,class:`inp`,placeholder:e.$t(`dcwDetail.kgpxzy3009`)},null,8,Nt),[[y,Ra.value]])]),m(`label`,Pt,[m(`span`,null,o(e.$t(`dcwDetail.k1vyb8im047`)),1),h(m(`input`,{"onUpdate:modelValue":t[20]||=e=>za.value=e,type:`number`,min:`0`,max:`3600000`,step:`500`,class:`inp`,placeholder:e.$t(`dcwDetail.kb1srz0010`)},null,8,Ft),[[y,za.value,void 0,{number:!0}]])])]),m(`div`,It,[m(`label`,Lt,[m(`span`,null,o(e.$t(`dcwDetail.kiune1f048`)),1),h(m(`select`,{"onUpdate:modelValue":t[21]||=e=>F.kind=e,class:`inp`},[m(`option`,Rt,o(e.$t(`dcwDetail.kkzy0k049`)),1),t[60]||=m(`option`,{value:`linear`},` 线性标定:PLC值 = (物理值 - offset) / scale `,-1)],512),[[v,F.kind]])]),m(`label`,zt,[t[61]||=m(`span`,null,`scale / offset`,-1),m(`div`,Bt,[h(m(`input`,{"onUpdate:modelValue":t[22]||=e=>F.scale=e,type:`number`,step:`0.1`,class:`inp`,disabled:F.kind!==`linear`,title:`decoder 斜率(≠0):物理值 = scale × PLC值 + offset;下发时自动取逆`},null,8,Vt),[[y,F.scale,void 0,{number:!0}]]),h(m(`input`,{"onUpdate:modelValue":t[23]||=e=>F.offset=e,type:`number`,step:`0.1`,class:`inp`,disabled:F.kind!==`linear`,title:`decoder 截距`},null,8,Ht),[[y,F.offset,void 0,{number:!0}]])])])]),M.value===`real`?(r(),d(s,{key:0},[m(`div`,Ut,[m(`label`,Wt,[m(`span`,null,o(e.$t(`dcwDetail.k1kt87rx050`)),1),h(m(`select`,{"onUpdate:modelValue":t[24]||=e=>N.value=e,class:`inp`},[(r(!0),d(s,null,n(a(ce).filter(e=>e.status!==`builtin`),e=>(r(),d(`option`,{key:e.kind,value:e.kind},o(e.label),9,Gt))),128))],512),[[v,N.value]])])]),Ga.value.length?(r(),d(`div`,Kt,[(r(!0),d(s,null,n(Ga.value,e=>(r(),d(`label`,{key:e.key,class:`f`},[m(`span`,null,[c(o(e.label),1),e.required?(r(),d(`em`,qt,`*`)):f(``,!0)]),e.type===`select`?h((r(),d(`select`,{key:0,"onUpdate:modelValue":t=>P.value[e.key]=t,class:`inp`},[(r(!0),d(s,null,n(e.options,e=>(r(),d(`option`,{key:e.value,value:e.value},o(e.label),9,Yt))),128))],8,Jt)),[[v,P.value[e.key]]]):h((r(),d(`input`,{key:1,"onUpdate:modelValue":t=>P.value[e.key]=t,type:e.type===`number`?`number`:`text`,placeholder:e.placeholder,class:`inp`},null,8,Xt)),[[re,P.value[e.key]]]),e.hint?(r(),d(`small`,Zt,o(e.hint),1)):f(``,!0)]))),128))])):f(``,!0),m(`div`,Qt,[m(`button`,{class:`pill-btn outline`,disabled:Va.value,onClick:qa},o(Va.value?e.$t(`dcwDetail.k1fsh720158`):e.$t(`dcwDetail.k1fstglk172`)),9,$t),I.value?(r(),d(`span`,{key:0,class:i([`test-result`,I.value.ok?`good`:`bad`])},o(I.value.ok?`✓`:`✗`)+` `+o(I.value.message),3)):f(``,!0)])],64)):f(``,!0),m(`label`,en,[m(`span`,null,o(e.$t(`dcwDetail.k1hgizn7051`)),1),h(m(`textarea`,{"onUpdate:modelValue":t[25]||=e=>Ba.value=e,class:`inp`,rows:`2`,placeholder:e.$t(`dcwDetail.k12bnyt9011`)},null,8,tn),[[y,Ba.value]])]),Ua.value?(r(),d(`p`,nn,o(Ua.value),1)):f(``,!0),m(`div`,rn,[m(`button`,{class:`aw-pill outline`,onClick:t[26]||=e=>j.value=!1},o(e.$t(`dcwDetail.k3xdnn052`)),1),m(`button`,{class:`aw-pill`,disabled:Ha.value,onClick:Ja},o(Ha.value?e.$t(`dcwDetail.k1bg4759156`):e.$t(`dcwDetail.k1bge46t173`)),9,an)])])])):f(``,!0),ne(u,{spinning:!a(b).loaded&&!a(b).error},{default:te(()=>[m(`section`,on,[m(`table`,sn,[m(`thead`,null,[m(`tr`,null,[m(`th`,null,o(e.$t(`dcwDetail.k1e2dtkt053`)),1),m(`th`,null,o(e.$t(`dcwDetail.k403cy054`)),1),m(`th`,null,o(e.$t(`dcwDetail.k42w8s055`)),1),m(`th`,null,o(e.$t(`dcwDetail.k1deqh0d056`)),1),m(`th`,null,o(e.$t(`dcwDetail.k1k79ec9057`)),1),m(`th`,null,o(e.$t(`dcwDetail.k1dexou6058`)),1),m(`th`,null,o(e.$t(`dcwDetail.k1b1nnaa059`)),1),m(`th`,null,o(e.$t(`dcwDetail.k1i8rtqt060`)),1),m(`th`,cn,o(e.$t(`dcwDetail.k40aa6061`)),1)])]),m(`tbody`,null,[(r(!0),d(s,null,n(D.value,n=>(r(),d(`tr`,{key:n.id,class:i({"node-paused":!n.enabled})},[m(`td`,null,[m(`span`,ln,o(n.id.slice(0,8)),1),m(`b`,null,o(n.name),1),m(`small`,un,o(va(n.templateRef)),1)]),m(`td`,null,[m(`button`,{class:i([`ctrl-toggle`,{on:n.enabled}]),disabled:Fa.value===n.id,title:n.enabled?`暂停该节点控制:下发将被拒绝`:`开启该节点控制:恢复可下发`,onClick:e=>Ia(n.id,!n.enabled)},[t[62]||=m(`span`,{class:`ct-dot`},null,-1),c(` `+o(n.enabled?e.$t(`dcwDetail.k3o3ib3159`):e.$t(`dcwDetail.k3n93ed062`)),1)],10,dn)]),m(`td`,null,[n.enabled?(r(),d(`span`,{key:1,class:i([`st-pill`,n.state])},o(_a[n.state]??n.state),3)):(r(),d(`span`,fn,o(e.$t(`dcwDetail.k3n93ed062`)),1))]),m(`td`,pn,[c(o(n.value==null?`--`:n.value.toFixed(n.decimals))+` `,1),m(`small`,null,o(n.unit),1),n.lastAckAt?(r(),d(`small`,mn,` · `+o(n.lastAckAt.slice(11,19)),1)):f(``,!0)]),m(`td`,null,[m(`div`,hn,[h(m(`input`,{"onUpdate:modelValue":e=>k[n.id]=e,type:`number`,class:`inp write-inp mono`,placeholder:`${n.min}~${n.max}`,min:n.min,max:n.max,step:10**-n.decimals,disabled:!n.enabled,title:n.enabled?``:`当前节点暂停:开启控制后方可设定`},null,8,gn),[[y,k[n.id],void 0,{number:!0}]]),m(`button`,{class:`mini-btn write-btn`,disabled:!n.enabled||Ma.value===n.id||k[n.id]==null||k[n.id]===``,title:n.enabled?`下发设定值`:`当前节点暂停:开启控制后方可设定`,onClick:e=>Pa(n.id,Number(k[n.id]))},o(Ma.value===n.id?e.$t(`dcwDetail.k3l3h80123`):e.$t(`dcwDetail.k3w6td174`)),9,_n)])]),m(`td`,vn,o(n.min)+` ~ `+o(n.max)+` `+o(n.unit),1),m(`td`,yn,o(n.holdIntervalMs==null?e.$t(`dcwDetail.k3zul4160`):`${n.holdIntervalMs}ms`),1),m(`td`,null,o(ga(n.deviceBindingId)),1),m(`td`,bn,[m(`button`,{class:`mini-btn danger`,onClick:e=>a(b).removeNode(n.id)},o(e.$t(`dcwDetail.k3xakp063`)),9,xn)])],2))),128)),a(b).loaded&&D.value.length===0?(r(),d(`tr`,Sn,[m(`td`,Cn,[m(`div`,wn,[m(`p`,Tn,o(e.$t(`dcwDetail.k1wtecyw064`)),1)])])])):f(``,!0)])])])]),_:1},8,[`spinning`]),m(`section`,En,[m(`div`,Dn,[m(`h3`,null,o(e.$t(`dcwDetail.k1j8w3hd065`)),1),m(`span`,On,o(O.value.length)+` `+o(e.$t(`dcwDetail.k1av3wgs143`))+` `+o(so.value.length)+` `+o(e.$t(`dcwDetail.k48grv027`)),1),m(`button`,{class:`pill-btn`,style:{"margin-left":`auto`},onClick:_o},o(e.$t(`dcwDetail.k1akm6dc066`)),1),m(`button`,{class:`mini-btn`,onClick:t[28]||=e=>ro.value=!0},o(e.$t(`dcwDetail.k1aka0ki067`)),1)]),m(`p`,kn,o(e.$t(`dcwDetail.k6bl2q8068`)),1),O.value.length?(r(),d(`div`,An,[m(`button`,{class:i([`prod-chip`,{on:K.value===``}]),onClick:t[29]||=e=>K.value=``},o(e.$t(`dcwDetail.k3x4t1069`)),3),(r(!0),d(s,null,n(O.value,t=>(r(),d(`button`,{key:t.id,class:i([`prod-chip`,{on:K.value===t.id}]),title:t.description,onClick:e=>K.value=t.id},[c(o(t.name)+` `,1),m(`span`,{class:`prod-del`,title:e.$t(`dcwDetail.k1bpfjgx012`),onClick:_(e=>a(b).removeProduct(t.id),[`stop`])},`×`,8,Mn)],10,jn))),128))])):(r(),d(`p`,Nn,o(e.$t(`dcwDetail.knov3zg070`)),1)),m(`div`,Pn,[(r(!0),d(s,null,n(so.value,t=>(r(),d(`div`,{key:t.id,class:`recipe-item`},[m(`div`,Fn,[m(`b`,null,o(t.name),1),m(`small`,In,o(co(t.productId)),1),m(`small`,Ln,o(t.id),1)]),t.description?(r(),d(`p`,Rn,o(t.description),1)):f(``,!0),m(`div`,zn,[(r(!0),d(s,null,n(t.params,(e,t)=>(r(),d(`span`,{key:t,class:`param-chip`},o(a(b).templates.find(t=>t.key===(e.templateRef??``).replace(`dcw-`,``))?.ch??e.templateRef)+` = `+o(e.value),1))),128)),(r(!0),d(s,null,n(t.daqWindows,(t,n)=>(r(),d(`span`,{key:`w-${n}`,class:`param-chip daqwin`,title:e.$t(`dcwDetail.k1l11api013`)},` ◎ `+o(wa(t.nodeId))+` ∈ [`+o(t.min??`-∞`)+`, `+o(t.max??`+∞`)+`] `,9,Bn))),128))]),m(`div`,Vn,[m(`button`,{class:`pill-btn`,onClick:e=>bo(t.id)},o(e.$t(`dcwDetail.k1497qvr071`)),9,Hn),m(`button`,{class:`mini-btn`,onClick:e=>vo(t.id)},o(e.$t(`dcwDetail.k45eb0072`)),9,Un),m(`button`,{class:`mini-btn danger`,onClick:e=>a(b).removeRecipe(t.id)},o(e.$t(`dcwDetail.k3xakp063`)),9,Wn)])]))),128)),so.value.length===0?(r(),d(`div`,Gn,o(e.$t(`dcwDetail.keko1xy073`)),1)):f(``,!0)]),Z.value?(r(),d(`div`,Kn,[c(o(e.$t(`dcwDetail.k1l3hrvp144`))+` `+o(Z.value.runId)+` `+o(e.$t(`dcwDetail.k1g3lh2v167`))+o(Z.value.ok)+`/`+o(Z.value.total)+` `+o(e.$t(`dcwDetail.k1bqci06149`))+` `,1),m(`button`,{class:`mini-btn`,style:{"margin-left":`10px`},disabled:$.value,onClick:t[30]||=e=>xo(Z.value.runId)},o($.value?e.$t(`dcwDetail.k1br0ij9161`):e.$t(`dcwDetail.kxwei5175`)),9,qn)])):f(``,!0),Ea.value.length?(r(),d(`div`,Jn,[m(`p`,Yn,o(e.$t(`dcwDetail.k1rjer8d074`)),1),m(`table`,Xn,[m(`thead`,null,[m(`tr`,null,[m(`th`,null,o(e.$t(`dcwDetail.k400lb075`)),1),m(`th`,null,o(e.$t(`dcwDetail.k48grv027`)),1),m(`th`,null,o(e.$t(`dcwDetail.k4497j076`)),1),m(`th`,null,o(e.$t(`dcwDetail.k1bqhtmu077`)),1),m(`th`,Zn,o(e.$t(`dcwDetail.k40aa6061`)),1)])]),m(`tbody`,null,[(r(!0),d(s,null,n([...Ea.value].reverse().slice(0,8),t=>(r(),d(`tr`,{key:t.id},[m(`td`,Qn,o(t.id),1),m(`td`,null,o(t.recipeName),1),m(`td`,$n,o(t.startedAt.slice(5,19))+` ~ `+o(t.endedAt?t.endedAt.slice(5,19):e.$t(`dcwDetail.k3vpfg9162`)),1),m(`td`,null,[m(`span`,{class:i([`st-pill`,t.results.every(e=>e.ok)?`ok`:`warn`])},o(t.results.filter(e=>e.ok).length)+`/`+o(t.results.length),3)]),m(`td`,er,[m(`button`,{class:`mini-btn`,disabled:$.value,onClick:e=>xo(t.id)},o(e.$t(`dcwDetail.k1dzwrdp078`)),9,tr),t.endedAt?f(``,!0):(r(),d(`button`,{key:0,class:`mini-btn`,onClick:e=>a(b).closeRun(t.id)},o(e.$t(`dcwDetail.k1blr7y7079`)),9,nr))])]))),128))])])])):f(``,!0),Q.value?(r(),d(`div`,{key:4,class:`modal-mask`,onClick:t[32]||=_(e=>Q.value=null,[`self`])},[m(`div`,rr,[m(`h3`,ir,o(e.$t(`dcwDetail.k11lq94k145`))+` `+o(Q.value.data.run.recipeName)+`(`+o(Q.value.runId)+`) `,1),m(`p`,ar,o(e.$t(`dcwDetail.k1me41w8080`)),1),m(`table`,or,[m(`thead`,null,[m(`tr`,null,[m(`th`,null,o(e.$t(`dcwDetail.k48hde081`)),1),m(`th`,null,o(e.$t(`dcwDetail.k45uio082`)),1),m(`th`,null,o(e.$t(`dcwDetail.k40t11083`)),1),m(`th`,null,o(e.$t(`dcwDetail.k3xuaw084`)),1),t[63]||=m(`th`,null,`min ~ max`,-1),m(`th`,null,o(e.$t(`dcwDetail.k4118o085`)),1)])]),m(`tbody`,null,[(r(!0),d(s,null,n(Q.value.data.daq,e=>(r(),d(`tr`,{key:e.nodeId},[m(`td`,null,[c(o(e.ch),1),m(`small`,sr,o(e.unit),1)]),m(`td`,null,o(e.nodeName),1),m(`td`,cr,o(e.latest),1),m(`td`,lr,o(e.avg),1),m(`td`,ur,o(e.min)+` ~ `+o(e.max),1),m(`td`,dr,o(e.cnt),1)]))),128)),Q.value.data.daq.length===0?(r(),d(`tr`,fr,[m(`td`,pr,o(e.$t(`dcwDetail.kd457ry086`)),1)])):f(``,!0)])]),m(`p`,mr,o(e.$t(`dcwDetail.k12b7cxs087`)),1),m(`table`,hr,[m(`thead`,null,[m(`tr`,null,[m(`th`,null,o(e.$t(`dcwDetail.k3xbjr088`)),1),m(`th`,null,o(e.$t(`dcwDetail.k45uio082`)),1),m(`th`,null,o(e.$t(`dcwDetail.k3ncbsh089`)),1),m(`th`,null,o(e.$t(`dcwDetail.k3lh3mz090`)),1),m(`th`,null,o(e.$t(`dcwDetail.k454pg091`)),1),m(`th`,null,o(e.$t(`dcwDetail.k40ieu092`)),1)])]),m(`tbody`,null,[(r(!0),d(s,null,n(Q.value.data.writes,(t,n)=>(r(),d(`tr`,{key:n},[m(`td`,null,o(t.param),1),m(`td`,null,o(t.nodeName),1),m(`td`,gr,o(t.eng),1),m(`td`,_r,o(t.raw),1),m(`td`,null,[m(`span`,{class:i([`st-pill`,t.ok?`ok`:`alarm`])},o(t.ok?`ACK`:e.$t(`dcwDetail.k3yit7139`)),3)]),m(`td`,vr,o(t.at.slice(5,19)),1)]))),128)),Q.value.data.writes.length===0?(r(),d(`tr`,yr,[m(`td`,br,o(e.$t(`dcwDetail.knzcp8i093`)),1)])):f(``,!0)])]),m(`div`,xr,[m(`button`,{class:`aw-pill outline`,onClick:t[31]||=e=>Q.value=null},o(e.$t(`dcwDetail.k3x62t043`)),1)])])])):f(``,!0)]),J.value?(r(),d(`div`,{key:4,class:`modal-mask`,onClick:t[39]||=_(e=>J.value=!1,[`self`])},[m(`div`,Sr,[m(`h3`,Cr,o(ho.value?e.$t(`dcwDetail.k1iiwk0i163`):e.$t(`dcwDetail.k1efq0r9176`)),1),m(`div`,wr,[m(`label`,Tr,[m(`span`,null,[c(o(e.$t(`dcwDetail.k1dw4fzf094`)),1),t[64]||=m(`em`,null,`*`,-1)]),h(m(`select`,{"onUpdate:modelValue":t[33]||=e=>X.productId=e,class:`inp`},[(r(!0),d(s,null,n(O.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,Er))),128))],512),[[v,X.productId]])]),m(`label`,Dr,[m(`span`,null,[c(o(e.$t(`dcwDetail.k1l3f8so095`)),1),t[65]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":t[34]||=e=>X.name=e,class:`inp`,placeholder:e.$t(`dcwDetail.k12c11vm014`)},null,8,Or),[[y,X.name]])]),m(`label`,kr,[m(`span`,null,o(e.$t(`dcwDetail.k40gkk096`)),1),h(m(`input`,{"onUpdate:modelValue":t[35]||=e=>X.description=e,class:`inp`,placeholder:e.$t(`dcwDetail.k1hxx8hy015`)},null,8,Ar),[[y,X.description]])])]),m(`p`,jr,o(e.$t(`dcwDetail.ka1kfgh097`)),1),(r(!0),d(s,null,n(X.params,(i,a)=>(r(),d(`div`,{key:a,class:`param-row`},[m(`label`,Mr,[m(`span`,null,o(e.$t(`dcwDetail.k1e2dtkt053`)),1),h(m(`select`,{"onUpdate:modelValue":e=>i.nodeId=e,class:`inp`},[(r(!0),d(s,null,n(D.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name)+`(`+o(va(e.templateRef))+` · `+o(e.min)+`~`+o(e.max)+` `+o(e.unit)+`) `,9,Pr))),128))],8,Nr),[[v,i.nodeId]])]),m(`label`,Fr,[m(`span`,null,[c(o(e.$t(`dcwDetail.k3renp2098`)),1),t[66]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":e=>i.value=e,type:`number`,class:`inp`,step:.1},null,8,Ir),[[y,i.value,void 0,{number:!0}]])]),m(`label`,Lr,[m(`span`,null,o(e.$t(`dcwDetail.k134rw3b146`))+o(ya(i.nodeId)??`-`)+`)`,1),h(m(`input`,{"onUpdate:modelValue":e=>i.min=e,type:`number`,class:`inp`,step:.1,placeholder:e.$t(`dcwDetail.k5vew9z016`)},null,8,Rr),[[y,i.min,void 0,{number:!0}]])]),m(`label`,zr,[m(`span`,null,o(e.$t(`dcwDetail.khrv911147`))+o(ba(i.nodeId)??`-`)+`)`,1),h(m(`input`,{"onUpdate:modelValue":e=>i.max=e,type:`number`,class:`inp`,step:.1,placeholder:e.$t(`dcwDetail.kzoh5pr017`)},null,8,Br),[[y,i.max,void 0,{number:!0}]])]),m(`button`,{class:`mini-btn danger param-del`,onClick:e=>X.params.splice(a,1)},o(e.$t(`dcwDetail.k44idg099`)),9,Vr)]))),128)),m(`button`,{class:`mini-btn`,onClick:t[36]||=e=>X.params.push({nodeId:D.value[0]?.id??``,value:``,min:``,max:``})},o(e.$t(`dcwDetail.k1broh7h100`)),1),m(`p`,Hr,o(e.$t(`dcwDetail.k1h5gues101`)),1),(r(!0),d(s,null,n(X.daqWindows,(t,i)=>(r(),d(`div`,{key:`dw-${i}`,class:`param-row`},[m(`label`,Ur,[m(`span`,null,o(e.$t(`dcwDetail.k1empnnb102`)),1),h(m(`select`,{"onUpdate:modelValue":e=>t.nodeId=e,class:`inp`},[(r(!0),d(s,null,n(w.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name)+`(`+o(e.min)+`~`+o(e.max)+` `+o(e.unit)+`) `,9,Gr))),128))],8,Wr),[[v,t.nodeId]])]),m(`label`,Kr,[m(`span`,null,o(e.$t(`dcwDetail.kqm08ap103`)),1),h(m(`input`,{"onUpdate:modelValue":e=>t.min=e,type:`number`,class:`inp`,step:.1},null,8,qr),[[y,t.min,void 0,{number:!0}]])]),m(`label`,Jr,[m(`span`,null,o(e.$t(`dcwDetail.kpypf8g104`)),1),h(m(`input`,{"onUpdate:modelValue":e=>t.max=e,type:`number`,class:`inp`,step:.1},null,8,Yr),[[y,t.max,void 0,{number:!0}]])]),m(`button`,{class:`mini-btn danger param-del`,onClick:e=>X.daqWindows.splice(i,1)},o(e.$t(`dcwDetail.k44idg099`)),9,Xr)]))),128)),m(`button`,{class:`mini-btn`,disabled:w.value.length===0,title:w.value.length===0?`本产线暂无数采节点`:``,onClick:t[37]||=e=>X.daqWindows.push({nodeId:w.value[0]?.id??``,min:``,max:``})},o(e.$t(`dcwDetail.kv1de1p105`)),9,Zr),Y.value?(r(),d(`p`,Qr,o(Y.value),1)):f(``,!0),m(`div`,$r,[m(`button`,{class:`aw-pill outline`,onClick:t[38]||=e=>J.value=!1},o(e.$t(`dcwDetail.k3xdnn052`)),1),m(`button`,{class:`pill-btn`,disabled:go.value,onClick:yo},o(go.value?e.$t(`dcwDetail.k1b38d59164`):e.$t(`dcwDetail.k1b3kwg0177`)),9,ei)])])])):f(``,!0),m(`section`,ti,[m(`p`,ni,o(e.$t(`dcwDetail.k1us3jse106`)),1),m(`div`,ri,[m(`label`,ii,[m(`span`,null,o(e.$t(`dcwDetail.k3waz1025`)),1),h(m(`select`,{"onUpdate:modelValue":t[40]||=e=>q.productId=e,class:`inp`,onChange:t[41]||=e=>q.recipeId=``},[m(`option`,ai,o(e.$t(`dcwDetail.k1bkl1jx107`)),1),(r(!0),d(s,null,n(O.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,oi))),128))],544),[[v,q.productId]])]),m(`label`,si,[m(`span`,null,o(e.$t(`dcwDetail.k48grv027`)),1),h(m(`select`,{"onUpdate:modelValue":t[42]||=e=>q.recipeId=e,class:`inp`,disabled:!q.productId},[m(`option`,li,o(e.$t(`dcwDetail.k1bkx7cr108`)),1),(r(!0),d(s,null,n(so.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,ui))),128))],8,ci),[[v,q.recipeId]])]),m(`label`,di,[m(`span`,null,o(e.$t(`dcwDetail.k1demcae109`)),1),h(m(`select`,{"onUpdate:modelValue":t[43]||=e=>q.paramKey=e,class:`inp`},[m(`option`,fi,o(e.$t(`dcwDetail.k1bkx7ya110`)),1),(r(!0),d(s,null,n(mo.value,e=>(r(),d(`option`,{key:e,value:e},o(e),9,pi))),128))],512),[[v,q.paramKey]])]),m(`label`,mi,[m(`span`,null,o(e.$t(`dcwDetail.k45uio082`)),1),h(m(`select`,{"onUpdate:modelValue":t[44]||=e=>q.nodeId=e,class:`inp`},[m(`option`,hi,o(e.$t(`dcwDetail.k1bkul3k111`)),1),(r(!0),d(s,null,n(w.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,gi))),128))],512),[[v,q.nodeId]])]),m(`label`,_i,[m(`span`,null,o(e.$t(`dcwDetail.kx2ojn0112`)),1),h(m(`input`,{"onUpdate:modelValue":t[45]||=e=>q.lastMin=e,type:`number`,min:`1`,max:`10080`,class:`inp`},null,512),[[y,q.lastMin,void 0,{number:!0}]])]),m(`label`,vi,[m(`span`,null,o(e.$t(`dcwDetail.kjvnvn4113`)),1),h(m(`input`,{"onUpdate:modelValue":t[46]||=e=>q.bucketMs=e,type:`number`,min:`0`,step:`100`,class:`inp`},null,512),[[y,q.bucketMs,void 0,{number:!0}]])]),m(`div`,yi,[m(`button`,{class:`pill-btn`,disabled:uo.value,onClick:po},o(uo.value?e.$t(`dcwDetail.k1eyx09r165`):e.$t(`dcwDetail.k416ek178`)),9,bi)])]),fo.value?(r(),d(`p`,xi,o(fo.value),1)):f(``,!0),lo.value?(r(),d(`div`,Si,[m(`table`,Ci,[m(`thead`,null,[m(`tr`,null,[m(`th`,null,o(e.$t(`dcwDetail.k48hde081`)),1),m(`th`,null,o(e.$t(`dcwDetail.k45uio082`)),1),m(`th`,null,o(e.$t(`dcwDetail.k42kcu114`)),1),m(`th`,null,o(e.$t(`dcwDetail.k49ujb115`)),1),m(`th`,null,o(e.$t(`dcwDetail.k40pvw116`)),1),m(`th`,null,o(e.$t(`dcwDetail.k3xho3117`)),1)])]),m(`tbody`,null,[(r(!0),d(s,null,n(lo.value.channels,e=>(r(),d(`tr`,{key:e.nodeId},[m(`td`,null,[c(o(e.ch),1),m(`small`,wi,o(e.unit),1)]),m(`td`,null,o(e.nodeName),1),m(`td`,Ti,o(e.points.length),1),m(`td`,Ei,o(So(e.points[0])),1),m(`td`,Di,o(So(e.points[e.points.length-1])),1),m(`td`,Oi,o(new Date(e.points[0]?.at??0).toLocaleTimeString())+` ~ `+o(new Date(e.points[e.points.length-1]?.at??0).toLocaleTimeString()),1)]))),128))])])])):f(``,!0)]),Da.value.length?(r(),d(`section`,ki,[m(`p`,Ai,o(e.$t(`dcwDetail.kw7ym9b148`))+` `+o(Da.value.length)+` `+o(e.$t(`dcwDetail.k40bfz150`)),1),m(`table`,ji,[m(`tbody`,null,[(r(!0),d(s,null,n(Da.value.slice(0,12),t=>(r(),d(`tr`,{key:t.id},[m(`td`,Mi,o(t.at.slice(5,19)),1),m(`td`,null,o(t.param),1),m(`td`,null,o(t.nodeName),1),m(`td`,Ni,o(t.eng),1),m(`td`,Pi,` raw `+o(t.raw??`-`),1),m(`td`,null,[m(`span`,{class:i([`st-pill`,t.ok?`ok`:`alarm`])},o(t.ok?`ACK`:e.$t(`dcwDetail.k3yit7139`)),3)]),m(`td`,Fi,o(t.recipeRunId?e.$t(`dcwDetail.k6vgks7181`,{p0:t.recipeRunId}):`手动`),1)]))),128))])])])):f(``,!0),ro.value?(r(),d(`div`,{key:6,class:`modal-mask`,onClick:t[50]||=_(e=>ro.value=!1,[`self`])},[m(`div`,Ii,[m(`h3`,Li,o(e.$t(`dcwDetail.k1efduyf118`)),1),m(`div`,Ri,[m(`label`,zi,[m(`span`,null,[c(o(e.$t(`dcwDetail.k1avjrl6119`)),1),t[67]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":t[47]||=e=>G.name=e,class:`inp`,placeholder:e.$t(`dcwDetail.k12c11vm014`)},null,8,Bi),[[y,G.name]])]),m(`label`,Vi,[m(`span`,null,o(e.$t(`dcwDetail.k40gkk096`)),1),h(m(`input`,{"onUpdate:modelValue":t[48]||=e=>G.description=e,class:`inp`,placeholder:e.$t(`dcwDetail.k1hxx8hy015`)},null,8,Hi),[[y,G.description]])])]),ao.value?(r(),d(`p`,Ui,o(ao.value),1)):f(``,!0),m(`div`,Wi,[m(`button`,{class:`aw-pill outline`,onClick:t[49]||=e=>ro.value=!1},o(e.$t(`dcwDetail.k3xdnn052`)),1),m(`button`,{class:`pill-btn`,disabled:io.value,onClick:oo},o(io.value?e.$t(`dcwDetail.k1bg4759156`):e.$t(`dcwDetail.k1bg4kn6179`)),9,Gi)])])])):f(``,!0),a(b).error?(r(),d(`p`,Ki,[c(o(a(b).error)+`(`,1),ne(l,{to:`/workshop`},{default:te(()=>[c(o(e.$t(`dcwDetail.k1bhhheq120`)),1)]),_:1}),t[68]||=c(`) `,-1)])):f(``,!0),m(`section`,qi,[m(`div`,Ji,[m(`b`,null,o(e.$t(`dcwDetail.k1ledgt001`)),1),h(m(`select`,{"onUpdate:modelValue":t[51]||=e=>T.value=e,class:`inp`,onChange:Sa},[m(`option`,Yi,o(e.$t(`dcwDetail.k1ledgs001`)),1),(r(!0),d(s,null,n(D.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,Xi))),128))],544),[[v,T.value]])]),E.value?(r(),d(s,{key:0},[m(`div`,Zi,[m(`div`,Qi,[m(`small`,null,o(e.$t(`dcwDetail.k1ledgv001`)),1),m(`b`,$i,o(E.value.current??`--`),1)]),m(`div`,ea,[m(`small`,null,o(e.$t(`dcwDetail.k1ledgv002`)),1),m(`b`,ta,o(E.value.recipeTarget??`--`),1)]),m(`div`,na,[m(`small`,null,o(e.$t(`dcwDetail.k1ledgv003`)),1),m(`b`,ra,o(E.value.lastGood??`--`),1)]),m(`button`,{class:`mini-btn`,onClick:Sa},o(e.$t(`dcwDetail.k1ledga001`)),1),m(`button`,{class:`mini-btn danger`,onClick:Ca},o(e.$t(`dcwDetail.k1ledga002`)),1)]),m(`div`,ia,[m(`div`,aa,[m(`small`,oa,o(e.$t(`dcwDetail.k1ledgh001`)),1),m(`ul`,sa,[(r(!0),d(s,null,n(E.value.journal,e=>(r(),d(`li`,{key:e.id},o(e.at.slice(5,16).replace(`T`,` `))+` [`+o(e.source)+`] `+o(e.prevValue??`?`)+` → `+o(e.newValue),1))),128))])]),m(`div`,ca,[m(`small`,la,o(e.$t(`dcwDetail.k1ledgr001`)),1),m(`ul`,ua,[(r(!0),d(s,null,n(E.value.records,e=>(r(),d(`li`,{key:e.id,class:`ledger-rec`},[m(`span`,{class:i([`rec-st`,e.status])},o(e.status),3),m(`span`,da,o(e.params[0]?.from??`?`)+` → `+o(e.params[0]?.to),1),m(`small`,null,o(e.judge?`${e.judge.verdict}(${e.judge.by})`:e.status===`open`?`open`:e.closedBy??``),1)]))),128))])])])],64)):f(``,!0)])]))}}}),[[`__scopeId`,`data-v-050cee18`]]);export{fa as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as e,F as t,G as n,H as r,Ht as i,St as a,Wt as o,a as s,b as c,et as l,f as u,ft as ee,g as d,h as f,mt as p,nt as m,p as h,rt as g,t as _,x as v,z as y}from"./BSCpFtzG.js";import{B as te,F as ne,I as b,L as x}from"./2LwEn9gX.js";import{a as re}from"./Bi6AiCuP.js";import{t as ie}from"./ubPfs9mQ.js";import{n as ae}from"./BeIfu4N3.js";import{t as oe}from"./BJvGPTpC.js";import{t as se}from"./CNs_Ozdc2.js";import{t as ce}from"./B0haAGoq.js";import{a as le,n as S,t as ue}from"./CwS_UHeH.js";import{t as de}from"./ClptO7LA.js";var fe={class:`page`},pe={class:`aw-kicker`},me={class:`aw-page-head`},he={key:0,class:`err`},ge={key:1,class:`grid`},_e={class:`col-live`},ve={class:`aw-tile value-card`},ye={class:`aw-kicker`},be={class:`big-val mono`},xe={class:`facts mono`},Se={class:`col-form aw-tile pad`},Ce={class:`sec`},we={class:`field`},Te={class:`field`},Ee={value:``},De=[`value`],Oe={class:`field`},ke=[`value`,`disabled`],Ae={class:`field row`},je=[`disabled`],Me={class:`field row`},Ne=[`disabled`],Pe=[`disabled`],Fe={class:`field row`},Ie=[`disabled`],Le={class:`field`},Re={class:`field`},ze={class:`field-row`},Be={class:`field`},Ve={class:`field`},He={class:`field`},Ue={class:`field`},We=[`disabled`],Ge={class:`sec mt`},Ke={class:`driver-grid`},qe={key:0},Je=[`onUpdate:modelValue`],Ye=[`value`],Xe=[`onUpdate:modelValue`,`type`,`placeholder`],Ze={class:`test-row`},Qe=[`disabled`],$e={class:`sec mt`},et={class:`bind-row`},tt={value:``},nt=[`value`],rt={class:`col-hist aw-tile pad`},it={class:`hist-hd`},at={class:`sec`},ot={class:`hist-ctl mono`},st=[`value`],ct={class:`raw-table mono`},lt={key:2,class:`aw-tile pad frames-tile`},ut={class:`hist-hd`},dt={class:`sec`},ft={class:`mono frames-n`},pt=[`viewBox`],mt=[`points`],ht={class:`raw-table mono`},gt={key:0,class:`gal`},_t=[`title`,`onClick`],vt=[`src`],yt={class:`mono`},bt={key:1,class:`frames-empty`},xt=[`src`],C=320,St=84,Ct=`#35e0a0`,wt=`rgba(120,135,160,0.18)`,w=`rgba(140,155,175,0.8)`,T=_(e({__name:`[id]`,setup(e){let{t:_}=ae();se({layout:`default`});let T=re(),E=u(()=>String(T.params.id??``)),D=ue(),O=ce();O.load();let k=de(),A=u(()=>D.nodeById(E.value)??null),j=u(()=>{let e=A.value?le(A.value.templateRef):``;return D.templates.find(t=>t.key===e)??null}),Tt={ok:_(`daqDetail.k41k5c026`),warn:_(`daqDetail.k49z8v027`),alarm:_(`daqDetail.k3xmid028`),offline:_(`daqDetail.k44c2n029`)},M=()=>{let e=A.value;return!e||!D.controller.running||!e.enabled?`offline`:e.state},N=null;y(()=>{N=D.ensureWsFeed(),D.load(),k.load(),F.value&&L()}),t(()=>N?.());let P=u(()=>j.value?.signalKind??`scalar`),F=u(()=>P.value!==`scalar`),I=u(()=>D.framesOf(E.value));async function L(){E.value&&await D.fetchFrames(E.value,{limit:24}).catch(()=>{})}l(E,()=>{F.value&&L()});let R=e=>new Date(e).toLocaleTimeString(`zh-CN`,{hour12:!1}),z=e=>Object.entries(e.metrics??{}).slice(0,3).map(([e,t])=>`${e}=${t}`).join(` `),Et=u(()=>I.value.find(e=>e.kind===`vector`&&e.points?.length)),Dt=u(()=>{let e=Et.value?.points??[];if(e.length<2)return``;let t=Math.min(...e),n=Math.max(...e)-t||1;return e.map((r,i)=>`${(i/(e.length-1)*C).toFixed(1)},${(78-(r-t)/n*72).toFixed(1)}`).join(` `)}),B=p(null);function Ot(e){return e==null?_(`daqDetail.k9vnp9h053`,{p0:D.controller.defaultPublishIntervalMs}):e===0?_(`daqDetail.k1m1zwux030`):`${e}ms`}let V=ee({enabled:!0,driver:`mock`,lineId:``,followGlobal:!0,intervalMs:1e3,calKind:`none`,calScale:1,calOffset:0,publishFollow:!0,publishEveryFrame:!1,publishMs:1e3,unit:``,decimals:1,min:0,max:100,warnLow:null,warnHigh:null});l(A,e=>{e&&(V.enabled=e.enabled,V.lineId=e.lineId??``,V.driver=e.driver,V.followGlobal=e.intervalMs==null,V.intervalMs=e.intervalMs??D.controller.defaultIntervalMs,V.publishFollow=e.publishIntervalMs==null,V.publishEveryFrame=e.publishIntervalMs===0,V.publishMs=e.publishIntervalMs==null?D.controller.defaultPublishIntervalMs:e.publishIntervalMs,V.unit=e.unit,V.decimals=e.decimals,V.min=e.min,V.max=e.max,V.warnLow=e.warnLow,V.warnHigh=e.warnHigh)},{immediate:!0});let H=p({}),U=u(()=>S.find(e=>e.kind===V.driver)?.configFields??[]);l(A,e=>{e&&(H.value={...e.driverConfig})},{immediate:!0}),l(()=>V.driver,()=>{if(U.value.length&&Object.keys(H.value).length===0){let e={};for(let t of U.value)t.default!==void 0&&(e[t.key]=t.default);H.value=e}},{immediate:!0});let W=p(!1),G=p(null);async function kt(){W.value=!0,G.value=null;try{await D.patchNode(E.value,{driver:V.driver,driverConfig:{...H.value}}),G.value=await D.testNode(E.value)}catch(e){G.value={ok:!1,message:e instanceof Error?e.message:String(e)}}finally{W.value=!1}}let K=p(!1);async function At(){let e=A.value;if(!(!e||K.value)){K.value=!0;try{await D.patchNode(e.id,{enabled:V.enabled,driver:V.driver,lineId:V.lineId,driverConfig:{...H.value},intervalMs:V.followGlobal?null:Math.max(120,Math.min(6e4,Math.round(V.intervalMs))),publishIntervalMs:V.publishFollow?null:V.publishEveryFrame?0:Math.max(0,Math.min(6e4,Math.round(V.publishMs))),unit:V.unit,decimals:Math.max(0,Math.min(6,Math.round(V.decimals))),min:V.min,max:V.max,warnLow:V.warnLow,warnHigh:V.warnHigh})}finally{K.value=!1}}}function jt(e){return D.meta.drivers.find(t=>t.kind===e)?.status===`planned`}let q=p(``),J=u(()=>{let e=A.value?.deviceBindingId;return e?k.twins.find(t=>t.id===e)?.name??`${e.slice(0,8)}…`:``});function Mt(){D.bindNode(E.value,A.value?.deviceBindingId?null:q.value||null)}let Nt=u(()=>k.twins.filter(e=>e.kind!==`daq`&&e.id!==A.value?.id)),Y=p([]),X=p(5e3),Pt=p(!1),Ft=[{label:_(`daqDetail.k3lha20031`),ms:0},{label:`1s 桶`,ms:1e3},{label:`5s 桶`,ms:5e3},{label:`30s 桶`,ms:3e4}];async function Z(){if(E.value){Pt.value=!0;try{let e=await D.samplesOf(E.value,{toMs:Date.now(),bucketMs:X.value||void 0,limit:400});Y.value=[...e].reverse()}finally{Pt.value=!1,Lt()}}}let It=p(null);function Lt(){let e=It.value;if(!e)return;let t=Math.min(window.devicePixelRatio||1,2),n=e.clientWidth,r=e.clientHeight;(e.width!==n*t||e.height!==r*t)&&(e.width=n*t,e.height=r*t);let i=e.getContext(`2d`);if(!i)return;i.setTransform(t,0,0,t,0,0),i.clearRect(0,0,n,r);for(let e=1;e<4;e++)i.strokeStyle=wt,i.beginPath(),i.moveTo(0,r/4*e),i.lineTo(n,r/4*e),i.stroke();let a=Y.value;if(a.length<2)return;let o=1/0,s=-1/0;for(let e of a){let t=e.value??e.avg??e.min??0;o=Math.min(o,t),s=Math.max(s,t)}let c=Math.max(s-o,1e-9);i.strokeStyle=w,i.font=`10px monospace`,i.fillStyle=w,i.fillText(s.toFixed(2),4,11),i.fillText(o.toFixed(2),4,r-4),i.strokeStyle=Ct,i.lineWidth=1.6,i.beginPath(),a.forEach((e,t)=>{let s=t/(a.length-1)*n,l=r-((e.value??e.avg??0)-o)/c*(r-16)-8;t===0?i.moveTo(s,l):i.lineTo(s,l)}),i.stroke()}let Q=p(null),$=null;function Rt(){let e=Q.value,t=A.value;if(!e||!t||t.hist.length<2)return;let n=Math.min(window.devicePixelRatio||1,2),r=e.clientWidth,i=e.clientHeight;(e.width!==r*n||e.height!==i*n)&&(e.width=r*n,e.height=i*n);let a=e.getContext(`2d`);if(!a)return;a.setTransform(n,0,0,n,0,0),a.clearRect(0,0,r,i);let o=Math.max(...t.hist),s=Math.min(...t.hist),c=Math.max(o-s,1e-9);a.strokeStyle=`rgba(65,200,244,0.9)`,a.lineWidth=1.5,a.beginPath(),t.hist.forEach((e,n)=>{let o=n/(t.hist.length-1)*r,l=i-(e-s)/c*(i-6)-3;n===0?a.moveTo(o,l):a.lineTo(o,l)}),a.stroke()}return y(()=>{Z(),$=oe(()=>{Rt()},800)}),t(()=>{$&&clearInterval($)}),l(X,()=>void Z()),(e,t)=>{let l=ie;return r(),d(`div`,fe,[h(`p`,pe,[v(l,{to:`/daq`,class:`back`},{default:m(()=>[c(o(e.$t(`daqDetail.k1emg364001`)),1)]),_:1}),c(` / NODE `+o(E.value.slice(0,8).toUpperCase()),1)]),h(`div`,me,[h(`h1`,null,o(A.value?.name??E.value),1),h(`span`,{class:i([`st-pill`,[M()]])},o(Tt[M()]),3)]),!A.value&&a(D).error?(r(),d(`p`,he,[c(o(a(D).error)+`(`,1),v(l,{to:`/workshop`},{default:m(()=>[c(o(e.$t(`daqDetail.k1bhhheq002`)),1)]),_:1}),t[20]||=c(`) `,-1)])):f(``,!0),A.value?(r(),d(`div`,ge,[h(`section`,_e,[h(`div`,ve,[h(`p`,ye,o(e.$t(`daqDetail.k1fx2vik032`))+` `+o(j.value?.ch??`-`),1),h(`div`,be,[c(o(A.value.value==null?`--`:A.value.value.toFixed(A.value.decimals)),1),h(`small`,null,o(A.value.unit),1)]),h(`canvas`,{ref_key:`liveCanvas`,ref:Q,class:`live-canvas`},null,512),h(`dl`,xe,[h(`div`,null,[h(`dt`,null,o(e.$t(`daqDetail.k4a0la003`)),1),h(`dd`,null,o(A.value.driver)+o(jt(A.value.driver)?e.$t(`daqDetail.kz8zr9v035`):``),1)]),h(`div`,null,[h(`dt`,null,o(e.$t(`daqDetail.k3xg3w004`)),1),h(`dd`,null,o(A.value.intervalMs??e.$t(`daqDetail.k9vnp9h053`,{p0:a(D).controller.defaultIntervalMs})),1)]),h(`div`,null,[h(`dt`,null,o(e.$t(`daqDetail.k3w6td005`)),1),h(`dd`,null,o(Ot(A.value.publishIntervalMs)),1)]),h(`div`,null,[h(`dt`,null,o(e.$t(`daqDetail.k3x5tpx006`)),1),h(`dd`,null,o(A.value.warnLow??`-∞`)+` ~ `+o(A.value.warnHigh??`+∞`),1)]),h(`div`,null,[h(`dt`,null,o(e.$t(`daqDetail.k1hjj0jf007`)),1),h(`dd`,null,o(A.value.min)+` ~ `+o(A.value.max),1)]),h(`div`,null,[h(`dt`,null,o(e.$t(`daqDetail.k1i8rtqt008`)),1),h(`dd`,null,o(J.value||e.$t(`daqDetail.k3own4q036`)),1)])])])]),h(`section`,Se,[h(`h3`,Ce,o(e.$t(`daqDetail.kd9d69j009`)),1),h(`form`,{class:`form-grid`,onSubmit:te(At,[`prevent`])},[h(`label`,we,[h(`span`,null,o(e.$t(`daqDetail.k1iw7tbf010`)),1),h(`button`,{type:`button`,class:i([`toggle`,{on:V.enabled}]),onClick:t[0]||=e=>V.enabled=!V.enabled},o(V.enabled?e.$t(`daqDetail.k3w3j8f037`):e.$t(`daqDetail.k3n5aaj045`)),3)]),h(`label`,Te,[h(`span`,null,o(e.$t(`daqDetail.k12k23od011`)),1),g(h(`select`,{"onUpdate:modelValue":t[1]||=e=>V.lineId=e,class:`input`},[h(`option`,Ee,o(e.$t(`daqDetail.k3ootr6012`)),1),(r(!0),d(s,null,n(a(O).lines,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,De))),128))],512),[[b,V.lineId]])]),h(`label`,Oe,[h(`span`,null,o(e.$t(`daqDetail.k1l6smxo013`)),1),g(h(`select`,{"onUpdate:modelValue":t[2]||=e=>V.driver=e,class:`input`},[(r(!0),d(s,null,n(a(S),t=>(r(),d(`option`,{key:t.kind,value:t.kind,disabled:t.status===`planned`},o(t.label)+o(t.status===`planned`?e.$t(`daqDetail.kz8zr9v035`):``),9,ke))),128))],512),[[b,V.driver]])]),h(`label`,Ae,[h(`button`,{type:`button`,class:i([`toggle slim`,{on:V.followGlobal}]),onClick:t[3]||=e=>V.followGlobal=!V.followGlobal},o(V.followGlobal?e.$t(`daqDetail.k1k2ueyq038`):e.$t(`daqDetail.k1cgi8fy046`)),3),g(h(`input`,{"onUpdate:modelValue":t[4]||=e=>V.intervalMs=e,type:`number`,min:`200`,max:`60000`,step:`100`,class:`input`,disabled:V.followGlobal},null,8,je),[[x,V.intervalMs,void 0,{number:!0}]]),t[21]||=h(`small`,null,`ms`,-1)]),h(`label`,Me,[h(`button`,{type:`button`,class:i([`toggle slim`,{on:V.calKind===`linear`}]),title:`采集标定 decoder:物理值 = scale × PLC采集值 + offset`,onClick:t[5]||=e=>V.calKind=V.calKind===`linear`?`none`:`linear`},o(V.calKind===`linear`?e.$t(`daqDetail.k1eru4r1039`):e.$t(`daqDetail.k3oktae047`)),3),g(h(`input`,{"onUpdate:modelValue":t[6]||=e=>V.calScale=e,type:`number`,step:`0.1`,class:`input`,disabled:V.calKind!==`linear`,title:`decode 斜率(≠0)`},null,8,Ne),[[x,V.calScale,void 0,{number:!0}]]),g(h(`input`,{"onUpdate:modelValue":t[7]||=e=>V.calOffset=e,type:`number`,step:`0.1`,class:`input`,disabled:V.calKind!==`linear`,title:`decode 截距`},null,8,Pe),[[x,V.calOffset,void 0,{number:!0}]]),t[22]||=h(`small`,null,`decoder`,-1)]),h(`label`,Fe,[h(`button`,{type:`button`,class:i([`toggle slim`,{on:V.publishFollow}]),onClick:t[8]||=e=>V.publishFollow=!V.publishFollow},o(V.publishFollow?e.$t(`daqDetail.k1k2t5o7040`):e.$t(`daqDetail.k1cggz5f048`)),3),h(`span`,{class:i([`toggle slim`,{on:V.publishEveryFrame}]),style:{cursor:`pointer`},onClick:t[9]||=e=>V.publishEveryFrame=!V.publishEveryFrame},o(V.publishEveryFrame?e.$t(`daqDetail.k41mvv041`):e.$t(`daqDetail.k3n42dj049`)),3),g(h(`input`,{"onUpdate:modelValue":t[10]||=e=>V.publishMs=e,type:`number`,min:`0`,max:`60000`,step:`100`,class:`input`,disabled:V.publishFollow||V.publishEveryFrame},null,8,Ie),[[x,V.publishMs,void 0,{number:!0}]]),t[23]||=h(`small`,null,`ms`,-1)]),h(`label`,Le,[h(`span`,null,o(e.$t(`daqDetail.k3x4ef014`)),1),g(h(`input`,{"onUpdate:modelValue":t[11]||=e=>V.unit=e,class:`input`},null,512),[[x,V.unit]])]),h(`label`,Re,[h(`span`,null,o(e.$t(`daqDetail.k3mxmcx015`)),1),g(h(`input`,{"onUpdate:modelValue":t[12]||=e=>V.decimals=e,type:`number`,min:`0`,max:`6`,class:`input`},null,512),[[x,V.decimals,void 0,{number:!0}]])]),h(`div`,ze,[h(`label`,Be,[h(`span`,null,o(e.$t(`daqDetail.k1l9jv5m016`)),1),g(h(`input`,{"onUpdate:modelValue":t[13]||=e=>V.min=e,type:`number`,step:`any`,class:`input`},null,512),[[x,V.min,void 0,{number:!0}]])]),h(`label`,Ve,[h(`span`,null,o(e.$t(`daqDetail.k1md63hm017`)),1),g(h(`input`,{"onUpdate:modelValue":t[14]||=e=>V.warnLow=e,type:`number`,step:`any`,class:`input`},null,512),[[x,V.warnLow,void 0,{number:!0}]])]),h(`label`,He,[h(`span`,null,o(e.$t(`daqDetail.k1md63gp018`)),1),g(h(`input`,{"onUpdate:modelValue":t[15]||=e=>V.warnHigh=e,type:`number`,step:`any`,class:`input`},null,512),[[x,V.warnHigh,void 0,{number:!0}]])]),h(`label`,Ue,[h(`span`,null,o(e.$t(`daqDetail.k1l9jv4p019`)),1),g(h(`input`,{"onUpdate:modelValue":t[16]||=e=>V.max=e,type:`number`,step:`any`,class:`input`},null,512),[[x,V.max,void 0,{number:!0}]])])]),h(`button`,{class:`aw-pill`,type:`submit`,disabled:K.value},o(K.value?e.$t(`daqDetail.k1as0g50042`):e.$t(`daqDetail.ksn9cgo050`)),9,We)],32),U.value.length?(r(),d(s,{key:0},[h(`h3`,Ge,o(e.$t(`daqDetail.k1p9gioa033`))+` `+o(a(S).find(e=>e.kind===V.driver)?.label),1),h(`div`,Ke,[(r(!0),d(s,null,n(U.value,e=>(r(),d(`label`,{key:e.key,class:`field`},[h(`span`,null,[c(o(e.label),1),e.required?(r(),d(`em`,qe,`*`)):f(``,!0)]),e.type===`select`?g((r(),d(`select`,{key:0,"onUpdate:modelValue":t=>H.value[e.key]=t,class:`input`},[(r(!0),d(s,null,n(e.options,e=>(r(),d(`option`,{key:e.value,value:e.value},o(e.label),9,Ye))),128))],8,Je)),[[b,H.value[e.key]]]):g((r(),d(`input`,{key:1,"onUpdate:modelValue":t=>H.value[e.key]=t,type:e.type===`number`?`number`:`text`,placeholder:e.placeholder,class:`input`},null,8,Xe)),[[ne,H.value[e.key]]])]))),128))]),h(`div`,Ze,[h(`button`,{class:`pill-btn`,disabled:W.value,onClick:kt},o(W.value?e.$t(`daqDetail.k1fsh720043`):e.$t(`daqDetail.k1fstglk051`)),9,Qe),G.value?(r(),d(`span`,{key:0,class:i([`test-out mono`,G.value.ok?`ok`:`bad`])},o(G.value.ok?`✓`:`✗`)+` `+o(G.value.message),3)):f(``,!0)])],64)):f(``,!0),h(`h3`,$e,o(e.$t(`daqDetail.k1ie6qju020`)),1),h(`div`,et,[g(h(`select`,{"onUpdate:modelValue":t[17]||=e=>q.value=e,class:`input grow`},[h(`option`,tt,o(e.$t(`daqDetail.kjobzu3021`)),1),(r(!0),d(s,null,n(Nt.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,nt))),128))],512),[[b,q.value]]),h(`button`,{class:`pill-btn`,onClick:Mt},o(J.value?e.$t(`daqDetail.k479eh044`):e.$t(`daqDetail.k452a8052`)),1)])]),h(`section`,rt,[h(`div`,it,[h(`h3`,at,o(e.$t(`daqDetail.k1i535i5034`))+o(a(D).meta.tsdb)+`) `,1),h(`div`,ot,[g(h(`select`,{"onUpdate:modelValue":t[18]||=e=>X.value=e,class:`input`},[(r(),d(s,null,n(Ft,e=>h(`option`,{key:e.ms,value:e.ms},o(e.label),9,st)),64))],512),[[b,X.value,void 0,{number:!0}]]),h(`button`,{class:`pill-btn`,onClick:Z},o(e.$t(`daqDetail.k3x1jg022`)),1)])]),h(`canvas`,{ref_key:`chartCanvas`,ref:It,class:`hist-canvas`},null,512),h(`table`,ct,[h(`thead`,null,[h(`tr`,null,[h(`th`,null,o(e.$t(`daqDetail.k40vsf023`)),1),h(`th`,null,o(e.$t(`daqDetail.k48v5024`)),1),h(`th`,null,o(e.$t(`daqDetail.k4bza025`)),1)])]),h(`tbody`,null,[(r(!0),d(s,null,n(Y.value.filter(e=>e.value!=null).slice(-12).reverse(),(e,t)=>(r(),d(`tr`,{key:t},[h(`td`,null,o(new Date(e.at).toLocaleTimeString(`zh-CN`,{hour12:!1})),1),h(`td`,null,o(e.value.toFixed(A.value?.decimals??2)),1),h(`td`,null,o(e.state),1)]))),128))])])])])):f(``,!0),F.value?(r(),d(`section`,lt,[h(`div`,ut,[h(`h3`,dt,[c(o(P.value===`image`?e.$t(`daqDetail.kfrm0001`):e.$t(`daqDetail.kfrm0002`))+` `,1),h(`span`,ft,o(I.value.length),1)]),h(`button`,{class:`pill-btn`,onClick:L},o(e.$t(`daqDetail.k3x1jg022`)),1)]),P.value===`vector`?(r(),d(s,{key:0},[(r(),d(`svg`,{class:`vec-svg`,viewBox:`0 0 ${C} ${St}`,preserveAspectRatio:`none`},[h(`polyline`,{points:Dt.value,fill:`none`,stroke:`var(--accent)`,"stroke-width":`1.5`},null,8,mt)],8,pt)),h(`table`,ht,[h(`thead`,null,[h(`tr`,null,[h(`th`,null,o(e.$t(`daqDetail.k40vsf023`)),1),h(`th`,null,o(e.$t(`daqDetail.kfrm0004`)),1),h(`th`,null,o(e.$t(`daqDetail.kfrm0005`)),1)])]),h(`tbody`,null,[(r(!0),d(s,null,n(I.value.filter(e=>e.kind===`vector`).slice(0,12),e=>(r(),d(`tr`,{key:e.at},[h(`td`,null,o(R(e.at)),1),h(`td`,null,o(e.points?.length??0),1),h(`td`,null,o(z(e)),1)]))),128))])])],64)):(r(),d(s,{key:1},[I.value.length?(r(),d(`div`,gt,[(r(!0),d(s,null,n(I.value,t=>(r(),d(`figure`,{key:t.at,class:`gal-item`,title:e.$t(`daqDetail.kfrm0006`),onClick:e=>B.value=t},[h(`img`,{src:t.thumbUrl,loading:`lazy`,alt:`daq frame`},null,8,vt),h(`figcaption`,yt,o(R(t.at))+` · `+o(z(t)),1)],8,_t))),128))])):(r(),d(`p`,bt,o(e.$t(`daqDetail.kfrm0003`)),1)),B.value?(r(),d(`div`,{key:2,class:`gal-full`,onClick:t[19]||=e=>B.value=null},[h(`img`,{src:B.value.contentUrl??B.value.thumbUrl,alt:`daq frame full`},null,8,xt)])):f(``,!0)],64))])):f(``,!0)])}}}),[[`__scopeId`,`data-v-aa4c2a31`]]);export{T as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.page[data-v-aa4c2a31]{padding:4px}.back[data-v-aa4c2a31]{color:var(--ink-faint);text-decoration:none}.back[data-v-aa4c2a31]:hover{color:var(--accent)}.aw-page-head h1[data-v-aa4c2a31]{letter-spacing:-.01em;margin:2px 0 4px;font-size:26px;font-weight:400}.mono[data-v-aa4c2a31]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.sec[data-v-aa4c2a31]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 10px;font-size:12px;font-weight:600}.mt[data-v-aa4c2a31]{margin-top:22px}.err[data-v-aa4c2a31]{color:var(--tone-danger-dot);margin-top:14px;font-size:13px}.grid[data-v-aa4c2a31]{grid-template-columns:minmax(260px,340px) minmax(320px,1fr) minmax(280px,380px);align-items:start;gap:14px;display:grid}@media (width<=1100px){.grid[data-v-aa4c2a31]{grid-template-columns:1fr}}.pad[data-v-aa4c2a31],.value-card[data-v-aa4c2a31]{padding:16px 18px}.big-val[data-v-aa4c2a31]{color:var(--accent);margin:8px 0 10px;font-size:40px;line-height:1.1}.big-val small[data-v-aa4c2a31]{color:var(--ink-faint);margin-left:8px;font-size:15px}.live-canvas[data-v-aa4c2a31]{border:1px solid var(--line);border-radius:var(--radius-chip);background:var(--paper-deep);width:100%;height:64px}.facts[data-v-aa4c2a31]{flex-direction:column;gap:4px;margin:14px 0 0;display:flex}.facts div[data-v-aa4c2a31]{justify-content:space-between;font-size:11.5px;display:flex}.facts dt[data-v-aa4c2a31]{color:var(--ink-faint)}.facts dd[data-v-aa4c2a31]{color:var(--ink);margin:0}.form-grid[data-v-aa4c2a31]{flex-direction:column;gap:10px;display:flex}.field[data-v-aa4c2a31]{color:var(--ink-faint);flex-direction:column;flex:1;gap:4px;font-size:12px;display:flex}.field.row[data-v-aa4c2a31]{flex-direction:row;align-items:center;gap:8px}.field.row small[data-v-aa4c2a31]{color:var(--ink-faint)}.field-row[data-v-aa4c2a31]{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.input[data-v-aa4c2a31]{width:100%;color:var(--ink);background:var(--paper-raised);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:6px 9px;font-size:12.5px}.input[data-v-aa4c2a31]:disabled{opacity:.45}.grow[data-v-aa4c2a31]{flex:auto}.toggle[data-v-aa4c2a31]{cursor:pointer;color:var(--tone-neutral-dot);background:var(--tone-neutral-bg);border-radius:var(--radius-chip);border:0;align-self:flex-start;padding:6px 12px;font-size:12px}.toggle.on[data-v-aa4c2a31]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.toggle.slim[data-v-aa4c2a31]{padding:6px 10px;font-size:11.5px}.bind-row[data-v-aa4c2a31]{gap:8px;display:flex}.driver-grid[data-v-aa4c2a31]{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.field em[data-v-aa4c2a31]{color:var(--tone-danger-dot);margin-left:2px;font-style:normal}.test-row[data-v-aa4c2a31]{align-items:center;gap:10px;margin-top:8px;display:flex}.pill-btn[data-v-aa4c2a31]{cursor:pointer;color:var(--paper-raised);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-pill);padding:7px 14px;font-size:12.5px}.pill-btn[data-v-aa4c2a31]:disabled{opacity:.5}.test-out[data-v-aa4c2a31]{font-size:11px}.test-out.ok[data-v-aa4c2a31]{color:var(--tone-success-dot)}.test-out.bad[data-v-aa4c2a31]{color:var(--tone-danger-dot)}.col-hist[data-v-aa4c2a31]{min-width:0}.hist-hd[data-v-aa4c2a31]{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.hist-ctl[data-v-aa4c2a31]{gap:6px;display:flex}.hist-canvas[data-v-aa4c2a31]{border:1px solid var(--line);border-radius:var(--radius-chip);background:var(--paper-deep);width:100%;height:130px}.raw-table[data-v-aa4c2a31]{border-collapse:collapse;width:100%;margin-top:10px;font-size:11px}.raw-table td[data-v-aa4c2a31],.raw-table th[data-v-aa4c2a31]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:4px 6px}.raw-table th[data-v-aa4c2a31]{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-fainter);font-weight:600}.st-pill[data-v-aa4c2a31]{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--radius-pill);padding:3px 11px;font-size:11px;display:inline-block}.st-pill.ok[data-v-aa4c2a31]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.warn[data-v-aa4c2a31]{color:var(--tone-warning-dot);background:var(--tone-warning-bg)}.st-pill.alarm[data-v-aa4c2a31]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.offline[data-v-aa4c2a31]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.frames-tile[data-v-aa4c2a31]{margin-top:14px}.frames-n[data-v-aa4c2a31]{color:var(--ink-faint);margin-left:8px}.vec-svg[data-v-aa4c2a31]{background:var(--tone-neutral-bg);border-radius:6px;width:100%;height:96px;margin-bottom:10px;display:block}.gal[data-v-aa4c2a31]{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.gal-item[data-v-aa4c2a31]{cursor:zoom-in;margin:0}.gal-item img[data-v-aa4c2a31]{aspect-ratio:4/3;-o-object-fit:cover;object-fit:cover;background:var(--tone-neutral-bg);border-radius:6px;width:100%;display:block}.gal-item figcaption[data-v-aa4c2a31]{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:11px;overflow:hidden}.frames-empty[data-v-aa4c2a31]{color:var(--ink-faint);margin:8px 0;font-size:13px}.gal-full[data-v-aa4c2a31]{z-index:60;cursor:zoom-out;background:#000000b8;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gal-full img[data-v-aa4c2a31]{border-radius:8px;max-width:92vw;max-height:92vh}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"
|
|
1
|
+
{"id":"a0ac51ef-51c0-4ff9-8484-7c90d8dd10ba","timestamp":1788400076932}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"a0ac51ef-51c0-4ff9-8484-7c90d8dd10ba","timestamp":1788400076932,"prerendered":[]}
|