tangjunhao 6 місяців тому
батько
коміт
a49629e374

+ 3 - 1
src/style/index.css

@@ -327,6 +327,7 @@ overflow: hidden;
   }
   .mianflex{
     display: flex;
+    overflow: auto;
   }
   .main_model{
     width: 100%;
@@ -555,7 +556,8 @@ text-align: left;
 }
 .custom-tree{
   width: 195px;
-height: 20%;
+  /* 留出中间拖动位置 */
+height: 98%;
 background: #fafafa;
 border-radius: 0px 0px 0px 0px;
 border: 1px solid #B3B3B3;

+ 3 - 3
src/views/echart/optimize_monitor.vue

@@ -21,7 +21,7 @@ import * as echarts from "echarts"
 let vars = ref([])
 let vals = ref([])
 let series = ref([])
-let xdata = ref([])
+let xdata = ref(['1.00','2.00','3.00','4.00','5.00','6.00','7.00','8.00'])
 let chartContainer = ref()
 let myChart
 let chartDom = ref()
@@ -161,8 +161,8 @@ const linechart = () => {
         //X轴线
         show: true,
         lineStyle: {
-          color: "#000", // 线的颜色
-          width: 2, // 线宽
+          color: "#333333", // 线的颜色
+          width: 1, // 线宽
           type: "solid" // 线的类型,默认为实线,可选:'solid', 'dashed', 'dotted'
         }
       },

+ 25 - 203
src/views/home.vue

@@ -1085,127 +1085,7 @@
                 <h4 :id="titleId" :class="titleClass">TACS</h4>
               </div>
             </template>
-            <div class="XFpdding">
-            <ul><li class="item"   v-for="(tab, index) in tabslist2" :key="index" :class="{ active: currentTab2 === index }"
-                     @click="selectTab2(index)">{{tab.name  }}</li>
-                    </ul>
-                    <!-- 网格文件 -->
-                      <!-- 执行 -->
-                    <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  >
-                            <template #append>
-                              <fileUploads  
-                              :projectId="125"
-                              solverType="exampleSolver"
-                              accept=""
-                              upId="uniqueId1"
-                              :imgSrc="tacsfileSrc"  
-                              name="点击选择文件"
-                              />
-                            </template>
-                          </el-input>
-                        </el-form-item>
-                      </el-form>
-                      <div style="flex-grow: 1; ">
-
-                      </div>
-                    </div>
-                      <!-- 设置参数 -->
-                <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>
-                  <el-collapse v-model="TACSactiveNames" >
-                    <el-collapse-item title="材料属性" name="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>
-                      <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.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.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
-                      </el-form-item>
-                      <el-form-item label="启用FFD参数化:" :label-width="formLabelWidth1">
-                        <el-radio-group v-model="radio" >
-                          <el-radio label="1">是</el-radio>
-                          <el-radio label="0">否</el-radio>
-                        </el-radio-group>
-                      </el-form-item>
-                    </el-collapse-item>
-                    <el-collapse-item title="收敛选项" name="2">
-                      <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.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
-                      </el-form-item>
-                    </el-collapse-item>
-                  </el-collapse>
-              
-                </div>
-                        <!-- 结构参数 v-show="currentTab=='0'"-->
-                <div  v-show="currentTab2=='2'">
-                  <div class="eldesign classtable" style="margin-top: 10px;">
-                   <el-table :data="TACSlailiutable"  border style="width: 100%;height:400px" >
-                    <el-table-column label="启用">
-                      <el-table-column type="index" width="70"  label="编号">
-                      </el-table-column> 
-                    </el-table-column>
-                    <el-table-column>
-                      <template v-slot:header>
-                      <!-- 表头显示复选框 -->
-                      <el-checkbox 
-                      :false-label="'-1'" 
-                      :true-label="'1'" 
-                      :label="false" 
-                      />
-                      </template>
-                      <el-table-column prop="data" label="厚度分布" width="100">
-                        <template #default="{ row }">
-                          <el-input v-model.number="row.data"  />
-                        </template>
-                      </el-table-column>
-                    </el-table-column>
-                    <el-table-column>
-
-                      <el-table-column prop="con" label="" >
-                    
-                      </el-table-column> 
-                    </el-table-column>
-                </el-table>
-              </div>
-                    </div>
-                    <!-- 分析参数 v-show="currentTab=='0'"-->
-                    <div  v-show="currentTab2=='3'">
-                      <div class="eldesign classtable" style="margin-top: 10px;">
-                   <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 }">
-                      <el-input v-model="row.name" @change="handleEdit(row)" />
-                    </template> -->
-                  </el-table-column>
-                  <el-table-column prop="data" label="参数值">
-                    <template #default="{ row }">
-                      <el-input v-model.number="row.data" @change="handleEdit(row)" />
-                    </template>
-                  </el-table-column>
-                 <el-table-column prop="con" label="启用" width="100">
-                    <template v-slot="scope">
-                      <el-checkbox :false-label="'-1'" :true-label="'1'" :label="false" v-model="scope.row.enable"  @change="changecheck($event,scope.row)"/>
-                    </template>
-                  </el-table-column> 
-              
-                </el-table>
-              </div>
-            </div>
-          </div>
+            <TACS />
             <template #footer>
               <div class="dialog-footer">
                 <el-button @click="dialog.Taxs = false">取消</el-button>
@@ -1455,9 +1335,9 @@
                    <!-- 列表监控 -->
                   <div class="conter_mian classtable " v-show="jiankong" style="width:100%; height: 100%;">
                     <el-table :data="tableDatalieb" border style="display: flex; flex: 1; overflow: auto; height: 100%;" >
-                      <el-table-column type="index" width="50"></el-table-column>
+                      <el-table-column type="index" label="编号" width="150"></el-table-column>
                       <el-table-column v-for="(header, index) in tableHeaders" :key="index" :prop="header.prop"
-                        :label="header.label">
+                        :label="header.label" >
                       </el-table-column>
                     </el-table>
                   </div>
@@ -1784,6 +1664,7 @@ 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 TACS from "./titlecomponent/TACS.vue";
 
 import fileUploads from './components/fileuploads.vue'
 import Exreport from "./titlecomponent/Exreport.vue";
@@ -1871,16 +1752,23 @@ let processMonitor1ref = ref()
 let processMonitor2ref = ref()
 let arearef = ref();
 let tableHeaders = ref([
-  // { label: '日期', prop: 'date' },
-  // { label: '姓名', prop: 'name' },
-  // 可以根据需要动态添加或删除表头信息
+  { label: '参数1', prop: 'value1' },
+  { label: '参数2', prop: 'value2' },
+  { label: '参数3', prop: 'value3' },
+  { label: '参数4', prop: 'value4' },
+  { label: '参数5', prop: 'value5' },
+
 ])
 let varsobj = ref({});
 let valsobj = ref({});
 let tabarr = ref([]);
 let arrobj = ref([]);
 let tableDatalieb = ref([
-  // { date: '2016-05-02', name: '王小虎' },
+  { value1: '0.00', value2: '0.00', value3:'0.00', value4:'0.00', value5:'0.00'},
+  { value1: '0.00', value2: '0.00', value3:'0.00', value4:'0.00', value5:'0.00'},
+  { value1: '0.00', value2: '0.00', value3:'0.00', value4:'0.00', value5:'0.00'},
+  { value1: '0.00', value2: '0.00', value3:'0.00', value4:'0.00', value5:'0.00'},
+  { value1: '0.00', value2: '0.00', value3:'0.00', value4:'0.00', value5:'0.00'},
 ])
 let curvedata = ref('');
 let websock = ref(null);
@@ -1970,79 +1858,6 @@ let yslist = ref([
   { label: 'PSO', value: 'PSO' },
   { label: 'NSGA2', value: 'NSGA2' },
 ])
- let currentTab2=ref(0);
-let tabslist2= ref([
-  { id: '0', name: '网格文件' },
-  { id: '1', name: '设置参数' },
-  { id: '2', name: '结构参数' },
-  { id: '3', name: '分析参数' },
-
-])
-
-const tacsfileSrc = new URL('@/assets/flowimg/ffdFileSave.png', import.meta.url).href;
-
-let TACSactiveNames = ref(['1','2']);
-
-let TACSlailiutable=ref([
-  {
-    data: 0.995208,
-    con: ''
-  },
-  {
-    data: 0.995208,
-    con: ''
-  },
-  {
-    data: 0.995208,
-    con: ''
-  },
-  {
-    data: 0.995208,
-    con: ''
-  },
-  {
-    data: 0.995208,
-    con: ''
-  },
-  {
-    data: 0.995208,
-    con: ''
-  },
-  {
-    data: 0.995208,
-    con: ''
-  },
-  {
-    data: 0.995208,
-    con: ''
-  },
-  {
-    data: 0.995208,
-    con: ''
-  },
-  {
-    data: 0.995208,
-    con: ''
-  },
-])
-
-let TACSfenxitable=ref([
-  {
-    data: 13972.2123,
-    name: '结构质量',
-    con:-1
-  },
-  {
-    data: 0.3337,
-    name: 'KS聚合应力',
-    con:1
-  },
-  {
-    data: 0.0,
-    name: '最大变形',
-    con: -1
-  }
-])
 
 let lailiutable=ref([
 {
@@ -3833,9 +3648,7 @@ const selectTab=(index)=>{
   currentTab.value = index;
 }
 
-const selectTab2=(index)=>{
-  currentTab2.value = index;
-}
+
 const adfhandleClick=(tab,event)=>{
   console.log('表单切换',tab.props.label);
   activeadf.value=tab.props.label;
@@ -4268,6 +4081,13 @@ color: #2267B1;
 
 .classtable .el-table th .cell {
  background: #fff;
+ line-height: 31px;
+}
+
+.classtable .el-table td.el-table__cell, .classtable .el-table th.el-table__cell{
+  color: #333333;
+  font-size: 16px;
+  font-family: 'Source Sans Pro-Regular';
 }
 
 .classtable .el-table td.el-table__cell div {
@@ -4283,6 +4103,8 @@ color: #2267B1;
   /* border: 1px solid #000000; */
 }
 
+
+
 /* .el-color-picker__trigger {
   //display: none;
 } */

+ 101 - 37
src/views/titlecomponent/Cloudsecond.vue

@@ -80,13 +80,13 @@
             </template>
             <el-form label-position="left">
               <el-form-item label="名称:" :label-width="formLabelWidth1" >
-                <el-input></el-input>
+                <el-input v-model="ytvalue.name"></el-input>
               </el-form-item>
               <el-form-item label="类型:" :label-width="formLabelWidth1">
-                <el-input></el-input>
+                <el-input v-model="ytvalue.type"></el-input>
               </el-form-item>
               <el-form-item label="标量名:" :label-width="formLabelWidth1">
-                <el-select v-model="scalarname">
+                <el-select v-model="ytvalue.scalarname">
                   <el-option 
                   v-for=" item in scalarnameoptions" :key="item.value" :label="item.label" :value="item.value"
                   />
@@ -95,10 +95,10 @@
               <el-form-item label="" :label-width="formLabelWidth1">
                 <el-row>
                   <el-col :span="12">
-                    <el-checkbox label="极值"></el-checkbox>
+                    <el-checkbox label="极值" v-model="ytvalue.jzcheck"></el-checkbox>
                   </el-col>
                   <el-col :span="12">
-                    <el-checkbox label="单元值离散到点"></el-checkbox>
+                    <el-checkbox label="单元值离散到点" v-model="ytvalue.dycheck"></el-checkbox>
                   </el-col>
                 </el-row>
               </el-form-item>
@@ -111,7 +111,7 @@
             </template>
             <el-form label-position="left">
               <el-form-item label="名称:" :label-width="formLabelWidth1">
-                <el-input ></el-input>
+                <el-input v-model="ytvalue.name2"></el-input>
               </el-form-item>
               <el-form-item label=" " :label-width="formLabelWidth1">
                 <el-row>
@@ -119,7 +119,7 @@
                     <div></div>
                   </el-col> -->
                   <el-col :span="24">
-                    <el-checkbox label="平滑云图"></el-checkbox>
+                    <el-checkbox label="平滑云图" v-model="ytvalue.check3"></el-checkbox>
                   </el-col>
                 </el-row>
               </el-form-item>
@@ -132,17 +132,17 @@
             </template>
             <el-form label-position="left">
               <el-form-item label="数据范围类型:" :label-width="formLabelWidth1">
-                <el-select v-model="dataAreaType">
+                <el-select v-model="ytvalue.dataAreaType">
                   <el-option 
                   v-for=" item in dataAreaTypeoptions" :key="item.value" :label="item.label" :value="item.value"
                   />
                 </el-select>
               </el-form-item>
               <el-form-item label="最大值:" :label-width="formLabelWidth1">
-                <el-input ></el-input>
+                <el-input v-model="ytvalue.max"></el-input>
               </el-form-item>
               <el-form-item label="最小值:" :label-width="formLabelWidth1">
-                <el-input ></el-input>
+                <el-input v-model="ytvalue.min"></el-input>
               </el-form-item>
             </el-form>
           </el-collapse-item>
@@ -154,14 +154,14 @@
             <el-form label-position="left">
               <el-form-item label="最大值:" :label-width="formLabelWidth1">
                 <el-row style="width: 100%;">
-                  <el-col :span="22"><el-input ></el-input></el-col>
-                  <el-col :span="2"><el-color-picker v-model="color1" /></el-col>
+                  <el-col :span="22"><el-input v-model="ytvalue.maxcv"></el-input></el-col>
+                  <el-col :span="2"><el-color-picker v-model="color1" @change="updateMaxValue"/></el-col>
                 </el-row>
               </el-form-item>
               <el-form-item label="最小值:" :label-width="formLabelWidth1">
                 <el-row style="width: 100%;">
-                  <el-col :span="22"><el-input ></el-input></el-col>
-                  <el-col :span="2"><el-color-picker v-model="color1" /></el-col>
+                  <el-col :span="22"><el-input v-model="ytvalue.mincv"></el-input></el-col>
+                  <el-col :span="2"><el-color-picker v-model="color2" @change="updateMinValue"/></el-col>
                 </el-row>
               </el-form-item>
             </el-form>
@@ -173,10 +173,10 @@
     <div v-show="activesd.colorchart">
       <el-form label-position="left">
         <el-form-item label="" :label-width="formLabelWidth1">
-          <el-checkbox label="显示色卡"></el-checkbox>
+          <el-checkbox label="显示色卡" v-model="skvalue.check1"></el-checkbox>
         </el-form-item>
         <el-form-item label="朝向:" :label-width="formLabelWidth1">
-          <el-select v-model="orientation">
+          <el-select v-model="skvalue.orientation">
             <el-option 
             v-for=" item in orientationoptions" :key="item.value" :label="item.label" :value="item.value"
             />
@@ -186,12 +186,12 @@
         <el-row :gutter="10">
           <el-col :span="10">
             <el-form-item label="X(0-1):" :label-width="formLabelWidth2">
-              <el-input></el-input>
+              <el-input v-model="skvalue.X"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="10">
             <el-form-item label="Y(0-1):" :label-width="formLabelWidth2">
-              <el-input></el-input>
+              <el-input v-model="skvalue.Y"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="4">
@@ -202,12 +202,12 @@
         <el-row :gutter="10">
           <el-col :span="10">
             <el-form-item label="宽度(0-1):" :label-width="formLabelWidth2">
-              <el-input></el-input>
+              <el-input v-model="skvalue.width"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="10">
             <el-form-item label="高度(0-1):" :label-width="formLabelWidth2">
-              <el-input></el-input>
+              <el-input v-model="skvalue.height"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="4">
@@ -216,13 +216,13 @@
         </el-row>
 
         <el-form-item label="跳过层级:" :label-width="formLabelWidth1">
-          <el-input type="number"></el-input>
+          <el-input-number v-model="skvalue.skipc" controls-position="right"></el-input-number>
         </el-form-item>
 
         <el-form-item label="字体:" :label-width="formLabelWidth1">
           <el-row style="width: 100%;" gutter="10">
             <el-col :span="20">
-              <el-select v-model="font">
+              <el-select v-model="skvalue.font">
                 <el-option 
                 v-for=" item in fontoptions" :key="item.value" :label="item.label" :value="item.value"
                 />
@@ -244,7 +244,7 @@
         </el-form-item>
 
         <el-form-item label="字体大小:" :label-width="formLabelWidth1">
-          <el-select v-model="fontsize">
+          <el-select v-model="skvalue.fontsize">
             <el-option 
             v-for=" item in fontsizeoptions" :key="item.value" :label="item.label" :value="item.value"
             />
@@ -252,7 +252,7 @@
         </el-form-item>
 
         <el-form-item label="数据格式:" :label-width="formLabelWidth1">
-          <el-select v-model="dataformat">
+          <el-select v-model="skvalue.dataformat">
             <el-option 
             v-for=" item in dataformatoptions" :key="item.value" :label="item.label" :value="item.value"
             />
@@ -260,17 +260,17 @@
         </el-form-item>
 
         <el-form-item label="精度:" :label-width="formLabelWidth1">
-          <el-input type="number"></el-input>
+          <el-input-number v-model="skvalue.jingdu"></el-input-number>
         </el-form-item>
 
         <el-form-item label="" :label-width="formLabelWidth1">
-          <el-checkbox label="显示标题"></el-checkbox>
+          <el-checkbox label="显示标题" v-model="skvalue.check2"></el-checkbox>
         </el-form-item>
 
         <el-form-item label="标题文本:" :label-width="formLabelWidth1">
           <el-row>
             <el-col :span="12">
-              <el-select v-model="texttitle">
+              <el-select v-model="skvalue.texttitle">
                 <el-option 
                 v-for=" item in texttitleoptions" :key="item.value" :label="item.label" :value="item.value"
                 />
@@ -285,7 +285,7 @@
         <el-form-item label="标题字体:" :label-width="formLabelWidth1">
           <el-row style="width: 100%;" gutter="10">
             <el-col :span="20" >
-              <el-select v-model="titlefont">
+              <el-select v-model="skvalue.titlefont">
                 <el-option 
                 v-for=" item in titlefontoptions" :key="item.value" :label="item.label" :value="item.value"
                 />
@@ -307,7 +307,7 @@
         </el-form-item>
 
         <el-form-item label="字体大小:" :label-width="formLabelWidth1">
-          <el-select v-model="fontsize">
+          <el-select v-model="skvalue.fontsize2">
             <el-option 
             v-for=" item in fontsizeoptions" :key="item.value" :label="item.label" :value="item.value"
             />
@@ -325,13 +325,13 @@
           </template>
           <el-form label-position="left">
               <el-form-item label="名称:" :label-width="formLabelWidth1">
-                <el-input ></el-input>
+                <el-input v-model="dzxvalue.name"></el-input>
               </el-form-item>
               <el-form-item label="类型:" :label-width="formLabelWidth1">
-                <el-input ></el-input>
+                <el-input v-model="dzxvalue.type"></el-input>
               </el-form-item>
               <el-form-item label="标量名:" :label-width="formLabelWidth1">
-                <el-select v-model="scalarname2">
+                <el-select v-model="dzxvalue.scalarname2">
                   <el-option 
                   v-for=" item in scalarname2options" :key="item.value" :label="item.label" :value="item.value"
                   />
@@ -346,7 +346,7 @@
           </template>
           <el-form label-position="left">
             <el-form-item label="层级:" :label-width="formLabelWidth1">
-              <el-input ></el-input>
+              <el-input v-model="dzxvalue.cengji"></el-input>
             </el-form-item>
           </el-form>
         </el-collapse-item>
@@ -357,10 +357,10 @@
           </template>
           <el-form label-position="left">
             <el-form-item label="最大值:" :label-width="formLabelWidth1">
-              <el-input ></el-input>
+              <el-input v-model="dzxvalue.max"></el-input>
             </el-form-item>
             <el-form-item label="最小值:" :label-width="formLabelWidth1">
-              <el-input ></el-input>
+              <el-input v-model="dzxvalue.min"></el-input>
             </el-form-item>
           </el-form>
         </el-collapse-item>
@@ -414,7 +414,7 @@ let tabledomainColumns = ref([
 
 let scalarname = ref('1')
 let scalarnameoptions = ref([
-  {label:'1',value:'1'}
+  {label:'00',value:'00'}
 ])
 
 let dataAreaType = ref('当前时间步')
@@ -461,13 +461,77 @@ let titlefontoptions = ref([
 
 let scalarname2 = ref('1')
 let scalarname2options = ref([
-  {label:'1',value:'1'}
+  {label:'00',value:'00'}
 ])
 
 let activeNames = ref(['1','2','3','4'])
 let activeNames2 = ref(['1','2','3'])
 
 
+let ytvalue = ref({
+  name:'00',
+  type:'00',
+  scalarname:'00',
+  jzcheck:'1',
+  dycheck:'1',
+  name2:'00',
+  check3:'1',
+  dataAreaType:'当前时间步',
+  max:'0.00',
+  min:'0.00',
+  maxcv:'34, 103, 177, 1',
+  mincv:'232, 0, 0, 1'
+})
+
+let color1 = ref('#2267B1')
+let color2 = ref('#E80000')
+
+// HEX 转 RGBA 方法
+const hexToRgba = (hex, alpha = 1) => {
+  let r = parseInt(hex.slice(1, 3), 16)
+  let g = parseInt(hex.slice(3, 5), 16)
+  let b = parseInt(hex.slice(5, 7), 16)
+  return `${r}, ${g}, ${b}, ${alpha}`
+}
+
+// 更新输入框的值
+const updateMaxValue = () => {
+  ytvalue.value.maxcv = hexToRgba(color1.value)
+}
+const updateMinValue = () => {
+  ytvalue.value.mincv = hexToRgba(color2.value)
+}
+
+
+let skvalue = ref({
+  check1:'1',
+  orientation:'竖直',
+  X:'0.8',
+  Y:'0.05',
+  width:'0.8',
+  height:'0.05',
+  skipc:'2',
+  font:'微软雅黑',
+  fontsize:'15',
+  dataformat:'科学计数法',
+  jingdu:'2',
+  check2:'1',
+  texttitle:'使用变量名',
+  titlefont:'Arial',
+  fontsize2:'20',
+})
+
+let dzxvalue = ref({
+  name:'00',
+  type:'00',
+  scalarname2:'00',
+  cengji:'00',
+  max:'0.00',
+  min:'0.00'
+})
+
+
+
 </script>
 
 <style>

+ 319 - 0
src/views/titlecomponent/TACS.vue

@@ -0,0 +1,319 @@
+<template>
+  <div class="XFpdding" style="height: 550px;">
+    <ul>
+      <li
+        class="item"
+        v-for="(tab, index) in tabslist2"
+        :key="index"
+        :class="{ active: currentTab2 === index }"
+        @click="selectTab2(index)"
+      >
+        {{ tab.name }}
+      </li>
+    </ul>
+    <!-- 网格文件 -->
+    <!-- 执行 -->
+    <div
+      class="classtable"
+      style="margin-top: 10px; "
+      v-if="currentTab2 == '0'"
+    >
+      <el-form label-position="left">
+        <el-form-item label="网格文件:" :label-width="formLabelWidth120">
+          <el-input v-model="tacsFilename">
+            <template #append>
+              <fileUploads
+                :projectId="125"
+                solverType="exampleSolver"
+                accept=""
+                upId="uniqueId1"
+                :imgSrc="tacsfileSrc"
+                name="点击选择文件"
+              />
+            </template>
+          </el-input>
+        </el-form-item>
+      </el-form>
+      <div style="flex-grow: 1"></div>
+    </div>
+    <!-- 设置参数 -->
+    <div
+      class="classtable"
+      style="margin-top: 10px;"
+      v-show="currentTab2 == '2'"
+    >
+      <el-form-item label="分析对象名称:" :label-width="formLabelWidth1">
+        <el-input
+          v-model="tacsvalue.objname"
+          :step="100"
+          :min="0"
+          :max="1000"
+          controls-position="right"
+        />
+      </el-form-item>
+      <el-collapse v-model="TACSactiveNames">
+        <el-collapse-item title="材料属性" name="1">
+          <template #title>
+            <span class="collapse-title">材料属性</span>
+          </template>
+          <el-form-item label="材料密度:" :label-width="formLabelWidth1">
+            <el-input
+              v-model="tacsvalue.density"
+              :step="100"
+              :min="0"
+              :max="1000"
+              controls-position="right"
+            />
+          </el-form-item>
+          <el-form-item label="杨氏模量:" :label-width="formLabelWidth1">
+            <el-input
+              v-model="tacsvalue.ysml"
+              :step="100"
+              :min="0"
+              :max="1000"
+              controls-position="right"
+            />
+          </el-form-item>
+          <el-form-item label="泊松比:" :label-width="formLabelWidth1">
+            <el-input
+              v-model="tacsvalue.ratio"
+              :step="100"
+              :min="0"
+              :max="1000"
+              controls-position="right"
+            />
+          </el-form-item>
+          <el-form-item label="屈服应力:" :label-width="formLabelWidth1">
+            <el-input
+              v-model="tacsvalue.stress"
+              :step="100"
+              :min="0"
+              :max="1000"
+              controls-position="right"
+            />
+          </el-form-item>
+          <el-form-item label="启用FFD参数化:" :label-width="formLabelWidth1">
+            <el-radio-group v-model="tacsvalue.radio">
+              <el-radio label="1">是</el-radio>
+              <el-radio label="0">否</el-radio>
+            </el-radio-group>
+          </el-form-item>
+        </el-collapse-item>
+        <el-collapse-item title="收敛选项" name="2">
+          <template #title>
+            <span class="collapse-title">收敛选项</span>
+          </template>
+          <el-form-item label="绝对收敛参数:" :label-width="formLabelWidth1">
+            <el-input
+              v-model="tacsvalue.absolute "
+              :step="100"
+              :min="0"
+              :max="1000"
+              controls-position="right"
+            />
+          </el-form-item>
+          <el-form-item label="相对收敛参数:" :label-width="formLabelWidth1">
+            <el-input
+              v-model="tacsvalue.relative "
+              :step="100"
+              :min="0"
+              :max="1000"
+              controls-position="right"
+            />
+          </el-form-item>
+        </el-collapse-item>
+      </el-collapse>
+    </div>
+    <!-- 结构参数 v-show="currentTab=='0'"-->
+    <div v-show="currentTab2 == '1'">
+      <div class="eldesign classtable" style="margin-top: 10px">
+        <el-table
+          :data="TACSlailiutable"
+          border
+          style="width: 100%; "
+        >
+          <el-table-column label="启用">
+            <el-table-column type="index" width="70" label="编号">
+            </el-table-column>
+          </el-table-column>
+          <el-table-column>
+            <template v-slot:header>
+              <!-- 表头显示复选框 -->
+              <el-checkbox
+                :false-label="'-1'"
+                :true-label="'1'"
+                :label="false"
+                v-model="thcheckbox"
+              />
+            </template>
+            <el-table-column prop="data" label="厚度分布" width="100">
+              <template #default="{ row }">
+                <el-input v-model.number="row.data" />
+              </template>
+            </el-table-column>
+          </el-table-column>
+          <el-table-column>
+            <el-table-column prop="con" label=""> </el-table-column>
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
+    <!-- 分析参数 v-show="currentTab=='0'"-->
+    <div v-show="currentTab2 == '3'">
+      <div class="eldesign classtable" style="margin-top: 10px">
+        <el-table
+          :data="TACSfenxitable"
+          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="data" label="参数值">
+            <template #default="{ row }">
+              <el-input v-model.number="row.data" @change="handleEdit(row)" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="con" label="启用" width="100">
+            <template v-slot="scope">
+              <el-checkbox
+                :false-label="'-1'"
+                :true-label="'1'"
+                :label="false"
+                v-model="scope.row.enable"
+              />
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </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"
+import fileUploads from '../components/fileuploads.vue'
+
+
+let formLabelWidth1 = ref(170)
+let formLabelWidth120 = ref(120)
+
+let currentTab2=ref(0);
+let tabslist2= ref([
+  { id: '0', name: '网格文件' },
+  { id: '1', name: '结构参数' },
+  { id: '2', name: '设置参数' },
+  { id: '3', name: '分析参数' },
+
+])
+
+const tacsfileSrc = new URL('@/assets/flowimg/ffdFileSave.png', import.meta.url).href;
+
+
+let TACSactiveNames = ref(['1','2']);
+
+let tacsvalue = ref({
+  objname:'CRM',
+  density:'2780.0',
+  ysml:'73.1e9',
+  ratio:'0.33',
+  stress:'262.0e6',
+  radio:'1',
+  absolute:'1e3',
+  relative:'1e3'
+})
+
+let thcheckbox = ref('1')
+
+let tacsFilename = ref('UCRM_wing.xml.bdf')
+
+let TACSlailiutable=ref([
+  {
+    data: '0.995208',
+    con: ''
+  },
+  {
+    data: '0.992144',
+    con: ''
+  },
+  {
+    data: '0.988525',
+    con: ''
+  },
+  {
+    data: '0.984251',
+    con: ''
+  },
+  {
+    data: '0.979202',
+    con: ''
+  },
+  {
+    data: '0.973236',
+    con: ''
+  },
+  {
+    data: '0.966186',
+    con: ''
+  },
+  {
+    data: '0.957851',
+    con: ''
+  },
+  {
+    data: '',
+    con: ''
+  },
+  {
+    data: '',
+    con: ''
+  },
+  {
+    data: '',
+    con: ''
+  },
+])
+
+let TACSfenxitable=ref([
+  {
+    data: 13972.2123,
+    name: '结构质量',
+    enable:'1'
+  },
+  {
+    data: 0.3337,
+    name: 'KS聚合应力',
+    enable:'1'
+  },
+  {
+    data: 0.0,
+    name: '最大变形',
+    enable: '1'
+  }
+])
+
+const selectTab2=(index)=>{
+  currentTab2.value = index;
+}
+
+
+</script>
+
+<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>

+ 98 - 9
src/views/vuetree/Sidebar.vue

@@ -283,21 +283,108 @@ onUnmounted(() => {
   }
 }
   defineExpose({datatree,getnode}); 
+
+
+
+////tree容器大小改变 
+
+// 父容器引用
+const containerRef = ref(null);
+const containerHeight = ref(0);
+
+// Tree 高度
+const topHeight = ref(0);
+const bottomHeight = ref(0);
+
+// **获取父容器高度,并计算 tree 高度**
+const updateContainerHeight = () => {
+  if (containerRef.value) {
+    containerHeight.value = containerRef.value.clientHeight;
+    topHeight.value = containerHeight.value * 0.2; // 20%
+    bottomHeight.value = containerHeight.value * 0.8; // 80%
+  }
+};
+
+// 监听窗口大小变化
+onMounted(() => {
+  nextTick(() => {
+    updateContainerHeight();
+    window.addEventListener("resize", updateContainerHeight);
+  });
+});
+
+onUnmounted(() => {
+  window.removeEventListener("resize", updateContainerHeight);
+});
+
+// 拖拽调整高度
+const isDragging = ref(false);
+const startY = ref(0);
+const isOnEdge = ref(false);
+
+const checkEdge = (event) => {
+  const box = event.currentTarget.getBoundingClientRect();
+  const offset = 5; // 允许鼠标在边界5px范围内激活拖拽
+  isOnEdge.value = Math.abs(event.clientY - (box.top + box.height)) < offset;
+  event.currentTarget.style.cursor = isOnEdge.value ? "row-resize" : "default";
+};
+
+const startDrag = (event) => {
+  if (!isOnEdge.value) return;
+  isDragging.value = true;
+  startY.value = event.clientY;
+  document.addEventListener("mousemove", onDrag);
+  document.addEventListener("mouseup", stopDrag);
+};
+
+const onDrag = (event) => {
+  if (!isDragging.value) return;
+
+  const delta = event.clientY - startY.value;
+  const newTopHeight = topHeight.value + delta;
+  const newBottomHeight = bottomHeight.value - delta;
+
+  if (newTopHeight > 50 && newBottomHeight > 50) {
+    topHeight.value = newTopHeight;
+    bottomHeight.value = newBottomHeight;
+  }
+
+  startY.value = event.clientY;
+};
+
+const stopDrag = () => {
+  isDragging.value = false;
+  document.removeEventListener("mousemove", onDrag);
+  document.removeEventListener("mouseup", stopDrag);
+};
+
+
 </script>
 
 <template>
 <div class="left_main">       
-<div class="left_main_content el-treeicon">
-  <el-tree :data="datatree"  class="custom-tree" ref="cgtree"  default-expand-all  :props="defaultProps" @node-click="handleNodeClick"  >
-    <template #default="{ node, data }">
+<div class="left_main_content el-treeicon" ref="containerRef">
+  <div class="tree-box top-tree"
+    :style="{height: topHeight+'px'}"
+    @mousemove="checkEdge"
+    @mousedown="startDrag"
+  >
+    <el-tree :data="datatree"  class="custom-tree" ref="cgtree"  default-expand-all  :props="defaultProps" @node-click="handleNodeClick"  >
+      <template #default="{ node, data }">
           <div   @dragstart="onDragStart($event, 'default',data.id)"  :draggable="true" >
             <img :src="data.img" class="custom-image" />
             <span class="custom-text"> {{ node.label }}  </span>
           </div>
         </template>
-  </el-tree>
- <el-tree :data="datatree1"  class="custom-tree1" default-expand-all  :props="defaultProps" @node-click="handleNodeClick">
-    <template #default="{ node, data }">
+    </el-tree>
+  </div>
+  <div class="tree-box bottom-tree"
+    :style="{height: bottomHeight+'px'}"
+    @mousemove="checkEdge"
+    @mousedown="startDrag"
+  >
+    <el-tree :data="datatree1"  class="custom-tree1" default-expand-all  :props="defaultProps" @node-click="handleNodeClick">
+     <template #default="{ node, data }">
           <div  @dragstart="onDragStart($event, 'default',data.id)" :draggable="true" >
             <img :src="getImgPath(data.img)" class="custom-image" />
             <span class="custom-text">
@@ -305,7 +392,9 @@ onUnmounted(() => {
             </span>
           </div>
         </template>
-  </el-tree> 
+    </el-tree> 
+  </div>
+ 
 </div>
 </div>
 </template>
@@ -330,7 +419,7 @@ onUnmounted(() => {
   padding-left: 0 !important;
 }
 .custom-tree1{
-  height: 80%;
-    overflow: auto;  
+  height: 100%;
+  overflow: auto;  
 }
 </style>