Browse Source

修改弹窗内容

tangjunhao 7 tháng trước cách đây
mục cha
commit
f40336da02

+ 9 - 90
src/views/home.vue

@@ -901,93 +901,6 @@
               </div>
             </template>
             <Xfoil/>
-            <!-- <div class="youhualog youhualog1" style="height: 480px;">
-              <ul>
-                <li v-for="(tab, index) in newxfoil" :key="index" :class="{ 'active2': activeIndex3 === index }"
-                  @click="dianjia(index)">{{ tab }}</li>
-              </ul>
-              <div class="chushij">
-                <el-button type="info" size="small" @click="initialize()">初始化</el-button>
-              </div> -->
-              <!-- 输入 -->
-              <!-- <div class="eldesign classtable" style="margin-top: 10px;" v-if="activeIndex3 == 0">
-                <el-table :data="srnewtable" border style="width: 100%" height="400">
-                 
-                  <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="v1" label="参数值">
-                    <template #default="{ row }">
-                      <el-input v-model.number="row.v1" @change="handleEdit(row)" />
-                    </template>
-                  </el-table-column>
-                 <el-table-column prop="enable" label="启用" width="100">
-                    <template v-slot="scope">
-                      <el-checkbox :false-label="'0'" :true-label="'1'" :label="false" v-model="scope.row.enable"  @change="changecheck($event,scope.row)"/>
-                    </template>
-                  </el-table-column> 
-              
-                </el-table>
-              </div> -->
-                   <!-- 输出 -->
-                   <!-- <div class="eldesign classtable" style="margin-top: 10px;" v-if="activeIndex3 == 1">
-                <el-table :data="scnewtable" border style="width: 100%" height="400">
-                  <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="v1" label="参数值">
-                    <template #default="{ row }">
-                      <el-input v-model="row.v1" @change="handleEdit(row)" />
-                    </template>
-                  </el-table-column>
-                  <el-table-column prop="con" label="约束属性">
-                                <template v-slot="scope">
-                                  <el-select class="no-border " v-model.number="scope.row.con" :suffix-icon="CaretBottom"
-                                    placeholder="请选择">
-                                    <el-option v-for="item in shuxingopt" :key="item.value" :label="item.label"
-                                      :value="item.value">
-                                    </el-option>
-                                  </el-select>
-
-                                </template>
-                              </el-table-column>
-                  <el-table-column prop="enable" label="启用" width="100">
-                    <template v-slot="scope">
-                      <el-checkbox :false-label="'0'" :true-label="'1'" :label="false" v-model="scope.row.enable"  @change="changecheck($event,scope.row)"/>
-                    </template>
-                  </el-table-column> 
-                </el-table>
-              </div> -->
-              <!-- 中间参数 -->
-              <!-- <div class="eldesign classtable" style="margin-top: 10px;" v-if="activeIndex3 == 2">
-                <el-form-item label="计算完成">
-                 <el-radio-group v-model="resource">
-                  <el-radio label="0">是</el-radio>
-                  <el-radio label="1">否</el-radio>
-                </el-radio-group> 
-             
-              </el-form-item>
-              <div style="display:flex">
-              <div class="cstleft">
-                <el-form-item label="迭代次数:">
-                  <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
-                </el-form-item>
-
-              </div>
-              <div class="cstleft">
-                <el-form-item label="表面求解点个数:" >
-                  <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
-                </el-form-item>
-
-              </div>
-            </div>
-              </div>
-         
-            </div> -->
             <template #footer>
               <div class="dialog-footer">
                 <el-button type="info" @click="newxfiol">新建 </el-button>
@@ -2014,14 +1927,20 @@ let tabslist2= ref([
 let lailiutable=ref([
 {
      data: 1,
-    name: 'Aleyna Kutzner',
+    name: '结构质量',
     con:-1
   },
   {
     data: 23,
-    name: 'Helen Jacobi',
+    name: 'KS失效',
     con:1
-  }])
+  },
+  {
+    data: 0.0,
+    name: '最大变形',
+    con: -1
+  }
+])
 let quxian = ref([
   { label: '设计变量', value: '设计变量' },
   { label: '约束条件', value: '约束条件' },

+ 337 - 179
src/views/titlecomponent/ADflow.vue

@@ -1,201 +1,359 @@
 <template>
-            <div class="XFpdding">
-                    <ul>
-                      <li class="item"   v-for="(tab, index) in tabslist1" :key="index" :class="{ active: currentTab1 === index }"
-                     @click="selectTab1(index)">{{tab.name  }}</li>
-                    </ul>
-                    <!-- 网格文件 -->
-                      <!-- 执行 -->
-                    <div class="eldesign classtable" style="margin-top: 10px;" v-if="currentTab1 == '0'">
-                      <div style="display: flex;">
-                        <el-form-item label="选择路径"  :label-width="formLabelWidth3">
-                          <!-- <el-select v-model="zhixing" :suffix-icon="CaretBottom" placeholder="请选择">
+  <div class="XFpdding">
+    <ul>
+      <li
+        class="item"
+        v-for="(tab, index) in tabslist1"
+        :key="index"
+        :class="{ active: currentTab1 === index }"
+        @click="selectTab1(index)"
+      >
+        {{ tab.name }}
+      </li>
+    </ul>
+    <!-- 网格文件 -->
+    <!-- 执行 -->
+    <div
+      class="eldesign classtable"
+      style="margin-top: 10px"
+      v-if="currentTab1 == '0'"
+    >
+      <div style="display: flex">
+        <el-form-item label="选择路径" :label-width="formLabelWidth3">
+          <!-- <el-select v-model="zhixing" :suffix-icon="CaretBottom" placeholder="请选择">
                             <el-option label="Rosenbrock" value="Rosenbrock">
                             </el-option>
                           </el-select> -->
-                          <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
-                        </el-form-item>
-                        <el-button type="primary" style="margin-left: 10px;">选择路径</el-button>
-                      </div>
-                    </div>
-                        <!-- 来流参数 v-show="currentTab=='0'"-->
-                        <div  v-show="currentTab1=='1'">
-                      <div class="eldesign classtable" style="margin-top: 10px;">
-                   <el-table :data="lailiutable"  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 class="eldesign  classtable dlheight" style="margin-top: 10px;"  v-show="currentTab1=='2'">
-                  <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-select v-model="ad1" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in adlist1" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="控制方程:" :label-width="formLabelWidth1">
-                  <el-select v-model="ad2" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in adlist2" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="升力定义方向:" :label-width="formLabelWidth1">
-                  <el-select v-model="ad3" :suffix-icon="CaretBottom" placeholder="请选择">
-                    <el-option v-for="item in adlist3" :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.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">
-                  <div style="display: flex;">
-                <el-input style="margin-right: 10px;" v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
-                <el-input style="margin-right: 10px;" v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
-                <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
-              </div>
-              </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">
-                  <div style="width: 50%;">
-                  <el-checkbox v-model="checked1" label="密度残差resrho" size="large" />
-                  <el-checkbox v-model="checked1" label="升力系数cl" size="large" />
-                </div>
-                <div style="width: 50%;">
-                  <el-checkbox v-model="checked1" label="升力系数cl" size="large" />
-                  <el-checkbox v-model="checked1" label="升力系数cl" size="large" />
-                </div>
-                </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>
-                </div>
-                    <!-- 分析参数 v-show="currentTab=='0'"-->
-                    <div  v-show="currentTab1=='3'">
-                      <div class="eldesign classtable" style="margin-top: 10px;">
-                   <el-table :data="lailiutable"  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> 
+          <el-input
+            v-model="youhua.popsize"
+            :step="100"
+            :min="0"
+            :max="1000"
+            controls-position="right"
+          />
+        </el-form-item>
+        <el-button type="primary" style="margin-left: 10px">选择路径</el-button>
+      </div>
+    </div>
+    <!-- 来流参数 v-show="currentTab=='0'"-->
+    <div v-show="currentTab1 == '1'">
+      <div class="eldesign classtable" style="margin-top: 10px">
+        <el-table :data="lailiutable" 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
+      class="eldesign classtable dlheight"
+      style="margin-top: 10px"
+      v-show="currentTab1 == '2'"
+    >
+      <el-form-item label="工况条件:" :label-width="formLabelWidth1">
+        <el-select
+          v-model="youhua.algorithm"
+          :suffix-icon="CaretBottom"
+          placeholder="请选择"
+        >
+          <el-option
+            v-for="item in wclist"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="计算维数:" :label-width="formLabelWidth1">
+        <el-select
+          v-model="ad1"
+          :suffix-icon="CaretBottom"
+          placeholder="请选择"
+        >
+          <el-option
+            v-for="item in adlist1"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="控制方程:" :label-width="formLabelWidth1">
+        <el-select
+          v-model="ad2"
+          :suffix-icon="CaretBottom"
+          placeholder="请选择"
+        >
+          <el-option
+            v-for="item in adlist2"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="升力定义方向:" :label-width="formLabelWidth1">
+        <el-select
+          v-model="ad3"
+          :suffix-icon="CaretBottom"
+          placeholder="请选择"
+        >
+          <el-option
+            v-for="item in adlist3"
+            :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.popsize"
+          :step="1"
+          :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">
+        <div style="display: flex">
+          <el-input
+            style="margin-right: 10px"
+            v-model="youhua.popsize"
+            :step="100"
+            :min="0"
+            :max="1000"
+            controls-position="right"
+          />
+          <el-input
+            style="margin-right: 10px"
+            v-model="youhua.popsize"
+            :step="100"
+            :min="0"
+            :max="1000"
+            controls-position="right"
+          />
+          <el-input
+            v-model="youhua.popsize"
+            :step="100"
+            :min="0"
+            :max="1000"
+            controls-position="right"
+          />
+        </div>
+      </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-row>
+        <el-col :span="12">
+          <el-checkbox v-model="checked2" label="升力系数Cl" size="large" />
+          <el-checkbox v-model="checked1" label="密度残差Resrho" size="large" />
+      
+        </el-col>
+        <el-col :span="12">
+          <el-checkbox v-model="checked3" label="阻力系数Cd" size="large" />
+          <el-checkbox v-model="checked4" label="力矩系数Cm" size="large" />
+        </el-col>
+      </el-row>
+      </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-radio-group v-model="radiow">
+            <el-radio :value="1" :label="1">是</el-radio>
+            <el-radio :value="2" :label="2">否</el-radio>
+          </el-radio-group>  
+      </el-form-item>
+      <el-form-item label="出切面信息:" :label-width="formLabelWidth1">
+          <el-radio-group v-model="radioq">
+            <el-radio :value="1" :label="1">是</el-radio>
+            <el-radio :value="2" :label="2">否</el-radio>
+          </el-radio-group>  
+      </el-form-item>
+    </div>
+    <!-- 分析参数 v-show="currentTab=='0'"-->
+    <div v-show="currentTab1 == '3'">
+      <div class="eldesign classtable" style="margin-top: 10px">
+        <el-table :data="lailiutable" 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>
 </template>
 <script  setup>
-import { ref, onMounted, reactive, provide, nextTick } from "vue";
-import { ElMessage, ElButton, ElDialog, ElSelect } from 'element-plus'
-import { Edit, CaretBottom } from '@element-plus/icons-vue'
-let formLabelWidth3=ref(100)
-let formLabelWidth1=ref(170)
-let formLabelWidth200=ref(200)
-let currentTab1=ref(0);
-let checked1=ref(false);
-let ad2=ref('RANS')
+import { ref, onMounted, reactive, provide, nextTick } from "vue"
+import { ElMessage, ElButton, ElDialog, ElSelect } from "element-plus"
+import { Edit, CaretBottom } from "@element-plus/icons-vue"
+let formLabelWidth3 = ref(100)
+let formLabelWidth1 = ref(170)
+let formLabelWidth200 = ref(200)
+let currentTab1 = ref(0)
+let checked1 = ref(false)
+let checked2 = ref(false)
+let checked3 = ref(false)
+let checked4 = ref(false)
+let radiow = ref(2)
+let radioq = ref(1)
+let ad2 = ref("RANS")
 let adlist2 = ref([
-  { label: 'RANS', value: 'RANS' },
-  { label: 'Euler', value: 'Euler' },
+  { label: "RANS", value: "RANS" }
 ])
-let ad1=ref('二维')
+let ad1 = ref("二维")
 let adlist1 = ref([
-  { label: '二维', value: '二维' },
-  { label: '三维', value: '三维' },
+  { label: "二维", value: "二维" },
+  { label: "三维", value: "三维" }
 ])
-let ad3=ref('x')
+let ad3 = ref("z")
 let adlist3 = ref([
-  { label: 'x', value: 'x' },
-  { label: 'y', value: 'y' },
-  { label: 'z', value: 'z' },
+  { label: "x", value: "x" },
+  { label: "y", value: "y" },
+  { label: "z", value: "z" }
 ])
-let lailiutable=ref([
-{
-     data: 1,
-    name: 'Aleyna Kutzner',
-    con:-1
+let lailiutable = ref([
+  {
+    data: 0.0,
+    name: "升力系数Cl",
+    con: 1
+  },
+  {
+    data: 0.0,
+    name: "阻力系数Cd",
+    con: 1
+  },
+  {
+    data: 0.0,
+    name: "力矩系数Cm",
+    con: 1
   },
   {
-    data: 23,
-    name: 'Helen Jacobi',
-    con:1
-  }])
+    data: 0.0,
+    name: "体积",
+    con: 1
+  }
+])
 let youhua = ref({
-algorithm: 'GA',
-popsize: 100,
-epoch: 100,
-probcrossover: 0.1,
-probmut: 0.1,
-proboperator: 'SBX交叉',
-probscale: 1,
-strategy: '最佳保留策略',
-operator: '倒位变异',
-gpu: 'YES'
+  algorithm: "GA",
+  popsize: 100,
+  epoch: 100,
+  probcrossover: 0.1,
+  probmut: 0.1,
+  proboperator: "SBX交叉",
+  probscale: 1,
+  strategy: "最佳保留策略",
+  operator: "倒位变异",
+  gpu: "YES"
 })
-let yslist = ref([
-  { label: 'GA', value: 'GA' },
-  { label: 'PSO', value: 'PSO' },
-  { label: 'NSGA2', value: 'NSGA2' },
+let wclist = ref([
+  { label: "巡航工况", value: "巡航工况" }
 ])
 let tabslist1 = ref([
-  { id: '0', name: '网格文件' },
-  { id: '1', name: '来流参数' },
-  { id: '2', name: '设置参数' },
-  { id: '3', name: '分析参数' },
-
+  { id: "0", name: "网格文件" },
+  { id: "1", name: "来流参数" },
+  { id: "2", name: "设置参数" },
+  { id: "3", name: "分析参数" }
 ])
-const selectTab1=(index)=>{
-  currentTab1.value = index;
+const selectTab1 = (index) => {
+  currentTab1.value = index
 }
 </script>
 

+ 192 - 140
src/views/titlecomponent/Xfoil.vue

@@ -1,158 +1,210 @@
 <template>
-     <div class="XFpdding" >
-                    <ul>
-                      <li class="item"   v-for="(tab, index) in tabslist" :key="index" :class="{ active: currentTab === index }"
-                     @click="selectTab(index)">{{tab.name  }}</li>
-                    </ul>
-                    <!-- 来流参数 v-show="currentTab=='0'"-->
-                    <div  v-show="currentTab=='0'">
-                      <div class="eldesign classtable" style="margin-top: 10px;">
-                   <el-table :data="lailiutable"  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>
-                      <!-- 设置参数 v-show="currentTab=='2'"-->
-                      <div  v-show="currentTab=='1'">
-                        <div class="eldesign classtable" style="margin-top: 10px;" >
-                        <el-form-item label="计算完成:"  :label-width="formLabelWidth1">
-                        <el-radio-group v-model="resource">
-                          <el-radio label="0">是</el-radio>
-                          <el-radio label="1">否</el-radio>
-                        </el-radio-group> 
-                    
-                      </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>
-                        <div class="cheinput">
-                        <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-checkbox v-model="checked1" size="large" />
-                      </div>
-                      <div class="cheinput">
-                         <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-checkbox v-model="checked1" size="large" />
-                      </div>
-                      <div class="cheinput">
-                        <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-checkbox v-model="checked1" size="large" />
-                      </div>
-                      </div>
-                      </div>
-                     <!-- 分析参数 v-show="currentTab=='2'"-->
-                    <div  v-show="currentTab=='2'">
-                      <div class="eldesign classtable" style="margin-top: 10px;">
-                   <el-table :data="fenxtable"  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"  @change="changecheck($event,scope.row)"/>
-                    </template>
-                  </el-table-column> 
-              
-                </el-table>
-              </div>
-                    </div>
-                </div>
+  <div class="XFpdding">
+    <ul>
+      <li
+        class="item"
+        v-for="(tab, index) in tabslist"
+        :key="index"
+        :class="{ active: currentTab === index }"
+        @click="selectTab(index)"
+      >
+        {{ tab.name }}
+      </li>
+    </ul>
+    <!-- 输入参数 -->
+    <div v-show="currentTab == '0'">
+      <div class="eldesign classtable" style="margin-top: 10px">
+        <el-table :data="lailiutable" 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 v-show="currentTab == '1'">
+      <div class="eldesign classtable" style="margin-top: 10px">
+        <el-table :data="fenxtable" 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"
+                @change="changecheck($event, scope.row)"
+              />
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
+    <!-- 中间参数 -->
+    <div v-show="currentTab == '2'">
+      <div class="eldesign classtable" style="margin-top: 10px">
+        <el-form-item label="计算完成:" :label-width="formLabelWidth1">
+          <el-radio-group v-model="resource">
+            <el-radio label="0">是</el-radio>
+            <el-radio label="1">否</el-radio>
+          </el-radio-group>
+        </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-form-item>
+        <div class="cheinput">
+          <el-form-item label="压力分布:" :label-width="formLabelWidth2">
+            <el-input
+              v-model="youhua.popsize"
+              :step="100"
+              :min="0"
+              :max="1000"
+              controls-position="right"
+            />
+          </el-form-item>
+          <el-checkbox v-model="checked1"  style="width:40px;height:40px" />
+        </div>
+        <div class="cheinput">
+          <el-form-item label="翼型坐标:" :label-width="formLabelWidth2">
+            <el-input
+              v-model="youhua.popsize"
+              :step="100"
+              :min="0"
+              :max="1000"
+              controls-position="right"
+            />
+          </el-form-item>
+          <el-checkbox v-model="checked1" style="width:40px;height:40px" />
+        </div>
+        <div class="cheinput">
+          <el-form-item label="力和力矩:" :label-width="formLabelWidth2">
+            <el-input
+              v-model="youhua.popsize"
+              :step="100"
+              :min="0"
+              :max="1000"
+              controls-position="right"
+            />
+          </el-form-item>
+          <el-checkbox v-model="checked1"  style="width:40px;height:40px" />
+        </div>
+      </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'
-let formLabelWidth3=ref(100)
-let formLabelWidth1=ref(170)
-let formLabelWidth200=ref(200)
-let currentTab=ref(0);
-let checked1=ref(false)
-let resource=ref(0);
+import { ref, onMounted, reactive, provide, nextTick } from "vue"
+import { ElMessage, ElButton, ElDialog, ElSelect } from "element-plus"
+import { Edit, CaretBottom } from "@element-plus/icons-vue"
+let formLabelWidth3 = ref(100)
+let formLabelWidth1 = ref(170)
+let formLabelWidth2 = ref(250)
+let currentTab = ref(0)
+let checked1 = ref(false)
+let resource = ref(0)
 let youhua = ref({
-algorithm: 'GA',
-popsize: 100,
-epoch: 100,
-probcrossover: 0.1,
-probmut: 0.1,
-proboperator: 'SBX交叉',
-probscale: 1,
-strategy: '最佳保留策略',
-operator: '倒位变异',
-gpu: 'YES'
+  algorithm: "GA",
+  popsize: 100,
+  epoch: 100,
+  probcrossover: 0.1,
+  probmut: 0.1,
+  proboperator: "SBX交叉",
+  probscale: 1,
+  strategy: "最佳保留策略",
+  operator: "倒位变异",
+  gpu: "YES"
 })
 let tabslist = ref([
-  { id: '0', name: '来流参数' },
-  { id: '1', name: '设置参数' },
-  { id: '2', name: '分析参数' },
+  { id: "0", name: "输入参数" },
+  { id: "1", name: "输出参数" },
+  { id: "2", name: "中间参数" }
 ])
 
-let currentTab2=ref(0);
-let tabslist2= ref([
-  { id: '0', name: '网格文件' },
-  { id: '1', name: '设置参数' },
-  { id: '2', name: '结构参数' },
-  { id: '3', name: '分析参数' },
 
-])
-let lailiutable=ref([
-{
-     data: 1,
-    name: 'Aleyna Kutzner',
-    con:-1
+let lailiutable = ref([
+  {
+    data: 1,
+    name: "AoA",
+    con: -1
   },
   {
     data: 23,
-    name: 'Helen Jacobi',
-    con:1
-  }])
-  let fenxtable=ref([
-{
-    date: '2016-05-04',
-    name: '升力系数Cl',
-    con:-1
+    name: "Me",
+    con: 1
+  }
+])
+let fenxtable = ref([
+  {
+    date: "2016-05-04",
+    name: "升力系数Cl",
+    con: -1
   },
   {
-    date: '2016-05-03',
-    name: '上表面转换点位置xtr-upper',
-    con:1
-  }])
-  // 选项卡
-const selectTab=(index)=>{
-  currentTab.value = index;
+    date: "2016-05-03",
+    name: "上表面转换点位置xtr-upper",
+    con: 1
+  }
+])
+// 选项卡
+const selectTab = (index) => {
+  currentTab.value = index
+}
+
+// 新建表格行
+const addRow = () => {
+  lailiutable.value.push({
+    data: 0,
+    name: "",
+    con: -1
+  })
 }
+
 </script>
 
 

+ 139 - 100
src/views/titlecomponent/csts.vue

@@ -1,113 +1,152 @@
 <template>
-        <div class="XFpdding">
-                  <div class="numberinput lefttext ">
-              <el-form>
-                <div>
-                <el-form-item label="CST阶数:" :label-width="formLabelWidth200">
-                  <el-input v-model="cstnum" :max="20" controls-position="right" @blur='clickblur'/>
-                </el-form-item>
-              </div>
-                <div style="display: flex;">
-                <div class="cstleft ">
-                <el-form-item label="上表面类函数参数:" :label-width="formLabelWidth200">
-                  <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right">
-                    <template  #prefix>N1</template>
-                </el-input>
-                </el-form-item>
-                <el-form-item label="下表面类函数参数:" :label-width="formLabelWidth200">
-                  <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" >
-                  <template  #prefix>N1</template>
-                </el-input>
-                </el-form-item>
-              </div>
-              <div class="cstleft " style="margin-left: 20px;">
-                <el-form-item label="上表面类函数参数:" :label-width="formLabelWidth200">
-                  <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right">
-                    <template  #prefix>N2</template>
-                </el-input>
-                </el-form-item>
-                <el-form-item label="下表面类函数参数:" :label-width="formLabelWidth200">
-                  <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right">
-                    <template  #prefix>N2</template>
-                </el-input>
-                </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="(item,index) in tablecstHeaders" :key="index"
-                :prop="item.prop"
-                :label="item.label">
-                  <template #default="{ row }"> 
-                      <el-input v-model="row[item.prop]"  @change="handleEdit(row)"/>
-                    </template>
-              </el-table-column>
+  <div class="XFpdding">
+    <div class="numberinput lefttext">
+      <el-form>
+        <div>
+          <el-form-item label="CST阶数:" :label-width="formLabelWidth200">
+            <el-input-number
+              v-model="cstnum"
+              :step="1"
+              :min="0"
+              :max="20"
+              controls-position="right"
+              @change="clickblur"
+            />
+          </el-form-item>
+        </div>
+        <div style="display: flex">
+          <div class="cstleft">
+            <el-form-item
+              label="上表面类函数参数:"
+              :label-width="formLabelWidth200"
+            >
+              <el-input
+                v-model="youhua.popsize"
+                :step="100"
+                :min="0"
+                :max="1000"
+                controls-position="right"
+              >
+                <template #prefix>N1</template>
+              </el-input>
+            </el-form-item>
+            <el-form-item
+              label="下表面类函数参数:"
+              :label-width="formLabelWidth200"
+            >
+              <el-input
+                v-model="youhua.popsize"
+                :step="100"
+                :min="0"
+                :max="1000"
+                controls-position="right"
+              >
+                <template #prefix>N1</template>
+              </el-input>
+            </el-form-item>
+          </div>
+          <div class="cstleft" style="margin-left: 20px">
+            <el-form-item
+              label="上表面类函数参数:"
+              :label-width="formLabelWidth200"
+            >
+              <el-input
+                v-model="youhua.popsize"
+                :step="100"
+                :min="0"
+                :max="1000"
+                controls-position="right"
+              >
+                <template #prefix>N2</template>
+              </el-input>
+            </el-form-item>
+            <el-form-item
+              label="下表面类函数参数:"
+              :label-width="formLabelWidth200"
+            >
+              <el-input
+                v-model="youhua.popsize"
+                :step="100"
+                :min="0"
+                :max="1000"
+                controls-position="right"
+              >
+                <template #prefix>N2</template>
+              </el-input>
+            </el-form-item>
+          </div>
+        </div>
+        <div class="classtable">
+          <el-table :data="tableDatacst" style="width: 100%" border="true">
+            <el-table-column prop="date" label="表格" width="180" />
+            <el-table-column
+              v-for="(item, index) in tablecstHeaders"
+              :key="index"
+              :prop="item.prop"
+              :label="item.label"
+            >
+              <template #default="{ row }">
+                <el-input v-model="row[item.prop]" @change="handleEdit(row)" />
+              </template>
+            </el-table-column>
           </el-table>
         </div>
-              </el-form>
-            </div>
-                </div>
-  </template>
+      </el-form>
+    </div>
+  </div>
+</template>
 <script  setup>
-import { ref, onMounted, reactive, provide, nextTick } from "vue";
+import { ref, onMounted, reactive, provide, nextTick } from "vue"
 import { RouterView, RouterLink, useRouter, useRoute } from "vue-router"
 import myheader from "@/components/header.vue"
-import { request, uploadFile } from "@/utils/request";
-import { ElMessage, ElButton, ElDialog, ElSelect } from 'element-plus'
-import { Edit, CaretBottom } from '@element-plus/icons-vue'
-let formLabelWidth3=ref(100)
-let formLabelWidth200=ref(200)
-let cstnum=ref('');
+import { request, uploadFile } from "@/utils/request"
+import { ElMessage, ElButton, ElDialog, ElSelect } from "element-plus"
+import { Edit, CaretBottom } from "@element-plus/icons-vue"
+let formLabelWidth3 = ref(100)
+let formLabelWidth200 = ref(200)
+let cstnum = ref("")
 let youhua = ref({
-algorithm: 'GA',
-popsize:1,
-epoch: 100,
-probcrossover: 0.1,
-probmut: 0.1,
-proboperator: 'SBX交叉',
-probscale: 1,
-strategy: '最佳保留策略',
-operator: '倒位变异',
-gpu: 'YES'
+  algorithm: "GA",
+  popsize: 1,
+  epoch: 100,
+  probcrossover: 0.1,
+  probmut: 0.1,
+  proboperator: "SBX交叉",
+  probscale: 1,
+  strategy: "最佳保留策略",
+  operator: "倒位变异",
+  gpu: "YES"
 })
-let tableDatacst=ref([
-  {date:"上表面CST参数"},{date:"下表面CST参数"}
-])
-let tablecstHeaders=ref([]);
+let tableDatacst = ref([{ date: "上表面CST参数" }, { date: "下表面CST参数" }])
+let tablecstHeaders = ref([])
 // cst时间
-const clickblur=()=>{
+const clickblur = () => {
   //cstnum.value='';
-  tablecstHeaders.value=[];
-  let arrheader=[];
-  let tablearr=[];
-  let num=Number(cstnum.value);
-if(num==0||num==undefined||num==null){
-
-}else{
-
-
-for(let i=1;i<=num+1;i++){
-  arrheader.push('x'+i)
-}
-arrheader.forEach(function (item,index){
-
-let name="x"+Number(index+1);
-let obj ={ label: item,prop:name };
-console.log(obj);
-tablecstHeaders.value.push(obj);
-});
-tableDatacst.value.forEach(function (item){
-  for(let j=1;j<=num+1;j++){
-let name=('x'+j);
-item['x' + j]=null;
-}
-tablearr.push(item);
-});
-tableDatacst.value=tablearr;
-console.log(tableDatacst.value);
-}
+  tablecstHeaders.value = []
+  let arrheader = []
+  let tablearr = []
+  let num = Number(cstnum.value)
+  if (num == 0 || num == undefined || num == null) {
+  } else {
+    for (let i = 1; i <= num + 1; i++) {
+      arrheader.push("x" + i)
+    }
+    arrheader.forEach(function (item, index) {
+      let name = "x" + Number(index + 1)
+      let obj = { label: item, prop: name }
+      console.log(obj)
+      tablecstHeaders.value.push(obj)
+    })
+    tableDatacst.value.forEach(function (item) {
+      for (let j = 1; j <= num + 1; j++) {
+        let name = "x" + j
+        item["x" + j] = null
+      }
+      tablearr.push(item)
+    })
+    tableDatacst.value = tablearr
+    console.log(tableDatacst.value)
+  }
 }
 </script>
 

+ 130 - 64
src/views/titlecomponent/ffds.vue

@@ -1,75 +1,141 @@
 <template>
   <div class="XFpdding">
-                  <div>
-                <el-form-item label="FFD box:" :label-width="formLabelWidth1">
-                  <el-input v-model="cstnum" :max="20" controls-position="right" @keydown.enter='keydownenter'/>
-                  
-                </el-form-item>
-                <el-form-item label="参考坐标系:" :label-width="formLabelWidth1">
-                  <el-radio-group v-model="radio1">
-                  <el-radio :value="0" :label="0">x-y-z</el-radio>
-                  <el-radio :value="1" :label="1">x-z-y</el-radio>
-                  <el-radio :value="2" :label="2">y-x-z</el-radio>
-                  <el-radio :value="3" :label="3">y-z-x</el-radio>
-                  <el-radio :value="4" :label="4">z-x-y</el-radio>
-                  <el-radio :value="5" :label="5">z-y-x</el-radio>
-                </el-radio-group>
-                </el-form-item>
-              </div>
-              <el-form-item label="控制点数:"  :label-width="formLabelWidth1">
-                  <div style="display: flex;">
-                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
-                  <!-- <template #prepend>X方向</template> -->
-                  <template  #prefix>X方向</template>
-                </el-input>
-                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
-                  <template  #prefix>Y方向</template>
-                </el-input>
-                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
-                 <template  #prefix>Z方向</template>
-                </el-input>
-                <el-button >应用</el-button>
-              </div>
-              </el-form-item>
-              <div class="classtable">
-            <el-table :data="tableDatacst1" style="width: 100%" border>
-              <el-table-column prop="表格" label="表格" width="180" />
-              <el-table-column
-                v-for="(item,index) in tablecstHeaders" :key="index"
-                :prop="item.prop"
-                :label="item.label">
-                  <template #default="{ row }"> 
-                      <el-input v-model="row[item.prop]"  @change="handleEdit(row)"/>
-                    </template>
-              </el-table-column>
-          </el-table>
-        </div>
-              </div>
+    <div>
+      <el-form-item label="FFD box:" :label-width="formLabelWidth1">
+        <el-input
+          v-model="cstnum"
+          :max="20"
+          controls-position="right"
+          @keydown.enter="keydownenter"
+        />
+      </el-form-item>
+      <el-form-item label="参考坐标系:" :label-width="formLabelWidth1">
+        <el-radio-group v-model="radio1">
+          <el-radio :value="0" :label="0">x-y-z</el-radio>
+          <el-radio :value="1" :label="1">x-z-y</el-radio>
+          <el-radio :value="2" :label="2">y-x-z</el-radio>
+          <el-radio :value="3" :label="3">y-z-x</el-radio>
+          <el-radio :value="4" :label="4">z-x-y</el-radio>
+          <el-radio :value="5" :label="5">z-y-x</el-radio>
+        </el-radio-group>
+      </el-form-item>
+    </div>
+    <el-form-item label="控制点数:" :label-width="formLabelWidth1">
+      <div style="display: flex">
+        <el-input type="text" style="margin-right: 10px" v-model="cstnumX">
+          <!-- <template #prepend>X方向</template> -->
+          <template #prefix>X方向</template>
+        </el-input>
+        <el-input type="text" style="margin-right: 10px" v-model="cstnumY">
+          <template #prefix>Y方向</template>
+        </el-input>
+        <el-input type="text" style="margin-right: 10px" v-model="cstnumZ">
+          <template #prefix>Z方向</template>
+        </el-input>
+        <el-button @click="generateTable">应用</el-button>
+      </div>
+    </el-form-item>
+    <div class="classtable">
+      <el-table :data="tableDatacst1" style="width: 100%" border>
+        <el-table-column prop="表格" label="表格" width="180" />
+        <el-table-column
+          v-for="(item, index) in tablecstHeaders"
+          :key="index"
+          :prop="item.prop"
+          :label="item.label"
+        >
+          <template #default="{ row }">
+            <el-input v-model="row[item.prop]" @change="handleEdit(row)" />
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+  </div>
 </template>
 <script  setup>
-import { ref, onMounted, reactive, provide, nextTick } from "vue";
+import { ref, onMounted, reactive, provide, nextTick } from "vue"
 import { RouterView, RouterLink, useRouter, useRoute } from "vue-router"
 import myheader from "@/components/header.vue"
-import { request, uploadFile } from "@/utils/request";
-import { ElMessage, ElButton, ElDialog, ElSelect } from 'element-plus'
-import { Edit, CaretBottom } from '@element-plus/icons-vue'
-let formLabelWidth3=ref(100)
-let formLabelWidth200=ref(200)
-let cstnum=ref('');
+import { request, uploadFile } from "@/utils/request"
+import { ElMessage, ElButton, ElDialog, ElSelect } from "element-plus"
+import { Edit, CaretBottom } from "@element-plus/icons-vue"
+let formLabelWidth3 = ref(100)
+let formLabelWidth200 = ref(200)
+let cstnum = ref("")
+let cstnumX = ref()
+let cstnumY = ref()
+let cstnumZ = ref()
 let youhua = ref({
-algorithm: 'GA',
-popsize:1,
-epoch: 100,
-probcrossover: 0.1,
-probmut: 0.1,
-proboperator: 'SBX交叉',
-probscale: 1,
-strategy: '最佳保留策略',
-operator: '倒位变异',
-gpu: 'YES'
+  algorithm: "GA",
+  popsize: 1,
+  epoch: 100,
+  probcrossover: 0.1,
+  probmut: 0.1,
+  proboperator: "SBX交叉",
+  probscale: 1,
+  strategy: "最佳保留策略",
+  operator: "倒位变异",
+  gpu: "YES"
 })
-let radio1=ref(0);
-let tableDatacst1=ref([])
+let radio1 = ref(0)
+let tableDatacst1 = ref([])
+let tablecstHeaders = ref([]) // 表格列头
+
+const generateTable = () => {
+  console.log("generateTable");
+
+  // 获取X, Y, Z方向的数值
+  const xCount = Number(cstnumX.value);
+  const yCount = Number(cstnumY.value);
+  const zCount = Number(cstnumZ.value);
+
+  // 根据选中的参考坐标系来确定列名和行名
+  let columns = [];
+  let rows = [];
+
+  switch (radio1.value) {
+    case 0: // x-y-z
+      columns = Array.from({ length: xCount }, (_, i) => ({ label: `x${i + 1}`, prop: `x${i + 1}` }));
+      rows = Array.from({ length: yCount }, (_, i) => ({ label: `y${i + 1}`, prop: `y${i + 1}` }));
+      break;
+    case 1: // x-z-y
+      columns = Array.from({ length: xCount }, (_, i) => ({ label: `x${i + 1}`, prop: `x${i + 1}` }));
+      rows = Array.from({ length: zCount }, (_, i) => ({ label: `z${i + 1}`, prop: `z${i + 1}` }));
+      break;
+    case 2: // y-x-z
+      columns = Array.from({ length: yCount }, (_, i) => ({ label: `y${i + 1}`, prop: `y${i + 1}` }));
+      rows = Array.from({ length: xCount }, (_, i) => ({ label: `x${i + 1}`, prop: `x${i + 1}` }));
+      break;
+    case 3: // y-z-x
+      columns = Array.from({ length: yCount }, (_, i) => ({ label: `y${i + 1}`, prop: `y${i + 1}` }));
+      rows = Array.from({ length: zCount }, (_, i) => ({ label: `z${i + 1}`, prop: `z${i + 1}` }));
+      break;
+    case 4: // z-x-y
+      columns = Array.from({ length: zCount }, (_, i) => ({ label: `z${i + 1}`, prop: `z${i + 1}` }));
+      rows = Array.from({ length: xCount }, (_, i) => ({ label: `x${i + 1}`, prop: `x${i + 1}` }));
+      break;
+    case 5: // z-y-x
+      columns = Array.from({ length: zCount }, (_, i) => ({ label: `z${i + 1}`, prop: `z${i + 1}` }));
+      rows = Array.from({ length: yCount }, (_, i) => ({ label: `y${i + 1}`, prop: `y${i + 1}` }));
+      break;
+    default:
+      break;
+  }
+
+  // 更新表格列头
+  tablecstHeaders.value = columns;
+
+  // 生成表格的数据行
+  tableDatacst1.value = [];
+  for (let i = 1; i <= rows.length; i++) {
+    let row = { 表格: rows[i - 1].label };
+    columns.forEach((column) => {
+      row[column.prop] = null; // 每个单元格初始化为空
+    });
+    tableDatacst1.value.push(row);
+  }
+};
+
 </script>