ss-component-new 1.3.664 → 1.3.666

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/MTLLoader-DI0avKtj.js +657 -0
  2. package/dist/URDFLoader-PUxvYFDe.js +2304 -0
  3. package/dist/animationData-05aVUytq.js +83 -0
  4. package/dist/array-BHRYnJKv.js +1044 -0
  5. package/dist/clone-Ddn1p6-1.js +8 -0
  6. package/dist/config.js +1 -1
  7. package/dist/eleIcon-BWVKfp5t.js +29 -0
  8. package/dist/iconfont-BNdGaGPn.js +1018 -0
  9. package/dist/icons/svg/Update.svg +1 -0
  10. package/dist/icons/svg/functionList.svg +1 -0
  11. package/dist/icons/svg/uploadCopy.svg +1 -0
  12. package/dist/index-7mFTFA3-.js +107 -0
  13. package/dist/index-BDhIWgKn.js +658 -0
  14. package/dist/index-BFqUz4pN.js +52 -0
  15. package/dist/index-BP1mKUQP.js +627 -0
  16. package/dist/index-BczRQX8N.js +407 -0
  17. package/dist/index-BnrvtCYj.js +55 -0
  18. package/dist/index-Bpr501oZ.js +78 -0
  19. package/dist/index-BvbZiTVB.js +342 -0
  20. package/dist/index-Bvvz41NY.js +44 -0
  21. package/dist/index-C2M8MGB3.js +83 -0
  22. package/dist/index-C67QqPPT.js +24865 -0
  23. package/dist/index-C85-PeF1.js +11773 -0
  24. package/dist/index-C9DBY1gg.js +103 -0
  25. package/dist/index-CFFbhR3G.js +996 -0
  26. package/dist/index-COr2mcbl.js +48 -0
  27. package/dist/index-CQ8DCGnJ.js +98 -0
  28. package/dist/index-CV2cha0T.js +864 -0
  29. package/dist/index-CV_jQDcg.js +9 -0
  30. package/dist/index-CXe4q28L.js +447 -0
  31. package/dist/{index-BobGeNMx.js → index-ChNfRlIP.js} +5 -5
  32. package/dist/index-CqNlqFQ5.js +117 -0
  33. package/dist/index-D-5v1Jx7.js +93 -0
  34. package/dist/index-D4LcEpQ7.js +619 -0
  35. package/dist/index-D9w3QWuY.js +468 -0
  36. package/dist/index-DGObzWyL.js +8984 -0
  37. package/dist/index-DJ59jXR0.js +28483 -0
  38. package/dist/index-DJrzqi4-.js +209 -0
  39. package/dist/index-D_kI6aHR.js +98 -0
  40. package/dist/index-DhQcwkOc.js +61958 -0
  41. package/dist/index-DhULdX5n.js +2623 -0
  42. package/dist/index-Dibj25i7.js +93 -0
  43. package/dist/index-Dr9Wt5nC.js +84 -0
  44. package/dist/index-Dwt0Wlg_.js +201 -0
  45. package/dist/index-WPJbEuld.js +62 -0
  46. package/dist/index-YVR3acYT.js +61 -0
  47. package/dist/{index-BKK_dL6t.js → index-dD-mKgue.js} +3 -3
  48. package/dist/index-roQK_1xA.js +30 -0
  49. package/dist/index-uF-ibwG0.js +9 -0
  50. package/dist/{index.vue_vue_type_script_setup_true_lang-DRzriV-s.js → index.vue_vue_type_script_setup_true_lang-DwbHXtUp.js} +2 -2
  51. package/dist/index.vue_vue_type_style_index_0_scoped_39e1db95_lang-CG9X8aa2.js +137728 -0
  52. package/dist/isString-CoCw_sp3.js +8 -0
  53. package/dist/localIcon-CoJHw5ss.js +76 -0
  54. package/dist/main-Dlo2i9wB.js +502 -0
  55. package/dist/menuIndex-Dt0NyAyE.js +159 -0
  56. package/dist/request-DiogHwkN.js +9465 -0
  57. package/dist/ss-component.css +8 -2
  58. package/dist/ss-component.js +64 -28
  59. package/dist/ss-component2.js +75 -15
  60. package/dist/ss-component3.js +1 -1
  61. package/dist/threeModel-BfY7WDWB.js +1108 -0
  62. package/dist/threePreview-BHLSA5YS.js +2259 -0
  63. package/dist/threeSceneView-ZTUK-ls2.js +1289 -0
  64. package/dist/threeSceneViewForCPMPIP-DCG4eBvk.js +538 -0
  65. package/dist/threeTrackPathView-BR8-g2Tr.js +620 -0
  66. package/dist/threeViewerHost-BwblfmOC.js +233 -0
  67. package/dist/urdfTree-IEJgkVzs.js +254 -0
  68. package/dist/workpieceTreePanel-aZV2ut3W.js +555 -0
  69. package/package.json +4 -4
  70. package/public/config.js +1 -1
  71. package/public/icons/svg/Update.svg +1 -0
  72. package/public/icons/svg/functionList.svg +1 -0
  73. package/public/icons/svg/uploadCopy.svg +1 -0
  74. package/dist/index-CoXdIQt_.js +0 -50
  75. package/dist/index-DJWOuBw9.js +0 -195
  76. package/dist/index-DK2pco3V.js +0 -1044
  77. package/dist/index-DfraOPVU.js +0 -9022
  78. package/dist/index-MHAwX3y9.js +0 -182
  79. package/dist/menu-B8iV5Rhf.js +0 -5215
  80. package/dist/origin-C4Shcrcr.js +0 -11428
  81. /package/dist/icons/svg/{table-close.svg → tableClose.svg} +0 -0
  82. /package/dist/icons/svg/{table-expand.svg → tableExpand.svg} +0 -0
  83. /package/public/icons/svg/{table-close.svg → tableClose.svg} +0 -0
  84. /package/public/icons/svg/{table-expand.svg → tableExpand.svg} +0 -0
@@ -0,0 +1,538 @@
1
+ import { defineComponent as ge, ref as r, computed as k, watch as X, onUnmounted as De, resolveComponent as G, openBlock as g, createElementBlock as x, createElementVNode as n, createVNode as s, toDisplayString as L, Fragment as Be, renderList as Je, createCommentVNode as U, withCtx as le, shallowRef as te, onMounted as Me, nextTick as me, onBeforeUnmount as Ee, withDirectives as I, vShow as W, unref as z, renderSlot as ve, createBlock as de } from "vue";
2
+ import { s as pe } from "./threeViewerHost-BwblfmOC.js";
3
+ import { u as Ge, a as He, b as Ie, T as y, C as We } from "./iconfont-BNdGaGPn.js";
4
+ import { U as Xe, u as Ye, W as Ze, a as qe } from "./workpieceTreePanel-aZV2ut3W.js";
5
+ import { c as Ke } from "./index-DGObzWyL.js";
6
+ import "./index.vue_vue_type_style_index_0_scoped_39e1db95_lang-CG9X8aa2.js";
7
+ import { _ as fe } from "./index.vue_vue_type_script_setup_true_lang-DwbHXtUp.js";
8
+ import { g as Qe, b as et, U as tt, J as lt, d as nt } from "./urdfTree-IEJgkVzs.js";
9
+ import { E as _ } from "./request-DiogHwkN.js";
10
+ import { _ as he } from "./_plugin-vue_export-helper-CHgC5LLL.js";
11
+ import { i as at } from "./animationData-05aVUytq.js";
12
+ import { O as ot } from "./MTLLoader-DI0avKtj.js";
13
+ const st = { class: "panel-content" }, it = {
14
+ key: 0,
15
+ class: "animation-controls"
16
+ }, rt = { class: "control-row" }, ut = { class: "control-row" }, ct = { class: "frame-info" }, vt = { class: "control-row" }, dt = {
17
+ key: 1,
18
+ class: "empty-state"
19
+ }, mt = { class: "dialog-footer" }, pt = /* @__PURE__ */ ge({
20
+ __name: "urdfAnimationPanel",
21
+ props: {
22
+ model: {},
23
+ scene: {},
24
+ xyzbcList: {}
25
+ },
26
+ setup(S, { expose: f }) {
27
+ const j = S, i = r([]), T = r(!1), F = r(""), c = r("stopped"), h = r(0), O = r(0), C = r(10), v = r(null);
28
+ let d = 0;
29
+ const P = r([]), w = k(() => j.model ? Qe(j.model).map((b) => b.name) : []), R = k(() => [...w.value]), ne = k(() => R.value.length > 0 ? `请按以下格式粘贴数据 (第一行为表头,使用 Tab 分隔):
30
+ ${R.value.join(" ")}
31
+ 0 0 0 ...
32
+ 1 2 3 ...` : "请先加载模型。"), Y = k(() => i.value[h.value] || {});
33
+ X(() => j.model, (a) => {
34
+ a ? (v.value = new Xe(a), P.value = et(a), h.value = 0) : (v.value = null, P.value = []);
35
+ }, { immediate: !0 });
36
+ const J = (a) => {
37
+ if (a < 0 || a >= i.value.length) {
38
+ console.error(`帧索引 ${a} 超出范围`);
39
+ return;
40
+ }
41
+ const l = i.value[a];
42
+ if (v.value) {
43
+ const b = {};
44
+ w.value.forEach((A) => {
45
+ const u = parseFloat(l[A]);
46
+ isNaN(u) || (b[A] = u);
47
+ }), v.value.setJointAngles(b);
48
+ }
49
+ h.value = a, O.value = i.value.length > 1 ? a / (i.value.length - 1) * 100 : 100;
50
+ }, M = async (a) => {
51
+ try {
52
+ for (let l = h.value; l < i.value.length; l++) {
53
+ if (a !== d) return;
54
+ const b = i.value[l], A = {};
55
+ if (v.value)
56
+ w.value.forEach((u) => {
57
+ const m = parseFloat(b[u]);
58
+ isNaN(m) || (A[u] = m);
59
+ }), await v.value.animateToState(
60
+ A,
61
+ C.value,
62
+ (u) => {
63
+ a === d && (O.value = (l + u) / i.value.length * 100);
64
+ }
65
+ );
66
+ else {
67
+ if (await new Promise((u) => setTimeout(u, C.value)), a !== d) return;
68
+ O.value = (l + 1) / i.value.length * 100;
69
+ }
70
+ h.value = l;
71
+ }
72
+ a === d && (_.success("动画播放完成"), c.value = "stopped", O.value = 100);
73
+ } catch (l) {
74
+ console.error("动画播放出错:", l), _.error("动画播放出错"), c.value = "stopped";
75
+ }
76
+ }, N = () => {
77
+ if (i.value.length === 0) {
78
+ _.error("无动画数据");
79
+ return;
80
+ }
81
+ c.value === "stopped" && (h.value = 0, J(0)), c.value = "playing", d++, M(d), _.info("动画播放中");
82
+ }, Z = () => {
83
+ c.value === "playing" && (d++, c.value = "paused", _.info("动画已暂停"));
84
+ }, q = () => {
85
+ d++, c.value = "stopped", h.value = 0, O.value = 0, J(0), _.info("动画已停止并重置");
86
+ }, ae = () => {
87
+ c.value === "playing" ? Z() : N();
88
+ }, D = (a) => {
89
+ d++, c.value = "paused", J(a);
90
+ }, oe = () => {
91
+ if (!F.value.trim()) {
92
+ _.warning("导入内容不能为空");
93
+ return;
94
+ }
95
+ const a = F.value.trim().split(`
96
+ `).filter((m) => m.trim() !== "");
97
+ if (a.length < 2) {
98
+ _.error("导入数据至少需要包含表头行和一行数据");
99
+ return;
100
+ }
101
+ const l = a[0].split(" ").map((m) => m.trim()), b = {};
102
+ if (l.forEach((m, p) => {
103
+ R.value.includes(m) && (b[p] = m);
104
+ }), Object.keys(b).length === 0) {
105
+ _.error("没有找到匹配的表头,请检查表头名称是否正确");
106
+ return;
107
+ }
108
+ const u = a.slice(1).map((m) => {
109
+ const p = m.split(" "), B = {};
110
+ return R.value.forEach((H) => {
111
+ B[H] = "0";
112
+ }), Object.entries(b).forEach(([H, se]) => {
113
+ const E = p[parseInt(H)];
114
+ E !== void 0 && E.trim() !== "" && (B[se] = E.trim());
115
+ }), B;
116
+ });
117
+ u.length > 0 ? (i.value = u, _.success(`成功导入 ${u.length} 行数据!`), T.value = !1, F.value = "", q()) : _.error("未能解析到有效数据,请检查格式。");
118
+ };
119
+ X(() => j.xyzbcList, () => {
120
+ j.xyzbcList && (i.value = Ke(j.xyzbcList));
121
+ }, {
122
+ immediate: !0
123
+ });
124
+ const K = (a) => `第 ${a + 1} 帧`;
125
+ return f({
126
+ handlePlayPause: ae,
127
+ playAnimation: N,
128
+ pauseAnimation: Z,
129
+ stopAnimation: q
130
+ }), De(() => {
131
+ d++;
132
+ }), (a, l) => {
133
+ const b = G("el-input-number"), A = G("el-slider"), u = G("el-input"), m = G("el-dialog");
134
+ return g(), x("div", st, [
135
+ l[11] || (l[11] = n("div", { class: "action-bar" }, null, -1)),
136
+ i.value.length > 0 ? (g(), x("div", it, [
137
+ n("div", rt, [
138
+ l[5] || (l[5] = n("label", null, "帧间隔 (ms):", -1)),
139
+ s(b, {
140
+ modelValue: C.value,
141
+ "onUpdate:modelValue": l[0] || (l[0] = (p) => C.value = p),
142
+ min: 10,
143
+ max: 5e3,
144
+ step: 100,
145
+ size: "small",
146
+ style: { width: "120px" }
147
+ }, null, 8, ["modelValue"])
148
+ ]),
149
+ n("div", ut, [
150
+ l[6] || (l[6] = n("label", null, "当前帧:", -1)),
151
+ n("span", ct, L(h.value + 1) + " / " + L(i.value.length), 1)
152
+ ]),
153
+ n("div", vt, [
154
+ l[7] || (l[7] = n("label", null, "动画进度:", -1)),
155
+ s(A, {
156
+ modelValue: h.value,
157
+ "onUpdate:modelValue": l[1] || (l[1] = (p) => h.value = p),
158
+ min: 0,
159
+ max: i.value.length > 0 ? i.value.length - 1 : 0,
160
+ step: 1,
161
+ "format-tooltip": K,
162
+ onInput: D,
163
+ disabled: i.value.length === 0 || c.value === "playing",
164
+ style: { "flex-grow": "1", margin: "0 10px" }
165
+ }, null, 8, ["modelValue", "max", "disabled"])
166
+ ]),
167
+ n("div", null, [
168
+ l[8] || (l[8] = n("label", null, "当前帧数据:", -1)),
169
+ n("div", null, [
170
+ Y.value ? (g(!0), x(Be, { key: 0 }, Je(Y.value, (p, B) => (g(), x("div", { key: B }, L(B) + ": " + L(p), 1))), 128)) : U("", !0)
171
+ ])
172
+ ])
173
+ ])) : U("", !0),
174
+ i.value.length === 0 ? (g(), x("div", dt, [...l[9] || (l[9] = [
175
+ n("p", null, "请先创建数据", -1)
176
+ ])])) : U("", !0),
177
+ s(m, {
178
+ modelValue: T.value,
179
+ "onUpdate:modelValue": l[4] || (l[4] = (p) => T.value = p),
180
+ title: "导入数据",
181
+ width: "500px"
182
+ }, {
183
+ footer: le(() => [
184
+ n("span", mt, [
185
+ s(fe, {
186
+ modelValue: "取消",
187
+ onClick: l[3] || (l[3] = (p) => T.value = !1)
188
+ }),
189
+ s(fe, {
190
+ modelValue: "确认导入",
191
+ onClick: oe,
192
+ type: "primary"
193
+ })
194
+ ])
195
+ ]),
196
+ default: le(() => [
197
+ l[10] || (l[10] = n("p", { class: "import-instructions" }, " 请从Excel或CSV中复制数据 (首行为表头, Tab分隔) ", -1)),
198
+ s(u, {
199
+ modelValue: F.value,
200
+ "onUpdate:modelValue": l[2] || (l[2] = (p) => F.value = p),
201
+ type: "textarea",
202
+ rows: 10,
203
+ placeholder: ne.value
204
+ }, null, 8, ["modelValue", "placeholder"])
205
+ ]),
206
+ _: 1
207
+ }, 8, ["modelValue"])
208
+ ]);
209
+ };
210
+ }
211
+ }), be = /* @__PURE__ */ he(pt, [["__scopeId", "data-v-00d63f4b"]]), ft = async (S) => await new ot().loadAsync(S), bt = async (S) => await ft(S), gt = { class: "obj-viewer-container" }, ht = { class: "buttonGroup-topLeft" }, yt = { class: "buttonGroup-left" }, _t = { class: "buttonGroup-right" }, kt = { class: "buttonGroup-bottom" }, Ct = { class: "left-panel" }, Pt = { class: "panel-header" }, wt = { class: "panel-body" }, zt = { class: "right-panel" }, Ut = { class: "panel-header" }, xt = { class: "panel-body" }, jt = {
212
+ key: 0,
213
+ class: "loading-overlay"
214
+ }, At = {
215
+ key: 1,
216
+ class: "brand"
217
+ }, Lt = {
218
+ key: 0,
219
+ class: "brand-item"
220
+ }, Vt = { class: "item-value" }, $t = {
221
+ key: 1,
222
+ class: "brand-item"
223
+ }, Tt = { class: "item-value" }, Ot = {
224
+ key: 2,
225
+ class: "brand-item"
226
+ }, Rt = { class: "item-value" }, St = /* @__PURE__ */ ge({
227
+ __name: "threeSceneViewForCPMPIP",
228
+ props: {
229
+ fileBlobs: { default: () => [] },
230
+ threeData: {}
231
+ },
232
+ setup(S) {
233
+ const f = S, j = r([]), i = k(() => {
234
+ var e, o;
235
+ return (o = (e = f == null ? void 0 : f.threeData) == null ? void 0 : e.data) == null ? void 0 : o.csvUrl;
236
+ });
237
+ X(() => i.value, async () => {
238
+ if (console.log("csvUrl", i.value), i.value) {
239
+ const t = await at(i.value);
240
+ j.value = t;
241
+ }
242
+ }, {
243
+ immediate: !0
244
+ });
245
+ const T = k(() => {
246
+ var e, o;
247
+ return (o = (e = f == null ? void 0 : f.threeData) == null ? void 0 : e.data) == null ? void 0 : o.bladeObjUrl;
248
+ }), F = r(pe.ROBOT), c = r(null), h = r(!1), O = r(""), C = r(!1), v = r(""), d = r(!1), P = r(""), w = te(null), R = r("叶片模型"), ne = te(null), Y = te(null), J = te(null), M = r(be), {
249
+ currentModels: N,
250
+ resetView: Z,
251
+ initThreeJS: q,
252
+ handleResize: ae,
253
+ getThreeJSObjects: D,
254
+ cleanup: oe,
255
+ setAndFitModels: K,
256
+ axesHelperVisible: a,
257
+ toggleAxesVisibility: l,
258
+ zoomIn: b,
259
+ zoomOut: A
260
+ } = Ge(c), { loadSceneFromFile: u } = qe(
261
+ D,
262
+ N,
263
+ h,
264
+ O
265
+ ), { isAnimating: m, toggleAnimation: p, startAnimation: B, stopAnimation: H } = He(D, N), { isClipping: se, activeClippingAxis: E, toggleClipping: ye, updateClippingPlanes: _e } = Ie(D, N), { initRaycaster: ke, selectedObject3D: Ce, setSelectedObjVisible: Pe, updatePosition: we, updateRotation: ze, dispose: Ue } = Ye(c, D, N), xe = () => {
266
+ l();
267
+ }, je = (t) => {
268
+ E.value = t, _e();
269
+ }, V = k(() => {
270
+ var e, o;
271
+ return (o = (e = f == null ? void 0 : f.threeData) == null ? void 0 : e.data) == null ? void 0 : o.machine;
272
+ }), ie = k(() => {
273
+ var e;
274
+ return (e = V == null ? void 0 : V.value) == null ? void 0 : e.modelNumber;
275
+ }), re = k(() => {
276
+ var e;
277
+ return (e = V == null ? void 0 : V.value) == null ? void 0 : e.serialNumber;
278
+ }), ue = k(() => {
279
+ var e;
280
+ return (e = V == null ? void 0 : V.value) == null ? void 0 : e.manufacturer;
281
+ }), Ae = k(() => ie.value || re.value || ue.value), Le = k(() => F.value === pe.ROBOT), Q = (t) => {
282
+ C.value = !0, v.value = t, t === "剖面视图" && !se.value && ye();
283
+ }, ce = (t) => {
284
+ d.value = !0, P.value = t;
285
+ }, Ve = () => {
286
+ var t;
287
+ (t = M.value) == null || t.handlePlayPause();
288
+ }, $e = () => {
289
+ var t;
290
+ (t = M.value) == null || t.pauseAnimation();
291
+ }, Te = () => {
292
+ var t;
293
+ (t = M.value) == null || t.stopAnimation();
294
+ }, Oe = (t, e) => nt(t, e), Re = async (t) => {
295
+ const e = Oe(t, R.value);
296
+ if (Y.value = e, console.log("bladeObjUrl", T.value), e && e.parent && T.value) {
297
+ const o = await bt(T.value);
298
+ o.name = "blade_clone", e.parent.add(o), o.position.copy(e.position), o.rotation.copy(e.rotation), o.scale.copy(e.scale), e.visible = !1, ne.value = o;
299
+ } else
300
+ R.value && console.warn(`在 Blade '${R.value}' 中未找到可替换的网格或其没有父级。`);
301
+ };
302
+ X(() => f.fileBlobs, (t) => {
303
+ if (t && t.length > 0) {
304
+ const e = t[0];
305
+ if (!e.name.toLowerCase().endsWith(".urdf"))
306
+ return;
307
+ u(e).then((o) => {
308
+ w.value = o, o && Re(o);
309
+ }).catch((o) => {
310
+ console.error("加载URDF文件时发生错误:", o), _.error("加载urdf模型失败"), w.value = null;
311
+ });
312
+ } else
313
+ w.value = null;
314
+ }, {
315
+ immediate: !0,
316
+ deep: !0
317
+ }), X(w, (t) => {
318
+ K(t ? [t] : []), ke();
319
+ });
320
+ const Se = () => {
321
+ q(), me(() => {
322
+ c.value && (ee = new ResizeObserver(ae), ee.observe(c.value));
323
+ });
324
+ const t = D();
325
+ J.value = t.scene;
326
+ }, Fe = () => {
327
+ v.value = "", P.value = "", ee && ee.disconnect(), m.value && H(), oe(), Ue();
328
+ };
329
+ let ee = null;
330
+ return Me(async () => {
331
+ await me();
332
+ try {
333
+ Se();
334
+ } catch (t) {
335
+ console.error("Three.js 初始化失败:", t), _.error("渲染引擎初始化失败!");
336
+ }
337
+ }), Ee(() => {
338
+ Fe();
339
+ }), (t, e) => {
340
+ const o = G("el-scrollbar"), Ne = G("PipeAnalysisPanel");
341
+ return g(), x("div", gt, [
342
+ I(n("div", {
343
+ ref_key: "threejsContainer",
344
+ ref: c,
345
+ class: "threejs-container"
346
+ }, null, 512), [
347
+ [W, Le.value]
348
+ ]),
349
+ n("div", ht, [
350
+ s(y, {
351
+ name: "viewReset",
352
+ size: "24",
353
+ onClick: z(Z),
354
+ title: "重置"
355
+ }, null, 8, ["onClick"]),
356
+ s(y, {
357
+ name: "fangda",
358
+ size: "24",
359
+ title: "放大",
360
+ onClick: z(b)
361
+ }, null, 8, ["onClick"]),
362
+ s(y, {
363
+ name: "suoxiao",
364
+ size: "24",
365
+ title: "缩小",
366
+ onClick: z(A)
367
+ }, null, 8, ["onClick"]),
368
+ s(y, {
369
+ name: "lookAround",
370
+ size: "24",
371
+ onClick: z(p),
372
+ title: z(m) ? "停止动画" : "动画视图"
373
+ }, null, 8, ["onClick", "title"]),
374
+ s(y, {
375
+ name: "zuobiaoxi",
376
+ size: "24",
377
+ active: z(a),
378
+ onClick: xe,
379
+ title: "显隐坐标轴"
380
+ }, null, 8, ["active"])
381
+ ]),
382
+ n("div", yt, [
383
+ ve(t.$slots, "button-left", { switchRightPanel: Q }, void 0, !0),
384
+ s(y, {
385
+ name: "jiegoushu",
386
+ size: "24",
387
+ onClick: e[0] || (e[0] = ($) => Q("场景树")),
388
+ active: C.value && v.value === "场景树",
389
+ title: "场景树"
390
+ }, null, 8, ["active"]),
391
+ s(y, {
392
+ name: "clipping",
393
+ size: "24",
394
+ onClick: e[1] || (e[1] = ($) => Q("剖面视图")),
395
+ active: C.value && v.value === "剖面视图",
396
+ title: "剖面视图"
397
+ }, null, 8, ["active"]),
398
+ s(y, {
399
+ name: "donghuafangzhen",
400
+ size: "24",
401
+ onClick: e[2] || (e[2] = ($) => Q("工件树")),
402
+ active: C.value && v.value === "工件树"
403
+ }, null, 8, ["active"])
404
+ ]),
405
+ n("div", _t, [
406
+ ve(t.$slots, "button-right", { switchRightPanel: ce }, void 0, !0),
407
+ s(y, {
408
+ name: "jichuangxuanze",
409
+ size: "24",
410
+ onClick: e[3] || (e[3] = ($) => ce("机床控制")),
411
+ active: d.value && P.value === "机床控制",
412
+ title: "机床控制"
413
+ }, null, 8, ["active"]),
414
+ s(y, {
415
+ name: "donghuafangzhen",
416
+ size: "24",
417
+ title: "动画仿真",
418
+ onClick: e[4] || (e[4] = ($) => ce("动画仿真")),
419
+ active: d.value && P.value === "动画仿真"
420
+ }, null, 8, ["active"])
421
+ ]),
422
+ n("div", kt, [
423
+ s(y, {
424
+ name: "bofang",
425
+ size: "24",
426
+ backgroundColor: "#ffffff",
427
+ title: "播放",
428
+ onClick: Ve
429
+ }),
430
+ s(y, {
431
+ name: "zanting",
432
+ size: "24",
433
+ backgroundColor: "#ffffff",
434
+ title: "暂停",
435
+ onClick: $e
436
+ }),
437
+ s(y, {
438
+ name: "zhongzhi",
439
+ size: "24",
440
+ backgroundColor: "#ffffff",
441
+ title: "停止",
442
+ onClick: Te
443
+ })
444
+ ]),
445
+ I(n("div", Ct, [
446
+ n("div", Pt, [
447
+ n("span", null, L(v.value), 1),
448
+ n("span", {
449
+ class: "close",
450
+ onClick: e[5] || (e[5] = ($) => C.value = !1)
451
+ }, " X ")
452
+ ]),
453
+ n("div", wt, [
454
+ s(o, { height: "100%" }, {
455
+ default: le(() => {
456
+ var $;
457
+ return [
458
+ v.value === "场景树" ? (g(), de(tt, {
459
+ key: 0,
460
+ model: w.value
461
+ }, null, 8, ["model"])) : U("", !0),
462
+ v.value === "剖面视图" ? (g(), de(We, {
463
+ key: 1,
464
+ value: z(E),
465
+ onChange: je
466
+ }, null, 8, ["value"])) : U("", !0),
467
+ v.value === "工件树" ? (g(), de(Ze, {
468
+ key: 2,
469
+ model: ($ = z(Ce)) == null ? void 0 : $.obj,
470
+ onVisibleChange: z(Pe),
471
+ onUpdatePosition: z(we),
472
+ onUpdateRotation: z(ze)
473
+ }, null, 8, ["model", "onVisibleChange", "onUpdatePosition", "onUpdateRotation"])) : U("", !0)
474
+ ];
475
+ }),
476
+ _: 1
477
+ })
478
+ ])
479
+ ], 512), [
480
+ [W, C.value]
481
+ ]),
482
+ I(n("div", zt, [
483
+ n("div", Ut, [
484
+ n("span", null, L(P.value), 1),
485
+ n("span", {
486
+ class: "close",
487
+ onClick: e[6] || (e[6] = ($) => d.value = !1)
488
+ }, " X ")
489
+ ]),
490
+ n("div", xt, [
491
+ s(o, { height: "100%" }, {
492
+ default: le(() => [
493
+ I(s(lt, { model: w.value }, null, 8, ["model"]), [
494
+ [W, P.value === "机床控制"]
495
+ ]),
496
+ I(s(be, {
497
+ model: w.value,
498
+ scene: J.value,
499
+ xyzbcList: j.value,
500
+ ref_key: "urdfAnimationPanelRef",
501
+ ref: M
502
+ }, null, 8, ["model", "scene", "xyzbcList"]), [
503
+ [W, P.value === "动画仿真"]
504
+ ]),
505
+ ve(t.$slots, "right-panel", { rightPanelType: P.value }, void 0, !0)
506
+ ]),
507
+ _: 3
508
+ })
509
+ ])
510
+ ], 512), [
511
+ [W, d.value]
512
+ ]),
513
+ h.value ? (g(), x("div", jt, [
514
+ e[7] || (e[7] = n("div", { class: "loading-spinner" }, null, -1)),
515
+ n("p", null, L(O.value), 1)
516
+ ])) : U("", !0),
517
+ Ae.value ? (g(), x("div", At, [
518
+ ue.value ? (g(), x("div", Lt, [
519
+ e[8] || (e[8] = n("div", { class: "item-label" }, "厂家:", -1)),
520
+ n("div", Vt, L(ue.value), 1)
521
+ ])) : U("", !0),
522
+ ie.value ? (g(), x("div", $t, [
523
+ e[9] || (e[9] = n("div", { class: "item-label" }, "型号:", -1)),
524
+ n("div", Tt, L(ie.value), 1)
525
+ ])) : U("", !0),
526
+ re.value ? (g(), x("div", Ot, [
527
+ e[10] || (e[10] = n("div", { class: "item-label" }, "编号:", -1)),
528
+ n("div", Rt, L(re.value), 1)
529
+ ])) : U("", !0)
530
+ ])) : U("", !0),
531
+ s(Ne, { ref: "pipeAnalysisPanelRef" }, null, 512)
532
+ ]);
533
+ };
534
+ }
535
+ }), Yt = /* @__PURE__ */ he(St, [["__scopeId", "data-v-54d53d1f"]]);
536
+ export {
537
+ Yt as default
538
+ };