agentworkshop 0.6.0 → 0.7.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/host-tools.json +17 -0
- package/.env.example +37 -0
- package/.output/.AgentWorkShop/prompts/host-tools.json +17 -0
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{Bc_mM2cU.js → BH0Z05CS.js} +1 -1
- package/.output/public/_nuxt/Bxgaym6j.js +1 -0
- package/.output/public/_nuxt/{DRlJ2-4p.js → By-LNp3k.js} +1 -1
- package/.output/public/_nuxt/{C2QSTAWf.js → Bz40vyZS.js} +1 -1
- package/.output/public/_nuxt/{CwS_UHeH.js → CS8R0_J3.js} +1 -1
- package/.output/public/_nuxt/{ClptO7LA.js → CUxV8Bw_.js} +1 -1
- package/.output/public/_nuxt/CXmkVXS5.js +1 -0
- package/.output/public/_nuxt/DC-QMEk1.js +2 -0
- package/.output/public/_nuxt/{C-Y5ydB6.js → Dgp2wK2U.js} +6 -6
- package/.output/public/_nuxt/{Ck6tznoQ.js → DjqcbFBE.js} +1 -1
- package/.output/public/_nuxt/{B0haAGoq.js → GP2wXyuY.js} +1 -1
- package/.output/public/_nuxt/TownView.Bt33bo1M.css +1 -0
- package/.output/public/_nuxt/{MhK4buEJ.js → XVB9_zwP.js} +1 -1
- package/.output/public/_nuxt/_id_.BeqSLvl_.css +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/90ae66f6-f649-4b44-8df9-bcd9e9a957a2.json +1 -0
- package/.output/public/_nuxt/{Bq_KKxCg.js → i_MKObHo.js} +1 -1
- package/.output/public/_nuxt/settings.DeRNNUcP.css +1 -0
- package/.output/public/_nuxt/{CclO6GyL.js → tpDMVY5w.js} +1 -1
- package/.output/public/_nuxt/{C0FogB-p.js → zwdqvGN_.js} +1 -1
- package/.output/server/chunks/_/nitro.mjs +2672 -2350
- package/.output/server/chunks/_/nitro.mjs.map +1 -1
- package/.output/server/chunks/build/{TownView-D9yCQe1T.mjs → TownView-BkHxMiwZ.mjs} +168 -159
- package/.output/server/chunks/build/{TownView-D9yCQe1T.mjs.map → TownView-BkHxMiwZ.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-xR3AChMO.mjs → _id_-Bna1_JuB.mjs} +5 -4
- package/.output/server/chunks/build/_id_-Bna1_JuB.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-CmKAEFHV.mjs → _id_-GnRJPykX.mjs} +161 -119
- package/.output/server/chunks/build/_id_-GnRJPykX.mjs.map +1 -0
- package/.output/server/chunks/build/{_wsId_-C45nVrl-.mjs → _wsId_-CzLDGT_V.mjs} +6 -5
- package/.output/server/chunks/build/{_wsId_-C45nVrl-.mjs.map → _wsId_-CzLDGT_V.mjs.map} +1 -1
- package/.output/server/chunks/build/agents-D4l1icvn.mjs +1 -0
- package/.output/server/chunks/build/agents-D4l1icvn.mjs.map +1 -1
- package/.output/server/chunks/build/channel-templates-DqjtC-R0.mjs +1 -0
- package/.output/server/chunks/build/channel-templates-DqjtC-R0.mjs.map +1 -1
- package/.output/server/chunks/build/{daq-Boz_dlAQ.mjs → daq-D_W59QOe.mjs} +6 -5
- package/.output/server/chunks/build/daq-D_W59QOe.mjs.map +1 -0
- package/.output/server/chunks/build/{dcw-wTRwBAUi.mjs → dcw-BTM5YU-B.mjs} +3 -2
- package/.output/server/chunks/build/dcw-BTM5YU-B.mjs.map +1 -0
- package/.output/server/chunks/build/default-Dt6xLdpd.mjs +1 -0
- package/.output/server/chunks/build/{logs-Cdi-eXlN.mjs → logs-CUQt1z7D.mjs} +4 -3
- package/.output/server/chunks/build/logs-CUQt1z7D.mjs.map +1 -0
- package/.output/server/chunks/build/monitor-yNoV98rf.mjs +1 -0
- package/.output/server/chunks/build/{pages-bWKy0ZsA.mjs → pages-DR2bzczM.mjs} +4 -3
- package/.output/server/chunks/build/pages-DR2bzczM.mjs.map +1 -0
- package/.output/server/chunks/build/plugins-B-ZNey0Z.mjs +1 -0
- package/.output/server/chunks/build/plugins-B-ZNey0Z.mjs.map +1 -1
- package/.output/server/chunks/build/{settings-C3T5hR2A.mjs → settings-Cr06lbRy.mjs} +26 -18
- package/.output/server/chunks/build/settings-Cr06lbRy.mjs.map +1 -0
- package/.output/server/chunks/build/teams-QR3BBF7A.mjs +1 -0
- package/.output/server/chunks/build/teams-QR3BBF7A.mjs.map +1 -1
- package/.output/server/chunks/build/tokens-DFvr_TLj.mjs +1 -0
- package/.output/server/chunks/build/tokens-DFvr_TLj.mjs.map +1 -1
- package/.output/server/chunks/build/{town-CKg6Qxba.mjs → town-BN4vQPb8.mjs} +6 -5
- package/.output/server/chunks/build/town-BN4vQPb8.mjs.map +1 -0
- package/.output/server/chunks/build/town-BUqRobze.mjs +1 -0
- package/.output/server/chunks/build/town-BUqRobze.mjs.map +1 -1
- package/.output/server/chunks/build/{useDaqStream-zHEptJQ_.mjs → useDaqStream-hwkhJHFU.mjs} +2 -2
- package/.output/server/chunks/build/{useDaqStream-zHEptJQ_.mjs.map → useDaqStream-hwkhJHFU.mjs.map} +1 -1
- package/.output/server/chunks/build/{useDcwStream-BkWDGaWp.mjs → useDcwStream-Bdew_yrr.mjs} +16 -1
- package/.output/server/chunks/build/useDcwStream-Bdew_yrr.mjs.map +1 -0
- package/.output/server/chunks/build/{useDeviceTwins-NhtXqSkU.mjs → useDeviceTwins-C6EBg9oN.mjs} +2 -2
- package/.output/server/chunks/build/{useDeviceTwins-NhtXqSkU.mjs.map → useDeviceTwins-C6EBg9oN.mjs.map} +1 -1
- package/.output/server/chunks/build/{useOpsLog-CU64VDg5.mjs → useOpsLog-DdCqKVVG.mjs} +2 -2
- package/.output/server/chunks/build/{useOpsLog-CU64VDg5.mjs.map → useOpsLog-DdCqKVVG.mjs.map} +1 -1
- package/.output/server/chunks/build/users-4FZ0yFUO.mjs +1 -0
- package/.output/server/chunks/build/users-4FZ0yFUO.mjs.map +1 -1
- package/.output/server/chunks/build/workshop-CLhwe5eo.mjs +1 -0
- package/.output/server/chunks/build/workshop-CLhwe5eo.mjs.map +1 -1
- package/.output/server/chunks/routes/api/health.get.mjs +1 -0
- package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/mcp/workshop.mjs +1 -0
- package/.output/server/chunks/routes/api/mcp/workshop.mjs.map +1 -1
- package/.output/server/chunks/routes/api/metrics.mjs +1 -0
- package/.output/server/chunks/routes/api/metrics.mjs.map +1 -1
- package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +1 -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 +1 -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 +1 -0
- package/.output/server/chunks/routes/api/plugins/manifest.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/config.get.mjs +1 -0
- package/.output/server/chunks/routes/api/system/config.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/system/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index.patch.mjs +1 -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 +1 -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 +1 -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 +1 -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 +1 -0
- 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 +1 -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 +1 -0
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.get.mjs +1 -0
- package/.output/server/chunks/routes/api/users/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.put.mjs +1 -0
- package/.output/server/chunks/routes/api/users/_id_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/users/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/users/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/login.post.mjs +1 -0
- package/.output/server/chunks/routes/api/users/login.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/logout.post.mjs +1 -0
- package/.output/server/chunks/routes/api/users/logout.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/me.get.mjs +1 -0
- package/.output/server/chunks/routes/api/users/me.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/register.post.mjs +1 -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 +1 -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 +1 -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 +1 -0
- package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/_...path_.mjs +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -0
- package/.output/server/chunks/routes/api/workshop/audit.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/caller.mjs +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -0
- package/.output/server/chunks/routes/api/workshop/channels.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs +1 -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 +1 -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 +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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/read.post.mjs +31 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -0
- package/.output/server/chunks/routes/api/workshop/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index2.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index3.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index4.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index6.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index7.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index7.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index8.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index8.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index8.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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/virtual/entry.mjs +287 -85
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/index.mjs +1 -0
- package/.output/server/package.json +1 -1
- package/README-zh.md +434 -430
- package/README.md +5 -1
- package/app/components/workshop/DeviceTwinPanel.vue +34 -0
- package/app/components/workshop/town/TownView.vue +5 -0
- package/app/composables/workshop/useDcwStream.ts +15 -1
- package/app/config/schema.ts +54 -0
- package/app/pages/dcw/[id].vue +57 -0
- package/app/pages/settings.vue +2 -1
- package/config.yml +58 -1
- package/i18n/dicts/_en.json +56 -2
- package/i18n/dicts/dcwDetail.json +9 -1
- package/i18n/dicts/deviceTwinPanel.json +2 -1
- package/i18n/dicts/settings.json +48 -1
- package/i18n/locales/en.ts +139 -38
- package/i18n/locales/zh-CN.ts +139 -38
- package/package.json +1 -1
- package/scripts/_dbg-agent-dcw-rw.ts +131 -0
- package/scripts/_dbg-config-smoke.ts +28 -0
- package/scripts/_dbg-dcw-read-rest.mjs +103 -0
- package/scripts/_dbg-dcw-read-toolface.ts +13 -0
- package/scripts/_dbg-dcw-read-ui.mjs +74 -0
- package/scripts/_dbg-plugin-tools-inject.ts +80 -0
- package/scripts/_dbg-plugin-ui-wizard.mjs +125 -0
- package/scripts/_dbg-plugin-verify-e2e.mjs +123 -0
- package/scripts/test-config-precedence.ts +124 -0
- package/scripts/test-dcw-read.ts +153 -0
- package/server/api/workshop/dcw/[id]/read.post.ts +18 -0
- package/server/api/workshop/ws.ts +6 -4
- package/server/data/daqs.json +78 -8
- package/server/data/dcw-rollback.json +221 -1
- package/server/data/dcw-runs.json +123 -54
- package/server/data/dcw-writes.json +312 -0
- package/server/data/dcws.json +646 -4
- package/server/data/line-runs.json +12 -1
- package/server/plugins/backup.ts +7 -5
- package/server/plugins/retention.ts +59 -57
- package/server/plugins/workshop.ts +5 -4
- package/server/services/workshop/agents/industrial-tools.ts +50 -1
- package/server/services/workshop/agents/omp-agent.ts +10 -8
- package/server/services/workshop/agents/tool-approvals.ts +175 -174
- package/server/services/workshop/daq/alarm-notify.ts +102 -100
- package/server/services/workshop/daq/bus/mqtt.adapter.ts +14 -15
- package/server/services/workshop/daq/daq-controller.ts +3 -3
- package/server/services/workshop/daq/storage/sqlite.adapter.ts +5 -4
- package/server/services/workshop/daq/storage/timescale.adapter.ts +5 -4
- package/server/services/workshop/db/retention.ts +49 -50
- package/server/services/workshop/dcw/dcw-controller.ts +56 -1
- package/server/services/workshop/dcw/dcw-node.ts +233 -200
- package/server/services/workshop/dcw/dcw-runtime.ts +46 -9
- package/server/services/workshop/dcw/drivers.ts +98 -0
- package/server/services/workshop/dcw/recipe-rollback-manager.ts +16 -15
- package/server/services/workshop/logger.ts +65 -58
- package/server/services/workshop/runtime/embedding-provider.ts +9 -5
- package/server/services/workshop/runtime/manager.ts +16 -7
- package/server/services/workshop/runtime/memory.ts +14 -7
- package/server/services/workshop/settings.ts +143 -0
- package/shared/config/engine.mjs +6 -2
- package/shared/config/schema.json +48 -1
- package/shared/dcw-protocol.ts +21 -0
- package/.output/public/_nuxt/BD9D9pl4.js +0 -1
- package/.output/public/_nuxt/BxD8Fg_Z.js +0 -2
- package/.output/public/_nuxt/CwcOEM8m.js +0 -1
- package/.output/public/_nuxt/TownView.CI2Wpzty.css +0 -1
- package/.output/public/_nuxt/_id_.Ci4u30cR.css +0 -1
- package/.output/public/_nuxt/builds/meta/a0ac51ef-51c0-4ff9-8484-7c90d8dd10ba.json +0 -1
- package/.output/public/_nuxt/settings.BG0K9_MG.css +0 -1
- package/.output/server/chunks/build/_id_-CmKAEFHV.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-xR3AChMO.mjs.map +0 -1
- package/.output/server/chunks/build/daq-Boz_dlAQ.mjs.map +0 -1
- package/.output/server/chunks/build/dcw-wTRwBAUi.mjs.map +0 -1
- package/.output/server/chunks/build/logs-Cdi-eXlN.mjs.map +0 -1
- package/.output/server/chunks/build/pages-bWKy0ZsA.mjs.map +0 -1
- package/.output/server/chunks/build/settings-C3T5hR2A.mjs.map +0 -1
- package/.output/server/chunks/build/town-CKg6Qxba.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwStream-BkWDGaWp.mjs.map +0 -1
|
@@ -514,6 +514,23 @@
|
|
|
514
514
|
]
|
|
515
515
|
}
|
|
516
516
|
},
|
|
517
|
+
{
|
|
518
|
+
"name": "dcw_read",
|
|
519
|
+
"label": "DCW Read",
|
|
520
|
+
"description": "读取绑定的数控节点的 PLC 当前值(读写集成的读半边)。返回 PLC 实时读数(经标定解码的物理量纲)与设定值对照;用于下发前取证、下发后复核设定是否生效。读取是被动观测,不影响控制状态,也不需要审批。",
|
|
521
|
+
"parameters": {
|
|
522
|
+
"type": "object",
|
|
523
|
+
"properties": {
|
|
524
|
+
"node_id": {
|
|
525
|
+
"type": "string",
|
|
526
|
+
"description": "数控节点 id(见 my_industrial_nodes)"
|
|
527
|
+
}
|
|
528
|
+
},
|
|
529
|
+
"required": [
|
|
530
|
+
"node_id"
|
|
531
|
+
]
|
|
532
|
+
}
|
|
533
|
+
},
|
|
517
534
|
{
|
|
518
535
|
"name": "daq_query",
|
|
519
536
|
"label": "DAQ Query",
|
package/.env.example
CHANGED
|
@@ -26,6 +26,43 @@
|
|
|
26
26
|
# AW_API_TIMEOUT=15000
|
|
27
27
|
# AW_SECURITY_APPROVAL_GATE=true
|
|
28
28
|
|
|
29
|
+
# —— 运行语义组(全部已配置化:config.yml 同名键为回退,历史 env 名兼容)——
|
|
30
|
+
# 记忆系统:
|
|
31
|
+
# AW_MEMORY_PRIMER_TOKENS=300 # memory.primer_tokens
|
|
32
|
+
# AW_MEMORY_INJECT_TOTAL=500 # memory.inject_total
|
|
33
|
+
# AW_MEMORY_MAINTENANCE_MS=21600000
|
|
34
|
+
# AW_MEMORY_EXPIRE_DAYS=180
|
|
35
|
+
# AW_MEMORY_EXPIRE_SESSION_DAYS=14
|
|
36
|
+
# AW_MEMORY_CAP=500
|
|
37
|
+
# AW_MEMORY_REFLECT_TRIGGER=8
|
|
38
|
+
# AW_MEMORY_EMBED_BASE_URL= # OpenAI 兼容 /embeddings 基址(空=纯 FTS 检索)
|
|
39
|
+
# AW_MEMORY_EMBED_MODEL=
|
|
40
|
+
# AW_MEMORY_EMBED_API_KEY=
|
|
41
|
+
# omp Agent Harness:
|
|
42
|
+
# AW_OMP_COMPACT_ENABLED=1 # =0 显式关闭自动压缩
|
|
43
|
+
# AW_OMP_COMPACT_THRESHOLD=0.7
|
|
44
|
+
# AW_OMP_COMPACT_MIN_INTERVAL_MS=300000
|
|
45
|
+
# AW_OMP_COMPACT_WAIT_MS=120000
|
|
46
|
+
# 数控写控(回退闭环):
|
|
47
|
+
# DCW_ROLLBACK_COOLDOWN_MS=300000
|
|
48
|
+
# DCW_ROLLBACK_MIN_WINDOW_MS=120000
|
|
49
|
+
# DCW_ROLLBACK_BASELINE_MS=600000
|
|
50
|
+
# DCW_ROLLBACK_STALE_MS=1800000
|
|
51
|
+
# 车间运行 / 备份 / 保留 / 日志 / HITL:
|
|
52
|
+
# WORKSHOP_IDLE_SWEEP_MS=30000
|
|
53
|
+
# WORKSHOP_IDLE_GRACE_MS=120000
|
|
54
|
+
# BACKUP_DISABLED=0 BACKUP_INTERVAL_HOURS=24 BACKUP_KEEP=7
|
|
55
|
+
# RETENTION_DISABLED=1 # 整体关闭保留清理(调试)
|
|
56
|
+
# AW_EVENTS_RETENTION_D=7
|
|
57
|
+
# AWSHOP_LOG_LEVEL=info # debug|info|warn|error
|
|
58
|
+
# HITL_TIMEOUT_MS=180000
|
|
59
|
+
# 数采(部分键历史名无 AW_ 前缀,已作为别名兼容):
|
|
60
|
+
# DAQ_MQTT_QOS=0 DAQ_MQTT_USERNAME= DAQ_MQTT_PASSWORD= DAQ_MQTT_CA_FILE=
|
|
61
|
+
# DAQ_MQTT_REJECT_UNAUTHORIZED=0
|
|
62
|
+
# DAQ_TS_RETENTION_H=168 DAQ_FRAME_RETENTION_H=720
|
|
63
|
+
# ALARM_WEBHOOK_URL= ALARM_ESCALATE_MINUTES=15
|
|
64
|
+
# DAQ_TSDB_URL / DAQ_OS_URL / DAQ_MQTT_URL # 整串 URL 覆盖(最高优先,由 config 连接参数拼装兜底)
|
|
65
|
+
|
|
29
66
|
# —— AW Home(全局安装/任意目录运行时的配置中枢;repo 检出内运行则用检出内配置)——
|
|
30
67
|
# AW_HOME=D:\aw-home # 重定向用户主目录中枢(默认 ~/.AgentWorkShop)
|
|
31
68
|
# AW_MODE=home # 强制 home 模式(启动器内部使用)
|
|
@@ -514,6 +514,23 @@
|
|
|
514
514
|
]
|
|
515
515
|
}
|
|
516
516
|
},
|
|
517
|
+
{
|
|
518
|
+
"name": "dcw_read",
|
|
519
|
+
"label": "DCW Read",
|
|
520
|
+
"description": "读取绑定的数控节点的 PLC 当前值(读写集成的读半边)。返回 PLC 实时读数(经标定解码的物理量纲)与设定值对照;用于下发前取证、下发后复核设定是否生效。读取是被动观测,不影响控制状态,也不需要审批。",
|
|
521
|
+
"parameters": {
|
|
522
|
+
"type": "object",
|
|
523
|
+
"properties": {
|
|
524
|
+
"node_id": {
|
|
525
|
+
"type": "string",
|
|
526
|
+
"description": "数控节点 id(见 my_industrial_nodes)"
|
|
527
|
+
}
|
|
528
|
+
},
|
|
529
|
+
"required": [
|
|
530
|
+
"node_id"
|
|
531
|
+
]
|
|
532
|
+
}
|
|
533
|
+
},
|
|
517
534
|
{
|
|
518
535
|
"name": "daq_query",
|
|
519
536
|
"label": "DAQ Query",
|
package/.output/nitro.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,G as t,H as n,Ht as r,St as i,Ut as a,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 m,p as h,rt as g,t as _,x as v}from"./BSCpFtzG.js";import{B as y,I as b,L as x,P as ee,k as S}from"./2LwEn9gX.js";import{t as te}from"./ubPfs9mQ.js";import{n as ne}from"./BeIfu4N3.js";import{r as C,t as re}from"./B0haAGoq.js";var ie={class:`page`},ae={class:`aw-page-head`},oe={class:`sub`},se={class:`badges mono`},ce=[`title`],le={class:`badge`},ue={key:0,class:`banner bad`},de={class:`fleet-filter`},fe={class:`aw-seg`},pe=[`placeholder`],me={class:`line-grid`},he={class:`lc-head`},ge={class:`lc-name`},_e=[`title`,`onClick`],ve=[`title`,`onClick`],ye={key:0,class:`lc-run mono`},be={class:`lc-stats mono`},xe={class:`lc-ctl`},Se=[`onUpdate:modelValue`,`disabled`,`title`],Ce={value:``},we=[`value`,`disabled`],Te=[`disabled`,`onClick`],Ee=[`disabled`,`onClick`],De={key:1,class:`banner`},Oe={key:2,class:`banner`},ke={class:`modal`},Ae={class:`m-title`},je={class:`f`},Me=[`placeholder`],Ne={class:`f`},Pe=[`placeholder`],Fe={class:`f`},Ie={class:`color-row`},Le=[`onClick`],Re={class:`dim`},ze={key:0,class:`m-err`},Be={class:`m-actions`},Ve=[`disabled`],He={class:`modal`},Ue={class:`m-title`},We={class:`f`},Ge=[`placeholder`],Ke={class:`f`},qe=[`placeholder`],Je={class:`f`},Ye={class:`color-row`},Xe=[`onClick`],Ze={class:`dim`},Qe={key:0,class:`m-err`},$e={class:`m-actions`},et=[`disabled`],tt={class:`modal`},nt={class:`m-title danger-title`},rt={class:`del-summary`},it={class:`del-purge`},at={key:0,class:`m-err`},ot={class:`m-actions`},st=[`disabled`],ct={class:`modal wide`},lt={class:`m-title`},ut={class:`dim mono`},dt={class:`dim tpl-hint`},ft={class:`tpl-list`},pt=[`title`],mt={class:`mono dim`},ht={key:0,class:`tpl-sem`},gt=[`onClick`],_t={class:`sec-label`},w={class:`tpl-form`},vt={class:`f`},yt=[`placeholder`],bt={class:`f`},xt=[`placeholder`],St={class:`f`},Ct={class:`f`},wt={class:`f`},Tt={class:`f`},Et={class:`f`},Dt={class:`f`},Ot=[`value`],kt={class:`f`},At=[`placeholder`],jt={key:0,class:`m-err`},Mt={class:`m-actions`},Nt=[`disabled`],Pt={key:3,class:`banner bad`},T=_(e({__name:`index`,setup(e){let{t:_}=ne(),T=re();T.load();let E=l(()=>T.lines.map(e=>({line:e,nodes:T.nodes.filter(t=>t.lineId===e.id).length,products:T.products.filter(t=>t.lineId===e.id).length,recipes:T.recipes.filter(t=>t.lineId===e.id).length}))),D=l(()=>T.nodes.filter(e=>!e.lineId).length+T.products.filter(e=>!e.lineId).length),O=p(`all`),k=p(``),A=l(()=>E.value.filter(e=>T.lineStateOf(e.line.id).active).length),j=l(()=>E.value.filter(e=>{let t=T.lineStateOf(e.line.id).active;if(O.value===`running`&&!t||O.value===`idle`&&t)return!1;let n=k.value.trim().toLowerCase();return!(n&&!e.line.name.toLowerCase().includes(n)&&!(e.line.description??``).toLowerCase().includes(n))})),M=p(!1),N=p(!1),P=p(``),F=u({name:``,description:``,color:``}),I=l(()=>C[T.lines.length%C.length]??`#3aa0ff`);function Ft(){F.name=``,F.description=``,F.color=``,P.value=``,M.value=!0}async function It(){N.value=!0,P.value=``;try{await T.createLine({name:F.name.trim(),description:F.description.trim(),color:F.color||void 0}),M.value=!1}catch(e){P.value=e instanceof Error?e.message:String(e)}finally{N.value=!1}}let L=p(``),R=p(``),z=u({});async function Lt(e){L.value=e.line.id,R.value=``;try{let t=z[e.line.id]??``;if(!t)throw Error(_(`dcw.k188cswn039`));await T.startLine(e.line.id,t)}catch(e){R.value=e instanceof Error?e.message:String(e)}finally{L.value=``}}async function Rt(e){L.value=e.line.id,R.value=``;try{await T.stopLine(e.line.id)}catch(e){R.value=e instanceof Error?e.message:String(e)}finally{L.value=``}}function B(e){return T.recipes.filter(t=>t.lineId===e)}let V=p(!1),H=p(!1),U=p(``),W=p(!0),G=p(null);function zt(e){G.value=e,W.value=!0,U.value=``,V.value=!0}async function Bt(){if(G.value){H.value=!0,U.value=``;try{await T.removeLine(G.value.line.id,W.value),V.value=!1}catch(e){U.value=e instanceof Error?e.message:String(e)}finally{H.value=!1}}}let K=p(!1),q=p(!1),J=p(``),Y=u({id:``,name:``,description:``,color:``});function Vt(e){Y.id=e.line.id,Y.name=e.line.name,Y.description=e.line.description,Y.color=e.line.color,J.value=``,K.value=!0}async function Ht(){q.value=!0,J.value=``;try{await T.updateLine(Y.id,{name:Y.name.trim(),description:Y.description.trim(),color:Y.color||void 0}),K.value=!1}catch(e){J.value=e instanceof Error?e.message:String(e)}finally{q.value=!1}}let X=p(!1),Z=p(``),Q=u({name:``,ch:``,code:``,unit:``,min:``,max:``,decimals:1,icon:`gateway`,semantics:``}),Ut=[{key:`thermo`,label:_(`dcw.k422b8040`)},{key:`pressure`,label:_(`dcw.k3x6ff041`)},{key:`tension`,label:_(`dcw.k3z9xc042`)},{key:`encoder`,label:_(`dcw.kjb3vhs043`)},{key:`camera`,label:_(`dcw.k47atw044`)},{key:`gateway`,label:_(`dcw.k48c07045`)}];async function Wt(){Z.value=``;try{if(!Q.name.trim())throw Error(_(`dcw.k6ugbw2046`));if(Q.min===``||Q.max===``)throw Error(_(`dcw.k13awowo047`));await T.createTemplate({name:Q.name.trim(),ch:Q.ch.trim()||Q.name.trim(),code:Q.code.trim()||`CUSTOM`,unit:Q.unit.trim()||`-`,min:Number(Q.min),max:Number(Q.max),decimals:Number(Q.decimals)||0,icon:Q.icon,semantics:Q.semantics.trim()||void 0}),Q.name=``,Q.ch=``,Q.code=``,Q.unit=``,Q.min=``,Q.max=``}catch(e){Z.value=e instanceof Error?e.message:String(e)}}async function Gt(e){Z.value=``;try{await fetch(`/api/workshop/dcw/templates/${e}`,{method:`DELETE`,headers:{authorization:`Bearer ${document.cookie.match(/(?:^|;\s*)token=([^;]+)/)?.[1]??``}`}}).then(async e=>{let t=await e.json().catch(()=>({}));if(t?.code!==0)throw Error(t?.message??_(`dcw.k1bphrb3048`))});let t=T.templates.findIndex(t=>t.key===e);t>=0&&T.templates.splice(t,1)}catch(e){Z.value=e instanceof Error?e.message:String(e)}}let $=l(()=>T.templates.filter(e=>e.builtin).length);return(e,l)=>{let u=te;return n(),d(`div`,ie,[h(`div`,ae,[h(`div`,null,[l[27]||=h(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / LINE OPERATIONS `,-1),h(`h1`,null,o(e.$t(`dcw.k1b2tk5c009`)),1),h(`p`,oe,o(e.$t(`dcw.k5q0aqi010`)),1)]),h(`div`,se,[D.value?(n(),d(`span`,{key:0,class:`badge warn-badge`,title:e.$t(`dcw.k1i5a9vw001`)},o(e.$t(`dcw.k3ootr6049`))+` `+o(D.value),9,ce)):f(``,!0),h(`span`,le,o(e.$t(`dcw.k3wj9n050`))+` `+o(i(T).lines.length),1),h(`button`,{class:`badge tpl-btn`,onClick:l[0]||=e=>X.value=!0},o(e.$t(`dcw.k11nndsp051`))+` `+o(i(T).templates.length),1)])]),R.value?(n(),d(`p`,ue,o(R.value),1)):f(``,!0),h(`div`,de,[h(`div`,fe,[h(`button`,{class:r({on:O.value===`all`}),onClick:l[1]||=e=>O.value=`all`},o(e.$t(`common.all`))+` `+o(E.value.length),3),h(`button`,{class:r({on:O.value===`running`}),onClick:l[2]||=e=>O.value=`running`},o(e.$t(`dcw.k1eox1el055`))+` `+o(A.value),3),h(`button`,{class:r({on:O.value===`idle`}),onClick:l[3]||=e=>O.value=`idle`},o(e.$t(`dcw.k149r6y7059`))+` `+o(E.value.length-A.value),3)]),g(h(`input`,{"onUpdate:modelValue":l[4]||=e=>k.value=e,class:`inp fleet-search`,type:`search`,placeholder:e.$t(`dcw.filterSearchPh`)},null,8,pe),[[x,k.value]])]),h(`div`,me,[(n(!0),d(s,null,t(j.value,f=>(n(),d(`div`,{key:f.line.id,class:r([`line-card`,{idle:!i(T).lineStateOf(f.line.id).active}]),style:a({"--lc":f.line.color})},[h(`div`,he,[l[30]||=h(`span`,{class:`lc-dot`},null,-1),h(`b`,ge,o(f.line.name),1),h(`span`,{class:r([`lc-state`,{on:i(T).lineStateOf(f.line.id).active}])},o(i(T).lineStateOf(f.line.id).active?e.$t(`dcw.k1eox1el055`):e.$t(`dcw.k149r6y7059`)),3),h(`button`,{class:`lc-act`,title:e.$t(`common.edit`),onClick:e=>Vt(f)},[...l[28]||=[h(`span`,{class:`i-tabler-pencil`},null,-1)]],8,_e),h(`button`,{class:`lc-act danger`,title:e.$t(`dcw.k3xakp026`),onClick:e=>zt(f)},[...l[29]||=[h(`span`,{class:`i-tabler-trash`},null,-1)]],8,ve)]),i(T).lineStateOf(f.line.id).active?(n(),d(`small`,ye,o(i(T).lineStateOf(f.line.id).productName)+` · `+o(i(T).lineStateOf(f.line.id).recipeName)+` · `+o(e.$t(`dcw.k3zz0f052`))+` `+o(i(T).lineStateOf(f.line.id).taggedSamples),1)):(n(),d(`small`,{key:1,class:r([`lc-run dim`,{ph:!f.line.description}])},o(f.line.description||e.$t(`dcw.k18moyq1056`)),3)),h(`div`,be,[h(`span`,null,[c(o(e.$t(`dcw.k45uio011`))+` `,1),h(`b`,null,o(f.nodes),1)]),h(`span`,null,[c(o(e.$t(`dcw.k3waz1012`))+` `,1),h(`b`,null,o(f.products),1)]),h(`span`,null,[c(o(e.$t(`dcw.k48grv013`))+` `,1),h(`b`,null,o(f.recipes),1)])]),h(`div`,xe,[i(T).lineStateOf(f.line.id).active?(n(),d(`button`,{key:1,class:`pill-btn stop`,disabled:L.value===f.line.id,onClick:e=>Rt(f)},o(e.$t(`dcw.k148rclf015`)),9,Ee)):(n(),d(s,{key:0},[g(h(`select`,{"onUpdate:modelValue":e=>z[f.line.id]=e,class:`inp`,disabled:B(f.line.id).length===0,title:e.$t(`dcw.k1dhaby4003`)},[h(`option`,Ce,o(B(f.line.id).length?e.$t(`dcw.kutxzsz057`):e.$t(`dcw.k1elczt9060`)),1),(n(!0),d(s,null,t(B(f.line.id),e=>(n(),d(`option`,{key:e.id,value:e.id,disabled:e.params.length===0},o(e.name)+`(`+o(e.params.length)+`) `,9,we))),128))],8,Se),[[b,z[f.line.id]]]),h(`button`,{class:`pill-btn`,disabled:L.value===f.line.id||!z[f.line.id],onClick:e=>Lt(f)},o(e.$t(`dcw.k149b4vg014`)),9,Te)],64))]),v(u,{class:`lc-manage`,to:`/dcw/${f.line.id}`},{default:m(()=>[c(o(e.$t(`dcw.k1fwqw5g016`)),1)]),_:1},8,[`to`])],6))),128)),h(`button`,{class:`line-card new-card`,onClick:Ft},[l[31]||=h(`span`,{class:`i-tabler-plus`},null,-1),c(` `+o(e.$t(`dcw.k1efe391017`))+` `,1),h(`small`,null,o(e.$t(`dcw.k19dlbli053`))+o(I.value)+`)`,1)])]),i(T).loaded&&i(T).lines.length===0?(n(),d(`p`,De,o(e.$t(`dcw.k1sk85vs018`)),1)):i(T).loaded&&j.value.length===0?(n(),d(`p`,Oe,o(e.$t(`dcw.filterEmpty`)),1)):f(``,!0),v(S,{name:`modal`},{default:m(()=>[M.value?(n(),d(`div`,{key:0,class:`modal-mask`,onClick:l[8]||=y(e=>M.value=!1,[`self`])},[h(`div`,ke,[h(`h3`,Ae,o(e.$t(`dcw.k1efe391017`)),1),h(`label`,je,[h(`span`,null,[c(o(e.$t(`dcw.k1b2ioko019`)),1),l[32]||=h(`em`,null,`*`,-1)]),g(h(`input`,{"onUpdate:modelValue":l[5]||=e=>F.name=e,class:`inp`,placeholder:e.$t(`dcw.kru37i3004`)},null,8,Me),[[x,F.name]])]),h(`label`,Ne,[h(`span`,null,o(e.$t(`dcw.k24dxcd020`)),1),g(h(`input`,{"onUpdate:modelValue":l[6]||=e=>F.description=e,class:`inp`,placeholder:e.$t(`dcw.k1f2nwsp005`)},null,8,Pe),[[x,F.description]])]),h(`div`,Fe,[h(`span`,null,o(e.$t(`dcw.k1x7nubr021`)),1),h(`div`,Ie,[(n(!0),d(s,null,t(i(C),e=>(n(),d(`button`,{key:e,class:r([`color-dot`,{on:F.color===e}]),style:a({background:e}),onClick:t=>F.color=F.color===e?``:e},null,14,Le))),128)),h(`small`,Re,o(F.color||e.$t(`dcw.k1qidbpy061`,{p0:I.value})),1)])]),P.value?(n(),d(`p`,ze,o(P.value),1)):f(``,!0),h(`div`,Be,[h(`button`,{class:`mini-btn`,onClick:l[7]||=e=>M.value=!1},o(e.$t(`dcw.k3xdnn022`)),1),h(`button`,{class:`pill-btn`,disabled:N.value||!F.name.trim(),onClick:It},o(e.$t(`dcw.k3wzi2023`)),9,Ve)])])])):f(``,!0)]),_:1}),v(S,{name:`modal`},{default:m(()=>[K.value?(n(),d(`div`,{key:0,class:`modal-mask`,onClick:l[12]||=y(e=>K.value=!1,[`self`])},[h(`div`,He,[h(`h3`,Ue,o(e.$t(`dcw.k5tq8wc071`)),1),h(`label`,We,[h(`span`,null,[c(o(e.$t(`dcw.k1b2ioko019`)),1),l[33]||=h(`em`,null,`*`,-1)]),g(h(`input`,{"onUpdate:modelValue":l[9]||=e=>Y.name=e,class:`inp`,placeholder:e.$t(`dcw.kru37i3004`)},null,8,Ge),[[x,Y.name]])]),h(`label`,Ke,[h(`span`,null,o(e.$t(`dcw.k24dxcd020`)),1),g(h(`input`,{"onUpdate:modelValue":l[10]||=e=>Y.description=e,class:`inp`,placeholder:e.$t(`dcw.k1f2nwsp005`)},null,8,qe),[[x,Y.description]])]),h(`div`,Je,[h(`span`,null,o(e.$t(`dcw.k1x7nubr021`)),1),h(`div`,Ye,[(n(!0),d(s,null,t(i(C),e=>(n(),d(`button`,{key:e,class:r([`color-dot`,{on:Y.color===e}]),style:a({background:e}),onClick:t=>Y.color=Y.color===e?``:e},null,14,Xe))),128)),h(`small`,Ze,o(Y.color||e.$t(`dcw.k1qidbpy061`,{p0:I.value})),1)])]),J.value?(n(),d(`p`,Qe,o(J.value),1)):f(``,!0),h(`div`,$e,[h(`button`,{class:`mini-btn`,onClick:l[11]||=e=>K.value=!1},o(e.$t(`dcw.k3xdnn022`)),1),h(`button`,{class:`pill-btn`,disabled:q.value||!Y.name.trim(),onClick:Ht},o(e.$t(`common.save`)),9,et)])])])):f(``,!0)]),_:1}),v(S,{name:`modal`},{default:m(()=>[V.value&&G.value?(n(),d(`div`,{key:0,class:`modal-mask`,onClick:l[15]||=y(e=>V.value=!1,[`self`])},[h(`div`,tt,[h(`h3`,nt,[l[34]||=h(`span`,{class:`i-tabler-alert-triangle`},null,-1),c(` `+o(e.$t(`dcw.k7xq2mfd063`,{p0:G.value.line.name})),1)]),h(`p`,rt,o(W.value?e.$t(`dcw.k4r7nbd073`,{p0:G.value.line.name,p1:G.value.nodes,p2:G.value.products,p3:G.value.recipes}):e.$t(`dcw.k1gp649b062`,{p0:G.value.line.name,p1:G.value.nodes,p2:G.value.products,p3:G.value.recipes})),1),h(`label`,it,[g(h(`input`,{"onUpdate:modelValue":l[13]||=e=>W.value=e,type:`checkbox`},null,512),[[ee,W.value]]),h(`span`,null,o(e.$t(`dcw.k9m2vxa072`)),1)]),U.value?(n(),d(`p`,at,o(U.value),1)):f(``,!0),h(`div`,ot,[h(`button`,{class:`mini-btn`,onClick:l[14]||=e=>V.value=!1},o(e.$t(`dcw.k3xdnn022`)),1),h(`button`,{class:`pill-btn danger`,disabled:H.value,onClick:Bt},o(e.$t(`dcw.k3xakp026`)),9,st)])])])):f(``,!0)]),_:1}),v(S,{name:`modal`},{default:m(()=>[X.value?(n(),d(`div`,{key:0,class:`modal-mask`,onClick:l[26]||=y(e=>X.value=!1,[`self`])},[h(`div`,ct,[h(`h3`,lt,[c(o(e.$t(`dcw.k11oadmx024`))+` `,1),h(`small`,ut,o(e.$t(`dcw.k3x23c054`))+` `+o($.value)+` · `+o(e.$t(`dcw.k3t616a058`))+` `+o(i(T).templates.length-$.value),1)]),h(`p`,dt,o(e.$t(`dcw.k2hlav5025`)),1),h(`div`,ft,[(n(!0),d(s,null,t(i(T).templates,t=>(n(),d(`div`,{key:t.key,class:`tpl-row`,title:t.semantics??``},[h(`b`,null,o(t.name),1),h(`small`,mt,o(t.code)+` · `+o(t.min)+`~`+o(t.max)+` `+o(t.unit),1),t.semantics?(n(),d(`small`,ht,o(t.semantics.slice(0,40))+o(t.semantics.length>40?`…`:``),1)):f(``,!0),h(`span`,{class:r([`tpl-tag`,{builtin:t.builtin}])},o(t.builtin?e.$t(`dcw.k3x23c054`):e.$t(`dcw.k3t616a058`)),3),t.builtin?f(``,!0):(n(),d(`button`,{key:1,class:`mini-btn danger`,onClick:e=>Gt(t.key)},o(e.$t(`dcw.k3xakp026`)),9,gt))],8,pt))),128))]),h(`p`,_t,o(e.$t(`dcw.k169eb4s027`)),1),h(`div`,w,[h(`label`,vt,[h(`span`,null,[c(o(e.$t(`dcw.k3xhia028`)),1),l[35]||=h(`em`,null,`*`,-1)]),g(h(`input`,{"onUpdate:modelValue":l[16]||=e=>Q.name=e,class:`inp`,placeholder:e.$t(`dcw.k1tooi3o006`)},null,8,yt),[[x,Q.name]])]),h(`label`,bt,[h(`span`,null,o(e.$t(`dcw.k1bqk219029`)),1),g(h(`input`,{"onUpdate:modelValue":l[17]||=e=>Q.ch=e,class:`inp`,placeholder:e.$t(`dcw.k698qz0007`)},null,8,xt),[[x,Q.ch]])]),h(`label`,St,[h(`span`,null,o(e.$t(`dcw.k1ayxrqb030`)),1),g(h(`input`,{"onUpdate:modelValue":l[18]||=e=>Q.code=e,class:`inp`,placeholder:`如 MOTOR · I`},null,512),[[x,Q.code]])]),h(`label`,Ct,[h(`span`,null,o(e.$t(`dcw.k3x4ef031`)),1),g(h(`input`,{"onUpdate:modelValue":l[19]||=e=>Q.unit=e,class:`inp`,placeholder:`如 A`},null,512),[[x,Q.unit]])]),h(`label`,wt,[h(`span`,null,[c(o(e.$t(`dcw.k1l9jv5m032`)),1),l[36]||=h(`em`,null,`*`,-1)]),g(h(`input`,{"onUpdate:modelValue":l[20]||=e=>Q.min=e,type:`number`,class:`inp`},null,512),[[x,Q.min,void 0,{number:!0}]])]),h(`label`,Tt,[h(`span`,null,[c(o(e.$t(`dcw.k1l9jv4p033`)),1),l[37]||=h(`em`,null,`*`,-1)]),g(h(`input`,{"onUpdate:modelValue":l[21]||=e=>Q.max=e,type:`number`,class:`inp`},null,512),[[x,Q.max,void 0,{number:!0}]])]),h(`label`,Et,[h(`span`,null,o(e.$t(`dcw.k3mxmcx034`)),1),g(h(`input`,{"onUpdate:modelValue":l[22]||=e=>Q.decimals=e,type:`number`,class:`inp`},null,512),[[x,Q.decimals,void 0,{number:!0}]])]),h(`label`,Dt,[h(`span`,null,o(e.$t(`dcw.k3xx56035`)),1),g(h(`select`,{"onUpdate:modelValue":l[23]||=e=>Q.icon=e,class:`inp`},[(n(),d(s,null,t(Ut,e=>h(`option`,{key:e.key,value:e.key},o(e.label),9,Ot)),64))],512),[[b,Q.icon]])])]),h(`label`,kt,[h(`span`,null,o(e.$t(`dcw.k1b6qorg036`)),1),g(h(`textarea`,{"onUpdate:modelValue":l[24]||=e=>Q.semantics=e,class:`inp`,rows:`3`,placeholder:e.$t(`dcw.k1qdnfzc008`)},null,8,At),[[x,Q.semantics]])]),Z.value?(n(),d(`p`,jt,o(Z.value),1)):f(``,!0),h(`div`,Mt,[h(`button`,{class:`mini-btn`,onClick:l[25]||=e=>X.value=!1},o(e.$t(`dcw.k3x62t037`)),1),h(`button`,{class:`pill-btn`,disabled:!Q.name.trim()||Q.min===``||Q.max===``,onClick:Wt},o(e.$t(`dcw.k1bg9nga038`)),9,Nt)])])])):f(``,!0)]),_:1}),i(T).error?(n(),d(`p`,Pt,o(i(T).error),1)):f(``,!0)])}}}),[[`__scopeId`,`data-v-f320c05f`]]);export{T as default};
|
|
1
|
+
import{C as e,G as t,H as n,Ht as r,St as i,Ut as a,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 m,p as h,rt as g,t as _,x as v}from"./BSCpFtzG.js";import{B as y,I as b,L as x,P as ee,k as S}from"./2LwEn9gX.js";import{t as te}from"./ubPfs9mQ.js";import{n as ne}from"./BeIfu4N3.js";import{r as C,t as re}from"./GP2wXyuY.js";var ie={class:`page`},ae={class:`aw-page-head`},oe={class:`sub`},se={class:`badges mono`},ce=[`title`],le={class:`badge`},ue={key:0,class:`banner bad`},de={class:`fleet-filter`},fe={class:`aw-seg`},pe=[`placeholder`],me={class:`line-grid`},he={class:`lc-head`},ge={class:`lc-name`},_e=[`title`,`onClick`],ve=[`title`,`onClick`],ye={key:0,class:`lc-run mono`},be={class:`lc-stats mono`},xe={class:`lc-ctl`},Se=[`onUpdate:modelValue`,`disabled`,`title`],Ce={value:``},we=[`value`,`disabled`],Te=[`disabled`,`onClick`],Ee=[`disabled`,`onClick`],De={key:1,class:`banner`},Oe={key:2,class:`banner`},ke={class:`modal`},Ae={class:`m-title`},je={class:`f`},Me=[`placeholder`],Ne={class:`f`},Pe=[`placeholder`],Fe={class:`f`},Ie={class:`color-row`},Le=[`onClick`],Re={class:`dim`},ze={key:0,class:`m-err`},Be={class:`m-actions`},Ve=[`disabled`],He={class:`modal`},Ue={class:`m-title`},We={class:`f`},Ge=[`placeholder`],Ke={class:`f`},qe=[`placeholder`],Je={class:`f`},Ye={class:`color-row`},Xe=[`onClick`],Ze={class:`dim`},Qe={key:0,class:`m-err`},$e={class:`m-actions`},et=[`disabled`],tt={class:`modal`},nt={class:`m-title danger-title`},rt={class:`del-summary`},it={class:`del-purge`},at={key:0,class:`m-err`},ot={class:`m-actions`},st=[`disabled`],ct={class:`modal wide`},lt={class:`m-title`},ut={class:`dim mono`},dt={class:`dim tpl-hint`},ft={class:`tpl-list`},pt=[`title`],mt={class:`mono dim`},ht={key:0,class:`tpl-sem`},gt=[`onClick`],_t={class:`sec-label`},w={class:`tpl-form`},vt={class:`f`},yt=[`placeholder`],bt={class:`f`},xt=[`placeholder`],St={class:`f`},Ct={class:`f`},wt={class:`f`},Tt={class:`f`},Et={class:`f`},Dt={class:`f`},Ot=[`value`],kt={class:`f`},At=[`placeholder`],jt={key:0,class:`m-err`},Mt={class:`m-actions`},Nt=[`disabled`],Pt={key:3,class:`banner bad`},T=_(e({__name:`index`,setup(e){let{t:_}=ne(),T=re();T.load();let E=l(()=>T.lines.map(e=>({line:e,nodes:T.nodes.filter(t=>t.lineId===e.id).length,products:T.products.filter(t=>t.lineId===e.id).length,recipes:T.recipes.filter(t=>t.lineId===e.id).length}))),D=l(()=>T.nodes.filter(e=>!e.lineId).length+T.products.filter(e=>!e.lineId).length),O=p(`all`),k=p(``),A=l(()=>E.value.filter(e=>T.lineStateOf(e.line.id).active).length),j=l(()=>E.value.filter(e=>{let t=T.lineStateOf(e.line.id).active;if(O.value===`running`&&!t||O.value===`idle`&&t)return!1;let n=k.value.trim().toLowerCase();return!(n&&!e.line.name.toLowerCase().includes(n)&&!(e.line.description??``).toLowerCase().includes(n))})),M=p(!1),N=p(!1),P=p(``),F=u({name:``,description:``,color:``}),I=l(()=>C[T.lines.length%C.length]??`#3aa0ff`);function Ft(){F.name=``,F.description=``,F.color=``,P.value=``,M.value=!0}async function It(){N.value=!0,P.value=``;try{await T.createLine({name:F.name.trim(),description:F.description.trim(),color:F.color||void 0}),M.value=!1}catch(e){P.value=e instanceof Error?e.message:String(e)}finally{N.value=!1}}let L=p(``),R=p(``),z=u({});async function Lt(e){L.value=e.line.id,R.value=``;try{let t=z[e.line.id]??``;if(!t)throw Error(_(`dcw.k188cswn039`));await T.startLine(e.line.id,t)}catch(e){R.value=e instanceof Error?e.message:String(e)}finally{L.value=``}}async function Rt(e){L.value=e.line.id,R.value=``;try{await T.stopLine(e.line.id)}catch(e){R.value=e instanceof Error?e.message:String(e)}finally{L.value=``}}function B(e){return T.recipes.filter(t=>t.lineId===e)}let V=p(!1),H=p(!1),U=p(``),W=p(!0),G=p(null);function zt(e){G.value=e,W.value=!0,U.value=``,V.value=!0}async function Bt(){if(G.value){H.value=!0,U.value=``;try{await T.removeLine(G.value.line.id,W.value),V.value=!1}catch(e){U.value=e instanceof Error?e.message:String(e)}finally{H.value=!1}}}let K=p(!1),q=p(!1),J=p(``),Y=u({id:``,name:``,description:``,color:``});function Vt(e){Y.id=e.line.id,Y.name=e.line.name,Y.description=e.line.description,Y.color=e.line.color,J.value=``,K.value=!0}async function Ht(){q.value=!0,J.value=``;try{await T.updateLine(Y.id,{name:Y.name.trim(),description:Y.description.trim(),color:Y.color||void 0}),K.value=!1}catch(e){J.value=e instanceof Error?e.message:String(e)}finally{q.value=!1}}let X=p(!1),Z=p(``),Q=u({name:``,ch:``,code:``,unit:``,min:``,max:``,decimals:1,icon:`gateway`,semantics:``}),Ut=[{key:`thermo`,label:_(`dcw.k422b8040`)},{key:`pressure`,label:_(`dcw.k3x6ff041`)},{key:`tension`,label:_(`dcw.k3z9xc042`)},{key:`encoder`,label:_(`dcw.kjb3vhs043`)},{key:`camera`,label:_(`dcw.k47atw044`)},{key:`gateway`,label:_(`dcw.k48c07045`)}];async function Wt(){Z.value=``;try{if(!Q.name.trim())throw Error(_(`dcw.k6ugbw2046`));if(Q.min===``||Q.max===``)throw Error(_(`dcw.k13awowo047`));await T.createTemplate({name:Q.name.trim(),ch:Q.ch.trim()||Q.name.trim(),code:Q.code.trim()||`CUSTOM`,unit:Q.unit.trim()||`-`,min:Number(Q.min),max:Number(Q.max),decimals:Number(Q.decimals)||0,icon:Q.icon,semantics:Q.semantics.trim()||void 0}),Q.name=``,Q.ch=``,Q.code=``,Q.unit=``,Q.min=``,Q.max=``}catch(e){Z.value=e instanceof Error?e.message:String(e)}}async function Gt(e){Z.value=``;try{await fetch(`/api/workshop/dcw/templates/${e}`,{method:`DELETE`,headers:{authorization:`Bearer ${document.cookie.match(/(?:^|;\s*)token=([^;]+)/)?.[1]??``}`}}).then(async e=>{let t=await e.json().catch(()=>({}));if(t?.code!==0)throw Error(t?.message??_(`dcw.k1bphrb3048`))});let t=T.templates.findIndex(t=>t.key===e);t>=0&&T.templates.splice(t,1)}catch(e){Z.value=e instanceof Error?e.message:String(e)}}let $=l(()=>T.templates.filter(e=>e.builtin).length);return(e,l)=>{let u=te;return n(),d(`div`,ie,[h(`div`,ae,[h(`div`,null,[l[27]||=h(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / LINE OPERATIONS `,-1),h(`h1`,null,o(e.$t(`dcw.k1b2tk5c009`)),1),h(`p`,oe,o(e.$t(`dcw.k5q0aqi010`)),1)]),h(`div`,se,[D.value?(n(),d(`span`,{key:0,class:`badge warn-badge`,title:e.$t(`dcw.k1i5a9vw001`)},o(e.$t(`dcw.k3ootr6049`))+` `+o(D.value),9,ce)):f(``,!0),h(`span`,le,o(e.$t(`dcw.k3wj9n050`))+` `+o(i(T).lines.length),1),h(`button`,{class:`badge tpl-btn`,onClick:l[0]||=e=>X.value=!0},o(e.$t(`dcw.k11nndsp051`))+` `+o(i(T).templates.length),1)])]),R.value?(n(),d(`p`,ue,o(R.value),1)):f(``,!0),h(`div`,de,[h(`div`,fe,[h(`button`,{class:r({on:O.value===`all`}),onClick:l[1]||=e=>O.value=`all`},o(e.$t(`common.all`))+` `+o(E.value.length),3),h(`button`,{class:r({on:O.value===`running`}),onClick:l[2]||=e=>O.value=`running`},o(e.$t(`dcw.k1eox1el055`))+` `+o(A.value),3),h(`button`,{class:r({on:O.value===`idle`}),onClick:l[3]||=e=>O.value=`idle`},o(e.$t(`dcw.k149r6y7059`))+` `+o(E.value.length-A.value),3)]),g(h(`input`,{"onUpdate:modelValue":l[4]||=e=>k.value=e,class:`inp fleet-search`,type:`search`,placeholder:e.$t(`dcw.filterSearchPh`)},null,8,pe),[[x,k.value]])]),h(`div`,me,[(n(!0),d(s,null,t(j.value,f=>(n(),d(`div`,{key:f.line.id,class:r([`line-card`,{idle:!i(T).lineStateOf(f.line.id).active}]),style:a({"--lc":f.line.color})},[h(`div`,he,[l[30]||=h(`span`,{class:`lc-dot`},null,-1),h(`b`,ge,o(f.line.name),1),h(`span`,{class:r([`lc-state`,{on:i(T).lineStateOf(f.line.id).active}])},o(i(T).lineStateOf(f.line.id).active?e.$t(`dcw.k1eox1el055`):e.$t(`dcw.k149r6y7059`)),3),h(`button`,{class:`lc-act`,title:e.$t(`common.edit`),onClick:e=>Vt(f)},[...l[28]||=[h(`span`,{class:`i-tabler-pencil`},null,-1)]],8,_e),h(`button`,{class:`lc-act danger`,title:e.$t(`dcw.k3xakp026`),onClick:e=>zt(f)},[...l[29]||=[h(`span`,{class:`i-tabler-trash`},null,-1)]],8,ve)]),i(T).lineStateOf(f.line.id).active?(n(),d(`small`,ye,o(i(T).lineStateOf(f.line.id).productName)+` · `+o(i(T).lineStateOf(f.line.id).recipeName)+` · `+o(e.$t(`dcw.k3zz0f052`))+` `+o(i(T).lineStateOf(f.line.id).taggedSamples),1)):(n(),d(`small`,{key:1,class:r([`lc-run dim`,{ph:!f.line.description}])},o(f.line.description||e.$t(`dcw.k18moyq1056`)),3)),h(`div`,be,[h(`span`,null,[c(o(e.$t(`dcw.k45uio011`))+` `,1),h(`b`,null,o(f.nodes),1)]),h(`span`,null,[c(o(e.$t(`dcw.k3waz1012`))+` `,1),h(`b`,null,o(f.products),1)]),h(`span`,null,[c(o(e.$t(`dcw.k48grv013`))+` `,1),h(`b`,null,o(f.recipes),1)])]),h(`div`,xe,[i(T).lineStateOf(f.line.id).active?(n(),d(`button`,{key:1,class:`pill-btn stop`,disabled:L.value===f.line.id,onClick:e=>Rt(f)},o(e.$t(`dcw.k148rclf015`)),9,Ee)):(n(),d(s,{key:0},[g(h(`select`,{"onUpdate:modelValue":e=>z[f.line.id]=e,class:`inp`,disabled:B(f.line.id).length===0,title:e.$t(`dcw.k1dhaby4003`)},[h(`option`,Ce,o(B(f.line.id).length?e.$t(`dcw.kutxzsz057`):e.$t(`dcw.k1elczt9060`)),1),(n(!0),d(s,null,t(B(f.line.id),e=>(n(),d(`option`,{key:e.id,value:e.id,disabled:e.params.length===0},o(e.name)+`(`+o(e.params.length)+`) `,9,we))),128))],8,Se),[[b,z[f.line.id]]]),h(`button`,{class:`pill-btn`,disabled:L.value===f.line.id||!z[f.line.id],onClick:e=>Lt(f)},o(e.$t(`dcw.k149b4vg014`)),9,Te)],64))]),v(u,{class:`lc-manage`,to:`/dcw/${f.line.id}`},{default:m(()=>[c(o(e.$t(`dcw.k1fwqw5g016`)),1)]),_:1},8,[`to`])],6))),128)),h(`button`,{class:`line-card new-card`,onClick:Ft},[l[31]||=h(`span`,{class:`i-tabler-plus`},null,-1),c(` `+o(e.$t(`dcw.k1efe391017`))+` `,1),h(`small`,null,o(e.$t(`dcw.k19dlbli053`))+o(I.value)+`)`,1)])]),i(T).loaded&&i(T).lines.length===0?(n(),d(`p`,De,o(e.$t(`dcw.k1sk85vs018`)),1)):i(T).loaded&&j.value.length===0?(n(),d(`p`,Oe,o(e.$t(`dcw.filterEmpty`)),1)):f(``,!0),v(S,{name:`modal`},{default:m(()=>[M.value?(n(),d(`div`,{key:0,class:`modal-mask`,onClick:l[8]||=y(e=>M.value=!1,[`self`])},[h(`div`,ke,[h(`h3`,Ae,o(e.$t(`dcw.k1efe391017`)),1),h(`label`,je,[h(`span`,null,[c(o(e.$t(`dcw.k1b2ioko019`)),1),l[32]||=h(`em`,null,`*`,-1)]),g(h(`input`,{"onUpdate:modelValue":l[5]||=e=>F.name=e,class:`inp`,placeholder:e.$t(`dcw.kru37i3004`)},null,8,Me),[[x,F.name]])]),h(`label`,Ne,[h(`span`,null,o(e.$t(`dcw.k24dxcd020`)),1),g(h(`input`,{"onUpdate:modelValue":l[6]||=e=>F.description=e,class:`inp`,placeholder:e.$t(`dcw.k1f2nwsp005`)},null,8,Pe),[[x,F.description]])]),h(`div`,Fe,[h(`span`,null,o(e.$t(`dcw.k1x7nubr021`)),1),h(`div`,Ie,[(n(!0),d(s,null,t(i(C),e=>(n(),d(`button`,{key:e,class:r([`color-dot`,{on:F.color===e}]),style:a({background:e}),onClick:t=>F.color=F.color===e?``:e},null,14,Le))),128)),h(`small`,Re,o(F.color||e.$t(`dcw.k1qidbpy061`,{p0:I.value})),1)])]),P.value?(n(),d(`p`,ze,o(P.value),1)):f(``,!0),h(`div`,Be,[h(`button`,{class:`mini-btn`,onClick:l[7]||=e=>M.value=!1},o(e.$t(`dcw.k3xdnn022`)),1),h(`button`,{class:`pill-btn`,disabled:N.value||!F.name.trim(),onClick:It},o(e.$t(`dcw.k3wzi2023`)),9,Ve)])])])):f(``,!0)]),_:1}),v(S,{name:`modal`},{default:m(()=>[K.value?(n(),d(`div`,{key:0,class:`modal-mask`,onClick:l[12]||=y(e=>K.value=!1,[`self`])},[h(`div`,He,[h(`h3`,Ue,o(e.$t(`dcw.k5tq8wc071`)),1),h(`label`,We,[h(`span`,null,[c(o(e.$t(`dcw.k1b2ioko019`)),1),l[33]||=h(`em`,null,`*`,-1)]),g(h(`input`,{"onUpdate:modelValue":l[9]||=e=>Y.name=e,class:`inp`,placeholder:e.$t(`dcw.kru37i3004`)},null,8,Ge),[[x,Y.name]])]),h(`label`,Ke,[h(`span`,null,o(e.$t(`dcw.k24dxcd020`)),1),g(h(`input`,{"onUpdate:modelValue":l[10]||=e=>Y.description=e,class:`inp`,placeholder:e.$t(`dcw.k1f2nwsp005`)},null,8,qe),[[x,Y.description]])]),h(`div`,Je,[h(`span`,null,o(e.$t(`dcw.k1x7nubr021`)),1),h(`div`,Ye,[(n(!0),d(s,null,t(i(C),e=>(n(),d(`button`,{key:e,class:r([`color-dot`,{on:Y.color===e}]),style:a({background:e}),onClick:t=>Y.color=Y.color===e?``:e},null,14,Xe))),128)),h(`small`,Ze,o(Y.color||e.$t(`dcw.k1qidbpy061`,{p0:I.value})),1)])]),J.value?(n(),d(`p`,Qe,o(J.value),1)):f(``,!0),h(`div`,$e,[h(`button`,{class:`mini-btn`,onClick:l[11]||=e=>K.value=!1},o(e.$t(`dcw.k3xdnn022`)),1),h(`button`,{class:`pill-btn`,disabled:q.value||!Y.name.trim(),onClick:Ht},o(e.$t(`common.save`)),9,et)])])])):f(``,!0)]),_:1}),v(S,{name:`modal`},{default:m(()=>[V.value&&G.value?(n(),d(`div`,{key:0,class:`modal-mask`,onClick:l[15]||=y(e=>V.value=!1,[`self`])},[h(`div`,tt,[h(`h3`,nt,[l[34]||=h(`span`,{class:`i-tabler-alert-triangle`},null,-1),c(` `+o(e.$t(`dcw.k7xq2mfd063`,{p0:G.value.line.name})),1)]),h(`p`,rt,o(W.value?e.$t(`dcw.k4r7nbd073`,{p0:G.value.line.name,p1:G.value.nodes,p2:G.value.products,p3:G.value.recipes}):e.$t(`dcw.k1gp649b062`,{p0:G.value.line.name,p1:G.value.nodes,p2:G.value.products,p3:G.value.recipes})),1),h(`label`,it,[g(h(`input`,{"onUpdate:modelValue":l[13]||=e=>W.value=e,type:`checkbox`},null,512),[[ee,W.value]]),h(`span`,null,o(e.$t(`dcw.k9m2vxa072`)),1)]),U.value?(n(),d(`p`,at,o(U.value),1)):f(``,!0),h(`div`,ot,[h(`button`,{class:`mini-btn`,onClick:l[14]||=e=>V.value=!1},o(e.$t(`dcw.k3xdnn022`)),1),h(`button`,{class:`pill-btn danger`,disabled:H.value,onClick:Bt},o(e.$t(`dcw.k3xakp026`)),9,st)])])])):f(``,!0)]),_:1}),v(S,{name:`modal`},{default:m(()=>[X.value?(n(),d(`div`,{key:0,class:`modal-mask`,onClick:l[26]||=y(e=>X.value=!1,[`self`])},[h(`div`,ct,[h(`h3`,lt,[c(o(e.$t(`dcw.k11oadmx024`))+` `,1),h(`small`,ut,o(e.$t(`dcw.k3x23c054`))+` `+o($.value)+` · `+o(e.$t(`dcw.k3t616a058`))+` `+o(i(T).templates.length-$.value),1)]),h(`p`,dt,o(e.$t(`dcw.k2hlav5025`)),1),h(`div`,ft,[(n(!0),d(s,null,t(i(T).templates,t=>(n(),d(`div`,{key:t.key,class:`tpl-row`,title:t.semantics??``},[h(`b`,null,o(t.name),1),h(`small`,mt,o(t.code)+` · `+o(t.min)+`~`+o(t.max)+` `+o(t.unit),1),t.semantics?(n(),d(`small`,ht,o(t.semantics.slice(0,40))+o(t.semantics.length>40?`…`:``),1)):f(``,!0),h(`span`,{class:r([`tpl-tag`,{builtin:t.builtin}])},o(t.builtin?e.$t(`dcw.k3x23c054`):e.$t(`dcw.k3t616a058`)),3),t.builtin?f(``,!0):(n(),d(`button`,{key:1,class:`mini-btn danger`,onClick:e=>Gt(t.key)},o(e.$t(`dcw.k3xakp026`)),9,gt))],8,pt))),128))]),h(`p`,_t,o(e.$t(`dcw.k169eb4s027`)),1),h(`div`,w,[h(`label`,vt,[h(`span`,null,[c(o(e.$t(`dcw.k3xhia028`)),1),l[35]||=h(`em`,null,`*`,-1)]),g(h(`input`,{"onUpdate:modelValue":l[16]||=e=>Q.name=e,class:`inp`,placeholder:e.$t(`dcw.k1tooi3o006`)},null,8,yt),[[x,Q.name]])]),h(`label`,bt,[h(`span`,null,o(e.$t(`dcw.k1bqk219029`)),1),g(h(`input`,{"onUpdate:modelValue":l[17]||=e=>Q.ch=e,class:`inp`,placeholder:e.$t(`dcw.k698qz0007`)},null,8,xt),[[x,Q.ch]])]),h(`label`,St,[h(`span`,null,o(e.$t(`dcw.k1ayxrqb030`)),1),g(h(`input`,{"onUpdate:modelValue":l[18]||=e=>Q.code=e,class:`inp`,placeholder:`如 MOTOR · I`},null,512),[[x,Q.code]])]),h(`label`,Ct,[h(`span`,null,o(e.$t(`dcw.k3x4ef031`)),1),g(h(`input`,{"onUpdate:modelValue":l[19]||=e=>Q.unit=e,class:`inp`,placeholder:`如 A`},null,512),[[x,Q.unit]])]),h(`label`,wt,[h(`span`,null,[c(o(e.$t(`dcw.k1l9jv5m032`)),1),l[36]||=h(`em`,null,`*`,-1)]),g(h(`input`,{"onUpdate:modelValue":l[20]||=e=>Q.min=e,type:`number`,class:`inp`},null,512),[[x,Q.min,void 0,{number:!0}]])]),h(`label`,Tt,[h(`span`,null,[c(o(e.$t(`dcw.k1l9jv4p033`)),1),l[37]||=h(`em`,null,`*`,-1)]),g(h(`input`,{"onUpdate:modelValue":l[21]||=e=>Q.max=e,type:`number`,class:`inp`},null,512),[[x,Q.max,void 0,{number:!0}]])]),h(`label`,Et,[h(`span`,null,o(e.$t(`dcw.k3mxmcx034`)),1),g(h(`input`,{"onUpdate:modelValue":l[22]||=e=>Q.decimals=e,type:`number`,class:`inp`},null,512),[[x,Q.decimals,void 0,{number:!0}]])]),h(`label`,Dt,[h(`span`,null,o(e.$t(`dcw.k3xx56035`)),1),g(h(`select`,{"onUpdate:modelValue":l[23]||=e=>Q.icon=e,class:`inp`},[(n(),d(s,null,t(Ut,e=>h(`option`,{key:e.key,value:e.key},o(e.label),9,Ot)),64))],512),[[b,Q.icon]])])]),h(`label`,kt,[h(`span`,null,o(e.$t(`dcw.k1b6qorg036`)),1),g(h(`textarea`,{"onUpdate:modelValue":l[24]||=e=>Q.semantics=e,class:`inp`,rows:`3`,placeholder:e.$t(`dcw.k1qdnfzc008`)},null,8,At),[[x,Q.semantics]])]),Z.value?(n(),d(`p`,jt,o(Z.value),1)):f(``,!0),h(`div`,Mt,[h(`button`,{class:`mini-btn`,onClick:l[25]||=e=>X.value=!1},o(e.$t(`dcw.k3x62t037`)),1),h(`button`,{class:`pill-btn`,disabled:!Q.name.trim()||Q.min===``||Q.max===``,onClick:Wt},o(e.$t(`dcw.k1bg9nga038`)),9,Nt)])])])):f(``,!0)]),_:1}),i(T).error?(n(),d(`p`,Pt,o(i(T).error),1)):f(``,!0)])}}}),[[`__scopeId`,`data-v-f320c05f`]]);export{T as default};
|
|
@@ -0,0 +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"./GP2wXyuY.js";import{t as ue}from"./CS8R0_J3.js";import{t as de}from"./CUxV8Bw_.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`},Lt=[`placeholder`],Rt={class:`f-grid cal-form`},zt={class:`f`},Bt={value:`none`},Vt={class:`f`},Ht={style:{display:`flex`,gap:`6px`}},Ut=[`disabled`],Wt=[`disabled`],Gt={class:`f-grid`},Kt={class:`f`},qt=[`value`],Jt={key:0,class:`f-grid driver-form`},Yt={key:0,style:{color:`var(--tone-danger-dot)`,"font-style":`normal`}},Xt=[`onUpdate:modelValue`],Zt=[`value`],Qt=[`onUpdate:modelValue`,`type`,`placeholder`],$t={key:2,class:`hint`},en={class:`test-row`},tn=[`disabled`],nn={class:`f`},rn=[`placeholder`],an={key:1,class:`m-err`},on={class:`m-actions`},sn=[`disabled`],cn={class:`aw-tile table-card`},ln={class:`nodes-table`},un={class:`right`},dn={class:`mono dim`},fn={class:`mono ch`},pn=[`disabled`,`title`,`onClick`],mn={key:0,class:`st-pill paused`},hn={class:`mono val`},gn={key:0,class:`dim`},_n={class:`mono val`},vn=[`title`],yn={key:0,class:`dim`},bn=[`disabled`,`title`,`onClick`],xn={class:`write-row`},Sn=[`onUpdate:modelValue`,`placeholder`,`min`,`max`,`step`,`disabled`,`title`],Cn=[`disabled`,`title`,`onClick`],wn={class:`mono dim`},Tn={class:`mono`},En=[`title`],Dn={class:`right`},On=[`onClick`],kn={key:0},An={colspan:`9`},jn={class:`pane-empty`,style:{"min-height":`120px`}},Mn={class:`pe-sub`},Nn={class:`aw-tile recipe-card`},Pn={class:`recipe-hd`},Fn={class:`panel-tag mono`},In={class:`recipe-sub`},Ln={key:0,class:`product-row`},Rn=[`title`,`onClick`],zn=[`title`,`onClick`],Bn={key:1,class:`dim`,style:{margin:`6px 0 12px`,"font-size":`12px`}},Vn={class:`recipe-grid`},Hn={class:`recipe-name`},Un={class:`dim`},Wn={class:`mono dim`},Gn={key:0,class:`dim desc`},Kn={class:`recipe-params mono`},qn=[`title`],Jn={class:`recipe-actions`},Yn=[`onClick`],Xn=[`onClick`],Zn=[`onClick`],Qn={key:0,class:`pane-empty`,style:{"grid-column":`1 / -1`}},$n={key:2,class:`banner good`},er=[`disabled`],tr={key:3,class:`runs`},nr={class:`sec-label`},rr={class:`nodes-table`},ir={class:`right`},ar={class:`mono`},or={class:`mono dim`},sr={class:`right`},cr=[`disabled`,`onClick`],lr=[`onClick`],ur={class:`modal`},dr={class:`m-title`},fr={class:`sec-label`},pr={class:`nodes-table`},mr={class:`mono dim`},hr={class:`mono`},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:`sec-label`},Sr={class:`nodes-table`},Cr={class:`mono`},wr={class:`mono dim`},Tr={class:`mono dim`},Er={key:0},Dr={colspan:`6`,class:`dim`,style:{"text-align":`center`,padding:`12px`}},Or={class:`m-actions`},kr={class:`modal`},Ar={class:`m-title`},jr={class:`f-grid`},Mr={class:`f`},Nr=[`value`],Pr={class:`f`},Fr=[`placeholder`],Ir={class:`f`},Lr=[`placeholder`],Rr={class:`sec-label`},zr={class:`f`},Br=[`onUpdate:modelValue`],Vr=[`value`],Hr={class:`f`},Ur=[`onUpdate:modelValue`],Wr={class:`f`},Gr=[`onUpdate:modelValue`,`placeholder`],Kr={class:`f`},qr=[`onUpdate:modelValue`,`placeholder`],Jr=[`onClick`],Yr={class:`sec-label`},Xr={class:`f`},Zr=[`onUpdate:modelValue`],Qr=[`value`],$r={class:`f`},ei=[`onUpdate:modelValue`],ti={class:`f`},ni=[`onUpdate:modelValue`],ri=[`onClick`],ii=[`disabled`,`title`],ai={key:0,class:`m-err`},oi={class:`m-actions`},si=[`disabled`],ci={class:`aw-tile query-card`},li={class:`sec-label`},ui={class:`q-grid`},di={class:`f`},fi={value:``},pi=[`value`],mi={class:`f`},hi=[`disabled`],gi={value:``},_i=[`value`],vi={class:`f`},yi={value:``},bi=[`value`],xi={class:`f`},Si={value:``},Ci=[`value`],wi={class:`f`},Ti={class:`f`},Ei={class:`f q-actions`},Di=[`disabled`],Oi={key:0,class:`banner bad`,style:{"margin-top":`8px`}},ki={key:1,class:`q-result`},Ai={class:`nodes-table`},ji={class:`mono dim`},Mi={class:`mono`},Ni={class:`mono`},Pi={class:`mono`},Fi={class:`mono dim`},Ii={key:5,class:`aw-tile table-card`},Li={class:`sec-label`},Ri={class:`nodes-table`},zi={class:`mono dim`},Bi={class:`mono`},Vi={class:`mono dim`},Hi={class:`dim`},Ui={class:`modal`},Wi={class:`m-title`},Gi={class:`f-grid`},Ki={class:`f`},qi=[`placeholder`],Ji={class:`f`},Yi=[`placeholder`],Xi={key:0,class:`m-err`},Zi={class:`m-actions`},Qi=[`disabled`],$i={key:7,class:`err`},ea={class:`aw-tile ledger-card`},ta={class:`ledger-head`},na={value:``},ra=[`value`],ia={class:`ledger-tri`},aa={class:`tri-cell`},oa={class:`mono`},sa={class:`tri-cell`},ca={class:`mono`},la={class:`tri-cell`},ua={class:`mono`},da={class:`ledger-cols`},fa={class:`ledger-col`},pa={class:`sec-t`},ma={class:`ledger-list mono`},ha={class:`ledger-col`},ga={class:`sec-t`},_a={class:`ledger-list`},va={class:`mono`},ya=g(t({__name:`[id]`,setup(t){let{t:g}=oe(),ya=ie(),b=le(),ba=ue(),xa=de();ba.load();let x=l(()=>String(ya.params.id??``)),Sa=l(()=>b.lines.find(e=>e.id===x.value)),S=l(()=>b.lineStateOf(x.value));b.load();let Ca=b.ensureWsFeed();e(()=>Ca());let wa=e=>e?xa.twins.find(t=>t.id===e)?.name??e:g(`dcwDetail.k3own4q121`),Ta={idle:g(`dcwDetail.k3zgkk122`),writing:g(`dcwDetail.k3l3h80123`),ok:`已 ACK`,error:g(`dcwDetail.k40reu124`),offline:g(`dcwDetail.k44c2n125`)};function Ea(e){let t=e??``;return b.templates.find(e=>e.key===(t.startsWith(`dcw-`)?t.slice(4):t))?.ch??t}function Da(e){return b.nodeById(e)?.min}function Oa(e){return b.nodeById(e)?.max}let C=l(()=>ba.nodes.filter(e=>e.lineId===x.value)),w=p(``),T=p(null),ka=p(!1);async function Aa(){if(w.value){ka.value=!0;try{T.value=await b.fetchLedger(w.value)}finally{ka.value=!1}}}async function ja(){w.value&&(await b.rollbackNode(w.value),await Aa())}function Ma(e){return ba.nodeById(e)?.name??e}let E=l(()=>b.nodes.filter(e=>e.lineId===x.value)),D=l(()=>b.products.filter(e=>e.lineId===x.value)),Na=l(()=>b.recipes.filter(e=>e.lineId===x.value)),Pa=l(()=>b.runs.filter(e=>e.lineId===x.value)),Fa=l(()=>{let e=new Set(E.value.map(e=>e.id));return b.history.filter(t=>e.has(t.nodeId))}),Ia=l(()=>b.nodes.filter(e=>!e.lineId)),La=l(()=>b.products.filter(e=>!e.lineId));async function Ra(e){await b.patchNode(e,{lineId:x.value});let t=b.nodeById(e);t&&(t.lineId=x.value)}async function za(e){await b.updateProduct(e,{lineId:x.value}),await b.load()}let O=u({}),Ba=p(``),k=p(``),Va=p(``);async function Ha(e,t){Ba.value=e,k.value=``,Va.value=``;try{let n=await b.write(e,t);n.ok?(Va.value=g(`dcwDetail.k1alcbyu182`,{p0:b.nodeById(e)?.name??e,p1:n.message}),O[e]=``):k.value=g(`dcwDetail.kl1e9x9183`,{p0:b.nodeById(e)?.name??e,p1:n.message})}catch(e){k.value=e instanceof Error?e.message:String(e)}finally{Ba.value=``}}let Ua=p(``);async function Wa(e){Ua.value=e,k.value=``;try{await b.readNode(e)}catch(e){k.value=e instanceof Error?e.message:String(e)}finally{Ua.value=``}}let Ga=p(``);async function Ka(e,t){Ga.value=e,k.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){k.value=e instanceof Error?e.message:String(e)}finally{Ga.value=``}}let A=p(!1),j=p(`mock`),qa=p(b.templates[0]?.key??``),M=p(`mock`),Ja=p(``),Ya=p(null),Xa=p(null),N=p({}),P=u({kind:`none`,scale:1,offset:0}),Za=p(``),Qa=p(!1),F=p(null),$a=p(!1),eo=p(``),to=l(()=>ce.find(e=>e.kind===M.value)),no=l(()=>to.value?.configFields??[]);function ro(){let e={};for(let t of no.value)t.default!==void 0&&(e[t.key]=t.default);N.value=e,F.value=null}ro();async function io(){Qa.value=!0,F.value=null;try{F.value=await b.testDriver(M.value,N.value)}catch(e){F.value={ok:!1,message:e instanceof Error?e.message:String(e)}}finally{Qa.value=!1}}async function ao(){$a.value=!0,eo.value=``;try{for(let e of no.value)if(e.required&&(N.value[e.key]===void 0||N.value[e.key]===``))throw Error(g(`dcwDetail.k8x1un1184`,{p0:e.label}));let e=P.kind===`linear`?{kind:`linear`,scale:Number(P.scale),offset:Number(P.offset)}:void 0;await b.createFromTemplate(`dcw-${qa.value}`,{name:Ja.value.trim()||void 0,driver:M.value,driverConfig:{...N.value},transform:e,holdIntervalMs:Ya.value,readIntervalMs:Xa.value,lineId:x.value,semantics:Za.value.trim()||void 0}),A.value=!1,Ja.value=``,Za.value=``}catch(e){eo.value=e instanceof Error?e.message:String(e)}finally{$a.value=!1}}let oo=p(!1),so=p(!1),I=p(``),L=p(``);function co(){oo.value=!0,I.value=``,L.value=``}let R=u({name:``,ch:``,code:``,unit:``,min:``,max:``,decimals:1,icon:`gateway`,semantics:``}),lo=[{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 uo(){so.value=!0,I.value=``,L.value=``;try{if(!R.name.trim())throw Error(g(`dcwDetail.k6ugbw2132`));if(R.unit.trim()===``)throw Error(g(`dcwDetail.kx3pg59133`));if(R.min===``||R.max===``)throw Error(g(`dcwDetail.k13awowo134`));let e=await b.createTemplate({name:R.name.trim(),ch:R.ch.trim()||R.name.trim(),code:R.code.trim()||`CUSTOM`,unit:R.unit.trim(),min:Number(R.min),max:Number(R.max),decimals:Number(R.decimals)||0,icon:R.icon,semantics:R.semantics.trim()||void 0});qa.value=e.key,L.value=g(`dcwDetail.ky4e1tr185`,{p0:e.name}),R.name=``,R.ch=``,R.code=``,R.unit=``,R.min=``,R.max=``,R.semantics=``}catch(e){I.value=e instanceof Error?e.message:String(e)}finally{so.value=!1}}let z=p(``),B=p(``),V=p(!1),H=p(``),U=p(``),fo=l(()=>Na.value.filter(e=>e.productId===z.value));async function po(){V.value=!0,H.value=``,U.value=``;try{if(!B.value)throw Error(g(`dcwDetail.k1b6qe0r135`));await b.startLine(x.value,B.value),H.value=g(`dcwDetail.k17jteb9186`,{p0:S.value.productName,p1:S.value.recipeName,p2:S.value.runId})}catch(e){U.value=e instanceof Error?e.message:String(e)}finally{V.value=!1}}async function mo(){V.value=!0,H.value=``,U.value=``;try{let e=`${S.value.productName??``} · ${S.value.recipeName??``}`;await b.stopLine(x.value),H.value=g(`dcwDetail.kzl49pd187`,{p0:e})}catch(e){U.value=e instanceof Error?e.message:String(e)}finally{V.value=!1}}let W=p(!1),ho=p(!1),go=p(``),G=u({name:``,description:``}),K=p(``);async function _o(){ho.value=!0,go.value=``;try{let e=await b.createProduct({name:G.name.trim(),description:G.description.trim(),lineId:x.value});z.value=e.id,K.value=e.id,W.value=!1,G.name=``,G.description=``}catch(e){go.value=e instanceof Error?e.message:String(e)}finally{ho.value=!1}}let vo=l(()=>K.value?Na.value.filter(e=>e.productId===K.value):Na.value),yo=e=>b.products.find(t=>t.id===e)?.name??e,q=u({productId:``,recipeId:``,paramKey:``,nodeId:``,lastMin:30,bucketMs:0}),bo=p(null),xo=p(!1),So=p(``);async function Co(){xo.value=!0,So.value=``,bo.value=null;try{bo.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}),bo.value.channels.length===0&&(So.value=g(`dcwDetail.kszv5sq136`))}catch(e){So.value=e instanceof Error?e.message:String(e)}finally{xo.value=!1}}let wo=l(()=>b.templates.map(e=>e.key)),J=p(!1),Y=p(null),To=p(!1),X=p(``),Z=u({productId:``,name:``,description:``,params:[],daqWindows:[]}),Q=p(null),$=p(null),Eo=p(!1);function Do(){Y.value=null,X.value=``,Z.productId=K.value||z.value||D.value[0]?.id||``,Z.name=``,Z.description=``,Z.params=[{nodeId:E.value[0]?.id??``,value:``,min:``,max:``}],Z.daqWindows=[],J.value=!0}function Oo(e){let t=b.recipes.find(t=>t.id===e);t&&(Y.value=e,X.value=``,Z.productId=t.productId,Z.name=t.name,Z.description=t.description,Z.params=t.params.map(e=>({nodeId:e.nodeId,value:e.value,min:e.min??``,max:e.max??``})),Z.daqWindows=(t.daqWindows??[]).map(e=>({nodeId:e.nodeId,min:e.min??``,max:e.max??``})),J.value=!0)}async function ko(){To.value=!0,X.value=``;try{let e={productId:Z.productId,name:Z.name.trim(),description:Z.description.trim(),params:Z.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:Z.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)}:{}}))};Y.value?await b.updateRecipe(Y.value,e):await b.createRecipe(e),J.value=!1}catch(e){X.value=e instanceof Error?e.message:String(e)}finally{To.value=!1}}async function Ao(e){Q.value=null,k.value=``;try{let t=await b.applyRecipe(e),n=t.results.filter(e=>e.ok).length;Q.value={runId:t.id,ok:n,total:t.results.length},n<t.results.length&&(k.value=g(`dcwDetail.ks7szkt188`,{p0:t.results.filter(e=>!e.ok).map(e=>e.message).join(`;`)}))}catch(e){k.value=e instanceof Error?e.message:String(e)}}async function jo(e){Eo.value=!0;try{let t=await b.runData(e);$.value={runId:e,data:t}}catch(e){k.value=e instanceof Error?e.message:String(e)}finally{Eo.value=!1}}function Mo(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&&!Sa.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:Sa.value?.color??`#3aa0ff`})},null,4),c(`AGENTWORKSHOP / LINE / `+o(Sa.value?.name??x.value),1)]),m(`h1`,null,o(Sa.value?.name??e.$t(`dcwDetail.k1b2snna151`))+` · `+o(e.$t(`dcwDetail.k1l0iow1137`)),1),m(`p`,_e,o(Sa.value?.description||e.$t(`dcwDetail.kzcbfki152`)),1)]),m(`div`,ve,[m(`span`,ye,o(e.$t(`dcwDetail.k45uio082`))+` `+o(E.value.length),1),m(`span`,be,o(e.$t(`dcwDetail.k3waz1025`))+` `+o(D.value.length),1),m(`span`,xe,o(e.$t(`dcwDetail.k48grv027`))+` `+o(Na.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[53]||=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[54]||=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:co},[t[55]||=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=>A.value=!0},[t[56]||=m(`span`,{class:`i-tabler-plus`},null,-1),c(` `+o(e.$t(`dcwDetail.k1976uns021`)),1)])])]),k.value||Va.value?(r(),d(`p`,{key:0,class:i([`banner`,k.value?`bad`:`good`])},o(k.value||Va.value),3)):f(``,!0),Ia.value.length||La.value.length?(r(),d(`section`,Ae,[m(`b`,je,o(e.$t(`dcwDetail.kaebkky022`)),1),m(`div`,Me,[(r(!0),d(s,null,n(Ia.value,t=>(r(),d(`span`,{key:t.id,class:`adopt-chip`},[c(o(t.name)+` `,1),m(`button`,{class:`mini-btn`,onClick:e=>Ra(t.id)},o(e.$t(`dcwDetail.kyjp9fg023`)),9,Ne)]))),128)),(r(!0),d(s,null,n(La.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=>za(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:S.value.active}])},null,2),m(`div`,Le,[m(`b`,null,o(S.value.active?e.$t(`dcwDetail.k1pxrhx0154`):e.$t(`dcwDetail.k1b2hxmx170`)),1),S.value.active?(r(),d(`small`,Re,o(S.value.productName)+` · `+o(S.value.recipeName)+` · `+o(e.$t(`dcwDetail.k400lb075`))+` `+o(S.value.runId)+` · `+o(e.$t(`dcwDetail.k3zkt2166`))+` `+o(S.value.startedAt?.slice(11,19))+` `+o(e.$t(`dcwDetail.k69vag8168`))+` `+o(S.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=>z.value=e,class:`inp`,onChange:t[3]||=e=>B.value=``},[m(`option`,He,o(e.$t(`dcwDetail.kuisodh026`)),1),(r(!0),d(s,null,n(D.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,Ue))),128))],544),[[v,z.value]])]),m(`label`,We,[m(`span`,null,o(e.$t(`dcwDetail.k48grv027`)),1),h(m(`select`,{"onUpdate:modelValue":t[4]||=e=>B.value=e,class:`inp`,disabled:!z.value},[m(`option`,Ke,o(e.$t(`dcwDetail.kutxzsz028`)),1),(r(!0),d(s,null,n(fo.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,B.value]])]),S.value.active?(r(),d(`button`,{key:1,class:`pill-btn stop`,disabled:V.value,onClick:mo},o(e.$t(`dcwDetail.k1xyhd2y030`)),9,Ye)):(r(),d(`button`,{key:0,class:`pill-btn`,disabled:V.value||!B.value,title:B.value?`下发配方参数并开始打标数据采集`:`开跑前必须先设定配方`,onClick:po},o(e.$t(`dcwDetail.kfb8vml029`)),9,Je))]),U.value?(r(),d(`p`,Xe,o(U.value),1)):f(``,!0),H.value?(r(),d(`p`,Ze,o(H.value),1)):f(``,!0)]),oo.value?(r(),d(`div`,{key:2,class:`modal-mask`,onClick:t[15]||=_(e=>oo.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[57]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":t[5]||=e=>R.name=e,class:`inp`,placeholder:e.$t(`dcwDetail.k1tooi3o004`)},null,8,ct),[[y,R.name]])]),m(`label`,lt,[m(`span`,null,o(e.$t(`dcwDetail.k1bqk219035`)),1),h(m(`input`,{"onUpdate:modelValue":t[6]||=e=>R.ch=e,class:`inp`,placeholder:e.$t(`dcwDetail.k698qz0005`)},null,8,ut),[[y,R.ch]])]),m(`label`,dt,[m(`span`,null,o(e.$t(`dcwDetail.k1ayxrqb036`)),1),h(m(`input`,{"onUpdate:modelValue":t[7]||=e=>R.code=e,class:`inp`,placeholder:`如 MOTOR · I`},null,512),[[y,R.code]])]),m(`label`,ft,[m(`span`,null,[c(o(e.$t(`dcwDetail.k3x4ef037`)),1),t[58]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":t[8]||=e=>R.unit=e,class:`inp`,placeholder:`如 A`},null,512),[[y,R.unit]])]),m(`label`,pt,[m(`span`,null,[c(o(e.$t(`dcwDetail.k1l9jv5m038`)),1),t[59]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":t[9]||=e=>R.min=e,type:`number`,class:`inp`,placeholder:e.$t(`dcwDetail.kxz9174006`)},null,8,mt),[[y,R.min,void 0,{number:!0}]])]),m(`label`,ht,[m(`span`,null,[c(o(e.$t(`dcwDetail.k1l9jv4p039`)),1),t[60]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":t[10]||=e=>R.max=e,type:`number`,class:`inp`,placeholder:e.$t(`dcwDetail.kxz9167007`)},null,8,gt),[[y,R.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=>R.decimals=e,type:`number`,min:`0`,max:`4`,class:`inp`},null,512),[[y,R.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=>R.icon=e,class:`inp`},[(r(),d(s,null,n(lo,e=>m(`option`,{key:e.key,value:e.key},o(e.label),9,yt)),64))],512),[[v,R.icon]])])]),m(`label`,bt,[m(`span`,null,o(e.$t(`dcwDetail.knjmyfr042`)),1),h(m(`textarea`,{"onUpdate:modelValue":t[13]||=e=>R.semantics=e,class:`inp`,rows:`2`,placeholder:e.$t(`dcwDetail.k1qdnfzc008`)},null,8,xt),[[y,R.semantics]])]),L.value?(r(),d(`p`,St,o(L.value),1)):f(``,!0),I.value?(r(),d(`p`,Ct,o(I.value),1)):f(``,!0),m(`div`,wt,[m(`button`,{class:`aw-pill outline`,onClick:t[14]||=e=>oo.value=!1},o(e.$t(`dcwDetail.k3x62t043`)),1),m(`button`,{class:`pill-btn`,disabled:so.value||!R.name.trim()||R.unit.trim()===``||R.min===``||R.max===``,onClick:uo},o(so.value?e.$t(`dcwDetail.k1bg4759156`):e.$t(`dcwDetail.k1bg9nga171`)),9,Tt)])])])):f(``,!0),A.value?(r(),d(`div`,{key:3,class:`modal-mask`,onClick:t[28]||=_(e=>A.value=!1,[`self`])},[m(`div`,Et,[m(`h3`,Dt,o(e.$t(`dcwDetail.k1976uns021`)),1),m(`div`,Ot,[m(`button`,{class:i([`seg`,{on:j.value===`mock`}]),onClick:t[16]||=e=>j.value=`mock`},` Mock 模拟 PLC `,2),m(`button`,{class:i([`seg`,{on:j.value===`real`}]),onClick:t[17]||=e=>j.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=>qa.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,qa.value]])]),m(`label`,Mt,[m(`span`,null,o(e.$t(`dcwDetail.k1ce2k1y046`)),1),h(m(`input`,{"onUpdate:modelValue":t[19]||=e=>Ja.value=e,class:`inp`,placeholder:e.$t(`dcwDetail.kgpxzy3009`)},null,8,Nt),[[y,Ja.value]])]),m(`label`,Pt,[m(`span`,null,o(e.$t(`dcwDetail.k1vyb8im047`)),1),h(m(`input`,{"onUpdate:modelValue":t[20]||=e=>Ya.value=e,type:`number`,min:`0`,max:`3600000`,step:`500`,class:`inp`,placeholder:e.$t(`dcwDetail.kb1srz0010`)},null,8,Ft),[[y,Ya.value,void 0,{number:!0}]])]),m(`label`,It,[m(`span`,null,o(e.$t(`dcwDetail.k9r7d4e016`)),1),h(m(`input`,{"onUpdate:modelValue":t[21]||=e=>Xa.value=e,type:`number`,min:`0`,max:`3600000`,step:`500`,class:`inp`,placeholder:e.$t(`dcwDetail.k9r7d4e017`)},null,8,Lt),[[y,Xa.value,void 0,{number:!0}]])])]),m(`div`,Rt,[m(`label`,zt,[m(`span`,null,o(e.$t(`dcwDetail.kiune1f048`)),1),h(m(`select`,{"onUpdate:modelValue":t[22]||=e=>P.kind=e,class:`inp`},[m(`option`,Bt,o(e.$t(`dcwDetail.kkzy0k049`)),1),t[61]||=m(`option`,{value:`linear`},` 线性标定:PLC值 = (物理值 - offset) / scale `,-1)],512),[[v,P.kind]])]),m(`label`,Vt,[t[62]||=m(`span`,null,`scale / offset`,-1),m(`div`,Ht,[h(m(`input`,{"onUpdate:modelValue":t[23]||=e=>P.scale=e,type:`number`,step:`0.1`,class:`inp`,disabled:P.kind!==`linear`,title:`decoder 斜率(≠0):物理值 = scale × PLC值 + offset;下发时自动取逆`},null,8,Ut),[[y,P.scale,void 0,{number:!0}]]),h(m(`input`,{"onUpdate:modelValue":t[24]||=e=>P.offset=e,type:`number`,step:`0.1`,class:`inp`,disabled:P.kind!==`linear`,title:`decoder 截距`},null,8,Wt),[[y,P.offset,void 0,{number:!0}]])])])]),j.value===`real`?(r(),d(s,{key:0},[m(`div`,Gt,[m(`label`,Kt,[m(`span`,null,o(e.$t(`dcwDetail.k1kt87rx050`)),1),h(m(`select`,{"onUpdate:modelValue":t[25]||=e=>M.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,qt))),128))],512),[[v,M.value]])])]),no.value.length?(r(),d(`div`,Jt,[(r(!0),d(s,null,n(no.value,e=>(r(),d(`label`,{key:e.key,class:`f`},[m(`span`,null,[c(o(e.label),1),e.required?(r(),d(`em`,Yt,`*`)):f(``,!0)]),e.type===`select`?h((r(),d(`select`,{key:0,"onUpdate:modelValue":t=>N.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,Zt))),128))],8,Xt)),[[v,N.value[e.key]]]):h((r(),d(`input`,{key:1,"onUpdate:modelValue":t=>N.value[e.key]=t,type:e.type===`number`?`number`:`text`,placeholder:e.placeholder,class:`inp`},null,8,Qt)),[[re,N.value[e.key]]]),e.hint?(r(),d(`small`,$t,o(e.hint),1)):f(``,!0)]))),128))])):f(``,!0),m(`div`,en,[m(`button`,{class:`pill-btn outline`,disabled:Qa.value,onClick:io},o(Qa.value?e.$t(`dcwDetail.k1fsh720158`):e.$t(`dcwDetail.k1fstglk172`)),9,tn),F.value?(r(),d(`span`,{key:0,class:i([`test-result`,F.value.ok?`good`:`bad`])},o(F.value.ok?`✓`:`✗`)+` `+o(F.value.message),3)):f(``,!0)])],64)):f(``,!0),m(`label`,nn,[m(`span`,null,o(e.$t(`dcwDetail.k1hgizn7051`)),1),h(m(`textarea`,{"onUpdate:modelValue":t[26]||=e=>Za.value=e,class:`inp`,rows:`2`,placeholder:e.$t(`dcwDetail.k12bnyt9011`)},null,8,rn),[[y,Za.value]])]),eo.value?(r(),d(`p`,an,o(eo.value),1)):f(``,!0),m(`div`,on,[m(`button`,{class:`aw-pill outline`,onClick:t[27]||=e=>A.value=!1},o(e.$t(`dcwDetail.k3xdnn052`)),1),m(`button`,{class:`aw-pill`,disabled:$a.value,onClick:ao},o($a.value?e.$t(`dcwDetail.k1bg4759156`):e.$t(`dcwDetail.k1bge46t173`)),9,sn)])])])):f(``,!0),ne(u,{spinning:!a(b).loaded&&!a(b).error},{default:te(()=>[m(`section`,cn,[m(`table`,ln,[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.k9r7d4e018`)),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`,un,o(e.$t(`dcwDetail.k40aa6061`)),1)])]),m(`tbody`,null,[(r(!0),d(s,null,n(E.value,n=>(r(),d(`tr`,{key:n.id,class:i({"node-paused":!n.enabled})},[m(`td`,null,[m(`span`,dn,o(n.id.slice(0,8)),1),m(`b`,null,o(n.name),1),m(`small`,fn,o(Ea(n.templateRef)),1)]),m(`td`,null,[m(`button`,{class:i([`ctrl-toggle`,{on:n.enabled}]),disabled:Ga.value===n.id,title:n.enabled?`暂停该节点控制:下发将被拒绝`:`开启该节点控制:恢复可下发`,onClick:e=>Ka(n.id,!n.enabled)},[t[63]||=m(`span`,{class:`ct-dot`},null,-1),c(` `+o(n.enabled?e.$t(`dcwDetail.k3o3ib3159`):e.$t(`dcwDetail.k3n93ed062`)),1)],10,pn)]),m(`td`,null,[n.enabled?(r(),d(`span`,{key:1,class:i([`st-pill`,n.state])},o(Ta[n.state]??n.state),3)):(r(),d(`span`,mn,o(e.$t(`dcwDetail.k3n93ed062`)),1))]),m(`td`,hn,[c(o(n.value==null?`--`:n.value.toFixed(n.decimals))+` `,1),m(`small`,null,o(n.unit),1),n.lastAckAt?(r(),d(`small`,gn,` · `+o(n.lastAckAt.slice(11,19)),1)):f(``,!0)]),m(`td`,_n,[m(`span`,{title:n.lastReadError??e.$t(`dcwDetail.k9r7d4e019`),class:i({"read-stale":n.lastReadError})},o(n.readValue==null?`--`:n.readValue.toFixed(n.decimals)),11,vn),m(`small`,null,o(n.unit),1),n.lastReadAt?(r(),d(`small`,yn,` · `+o(n.lastReadAt.slice(11,19)),1)):f(``,!0),m(`button`,{class:`mini-btn read-btn`,disabled:Ua.value===n.id,title:e.$t(`dcwDetail.k9r7d4e020`),onClick:e=>Wa(n.id)},o(Ua.value===n.id?`···`:e.$t(`dcwDetail.k9r7d4e021`)),9,bn)]),m(`td`,null,[m(`div`,xn,[h(m(`input`,{"onUpdate:modelValue":e=>O[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,Sn),[[y,O[n.id],void 0,{number:!0}]]),m(`button`,{class:`mini-btn write-btn`,disabled:!n.enabled||Ba.value===n.id||O[n.id]==null||O[n.id]===``,title:n.enabled?`下发设定值`:`当前节点暂停:开启控制后方可设定`,onClick:e=>Ha(n.id,Number(O[n.id]))},o(Ba.value===n.id?e.$t(`dcwDetail.k3l3h80123`):e.$t(`dcwDetail.k3w6td174`)),9,Cn)])]),m(`td`,wn,o(n.min)+` ~ `+o(n.max)+` `+o(n.unit),1),m(`td`,Tn,[c(o(n.holdIntervalMs==null?e.$t(`dcwDetail.k3zul4160`):`${n.holdIntervalMs}ms`)+` `,1),m(`small`,{class:`dim`,title:e.$t(`dcwDetail.k9r7d4e016`)},`· `+o(n.readIntervalMs===0?e.$t(`dcwDetail.k9r7d4e022`):n.readIntervalMs==null?e.$t(`dcwDetail.k9r7d4e023`):`${n.readIntervalMs}ms`),9,En)]),m(`td`,null,o(wa(n.deviceBindingId)),1),m(`td`,Dn,[m(`button`,{class:`mini-btn danger`,onClick:e=>a(b).removeNode(n.id)},o(e.$t(`dcwDetail.k3xakp063`)),9,On)])],2))),128)),a(b).loaded&&E.value.length===0?(r(),d(`tr`,kn,[m(`td`,An,[m(`div`,jn,[m(`p`,Mn,o(e.$t(`dcwDetail.k1wtecyw064`)),1)])])])):f(``,!0)])])])]),_:1},8,[`spinning`]),m(`section`,Nn,[m(`div`,Pn,[m(`h3`,null,o(e.$t(`dcwDetail.k1j8w3hd065`)),1),m(`span`,Fn,o(D.value.length)+` `+o(e.$t(`dcwDetail.k1av3wgs143`))+` `+o(vo.value.length)+` `+o(e.$t(`dcwDetail.k48grv027`)),1),m(`button`,{class:`pill-btn`,style:{"margin-left":`auto`},onClick:Do},o(e.$t(`dcwDetail.k1akm6dc066`)),1),m(`button`,{class:`mini-btn`,onClick:t[29]||=e=>W.value=!0},o(e.$t(`dcwDetail.k1aka0ki067`)),1)]),m(`p`,In,o(e.$t(`dcwDetail.k6bl2q8068`)),1),D.value.length?(r(),d(`div`,Ln,[m(`button`,{class:i([`prod-chip`,{on:K.value===``}]),onClick:t[30]||=e=>K.value=``},o(e.$t(`dcwDetail.k3x4t1069`)),3),(r(!0),d(s,null,n(D.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,zn)],10,Rn))),128))])):(r(),d(`p`,Bn,o(e.$t(`dcwDetail.knov3zg070`)),1)),m(`div`,Vn,[(r(!0),d(s,null,n(vo.value,t=>(r(),d(`div`,{key:t.id,class:`recipe-item`},[m(`div`,Hn,[m(`b`,null,o(t.name),1),m(`small`,Un,o(yo(t.productId)),1),m(`small`,Wn,o(t.id),1)]),t.description?(r(),d(`p`,Gn,o(t.description),1)):f(``,!0),m(`div`,Kn,[(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(Ma(t.nodeId))+` ∈ [`+o(t.min??`-∞`)+`, `+o(t.max??`+∞`)+`] `,9,qn))),128))]),m(`div`,Jn,[m(`button`,{class:`pill-btn`,onClick:e=>Ao(t.id)},o(e.$t(`dcwDetail.k1497qvr071`)),9,Yn),m(`button`,{class:`mini-btn`,onClick:e=>Oo(t.id)},o(e.$t(`dcwDetail.k45eb0072`)),9,Xn),m(`button`,{class:`mini-btn danger`,onClick:e=>a(b).removeRecipe(t.id)},o(e.$t(`dcwDetail.k3xakp063`)),9,Zn)])]))),128)),vo.value.length===0?(r(),d(`div`,Qn,o(e.$t(`dcwDetail.keko1xy073`)),1)):f(``,!0)]),Q.value?(r(),d(`div`,$n,[c(o(e.$t(`dcwDetail.k1l3hrvp144`))+` `+o(Q.value.runId)+` `+o(e.$t(`dcwDetail.k1g3lh2v167`))+o(Q.value.ok)+`/`+o(Q.value.total)+` `+o(e.$t(`dcwDetail.k1bqci06149`))+` `,1),m(`button`,{class:`mini-btn`,style:{"margin-left":`10px`},disabled:Eo.value,onClick:t[31]||=e=>jo(Q.value.runId)},o(Eo.value?e.$t(`dcwDetail.k1br0ij9161`):e.$t(`dcwDetail.kxwei5175`)),9,er)])):f(``,!0),Pa.value.length?(r(),d(`div`,tr,[m(`p`,nr,o(e.$t(`dcwDetail.k1rjer8d074`)),1),m(`table`,rr,[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`,ir,o(e.$t(`dcwDetail.k40aa6061`)),1)])]),m(`tbody`,null,[(r(!0),d(s,null,n([...Pa.value].reverse().slice(0,8),t=>(r(),d(`tr`,{key:t.id},[m(`td`,ar,o(t.id),1),m(`td`,null,o(t.recipeName),1),m(`td`,or,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`,sr,[m(`button`,{class:`mini-btn`,disabled:Eo.value,onClick:e=>jo(t.id)},o(e.$t(`dcwDetail.k1dzwrdp078`)),9,cr),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,lr))])]))),128))])])])):f(``,!0),$.value?(r(),d(`div`,{key:4,class:`modal-mask`,onClick:t[33]||=_(e=>$.value=null,[`self`])},[m(`div`,ur,[m(`h3`,dr,o(e.$t(`dcwDetail.k11lq94k145`))+` `+o($.value.data.run.recipeName)+`(`+o($.value.runId)+`) `,1),m(`p`,fr,o(e.$t(`dcwDetail.k1me41w8080`)),1),m(`table`,pr,[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[64]||=m(`th`,null,`min ~ max`,-1),m(`th`,null,o(e.$t(`dcwDetail.k4118o085`)),1)])]),m(`tbody`,null,[(r(!0),d(s,null,n($.value.data.daq,e=>(r(),d(`tr`,{key:e.nodeId},[m(`td`,null,[c(o(e.ch),1),m(`small`,mr,o(e.unit),1)]),m(`td`,null,o(e.nodeName),1),m(`td`,hr,o(e.latest),1),m(`td`,gr,o(e.avg),1),m(`td`,_r,o(e.min)+` ~ `+o(e.max),1),m(`td`,vr,o(e.cnt),1)]))),128)),$.value.data.daq.length===0?(r(),d(`tr`,yr,[m(`td`,br,o(e.$t(`dcwDetail.kd457ry086`)),1)])):f(``,!0)])]),m(`p`,xr,o(e.$t(`dcwDetail.k12b7cxs087`)),1),m(`table`,Sr,[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($.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`,Cr,o(t.eng),1),m(`td`,wr,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`,Tr,o(t.at.slice(5,19)),1)]))),128)),$.value.data.writes.length===0?(r(),d(`tr`,Er,[m(`td`,Dr,o(e.$t(`dcwDetail.knzcp8i093`)),1)])):f(``,!0)])]),m(`div`,Or,[m(`button`,{class:`aw-pill outline`,onClick:t[32]||=e=>$.value=null},o(e.$t(`dcwDetail.k3x62t043`)),1)])])])):f(``,!0)]),J.value?(r(),d(`div`,{key:4,class:`modal-mask`,onClick:t[40]||=_(e=>J.value=!1,[`self`])},[m(`div`,kr,[m(`h3`,Ar,o(Y.value?e.$t(`dcwDetail.k1iiwk0i163`):e.$t(`dcwDetail.k1efq0r9176`)),1),m(`div`,jr,[m(`label`,Mr,[m(`span`,null,[c(o(e.$t(`dcwDetail.k1dw4fzf094`)),1),t[65]||=m(`em`,null,`*`,-1)]),h(m(`select`,{"onUpdate:modelValue":t[34]||=e=>Z.productId=e,class:`inp`},[(r(!0),d(s,null,n(D.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,Nr))),128))],512),[[v,Z.productId]])]),m(`label`,Pr,[m(`span`,null,[c(o(e.$t(`dcwDetail.k1l3f8so095`)),1),t[66]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":t[35]||=e=>Z.name=e,class:`inp`,placeholder:e.$t(`dcwDetail.k12c11vm014`)},null,8,Fr),[[y,Z.name]])]),m(`label`,Ir,[m(`span`,null,o(e.$t(`dcwDetail.k40gkk096`)),1),h(m(`input`,{"onUpdate:modelValue":t[36]||=e=>Z.description=e,class:`inp`,placeholder:e.$t(`dcwDetail.k1hxx8hy015`)},null,8,Lr),[[y,Z.description]])])]),m(`p`,Rr,o(e.$t(`dcwDetail.ka1kfgh097`)),1),(r(!0),d(s,null,n(Z.params,(i,a)=>(r(),d(`div`,{key:a,class:`param-row`},[m(`label`,zr,[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(E.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name)+`(`+o(Ea(e.templateRef))+` · `+o(e.min)+`~`+o(e.max)+` `+o(e.unit)+`) `,9,Vr))),128))],8,Br),[[v,i.nodeId]])]),m(`label`,Hr,[m(`span`,null,[c(o(e.$t(`dcwDetail.k3renp2098`)),1),t[67]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":e=>i.value=e,type:`number`,class:`inp`,step:.1},null,8,Ur),[[y,i.value,void 0,{number:!0}]])]),m(`label`,Wr,[m(`span`,null,o(e.$t(`dcwDetail.k134rw3b146`))+o(Da(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,Gr),[[y,i.min,void 0,{number:!0}]])]),m(`label`,Kr,[m(`span`,null,o(e.$t(`dcwDetail.khrv911147`))+o(Oa(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,qr),[[y,i.max,void 0,{number:!0}]])]),m(`button`,{class:`mini-btn danger param-del`,onClick:e=>Z.params.splice(a,1)},o(e.$t(`dcwDetail.k44idg099`)),9,Jr)]))),128)),m(`button`,{class:`mini-btn`,onClick:t[37]||=e=>Z.params.push({nodeId:E.value[0]?.id??``,value:``,min:``,max:``})},o(e.$t(`dcwDetail.k1broh7h100`)),1),m(`p`,Yr,o(e.$t(`dcwDetail.k1h5gues101`)),1),(r(!0),d(s,null,n(Z.daqWindows,(t,i)=>(r(),d(`div`,{key:`dw-${i}`,class:`param-row`},[m(`label`,Xr,[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(C.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name)+`(`+o(e.min)+`~`+o(e.max)+` `+o(e.unit)+`) `,9,Qr))),128))],8,Zr),[[v,t.nodeId]])]),m(`label`,$r,[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,ei),[[y,t.min,void 0,{number:!0}]])]),m(`label`,ti,[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,ni),[[y,t.max,void 0,{number:!0}]])]),m(`button`,{class:`mini-btn danger param-del`,onClick:e=>Z.daqWindows.splice(i,1)},o(e.$t(`dcwDetail.k44idg099`)),9,ri)]))),128)),m(`button`,{class:`mini-btn`,disabled:C.value.length===0,title:C.value.length===0?`本产线暂无数采节点`:``,onClick:t[38]||=e=>Z.daqWindows.push({nodeId:C.value[0]?.id??``,min:``,max:``})},o(e.$t(`dcwDetail.kv1de1p105`)),9,ii),X.value?(r(),d(`p`,ai,o(X.value),1)):f(``,!0),m(`div`,oi,[m(`button`,{class:`aw-pill outline`,onClick:t[39]||=e=>J.value=!1},o(e.$t(`dcwDetail.k3xdnn052`)),1),m(`button`,{class:`pill-btn`,disabled:To.value,onClick:ko},o(To.value?e.$t(`dcwDetail.k1b38d59164`):e.$t(`dcwDetail.k1b3kwg0177`)),9,si)])])])):f(``,!0),m(`section`,ci,[m(`p`,li,o(e.$t(`dcwDetail.k1us3jse106`)),1),m(`div`,ui,[m(`label`,di,[m(`span`,null,o(e.$t(`dcwDetail.k3waz1025`)),1),h(m(`select`,{"onUpdate:modelValue":t[41]||=e=>q.productId=e,class:`inp`,onChange:t[42]||=e=>q.recipeId=``},[m(`option`,fi,o(e.$t(`dcwDetail.k1bkl1jx107`)),1),(r(!0),d(s,null,n(D.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,pi))),128))],544),[[v,q.productId]])]),m(`label`,mi,[m(`span`,null,o(e.$t(`dcwDetail.k48grv027`)),1),h(m(`select`,{"onUpdate:modelValue":t[43]||=e=>q.recipeId=e,class:`inp`,disabled:!q.productId},[m(`option`,gi,o(e.$t(`dcwDetail.k1bkx7cr108`)),1),(r(!0),d(s,null,n(vo.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,_i))),128))],8,hi),[[v,q.recipeId]])]),m(`label`,vi,[m(`span`,null,o(e.$t(`dcwDetail.k1demcae109`)),1),h(m(`select`,{"onUpdate:modelValue":t[44]||=e=>q.paramKey=e,class:`inp`},[m(`option`,yi,o(e.$t(`dcwDetail.k1bkx7ya110`)),1),(r(!0),d(s,null,n(wo.value,e=>(r(),d(`option`,{key:e,value:e},o(e),9,bi))),128))],512),[[v,q.paramKey]])]),m(`label`,xi,[m(`span`,null,o(e.$t(`dcwDetail.k45uio082`)),1),h(m(`select`,{"onUpdate:modelValue":t[45]||=e=>q.nodeId=e,class:`inp`},[m(`option`,Si,o(e.$t(`dcwDetail.k1bkul3k111`)),1),(r(!0),d(s,null,n(C.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,Ci))),128))],512),[[v,q.nodeId]])]),m(`label`,wi,[m(`span`,null,o(e.$t(`dcwDetail.kx2ojn0112`)),1),h(m(`input`,{"onUpdate:modelValue":t[46]||=e=>q.lastMin=e,type:`number`,min:`1`,max:`10080`,class:`inp`},null,512),[[y,q.lastMin,void 0,{number:!0}]])]),m(`label`,Ti,[m(`span`,null,o(e.$t(`dcwDetail.kjvnvn4113`)),1),h(m(`input`,{"onUpdate:modelValue":t[47]||=e=>q.bucketMs=e,type:`number`,min:`0`,step:`100`,class:`inp`},null,512),[[y,q.bucketMs,void 0,{number:!0}]])]),m(`div`,Ei,[m(`button`,{class:`pill-btn`,disabled:xo.value,onClick:Co},o(xo.value?e.$t(`dcwDetail.k1eyx09r165`):e.$t(`dcwDetail.k416ek178`)),9,Di)])]),So.value?(r(),d(`p`,Oi,o(So.value),1)):f(``,!0),bo.value?(r(),d(`div`,ki,[m(`table`,Ai,[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(bo.value.channels,e=>(r(),d(`tr`,{key:e.nodeId},[m(`td`,null,[c(o(e.ch),1),m(`small`,ji,o(e.unit),1)]),m(`td`,null,o(e.nodeName),1),m(`td`,Mi,o(e.points.length),1),m(`td`,Ni,o(Mo(e.points[0])),1),m(`td`,Pi,o(Mo(e.points[e.points.length-1])),1),m(`td`,Fi,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)]),Fa.value.length?(r(),d(`section`,Ii,[m(`p`,Li,o(e.$t(`dcwDetail.kw7ym9b148`))+` `+o(Fa.value.length)+` `+o(e.$t(`dcwDetail.k40bfz150`)),1),m(`table`,Ri,[m(`tbody`,null,[(r(!0),d(s,null,n(Fa.value.slice(0,12),t=>(r(),d(`tr`,{key:t.id},[m(`td`,zi,o(t.at.slice(5,19)),1),m(`td`,null,o(t.param),1),m(`td`,null,o(t.nodeName),1),m(`td`,Bi,o(t.eng),1),m(`td`,Vi,` 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`,Hi,o(t.recipeRunId?e.$t(`dcwDetail.k6vgks7181`,{p0:t.recipeRunId}):`手动`),1)]))),128))])])])):f(``,!0),W.value?(r(),d(`div`,{key:6,class:`modal-mask`,onClick:t[51]||=_(e=>W.value=!1,[`self`])},[m(`div`,Ui,[m(`h3`,Wi,o(e.$t(`dcwDetail.k1efduyf118`)),1),m(`div`,Gi,[m(`label`,Ki,[m(`span`,null,[c(o(e.$t(`dcwDetail.k1avjrl6119`)),1),t[68]||=m(`em`,null,`*`,-1)]),h(m(`input`,{"onUpdate:modelValue":t[48]||=e=>G.name=e,class:`inp`,placeholder:e.$t(`dcwDetail.k12c11vm014`)},null,8,qi),[[y,G.name]])]),m(`label`,Ji,[m(`span`,null,o(e.$t(`dcwDetail.k40gkk096`)),1),h(m(`input`,{"onUpdate:modelValue":t[49]||=e=>G.description=e,class:`inp`,placeholder:e.$t(`dcwDetail.k1hxx8hy015`)},null,8,Yi),[[y,G.description]])])]),go.value?(r(),d(`p`,Xi,o(go.value),1)):f(``,!0),m(`div`,Zi,[m(`button`,{class:`aw-pill outline`,onClick:t[50]||=e=>W.value=!1},o(e.$t(`dcwDetail.k3xdnn052`)),1),m(`button`,{class:`pill-btn`,disabled:ho.value,onClick:_o},o(ho.value?e.$t(`dcwDetail.k1bg4759156`):e.$t(`dcwDetail.k1bg4kn6179`)),9,Qi)])])])):f(``,!0),a(b).error?(r(),d(`p`,$i,[c(o(a(b).error)+`(`,1),ne(l,{to:`/workshop`},{default:te(()=>[c(o(e.$t(`dcwDetail.k1bhhheq120`)),1)]),_:1}),t[69]||=c(`) `,-1)])):f(``,!0),m(`section`,ea,[m(`div`,ta,[m(`b`,null,o(e.$t(`dcwDetail.k1ledgt001`)),1),h(m(`select`,{"onUpdate:modelValue":t[52]||=e=>w.value=e,class:`inp`,onChange:Aa},[m(`option`,na,o(e.$t(`dcwDetail.k1ledgs001`)),1),(r(!0),d(s,null,n(E.value,e=>(r(),d(`option`,{key:e.id,value:e.id},o(e.name),9,ra))),128))],544),[[v,w.value]])]),T.value?(r(),d(s,{key:0},[m(`div`,ia,[m(`div`,aa,[m(`small`,null,o(e.$t(`dcwDetail.k1ledgv001`)),1),m(`b`,oa,o(T.value.current??`--`),1)]),m(`div`,sa,[m(`small`,null,o(e.$t(`dcwDetail.k1ledgv002`)),1),m(`b`,ca,o(T.value.recipeTarget??`--`),1)]),m(`div`,la,[m(`small`,null,o(e.$t(`dcwDetail.k1ledgv003`)),1),m(`b`,ua,o(T.value.lastGood??`--`),1)]),m(`button`,{class:`mini-btn`,onClick:Aa},o(e.$t(`dcwDetail.k1ledga001`)),1),m(`button`,{class:`mini-btn danger`,onClick:ja},o(e.$t(`dcwDetail.k1ledga002`)),1)]),m(`div`,da,[m(`div`,fa,[m(`small`,pa,o(e.$t(`dcwDetail.k1ledgh001`)),1),m(`ul`,ma,[(r(!0),d(s,null,n(T.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`,ha,[m(`small`,ga,o(e.$t(`dcwDetail.k1ledgr001`)),1),m(`ul`,_a,[(r(!0),d(s,null,n(T.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`,va,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-0c94de6c`]]);export{ya as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ft as e}from"./BSCpFtzG.js";import{t}from"./36oeS8_R2.js";import{i as n}from"./
|
|
1
|
+
import{ft as e}from"./BSCpFtzG.js";import{t}from"./36oeS8_R2.js";import{i as n}from"./GP2wXyuY.js";var r=40,i=(e,t)=>n({base:`/api/workshop/ops-logs`,path:e,init:t});function a(e){return{id:0,actor:e.actor,actorName:e.actorName||e.actor,actorKind:e.actorKind,action:e.action,targetKind:e.targetKind,targetId:e.targetId,detailJson:``,at:e.at,lineId:e.lineId,productId:e.productId,recipeId:e.recipeId,kind:e.kind,summary:e.summary}}var o=()=>{let n=e([]),o=e([]),s=e({list:!1,posting:!1}),c=e({list:``,post:``});function l(){let e=globalThis;return e.__opsLogFed?()=>{}:(e.__opsLogFed=!0,u(),t().subscribe(e=>{if(e.type===`ops.log`){let t=a(e.payload);n.some(e=>e.at===t.at&&e.actor===t.actor&&e.action===t.action)||(n.unshift(t),n.length>r&&n.splice(r))}}))}async function u(){try{let e=await i(`?limit=15`);for(let t of(e.logs??[]).reverse())n.some(e=>e.at===t.at&&e.actor===t.actor&&e.action===t.action)||n.unshift(t)}catch{}}async function d(e={}){s.list=!0,c.list=``;try{let t=new URLSearchParams;for(let[n,r]of Object.entries(e))r!=null&&r!==``&&t.set(n,String(r));let n=await i(`?${t.toString()}`);o.splice(0,o.length,...n.logs??[])}catch(e){c.list=e instanceof Error?e.message:String(e)}finally{s.list=!1}}async function f(e){s.posting=!0,c.post=``;try{await i(``,{method:`POST`,body:JSON.stringify(e)})}catch(e){throw c.post=e instanceof Error?e.message:String(e),e}finally{s.posting=!1}}return e({recent:n,results:o,loading:s,error:c,ensureLive:l,fetchLogs:d,postManual:f})},s=`__opsLogStream`;function c(){let e=globalThis;return e[s]||(e[s]=o()),e[s]}export{c as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{A as e,B as t,C as n,F as r,G as i,H as a,Ht as o,M as s,O as c,Q as l,St as u,U as d,Ut as f,V as p,Wt as m,Y as h,a as g,b as _,bt as v,c as y,d as b,dt as x,et as S,f as C,ft as w,g as T,gt as E,h as D,lt as O,m as k,mt as A,nt as j,p as M,q as N,rt as P,t as F,x as I,y as L,z as R}from"./BSCpFtzG.js";import{B as z,L as B,R as V,k as H,z as U}from"./2LwEn9gX.js";import{d as W,p as G}from"./PQLnLxYe.js";import{n as ee}from"./uBbDCfTz.js";import{n as K}from"./BeIfu4N3.js";import{t as q}from"./DRq09ZmT.js";import{t as te}from"./BJvGPTpC.js";import{$ as J,At as Y,Ct as ne,E as X,J as re,O as ie,Q as ae,X as oe,Z as se,at as ce,ct as le,d as ue,et as de,h as fe,it as pe,j as me,kt as Z,m as he,n as ge,pt as _e,t as ve,tt as ye,u as be}from"./BDUjyaF4.js";import{$ as xe,c as Se,i as Ce}from"./rzGB_ojX.js";import{t as we}from"./BfGc7TJp.js";import{G as Te,V as Ee,t as De}from"./Z8k0uMSI.js";import{i as Oe,n as ke,r as Ae,t as je}from"./DSBfvCi5.js";import{a as Me,i as Ne,t as Pe}from"./Bsc69G4x.js";import{n as Fe,t as Ie,u as Le}from"./9X0fVBD7.js";import{a as Re,i as ze,n as Be,r as Ve,t as He}from"./ByGNWgAr.js";import{i as Ue,n as We,r as Ge,t as Ke}from"./DPDqAD1e.js";import{t as qe}from"./BFYNhG9S.js";import{n as Je,r as Ye,t as Xe}from"./DdPeifHR.js";import{t as Ze}from"./DYWgGHNo.js";import{r as Q,s as Qe}from"./W1E3-5ML.js";import{t as $e}from"./Ce1zyNYu.js";import{t as et}from"./lO5tpDZ5.js";import{t as tt}from"./OwJ1LJkF.js";import{t as nt}from"./R_WxTozV2.js";import{t as rt}from"./CrFGZYVB2.js";import{n as it,r as at,t as ot}from"./B4GHHF6d2.js";import{t as st}from"./7ZABjMRh2.js";import{t as ct}from"./C9f8QMp12.js";import{t as lt}from"./D8DDDzV62.js";import{t as ut}from"./NIM0Wglj2.js";import{t as dt}from"./C_gFA2H_2.js";import{n as ft}from"./BE5QyG5J2.js";import{t as pt}from"./CNs_Ozdc2.js";import{a as mt,c as ht,d as gt,f as _t,i as vt,l as yt,n as $,o as bt,r as xt,s as St,t as Ct,u as wt}from"./dt2tKE95.js";import{t as Tt}from"./HWXLx5Hz.js";import{n as Et,t as Dt}from"./BxD8Fg_Z.js";function Ot(e){let{prefixCls:t,value:n,current:r,offset:i=0}=e,a;return i&&(a={position:`absolute`,top:`${i}00%`,left:0}),I(`p`,{style:a,class:ne(`${t}-only-unit`,{current:r})},[n])}function kt(e,t,n){let r=e,i=0;for(;(r+10)%10!==t;)r+=n,i+=n;return i}var At=n({compatConfig:{MODE:3},name:`SingleNumber`,props:{prefixCls:String,value:String,count:Number},setup(e){let n=C(()=>Number(e.value)),r=C(()=>Math.abs(e.count)),i=w({prevValue:n.value,prevCount:r.value}),a=()=>{i.prevValue=n.value,i.prevCount=r.value},o=A();return S(n,()=>{clearTimeout(o.value),o.value=setTimeout(()=>{a()},1e3)},{flush:`post`}),t(()=>{clearTimeout(o.value)}),()=>{let t,o={},s=n.value;if(i.prevValue===s||Number.isNaN(s)||Number.isNaN(i.prevValue))t=[Ot(Z(Z({},e),{current:!0}))],o={transition:`none`};else{t=[];let n=s+10,a=[];for(let e=s;e<=n;e+=1)a.push(e);let c=a.findIndex(e=>e%10===i.prevValue);t=a.map((t,n)=>{let r=t%10;return Ot(Z(Z({},e),{value:r,offset:n-c,current:n===c}))});let l=i.prevCount<r.value?1:-1;o={transform:`translateY(${-kt(i.prevValue,s,l)}00%)`}}return I(`span`,{class:`${e.prefixCls}-only`,style:o,onTransitionend:()=>a()},[t])}}}),jt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Mt={prefixCls:String,count:ve.any,component:String,title:ve.any,show:Boolean},Nt=n({compatConfig:{MODE:3},name:`ScrollNumber`,inheritAttrs:!1,props:Mt,setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i}=ge(`scroll-number`,e);return()=>{let t=Z(Z({},e),n),{prefixCls:a,count:o,title:s,show:c,component:l=`sup`,class:u,style:d}=t,f=jt(t,[`prefixCls`,`count`,`title`,`show`,`component`,`class`,`style`]),p=Z(Z({},f),{style:d,"data-show":e.show,class:ne(i.value,u),title:s}),m=o;if(o&&Number(o)%1==0){let e=String(o).split(``);m=e.map((t,n)=>I(At,{prefixCls:i.value,count:Number(o),value:t,key:e.length-n},null))}d&&d.borderColor&&(p.style=Z(Z({},d),{boxShadow:`0 0 0 1px ${d.borderColor} inset`}));let h=ce(r.default?.call(r));return h&&h.length?Ee(h,{class:ne(`${i.value}-custom-component`)},!1):I(l,p,{default:()=>[m]})}}}),Pt=new ie(`antStatusProcessing`,{"0%":{transform:`scale(0.8)`,opacity:.5},"100%":{transform:`scale(2.4)`,opacity:0}}),Ft=new ie(`antZoomBadgeIn`,{"0%":{transform:`scale(0) translate(50%, -50%)`,opacity:0},"100%":{transform:`scale(1) translate(50%, -50%)`}}),It=new ie(`antZoomBadgeOut`,{"0%":{transform:`scale(1) translate(50%, -50%)`},"100%":{transform:`scale(0) translate(50%, -50%)`,opacity:0}}),Lt=new ie(`antNoWrapperZoomBadgeIn`,{"0%":{transform:`scale(0)`,opacity:0},"100%":{transform:`scale(1)`}}),Rt=new ie(`antNoWrapperZoomBadgeOut`,{"0%":{transform:`scale(1)`},"100%":{transform:`scale(0)`,opacity:0}}),zt=new ie(`antBadgeLoadingCircle`,{"0%":{transformOrigin:`50%`},"100%":{transform:`translate(50%, -50%) rotate(360deg)`,transformOrigin:`50%`}}),Bt=e=>{let{componentCls:t,iconCls:n,antCls:r,badgeFontHeight:i,badgeShadowSize:a,badgeHeightSm:o,motionDurationSlow:s,badgeStatusSize:c,marginXS:l,badgeRibbonOffset:u}=e,d=`${r}-scroll-number`,f=`${r}-ribbon`,p=`${r}-ribbon-wrapper`,m=xe(e,(e,n)=>{let{darkColor:r}=n;return{[`&${t} ${t}-color-${e}`]:{background:r,[`&:not(${t}-count)`]:{color:r}}}}),h=xe(e,(e,t)=>{let{darkColor:n}=t;return{[`&${f}-color-${e}`]:{background:n,color:n}}});return{[t]:Z(Z(Z(Z({},fe(e)),{position:`relative`,display:`inline-block`,width:`fit-content`,lineHeight:1,[`${t}-count`]:{zIndex:e.badgeZIndex,minWidth:e.badgeHeight,height:e.badgeHeight,color:e.badgeTextColor,fontWeight:e.badgeFontWeight,fontSize:e.badgeFontSize,lineHeight:`${e.badgeHeight}px`,whiteSpace:`nowrap`,textAlign:`center`,background:e.badgeColor,borderRadius:e.badgeHeight/2,boxShadow:`0 0 0 ${a}px ${e.badgeShadowColor}`,transition:`background ${e.motionDurationMid}`,a:{color:e.badgeTextColor},"a:hover":{color:e.badgeTextColor},"a:hover &":{background:e.badgeColorHover}},[`${t}-count-sm`]:{minWidth:o,height:o,fontSize:e.badgeFontSizeSm,lineHeight:`${o}px`,borderRadius:o/2},[`${t}-multiple-words`]:{padding:`0 ${e.paddingXS}px`},[`${t}-dot`]:{zIndex:e.badgeZIndex,width:e.badgeDotSize,minWidth:e.badgeDotSize,height:e.badgeDotSize,background:e.badgeColor,borderRadius:`100%`,boxShadow:`0 0 0 ${a}px ${e.badgeShadowColor}`},[`${t}-dot${d}`]:{transition:`background ${s}`},[`${t}-count, ${t}-dot, ${d}-custom-component`]:{position:`absolute`,top:0,insetInlineEnd:0,transform:`translate(50%, -50%)`,transformOrigin:`100% 0%`,[`&${n}-spin`]:{animationName:zt,animationDuration:`1s`,animationIterationCount:`infinite`,animationTimingFunction:`linear`}},[`&${t}-status`]:{lineHeight:`inherit`,verticalAlign:`baseline`,[`${t}-status-dot`]:{position:`relative`,top:-1,display:`inline-block`,width:c,height:c,verticalAlign:`middle`,borderRadius:`50%`},[`${t}-status-success`]:{backgroundColor:e.colorSuccess},[`${t}-status-processing`]:{overflow:`visible`,color:e.colorPrimary,backgroundColor:e.colorPrimary,"&::after":{position:`absolute`,top:0,insetInlineStart:0,width:`100%`,height:`100%`,borderWidth:a,borderStyle:`solid`,borderColor:`inherit`,borderRadius:`50%`,animationName:Pt,animationDuration:e.badgeProcessingDuration,animationIterationCount:`infinite`,animationTimingFunction:`ease-in-out`,content:`""`}},[`${t}-status-default`]:{backgroundColor:e.colorTextPlaceholder},[`${t}-status-error`]:{backgroundColor:e.colorError},[`${t}-status-warning`]:{backgroundColor:e.colorWarning},[`${t}-status-text`]:{marginInlineStart:l,color:e.colorText,fontSize:e.fontSize}}}),m),{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:Ft,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`${t}-zoom-leave`]:{animationName:It,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`&${t}-not-a-wrapper`]:{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:Lt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`${t}-zoom-leave`]:{animationName:Rt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`&:not(${t}-status)`]:{verticalAlign:`middle`},[`${d}-custom-component, ${t}-count`]:{transform:`none`},[`${d}-custom-component, ${d}`]:{position:`relative`,top:`auto`,display:`block`,transformOrigin:`50% 50%`}},[`${d}`]:{overflow:`hidden`,[`${d}-only`]:{position:`relative`,display:`inline-block`,height:e.badgeHeight,transition:`all ${e.motionDurationSlow} ${e.motionEaseOutBack}`,WebkitTransformStyle:`preserve-3d`,WebkitBackfaceVisibility:`hidden`,[`> p${d}-only-unit`]:{height:e.badgeHeight,margin:0,WebkitTransformStyle:`preserve-3d`,WebkitBackfaceVisibility:`hidden`}},[`${d}-symbol`]:{verticalAlign:`top`}},"&-rtl":{direction:`rtl`,[`${t}-count, ${t}-dot, ${d}-custom-component`]:{transform:`translate(-50%, -50%)`}}}),[`${p}`]:{position:`relative`},[`${f}`]:Z(Z(Z(Z({},fe(e)),{position:`absolute`,top:l,padding:`0 ${e.paddingXS}px`,color:e.colorPrimary,lineHeight:`${i}px`,whiteSpace:`nowrap`,backgroundColor:e.colorPrimary,borderRadius:e.borderRadiusSM,[`${f}-text`]:{color:e.colorTextLightSolid},[`${f}-corner`]:{position:`absolute`,top:`100%`,width:u,height:u,color:`currentcolor`,border:`${u/2}px solid`,transform:e.badgeRibbonCornerTransform,transformOrigin:`top`,filter:e.badgeRibbonCornerFilter}}),h),{[`&${f}-placement-end`]:{insetInlineEnd:-u,borderEndEndRadius:0,[`${f}-corner`]:{insetInlineEnd:0,borderInlineEndColor:`transparent`,borderBlockEndColor:`transparent`}},[`&${f}-placement-start`]:{insetInlineStart:-u,borderEndStartRadius:0,[`${f}-corner`]:{insetInlineStart:0,borderBlockEndColor:`transparent`,borderInlineStartColor:`transparent`}},"&-rtl":{direction:`rtl`}})}},Vt=ue(`Badge`,e=>{let{fontSize:t,lineHeight:n,fontSizeSM:r,lineWidth:i,marginXS:a,colorBorderBg:o}=e,s=Math.round(t*n),c=i,l=s-2*c,u=e.colorBgContainer,d=r,f=e.colorError,p=e.colorErrorHover,m=t,h=r/2,g=r,_=r/2;return[Bt(be(e,{badgeFontHeight:s,badgeShadowSize:c,badgeZIndex:`auto`,badgeHeight:l,badgeTextColor:u,badgeFontWeight:`normal`,badgeFontSize:d,badgeColor:f,badgeColorHover:p,badgeShadowColor:o,badgeHeightSm:m,badgeDotSize:h,badgeFontSizeSm:g,badgeStatusSize:_,badgeProcessingDuration:`1.2s`,badgeRibbonOffset:a,badgeRibbonCornerTransform:`scaleY(0.75)`,badgeRibbonCornerFilter:`brightness(75%)`}))]}),Ht=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Ut=n({compatConfig:{MODE:3},name:`ABadgeRibbon`,inheritAttrs:!1,props:{prefix:String,color:{type:String},text:ve.any,placement:{type:String,default:`end`}},slots:Object,setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i,direction:a}=ge(`ribbon`,e),[o,s]=Vt(i),c=C(()=>Se(e.color,!1)),l=C(()=>[i.value,`${i.value}-placement-${e.placement}`,{[`${i.value}-rtl`]:a.value===`rtl`,[`${i.value}-color-${e.color}`]:c.value}]);return()=>{let{class:t,style:a}=n,u=Ht(n,[`class`,`style`]),d={},f={};return e.color&&!c.value&&(d.background=e.color,f.color=e.color),o(I(`div`,Y({class:`${i.value}-wrapper ${s.value}`},u),[r.default?.call(r),I(`div`,{class:[l.value,t,s.value],style:Z(Z({},d),a)},[I(`span`,{class:`${i.value}-text`},[e.text||r.text?.call(r)]),I(`div`,{class:`${i.value}-corner`,style:f},null)])]))}}}),Wt=n({compatConfig:{MODE:3},name:`ABadge`,Ribbon:Ut,inheritAttrs:!1,props:{count:ve.any.def(null),showZero:{type:Boolean,default:void 0},overflowCount:{type:Number,default:99},dot:{type:Boolean,default:void 0},prefixCls:String,scrollNumberPrefixCls:String,status:{type:String},size:{type:String,default:`default`},color:String,text:ve.any,offset:Array,numberStyle:{type:Object,default:void 0},title:String},slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=ge(`badge`,e),[o,s]=Vt(i),c=C(()=>e.count>e.overflowCount?`${e.overflowCount}+`:e.count),l=C(()=>c.value===`0`||c.value===0),u=C(()=>e.count===null||l.value&&!e.showZero),d=C(()=>(e.status!==null&&e.status!==void 0||e.color!==null&&e.color!==void 0)&&u.value),f=C(()=>e.dot&&!l.value),p=C(()=>f.value?``:c.value),m=C(()=>(p.value===null||p.value===void 0||p.value===``||l.value&&!e.showZero)&&!f.value),h=A(e.count),g=A(p.value),_=A(f.value);S([()=>e.count,p,f],()=>{m.value||(h.value=e.count,g.value=p.value,_.value=f.value)},{immediate:!0});let v=C(()=>Se(e.color,!1)),y=C(()=>({[`${i.value}-status-dot`]:d.value,[`${i.value}-status-${e.status}`]:!!e.status,[`${i.value}-color-${e.color}`]:v.value})),b=C(()=>e.color&&!v.value?{background:e.color,color:e.color}:{}),x=C(()=>({[`${i.value}-dot`]:_.value,[`${i.value}-count`]:!_.value,[`${i.value}-count-sm`]:e.size===`small`,[`${i.value}-multiple-words`]:!_.value&&g.value&&g.value.toString().length>1,[`${i.value}-status-${e.status}`]:!!e.status,[`${i.value}-color-${e.color}`]:v.value}));return()=>{let{offset:t,title:c,color:l}=e,u=r.style,f=_e(n,e,`text`),p=i.value,_=h.value,S=le(n.default?.call(n));S=S.length?S:null;let C=!!(!m.value||n.count),w=(()=>{if(!t)return Z({},u);let e={marginTop:et(t[1])?`${t[1]}px`:t[1]};return a.value===`rtl`?e.left=`${parseInt(t[0],10)}px`:e.right=`${-parseInt(t[0],10)}px`,Z(Z({},e),u)})(),T=c??(typeof _==`string`||typeof _==`number`?_:void 0),E=C||!f?null:I(`span`,{class:`${p}-status-text`},[f]),D=typeof _==`object`||_===void 0&&n.count?Ee(_??n.count?.call(n),{style:w},!1):null,O=ne(p,{[`${p}-status`]:d.value,[`${p}-not-a-wrapper`]:!S,[`${p}-rtl`]:a.value===`rtl`},r.class,s.value);if(!S&&d.value){let e=w.color;return o(I(`span`,Y(Y({},r),{},{class:O,style:w}),[I(`span`,{class:y.value,style:b.value},null),I(`span`,{style:{color:e},class:`${p}-status-text`},[f])]))}let k=Le(S?`${p}-zoom`:``,{appear:!1}),A=Z(Z({},w),e.numberStyle);return l&&!v.value&&(A||={},A.background=l),o(I(`span`,Y(Y({},r),{},{class:O}),[S,I(H,k,{default:()=>[P(I(Nt,{prefixCls:e.scrollNumberPrefixCls,show:C,class:x.value,count:g.value,title:T,style:A,key:`scrollNumber`},{default:()=>[D]}),[[V,C]])]}),E]))}}});Wt.install=function(e){return e.component(Wt.name,Wt),e.component(Ut.name,Ut),e};var Gt=Wt,Kt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},qt=n({compatConfig:{MODE:3},name:`ABreadcrumbItem`,inheritAttrs:!1,__ANT_BREADCRUMB_ITEM:!0,props:{prefixCls:String,href:String,separator:ve.any,dropdownProps:J(),overlay:ve.any,onClick:se()},slots:Object,setup(e,t){let{slots:n,attrs:r,emit:i}=t,{prefixCls:a}=ge(`breadcrumb`,e),o=(t,r)=>{let i=_e(n,e,`overlay`);return i?I(tt,Y(Y({},e.dropdownProps),{},{overlay:i,placement:`bottom`}),{default:()=>[I(`span`,{class:`${r}-overlay-link`},[t,I(Me,null,null)])]}):t},s=e=>{i(`click`,e)};return()=>{let t=_e(n,e,`separator`)??`/`,i=_e(n,e),{class:c,style:l}=r,u=Kt(r,[`class`,`style`]),d;return d=e.href===void 0?I(`span`,Y({class:`${a.value}-link`,onClick:s},u),[i]):I(`a`,Y({class:`${a.value}-link`,onClick:s},u),[i]),d=o(d,a.value),i==null?null:I(`li`,{class:c,style:l},[d,t&&I(`span`,{class:`${a.value}-separator`},[t])])}}}),Jt=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:Z(Z({},fe(e)),{color:e.breadcrumbBaseColor,fontSize:e.breadcrumbFontSize,[n]:{fontSize:e.breadcrumbIconFontSize},ol:{display:`flex`,flexWrap:`wrap`,margin:0,padding:0,listStyle:`none`},a:Z({color:e.breadcrumbLinkColor,transition:`color ${e.motionDurationMid}`,padding:`0 ${e.paddingXXS}px`,borderRadius:e.borderRadiusSM,height:e.lineHeight*e.fontSize,display:`inline-block`,marginInline:-e.marginXXS,"&:hover":{color:e.breadcrumbLinkColorHover,backgroundColor:e.colorBgTextHover}},he(e)),"li:last-child":{color:e.breadcrumbLastItemColor,[`& > ${t}-separator`]:{display:`none`}},[`${t}-separator`]:{marginInline:e.breadcrumbSeparatorMargin,color:e.breadcrumbSeparatorColor},[`${t}-link`]:{[`
|
|
1
|
+
import{A as e,B as t,C as n,F as r,G as i,H as a,Ht as o,M as s,O as c,Q as l,St as u,U as d,Ut as f,V as p,Wt as m,Y as h,a as g,b as _,bt as v,c as y,d as b,dt as x,et as S,f as C,ft as w,g as T,gt as E,h as D,lt as O,m as k,mt as A,nt as j,p as M,q as N,rt as P,t as F,x as I,y as L,z as R}from"./BSCpFtzG.js";import{B as z,L as B,R as V,k as H,z as U}from"./2LwEn9gX.js";import{d as W,p as G}from"./PQLnLxYe.js";import{n as ee}from"./uBbDCfTz.js";import{n as K}from"./BeIfu4N3.js";import{t as q}from"./DRq09ZmT.js";import{t as te}from"./BJvGPTpC.js";import{$ as J,At as Y,Ct as ne,E as X,J as re,O as ie,Q as ae,X as oe,Z as se,at as ce,ct as le,d as ue,et as de,h as fe,it as pe,j as me,kt as Z,m as he,n as ge,pt as _e,t as ve,tt as ye,u as be}from"./BDUjyaF4.js";import{$ as xe,c as Se,i as Ce}from"./rzGB_ojX.js";import{t as we}from"./BfGc7TJp.js";import{G as Te,V as Ee,t as De}from"./Z8k0uMSI.js";import{i as Oe,n as ke,r as Ae,t as je}from"./DSBfvCi5.js";import{a as Me,i as Ne,t as Pe}from"./Bsc69G4x.js";import{n as Fe,t as Ie,u as Le}from"./9X0fVBD7.js";import{a as Re,i as ze,n as Be,r as Ve,t as He}from"./ByGNWgAr.js";import{i as Ue,n as We,r as Ge,t as Ke}from"./DPDqAD1e.js";import{t as qe}from"./BFYNhG9S.js";import{n as Je,r as Ye,t as Xe}from"./DdPeifHR.js";import{t as Ze}from"./DYWgGHNo.js";import{r as Q,s as Qe}from"./W1E3-5ML.js";import{t as $e}from"./Ce1zyNYu.js";import{t as et}from"./lO5tpDZ5.js";import{t as tt}from"./OwJ1LJkF.js";import{t as nt}from"./R_WxTozV2.js";import{t as rt}from"./CrFGZYVB2.js";import{n as it,r as at,t as ot}from"./B4GHHF6d2.js";import{t as st}from"./7ZABjMRh2.js";import{t as ct}from"./C9f8QMp12.js";import{t as lt}from"./D8DDDzV62.js";import{t as ut}from"./NIM0Wglj2.js";import{t as dt}from"./C_gFA2H_2.js";import{n as ft}from"./BE5QyG5J2.js";import{t as pt}from"./CNs_Ozdc2.js";import{a as mt,c as ht,d as gt,f as _t,i as vt,l as yt,n as $,o as bt,r as xt,s as St,t as Ct,u as wt}from"./dt2tKE95.js";import{t as Tt}from"./HWXLx5Hz.js";import{n as Et,t as Dt}from"./DC-QMEk1.js";function Ot(e){let{prefixCls:t,value:n,current:r,offset:i=0}=e,a;return i&&(a={position:`absolute`,top:`${i}00%`,left:0}),I(`p`,{style:a,class:ne(`${t}-only-unit`,{current:r})},[n])}function kt(e,t,n){let r=e,i=0;for(;(r+10)%10!==t;)r+=n,i+=n;return i}var At=n({compatConfig:{MODE:3},name:`SingleNumber`,props:{prefixCls:String,value:String,count:Number},setup(e){let n=C(()=>Number(e.value)),r=C(()=>Math.abs(e.count)),i=w({prevValue:n.value,prevCount:r.value}),a=()=>{i.prevValue=n.value,i.prevCount=r.value},o=A();return S(n,()=>{clearTimeout(o.value),o.value=setTimeout(()=>{a()},1e3)},{flush:`post`}),t(()=>{clearTimeout(o.value)}),()=>{let t,o={},s=n.value;if(i.prevValue===s||Number.isNaN(s)||Number.isNaN(i.prevValue))t=[Ot(Z(Z({},e),{current:!0}))],o={transition:`none`};else{t=[];let n=s+10,a=[];for(let e=s;e<=n;e+=1)a.push(e);let c=a.findIndex(e=>e%10===i.prevValue);t=a.map((t,n)=>{let r=t%10;return Ot(Z(Z({},e),{value:r,offset:n-c,current:n===c}))});let l=i.prevCount<r.value?1:-1;o={transform:`translateY(${-kt(i.prevValue,s,l)}00%)`}}return I(`span`,{class:`${e.prefixCls}-only`,style:o,onTransitionend:()=>a()},[t])}}}),jt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Mt={prefixCls:String,count:ve.any,component:String,title:ve.any,show:Boolean},Nt=n({compatConfig:{MODE:3},name:`ScrollNumber`,inheritAttrs:!1,props:Mt,setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i}=ge(`scroll-number`,e);return()=>{let t=Z(Z({},e),n),{prefixCls:a,count:o,title:s,show:c,component:l=`sup`,class:u,style:d}=t,f=jt(t,[`prefixCls`,`count`,`title`,`show`,`component`,`class`,`style`]),p=Z(Z({},f),{style:d,"data-show":e.show,class:ne(i.value,u),title:s}),m=o;if(o&&Number(o)%1==0){let e=String(o).split(``);m=e.map((t,n)=>I(At,{prefixCls:i.value,count:Number(o),value:t,key:e.length-n},null))}d&&d.borderColor&&(p.style=Z(Z({},d),{boxShadow:`0 0 0 1px ${d.borderColor} inset`}));let h=ce(r.default?.call(r));return h&&h.length?Ee(h,{class:ne(`${i.value}-custom-component`)},!1):I(l,p,{default:()=>[m]})}}}),Pt=new ie(`antStatusProcessing`,{"0%":{transform:`scale(0.8)`,opacity:.5},"100%":{transform:`scale(2.4)`,opacity:0}}),Ft=new ie(`antZoomBadgeIn`,{"0%":{transform:`scale(0) translate(50%, -50%)`,opacity:0},"100%":{transform:`scale(1) translate(50%, -50%)`}}),It=new ie(`antZoomBadgeOut`,{"0%":{transform:`scale(1) translate(50%, -50%)`},"100%":{transform:`scale(0) translate(50%, -50%)`,opacity:0}}),Lt=new ie(`antNoWrapperZoomBadgeIn`,{"0%":{transform:`scale(0)`,opacity:0},"100%":{transform:`scale(1)`}}),Rt=new ie(`antNoWrapperZoomBadgeOut`,{"0%":{transform:`scale(1)`},"100%":{transform:`scale(0)`,opacity:0}}),zt=new ie(`antBadgeLoadingCircle`,{"0%":{transformOrigin:`50%`},"100%":{transform:`translate(50%, -50%) rotate(360deg)`,transformOrigin:`50%`}}),Bt=e=>{let{componentCls:t,iconCls:n,antCls:r,badgeFontHeight:i,badgeShadowSize:a,badgeHeightSm:o,motionDurationSlow:s,badgeStatusSize:c,marginXS:l,badgeRibbonOffset:u}=e,d=`${r}-scroll-number`,f=`${r}-ribbon`,p=`${r}-ribbon-wrapper`,m=xe(e,(e,n)=>{let{darkColor:r}=n;return{[`&${t} ${t}-color-${e}`]:{background:r,[`&:not(${t}-count)`]:{color:r}}}}),h=xe(e,(e,t)=>{let{darkColor:n}=t;return{[`&${f}-color-${e}`]:{background:n,color:n}}});return{[t]:Z(Z(Z(Z({},fe(e)),{position:`relative`,display:`inline-block`,width:`fit-content`,lineHeight:1,[`${t}-count`]:{zIndex:e.badgeZIndex,minWidth:e.badgeHeight,height:e.badgeHeight,color:e.badgeTextColor,fontWeight:e.badgeFontWeight,fontSize:e.badgeFontSize,lineHeight:`${e.badgeHeight}px`,whiteSpace:`nowrap`,textAlign:`center`,background:e.badgeColor,borderRadius:e.badgeHeight/2,boxShadow:`0 0 0 ${a}px ${e.badgeShadowColor}`,transition:`background ${e.motionDurationMid}`,a:{color:e.badgeTextColor},"a:hover":{color:e.badgeTextColor},"a:hover &":{background:e.badgeColorHover}},[`${t}-count-sm`]:{minWidth:o,height:o,fontSize:e.badgeFontSizeSm,lineHeight:`${o}px`,borderRadius:o/2},[`${t}-multiple-words`]:{padding:`0 ${e.paddingXS}px`},[`${t}-dot`]:{zIndex:e.badgeZIndex,width:e.badgeDotSize,minWidth:e.badgeDotSize,height:e.badgeDotSize,background:e.badgeColor,borderRadius:`100%`,boxShadow:`0 0 0 ${a}px ${e.badgeShadowColor}`},[`${t}-dot${d}`]:{transition:`background ${s}`},[`${t}-count, ${t}-dot, ${d}-custom-component`]:{position:`absolute`,top:0,insetInlineEnd:0,transform:`translate(50%, -50%)`,transformOrigin:`100% 0%`,[`&${n}-spin`]:{animationName:zt,animationDuration:`1s`,animationIterationCount:`infinite`,animationTimingFunction:`linear`}},[`&${t}-status`]:{lineHeight:`inherit`,verticalAlign:`baseline`,[`${t}-status-dot`]:{position:`relative`,top:-1,display:`inline-block`,width:c,height:c,verticalAlign:`middle`,borderRadius:`50%`},[`${t}-status-success`]:{backgroundColor:e.colorSuccess},[`${t}-status-processing`]:{overflow:`visible`,color:e.colorPrimary,backgroundColor:e.colorPrimary,"&::after":{position:`absolute`,top:0,insetInlineStart:0,width:`100%`,height:`100%`,borderWidth:a,borderStyle:`solid`,borderColor:`inherit`,borderRadius:`50%`,animationName:Pt,animationDuration:e.badgeProcessingDuration,animationIterationCount:`infinite`,animationTimingFunction:`ease-in-out`,content:`""`}},[`${t}-status-default`]:{backgroundColor:e.colorTextPlaceholder},[`${t}-status-error`]:{backgroundColor:e.colorError},[`${t}-status-warning`]:{backgroundColor:e.colorWarning},[`${t}-status-text`]:{marginInlineStart:l,color:e.colorText,fontSize:e.fontSize}}}),m),{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:Ft,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`${t}-zoom-leave`]:{animationName:It,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`&${t}-not-a-wrapper`]:{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:Lt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`${t}-zoom-leave`]:{animationName:Rt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`&:not(${t}-status)`]:{verticalAlign:`middle`},[`${d}-custom-component, ${t}-count`]:{transform:`none`},[`${d}-custom-component, ${d}`]:{position:`relative`,top:`auto`,display:`block`,transformOrigin:`50% 50%`}},[`${d}`]:{overflow:`hidden`,[`${d}-only`]:{position:`relative`,display:`inline-block`,height:e.badgeHeight,transition:`all ${e.motionDurationSlow} ${e.motionEaseOutBack}`,WebkitTransformStyle:`preserve-3d`,WebkitBackfaceVisibility:`hidden`,[`> p${d}-only-unit`]:{height:e.badgeHeight,margin:0,WebkitTransformStyle:`preserve-3d`,WebkitBackfaceVisibility:`hidden`}},[`${d}-symbol`]:{verticalAlign:`top`}},"&-rtl":{direction:`rtl`,[`${t}-count, ${t}-dot, ${d}-custom-component`]:{transform:`translate(-50%, -50%)`}}}),[`${p}`]:{position:`relative`},[`${f}`]:Z(Z(Z(Z({},fe(e)),{position:`absolute`,top:l,padding:`0 ${e.paddingXS}px`,color:e.colorPrimary,lineHeight:`${i}px`,whiteSpace:`nowrap`,backgroundColor:e.colorPrimary,borderRadius:e.borderRadiusSM,[`${f}-text`]:{color:e.colorTextLightSolid},[`${f}-corner`]:{position:`absolute`,top:`100%`,width:u,height:u,color:`currentcolor`,border:`${u/2}px solid`,transform:e.badgeRibbonCornerTransform,transformOrigin:`top`,filter:e.badgeRibbonCornerFilter}}),h),{[`&${f}-placement-end`]:{insetInlineEnd:-u,borderEndEndRadius:0,[`${f}-corner`]:{insetInlineEnd:0,borderInlineEndColor:`transparent`,borderBlockEndColor:`transparent`}},[`&${f}-placement-start`]:{insetInlineStart:-u,borderEndStartRadius:0,[`${f}-corner`]:{insetInlineStart:0,borderBlockEndColor:`transparent`,borderInlineStartColor:`transparent`}},"&-rtl":{direction:`rtl`}})}},Vt=ue(`Badge`,e=>{let{fontSize:t,lineHeight:n,fontSizeSM:r,lineWidth:i,marginXS:a,colorBorderBg:o}=e,s=Math.round(t*n),c=i,l=s-2*c,u=e.colorBgContainer,d=r,f=e.colorError,p=e.colorErrorHover,m=t,h=r/2,g=r,_=r/2;return[Bt(be(e,{badgeFontHeight:s,badgeShadowSize:c,badgeZIndex:`auto`,badgeHeight:l,badgeTextColor:u,badgeFontWeight:`normal`,badgeFontSize:d,badgeColor:f,badgeColorHover:p,badgeShadowColor:o,badgeHeightSm:m,badgeDotSize:h,badgeFontSizeSm:g,badgeStatusSize:_,badgeProcessingDuration:`1.2s`,badgeRibbonOffset:a,badgeRibbonCornerTransform:`scaleY(0.75)`,badgeRibbonCornerFilter:`brightness(75%)`}))]}),Ht=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Ut=n({compatConfig:{MODE:3},name:`ABadgeRibbon`,inheritAttrs:!1,props:{prefix:String,color:{type:String},text:ve.any,placement:{type:String,default:`end`}},slots:Object,setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i,direction:a}=ge(`ribbon`,e),[o,s]=Vt(i),c=C(()=>Se(e.color,!1)),l=C(()=>[i.value,`${i.value}-placement-${e.placement}`,{[`${i.value}-rtl`]:a.value===`rtl`,[`${i.value}-color-${e.color}`]:c.value}]);return()=>{let{class:t,style:a}=n,u=Ht(n,[`class`,`style`]),d={},f={};return e.color&&!c.value&&(d.background=e.color,f.color=e.color),o(I(`div`,Y({class:`${i.value}-wrapper ${s.value}`},u),[r.default?.call(r),I(`div`,{class:[l.value,t,s.value],style:Z(Z({},d),a)},[I(`span`,{class:`${i.value}-text`},[e.text||r.text?.call(r)]),I(`div`,{class:`${i.value}-corner`,style:f},null)])]))}}}),Wt=n({compatConfig:{MODE:3},name:`ABadge`,Ribbon:Ut,inheritAttrs:!1,props:{count:ve.any.def(null),showZero:{type:Boolean,default:void 0},overflowCount:{type:Number,default:99},dot:{type:Boolean,default:void 0},prefixCls:String,scrollNumberPrefixCls:String,status:{type:String},size:{type:String,default:`default`},color:String,text:ve.any,offset:Array,numberStyle:{type:Object,default:void 0},title:String},slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=ge(`badge`,e),[o,s]=Vt(i),c=C(()=>e.count>e.overflowCount?`${e.overflowCount}+`:e.count),l=C(()=>c.value===`0`||c.value===0),u=C(()=>e.count===null||l.value&&!e.showZero),d=C(()=>(e.status!==null&&e.status!==void 0||e.color!==null&&e.color!==void 0)&&u.value),f=C(()=>e.dot&&!l.value),p=C(()=>f.value?``:c.value),m=C(()=>(p.value===null||p.value===void 0||p.value===``||l.value&&!e.showZero)&&!f.value),h=A(e.count),g=A(p.value),_=A(f.value);S([()=>e.count,p,f],()=>{m.value||(h.value=e.count,g.value=p.value,_.value=f.value)},{immediate:!0});let v=C(()=>Se(e.color,!1)),y=C(()=>({[`${i.value}-status-dot`]:d.value,[`${i.value}-status-${e.status}`]:!!e.status,[`${i.value}-color-${e.color}`]:v.value})),b=C(()=>e.color&&!v.value?{background:e.color,color:e.color}:{}),x=C(()=>({[`${i.value}-dot`]:_.value,[`${i.value}-count`]:!_.value,[`${i.value}-count-sm`]:e.size===`small`,[`${i.value}-multiple-words`]:!_.value&&g.value&&g.value.toString().length>1,[`${i.value}-status-${e.status}`]:!!e.status,[`${i.value}-color-${e.color}`]:v.value}));return()=>{let{offset:t,title:c,color:l}=e,u=r.style,f=_e(n,e,`text`),p=i.value,_=h.value,S=le(n.default?.call(n));S=S.length?S:null;let C=!!(!m.value||n.count),w=(()=>{if(!t)return Z({},u);let e={marginTop:et(t[1])?`${t[1]}px`:t[1]};return a.value===`rtl`?e.left=`${parseInt(t[0],10)}px`:e.right=`${-parseInt(t[0],10)}px`,Z(Z({},e),u)})(),T=c??(typeof _==`string`||typeof _==`number`?_:void 0),E=C||!f?null:I(`span`,{class:`${p}-status-text`},[f]),D=typeof _==`object`||_===void 0&&n.count?Ee(_??n.count?.call(n),{style:w},!1):null,O=ne(p,{[`${p}-status`]:d.value,[`${p}-not-a-wrapper`]:!S,[`${p}-rtl`]:a.value===`rtl`},r.class,s.value);if(!S&&d.value){let e=w.color;return o(I(`span`,Y(Y({},r),{},{class:O,style:w}),[I(`span`,{class:y.value,style:b.value},null),I(`span`,{style:{color:e},class:`${p}-status-text`},[f])]))}let k=Le(S?`${p}-zoom`:``,{appear:!1}),A=Z(Z({},w),e.numberStyle);return l&&!v.value&&(A||={},A.background=l),o(I(`span`,Y(Y({},r),{},{class:O}),[S,I(H,k,{default:()=>[P(I(Nt,{prefixCls:e.scrollNumberPrefixCls,show:C,class:x.value,count:g.value,title:T,style:A,key:`scrollNumber`},{default:()=>[D]}),[[V,C]])]}),E]))}}});Wt.install=function(e){return e.component(Wt.name,Wt),e.component(Ut.name,Ut),e};var Gt=Wt,Kt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},qt=n({compatConfig:{MODE:3},name:`ABreadcrumbItem`,inheritAttrs:!1,__ANT_BREADCRUMB_ITEM:!0,props:{prefixCls:String,href:String,separator:ve.any,dropdownProps:J(),overlay:ve.any,onClick:se()},slots:Object,setup(e,t){let{slots:n,attrs:r,emit:i}=t,{prefixCls:a}=ge(`breadcrumb`,e),o=(t,r)=>{let i=_e(n,e,`overlay`);return i?I(tt,Y(Y({},e.dropdownProps),{},{overlay:i,placement:`bottom`}),{default:()=>[I(`span`,{class:`${r}-overlay-link`},[t,I(Me,null,null)])]}):t},s=e=>{i(`click`,e)};return()=>{let t=_e(n,e,`separator`)??`/`,i=_e(n,e),{class:c,style:l}=r,u=Kt(r,[`class`,`style`]),d;return d=e.href===void 0?I(`span`,Y({class:`${a.value}-link`,onClick:s},u),[i]):I(`a`,Y({class:`${a.value}-link`,onClick:s},u),[i]),d=o(d,a.value),i==null?null:I(`li`,{class:c,style:l},[d,t&&I(`span`,{class:`${a.value}-separator`},[t])])}}}),Jt=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:Z(Z({},fe(e)),{color:e.breadcrumbBaseColor,fontSize:e.breadcrumbFontSize,[n]:{fontSize:e.breadcrumbIconFontSize},ol:{display:`flex`,flexWrap:`wrap`,margin:0,padding:0,listStyle:`none`},a:Z({color:e.breadcrumbLinkColor,transition:`color ${e.motionDurationMid}`,padding:`0 ${e.paddingXXS}px`,borderRadius:e.borderRadiusSM,height:e.lineHeight*e.fontSize,display:`inline-block`,marginInline:-e.marginXXS,"&:hover":{color:e.breadcrumbLinkColorHover,backgroundColor:e.colorBgTextHover}},he(e)),"li:last-child":{color:e.breadcrumbLastItemColor,[`& > ${t}-separator`]:{display:`none`}},[`${t}-separator`]:{marginInline:e.breadcrumbSeparatorMargin,color:e.breadcrumbSeparatorColor},[`${t}-link`]:{[`
|
|
2
2
|
> ${n} + span,
|
|
3
3
|
> ${n} + a
|
|
4
4
|
`]:{marginInlineStart:e.marginXXS}},[`${t}-overlay-link`]:{borderRadius:e.borderRadiusSM,height:e.lineHeight*e.fontSize,display:`inline-block`,padding:`0 ${e.paddingXXS}px`,marginInline:-e.marginXXS,[`> ${n}`]:{marginInlineStart:e.marginXXS,fontSize:e.fontSizeIcon},"&:hover":{color:e.breadcrumbLinkColorHover,backgroundColor:e.colorBgTextHover,a:{color:e.breadcrumbLinkColorHover}},a:{"&:hover":{backgroundColor:`transparent`}}},[`&${e.componentCls}-rtl`]:{direction:`rtl`}})}},Yt=ue(`Breadcrumb`,e=>[Jt(be(e,{breadcrumbBaseColor:e.colorTextDescription,breadcrumbFontSize:e.fontSize,breadcrumbIconFontSize:e.fontSize,breadcrumbLinkColor:e.colorTextDescription,breadcrumbLinkColorHover:e.colorText,breadcrumbLastItemColor:e.colorText,breadcrumbSeparatorMargin:e.marginXS,breadcrumbSeparatorColor:e.colorTextDescription}))]),Xt=()=>({prefixCls:String,routes:{type:Array},params:ve.any,separator:ve.any,itemRender:{type:Function}});function Zt(e,t){if(!e.breadcrumbName)return null;let n=Object.keys(t).join(`|`);return e.breadcrumbName.replace(RegExp(`:(${n})`,`g`),(e,n)=>t[n]||e)}function Qt(e){let{route:t,params:n,routes:r,paths:i}=e,a=r.indexOf(t)===r.length-1,o=Zt(t,n);return a?I(`span`,null,[o]):I(`a`,{href:`#/${i.join(`/`)}`},[o])}var $t=n({compatConfig:{MODE:3},name:`ABreadcrumb`,inheritAttrs:!1,props:Xt(),slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=ge(`breadcrumb`,e),[o,s]=Yt(i),c=(e,t)=>(e=(e||``).replace(/^\//,``),Object.keys(t).forEach(n=>{e=e.replace(`:${n}`,t[n])}),e),l=(e,t,n)=>{let r=[...e],i=c(t||``,n);return i&&r.push(i),r},u=e=>{let{routes:t=[],params:n={},separator:r,itemRender:i=Qt}=e,a=[];return t.map(e=>{let o=c(e.path,n);o&&a.push(o);let s=[...a],u=null;e.children&&e.children.length&&(u=I(qe,{items:e.children.map(e=>({key:e.path||e.breadcrumbName,label:i({route:e,params:n,routes:t,paths:l(s,e.path,n)})}))},null));let d={separator:r};return u&&(d.overlay=u),I(qt,Y(Y({},d),{},{key:o||e.breadcrumbName}),{default:()=>[i({route:e,params:n,routes:t,paths:s})]})})};return()=>{let t,{routes:c,params:l={}}=e,d=le(_e(n,e)),f=_e(n,e,`separator`)??`/`,p=e.itemRender||n.itemRender||Qt;c&&c.length>0?t=u({routes:c,params:l,separator:f,itemRender:p}):d.length&&(t=d.map((e,t)=>(me(typeof e.type==`object`&&(e.type.__ANT_BREADCRUMB_ITEM||e.type.__ANT_BREADCRUMB_SEPARATOR),`Breadcrumb`,`Only accepts Breadcrumb.Item and Breadcrumb.Separator as it's children`),b(e,{separator:f,key:t}))));let m={[i.value]:!0,[`${i.value}-rtl`]:a.value===`rtl`,[`${r.class}`]:!!r.class,[s.value]:!0};return o(I(`nav`,Y(Y({},r),{},{class:m}),[I(`ol`,null,[t])]))}}}),en=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},tn=n({compatConfig:{MODE:3},name:`ABreadcrumbSeparator`,__ANT_BREADCRUMB_SEPARATOR:!0,inheritAttrs:!1,props:{prefixCls:String},setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i}=ge(`breadcrumb`,e);return()=>{let{separator:e,class:t}=r,a=en(r,[`separator`,`class`]),o=le(n.default?.call(n));return I(`span`,Y({class:[`${i.value}-separator`,t]},a),[o.length>0?o:`/`])}}});$t.Item=qt,$t.Separator=tn,$t.install=function(e){return e.component($t.name,$t),e.component(qt.name,qt),e.component(tn.name,tn),e};var nn=$t,rn=[`normal`,`exception`,`active`,`success`],an=()=>({prefixCls:String,type:ye(),percent:Number,format:ae(),status:ye(),showInfo:oe(),strokeWidth:Number,strokeLinecap:ye(),strokeColor:re(),trailColor:String,width:Number,success:J(),gapDegree:Number,gapPosition:ye(),size:de([String,Number,Array]),steps:Number,successPercent:Number,title:String,progressStatus:ye()});function on(e){return!e||e<0?0:e>100?100:e}function sn(e){let{success:t,successPercent:n}=e,r=n;return t&&`progress`in t&&(Te(!1,`Progress`,"`success.progress` is deprecated. Please use `success.percent` instead."),r=t.progress),t&&`percent`in t&&(r=t.percent),r}function cn(e){let{percent:t,success:n,successPercent:r}=e,i=on(sn({success:n,successPercent:r}));return[i,on(on(t)-i)]}function ln(e){let{success:t={},strokeColor:n}=e,{strokeColor:r}=t;return[r||X.green,n||null]}var un=(e,t,n)=>{let r=-1,i=-1;if(t===`step`){let t=n.steps,a=n.strokeWidth;typeof e==`string`||e===void 0?(r=e===`small`?2:14,i=a??8):typeof e==`number`?[r,i]=[e,e]:[r=14,i=8]=e,r*=t}else if(t===`line`){let t=n?.strokeWidth;typeof e==`string`||e===void 0?i=t||(e===`small`?6:8):typeof e==`number`?[r,i]=[e,e]:[r=-1,i=8]=e}else(t===`circle`||t===`dashboard`)&&(typeof e==`string`||e===void 0?[r,i]=e===`small`?[60,60]:[120,120]:typeof e==`number`?[r,i]=[e,e]:(r=e[0]??e[1]??120,i=e[0]??e[1]??120));return{width:r,height:i}},dn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},fn=()=>Z(Z({},an()),{strokeColor:re(),direction:ye()}),pn=e=>{let t=[];return Object.keys(e).forEach(n=>{let r=parseFloat(n.replace(/%/g,``));isNaN(r)||t.push({key:r,value:e[n]})}),t=t.sort((e,t)=>e.key-t.key),t.map(e=>{let{key:t,value:n}=e;return`${n} ${t}%`}).join(`, `)},mn=(e,t)=>{let{from:n=X.blue,to:r=X.blue,direction:i=t===`rtl`?`to left`:`to right`}=e,a=dn(e,[`from`,`to`,`direction`]);return Object.keys(a).length===0?{backgroundImage:`linear-gradient(${i}, ${n}, ${r})`}:{backgroundImage:`linear-gradient(${i}, ${pn(a)})`}},hn=n({compatConfig:{MODE:3},name:`ProgressLine`,inheritAttrs:!1,props:fn(),setup(e,t){let{slots:n,attrs:r}=t,i=C(()=>{let{strokeColor:t,direction:n}=e;return t&&typeof t!=`string`?mn(t,n):{backgroundColor:t}}),a=C(()=>e.strokeLinecap===`square`||e.strokeLinecap===`butt`?0:void 0),o=C(()=>e.trailColor?{backgroundColor:e.trailColor}:void 0),s=C(()=>e.size??[-1,e.strokeWidth||(e.size===`small`?6:8)]),c=C(()=>un(s.value,`line`,{strokeWidth:e.strokeWidth})),l=C(()=>{let{percent:t}=e;return Z({width:`${on(t)}%`,height:`${c.value.height}px`,borderRadius:a.value},i.value)}),u=C(()=>sn(e)),d=C(()=>{let{success:t}=e;return{width:`${on(u.value)}%`,height:`${c.value.height}px`,borderRadius:a.value,backgroundColor:t?.strokeColor}}),f={width:c.value.width<0?`100%`:c.value.width,height:`${c.value.height}px`};return()=>I(g,null,[I(`div`,Y(Y({},r),{},{class:[`${e.prefixCls}-outer`,r.class],style:[r.style,f]}),[I(`div`,{class:`${e.prefixCls}-inner`,style:o.value},[I(`div`,{class:`${e.prefixCls}-bg`,style:l.value},null),u.value===void 0?null:I(`div`,{class:`${e.prefixCls}-success-bg`,style:d.value},null)])]),n.default?.call(n)])}}),gn={percent:0,prefixCls:`vc-progress`,strokeColor:`#2db7f5`,strokeLinecap:`round`,strokeWidth:1,trailColor:`#D9D9D9`,trailWidth:1},_n=e=>{let t=A(null);return p(()=>{let n=Date.now(),r=!1;e.value.forEach(e=>{let i=e?.$el||e;if(!i)return;r=!0;let a=i.style;a.transitionDuration=`.3s, .3s, .3s, .06s`,t.value&&n-t.value<100&&(a.transitionDuration=`0s, 0s`)}),r&&(t.value=Date.now())}),e},vn={gapDegree:Number,gapPosition:{type:String},percent:{type:[Array,Number]},prefixCls:String,strokeColor:{type:[Object,String,Array]},strokeLinecap:{type:String},strokeWidth:Number,trailColor:String,trailWidth:Number,transition:String},yn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},bn=0;function xn(e){return+e.replace(`%`,``)}function Sn(e){return Array.isArray(e)?e:[e]}function Cn(e,t,n,r){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,a=arguments.length>5?arguments[5]:void 0,o=50-r/2,s=0,c=-o,l=0,u=-2*o;switch(a){case`left`:s=-o,c=0,l=2*o,u=0;break;case`right`:s=o,c=0,l=-2*o,u=0;break;case`bottom`:c=o,u=2*o}let d=`M 50,50 m ${s},${c}
|
|
@@ -1 +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
|
+
import{ft as e}from"./BSCpFtzG.js";import{t}from"./36oeS8_R2.js";import{i as n}from"./GP2wXyuY.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{ft as e}from"./BSCpFtzG.js";import{i as t}from"./
|
|
1
|
+
import{ft as e}from"./BSCpFtzG.js";import{i as t}from"./GP2wXyuY.js";var n=`__deviceTwins`;function r(){let n=[],r=e({twins:n,loaded:!1,error:``,async load(){return r.__loading||=(async()=>{try{let e=await t({base:`/api/workshop/device-twins`,retries:2});r.twins.splice(0,r.twins.length,...e?.twins??[]),r.loaded=!0,r.error=``}catch(e){r.loaded=!1,r.error=e instanceof Error?e.message:String(e)}finally{r.__loading=null}})(),r.__loading},applyRemote(e){let t=r.twins.findIndex(t=>t.id===e.id);t>=0?Object.assign(r.twins[t],e):r.twins.push({...e})},removeRemote(e){let t=r.twins.findIndex(t=>t.id===e);t>=0&&r.twins.splice(t,1)},byId(e){return n.find(t=>t.id===e)},async create(e){let n=await t({base:`/api/workshop/device-twins`,init:{method:`POST`,body:JSON.stringify(e)}});return r.loaded=!1,await r.load(),n.twin},async update(e,n){let i=await t({base:`/api/workshop/device-twins/${e}`,init:{method:`PATCH`,body:JSON.stringify(n)}});return r.loaded=!1,await r.load(),i.twin},async control(e,n,i){let a=await t({base:`/api/workshop/device-twins/${e}/control`,init:{method:`POST`,body:JSON.stringify({command:n,args:i??{}})}});return r.loaded=!1,await r.load(),a.twin},async pushTelemetry(e,n){let i=await t({base:`/api/workshop/device-twins/${e}/telemetry`,init:{method:`POST`,body:JSON.stringify({telemetry:n})}});return r.loaded=!1,await r.load(),i.twin},async remove(e){await t({base:`/api/workshop/device-twins/${e}`,init:{method:`DELETE`}}),r.loaded=!1,await r.load()}});return r}function i(){let e=globalThis;e[n]||(e[n]=r());let t=e[n];return t.load(),t}export{i as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./DNJSkm3Q.js";import{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,et as l,f as u,g as d,h as f,m as p,mt as m,nt as h,p as g,rt as _,t as v,x as y}from"./BSCpFtzG.js";import{R as b}from"./2LwEn9gX.js";import{t as x}from"./DXK1U43I.js";import{n as S}from"./BeIfu4N3.js";import{t as te}from"./Bsc69G4x.js";import{t as ne}from"./ByGNWgAr.js";import{r as C}from"./W1E3-5ML.js";import{t as re}from"./DVQAz9WI.js";import{t as ie}from"./B9aPoQvt.js";import{n as ae,r as oe,t as se}from"./B4GHHF6d2.js";import{t as ce}from"./D8DDDzV62.js";import{t as w}from"./pRQri7vQ2.js";import{t as T}from"./NIM0Wglj2.js";import{t as le}from"./BCipft_k2.js";var ue={class:`settings-page`},de={class:`aw-page-head`},fe={class:`aw-kicker`},pe={class:`aw-stamp`},me={class:`settings-layout`},he={class:`settings-nav`},ge=[`onClick`],E={class:`settings-body`},D={class:`section-title`},O={class:`section-desc`},k={class:`set-row`},A={class:`set-text`},j={class:`set-title`},M={class:`set-sub`},N={class:`color-swatches`},P=[`title`,`onClick`],F={class:`swatch-label`},I={key:0,class:`i-tabler-check swatch-check`},L={class:`toggle-row`},_e={class:`set-text`},ve={class:`set-title`},ye={class:`set-sub`},be=[`aria-checked`],xe={class:`toggle-row`},Se={class:`set-text`},Ce={class:`set-title`},we={class:`set-sub`},Te={class:`section-title`},Ee={class:`section-desc`},De={class:`rt-group-title`},Oe={class:`rt-main`},ke={class:`rt-title`},Ae={class:`rt-sub`},je={class:`rt-ctrl`},Me={key:3,class:`rt-color`},Ne=[`value`,`onInput`],Pe=[`title`,`onClick`],Fe={class:`rt-actions`},Ie=[`disabled`],Le={class:`rt-path aw-mono`},Re={class:`section-title`},ze={class:`section-desc`},Be={class:`aw-mono`},Ve={class:`identity-note`},R=v(t({__name:`settings`,setup(t){let{t:v,locale:R,locales:He,setLocale:Ue}=S(),z=x(),B=le(),V=e().public,H=T(),U=m(`appearance`),W=w(),G=m({}),K=m(new Set),q=m(!1),J=m(null);function Y(){G.value={...W.effective},K.value=new Set}l(()=>W.loaded,e=>{e&&Y()}),l(()=>W.effective,()=>{K.value.size===0&&Y()},{deep:!0});function X(e){K.value.add(e),J.value=null}async function We(){if(K.value.size){q.value=!0,J.value=null;try{let e={};for(let t of K.value)e[t]=G.value[t];let t=await W.patch(e);Y();let n=t.restartRequired??[];J.value=n.length?{type:`warning`,text:v(`settings.runtime.restartNotice`,{keys:n.join(`, `)})}:{type:`success`,text:v(`settings.runtime.savedLive`)}}catch(e){J.value={type:`error`,text:e?.response?.data?.message||e?.message||String(e)}}finally{q.value=!1}}}async function Ge(e){try{await W.patch({[e]:null}),Y(),J.value={type:`success`,text:v(`settings.runtime.keyReset`,{key:e})}}catch(e){J.value={type:`error`,text:e?.response?.data?.message||e?.message||String(e)}}}async function Ke(){try{await W.resetAll(),Y(),J.value={type:`success`,text:v(`settings.runtime.resetAllDone`)}}catch(e){J.value={type:`error`,text:e?.response?.data?.message||e?.message||String(e)}}}function Z(e){return{server:v(`settings.runtime.groupServer`),app:v(`settings.runtime.groupApp`),api:`API`,theme:v(`settings.runtime.groupTheme`),i18n:v(`settings.runtime.groupI18n`),security:v(`settings.runtime.groupSecurity`),daq:v(`settings.runtime.groupDaq`),memory:v(`settings.runtime.groupMemory`),omp:v(`settings.runtime.groupOmp`),dcw:v(`settings.runtime.groupDcw`),workshop:v(`settings.runtime.groupWorkshop`),backup:v(`settings.runtime.groupBackup`),retention:v(`settings.runtime.groupRetention`),log:v(`settings.runtime.groupLog`)}[e]??e}function qe(e){return e===`runtime`?`src-runtime`:e===`env`?`src-env`:`src-yaml`}function Je(e){let t=e.labelKey;return t&&v(t)!==t?v(t):e.label}let Q=String(V.primaryColor),Ye=[{value:Q,label:v(`settings.accentInk`)},{value:`#c9963f`,label:v(`settings.accentStone`)},{value:`#44615a`,label:v(`settings.accentMoss`)},{value:`#3f6094`,label:v(`settings.accentSlate`)},{value:`#6b5aa0`,label:v(`settings.accentPlum`)},{value:`#9c5744`,label:v(`settings.accentClay`)}],$=u(()=>z.accent??Q);function Xe(e){z.setAccent(e===Q?null:e),C.success(v(`settings.accentApplied`))}function Ze(){z.setAccent(null),C.success(v(`settings.accentReset`))}let Qe=u(()=>He.value.map(e=>({label:e.name,value:e.code}))),$e=e=>{e!=null&&(localStorage.setItem(`aw.locale`,String(e)),Ue(String(e)),window.location.reload())},et=u(()=>[{label:v(`home.fields.name`),value:B.name},{label:v(`home.fields.version`),value:`v${B.version}`},{label:v(`home.fields.mode`),value:B.mode},{label:v(`home.fields.apiBase`),value:`${B.apiBase} (${V.apiTimeout}ms)`},{label:v(`home.fields.primary`),value:Q},{label:`i18n`,value:R.value}]),tt=u(()=>[{key:`appearance`,icon:`i-tabler-palette`,label:v(`settings.theme`)},{key:`runtime`,icon:`i-tabler-settings`,label:v(`settings.runtimeTab`)},{key:`system`,icon:`i-tabler-server-2`,label:v(`settings.systemTab`)}]);return(e,t)=>{let l=te,u=re,m=se,x=ce,S=ne,C=oe,w=ae,T=ie;return r(),d(`div`,ue,[g(`div`,de,[g(`div`,null,[g(`p`,fe,o(a(v)(`menu.system`))+` / settings `,1),g(`h1`,null,o(a(v)(`settings.title`)),1)]),g(`span`,pe,`v`+o(a(B).version),1)]),y(T,{bordered:!1,class:`settings-card`},{default:h(()=>[g(`div`,me,[g(`div`,he,[(r(!0),d(s,null,n(a(tt),e=>(r(),d(`button`,{key:e.key,class:i([`nav-item`,{active:a(U)===e.key}]),onClick:t=>U.value=e.key},[g(`span`,{class:i(e.icon)},null,2),g(`span`,null,o(e.label),1)],10,ge))),128))]),g(`div`,E,[_(g(`div`,null,[g(`h3`,D,o(a(v)(`settings.theme`)),1),g(`p`,O,o(a(v)(`settings.appearanceDesc`)),1),g(`div`,k,[g(`div`,A,[g(`div`,j,o(a(v)(`settings.primaryColor`)),1),g(`div`,M,o(a(v)(`settings.accentDesc`)),1)])]),g(`div`,N,[(r(),d(s,null,n(Ye,e=>g(`button`,{key:e.value,class:i([`swatch`,{on:a($).toLowerCase()===e.value.toLowerCase()}]),style:ee({"--sw":e.value}),title:e.label,onClick:t=>Xe(e.value)},[t[1]||=g(`span`,{class:`swatch-dot`},null,-1),g(`span`,F,o(e.label),1),a($).toLowerCase()===e.value.toLowerCase()?(r(),d(`span`,I)):f(``,!0)],14,P)),64))]),g(`button`,{class:`aw-pill outline reset-btn`,onClick:Ze},[t[2]||=g(`span`,{class:`i-tabler-rotate`},null,-1),c(` `+o(a(v)(`settings.accentResetAction`)),1)]),g(`div`,L,[g(`div`,_e,[g(`div`,ve,o(a(z).isDark?a(v)(`common.dark`):a(v)(`common.light`)),1),g(`div`,ye,o(a(v)(`settings.darkDesc`)),1)]),g(`button`,{class:i([`switch`,{on:a(z).isDark}]),role:`switch`,"aria-checked":a(z).isDark,onClick:t[0]||=e=>a(z).toggleDark()},[...t[3]||=[g(`span`,{class:`knob`},null,-1)]],10,be)]),g(`div`,xe,[g(`div`,Se,[g(`div`,Ce,o(a(v)(`header.language`)),1),g(`div`,we,o(a(v)(`settings.languageDesc`)),1)]),y(l,{value:a(R),options:a(Qe),style:{width:`140px`},onChange:$e},null,8,[`value`,`options`])])],512),[[b,a(U)===`appearance`]]),_(g(`div`,null,[g(`h3`,Te,o(a(v)(`settings.runtimeTab`)),1),g(`p`,Ee,o(a(v)(`settings.runtime.desc`)),1),a(J)?(r(),p(u,{key:0,type:a(J).type,"show-icon":``,class:`rt-notice`,message:a(J).text},null,8,[`type`,`message`])):f(``,!0),(r(!0),d(s,null,n(a(W).groups,e=>(r(),d(s,{key:e.group},[g(`h4`,De,o(Z(e.group)),1),(r(!0),d(s,null,n(e.items,e=>(r(),d(`div`,{key:e.key,class:`rt-row`},[g(`div`,Oe,[g(`div`,ke,[c(o(Je(e))+` `,1),g(`span`,{class:i([`rt-tag`,qe(a(W).sourceOf(e.key))])},o(a(W).sourceOf(e.key)),3),g(`span`,{class:i([`rt-tag`,e.applies])},o(e.applies===`live`?a(v)(`settings.runtime.live`):a(v)(`settings.runtime.restart`)),3)]),g(`div`,Ae,o(e.description),1)]),g(`div`,je,[e.type===`number`?(r(),p(m,{key:0,value:a(G)[e.key],"onUpdate:value":t=>a(G)[e.key]=t,min:e.min,max:e.max,onChange:t=>X(e.key)},null,8,[`value`,`onUpdate:value`,`min`,`max`,`onChange`])):e.type===`boolean`?(r(),p(x,{key:1,checked:a(G)[e.key],"onUpdate:checked":t=>a(G)[e.key]=t,onChange:t=>X(e.key)},null,8,[`checked`,`onUpdate:checked`,`onChange`])):e.type===`select`?(r(),p(l,{key:2,value:a(G)[e.key],"onUpdate:value":t=>a(G)[e.key]=t,style:{width:`160px`},options:(e.options??[]).map(e=>({label:e,value:e})),onChange:t=>X(e.key)},null,8,[`value`,`onUpdate:value`,`options`,`onChange`])):e.type===`color`?(r(),d(`span`,Me,[g(`input`,{type:`color`,value:String(a(G)[e.key]??`#35e0a0`),onInput:t=>{a(G)[e.key]=t.target.value,X(e.key)}},null,40,Ne),y(S,{value:String(a(G)[e.key]??``),style:{width:`110px`},class:`aw-mono`,onChange:t=>{a(G)[e.key]=t.target.value,X(e.key)}},null,8,[`value`,`onChange`])])):(r(),p(S,{key:4,value:a(G)[e.key],"onUpdate:value":t=>a(G)[e.key]=t,style:{width:`220px`},onChange:t=>X(e.key)},null,8,[`value`,`onUpdate:value`,`onChange`])),g(`button`,{class:`aw-pill outline rt-reset`,title:a(v)(`settings.runtime.resetKey`),onClick:t=>Ge(e.key)},[...t[4]||=[g(`span`,{class:`i-tabler-rotate`},null,-1)]],8,Pe)])]))),128))],64))),128)),g(`div`,Fe,[g(`button`,{class:`aw-pill primary`,disabled:!a(K).size||a(q),onClick:We},[t[5]||=g(`span`,{class:`i-tabler-device-floppy`},null,-1),c(` `+o(a(q)?`…`:a(v)(`settings.runtime.save`)),1)],8,Ie),g(`button`,{class:`aw-pill outline`,onClick:Ke},o(a(v)(`settings.runtime.resetAll`)),1),g(`span`,Le,o(a(W).settingsPath),1)])],512),[[b,a(U)===`runtime`]]),_(g(`div`,null,[g(`h3`,Re,o(a(v)(`settings.systemTab`)),1),g(`p`,ze,o(a(v)(`settings.systemDesc`)),1),y(w,{bordered:``,column:1,size:`small`},{default:h(()=>[(r(!0),d(s,null,n(a(et),e=>(r(),p(C,{key:e.label,label:e.label},{default:h(()=>[g(`span`,Be,o(e.value),1)]),_:2},1032,[`label`]))),128))]),_:1}),g(`p`,Ve,o(a(H).isLoggedIn?`${a(v)(`settings.identity`)}: ${a(H).user?.name} (${a(H).user?.role})`:a(v)(`settings.identityGuest`)),1)],512),[[b,a(U)===`system`]])])])]),_:1})])}}}),[[`__scopeId`,`data-v-229f03c1`]]);export{R as default};
|