Ver Fonte

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

lichunyang há 5 meses atrás
pai
commit
7f2e82e038
60 ficheiros alterados com 432 adições e 174 exclusões
  1. 1 1
      dist/assets/cssMode-f669989e.js
  2. 1 1
      dist/assets/delete-961a0b3b.js
  3. 0 0
      dist/assets/demo-e2d43e94.js
  4. 0 0
      dist/assets/f41-373d8746.js
  5. 1 1
      dist/assets/f41-c8f9dcec.css
  6. 1 1
      dist/assets/freemarker2-3f0100ea.js
  7. 1 1
      dist/assets/handlebars-88dcb380.js
  8. 0 0
      dist/assets/header-8bc124b7.js
  9. 0 0
      dist/assets/home-3e25e01a.css
  10. 0 0
      dist/assets/home-61045167.css
  11. 0 0
      dist/assets/home-c06ab8c3.js
  12. 1 1
      dist/assets/html-1754f3e2.js
  13. 1 1
      dist/assets/htmlMode-1fcdfcd9.js
  14. 0 0
      dist/assets/index-33dc08bd.js
  15. 0 0
      dist/assets/index-697a1a5f.css
  16. 0 0
      dist/assets/index-9c7ea21b.js
  17. 0 0
      dist/assets/index-f77047c8.js
  18. 1 1
      dist/assets/javascript-2b11b3c4.js
  19. 1 1
      dist/assets/jsonMode-dd3a9072.js
  20. 1 1
      dist/assets/liquid-ca404129.js
  21. 1 1
      dist/assets/mdx-dba9bb97.js
  22. 0 0
      dist/assets/newfile-64388426.js
  23. 0 0
      dist/assets/openpage-67fa2ba5.js
  24. 1 1
      dist/assets/python-064ce787.js
  25. 1 1
      dist/assets/querylist-c4a4e6bd.js
  26. 1 1
      dist/assets/razor-d01b8f50.js
  27. 0 0
      dist/assets/request-d1c0e8fa.js
  28. 0 1
      dist/assets/savefile-5d7380b3.js
  29. 1 0
      dist/assets/savefile-9b82f43f.js
  30. 1 1
      dist/assets/tsMode-680249aa.js
  31. 1 1
      dist/assets/typescript-96695fb6.js
  32. 0 0
      dist/assets/vue-flow-background-59b4c9ee.js
  33. 0 0
      dist/assets/vue-flow-core-87cec84a.js
  34. 0 0
      dist/assets/vue-flow-core-9f2a7971.js
  35. BIN
      dist/assets/xkfx-17960ee6.png
  36. 1 1
      dist/assets/xml-42fdf0e1.js
  37. 1 1
      dist/assets/yaml-a2f6b523.js
  38. BIN
      dist/assets/youhq-bad7cbb1.png
  39. BIN
      dist/assets/youhwt-d3acff5c.png
  40. 2 2
      dist/index.html
  41. BIN
      src/assets/flowimg/MathFunc.png
  42. BIN
      src/assets/flowimg/xkfx.png
  43. BIN
      src/assets/flowimg/youhq.png
  44. BIN
      src/assets/flowimg/youhwt.png
  45. BIN
      src/assets/img/mathfuncFx.png
  46. BIN
      src/assets/img/mathfuncX.png
  47. BIN
      src/assets/img/mathfuncY.png
  48. 14 0
      src/style/index.css
  49. 11 0
      src/views/echart/optimize_monitor.vue
  50. 1 1
      src/views/echart/scatter.vue
  51. 20 20
      src/views/echart/tablelist.vue
  52. 92 52
      src/views/home.vue
  53. 7 6
      src/views/titlecomponent/ADflow.vue
  54. 5 1
      src/views/titlecomponent/ListSE.vue
  55. 141 0
      src/views/titlecomponent/MathFunc.vue
  56. 14 9
      src/views/titlecomponent/Xfoil.vue
  57. 48 14
      src/views/titlecomponent/csts.vue
  58. 18 12
      src/views/vuetree/Sidebar.vue
  59. 38 36
      src/views/vuetree/index.vue
  60. 2 2
      src/views/vuetree/useDnD.js

+ 1 - 1
dist/assets/cssMode-f6aa4fba.js → dist/assets/cssMode-f669989e.js

@@ -1,4 +1,4 @@
-import{m as tt}from"./home-a10b503e.js";import"./f41-a5f8e677.js";import"./request-855b7851.js";import"./index-a31e587f.js";import"./header-e94d9971.js";import"./f22-deb38015.js";import"./vue-flow-core-9f2a7971.js";import"./vue-flow-background-9c86f726.js";/*!-----------------------------------------------------------------------------
+import{m as tt}from"./home-c06ab8c3.js";import"./f41-373d8746.js";import"./request-d1c0e8fa.js";import"./index-f77047c8.js";import"./header-8bc124b7.js";import"./f22-deb38015.js";import"./vue-flow-core-87cec84a.js";import"./vue-flow-background-59b4c9ee.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

+ 1 - 1
dist/assets/delete-e6649350.js → dist/assets/delete-961a0b3b.js

@@ -1 +1 @@
-import{r as s}from"./index-a31e587f.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-f77047c8.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};

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/assets/demo-e2d43e94.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/assets/f41-373d8746.js


+ 1 - 1
dist/assets/f41-3ff5b14d.css → dist/assets/f41-c8f9dcec.css

@@ -1 +1 @@
-.selcal[data-v-51ce846c]{position:absolute;top:37%;width:26px;color:#000;font-size:14px;font-weight:700;left:5px}.diedai[data-v-51ce846c]{color:#000;font-size:14px;padding-bottom:20px;font-weight:700}.boy[data-v-6f6a5acf]{font-size:24px;color:red}.color[data-v-9ca4274c]{font-size:24px;color:#00f}
+.selcal[data-v-b7cd76ae]{position:absolute;top:37%;width:26px;color:#000;font-size:14px;font-weight:700;left:5px}.diedai[data-v-b7cd76ae]{color:#000;font-size:14px;padding-bottom:20px;font-weight:700}.boy[data-v-6f6a5acf]{font-size:24px;color:red}.color[data-v-9ca4274c]{font-size:24px;color:#00f}

+ 1 - 1
dist/assets/freemarker2-31451388.js → dist/assets/freemarker2-3f0100ea.js

@@ -1,4 +1,4 @@
-import{m as F}from"./home-a10b503e.js";import"./f41-a5f8e677.js";import"./request-855b7851.js";import"./index-a31e587f.js";import"./header-e94d9971.js";import"./f22-deb38015.js";import"./vue-flow-core-9f2a7971.js";import"./vue-flow-background-9c86f726.js";/*!-----------------------------------------------------------------------------
+import{m as F}from"./home-c06ab8c3.js";import"./f41-373d8746.js";import"./request-d1c0e8fa.js";import"./index-f77047c8.js";import"./header-8bc124b7.js";import"./f22-deb38015.js";import"./vue-flow-core-87cec84a.js";import"./vue-flow-background-59b4c9ee.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

+ 1 - 1
dist/assets/handlebars-adf67f73.js → dist/assets/handlebars-88dcb380.js

@@ -1,4 +1,4 @@
-import{m as l}from"./home-a10b503e.js";import"./f41-a5f8e677.js";import"./request-855b7851.js";import"./index-a31e587f.js";import"./header-e94d9971.js";import"./f22-deb38015.js";import"./vue-flow-core-9f2a7971.js";import"./vue-flow-background-9c86f726.js";/*!-----------------------------------------------------------------------------
+import{m as l}from"./home-c06ab8c3.js";import"./f41-373d8746.js";import"./request-d1c0e8fa.js";import"./index-f77047c8.js";import"./header-8bc124b7.js";import"./f22-deb38015.js";import"./vue-flow-core-87cec84a.js";import"./vue-flow-background-59b4c9ee.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/assets/header-8bc124b7.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/assets/home-3e25e01a.css


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/assets/home-61045167.css


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/assets/home-c06ab8c3.js


+ 1 - 1
dist/assets/html-20d315d8.js → dist/assets/html-1754f3e2.js

@@ -1,4 +1,4 @@
-import{m as s}from"./home-a10b503e.js";import"./f41-a5f8e677.js";import"./request-855b7851.js";import"./index-a31e587f.js";import"./header-e94d9971.js";import"./f22-deb38015.js";import"./vue-flow-core-9f2a7971.js";import"./vue-flow-background-9c86f726.js";/*!-----------------------------------------------------------------------------
+import{m as s}from"./home-c06ab8c3.js";import"./f41-373d8746.js";import"./request-d1c0e8fa.js";import"./index-f77047c8.js";import"./header-8bc124b7.js";import"./f22-deb38015.js";import"./vue-flow-core-87cec84a.js";import"./vue-flow-background-59b4c9ee.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

+ 1 - 1
dist/assets/htmlMode-019ea3a3.js → dist/assets/htmlMode-1fcdfcd9.js

@@ -1,4 +1,4 @@
-import{m as ft}from"./home-a10b503e.js";import"./f41-a5f8e677.js";import"./request-855b7851.js";import"./index-a31e587f.js";import"./header-e94d9971.js";import"./f22-deb38015.js";import"./vue-flow-core-9f2a7971.js";import"./vue-flow-background-9c86f726.js";/*!-----------------------------------------------------------------------------
+import{m as ft}from"./home-c06ab8c3.js";import"./f41-373d8746.js";import"./request-d1c0e8fa.js";import"./index-f77047c8.js";import"./header-8bc124b7.js";import"./f22-deb38015.js";import"./vue-flow-core-87cec84a.js";import"./vue-flow-background-59b4c9ee.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/assets/index-33dc08bd.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/assets/index-697a1a5f.css


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/assets/index-9c7ea21b.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/assets/index-f77047c8.js


+ 1 - 1
dist/assets/javascript-97baf4c3.js → dist/assets/javascript-2b11b3c4.js

@@ -1,4 +1,4 @@
-import{conf as t,language as e}from"./typescript-0b3bb347.js";import"./home-a10b503e.js";import"./f41-a5f8e677.js";import"./request-855b7851.js";import"./index-a31e587f.js";import"./header-e94d9971.js";import"./f22-deb38015.js";import"./vue-flow-core-9f2a7971.js";import"./vue-flow-background-9c86f726.js";/*!-----------------------------------------------------------------------------
+import{conf as t,language as e}from"./typescript-96695fb6.js";import"./home-c06ab8c3.js";import"./f41-373d8746.js";import"./request-d1c0e8fa.js";import"./index-f77047c8.js";import"./header-8bc124b7.js";import"./f22-deb38015.js";import"./vue-flow-core-87cec84a.js";import"./vue-flow-background-59b4c9ee.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

+ 1 - 1
dist/assets/jsonMode-18ae7ab6.js → dist/assets/jsonMode-dd3a9072.js

@@ -1,4 +1,4 @@
-import{m as Lt}from"./home-a10b503e.js";import"./f41-a5f8e677.js";import"./request-855b7851.js";import"./index-a31e587f.js";import"./header-e94d9971.js";import"./f22-deb38015.js";import"./vue-flow-core-9f2a7971.js";import"./vue-flow-background-9c86f726.js";/*!-----------------------------------------------------------------------------
+import{m as Lt}from"./home-c06ab8c3.js";import"./f41-373d8746.js";import"./request-d1c0e8fa.js";import"./index-f77047c8.js";import"./header-8bc124b7.js";import"./f22-deb38015.js";import"./vue-flow-core-87cec84a.js";import"./vue-flow-background-59b4c9ee.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

+ 1 - 1
dist/assets/liquid-8ecbc99d.js → dist/assets/liquid-ca404129.js

@@ -1,4 +1,4 @@
-import{m as d}from"./home-a10b503e.js";import"./f41-a5f8e677.js";import"./request-855b7851.js";import"./index-a31e587f.js";import"./header-e94d9971.js";import"./f22-deb38015.js";import"./vue-flow-core-9f2a7971.js";import"./vue-flow-background-9c86f726.js";/*!-----------------------------------------------------------------------------
+import{m as d}from"./home-c06ab8c3.js";import"./f41-373d8746.js";import"./request-d1c0e8fa.js";import"./index-f77047c8.js";import"./header-8bc124b7.js";import"./f22-deb38015.js";import"./vue-flow-core-87cec84a.js";import"./vue-flow-background-59b4c9ee.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

+ 1 - 1
dist/assets/mdx-77d7e910.js → dist/assets/mdx-dba9bb97.js

@@ -1,4 +1,4 @@
-import{m as p}from"./home-a10b503e.js";import"./f41-a5f8e677.js";import"./request-855b7851.js";import"./index-a31e587f.js";import"./header-e94d9971.js";import"./f22-deb38015.js";import"./vue-flow-core-9f2a7971.js";import"./vue-flow-background-9c86f726.js";/*!-----------------------------------------------------------------------------
+import{m as p}from"./home-c06ab8c3.js";import"./f41-373d8746.js";import"./request-d1c0e8fa.js";import"./index-f77047c8.js";import"./header-8bc124b7.js";import"./f22-deb38015.js";import"./vue-flow-core-87cec84a.js";import"./vue-flow-background-59b4c9ee.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/assets/newfile-64388426.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/assets/openpage-67fa2ba5.js


+ 1 - 1
dist/assets/python-7c60e8b7.js → dist/assets/python-064ce787.js

@@ -1,4 +1,4 @@
-import{m as a}from"./home-a10b503e.js";import"./f41-a5f8e677.js";import"./request-855b7851.js";import"./index-a31e587f.js";import"./header-e94d9971.js";import"./f22-deb38015.js";import"./vue-flow-core-9f2a7971.js";import"./vue-flow-background-9c86f726.js";/*!-----------------------------------------------------------------------------
+import{m as a}from"./home-c06ab8c3.js";import"./f41-373d8746.js";import"./request-d1c0e8fa.js";import"./index-f77047c8.js";import"./header-8bc124b7.js";import"./f22-deb38015.js";import"./vue-flow-core-87cec84a.js";import"./vue-flow-background-59b4c9ee.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

+ 1 - 1
dist/assets/querylist-927fe41c.js → dist/assets/querylist-c4a4e6bd.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-a31e587f.js";import{r as Ht}from"./request-855b7851.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-f77047c8.js";import{r as Ht}from"./request-d1c0e8fa.js";//! moment.js
 //! version : 2.30.1
 //! authors : Tim Wood, Iskren Chernev, Moment.js contributors
 //! license : MIT

+ 1 - 1
dist/assets/razor-5472b9f3.js → dist/assets/razor-d01b8f50.js

@@ -1,4 +1,4 @@
-import{m as s}from"./home-a10b503e.js";import"./f41-a5f8e677.js";import"./request-855b7851.js";import"./index-a31e587f.js";import"./header-e94d9971.js";import"./f22-deb38015.js";import"./vue-flow-core-9f2a7971.js";import"./vue-flow-background-9c86f726.js";/*!-----------------------------------------------------------------------------
+import{m as s}from"./home-c06ab8c3.js";import"./f41-373d8746.js";import"./request-d1c0e8fa.js";import"./index-f77047c8.js";import"./header-8bc124b7.js";import"./f22-deb38015.js";import"./vue-flow-core-87cec84a.js";import"./vue-flow-background-59b4c9ee.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/assets/request-d1c0e8fa.js


+ 0 - 1
dist/assets/savefile-5d7380b3.js

@@ -1 +0,0 @@
-import"./request-855b7851.js";import{o as t,b as s,F as o,e}from"./index-a31e587f.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-9b82f43f.js

@@ -0,0 +1 @@
+import"./request-d1c0e8fa.js";import{o as t,b as s,F as o,e}from"./index-f77047c8.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-0cbee4da.js → dist/assets/tsMode-680249aa.js

@@ -1,4 +1,4 @@
-import{t as I,m as N}from"./home-a10b503e.js";import"./f41-a5f8e677.js";import"./request-855b7851.js";import"./index-a31e587f.js";import"./header-e94d9971.js";import"./f22-deb38015.js";import"./vue-flow-core-9f2a7971.js";import"./vue-flow-background-9c86f726.js";/*!-----------------------------------------------------------------------------
+import{t as I,m as N}from"./home-c06ab8c3.js";import"./f41-373d8746.js";import"./request-d1c0e8fa.js";import"./index-f77047c8.js";import"./header-8bc124b7.js";import"./f22-deb38015.js";import"./vue-flow-core-87cec84a.js";import"./vue-flow-background-59b4c9ee.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

+ 1 - 1
dist/assets/typescript-0b3bb347.js → dist/assets/typescript-96695fb6.js

@@ -1,4 +1,4 @@
-import{m as a}from"./home-a10b503e.js";import"./f41-a5f8e677.js";import"./request-855b7851.js";import"./index-a31e587f.js";import"./header-e94d9971.js";import"./f22-deb38015.js";import"./vue-flow-core-9f2a7971.js";import"./vue-flow-background-9c86f726.js";/*!-----------------------------------------------------------------------------
+import{m as a}from"./home-c06ab8c3.js";import"./f41-373d8746.js";import"./request-d1c0e8fa.js";import"./index-f77047c8.js";import"./header-8bc124b7.js";import"./f22-deb38015.js";import"./vue-flow-core-87cec84a.js";import"./vue-flow-background-59b4c9ee.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/assets/vue-flow-background-59b4c9ee.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/assets/vue-flow-core-87cec84a.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/assets/vue-flow-core-9f2a7971.js


BIN
dist/assets/xkfx-17960ee6.png


+ 1 - 1
dist/assets/xml-e22466e7.js → dist/assets/xml-42fdf0e1.js

@@ -1,4 +1,4 @@
-import{m}from"./home-a10b503e.js";import"./f41-a5f8e677.js";import"./request-855b7851.js";import"./index-a31e587f.js";import"./header-e94d9971.js";import"./f22-deb38015.js";import"./vue-flow-core-9f2a7971.js";import"./vue-flow-background-9c86f726.js";/*!-----------------------------------------------------------------------------
+import{m}from"./home-c06ab8c3.js";import"./f41-373d8746.js";import"./request-d1c0e8fa.js";import"./index-f77047c8.js";import"./header-8bc124b7.js";import"./f22-deb38015.js";import"./vue-flow-core-87cec84a.js";import"./vue-flow-background-59b4c9ee.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

+ 1 - 1
dist/assets/yaml-d50167b6.js → dist/assets/yaml-a2f6b523.js

@@ -1,4 +1,4 @@
-import{m as l}from"./home-a10b503e.js";import"./f41-a5f8e677.js";import"./request-855b7851.js";import"./index-a31e587f.js";import"./header-e94d9971.js";import"./f22-deb38015.js";import"./vue-flow-core-9f2a7971.js";import"./vue-flow-background-9c86f726.js";/*!-----------------------------------------------------------------------------
+import{m as l}from"./home-c06ab8c3.js";import"./f41-373d8746.js";import"./request-d1c0e8fa.js";import"./index-f77047c8.js";import"./header-8bc124b7.js";import"./f22-deb38015.js";import"./vue-flow-core-87cec84a.js";import"./vue-flow-background-59b4c9ee.js";/*!-----------------------------------------------------------------------------
  * Copyright (c) Microsoft Corporation. All rights reserved.
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
  * Released under the MIT license

BIN
dist/assets/youhq-bad7cbb1.png


BIN
dist/assets/youhwt-d3acff5c.png


+ 2 - 2
dist/index.html

@@ -38,8 +38,8 @@
     <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-a31e587f.js"></script>
-    <link rel="stylesheet" href="./assets/index-56c55eef.css">
+    <script type="module" crossorigin src="./assets/index-f77047c8.js"></script>
+    <link rel="stylesheet" href="./assets/index-697a1a5f.css">
   </head>
   <body>
     <div id="app"></div>

BIN
src/assets/flowimg/MathFunc.png


BIN
src/assets/flowimg/xkfx.png


BIN
src/assets/flowimg/youhq.png


BIN
src/assets/flowimg/youhwt.png


BIN
src/assets/img/mathfuncFx.png


BIN
src/assets/img/mathfuncX.png


BIN
src/assets/img/mathfuncY.png


+ 14 - 0
src/style/index.css

@@ -333,6 +333,10 @@ overflow: hidden;
     overflow: auto;
     width: 100%;
   }
+  .right_container {
+    flex: 1;
+    overflow: auto; /* 可选:让内容可以滚动 */
+  }
   .main_model{
     width: 100%;
     height:calc(100vh - 154px) ;
@@ -851,4 +855,14 @@ width: 150px;
 }
 .footerp .pythfoter .el-textarea__inner{
   min-height: 60px!important;
+}
+
+/* 控制 tooltip 内容的最大宽度和换行 */
+.el-tooltip__popper {
+  max-width: 300px !important; /* 设置最大宽度 */
+}
+
+.el-tooltip__content {
+  white-space: normal !important;  /* 允许换行 */
+  word-break: break-word;  /* 防止长词汇不换行 */
 }

+ 11 - 0
src/views/echart/optimize_monitor.vue

@@ -370,6 +370,17 @@ const linechart = () => {
       borderColor: "rgba(147, 235, 248, .8)",
       textStyle: {
         color: "#FFF"
+      },
+      formatter: function (params) {
+        let maxShow = 10;
+        let result = params[0].axisValue + '<br/>';
+        for (let i = 0; i < Math.min(params.length, maxShow); i++) {
+          result += `${params[i].marker}${params[i].seriesName}: ${params[i].data}<br/>`;
+        }
+        if (params.length > maxShow) {
+          result += '...更多';
+        }
+        return result;
       }
     },
     legend: {

+ 1 - 1
src/views/echart/scatter.vue

@@ -273,7 +273,7 @@ const selectshuju = (listcbval,listcbval2,dataheader, data) => {
     },
     yAxis: {
       type: "value",  // y 轴是数值型
-      scale: true,
+      // scale: true,
     },
     series: series.value,  // 使用生成的 series 数据
   });

+ 20 - 20
src/views/echart/tablelist.vue

@@ -1,17 +1,17 @@
 <template>
-  <div class="classtable" style="width:100%; height: 100%;">
+  <div class="classtable" style="width:100%; height: 100%; overflow: auto;">
+    <div v-show="tableshow">
     <el-table :data="tabledataliebiao"
     border
     style=" overflow: auto; height: 100%;"
-    
-    :key="tableKey"
     >
+    
     <el-table-column type="index" label="编号" width="100"></el-table-column>
-      <el-table-column v-for="(header, index) in tableHeaders" :key="index" :prop="header.prop" show-overflow-tooltip
-        :label="header.label" >
+      <el-table-column v-for="(header, index) in visibleHeaders" :key="index" :prop="header.prop" show-overflow-tooltip
+        :label="header.label" min-width="200">
       </el-table-column>
     </el-table>
-
+    </div>
   </div>
 </template>
 
@@ -35,21 +35,19 @@ const props = defineProps({
   }
 })
 
-// 引用 ElTable 组件
-const tableKey = ref(0);
+const visibleHeaders = ref([]);
+
+let tableshow = ref(false)
+
+const selectshuju = (listcbval) => {
+  if (!listcbval || listcbval.length === 0) {
+    tableshow.value = false;  // 没有选中列时不显示表格
+  } else {
+    visibleHeaders.value = props.tableHeaders.filter(header => listcbval.includes(header.prop));
+    tableshow.value = true;
+  }
+}
 
-watch(
-  () => props.tablelistshow,
-  (newValue) => {
-    if (newValue) {
-      nextTick(() => {
-        tableKey.value++;
-        console.log("tableKey:", tableKey.value);
-      })
-    }
-  },
-  { immediate: true }
-)
 
 const lbjkheaderCellClassName = ({ columnIndex }) => {
   if( columnIndex === 0 ) return '';
@@ -66,4 +64,6 @@ const lbjkheaderCellClassName = ({ columnIndex }) => {
   }
 }
 
+defineExpose({ selectshuju })
+
 </script>

+ 92 - 52
src/views/home.vue

@@ -39,6 +39,10 @@
                       <span>{{ f4ce }}</span>
                       <el-select v-model="f4ce" class="no-border headersele" :suffix-icon="CaretBottom">
                         <el-option v-for="item in optiongroup1" :key="item.value" :label="item.label" :value="item.value">
+                          <div style="display: flex; align-items: center;">
+                            <img :src="getflowImgPath(item.img)" style="width: 20px; height: 20px; margin-right: 10px;" />
+                            <span>{{ item.label }}</span>
+                          </div>
                         </el-option>
                       </el-select>
                     </div>
@@ -46,10 +50,12 @@
                       <el-image :src="getImgPath('tow2.png')" fit="cover" />
                       <span>{{ modelban }}</span>
                       <el-select v-model="modelban" class="no-border headersele" :suffix-icon="CaretBottom">
-                        <el-option-group v-for="group in optiongroup" :key="group.label" :label="group.label">
-                          <el-option v-for="item in group.options" :key="item.value" :label="item.label"
-                            :value="item.value" />
-                        </el-option-group>
+                        <el-option v-for="item in optiongroup" :key="item.value" :label="item.label" :value="item.value">
+                          <div style="display: flex; align-items: center;">
+                            <img :src="getflowImgPath(item.img)" style="width: 20px; height: 20px; margin-right: 10px;" />
+                            <span>{{ item.label }}</span>
+                          </div>
+                        </el-option>
                       </el-select>
                     </div>
                     <div class="item2 margr" @click="clickgeometry($event, index, 'Role-' + '2', undmodel)">
@@ -753,7 +759,7 @@
               </div>
             </template>
             <div>
-              <ListSE @update="handleUpdate"/>
+              <ListSE :isList="true" @update="handleUpdate"/>
               <!-- <el-form>
                 <el-form-item label="设计集:" >
                   <el-select v-model="listval" :suffix-icon="CaretBottom" placeholder="请选择">
@@ -774,7 +780,7 @@
               <div class="dialog-footer">
                 
                 <el-button @click="dialog.listdialog = false">取消</el-button>
-                <el-button type="primary" @click="dialog.listdialog = false">
+                <el-button type="primary" @click="selectshujuto();dialog.listdialog = false">
                   确定
                 </el-button>
               </div>
@@ -791,7 +797,7 @@
               </div>
             </template>
             <div>
-              <ListSE @update="handleUpdate"/>
+              <ListSE :isList="false" @update="handleUpdate"/>
             </div>
             <template #footer>
               <div class="dialog-footer">
@@ -814,7 +820,7 @@
               </div>
             </template>
             <div>
-              <ListSE @update="handleUpdate"/>
+              <ListSE :isList="false" @update="handleUpdate"/>
             </div>
             <template #footer>
               <div class="dialog-footer">
@@ -1140,7 +1146,7 @@
 
             <template #header="{ titleId, titleClass }">
               <div class="my-header ">
-                <el-image :src="getImgPath('t2.png')" fit="contain"></el-image>
+                <!-- <el-image :src="getImgPath('t2.png')" fit="contain"></el-image> -->
                 <h4 :id="titleId" :class="titleClass">优化算法:</h4>
               </div>
             </template>
@@ -1263,6 +1269,33 @@
               </div>
             </template>
           </el-dialog>
+          <!-- MathFunc -->
+          <el-dialog v-model="dialog.MathFuncdialog" align-center :modal="false" :close-on-click-modal="false"
+            :append-to-body="true" draggable :fullscreen="false" :modal-append-to-body="false" modal-class="summary-dlg"
+            :before-close="handleClose" width="500" class="dialog_class bgcolor colortext tianjia sel">
+
+            <template #header="{ titleId, titleClass }">
+              <div class="my-header ">
+                <!-- <el-image :src="getImgPath('xuek0.png')" fit="contain"></el-image> -->
+                <h4 :id="titleId" :class="titleClass">MathFunc</h4>
+              </div>
+            </template>
+            <MathFunc ref="MathFuncref" @selectTab="MathFunctabchange"/>
+            <template #footer>
+              <div style="display: flex;justify-content: space-between;">
+                <div>
+                  <el-button v-show="MathFuncxinjian">新建</el-button>
+                </div>
+                <div class="dialog-footer">
+                  <el-button @click="dialog.MathFuncdialog = false">取消</el-button>
+                  <el-button type="primary" @click="; dialog.MathFuncdialog = false">
+                    确定
+                  </el-button>
+                </div>
+              </div>
+              
+            </template>
+          </el-dialog>
           <!-- FSI -->
            <el-dialog v-model="dialog.fsidialog" align-center :modal="false" :close-on-click-modal="false"
             :append-to-body="true" draggable :fullscreen="false" :modal-append-to-body="false" modal-class="summary-dlg"
@@ -1308,7 +1341,7 @@
             <!--left菜单栏  -->
             <Sidebar ref="Sidebarref" />
             <!-- 放图形 -->
-            <div class="main_container">
+            <div class="right_container">
               <div class="main_model">
                 <div class="jindutiao" v-show="progressshow">
                   <span style="width: 150px;">运行进度</span>
@@ -1656,6 +1689,7 @@ import ffds from './titlecomponent/ffds.vue'
 import cloudsecond from "./titlecomponent/Cloudsecond.vue";
 import FSI from './titlecomponent/FSI.vue'
 import Flight from './titlecomponent/Flight.vue'
+import MathFunc from './titlecomponent/MathFunc.vue'
 import ListSE from "./titlecomponent/ListSE.vue";
 import TACS from "./titlecomponent/TACS.vue";
 
@@ -1693,11 +1727,12 @@ let Doptimizeref=ref();
 let Toptimizeref=ref();
 let Fsiref=ref();
 let Flightref=ref();
+let MathFuncref=ref();
 let f4ce = ref("优化问题组件");
 let modelban = ref("学科分析组件");
 let undmodel=ref('优化器组件');
 let optiongroup1 = ref([
-  { label: '优化问题', value: '优化问题' }
+  { label: '优化问题', value: '优化问题',img:'wen.png' }
 ])
 let options4 = ref([
   { label: '进化优化器', value: '进化优化器', icon:xuek10 },
@@ -2116,6 +2151,7 @@ let dialog = ref({
   guanli: false,
   optgroup:false,
   Pythonshow:false,
+  MathFuncdialog:false,
   listdialog:false,
   scatterdialog:false,
   echartLinedialog:false,
@@ -2143,39 +2179,23 @@ let tasklist = ref([
   { label: '噪声', value: '噪声' },
 ])
 
-const optiongroup = [
-  {
-    label: '大飞机',
-    options: [
-      {
-        value: '气动优化',
-        label: '气动优化',
-      },
-      {
-        value: '气弹优化',
-        label: '气弹优化',
-      },
-    ],
-  },
-  {
-    label: '直升机',
-    options: [
-      {
-        value: '气动优化1',
-        label: '气动优化',
-      },
-      {
-        value: '气弹优化2',
-        label: '气弹优化',
-      },
-      {
-        value: '气动噪声优化',
-        label: '气动噪声优化',
-      },
-
-    ],
-  },
-]
+const optiongroup =  ref([
+  { label: 'CST', value: 'CST', img:'xuek0.png' },
+  { label: 'FFD', value: 'FFD', img:'ffd.png' },
+  { label: 'Xfoil', value: 'Xfoil', img:'xuek9.png' },
+  { label: 'ADflow', value: 'ADflow', img:'ADflow.png' },
+  { label: 'TACS', value: 'TACS', img:'TACS.png' },
+  { label: 'CATIA', value: 'CATIA', img:'xuek1.png' },
+  { label: 'Python', value: 'Python', img:'xuek8.png' },
+  { label: 'Excel', value: 'Excel', img:'xuek2.png' },
+  { label: 'Feko', value: 'Feko', img:'xuek3.png' },
+  { label: 'Fluent', value: 'Fluent', img:'xuek4.png' },
+  { 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: 'Flight', value: 'Flight', img:'flight.png' },
+])
 const eloptimize = ref([])
 const tableData = ref([])
 const designtable = ref([])
@@ -2212,6 +2232,10 @@ let num = ref(1)
 const getImgPath = (url) => {
   return new URL(`../assets/img/${url}`, import.meta.url).href
 }
+const getflowImgPath = (url) => {
+  return new URL(`../assets/flowimg/${url}`, import.meta.url).href
+}
+
 onMounted(() => {
   //console.log( Sidebarref.value.datatree);
 
@@ -2426,6 +2450,8 @@ const optimizerfalse = (val) => {
   }else if(name == 'Flight'){
     dialog.value.flightdialog = true;
     
+  }else if(name == 'MathFunc'){
+    dialog.value.MathFuncdialog = true;
   }
    else {
     dialog.value.optimizer = false;
@@ -2437,6 +2463,7 @@ const optimizerfalse = (val) => {
     dialog.value.XfAD = false;
     dialog.value.cstffd = false;
     dialog.value.Pythonshow = false;
+    dialog.value.MathFuncdialog = false;
     dialog.value.fsidialog = false;
     dialog.value.flightdialog = false;
   }
@@ -2619,6 +2646,18 @@ const handleEditorChange = (value) => {
   console.log('Editor content changed in parent component:', value);
 };
 
+let MathFuncxinjian = ref('ture')
+const MathFunctabchange = (val) => {
+  // console.log('MathFunctabchange:',val);
+  if(val == '1'){
+    MathFuncxinjian.value = false;
+  }else{
+    MathFuncxinjian.value = true;
+  }
+}
+
+
+
 // 模块选择
 const clickgeometry = (e, index, key, name) => {
   // console.log(key);
@@ -2706,6 +2745,9 @@ const dialogbolen = () => {
     case "列表":
       echatsfunc();
       dialog.value.listdialog = true;
+      nextTick(() => {
+        initListSe();
+      });
       break;
     case "面积图":
       echatsfunc();
@@ -2937,7 +2979,7 @@ const runok = () => {
       })
     })
     .catch((err) => {
-      ElMessage.error(err.returnMsg)
+      ElMessage.error('运行失败')
     })
 }
 const tableKey = ref(0);
@@ -3096,10 +3138,6 @@ const curveLine4 = () => {
       }
       console.log("表格数据:", datatotabledata.value);
       console.log("表头数据:", datatotableheader.value);
-      // emitter.emit('update:datatotableheader', datatotableheader.value);
-      // emitter.emit('update:datatotabledata', datatotabledata.value);
-      // scatterref.value.getshuju(datatotableheader.value,datatotabledata.value);
-      // echartLineref.value.getshuju(datatotableheader.value,datatotabledata.value);
     })
     .catch((err) => {
       ElMessage.error(err.returnMsg)
@@ -3197,6 +3235,8 @@ const selectshujuto = () => {
     scatterref.value.selectshuju(listcbval.value,listcbval2.value,datatotableheader.value,datatotabledata.value);
   }else if(tabactive.value === '折线图'){
     echartLineref.value.selectshuju(listcbval.value,listcbval2.value,datatotableheader.value,datatotabledata.value);
+  }else if(tabactive.value === '列表'){
+    tablelistref.value.selectshuju(listcbval2.value)
   }
 }
 
@@ -4418,7 +4458,7 @@ const lbjkheaderCellClassName = ({ columnIndex }) => {
   font-family: 'Microsoft YaHei';
   font-size: 16px;
   color: rgba(51, 51, 51, 1);
-  line-height: 24px;
+  /* line-height: 24px; */
   text-align: left;
   font-style: normal;
   text-transform: none;
@@ -4441,7 +4481,7 @@ color: rgba(51, 51, 51, 0.8);
 }
 
 .custom-tree1>.el-tree-node>.el-tree-node__content>div img {
-  display: none;
+  /* display: none; */
   /* 隐藏一级节点复选框 */
 }
 
@@ -4577,7 +4617,7 @@ color: #2267B1;
 
 .classtable .el-table th .cell {
  /* background: #fff; */
- /* line-height: 31px; */
+ line-height: 31px;
 }
 
 .classtable .el-table td.el-table__cell, .classtable .el-table th.el-table__cell{

+ 7 - 6
src/views/titlecomponent/ADflow.vue

@@ -761,6 +761,7 @@ const getadflowsave = (id,nowid) => {
         message: '保存成功',
         type: "success"
       })
+      getadflow(pid.value, wid.value);
     })
     .catch((err) => {
       ElMessage.error('保存失败')
@@ -974,13 +975,13 @@ const getUploadStatus = (newValue) => {
 const fileDel = () => {
 }
 
-onMounted(() => {
-  emitter.on("requestGetadid", getadflow); // 监听事件
-});
+// onMounted(() => {
+//   emitter.on("requestGetadid", getadflow); // 监听事件
+// });
 
-onUnmounted(() => {
-  emitter.off("requestGetadid", getadflow); // 解绑事件
-});
+// onUnmounted(() => {
+//   emitter.off("requestGetadid", getadflow); // 解绑事件
+// });
 
 
 

+ 5 - 1
src/views/titlecomponent/ListSE.vue

@@ -18,7 +18,7 @@
     <el-form-item label="选择要在表中显示的一个或者多个变量和响应">
     </el-form-item>
     <el-space style="width: 100%;" fill :fill-ratio="40">
-      <el-card shadow="hover" style="height: 150px;overflow: auto;">
+      <el-card v-if="!isList" shadow="hover" style="height: 150px;overflow: auto;">
         <el-checkbox-group v-model="listcbval" :max="1" @change="updateParent('listcbval', listcbval)">
           <el-checkbox
             v-for="item in Listcheckbox"
@@ -50,6 +50,10 @@ import { ElMessage, ElButton, ElDialog, ElSelect } from "element-plus"
 import { Edit, CaretBottom } from "@element-plus/icons-vue"
 import emitter from "@/utils/emitter"
 
+// 接收父组件传来的数据
+const props = defineProps({
+  isList: Boolean,
+});
 
 let listval = ref("全部设计")
 let listoptions = ref([

+ 141 - 0
src/views/titlecomponent/MathFunc.vue

@@ -0,0 +1,141 @@
+<template>
+  <div class="XFpdding" style="height: 350px;">
+    <ul>
+      <li
+        class="item"
+        v-for="(tab, index) in tabslist1"
+        :key="index"
+        :class="{ active: currentTab1 === index }"
+        @click="selectTab1(index)"
+      >
+        <img :src="tab.imgSrc" style="width: 22px;"/>
+        {{ tab.name }}
+      </li>
+    </ul>
+    <div v-show="currentTab1 == '0'" class="eldesign classtable" style="margin-top: 10px">
+      <el-table :data="xvaluelist" border style="width: 100%; " :header-cell-class-name="headerCellClassName">
+          <el-table-column type="index" width="70" label="编号"/>
+          <el-table-column prop="name" label="参数名称">
+            <!-- <template #default="{ row }">
+              <el-input v-model="row.name" />
+            </template> -->
+          </el-table-column>
+          <el-table-column prop="value" label="参数值">
+            <template #default="{ row }">
+              <el-input v-model="row.value" type="number" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="flag" label="启用" width="100">
+            <template v-slot="scope">
+              <el-checkbox
+                :false-label="-1"
+                :true-label="1"
+                :label="false"
+                v-model="scope.row.flag"
+              />
+            </template>
+          </el-table-column>
+        </el-table>
+    </div>
+
+      <div v-show="currentTab1 == '1'" style="margin-top: 10px">
+        <PythonEdit :value="textarea" language="python" />
+      </div> 
+
+      <div v-show="currentTab1 == '2'" class="eldesign classtable" style="margin-top: 10px">
+        <el-table :data="yvaluelist" border style="width: 100%; height: 280px" :header-cell-class-name="headerCellClassName">
+          <el-table-column type="index" width="70" label="编号" />
+          <el-table-column prop="name" label="参数名称">
+            <!-- <template #default="{ row }">
+              <el-input v-model="row.name" @change="handleEdit(row)" />
+            </template> -->
+          </el-table-column>
+          <el-table-column prop="value" label="参数值">
+            <template #default="{ row }">
+              <el-input v-model="row.value" type="number" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="flag" label="启用" width="100">
+            <template v-slot="scope">
+              <el-checkbox
+                :false-label="0"
+                :true-label="1"
+                :label="false"
+                v-model="scope.row.flag"
+              />
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+
+  </div>
+</template>
+<script  setup>
+import { ref, onMounted, reactive, provide, nextTick } from "vue"
+import { ElMessage, ElButton, ElDialog, ElSelect } from "element-plus"
+import { request, uploadFile } from "@/utils/request"
+
+import PythonEdit from '@/components/PythonEditor/index.vue'; 
+import configParams from "@/assets/img/configParams.png";
+import MathFuncX from "@/assets/img/MathFuncX.png";
+import MathFuncFx from "@/assets/img/MathFuncFx.png";
+import MathFuncY from "@/assets/img/MathFuncY.png";
+
+let currentTab1 = ref(0)
+
+let tabslist1 = ref([
+  { id: "0", name: "自变量x", imgSrc: MathFuncX },
+  { id: "1", name: "表达式y=F(x)", imgSrc: MathFuncFx },
+  { id: "2", name: "因变量y", imgSrc: MathFuncY },
+])
+
+let xvaluelist = ref([
+  { name: "00", value: 0, flag: 1 },
+  { name: "00", value: 0, flag: 1 },
+  { name: "00", value: 0, flag: 1 },
+])
+
+let textarea = 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 yvaluelist = ref([
+  { name: "00", value: 0, flag: 1 },
+  { name: "00", value: 0, flag: 1 },
+  { name: "00", value: 0, flag: 1 },
+  { name: "00", value: 0, flag: 1 },
+  { name: "00", value: 0, flag: 1 },
+  { name: "00", value: 0, flag: 1 },
+])
+
+let emit = defineEmits(['selectTab']);
+const selectTab1 = (index) => {
+  // console.log('dayin',index);
+  currentTab1.value = index;
+  // console.log('currentTab1',currentTab1.value);
+  emit('selectTab', index);
+}
+
+const headerCellClassName = ({ column }) => {
+  // console.log('列:',column.property)
+  if (column.property === 'name') {
+    console.log('yanse',column.property)
+    return 'header-blue';
+  } else if (column.property === 'value') {
+    return 'header-green';
+  } else if (column.property === 'flag') {
+    return 'header-yellow';
+  }
+  return '';
+};
+
+
+</script>

+ 14 - 9
src/views/titlecomponent/Xfoil.vue

@@ -323,8 +323,7 @@ const getxfoil = (id,nowid) => {
   if(nowid){
     wid.value = nowid;
   }
-  
-  console.log('pid-1:',pid.value)
+  // console.log('pid-1:',pid.value)
   const params = {
     transCode: "MDO0046",
     pid: pid.value,
@@ -379,7 +378,8 @@ const getxfoilsave = (id,nowid) => {
     ElMessage({
         message: '保存成功',
         type: 'success',
-      })
+      }),
+    getxfoil(pid.value,wid.value)
   })
   .catch((err) => {
       ElMessage.error('保存失败')
@@ -387,13 +387,18 @@ const getxfoilsave = (id,nowid) => {
 }
 
 
-onMounted(() => {
-  emitter.on("requestGetxfid", getxfoil); // 监听事件
-});
+// const transmitxfid = (data) =>{
+//   emitter.emit("xfidFromxfoil", xfid);
+//   console.log('transmitxfid:',xfid.value);
+// }
 
-onUnmounted(() => {
-  emitter.off("requestGetxfid", getxfoil); // 解绑事件
-});
+// onMounted(() => {
+//   emitter.on("requestGetxfid", transmitxfid); // 监听事件
+// });
+
+// onUnmounted(() => {
+//   emitter.off("requestGetxfid", transmitxfid); // 解绑事件
+// });
 
 
 

+ 48 - 14
src/views/titlecomponent/csts.vue

@@ -145,26 +145,60 @@ const headerCellClassName = ({columnIndex}) => {
 
 
 // cst阶数改变
+// const clickblur = () => {
+//   tablecstHeaders.value = []
+//   let num = Number(cstn.value)
+//   if (!num) return; // 直接返回,避免冗余的 `if`
+
+//   // 生成表头
+//   tablecstHeaders.value = Array.from({ length: num + 1 }, (_, i) => ({
+//     label: `X${i + 1}`,
+//     prop: `X${i + 1}`
+//   }))
+
+//   // 更新表格数据
+//   tableDatacst.value = tableDatacst.value.map(item => {
+//     let newItem = { ...item }
+//     tablecstHeaders.value.forEach(col => {
+//       newItem[col.prop] = null
+//     })
+//     return newItem
+//   })
+// }
 const clickblur = () => {
-  tablecstHeaders.value = []
-  let num = Number(cstn.value)
-  if (!num) return; // 直接返回,避免冗余的 `if`
+  let num = Number(cstn.value);
+  if (!num) return;
 
-  // 生成表头
-  tablecstHeaders.value = Array.from({ length: num + 1 }, (_, i) => ({
+  // 构造新的表头
+  const newHeaders = Array.from({ length: num + 1 }, (_, i) => ({
     label: `X${i + 1}`,
     prop: `X${i + 1}`
-  }))
+  }));
 
-  // 更新表格数据
+  // 对每一行数据进行处理
   tableDatacst.value = tableDatacst.value.map(item => {
-    let newItem = { ...item }
-    tablecstHeaders.value.forEach(col => {
-      newItem[col.prop] = null
-    })
-    return newItem
-  })
-}
+    let newItem = { ...item };
+
+    // 添加新增的列
+    newHeaders.forEach(header => {
+      if (!(header.prop in newItem)) {
+        newItem[header.prop] = null;
+      }
+    });
+
+    // 删除多余的列
+    Object.keys(newItem).forEach(key => {
+      if (key.startsWith("X") && !newHeaders.find(h => h.prop === key)) {
+        delete newItem[key];
+      }
+    });
+
+    return newItem;
+  });
+
+  // 最后更新表头
+  tablecstHeaders.value = newHeaders;
+};
 
 // 获取upperb和lowerb
 const getupperlower = () => {

+ 18 - 12
src/views/vuetree/Sidebar.vue

@@ -12,7 +12,7 @@ import emitter from "@/utils/emitter";
 const datatree = ref([
     {
       id:1,
-      label: '工程',
+      label: '工程管理',
       img:gc,
       //children:[]
       children: [
@@ -51,13 +51,13 @@ const datatree = ref([
     {
       id:2,
       label: '优化问题组件',
-      img:'',
+      img:'youhwt.png',
       children: [
         {
           id:'2-1',
           label: '优化问题',
           img:"wen.png",
-          name:'优化问题'
+          name:'Project'
          
         },
       ],
@@ -65,13 +65,13 @@ const datatree = ref([
     {
       id:3,
       label: '学科分析组件',
-      img:'',
+      img:'xkfx.png',
       children: [
       {
           id:'3-01',
           label: '优化器',
           img:'mob.png',
-          name:'优化器'
+          name:'optimizer'
         },
         {
           id:'3-02',
@@ -110,6 +110,12 @@ const datatree = ref([
           img:'TACS.png',
           name:'TACS'
         },
+        {
+          id:'3-14',
+          label: 'MathFunc',
+          img:'MathFunc.png',
+          name:'MathFunc'
+        },
         {
           id:'3-1',
           label: 'CATIA',
@@ -146,7 +152,7 @@ const datatree = ref([
           id:'3-4',
           label: 'Fluent',
           img:'xuek4.png',
-         
+          name:'Fluent'
         },
         {
           id:'3-5',
@@ -185,7 +191,7 @@ const datatree = ref([
     {
       id:4,
       label: '优化器组件',
-      img:'',
+      img:'youhq.png',
       children: [
         {
           id:'4-1',
@@ -367,9 +373,9 @@ const stopDrag = () => {
     <el-tree :data="datatree"  class="custom-tree" ref="cgtree"  default-expand-all  :props="defaultProps" @node-click="handleNodeClick"  >
       <template #default="{ node, data }">
           <!-- <div   @dragstart="onDragStart($event, 'default',data.id)"  :draggable="true" > -->
-          <div>
+          <div style="display: flex;align-items: center;">
             <img :src="data.img" class="custom-image" />
-            <span class="custom-text"> {{ node.label }}  </span>
+            <span class="custom-text" style="height: 100%;"> {{ node.label }}  </span>
           </div>
         </template>
     </el-tree>
@@ -381,9 +387,9 @@ const stopDrag = () => {
   >
     <el-tree :data="datatree1"  class="custom-tree1" default-expand-all  :props="defaultProps" @node-click="handleNodeClick">
      <template #default="{ node, data }">
-          <div  @dragstart="onDragStart($event, 'default',data.id)" :draggable="true" >
+          <div  style="display: flex;align-items: center;" @dragstart="onDragStart($event, 'default',data.id)" :draggable="true" >
             <img :src="getImgPath(data.img)" class="custom-image" />
-            <span class="custom-text">
+            <span class="custom-text" style="height: 100%;">
               {{ node.label }} 
             </span>
           </div>
@@ -406,7 +412,7 @@ const stopDrag = () => {
   }
   .el-tree-node img{
     width: 24px;
-    margin-top: -8px;
+    /* margin-top: -8px; */
 
   }
 </style>

+ 38 - 36
src/views/vuetree/index.vue

@@ -3,7 +3,7 @@
     class="basic-flow" 
     style="background-image: url('src/assets/flowimg/surromdao.png'); background-position: center; background-repeat: no-repeat;"
     :default-viewport="{ zoom: 1.5 }" :min-zoom="0.2" :max-zoom="2.5" @drop="onDrop1"
-    @node-contextmenu="logEvent('contextmenu', $event)" 
+    @node-contextmenu="onNodeContextMenu" 
     @dragover="onDragOver" @dragleave="onDragLeave" @edge-click="onEdgeClick" @node-double-click="onNodeDoubleClick" 
     @node-click="onNodeClick" @edge-double-click="onEdgeDoubleClick">
 
@@ -67,7 +67,7 @@
       <div style="margin-top: 20px;padding: 20px;">
         <el-form :model="changeName" label-width="100px" class="demo-ruleForm">
         <el-form-item label="新名称:" prop="name">
-          <el-input v-model="changeName.name" placeholder="请输入名称"></el-input>
+          <el-input v-model="changeName.name" placeholder="请输入名称" maxlength="20"></el-input>
         </el-form-item>
         
         </el-form>
@@ -300,6 +300,7 @@ let pid=ref('');
 let newroter=ref();
 let vueflowimg=ref('');
 const shopShow = ref(false);
+// 选中节点
 let noid = ref([]);
 let Edgeid = ref();
 let seledge=ref(null);
@@ -559,6 +560,8 @@ function onNodeDoubleClick(e) {
     emit('optimizerfalse',{name:'FSI',wid:nowid});
   }else if(e.node.data.name=="Flight"){
     emit('optimizerfalse',{name:'Flight',wid:nowid});
+  }else if(e.node.data.name=="MathFunc"){
+    emit('optimizerfalse',{name:'MathFunc',wid:nowid});
   }
 
 }
@@ -669,11 +672,8 @@ const confirmselection=()=>{
   console.log('xuanzhongshuju:',checkedData);
   console.log('seledge:',seledge.value);
   seledge.value.label=checkedData.join('\n');
-  if(datacontent.value === '4') {
-    dataFlowsave();
-  }else if(datacontent.value === '3') {
-    dataFlowsave2();
-  }
+  // 保存数据流
+  dataFlowsave();
   
   dataflowshow.value = false;
 }
@@ -685,10 +685,12 @@ const adid = ref('')
 // 监听组件xfoil返回的xfid
 const handleXfid = (xfidFromB) => {
   xfid.value = xfidFromB.value;
+  noid.value.data.xfid = xfid.value;
 };
 
 const handleAdid = (adidFromB) => {
   adid.value = adidFromB.value;
+  noid.value.data.adid = adid.value;
 }
 
 
@@ -716,8 +718,9 @@ function onEdgeDoubleClick(e) {
     dataflowshow.value = true;
   }else if( qidian === 'ADflow' && youhualist.includes(zhongdian) ) {
     datacontent.value = '3';
-    emitter.emit('requestGetadid',pid.value);
-    console.log('adid:',adid.value)
+    // emitter.emit('requestGetadid',pid.value);
+    adid.value = e.edge.sourceNode.data.adid;
+    // console.log('adid:',adid.value)
     if(adid.value) {
       querydataFlow(adid);
       dataflowshow.value = true;
@@ -726,8 +729,9 @@ function onEdgeDoubleClick(e) {
     }
   }else if ( qidian === 'Xfoil' && youhualist.includes(zhongdian) ) {
     datacontent.value = '4';
-    emitter.emit('requestGetxfid',pid.value);
-    console.log('xfid:',xfid.value)
+    // emitter.emit('requestGetxfid',pid.value);
+    xfid.value = e.edge.sourceNode.data.xfid;
+    // console.log('xfid:',xfid.value)
     if(xfid.value) {
       querydataFlow(xfid);
       dataflowshow.value = true;
@@ -765,35 +769,26 @@ const querydataFlow = (comid) => {
 }
 
 const dataFlowsave = () => {
+  let stringArray = '';
+  if(datacontent.value === '3'){
+    stringArray = convertToStringArray([],ADflowyouhuatable.value);
+  }else if(datacontent.value === '4'){
+    stringArray = convertToStringArray([],Xfoilyouhuatable.value);
+  }else{
+    return;
+  }
   const params = {
     transCode: "MDO0053",
-    paramstr: convertToStringArray([],Xfoilyouhuatable.value),
-  };
-  request(params).then((res) => {
-    ElMessage({
-        message: res.returnMsg,
-        type: 'success',
-      })
-  })
-  .catch((err) => {
-      ElMessage.error(err.returnMsg)
-  })
-}
-
-const dataFlowsave2 = () => {
-  console.log('ADflowyouhuatable:',ADflowyouhuatable.value);
-  const params = {
-    transCode: "MDO0053",
-    paramstr: convertToStringArray([],ADflowyouhuatable.value),
+    paramstr: stringArray,
   };
   request(params).then((res) => {
     ElMessage({
-        message: res.returnMsg,
+        message: '数据流保存成功',
         type: 'success',
       })
   })
   .catch((err) => {
-      ElMessage.error(err.returnMsg)
+      ElMessage.error('数据流保存失败')
   })
 }
 
@@ -819,11 +814,6 @@ const convertToStringArray = (result, Data) => {
   return result;
 }
 
-
-function logEvent(name, event) {
-  console.log(2222)
-}
-
 // 右键更改名字
 // const onContextMenu = (e) => {
 //       e.preventDefault();  // 阻止浏览器默认的右键菜单
@@ -1159,6 +1149,12 @@ function toggleDarkMode() {
 
 
 }
+
+// 禁用右键菜单的函数
+const onNodeContextMenu1 = (event) => {
+  event.preventDefault();
+};
+
 onMounted(() => {
   setTimeout(function() {
     getroter();
@@ -1176,6 +1172,8 @@ onMounted(() => {
     });
   }
 
+  document.addEventListener('contextmenu', onNodeContextMenu1);
+
   emitter.on("xfidFromxfoil", handleXfid);
   emitter.on("adidFromadflow", handleAdid);
 });
@@ -1197,6 +1195,10 @@ const cleanEdgeselect = () => {
   
 } 
 
+// 在组件销毁前移除右键菜单禁用
+onBeforeUnmount(() => {
+  document.removeEventListener('contextmenu', onNodeContextMenu1);
+});
 
 onUnmounted(() => {
   emitter.off('child2Data');

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

@@ -27,7 +27,7 @@ import ffd from '@/assets/flowimg/ffd.png'
 import ADflow from '@/assets/flowimg/ADflow.png'
 import tacs from '@/assets/flowimg/TACS.png'
 import fsi from '@/assets/flowimg/fsi.png'
-import catia from '@/assets/flowimg/catia.png'
+import mathfunc from '@/assets/flowimg/MathFunc.png'
 import flight from '@/assets/flowimg/flight.png'
 let nid = 0;
 let id=0
@@ -65,7 +65,7 @@ function imagefun(){
     }else if(nid=='3-13'){
       return datas = {label:'FUM to FEM', image:fsi,name:'FSI'}
     }else if(nid=='3-14'){
-      return datas = {label:'CATIA', image:catia,name:'CATIA'}
+      return datas = {label:'MathFunc', image:mathfunc,name:'MathFunc'}
     }else if(nid=='3-15'){
       return datas = {label:'Flight', image:flight,name:'Flight'}
     }

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff