agentworkshop 0.7.20 → 0.7.22
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/{BA3XzwiD.js → 0exC4jVL.js} +1 -1
- package/.output/public/_nuxt/BAbAEW0D.js +1 -0
- package/.output/public/_nuxt/{DBXhDLgl.js → BuiGDfMB.js} +1 -1
- package/.output/public/_nuxt/Ci0uX4c4.js +1 -0
- package/.output/public/_nuxt/D6B0xnjk.js +1 -0
- package/.output/public/_nuxt/{TownView.BHLKAjEu.css → TownView.zu2rU5nS.css} +1 -1
- package/.output/public/_nuxt/_id_.C2VHq_vT.css +1 -0
- package/.output/public/_nuxt/_id_.Dswy2p0I.css +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/e2341fc0-6f3f-4680-abf8-935a7c9fb912.json +1 -0
- package/.output/public/_nuxt/{BOJaHO5V.js → c3mwkHWP.js} +2 -2
- package/.output/public/_nuxt/daq.BTdEun-8.css +1 -0
- package/.output/public/_nuxt/dbi5bHkY.js +2 -0
- package/.output/public/_nuxt/{DsOkkMX3.js → jyQyulh-.js} +1 -1
- package/.output/public/_nuxt/{B-E8fXAO.js → n3vMFfrv.js} +1 -1
- package/.output/server/chunks/_/nitro.mjs +847 -722
- package/.output/server/chunks/_/nitro.mjs.map +1 -1
- package/.output/server/chunks/build/{TownView-ql2eHZOg.mjs → TownView-DxeQe1Bl.mjs} +144 -143
- package/.output/server/chunks/build/{TownView-ql2eHZOg.mjs.map → TownView-DxeQe1Bl.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-CwR5oLu9.mjs → _id_-B9RvEQFC.mjs} +33 -35
- package/.output/server/chunks/build/_id_-B9RvEQFC.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-Bs-euJPu.mjs → _id_-CqF0R5W5.mjs} +138 -137
- package/.output/server/chunks/build/_id_-CqF0R5W5.mjs.map +1 -0
- package/.output/server/chunks/build/{_wsId_-B3aB9bIp.mjs → _wsId_-YC2t_fRt.mjs} +3 -3
- package/.output/server/chunks/build/{_wsId_-B3aB9bIp.mjs.map → _wsId_-YC2t_fRt.mjs.map} +1 -1
- package/.output/server/chunks/build/{daq-epWL_sC7.mjs → daq-Bhwwz9vp.mjs} +146 -118
- package/.output/server/chunks/build/daq-Bhwwz9vp.mjs.map +1 -0
- package/.output/server/chunks/build/{pages-Dq7_H4FK.mjs → pages-D9tOoJsf.mjs} +2 -2
- package/.output/server/chunks/build/{pages-Dq7_H4FK.mjs.map → pages-D9tOoJsf.mjs.map} +1 -1
- package/.output/server/chunks/build/{town-CstiKxf_.mjs → town-Dsh0jlwZ.mjs} +3 -3
- package/.output/server/chunks/build/{town-CstiKxf_.mjs.map → town-Dsh0jlwZ.mjs.map} +1 -1
- package/.output/server/chunks/build/{useDaqStream-BOOZ-p-l.mjs → useDaqStream-DkRL3tEW.mjs} +9 -1
- package/.output/server/chunks/build/{useDaqStream-BOOZ-p-l.mjs.map → useDaqStream-DkRL3tEW.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/bind.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +34 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +33 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs.map +1 -0
- package/.output/server/chunks/routes/renderer.mjs +1 -1
- package/.output/server/chunks/virtual/entry.mjs +6 -6
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/README-zh.md +478 -469
- package/README.md +486 -475
- package/app/components/workshop/town/TownView.vue +7082 -7076
- package/app/composables/workshop/useDaqStream.ts +10 -0
- package/app/pages/daq/[id].vue +4 -3
- package/app/pages/daq/index.vue +66 -21
- package/app/pages/dcw/[id].vue +5 -1
- package/package.json +148 -148
- package/scripts/_dbg-device-bind-e2e.mjs +129 -0
- package/server/api/workshop/daq/[id]/bind.post.ts +5 -2
- package/server/api/workshop/daq/[id]/bindings.put.ts +22 -0
- package/server/api/workshop/dcw/[id]/bind.post.ts +4 -2
- package/server/api/workshop/dcw/[id]/bindings.put.ts +21 -0
- package/server/data/daqs.json +404 -99
- package/server/data/dcw-lines.json +7 -0
- package/server/data/dcw-rollback.json +573 -10
- package/server/data/dcw-runs.json +91 -81
- package/server/data/dcw-writes.json +168 -0
- package/server/data/dcws.json +220 -220
- package/server/data/line-runs.json +18 -18
- package/server/services/workshop/agents/industrial-context.ts +231 -222
- package/server/services/workshop/daq/daq-controller.ts +76 -23
- package/server/services/workshop/daq/daq-node.ts +11 -1
- package/server/services/workshop/dcw/dcw-controller.ts +50 -2
- package/server/services/workshop/dcw/dcw-node.ts +10 -1
- package/shared/daq-protocol.ts +2 -0
- package/shared/dcw-protocol.ts +2 -0
- package/.output/public/_nuxt/B_C3GLsD.js +0 -1
- package/.output/public/_nuxt/Ba7YofCb.js +0 -2
- package/.output/public/_nuxt/CgT5wMfz.js +0 -1
- package/.output/public/_nuxt/D4CLp1hc.js +0 -1
- package/.output/public/_nuxt/_id_.DIxEKj88.css +0 -1
- package/.output/public/_nuxt/_id_.IbmpkhH4.css +0 -1
- package/.output/public/_nuxt/builds/meta/781a7557-9009-4289-ab59-7905c4f96825.json +0 -1
- package/.output/public/_nuxt/daq.6IrhVVfy.css +0 -1
- package/.output/server/chunks/build/_id_-Bs-euJPu.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-CwR5oLu9.mjs.map +0 -1
- package/.output/server/chunks/build/daq-epWL_sC7.mjs.map +0 -1
|
@@ -5,7 +5,7 @@ import { u as useEntitiesStore, a as useWorkshopWs } from './useWorkshopWs-CprkZ
|
|
|
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
7
|
import { u as useDcwStream } from './useDcwStream-DyB2ufQI.mjs';
|
|
8
|
-
import { u as useDaqStream } from './useDaqStream-
|
|
8
|
+
import { u as useDaqStream } from './useDaqStream-DkRL3tEW.mjs';
|
|
9
9
|
import { u as useDeviceTwins } from './useDeviceTwins-ZbT86L9O.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';
|
|
@@ -1725,7 +1725,8 @@ var TownView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
1725
1725
|
function stateEdgeAlarm(nodeId, prevState, nextState, value) {
|
|
1726
1726
|
const n = daq.nodeById(nodeId);
|
|
1727
1727
|
const tpl = n ? daqTplOf(n) : null;
|
|
1728
|
-
const
|
|
1728
|
+
const devIds = n?.deviceIds ?? (n?.deviceBindingId ? [n.deviceBindingId] : []);
|
|
1729
|
+
const label = (devIds.length ? devIds.map((id) => deviceTwins.byId(id)?.name ?? id.slice(0, 8)).join(" / ") : null) ?? n?.name ?? nodeId.slice(0, 8);
|
|
1729
1730
|
const val = `${value?.toFixed(tpl?.decimals ?? 2) ?? "--"} ${tpl?.unit ?? ""}`;
|
|
1730
1731
|
if (nextState === "alarm") raiseAlarm(t("townView.k113fir9195", {
|
|
1731
1732
|
p0: label,
|
|
@@ -1800,8 +1801,8 @@ var TownView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
1800
1801
|
return b.kind === "dcw" ? dcw.nodeById(b.nodeId)?.name ?? b.nodeId : daq.nodeById(b.nodeId)?.name ?? b.nodeId;
|
|
1801
1802
|
}
|
|
1802
1803
|
/** 数采 → 设备绑定(server 权威:node.deviceBindingId;REST bind 落库 + WS 收敛) */
|
|
1803
|
-
const boundDeviceOf = (daqId) => daq.nodeById(daqId)?.deviceBindingId ?? null;
|
|
1804
|
-
const daqOfDevice = (deviceId) => deviceId ? daq.nodes.filter((n) => n.deviceBindingId
|
|
1804
|
+
const boundDeviceOf = (daqId) => daq.nodeById(daqId)?.deviceIds?.[0] ?? daq.nodeById(daqId)?.deviceBindingId ?? null;
|
|
1805
|
+
const daqOfDevice = (deviceId) => deviceId ? daq.nodes.filter((n) => (n.deviceIds ?? (n.deviceBindingId ? [n.deviceBindingId] : [])).includes(deviceId)).map((n) => n.id) : [];
|
|
1805
1806
|
/** 数采模板图标(设计稿 ICONS;SVG path 直嵌) */
|
|
1806
1807
|
const DAQ_ICONS = {
|
|
1807
1808
|
thermo: "<path d=\"M10 4a2 2 0 0 1 4 0v9a4 4 0 1 1-4 0V4Z\"/><circle cx=\"12\" cy=\"16.5\" r=\"1.6\"/>",
|
|
@@ -2295,82 +2296,82 @@ var TownView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
2295
2296
|
return (_ctx, _push, _parent, _attrs) => {
|
|
2296
2297
|
const _component_WorkshopAssetLibrary = AssetLibrary_default;
|
|
2297
2298
|
const _component_WorkshopDeviceTwinPanel = DeviceTwinPanel_default;
|
|
2298
|
-
_push(`<div${ssrRenderAttrs(mergeProps({ class: "town-view" }, _attrs))} data-v-
|
|
2299
|
-
if (unref(saveState) && unref(saveState).state !== "idle") _push(`<span class="${ssrRenderClass([`s-${unref(saveState).state}`, "save-chip"])}" data-v-
|
|
2299
|
+
_push(`<div${ssrRenderAttrs(mergeProps({ class: "town-view" }, _attrs))} data-v-5b974b95><header class="topnav" data-v-5b974b95><div class="brand" data-v-5b974b95><svg class="brand-glyph" viewBox="0 0 32 32" fill="none" aria-hidden="true" data-v-5b974b95><path d="M16 2.5 27.5 9v14L16 29.5 4.5 23V9L16 2.5Z" stroke="#35e0a0" stroke-width="1.6" data-v-5b974b95></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-5b974b95></path><circle cx="16" cy="16" r="2.4" fill="#35e0a0" data-v-5b974b95></circle><circle cx="25.5" cy="7.5" r="1.6" fill="#41c8f4" data-v-5b974b95></circle></svg><div data-v-5b974b95><div class="brand-name" data-v-5b974b95> DIGITAL <em data-v-5b974b95>TWIN</em></div><div class="brand-sub" data-v-5b974b95> AGENTWORKSHOP · ${ssrInterpolate(_ctx.$t("townView.klyi8yg127"))}</div></div></div><nav class="nav-tabs"${ssrRenderAttr("aria-label", _ctx.$t("townView.k1c9jyta001"))} data-v-5b974b95><div class="seg" data-v-5b974b95><button class="${ssrRenderClass({ on: unref(mode) === "browse" })}" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k48dwh027"))}</button><button class="${ssrRenderClass({ on: unref(mode) === "edit" })}" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k45eb0028"))}</button></div><button class="nav-action"${ssrIncludeBooleanAttr(unref(mode) !== "edit") ? " disabled" : ""}${ssrRenderAttr("title", unref(mode) === "edit" ? "把全部设备的位置/朝向/缩放写入数据库" : "运行模式只读")} data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1b3bk8t029"))}</button>`);
|
|
2300
|
+
if (unref(saveState) && unref(saveState).state !== "idle") _push(`<span class="${ssrRenderClass([`s-${unref(saveState).state}`, "save-chip"])}" data-v-5b974b95>${ssrInterpolate(unref(saveStateLabel))}</span>`);
|
|
2300
2301
|
else _push(`<!---->`);
|
|
2301
|
-
_push(`</nav><div class="nav-right" data-v-
|
|
2302
|
+
_push(`</nav><div class="nav-right" data-v-5b974b95><span class="${ssrRenderClass([{ "nav-bell-warn": unref(activeAlarmCount) > 0 }, "nav-chip mono"])}"${ssrRenderAttr("title", _ctx.$t("townView.k1fsi3ir002"))} data-v-5b974b95>◉ ${ssrInterpolate(unref(activeAlarmCount))}</span><span class="nav-chip mono" data-v-5b974b95>${ssrInterpolate(unref(fps))} FPS</span><div class="avatar-chip"${ssrRenderAttr("title", _ctx.$t("townView.k1demf38003"))} data-v-5b974b95><div class="avatar-fallback" data-v-5b974b95>${ssrInterpolate((unref(userStore).user?.name ?? "OP").slice(0, 2).toUpperCase())}</div><span data-v-5b974b95>${ssrInterpolate(unref(userStore).user?.name || _ctx.$t("townView.k1pub99m139"))}</span></div></div></header><div class="app" data-v-5b974b95><aside class="rail rail-left" data-v-5b974b95><section class="panel" data-v-5b974b95><div class="panel-hd" data-v-5b974b95><h3 data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1k75lzy030"))}</h3><span class="panel-tag" data-v-5b974b95>${ssrInterpolate(unref(deviceModels).length)}</span></div>`);
|
|
2302
2303
|
_push(ssrRenderComponent(_component_WorkshopAssetLibrary, { class: "lib-embed" }, null, _parent));
|
|
2303
|
-
_push(`</section><section class="panel" data-v-
|
|
2304
|
+
_push(`</section><section class="panel" data-v-5b974b95><div class="panel-hd" data-v-5b974b95><h3 data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k2gwyas031"))}</h3><span class="panel-tag" data-v-5b974b95>${ssrInterpolate(unref(daqTwins).length)}</span></div><div class="daq-ctrl" data-v-5b974b95><button class="${ssrRenderClass([{ on: unref(daq).controller.running }, "daq-ctl-btn"])}"${ssrRenderAttr("title", unref(daq).controller.running ? "暂停全部采集:停止所有启用节点的采样(节点级启停独立)" : "恢复全部采集:仅启用节点恢复采集(手动停用的保持停用)")} data-v-5b974b95>${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-5b974b95>${ssrInterpolate(_ctx.$t("townView.k3xg3w032"))} <input type="number" min="200" max="60000" step="100"${ssrRenderAttr("value", unref(daq).controller.defaultIntervalMs)} data-v-5b974b95>ms </label></div><div class="daq-list" data-v-5b974b95><!--[-->`);
|
|
2304
2305
|
ssrRenderList(unref(daqTemplates), (tpl) => {
|
|
2305
|
-
_push(`<div class="daq-group" data-v-
|
|
2306
|
+
_push(`<div class="daq-group" data-v-5b974b95><div class="${ssrRenderClass([{ open: !!unref(treeOpen)[`daq:${tpl.id}`] }, "daq-card tpl"])}" role="button" tabindex="0"${ssrRenderAttr("title", _ctx.$t("townView.k2tplxp0001", {
|
|
2306
2307
|
p0: tpl.name,
|
|
2307
2308
|
p1: tpl.ch,
|
|
2308
2309
|
p2: tpl.min,
|
|
2309
2310
|
p3: tpl.max,
|
|
2310
2311
|
p4: tpl.unit
|
|
2311
|
-
}))} data-v-
|
|
2312
|
-
if (unref(mode) === "edit") _push(`<button class="daq-add"${ssrRenderAttr("title", _ctx.$t("townView.k2tplxp0002", { p0: tpl.name }))} data-v-
|
|
2312
|
+
}))} data-v-5b974b95><span class="daq-caret" data-v-5b974b95>▶</span><span class="daq-ico" data-v-5b974b95><svg class="daq-svg" viewBox="0 0 24 24" data-v-5b974b95>${daqIcon(tpl.icon) ?? ""}</svg></span><div class="daq-meta" data-v-5b974b95><span class="daq-name" data-v-5b974b95>${ssrInterpolate(tpl.name)}</span><span class="daq-code" data-v-5b974b95>${ssrInterpolate(tpl.code)}</span></div>`);
|
|
2313
|
+
if (unref(mode) === "edit") _push(`<button class="daq-add"${ssrRenderAttr("title", _ctx.$t("townView.k2tplxp0002", { p0: tpl.name }))} data-v-5b974b95> + </button>`);
|
|
2313
2314
|
else _push(`<!---->`);
|
|
2314
|
-
_push(`<span class="daq-count" data-v-
|
|
2315
|
+
_push(`<span class="daq-count" data-v-5b974b95>×${ssrInterpolate(unref(daqNodesByTpl).get(tpl.id)?.length ?? 0)}</span></div>`);
|
|
2315
2316
|
if (unref(treeOpen)[`daq:${tpl.id}`]) {
|
|
2316
|
-
_push(`<div class="daq-children" data-v-
|
|
2317
|
+
_push(`<div class="daq-children" data-v-5b974b95><!--[-->`);
|
|
2317
2318
|
ssrRenderList(unref(daqNodesByTpl).get(tpl.id) ?? [], (n) => {
|
|
2318
|
-
_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-
|
|
2319
|
-
if (typeof n.posX === "number") _push(`<span class="scene-cur" data-v-
|
|
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-5b974b95><span class="${ssrRenderClass([daqLeafState(n), "node-dot"])}" data-v-5b974b95></span><div class="daq-meta" data-v-5b974b95><span class="daq-name" data-v-5b974b95>${ssrInterpolate(n.name)}</span><span class="daq-node-sub" data-v-5b974b95><span class="node-val mono" data-v-5b974b95>${ssrInterpolate(n.value != null ? `${n.value.toFixed(tpl.decimals)} ${tpl.unit}` : "--")}</span><span class="node-dev" data-v-5b974b95>${ssrInterpolate(n.deviceBindingId ? unref(deviceTwins).byId(n.deviceBindingId)?.name ?? _ctx.$t("townView.k3own4q148") : _ctx.$t("townView.k3own4q148"))}</span></span></div>`);
|
|
2320
|
+
if (typeof n.posX === "number") _push(`<span class="scene-cur" data-v-5b974b95>✓</span>`);
|
|
2320
2321
|
else _push(`<!---->`);
|
|
2321
2322
|
_push(`</div>`);
|
|
2322
2323
|
});
|
|
2323
2324
|
_push(`<!--]-->`);
|
|
2324
|
-
if (!unref(daqNodesByTpl).get(tpl.id)?.length) _push(`<div class="daq-empty-hint" data-v-
|
|
2325
|
+
if (!unref(daqNodesByTpl).get(tpl.id)?.length) _push(`<div class="daq-empty-hint" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k2tplxp0003"))}</div>`);
|
|
2325
2326
|
else _push(`<!---->`);
|
|
2326
2327
|
_push(`</div>`);
|
|
2327
2328
|
} else _push(`<!---->`);
|
|
2328
2329
|
_push(`</div>`);
|
|
2329
2330
|
});
|
|
2330
|
-
_push(`<!--]--></div></section><section class="panel" data-v-
|
|
2331
|
+
_push(`<!--]--></div></section><section class="panel" data-v-5b974b95><div class="panel-hd" data-v-5b974b95><h3 data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.km7ayhi033"))}</h3><span class="panel-tag" data-v-5b974b95>${ssrInterpolate(unref(dcw).nodes.length)}</span></div><div class="daq-list" data-v-5b974b95><!--[-->`);
|
|
2331
2332
|
ssrRenderList(unref(dcwTemplates), (tpl) => {
|
|
2332
|
-
_push(`<div class="daq-group" data-v-
|
|
2333
|
+
_push(`<div class="daq-group" data-v-5b974b95><div class="${ssrRenderClass([{ open: !!unref(treeOpen)[`dcw:${tpl.id}`] }, "daq-card tpl"])}" role="button" tabindex="0"${ssrRenderAttr("title", _ctx.$t("townView.k2tplxp0001", {
|
|
2333
2334
|
p0: tpl.name,
|
|
2334
2335
|
p1: tpl.ch,
|
|
2335
2336
|
p2: tpl.min,
|
|
2336
2337
|
p3: tpl.max,
|
|
2337
2338
|
p4: tpl.unit
|
|
2338
|
-
}))} data-v-
|
|
2339
|
-
if (unref(mode) === "edit") _push(`<button class="daq-add"${ssrRenderAttr("title", _ctx.$t("townView.k2tplxp0002", { p0: tpl.name }))} data-v-
|
|
2339
|
+
}))} data-v-5b974b95><span class="daq-caret" data-v-5b974b95>▶</span><span class="daq-ico" data-v-5b974b95><svg class="daq-svg" viewBox="0 0 24 24" data-v-5b974b95>${daqIcon(tpl.icon) ?? ""}</svg></span><div class="daq-meta" data-v-5b974b95><span class="daq-name" data-v-5b974b95>${ssrInterpolate(tpl.name)}</span><span class="daq-code" data-v-5b974b95>${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-5b974b95> + </button>`);
|
|
2340
2341
|
else _push(`<!---->`);
|
|
2341
|
-
_push(`<span class="daq-count" data-v-
|
|
2342
|
+
_push(`<span class="daq-count" data-v-5b974b95>×${ssrInterpolate(unref(dcwNodesByTpl).get(tpl.id)?.length ?? 0)}</span></div>`);
|
|
2342
2343
|
if (unref(treeOpen)[`dcw:${tpl.id}`]) {
|
|
2343
|
-
_push(`<div class="daq-children" data-v-
|
|
2344
|
+
_push(`<div class="daq-children" data-v-5b974b95><!--[-->`);
|
|
2344
2345
|
ssrRenderList(unref(dcwNodesByTpl).get(tpl.id) ?? [], (n) => {
|
|
2345
|
-
_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-
|
|
2346
|
-
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-5b974b95><span class="${ssrRenderClass([dcwLeafState(n), "node-dot"])}" data-v-5b974b95></span><div class="daq-meta" data-v-5b974b95><span class="daq-name" data-v-5b974b95>${ssrInterpolate(n.name)}</span><span class="daq-node-sub" data-v-5b974b95><span class="node-val mono" data-v-5b974b95>${ssrInterpolate(n.value != null ? `${n.value.toFixed(tpl.decimals)} ${tpl.unit}` : "--")}</span><span class="node-dev" data-v-5b974b95>${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-5b974b95>✓</span>`);
|
|
2347
2348
|
else _push(`<!---->`);
|
|
2348
2349
|
_push(`</div>`);
|
|
2349
2350
|
});
|
|
2350
2351
|
_push(`<!--]-->`);
|
|
2351
|
-
if (!unref(dcwNodesByTpl).get(tpl.id)?.length) _push(`<div class="daq-empty-hint" data-v-
|
|
2352
|
+
if (!unref(dcwNodesByTpl).get(tpl.id)?.length) _push(`<div class="daq-empty-hint" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k2tplxp0003"))}</div>`);
|
|
2352
2353
|
else _push(`<!---->`);
|
|
2353
2354
|
_push(`</div>`);
|
|
2354
2355
|
} else _push(`<!---->`);
|
|
2355
2356
|
_push(`</div>`);
|
|
2356
2357
|
});
|
|
2357
|
-
_push(`<!--]--></div></section><section class="panel" data-v-
|
|
2358
|
+
_push(`<!--]--></div></section><section class="panel" data-v-5b974b95><div class="panel-hd" data-v-5b974b95><h3 data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1c9n911034"))}</h3><span class="panel-tag" data-v-5b974b95>${ssrInterpolate(unref(dockChannels).length)}</span></div><div class="scene-list" data-v-5b974b95><!--[-->`);
|
|
2358
2359
|
ssrRenderList(unref(dockChannels), (ch) => {
|
|
2359
|
-
_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-
|
|
2360
|
-
if (ch.placed) _push(`<span class="scene-cur" data-v-
|
|
2361
|
-
else _push(`<span class="scene-add" data-v-
|
|
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-5b974b95><span class="scene-ico" style="${ssrRenderStyle({ "--ch": ch.color })}" data-v-5b974b95></span><div class="scene-meta-wrap" data-v-5b974b95><span class="scene-name" data-v-5b974b95>${ssrInterpolate(ch.name)}</span><span class="scene-meta" data-v-5b974b95>${ssrInterpolate(ch.agentCount)} ${ssrInterpolate(_ctx.$t("townView.k1brss7t128"))} ${ssrInterpolate(ch.placed ? _ctx.$t("townView.k3n94g3141") : _ctx.$t("townView.k3os7i3176"))}</span></div>`);
|
|
2361
|
+
if (ch.placed) _push(`<span class="scene-cur" data-v-5b974b95>✓</span>`);
|
|
2362
|
+
else _push(`<span class="scene-add" data-v-5b974b95>+</span>`);
|
|
2362
2363
|
_push(`</div>`);
|
|
2363
2364
|
});
|
|
2364
2365
|
_push(`<!--]-->`);
|
|
2365
|
-
if (unref(dockHint)) _push(`<div class="scene-hint" data-v-
|
|
2366
|
+
if (unref(dockHint)) _push(`<div class="scene-hint" data-v-5b974b95>${ssrInterpolate(unref(dockHint))}</div>`);
|
|
2366
2367
|
else _push(`<!---->`);
|
|
2367
|
-
_push(`</div></section></aside><main class="stage-col" data-v-
|
|
2368
|
+
_push(`</div></section></aside><main class="stage-col" data-v-5b974b95><div class="stage" data-v-5b974b95><div id="town-host" class="town-host" data-v-5b974b95></div><div class="stage-vignette" data-v-5b974b95></div><div class="stage-top" data-v-5b974b95><div class="vp-title" data-v-5b974b95><h2 data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1b0z4vr035"))}</h2><span class="vp-id" data-v-5b974b95>CH · ${ssrInterpolate(unref(activeChannelName) || _ctx.$t("townView.k3lkuz3142"))}</span></div><div class="vp-tools" data-v-5b974b95><button class="vp-tool"${ssrRenderAttr("title", _ctx.$t("townView.k18d6wnb005"))} data-v-5b974b95><svg class="vp-svg" viewBox="0 0 24 24" data-v-5b974b95><circle cx="12" cy="12" r="7" data-v-5b974b95></circle><path d="M12 2v4M12 18v4M2 12h4M18 12h4" data-v-5b974b95></path></svg></button><button class="${ssrRenderClass([{ on: unref(orbitOn) }, "vp-tool"])}"${ssrRenderAttr("title", _ctx.$t("townView.k1io51dn006"))} data-v-5b974b95><svg class="vp-svg" viewBox="0 0 24 24" data-v-5b974b95><circle cx="12" cy="12" r="3.2" data-v-5b974b95></circle><path d="M20.5 9a10 10 0 0 1 .3 4.5M3.5 15a10 10 0 0 1-.3-4.5" data-v-5b974b95></path></svg></button><button class="${ssrRenderClass([{ on: unref(showCallouts) }, "vp-tool"])}"${ssrRenderAttr("title", _ctx.$t("townView.k1sgjlq8007"))} data-v-5b974b95><svg class="vp-svg" viewBox="0 0 24 24" data-v-5b974b95><path d="M4 8h12l4 4-4 4H4z" data-v-5b974b95></path><circle cx="8.5" cy="12" r="1.4" data-v-5b974b95></circle></svg></button><button class="vp-tool"${ssrRenderAttr("title", _ctx.$t("townView.k3wuf0008"))} data-v-5b974b95><svg class="vp-svg" viewBox="0 0 24 24" data-v-5b974b95><path d="M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5" data-v-5b974b95></path></svg></button></div></div><div class="angle-chip" data-v-5b974b95><select${ssrRenderAttr("value", unref(viewPreset))}${ssrRenderAttr("aria-label", _ctx.$t("townView.k1k4j5i7009"))} data-v-5b974b95><option value="std" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.kv72860036"))}</option><option value="top" data-v-5b974b95> 俯视 · TOP </option><option value="front" data-v-5b974b95> 前视 · FRONT </option><option value="side" data-v-5b974b95> 侧视 · SIDE </option></select></div>`);
|
|
2368
2369
|
if (unref(showCallouts)) {
|
|
2369
|
-
_push(`<!--[--><svg class="leaders" data-v-
|
|
2370
|
+
_push(`<!--[--><svg class="leaders" data-v-5b974b95><!--[-->`);
|
|
2370
2371
|
ssrRenderList(unref(callouts), (c) => {
|
|
2371
|
-
_push(`<g class="${ssrRenderClass({ near: c.near })}" style="${ssrRenderStyle(c.leader ? null : { display: "none" })}" data-v-
|
|
2372
|
+
_push(`<g class="${ssrRenderClass({ near: c.near })}" style="${ssrRenderStyle(c.leader ? null : { display: "none" })}" data-v-5b974b95><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-5b974b95></path><circle${ssrRenderAttr("cx", c.x)}${ssrRenderAttr("cy", c.y)} r="2.6"${ssrRenderAttr("fill", c.warn ? "#f6c453" : "#41c8f4")} data-v-5b974b95></circle></g>`);
|
|
2372
2373
|
});
|
|
2373
|
-
_push(`<!--]--></svg><div class="callout-layer" data-v-
|
|
2374
|
+
_push(`<!--]--></svg><div class="callout-layer" data-v-5b974b95><!--[-->`);
|
|
2374
2375
|
ssrRenderList(unref(callouts), (c) => {
|
|
2375
2376
|
_push(`<div class="${ssrRenderClass([{
|
|
2376
2377
|
warn: c.warn,
|
|
@@ -2378,12 +2379,12 @@ var TownView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
2378
2379
|
}, "callout"])}" style="${ssrRenderStyle({
|
|
2379
2380
|
left: c.x + "px",
|
|
2380
2381
|
top: c.y + "px"
|
|
2381
|
-
})}"${ssrRenderAttr("title", _ctx.$t("townView.k1ejxiwp010"))} data-v-
|
|
2382
|
+
})}"${ssrRenderAttr("title", _ctx.$t("townView.k1ejxiwp010"))} data-v-5b974b95><div class="co-label" data-v-5b974b95><span class="co-dot" data-v-5b974b95></span>${ssrInterpolate(c.label)}</div><div class="co-val" data-v-5b974b95>${ssrInterpolate(c.value)}<small data-v-5b974b95>${ssrInterpolate(c.unit)}</small></div><div class="co-range" data-v-5b974b95>${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>`);
|
|
2382
2383
|
});
|
|
2383
2384
|
_push(`<!--]--></div><!--]-->`);
|
|
2384
2385
|
} else _push(`<!---->`);
|
|
2385
|
-
_push(`<div class="kpi-strip" data-v-
|
|
2386
|
-
if (unref(sceneEmpty)) _push(`<div class="empty-hint" data-v-
|
|
2386
|
+
_push(`<div class="kpi-strip" data-v-5b974b95><div class="kpi" data-v-5b974b95><span class="kpi-ico c1" data-v-5b974b95><svg class="kpi-svg" viewBox="0 0 24 24" data-v-5b974b95><path d="M4 8.5 12 4l8 4.5v7L12 20l-8-4.5v-7Z" data-v-5b974b95></path><path d="M4 8.5l8 4.5 8-4.5M12 13v7" data-v-5b974b95></path></svg></span><div class="kpi-meta" data-v-5b974b95><div class="kpi-label" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1k6xemt037"))}</div><div class="kpi-val" data-v-5b974b95>${ssrInterpolate(unref(deviceCount))}<small data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k49lh038"))}</small></div></div></div><div class="kpi" data-v-5b974b95><span class="kpi-ico c2" data-v-5b974b95><svg class="kpi-svg" viewBox="0 0 24 24" data-v-5b974b95><path d="m5 12.5 4.5 4.5L19 7.5" data-v-5b974b95></path></svg></span><div class="kpi-meta" data-v-5b974b95><div class="kpi-label" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1l1a9t2039"))}</div><div class="kpi-val" data-v-5b974b95>${ssrInterpolate(unref(runningCount))}<small data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k49lh038"))}</small></div></div></div><div class="kpi" data-v-5b974b95><span class="kpi-ico c3" data-v-5b974b95><svg class="kpi-svg" viewBox="0 0 24 24" data-v-5b974b95><path d="M12 3 22 20H2L12 3Z" data-v-5b974b95></path><path d="M12 10v4M12 17v.2" data-v-5b974b95></path></svg></span><div class="kpi-meta" data-v-5b974b95><div class="kpi-label" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1fsi3ir002"))}</div><div class="kpi-val" data-v-5b974b95>${ssrInterpolate(unref(activeAlarmCount))}<small data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k4dfq040"))}</small></div></div></div><div class="kpi" data-v-5b974b95><span class="kpi-ico c4" data-v-5b974b95><svg class="kpi-svg" viewBox="0 0 24 24" data-v-5b974b95><path d="M9.5 14.5 14.5 9.5" data-v-5b974b95></path><path d="M11 6.5 12.8 4.7a4 4 0 0 1 5.6 5.6L16.5 12" data-v-5b974b95></path><path d="m13 17.5-1.8 1.8a4 4 0 0 1-5.6-5.6L7.5 12" data-v-5b974b95></path></svg></span><div class="kpi-meta" data-v-5b974b95><div class="kpi-label" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1emsai1041"))}</div><div class="kpi-val" data-v-5b974b95>${ssrInterpolate(unref(daqTwins).length)}<small data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k4l1w042"))}</small></div></div></div><div class="kpi" data-v-5b974b95><span class="kpi-ico c5" data-v-5b974b95><svg class="kpi-svg" viewBox="0 0 24 24" data-v-5b974b95><path d="M5 19a9 9 0 1 1 14 0" data-v-5b974b95></path><path d="M12 13l3.5-3.5" data-v-5b974b95></path><circle cx="12" cy="13" r="1.4" data-v-5b974b95></circle></svg></span><div class="kpi-meta" data-v-5b974b95><div class="kpi-label" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.kbrxdq1043"))}</div><div class="kpi-val" data-v-5b974b95>${ssrInterpolate(unref(healthPct))}<small data-v-5b974b95>%</small></div></div></div></div>`);
|
|
2387
|
+
if (unref(sceneEmpty)) _push(`<div class="empty-hint" data-v-5b974b95><b data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k3rwxjc044"))}</b><span data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1sa1eaj045"))}</span></div>`);
|
|
2387
2388
|
else _push(`<!---->`);
|
|
2388
2389
|
if (unref(selectedChannel) && unref(boundaryDraft)) {
|
|
2389
2390
|
_push(`<div class="boundary-panel drag-panel" style="${ssrRenderStyle(unref(panelPos).boundary ? {
|
|
@@ -2391,111 +2392,111 @@ var TownView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
2391
2392
|
top: unref(panelPos).boundary.y + "px",
|
|
2392
2393
|
bottom: "auto",
|
|
2393
2394
|
transform: "none"
|
|
2394
|
-
} : void 0)}" data-v-
|
|
2395
|
-
if (unref(channelPanelTab) === "boundary") _push(`<!--[--><div class="bp-row" data-v-
|
|
2395
|
+
} : void 0)}" data-v-5b974b95><div class="bp-title drag-grip"${ssrRenderAttr("title", _ctx.$t("townView.k1d0rl5z011"))} data-v-5b974b95><span class="bp-name" data-v-5b974b95>${ssrInterpolate(unref(entities).channels[unref(selectedChannel)]?.name ?? unref(selectedChannel).slice(0, 8))}</span><span class="bp-sub" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1mehlxs046"))}</span><div class="bp-tabs" data-v-5b974b95><button class="${ssrRenderClass([{ on: unref(channelPanelTab) === "boundary" }, "bp-tab"])}" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k489ka047"))}</button><button class="${ssrRenderClass([{ on: unref(channelPanelTab) === "members" }, "bp-tab"])}" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k3ztf1129"))} ${ssrInterpolate(unref(channelMembers).length)}</button></div></div>`);
|
|
2396
|
+
if (unref(channelPanelTab) === "boundary") _push(`<!--[--><div class="bp-row" data-v-5b974b95><span class="bp-label" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k3zhy5048"))}</span><div class="bp-seg" data-v-5b974b95><button class="${ssrRenderClass([{ on: unref(boundaryDraft).shape === "ellipse" }, "seg-btn"])}" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k414bc049"))}</button><button class="${ssrRenderClass([{ on: unref(boundaryDraft).shape === "rect" }, "seg-btn"])}" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k43u0g050"))}</button></div></div><div class="bp-row" data-v-5b974b95><span class="bp-label" data-v-5b974b95>${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-5b974b95><span class="bp-val" data-v-5b974b95>${ssrInterpolate(Math.round(unref(boundaryDraft).radiusX))}</span></div><div class="bp-row" data-v-5b974b95><span class="bp-label" data-v-5b974b95>${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-5b974b95><span class="bp-val" data-v-5b974b95>${ssrInterpolate(Math.round(unref(boundaryDraft).radiusZ))}</span></div><div class="bp-row" data-v-5b974b95><span class="bp-label" data-v-5b974b95>${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-5b974b95><span class="bp-val" data-v-5b974b95>${ssrInterpolate(Math.round(unref(boundaryDraft).rotationY ?? 0))}°</span></div><!--]-->`);
|
|
2396
2397
|
else {
|
|
2397
|
-
_push(`<!--[--><div class="bp-hint" data-v-
|
|
2398
|
+
_push(`<!--[--><div class="bp-hint" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.kimxls2054"))}</div><div class="member-list" data-v-5b974b95><!--[-->`);
|
|
2398
2399
|
ssrRenderList(unref(channelMembers), (m) => {
|
|
2399
|
-
_push(`<div class="member-row" data-v-
|
|
2400
|
+
_push(`<div class="member-row" data-v-5b974b95><span class="member-ava" style="${ssrRenderStyle({ color: hashColor(unref(selectedChannel)) })}" data-v-5b974b95>${ssrInterpolate(m.name.charAt(0).toUpperCase())}</span><div class="member-info" data-v-5b974b95><span class="member-name" data-v-5b974b95>${ssrInterpolate(m.name)}</span><span class="${ssrRenderClass([m.role === "lead" ? "r-lead" : "r-worker", "member-role"])}" data-v-5b974b95>${ssrInterpolate(m.role === "lead" ? "Leader" : "Worker")}</span></div><select class="member-select"${ssrRenderAttr("value", (m.modelRef ?? "") || "hero-3d")} data-v-5b974b95><!--[-->`);
|
|
2400
2401
|
ssrRenderList(unref(agentModels), (model) => {
|
|
2401
|
-
_push(`<option${ssrRenderAttr("value", model.id)} data-v-
|
|
2402
|
+
_push(`<option${ssrRenderAttr("value", model.id)} data-v-5b974b95>${ssrInterpolate(model.name)}</option>`);
|
|
2402
2403
|
});
|
|
2403
2404
|
_push(`<!--]--></select></div>`);
|
|
2404
2405
|
});
|
|
2405
2406
|
_push(`<!--]-->`);
|
|
2406
|
-
if (unref(channelMembers).length === 0) _push(`<div class="bp-hint" data-v-
|
|
2407
|
+
if (unref(channelMembers).length === 0) _push(`<div class="bp-hint" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k419rbs055"))}</div>`);
|
|
2407
2408
|
else _push(`<!---->`);
|
|
2408
2409
|
_push(`</div><!--]-->`);
|
|
2409
2410
|
}
|
|
2410
|
-
_push(`<div class="bp-actions" data-v-
|
|
2411
|
-
if (unref(channelPanelTab) === "boundary") _push(`<button class="bp-btn save" data-v-
|
|
2411
|
+
_push(`<div class="bp-actions" data-v-5b974b95>`);
|
|
2412
|
+
if (unref(channelPanelTab) === "boundary") _push(`<button class="bp-btn save" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1b3kp8f056"))}</button>`);
|
|
2412
2413
|
else _push(`<!---->`);
|
|
2413
|
-
_push(`<button class="bp-btn danger" data-v-
|
|
2414
|
+
_push(`<button class="bp-btn danger" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1hs45qg057"))}</button><button class="bp-btn" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k3x62t058"))}</button></div></div>`);
|
|
2414
2415
|
} else _push(`<!---->`);
|
|
2415
|
-
if (unref(lastDropText)) _push(`<div class="drop-chip" data-v-
|
|
2416
|
+
if (unref(lastDropText)) _push(`<div class="drop-chip" data-v-5b974b95>${ssrInterpolate(unref(lastDropText))}</div>`);
|
|
2416
2417
|
else _push(`<!---->`);
|
|
2417
|
-
if (unref(errorText)) _push(`<div class="error-chip" data-v-
|
|
2418
|
+
if (unref(errorText)) _push(`<div class="error-chip" data-v-5b974b95>${ssrInterpolate(unref(errorText))}</div>`);
|
|
2418
2419
|
else _push(`<!---->`);
|
|
2419
|
-
if (!unref(ready)) _push(`<div data-hud="town-loading" class="loading-mask" data-v-
|
|
2420
|
+
if (!unref(ready)) _push(`<div data-hud="town-loading" class="loading-mask" data-v-5b974b95><div class="loading-spinner" data-v-5b974b95></div><span class="loading-text" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.kvjdqfg059"))}</span></div>`);
|
|
2420
2421
|
else _push(`<!---->`);
|
|
2421
|
-
_push(`</div><div class="dock" data-v-
|
|
2422
|
+
_push(`</div><div class="dock" data-v-5b974b95><section class="dock-card" data-v-5b974b95><div class="dock-hd" data-v-5b974b95><h3 data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1c9iq23060"))}</h3><span class="dock-mode" data-v-5b974b95>${ssrInterpolate(unref(mode) === "edit" ? _ctx.$t("townView.k1iipfcs143") : _ctx.$t("townView.k1l147w1177"))}</span></div><p class="ctl-sec" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.secRender"))}</p><div class="ctl-row" data-v-5b974b95><span class="ctl-name"${ssrRenderAttr("title", _ctx.$t("townView.qualityTip"))} data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.qualityLabel"))}</span><div class="fps-seg" data-v-5b974b95><!--[-->`);
|
|
2422
2423
|
ssrRenderList(QUALITY_OPTIONS, (o) => {
|
|
2423
|
-
_push(`<button class="${ssrRenderClass({ on: unref(qualityMode) === o.v })}" data-v-
|
|
2424
|
+
_push(`<button class="${ssrRenderClass({ on: unref(qualityMode) === o.v })}" data-v-5b974b95>${ssrInterpolate(_ctx.$t(o.label))}</button>`);
|
|
2424
2425
|
});
|
|
2425
|
-
_push(`<!--]--></div><span class="ctl-val" data-v-
|
|
2426
|
+
_push(`<!--]--></div><span class="ctl-val" data-v-5b974b95></span></div><div class="ctl-row" data-v-5b974b95><span class="ctl-name"${ssrRenderAttr("title", _ctx.$t("townView.fpsCapTip"))} data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.fpsCapLabel"))}</span><div class="fps-seg" data-v-5b974b95><!--[-->`);
|
|
2426
2427
|
ssrRenderList(FPS_OPTIONS, (o) => {
|
|
2427
|
-
_push(`<button class="${ssrRenderClass({ on: unref(fpsCap) === o.v })}" data-v-
|
|
2428
|
+
_push(`<button class="${ssrRenderClass({ on: unref(fpsCap) === o.v })}" data-v-5b974b95>${ssrInterpolate(o.label)}</button>`);
|
|
2428
2429
|
});
|
|
2429
|
-
_push(`<!--]--></div><span class="ctl-val" data-v-
|
|
2430
|
+
_push(`<!--]--></div><span class="ctl-val" data-v-5b974b95></span></div><p class="ctl-sec" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.secEnv"))}</p><div class="ctl-row" data-v-5b974b95><span class="ctl-name" data-v-5b974b95>${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-5b974b95><span class="ctl-val" data-v-5b974b95>${ssrInterpolate(Math.round(unref(exposure) * 100))}%</span></div><div class="ctl-row" data-v-5b974b95><span class="ctl-name" data-v-5b974b95>${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-5b974b95><span class="ctl-val" data-v-5b974b95>${ssrInterpolate(Math.round(unref(tintOpacity) * 100))}%</span></div><div class="ctl-row" data-v-5b974b95><span class="ctl-name" data-v-5b974b95>${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-5b974b95><span class="ctl-val" data-v-5b974b95>${ssrInterpolate(unref(threshPct))}%</span></div><div class="ctl-row" data-v-5b974b95><span class="ctl-name"${ssrRenderAttr("title", _ctx.$t("townView.kz71l1f012"))} data-v-5b974b95>${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-5b974b95><span class="ctl-val" data-v-5b974b95>${ssrInterpolate(unref(calloutNearDist) === 0 ? _ctx.$t("townView.k493s144") : `${unref(calloutNearDist)}`)}</span></div><p class="ctl-sec" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.secOps"))}</p><div class="ctl-row" data-v-5b974b95><span class="ctl-name" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1idc6pa065"))}</span><button class="${ssrRenderClass([{ on: unref(snap) }, "snap-toggle"])}" data-v-5b974b95>${ssrInterpolate(unref(snap) ? _ctx.$t("townView.k4bs5145") : _ctx.$t("townView.k493s144"))}</button><span class="ctl-val" data-v-5b974b95></span></div><div class="ctl-btns" data-v-5b974b95><button class="btn btn-primary" data-v-5b974b95>${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-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1b3bk8t029"))}</button><button class="${ssrRenderClass([{ armed: unref(estop) }, "btn btn-danger"])}" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1i046wf066"))}</button></div></section><section class="dock-card" data-v-5b974b95><div class="dock-hd" data-v-5b974b95><h3 data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1kfoef9067"))}</h3><span class="dock-count mono" data-v-5b974b95>${ssrInterpolate(unref(daqTwins).length)}</span><div class="${ssrRenderClass([{ expanded: unref(trendExpanded) }, "trend-legend"])}" data-v-5b974b95><!--[-->`);
|
|
2430
2431
|
ssrRenderList(unref(trendChips), (t) => {
|
|
2431
|
-
_push(`<button class="${ssrRenderClass([{ off: !trendOn(t.id) }, "lg-chip"])}" data-v-
|
|
2432
|
+
_push(`<button class="${ssrRenderClass([{ off: !trendOn(t.id) }, "lg-chip"])}" data-v-5b974b95><span class="lg-dot" style="${ssrRenderStyle({ background: trendColor(t.id) })}" data-v-5b974b95></span>${ssrInterpolate(t.name)}</button>`);
|
|
2432
2433
|
});
|
|
2433
2434
|
_push(`<!--]-->`);
|
|
2434
|
-
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-
|
|
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-5b974b95>${ssrInterpolate(unref(trendExpanded) ? _ctx.$t("townView.trendCollapse") : `+${unref(trendOverflow)}`)}</button>`);
|
|
2435
2436
|
else _push(`<!---->`);
|
|
2436
|
-
_push(`</div></div><div class="trend-wrap" data-v-
|
|
2437
|
-
if (!unref(daqTwins).length) _push(`<span class="trend-empty" data-v-
|
|
2437
|
+
_push(`</div></div><div class="trend-wrap" data-v-5b974b95><canvas class="trend-cv" data-v-5b974b95></canvas>`);
|
|
2438
|
+
if (!unref(daqTwins).length) _push(`<span class="trend-empty" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1uht2uv068"))}</span>`);
|
|
2438
2439
|
else _push(`<!---->`);
|
|
2439
|
-
_push(`</div></section></div></main><aside class="rail rail-right" data-v-
|
|
2440
|
+
_push(`</div></section></div></main><aside class="rail rail-right" data-v-5b974b95>`);
|
|
2440
2441
|
if (unref(selected)) {
|
|
2441
|
-
_push(`<section class="panel inspector" data-v-
|
|
2442
|
-
if (unref(selected).kind === "device" && unref(selectedIsDaq)) _push(`<span class="ins-chip accent" data-v-
|
|
2443
|
-
else if (unref(selected).kind === "device" && unref(selectedIsDcw)) _push(`<span class="ins-chip accent" data-v-
|
|
2442
|
+
_push(`<section class="panel inspector" data-v-5b974b95><div class="panel-hd" data-v-5b974b95><h3 data-v-5b974b95>${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-5b974b95> ✕ </button></div><div class="ins-chip-row" data-v-5b974b95><span class="ins-chip mono" data-v-5b974b95>${ssrInterpolate(unref(selected).id.slice(0, 8))}</span>`);
|
|
2443
|
+
if (unref(selected).kind === "device" && unref(selectedIsDaq)) _push(`<span class="ins-chip accent" data-v-5b974b95>DAQ</span>`);
|
|
2444
|
+
else if (unref(selected).kind === "device" && unref(selectedIsDcw)) _push(`<span class="ins-chip accent" data-v-5b974b95>DCW</span>`);
|
|
2444
2445
|
else _push(`<!---->`);
|
|
2445
2446
|
_push(`</div>`);
|
|
2446
2447
|
if (unref(selected).kind === "device") {
|
|
2447
2448
|
_push(`<!--[-->`);
|
|
2448
2449
|
if (unref(selectedIsDcw)) {
|
|
2449
|
-
_push(`<div class="daq-info" data-v-
|
|
2450
|
-
if (unref(dcwWriteErrs)[unref(selected).id]) _push(`<p class="dcw-err" data-v-
|
|
2450
|
+
_push(`<div class="daq-info" data-v-5b974b95><div class="daq-info-row" data-v-5b974b95><span data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1deqh0d069"))}</span><b class="cy" data-v-5b974b95>${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-5b974b95><span data-v-5b974b95>${ssrInterpolate(unref(selectedDcwWindow)?.src === "recipe" ? _ctx.$t("townView.kq2jssk147") : _ctx.$t("townView.k1iwj796179"))}</span><b class="${ssrRenderClass({ amber: unref(selectedDcwWindow)?.src === "recipe" })}" data-v-5b974b95>${ssrInterpolate(dcwWinLabel(unref(selectedDcwNode)))}</b></div><div class="daq-info-row" data-v-5b974b95><span data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1i8rtqt070"))}</span><b data-v-5b974b95>${ssrInterpolate(unref(selectedDcwDeviceName) || _ctx.$t("townView.k3own4q148"))}</b></div><div class="daq-bind-bar" data-v-5b974b95><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-5b974b95><button class="bind-add-btn"${ssrIncludeBooleanAttr(unref(dcwWriteDrafts)[unref(selected).id] == null || unref(dcwWriteDrafts)[unref(selected).id] === "") ? " disabled" : ""} data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.kwrbtn180"))}</button></div>`);
|
|
2451
|
+
if (unref(dcwWriteErrs)[unref(selected).id]) _push(`<p class="dcw-err" data-v-5b974b95>${ssrInterpolate(unref(dcwWriteErrs)[unref(selected).id])}</p>`);
|
|
2451
2452
|
else _push(`<!---->`);
|
|
2452
2453
|
if (unref(mode) === "edit") {
|
|
2453
|
-
_push(`<div class="daq-bind-bar" data-v-
|
|
2454
|
+
_push(`<div class="daq-bind-bar" data-v-5b974b95><select class="bind-select" data-v-5b974b95><option value="" data-v-5b974b95${ssrIncludeBooleanAttr(Array.isArray(unref(dcwBindPick)) ? ssrLooseContain(unref(dcwBindPick), "") : ssrLooseEqual(unref(dcwBindPick), "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("townView.kjo6ekr071"))}</option><!--[-->`);
|
|
2454
2455
|
ssrRenderList(unref(deviceTwins).twins.filter((x) => !isLegacyDaqTwin(x) && x.id !== (unref(selected)?.id ?? "")), (dv) => {
|
|
2455
|
-
_push(`<option${ssrRenderAttr("value", dv.id)} data-v-
|
|
2456
|
+
_push(`<option${ssrRenderAttr("value", dv.id)} data-v-5b974b95${ssrIncludeBooleanAttr(Array.isArray(unref(dcwBindPick)) ? ssrLooseContain(unref(dcwBindPick), dv.id) : ssrLooseEqual(unref(dcwBindPick), dv.id)) ? " selected" : ""}>${ssrInterpolate(dv.name)}</option>`);
|
|
2456
2457
|
});
|
|
2457
|
-
_push(`<!--]--></select><button class="bind-add-btn"${ssrIncludeBooleanAttr(!unref(selectedDcwDeviceName) && !unref(dcwBindPick)) ? " disabled" : ""} data-v-
|
|
2458
|
+
_push(`<!--]--></select><button class="bind-add-btn"${ssrIncludeBooleanAttr(!unref(selectedDcwDeviceName) && !unref(dcwBindPick)) ? " disabled" : ""} data-v-5b974b95>${ssrInterpolate(unref(selectedDcwDeviceName) ? _ctx.$t("townView.k479eh149") : _ctx.$t("townView.k452a8102"))}</button></div>`);
|
|
2458
2459
|
} else _push(`<!---->`);
|
|
2459
2460
|
_push(`</div>`);
|
|
2460
2461
|
} else if (unref(selectedIsDaq)) {
|
|
2461
|
-
_push(`<div class="daq-info" data-v-
|
|
2462
|
+
_push(`<div class="daq-info" data-v-5b974b95><div class="daq-info-row" data-v-5b974b95><span data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k3mv305072"))}</span><b class="cy" data-v-5b974b95>${ssrInterpolate(unref(selectedDaqSim) ? fmtDaq(unref(selectedDaqSim)) : "--")} ${ssrInterpolate(unref(selectedDaqSim)?.tpl.unit)}</b></div><div class="daq-info-row" data-v-5b974b95><span data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1faqmjb073"))}</span><b data-v-5b974b95>${ssrInterpolate(unref(selectedDaqSim)?.tpl.min)} ~ ${ssrInterpolate(unref(selectedDaqSim)?.tpl.max)}</b></div><div class="daq-info-row" data-v-5b974b95><span data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1i8rtqt070"))}</span><b data-v-5b974b95>${ssrInterpolate(unref(daqBoundDeviceName) || _ctx.$t("townView.k3own4q148"))}</b></div>`);
|
|
2462
2463
|
if (unref(mode) === "edit") {
|
|
2463
|
-
_push(`<div class="daq-bind-bar" data-v-
|
|
2464
|
+
_push(`<div class="daq-bind-bar" data-v-5b974b95><select class="bind-select" data-v-5b974b95><option value="" data-v-5b974b95${ssrIncludeBooleanAttr(Array.isArray(unref(bindPick)) ? ssrLooseContain(unref(bindPick), "") : ssrLooseEqual(unref(bindPick), "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("townView.kjo6ekr071"))}</option><!--[-->`);
|
|
2464
2465
|
ssrRenderList(unref(deviceTwins).twins.filter((x) => !isLegacyDaqTwin(x) && x.id !== (unref(selected)?.id ?? "")), (dv) => {
|
|
2465
|
-
_push(`<option${ssrRenderAttr("value", dv.id)} data-v-
|
|
2466
|
+
_push(`<option${ssrRenderAttr("value", dv.id)} data-v-5b974b95${ssrIncludeBooleanAttr(Array.isArray(unref(bindPick)) ? ssrLooseContain(unref(bindPick), dv.id) : ssrLooseEqual(unref(bindPick), dv.id)) ? " selected" : ""}>${ssrInterpolate(dv.name)}</option>`);
|
|
2466
2467
|
});
|
|
2467
|
-
_push(`<!--]--></select><button class="bind-add-btn"${ssrIncludeBooleanAttr(!unref(daqBoundDeviceName) && !unref(bindPick)) ? " disabled" : ""} data-v-
|
|
2468
|
+
_push(`<!--]--></select><button class="bind-add-btn"${ssrIncludeBooleanAttr(!unref(daqBoundDeviceName) && !unref(bindPick)) ? " disabled" : ""} data-v-5b974b95>${ssrInterpolate(unref(daqBoundDeviceName) ? _ctx.$t("townView.k479eh149") : _ctx.$t("townView.k452a8102"))}</button></div>`);
|
|
2468
2469
|
} else _push(`<!---->`);
|
|
2469
|
-
if (unref(mode) === "edit" && unref(selectedDaqNode)) _push(`<div class="daq-node-ctl" data-v-
|
|
2470
|
-
else _push(`<div class="ins-empty" data-v-
|
|
2470
|
+
if (unref(mode) === "edit" && unref(selectedDaqNode)) _push(`<div class="daq-node-ctl" data-v-5b974b95><div class="daq-info-row" data-v-5b974b95><span data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1l6g2ga074"))}</span><span class="daq-th-inputs" data-v-5b974b95><input${ssrRenderAttr("value", unref(daqIntervalDraft))} type="number" min="200" max="60000" step="100" class="daq-num" data-v-5b974b95><small data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1or92b075"))}</small></span></div><div class="daq-info-row" data-v-5b974b95><span data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k3x5tpx076"))}</span><span class="daq-th-inputs" data-v-5b974b95><input${ssrRenderAttr("value", unref(selectedDaqNode).warnLow)} type="number" step="any" class="daq-num" data-v-5b974b95> ~ <input${ssrRenderAttr("value", unref(selectedDaqNode).warnHigh)} type="number" step="any" class="daq-num" data-v-5b974b95></span></div><div class="daq-info-row" data-v-5b974b95><span data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1hjj0jf077"))}</span><span class="daq-th-inputs" data-v-5b974b95><input${ssrRenderAttr("value", unref(selectedDaqNode).min)} type="number" step="any" class="daq-num" data-v-5b974b95> ~ <input${ssrRenderAttr("value", unref(selectedDaqNode).max)} type="number" step="any" class="daq-num" data-v-5b974b95></span></div><div class="daq-info-row" data-v-5b974b95><span data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k48tki078"))}</span><button class="${ssrRenderClass([{ warn: unref(selectedDaqNode).enabled }, "bind-add-btn"])}" data-v-5b974b95>${ssrInterpolate(unref(selectedDaqNode).enabled ? _ctx.$t("townView.k1wv0nyo150") : _ctx.$t("townView.kh1586b180"))}</button></div><div class="daq-info-row" data-v-5b974b95><span data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k3xakp079"))}</span><button class="bind-add-btn danger"${ssrRenderAttr("title", _ctx.$t("townView.kpwutri014"))} data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1bpp30k080"))}</button></div></div>`);
|
|
2471
|
+
else _push(`<div class="ins-empty" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.kzk5dfx081"))}</div>`);
|
|
2471
2472
|
_push(`</div>`);
|
|
2472
2473
|
} else {
|
|
2473
|
-
_push(`<!--[--><div class="obj-row" data-v-
|
|
2474
|
+
_push(`<!--[--><div class="obj-row" data-v-5b974b95><span class="obj-label" data-v-5b974b95>${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-5b974b95></div><div class="obj-row" data-v-5b974b95><span class="obj-label" data-v-5b974b95>${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-5b974b95><!--[-->`);
|
|
2474
2475
|
ssrRenderList(unref(deviceModels), (m) => {
|
|
2475
|
-
_push(`<option${ssrRenderAttr("value", m.id)} data-v-
|
|
2476
|
+
_push(`<option${ssrRenderAttr("value", m.id)} data-v-5b974b95>${ssrInterpolate(m.name)}</option>`);
|
|
2476
2477
|
});
|
|
2477
|
-
_push(`<!--]--></select></div><div class="sect-hd" data-v-
|
|
2478
|
+
_push(`<!--]--></select></div><div class="sect-hd" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1vtyk05130"))} ${ssrInterpolate(unref(boundDaqRows).length)} ${ssrInterpolate(_ctx.$t("townView.k3vfpz5138"))}</div><!--[-->`);
|
|
2478
2479
|
ssrRenderList(unref(boundDaqRows), (r) => {
|
|
2479
|
-
_push(`<div class="bind-row" data-v-
|
|
2480
|
-
if (unref(mode) === "edit") _push(`<button class="bind-x"${ssrRenderAttr("title", _ctx.$t("townView.k1k73omv016"))} data-v-
|
|
2480
|
+
_push(`<div class="bind-row" data-v-5b974b95><span class="bind-ico" data-v-5b974b95><svg class="bind-svg" viewBox="0 0 24 24" data-v-5b974b95>${daqIcon(r.icon) ?? ""}</svg></span><span class="bind-meta" data-v-5b974b95><span class="bind-label" data-v-5b974b95>${ssrInterpolate(r.ch)}</span><span class="bind-val" data-v-5b974b95><b data-v-5b974b95>${ssrInterpolate(r.value)}</b> ${ssrInterpolate(r.unit)} · ${ssrInterpolate(r.name)}</span></span><canvas class="bind-spark" width="56" height="20" data-v-5b974b95></canvas>`);
|
|
2481
|
+
if (unref(mode) === "edit") _push(`<button class="bind-x"${ssrRenderAttr("title", _ctx.$t("townView.k1k73omv016"))} data-v-5b974b95> ✕ </button>`);
|
|
2481
2482
|
else _push(`<!---->`);
|
|
2482
2483
|
_push(`</div>`);
|
|
2483
2484
|
});
|
|
2484
2485
|
_push(`<!--]-->`);
|
|
2485
|
-
if (!unref(boundDaqRows).length) _push(`<div class="ins-empty" data-v-
|
|
2486
|
+
if (!unref(boundDaqRows).length) _push(`<div class="ins-empty" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.kgpuqhb084"))}</div>`);
|
|
2486
2487
|
else _push(`<!---->`);
|
|
2487
2488
|
if (unref(mode) === "edit") {
|
|
2488
|
-
_push(`<div class="bind-add-wrap" data-v-
|
|
2489
|
+
_push(`<div class="bind-add-wrap" data-v-5b974b95><button class="bind-add" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.kvm0lin085"))}</button>`);
|
|
2489
2490
|
if (unref(bindPopOpen)) {
|
|
2490
|
-
_push(`<div class="bind-pop" style="${ssrRenderStyle({ maxHeight: `${unref(bindPopMaxH)}px` })}" data-v-
|
|
2491
|
+
_push(`<div class="bind-pop" style="${ssrRenderStyle({ maxHeight: `${unref(bindPopMaxH)}px` })}" data-v-5b974b95><!--[-->`);
|
|
2491
2492
|
ssrRenderList(unref(daqTemplates), (tpl) => {
|
|
2492
2493
|
_push(`<!--[-->`);
|
|
2493
2494
|
if (unref(daqBindChoices)[tpl.id]?.length) {
|
|
2494
|
-
_push(`<div class="bp-group" data-v-
|
|
2495
|
+
_push(`<div class="bp-group" data-v-5b974b95><span class="bp-tpl" data-v-5b974b95>${ssrInterpolate(tpl.name)} · ${ssrInterpolate(tpl.ch)}</span><!--[-->`);
|
|
2495
2496
|
ssrRenderList(unref(daqBindChoices)[tpl.id], (c) => {
|
|
2496
|
-
_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-
|
|
2497
|
-
if (c.devName) _push(`<i class="bp-cur" data-v-
|
|
2498
|
-
else if (!c.placed) _push(`<i class="bp-cur" data-v-
|
|
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-5b974b95><svg class="bind-svg" viewBox="0 0 24 24" data-v-5b974b95>${daqIcon(c.tpl.icon) ?? ""}</svg><span data-v-5b974b95>${ssrInterpolate(c.name)}`);
|
|
2498
|
+
if (c.devName) _push(`<i class="bp-cur" data-v-5b974b95>→ ${ssrInterpolate(c.devName)}</i>`);
|
|
2499
|
+
else if (!c.placed) _push(`<i class="bp-cur" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k2bindr0009"))}</i>`);
|
|
2499
2500
|
else _push(`<!---->`);
|
|
2500
2501
|
_push(`</span></button>`);
|
|
2501
2502
|
});
|
|
@@ -2504,40 +2505,40 @@ var TownView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
2504
2505
|
_push(`<!--]-->`);
|
|
2505
2506
|
});
|
|
2506
2507
|
_push(`<!--]-->`);
|
|
2507
|
-
if (!unref(daqBindChoiceCount)) _push(`<div class="bp-empty" data-v-
|
|
2508
|
+
if (!unref(daqBindChoiceCount)) _push(`<div class="bp-empty" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k2bindr0010"))}</div>`);
|
|
2508
2509
|
else _push(`<!---->`);
|
|
2509
2510
|
_push(`</div>`);
|
|
2510
2511
|
} else _push(`<!---->`);
|
|
2511
2512
|
_push(`</div>`);
|
|
2512
2513
|
} else _push(`<!---->`);
|
|
2513
|
-
_push(`<div class="sect-hd" data-v-
|
|
2514
|
+
_push(`<div class="sect-hd" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.ktzir2t131"))} ${ssrInterpolate(unref(boundDcwRows).length)} ${ssrInterpolate(_ctx.$t("townView.k4l1w042"))}</div><!--[-->`);
|
|
2514
2515
|
ssrRenderList(unref(boundDcwRows), (r) => {
|
|
2515
|
-
_push(`<div class="dcw-row" data-v-
|
|
2516
|
-
if (r.rMin != null || r.rMax != null) _push(`<i class="dcw-tag" data-v-
|
|
2516
|
+
_push(`<div class="dcw-row" data-v-5b974b95><div class="dcw-top" data-v-5b974b95><span class="bind-ico" data-v-5b974b95><svg class="bind-svg" viewBox="0 0 24 24" data-v-5b974b95>${daqIcon(r.icon) ?? ""}</svg></span><span class="dcw-id" data-v-5b974b95><span class="bind-label" data-v-5b974b95>${ssrInterpolate(r.ch)}`);
|
|
2517
|
+
if (r.rMin != null || r.rMax != null) _push(`<i class="dcw-tag" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k48grv086"))}</i>`);
|
|
2517
2518
|
else _push(`<!---->`);
|
|
2518
|
-
_push(`</span><span class="dcw-name" data-v-
|
|
2519
|
-
if (unref(mode) === "edit") _push(`<button class="bind-x"${ssrRenderAttr("title", _ctx.$t("townView.k1k73omv016"))} data-v-
|
|
2519
|
+
_push(`</span><span class="dcw-name" data-v-5b974b95>${ssrInterpolate(r.name)}</span></span><span class="dcw-cur" data-v-5b974b95><b data-v-5b974b95>${ssrInterpolate(r.value != null ? r.value.toFixed(r.decimals) : "--")}</b><i data-v-5b974b95>${ssrInterpolate(r.unit)}</i></span>`);
|
|
2520
|
+
if (unref(mode) === "edit") _push(`<button class="bind-x"${ssrRenderAttr("title", _ctx.$t("townView.k1k73omv016"))} data-v-5b974b95> ✕ </button>`);
|
|
2520
2521
|
else _push(`<!---->`);
|
|
2521
|
-
_push(`</div><div class="${ssrRenderClass([{ recipe: r.rMin != null || r.rMax != null }, "dcw-win"])}" data-v-
|
|
2522
|
-
if (unref(dcwWriteErrs)[r.dcwId]) _push(`<small class="dcw-err" data-v-
|
|
2522
|
+
_push(`</div><div class="${ssrRenderClass([{ recipe: r.rMin != null || r.rMax != null }, "dcw-win"])}" data-v-5b974b95><em data-v-5b974b95>${ssrInterpolate(r.rMin != null || r.rMax != null ? _ctx.$t("townView.k1l3m0hx151") : _ctx.$t("townView.k1bc6rqf181"))}</em><span class="dcw-win-num" data-v-5b974b95>${ssrInterpolate(r.rMin ?? "-∞")}</span><span class="dcw-win-track" data-v-5b974b95><i style="${ssrRenderStyle({ left: `${dcwMarkPct(r)}%` })}" data-v-5b974b95></i></span><span class="dcw-win-num" data-v-5b974b95>${ssrInterpolate(r.rMax ?? "+∞")}</span></div><div class="dcw-write" data-v-5b974b95><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-5b974b95><button class="dcw-send"${ssrIncludeBooleanAttr(unref(dcwWriteDrafts)[r.dcwId] == null || unref(dcwWriteDrafts)[r.dcwId] === "") ? " disabled" : ""}${ssrRenderAttr("title", _ctx.$t("townView.k15t7izc017"))} data-v-5b974b95> write </button></div>`);
|
|
2523
|
+
if (unref(dcwWriteErrs)[r.dcwId]) _push(`<small class="dcw-err" data-v-5b974b95>${ssrInterpolate(unref(dcwWriteErrs)[r.dcwId])}</small>`);
|
|
2523
2524
|
else _push(`<!---->`);
|
|
2524
2525
|
_push(`</div>`);
|
|
2525
2526
|
});
|
|
2526
2527
|
_push(`<!--]-->`);
|
|
2527
|
-
if (!unref(boundDcwRows).length) _push(`<div class="ins-empty" data-v-
|
|
2528
|
+
if (!unref(boundDcwRows).length) _push(`<div class="ins-empty" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k10smf24087"))}</div>`);
|
|
2528
2529
|
else _push(`<!---->`);
|
|
2529
2530
|
if (unref(mode) === "edit") {
|
|
2530
|
-
_push(`<div class="bind-add-wrap" data-v-
|
|
2531
|
+
_push(`<div class="bind-add-wrap" data-v-5b974b95><button class="bind-add" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.kvk1vh5088"))}</button>`);
|
|
2531
2532
|
if (unref(dcwBindPopOpen)) {
|
|
2532
|
-
_push(`<div class="bind-pop" style="${ssrRenderStyle({ maxHeight: `${unref(bindPopMaxH)}px` })}" data-v-
|
|
2533
|
+
_push(`<div class="bind-pop" style="${ssrRenderStyle({ maxHeight: `${unref(bindPopMaxH)}px` })}" data-v-5b974b95><!--[-->`);
|
|
2533
2534
|
ssrRenderList(unref(dcwTemplates), (tpl) => {
|
|
2534
2535
|
_push(`<!--[-->`);
|
|
2535
2536
|
if (unref(dcwBindChoices)[tpl.id]?.length) {
|
|
2536
|
-
_push(`<div class="bp-group" data-v-
|
|
2537
|
+
_push(`<div class="bp-group" data-v-5b974b95><span class="bp-tpl" data-v-5b974b95>${ssrInterpolate(tpl.name)} · ${ssrInterpolate(tpl.ch)}</span><!--[-->`);
|
|
2537
2538
|
ssrRenderList(unref(dcwBindChoices)[tpl.id], (c) => {
|
|
2538
|
-
_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-
|
|
2539
|
-
if (c.devName) _push(`<i class="bp-cur" data-v-
|
|
2540
|
-
else if (!c.placed) _push(`<i class="bp-cur" data-v-
|
|
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-5b974b95><svg class="bind-svg" viewBox="0 0 24 24" data-v-5b974b95>${daqIcon(c.tpl.icon) ?? ""}</svg><span data-v-5b974b95>${ssrInterpolate(c.name)}`);
|
|
2540
|
+
if (c.devName) _push(`<i class="bp-cur" data-v-5b974b95>→ ${ssrInterpolate(c.devName)}</i>`);
|
|
2541
|
+
else if (!c.placed) _push(`<i class="bp-cur" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k2bindr0009"))}</i>`);
|
|
2541
2542
|
else _push(`<!---->`);
|
|
2542
2543
|
_push(`</span></button>`);
|
|
2543
2544
|
});
|
|
@@ -2546,121 +2547,121 @@ var TownView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
2546
2547
|
_push(`<!--]-->`);
|
|
2547
2548
|
});
|
|
2548
2549
|
_push(`<!--]-->`);
|
|
2549
|
-
if (!unref(dcwBindChoiceCount)) _push(`<div class="bp-empty" data-v-
|
|
2550
|
+
if (!unref(dcwBindChoiceCount)) _push(`<div class="bp-empty" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k2bindr0010"))}</div>`);
|
|
2550
2551
|
else _push(`<!---->`);
|
|
2551
2552
|
_push(`</div>`);
|
|
2552
2553
|
} else _push(`<!---->`);
|
|
2553
2554
|
_push(`</div>`);
|
|
2554
2555
|
} else _push(`<!---->`);
|
|
2555
|
-
if (unref(mode) === "edit") _push(`<!--[--><div class="sect-hd" data-v-
|
|
2556
|
-
else _push(`<div class="ins-empty" data-v-
|
|
2556
|
+
if (unref(mode) === "edit") _push(`<!--[--><div class="sect-hd" data-v-5b974b95> 变换 · BLENDER </div><div class="xz-seg" data-v-5b974b95><button class="${ssrRenderClass([{ on: unref(tMode) === "translate" }, "seg-btn"])}" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1hg3167089"))}</button><button class="${ssrRenderClass([{ on: unref(tMode) === "rotate" }, "seg-btn"])}" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1enlg7i090"))}</button><button class="${ssrRenderClass([{ on: unref(tMode) === "scale" }, "seg-btn"])}" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1ibjg3j091"))}</button></div><div class="scale-row" data-v-5b974b95><span class="scale-min" data-v-5b974b95>0.2×</span><input class="scale-range" type="range" min="0.2" max="5" step="0.05"${ssrRenderAttr("value", unref(selected).scale)} data-v-5b974b95><span class="scale-max" data-v-5b974b95>5×</span></div><div class="scale-val" data-v-5b974b95>${ssrInterpolate(Math.round(unref(selected).scale * 100))}% </div><div class="ins-foot" data-v-5b974b95><button class="${ssrRenderClass([{ armed: unref(deviceDeleteArmed) === unref(selected).id }, "btn btn-danger ins-del"])}" data-v-5b974b95>${ssrInterpolate(unref(deviceDeleteArmed) === unref(selected).id ? _ctx.$t("townView.k1w10xa5152") : _ctx.$t("townView.k121kfef182"))}</button></div><!--]-->`);
|
|
2557
|
+
else _push(`<div class="ins-empty" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.kt0i3y2092"))}</div>`);
|
|
2557
2558
|
_push(`<!--]-->`);
|
|
2558
2559
|
}
|
|
2559
2560
|
_push(`<!--]-->`);
|
|
2560
2561
|
} else if (unref(selected).kind === "agent") {
|
|
2561
|
-
_push(`<!--[--><div class="chat-id-row" data-v-
|
|
2562
|
-
if (unref(selectedAgentMeta)?.harness) _push(`<span class="chat-harness" data-v-
|
|
2562
|
+
_push(`<!--[--><div class="chat-id-row" data-v-5b974b95><span class="chat-badge" style="${ssrRenderStyle({ "--p-acc": unref(agentChatColor) })}" data-v-5b974b95>${ssrInterpolate(unref(agentChatTitle).slice(0, 1).toUpperCase())}</span><div class="chat-nameplate" data-v-5b974b95><span class="chat-name" data-v-5b974b95>${ssrInterpolate(unref(agentChatTitle))}</span><span class="chat-meta" data-v-5b974b95><span class="${ssrRenderClass([unref(selectedAgentMeta)?.role === "lead" ? "r-lead" : "r-worker", "chat-role"])}" data-v-5b974b95>${ssrInterpolate(unref(selectedAgentRoleTag))}</span><span class="${ssrRenderClass([`s-${unref(selectedAgentMeta)?.state ?? "idle"}`, "chat-state"])}" data-v-5b974b95>${ssrInterpolate(unref(agentChatStateLabel))}</span>`);
|
|
2563
|
+
if (unref(selectedAgentMeta)?.harness) _push(`<span class="chat-harness" data-v-5b974b95>${ssrInterpolate(unref(selectedAgentMeta).harness.toUpperCase())}</span>`);
|
|
2563
2564
|
else _push(`<!---->`);
|
|
2564
|
-
_push(`<span class="chat-count" data-v-
|
|
2565
|
+
_push(`<span class="chat-count" data-v-5b974b95>${ssrInterpolate(unref(agentHistory).length + unref(agentChatRows).length)} ${ssrInterpolate(_ctx.$t("townView.k4dfq040"))}</span></span></div></div><div class="obj-row" data-v-5b974b95><span class="obj-label" data-v-5b974b95>${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-5b974b95><!--[-->`);
|
|
2565
2566
|
ssrRenderList(unref(agentModels), (m) => {
|
|
2566
|
-
_push(`<option${ssrRenderAttr("value", m.id)} data-v-
|
|
2567
|
+
_push(`<option${ssrRenderAttr("value", m.id)} data-v-5b974b95>${ssrInterpolate(m.name)}</option>`);
|
|
2567
2568
|
});
|
|
2568
|
-
_push(`<!--]--></select></div><div class="obj-sep" data-v-
|
|
2569
|
-
if (unref(mode) === "edit") _push(`<button class="${ssrRenderClass([{ on: unref(agentDrawingRange) }, "obj-mini"])}"${ssrRenderAttr("title", _ctx.$t("townView.k13enoy3018"))} data-v-
|
|
2569
|
+
_push(`<!--]--></select></div><div class="obj-sep" data-v-5b974b95></div><div class="obj-row" data-v-5b974b95><span class="obj-label" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1fix3hb093"))}</span><span class="range-status" data-v-5b974b95>${ssrInterpolate(unref(agentRangeStatusText))}</span>`);
|
|
2570
|
+
if (unref(mode) === "edit") _push(`<button class="${ssrRenderClass([{ on: unref(agentDrawingRange) }, "obj-mini"])}"${ssrRenderAttr("title", _ctx.$t("townView.k13enoy3018"))} data-v-5b974b95>${ssrInterpolate(unref(agentDrawingRange) ? _ctx.$t("townView.k3slzhc153") : _ctx.$t("townView.k1f1xmci183"))}</button>`);
|
|
2570
2571
|
else _push(`<!---->`);
|
|
2571
|
-
_push(`</div><div class="obj-sep" data-v-
|
|
2572
|
+
_push(`</div><div class="obj-sep" data-v-5b974b95></div><div class="sect-hd" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1p7nru2094"))}</div><!--[-->`);
|
|
2572
2573
|
ssrRenderList(unref(agentBindings), (b) => {
|
|
2573
|
-
_push(`<div class="bind-row" data-v-
|
|
2574
|
+
_push(`<div class="bind-row" data-v-5b974b95><span class="${ssrRenderClass([b.kind === "dcw" ? "accent" : "", "ins-chip"])}" style="${ssrRenderStyle({ "flex": "none" })}" data-v-5b974b95>${ssrInterpolate(b.kind === "dcw" ? _ctx.$t("townView.k40ifw097") : _ctx.$t("townView.k40rjw098"))}</span><span class="bind-meta" data-v-5b974b95><span class="bind-label" data-v-5b974b95>${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-5b974b95><option value="auto" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1io1ylm095"))}</option><option value="manual" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1duyr8q096"))}</option></select></span><button class="bind-x"${ssrRenderAttr("title", _ctx.$t("townView.k1k73omv016"))} data-v-5b974b95> ✕ </button></div>`);
|
|
2574
2575
|
});
|
|
2575
2576
|
_push(`<!--]-->`);
|
|
2576
|
-
if (!unref(agentBindings).length) _push(`<div class="ins-empty" data-v-
|
|
2577
|
+
if (!unref(agentBindings).length) _push(`<div class="ins-empty" data-v-5b974b95> 未绑定工业节点 —— 绑定后 Agent 可用 dcw_control / daq_query 工具 </div>`);
|
|
2577
2578
|
else _push(`<!---->`);
|
|
2578
2579
|
if (unref(mode) === "edit") {
|
|
2579
|
-
_push(`<div class="daq-bind-bar" style="${ssrRenderStyle({ "margin-bottom": "8px" })}" data-v-
|
|
2580
|
+
_push(`<div class="daq-bind-bar" style="${ssrRenderStyle({ "margin-bottom": "8px" })}" data-v-5b974b95><select class="bind-select" style="${ssrRenderStyle({
|
|
2580
2581
|
"flex": "none",
|
|
2581
2582
|
"width": "62px"
|
|
2582
|
-
})}" data-v-
|
|
2583
|
+
})}" data-v-5b974b95><option value="dcw" data-v-5b974b95${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-5b974b95${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-5b974b95><option value="" data-v-5b974b95${ssrIncludeBooleanAttr(Array.isArray(unref(agentBindNodeId)) ? ssrLooseContain(unref(agentBindNodeId), "") : ssrLooseEqual(unref(agentBindNodeId), "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("townView.kurjldk099"))}</option>`);
|
|
2583
2584
|
if (unref(agentBindKind) === "dcw") {
|
|
2584
2585
|
_push(`<!--[-->`);
|
|
2585
2586
|
ssrRenderList(unref(dcw).nodes, (n) => {
|
|
2586
|
-
_push(`<option${ssrRenderAttr("value", n.id)} data-v-
|
|
2587
|
+
_push(`<option${ssrRenderAttr("value", n.id)} data-v-5b974b95${ssrIncludeBooleanAttr(Array.isArray(unref(agentBindNodeId)) ? ssrLooseContain(unref(agentBindNodeId), n.id) : ssrLooseEqual(unref(agentBindNodeId), n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}</option>`);
|
|
2587
2588
|
});
|
|
2588
2589
|
_push(`<!--]-->`);
|
|
2589
2590
|
} else {
|
|
2590
2591
|
_push(`<!--[-->`);
|
|
2591
2592
|
ssrRenderList(unref(daq).nodes, (n) => {
|
|
2592
|
-
_push(`<option${ssrRenderAttr("value", n.id)} data-v-
|
|
2593
|
+
_push(`<option${ssrRenderAttr("value", n.id)} data-v-5b974b95${ssrIncludeBooleanAttr(Array.isArray(unref(agentBindNodeId)) ? ssrLooseContain(unref(agentBindNodeId), n.id) : ssrLooseEqual(unref(agentBindNodeId), n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}</option>`);
|
|
2593
2594
|
});
|
|
2594
2595
|
_push(`<!--]-->`);
|
|
2595
2596
|
}
|
|
2596
2597
|
_push(`</select><select class="bind-select" style="${ssrRenderStyle({
|
|
2597
2598
|
"flex": "none",
|
|
2598
2599
|
"width": "76px"
|
|
2599
|
-
})}" data-v-
|
|
2600
|
+
})}" data-v-5b974b95><option value="auto" data-v-5b974b95${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-5b974b95${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-5b974b95>${ssrInterpolate(_ctx.$t("townView.k452a8102"))}</button></div>`);
|
|
2600
2601
|
} else _push(`<!---->`);
|
|
2601
2602
|
if (unref(pendingApprovals).length) {
|
|
2602
|
-
_push(`<!--[--><div class="sect-hd" style="${ssrRenderStyle({ "color": "var(--hud-amber)" })}" data-v-
|
|
2603
|
+
_push(`<!--[--><div class="sect-hd" style="${ssrRenderStyle({ "color": "var(--hud-amber)" })}" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1gk2jg7132"))} ${ssrInterpolate(unref(pendingApprovals).length)}</div><!--[-->`);
|
|
2603
2604
|
ssrRenderList(unref(pendingApprovals), (ap) => {
|
|
2604
|
-
_push(`<div class="approval-card" data-v-
|
|
2605
|
+
_push(`<div class="approval-card" data-v-5b974b95><div class="approval-detail" data-v-5b974b95>${ssrInterpolate(ap.detail)}</div><div class="${ssrRenderClass([{ urgent: approvalRemainingSec(ap) <= 30 }, "approval-ttl"])}" data-v-5b974b95> ⏱ ${ssrInterpolate(approvalRemainingSec(ap))}s ${ssrInterpolate(_ctx.$t("townView.hitlAutoReject"))}</div><input${ssrRenderAttr("value", unref(approvalComments)[ap.id])} class="dcw-write input-inline" style="${ssrRenderStyle({
|
|
2605
2606
|
"width": "100%",
|
|
2606
2607
|
"margin-top": "5px"
|
|
2607
|
-
})}"${ssrRenderAttr("placeholder", _ctx.$t("townView.keztqrn020"))} data-v-
|
|
2608
|
+
})}"${ssrRenderAttr("placeholder", _ctx.$t("townView.keztqrn020"))} data-v-5b974b95><div class="daq-bind-bar" style="${ssrRenderStyle({ "margin-top": "5px" })}" data-v-5b974b95><button class="bind-add-btn" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.kslcozu103"))}</button><button class="bind-add-btn danger" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k14gu3rd104"))}</button></div></div>`);
|
|
2608
2609
|
});
|
|
2609
2610
|
_push(`<!--]--><!--]-->`);
|
|
2610
2611
|
} else _push(`<!---->`);
|
|
2611
|
-
if (unref(agentRangeDraft) && unref(mode) === "edit") _push(`<!--[--><div class="obj-row" data-v-
|
|
2612
|
-
else _push(`<div class="ins-empty" data-v-
|
|
2613
|
-
_push(`<div class="obj-sep" data-v-
|
|
2614
|
-
if (unref(historyLoading)) _push(`<div class="rpg-note" data-v-
|
|
2612
|
+
if (unref(agentRangeDraft) && unref(mode) === "edit") _push(`<!--[--><div class="obj-row" data-v-5b974b95><span class="obj-label" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k3zhy5048"))}</span><div class="bp-seg" data-v-5b974b95><button class="${ssrRenderClass([{ on: unref(agentRangeDraft).shape === "ellipse" }, "seg-btn"])}" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k414bc049"))}</button><button class="${ssrRenderClass([{ on: unref(agentRangeDraft).shape === "rect" }, "seg-btn"])}" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k43u0g050"))}</button></div></div><div class="obj-row" data-v-5b974b95><span class="obj-label" data-v-5b974b95>${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-5b974b95><span class="bp-val" data-v-5b974b95>${ssrInterpolate(Math.round(unref(agentRangeDraft).radiusX))}</span></div><div class="obj-row" data-v-5b974b95><span class="obj-label" data-v-5b974b95>${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-5b974b95><span class="bp-val" data-v-5b974b95>${ssrInterpolate(Math.round(unref(agentRangeDraft).radiusZ))}</span></div><button class="obj-mini danger" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1w45mzc107"))}</button><!--]-->`);
|
|
2613
|
+
else _push(`<div class="ins-empty" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k14s8urm108"))}</div>`);
|
|
2614
|
+
_push(`<div class="obj-sep" data-v-5b974b95></div><div class="sect-hd chat-sect" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1ghjbfc133"))} ${ssrInterpolate(unref(agentChatTitle))} <button class="mini-btn chat-refresh"${ssrRenderAttr("title", _ctx.$t("townView.k15avt7g021"))} data-v-5b974b95>${ssrInterpolate(unref(historyLoading) ? "…" : "↻")}</button></div><div class="rpg-lines chat-embed" data-v-5b974b95>`);
|
|
2615
|
+
if (unref(historyLoading)) _push(`<div class="rpg-note" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.kkhlx5h109"))}</div>`);
|
|
2615
2616
|
else _push(`<!---->`);
|
|
2616
2617
|
if (unref(agentHistory).length) {
|
|
2617
|
-
_push(`<!--[--><div class="rpg-divider" data-v-
|
|
2618
|
+
_push(`<!--[--><div class="rpg-divider" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k768cnt134"))} ${ssrInterpolate(unref(agentHistory).length)}</div><!--[-->`);
|
|
2618
2619
|
ssrRenderList(unref(agentHistory), (r) => {
|
|
2619
|
-
_push(`<div class="rpg-line hist" data-v-
|
|
2620
|
-
if (chatKindLabel(r.kind)) _push(`<span class="${ssrRenderClass([`k-${r.kind}`, "rpg-kind"])}" data-v-
|
|
2620
|
+
_push(`<div class="rpg-line hist" data-v-5b974b95><span class="rpg-time" data-v-5b974b95>${ssrInterpolate(fmtTime(r.at))}</span><div class="rpg-bubble" data-v-5b974b95>`);
|
|
2621
|
+
if (chatKindLabel(r.kind)) _push(`<span class="${ssrRenderClass([`k-${r.kind}`, "rpg-kind"])}" data-v-5b974b95>${ssrInterpolate(chatKindLabel(r.kind))}</span>`);
|
|
2621
2622
|
else _push(`<!---->`);
|
|
2622
|
-
_push(`<span class="rpg-text" data-v-
|
|
2623
|
+
_push(`<span class="rpg-text" data-v-5b974b95>${ssrInterpolate(r.text)}</span></div></div>`);
|
|
2623
2624
|
});
|
|
2624
2625
|
_push(`<!--]--><!--]-->`);
|
|
2625
2626
|
} else _push(`<!---->`);
|
|
2626
|
-
if (unref(agentChatRows).length) _push(`<div class="rpg-divider live" data-v-
|
|
2627
|
+
if (unref(agentChatRows).length) _push(`<div class="rpg-divider live" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1cwz73k135"))} ${ssrInterpolate(unref(agentChatRows).length)}</div>`);
|
|
2627
2628
|
else _push(`<!---->`);
|
|
2628
2629
|
_push(`<!--[-->`);
|
|
2629
2630
|
ssrRenderList(unref(agentChatRows), (r) => {
|
|
2630
|
-
_push(`<div class="rpg-line live" data-v-
|
|
2631
|
+
_push(`<div class="rpg-line live" data-v-5b974b95><span class="rpg-time" data-v-5b974b95>${ssrInterpolate(fmtTime(r.at))}</span><div class="rpg-bubble" data-v-5b974b95><span class="rpg-text" data-v-5b974b95>${ssrInterpolate(r.text)}</span></div></div>`);
|
|
2631
2632
|
});
|
|
2632
2633
|
_push(`<!--]-->`);
|
|
2633
|
-
if (unref(selectedAgentMeta)?.state === "busy") _push(`<div class="rpg-typing" data-v-
|
|
2634
|
+
if (unref(selectedAgentMeta)?.state === "busy") _push(`<div class="rpg-typing" data-v-5b974b95><span class="ty-dot" data-v-5b974b95></span><span class="ty-dot" data-v-5b974b95></span><span class="ty-dot" data-v-5b974b95></span><span class="ty-label" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k3o5tz9110"))}</span></div>`);
|
|
2634
2635
|
else _push(`<!---->`);
|
|
2635
|
-
if (!unref(historyLoading) && !unref(agentHistory).length && !unref(agentChatRows).length) _push(`<div class="rpg-note" data-v-
|
|
2636
|
+
if (!unref(historyLoading) && !unref(agentHistory).length && !unref(agentChatRows).length) _push(`<div class="rpg-note" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1qkqld7111"))}</div>`);
|
|
2636
2637
|
else _push(`<!---->`);
|
|
2637
2638
|
_push(`</div><!--]-->`);
|
|
2638
2639
|
} else _push(`<!---->`);
|
|
2639
2640
|
_push(`</section>`);
|
|
2640
2641
|
} else _push(`<!---->`);
|
|
2641
|
-
_push(`<section class="panel" data-v-
|
|
2642
|
+
_push(`<section class="panel" data-v-5b974b95><div class="panel-hd" data-v-5b974b95><h3 data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k17dkhgd112"))}</h3></div><div class="health-body" data-v-5b974b95><div class="donut-wrap" data-v-5b974b95><canvas width="118" height="118" data-v-5b974b95></canvas><div class="donut-center" data-v-5b974b95><b style="${ssrRenderStyle({ color: unref(healthTone) })}" data-v-5b974b95>${ssrInterpolate(unref(healthPct))}%</b><span data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k7h1nxo113"))}</span></div></div><div class="health-legend" data-v-5b974b95><div class="hl-row" data-v-5b974b95><span class="hl-dot" style="${ssrRenderStyle({ background: "var(--hud-accent)" })}" data-v-5b974b95></span> ${ssrInterpolate(_ctx.$t("townView.k3vp67i114"))} <span class="n" data-v-5b974b95>${ssrInterpolate(unref(runningCount))}</span></div><div class="hl-row" data-v-5b974b95><span class="hl-dot" style="${ssrRenderStyle({ background: "var(--hud-amber)" })}" data-v-5b974b95></span> ${ssrInterpolate(_ctx.$t("townView.k3zcvb115"))} <span class="n" data-v-5b974b95>${ssrInterpolate(unref(idleCount))}</span></div><div class="hl-row" data-v-5b974b95><span class="hl-dot" style="${ssrRenderStyle({ background: "var(--hud-danger)" })}" data-v-5b974b95></span> ${ssrInterpolate(_ctx.$t("townView.k3xmid116"))} <span class="n" data-v-5b974b95>${ssrInterpolate(unref(alarmCount))}</span></div><div class="hl-row" data-v-5b974b95><span class="hl-dot" style="${ssrRenderStyle({ background: "#3a4a63" })}" data-v-5b974b95></span> ${ssrInterpolate(_ctx.$t("townView.statesOffline"))} <span class="n" data-v-5b974b95>${ssrInterpolate(unref(offlineCount))}</span></div></div></div></section><section class="panel" data-v-5b974b95><div class="panel-hd" data-v-5b974b95><h3 data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1q247fn117"))}</h3><span class="panel-tag" data-v-5b974b95>${ssrInterpolate(unref(deviceTwins).twins.length)}</span></div>`);
|
|
2642
2643
|
_push(ssrRenderComponent(_component_WorkshopDeviceTwinPanel, {
|
|
2643
2644
|
class: "kd-embed",
|
|
2644
2645
|
"daq-live": unref(daqLive),
|
|
2645
2646
|
"dcw-live": unref(dcwLive),
|
|
2646
2647
|
onFocusDevice
|
|
2647
2648
|
}, null, _parent));
|
|
2648
|
-
_push(`</section><section class="panel" data-v-
|
|
2649
|
+
_push(`</section><section class="panel" data-v-5b974b95><div class="panel-hd" data-v-5b974b95><h3 data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1cxf749118"))}</h3><span class="panel-tag" data-v-5b974b95>${ssrInterpolate(unref(activeAlarmCount))} ${ssrInterpolate(_ctx.$t("townView.k4dfq040"))}</span><button class="mini-btn"${ssrRenderAttr("title", _ctx.$t("townView.k1bkswpz022"))} data-v-5b974b95> ✓ </button></div><div class="alarm-list" data-v-5b974b95><!--[-->`);
|
|
2649
2650
|
ssrRenderList(unref(alarms).slice(0, 8), (a) => {
|
|
2650
|
-
_push(`<div class="al-row" data-v-
|
|
2651
|
+
_push(`<div class="al-row" data-v-5b974b95><span class="${ssrRenderClass([a.state === 2 ? "info" : a.state === 1 ? "warn" : "crit", "al-ico"])}" data-v-5b974b95><svg class="al-svg" viewBox="0 0 24 24" data-v-5b974b95><path d="M12 3 22 20H2L12 3Z" data-v-5b974b95></path><path d="M12 10v4M12 17v.2" data-v-5b974b95></path></svg></span><div class="al-body" data-v-5b974b95><div class="al-txt" data-v-5b974b95>${ssrInterpolate(a.txt)}</div><div class="al-src" data-v-5b974b95>${ssrInterpolate(a.src)} · ${ssrInterpolate(a.time)}</div></div><button class="${ssrRenderClass([`s${a.state}`, "al-state"])}" data-v-5b974b95>${ssrInterpolate(ALARM_STATES[a.state])}</button></div>`);
|
|
2651
2652
|
});
|
|
2652
2653
|
_push(`<!--]-->`);
|
|
2653
|
-
if (!unref(alarms).length) _push(`<div class="rail-empty" data-v-
|
|
2654
|
+
if (!unref(alarms).length) _push(`<div class="rail-empty" data-v-5b974b95><svg class="re-ico" viewBox="0 0 24 24" data-v-5b974b95><path d="M12 3l7 3v5c0 4.6-3 8.2-7 10-4-1.8-7-5.4-7-10V6l7-3Z" data-v-5b974b95></path><path d="m9.2 12.2 2 2 3.6-4" data-v-5b974b95></path></svg><span data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.kjz544r119"))}</span></div>`);
|
|
2654
2655
|
else _push(`<!---->`);
|
|
2655
|
-
_push(`</div></section><section class="panel" data-v-
|
|
2656
|
+
_push(`</div></section><section class="panel" data-v-5b974b95><div class="panel-hd" data-v-5b974b95><h3 data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k1cxdtq2120"))}</h3><span class="panel-tag" data-v-5b974b95>${ssrInterpolate(unref(ticker).length)}</span></div><div class="event-list" data-v-5b974b95><!--[-->`);
|
|
2656
2657
|
ssrRenderList([...unref(ticker)].reverse(), (t, i) => {
|
|
2657
|
-
_push(`<div class="event-row" data-v-
|
|
2658
|
+
_push(`<div class="event-row" data-v-5b974b95><span class="ev-time" data-v-5b974b95>${ssrInterpolate(fmtTime(t.at))}</span><span class="ev-name"${ssrRenderAttr("title", t.agentName)} data-v-5b974b95>${ssrInterpolate(t.agentName)}</span><span class="ev-text"${ssrRenderAttr("title", t.text)} data-v-5b974b95>${ssrInterpolate(t.text)}</span></div>`);
|
|
2658
2659
|
});
|
|
2659
2660
|
_push(`<!--]-->`);
|
|
2660
|
-
if (!unref(ticker).length) _push(`<div class="rail-empty" data-v-
|
|
2661
|
+
if (!unref(ticker).length) _push(`<div class="rail-empty" data-v-5b974b95><svg class="re-ico" viewBox="0 0 24 24" data-v-5b974b95><path d="M3 12h3l2.5-6 4 12L15 12h6" data-v-5b974b95></path></svg><span data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.k2uk6ua121"))}</span></div>`);
|
|
2661
2662
|
else _push(`<!---->`);
|
|
2662
|
-
_push(`</div></section><section class="panel" data-v-
|
|
2663
|
-
if (!unref(ready)) _push(`<div data-hud="town-loading" class="loading-mask" data-v-
|
|
2663
|
+
_push(`</div></section><section class="panel" data-v-5b974b95><div class="panel-hd" data-v-5b974b95><h3 data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.kjug2jq122"))}</h3></div><div class="mm-body" data-v-5b974b95><div class="mm-wrap"${ssrRenderAttr("title", _ctx.$t("townView.klfwiqg023"))} data-v-5b974b95><canvas class="nav-cv" data-v-5b974b95></canvas></div><div class="mm-col" data-v-5b974b95><button class="vp-tool"${ssrRenderAttr("title", _ctx.$t("townView.k1lap9bs024"))} data-v-5b974b95><svg class="vp-svg" viewBox="0 0 24 24" data-v-5b974b95><path d="M3 12a9 9 0 1 0 3-6.7M3 4v5h5" data-v-5b974b95></path></svg></button><button class="vp-tool"${ssrRenderAttr("title", _ctx.$t("townView.kav8a8k025"))} data-v-5b974b95><svg class="vp-svg" viewBox="0 0 24 24" data-v-5b974b95><circle cx="11" cy="11" r="6.5" data-v-5b974b95></circle><path d="m16 16 4.5 4.5M8.5 11h5" data-v-5b974b95></path></svg></button><button class="vp-tool"${ssrRenderAttr("title", _ctx.$t("townView.k1u7uce9026"))} data-v-5b974b95><svg class="vp-svg" viewBox="0 0 24 24" data-v-5b974b95><circle cx="11" cy="11" r="6.5" data-v-5b974b95></circle><path d="m16 16 4.5 4.5M8.5 11h5M11 8.5v5" data-v-5b974b95></path></svg></button></div></div><div class="mm-meta mono" data-v-5b974b95>${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-5b974b95><span data-v-5b974b95><span class="${ssrRenderClass([{ red: unref(conn).state !== "open" }, "sb-dot"])}" data-v-5b974b95></span>${ssrInterpolate(_ctx.$t("townView.k1i4g246123"))} <b data-v-5b974b95>${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-5b974b95>${ssrInterpolate(_ctx.$t("townView.k4a0jt124"))} <b data-v-5b974b95>${ssrInterpolate(unref(blockCount))}</b><i data-v-5b974b95>·</i>${ssrInterpolate(_ctx.$t("townView.k3xdvm125"))} <b data-v-5b974b95>${ssrInterpolate(unref(agentCount))}</b><i data-v-5b974b95>·</i>${ssrInterpolate(_ctx.$t("townView.k47e16126"))} <b data-v-5b974b95>${ssrInterpolate(unref(deviceCount))}</b></span><span class="sb-lat mono" data-v-5b974b95>${ssrInterpolate(unref(fps))} FPS </span><span class="copy" data-v-5b974b95> © 2026 ABO · DIGITAL TWIN · ${ssrInterpolate(_ctx.$t("townView.k1h5gxpf137"))}</span></footer>`);
|
|
2664
|
+
if (!unref(ready)) _push(`<div data-hud="town-loading" class="loading-mask" data-v-5b974b95><div class="loading-spinner" data-v-5b974b95></div><span class="loading-text" data-v-5b974b95>${ssrInterpolate(_ctx.$t("townView.kvjdqfg059"))}</span></div>`);
|
|
2664
2665
|
else _push(`<!---->`);
|
|
2665
2666
|
_push(`</div>`);
|
|
2666
2667
|
};
|
|
@@ -2674,7 +2675,7 @@ TownView_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
|
|
|
2674
2675
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/town/TownView.vue");
|
|
2675
2676
|
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
|
2676
2677
|
};
|
|
2677
|
-
var TownView_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(TownView_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
2678
|
+
var TownView_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(TownView_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-5b974b95"]]), { __name: "WorkshopTownView" });
|
|
2678
2679
|
|
|
2679
2680
|
export { TownView_default as T, useStorage as u };
|
|
2680
|
-
//# sourceMappingURL=TownView-
|
|
2681
|
+
//# sourceMappingURL=TownView-DxeQe1Bl.mjs.map
|