tangjunhao 6 mesiacov pred
rodič
commit
b0a49f807d

+ 20 - 5
src/style/index.css

@@ -634,6 +634,7 @@ ul{
 }
 .colortext .el-table .cell{
   font-size: 16px !important;
+  color: #333333;
 }
 .colortext  .el-table .el-table__cell{
   padding: 0;
@@ -660,7 +661,7 @@ height: 30px;
 .colortext  .classtable .el-table td.el-table__cell, .el-table th.el-table__cell.is-leaf, .eldesign,.colortext  .classtable .el-table td.el-table__cell div{
    /* background-color: rgba(238, 238, 238, 1);  */
    background-color:#fafafa; 
-   color: #4D4D4D;
+   color: #333333;
    font-weight: 400;
    font-family: 'Source Sans Pro-Regular';
 }
@@ -669,7 +670,8 @@ height: 30px;
   border-color:#eee  !important;
 }
 .colortext  .el-form-item__label{
-  text-align: right !important;
+  text-align: left !important;
+  padding-left: 20px;
   color: #333333;
   font-size: 16px;
   font-family: 'Source Sans Pro-Regular';
@@ -694,20 +696,33 @@ height: 30px;
   font-family: 'Source Sans Pro-Regular';
 }
 
+.colortext .el-input__inner {
+  color: #333333;
+  font-size: 16px;
+  font-family: 'Source Sans Pro-Regular';
+}
+
+.el-card__body {
+  border-radius: 0px 0px 0px 0px;
+  border: 1px solid #B3B3B3;
+}
+
 .dialog_style {
   color: #333333;
   font-size: 16px;
   font-family: 'Source Sans Pro-Regular';
 }
 
-.dialog_style .el-form-item__label,.dialog_style .el-checkbox__label{
+.dialog_style .el-form-item__label,.dialog_style .el-checkbox__label,
+.dialog_style .el-input__inner{
   color: #333333;
-  font-size: 14px;
+  font-size: 16px;
   font-family: 'Source Sans Pro-Regular';
 }
 
-.dialog_style .el-button{
+.dialog_style .cloudbox .el-button{
   color: #333333;
+  font-size: 16px;
 }
 
 .el-collapse-item__content {

+ 50 - 68
src/views/home.vue

@@ -895,7 +895,7 @@
           <!-- Xfiol改版后的 -->
           <el-dialog v-model="dialog.Xfiol" align-center :modal="false" :close-on-click-modal="false"
             :append-to-body="true" draggable :fullscreen="false" :modal-append-to-body="false"
-            modal-class="summary-dlg2 summary-dlg" :before-close="handleClose" width="500"
+            modal-class="summary-dlg2 summary-dlg" :before-close="handleClose" width="675"
             class="dialog_class bgcolor tianjia colortext sel">
 
             <template #header="{ titleId, titleClass }">
@@ -1029,7 +1029,7 @@
           <!-- 列表 -->
           <el-dialog v-model="dialog.listdialog" align-center :modal="false" :close-on-click-modal="false"
             :append-to-body="true" draggable :fullscreen="false" :modal-append-to-body="false" modal-class="summary-dlg"
-            :before-close="handleClose" width="500" class="dialog_style sel" style="max-height: 70%;">
+            :before-close="handleClose" width="537" class="dialog_style sel" style="max-height: 70%;">
 
             <template #header="{ titleId, titleClass }">
               <div class="my-header ">
@@ -1037,11 +1037,8 @@
               </div>
             </template>
             <div>
-              <!-- <ListSE :selectValue="listval" :options="listoptions"
-                      :checkboxValue="Listcheckboxvalue"
-                      :checkboxOptions="Listcheckbox" 
-              /> -->
-              <el-form>
+              <ListSE />
+              <!-- <el-form>
                 <el-form-item label="设计集:" >
                   <el-select v-model="listval" :suffix-icon="CaretBottom" placeholder="请选择">
                     <el-option v-for="item in listoptions" :key="item.value" :label="item.label" :value="item.value">
@@ -1055,7 +1052,7 @@
                     <el-checkbox v-for="item in Listcheckbox" :key="item.value" :label="item.value" style="display: block">{{ item.label }}</el-checkbox>
                   </el-checkbox-group>
                 </el-card>
-              </el-form>
+              </el-form> -->
             </div>
             <template #footer>
               <div class="dialog-footer">
@@ -1078,21 +1075,7 @@
               </div>
             </template>
             <div>
-              <el-form>
-                <el-form-item label="设计集:" >
-                  <el-select v-model="scatterval" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in listoptions" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="选择要在表中显示的一个或者多个变量和响应" >
-                </el-form-item>
-                <el-card shadow="hover" style="width: 100%">
-                  <el-checkbox-group v-model="scattercbval">
-                    <el-checkbox v-for="item in Listcheckbox" :key="item.value" :label="item.value" style="display: block">{{ item.label }}</el-checkbox>
-                  </el-checkbox-group>
-                </el-card>
-              </el-form>
+              <ListSE />
             </div>
             <template #footer>
               <div class="dialog-footer">
@@ -1115,21 +1098,7 @@
               </div>
             </template>
             <div>
-              <el-form>
-                <el-form-item label="设计集:" >
-                  <el-select v-model="echartLineval" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in listoptions" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="选择要在表中显示的一个或者多个变量和响应" >
-                </el-form-item>
-                <el-card shadow="hover" style="width: 100%">
-                  <el-checkbox-group v-model="echartLinecbval">
-                    <el-checkbox v-for="item in Listcheckbox" :key="item.value" :label="item.value" style="display: block">{{ item.label }}</el-checkbox>
-                  </el-checkbox-group>
-                </el-card>
-              </el-form>
+              <ListSE />
             </div>
             <template #footer>
               <div class="dialog-footer">
@@ -1190,7 +1159,7 @@
               </div>
             </template>
             <div>
-              <div>
+              <div class="cloudbox">
                 <el-row gutter="20">
                   <el-col :span="2"></el-col>
                   <el-col v-for="(item,index) in cloudbtnbox" :key="index" :span="4">
@@ -1217,7 +1186,7 @@
           :modal-append-to-body="false"
           modal-class="summary-dlg"
           :before-close="handleClose"
-          width="500"
+          width="600"
           class="dialog_class bgcolor tianjia"
           
           >
@@ -1261,10 +1230,35 @@
               </div>
             </template>
           </el-dialog>
+          <!-- 导出报告 -->
+          <el-dialog v-model="dialog.exportreport" align-center :modal="false" :close-on-click-modal="false"
+            :append-to-body="true" draggable :fullscreen="false" :modal-append-to-body="false" modal-class="summary-dlg"
+            :before-close="handleClose" width="500" class="dialog_class bgcolor tianjia sel" style="max-height: 70%;">
+
+            <template #header="{ titleId, titleClass }">
+              <div class="my-header ">
+                
+                <h4 :id="titleId" :class="titleClass">导出报告:</h4>
+              </div>
+            </template>
+            <div class="numberinput lefttext">
+              <el-form>
+                <el-image :src="getImgPath('baog.png')" fit="contain"></el-image>
+              </el-form>
+            </div>
+            <template #footer>
+              <div class="dialog-footer">
+                <el-button @click="dialog.exportreport = false">取消</el-button>
+                <el-button type="primary" @click="dialog.exportreport = false">
+                  确定
+                </el-button>
+              </div>
+            </template>
+          </el-dialog>
           <!-- 气动分析Xfoil、ADflow -->
           <el-dialog v-model="dialog.XfAD" align-center :modal="false" :close-on-click-modal="false"
             :append-to-body="true" draggable :fullscreen="false" :modal-append-to-body="false" modal-class="summary-dlg"
-            :before-close="handleClose" width="800" class="dialog_class bgcolor tianjia sel colortext">
+            :before-close="handleClose" width="860" class="dialog_class bgcolor tianjia sel colortext">
 
             <template #header="{ titleId, titleClass }">
               <div class="my-header ">
@@ -1386,7 +1380,7 @@
                     </ul>
                     <!-- 网格文件 -->
                       <!-- 执行 -->
-                    <div class=" classtable" style="margin-top: 10px;" v-if="currentTab2 == '0'">
+                    <div class=" classtable" style="margin-top: 10px;height: 400px;" v-if="currentTab2 == '0'">
                       <el-form label-position="left">
                         <el-form-item label="网格文件:" :label-width="formLabelWidth1">
                           <el-input  >
@@ -1403,9 +1397,12 @@
                           </el-input>
                         </el-form-item>
                       </el-form>
+                      <div style="flex-grow: 1; ">
+
+                      </div>
                     </div>
                       <!-- 设置参数 -->
-                <div class=" classtable" style="margin-top: 10px;"  v-show="currentTab2=='1'">
+                <div class=" classtable" style="margin-top: 10px;height: 400px;"  v-show="currentTab2=='1'">
                   <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>
@@ -1479,9 +1476,9 @@
                    <el-table :data="TACSfenxitable"  border style="width: 100%;height:400px" >
                     <el-table-column type="index" width="70"  label="编号"/>
                   <el-table-column prop="name" label="参数名称">
-                    <template #default="{ row }">
+                    <!-- <template #default="{ row }">
                       <el-input v-model="row.name" @change="handleEdit(row)" />
-                    </template>
+                    </template> -->
                   </el-table-column>
                   <el-table-column prop="data" label="参数值">
                     <template #default="{ row }">
@@ -1538,7 +1535,7 @@
             <template #footer>
               <div class="dialog-footer">
                 <el-button @click="dialog.optgroup = false">取消</el-button>
-                <el-button type="primary" class="custom-button" @click="getSave(activeadf);dialog.optgroup = false">
+                <el-button type="primary"  @click="getSave(activeadf);dialog.optgroup = false">
                   确定
                 </el-button>
               </div>
@@ -1683,7 +1680,7 @@
           <!-- FSI -->
            <el-dialog v-model="dialog.fsidialog" align-center :modal="false" :close-on-click-modal="false"
             :append-to-body="true" draggable :fullscreen="false" :modal-append-to-body="false" modal-class="summary-dlg"
-            :before-close="handleClose" width="430" class="dialog_class bgcolor tianjia sel colortext">
+            :before-close="handleClose" width="670" 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> -->
@@ -2075,9 +2072,11 @@ 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 ListSE from "./titlecomponent/ListSE.vue";
 
 import fileUploads from './components/fileuploads.vue'
 
+
 let Sidebarref = ref();
 let resource=ref(0);
 let cstnum=ref('');
@@ -2551,27 +2550,6 @@ let addlist8 = ref([
   { label: 'NO', value: 'NO' },
 ])
 
-let listval = ref('全部设计')
-let scatterval = ref('全部设计')
-let echartLineval = ref('全部设计')
-let listoptions = ref([
-  { label: '全部设计', value: '全部设计' },
-  { label: '可行设计', value: '可行设计' },
-  { label: '不可行设计', value: '不可行设计' },
-  { label: '非错误设计', value: '非错误设计' },
-  { label: '最佳设计', value: '最佳设计' },
-  { label: '改进设计', value: '改进设计' },
-  { label: '错误设计', value: '错误设计' },
-])
-let listcbval = ref([])
-let scattercbval = ref([])
-let echartLinecbval = ref([])
-let Listcheckbox = ref([
-  {label:'x1',value:'x1'},
-  {label:'x2',value:'x2'},
-  {label:'x3',value:'x3'},
-  {label:'x4',value:'x4'},
-])
 
 let paretocbval = ref([])
 let paretocheckbox = ref([
@@ -2601,6 +2579,7 @@ let dialog = ref({
   tboptimizer: false,
   isADflow:false,
   lookover:false,
+  exportreport:false,
   Xfiol: false,
   tidu:false,
   CSTt:false,
@@ -3180,6 +3159,9 @@ const dialogbolen = () => {
       echatsfunc();
       dialog.value.lookover = true;
       break;
+    case "导出报告":
+      dialog.value.lookover = true;
+      break;
     default:
   }
 }

+ 3 - 3
src/views/titlecomponent/ADflow.vue

@@ -16,7 +16,7 @@
     <!-- 执行 -->
     <div
       class="eldesign classtable"
-      style="margin-top: 10px"
+      style="margin-top: 10px;height: 400px;"
       v-if="currentTab1 == '0'"
     >
       <div style="display: flex;flex-direction: column;">
@@ -61,7 +61,7 @@
             </el-col> -->
           </el-row>
         </el-form-item>
-      <div style="flex-grow: 1; height: 300px;">
+      <div style="flex-grow: 1; ">
 
       </div>
       </div>
@@ -329,7 +329,7 @@ let meshFileName = ref('');
 let percentage = ref(0);
 let uploadStatus = ref('');
 let isUploadSuccess = ref(true);
-let formLabelWidth3 = ref(100)
+let formLabelWidth3 = ref(120)
 let formLabelWidth1 = ref(170)
 let formLabelWidth200 = ref(200)
 let currentTab1 = ref(0)

+ 80 - 30
src/views/titlecomponent/Cloudsecond.vue

@@ -2,9 +2,9 @@
   <div class="cloudsecond">
     <!-- 文件选择 -->
     <div v-show="activesd.fileselect">
-      <el-form-item label="添加文件:" :label-width="formLabelWidth1" >
+      <el-form-item label="添加文件:" :label-width="formLabelWidth1" label-position="left">
         <el-row style="width: 100%">
-            <el-col :span="23">
+            <el-col :span="24">
               <el-input
                
                 readonly
@@ -28,15 +28,15 @@
             </el-col>
           </el-row>
       </el-form-item>
-      <div style="display: flex;flex-direction: row;">
+      <div style="display: flex;flex-direction: row;width: 100%;">
         <el-card shadow="hover" style="width: 70%">
           <el-checkbox-group v-model="fileselectval">
             <el-checkbox v-for="item in filecheckbox" :key="item.value" :label="item.value" style="display: block">{{ item.label }}</el-checkbox>
           </el-checkbox-group>
         </el-card>
-        <div style="width: 30%;">
-          <el-button >删除选中文件</el-button>
-          <el-button style="background-color: transparent;margin-left: 0;">删除全部文件</el-button>
+        <div style="width: 30%;padding-left: 10px;">
+          <el-button style="width: 100%;">删除选中文件</el-button>
+          <el-button style="background-color: transparent;margin-left: 0;width: 100%;">删除全部文件</el-button>
         </div>
       </div>
     </div>
@@ -74,7 +74,10 @@
     <div v-show="activesd.cloud">
       <div>
         <el-collapse v-model="activeNames">
-          <el-collapse-item title="标量" name="1">
+          <el-collapse-item  name="1">
+            <template #title>
+              <span class="collapse-title">标量</span>
+            </template>
             <el-form label-position="left">
               <el-form-item label="名称:" :label-width="formLabelWidth1" >
                 <el-input></el-input>
@@ -102,7 +105,10 @@
             </el-form>
           </el-collapse-item>
 
-          <el-collapse-item title="云图间隔" name="2">
+          <el-collapse-item  name="2">
+            <template #title>
+              <span class="collapse-title">云图间隔</span>
+            </template>
             <el-form label-position="left">
               <el-form-item label="名称:" :label-width="formLabelWidth1">
                 <el-input ></el-input>
@@ -120,9 +126,12 @@
             </el-form>
           </el-collapse-item>
 
-          <el-collapse-item title="数据范围" name="3">
+          <el-collapse-item name="3">
+            <template #title>
+              <span class="collapse-title">数据范围</span>
+            </template>
             <el-form label-position="left">
-              <el-form-item label="数据范围类型:" :label-width="120">
+              <el-form-item label="数据范围类型:" :label-width="formLabelWidth1">
                 <el-select v-model="dataAreaType">
                   <el-option 
                   v-for=" item in dataAreaTypeoptions" :key="item.value" :label="item.label" :value="item.value"
@@ -138,7 +147,10 @@
             </el-form>
           </el-collapse-item>
 
-          <el-collapse-item title="色卡颜色范围" name="4">
+          <el-collapse-item name="4">
+            <template #title>
+              <span class="collapse-title">色卡颜色范围</span>
+            </template>
             <el-form label-position="left">
               <el-form-item label="最大值:" :label-width="formLabelWidth1">
                 <el-row style="width: 100%;">
@@ -183,7 +195,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="4">
-            <el-button>更新</el-button>
+            <el-button style="width: 100%;">更新</el-button>
           </el-col>
         </el-row>
 
@@ -199,7 +211,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="4">
-            <el-button>更新</el-button>
+            <el-button style="width: 100%;">更新</el-button>
           </el-col>
         </el-row>
 
@@ -209,18 +221,24 @@
 
         <el-form-item label="字体:" :label-width="formLabelWidth1">
           <el-row style="width: 100%;" gutter="10">
-            <el-col :span="18">
+            <el-col :span="20">
               <el-select v-model="font">
                 <el-option 
                 v-for=" item in fontoptions" :key="item.value" :label="item.label" :value="item.value"
                 />
               </el-select>
             </el-col>
-            <el-col :span="3">
-              <el-button></el-button>
+            <el-col :span="2">
+              <el-button 
+              style="width: 32px; height: 32px; padding: 0; font-size: 18px; line-height: 32px; text-align: center;">
+              <i style="font-style: italic; font-size: 24px;">I</i>
+              </el-button>
             </el-col>
-            <el-col :span="3">
-              <el-button></el-button>
+            <el-col :span="2">
+              <el-button 
+              style="width: 32px; height: 32px; padding: 0; font-size: 18px; line-height: 32px; text-align: center;">
+              <b style="font-weight: bold; font-size: 24px;">B</b>
+              </el-button>
             </el-col>
           </el-row>
         </el-form-item>
@@ -266,18 +284,24 @@
 
         <el-form-item label="标题字体:" :label-width="formLabelWidth1">
           <el-row style="width: 100%;" gutter="10">
-            <el-col :span="18" >
+            <el-col :span="20" >
               <el-select v-model="titlefont">
                 <el-option 
                 v-for=" item in titlefontoptions" :key="item.value" :label="item.label" :value="item.value"
                 />
               </el-select>
             </el-col>
-            <el-col :span="3">
-              <el-button></el-button>
+            <el-col :span="2">
+              <el-button 
+              style="width: 32px; height: 32px; padding: 0; font-size: 18px; line-height: 32px; text-align: center;">
+              <i style="font-style: italic; font-size: 24px;">I</i>
+              </el-button>
             </el-col>
-            <el-col :span="3">
-              <el-button></el-button>
+            <el-col :span="2">
+              <el-button 
+              style="width: 32px; height: 32px; padding: 0; font-size: 18px; line-height: 32px; text-align: center;">
+              <b style="font-weight: bold; font-size: 24px;">B</b>
+              </el-button>
             </el-col>
           </el-row>
         </el-form-item>
@@ -295,7 +319,10 @@
     <!-- 等值线 -->
     <div v-show="activesd.isoline">
       <el-collapse v-model="activeNames2">
-        <el-collapse-item title="标量" name="1">
+        <el-collapse-item  name="1">
+          <template #title>
+            <span class="collapse-title">标量</span>
+          </template>
           <el-form label-position="left">
               <el-form-item label="名称:" :label-width="formLabelWidth1">
                 <el-input ></el-input>
@@ -313,7 +340,10 @@
             </el-form>
         </el-collapse-item>
 
-        <el-collapse-item title="云图间隔:" name="2">
+        <el-collapse-item  name="2">
+          <template #title>
+            <span class="collapse-title">云图间隔</span>
+          </template>
           <el-form label-position="left">
             <el-form-item label="层级:" :label-width="formLabelWidth1">
               <el-input ></el-input>
@@ -321,7 +351,10 @@
           </el-form>
         </el-collapse-item>
 
-        <el-collapse-item title="数据范围:" name="3">
+        <el-collapse-item name="3">
+          <template #title>
+            <span class="collapse-title">数据范围</span>
+          </template>
           <el-form label-position="left">
             <el-form-item label="最大值:" :label-width="formLabelWidth1">
               <el-input ></el-input>
@@ -344,7 +377,7 @@ import { ref, onMounted, reactive, provide, nextTick } from "vue"
 import fileUploads from "../components/fileuploads.vue";
 const meshFileImgSrc = new URL("@/assets/img/open.png", import.meta.url).href;
 
-let formLabelWidth1 = ref(100)
+let formLabelWidth1 = ref(140)
 let formLabelWidth2 = ref(100)
 
 const props = defineProps({
@@ -449,8 +482,9 @@ let activeNames2 = ref(['1','2','3'])
   
 }
 
-.cloudsecond .el-button {
+.cloudsecond .el-button, .cloudsecond .el-checkbox__label, .cloudsecond .el-input__inner{
   color: #333333;
+  font-size: 16px;
 }
 
 .cloudsecond .el-select {
@@ -458,13 +492,29 @@ let activeNames2 = ref(['1','2','3'])
 }
 
 .cloudsecond .el-form-item__label {
-  font-size: 14px;
+  font-size: 16px;
   color: #333333;
   font-family: 'Source Sans Pro-Regular' !important;
 }
 
 .el-collapse-item__header {
-  font-size: 14px;
+  font-size: 16px;
+
+  
 }
 
+</style>
+
+<style scoped lang="scss">
+
+:deep(.collapse-title) {
+  flex: 1 0 90%;
+  order: 1;
+  text-align: left;
+}
+
+:deep(.collapse-title) .el-collapse-item__header {
+  flex: 1 0 auto;
+  order: -1;
+}
 </style>

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

@@ -48,7 +48,7 @@ import { request, uploadFile } from "@/utils/request"
 
 import configParams from "@/assets/img/configParams.png";
 let currentTab1 = ref(0)
-let formLabelWidth1 = ref(170)
+let formLabelWidth1 = ref(190)
 
 let fsi = ref({
   maxIter: 2,

+ 1 - 1
src/views/titlecomponent/Flight.vue

@@ -195,7 +195,7 @@ import flight3 from "@/assets/img/flight3.png";
 import flight4 from "@/assets/img/flight4.png";
 
 let currentTab1 = ref(0)
-let formLabelWidth1 = ref(156)
+let formLabelWidth1 = ref(176)
 
 let activeNames = ref(['1','2'])
 let activeNames1 = ref(['1','2'])

+ 1 - 1
src/views/titlecomponent/Joptimize.vue

@@ -43,7 +43,7 @@
                  </el-option>
                </el-select>
              </el-form-item>
-             <el-form-item label="gpu加速:" :label-width="formLabelWidth1">
+             <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>

+ 80 - 0
src/views/titlecomponent/ListSE.vue

@@ -0,0 +1,80 @@
+<template>
+  <el-form>
+    <el-form-item label="设计集:">
+      <el-select
+        v-model="listval"
+        :suffix-icon="CaretBottom"
+        placeholder="请选择"
+      >
+        <el-option
+          v-for="item in listoptions"
+          :key="item.value"
+          :label="item.label"
+          :value="item.value"
+        >
+        </el-option>
+      </el-select>
+    </el-form-item>
+    <el-form-item label="选择要在表中显示的一个或者多个变量和响应">
+    </el-form-item>
+    <el-space style="width: 100%;" fill :fill-ratio="40">
+      <el-card shadow="hover" >
+        <el-checkbox-group v-model="listcbval">
+          <el-checkbox
+            v-for="item in Listcheckbox"
+            :key="item.value"
+            :label="item.value"
+            style="display: block"
+            >{{ item.label }}</el-checkbox
+          >
+        </el-checkbox-group>
+      </el-card>
+      <el-card shadow="hover" >
+        <el-checkbox-group v-model="listcbval2">
+          <el-checkbox
+            v-for="item in Listcheckbox2"
+            :key="item.value"
+            :label="item.value"
+            style="display: block"
+            >{{ item.label }}</el-checkbox
+          >
+        </el-checkbox-group>
+      </el-card>
+    </el-space>
+  </el-form>
+</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 listval = ref("全部设计")
+let listoptions = ref([
+  { label: "全部设计", value: "全部设计" },
+  { label: "可行设计", value: "可行设计" },
+  { label: "不可行设计", value: "不可行设计" },
+  { label: "非错误设计", value: "非错误设计" },
+  { label: "最佳设计", value: "最佳设计" },
+  { label: "改进设计", value: "改进设计" },
+  { label: "错误设计", value: "错误设计" }
+])
+
+let listcbval = ref([])
+let Listcheckbox = ref([
+  { label: "x1", value: "x1" },
+  { label: "x2", value: "x2" },
+  { label: "x3", value: "x3" },
+  { label: "x4", value: "x4" }
+])
+
+let listcbval2 = ref([])
+let Listcheckbox2 = ref([
+  { label: "y1", value: "y1" },
+  { label: "y2", value: "y2" },
+  { label: "y3", value: "y3" },
+  { label: "y4", value: "y4" }
+])
+
+
+</script>

+ 10 - 5
src/views/titlecomponent/Xfoil.vue

@@ -8,6 +8,7 @@
         :class="{ active: currentTab === index }"
         @click="selectTab(index)"
       >
+        <img :src="tab.imgSrc" style="width: 24px;margin-top: -8px;"/>
         {{ tab.name }}
       </li>
     </ul>
@@ -43,7 +44,7 @@
     <!-- 分析参数 -->
     <div v-show="currentTab == '2'">
       <div class="eldesign classtable" style="margin-top: 10px">
-        <el-table :data="outParams" border style="width: 100%">
+        <el-table :data="outParams" border style="width: 100%;height: 400px">
           <el-table-column type="index" width="70" label="编号" />
           <!-- <el-table-column prop="code" width="70" label="编码" /> -->
           <el-table-column prop="name" label="参数名称">
@@ -71,7 +72,7 @@
     </div>
     <!-- 设置参数 -->
     <div v-show="currentTab == '1'">
-      <div class="eldesign classtable" style="margin-top: 10px">
+      <div class="eldesign classtable" style="margin-top: 10px;height: 400px">
         <el-form-item label="计算完成:" :label-width="formLabelWidth1">
           <el-radio-group v-model="analyzed">
             <el-radio label="1" value=1>是</el-radio>
@@ -144,6 +145,10 @@ import { ElMessage, ElButton, ElDialog, ElSelect } from "element-plus"
 import { Edit, CaretBottom } from "@element-plus/icons-vue"
 import { tr } from "element-plus/es/locale/index.mjs"
 import { request, uploadFile } from "@/utils/request"
+import inputParams from "@/assets/img/inputParams.png"
+import configParams from "@/assets/img/configParams.png"
+import analysisParams from "@/assets/img/analysisParams.png"
+
 let formLabelWidth3 = ref(100)
 let formLabelWidth1 = ref(170)
 let formLabelWidth2 = ref(250)
@@ -165,9 +170,9 @@ let xfoilvalue = ref({
 })
 
 let tabslist = ref([
-  { id: "0", name: "来流参数" },
-  { id: "1", name: "设置参数" },
-  { id: "2", name: "分析参数" }
+  { id: "0", name: "来流参数" ,imgSrc: inputParams},
+  { id: "1", name: "设置参数" ,imgSrc: configParams},
+  { id: "2", name: "分析参数" ,imgSrc: analysisParams}
 ])
 
 

+ 53 - 0
src/views/vuetree/CustomEdge.vue

@@ -0,0 +1,53 @@
+<template>
+  <g>
+    <!-- 渲染连接线 -->
+    <path :d="linePath" fill="transparent" />
+
+    <!-- 渲染文本 -->
+    <g v-for="(line, index) in labelLines" :key="index">
+      <text :x="textX" :y="textY + (index * 15)" :style="textStyle">{{ line }}</text>
+      <text>测试</text>
+    </g>
+  </g>
+</template>
+
+<script setup>
+import { computed } from 'vue';
+
+// 通过 defineProps 来声明 props
+const { sourceX, sourceY, targetX, targetY, label } = defineProps({
+  sourceX: Number,
+  sourceY: Number,
+  targetX: Number,
+  targetY: Number,
+  label: String,
+});
+
+// 计算路径
+const linePath = computed(() => {
+  return `M${sourceX},${sourceY} C${(sourceX + targetX) / 2},${sourceY} ${(sourceX + targetX) / 2},${targetY} ${targetX},${targetY}`;
+});
+
+// 计算文本X坐标
+const textX = computed(() => (sourceX + targetX) / 2);
+
+// 计算文本Y坐标
+const textY = computed(() => (sourceY + targetY) / 2);
+
+// 文本样式
+const textStyle = computed(() => ({
+  fontSize: '12px',
+  fill: '#000',
+  textAnchor: 'middle',
+  dominantBaseline: 'middle',
+}));
+
+// 拆分多行文本
+const labelLines = computed(() => (label || '').split('\n'));
+</script>
+
+<style scoped>
+text {
+  pointer-events: none;  /* 防止文本阻挡其他交互 */
+}
+</style>

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

@@ -9,6 +9,14 @@
     <template  #node-default="props">
       <eltree :node="props" />
     </template>
+
+    <template #edge-default="props">
+      <custom-edge :sourceX="props.sourceX" 
+                  :sourceY="props.sourceY" 
+                  :targetX="props.targetX" 
+                  :targetY="props.targetY"
+                  :label="props.data.label" />
+    </template>
  
     <Background pattern-color="#aaa" :gap="16" />
 
@@ -56,7 +64,7 @@
 
     <el-dialog v-model="changeNameshow" 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">
+             width="400" class="dialog_class bgcolor colortext tianjia sel">
       <template #header="{ titleId, titleClass }">
         <div class="my-header ">
           <h4 :id="titleId" :class="titleClass">修改名称</h4>
@@ -82,31 +90,42 @@
     <!-- 双击线段 -->
     <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">
+             width="500" class="dialog_style 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;">
+      <div style="margin-top: 5px;padding: 10px 35px;">
         <el-card>
-          <el-checkbox>全选</el-checkbox>
-          <el-table :data="shujuliutable" border>
+          <el-checkbox v-model="checkAll" 
+          :indeterminate="isIndeterminate"
+          @change="handlecheckAllchange">全选</el-checkbox>
+          <div class="eldesign classtable">
+            <el-table :data="shujuliutable" border>
             <el-table-column
               type="index"
               label=""
               :header-cell-style="{ display: 'none' }"
             ></el-table-column>
-          </el-table>
+            <el-table-column prop="flag" width="55">
+              <template #default="{ row }">
+                <el-checkbox
+                :false-label="0"
+                :true-label="1" 
+                v-model="row.flag" 
+                @change="handlecheckFlagchange"></el-checkbox>
+              </template>
+            </el-table-column>
+            <el-table-column prop="data" label="" ></el-table-column>
+            </el-table>
+          </div>
         </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>
+          <el-button type="primary" @click="confirmselection();dataflowshow = false ">确 定</el-button>
         </div>
       </template>
     </el-dialog>
@@ -140,6 +159,7 @@ import { MiniMap } from '@vue-flow/minimap'
 import "./main.css";//重置样式
 import DropzoneBackground from './DropzoneBackground.vue'
 import eltree from './eltree.vue'
+import CustomEdge from './CustomEdge.vue';
 import useDragAndDrop from './useDnD';
 import f11 from '@/assets/img/f11.png'
 import r2 from '@/assets/img/r2.png'
@@ -407,11 +427,43 @@ function onEdgeClick(e) {
 let dataflowshow=ref(false);
 
 let shujuliutable = ref([
-  {}
+  {data: '升力系数Cl',flag:1},
+  {data: '阻力系数Cd',flag:1},
+  {data: '压阻力系数Cdp',flag:1},
+  {data: '上表面转换点位置xtr-upper',flag:1},
+  {data: '下表面转换点位置xtr-lower',flag:1},
 ])
 
+
+let checkAll = ref(false);
+let isIndeterminate = ref(false);
+const handlecheckAllchange = (val) => {
+  shujuliutable.value.forEach((item) => {
+    item.flag = val;
+  });
+  isIndeterminate.value = false;
+};
+
+const handlecheckFlagchange = () => {
+  let checkedCount = shujuliutable.value.filter((item) => item.flag).length;
+  checkAll.value = checkedCount === shujuliutable.value.length;
+  isIndeterminate.value = checkedCount > 0 && checkedCount < shujuliutable.value.length;
+};
+
+
+const confirmselection=()=>{
+  let checkedData = shujuliutable.value.filter((item) => item.flag).map((item) => item.data);
+  console.log('xuanzhongshuju:',checkedData);
+  console.log('seledge:',seledge.value);
+  seledge.value.label=checkedData.join('\n');
+  dataflowshow.value = false;
+}
+
+
 function onEdgeDoubleClick(e) {
+  handlecheckFlagchange();
   console.log('Edge Double Click', e)
+  seledge.value = e.edge;
   dataflowshow.value = true
 }
 
@@ -684,6 +736,20 @@ defineExpose({changeAllEdgesColor,linestrokeWidth,getroter,onSelection,bgcolorfu
   /* 设置edges的左对齐 */
 }
 
+.edge-label {
+  position: absolute;
+  background-color: rgba(0, 0, 0, 0.6);
+  color: white;
+  padding: 5px;
+  border-radius: 4px;
+  font-size: 14px;
+  white-space: pre-line;  /* 保证文本支持换行 */
+}
+
+.edge-label-line {
+  margin-bottom: 4px; /* 控制每行的间距 */
+}
+
 #contextMenu {
   display: none;
   position: absolute;