Kaynağa Gözat

1.23修改整体样式

liuqiao 7 ay önce
ebeveyn
işleme
9a28876053
51 değiştirilmiş dosya ile 659 ekleme ve 363 silme
  1. 1 1
      src/App.vue
  2. BIN
      src/assets/flowimg/r2.png
  3. 1 1
      src/assets/fonts/fonts.css
  4. BIN
      src/assets/img/cai1.png
  5. BIN
      src/assets/img/cai2.png
  6. BIN
      src/assets/img/gc.png
  7. BIN
      src/assets/img/kk1.png
  8. BIN
      src/assets/img/kk10.png
  9. BIN
      src/assets/img/kk11.png
  10. BIN
      src/assets/img/kk2.png
  11. BIN
      src/assets/img/kk3.png
  12. BIN
      src/assets/img/kk4.png
  13. BIN
      src/assets/img/kk5.png
  14. BIN
      src/assets/img/kk6.png
  15. BIN
      src/assets/img/kk7.png
  16. BIN
      src/assets/img/kk8.png
  17. BIN
      src/assets/img/kk9.png
  18. BIN
      src/assets/img/l1.png
  19. BIN
      src/assets/img/l2.png
  20. BIN
      src/assets/img/nos.png
  21. BIN
      src/assets/img/noz.png
  22. BIN
      src/assets/img/rr1.png
  23. BIN
      src/assets/img/rr2.png
  24. BIN
      src/assets/img/rr3.png
  25. BIN
      src/assets/img/s.png
  26. BIN
      src/assets/img/s11.png
  27. BIN
      src/assets/img/s12.png
  28. BIN
      src/assets/img/s13.png
  29. BIN
      src/assets/img/tow1.png
  30. BIN
      src/assets/img/tow2.png
  31. BIN
      src/assets/img/tow3.png
  32. BIN
      src/assets/img/w.png
  33. BIN
      src/assets/img/xin.png
  34. BIN
      src/assets/img/xin2.png
  35. BIN
      src/assets/img/y.png
  36. BIN
      src/assets/img/y2.png
  37. BIN
      src/assets/img/you1.png
  38. BIN
      src/assets/img/you2.png
  39. BIN
      src/assets/img/you3.png
  40. BIN
      src/assets/img/zy.png
  41. BIN
      src/assets/img/zy2.png
  42. 27 18
      src/style/index.css
  43. 3 2
      src/style/style.css
  44. 222 339
      src/views/home.vue
  45. 3 1
      src/views/openpage.vue
  46. 208 0
      src/views/titlecomponent/Doptimize.vue
  47. 108 0
      src/views/titlecomponent/Joptimize.vue
  48. 73 0
      src/views/titlecomponent/Toptimize.vue
  49. 0 0
      src/views/titlecomponent/Xfoil.vue
  50. 10 1
      src/views/vuetree/Sidebar.vue
  51. 3 0
      src/views/vuetree/useDnD.js

+ 1 - 1
src/App.vue

@@ -7,7 +7,7 @@
 
 <style>
 #app {
-  font-family: Avenir, Helvetica, Arial, sans-serif;
+  font-family: 'Source Sans-Regular';
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
   color: #2c3e50;

BIN
src/assets/flowimg/r2.png


+ 1 - 1
src/assets/fonts/fonts.css

@@ -7,7 +7,7 @@
   @font-face {
     font-family: 'Source Sans-Black';
     src: url('@/assets/fonts/NotoSansHans-Black.otf') format('woff2'),  format('truetype');
-    font-weight: 900; /* 对于Black,通常是900 */
+   /* 对于Black,通常是900  font-weight: 900; */
     font-style: normal;
   }
  

BIN
src/assets/img/cai1.png


BIN
src/assets/img/cai2.png


BIN
src/assets/img/gc.png


BIN
src/assets/img/kk1.png


BIN
src/assets/img/kk10.png


BIN
src/assets/img/kk11.png


BIN
src/assets/img/kk2.png


BIN
src/assets/img/kk3.png


BIN
src/assets/img/kk4.png


BIN
src/assets/img/kk5.png


BIN
src/assets/img/kk6.png


BIN
src/assets/img/kk7.png


BIN
src/assets/img/kk8.png


BIN
src/assets/img/kk9.png


BIN
src/assets/img/l1.png


BIN
src/assets/img/l2.png


BIN
src/assets/img/nos.png


BIN
src/assets/img/noz.png


BIN
src/assets/img/rr1.png


BIN
src/assets/img/rr2.png


BIN
src/assets/img/rr3.png


BIN
src/assets/img/s.png


BIN
src/assets/img/s11.png


BIN
src/assets/img/s12.png


BIN
src/assets/img/s13.png


BIN
src/assets/img/tow1.png


BIN
src/assets/img/tow2.png


BIN
src/assets/img/tow3.png


BIN
src/assets/img/w.png


BIN
src/assets/img/xin.png


BIN
src/assets/img/xin2.png


BIN
src/assets/img/y.png


BIN
src/assets/img/y2.png


BIN
src/assets/img/you1.png


BIN
src/assets/img/you2.png


BIN
src/assets/img/you3.png


BIN
src/assets/img/zy.png


BIN
src/assets/img/zy2.png


+ 27 - 18
src/style/index.css

@@ -68,7 +68,7 @@ img{
     padding: 5px;
 }
 .heder_tabs .el-tabs__item{
-    width: 120px;
+    width: 150px;
     height: 50px;
     font-family: 'Source Sans-Regular';
 }
@@ -78,16 +78,17 @@ body{
     background-color:rgba(123, 176, 232, 0.1);
 }
 .heder_tabs .el-tabs__item.is-active{
-  background-color: #fff !important;
+  /* background-color: #fff !important; */
     border-radius: 10px 10px 0px 0px;
     color: #2267B1;
 }
 .el-tabs--card>.el-tabs__header .el-tabs__item,.el-tabs--card>.el-tabs__header .el-tabs__nav{
     border: none;
 }
+
 .el-tabs__item{
-    color: rgba(51, 51, 51, 0.8);
-    font-size: 20px;
+    color: rgba(51, 51, 51,1);
+    font-size:18px;
 }
 .imgzong {
     display: -webkit-box;
@@ -96,7 +97,7 @@ body{
     overflow: auto;
     white-space: nowrap;
     background: #fafafa;
-    border-top: 1px solid #B3B3B3; ;
+    /* border-top: 1px solid #B3B3B3; ; */
     padding: 0 20px;
 }
 .imgzong .listitem {
@@ -130,7 +131,7 @@ body{
 }
 
 .imgzong .listitem span {
-    font-size: 18px;
+    font-size: 17px;
     font-family: 'Source Sans-Regular';
     color: rgba(51, 51, 51, 0.8);
 }
@@ -206,7 +207,7 @@ text-transform: none;
   .headersele{
     width: 97px;
     height: 9px;
-    margin-top: -5px;
+    margin-top: -21px;
     background-color: #eee;
   }
   .headersele .select-trigger{
@@ -311,17 +312,19 @@ position: relative;
   }
   .left_main_content{
     width: 195px;
-    height: calc(100vh - 184px);
+    height: calc(100vh - 193px);
 background: #FFFFFF;
 box-shadow: 2px 0px 11px 0px rgba(0,0,0,0.12);
 border: 1px solid rgba(179, 179, 179, 1);
+box-sizing: border-box;
+overflow: hidden;
   }
   .mianflex{
     display: flex;
   }
   .main_model{
     width: 100%;
-    height:calc(100vh - 183px) ;
+    height:calc(100vh - 194px) ;
     text-align: center;
     position: relative;
   }
@@ -555,9 +558,9 @@ box-sizing: border-box;
   padding: 5px 10px;
 }
 .colortext .el-tabs__item{
-  font-family: Source Sans Pro, Source Sans Pro;
+  font-family: 'Source Sans-Regular';
   font-weight: 400;
-  font-size: 18px;
+  font-size: 17px;
   color: #333333;
   line-height: 23px;
   text-align: left;
@@ -567,9 +570,9 @@ box-sizing: border-box;
 .colortext .el-dialog__body{
   padding: 0;
 }
-.el-tabs__active-bar{
+/* .el-tabs__active-bar{
   background: rgba(179, 179, 179, 1);
-}
+} */
 .colortext .el-tabs--left .el-tabs__header.is-left{
   background: #F4F4F4;
   height: 459px;
@@ -601,10 +604,11 @@ ul{
   line-height: 40px;
   float: left;
   color: #333;
-  font-size: 18px;
+  font-size: 17px;
+  font-family: 'Source Sans-Regular';
 }
 .colortext .XFpdding ul .item.active {
-  border-top: 2px solid #B3B3B3;
+  border-top: 2px solid  #2267B1;;
   background-color: #FFF;
   border-left: 1px solid #B3B3B3;
   border-right: 1px solid #B3B3B3;
@@ -613,14 +617,14 @@ ul{
   text-align: left !important;
 }
 .colortext .el-table .cell{
-  font-size: 18px !important;
+  font-size: 17px !important;
 }
 .colortext  .el-table .el-table__cell{
   padding: 0;
 }
 .colortext  .el-table thead{
   font-weight: 400;
-  font-size: 18px;
+  font-size: 17px;
   color: #1A1A1A;
   line-height: 21px;
   text-align: left;
@@ -648,7 +652,8 @@ height: 30px;
 .colortext  .el-form-item__label{
   text-align: right !important;
   color: #333;
-  font-size: 18px;
+  font-size: 16px;
+  font-family: 'Source Sans-Regular';
 }
 .colortext .el-tabs--left .el-tabs__header.is-left{
   margin: 0;
@@ -680,3 +685,7 @@ width: 200px;
 .heder_tabs .el-tabs{
   --el-tabs-header-height: 50px;
 }
+.el-image__inner {
+  vertical-align: middle;
+  opacity: 1;
+}

+ 3 - 2
src/style/style.css

@@ -317,10 +317,11 @@ position: relative;
   }
   .left_main_content{
     width: 200px;
-    height: calc(100vh - 184px);
+    height: calc(100vh - 193px);
 background: #FFFFFF;
 box-shadow: 2px 0px 11px 0px rgba(0,0,0,0.12);
 border-radius: 10px 10px 10px 10px;
+
   }
   .mianflex{
     display: flex;
@@ -524,7 +525,7 @@ button:focus, button:focus-visible{
     --el-input-inner-height: calc(var(--el-input-height, .1667rem) - .0104rem) !important;
   }
   .left_main  .el-tabs__item {
-    color: #1A1A1A;
+    color: #333;
   }
   .panetab .el-image {
  

+ 222 - 339
src/views/home.vue

@@ -14,15 +14,8 @@
               </el-tab-pane>
               <el-tab-pane label="问题设定" name="Role">
                 <div class="imgzong Role">
-                  <!-- <div class="listitem lbg_color3 bkcolor3" v-for="(item, index) in Rolelist" :key="'Role-' + index"
-                      :class="{ activeOrange: active == 'Role-' + index }"
-                      @click="clickgeometry($event, index, 'Role-' + index,item.titlie )">
-                      <div class="item2 ">
-                        <el-image :src="getImgPath(item.url)" fit="cover" />
-                        <span>{{ item.titlie }}</span>
-                      </div>
-                    </div> -->
-                  <div class="listitem lbg_color3 bkcolor3 ">
+               
+                  <!-- <div class="listitem lbg_color3 bkcolor3 ">
                     <div class="threelist">
                       <div class="item2 floatitem wentsd" v-for="(item, index) in Rolelist" :key="'Role' + index"
                         :class="{ activeOrange: active == 'Role' + index }"
@@ -31,6 +24,42 @@
                         <span>{{ item.titlie }}</span>
                       </div>
                     </div>
+                  </div> -->
+                  <!-- <div class="item2 margr" @click="clickgeometry($event, index, 'Role-' + '2', undmodel)">
+                      <el-image :src="getImgPath('tow1.png')" fit="cover" />
+                      <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">
+                        </el-option>
+                      </el-select>
+                    </div> -->
+                    <div class="listitem lbg_color3 bkcolor3 threelist">
+                    <div class="item2 margr" @click="clickgeometry($event, index, 'Role-' + '2', undmodel)">
+                      <el-image :src="getImgPath('tow1.png')" fit="cover" />
+                      <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">
+                        </el-option>
+                      </el-select>
+                    </div>
+                    <div class="item2 margr" @click="clickgeometry($event, index, 'Role-' + '1', modelban)">
+                      <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-select>
+                    </div>
+                    <div class="item2 margr" @click="clickgeometry($event, index, 'Role-' + '2', undmodel)">
+                      <el-image :src="getImgPath('tow3.png')" fit="cover" />
+                      <span>{{ undmodel }}</span>
+                      <el-select v-model="undmodel" class="no-border headersele" :suffix-icon="CaretBottom">
+                        <el-option v-for="item in options4" :key="item.value" :label="item.label" :value="item.value">
+                        </el-option>
+                      </el-select>
+                    </div>
                   </div>
                   <!--  -->
                   <div class="listitem lbg_color3 bkcolor3 ">
@@ -1591,227 +1620,15 @@
                     <!-- 代理优化器 -->
                 <el-tabs tab-position="left" class="demo-tabs" v-model="activeadf" @tab-click="adfhandleClick">
               <el-tab-pane label="代理优化器" name="代理优化器">
-                <div class="XFpdding">
-                  <div class="numberinput lefttext  dlheight">
-                    <el-form-item label="优化算法:" :label-width="formLabelWidth200">
-                  <el-select v-model="youhua.algorithm" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in yslist" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </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" />
-                </el-form-item>
-                <el-form-item label="续算开关:" :label-width="formLabelWidth200">
-                  <el-select v-model="youhua.algorithm" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in yslist" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </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" />
-                </el-form-item>
-                <el-form-item label="样本点数:"  :label-width="formLabelWidth200">
-                  <div style="display: flex;">
-                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
-                  <!-- <template #prepend>X方向</template> -->
-                  <template  #prefix>初始 </template>
-                </el-input>
-                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
-                  <template  #prefix>最大</template>
-                </el-input>
-              </div>
-              </el-form-item>
-              <el-form-item label="低可信度样本点数:"  :label-width="formLabelWidth200">
-                  <div style="display: flex;">
-                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
-                  <!-- <template #prepend>X方向</template> -->
-                  <template  #prefix>初始 </template>
-                </el-input>
-                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
-                  <template  #prefix>最大</template>
-                </el-input>
-              </div>
-              </el-form-item>
-              <el-form-item label="各可信度样本点数:"  :label-width="formLabelWidth200">
-                  <div style="display: flex;">
-                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
-                  <!-- <template #prepend>X方向</template> -->
-                  <template  #prefix>初始 </template>
-                </el-input>
-                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
-                  <template  #prefix>最大</template>
-                </el-input>
-              </div>
-              </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" />
-                </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" />
-                </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" />
-                </el-form-item>
-                <el-form-item label="选择代理模型:" :label-width="formLabelWidth200">
-                  <el-select v-model="dlival" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in daililist" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="相关函数:" :label-width="formLabelWidth200">
-                  <el-select v-model="dlival1" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in daililist1" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="是否优化超参数:" :label-width="formLabelWidth200">
-                  <el-select v-model="dlival2" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in daililist2" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="Kriging模型阶数:" :label-width="formLabelWidth200">
-                  <el-select v-model="dlival3" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in daililist3" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="相关矩阵分解法:" :label-width="formLabelWidth200">
-                  <el-select v-model="dlival4" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in daililist4" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="超参数优化算法:" :label-width="formLabelWidth200">
-                  <el-select v-model="dlival5" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in daililist5" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="正则化方法:" :label-width="formLabelWidth200">
-                  <el-select v-model="dlival6" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in daililist6" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </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" />
-                </el-form-item>
-                <el-form-item label="KB加点数量:"  :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="子优化方法:"  :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="约束处理方法:"  :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="种群规模:"  :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="最大进化代数:"  :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="交叉概率:"  :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="变异概率:"  :label-width="formLabelWidth200">
-                <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
-                </el-form-item>
-            </div>
-                </div>
+              <Doptimize/>
               </el-tab-pane>
               <!-- 进步优化器 -->
               <el-tab-pane label="进化优化器" name="进化优化器">
-                <div class="XFpdding">
-                  <div class="numberinput lefttext">
-              <el-form>
-                <el-form-item label="优化算法:" :label-width="formLabelWidth1">
-                  <el-select v-model="youhua.algorithm" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in yslist" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="种群规模:" :label-width="formLabelWidth1">
-                  <el-input-number v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
-                </el-form-item>
-                <el-form-item label="迭代次数:" :label-width="formLabelWidth1">
-                  <el-input-number v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
-                </el-form-item>
-                <el-form-item label="交叉概率:" :label-width="formLabelWidth1">
-                  <el-input-number v-model="youhua.probcrossover" :step="0.1" :min="0" :max="1000"
-                    controls-position="right" />
-                </el-form-item>
-                <el-form-item label="变异概率:" :label-width="formLabelWidth1">
-                  <el-input-number v-model="youhua.probmut" :step="0.1" :min="0" :max="1000" controls-position="right" />
-                </el-form-item>
-                <el-form-item label="交叉算子:" :label-width="formLabelWidth1">
-                  <el-select v-model="youhua.proboperator" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in addlist2" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="竞赛规模:" :label-width="formLabelWidth1">
-                  <el-input-number v-model="youhua.probscale" :min="0" :max="100" controls-position="right" />
-                </el-form-item>
-                <el-form-item label="保留优选策略:" :label-width="formLabelWidth1">
-                  <el-select v-model="youhua.strategy" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in addlist3" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="变异算子选择:" :label-width="formLabelWidth1">
-                  <el-select v-model="youhua.operator" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in addlist4" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="gpu加速:" :label-width="formLabelWidth1">
-                  <el-select v-model="youhua.gpu" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in addlist8" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-              </el-form>
-            </div>
-                </div>
+                <Joptimize/>
               </el-tab-pane>
               <!-- 梯度优化器 -->
               <el-tab-pane label="梯度优化器" name="梯度优化器">
-                <div class="XFpdding">
-                  <div class="numberinput lefttext">
-              <el-form>
-                <el-form-item label="优化算法:" :label-width="formLabelWidth1">
-                  <el-select v-model="youhua.algorithm" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in yslist" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="最大外迭代步数:" :label-width="formLabelWidth1">
-                  <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
-                </el-form-item>
-                <el-form-item label="输出精度等级:" :label-width="formLabelWidth1">
-                  <el-input v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
-                </el-form-item>
-                <el-form-item label="线性约束容差:" :label-width="formLabelWidth1">
-                  <el-input v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
-                </el-form-item>
-                <el-form-item label="非线性约束容差:" :label-width="formLabelWidth1">
-                  <el-input v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
-                </el-form-item>
-                <el-form-item label="最优性度量容差::" :label-width="formLabelWidth1">
-                  <el-input v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
-                </el-form-item>
-                <el-form-item label="梯度验证级别:" :label-width="formLabelWidth1">
-                  <el-select v-model="tdval" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in tdlist" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-              </el-form>
-            </div>
-                </div>
+                <Toptimize/>
               </el-tab-pane>
             </el-tabs>
               </el-form>
@@ -1825,6 +1642,69 @@
               </div>
             </template>
           </el-dialog>
+          <!-- 单独的进步优化器 -->
+          <el-dialog v-model="dialog.jboptimizer" 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="430" class="dialog_class bgcolor tianjia sel colortext">
+
+            <template #header="{ titleId, titleClass }">
+              <div class="my-header ">
+                <el-image :src="getImgPath('t2.png')" fit="contain"></el-image>
+                <h4 :id="titleId" :class="titleClass">优化算法:</h4>
+              </div>
+            </template>
+            <Joptimize/>
+            <template #footer>
+              <div class="dialog-footer">
+                <el-button @click="dialog.jboptimizer = false">取消</el-button>
+                <el-button type="primary" @click="getaddsave(); dialog.jboptimizer = false">
+                  确定
+                </el-button>
+              </div>
+            </template>
+          </el-dialog>
+                <!-- 单独的代理优化器 -->
+          <el-dialog v-model="dialog.dboptimizer" 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="430" class="dialog_class bgcolor tianjia sel colortext">
+
+            <template #header="{ titleId, titleClass }">
+              <div class="my-header ">
+                <!-- <el-image :src="getImgPath('t2.png')" fit="contain"></el-image> -->
+                <h4 :id="titleId" :class="titleClass">代理优化器</h4>
+              </div>
+            </template>
+            <Doptimize/>
+            <template #footer>
+              <div class="dialog-footer">
+                <el-button @click="dialog.dboptimizer = false">取消</el-button>
+                <el-button type="primary" @click=" dialog.dboptimizer = false">
+                  确定
+                </el-button>
+              </div>
+            </template>
+          </el-dialog>
+                <!-- 单独的梯度优化器 -->
+          <el-dialog v-model="dialog.tboptimizer" 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="430" class="dialog_class bgcolor tianjia sel colortext">
+
+            <template #header="{ titleId, titleClass }">
+              <div class="my-header ">
+                <!-- <el-image :src="getImgPath('t2.png')" fit="contain"></el-image> -->
+                <h4 :id="titleId" :class="titleClass">梯度优化器:</h4>
+              </div>
+            </template>
+            <Toptimize/>
+            <template #footer>
+              <div class="dialog-footer">
+                <el-button @click="dialog.tboptimizer = false">取消</el-button>
+                <el-button type="primary" @click=" dialog.tboptimizer = false">
+                  确定
+                </el-button>
+              </div>
+            </template>
+          </el-dialog>
           <!-- 内容区 -->
           <div class="main  mianflex">
             <!--left菜单栏  -->
@@ -1890,8 +1770,10 @@
                   <div class="gooterpading">
                     <div class="footerTitle   el-tag--primary">
                       <div>
-                        <span v-for="(tab, index) in tabs" :key="index" :class="{ 'active': activeIndex === index }"
-                          @click="xxclick(index)">{{ tab }}</span>
+                        <div class="span" v-for="(tab, index) in tabs" :key="index" :class="{ 'active': activeIndex === index }"
+                          @click="xxclick(index)">
+                          <el-image :src="tab.img" fit="contain"></el-image>
+                          <span>{{ tab.name }} </span></div>
                       </div>
                       <div>
                         <!-- <li
@@ -1916,7 +1798,10 @@
                       <div class="youhualog" v-if="activeIndex == 1">
                         <ul>
                           <li v-for="(tab, index) in listli" :key="index" :class="{ 'active2': activeIndex2 === index }"
-                            @click="issueclick(index)">{{ tab }}</li>
+                            @click="issueclick(index)">
+                            <el-image v-if="activeIndex2 === index" :src="tab.isimg" fit="contain"></el-image>
+                            <el-image v-else :src="tab.noimg" fit="contain"></el-image>
+                          {{ tab.name }}</li>
                         </ul>
                         <div class="footer-content">
                           <div class="eldesign classtable" v-if="activeIndex2 == 0">
@@ -2114,6 +1999,14 @@ import q2 from "@/assets/img/q2.png"
 import f21 from "@/assets/img/f21.png"
 import f22 from "@/assets/img/f22.png"
 import f41 from "@/assets/img/f41.png"
+import xin from "@/assets/img/xin.png"
+import xin2 from "@/assets/img/xin2.png"
+import s from "@/assets/img/s.png"
+import y from "@/assets/img/y.png"
+import y2 from "@/assets/img/y2.png"
+import nos from "@/assets/img/nos.png"
+import zy from "@/assets/img/zy.png"
+import zy2 from "@/assets/img/zy2.png"
 import optmonitor from './echart/optimize_monitor.vue'
 import echartindex from './echart/index.vue'
 import sixtop from './echart/six_top.vue'
@@ -2129,9 +2022,23 @@ import echartLine from './echart/echartLine.vue'
 import BarChart from './echart/BarChart.vue'
 import scatter from './echart/scatter.vue'
 import radar from './echart/radar.vue'
+import Doptimize from './titlecomponent/Doptimize.vue'
+import Joptimize from './titlecomponent/Joptimize.vue'
+import Toptimize from './titlecomponent/Toptimize.vue'
 let Sidebarref = ref();
 let resource=ref(0);
 let cstnum=ref('');
+let f4ce = ref("优化问题组件");
+let modelban = ref("学科分析组件");
+let undmodel=ref('优化器组件');
+let optiongroup1 = ref([
+  { label: '二维Rosenbrock', value: '二维Rosenbrock' }
+])
+let options4 = ref([
+  { label: '进化优化器', value: '进化优化器' },
+  { label: '代理优化器', value: '代理优化器' },
+  { label: '梯度优化器', value: '梯度优化器' },
+])
 let formLabelWidth3=ref(100)
 let formLabelWidth200=ref(200)
 let tablecstHeaders=ref([]);
@@ -2204,8 +2111,29 @@ let elodingfalse = ref(false);
 let footerShow = ref(true);
 let zhixing = ref('Rosenbrock');
 let tabName = ref("one")
-const tabs = ['信息栏', '优化问题'];
-const listli = ['设计变量', '约束条件', '优化目标'];
+const tabs = [{
+  name:'信息栏',
+  img:xin,
+},{
+  name:'优化问题',
+  img:xin2,
+
+}]
+const listli=[{
+  name:'设计变量',
+  noimg:nos,
+  isimg:s
+},{
+  name:'约束条件',
+  noimg:y,
+  isimg:zy
+},
+{
+  name:'优化目标',
+  noimg:y2,
+  isimg:zy2
+}
+]
 const xfoil = ['输入', '执行', '输出'];
 const newxfoil = ['输入参数', '输出参数', '中间参数'];
 let srtable = ref([]);
@@ -2341,15 +2269,19 @@ let formLabelWidth2 = ref(130)
 let canshu = ref();
 
 let question = ref([
-  { url: 'k1.png', titlie: "面积图" },
-  { url: 'k2.png', titlie: "柱状图" },
-  { url: 'k3.png', titlie: "饼状图" },
-  { url: 'k4.png', titlie: "折线图" },
-  { url: 'k5.png', titlie: "散点图" },
-  { url: 'k6.png', titlie: "横条图" },
-  { url: 'k7.png', titlie: "雷达图" },
-  { url: 'k8.png', titlie: "查看报告" },
-  { url: 'k9.png', titlie: "导出报告" },
+  { url: 'kk1.png', titlie: "列表" },
+  { url: 'kk2.png', titlie: "散点图" },
+  { url: 'kk3.png', titlie: "面积图" },
+  { url: 'kk4.png', titlie: "折线图" },
+  { url: 'kk5.png', titlie: "柱状图" },
+  // { url: 'k3.png', titlie: "饼状图" },
+ 
+  { url: 'kk6.png', titlie: "横条图" },
+  { url: 'kk7.png', titlie: "雷达图" },
+  { url: 'kk8.png', titlie: "Pareto" },
+  { url: 'kk9.png', titlie: "云图" },
+  { url: 'kk10.png', titlie: "查看报告" },
+  { url: 'kk11.png', titlie: "导出报告" },
 ])
 let roletion = ref([
   { url: 'f41.png', titlie: "测试函数模板" },
@@ -2360,27 +2292,27 @@ let tasktion = ref([
   { url: 't0.png', titlie: "外形参数化" },
 ])
 let Rolelist = ref([
-  { url: 'w1.png', titlie: "优化问题组件" },
-  { url: 'w2.png', titlie: "学科分析组件" },
-  { url: 'w3.png', titlie: "优化器组件" },
+  { url: 'tow1.png', titlie: "优化问题组件" },
+  { url: 'tow2.png', titlie: "学科分析组件" },
+  { url: 'tow3.png', titlie: "优化器组件" },
 ])
 let Rolelist1 = ref([
-  { url: 'w4.png', titlie: "逻辑流连线" },
-  { url: 'w5.png', titlie: "数据流连线" },
+  { url: 'l1.png', titlie: "逻辑流连线" },
+  { url: 'l2.png', titlie: "数据流连线" },
 ])
 let Rolelist11 = ref([{ url: 'w6.png', titlie: "选择连线颜色" }])
 let Rolelist2 = ref([
-  { url: 'w7.png', titlie: "模块组合" },
-  { url: 'w8.png', titlie: "模块拆分" },
+  { url: 'cai1.png', titlie: "模块组合" },
+  { url: 'cai2.png', titlie: "模块拆分" },
 ])
 let Rolelist22 = ref([{ url: 'w9.png', titlie: "选择图框颜色" }])
 let Rolelist3 = ref([
   { url: 'w10.png', titlie: "添加注释" },
 ])
 let Threelist = ref([
-  { url: 'tt.png', titlie: "开始" },
-  { url: 'tt1.png', titlie: "暂停" },
-  { url: 'tt2.png', titlie: "续算" },
+  { url: 'you1.png', titlie: "开始" },
+  { url: 'you2.png', titlie: "暂停" },
+  { url: 'you3.png', titlie: "续算" },
   { url: 'tts.png', titlie: "结束" },
 ])
 let Threelist1 = ref([
@@ -2390,9 +2322,9 @@ let Threelist1 = ref([
 ])
 
 let Sevenlist = ref([
-  { url: 's11.png', titlie: '任务管理' },
-  { url: 's12.png', titlie: '任务检索' },
-  { url: 's13.png', titlie: '备份与恢复' },
+{ url: 'rr2.png', titlie: '任务检索' },
+{ url: 'rr1.png', titlie: '任务管理' },
+  { url: 'rr3.png', titlie: '备份' },
 ])
 let eightlist = ref([
   { url: 'e1.png', titlie: '快速入门' },
@@ -2429,71 +2361,6 @@ let addval = ref("EI + MSP")
 let addlist = ref([
   { label: 'EI + MSP', value: 'EI + MSP' },
 ])
-
-let yslist = ref([
-  { label: 'GA', value: 'GA' },
-  { label: 'PSO', value: 'PSO' },
-  { label: 'NSGA2', value: 'NSGA2' },
-])
-
-let dlival=ref('Kriging')
-let daililist = ref([
-  { label: 'Kriging', value: 'Kriging' },
-  { label: 'GEK', value: 'GEK' },
-  { label: 'Co-Kriging', value: 'Co-Kriging' },
-  { label: 'HK', value: 'HK' },
-  { label: 'MHK', value: 'MHK' },
-])
-let dlival1=ref('三次样条函数')
-let daililist1= ref([
-  { label: '各向异性高斯指数函数', value: '各向异性高斯指数函数' },
-  { label: '各向同性高斯指数函数', value: '各向同性高斯指数函数' },
-  { label: '三次样条函数', value: '三次样条函数' },
-
-])
-let dlival2=ref('0')
-let daililist2= ref([
-  { label: '不优化超参数', value: '0' },
-  { label: '使用随机初值优化超参数', value: '1' },
-  { label: '上一轮建模数据作为初值优化超参数', value: '2' },
-
-])
-let dlival3=ref('0')
-let daililist3= ref([
-  { label: '普通Kriging', value: '0' },
-  { label: '泛Kriging', value: '1' },
-
-])
-let dlival4=ref('0')
-let daililist4= ref([
-  { label: 'LU分解', value: '0' },
-  { label: 'Cholesky分解', value: '1' },
-  { label: '采用第三方库并行分解', value: '2' },
-
-])
-let dlival5=ref('0')
-let daililist5= ref([
-  { label: 'HookeJeeves', value: '0' },
-  { label: 'BFGS', value: '1' },
-  { label: '单纯形搜索方法', value: '2' },
-
-])
-let dlival6=ref('0')
-let daililist6= ref([
-  { label: '不进行正则化', value: '0' },
-  { label: '常数正则化', value: '1' },
-  { label: '优化正则化', value: '2' },
-
-])
-let tdval=ref('0')
-let tdlist= ref([
-  { label: '约束详细验证', value: '0' },
-  { label: '不验证', value: '1' },
-  { label: '简单验证', value: '2' },
-  { label: '目标详细验证', value: '3' },
-  { label: '目标+约束详细验证', value: '4' },
-
-])
 let ad1=ref('二维')
 let adlist1 = ref([
   { label: '二维', value: '二维' },
@@ -2546,6 +2413,8 @@ let dialog = ref({
   agency: false,
   optimizer: false,
   jboptimizer: false,
+  dboptimize: false,
+  tboptimizer: false,
   lookover:false,
   Xfiol: false,
   tidu:false,
@@ -2794,20 +2663,20 @@ const optimizerfalse = (val) => {
 
   } else if (val == '进化优化器') {
     activeadf.value='进化优化器';
-    dialog.value.optgroup = true;
+    dialog.value.jboptimizer = true;
    // dialog.value.jboptimizer = true;
     getoptimize();
   } else if (val == '代理优化器') {
     activeadf.value='代理优化器';
-    dialog.value.optgroup = true;
-   // dialog.value.jboptimizer = true;
+    // dialog.value.optgroup = true;
+    dialog.value.dboptimizer = true;
   }  else if (val == 'Xfiol' || val == 'Rosenbrock') {
     importget();
     dialog.value.Xfiol = true;
 
   }else if(val == '梯度优化器'){
     activeadf.value='梯度优化器';
-    dialog.value.optgroup = true;
+    dialog.value.tboptimizer = true;
   }else if(val == 'CST'){
    /// dialog.value.CSTt = true;
    activeadf.value='CST';
@@ -3217,6 +3086,7 @@ const xxclick = (index) => {
 //底部优化问题
 const issueclick = (index) => {
   activeIndex2.value = index;
+
   if (activeIndex2.value == 0) {
     getissue();
   } else if (activeIndex2.value == 1) {
@@ -3936,10 +3806,12 @@ const adfhandleClick=(tab,event)=>{
   border-top: 1px solid #B3B3B3;
   border-bottom: 1px solid #B3B3B3;
 }
-
+.footerTitle .el-image{
+  width:24px;
+}
 .footerTitle div {
   display: flex;
-  justify-content: space-around;
+  justify-content:center ;
   align-items: center;
   font-size: 14px;
 }
@@ -3954,14 +3826,19 @@ const adfhandleClick=(tab,event)=>{
   margin: 0;
 }
 
-.footerTitle span {
+.footerTitle .span {
  width: 150px;
   height: 40px;
   line-height: 40px;
   cursor: default;
   position: relative;
+  font-size: 17px;
+  color: #333333;
+  font-family: 'Source Sans-Regular';
+}
+.footerTitle .span span{
+  padding-left:8px
 }
-
 .footerText .el-textarea__inner {
   width: 100%;
   height: 178px !important;
@@ -3969,6 +3846,7 @@ const adfhandleClick=(tab,event)=>{
   font-size: 12px;
   color: #333;
   padding: 2px;
+  box-shadow:none;
 }
 
 //没有子节点
@@ -3984,16 +3862,17 @@ const adfhandleClick=(tab,event)=>{
 .custom-text {
   font-family: 'Source Sans-Regular';
   font-size: 16px;
-  color: #383838;
+  color: rgba(51, 51, 51, 1);
   line-height: 24px;
   text-align: left;
   font-style: normal;
   text-transform: none;
+  padding-left: 8px;
 }
 
 .el-tree .el-tree-node__children .custom-text {
   font-family: 'Source Sans-Regular';
-  font-size: 18px;
+  font-size: 16px;
   /* 这里设置为20px,你可以根据需求调整大小 */
 color: rgba(51, 51, 51, 0.8);
 
@@ -4017,7 +3896,7 @@ color: rgba(51, 51, 51, 0.8);
 }
 
 .footer-tab .el-tabs__item {
-  color: #383838;
+  color: #333333;
 }
 
 .footerTitle .active {
@@ -4049,33 +3928,37 @@ color: rgba(51, 51, 51, 0.8);
 }
 .youhualog {
   width: 100%;
-  height: 178px;
+  height: 195px;
   overflow-y: auto;
   background: #fff;
 }
 
 .youhualog .active2 {
-  background-color: #f0f0f0;
+color: #2267B1;
 }
-
 .youhualog ul {
-  width: 320px;
+  width:504px;
   display: flex;
 }
-
 .youhualog ul li {
+  font-family: 'Source Sans-Regular';
   flex: 1;
-  background: #DFDFDF;
-  border: 1px solid #2267B1;
-  font-size: 14px;
-  text-align: center;
+  border-left: 1px solid #B3B3B3;
+  font-size: 17px;
+  height: 40px;
+  line-height: 40px;
+  width: 168px;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+
 
 }
 
 .footer-content {
   /* // padding: 15px 24px; */
   padding: 5px;
-  border: 1px solid #2267B1;
+  border: 1px solid #B3B3B3;
   margin-right: 119px;
 }
 
@@ -4099,9 +3982,9 @@ color: rgba(51, 51, 51, 0.8);
   margin-top: 2px;
   height: 27px;
   background: #FFFFFF;
-  box-shadow: 0px 2px 2px 0px #2267B1;
+  box-shadow: 0px 2px 2px 0px #B3B3B3;
   border-radius: 0px 0px 0px 0px;
-  border: 1px solid #2267B1;
+  border: 1px solid #B3B3B3;
 }
 
 .classtable .el-table td.el-table__cell div .el-input__wrapper {

+ 3 - 1
src/views/openpage.vue

@@ -120,6 +120,8 @@ span{
   .el-menu-item{
     color: #fff;
     padding: 0 45px !important;
+    font-family: 'Source Sans-Black';
+    font-size: 16px;
   }
 }
 
@@ -143,7 +145,7 @@ span{
     height: 100%;
 }
 .user-slider .el-menu-item.is-active{
-  color: #000;
+  color: #333;
     background: #ecf5ff;
 }
 .el-menu-item:hover{

+ 208 - 0
src/views/titlecomponent/Doptimize.vue

@@ -0,0 +1,208 @@
+<template>
+    <div class="XFpdding">
+                  <div class="numberinput lefttext  dlheight">
+                    <el-form-item label="优化算法:" :label-width="formLabelWidth200">
+                  <el-select v-model="youhua.algorithm" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in yslist" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </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" />
+                </el-form-item>
+                <el-form-item label="续算开关:" :label-width="formLabelWidth200">
+                  <el-select v-model="youhua.algorithm" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in yslist" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </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" />
+                </el-form-item>
+                <el-form-item label="样本点数:"  :label-width="formLabelWidth200">
+                  <div style="display: flex;">
+                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
+                  <!-- <template #prepend>X方向</template> -->
+                  <template  #prefix>初始 </template>
+                </el-input>
+                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
+                  <template  #prefix>最大</template>
+                </el-input>
+              </div>
+              </el-form-item>
+              <el-form-item label="低可信度样本点数:"  :label-width="formLabelWidth200">
+                  <div style="display: flex;">
+                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
+                  <!-- <template #prepend>X方向</template> -->
+                  <template  #prefix>初始 </template>
+                </el-input>
+                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
+                  <template  #prefix>最大</template>
+                </el-input>
+              </div>
+              </el-form-item>
+              <el-form-item label="各可信度样本点数:"  :label-width="formLabelWidth200">
+                  <div style="display: flex;">
+                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
+                  <!-- <template #prepend>X方向</template> -->
+                  <template  #prefix>初始 </template>
+                </el-input>
+                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
+                  <template  #prefix>最大</template>
+                </el-input>
+              </div>
+              </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" />
+                </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" />
+                </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" />
+                </el-form-item>
+                <el-form-item label="选择代理模型:" :label-width="formLabelWidth200">
+                  <el-select v-model="dlival" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in daililist" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="相关函数:" :label-width="formLabelWidth200">
+                  <el-select v-model="dlival1" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in daililist1" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="是否优化超参数:" :label-width="formLabelWidth200">
+                  <el-select v-model="dlival2" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in daililist2" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="Kriging模型阶数:" :label-width="formLabelWidth200">
+                  <el-select v-model="dlival3" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in daililist3" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="相关矩阵分解法:" :label-width="formLabelWidth200">
+                  <el-select v-model="dlival4" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in daililist4" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="超参数优化算法:" :label-width="formLabelWidth200">
+                  <el-select v-model="dlival5" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in daililist5" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="正则化方法:" :label-width="formLabelWidth200">
+                  <el-select v-model="dlival6" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in daililist6" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </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" />
+                </el-form-item>
+                <el-form-item label="KB加点数量:"  :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="子优化方法:"  :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="约束处理方法:"  :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="种群规模:"  :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="最大进化代数:"  :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="交叉概率:"  :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="变异概率:"  :label-width="formLabelWidth200">
+                <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+            </div>
+                </div>
+  </template>
+<script  setup>
+import { ref, onMounted, reactive, provide, nextTick } from "vue";
+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 youhua = ref({
+  algorithm: 'GA',
+  popsize: 100,
+  epoch: 100,
+  probcrossover: 0.1,
+  probmut: 0.1,
+  proboperator: 'SBX交叉',
+  probscale: 1,
+  strategy: '最佳保留策略',
+  operator: '倒位变异',
+  gpu: 'YES'
+})
+let cstnum=ref('');
+let yslist = ref([
+  { label: 'GA', value: 'GA' },
+  { label: 'PSO', value: 'PSO' },
+  { label: 'NSGA2', value: 'NSGA2' },
+])
+let dlival=ref('Kriging')
+let daililist = ref([
+  { label: 'Kriging', value: 'Kriging' },
+  { label: 'GEK', value: 'GEK' },
+  { label: 'Co-Kriging', value: 'Co-Kriging' },
+  { label: 'HK', value: 'HK' },
+  { label: 'MHK', value: 'MHK' },
+])
+let dlival1=ref('三次样条函数')
+let daililist1= ref([
+  { label: '各向异性高斯指数函数', value: '各向异性高斯指数函数' },
+  { label: '各向同性高斯指数函数', value: '各向同性高斯指数函数' },
+  { label: '三次样条函数', value: '三次样条函数' },
+
+])
+let dlival2=ref('0')
+let daililist2= ref([
+  { label: '不优化超参数', value: '0' },
+  { label: '使用随机初值优化超参数', value: '1' },
+  { label: '上一轮建模数据作为初值优化超参数', value: '2' },
+
+])
+let dlival3=ref('0')
+let daililist3= ref([
+  { label: '普通Kriging', value: '0' },
+  { label: '泛Kriging', value: '1' },
+
+])
+let dlival4=ref('0')
+let daililist4= ref([
+  { label: 'LU分解', value: '0' },
+  { label: 'Cholesky分解', value: '1' },
+  { label: '采用第三方库并行分解', value: '2' },
+
+])
+let dlival5=ref('0')
+let daililist5= ref([
+  { label: 'HookeJeeves', value: '0' },
+  { label: 'BFGS', value: '1' },
+  { label: '单纯形搜索方法', value: '2' },
+
+])
+let dlival6=ref('0')
+let daililist6= ref([
+  { label: '不进行正则化', value: '0' },
+  { label: '常数正则化', value: '1' },
+  { label: '优化正则化', value: '2' },
+
+])
+</script>
+
+

+ 108 - 0
src/views/titlecomponent/Joptimize.vue

@@ -0,0 +1,108 @@
+<template>
+    <div class="XFpdding">
+               <div class="numberinput lefttext">
+           <el-form>
+             <el-form-item label="优化算法:" :label-width="formLabelWidth1">
+               <el-select v-model="youhua.algorithm" :suffix-icon="CaretBottom" placeholder="请选择">
+                 <el-option v-for="item in yslist" :key="item.value" :label="item.label" :value="item.value">
+                 </el-option>
+               </el-select>
+             </el-form-item>
+             <el-form-item label="种群规模:" :label-width="formLabelWidth1">
+               <el-input-number v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
+             </el-form-item>
+             <el-form-item label="迭代次数:" :label-width="formLabelWidth1">
+               <el-input-number v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
+             </el-form-item>
+             <el-form-item label="交叉概率:" :label-width="formLabelWidth1">
+               <el-input-number v-model="youhua.probcrossover" :step="0.1" :min="0" :max="1000"
+                 controls-position="right" />
+             </el-form-item>
+             <el-form-item label="变异概率:" :label-width="formLabelWidth1">
+               <el-input-number v-model="youhua.probmut" :step="0.1" :min="0" :max="1000" controls-position="right" />
+             </el-form-item>
+             <el-form-item label="交叉算子:" :label-width="formLabelWidth1">
+               <el-select v-model="youhua.proboperator" :suffix-icon="CaretBottom" placeholder="请选择">
+                 <el-option v-for="item in addlist2" :key="item.value" :label="item.label" :value="item.value">
+                 </el-option>
+               </el-select>
+             </el-form-item>
+             <el-form-item label="竞赛规模:" :label-width="formLabelWidth1">
+               <el-input-number v-model="youhua.probscale" :min="0" :max="100" controls-position="right" />
+             </el-form-item>
+             <el-form-item label="保留优选策略:" :label-width="formLabelWidth1">
+               <el-select v-model="youhua.strategy" :suffix-icon="CaretBottom" placeholder="请选择">
+                 <el-option v-for="item in addlist3" :key="item.value" :label="item.label" :value="item.value">
+                 </el-option>
+               </el-select>
+             </el-form-item>
+             <el-form-item label="变异算子选择:" :label-width="formLabelWidth1">
+               <el-select v-model="youhua.operator" :suffix-icon="CaretBottom" placeholder="请选择">
+                 <el-option v-for="item in addlist4" :key="item.value" :label="item.label" :value="item.value">
+                 </el-option>
+               </el-select>
+             </el-form-item>
+             <el-form-item label="gpu加速:" :label-width="formLabelWidth1">
+               <el-select v-model="youhua.gpu" :suffix-icon="CaretBottom" placeholder="请选择">
+                 <el-option v-for="item in addlist8" :key="item.value" :label="item.label" :value="item.value">
+                 </el-option>
+               </el-select>
+             </el-form-item>
+           </el-form>
+         </div>
+     </div>
+</template>
+<script  setup>
+import { ref, onMounted, reactive, provide, nextTick } from "vue";
+import { ElMessage, ElButton, ElDialog, ElSelect } from 'element-plus'
+import { Edit, CaretBottom } from '@element-plus/icons-vue'
+let formLabelWidth3=ref(100)
+let formLabelWidth1=ref(170)
+let formLabelWidth200=ref(200)
+let youhua = ref({
+algorithm: 'GA',
+popsize: 100,
+epoch: 100,
+probcrossover: 0.1,
+probmut: 0.1,
+proboperator: 'SBX交叉',
+probscale: 1,
+strategy: '最佳保留策略',
+operator: '倒位变异',
+gpu: 'YES'
+})
+let cstnum=ref('');
+let yslist = ref([
+{ label: 'GA', value: 'GA' },
+{ label: 'PSO', value: 'PSO' },
+{ label: 'NSGA2', value: 'NSGA2' },
+])
+let addval1 = ref("概率相乘法")
+let addlist1 = ref([
+  { label: '概率相乘法', value: '概率相乘法' },
+])
+let addval2 = ref("SBX交叉")
+let addlist2 = ref([
+  { label: 'SBX交叉', value: 'SBX交叉' },
+])
+let addval3 = ref("最佳保留策略")
+let ys = ref("GA")
+let addlist3 = ref([
+  { label: '最佳保留策略', value: '最佳保留策略' },
+])
+let addval4 = ref("倒位变异")
+let addlist4 = ref([
+  { label: '倒位变异', value: '倒位变异' },
+])
+let addval7 = ref("1e-7")
+let addlist7 = ref([
+  { label: '1e-7', value: '1e-7' },
+])
+let addval8 = ref("NO")
+let addlist8 = ref([
+  { label: 'YES', value: 'YES' },
+  { label: 'NO', value: 'NO' },
+])
+</script>
+
+

+ 73 - 0
src/views/titlecomponent/Toptimize.vue

@@ -0,0 +1,73 @@
+<template>
+    <div class="XFpdding">
+             <div class="numberinput lefttext">
+         <el-form>
+           <el-form-item label="优化算法:" :label-width="formLabelWidth1">
+             <el-select v-model="youhua.algorithm" :suffix-icon="CaretBottom" placeholder="请选择">
+               <el-option v-for="item in yslist" :key="item.value" :label="item.label" :value="item.value">
+               </el-option>
+             </el-select>
+           </el-form-item>
+           <el-form-item label="最大外迭代步数:" :label-width="formLabelWidth1">
+             <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
+           </el-form-item>
+           <el-form-item label="输出精度等级:" :label-width="formLabelWidth1">
+             <el-input v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
+           </el-form-item>
+           <el-form-item label="线性约束容差:" :label-width="formLabelWidth1">
+             <el-input v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
+           </el-form-item>
+           <el-form-item label="非线性约束容差:" :label-width="formLabelWidth1">
+             <el-input v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
+           </el-form-item>
+           <el-form-item label="最优性度量容差::" :label-width="formLabelWidth1">
+             <el-input v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
+           </el-form-item>
+           <el-form-item label="梯度验证级别:" :label-width="formLabelWidth1">
+             <el-select v-model="tdval" :suffix-icon="CaretBottom" placeholder="请选择">
+               <el-option v-for="item in tdlist" :key="item.value" :label="item.label" :value="item.value">
+               </el-option>
+             </el-select>
+           </el-form-item>
+         </el-form>
+       </div>
+           </div>
+</template>
+<script  setup>
+import { ref, onMounted, reactive, provide, nextTick } from "vue";
+import { ElMessage, ElButton, ElDialog, ElSelect } from 'element-plus'
+import { Edit, CaretBottom } from '@element-plus/icons-vue'
+let formLabelWidth3=ref(100)
+let formLabelWidth1=ref(170)
+let formLabelWidth200=ref(200)
+let youhua = ref({
+algorithm: 'GA',
+popsize: 100,
+epoch: 100,
+probcrossover: 0.1,
+probmut: 0.1,
+proboperator: 'SBX交叉',
+probscale: 1,
+strategy: '最佳保留策略',
+operator: '倒位变异',
+gpu: 'YES'
+})
+let cstnum=ref('');
+let yslist = ref([
+{ label: 'GA', value: 'GA' },
+{ label: 'PSO', value: 'PSO' },
+{ label: 'NSGA2', value: 'NSGA2' },
+])
+
+let tdval=ref('0')
+let tdlist= ref([
+{ label: '约束详细验证', value: '0' },
+{ label: '不验证', value: '1' },
+{ label: '简单验证', value: '2' },
+{ label: '目标详细验证', value: '3' },
+{ label: '目标+约束详细验证', value: '4' },
+
+])
+</script>
+
+

+ 0 - 0
src/views/titlecomponent/Xfoil.vue


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

@@ -5,6 +5,7 @@
   import gc2 from "@/assets/img/gc2.png"
   import gc3 from "@/assets/img/gc3.png"
   import r2 from '@/assets/img/r2.png'
+  import gc from '@/assets/img/gc.png'
 import useDragAndDrop from './useDnD'
 const { onDragStart,onDragLeave,treeobj,onDrop} = useDragAndDrop()
 import emitter from "@/utils/emitter";
@@ -12,7 +13,7 @@ const datatree = ref([
     {
       id:1,
       label: '工程',
-      img:r2,
+      img:gc,
       //children:[]
       children: [
         {
@@ -66,6 +67,12 @@ const datatree = ref([
       label: '学科分析组件',
       img:'',
       children: [
+      {
+          id:'3-01',
+          label: '模版',
+          img:'r2.png',
+          name:'模版'
+        },
         {
           id:'3-0',
           label: 'CST',
@@ -285,6 +292,8 @@ onUnmounted(() => {
   }
   .el-tree-node img{
     width: 24px;
+    margin-top: -8px;
+
   }
 </style>
 <style>

+ 3 - 0
src/views/vuetree/useDnD.js

@@ -18,6 +18,7 @@ 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 ffd from '@/assets/flowimg/ffd.png'
 import ADflow from '@/assets/flowimg/ADflow.png'
 import tacs from '@/assets/flowimg/TACS.png'
@@ -77,6 +78,8 @@ function imagefun(){
       return datas = {label:'代理优化器', image:xuek11,name:'代理优化器'}
     }else if(nid=='4-3'){
       return datas = {label:'梯度优化器', image:xuek12,name:'梯度优化器'}
+    }else if(nid=='3-01'){
+      return datas = {label:'模版', image:r2,name:'模版'}
     }
     else{
       return null;