瀏覽代碼

flight,FSI弹窗

tangjunhao 6 月之前
父節點
當前提交
ac4cf7e9be

二進制
src/assets/img/flight1.png


二進制
src/assets/img/flight2.png


二進制
src/assets/img/flight3.png


二進制
src/assets/img/flight4.png


+ 2 - 2
src/style/index.css

@@ -621,7 +621,7 @@ ul{
   float: left;
   color: #333;
   font-size: 16px;
-  font-family: 'Source Sans-Regular';
+  font-family: 'Source Sans Pro-Regular';
 }
 .colortext .XFpdding ul .item.active {
   border-top: 2px solid  #2267B1;;
@@ -688,7 +688,7 @@ height: 30px;
   font-family: 'Source Sans Pro-Regular';
 }
 
-.colortext .classtable .el-radio__label{
+.colortext .classtable .el-radio__label ,.colortext .classtable span{
   color: #333333;
   font-size: 16px;
   font-family: 'Source Sans Pro-Regular';

+ 58 - 9
src/views/home.vue

@@ -1681,8 +1681,44 @@
             </template>
           </el-dialog>
           <!-- FSI -->
-           <el-dialog>
-            
+           <el-dialog v-model="dialog.fsidialog" align-center :modal="false" :close-on-click-modal="false"
+            :append-to-body="true" draggable :fullscreen="false" :modal-append-to-body="false" modal-class="summary-dlg"
+            :before-close="handleClose" width="430" class="dialog_class bgcolor tianjia sel colortext">
+            <template #header="{ titleId, titleClass }">
+              <div class="my-header ">
+                <!-- <el-image :src="getImgPath('xuek0.png')" fit="contain"></el-image> -->
+                <h4 :id="titleId" :class="titleClass">FUM to FEM</h4>
+              </div>
+            </template>
+            <FSI ref="Fsiref"/>
+            <template #footer>
+              <div class="dialog-footer">
+                <el-button @click="dialog.fsidialog = false">取消</el-button>
+                <el-button type="primary" @click=" dialog.fsidialog = false">
+                  确定
+                </el-button>
+              </div>
+            </template>
+           </el-dialog>
+           <!-- Flight -->
+           <el-dialog v-model="dialog.flightdialog" 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="630" class="dialog_class bgcolor tianjia sel colortext">
+            <template #header="{ titleId, titleClass }">
+              <div class="my-header ">
+                <!-- <el-image :src="getImgPath('xuek0.png')" fit="contain"></el-image> -->
+                <h4 :id="titleId" :class="titleClass">Flight</h4>
+              </div>
+            </template>
+            <Flight ref="Flightref"/>
+            <template #footer>
+              <div class="dialog-footer">
+                <el-button @click="dialog.flightdialog = false">取消</el-button>
+                <el-button type="primary" @click=" dialog.flightdialog = false">
+                  确定
+                </el-button>
+              </div>
+            </template>
            </el-dialog>
           <!-- 内容区 -->
           <div class="main  mianflex">
@@ -2037,7 +2073,8 @@ import Xfoil from './titlecomponent/Xfoil.vue'
 import csts from './titlecomponent/csts.vue'
 import ffds from './titlecomponent/ffds.vue'
 import cloudsecond from "./titlecomponent/Cloudsecond.vue";
-
+import FSI from './titlecomponent/FSI.vue'
+import Flight from './titlecomponent/Flight.vue'
 
 import fileUploads from './components/fileuploads.vue'
 
@@ -2066,6 +2103,8 @@ let ADflowref = ref();
 let Joptimizeref=ref();
 let Doptimizeref=ref();
 let Toptimizeref=ref();
+let Fsiref=ref();
+let Flightref=ref();
 let f4ce = ref("优化问题组件");
 let modelban = ref("学科分析组件");
 let undmodel=ref('优化器组件');
@@ -2167,13 +2206,13 @@ const listli=[{
   isimg:s
 },{
   name:'约束条件',
-  noimg:y,
-  isimg:zy
+  noimg:y2,
+  isimg:zy2
 },
 {
   name:'优化目标',
-  noimg:y2,
-  isimg:zy2
+  noimg:y,
+  isimg:zy
 }
 ]
 const xfoil = ['输入', '执行', '输出'];
@@ -2581,6 +2620,8 @@ let dialog = ref({
   echartLinedialog:false,
   paretodialog:false,
   clouddialog:false,
+  fsidialog:false,
+  flightdialog:false,
 })
 
 // let columns=ref[{
@@ -2756,7 +2797,7 @@ const handleNodeClick = (data) => {
 }
 
 const optimizerfalse = (val) => {
-  console.log(val);
+  console.log('双击',val);
   if (val == '优化器') {
     // dialog.value.optimizer = true;
     activeadf.value='代理优化器';
@@ -2853,6 +2894,12 @@ const optimizerfalse = (val) => {
   }else if(val == 'Python'){
     dialog.value.Pythonshow = true;
     initPython();
+  }else if(val == 'FUM to FEM'){
+    dialog.value.fsidialog = true;
+    
+  }else if(val == 'Flight'){
+    dialog.value.flightdialog = true;
+    
   }
    else {
     dialog.value.optimizer = false;
@@ -2864,6 +2911,8 @@ const optimizerfalse = (val) => {
     dialog.value.XfAD = false;
     dialog.value.cstffd = false;
     dialog.value.Pythonshow = false;
+    dialog.value.fsidialog = false;
+    dialog.value.flightdialog = false;
   }
 
 }
@@ -4601,7 +4650,7 @@ color: #2267B1;
    
 }
 .XFpdding{
-  height: 425px;
+  /* height: 425px; */
 }
 
 .dialog_class {

+ 2 - 2
src/views/titlecomponent/FSI.vue

@@ -1,5 +1,5 @@
 <template>
-  <div>
+  <div class="XFpdding">
     <ul>
       <li
         class="item"
@@ -12,7 +12,7 @@
         {{ tab.name }}
       </li>
     </ul>
-    <div v-if="currentTab1 == '0'">
+    <div v-if="currentTab1 == '0'" class="eldesign classtable" style="margin-top: 10px">
       <el-form>
         <el-form-item label="最大耦合迭代步:" :label-width="formLabelWidth1">
           <el-input v-model="fsi.maxIter"></el-input>

+ 296 - 0
src/views/titlecomponent/Flight.vue

@@ -0,0 +1,296 @@
+<template>
+  <div class="XFpdding" style="height: 470px;">
+    <ul>
+      <li
+        class="item"
+        v-for="(tab, index) in tabslist1"
+        :key="index"
+        :class="{ active: currentTab1 === index }"
+        @click="selectTab1(index)"
+      >
+        <img :src="tab.imgSrc" style="width: 24px;margin-top: -8px;"/>
+        {{ tab.name }}
+      </li>
+    </ul>
+    <div v-show="currentTab1 == '0'" class="eldesign classtable" style="margin-top: 10px">
+      <el-collapse v-model="activeNames">
+        <el-collapse-item title="飞行包线" name="1">
+          <el-table :data="fxbxtable" border style="width: 100%; ">
+          <el-table-column type="index" width="70" label="编号" />
+          <el-table-column prop="name" label="参数名称">
+            <!-- <template #default="{ row }">
+              <el-input v-model="row.name" @change="handleEdit(row)" />
+            </template> -->
+          </el-table-column>
+          <el-table-column prop="value" label="参数值">
+            <template #default="{ row }">
+              <el-input v-model="row.value" type="number" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="flag" label="启用" width="100">
+            <template v-slot="scope">
+              <el-checkbox
+                :false-label="0"
+                :true-label="1"
+                :label="false"
+                v-model="scope.row.flag"
+              />
+            </template>
+          </el-table-column>
+          </el-table>
+        </el-collapse-item>
+        <el-collapse-item title="起飞着陆" name="2">
+          <el-table :data="qfzltable" border style="width: 100%; ">
+          <el-table-column type="index" width="70" label="编号" />
+          <el-table-column prop="name" label="参数名称">
+            <!-- <template #default="{ row }">
+              <el-input v-model="row.name" @change="handleEdit(row)" />
+            </template> -->
+          </el-table-column>
+          <el-table-column prop="value" label="参数值">
+            <template #default="{ row }">
+              <el-input v-model="row.value" type="number" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="flag" label="启用" width="100">
+            <template v-slot="scope">
+              <el-checkbox
+                :false-label="0"
+                :true-label="1"
+                :label="false"
+                v-model="scope.row.flag"
+              />
+            </template>
+          </el-table-column>
+          </el-table>
+        </el-collapse-item>
+      </el-collapse>
+    </div>
+
+      <div v-show="currentTab1 == '1'" class="eldesign classtable" style="margin-top: 10px">
+        <el-collapse v-model="activeNames1">
+          <el-collapse-item title="静稳定性" name="1">
+            <el-form-item label="纵向静稳定导数:" :label-width="formLabelWidth1">
+              <el-input></el-input>
+            </el-form-item>
+            <el-form-item label="航向静稳定导数:" :label-width="formLabelWidth1">
+              <el-input></el-input>
+            </el-form-item>
+          </el-collapse-item >
+          <el-collapse-item title="动稳定性" name="2">
+            <!-- <el-form-item label="纵向" :label-width="formLabelWidth1">
+            </el-form-item> -->
+            <span style="padding-left: 20px;">纵向</span>
+            <el-form>
+              <el-form-item label="长周期模态" :label-width="formLabelWidth1">
+              </el-form-item>
+              <el-form-item label="阻尼比:" :label-width="formLabelWidth1">
+                <el-input></el-input>
+              </el-form-item>
+              <el-form-item label="频率:" :label-width="formLabelWidth1">
+                <el-input></el-input>
+              </el-form-item>
+            </el-form>
+            
+            <el-form>
+              <el-form-item label="短周期模态" :label-width="formLabelWidth1">
+              </el-form-item>
+              <el-form-item label="阻尼比:" :label-width="formLabelWidth1">
+                <el-input></el-input>
+              </el-form-item>
+              <el-form-item label="频率:" :label-width="formLabelWidth1">
+                <el-input></el-input>
+              </el-form-item>
+            </el-form>
+
+            <el-form-item label="横航向" :label-width="formLabelWidth1"></el-form-item>
+            <el-form>
+              <el-form-item label="螺旋模态" :label-width="formLabelWidth1"></el-form-item>
+              <el-form-item label="时间常数:" :label-width="formLabelWidth1">
+                <el-input></el-input>
+              </el-form-item>
+              <el-form-item label="运动周期:" :label-width="formLabelWidth1">
+                <el-input></el-input> 
+              </el-form-item>
+              <el-form-item label="滚转模态" :label-width="formLabelWidth1"></el-form-item>
+              <el-form-item label="时间常数:" :label-width="formLabelWidth1">
+                <el-input></el-input>
+              </el-form-item>
+              <el-form-item label="荷兰滚模态" :label-width="formLabelWidth1"></el-form-item>
+              <el-form-item label="阻尼比:" :label-width="formLabelWidth1">
+                <el-input></el-input>
+              </el-form-item>
+              <el-form-item label="固有频率:" :label-width="formLabelWidth1">
+                <el-input></el-input>
+              </el-form-item>
+            </el-form>
+          </el-collapse-item>
+        </el-collapse>
+      </div> 
+
+      <div v-show="currentTab1 == '2'" class="eldesign classtable" style="margin-top: 10px">
+        <el-table :data="zltxtable" border style="width: 100%; height: 400px">
+          <el-table-column type="index" width="70" label="编号" />
+          <el-table-column prop="name" label="参数名称">
+            <!-- <template #default="{ row }">
+              <el-input v-model="row.name" @change="handleEdit(row)" />
+            </template> -->
+          </el-table-column>
+          <el-table-column prop="value" label="参数值">
+            <template #default="{ row }">
+              <el-input v-model="row.value" type="number" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="flag" label="启用" width="100">
+            <template v-slot="scope">
+              <el-checkbox
+                :false-label="0"
+                :true-label="1"
+                :label="false"
+                v-model="scope.row.flag"
+              />
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+
+      <div v-show="currentTab1 == '3'" class="eldesign classtable" style="margin-top: 10px">
+        <el-table :data="tltxtable" border style="width: 100%; height: 400px">
+          <el-table-column type="index" width="70" label="编号" />
+          <el-table-column prop="name" label="参数名称">
+            <!-- <template #default="{ row }">
+              <el-input v-model="row.name" @change="handleEdit(row)" />
+            </template> -->
+          </el-table-column>
+          <el-table-column prop="value" label="参数值">
+            <template #default="{ row }">
+              <el-input v-model="row.value" type="number" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="flag" label="启用" width="100">
+            <template v-slot="scope">
+              <el-checkbox
+                :false-label="0"
+                :true-label="1"
+                :label="false"
+                v-model="scope.row.flag"
+              />
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+
+  </div>
+</template>
+
+<script  setup>
+import { ref, onMounted, reactive, provide, nextTick } from "vue"
+import { ElMessage, ElButton, ElDialog, ElSelect } from "element-plus"
+import { request, uploadFile } from "@/utils/request"
+
+import configParams from "@/assets/img/configParams.png";
+import flight1 from "@/assets/img/flight1.png";
+import flight2 from "@/assets/img/flight2.png";
+import flight3 from "@/assets/img/flight3.png";
+import flight4 from "@/assets/img/flight4.png";
+
+let currentTab1 = ref(0)
+let formLabelWidth1 = ref(156)
+
+let activeNames = ref(['1','2'])
+let activeNames1 = ref(['1','2'])
+
+let fsi = ref({
+  maxIter: 2,
+  result: 1,
+  interpolation: "MELD",
+  aeroRegion: "wall",
+  
+})
+
+let tabslist1 = ref([
+  { id: "0", name: "飞行性能", imgSrc: flight1 },
+  { id: "1", name: "操稳特性", imgSrc: flight2 },
+  { id: "2", name: "重量特性", imgSrc: flight3 },
+  { id: "3", name: "推力特性", imgSrc: flight4 },
+])
+
+const selectTab1 = (index) => {
+  console.log('dayin',index)
+  currentTab1.value = index
+  console.log('currentTab1',currentTab1.value)
+}
+
+let fxbxtable = ref([
+  {
+    value: 80,
+    name: "最小平飞速度",
+    flag: 1
+  },
+  {
+    value: 270,
+    name: "最大平飞速度",
+    flag: 1
+  },
+  {
+    value: 0,
+    name: "升限",
+    flag: 1
+  },
+  {
+    value: 0,
+    name: "爬升率",
+    flag: 1
+  }
+])
+
+let qfzltable = ref([
+  {
+    value: 1353.5816,
+    name: "航程",
+    flag: 1
+  },
+  {
+    value: 2.4344,
+    name: "航时",
+    flag: 1
+  },
+  {
+    value: 2600,
+    name: "起飞场长",
+    flag: 1
+  },
+  {
+    value: 2000,
+    name: "着陆场长",
+    flag: 1
+  }
+])
+
+let zltxtable = ref([
+  {
+    value: 16700,
+    name: "空重",
+    flag: 1
+  },
+  {
+    value: 18600,
+    name: "最大起飞重量",
+    flag: 1
+  },
+])
+
+let tltxtable = ref([
+  {
+    value: 0.000001298,
+    name: "耗油率",
+    flag: 1
+  },
+  {
+    value: 0.85,
+    name: "螺旋桨效率",
+    flag: 1
+  },
+])
+
+</script>

+ 46 - 1
src/views/vuetree/index.vue

@@ -3,7 +3,8 @@
     class="basic-flow" 
     :default-viewport="{ zoom: 1.5 }" :min-zoom="0.2" :max-zoom="2.5" @drop="onDrop1"
     @contextmenu.prevent="onContextMenu" @node-contextmenu="logEvent('contextmenu', $event)" 
-    @dragover="onDragOver" @dragleave="onDragLeave" @edge-click="onEdgeClick" @node-double-click="onNodeDoubleClick"  @node-click="onNodeClick">
+    @dragover="onDragOver" @dragleave="onDragLeave" @edge-click="onEdgeClick" @node-double-click="onNodeDoubleClick" 
+    @node-click="onNodeClick" @edge-double-click="onEdgeDoubleClick">
 
     <template  #node-default="props">
       <eltree :node="props" />
@@ -78,6 +79,38 @@
       </template>
     </el-dialog>
 
+    <!-- 双击线段 -->
+    <el-dialog v-model="dataflowshow" 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="400" class="dialog_class bgcolor colortext tianjia sel">
+      <template #header="{ titleId, titleClass }">
+        <div class="my-header ">
+          <h4 :id="titleId" :class="titleClass">数据流</h4>
+        </div>
+      </template>
+      <div style="margin-top: 20px;padding: 20px;">
+        <el-card>
+          <el-checkbox>全选</el-checkbox>
+          <el-table :data="shujuliutable" border>
+            <el-table-column
+              type="index"
+              label=""
+              :header-cell-style="{ display: 'none' }"
+            ></el-table-column>
+          </el-table>
+        </el-card>
+        
+        
+      </div>
+      
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button @click="dataflowshow = false">取 消</el-button>
+          <el-button type="primary" @click="dataflowshow = false ">确 定</el-button>
+        </div>
+      </template>
+    </el-dialog>
+
   </VueFlow>
   <div class="dnd-flow">
 
@@ -371,6 +404,18 @@ function onEdgeClick(e) {
 }
 
 
+let dataflowshow=ref(false);
+
+let shujuliutable = ref([
+  {}
+])
+
+function onEdgeDoubleClick(e) {
+  console.log('Edge Double Click', e)
+  dataflowshow.value = true
+}
+
+
 function logEvent(name, event) {
   console.log(2222)
 }