agentworkshop 0.7.24 → 0.7.27
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/.output/nitro.json +1 -1
- package/.output/public/_nuxt/2jaJHWIJ.js +1 -0
- package/.output/public/_nuxt/B7gZokg82.js +209 -0
- package/.output/public/_nuxt/{Dfe8vXdG.js → B8kt898d.js} +1 -1
- package/.output/public/_nuxt/{BvNJUu3s.js → BFGpEo8S.js} +1 -1
- package/.output/public/_nuxt/{BAfp6tmu.js → BG4zduPf.js} +5 -5
- package/.output/public/_nuxt/{BMb80_tm.js → BGhOrgle.js} +1 -1
- package/.output/public/_nuxt/{Bc-_IsBP.js → BHcpzI2n.js} +1 -1
- package/.output/public/_nuxt/{Djir5rSD.js → BTLEvDxM.js} +1 -1
- package/.output/public/_nuxt/{b50gYVZl.js → BWyR3awA.js} +1 -1
- package/.output/public/_nuxt/Bc89zKq2.js +1 -0
- package/.output/public/_nuxt/{CxY6LfeN.js → BetmGSO4.js} +1 -1
- package/.output/public/_nuxt/{DAR70Lf52.js → BgCrZKv_2.js} +1 -1
- package/.output/public/_nuxt/{DUToq-k_.js → BowTbasd.js} +1 -1
- package/.output/public/_nuxt/{D6HDb-vN2.js → BvtknqSC2.js} +1 -1
- package/.output/public/_nuxt/{CLZWFhZC.js → CTfqWGdy.js} +1 -1
- package/.output/public/_nuxt/Chc5pfAA.js +1 -0
- package/.output/public/_nuxt/CobSUzQv.js +2 -0
- package/.output/public/_nuxt/{kZV5TQvh2.js → CucID8qg2.js} +1 -1
- package/.output/public/_nuxt/{CAGL7TNK.js → DHbTyoAV.js} +1 -1
- package/.output/public/_nuxt/{DSa2O56y.js → DfLUN8kY.js} +1 -1
- package/.output/public/_nuxt/{Coik560n.js → DjU9Dx5Y.js} +1 -1
- package/.output/public/_nuxt/DnziMlcX.js +1 -0
- package/.output/public/_nuxt/{Ct68Z0232.js → DosOJEmZ2.js} +1 -1
- package/.output/public/_nuxt/{CDLv-n51.js → Q_SJDSgx.js} +1 -1
- package/.output/public/_nuxt/{TownView.zu2rU5nS.css → TownView.CtskuMXS.css} +1 -1
- package/.output/public/_nuxt/{CuVGPuP1.js → XY2z78rj.js} +1 -1
- package/.output/public/_nuxt/_id_.DdbYeLqn.css +1 -0
- package/.output/public/_nuxt/{C1CSiSBN.js → bFnZa2yd.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/f7a8e33d-5422-45ac-895d-27168f97e3ad.json +1 -0
- package/.output/public/_nuxt/daq.DGV9QS8d.css +1 -0
- package/.output/public/_nuxt/{entry.AZM1Culo.css → entry.BN02X8iR.css} +1 -1
- package/.output/public/_nuxt/{X6IraCTB.js → rkVgzg62.js} +1 -1
- package/.output/public/_nuxt/settings.W6qrYAui.css +1 -0
- package/.output/public/_nuxt/teams.BBXVkyKq.css +1 -0
- package/.output/public/assets/game/character/yangyang-walk.glb +0 -0
- package/.output/server/chunks/_/host-bindings.mjs +1 -1
- package/.output/server/chunks/_/nitro.mjs +1013 -844
- package/.output/server/chunks/_/nitro.mjs.map +1 -1
- package/.output/server/chunks/build/{TownView-DxeQe1Bl.mjs → TownView-ftIylqiD.mjs} +178 -151
- package/.output/server/chunks/build/{TownView-DxeQe1Bl.mjs.map → TownView-ftIylqiD.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-DQDqj-cZ.mjs → _id_-3Axz2-gV.mjs} +35 -35
- package/.output/server/chunks/build/{_id_-DQDqj-cZ.mjs.map → _id_-3Axz2-gV.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-DY6v6sqB.mjs → _id_-CahfkmEt.mjs} +5 -5
- package/.output/server/chunks/build/{_id_-DY6v6sqB.mjs.map → _id_-CahfkmEt.mjs.map} +1 -1
- package/.output/server/chunks/build/{_wsId_-D38Vx6Ky.mjs → _wsId_-BymlQhzS.mjs} +7 -7
- package/.output/server/chunks/build/{_wsId_-D38Vx6Ky.mjs.map → _wsId_-BymlQhzS.mjs.map} +1 -1
- package/.output/server/chunks/build/{agents-GnmUGZir.mjs → agents-DuMiSWKp.mjs} +4 -4
- package/.output/server/chunks/build/{agents-GnmUGZir.mjs.map → agents-DuMiSWKp.mjs.map} +1 -1
- package/.output/server/chunks/build/{channel-templates-B4z6v8Z5.mjs → channel-templates-BStqJ-of.mjs} +2 -2
- package/.output/server/chunks/build/{channel-templates-B4z6v8Z5.mjs.map → channel-templates-BStqJ-of.mjs.map} +1 -1
- package/.output/server/chunks/build/{checkbox-dzcpU_Cd.mjs → checkbox-C1gABOca.mjs} +4 -4
- package/.output/server/chunks/build/{checkbox-dzcpU_Cd.mjs.map → checkbox-C1gABOca.mjs.map} +1 -1
- package/.output/server/chunks/build/{daq-B-3xCp_2.mjs → daq-ChYCABz1.mjs} +312 -426
- package/.output/server/chunks/build/daq-ChYCABz1.mjs.map +1 -0
- package/.output/server/chunks/build/{dcw-BL2dhuz7.mjs → dcw-CcQNGggh.mjs} +3 -3
- package/.output/server/chunks/build/{dcw-BL2dhuz7.mjs.map → dcw-CcQNGggh.mjs.map} +1 -1
- package/.output/server/chunks/build/{default-CLf5m0NE.mjs → default-95-zOTPt.mjs} +2 -2
- package/.output/server/chunks/build/{default-CLf5m0NE.mjs.map → default-95-zOTPt.mjs.map} +1 -1
- package/.output/server/chunks/build/{logs-Dto_umFY.mjs → logs-D-2UyGtE.mjs} +3 -3
- package/.output/server/chunks/build/{logs-Dto_umFY.mjs.map → logs-D-2UyGtE.mjs.map} +1 -1
- package/.output/server/chunks/build/{monitor-Cp4V-H2n.mjs → monitor-mfG5jBtz.mjs} +3 -3
- package/.output/server/chunks/build/{monitor-Cp4V-H2n.mjs.map → monitor-mfG5jBtz.mjs.map} +1 -1
- package/.output/server/chunks/build/{pages-Dc2H1QFu.mjs → pages-Dfosfchr.mjs} +4 -4
- package/.output/server/chunks/build/{pages-Dc2H1QFu.mjs.map → pages-Dfosfchr.mjs.map} +1 -1
- package/.output/server/chunks/build/{permissions-BTRW2CVd.mjs → permissions-B-hhZuzm.mjs} +3 -3
- package/.output/server/chunks/build/{permissions-BTRW2CVd.mjs.map → permissions-B-hhZuzm.mjs.map} +1 -1
- package/.output/server/chunks/build/{settings-UfGyDgM7.mjs → settings-BajN9TQW.mjs} +249 -20
- package/.output/server/chunks/build/settings-BajN9TQW.mjs.map +1 -0
- package/.output/server/chunks/build/{table-Cswq-l2r.mjs → table-Bf1r2JjE.mjs} +2 -2
- package/.output/server/chunks/build/{table-Cswq-l2r.mjs.map → table-Bf1r2JjE.mjs.map} +1 -1
- package/.output/server/chunks/build/{teams-Cbg27MWW.mjs → teams-t2SkRlJP.mjs} +346 -46
- package/.output/server/chunks/build/teams-t2SkRlJP.mjs.map +1 -0
- package/.output/server/chunks/build/{tokens-Bmm6rDfj.mjs → tokens-DiCojbN8.mjs} +3 -3
- package/.output/server/chunks/build/{tokens-Bmm6rDfj.mjs.map → tokens-DiCojbN8.mjs.map} +1 -1
- package/.output/server/chunks/build/{town-Dsh0jlwZ.mjs → town-C7QM8DYK.mjs} +5 -5
- package/.output/server/chunks/build/{town-Dsh0jlwZ.mjs.map → town-C7QM8DYK.mjs.map} +1 -1
- package/.output/server/chunks/build/{useDaqStream-DkRL3tEW.mjs → useDaqStream-BeA2X8KR.mjs} +26 -11
- package/.output/server/chunks/build/useDaqStream-BeA2X8KR.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwStream-DyB2ufQI.mjs → useDcwStream-BJW_MitY.mjs} +14 -6
- package/.output/server/chunks/build/useDcwStream-BJW_MitY.mjs.map +1 -0
- package/.output/server/chunks/build/{useDeviceTwins-ZbT86L9O.mjs → useDeviceTwins-Dwz_EY_i.mjs} +2 -2
- package/.output/server/chunks/build/{useDeviceTwins-ZbT86L9O.mjs.map → useDeviceTwins-Dwz_EY_i.mjs.map} +1 -1
- package/.output/server/chunks/build/{useOpsLog-8HCYFb6n.mjs → useOpsLog-Dm8QEb1I.mjs} +2 -2
- package/.output/server/chunks/build/{useOpsLog-8HCYFb6n.mjs.map → useOpsLog-Dm8QEb1I.mjs.map} +1 -1
- package/.output/server/chunks/build/{useWorkshopApi-D2gq06N2.mjs → useWorkshopApi-B-L3MmIX.mjs} +9 -2
- package/.output/server/chunks/build/{useWorkshopApi-D2gq06N2.mjs.map → useWorkshopApi-B-L3MmIX.mjs.map} +1 -1
- package/.output/server/chunks/build/{users-B50HHrfi.mjs → users-B9SAdEtH.mjs} +3 -3
- package/.output/server/chunks/build/{users-B50HHrfi.mjs.map → users-B9SAdEtH.mjs.map} +1 -1
- package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +14 -2
- package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +40 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +21 -9
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs +33 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs +15 -1
- 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 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index4.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +1 -1
- package/.output/server/chunks/routes/renderer.mjs +2 -2
- package/.output/server/chunks/virtual/entry.mjs +352 -433
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/app/components/workshop/DaqNodeRow.vue +398 -0
- package/app/components/workshop/town/ModelPreview3D.vue +26 -4
- package/app/components/workshop/town/TownScene3D.ts +60 -12
- package/app/components/workshop/town/TownView.vue +4 -3
- package/app/composables/workshop/useCharacterAssets.ts +1 -0
- package/app/composables/workshop/useDaqStream.ts +24 -5
- package/app/composables/workshop/useDcwStream.ts +13 -4
- package/app/composables/workshop/useWorkshopApi.ts +294 -259
- package/app/pages/daq/[id].vue +27 -3
- package/app/pages/daq/index.vue +8 -355
- package/app/pages/settings.vue +253 -2
- package/app/pages/workshop/teams.vue +212 -2
- package/i18n/dicts/_en.json +361 -1
- package/i18n/dicts/plugins.json +10 -0
- package/i18n/dicts/settings.json +1 -0
- package/i18n/dicts/teamPlugins.json +10 -0
- package/i18n/locales/en.ts +1860 -1900
- package/i18n/locales/zh-CN.ts +1788 -1829
- package/package.json +149 -148
- package/public/assets/game/character/yangyang-walk.glb +0 -0
- package/scripts/_dbg-cpu-profile.mjs +53 -0
- package/scripts/_dbg-render-perf.mjs +142 -0
- package/scripts/_dbg-render-regression.mjs +130 -0
- package/scripts/i18n-merge.mjs +152 -30
- package/scripts/production-closed-loop-e2e.mjs +254 -0
- package/scripts/team-plugins-api-smoke.mjs +149 -0
- package/scripts/three-system-e2e.mjs +448 -0
- package/server/api/plugins/[name]/[...path].ts +46 -31
- package/server/api/workshop/channels/[id]/plugins/index.get.ts +35 -0
- package/server/api/workshop/channels/[id]/plugins/index.put.ts +39 -0
- package/server/api/workshop/channels.post.ts +17 -0
- package/server/data/dcw-lines.json +7 -0
- package/server/data/dcw-products.json +7 -0
- package/server/data/dcw-recipes.json +1 -1
- package/server/data/dcw-rollback.json +523 -11
- package/server/data/dcw-writes.json +72 -0
- package/server/data/dcws.json +368 -368
- package/server/data/scene-layouts.json +66 -0
- package/server/plugins/aw-plugins.ts +35 -27
- package/server/plugins-builtin/diag-bridge/index.mjs +556 -0
- package/server/plugins-builtin/rag-bridge/index.mjs +364 -0
- package/server/services/workshop/agents/host-tool-bridge.ts +659 -642
- package/server/services/workshop/agents/omp-agent.ts +1178 -1178
- package/server/services/workshop/agents/plugin-tools.ts +10 -1
- package/server/services/workshop/db/channel-plugins.repo.ts +65 -0
- package/server/services/workshop/plugins/host.mjs +52 -4
- package/server/services/workshop/runtime/manager.ts +2976 -2968
- package/shared/config/schema.json +4 -0
- package/.output/public/_nuxt/BUcmySDa2.js +0 -209
- package/.output/public/_nuxt/CYzpZzB_.js +0 -1
- package/.output/public/_nuxt/CjXIpPMR.js +0 -1
- package/.output/public/_nuxt/DKHcFE1i.js +0 -1
- package/.output/public/_nuxt/DjtE7AYt.js +0 -1
- package/.output/public/_nuxt/JOwsShod.js +0 -2
- package/.output/public/_nuxt/_id_.C-YXjn8Q.css +0 -1
- package/.output/public/_nuxt/builds/meta/024de5f7-6a10-4f53-82ab-bc65f3ec9e35.json +0 -1
- package/.output/public/_nuxt/daq.3OKj58HH.css +0 -1
- package/.output/public/_nuxt/settings.BqMF2nfj.css +0 -1
- package/.output/public/_nuxt/teams.DN0pAGGu.css +0 -1
- package/.output/server/chunks/build/daq-B-3xCp_2.mjs.map +0 -1
- package/.output/server/chunks/build/settings-UfGyDgM7.mjs.map +0 -1
- package/.output/server/chunks/build/teams-Cbg27MWW.mjs.map +0 -1
- package/.output/server/chunks/build/useDaqStream-DkRL3tEW.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwStream-DyB2ufQI.mjs.map +0 -1
|
@@ -4,12 +4,12 @@ import { a as apiErrorMessage } from './api-error-dul30BYQ.mjs';
|
|
|
4
4
|
import { u as useEntitiesStore, a as useWorkshopWs } from './useWorkshopWs-CprkZEdq.mjs';
|
|
5
5
|
import { s as setInterval, n as nowLocalIso } from './useLocalTime-9a4B-aHv.mjs';
|
|
6
6
|
import { u as useTownBus } from './useTownBus-D9SoIsAN.mjs';
|
|
7
|
-
import { u as useDcwStream } from './useDcwStream-
|
|
8
|
-
import { u as useDaqStream } from './useDaqStream-
|
|
9
|
-
import { u as useDeviceTwins } from './useDeviceTwins-
|
|
7
|
+
import { u as useDcwStream } from './useDcwStream-BJW_MitY.mjs';
|
|
8
|
+
import { u as useDaqStream } from './useDaqStream-BeA2X8KR.mjs';
|
|
9
|
+
import { u as useDeviceTwins } from './useDeviceTwins-Dwz_EY_i.mjs';
|
|
10
10
|
import { shallowRef, ref, computed, toValue, watch, nextTick, defineComponent, reactive, mergeProps, unref, readonly, getCurrentScope, onScopeDispose, getCurrentInstance, toRef, customRef, useSSRContext } from 'vue';
|
|
11
11
|
import { ssrRenderAttrs, ssrInterpolate, ssrRenderAttr, ssrRenderClass, ssrIncludeBooleanAttr, ssrRenderComponent, ssrRenderList, ssrRenderStyle, ssrLooseContain, ssrLooseEqual } from 'vue/server-renderer';
|
|
12
|
-
import {
|
|
12
|
+
import { b2 as DAQ_TEMPLATES } from '../_/nitro.mjs';
|
|
13
13
|
import * as THREE from 'three';
|
|
14
14
|
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
|
|
15
15
|
import { RoomEnvironment } from 'three/examples/jsm/environments/RoomEnvironment.js';
|
|
@@ -168,6 +168,18 @@ function createStore$1() {
|
|
|
168
168
|
applied: false,
|
|
169
169
|
hint: "默认员工 3D 模型"
|
|
170
170
|
},
|
|
171
|
+
{
|
|
172
|
+
id: "yangyang-walk",
|
|
173
|
+
name: "杨杨(走路)",
|
|
174
|
+
file: "/assets/game/character/yangyang-walk.glb",
|
|
175
|
+
frames: 1,
|
|
176
|
+
frameWidth: 0,
|
|
177
|
+
frameHeight: 0,
|
|
178
|
+
kind: "glb",
|
|
179
|
+
builtin: true,
|
|
180
|
+
applied: false,
|
|
181
|
+
hint: "自定义角色:骨骼走路动画(剪辑 WALK;文件较大,建议少量绑定)"
|
|
182
|
+
},
|
|
171
183
|
{
|
|
172
184
|
id: "device-3d",
|
|
173
185
|
name: "工业泵设备",
|
|
@@ -406,12 +418,17 @@ var ModelPreview3D_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
406
418
|
raf: 0,
|
|
407
419
|
clock: new THREE.Clock()
|
|
408
420
|
};
|
|
421
|
+
let acc = 0;
|
|
409
422
|
const tick = () => {
|
|
410
423
|
rig.raf = requestAnimationFrame(tick);
|
|
411
424
|
const dt = rig.clock.getDelta();
|
|
425
|
+
acc += dt * 1e3;
|
|
426
|
+
if (acc < 1e3 / 30) return;
|
|
427
|
+
const step = acc / 1e3;
|
|
428
|
+
acc = 0;
|
|
412
429
|
for (const s of rig.slots) {
|
|
413
|
-
if (!s.canvas.isConnected
|
|
414
|
-
if (s.group) s.group.rotation.y +=
|
|
430
|
+
if (!s.canvas.isConnected || !s.visible) continue;
|
|
431
|
+
if (s.group) s.group.rotation.y += step * s.speed;
|
|
415
432
|
rig.renderer.setSize(s.w, s.h, false);
|
|
416
433
|
rig.renderer.render(s.scene, s.camera);
|
|
417
434
|
s.ctx.clearRect(0, 0, s.w, s.h);
|
|
@@ -487,8 +504,16 @@ var ModelPreview3D_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
487
504
|
group,
|
|
488
505
|
w: canvas.width,
|
|
489
506
|
h: canvas.height,
|
|
490
|
-
speed: .6
|
|
507
|
+
speed: .6,
|
|
508
|
+
visible: false,
|
|
509
|
+
io: null
|
|
491
510
|
};
|
|
511
|
+
if (typeof IntersectionObserver !== "undefined") {
|
|
512
|
+
slot.io = new IntersectionObserver((entries) => {
|
|
513
|
+
for (const e of entries) if (slot) slot.visible = e.isIntersecting;
|
|
514
|
+
});
|
|
515
|
+
slot.io.observe(canvas);
|
|
516
|
+
} else slot.visible = true;
|
|
492
517
|
rig.slots.add(slot);
|
|
493
518
|
loading.value = true;
|
|
494
519
|
new GLTFLoader().load(source, (glt) => {
|
|
@@ -513,7 +538,9 @@ var ModelPreview3D_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
513
538
|
if (objectUrl) URL.revokeObjectURL(objectUrl);
|
|
514
539
|
objectUrl = "";
|
|
515
540
|
if (slot) {
|
|
516
|
-
rigGlobal.__modelPreviewRig
|
|
541
|
+
const rig = rigGlobal.__modelPreviewRig;
|
|
542
|
+
slot.io?.disconnect();
|
|
543
|
+
rig?.slots.delete(slot);
|
|
517
544
|
slot.scene.traverse((c) => {
|
|
518
545
|
const mesh = c;
|
|
519
546
|
if (mesh.isMesh) {
|
|
@@ -552,9 +579,9 @@ var ModelPreview3D_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
552
579
|
ref: hostRef,
|
|
553
580
|
class: "model-preview-3d",
|
|
554
581
|
style: { height: `${__props.height}px` }
|
|
555
|
-
}, _attrs))} data-v-
|
|
556
|
-
if (unref(loading)) _push(`<div class="mp-loading" data-v-
|
|
557
|
-
else if (unref(failed)) _push(`<div class="mp-failed" data-v-
|
|
582
|
+
}, _attrs))} data-v-9d114165>`);
|
|
583
|
+
if (unref(loading)) _push(`<div class="mp-loading" data-v-9d114165><span class="mp-spin" data-v-9d114165></span></div>`);
|
|
584
|
+
else if (unref(failed)) _push(`<div class="mp-failed" data-v-9d114165> PREVIEW NA </div>`);
|
|
558
585
|
else _push(`<!---->`);
|
|
559
586
|
_push(`</div>`);
|
|
560
587
|
};
|
|
@@ -568,7 +595,7 @@ ModelPreview3D_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx)
|
|
|
568
595
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/town/ModelPreview3D.vue");
|
|
569
596
|
return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
|
|
570
597
|
};
|
|
571
|
-
var ModelPreview3D_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ModelPreview3D_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
598
|
+
var ModelPreview3D_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ModelPreview3D_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-9d114165"]]), { __name: "WorkshopTownModelPreview3D" });
|
|
572
599
|
//#endregion
|
|
573
600
|
//#region app/components/workshop/AssetLibrary.vue?vue&type=script&setup=true&lang.ts
|
|
574
601
|
var AssetLibrary_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
@@ -2296,82 +2323,82 @@ var TownView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
2296
2323
|
return (_ctx, _push, _parent, _attrs) => {
|
|
2297
2324
|
const _component_WorkshopAssetLibrary = AssetLibrary_default;
|
|
2298
2325
|
const _component_WorkshopDeviceTwinPanel = DeviceTwinPanel_default;
|
|
2299
|
-
_push(`<div${ssrRenderAttrs(mergeProps({ class: "town-view" }, _attrs))} data-v-
|
|
2300
|
-
if (unref(saveState) && unref(saveState).state !== "idle") _push(`<span class="${ssrRenderClass([`s-${unref(saveState).state}`, "save-chip"])}" data-v-
|
|
2326
|
+
_push(`<div${ssrRenderAttrs(mergeProps({ class: "town-view" }, _attrs))} data-v-1444af6d><header class="topnav" data-v-1444af6d><div class="brand" data-v-1444af6d><svg class="brand-glyph" viewBox="0 0 32 32" fill="none" aria-hidden="true" data-v-1444af6d><path d="M16 2.5 27.5 9v14L16 29.5 4.5 23V9L16 2.5Z" stroke="#35e0a0" stroke-width="1.6" data-v-1444af6d></path><path d="M16 8.2 22.5 12v8L16 23.8 9.5 20v-8L16 8.2Z" stroke="#41c8f4" stroke-width="1.3" opacity=".85" data-v-1444af6d></path><circle cx="16" cy="16" r="2.4" fill="#35e0a0" data-v-1444af6d></circle><circle cx="25.5" cy="7.5" r="1.6" fill="#41c8f4" data-v-1444af6d></circle></svg><div data-v-1444af6d><div class="brand-name" data-v-1444af6d> DIGITAL <em data-v-1444af6d>TWIN</em></div><div class="brand-sub" data-v-1444af6d> AGENTWORKSHOP · ${ssrInterpolate(_ctx.$t("townView.klyi8yg127"))}</div></div></div><nav class="nav-tabs"${ssrRenderAttr("aria-label", _ctx.$t("townView.k1c9jyta001"))} data-v-1444af6d><div class="seg" data-v-1444af6d><button class="${ssrRenderClass({ on: unref(mode) === "browse" })}" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k48dwh027"))}</button><button class="${ssrRenderClass({ on: unref(mode) === "edit" })}" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k45eb0028"))}</button></div><button class="nav-action"${ssrIncludeBooleanAttr(unref(mode) !== "edit") ? " disabled" : ""}${ssrRenderAttr("title", unref(mode) === "edit" ? "把全部设备的位置/朝向/缩放写入数据库" : "运行模式只读")} data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1b3bk8t029"))}</button>`);
|
|
2327
|
+
if (unref(saveState) && unref(saveState).state !== "idle") _push(`<span class="${ssrRenderClass([`s-${unref(saveState).state}`, "save-chip"])}" data-v-1444af6d>${ssrInterpolate(unref(saveStateLabel))}</span>`);
|
|
2301
2328
|
else _push(`<!---->`);
|
|
2302
|
-
_push(`</nav><div class="nav-right" data-v-
|
|
2329
|
+
_push(`</nav><div class="nav-right" data-v-1444af6d><span class="${ssrRenderClass([{ "nav-bell-warn": unref(activeAlarmCount) > 0 }, "nav-chip mono"])}"${ssrRenderAttr("title", _ctx.$t("townView.k1fsi3ir002"))} data-v-1444af6d>◉ ${ssrInterpolate(unref(activeAlarmCount))}</span><span class="nav-chip mono" data-v-1444af6d>${ssrInterpolate(unref(fps))} FPS</span><div class="avatar-chip"${ssrRenderAttr("title", _ctx.$t("townView.k1demf38003"))} data-v-1444af6d><div class="avatar-fallback" data-v-1444af6d>${ssrInterpolate((unref(userStore).user?.name ?? "OP").slice(0, 2).toUpperCase())}</div><span data-v-1444af6d>${ssrInterpolate(unref(userStore).user?.name || _ctx.$t("townView.k1pub99m139"))}</span></div></div></header><div class="app" data-v-1444af6d><aside class="rail rail-left" data-v-1444af6d><section class="panel" data-v-1444af6d><div class="panel-hd" data-v-1444af6d><h3 data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1k75lzy030"))}</h3><span class="panel-tag" data-v-1444af6d>${ssrInterpolate(unref(deviceModels).length)}</span></div>`);
|
|
2303
2330
|
_push(ssrRenderComponent(_component_WorkshopAssetLibrary, { class: "lib-embed" }, null, _parent));
|
|
2304
|
-
_push(`</section><section class="panel" data-v-
|
|
2331
|
+
_push(`</section><section class="panel" data-v-1444af6d><div class="panel-hd" data-v-1444af6d><h3 data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k2gwyas031"))}</h3><span class="panel-tag" data-v-1444af6d>${ssrInterpolate(unref(daqTwins).length)}</span></div><div class="daq-ctrl" data-v-1444af6d><button class="${ssrRenderClass([{ on: unref(daq).controller.running }, "daq-ctl-btn"])}"${ssrRenderAttr("title", unref(daq).controller.running ? "暂停全部采集:停止所有启用节点的采样(节点级启停独立)" : "恢复全部采集:仅启用节点恢复采集(手动停用的保持停用)")} data-v-1444af6d>${ssrInterpolate(unref(daq).controller.running ? _ctx.$t("townView.k3w3j8f140") : _ctx.$t("townView.k3n93ed175"))}</button><label class="daq-ctl-cycle mono"${ssrRenderAttr("title", _ctx.$t("townView.khzlyf5004"))} data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k3xg3w032"))} <input type="number" min="200" max="60000" step="100"${ssrRenderAttr("value", unref(daq).controller.defaultIntervalMs)} data-v-1444af6d>ms </label></div><div class="daq-list" data-v-1444af6d><!--[-->`);
|
|
2305
2332
|
ssrRenderList(unref(daqTemplates), (tpl) => {
|
|
2306
|
-
_push(`<div class="daq-group" data-v-
|
|
2333
|
+
_push(`<div class="daq-group" data-v-1444af6d><div class="${ssrRenderClass([{ open: !!unref(treeOpen)[`daq:${tpl.id}`] }, "daq-card tpl"])}" role="button" tabindex="0"${ssrRenderAttr("title", _ctx.$t("townView.k2tplxp0001", {
|
|
2307
2334
|
p0: tpl.name,
|
|
2308
2335
|
p1: tpl.ch,
|
|
2309
2336
|
p2: tpl.min,
|
|
2310
2337
|
p3: tpl.max,
|
|
2311
2338
|
p4: tpl.unit
|
|
2312
|
-
}))} data-v-
|
|
2313
|
-
if (unref(mode) === "edit") _push(`<button class="daq-add"${ssrRenderAttr("title", _ctx.$t("townView.k2tplxp0002", { p0: tpl.name }))} data-v-
|
|
2339
|
+
}))} data-v-1444af6d><span class="daq-caret" data-v-1444af6d>▶</span><span class="daq-ico" data-v-1444af6d><svg class="daq-svg" viewBox="0 0 24 24" data-v-1444af6d>${daqIcon(tpl.icon) ?? ""}</svg></span><div class="daq-meta" data-v-1444af6d><span class="daq-name" data-v-1444af6d>${ssrInterpolate(tpl.name)}</span><span class="daq-code" data-v-1444af6d>${ssrInterpolate(tpl.code)}</span></div>`);
|
|
2340
|
+
if (unref(mode) === "edit") _push(`<button class="daq-add"${ssrRenderAttr("title", _ctx.$t("townView.k2tplxp0002", { p0: tpl.name }))} data-v-1444af6d> + </button>`);
|
|
2314
2341
|
else _push(`<!---->`);
|
|
2315
|
-
_push(`<span class="daq-count" data-v-
|
|
2342
|
+
_push(`<span class="daq-count" data-v-1444af6d>×${ssrInterpolate(unref(daqNodesByTpl).get(tpl.id)?.length ?? 0)}</span></div>`);
|
|
2316
2343
|
if (unref(treeOpen)[`daq:${tpl.id}`]) {
|
|
2317
|
-
_push(`<div class="daq-children" data-v-
|
|
2344
|
+
_push(`<div class="daq-children" data-v-1444af6d><!--[-->`);
|
|
2318
2345
|
ssrRenderList(unref(daqNodesByTpl).get(tpl.id) ?? [], (n) => {
|
|
2319
|
-
_push(`<div class="${ssrRenderClass([{ placed: typeof n.posX === "number" }, "daq-node"])}"${ssrRenderAttr("draggable", unref(mode) === "edit")}${ssrRenderAttr("title", typeof n.posX === "number" ? _ctx.$t("townView.k2tplxp0005") : _ctx.$t("townView.k2tplxp0006"))} data-v-
|
|
2320
|
-
if (typeof n.posX === "number") _push(`<span class="scene-cur" data-v-
|
|
2346
|
+
_push(`<div class="${ssrRenderClass([{ placed: typeof n.posX === "number" }, "daq-node"])}"${ssrRenderAttr("draggable", unref(mode) === "edit")}${ssrRenderAttr("title", typeof n.posX === "number" ? _ctx.$t("townView.k2tplxp0005") : _ctx.$t("townView.k2tplxp0006"))} data-v-1444af6d><span class="${ssrRenderClass([daqLeafState(n), "node-dot"])}" data-v-1444af6d></span><div class="daq-meta" data-v-1444af6d><span class="daq-name" data-v-1444af6d>${ssrInterpolate(n.name)}</span><span class="daq-node-sub" data-v-1444af6d><span class="node-val mono" data-v-1444af6d>${ssrInterpolate(n.value != null ? `${n.value.toFixed(tpl.decimals)} ${tpl.unit}` : "--")}</span><span class="node-dev" data-v-1444af6d>${ssrInterpolate(n.deviceBindingId ? unref(deviceTwins).byId(n.deviceBindingId)?.name ?? _ctx.$t("townView.k3own4q148") : _ctx.$t("townView.k3own4q148"))}</span></span></div>`);
|
|
2347
|
+
if (typeof n.posX === "number") _push(`<span class="scene-cur" data-v-1444af6d>✓</span>`);
|
|
2321
2348
|
else _push(`<!---->`);
|
|
2322
2349
|
_push(`</div>`);
|
|
2323
2350
|
});
|
|
2324
2351
|
_push(`<!--]-->`);
|
|
2325
|
-
if (!unref(daqNodesByTpl).get(tpl.id)?.length) _push(`<div class="daq-empty-hint" data-v-
|
|
2352
|
+
if (!unref(daqNodesByTpl).get(tpl.id)?.length) _push(`<div class="daq-empty-hint" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k2tplxp0003"))}</div>`);
|
|
2326
2353
|
else _push(`<!---->`);
|
|
2327
2354
|
_push(`</div>`);
|
|
2328
2355
|
} else _push(`<!---->`);
|
|
2329
2356
|
_push(`</div>`);
|
|
2330
2357
|
});
|
|
2331
|
-
_push(`<!--]--></div></section><section class="panel" data-v-
|
|
2358
|
+
_push(`<!--]--></div></section><section class="panel" data-v-1444af6d><div class="panel-hd" data-v-1444af6d><h3 data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.km7ayhi033"))}</h3><span class="panel-tag" data-v-1444af6d>${ssrInterpolate(unref(dcw).nodes.length)}</span></div><div class="daq-list" data-v-1444af6d><!--[-->`);
|
|
2332
2359
|
ssrRenderList(unref(dcwTemplates), (tpl) => {
|
|
2333
|
-
_push(`<div class="daq-group" data-v-
|
|
2360
|
+
_push(`<div class="daq-group" data-v-1444af6d><div class="${ssrRenderClass([{ open: !!unref(treeOpen)[`dcw:${tpl.id}`] }, "daq-card tpl"])}" role="button" tabindex="0"${ssrRenderAttr("title", _ctx.$t("townView.k2tplxp0001", {
|
|
2334
2361
|
p0: tpl.name,
|
|
2335
2362
|
p1: tpl.ch,
|
|
2336
2363
|
p2: tpl.min,
|
|
2337
2364
|
p3: tpl.max,
|
|
2338
2365
|
p4: tpl.unit
|
|
2339
|
-
}))} data-v-
|
|
2340
|
-
if (unref(mode) === "edit") _push(`<button class="daq-add"${ssrRenderAttr("title", _ctx.$t("townView.k2tplxp0002", { p0: tpl.name }))} data-v-
|
|
2366
|
+
}))} data-v-1444af6d><span class="daq-caret" data-v-1444af6d>▶</span><span class="daq-ico" data-v-1444af6d><svg class="daq-svg" viewBox="0 0 24 24" data-v-1444af6d>${daqIcon(tpl.icon) ?? ""}</svg></span><div class="daq-meta" data-v-1444af6d><span class="daq-name" data-v-1444af6d>${ssrInterpolate(tpl.name)}</span><span class="daq-code" data-v-1444af6d>${ssrInterpolate(tpl.code)}</span></div>`);
|
|
2367
|
+
if (unref(mode) === "edit") _push(`<button class="daq-add"${ssrRenderAttr("title", _ctx.$t("townView.k2tplxp0002", { p0: tpl.name }))} data-v-1444af6d> + </button>`);
|
|
2341
2368
|
else _push(`<!---->`);
|
|
2342
|
-
_push(`<span class="daq-count" data-v-
|
|
2369
|
+
_push(`<span class="daq-count" data-v-1444af6d>×${ssrInterpolate(unref(dcwNodesByTpl).get(tpl.id)?.length ?? 0)}</span></div>`);
|
|
2343
2370
|
if (unref(treeOpen)[`dcw:${tpl.id}`]) {
|
|
2344
|
-
_push(`<div class="daq-children" data-v-
|
|
2371
|
+
_push(`<div class="daq-children" data-v-1444af6d><!--[-->`);
|
|
2345
2372
|
ssrRenderList(unref(dcwNodesByTpl).get(tpl.id) ?? [], (n) => {
|
|
2346
|
-
_push(`<div class="${ssrRenderClass([{ placed: typeof n.posX === "number" }, "daq-node"])}"${ssrRenderAttr("draggable", unref(mode) === "edit")}${ssrRenderAttr("title", typeof n.posX === "number" ? _ctx.$t("townView.k2tplxp0005") : _ctx.$t("townView.k2tplxp0006"))} data-v-
|
|
2347
|
-
if (typeof n.posX === "number") _push(`<span class="scene-cur" data-v-
|
|
2373
|
+
_push(`<div class="${ssrRenderClass([{ placed: typeof n.posX === "number" }, "daq-node"])}"${ssrRenderAttr("draggable", unref(mode) === "edit")}${ssrRenderAttr("title", typeof n.posX === "number" ? _ctx.$t("townView.k2tplxp0005") : _ctx.$t("townView.k2tplxp0006"))} data-v-1444af6d><span class="${ssrRenderClass([dcwLeafState(n), "node-dot"])}" data-v-1444af6d></span><div class="daq-meta" data-v-1444af6d><span class="daq-name" data-v-1444af6d>${ssrInterpolate(n.name)}</span><span class="daq-node-sub" data-v-1444af6d><span class="node-val mono" data-v-1444af6d>${ssrInterpolate(n.value != null ? `${n.value.toFixed(tpl.decimals)} ${tpl.unit}` : "--")}</span><span class="node-dev" data-v-1444af6d>${ssrInterpolate(n.deviceBindingId ? unref(deviceTwins).byId(n.deviceBindingId)?.name ?? _ctx.$t("townView.k3own4q148") : _ctx.$t("townView.k3own4q148"))}</span></span></div>`);
|
|
2374
|
+
if (typeof n.posX === "number") _push(`<span class="scene-cur" data-v-1444af6d>✓</span>`);
|
|
2348
2375
|
else _push(`<!---->`);
|
|
2349
2376
|
_push(`</div>`);
|
|
2350
2377
|
});
|
|
2351
2378
|
_push(`<!--]-->`);
|
|
2352
|
-
if (!unref(dcwNodesByTpl).get(tpl.id)?.length) _push(`<div class="daq-empty-hint" data-v-
|
|
2379
|
+
if (!unref(dcwNodesByTpl).get(tpl.id)?.length) _push(`<div class="daq-empty-hint" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k2tplxp0003"))}</div>`);
|
|
2353
2380
|
else _push(`<!---->`);
|
|
2354
2381
|
_push(`</div>`);
|
|
2355
2382
|
} else _push(`<!---->`);
|
|
2356
2383
|
_push(`</div>`);
|
|
2357
2384
|
});
|
|
2358
|
-
_push(`<!--]--></div></section><section class="panel" data-v-
|
|
2385
|
+
_push(`<!--]--></div></section><section class="panel" data-v-1444af6d><div class="panel-hd" data-v-1444af6d><h3 data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1c9n911034"))}</h3><span class="panel-tag" data-v-1444af6d>${ssrInterpolate(unref(dockChannels).length)}</span></div><div class="scene-list" data-v-1444af6d><!--[-->`);
|
|
2359
2386
|
ssrRenderList(unref(dockChannels), (ch) => {
|
|
2360
|
-
_push(`<div class="${ssrRenderClass([{ active: ch.placed }, "scene-row"])}"${ssrRenderAttr("draggable", !ch.placed && unref(mode) === "edit")}${ssrRenderAttr("data-channel-id", ch.channelId)}${ssrRenderAttr("title", ch.placed ? "已在场景中,点击定位" : "拖拽到场景放置")} data-v-
|
|
2361
|
-
if (ch.placed) _push(`<span class="scene-cur" data-v-
|
|
2362
|
-
else _push(`<span class="scene-add" data-v-
|
|
2387
|
+
_push(`<div class="${ssrRenderClass([{ active: ch.placed }, "scene-row"])}"${ssrRenderAttr("draggable", !ch.placed && unref(mode) === "edit")}${ssrRenderAttr("data-channel-id", ch.channelId)}${ssrRenderAttr("title", ch.placed ? "已在场景中,点击定位" : "拖拽到场景放置")} data-v-1444af6d><span class="scene-ico" style="${ssrRenderStyle({ "--ch": ch.color })}" data-v-1444af6d></span><div class="scene-meta-wrap" data-v-1444af6d><span class="scene-name" data-v-1444af6d>${ssrInterpolate(ch.name)}</span><span class="scene-meta" data-v-1444af6d>${ssrInterpolate(ch.agentCount)} ${ssrInterpolate(_ctx.$t("townView.k1brss7t128"))} ${ssrInterpolate(ch.placed ? _ctx.$t("townView.k3n94g3141") : _ctx.$t("townView.k3os7i3176"))}</span></div>`);
|
|
2388
|
+
if (ch.placed) _push(`<span class="scene-cur" data-v-1444af6d>✓</span>`);
|
|
2389
|
+
else _push(`<span class="scene-add" data-v-1444af6d>+</span>`);
|
|
2363
2390
|
_push(`</div>`);
|
|
2364
2391
|
});
|
|
2365
2392
|
_push(`<!--]-->`);
|
|
2366
|
-
if (unref(dockHint)) _push(`<div class="scene-hint" data-v-
|
|
2393
|
+
if (unref(dockHint)) _push(`<div class="scene-hint" data-v-1444af6d>${ssrInterpolate(unref(dockHint))}</div>`);
|
|
2367
2394
|
else _push(`<!---->`);
|
|
2368
|
-
_push(`</div></section></aside><main class="stage-col" data-v-
|
|
2395
|
+
_push(`</div></section></aside><main class="stage-col" data-v-1444af6d><div class="stage" data-v-1444af6d><div id="town-host" class="town-host" data-v-1444af6d></div><div class="stage-vignette" data-v-1444af6d></div><div class="stage-top" data-v-1444af6d><div class="vp-title" data-v-1444af6d><h2 data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1b0z4vr035"))}</h2><span class="vp-id" data-v-1444af6d>CH · ${ssrInterpolate(unref(activeChannelName) || _ctx.$t("townView.k3lkuz3142"))}</span></div><div class="vp-tools" data-v-1444af6d><button class="vp-tool"${ssrRenderAttr("title", _ctx.$t("townView.k18d6wnb005"))} data-v-1444af6d><svg class="vp-svg" viewBox="0 0 24 24" data-v-1444af6d><circle cx="12" cy="12" r="7" data-v-1444af6d></circle><path d="M12 2v4M12 18v4M2 12h4M18 12h4" data-v-1444af6d></path></svg></button><button class="${ssrRenderClass([{ on: unref(orbitOn) }, "vp-tool"])}"${ssrRenderAttr("title", _ctx.$t("townView.k1io51dn006"))} data-v-1444af6d><svg class="vp-svg" viewBox="0 0 24 24" data-v-1444af6d><circle cx="12" cy="12" r="3.2" data-v-1444af6d></circle><path d="M20.5 9a10 10 0 0 1 .3 4.5M3.5 15a10 10 0 0 1-.3-4.5" data-v-1444af6d></path></svg></button><button class="${ssrRenderClass([{ on: unref(showCallouts) }, "vp-tool"])}"${ssrRenderAttr("title", _ctx.$t("townView.k1sgjlq8007"))} data-v-1444af6d><svg class="vp-svg" viewBox="0 0 24 24" data-v-1444af6d><path d="M4 8h12l4 4-4 4H4z" data-v-1444af6d></path><circle cx="8.5" cy="12" r="1.4" data-v-1444af6d></circle></svg></button><button class="vp-tool"${ssrRenderAttr("title", _ctx.$t("townView.k3wuf0008"))} data-v-1444af6d><svg class="vp-svg" viewBox="0 0 24 24" data-v-1444af6d><path d="M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5" data-v-1444af6d></path></svg></button></div></div><div class="angle-chip" data-v-1444af6d><select${ssrRenderAttr("value", unref(viewPreset))}${ssrRenderAttr("aria-label", _ctx.$t("townView.k1k4j5i7009"))} data-v-1444af6d><option value="std" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.kv72860036"))}</option><option value="top" data-v-1444af6d> 俯视 · TOP </option><option value="front" data-v-1444af6d> 前视 · FRONT </option><option value="side" data-v-1444af6d> 侧视 · SIDE </option></select></div>`);
|
|
2369
2396
|
if (unref(showCallouts)) {
|
|
2370
|
-
_push(`<!--[--><svg class="leaders" data-v-
|
|
2397
|
+
_push(`<!--[--><svg class="leaders" data-v-1444af6d><!--[-->`);
|
|
2371
2398
|
ssrRenderList(unref(callouts), (c) => {
|
|
2372
|
-
_push(`<g class="${ssrRenderClass({ near: c.near })}" style="${ssrRenderStyle(c.leader ? null : { display: "none" })}" data-v-
|
|
2399
|
+
_push(`<g class="${ssrRenderClass({ near: c.near })}" style="${ssrRenderStyle(c.leader ? null : { display: "none" })}" data-v-1444af6d><path${ssrRenderAttr("d", `M ${c.x} ${c.y - 8} L ${c.x} ${c.y - 2}`)}${ssrRenderAttr("stroke", c.warn ? "rgba(246,196,83,.8)" : "rgba(65,200,244,.55)")} stroke-width="1.3" fill="none" data-v-1444af6d></path><circle${ssrRenderAttr("cx", c.x)}${ssrRenderAttr("cy", c.y)} r="2.6"${ssrRenderAttr("fill", c.warn ? "#f6c453" : "#41c8f4")} data-v-1444af6d></circle></g>`);
|
|
2373
2400
|
});
|
|
2374
|
-
_push(`<!--]--></svg><div class="callout-layer" data-v-
|
|
2401
|
+
_push(`<!--]--></svg><div class="callout-layer" data-v-1444af6d><!--[-->`);
|
|
2375
2402
|
ssrRenderList(unref(callouts), (c) => {
|
|
2376
2403
|
_push(`<div class="${ssrRenderClass([{
|
|
2377
2404
|
warn: c.warn,
|
|
@@ -2379,12 +2406,12 @@ var TownView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
2379
2406
|
}, "callout"])}" style="${ssrRenderStyle({
|
|
2380
2407
|
left: c.x + "px",
|
|
2381
2408
|
top: c.y + "px"
|
|
2382
|
-
})}"${ssrRenderAttr("title", _ctx.$t("townView.k1ejxiwp010"))} data-v-
|
|
2409
|
+
})}"${ssrRenderAttr("title", _ctx.$t("townView.k1ejxiwp010"))} data-v-1444af6d><div class="co-label" data-v-1444af6d><span class="co-dot" data-v-1444af6d></span>${ssrInterpolate(c.label)}</div><div class="co-val" data-v-1444af6d>${ssrInterpolate(c.value)}<small data-v-1444af6d>${ssrInterpolate(c.unit)}</small></div><div class="co-range" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1faqmjb073"))} ${ssrInterpolate(c.lo.toFixed(Math.min(2, (String(c.lo).split(".")[1] ?? "").length + 1)))} – ${ssrInterpolate(c.hi.toFixed(Math.min(2, (String(c.hi).split(".")[1] ?? "").length + 1)))}</div></div>`);
|
|
2383
2410
|
});
|
|
2384
2411
|
_push(`<!--]--></div><!--]-->`);
|
|
2385
2412
|
} else _push(`<!---->`);
|
|
2386
|
-
_push(`<div class="kpi-strip" data-v-
|
|
2387
|
-
if (unref(sceneEmpty)) _push(`<div class="empty-hint" data-v-
|
|
2413
|
+
_push(`<div class="kpi-strip" data-v-1444af6d><div class="kpi" data-v-1444af6d><span class="kpi-ico c1" data-v-1444af6d><svg class="kpi-svg" viewBox="0 0 24 24" data-v-1444af6d><path d="M4 8.5 12 4l8 4.5v7L12 20l-8-4.5v-7Z" data-v-1444af6d></path><path d="M4 8.5l8 4.5 8-4.5M12 13v7" data-v-1444af6d></path></svg></span><div class="kpi-meta" data-v-1444af6d><div class="kpi-label" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1k6xemt037"))}</div><div class="kpi-val" data-v-1444af6d>${ssrInterpolate(unref(deviceCount))}<small data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k49lh038"))}</small></div></div></div><div class="kpi" data-v-1444af6d><span class="kpi-ico c2" data-v-1444af6d><svg class="kpi-svg" viewBox="0 0 24 24" data-v-1444af6d><path d="m5 12.5 4.5 4.5L19 7.5" data-v-1444af6d></path></svg></span><div class="kpi-meta" data-v-1444af6d><div class="kpi-label" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1l1a9t2039"))}</div><div class="kpi-val" data-v-1444af6d>${ssrInterpolate(unref(runningCount))}<small data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k49lh038"))}</small></div></div></div><div class="kpi" data-v-1444af6d><span class="kpi-ico c3" data-v-1444af6d><svg class="kpi-svg" viewBox="0 0 24 24" data-v-1444af6d><path d="M12 3 22 20H2L12 3Z" data-v-1444af6d></path><path d="M12 10v4M12 17v.2" data-v-1444af6d></path></svg></span><div class="kpi-meta" data-v-1444af6d><div class="kpi-label" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1fsi3ir002"))}</div><div class="kpi-val" data-v-1444af6d>${ssrInterpolate(unref(activeAlarmCount))}<small data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k4dfq040"))}</small></div></div></div><div class="kpi" data-v-1444af6d><span class="kpi-ico c4" data-v-1444af6d><svg class="kpi-svg" viewBox="0 0 24 24" data-v-1444af6d><path d="M9.5 14.5 14.5 9.5" data-v-1444af6d></path><path d="M11 6.5 12.8 4.7a4 4 0 0 1 5.6 5.6L16.5 12" data-v-1444af6d></path><path d="m13 17.5-1.8 1.8a4 4 0 0 1-5.6-5.6L7.5 12" data-v-1444af6d></path></svg></span><div class="kpi-meta" data-v-1444af6d><div class="kpi-label" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1emsai1041"))}</div><div class="kpi-val" data-v-1444af6d>${ssrInterpolate(unref(daqTwins).length)}<small data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k4l1w042"))}</small></div></div></div><div class="kpi" data-v-1444af6d><span class="kpi-ico c5" data-v-1444af6d><svg class="kpi-svg" viewBox="0 0 24 24" data-v-1444af6d><path d="M5 19a9 9 0 1 1 14 0" data-v-1444af6d></path><path d="M12 13l3.5-3.5" data-v-1444af6d></path><circle cx="12" cy="13" r="1.4" data-v-1444af6d></circle></svg></span><div class="kpi-meta" data-v-1444af6d><div class="kpi-label" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.kbrxdq1043"))}</div><div class="kpi-val" data-v-1444af6d>${ssrInterpolate(unref(healthPct))}<small data-v-1444af6d>%</small></div></div></div></div>`);
|
|
2414
|
+
if (unref(sceneEmpty)) _push(`<div class="empty-hint" data-v-1444af6d><b data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k3rwxjc044"))}</b><span data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1sa1eaj045"))}</span></div>`);
|
|
2388
2415
|
else _push(`<!---->`);
|
|
2389
2416
|
if (unref(selectedChannel) && unref(boundaryDraft)) {
|
|
2390
2417
|
_push(`<div class="boundary-panel drag-panel" style="${ssrRenderStyle(unref(panelPos).boundary ? {
|
|
@@ -2392,111 +2419,111 @@ var TownView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
2392
2419
|
top: unref(panelPos).boundary.y + "px",
|
|
2393
2420
|
bottom: "auto",
|
|
2394
2421
|
transform: "none"
|
|
2395
|
-
} : void 0)}" data-v-
|
|
2396
|
-
if (unref(channelPanelTab) === "boundary") _push(`<!--[--><div class="bp-row" data-v-
|
|
2422
|
+
} : void 0)}" data-v-1444af6d><div class="bp-title drag-grip"${ssrRenderAttr("title", _ctx.$t("townView.k1d0rl5z011"))} data-v-1444af6d><span class="bp-name" data-v-1444af6d>${ssrInterpolate(unref(entities).channels[unref(selectedChannel)]?.name ?? unref(selectedChannel).slice(0, 8))}</span><span class="bp-sub" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1mehlxs046"))}</span><div class="bp-tabs" data-v-1444af6d><button class="${ssrRenderClass([{ on: unref(channelPanelTab) === "boundary" }, "bp-tab"])}" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k489ka047"))}</button><button class="${ssrRenderClass([{ on: unref(channelPanelTab) === "members" }, "bp-tab"])}" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k3ztf1129"))} ${ssrInterpolate(unref(channelMembers).length)}</button></div></div>`);
|
|
2423
|
+
if (unref(channelPanelTab) === "boundary") _push(`<!--[--><div class="bp-row" data-v-1444af6d><span class="bp-label" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k3zhy5048"))}</span><div class="bp-seg" data-v-1444af6d><button class="${ssrRenderClass([{ on: unref(boundaryDraft).shape === "ellipse" }, "seg-btn"])}" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k414bc049"))}</button><button class="${ssrRenderClass([{ on: unref(boundaryDraft).shape === "rect" }, "seg-btn"])}" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k43u0g050"))}</button></div></div><div class="bp-row" data-v-1444af6d><span class="bp-label" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1fbz4s1051"))}</span><input${ssrRenderAttr("value", unref(boundaryDraft).radiusX)} class="bp-range" type="range" min="80" max="4000" step="8" style="${ssrRenderStyle({ "--fill": sliderPct(unref(boundaryDraft).radiusX, 80, 4e3) })}" data-v-1444af6d><span class="bp-val" data-v-1444af6d>${ssrInterpolate(Math.round(unref(boundaryDraft).radiusX))}</span></div><div class="bp-row" data-v-1444af6d><span class="bp-label" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1ighwgs052"))}</span><input${ssrRenderAttr("value", unref(boundaryDraft).radiusZ)} class="bp-range" type="range" min="60" max="4000" step="8" style="${ssrRenderStyle({ "--fill": sliderPct(unref(boundaryDraft).radiusZ, 60, 4e3) })}" data-v-1444af6d><span class="bp-val" data-v-1444af6d>${ssrInterpolate(Math.round(unref(boundaryDraft).radiusZ))}</span></div><div class="bp-row" data-v-1444af6d><span class="bp-label" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k40qab053"))}</span><input${ssrRenderAttr("value", unref(boundaryDraft).rotationY)} class="bp-range" type="range" min="0" max="360" step="5" style="${ssrRenderStyle({ "--fill": sliderPct(unref(boundaryDraft).rotationY ?? 0, 0, 360) })}" data-v-1444af6d><span class="bp-val" data-v-1444af6d>${ssrInterpolate(Math.round(unref(boundaryDraft).rotationY ?? 0))}°</span></div><!--]-->`);
|
|
2397
2424
|
else {
|
|
2398
|
-
_push(`<!--[--><div class="bp-hint" data-v-
|
|
2425
|
+
_push(`<!--[--><div class="bp-hint" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.kimxls2054"))}</div><div class="member-list" data-v-1444af6d><!--[-->`);
|
|
2399
2426
|
ssrRenderList(unref(channelMembers), (m) => {
|
|
2400
|
-
_push(`<div class="member-row" data-v-
|
|
2427
|
+
_push(`<div class="member-row" data-v-1444af6d><span class="member-ava" style="${ssrRenderStyle({ color: hashColor(unref(selectedChannel)) })}" data-v-1444af6d>${ssrInterpolate(m.name.charAt(0).toUpperCase())}</span><div class="member-info" data-v-1444af6d><span class="member-name" data-v-1444af6d>${ssrInterpolate(m.name)}</span><span class="${ssrRenderClass([m.role === "lead" ? "r-lead" : "r-worker", "member-role"])}" data-v-1444af6d>${ssrInterpolate(m.role === "lead" ? "Leader" : "Worker")}</span></div><select class="member-select"${ssrRenderAttr("value", (m.modelRef ?? "") || "hero-3d")} data-v-1444af6d><!--[-->`);
|
|
2401
2428
|
ssrRenderList(unref(agentModels), (model) => {
|
|
2402
|
-
_push(`<option${ssrRenderAttr("value", model.id)} data-v-
|
|
2429
|
+
_push(`<option${ssrRenderAttr("value", model.id)} data-v-1444af6d>${ssrInterpolate(model.name)}</option>`);
|
|
2403
2430
|
});
|
|
2404
2431
|
_push(`<!--]--></select></div>`);
|
|
2405
2432
|
});
|
|
2406
2433
|
_push(`<!--]-->`);
|
|
2407
|
-
if (unref(channelMembers).length === 0) _push(`<div class="bp-hint" data-v-
|
|
2434
|
+
if (unref(channelMembers).length === 0) _push(`<div class="bp-hint" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k419rbs055"))}</div>`);
|
|
2408
2435
|
else _push(`<!---->`);
|
|
2409
2436
|
_push(`</div><!--]-->`);
|
|
2410
2437
|
}
|
|
2411
|
-
_push(`<div class="bp-actions" data-v-
|
|
2412
|
-
if (unref(channelPanelTab) === "boundary") _push(`<button class="bp-btn save" data-v-
|
|
2438
|
+
_push(`<div class="bp-actions" data-v-1444af6d>`);
|
|
2439
|
+
if (unref(channelPanelTab) === "boundary") _push(`<button class="bp-btn save" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1b3kp8f056"))}</button>`);
|
|
2413
2440
|
else _push(`<!---->`);
|
|
2414
|
-
_push(`<button class="bp-btn danger" data-v-
|
|
2441
|
+
_push(`<button class="bp-btn danger" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1hs45qg057"))}</button><button class="bp-btn" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k3x62t058"))}</button></div></div>`);
|
|
2415
2442
|
} else _push(`<!---->`);
|
|
2416
|
-
if (unref(lastDropText)) _push(`<div class="drop-chip" data-v-
|
|
2443
|
+
if (unref(lastDropText)) _push(`<div class="drop-chip" data-v-1444af6d>${ssrInterpolate(unref(lastDropText))}</div>`);
|
|
2417
2444
|
else _push(`<!---->`);
|
|
2418
|
-
if (unref(errorText)) _push(`<div class="error-chip" data-v-
|
|
2445
|
+
if (unref(errorText)) _push(`<div class="error-chip" data-v-1444af6d>${ssrInterpolate(unref(errorText))}</div>`);
|
|
2419
2446
|
else _push(`<!---->`);
|
|
2420
|
-
if (!unref(ready)) _push(`<div data-hud="town-loading" class="loading-mask" data-v-
|
|
2447
|
+
if (!unref(ready)) _push(`<div data-hud="town-loading" class="loading-mask" data-v-1444af6d><div class="loading-spinner" data-v-1444af6d></div><span class="loading-text" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.kvjdqfg059"))}</span></div>`);
|
|
2421
2448
|
else _push(`<!---->`);
|
|
2422
|
-
_push(`</div><div class="dock" data-v-
|
|
2449
|
+
_push(`</div><div class="dock" data-v-1444af6d><section class="dock-card" data-v-1444af6d><div class="dock-hd" data-v-1444af6d><h3 data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1c9iq23060"))}</h3><span class="dock-mode" data-v-1444af6d>${ssrInterpolate(unref(mode) === "edit" ? _ctx.$t("townView.k1iipfcs143") : _ctx.$t("townView.k1l147w1177"))}</span></div><p class="ctl-sec" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.secRender"))}</p><div class="ctl-row" data-v-1444af6d><span class="ctl-name"${ssrRenderAttr("title", _ctx.$t("townView.qualityTip"))} data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.qualityLabel"))}</span><div class="fps-seg" data-v-1444af6d><!--[-->`);
|
|
2423
2450
|
ssrRenderList(QUALITY_OPTIONS, (o) => {
|
|
2424
|
-
_push(`<button class="${ssrRenderClass({ on: unref(qualityMode) === o.v })}" data-v-
|
|
2451
|
+
_push(`<button class="${ssrRenderClass({ on: unref(qualityMode) === o.v })}" data-v-1444af6d>${ssrInterpolate(_ctx.$t(o.label))}</button>`);
|
|
2425
2452
|
});
|
|
2426
|
-
_push(`<!--]--></div><span class="ctl-val" data-v-
|
|
2453
|
+
_push(`<!--]--></div><span class="ctl-val" data-v-1444af6d></span></div><div class="ctl-row" data-v-1444af6d><span class="ctl-name"${ssrRenderAttr("title", _ctx.$t("townView.fpsCapTip"))} data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.fpsCapLabel"))}</span><div class="fps-seg" data-v-1444af6d><!--[-->`);
|
|
2427
2454
|
ssrRenderList(FPS_OPTIONS, (o) => {
|
|
2428
|
-
_push(`<button class="${ssrRenderClass({ on: unref(fpsCap) === o.v })}" data-v-
|
|
2455
|
+
_push(`<button class="${ssrRenderClass({ on: unref(fpsCap) === o.v })}" data-v-1444af6d>${ssrInterpolate(o.label)}</button>`);
|
|
2429
2456
|
});
|
|
2430
|
-
_push(`<!--]--></div><span class="ctl-val" data-v-
|
|
2457
|
+
_push(`<!--]--></div><span class="ctl-val" data-v-1444af6d></span></div><p class="ctl-sec" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.secEnv"))}</p><div class="ctl-row" data-v-1444af6d><span class="ctl-name" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1gizopz061"))}</span><input class="ctl-range" type="range" min="30" max="220"${ssrRenderAttr("value", Math.round(unref(exposure) * 100))} style="${ssrRenderStyle({ "--fill": sliderPct(Math.round(unref(exposure) * 100), 30, 220) })}" data-v-1444af6d><span class="ctl-val" data-v-1444af6d>${ssrInterpolate(Math.round(unref(exposure) * 100))}%</span></div><div class="ctl-row" data-v-1444af6d><span class="ctl-name" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1bcpqto062"))}</span><input class="ctl-range" type="range" min="10" max="100"${ssrRenderAttr("value", Math.round(unref(tintOpacity) * 100))} style="${ssrRenderStyle({ "--fill": sliderPct(Math.round(unref(tintOpacity) * 100), 10, 100) })}" data-v-1444af6d><span class="ctl-val" data-v-1444af6d>${ssrInterpolate(Math.round(unref(tintOpacity) * 100))}%</span></div><div class="ctl-row" data-v-1444af6d><span class="ctl-name" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1bztha1063"))}</span><input class="ctl-range" type="range" min="60" max="120"${ssrRenderAttr("value", unref(threshPct))} style="${ssrRenderStyle({ "--fill": sliderPct(unref(threshPct), 60, 120) })}" data-v-1444af6d><span class="ctl-val" data-v-1444af6d>${ssrInterpolate(unref(threshPct))}%</span></div><div class="ctl-row" data-v-1444af6d><span class="ctl-name"${ssrRenderAttr("title", _ctx.$t("townView.kz71l1f012"))} data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.ka4i1s9064"))}</span><input class="ctl-range" type="range" min="0" max="3000" step="50"${ssrRenderAttr("value", unref(calloutNearDist))} style="${ssrRenderStyle({ "--fill": sliderPct(unref(calloutNearDist), 0, 3e3) })}" data-v-1444af6d><span class="ctl-val" data-v-1444af6d>${ssrInterpolate(unref(calloutNearDist) === 0 ? _ctx.$t("townView.k493s144") : `${unref(calloutNearDist)}`)}</span></div><p class="ctl-sec" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.secOps"))}</p><div class="ctl-row" data-v-1444af6d><span class="ctl-name" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1idc6pa065"))}</span><button class="${ssrRenderClass([{ on: unref(snap) }, "snap-toggle"])}" data-v-1444af6d>${ssrInterpolate(unref(snap) ? _ctx.$t("townView.k4bs5145") : _ctx.$t("townView.k493s144"))}</button><span class="ctl-val" data-v-1444af6d></span></div><div class="ctl-btns" data-v-1444af6d><button class="btn btn-primary" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1lap9bs024"))}</button><button class="btn btn-ghost"${ssrIncludeBooleanAttr(unref(mode) !== "edit") ? " disabled" : ""}${ssrRenderAttr("title", unref(mode) === "edit" ? _ctx.$t("townView.ksavetip181") : _ctx.$t("townView.krotip182"))} data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1b3bk8t029"))}</button><button class="${ssrRenderClass([{ armed: unref(estop) }, "btn btn-danger"])}" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1i046wf066"))}</button></div></section><section class="dock-card" data-v-1444af6d><div class="dock-hd" data-v-1444af6d><h3 data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1kfoef9067"))}</h3><span class="dock-count mono" data-v-1444af6d>${ssrInterpolate(unref(daqTwins).length)}</span><div class="${ssrRenderClass([{ expanded: unref(trendExpanded) }, "trend-legend"])}" data-v-1444af6d><!--[-->`);
|
|
2431
2458
|
ssrRenderList(unref(trendChips), (t) => {
|
|
2432
|
-
_push(`<button class="${ssrRenderClass([{ off: !trendOn(t.id) }, "lg-chip"])}" data-v-
|
|
2459
|
+
_push(`<button class="${ssrRenderClass([{ off: !trendOn(t.id) }, "lg-chip"])}" data-v-1444af6d><span class="lg-dot" style="${ssrRenderStyle({ background: trendColor(t.id) })}" data-v-1444af6d></span>${ssrInterpolate(t.name)}</button>`);
|
|
2433
2460
|
});
|
|
2434
2461
|
_push(`<!--]-->`);
|
|
2435
|
-
if (unref(trendOverflow) > 0) _push(`<button class="lg-chip lg-more mono"${ssrRenderAttr("title", unref(trendExpanded) ? _ctx.$t("townView.trendCollapse") : _ctx.$t("townView.trendExpandAll", { p0: unref(daqTwins).length }))} data-v-
|
|
2462
|
+
if (unref(trendOverflow) > 0) _push(`<button class="lg-chip lg-more mono"${ssrRenderAttr("title", unref(trendExpanded) ? _ctx.$t("townView.trendCollapse") : _ctx.$t("townView.trendExpandAll", { p0: unref(daqTwins).length }))} data-v-1444af6d>${ssrInterpolate(unref(trendExpanded) ? _ctx.$t("townView.trendCollapse") : `+${unref(trendOverflow)}`)}</button>`);
|
|
2436
2463
|
else _push(`<!---->`);
|
|
2437
|
-
_push(`</div></div><div class="trend-wrap" data-v-
|
|
2438
|
-
if (!unref(daqTwins).length) _push(`<span class="trend-empty" data-v-
|
|
2464
|
+
_push(`</div></div><div class="trend-wrap" data-v-1444af6d><canvas class="trend-cv" data-v-1444af6d></canvas>`);
|
|
2465
|
+
if (!unref(daqTwins).length) _push(`<span class="trend-empty" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1uht2uv068"))}</span>`);
|
|
2439
2466
|
else _push(`<!---->`);
|
|
2440
|
-
_push(`</div></section></div></main><aside class="rail rail-right" data-v-
|
|
2467
|
+
_push(`</div></section></div></main><aside class="rail rail-right" data-v-1444af6d>`);
|
|
2441
2468
|
if (unref(selected)) {
|
|
2442
|
-
_push(`<section class="panel inspector" data-v-
|
|
2443
|
-
if (unref(selected).kind === "device" && unref(selectedIsDaq)) _push(`<span class="ins-chip accent" data-v-
|
|
2444
|
-
else if (unref(selected).kind === "device" && unref(selectedIsDcw)) _push(`<span class="ins-chip accent" data-v-
|
|
2469
|
+
_push(`<section class="panel inspector" data-v-1444af6d><div class="panel-hd" data-v-1444af6d><h3 data-v-1444af6d>${ssrInterpolate(unref(selected).kind === "device" ? unref(selectedIsDcw) ? _ctx.$t("townView.k1ekqxlt146") : unref(selectedIsDaq) ? _ctx.$t("townView.k1empnnb178") : _ctx.$t("townView.k1k6wg8j185") : unref(selectedAgentRoleLabel))}</h3><button class="mini-btn"${ssrRenderAttr("title", _ctx.$t("townView.k1bsckft013"))} data-v-1444af6d> ✕ </button></div><div class="ins-chip-row" data-v-1444af6d><span class="ins-chip mono" data-v-1444af6d>${ssrInterpolate(unref(selected).id.slice(0, 8))}</span>`);
|
|
2470
|
+
if (unref(selected).kind === "device" && unref(selectedIsDaq)) _push(`<span class="ins-chip accent" data-v-1444af6d>DAQ</span>`);
|
|
2471
|
+
else if (unref(selected).kind === "device" && unref(selectedIsDcw)) _push(`<span class="ins-chip accent" data-v-1444af6d>DCW</span>`);
|
|
2445
2472
|
else _push(`<!---->`);
|
|
2446
2473
|
_push(`</div>`);
|
|
2447
2474
|
if (unref(selected).kind === "device") {
|
|
2448
2475
|
_push(`<!--[-->`);
|
|
2449
2476
|
if (unref(selectedIsDcw)) {
|
|
2450
|
-
_push(`<div class="daq-info" data-v-
|
|
2451
|
-
if (unref(dcwWriteErrs)[unref(selected).id]) _push(`<p class="dcw-err" data-v-
|
|
2477
|
+
_push(`<div class="daq-info" data-v-1444af6d><div class="daq-info-row" data-v-1444af6d><span data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1deqh0d069"))}</span><b class="cy" data-v-1444af6d>${ssrInterpolate(unref(selectedDcwNode)?.value != null ? unref(selectedDcwNode).value.toFixed(unref(selectedDcwNode).decimals) : "--")} ${ssrInterpolate(unref(selectedDcwNode)?.unit)}</b></div><div class="daq-info-row" data-v-1444af6d><span data-v-1444af6d>${ssrInterpolate(unref(selectedDcwWindow)?.src === "recipe" ? _ctx.$t("townView.kq2jssk147") : _ctx.$t("townView.k1iwj796179"))}</span><b class="${ssrRenderClass({ amber: unref(selectedDcwWindow)?.src === "recipe" })}" data-v-1444af6d>${ssrInterpolate(dcwWinLabel(unref(selectedDcwNode)))}</b></div><div class="daq-info-row" data-v-1444af6d><span data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1i8rtqt070"))}</span><b data-v-1444af6d>${ssrInterpolate(unref(selectedDcwDeviceName) || _ctx.$t("townView.k3own4q148"))}</b></div><div class="daq-bind-bar" data-v-1444af6d><input${ssrRenderAttr("value", unref(dcwWriteDrafts)[unref(selected).id])} type="number" class="bind-select"${ssrRenderAttr("step", 10 ** -(unref(selectedDcwNode)?.decimals ?? 2))}${ssrRenderAttr("placeholder", dcwWinInputPh(unref(selectedDcwNode)))} data-v-1444af6d><button class="bind-add-btn"${ssrIncludeBooleanAttr(unref(dcwWriteDrafts)[unref(selected).id] == null || unref(dcwWriteDrafts)[unref(selected).id] === "") ? " disabled" : ""} data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.kwrbtn180"))}</button></div>`);
|
|
2478
|
+
if (unref(dcwWriteErrs)[unref(selected).id]) _push(`<p class="dcw-err" data-v-1444af6d>${ssrInterpolate(unref(dcwWriteErrs)[unref(selected).id])}</p>`);
|
|
2452
2479
|
else _push(`<!---->`);
|
|
2453
2480
|
if (unref(mode) === "edit") {
|
|
2454
|
-
_push(`<div class="daq-bind-bar" data-v-
|
|
2481
|
+
_push(`<div class="daq-bind-bar" data-v-1444af6d><select class="bind-select" data-v-1444af6d><option value="" data-v-1444af6d${ssrIncludeBooleanAttr(Array.isArray(unref(dcwBindPick)) ? ssrLooseContain(unref(dcwBindPick), "") : ssrLooseEqual(unref(dcwBindPick), "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("townView.kjo6ekr071"))}</option><!--[-->`);
|
|
2455
2482
|
ssrRenderList(unref(deviceTwins).twins.filter((x) => !isLegacyDaqTwin(x) && x.id !== (unref(selected)?.id ?? "")), (dv) => {
|
|
2456
|
-
_push(`<option${ssrRenderAttr("value", dv.id)} data-v-
|
|
2483
|
+
_push(`<option${ssrRenderAttr("value", dv.id)} data-v-1444af6d${ssrIncludeBooleanAttr(Array.isArray(unref(dcwBindPick)) ? ssrLooseContain(unref(dcwBindPick), dv.id) : ssrLooseEqual(unref(dcwBindPick), dv.id)) ? " selected" : ""}>${ssrInterpolate(dv.name)}</option>`);
|
|
2457
2484
|
});
|
|
2458
|
-
_push(`<!--]--></select><button class="bind-add-btn"${ssrIncludeBooleanAttr(!unref(selectedDcwDeviceName) && !unref(dcwBindPick)) ? " disabled" : ""} data-v-
|
|
2485
|
+
_push(`<!--]--></select><button class="bind-add-btn"${ssrIncludeBooleanAttr(!unref(selectedDcwDeviceName) && !unref(dcwBindPick)) ? " disabled" : ""} data-v-1444af6d>${ssrInterpolate(unref(selectedDcwDeviceName) ? _ctx.$t("townView.k479eh149") : _ctx.$t("townView.k452a8102"))}</button></div>`);
|
|
2459
2486
|
} else _push(`<!---->`);
|
|
2460
2487
|
_push(`</div>`);
|
|
2461
2488
|
} else if (unref(selectedIsDaq)) {
|
|
2462
|
-
_push(`<div class="daq-info" data-v-
|
|
2489
|
+
_push(`<div class="daq-info" data-v-1444af6d><div class="daq-info-row" data-v-1444af6d><span data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k3mv305072"))}</span><b class="cy" data-v-1444af6d>${ssrInterpolate(unref(selectedDaqSim) ? fmtDaq(unref(selectedDaqSim)) : "--")} ${ssrInterpolate(unref(selectedDaqSim)?.tpl.unit)}</b></div><div class="daq-info-row" data-v-1444af6d><span data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1faqmjb073"))}</span><b data-v-1444af6d>${ssrInterpolate(unref(selectedDaqSim)?.tpl.min)} ~ ${ssrInterpolate(unref(selectedDaqSim)?.tpl.max)}</b></div><div class="daq-info-row" data-v-1444af6d><span data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1i8rtqt070"))}</span><b data-v-1444af6d>${ssrInterpolate(unref(daqBoundDeviceName) || _ctx.$t("townView.k3own4q148"))}</b></div>`);
|
|
2463
2490
|
if (unref(mode) === "edit") {
|
|
2464
|
-
_push(`<div class="daq-bind-bar" data-v-
|
|
2491
|
+
_push(`<div class="daq-bind-bar" data-v-1444af6d><select class="bind-select" data-v-1444af6d><option value="" data-v-1444af6d${ssrIncludeBooleanAttr(Array.isArray(unref(bindPick)) ? ssrLooseContain(unref(bindPick), "") : ssrLooseEqual(unref(bindPick), "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("townView.kjo6ekr071"))}</option><!--[-->`);
|
|
2465
2492
|
ssrRenderList(unref(deviceTwins).twins.filter((x) => !isLegacyDaqTwin(x) && x.id !== (unref(selected)?.id ?? "")), (dv) => {
|
|
2466
|
-
_push(`<option${ssrRenderAttr("value", dv.id)} data-v-
|
|
2493
|
+
_push(`<option${ssrRenderAttr("value", dv.id)} data-v-1444af6d${ssrIncludeBooleanAttr(Array.isArray(unref(bindPick)) ? ssrLooseContain(unref(bindPick), dv.id) : ssrLooseEqual(unref(bindPick), dv.id)) ? " selected" : ""}>${ssrInterpolate(dv.name)}</option>`);
|
|
2467
2494
|
});
|
|
2468
|
-
_push(`<!--]--></select><button class="bind-add-btn"${ssrIncludeBooleanAttr(!unref(daqBoundDeviceName) && !unref(bindPick)) ? " disabled" : ""} data-v-
|
|
2495
|
+
_push(`<!--]--></select><button class="bind-add-btn"${ssrIncludeBooleanAttr(!unref(daqBoundDeviceName) && !unref(bindPick)) ? " disabled" : ""} data-v-1444af6d>${ssrInterpolate(unref(daqBoundDeviceName) ? _ctx.$t("townView.k479eh149") : _ctx.$t("townView.k452a8102"))}</button></div>`);
|
|
2469
2496
|
} else _push(`<!---->`);
|
|
2470
|
-
if (unref(mode) === "edit" && unref(selectedDaqNode)) _push(`<div class="daq-node-ctl" data-v-
|
|
2471
|
-
else _push(`<div class="ins-empty" data-v-
|
|
2497
|
+
if (unref(mode) === "edit" && unref(selectedDaqNode)) _push(`<div class="daq-node-ctl" data-v-1444af6d><div class="daq-info-row" data-v-1444af6d><span data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1l6g2ga074"))}</span><span class="daq-th-inputs" data-v-1444af6d><input${ssrRenderAttr("value", unref(daqIntervalDraft))} type="number" min="200" max="60000" step="100" class="daq-num" data-v-1444af6d><small data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1or92b075"))}</small></span></div><div class="daq-info-row" data-v-1444af6d><span data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k3x5tpx076"))}</span><span class="daq-th-inputs" data-v-1444af6d><input${ssrRenderAttr("value", unref(selectedDaqNode).warnLow)} type="number" step="any" class="daq-num" data-v-1444af6d> ~ <input${ssrRenderAttr("value", unref(selectedDaqNode).warnHigh)} type="number" step="any" class="daq-num" data-v-1444af6d></span></div><div class="daq-info-row" data-v-1444af6d><span data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1hjj0jf077"))}</span><span class="daq-th-inputs" data-v-1444af6d><input${ssrRenderAttr("value", unref(selectedDaqNode).min)} type="number" step="any" class="daq-num" data-v-1444af6d> ~ <input${ssrRenderAttr("value", unref(selectedDaqNode).max)} type="number" step="any" class="daq-num" data-v-1444af6d></span></div><div class="daq-info-row" data-v-1444af6d><span data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k48tki078"))}</span><button class="${ssrRenderClass([{ warn: unref(selectedDaqNode).enabled }, "bind-add-btn"])}" data-v-1444af6d>${ssrInterpolate(unref(selectedDaqNode).enabled ? _ctx.$t("townView.k1wv0nyo150") : _ctx.$t("townView.kh1586b180"))}</button></div><div class="daq-info-row" data-v-1444af6d><span data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k3xakp079"))}</span><button class="bind-add-btn danger"${ssrRenderAttr("title", _ctx.$t("townView.kpwutri014"))} data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1bpp30k080"))}</button></div></div>`);
|
|
2498
|
+
else _push(`<div class="ins-empty" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.kzk5dfx081"))}</div>`);
|
|
2472
2499
|
_push(`</div>`);
|
|
2473
2500
|
} else {
|
|
2474
|
-
_push(`<!--[--><div class="obj-row" data-v-
|
|
2501
|
+
_push(`<!--[--><div class="obj-row" data-v-1444af6d><span class="obj-label" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k3xhia082"))}</span><input${ssrRenderAttr("value", unref(objNameDraft))} class="obj-input"${ssrRenderAttr("placeholder", _ctx.$t("townView.k1k6vbaf015"))}${ssrIncludeBooleanAttr(unref(mode) !== "edit") ? " disabled" : ""}${ssrRenderAttr("title", unref(mode) === "edit" ? "设备名称" : "运行模式只读")} data-v-1444af6d></div><div class="obj-row" data-v-1444af6d><span class="obj-label" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k41amp083"))}</span><select class="obj-select"${ssrRenderAttr("value", unref(scene3dRef)?.getDeviceModelRef?.(unref(selected).id) ?? "")}${ssrIncludeBooleanAttr(unref(mode) !== "edit") ? " disabled" : ""} data-v-1444af6d><!--[-->`);
|
|
2475
2502
|
ssrRenderList(unref(deviceModels), (m) => {
|
|
2476
|
-
_push(`<option${ssrRenderAttr("value", m.id)} data-v-
|
|
2503
|
+
_push(`<option${ssrRenderAttr("value", m.id)} data-v-1444af6d>${ssrInterpolate(m.name)}</option>`);
|
|
2477
2504
|
});
|
|
2478
|
-
_push(`<!--]--></select></div><div class="sect-hd" data-v-
|
|
2505
|
+
_push(`<!--]--></select></div><div class="sect-hd" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1vtyk05130"))} ${ssrInterpolate(unref(boundDaqRows).length)} ${ssrInterpolate(_ctx.$t("townView.k3vfpz5138"))}</div><!--[-->`);
|
|
2479
2506
|
ssrRenderList(unref(boundDaqRows), (r) => {
|
|
2480
|
-
_push(`<div class="bind-row" data-v-
|
|
2481
|
-
if (unref(mode) === "edit") _push(`<button class="bind-x"${ssrRenderAttr("title", _ctx.$t("townView.k1k73omv016"))} data-v-
|
|
2507
|
+
_push(`<div class="bind-row" data-v-1444af6d><span class="bind-ico" data-v-1444af6d><svg class="bind-svg" viewBox="0 0 24 24" data-v-1444af6d>${daqIcon(r.icon) ?? ""}</svg></span><span class="bind-meta" data-v-1444af6d><span class="bind-label" data-v-1444af6d>${ssrInterpolate(r.ch)}</span><span class="bind-val" data-v-1444af6d><b data-v-1444af6d>${ssrInterpolate(r.value)}</b> ${ssrInterpolate(r.unit)} · ${ssrInterpolate(r.name)}</span></span><canvas class="bind-spark" width="56" height="20" data-v-1444af6d></canvas>`);
|
|
2508
|
+
if (unref(mode) === "edit") _push(`<button class="bind-x"${ssrRenderAttr("title", _ctx.$t("townView.k1k73omv016"))} data-v-1444af6d> ✕ </button>`);
|
|
2482
2509
|
else _push(`<!---->`);
|
|
2483
2510
|
_push(`</div>`);
|
|
2484
2511
|
});
|
|
2485
2512
|
_push(`<!--]-->`);
|
|
2486
|
-
if (!unref(boundDaqRows).length) _push(`<div class="ins-empty" data-v-
|
|
2513
|
+
if (!unref(boundDaqRows).length) _push(`<div class="ins-empty" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.kgpuqhb084"))}</div>`);
|
|
2487
2514
|
else _push(`<!---->`);
|
|
2488
2515
|
if (unref(mode) === "edit") {
|
|
2489
|
-
_push(`<div class="bind-add-wrap" data-v-
|
|
2516
|
+
_push(`<div class="bind-add-wrap" data-v-1444af6d><button class="bind-add" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.kvm0lin085"))}</button>`);
|
|
2490
2517
|
if (unref(bindPopOpen)) {
|
|
2491
|
-
_push(`<div class="bind-pop" style="${ssrRenderStyle({ maxHeight: `${unref(bindPopMaxH)}px` })}" data-v-
|
|
2518
|
+
_push(`<div class="bind-pop" style="${ssrRenderStyle({ maxHeight: `${unref(bindPopMaxH)}px` })}" data-v-1444af6d><!--[-->`);
|
|
2492
2519
|
ssrRenderList(unref(daqTemplates), (tpl) => {
|
|
2493
2520
|
_push(`<!--[-->`);
|
|
2494
2521
|
if (unref(daqBindChoices)[tpl.id]?.length) {
|
|
2495
|
-
_push(`<div class="bp-group" data-v-
|
|
2522
|
+
_push(`<div class="bp-group" data-v-1444af6d><span class="bp-tpl" data-v-1444af6d>${ssrInterpolate(tpl.name)} · ${ssrInterpolate(tpl.ch)}</span><!--[-->`);
|
|
2496
2523
|
ssrRenderList(unref(daqBindChoices)[tpl.id], (c) => {
|
|
2497
|
-
_push(`<button${ssrRenderAttr("data-node-id", c.id)}${ssrRenderAttr("title", c.devName ? _ctx.$t("townView.k2bindr0007", { p0: c.devName }) : _ctx.$t("townView.k2bindr0008"))} data-v-
|
|
2498
|
-
if (c.devName) _push(`<i class="bp-cur" data-v-
|
|
2499
|
-
else if (!c.placed) _push(`<i class="bp-cur" data-v-
|
|
2524
|
+
_push(`<button${ssrRenderAttr("data-node-id", c.id)}${ssrRenderAttr("title", c.devName ? _ctx.$t("townView.k2bindr0007", { p0: c.devName }) : _ctx.$t("townView.k2bindr0008"))} data-v-1444af6d><svg class="bind-svg" viewBox="0 0 24 24" data-v-1444af6d>${daqIcon(c.tpl.icon) ?? ""}</svg><span data-v-1444af6d>${ssrInterpolate(c.name)}`);
|
|
2525
|
+
if (c.devName) _push(`<i class="bp-cur" data-v-1444af6d>→ ${ssrInterpolate(c.devName)}</i>`);
|
|
2526
|
+
else if (!c.placed) _push(`<i class="bp-cur" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k2bindr0009"))}</i>`);
|
|
2500
2527
|
else _push(`<!---->`);
|
|
2501
2528
|
_push(`</span></button>`);
|
|
2502
2529
|
});
|
|
@@ -2505,40 +2532,40 @@ var TownView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
2505
2532
|
_push(`<!--]-->`);
|
|
2506
2533
|
});
|
|
2507
2534
|
_push(`<!--]-->`);
|
|
2508
|
-
if (!unref(daqBindChoiceCount)) _push(`<div class="bp-empty" data-v-
|
|
2535
|
+
if (!unref(daqBindChoiceCount)) _push(`<div class="bp-empty" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k2bindr0010"))}</div>`);
|
|
2509
2536
|
else _push(`<!---->`);
|
|
2510
2537
|
_push(`</div>`);
|
|
2511
2538
|
} else _push(`<!---->`);
|
|
2512
2539
|
_push(`</div>`);
|
|
2513
2540
|
} else _push(`<!---->`);
|
|
2514
|
-
_push(`<div class="sect-hd" data-v-
|
|
2541
|
+
_push(`<div class="sect-hd" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.ktzir2t131"))} ${ssrInterpolate(unref(boundDcwRows).length)} ${ssrInterpolate(_ctx.$t("townView.k4l1w042"))}</div><!--[-->`);
|
|
2515
2542
|
ssrRenderList(unref(boundDcwRows), (r) => {
|
|
2516
|
-
_push(`<div class="dcw-row" data-v-
|
|
2517
|
-
if (r.rMin != null || r.rMax != null) _push(`<i class="dcw-tag" data-v-
|
|
2543
|
+
_push(`<div class="dcw-row" data-v-1444af6d><div class="dcw-top" data-v-1444af6d><span class="bind-ico" data-v-1444af6d><svg class="bind-svg" viewBox="0 0 24 24" data-v-1444af6d>${daqIcon(r.icon) ?? ""}</svg></span><span class="dcw-id" data-v-1444af6d><span class="bind-label" data-v-1444af6d>${ssrInterpolate(r.ch)}`);
|
|
2544
|
+
if (r.rMin != null || r.rMax != null) _push(`<i class="dcw-tag" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k48grv086"))}</i>`);
|
|
2518
2545
|
else _push(`<!---->`);
|
|
2519
|
-
_push(`</span><span class="dcw-name" data-v-
|
|
2520
|
-
if (unref(mode) === "edit") _push(`<button class="bind-x"${ssrRenderAttr("title", _ctx.$t("townView.k1k73omv016"))} data-v-
|
|
2546
|
+
_push(`</span><span class="dcw-name" data-v-1444af6d>${ssrInterpolate(r.name)}</span></span><span class="dcw-cur" data-v-1444af6d><b data-v-1444af6d>${ssrInterpolate(r.value != null ? r.value.toFixed(r.decimals) : "--")}</b><i data-v-1444af6d>${ssrInterpolate(r.unit)}</i></span>`);
|
|
2547
|
+
if (unref(mode) === "edit") _push(`<button class="bind-x"${ssrRenderAttr("title", _ctx.$t("townView.k1k73omv016"))} data-v-1444af6d> ✕ </button>`);
|
|
2521
2548
|
else _push(`<!---->`);
|
|
2522
|
-
_push(`</div><div class="${ssrRenderClass([{ recipe: r.rMin != null || r.rMax != null }, "dcw-win"])}" data-v-
|
|
2523
|
-
if (unref(dcwWriteErrs)[r.dcwId]) _push(`<small class="dcw-err" data-v-
|
|
2549
|
+
_push(`</div><div class="${ssrRenderClass([{ recipe: r.rMin != null || r.rMax != null }, "dcw-win"])}" data-v-1444af6d><em data-v-1444af6d>${ssrInterpolate(r.rMin != null || r.rMax != null ? _ctx.$t("townView.k1l3m0hx151") : _ctx.$t("townView.k1bc6rqf181"))}</em><span class="dcw-win-num" data-v-1444af6d>${ssrInterpolate(r.rMin ?? "-∞")}</span><span class="dcw-win-track" data-v-1444af6d><i style="${ssrRenderStyle({ left: `${dcwMarkPct(r)}%` })}" data-v-1444af6d></i></span><span class="dcw-win-num" data-v-1444af6d>${ssrInterpolate(r.rMax ?? "+∞")}</span></div><div class="dcw-write" data-v-1444af6d><input${ssrRenderAttr("value", unref(dcwWriteDrafts)[r.dcwId])} type="number"${ssrRenderAttr("step", 10 ** -r.decimals)}${ssrRenderAttr("placeholder", `${r.rMin ?? r.gMin} ~ ${r.rMax ?? r.gMax}`)} data-v-1444af6d><button class="dcw-send"${ssrIncludeBooleanAttr(unref(dcwWriteDrafts)[r.dcwId] == null || unref(dcwWriteDrafts)[r.dcwId] === "") ? " disabled" : ""}${ssrRenderAttr("title", _ctx.$t("townView.k15t7izc017"))} data-v-1444af6d> write </button></div>`);
|
|
2550
|
+
if (unref(dcwWriteErrs)[r.dcwId]) _push(`<small class="dcw-err" data-v-1444af6d>${ssrInterpolate(unref(dcwWriteErrs)[r.dcwId])}</small>`);
|
|
2524
2551
|
else _push(`<!---->`);
|
|
2525
2552
|
_push(`</div>`);
|
|
2526
2553
|
});
|
|
2527
2554
|
_push(`<!--]-->`);
|
|
2528
|
-
if (!unref(boundDcwRows).length) _push(`<div class="ins-empty" data-v-
|
|
2555
|
+
if (!unref(boundDcwRows).length) _push(`<div class="ins-empty" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k10smf24087"))}</div>`);
|
|
2529
2556
|
else _push(`<!---->`);
|
|
2530
2557
|
if (unref(mode) === "edit") {
|
|
2531
|
-
_push(`<div class="bind-add-wrap" data-v-
|
|
2558
|
+
_push(`<div class="bind-add-wrap" data-v-1444af6d><button class="bind-add" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.kvk1vh5088"))}</button>`);
|
|
2532
2559
|
if (unref(dcwBindPopOpen)) {
|
|
2533
|
-
_push(`<div class="bind-pop" style="${ssrRenderStyle({ maxHeight: `${unref(bindPopMaxH)}px` })}" data-v-
|
|
2560
|
+
_push(`<div class="bind-pop" style="${ssrRenderStyle({ maxHeight: `${unref(bindPopMaxH)}px` })}" data-v-1444af6d><!--[-->`);
|
|
2534
2561
|
ssrRenderList(unref(dcwTemplates), (tpl) => {
|
|
2535
2562
|
_push(`<!--[-->`);
|
|
2536
2563
|
if (unref(dcwBindChoices)[tpl.id]?.length) {
|
|
2537
|
-
_push(`<div class="bp-group" data-v-
|
|
2564
|
+
_push(`<div class="bp-group" data-v-1444af6d><span class="bp-tpl" data-v-1444af6d>${ssrInterpolate(tpl.name)} · ${ssrInterpolate(tpl.ch)}</span><!--[-->`);
|
|
2538
2565
|
ssrRenderList(unref(dcwBindChoices)[tpl.id], (c) => {
|
|
2539
|
-
_push(`<button${ssrRenderAttr("data-node-id", c.id)}${ssrRenderAttr("title", c.devName ? _ctx.$t("townView.k2bindr0007", { p0: c.devName }) : _ctx.$t("townView.k2bindr0008"))} data-v-
|
|
2540
|
-
if (c.devName) _push(`<i class="bp-cur" data-v-
|
|
2541
|
-
else if (!c.placed) _push(`<i class="bp-cur" data-v-
|
|
2566
|
+
_push(`<button${ssrRenderAttr("data-node-id", c.id)}${ssrRenderAttr("title", c.devName ? _ctx.$t("townView.k2bindr0007", { p0: c.devName }) : _ctx.$t("townView.k2bindr0008"))} data-v-1444af6d><svg class="bind-svg" viewBox="0 0 24 24" data-v-1444af6d>${daqIcon(c.tpl.icon) ?? ""}</svg><span data-v-1444af6d>${ssrInterpolate(c.name)}`);
|
|
2567
|
+
if (c.devName) _push(`<i class="bp-cur" data-v-1444af6d>→ ${ssrInterpolate(c.devName)}</i>`);
|
|
2568
|
+
else if (!c.placed) _push(`<i class="bp-cur" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k2bindr0009"))}</i>`);
|
|
2542
2569
|
else _push(`<!---->`);
|
|
2543
2570
|
_push(`</span></button>`);
|
|
2544
2571
|
});
|
|
@@ -2547,121 +2574,121 @@ var TownView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
2547
2574
|
_push(`<!--]-->`);
|
|
2548
2575
|
});
|
|
2549
2576
|
_push(`<!--]-->`);
|
|
2550
|
-
if (!unref(dcwBindChoiceCount)) _push(`<div class="bp-empty" data-v-
|
|
2577
|
+
if (!unref(dcwBindChoiceCount)) _push(`<div class="bp-empty" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k2bindr0010"))}</div>`);
|
|
2551
2578
|
else _push(`<!---->`);
|
|
2552
2579
|
_push(`</div>`);
|
|
2553
2580
|
} else _push(`<!---->`);
|
|
2554
2581
|
_push(`</div>`);
|
|
2555
2582
|
} else _push(`<!---->`);
|
|
2556
|
-
if (unref(mode) === "edit") _push(`<!--[--><div class="sect-hd" data-v-
|
|
2557
|
-
else _push(`<div class="ins-empty" data-v-
|
|
2583
|
+
if (unref(mode) === "edit") _push(`<!--[--><div class="sect-hd" data-v-1444af6d> 变换 · BLENDER </div><div class="xz-seg" data-v-1444af6d><button class="${ssrRenderClass([{ on: unref(tMode) === "translate" }, "seg-btn"])}" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1hg3167089"))}</button><button class="${ssrRenderClass([{ on: unref(tMode) === "rotate" }, "seg-btn"])}" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1enlg7i090"))}</button><button class="${ssrRenderClass([{ on: unref(tMode) === "scale" }, "seg-btn"])}" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1ibjg3j091"))}</button></div><div class="scale-row" data-v-1444af6d><span class="scale-min" data-v-1444af6d>0.2×</span><input class="scale-range" type="range" min="0.2" max="5" step="0.05"${ssrRenderAttr("value", unref(selected).scale)} data-v-1444af6d><span class="scale-max" data-v-1444af6d>5×</span></div><div class="scale-val" data-v-1444af6d>${ssrInterpolate(Math.round(unref(selected).scale * 100))}% </div><div class="ins-foot" data-v-1444af6d><button class="${ssrRenderClass([{ armed: unref(deviceDeleteArmed) === unref(selected).id }, "btn btn-danger ins-del"])}" data-v-1444af6d>${ssrInterpolate(unref(deviceDeleteArmed) === unref(selected).id ? _ctx.$t("townView.k1w10xa5152") : _ctx.$t("townView.k121kfef182"))}</button></div><!--]-->`);
|
|
2584
|
+
else _push(`<div class="ins-empty" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.kt0i3y2092"))}</div>`);
|
|
2558
2585
|
_push(`<!--]-->`);
|
|
2559
2586
|
}
|
|
2560
2587
|
_push(`<!--]-->`);
|
|
2561
2588
|
} else if (unref(selected).kind === "agent") {
|
|
2562
|
-
_push(`<!--[--><div class="chat-id-row" data-v-
|
|
2563
|
-
if (unref(selectedAgentMeta)?.harness) _push(`<span class="chat-harness" data-v-
|
|
2589
|
+
_push(`<!--[--><div class="chat-id-row" data-v-1444af6d><span class="chat-badge" style="${ssrRenderStyle({ "--p-acc": unref(agentChatColor) })}" data-v-1444af6d>${ssrInterpolate(unref(agentChatTitle).slice(0, 1).toUpperCase())}</span><div class="chat-nameplate" data-v-1444af6d><span class="chat-name" data-v-1444af6d>${ssrInterpolate(unref(agentChatTitle))}</span><span class="chat-meta" data-v-1444af6d><span class="${ssrRenderClass([unref(selectedAgentMeta)?.role === "lead" ? "r-lead" : "r-worker", "chat-role"])}" data-v-1444af6d>${ssrInterpolate(unref(selectedAgentRoleTag))}</span><span class="${ssrRenderClass([`s-${unref(selectedAgentMeta)?.state ?? "idle"}`, "chat-state"])}" data-v-1444af6d>${ssrInterpolate(unref(agentChatStateLabel))}</span>`);
|
|
2590
|
+
if (unref(selectedAgentMeta)?.harness) _push(`<span class="chat-harness" data-v-1444af6d>${ssrInterpolate(unref(selectedAgentMeta).harness.toUpperCase())}</span>`);
|
|
2564
2591
|
else _push(`<!---->`);
|
|
2565
|
-
_push(`<span class="chat-count" data-v-
|
|
2592
|
+
_push(`<span class="chat-count" data-v-1444af6d>${ssrInterpolate(unref(agentHistory).length + unref(agentChatRows).length)} ${ssrInterpolate(_ctx.$t("townView.k4dfq040"))}</span></span></div></div><div class="obj-row" data-v-1444af6d><span class="obj-label" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k41amp083"))}</span><select class="obj-select"${ssrRenderAttr("value", (unref(scene3dRef)?.getAgentModel?.(unref(selected).id) ?? "") || "hero-3d")}${ssrIncludeBooleanAttr(unref(mode) !== "edit") ? " disabled" : ""} data-v-1444af6d><!--[-->`);
|
|
2566
2593
|
ssrRenderList(unref(agentModels), (m) => {
|
|
2567
|
-
_push(`<option${ssrRenderAttr("value", m.id)} data-v-
|
|
2594
|
+
_push(`<option${ssrRenderAttr("value", m.id)} data-v-1444af6d>${ssrInterpolate(m.name)}</option>`);
|
|
2568
2595
|
});
|
|
2569
|
-
_push(`<!--]--></select></div><div class="obj-sep" data-v-
|
|
2570
|
-
if (unref(mode) === "edit") _push(`<button class="${ssrRenderClass([{ on: unref(agentDrawingRange) }, "obj-mini"])}"${ssrRenderAttr("title", _ctx.$t("townView.k13enoy3018"))} data-v-
|
|
2596
|
+
_push(`<!--]--></select></div><div class="obj-sep" data-v-1444af6d></div><div class="obj-row" data-v-1444af6d><span class="obj-label" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1fix3hb093"))}</span><span class="range-status" data-v-1444af6d>${ssrInterpolate(unref(agentRangeStatusText))}</span>`);
|
|
2597
|
+
if (unref(mode) === "edit") _push(`<button class="${ssrRenderClass([{ on: unref(agentDrawingRange) }, "obj-mini"])}"${ssrRenderAttr("title", _ctx.$t("townView.k13enoy3018"))} data-v-1444af6d>${ssrInterpolate(unref(agentDrawingRange) ? _ctx.$t("townView.k3slzhc153") : _ctx.$t("townView.k1f1xmci183"))}</button>`);
|
|
2571
2598
|
else _push(`<!---->`);
|
|
2572
|
-
_push(`</div><div class="obj-sep" data-v-
|
|
2599
|
+
_push(`</div><div class="obj-sep" data-v-1444af6d></div><div class="sect-hd" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1p7nru2094"))}</div><!--[-->`);
|
|
2573
2600
|
ssrRenderList(unref(agentBindings), (b) => {
|
|
2574
|
-
_push(`<div class="bind-row" data-v-
|
|
2601
|
+
_push(`<div class="bind-row" data-v-1444af6d><span class="${ssrRenderClass([b.kind === "dcw" ? "accent" : "", "ins-chip"])}" style="${ssrRenderStyle({ "flex": "none" })}" data-v-1444af6d>${ssrInterpolate(b.kind === "dcw" ? _ctx.$t("townView.k40ifw097") : _ctx.$t("townView.k40rjw098"))}</span><span class="bind-meta" data-v-1444af6d><span class="bind-label" data-v-1444af6d>${ssrInterpolate(bindingNodeName(b))}</span><select class="bind-select" style="${ssrRenderStyle({ "margin-top": "3px" })}"${ssrRenderAttr("value", b.mode)}${ssrRenderAttr("title", _ctx.$t("townView.khqvwix019"))} data-v-1444af6d><option value="auto" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1io1ylm095"))}</option><option value="manual" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1duyr8q096"))}</option></select></span><button class="bind-x"${ssrRenderAttr("title", _ctx.$t("townView.k1k73omv016"))} data-v-1444af6d> ✕ </button></div>`);
|
|
2575
2602
|
});
|
|
2576
2603
|
_push(`<!--]-->`);
|
|
2577
|
-
if (!unref(agentBindings).length) _push(`<div class="ins-empty" data-v-
|
|
2604
|
+
if (!unref(agentBindings).length) _push(`<div class="ins-empty" data-v-1444af6d> 未绑定工业节点 —— 绑定后 Agent 可用 dcw_control / daq_query 工具 </div>`);
|
|
2578
2605
|
else _push(`<!---->`);
|
|
2579
2606
|
if (unref(mode) === "edit") {
|
|
2580
|
-
_push(`<div class="daq-bind-bar" style="${ssrRenderStyle({ "margin-bottom": "8px" })}" data-v-
|
|
2607
|
+
_push(`<div class="daq-bind-bar" style="${ssrRenderStyle({ "margin-bottom": "8px" })}" data-v-1444af6d><select class="bind-select" style="${ssrRenderStyle({
|
|
2581
2608
|
"flex": "none",
|
|
2582
2609
|
"width": "62px"
|
|
2583
|
-
})}" data-v-
|
|
2610
|
+
})}" data-v-1444af6d><option value="dcw" data-v-1444af6d${ssrIncludeBooleanAttr(Array.isArray(unref(agentBindKind)) ? ssrLooseContain(unref(agentBindKind), "dcw") : ssrLooseEqual(unref(agentBindKind), "dcw")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("townView.k40ifw097"))}</option><option value="daq" data-v-1444af6d${ssrIncludeBooleanAttr(Array.isArray(unref(agentBindKind)) ? ssrLooseContain(unref(agentBindKind), "daq") : ssrLooseEqual(unref(agentBindKind), "daq")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("townView.k40rjw098"))}</option></select><select class="bind-select" data-v-1444af6d><option value="" data-v-1444af6d${ssrIncludeBooleanAttr(Array.isArray(unref(agentBindNodeId)) ? ssrLooseContain(unref(agentBindNodeId), "") : ssrLooseEqual(unref(agentBindNodeId), "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("townView.kurjldk099"))}</option>`);
|
|
2584
2611
|
if (unref(agentBindKind) === "dcw") {
|
|
2585
2612
|
_push(`<!--[-->`);
|
|
2586
2613
|
ssrRenderList(unref(dcw).nodes, (n) => {
|
|
2587
|
-
_push(`<option${ssrRenderAttr("value", n.id)} data-v-
|
|
2614
|
+
_push(`<option${ssrRenderAttr("value", n.id)} data-v-1444af6d${ssrIncludeBooleanAttr(Array.isArray(unref(agentBindNodeId)) ? ssrLooseContain(unref(agentBindNodeId), n.id) : ssrLooseEqual(unref(agentBindNodeId), n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}</option>`);
|
|
2588
2615
|
});
|
|
2589
2616
|
_push(`<!--]-->`);
|
|
2590
2617
|
} else {
|
|
2591
2618
|
_push(`<!--[-->`);
|
|
2592
2619
|
ssrRenderList(unref(daq).nodes, (n) => {
|
|
2593
|
-
_push(`<option${ssrRenderAttr("value", n.id)} data-v-
|
|
2620
|
+
_push(`<option${ssrRenderAttr("value", n.id)} data-v-1444af6d${ssrIncludeBooleanAttr(Array.isArray(unref(agentBindNodeId)) ? ssrLooseContain(unref(agentBindNodeId), n.id) : ssrLooseEqual(unref(agentBindNodeId), n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}</option>`);
|
|
2594
2621
|
});
|
|
2595
2622
|
_push(`<!--]-->`);
|
|
2596
2623
|
}
|
|
2597
2624
|
_push(`</select><select class="bind-select" style="${ssrRenderStyle({
|
|
2598
2625
|
"flex": "none",
|
|
2599
2626
|
"width": "76px"
|
|
2600
|
-
})}" data-v-
|
|
2627
|
+
})}" data-v-1444af6d><option value="auto" data-v-1444af6d${ssrIncludeBooleanAttr(Array.isArray(unref(agentBindMode)) ? ssrLooseContain(unref(agentBindMode), "auto") : ssrLooseEqual(unref(agentBindMode), "auto")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("townView.k45kpj100"))}</option><option value="manual" data-v-1444af6d${ssrIncludeBooleanAttr(Array.isArray(unref(agentBindMode)) ? ssrLooseContain(unref(agentBindMode), "manual") : ssrLooseEqual(unref(agentBindMode), "manual")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("townView.k3zul4101"))}</option></select><button class="bind-add-btn"${ssrIncludeBooleanAttr(!unref(agentBindNodeId)) ? " disabled" : ""} data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k452a8102"))}</button></div>`);
|
|
2601
2628
|
} else _push(`<!---->`);
|
|
2602
2629
|
if (unref(pendingApprovals).length) {
|
|
2603
|
-
_push(`<!--[--><div class="sect-hd" style="${ssrRenderStyle({ "color": "var(--hud-amber)" })}" data-v-
|
|
2630
|
+
_push(`<!--[--><div class="sect-hd" style="${ssrRenderStyle({ "color": "var(--hud-amber)" })}" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1gk2jg7132"))} ${ssrInterpolate(unref(pendingApprovals).length)}</div><!--[-->`);
|
|
2604
2631
|
ssrRenderList(unref(pendingApprovals), (ap) => {
|
|
2605
|
-
_push(`<div class="approval-card" data-v-
|
|
2632
|
+
_push(`<div class="approval-card" data-v-1444af6d><div class="approval-detail" data-v-1444af6d>${ssrInterpolate(ap.detail)}</div><div class="${ssrRenderClass([{ urgent: approvalRemainingSec(ap) <= 30 }, "approval-ttl"])}" data-v-1444af6d> ⏱ ${ssrInterpolate(approvalRemainingSec(ap))}s ${ssrInterpolate(_ctx.$t("townView.hitlAutoReject"))}</div><input${ssrRenderAttr("value", unref(approvalComments)[ap.id])} class="dcw-write input-inline" style="${ssrRenderStyle({
|
|
2606
2633
|
"width": "100%",
|
|
2607
2634
|
"margin-top": "5px"
|
|
2608
|
-
})}"${ssrRenderAttr("placeholder", _ctx.$t("townView.keztqrn020"))} data-v-
|
|
2635
|
+
})}"${ssrRenderAttr("placeholder", _ctx.$t("townView.keztqrn020"))} data-v-1444af6d><div class="daq-bind-bar" style="${ssrRenderStyle({ "margin-top": "5px" })}" data-v-1444af6d><button class="bind-add-btn" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.kslcozu103"))}</button><button class="bind-add-btn danger" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k14gu3rd104"))}</button></div></div>`);
|
|
2609
2636
|
});
|
|
2610
2637
|
_push(`<!--]--><!--]-->`);
|
|
2611
2638
|
} else _push(`<!---->`);
|
|
2612
|
-
if (unref(agentRangeDraft) && unref(mode) === "edit") _push(`<!--[--><div class="obj-row" data-v-
|
|
2613
|
-
else _push(`<div class="ins-empty" data-v-
|
|
2614
|
-
_push(`<div class="obj-sep" data-v-
|
|
2615
|
-
if (unref(historyLoading)) _push(`<div class="rpg-note" data-v-
|
|
2639
|
+
if (unref(agentRangeDraft) && unref(mode) === "edit") _push(`<!--[--><div class="obj-row" data-v-1444af6d><span class="obj-label" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k3zhy5048"))}</span><div class="bp-seg" data-v-1444af6d><button class="${ssrRenderClass([{ on: unref(agentRangeDraft).shape === "ellipse" }, "seg-btn"])}" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k414bc049"))}</button><button class="${ssrRenderClass([{ on: unref(agentRangeDraft).shape === "rect" }, "seg-btn"])}" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k43u0g050"))}</button></div></div><div class="obj-row" data-v-1444af6d><span class="obj-label" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k41lwj105"))}</span><input${ssrRenderAttr("value", unref(agentRangeDraft).radiusX)} class="obj-range" type="range" min="40" max="4000" step="8" data-v-1444af6d><span class="bp-val" data-v-1444af6d>${ssrInterpolate(Math.round(unref(agentRangeDraft).radiusX))}</span></div><div class="obj-row" data-v-1444af6d><span class="obj-label" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k45bta106"))}</span><input${ssrRenderAttr("value", unref(agentRangeDraft).radiusZ)} class="obj-range" type="range" min="40" max="4000" step="8" data-v-1444af6d><span class="bp-val" data-v-1444af6d>${ssrInterpolate(Math.round(unref(agentRangeDraft).radiusZ))}</span></div><button class="obj-mini danger" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1w45mzc107"))}</button><!--]-->`);
|
|
2640
|
+
else _push(`<div class="ins-empty" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k14s8urm108"))}</div>`);
|
|
2641
|
+
_push(`<div class="obj-sep" data-v-1444af6d></div><div class="sect-hd chat-sect" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1ghjbfc133"))} ${ssrInterpolate(unref(agentChatTitle))} <button class="mini-btn chat-refresh"${ssrRenderAttr("title", _ctx.$t("townView.k15avt7g021"))} data-v-1444af6d>${ssrInterpolate(unref(historyLoading) ? "…" : "↻")}</button></div><div class="rpg-lines chat-embed" data-v-1444af6d>`);
|
|
2642
|
+
if (unref(historyLoading)) _push(`<div class="rpg-note" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.kkhlx5h109"))}</div>`);
|
|
2616
2643
|
else _push(`<!---->`);
|
|
2617
2644
|
if (unref(agentHistory).length) {
|
|
2618
|
-
_push(`<!--[--><div class="rpg-divider" data-v-
|
|
2645
|
+
_push(`<!--[--><div class="rpg-divider" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k768cnt134"))} ${ssrInterpolate(unref(agentHistory).length)}</div><!--[-->`);
|
|
2619
2646
|
ssrRenderList(unref(agentHistory), (r) => {
|
|
2620
|
-
_push(`<div class="rpg-line hist" data-v-
|
|
2621
|
-
if (chatKindLabel(r.kind)) _push(`<span class="${ssrRenderClass([`k-${r.kind}`, "rpg-kind"])}" data-v-
|
|
2647
|
+
_push(`<div class="rpg-line hist" data-v-1444af6d><span class="rpg-time" data-v-1444af6d>${ssrInterpolate(fmtTime(r.at))}</span><div class="rpg-bubble" data-v-1444af6d>`);
|
|
2648
|
+
if (chatKindLabel(r.kind)) _push(`<span class="${ssrRenderClass([`k-${r.kind}`, "rpg-kind"])}" data-v-1444af6d>${ssrInterpolate(chatKindLabel(r.kind))}</span>`);
|
|
2622
2649
|
else _push(`<!---->`);
|
|
2623
|
-
_push(`<span class="rpg-text" data-v-
|
|
2650
|
+
_push(`<span class="rpg-text" data-v-1444af6d>${ssrInterpolate(r.text)}</span></div></div>`);
|
|
2624
2651
|
});
|
|
2625
2652
|
_push(`<!--]--><!--]-->`);
|
|
2626
2653
|
} else _push(`<!---->`);
|
|
2627
|
-
if (unref(agentChatRows).length) _push(`<div class="rpg-divider live" data-v-
|
|
2654
|
+
if (unref(agentChatRows).length) _push(`<div class="rpg-divider live" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1cwz73k135"))} ${ssrInterpolate(unref(agentChatRows).length)}</div>`);
|
|
2628
2655
|
else _push(`<!---->`);
|
|
2629
2656
|
_push(`<!--[-->`);
|
|
2630
2657
|
ssrRenderList(unref(agentChatRows), (r) => {
|
|
2631
|
-
_push(`<div class="rpg-line live" data-v-
|
|
2658
|
+
_push(`<div class="rpg-line live" data-v-1444af6d><span class="rpg-time" data-v-1444af6d>${ssrInterpolate(fmtTime(r.at))}</span><div class="rpg-bubble" data-v-1444af6d><span class="rpg-text" data-v-1444af6d>${ssrInterpolate(r.text)}</span></div></div>`);
|
|
2632
2659
|
});
|
|
2633
2660
|
_push(`<!--]-->`);
|
|
2634
|
-
if (unref(selectedAgentMeta)?.state === "busy") _push(`<div class="rpg-typing" data-v-
|
|
2661
|
+
if (unref(selectedAgentMeta)?.state === "busy") _push(`<div class="rpg-typing" data-v-1444af6d><span class="ty-dot" data-v-1444af6d></span><span class="ty-dot" data-v-1444af6d></span><span class="ty-dot" data-v-1444af6d></span><span class="ty-label" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k3o5tz9110"))}</span></div>`);
|
|
2635
2662
|
else _push(`<!---->`);
|
|
2636
|
-
if (!unref(historyLoading) && !unref(agentHistory).length && !unref(agentChatRows).length) _push(`<div class="rpg-note" data-v-
|
|
2663
|
+
if (!unref(historyLoading) && !unref(agentHistory).length && !unref(agentChatRows).length) _push(`<div class="rpg-note" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1qkqld7111"))}</div>`);
|
|
2637
2664
|
else _push(`<!---->`);
|
|
2638
2665
|
_push(`</div><!--]-->`);
|
|
2639
2666
|
} else _push(`<!---->`);
|
|
2640
2667
|
_push(`</section>`);
|
|
2641
2668
|
} else _push(`<!---->`);
|
|
2642
|
-
_push(`<section class="panel" data-v-
|
|
2669
|
+
_push(`<section class="panel" data-v-1444af6d><div class="panel-hd" data-v-1444af6d><h3 data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k17dkhgd112"))}</h3></div><div class="health-body" data-v-1444af6d><div class="donut-wrap" data-v-1444af6d><canvas width="118" height="118" data-v-1444af6d></canvas><div class="donut-center" data-v-1444af6d><b style="${ssrRenderStyle({ color: unref(healthTone) })}" data-v-1444af6d>${ssrInterpolate(unref(healthPct))}%</b><span data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k7h1nxo113"))}</span></div></div><div class="health-legend" data-v-1444af6d><div class="hl-row" data-v-1444af6d><span class="hl-dot" style="${ssrRenderStyle({ background: "var(--hud-accent)" })}" data-v-1444af6d></span> ${ssrInterpolate(_ctx.$t("townView.k3vp67i114"))} <span class="n" data-v-1444af6d>${ssrInterpolate(unref(runningCount))}</span></div><div class="hl-row" data-v-1444af6d><span class="hl-dot" style="${ssrRenderStyle({ background: "var(--hud-amber)" })}" data-v-1444af6d></span> ${ssrInterpolate(_ctx.$t("townView.k3zcvb115"))} <span class="n" data-v-1444af6d>${ssrInterpolate(unref(idleCount))}</span></div><div class="hl-row" data-v-1444af6d><span class="hl-dot" style="${ssrRenderStyle({ background: "var(--hud-danger)" })}" data-v-1444af6d></span> ${ssrInterpolate(_ctx.$t("townView.k3xmid116"))} <span class="n" data-v-1444af6d>${ssrInterpolate(unref(alarmCount))}</span></div><div class="hl-row" data-v-1444af6d><span class="hl-dot" style="${ssrRenderStyle({ background: "#3a4a63" })}" data-v-1444af6d></span> ${ssrInterpolate(_ctx.$t("townView.statesOffline"))} <span class="n" data-v-1444af6d>${ssrInterpolate(unref(offlineCount))}</span></div></div></div></section><section class="panel" data-v-1444af6d><div class="panel-hd" data-v-1444af6d><h3 data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1q247fn117"))}</h3><span class="panel-tag" data-v-1444af6d>${ssrInterpolate(unref(deviceTwins).twins.length)}</span></div>`);
|
|
2643
2670
|
_push(ssrRenderComponent(_component_WorkshopDeviceTwinPanel, {
|
|
2644
2671
|
class: "kd-embed",
|
|
2645
2672
|
"daq-live": unref(daqLive),
|
|
2646
2673
|
"dcw-live": unref(dcwLive),
|
|
2647
2674
|
onFocusDevice
|
|
2648
2675
|
}, null, _parent));
|
|
2649
|
-
_push(`</section><section class="panel" data-v-
|
|
2676
|
+
_push(`</section><section class="panel" data-v-1444af6d><div class="panel-hd" data-v-1444af6d><h3 data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1cxf749118"))}</h3><span class="panel-tag" data-v-1444af6d>${ssrInterpolate(unref(activeAlarmCount))} ${ssrInterpolate(_ctx.$t("townView.k4dfq040"))}</span><button class="mini-btn"${ssrRenderAttr("title", _ctx.$t("townView.k1bkswpz022"))} data-v-1444af6d> ✓ </button></div><div class="alarm-list" data-v-1444af6d><!--[-->`);
|
|
2650
2677
|
ssrRenderList(unref(alarms).slice(0, 8), (a) => {
|
|
2651
|
-
_push(`<div class="al-row" data-v-
|
|
2678
|
+
_push(`<div class="al-row" data-v-1444af6d><span class="${ssrRenderClass([a.state === 2 ? "info" : a.state === 1 ? "warn" : "crit", "al-ico"])}" data-v-1444af6d><svg class="al-svg" viewBox="0 0 24 24" data-v-1444af6d><path d="M12 3 22 20H2L12 3Z" data-v-1444af6d></path><path d="M12 10v4M12 17v.2" data-v-1444af6d></path></svg></span><div class="al-body" data-v-1444af6d><div class="al-txt" data-v-1444af6d>${ssrInterpolate(a.txt)}</div><div class="al-src" data-v-1444af6d>${ssrInterpolate(a.src)} · ${ssrInterpolate(a.time)}</div></div><button class="${ssrRenderClass([`s${a.state}`, "al-state"])}" data-v-1444af6d>${ssrInterpolate(ALARM_STATES[a.state])}</button></div>`);
|
|
2652
2679
|
});
|
|
2653
2680
|
_push(`<!--]-->`);
|
|
2654
|
-
if (!unref(alarms).length) _push(`<div class="rail-empty" data-v-
|
|
2681
|
+
if (!unref(alarms).length) _push(`<div class="rail-empty" data-v-1444af6d><svg class="re-ico" viewBox="0 0 24 24" data-v-1444af6d><path d="M12 3l7 3v5c0 4.6-3 8.2-7 10-4-1.8-7-5.4-7-10V6l7-3Z" data-v-1444af6d></path><path d="m9.2 12.2 2 2 3.6-4" data-v-1444af6d></path></svg><span data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.kjz544r119"))}</span></div>`);
|
|
2655
2682
|
else _push(`<!---->`);
|
|
2656
|
-
_push(`</div></section><section class="panel" data-v-
|
|
2683
|
+
_push(`</div></section><section class="panel" data-v-1444af6d><div class="panel-hd" data-v-1444af6d><h3 data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1cxdtq2120"))}</h3><span class="panel-tag" data-v-1444af6d>${ssrInterpolate(unref(ticker).length)}</span></div><div class="event-list" data-v-1444af6d><!--[-->`);
|
|
2657
2684
|
ssrRenderList([...unref(ticker)].reverse(), (t, i) => {
|
|
2658
|
-
_push(`<div class="event-row" data-v-
|
|
2685
|
+
_push(`<div class="event-row" data-v-1444af6d><span class="ev-time" data-v-1444af6d>${ssrInterpolate(fmtTime(t.at))}</span><span class="ev-name"${ssrRenderAttr("title", t.agentName)} data-v-1444af6d>${ssrInterpolate(t.agentName)}</span><span class="ev-text"${ssrRenderAttr("title", t.text)} data-v-1444af6d>${ssrInterpolate(t.text)}</span></div>`);
|
|
2659
2686
|
});
|
|
2660
2687
|
_push(`<!--]-->`);
|
|
2661
|
-
if (!unref(ticker).length) _push(`<div class="rail-empty" data-v-
|
|
2688
|
+
if (!unref(ticker).length) _push(`<div class="rail-empty" data-v-1444af6d><svg class="re-ico" viewBox="0 0 24 24" data-v-1444af6d><path d="M3 12h3l2.5-6 4 12L15 12h6" data-v-1444af6d></path></svg><span data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k2uk6ua121"))}</span></div>`);
|
|
2662
2689
|
else _push(`<!---->`);
|
|
2663
|
-
_push(`</div></section><section class="panel" data-v-
|
|
2664
|
-
if (!unref(ready)) _push(`<div data-hud="town-loading" class="loading-mask" data-v-
|
|
2690
|
+
_push(`</div></section><section class="panel" data-v-1444af6d><div class="panel-hd" data-v-1444af6d><h3 data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.kjug2jq122"))}</h3></div><div class="mm-body" data-v-1444af6d><div class="mm-wrap"${ssrRenderAttr("title", _ctx.$t("townView.klfwiqg023"))} data-v-1444af6d><canvas class="nav-cv" data-v-1444af6d></canvas></div><div class="mm-col" data-v-1444af6d><button class="vp-tool"${ssrRenderAttr("title", _ctx.$t("townView.k1lap9bs024"))} data-v-1444af6d><svg class="vp-svg" viewBox="0 0 24 24" data-v-1444af6d><path d="M3 12a9 9 0 1 0 3-6.7M3 4v5h5" data-v-1444af6d></path></svg></button><button class="vp-tool"${ssrRenderAttr("title", _ctx.$t("townView.kav8a8k025"))} data-v-1444af6d><svg class="vp-svg" viewBox="0 0 24 24" data-v-1444af6d><circle cx="11" cy="11" r="6.5" data-v-1444af6d></circle><path d="m16 16 4.5 4.5M8.5 11h5" data-v-1444af6d></path></svg></button><button class="vp-tool"${ssrRenderAttr("title", _ctx.$t("townView.k1u7uce9026"))} data-v-1444af6d><svg class="vp-svg" viewBox="0 0 24 24" data-v-1444af6d><circle cx="11" cy="11" r="6.5" data-v-1444af6d></circle><path d="m16 16 4.5 4.5M8.5 11h5M11 8.5v5" data-v-1444af6d></path></svg></button></div></div><div class="mm-meta mono" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k1gaaodq136"))}${ssrInterpolate(unref(navScale).toFixed(1))} · ${ssrInterpolate(unref(minimap)?.devices?.length ?? 0)} ${ssrInterpolate(_ctx.$t("townView.k47e16126"))}</div></section></aside></div><footer class="statusbar" data-v-1444af6d><span data-v-1444af6d><span class="${ssrRenderClass([{ red: unref(conn).state !== "open" }, "sb-dot"])}" data-v-1444af6d></span>${ssrInterpolate(_ctx.$t("townView.k1i4g246123"))} <b data-v-1444af6d>${ssrInterpolate(unref(conn).state === "open" ? _ctx.$t("townView.k41k5c154") : unref(syncing) ? _ctx.$t("townView.k3lmtk3184") : _ctx.$t("townView.k44c2n186"))}</b></span><span class="sb-stats" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.k4a0jt124"))} <b data-v-1444af6d>${ssrInterpolate(unref(blockCount))}</b><i data-v-1444af6d>·</i>${ssrInterpolate(_ctx.$t("townView.k3xdvm125"))} <b data-v-1444af6d>${ssrInterpolate(unref(agentCount))}</b><i data-v-1444af6d>·</i>${ssrInterpolate(_ctx.$t("townView.k47e16126"))} <b data-v-1444af6d>${ssrInterpolate(unref(deviceCount))}</b></span><span class="sb-lat mono" data-v-1444af6d>${ssrInterpolate(unref(fps))} FPS </span><span class="copy" data-v-1444af6d> © 2026 ABO · DIGITAL TWIN · ${ssrInterpolate(_ctx.$t("townView.k1h5gxpf137"))}</span></footer>`);
|
|
2691
|
+
if (!unref(ready)) _push(`<div data-hud="town-loading" class="loading-mask" data-v-1444af6d><div class="loading-spinner" data-v-1444af6d></div><span class="loading-text" data-v-1444af6d>${ssrInterpolate(_ctx.$t("townView.kvjdqfg059"))}</span></div>`);
|
|
2665
2692
|
else _push(`<!---->`);
|
|
2666
2693
|
_push(`</div>`);
|
|
2667
2694
|
};
|
|
@@ -2675,7 +2702,7 @@ TownView_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
|
|
|
2675
2702
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/town/TownView.vue");
|
|
2676
2703
|
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
|
2677
2704
|
};
|
|
2678
|
-
var TownView_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(TownView_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
2705
|
+
var TownView_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(TownView_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-1444af6d"]]), { __name: "WorkshopTownView" });
|
|
2679
2706
|
|
|
2680
2707
|
export { TownView_default as T, useStorage as u };
|
|
2681
|
-
//# sourceMappingURL=TownView-
|
|
2708
|
+
//# sourceMappingURL=TownView-ftIylqiD.mjs.map
|