Procházet zdrojové kódy

Merge branch 'master' of http://adicom-hxx.natapp1.cc/CQ_ADI/airoptweb

lichunyang před 4 měsíci
rodič
revize
f28fac13c8
40 změnil soubory, kde provedl 181 přidání a 136 odebrání
  1. 1 1
      dist/assets/cssMode-c120351c.js
  2. 1 1
      dist/assets/delete-d60e3406.js
  3. 0 0
      dist/assets/demo-c39cd648.js
  4. 0 0
      dist/assets/f41-8a9a4144.js
  5. 1 1
      dist/assets/freemarker2-49a29256.js
  6. 1 1
      dist/assets/handlebars-db64ba2d.js
  7. 0 0
      dist/assets/header-db0a1165.js
  8. 0 0
      dist/assets/home-3a9bcba0.css
  9. 0 0
      dist/assets/home-e2ab9a7d.js
  10. 1 1
      dist/assets/html-d0050b79.js
  11. 1 1
      dist/assets/htmlMode-2bfaa851.js
  12. 0 0
      dist/assets/index-0d2df7a3.js
  13. 0 0
      dist/assets/index-b83b9b17.js
  14. 0 0
      dist/assets/index-e2427a5c.js
  15. 1 1
      dist/assets/javascript-252f210f.js
  16. 1 1
      dist/assets/jsonMode-22704649.js
  17. 1 1
      dist/assets/liquid-20fd72a6.js
  18. 1 1
      dist/assets/mdx-f5135416.js
  19. 0 0
      dist/assets/newfile-311c2b9e.js
  20. 0 0
      dist/assets/openpage-ce1aa97a.js
  21. 1 1
      dist/assets/python-ea56b3b6.js
  22. 1 1
      dist/assets/querylist-a4bbe7a7.js
  23. 1 1
      dist/assets/razor-b20882c4.js
  24. 0 0
      dist/assets/request-264354d4.js
  25. 0 1
      dist/assets/savefile-d4966fee.js
  26. 1 0
      dist/assets/savefile-d761d9a1.js
  27. 1 1
      dist/assets/tsMode-467fcf62.js
  28. 1 1
      dist/assets/typescript-58089f47.js
  29. 0 0
      dist/assets/vue-flow-background-237907a3.js
  30. 0 0
      dist/assets/vue-flow-core-e1bee19b.js
  31. 1 1
      dist/assets/xml-54298ba0.js
  32. 1 1
      dist/assets/yaml-3fea8a66.js
  33. 1 1
      dist/index.html
  34. 14 0
      package-lock.json
  35. 1 0
      package.json
  36. 111 72
      src/components/PythonEditor/index.vue
  37. 7 22
      src/views/home.vue
  38. 27 21
      src/views/titlecomponent/MathFunc.vue
  39. 1 1
      src/views/vuetree/Sidebar.vue
  40. 1 1
      src/views/vuetree/useDnD.js

+ 1 - 1
dist/assets/cssMode-17535212.js → dist/assets/cssMode-c120351c.js

@@ -1,4 +1,4 @@
-import{m as tt}from"./home-c6c1767a.js";import"./f41-6f9b509f.js";import"./request-5fb3f7db.js";import"./index-10424e1d.js";import"./header-abf4323e.js";import"./f22-deb38015.js";import"./vue-flow-core-801b642d.js";import"./vue-flow-background-ae9691a6.js";/*!-----------------------------------------------------------------------------
+import{m as tt}from"./home-e2ab9a7d.js";import"./f41-8a9a4144.js";import"./request-264354d4.js";import"./index-e2427a5c.js";import"./header-db0a1165.js";import"./f22-deb38015.js";import"./vue-flow-core-e1bee19b.js";import"./vue-flow-background-237907a3.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

+ 1 - 1
dist/assets/delete-a0a8ce6a.js → dist/assets/delete-d60e3406.js

@@ -1 +1 @@
-import{r as s}from"./index-10424e1d.js";const a=s(!1),o=s("");let r;function i(){return{isVisible:a,message:o,resolve:e=>{r&&r(e)}}}function l(){return{confirm(e){return a.value=!0,o.value=e,new Promise(t=>{r=t})}}}export{l as a,i as u};
+import{r as s}from"./index-e2427a5c.js";const a=s(!1),o=s("");let r;function i(){return{isVisible:a,message:o,resolve:e=>{r&&r(e)}}}function l(){return{confirm(e){return a.value=!0,o.value=e,new Promise(t=>{r=t})}}}export{l as a,i as u};

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/assets/demo-c39cd648.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/assets/f41-8a9a4144.js


+ 1 - 1
dist/assets/freemarker2-70018693.js → dist/assets/freemarker2-49a29256.js

@@ -1,4 +1,4 @@
-import{m as F}from"./home-c6c1767a.js";import"./f41-6f9b509f.js";import"./request-5fb3f7db.js";import"./index-10424e1d.js";import"./header-abf4323e.js";import"./f22-deb38015.js";import"./vue-flow-core-801b642d.js";import"./vue-flow-background-ae9691a6.js";/*!-----------------------------------------------------------------------------
+import{m as F}from"./home-e2ab9a7d.js";import"./f41-8a9a4144.js";import"./request-264354d4.js";import"./index-e2427a5c.js";import"./header-db0a1165.js";import"./f22-deb38015.js";import"./vue-flow-core-e1bee19b.js";import"./vue-flow-background-237907a3.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

+ 1 - 1
dist/assets/handlebars-d2555b60.js → dist/assets/handlebars-db64ba2d.js

@@ -1,4 +1,4 @@
-import{m as l}from"./home-c6c1767a.js";import"./f41-6f9b509f.js";import"./request-5fb3f7db.js";import"./index-10424e1d.js";import"./header-abf4323e.js";import"./f22-deb38015.js";import"./vue-flow-core-801b642d.js";import"./vue-flow-background-ae9691a6.js";/*!-----------------------------------------------------------------------------
+import{m as l}from"./home-e2ab9a7d.js";import"./f41-8a9a4144.js";import"./request-264354d4.js";import"./index-e2427a5c.js";import"./header-db0a1165.js";import"./f22-deb38015.js";import"./vue-flow-core-e1bee19b.js";import"./vue-flow-background-237907a3.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/assets/header-db0a1165.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/assets/home-3a9bcba0.css


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/assets/home-e2ab9a7d.js


+ 1 - 1
dist/assets/html-fee550d6.js → dist/assets/html-d0050b79.js

@@ -1,4 +1,4 @@
-import{m as s}from"./home-c6c1767a.js";import"./f41-6f9b509f.js";import"./request-5fb3f7db.js";import"./index-10424e1d.js";import"./header-abf4323e.js";import"./f22-deb38015.js";import"./vue-flow-core-801b642d.js";import"./vue-flow-background-ae9691a6.js";/*!-----------------------------------------------------------------------------
+import{m as s}from"./home-e2ab9a7d.js";import"./f41-8a9a4144.js";import"./request-264354d4.js";import"./index-e2427a5c.js";import"./header-db0a1165.js";import"./f22-deb38015.js";import"./vue-flow-core-e1bee19b.js";import"./vue-flow-background-237907a3.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

+ 1 - 1
dist/assets/htmlMode-e00cec83.js → dist/assets/htmlMode-2bfaa851.js

@@ -1,4 +1,4 @@
-import{m as ft}from"./home-c6c1767a.js";import"./f41-6f9b509f.js";import"./request-5fb3f7db.js";import"./index-10424e1d.js";import"./header-abf4323e.js";import"./f22-deb38015.js";import"./vue-flow-core-801b642d.js";import"./vue-flow-background-ae9691a6.js";/*!-----------------------------------------------------------------------------
+import{m as ft}from"./home-e2ab9a7d.js";import"./f41-8a9a4144.js";import"./request-264354d4.js";import"./index-e2427a5c.js";import"./header-db0a1165.js";import"./f22-deb38015.js";import"./vue-flow-core-e1bee19b.js";import"./vue-flow-background-237907a3.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/assets/index-0d2df7a3.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/assets/index-b83b9b17.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/assets/index-e2427a5c.js


+ 1 - 1
dist/assets/javascript-6a0f1a22.js → dist/assets/javascript-252f210f.js

@@ -1,4 +1,4 @@
-import{conf as t,language as e}from"./typescript-978f97cb.js";import"./home-c6c1767a.js";import"./f41-6f9b509f.js";import"./request-5fb3f7db.js";import"./index-10424e1d.js";import"./header-abf4323e.js";import"./f22-deb38015.js";import"./vue-flow-core-801b642d.js";import"./vue-flow-background-ae9691a6.js";/*!-----------------------------------------------------------------------------
+import{conf as t,language as e}from"./typescript-58089f47.js";import"./home-e2ab9a7d.js";import"./f41-8a9a4144.js";import"./request-264354d4.js";import"./index-e2427a5c.js";import"./header-db0a1165.js";import"./f22-deb38015.js";import"./vue-flow-core-e1bee19b.js";import"./vue-flow-background-237907a3.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

+ 1 - 1
dist/assets/jsonMode-bc1863db.js → dist/assets/jsonMode-22704649.js

@@ -1,4 +1,4 @@
-import{m as Lt}from"./home-c6c1767a.js";import"./f41-6f9b509f.js";import"./request-5fb3f7db.js";import"./index-10424e1d.js";import"./header-abf4323e.js";import"./f22-deb38015.js";import"./vue-flow-core-801b642d.js";import"./vue-flow-background-ae9691a6.js";/*!-----------------------------------------------------------------------------
+import{m as Lt}from"./home-e2ab9a7d.js";import"./f41-8a9a4144.js";import"./request-264354d4.js";import"./index-e2427a5c.js";import"./header-db0a1165.js";import"./f22-deb38015.js";import"./vue-flow-core-e1bee19b.js";import"./vue-flow-background-237907a3.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

+ 1 - 1
dist/assets/liquid-57b3b416.js → dist/assets/liquid-20fd72a6.js

@@ -1,4 +1,4 @@
-import{m as d}from"./home-c6c1767a.js";import"./f41-6f9b509f.js";import"./request-5fb3f7db.js";import"./index-10424e1d.js";import"./header-abf4323e.js";import"./f22-deb38015.js";import"./vue-flow-core-801b642d.js";import"./vue-flow-background-ae9691a6.js";/*!-----------------------------------------------------------------------------
+import{m as d}from"./home-e2ab9a7d.js";import"./f41-8a9a4144.js";import"./request-264354d4.js";import"./index-e2427a5c.js";import"./header-db0a1165.js";import"./f22-deb38015.js";import"./vue-flow-core-e1bee19b.js";import"./vue-flow-background-237907a3.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

+ 1 - 1
dist/assets/mdx-d7a56e00.js → dist/assets/mdx-f5135416.js

@@ -1,4 +1,4 @@
-import{m as p}from"./home-c6c1767a.js";import"./f41-6f9b509f.js";import"./request-5fb3f7db.js";import"./index-10424e1d.js";import"./header-abf4323e.js";import"./f22-deb38015.js";import"./vue-flow-core-801b642d.js";import"./vue-flow-background-ae9691a6.js";/*!-----------------------------------------------------------------------------
+import{m as p}from"./home-e2ab9a7d.js";import"./f41-8a9a4144.js";import"./request-264354d4.js";import"./index-e2427a5c.js";import"./header-db0a1165.js";import"./f22-deb38015.js";import"./vue-flow-core-e1bee19b.js";import"./vue-flow-background-237907a3.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/assets/newfile-311c2b9e.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/assets/openpage-ce1aa97a.js


+ 1 - 1
dist/assets/python-a30f7644.js → dist/assets/python-ea56b3b6.js

@@ -1,4 +1,4 @@
-import{m as a}from"./home-c6c1767a.js";import"./f41-6f9b509f.js";import"./request-5fb3f7db.js";import"./index-10424e1d.js";import"./header-abf4323e.js";import"./f22-deb38015.js";import"./vue-flow-core-801b642d.js";import"./vue-flow-background-ae9691a6.js";/*!-----------------------------------------------------------------------------
+import{m as a}from"./home-e2ab9a7d.js";import"./f41-8a9a4144.js";import"./request-264354d4.js";import"./index-e2427a5c.js";import"./header-db0a1165.js";import"./f22-deb38015.js";import"./vue-flow-core-e1bee19b.js";import"./vue-flow-background-237907a3.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

+ 1 - 1
dist/assets/querylist-b0b42092.js → dist/assets/querylist-a4bbe7a7.js

@@ -1,4 +1,4 @@
-import{_ as Hs,r as rt,u as Es,i as As,j as Re,a as ke,o as Vs,b as Gs,e as he,d as W,f as R,w as te,F as js,g as Fe,x as zs,E as Lt,t as at,y as $s,p as Zs,h as qs,z as Bs}from"./index-10424e1d.js";import{r as Ht}from"./request-5fb3f7db.js";//! moment.js
+import{_ as Hs,r as rt,u as Es,i as As,j as Re,a as ke,o as Vs,b as Gs,e as he,d as W,f as R,w as te,F as js,g as Fe,x as zs,E as Lt,t as at,y as $s,p as Zs,h as qs,z as Bs}from"./index-e2427a5c.js";import{r as Ht}from"./request-264354d4.js";//! moment.js
 //! version : 2.30.1
 //! authors : Tim Wood, Iskren Chernev, Moment.js contributors
 //! license : MIT

+ 1 - 1
dist/assets/razor-948f1882.js → dist/assets/razor-b20882c4.js

@@ -1,4 +1,4 @@
-import{m as s}from"./home-c6c1767a.js";import"./f41-6f9b509f.js";import"./request-5fb3f7db.js";import"./index-10424e1d.js";import"./header-abf4323e.js";import"./f22-deb38015.js";import"./vue-flow-core-801b642d.js";import"./vue-flow-background-ae9691a6.js";/*!-----------------------------------------------------------------------------
+import{m as s}from"./home-e2ab9a7d.js";import"./f41-8a9a4144.js";import"./request-264354d4.js";import"./index-e2427a5c.js";import"./header-db0a1165.js";import"./f22-deb38015.js";import"./vue-flow-core-e1bee19b.js";import"./vue-flow-background-237907a3.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/assets/request-264354d4.js


+ 0 - 1
dist/assets/savefile-d4966fee.js

@@ -1 +0,0 @@
-import"./request-5fb3f7db.js";import{o as t,b as s,F as o,e}from"./index-10424e1d.js";const a=e("h3",{class:"opt_tltie"},"保存",-1),l=e("div",null,null,-1),p={__name:"savefile",setup(n){return(_,c)=>(t(),s(o,null,[a,l],64))}};export{p as default};

+ 1 - 0
dist/assets/savefile-d761d9a1.js

@@ -0,0 +1 @@
+import"./request-264354d4.js";import{o as t,b as s,F as o,e}from"./index-e2427a5c.js";const a=e("h3",{class:"opt_tltie"},"保存",-1),l=e("div",null,null,-1),p={__name:"savefile",setup(n){return(_,c)=>(t(),s(o,null,[a,l],64))}};export{p as default};

+ 1 - 1
dist/assets/tsMode-2d715fd8.js → dist/assets/tsMode-467fcf62.js

@@ -1,4 +1,4 @@
-import{t as I,m as N}from"./home-c6c1767a.js";import"./f41-6f9b509f.js";import"./request-5fb3f7db.js";import"./index-10424e1d.js";import"./header-abf4323e.js";import"./f22-deb38015.js";import"./vue-flow-core-801b642d.js";import"./vue-flow-background-ae9691a6.js";/*!-----------------------------------------------------------------------------
+import{t as I,m as N}from"./home-e2ab9a7d.js";import"./f41-8a9a4144.js";import"./request-264354d4.js";import"./index-e2427a5c.js";import"./header-db0a1165.js";import"./f22-deb38015.js";import"./vue-flow-core-e1bee19b.js";import"./vue-flow-background-237907a3.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

+ 1 - 1
dist/assets/typescript-978f97cb.js → dist/assets/typescript-58089f47.js

@@ -1,4 +1,4 @@
-import{m as a}from"./home-c6c1767a.js";import"./f41-6f9b509f.js";import"./request-5fb3f7db.js";import"./index-10424e1d.js";import"./header-abf4323e.js";import"./f22-deb38015.js";import"./vue-flow-core-801b642d.js";import"./vue-flow-background-ae9691a6.js";/*!-----------------------------------------------------------------------------
+import{m as a}from"./home-e2ab9a7d.js";import"./f41-8a9a4144.js";import"./request-264354d4.js";import"./index-e2427a5c.js";import"./header-db0a1165.js";import"./f22-deb38015.js";import"./vue-flow-core-e1bee19b.js";import"./vue-flow-background-237907a3.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/assets/vue-flow-background-237907a3.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/assets/vue-flow-core-e1bee19b.js


+ 1 - 1
dist/assets/xml-383df556.js → dist/assets/xml-54298ba0.js

@@ -1,4 +1,4 @@
-import{m}from"./home-c6c1767a.js";import"./f41-6f9b509f.js";import"./request-5fb3f7db.js";import"./index-10424e1d.js";import"./header-abf4323e.js";import"./f22-deb38015.js";import"./vue-flow-core-801b642d.js";import"./vue-flow-background-ae9691a6.js";/*!-----------------------------------------------------------------------------
+import{m}from"./home-e2ab9a7d.js";import"./f41-8a9a4144.js";import"./request-264354d4.js";import"./index-e2427a5c.js";import"./header-db0a1165.js";import"./f22-deb38015.js";import"./vue-flow-core-e1bee19b.js";import"./vue-flow-background-237907a3.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

+ 1 - 1
dist/assets/yaml-e8a3c5d3.js → dist/assets/yaml-3fea8a66.js

@@ -1,4 +1,4 @@
-import{m as l}from"./home-c6c1767a.js";import"./f41-6f9b509f.js";import"./request-5fb3f7db.js";import"./index-10424e1d.js";import"./header-abf4323e.js";import"./f22-deb38015.js";import"./vue-flow-core-801b642d.js";import"./vue-flow-background-ae9691a6.js";/*!-----------------------------------------------------------------------------
+import{m as l}from"./home-e2ab9a7d.js";import"./f41-8a9a4144.js";import"./request-264354d4.js";import"./index-e2427a5c.js";import"./header-db0a1165.js";import"./f22-deb38015.js";import"./vue-flow-core-e1bee19b.js";import"./vue-flow-background-237907a3.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

+ 1 - 1
dist/index.html

@@ -38,7 +38,7 @@
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
  
     <title></title>
-    <script type="module" crossorigin src="./assets/index-10424e1d.js"></script>
+    <script type="module" crossorigin src="./assets/index-e2427a5c.js"></script>
     <link rel="stylesheet" href="./assets/index-697a1a5f.css">
   </head>
   <body>

+ 14 - 0
package-lock.json

@@ -11,6 +11,7 @@
         "@element-plus/icons": "^0.0.11",
         "@element-plus/icons-vue": "^2.3.1",
         "@kitware/vtk.js": "^29.7.3",
+        "@monaco-editor/loader": "^1.5.0",
         "@vue-flow/background": "^1.3.0",
         "@vue-flow/controls": "^1.1.2",
         "@vue-flow/core": "^1.37.1",
@@ -2589,6 +2590,14 @@
         "node": "^12.20.0 || >=14"
       }
     },
+    "node_modules/@monaco-editor/loader": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmmirror.com/@monaco-editor/loader/-/loader-1.5.0.tgz",
+      "integrity": "sha512-hKoGSM+7aAc7eRTRjpqAZucPmoNOC4UUbknb/VNoTkEIkCPhqV8LfbsgM1webRM7S/z21eHEx9Fkwx8Z/C/+Xw==",
+      "dependencies": {
+        "state-local": "^1.0.6"
+      }
+    },
     "node_modules/@napi-rs/canvas": {
       "version": "0.1.68",
       "resolved": "https://registry.npmmirror.com/@napi-rs/canvas/-/canvas-0.1.68.tgz",
@@ -7091,6 +7100,11 @@
         "node": ">=0.1.14"
       }
     },
+    "node_modules/state-local": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmmirror.com/state-local/-/state-local-1.0.7.tgz",
+      "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w=="
+    },
     "node_modules/stream-browserify": {
       "version": "3.0.0",
       "resolved": "https://registry.npmmirror.com/stream-browserify/-/stream-browserify-3.0.0.tgz",

+ 1 - 0
package.json

@@ -13,6 +13,7 @@
     "@element-plus/icons": "^0.0.11",
     "@element-plus/icons-vue": "^2.3.1",
     "@kitware/vtk.js": "^29.7.3",
+    "@monaco-editor/loader": "^1.5.0",
     "@vue-flow/background": "^1.3.0",
     "@vue-flow/controls": "^1.1.2",
     "@vue-flow/core": "^1.37.1",

+ 111 - 72
src/components/PythonEditor/index.vue

@@ -1,88 +1,127 @@
-<template>
-  <div :id="editorId" class="editorContainer"></div>
-</template>
-
 <script setup>
-import { ref, onMounted, onUnmounted, watch, computed, toRaw } from 'vue'
-import * as monaco from 'monaco-editor'
+import { ref, onMounted, onBeforeUnmount, watch, nextTick } from "vue";
+import loader from "@monaco-editor/loader";
 
 const props = defineProps({
   value: String,
-  language: String,
-})
-
-const emit = defineEmits(['change'])
-const editor = ref(null)
-const editorId = computed(() => `editor_${Math.random().toString(36).slice(2, 11)}`)
-
-const getEditorValue = () => toRaw(editor.value)?.getValue() || ''
-
-let resizeObserver = null
-
-onMounted(() => {
-  const el = document.getElementById(editorId.value)
-
-  if (!el) {
-    // console.warn('[MonacoEdit]找不到容器元素')
-    return
+  language: {
+    type: String,
+    default: "python",
+  },
+  theme: {
+    type: String,
+    default: "vs-light",
+  },
+});
+
+const emit = defineEmits(["update:value"]);
+
+const editorContainer = ref(null);
+let editorInstance = null;
+
+// 调试:打印容器尺寸
+const logContainerSize = () => {
+  if (!editorContainer.value) {
+    // console.log('Editor container not yet mounted');
+    return;
+  }
+  const rect = editorContainer.value.getBoundingClientRect();
+  // console.log('Container size:', rect.width, 'x', rect.height);
+};
+
+// 初始化 Monaco 编辑器
+const initEditor = async () => {
+  const monaco = await loader.init();
+  
+  // 等待容器渲染完成
+  await nextTick();
+  
+  // 添加额外延迟确保布局完成(仅开发时需要)
+  if (process.env.NODE_ENV === 'development') {
+    await new Promise(resolve => setTimeout(resolve, 50));
   }
 
-  const initEditor = () => {
-    if (editor.value || el.clientWidth === 0 || el.clientHeight === 0) return
-
-    // console.log('[MonacoEdit]尺寸可用,初始化编辑器')
-
-    monaco.editor.defineTheme('custom-light', {
-      base: 'vs',
-      inherit: true,
-      rules: [],
-      colors: {
-        'editorGutter.background': '#EEEEEE',
-      },
-    })
-
-    editor.value = monaco.editor.create(el, {
-      value: props.value || '',
-      language: props.language || 'python',
-      minimap: { enabled: true },
-      colorDecorators: true,
-      readOnly: false,
-      theme: 'custom-light',
-      automaticLayout: true,
-    })
-
-    editor.value.onDidChangeModelContent(() => {
-      emit('change', getEditorValue())
-    })
-
-    console.log('[MonacoEdit]初始化完成')
+  // 再次检查尺寸
+  const rect = editorContainer.value.getBoundingClientRect();
+  // console.log('Final container size:', rect.width, 'x', rect.height);
+
+  editorInstance = monaco.editor.create(editorContainer.value, {
+    value: props.value || "",
+    language: props.language,
+    theme: props.theme,
+  });
+
+  editorInstance.onDidChangeModelContent(() => {
+    const value = editorInstance.getValue();
+    emit("update:value", value);  // 触发v-model更新
+  });
+
+  // 强制立即布局
+  editorInstance.layout();
+};
+
+// 处理窗口大小变化
+const handleResize = () => {
+  if (editorInstance) {
+    // console.log('Window resized, updating editor layout');
+    editorInstance.layout();
   }
+};
 
-  // 使用 ResizeObserver 监听尺寸变化
-  resizeObserver = new ResizeObserver(() => {
-    if (el.clientWidth > 0 && el.clientHeight > 0 && !editor.value) {
-      initEditor()
+onMounted(() => {
+  // console.log('Component mounted, initializing editor...');
+  initEditor();
+});
+
+onBeforeUnmount(() => {
+  // console.log('Component unmounting, disposing editor...');
+  window.removeEventListener('resize', handleResize);
+  editorInstance?.dispose();
+});
+
+// 监听语言变化
+watch(
+  () => props.language,
+  (newLanguage) => {
+    if (editorInstance) {
+      console.log('Language changed to:', newLanguage);
+      loader.init().then((monaco) => {
+        monaco.editor.setModelLanguage(editorInstance.getModel(), newLanguage);
+      });
     }
-  })
-
-  resizeObserver.observe(el)
-})
-
-onUnmounted(() => {
-  if (editor.value) {
-    editor.value.dispose()
-    editor.value = null
   }
-
-  if (resizeObserver) {
-    resizeObserver.disconnect()
-    resizeObserver = null
+);
+
+// 监听值变化
+watch(
+  () => props.value,
+  (newValue) => {
+    if (editorInstance && editorInstance.getValue() !== newValue) {
+      console.log('Value updated programmatically');
+      editorInstance.setValue(newValue);
+    }
   }
-})
+);
 </script>
 
-<style>
+<template>
+  <div ref="editorContainer" class="editorContainer"></div>
+</template>
+
+<style scoped>
 .editorContainer {
-  height: 400px !important;
+  height: 400px;
+  width: 100%;
+  border: 1px solid #ccc; /* 调试边框 */
+  position: relative; /* 确保正确的定位上下文 */
+}
+
+/* 强制设置 Monaco 容器尺寸 */
+.editorContainer :deep(.monaco-editor) {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
 }
 </style>

+ 7 - 22
src/views/home.vue

@@ -1244,7 +1244,7 @@
           type="textarea"
           placeholder="Please input"
         /> -->
-              <PythonEdit v-show="pythoneditorshow" :value="textarea1" language="python" @change="handleEditorChange"/>
+              <PythonEdit v-show="pythoneditorshow" v-model:value="textarea1" language="python" @change="handleEditorChange"/>
               </div>
               <div class="pythfoter">
                 <div class="span active" >
@@ -1303,7 +1303,7 @@
             <template #header="{ titleId, titleClass }">
               <div class="my-header ">
                 <!-- <el-image :src="getImgPath('xuek0.png')" fit="contain"></el-image> -->
-                <h4 :id="titleId" :class="titleClass">FUM to FEM</h4>
+                <h4 :id="titleId" :class="titleClass">FUN to FEM</h4>
               </div>
             </template>
             <FSI ref="Fsiref"/>
@@ -2194,7 +2194,7 @@ const optiongroup =  ref([
   { label: 'HCFD', value: 'HCFD', img:'xuek5.png' },
   { label: 'Matlab', value: 'Matlab', img:'xuek6.png' },
   { label: 'Nastran', value: 'Nastran', img:'xuek7.png' },
-  { label: 'FUM to FEM', value: 'FSI', img:'fsi.png' },
+  { label: 'FUN to FEM', value: 'FSI', img:'fsi.png' },
   { label: 'Flight', value: 'Flight', img:'flight.png' },
 ])
 const eloptimize = ref([])
@@ -2654,7 +2654,7 @@ const pythonSubmit = () => {
     transCode:'MDO0037',
     pid: pid.value,
     wid: pythonwid.value,
-    python: newtextarea1.value,
+    python: textarea1.value,
   }
   request(param).then((res) => {
     ElMessage({
@@ -2666,23 +2666,7 @@ const pythonSubmit = () => {
   });
 }
 
-let newtextarea1 = ref(`import os
-import numpy as np
-from surromdao.solver import BaseSolver
 
-class Branin(BaseSolver):
-    def __init__(self, filename=os.path):
-        super().__init__(filename)
-    
-    def compute(self, xdict):
-        x = np.zeros(2)
-        # x[0] = xdict['x1']
-        # x[1] = xdict['x2']`);
-// python处理编辑器内容变化的方法
-const handleEditorChange = (value) => {
-  // console.log('Editor content changed in parent component:', value);
-  newtextarea1.value = value;
-};
 
 let MathFuncxinjian = ref(false)
 const MathFunctabchange = (val) => {
@@ -3108,7 +3092,7 @@ const curveLine = () => {
       ElMessage.error(err.returnMsg)
     })
 }
-
+// 过程监控1
 const curveLine2 = () => {
   const params = {
     transCode: 'MDO0021',
@@ -3127,6 +3111,7 @@ const curveLine2 = () => {
       ElMessage.error(err.returnMsg)
     })
 }
+// 过程监控2
 const curveLine3 = () => {
   const params = {
     transCode: 'MDO0021',
@@ -3148,7 +3133,7 @@ const curveLine3 = () => {
     })
 }
 
-
+// 可视化页数据
 const curveLine4 = () => {
   const params = {
     transCode: 'MDO0021',

+ 27 - 21
src/views/titlecomponent/MathFunc.vue

@@ -43,8 +43,8 @@
         </el-table>
     </div>
 
-    <div v-show="currentTab1 == '1'" style="margin-top: 10px">
-        <PythonEdit  :value="equation" language="python" @change="updateEquation"/>
+    <div v-if="currentTab1 == '1'" style="margin-top: 10px;height: 280px">
+        <PythonEdit  v-model:value="equation" language="python" />
     </div> 
 
     <div v-show="currentTab1 == '2'" class="eldesign classtable" style="margin-top: 10px">
@@ -204,7 +204,6 @@ const headerCellClassName = ({ column }) => {
   return '';
 };
 
-
 const convertToStringArray = (result, Data) => {
   console.log('Data:', Data);
 
@@ -214,6 +213,29 @@ const convertToStringArray = (result, Data) => {
     return result; // 返回原 result 或者根据需要返回其他默认值
   }
 
+  result = Data.map(row => {
+    // 获取每一行的 `code`, `name`, `value` 和 `flag`
+    const code = row.code || ' ';
+    const name = row.name || ' ';
+    const value = (row.value === null || row.value === undefined || row.value === '') ? ' ' : row.value;
+    const flag = (row.flag === null || row.flag === undefined || row.flag === '') ? ' ' : row.flag;
+
+    // 将字段连接为一个以逗号分隔的字符串
+    return `${code},${name},${value},${flag}`;
+  }).join(';');  // 每行之间用分号分隔
+
+  return result;
+}
+
+const convertToStringArray1 = (result, Data) => {
+  console.log('Data:', Data);
+
+  // 安全检查 Data,确保它是一个数组
+  if (!Array.isArray(Data)) {
+    console.error('Data should be an array');
+    return result; // 返回原 result 或者根据需要返回其他默认值
+  }
+
   result = Data.map(row => {
     // 获取每一行的 `code`, `name`, `value` 和 `flag`
     const paramid = row.paramid || ' ';
@@ -265,22 +287,6 @@ const getmathfuncAssign = (data) => {
   outParams.value = data.outParams;
 }
 
-let newequation = ref(`import os
-import numpy as np
-from surromdao.solver import BaseSolver
-
-class Branin(BaseSolver):
-    def __init__(self, filename=os.path):
-        super().__init__(filename)
-
-    def compute(self, xdict):
-        x = np.zeros(2)
-        # x[1] = x[2]`);
-let updateEquation = (value) => {
-  // console.log('updateEquation:', value);
-  newequation.value = value;
-}
-
 const getmathfuncsave = (id,nowid) => {
   if(nowid){
     wid.value = nowid
@@ -291,8 +297,8 @@ const getmathfuncsave = (id,nowid) => {
     transCode: "MDO0064",
     pid: pid.value,
     wid: wid.value,
-    equation: newequation.value,
-    inParams: convertToStringArray([],inParams.value),
+    equation: equation.value,
+    inParams: convertToStringArray1([],inParams.value),
     outParams: convertToStringArray([],outParams.value)
   };
   request(params).then((res) => {

+ 1 - 1
src/views/vuetree/Sidebar.vue

@@ -175,7 +175,7 @@ const datatree = ref([
         },
         {
           id:'3-13',
-          label: 'FUM to FEM',
+          label: 'FUN to FEM',
           img:'fsi.png',
           name:'FSI'
         },

+ 1 - 1
src/views/vuetree/useDnD.js

@@ -64,7 +64,7 @@ function imagefun(){
     }else if(nid=='3-12'){
       return datas = {label:'TACS', image:tacs,name:'TACS'}
     }else if(nid=='3-13'){
-      return datas = {label:'FUM to FEM', image:fsi,backgroud:fsibackground , name:'FSI'}
+      return datas = {label:'FUN to FEM', image:fsi,backgroud:fsibackground , name:'FSI'}
     }else if(nid=='3-14'){
       return datas = {label:'MathFunc', image:mathfunc,name:'MathFunc'}
     }else if(nid=='3-15'){

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů