Files
pqs-9100_client/frontend/src/views/machine/testScript/components/testScriptHarmTab.vue

180 lines
7.7 KiB
Vue
Raw Normal View History

2024-12-30 14:43:13 +08:00
<template>
<div class="tabs-container">
2025-02-13 16:15:26 +08:00
<el-tabs type="border-card" class="right-tabs" style="height: 100%">
<el-tab-pane label="电压通道">
<!-- 电压通道内容 -->
<div class="table-container">
<el-table :data="tableData1" border size="small" class="half-width-table">
<el-table-column prop="date" align="center" label="次数" width="60" />
<el-table-column prop="date" align="center" label="谐波含有率" width="120">
2025-02-18 16:36:54 +08:00
<template #default="{ row, $index }">
2025-02-13 16:15:26 +08:00
<div class="input-label-container">
2025-02-19 16:54:54 +08:00
<el-input type="number" size="small" v-model="form[0].harmList[$index].famp" :disabled="!form[0].harmFlag"/>
2025-02-13 16:15:26 +08:00
<label>%</label>
</div>
</template>
</el-table-column>
<el-table-column prop="name" label="谐波相角" align="center" width="120">
2025-02-18 16:36:54 +08:00
<template #default="{ row, $index }">
2025-02-13 16:15:26 +08:00
<div class="input-label-container">
2025-02-19 16:54:54 +08:00
<el-input type="number" size="small" v-model="form[0].harmList[$index].fphase" :disabled="!form[0].harmFlag"/>
2025-02-13 16:15:26 +08:00
<label>°</label>
</div>
</template>
</el-table-column>
</el-table>
<el-table :data="tableData2" border size="small" class="half-width-table">
<el-table-column prop="date" label="次数" align="center" width="60" />
<el-table-column prop="date" label="谐波含有率" align="center" width="120">
2025-02-18 16:36:54 +08:00
<template #default="{ row, $index }">
2025-02-13 16:15:26 +08:00
<div class="input-label-container">
2025-02-19 16:54:54 +08:00
<el-input type="number" size="small" v-model="form[0].harmList[$index + 24].famp" :disabled="!form[0].harmFlag"/>
2025-02-13 16:15:26 +08:00
<label>%</label>
</div>
</template>
</el-table-column>
<el-table-column prop="name" label="谐波相角" align="center" width="120">
2025-02-18 16:36:54 +08:00
<template #default="{ row, $index }">
2025-02-13 16:15:26 +08:00
<div class="input-label-container">
2025-02-19 16:54:54 +08:00
<el-input type="number" size="small" v-model="form[0].harmList[$index+24].fphase" :disabled="!form[0].harmFlag"/>
2025-02-13 16:15:26 +08:00
<label>°</label>
</div>
</template>
</el-table-column>
</el-table>
2025-01-06 09:21:24 +08:00
</div>
2025-02-13 16:15:26 +08:00
</el-tab-pane>
</el-tabs>
<el-tabs type="border-card" style="height: 100%">
<el-tab-pane label="电流通道">
<!-- 电流通道内容 -->
<div class="table-container">
<el-table :data="tableData1" border size="small" class="half-width-table">
<el-table-column prop="date" label="次数" align="center" width="60" />
<el-table-column prop="date" label="谐波含有率" align="center" width="120">
2025-02-18 16:36:54 +08:00
<template #default="{ row, $index }">
2025-02-13 16:15:26 +08:00
<div class="input-label-container">
2025-02-19 16:54:54 +08:00
<el-input type="number" size="small" v-model="form[1].harmList[$index].famp" :disabled="!form[1].harmFlag"/>
2025-02-13 16:15:26 +08:00
<label>%</label>
</div>
</template>
</el-table-column>
<el-table-column prop="name" align="center" label="谐波相角" width="120">
2025-02-18 16:36:54 +08:00
<template #default="{ row, $index }">
2025-02-13 16:15:26 +08:00
<div class="input-label-container">
2025-02-19 16:54:54 +08:00
<el-input type="number" size="small" v-model="form[1].harmList[$index].fphase" :disabled="!form[1].harmFlag"/>
2025-02-13 16:15:26 +08:00
<label>°</label>
</div>
</template>
</el-table-column>
</el-table>
<el-table :data="tableData2" border size="small" class="half-width-table">
<el-table-column prop="date" label="次数" align="center" width="60" />
<el-table-column prop="date" label="谐波含有率" align="center" width="120">
2025-02-18 16:36:54 +08:00
<template #default="{ row, $index }">
2025-02-13 16:15:26 +08:00
<div class="input-label-container">
2025-02-19 16:54:54 +08:00
<el-input type="number" size="small" v-model="form[1].harmList[$index + 24].famp" :disabled="!form[1].harmFlag"/>
2025-02-13 16:15:26 +08:00
<label>%</label>
</div>
</template>
</el-table-column>
<el-table-column prop="name" label="谐波相角" align="center" width="120">
2025-02-18 16:36:54 +08:00
<template #default="{ row, $index }">
2025-02-13 16:15:26 +08:00
<div class="input-label-container">
2025-02-19 16:54:54 +08:00
<el-input type="number" size="small" v-model="form[1].harmList[$index+24].fphase" :disabled="!form[1].harmFlag"/>
2025-02-13 16:15:26 +08:00
<label>°</label>
</div>
</template>
</el-table-column>
</el-table>
2025-01-06 09:21:24 +08:00
</div>
2025-02-13 16:15:26 +08:00
</el-tab-pane>
</el-tabs>
2024-12-30 14:43:13 +08:00
</div>
2025-02-13 16:15:26 +08:00
</template>
2024-12-30 14:43:13 +08:00
<script setup lang="ts">
2025-02-13 16:15:26 +08:00
import { ref } from 'vue'
2025-02-18 16:36:54 +08:00
const props = defineProps({
childForm: {
type: Array,
required: true
}
})
const form:any = computed({
get() {
return props.childForm
},
set(value) {}
})
2024-12-30 14:43:13 +08:00
// 定义表格数据项的类型
interface TableItem {
2025-02-13 16:15:26 +08:00
date: string
harmonicRate?: string
harmonicPhase?: string
name?: string
2024-12-30 14:43:13 +08:00
}
// 定义并初始化 tableData
2025-02-13 16:15:26 +08:00
const tableData1 = ref<TableItem[]>([])
const tableData2 = ref<TableItem[]>([])
2024-12-30 14:43:13 +08:00
2025-02-18 16:36:54 +08:00
for (let i = 2; i <= 25; i++) {
2025-02-13 16:15:26 +08:00
tableData1.value.push({
date: i.toString(),
harmonicRate: `谐波含有率${i}`,
harmonicPhase: `谐波相角${i}`
})
2024-12-30 14:43:13 +08:00
}
for (let i = 26; i <= 50; i++) {
2025-02-13 16:15:26 +08:00
tableData2.value.push({
date: i.toString(),
harmonicRate: `谐波含有率${i}`,
harmonicPhase: `谐波相角${i}`
})
2024-12-30 14:43:13 +08:00
}
</script>
<style scoped>
.tabs-container {
2025-02-13 16:15:26 +08:00
display: flex;
justify-content: space-between; /* 使两个 el-tabs 之间有间距 */
height: 100%;
2024-12-30 14:43:13 +08:00
}
.right-tabs {
2025-02-13 16:15:26 +08:00
flex: 1; /* 使两个 el-tabs 占据相同的空间 */
margin-right: 10px; /* 可选:添加右侧间距 */
2024-12-30 14:43:13 +08:00
}
.el-tabs {
2025-02-13 16:15:26 +08:00
flex: 1; /* 使两个 el-tabs 占据相同的空间 */
2024-12-30 14:43:13 +08:00
}
.table-container {
2025-02-13 16:15:26 +08:00
display: flex;
justify-content: space-between; /* 使两个表格之间有间距 */
width: 100%;
2024-12-30 14:43:13 +08:00
}
.half-width-table {
2025-02-13 16:15:26 +08:00
flex: 1; /* 使两个表格占据相同的空间 */
margin-right: 10px; /* 可选:添加表格之间的间距 */
2024-12-30 14:43:13 +08:00
}
.half-width-table:last-child {
2025-02-13 16:15:26 +08:00
margin-right: 0; /* 最后一个表格不需要右侧间距 */
2024-12-30 14:43:13 +08:00
}
2025-01-06 09:21:24 +08:00
.input-label-container {
2025-02-13 16:15:26 +08:00
display: flex;
align-items: center; /* 垂直居中对齐 */
2025-01-06 09:21:24 +08:00
}
.input-label-container label {
2025-02-13 16:15:26 +08:00
margin-left: 5px; /* 添加标签与输入框之间的间距 */
2025-01-06 09:21:24 +08:00
}
2025-02-13 16:15:26 +08:00
</style>