liuqiao 7 сар өмнө
parent
commit
08db80b87f

BIN
src/assets/flowimg/aero.png


BIN
src/assets/flowimg/csh.png


BIN
src/assets/flowimg/mob.png


BIN
src/assets/img/aero.png


BIN
src/assets/img/csh.png


BIN
src/assets/img/mob.png


BIN
src/assets/img/open.png


+ 1 - 1
src/components/header.vue

@@ -41,7 +41,7 @@ let title=ref("民用飞机多学科联合优化设计软件");
         text-overflow: ellipsis;
         display: inline-block;
         margin: 0;
-        font-size: 20px;
+        font-size: 18px;
         vertical-align: middle;
         color: #fff;
         font-family: 'Source Sans-Regular';

+ 43 - 7
src/style/index.css

@@ -131,7 +131,7 @@ body{
 }
 
 .imgzong .listitem span {
-    font-size: 17px;
+    font-size: 16px;
     font-family: 'Source Sans-Regular';
     color: rgba(51, 51, 51, 0.8);
 }
@@ -146,7 +146,7 @@ body{
 }
 .my-header .el-image{
     width: 28px;
-    margin-top: 6px;
+    /* margin-top: 6px; */
 
 }
 .my-header h4{
@@ -362,7 +362,7 @@ position: absolute;
 transform: scale(0.5, 1);
 }
 .el-tree .el-tree-node__content{
-  font-size: 16px; /* 这里设置为20px,你可以根据需求调整大小 */
+  font-size: 14px; /* 这里设置为20px,你可以根据需求调整大小 */
 }
 .custom-tree .el-tree-node__children .el-tree-node__content .treesvgi {
   font-size: 15px !important; /* 第二级字体大小 */
@@ -560,7 +560,7 @@ box-sizing: border-box;
 .colortext .el-tabs__item{
   font-family: 'Source Sans-Regular';
   font-weight: 400;
-  font-size: 17px;
+  font-size: 16px;
   color: #333333;
   line-height: 23px;
   text-align: left;
@@ -604,7 +604,7 @@ ul{
   line-height: 40px;
   float: left;
   color: #333;
-  font-size: 17px;
+  font-size: 16px;
   font-family: 'Source Sans-Regular';
 }
 .colortext .XFpdding ul .item.active {
@@ -617,14 +617,14 @@ ul{
   text-align: left !important;
 }
 .colortext .el-table .cell{
-  font-size: 17px !important;
+  font-size: 16px !important;
 }
 .colortext  .el-table .el-table__cell{
   padding: 0;
 }
 .colortext  .el-table thead{
   font-weight: 400;
-  font-size: 17px;
+  font-size: 16px;
   color: #1A1A1A;
   line-height: 21px;
   text-align: left;
@@ -688,4 +688,40 @@ width: 200px;
 .el-image__inner {
   vertical-align: middle;
   opacity: 1;
+}
+.pythfoter{
+  font-size: 16px;
+}
+.pythfoter .span {
+  width: 150px;
+  height: 35px;
+  line-height: 35px;
+  text-align: center;
+  cursor: default;
+  position: relative;
+  font-size: 16px;
+  color: #333333;
+  font-family: "Source Sans-Regular";
+}
+.pythfoter .active {
+  background-color: #fff;
+  border-left: 1px solid #B3B3B3;
+  border-right: 1px solid #B3B3B3;
+  border-bottom: 4px solid #fff;
+}
+.pythfoter .active::before {
+  content: "";
+  display: block;
+  width: 100%;
+  height: 2px;
+  background: #2267B1;
+  border-radius: 0px 0px 0px 0px;
+  top: 0px;
+  position: absolute;
+}
+.footerp .text .el-textarea__inner{
+  height: 380px!important;
+}
+.footerp .pythfoter .el-textarea__inner{
+  height: 100px!important;
 }

+ 142 - 134
src/views/home.vue

@@ -1166,11 +1166,53 @@
                 </el-button>
               </div>
             </template>
+          </el-dialog>
+          <!-- CST -->
+          <el-dialog v-model="dialog.CSTt" 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="900" 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">CST</h4>
+              </div>
+            </template>
+            <csts/>
+            <template #footer>
+              <div class="dialog-footer">
+                <el-button @click="dialog.CSTt = false">取消</el-button>
+                <el-button type="primary" @click="cstok()">
+                  确定
+                </el-button>
+              </div>
+            </template>
+          </el-dialog>
+           <!-- FFD -->
+           <el-dialog v-model="dialog.ffdt" 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="900" class="dialog_class bgcolor colortext tianjia sel">
+
+            <template #header="{ titleId, titleClass }">
+              <div class="my-header ">
+                <el-image :src="getImgPath('ffd.png')" fit="contain"></el-image>
+                <h4 :id="titleId" :class="titleClass">FFD</h4>
+              </div>
+            </template>
+            <ffds/>
+            <template #footer>
+              <div class="dialog-footer">
+                <el-button @click="dialog.ffdt = false">取消</el-button>
+                <el-button type="primary" @click="cstok()">
+                  确定
+                </el-button>
+              </div>
+            </template>
           </el-dialog>
              <!-- 气动分析CST、FFD -->
              <el-dialog v-model="dialog.cstffd" 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="800" class="dialog_class bgcolor tianjia sel colortext">
+            :before-close="handleClose" width="1000" class="dialog_class bgcolor tianjia sel colortext">
 
             <template #header="{ titleId, titleClass }">
               <div class="my-header ">
@@ -1182,89 +1224,11 @@
                     <!-- CST -->
                 <el-tabs tab-position="left" class="demo-tabs" v-model="activeadf" @tab-click="adfhandleClick">
               <el-tab-pane label="CST" name="CST">
-                <div class="XFpdding">
-                  <div class="numberinput lefttext ">
-              <el-form>
-                <div>
-                <el-form-item label="CST阶数:" :label-width="formLabelWidth200">
-                  <el-input v-model="cstnum" :max="20" controls-position="right" @keydown.enter='keydownenter'/>
-                </el-form-item>
-              </div>
-                <div style="display: flex;">
-                <div class="cstleft ">
-                <el-form-item label="上表面类函数参数N1:" :label-width="formLabelWidth200">
-                  <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
-                </el-form-item>
-                <el-form-item label="下表面类函数参数N1:" :label-width="formLabelWidth200">
-                  <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
-                </el-form-item>
-              </div>
-              <div class="cstleft " style="margin-left: 20px;">
-                <el-form-item label="上表面类函数参数N2:" :label-width="formLabelWidth200">
-                  <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
-                </el-form-item>
-                <el-form-item label="下表面类函数参数N2:" :label-width="formLabelWidth200">
-                  <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
-                </el-form-item>
-              </div>
-            </div>
-            <div class="classtable">
-            <el-table :data="tableDatacst" style="width: 100%" border>
-              <el-table-column prop="date" label="表格" width="180" />
-          
-          </el-table>
-        </div>
-              </el-form>
-            </div>
-                </div>
+                <csts/>
               </el-tab-pane>
               <!-- FFD -->
               <el-tab-pane label="FFD" name="FFD">
-                <div class="XFpdding">
-                  <div>
-                <el-form-item label="FFD box:" :label-width="formLabelWidth1">
-                  <el-input v-model="cstnum" :max="20" controls-position="right" @keydown.enter='keydownenter'/>
-                </el-form-item>
-                <el-form-item label="参考坐标系:" :label-width="formLabelWidth1">
-                  <el-radio-group v-model="radio1">
-                  <el-radio :value="0" :label="0">x-y-z</el-radio>
-                  <el-radio :value="1" :label="1">x-z-y</el-radio>
-                  <el-radio :value="2" :label="2">y-x-z</el-radio>
-                  <el-radio :value="3" :label="3">y-z-x</el-radio>
-                  <el-radio :value="4" :label="4">z-x-y</el-radio>
-                  <el-radio :value="5" :label="5">z-y-x</el-radio>
-                </el-radio-group>
-                </el-form-item>
-              </div>
-              <el-form-item label="控制点数:"  :label-width="formLabelWidth1">
-                  <div style="display: flex;">
-                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
-                  <!-- <template #prepend>X方向</template> -->
-                  <template  #prefix>X方向</template>
-                </el-input>
-                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
-                  <template  #prefix>Y方向</template>
-                </el-input>
-                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
-                 <template  #prefix>Z方向</template>
-                </el-input>
-                <el-button >应用</el-button>
-              </div>
-              </el-form-item>
-              <div class="classtable">
-            <el-table :data="tableDatacst" style="width: 100%" border>
-              <el-table-column prop="表格" label="表格" width="180" />
-              <el-table-column
-                v-for="(item,index) in tablecstHeaders" :key="index"
-                :prop="item.prop"
-                :label="item.label">
-                  <template #default="{ row }"> 
-                      <el-input v-model="row[item.prop]"  @change="handleEdit(row)"/>
-                    </template>
-              </el-table-column>
-          </el-table>
-        </div>
-              </div>
+               <ffds/>
               </el-tab-pane>
             </el-tabs>
               </el-form>
@@ -1503,6 +1467,58 @@
                 </el-button>
               </div>
             </template>
+          </el-dialog>
+            <!-- Python -->
+            <el-dialog v-model="dialog.Pythonshow" 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="700" 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">Python</h4>
+              </div>
+            </template>
+            <div class="footerp" style="height:500px;padding:15px">
+              <!-- <el-input
+            v-model="textarea1"
+            style="width: 100%;height:400px"
+            :autosize="{ minRows: 2, maxRows: 19}"
+            
+            type="textarea"
+            placeholder="Please input"
+          /> -->
+          <div class="text">
+          <el-input
+          v-model="textarea1"
+       
+          style="width: 100%"
+          :autosize="{ minRows: 2, maxRows: 4 }"
+          type="textarea"
+          placeholder="Please input"
+        />
+          </div>
+        <div class="pythfoter">
+           <div class="span active" >
+                 <el-image :src="xin" fit="contain"></el-image>
+             <span>信息栏 </span></div>
+             <el-input
+          v-model="textarea2"
+          style="width: 100%"
+          :autosize="{ minRows: 2, maxRows: 4 }"
+          type="textarea"
+          placeholder="Please input"
+        />
+             </div>
+            </div>
+            <template #footer>
+              <div class="dialog-footer">
+                <el-button @click="dialog.Pythonshow = false">检查</el-button>
+                <el-button type="primary">
+                  保存
+                </el-button>
+              </div>
+            </template>
           </el-dialog>
           <!-- 内容区 -->
           <div class="main  mianflex">
@@ -1826,9 +1842,13 @@ import Joptimize from './titlecomponent/Joptimize.vue'
 import Toptimize from './titlecomponent/Toptimize.vue'
 import ADflow from './titlecomponent/ADflow.vue'
 import Xfoil from './titlecomponent/Xfoil.vue'
+import csts from './titlecomponent/csts.vue'
+import ffds from './titlecomponent/ffds.vue'
 let Sidebarref = ref();
 let resource=ref(0);
 let cstnum=ref('');
+let textarea2=ref()
+let textarea1=ref("import os\nnimport numpy as np+\nfrom surromdao.solver import BaseSolv+\nclass Branin(BaseSolver):+\ndef __init__(self, filename=os.pa+\nsuper().__init__(filename)+\ndef compute(self, xdict):+\nx= np.zeros(2)+\n#x[0] = xdict['x1']+\n#x[1] = xdict['x2']");
 let Joptimizeref=ref();
 let Doptimizeref=ref();
 let Toptimizeref=ref();
@@ -2218,6 +2238,7 @@ let dialog = ref({
   Xfiol: false,
   tidu:false,
   CSTt:false,
+  ffdt:false,
   XfAD:false,
   cstffd:false,
   Taxs:false,
@@ -2227,10 +2248,9 @@ let dialog = ref({
   task: false,
   guanli: false,
   optgroup:false,
+  Pythonshow:false
 })
-let tableDatacst=ref([
-  {date:"上表面CST参数"},{date:"下表面CST参数"}
-])
+
 // let columns=ref[{
 //   columns: [
 //         { label: '上表面', prop: 'sbiao' },
@@ -2401,73 +2421,52 @@ const handleNodeClick = (data) => {
   dialogbolen();
 }
 
-
-// cst时间
-const keydownenter=()=>{
-  //cstnum.value='';
-  tablecstHeaders.value=[];
-  let arrheader=[];
-  let tablearr=[];
-  let num=Number(cstnum.value);
-
-for(let i=1;i<=num+1;i++){
-  arrheader.push('x'+i)
-}
-arrheader.forEach(function (item,index){
-
-let name="x"+Number(index+1);
-let obj ={ label: item,prop:name };
-console.log(obj);
-tablecstHeaders.value.push(obj);
-});
-tableDatacst.value.forEach(function (item){
-  for(let j=1;j<=num+1;j++){
-let name=('x'+j);
-item['x' + j]=null;
-}
-tablearr.push(item);
-});
-tableDatacst.value=tablearr;
-}
-const cstok=()=>{
- // cstnum.value='';
-  dialog.value.CSTt = false;
-  console.log(tableDatacst.value);
-
-}
 const optimizerfalse = (val) => {
   console.log(val);
   if (val == '优化器') {
-    dialog.value.optimizer = true;
-
+    // dialog.value.optimizer = true;
+    activeadf.value='代理优化器';
+    dialog.value.optgroup = true;
+  } else if (val == '参数化') {
+    activeadf.value='CST'
+    dialog.value.cstffd = true;
+  }else if (val == '气动分析') {
+    activeadf.value='Xfoil'
+    dialog.value.XfAD = true;
   } else if (val == '进化优化器') {
     activeadf.value='进化优化器';
     dialog.value.jboptimizer = true;
-   // dialog.value.jboptimizer = true;
    Joptimizeref.value.getoptimize(pid.value);
   } else if (val == '代理优化器') {
     activeadf.value='代理优化器';
     // dialog.value.optgroup = true;
     dialog.value.dboptimizer = true;
-  }  else if (val == 'Xfiol' || val == 'Rosenbrock') {
-    importget();
-    dialog.value.Xfiol = true;
+  } 
+  //  else if (val == 'Xfiol' || val == 'Rosenbrock') {
+  //   importget();
+  //   dialog.value.Xfiol = true;
 
-  }else if(val == '梯度优化器'){
+  // }
+  else if(val == '梯度优化器'){
     activeadf.value='梯度优化器';
     dialog.value.tboptimizer = true;
   }else if(val == 'CST'){
    /// dialog.value.CSTt = true;
-   activeadf.value='CST';
-    dialog.value.cstffd = true;
-  }else if(val == 'ADflow'){
+  //  activeadf.value='CST';
+    dialog.value.CSTt = true;
+  }else if(val == 'FFD'){
+   /// dialog.value.CSTt = true;
+  //  activeadf.value='CST';
+    dialog.value.ffdt = true;
+  }
+  else if(val == 'ADflow'){
    // adfhandleClick();
    activeadf.value='ADflow';
    dialog.value.isADflow = true;
     // dialog.value. = true;
   }else if(val == 'Xfiol'){
-   activeadf.value='Xfiol';
-   dialog.value.XfAD = true;
+  //  activeadf.value='Xfiol';
+   dialog.value.Xfiol = true;
   }else if(val == 'FFD'){
    activeadf.value='FFD';
     dialog.value.cstffd = true;
@@ -2476,6 +2475,8 @@ const optimizerfalse = (val) => {
   }else if(val == '模版'){
     dialog.value.optgroup = true;
     activeadf.value='代理优化器';
+  }else if(val == 'Python'){
+    dialog.value.Pythonshow = true;
   }
    else {
     dialog.value.optimizer = false;
@@ -2486,6 +2487,7 @@ const optimizerfalse = (val) => {
     dialog.value.CSTt = false;
     dialog.value.XfAD = false;
     dialog.value.cstffd = false;
+    dialog.value.Pythonshow = false;
   }
 
 }
@@ -2985,6 +2987,11 @@ const getmub = () => {
       ElMessage.error(err.returnMsg)
     })
 }
+const cstok=()=>{
+ // cstnum.value='';
+  dialog.value.CSTt = false;
+
+}
 //对象数组转化字符串
 const getarr = (name, arrays) => {
   console.log(arrays)
@@ -3555,7 +3562,7 @@ const adfhandleClick=(tab,event)=>{
   line-height: 40px;
   cursor: default;
   position: relative;
-  font-size: 17px;
+  font-size: 16px;
   color: #333333;
   font-family: 'Source Sans-Regular';
 }
@@ -3667,7 +3674,7 @@ color: #2267B1;
   font-family: 'Source Sans-Regular';
   flex: 1;
   border-left: 1px solid #B3B3B3;
-  font-size: 17px;
+  font-size: 16px;
   height: 40px;
   line-height: 40px;
   width: 168px;
@@ -3725,11 +3732,12 @@ color: #2267B1;
 }
 
 .classtable .el-table th .cell {
-  background: #D8D8D8;
+ background: #fff;
 }
 
 .classtable .el-table .cell {
-  font-size: 12px;
+  font-family: 'Source Sans-Regular';
+  font-size: 14px;
 }
 
 .classtable .el-table td.el-table__cell div {

+ 114 - 0
src/views/titlecomponent/csts.vue

@@ -0,0 +1,114 @@
+<template>
+        <div class="XFpdding">
+                  <div class="numberinput lefttext ">
+              <el-form>
+                <div>
+                <el-form-item label="CST阶数:" :label-width="formLabelWidth200">
+                  <el-input v-model="cstnum" :max="20" controls-position="right" @blur='clickblur'/>
+                </el-form-item>
+              </div>
+                <div style="display: flex;">
+                <div class="cstleft ">
+                <el-form-item label="上表面类函数参数:" :label-width="formLabelWidth200">
+                  <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right">
+                    <template  #prefix>N1</template>
+                </el-input>
+                </el-form-item>
+                <el-form-item label="下表面类函数参数:" :label-width="formLabelWidth200">
+                  <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" >
+                  <template  #prefix>N1</template>
+                </el-input>
+                </el-form-item>
+              </div>
+              <div class="cstleft " style="margin-left: 20px;">
+                <el-form-item label="上表面类函数参数:" :label-width="formLabelWidth200">
+                  <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right">
+                    <template  #prefix>N2</template>
+                </el-input>
+                </el-form-item>
+                <el-form-item label="下表面类函数参数:" :label-width="formLabelWidth200">
+                  <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right">
+                    <template  #prefix>N2</template>
+                </el-input>
+                </el-form-item>
+              </div>
+            </div>
+            <div class="classtable">
+            <el-table :data="tableDatacst" style="width: 100%" border>
+              <el-table-column prop="date" label="表格" width="180" />
+              <el-table-column
+                v-for="(item,index) in tablecstHeaders" :key="index"
+                :prop="item.prop"
+                :label="item.label">
+                  <template #default="{ row }"> 
+                      <el-input v-model="row[item.prop]"  @change="handleEdit(row)"/>
+                    </template>
+              </el-table-column>
+          </el-table>
+        </div>
+              </el-form>
+            </div>
+                </div>
+  </template>
+<script  setup>
+import { ref, onMounted, reactive, provide, nextTick } from "vue";
+import { RouterView, RouterLink, useRouter, useRoute } from "vue-router"
+import myheader from "@/components/header.vue"
+import { request, uploadFile } from "@/utils/request";
+import { ElMessage, ElButton, ElDialog, ElSelect } from 'element-plus'
+import { Edit, CaretBottom } from '@element-plus/icons-vue'
+let formLabelWidth3=ref(100)
+let formLabelWidth200=ref(200)
+let cstnum=ref('');
+let youhua = ref({
+algorithm: 'GA',
+popsize:1,
+epoch: 100,
+probcrossover: 0.1,
+probmut: 0.1,
+proboperator: 'SBX交叉',
+probscale: 1,
+strategy: '最佳保留策略',
+operator: '倒位变异',
+gpu: 'YES'
+})
+let tableDatacst=ref([
+  {date:"上表面CST参数"},{date:"下表面CST参数"}
+])
+let tablecstHeaders=ref([]);
+// cst时间
+const clickblur=()=>{
+  //cstnum.value='';
+  tablecstHeaders.value=[];
+  let arrheader=[];
+  let tablearr=[];
+  let num=Number(cstnum.value);
+if(num==0||num==undefined||num==null){
+
+}else{
+
+
+for(let i=1;i<=num+1;i++){
+  arrheader.push('x'+i)
+}
+arrheader.forEach(function (item,index){
+
+let name="x"+Number(index+1);
+let obj ={ label: item,prop:name };
+console.log(obj);
+tablecstHeaders.value.push(obj);
+});
+tableDatacst.value.forEach(function (item){
+  for(let j=1;j<=num+1;j++){
+let name=('x'+j);
+item['x' + j]=null;
+}
+tablearr.push(item);
+});
+tableDatacst.value=tablearr;
+console.log(tableDatacst.value);
+}
+}
+</script>
+
+

+ 75 - 0
src/views/titlecomponent/ffds.vue

@@ -0,0 +1,75 @@
+<template>
+  <div class="XFpdding">
+                  <div>
+                <el-form-item label="FFD box:" :label-width="formLabelWidth1">
+                  <el-input v-model="cstnum" :max="20" controls-position="right" @keydown.enter='keydownenter'/>
+                  
+                </el-form-item>
+                <el-form-item label="参考坐标系:" :label-width="formLabelWidth1">
+                  <el-radio-group v-model="radio1">
+                  <el-radio :value="0" :label="0">x-y-z</el-radio>
+                  <el-radio :value="1" :label="1">x-z-y</el-radio>
+                  <el-radio :value="2" :label="2">y-x-z</el-radio>
+                  <el-radio :value="3" :label="3">y-z-x</el-radio>
+                  <el-radio :value="4" :label="4">z-x-y</el-radio>
+                  <el-radio :value="5" :label="5">z-y-x</el-radio>
+                </el-radio-group>
+                </el-form-item>
+              </div>
+              <el-form-item label="控制点数:"  :label-width="formLabelWidth1">
+                  <div style="display: flex;">
+                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
+                  <!-- <template #prepend>X方向</template> -->
+                  <template  #prefix>X方向</template>
+                </el-input>
+                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
+                  <template  #prefix>Y方向</template>
+                </el-input>
+                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
+                 <template  #prefix>Z方向</template>
+                </el-input>
+                <el-button >应用</el-button>
+              </div>
+              </el-form-item>
+              <div class="classtable">
+            <el-table :data="tableDatacst1" style="width: 100%" border>
+              <el-table-column prop="表格" label="表格" width="180" />
+              <el-table-column
+                v-for="(item,index) in tablecstHeaders" :key="index"
+                :prop="item.prop"
+                :label="item.label">
+                  <template #default="{ row }"> 
+                      <el-input v-model="row[item.prop]"  @change="handleEdit(row)"/>
+                    </template>
+              </el-table-column>
+          </el-table>
+        </div>
+              </div>
+</template>
+<script  setup>
+import { ref, onMounted, reactive, provide, nextTick } from "vue";
+import { RouterView, RouterLink, useRouter, useRoute } from "vue-router"
+import myheader from "@/components/header.vue"
+import { request, uploadFile } from "@/utils/request";
+import { ElMessage, ElButton, ElDialog, ElSelect } from 'element-plus'
+import { Edit, CaretBottom } from '@element-plus/icons-vue'
+let formLabelWidth3=ref(100)
+let formLabelWidth200=ref(200)
+let cstnum=ref('');
+let youhua = ref({
+algorithm: 'GA',
+popsize:1,
+epoch: 100,
+probcrossover: 0.1,
+probmut: 0.1,
+proboperator: 'SBX交叉',
+probscale: 1,
+strategy: '最佳保留策略',
+operator: '倒位变异',
+gpu: 'YES'
+})
+let radio1=ref(0);
+let tableDatacst1=ref([])
+</script>
+
+

+ 15 - 3
src/views/vuetree/Sidebar.vue

@@ -69,9 +69,21 @@ const datatree = ref([
       children: [
       {
           id:'3-01',
-          label: '模版',
-          img:'r2.png',
-          name:'模版'
+          label: '优化器',
+          img:'mob.png',
+          name:'优化器'
+        },
+        {
+          id:'3-02',
+          label: '参数化',
+          img:'csh.png',
+          name:'参数化'
+        },
+        {
+          id:'3-03',
+          label: '气动分析',
+          img:'aero.png',
+          name:'气动分析'
         },
         {
           id:'3-0',

+ 11 - 3
src/views/vuetree/index.vue

@@ -12,7 +12,7 @@
     <Background pattern-color="#aaa" :gap="16" />
 
     <!-- <MiniMap /> @input="handleUpdate"-->
-    <Panel :position="'right'">
+    <Panel :position="'right'" style="display: none;">
       <div class="field">
         <div>
         <label for="label">Label:</label>
@@ -302,8 +302,12 @@ function onNodeDoubleClick(e) {
     emit('optimizerfalse','FFD');
   }else if(e.node.data.name=="TACS"){
     emit('optimizerfalse','TACS');
-  }else if(e.node.data.name=="模版"){
-    emit('optimizerfalse','模版');
+  }else if(e.node.data.name=="参数化"){
+    emit('optimizerfalse','参数化');
+  }else if(e.node.data.name=="气动分析"){
+    emit('optimizerfalse','气动分析');
+  }else if(e.node.data.name=="Python"){
+    emit('optimizerfalse','Python');
   }
 
 }
@@ -611,4 +615,8 @@ panel {
 .field{
   display: flex;
 }
+.node-label, .edge-label,.custom-node span {
+    text-transform: none; /* 确保文本不转换为大写 */
+    font-family: 'Inter-Regular';
+}
 </style>

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

@@ -18,7 +18,9 @@ import xuek9 from '@/assets/flowimg/xuek9.png'
 import xuek10 from '@/assets/flowimg/xuek10.png'
 import xuek11 from '@/assets/flowimg/xuek11.png'
 import xuek12 from '@/assets/flowimg/xuek12.png'
-import r2 from '@/assets/img/r2.png'
+import r2 from '@/assets/flowimg/mob.png'
+import aero from '@/assets/flowimg/aero.png'
+import csh from '@/assets/flowimg/csh.png'
 import ffd from '@/assets/flowimg/ffd.png'
 import ADflow from '@/assets/flowimg/ADflow.png'
 import tacs from '@/assets/flowimg/TACS.png'
@@ -79,7 +81,11 @@ function imagefun(){
     }else if(nid=='4-3'){
       return datas = {label:'梯度优化器', image:xuek12,name:'梯度优化器'}
     }else if(nid=='3-01'){
-      return datas = {label:'模版', image:r2,name:'模版'}
+      return datas = {label:'优化器', image:r2,name:'优化器'}
+    }else if(nid=='3-02'){
+      return datas = {label:'参数化', image:csh,name:'参数化'}
+    }else if(nid=='3-03'){
+      return datas = {label:'气动分析', image:aero,name:'气动分析'}
     }
     else{
       return null;