tangjunhao преди 5 месеца
родител
ревизия
74ad1c0fd8
променени са 2 файла, в които са добавени 173 реда и са изтрити 144 реда
  1. 172 143
      src/views/titlecomponent/ffds.vue
  2. 1 1
      src/views/vuetree/index.vue

+ 172 - 143
src/views/titlecomponent/ffds.vue

@@ -6,7 +6,6 @@
           v-model="ffdvalue.fname"
           :max="20"
           controls-position="right"
-          @keydown.enter="keydownenter"
         >
           <template #append>
             <fileUploads
@@ -61,36 +60,29 @@
       </el-row>
     </el-form-item>
     
-    <div style="height: 260px; overflow: hidden;">
-      <cloudChart :data="xyzData" />
-    </div>
-
     <div class="classtable" style="margin-top: 20px;">
       <el-table
         :data="tableDatacst1"
-        style="width: 100%;"
+        style="width: 100%;margin-bottom: 20px;"
         border
-        max-height="400"
+        
         :header-cell-class-name="headerCellClassName"
       >
-        <el-table-column type="index" label="" width="60" />
-        <el-table-column prop="x" label="X">
-          <template #default="{ row }">
-            <el-input v-model="row.x" />
-          </template>
-        </el-table-column>
-        <el-table-column prop="y" label="Y">
-          <template #default="{ row }">
-            <el-input v-model="row.y" />
-          </template>
-        </el-table-column>
-        <el-table-column prop="z" label="Z">
-          <template #default="{ row }">
-            <el-input v-model="row.z" />
+        <el-table-column prop="rowname" label="" width="100" />
+        <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 style="height: 260px; overflow: hidden;">
+      <cloudChart :data="xyzData" />
+    </div>
   </div>
 </template>
 <script  setup>
@@ -118,8 +110,10 @@ let ffdvalue = ref({
 let order = ref(1)
 let vars = ref()
 let tableDatacst1 = ref([
-  {x: 0, y: -3.1, z: -23.5},
-  {x: 10.00333333, y: -3.1, z: -23.5},
+  { rowname: 'Y1Z1', X1: null, X2: null, X3: null, X4: null, X5: null, X6: null, X7: null, X8: null, X9: null },
+  { rowname: 'Y1Z2', X1: null, X2: null, X3: null, X4: null, X5: null, X6: null, X7: null, X8: null, X9: null },
+  { rowname: 'Y2Z1', X1: null, X2: null, X3: null, X4: null, X5: null, X6: null, X7: null, X8: null, X9: null },
+  { rowname: 'Y2Z2', X1: null, X2: null, X3: null, X4: null, X5: null, X6: null, X7: null, X8: null, X9: null }
 ])
 let tablecstHeaders = ref([
   { prop: "X1", label: "X1" },
@@ -143,133 +137,168 @@ const headerCellClassName = ({ columnIndex }) => {
   return ""
 }
 
-// const generateTable = () => {
-//   console.log("generateTable")
-
-//   // 获取X, Y, Z方向的数值
-//   const xCount = Number(ffdvalue.value.nx)
-//   const yCount = Number(ffdvalue.value.ny)
-//   const zCount = Number(ffdvalue.value.nz)
-
-//   // 根据选中的参考坐标系来确定列名和行名
-//   let columns = []
-//   let rows = []
-
-//   switch (order.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 = { axis: rows[i - 1].label }
-//     columns.forEach((column) => {
-//       row[column.prop] = null // 每个单元格初始化为空
+// for (let i = 0; i < yCount; i++) {
+//   for(let j = 0; j< zCount; j++) {
+//     rows.push({
+//     label: `Y${i + 1}Z${j + 1}`,
+//     prop: `Y${i + 1}Z${j + 1}`
 //     })
-//     tableDatacst1.value.push(row)
 //   }
 // }
 
 const generateTable = () => {
+  console.log("generateTable")
+
   // 获取 X, Y, Z 方向的数值
-  const xCount = Number(ffdvalue.value.nx);
-  const yCount = Number(ffdvalue.value.ny);
-  const zCount = Number(ffdvalue.value.nz);
-
-  // 计算总行数
-  const rowCount = xCount * yCount * zCount;
-
-  // 确定最大维度
-  const maxCount = Math.max(xCount, yCount, zCount);
-  let maxAxis = "x";
-  if (yCount === maxCount) maxAxis = "y";
-  if (zCount === maxCount) maxAxis = "z";
-
-  // 清空表格数据
-  tableDatacst1.value = [];
-
-  // 循环填充数据
-  for (let i = 0; i < rowCount; i++) {
-    // 计算 x, y, z 的索引
-    const xIndex = i + 1;
-    const yIndex = i + 1;
-    const zIndex = i + 1;
-
-    // 构造 row 数据
-    const row = {
-      x: maxAxis === "x" ? xIndex : i < xCount ? xIndex : "/",
-      y: maxAxis === "y" ? yIndex : i < yCount ? yIndex : "/",
-      z: maxAxis === "z" ? zIndex : i < zCount ? zIndex : "/",
-    };
-
-    // 追加到 table 数据中
-    tableDatacst1.value.push(row);
+  const xCount = Number(ffdvalue.value.nx)
+  const yCount = Number(ffdvalue.value.ny)
+  const zCount = Number(ffdvalue.value.nz)
+  console.log("xCount", xCount, "yCount", yCount, "zCount", zCount)
+
+  // 定义表格的列和行
+  let columns = []
+  let rows = []
+
+  switch (order.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 * zCount }, (_, index) => {
+        const yIndex = Math.floor(index / zCount)
+        const zIndex = index % zCount
+        return {
+          label: `Y${yIndex + 1}Z${zIndex + 1}`,
+          prop: `Y${yIndex + 1}Z${zIndex + 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 * yCount }, (_, index) => {
+        const zIndex = Math.floor(index / yCount)
+        const yIndex = index % yCount
+        return {
+          label: `Z${zIndex + 1}Y${yIndex + 1}`,
+          prop: `Z${zIndex + 1}Y${yIndex + 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 * zCount }, (_, index) => {
+        const xIndex = Math.floor(index / zCount)
+        const zIndex = index % zCount
+        return {
+          label: `X${xIndex + 1}Z${zIndex + 1}`,
+          prop: `X${xIndex + 1}Z${zIndex + 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 * xCount }, (_, index) => {
+        const zIndex = Math.floor(index / xCount)
+        const xIndex = index % xCount
+        return {
+          label: `Z${zIndex + 1}X${xIndex + 1}`,
+          prop: `Z${zIndex + 1}X${xIndex + 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 * yCount }, (_, index) => {
+        const xIndex = Math.floor(index / yCount)
+        const yIndex = index % yCount
+        return {
+          label: `X${xIndex + 1}Y${yIndex + 1}`,
+          prop: `X${xIndex + 1}Y${yIndex + 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 * xCount }, (_, index) => {
+        const yIndex = Math.floor(index / xCount)
+        const xIndex = index % xCount
+        return {
+          label: `Y${yIndex + 1}X${xIndex + 1}`,
+          prop: `Y${yIndex + 1}X${xIndex + 1}`
+        }
+      })
+      break
+    default:
+      console.error('无效的 order 值:', order.value)
+      break
   }
-};
+
+  // 更新表格列头
+  tablecstHeaders.value = columns
+
+  // 生成表格的数据行
+  tableDatacst1.value = []
+  for (let i = 1; i <= rows.length; i++) {
+    let row = { rowname: rows[i - 1].label }
+    columns.forEach((column) => {
+      row[column.prop] = null // 每个单元格初始化为空
+    })
+    tableDatacst1.value.push(row)
+  }
+}
+
+// const generateTable = () => {
+//   // 获取 X, Y, Z 方向的数值
+//   const xCount = Number(ffdvalue.value.nx);
+//   const yCount = Number(ffdvalue.value.ny);
+//   const zCount = Number(ffdvalue.value.nz);
+
+//   // 计算总行数
+//   const rowCount = xCount * yCount * zCount;
+
+//   // 确定最大维度
+//   const maxCount = Math.max(xCount, yCount, zCount);
+//   let maxAxis = "x";
+//   if (yCount === maxCount) maxAxis = "y";
+//   if (zCount === maxCount) maxAxis = "z";
+
+//   // 清空表格数据
+//   tableDatacst1.value = [];
+
+//   // 循环填充数据
+//   for (let i = 0; i < rowCount; i++) {
+//     // 计算 x, y, z 的索引
+//     const xIndex = i + 1;
+//     const yIndex = i + 1;
+//     const zIndex = i + 1;
+
+//     // 构造 row 数据
+//     const row = {
+//       x: maxAxis === "x" ? xIndex : i < xCount ? xIndex : "/",
+//       y: maxAxis === "y" ? yIndex : i < yCount ? yIndex : "/",
+//       z: maxAxis === "z" ? zIndex : i < zCount ? zIndex : "/",
+//     };
+
+//     // 追加到 table 数据中
+//     tableDatacst1.value.push(row);
+//   }
+// };
 
 const handleFileUploadSuccess = (data) => {
   ffdvalue.value.fname = data.fname

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

@@ -492,7 +492,7 @@ function onNodeDoubleClick(e) {
     emit('optimizerfalse',{name:'梯度优化器',wid:nowid});
   }else if(e.node.data.name=="CST"){
     emit('optimizerfalse',{name:'CST',wid:nowid});
-  }else if(e.node.data.name=="ADflow"){
+  }else if(e.node.data.name=="ADflow"|| e.node.data.name=="RAE2822"){
     emit('optimizerfalse',{name:'ADflow',wid:nowid});
   }else if(e.node.data.name=="FFD"){
     emit('optimizerfalse',{name:'FFD',wid:nowid});