|
@@ -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
|