liuqiao 9 місяців тому
батько
коміт
99b591664b

+ 166 - 8
src/views/home.vue

@@ -874,6 +874,118 @@
               </div>
             </template>
           </el-dialog>
+          <!--梯度优化器  -->
+          <el-dialog v-model="dialog.tidu" 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">
+
+            <template #header="{ titleId, titleClass }">
+              <div class="my-header ">
+                <el-image :src="getImgPath('xuek12.png')" fit="contain"></el-image>
+                <h4 :id="titleId" :class="titleClass">梯度优化器</h4>
+              </div>
+            </template>
+            <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="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>
+            </div>
+            <template #footer>
+              <div class="dialog-footer">
+                <el-button @click="dialog.tidu = false">取消</el-button>
+                <el-button type="primary" @click=" dialog.tidu = false">
+                  确定
+                </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 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>
+            <div class="numberinput lefttext ">
+              <el-form>
+                <div style="width: 49%;">
+                <el-form-item label="CST阶数:" :label-width="formLabelWidth3">
+                  <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="formLabelWidth1">
+                  <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="formLabelWidth1">
+                  <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="formLabelWidth1">
+                  <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="formLabelWidth1">
+                  <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-column
+                v-for="(column,index) in tablecstHeaders" :key="index"
+                :prop="column.prop"
+                :label="column.label">
+              
+                    <template #default="{ row }">
+                      <el-input v-model="row.label"  />
+                    </template>
+              </el-table-column>
+          </el-table>
+        </div>
+              </el-form>
+            </div>
+            <template #footer>
+              <div class="dialog-footer">
+                <el-button @click="dialog.CSTt = false">取消</el-button>
+                <el-button type="primary" @click=" dialog.CSTt = false">
+                  确定
+                </el-button>
+              </div>
+            </template>
+          </el-dialog>
           <!-- 查看报告 -->
           <el-dialog v-model="dialog.lookover" 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"
@@ -1210,10 +1322,13 @@ import BarChart from './echart/BarChart.vue'
 import scatter from './echart/scatter.vue'
 import radar from './echart/radar.vue'
 let Sidebarref = ref();
+let cstnum=ref(0);
+let formLabelWidth3=ref(100)
+let tablecstHeaders=ref([]);
 let treeitem = ref({});
 let treeitem2 = ref({});
 let treeitem3 = ref({});
-let percentage = ref(0);
+let percentage = ref(70);
 let progressshow = ref(false);
 let flowshow = ref(true);
 let jiankong = ref(false);
@@ -1496,12 +1611,24 @@ let dialog = ref({
   jboptimizer: false,
   lookover:false,
   Xfiol: false,
+  tidu:false,
+  CSTt:false,
   enddialog: false,
   addfun: false,
   sufun: false,
   task: false,
   guanli: false,
 })
+let tableDatacst=ref([
+  {date:"上表头"},{date:"下表头"}
+])
+let columns=ref[{
+  columns: [
+        { label: '上表面', prop: 'sbiao' },
+        { label: '下表面', prop: 'xbiao' },
+        // 动态添加更多列
+      ]
+}]
 let options = ref([
   { label: '升阻比', value: '升阻比' },
   { label: 'RCS', value: 'RCS' },
@@ -1569,9 +1696,9 @@ const tasktable = ref([
 ])
 const customColors = [
   { color: '#f56c6c', percentage: 20 },
-  { color: '#e6a23c', percentage: 40 },
-  { color: '#d3f12f', percentage: 60 },
-  { color: '#1989fa', percentage: 80 },
+  { color: '#f56c6c', percentage: 40 },
+  { color: '#5cb87a', percentage: 60 },
+  { color: '#5cb87a', percentage: 80 },
   { color: '#5cb87a', percentage: 100 },
 ]
 let name = ref("1")
@@ -1664,21 +1791,46 @@ const handleNodeClick = (data) => {
   tabactive.value = data.label;
   dialogbolen();
 }
+// cst时间
+const keydownenter=()=>{
+  tablecstHeaders.value=[];
+  let arrheader=[];
+  let num=Number(cstnum.value);
+
+for(let i=0;i<=num;i++){
+  arrheader.push('x'+i)
+}
+arrheader.forEach(function (item){
+let obj ={ label: item,prop:null };
+tablecstHeaders.value.push(obj);
+});
+tableDatacst.value.forEach(function (item){
+
+
+});
+}
 const optimizerfalse = (val) => {
   if (val == '优化器') {
     dialog.value.optimizer = true;
   } else if (val == '进化优化器') {
     dialog.value.jboptimizer = true;
     getoptimize();
-  } else if (val == 'AirfoilAero' || val == 'Rosenbrock') {
+  } else if (val == 'Xfiol' || val == 'Rosenbrock') {
     importget();
     dialog.value.Xfiol = true;
 
-  } else {
+  }else if(val == '梯度优化器'){
+    dialog.value.tidu = true;
+  }else if(val == 'CST'){
+    dialog.value.CSTt = true;
+  }
+   else {
     dialog.value.optimizer = false;
     dialog.value.jboptimizer = false;
     dialog.value.Xfiol = false;
     dialog.value.lookover = false;
+    dialog.value.tidu = false;
+    dialog.value.CSTt = false;
   }
 
 }
@@ -2603,7 +2755,8 @@ function initWebSocket() {
 
   //初始化weosocket
   // const wsuri = "ws://192.168.0.43:8087//websocket?projectId="+this.pid; ws://192.168.0.131/diswebsocket?projectId=5
-  const wsurl = "ws://192.168.108:8188//websocket?projectId=" + pid.value;
+ // const wsurl = "ws://192.168.108:8188//websocket?projectId=" + pid.value;
+ const wsurl = "ws://192.168.0.131:8188//websocket?projectId=" + pid.value;
   // const wsurl =
   //   "ws://" +
   //   process.env.VUE_APP_BASE_websokt +
@@ -2674,7 +2827,7 @@ const websocketonmessage = (res) => {
 // Websoket连接错误事件
 const websocketonerror = (res) => {
   console.log("连接错误", res);
-  socket.close();
+  websock.close();
   reconnect();
 };
 // Websoket断开事件
@@ -2987,4 +3140,9 @@ const footerShows = (evt) => {
 .jindutiao .percentage-value {
   font-size: 13px;
 }
+.cstleft{
+  width:50%;
+  flex: 1;
+   
+}
 </style>

+ 17 - 4
src/views/vuetree/Sidebar.vue

@@ -56,6 +56,7 @@ const datatree = ref([
           id:'2-1',
           label: '优化问题',
           img:"wen.png",
+          name:'优化问题'
          
         },
       ],
@@ -69,22 +70,26 @@ const datatree = ref([
           id:'3-1',
           label: 'CATIA',
           img:'xuek1.png',
+          name:'CATIA'
         },
         {
           id:'3-0',
           label: 'CST',
           img:'xuek0.png',
+          name:'CST'
         },
         {
           id:'3-2',
           label: 'Excel',
           img:'xuek2.png',
+          name:'Excel'
    
         },
         {
           id:'3-3',
           label: 'Feko',
-          img:'xuek3.png'
+          img:'xuek3.png',
+          name:'Feko'
         },
         {
           id:'3-4',
@@ -96,29 +101,34 @@ const datatree = ref([
           id:'3-5',
           label: 'HCFD',
           img:'xuek5.png',
+          name:'HCFD'
    
         },
         {
           id:'3-6',
           label: 'Matlab',
-          img:"xuek6.png"
+          img:"xuek6.png",
+          name:'Matlab'
         },
         {
           id:'3-7',
           label: 'Nastran',
           img:'xuek7.png',
+          name:'Nastran'
          
         },
         {
           id:'3-8',
           label: 'Python',
           img:'xuek8.png',
+          name:'Python'
    
         },
         {
           id:'3-9',
-          label: 'AirfoilAero',
-          img:'xuek9.png'
+          label: 'Xfoil',
+          img:'xuek9.png',
+          name:'Xfoil'
         },
       ],
     },
@@ -131,18 +141,21 @@ const datatree = ref([
           id:'4-1',
           label: '进化优化器',
           img:'youh1.png',
+          name:'进化优化器'
          
         },
         {
           id:'4-2',
           label: '代理优化器',
           img:'youh2.png',
+          name:'代理优化器'
    
         },
         {
           id:'4-3',
           label: '梯度优化器',
           img:'youh3.png',
+          name:'梯度优化器'
         },
       ],
     },

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

@@ -16,7 +16,7 @@
       <div class="field">
         <div>
         <label for="label">Label:</label>
-        <input id="label" v-model="labelname"  /></div>
+        <input id="label"  v-model.lazy="labelname"  /></div>
         <button @click="handleUpdate"  class="lableaniu">确定</button>
       </div>
       <!-- <div> -->
@@ -278,14 +278,19 @@ console.log(1111)
 }
 function onNodeDoubleClick(e) {
   noid.value = e.node;
-  console.log( e.node);
-  if (e.node.data.label == '优化器') {
+  console.log( e.node.data.name);
+  console.log(111111)
+  if (e.node.data.name == '优化器') {
     emit('optimizerfalse','优化器');
-  }else if(e.node.data.label=="进化优化器"){
+  }else if(e.node.data.name=="进化优化器"){
     emit('optimizerfalse','进化优化器');
 
-  }else if(e.node.data.label=="Rosenbrock"||e.node.data.label=="AirfoilAero"){
-    emit('optimizerfalse','AirfoilAero');
+  }else if(e.node.data.name=="Rosenbrock"||e.node.data.name=="Xfiol"){
+    emit('optimizerfalse','Xfiol');
+  }else if(e.node.data.name=="梯度优化器"){
+    emit('optimizerfalse','梯度优化器');
+  }else if(e.node.data.name=="CST"){
+    emit('optimizerfalse','CST');
   }
 
 }

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

@@ -40,33 +40,33 @@ function imagefun(){
   //     return datas = {label:'优化器', image:gc3}
     // }else
      if(nid=='2-1'){
-      return datas = {label:'优化问题', image:wen}
+      return datas = {label:'优化问题', image:wen,name:'优化问题'}
     }else if(nid=='3-1'){
-      return datas = {label:'CATIA', image:xuek1}
+      return datas = {label:'CATIA', image:xuek1,name:'CATIA'}
     }else if(nid=='3-0'){
-      return datas = {label:'CST', image:xuek0}
+      return datas = {label:'CST', image:xuek0,name:'CST'}
     } else if(nid=='3-2'){
-      return datas = {label:'Excel', image:xuek2}
+      return datas = {label:'Excel', image:xuek2,name:'Excel'}
     }else if(nid=='3-3'){
-      return datas = {label:'Feko', image:xuek3}
+      return datas = {label:'Feko', image:xuek3,name:'Feko'}
     }else if(nid=='3-4'){
-      return datas = {label:'Fluent', image:xuek4}
+      return datas = {label:'Fluent', image:xuek4,name:'Fluent'}
     }else if(nid=='3-5'){
-      return datas = {label:'HCFD', image:xuek5}
+      return datas = {label:'HCFD', image:xuek5,name:'HCFD'}
     }else if(nid=='3-6'){
-      return datas = {label:'Matlab', image:xuek6}
+      return datas = {label:'Matlab', image:xuek6,name:'Matlab'}
     }else if(nid=='3-7'){
-      return datas = {label:'Nastran', image:xuek7}
+      return datas = {label:'Nastran', image:xuek7,name:'Nastran'}
     }else if(nid=='3-8'){
-      return datas = {label:'Python', image:xuek8}
+      return datas = {label:'Python', image:xuek8,name:'Python'}
     }else if(nid=='3-9'){
-      return datas = {label:'AirfoilAero', image:xuek9}
+      return datas = {label:'Xfiol', image:xuek9,name:'Xfiol'}
     }else if(nid=='4-1'){
-      return datas = {label:'进化优化器', image:xuek10}
+      return datas = {label:'进化优化器', image:xuek10,name:'进化优化器'}
     }else if(nid=='4-2'){
-      return datas = {label:'代理优化器', image:xuek11}
+      return datas = {label:'代理优化器', image:xuek11,name:'代理优化器'}
     }else if(nid=='4-3'){
-      return datas = {label:'梯度优化器', image:xuek12}
+      return datas = {label:'梯度优化器', image:xuek12,name:'梯度优化器'}
     }
     else{
       return null;

+ 2 - 2
vite.config.ts

@@ -46,8 +46,8 @@ export default defineConfig(({ mode }) => {
         server: {
             proxy: {
                 '/api': {
-                    //target: 'http://192.168.0.131:8188/TransServlet',//配置文件获取地址
-                    target: 'http://192.168.0.108:8188/TransServlet',
+                    target: 'http://192.168.0.131:8188/TransServlet',//配置文件获取地址
+                   // target: 'http://192.168.0.108:8188/TransServlet',
                     secure: false, //接受使用https
                     changeOrigin: true, //允许跨域
                     ws: false, //使用websocket