2024-12-30 14:43:13 +08:00
|
|
|
<template>
|
2025-02-20 16:39:15 +08:00
|
|
|
<div class="tabs-container">
|
|
|
|
|
<el-tabs type="border-card" class="right-tabs" style="height: 100%">
|
|
|
|
|
<el-tab-pane label="电压通道">
|
|
|
|
|
<el-table :data="form[0].inharmList" border size="small" class="half-width-table">
|
|
|
|
|
<el-table-column prop="date" align="center" label="次数">
|
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
<div class="input-label-container">
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="form[0].inharmList[$index].inharm"
|
|
|
|
|
:disabled="!form[0].inHarmFlag"
|
|
|
|
|
filterable
|
|
|
|
|
placeholder="选择次数"
|
|
|
|
|
size="small"
|
|
|
|
|
>
|
|
|
|
|
<el-option v-for="item in 49" :key="item" :label="item + 0.5" :value="item + 0.5" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="date" align="center" label="间谐波含有率">
|
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
<div class="input-label-container">
|
|
|
|
|
<el-input
|
|
|
|
|
type="number"
|
|
|
|
|
size="small"
|
|
|
|
|
v-model="form[0].inharmList[$index].famp"
|
|
|
|
|
:disabled="!form[0].inHarmFlag"
|
|
|
|
|
/>
|
|
|
|
|
<label>%</label>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="name" label="间谐波相角" align="center">
|
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
<div class="input-label-container">
|
|
|
|
|
<el-input
|
|
|
|
|
type="number"
|
|
|
|
|
size="small"
|
|
|
|
|
v-model="form[0].inharmList[$index].fphase"
|
|
|
|
|
:disabled="!form[0].inHarmFlag"
|
|
|
|
|
/>
|
|
|
|
|
<label>°</label>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="date" align="center" label="操作" width="100">
|
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
<el-button
|
|
|
|
|
v-if="$index == 0"
|
|
|
|
|
type="primary"
|
|
|
|
|
size="small"
|
|
|
|
|
link
|
|
|
|
|
:icon="CirclePlus"
|
|
|
|
|
@click="inHarmFlagAdd(0, row)"
|
|
|
|
|
>
|
|
|
|
|
新增
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-button v-else type="primary" link :icon="Delete" @click="inHarmFlagDelete(0, $index)">
|
|
|
|
|
删除
|
|
|
|
|
</el-button>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
</el-tab-pane>
|
|
|
|
|
</el-tabs>
|
|
|
|
|
<el-tabs type="border-card" class="right-tabs" style="height: 100%">
|
|
|
|
|
<el-tab-pane label="电流通道">
|
|
|
|
|
<el-table :data="form[1].inharmList" border size="small" class="half-width-table">
|
|
|
|
|
<el-table-column prop="date" align="center" label="次数">
|
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
<div class="input-label-container">
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="form[1].inharmList[$index].inharm"
|
|
|
|
|
:disabled="!form[1].inHarmFlag"
|
|
|
|
|
filterable
|
|
|
|
|
placeholder="选择次数"
|
|
|
|
|
size="small"
|
|
|
|
|
>
|
|
|
|
|
<el-option v-for="item in 49" :key="item" :label="item + 0.5" :value="item + 0.5" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="date" align="center" label="间谐波含有率">
|
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
<div class="input-label-container">
|
|
|
|
|
<el-input
|
|
|
|
|
type="number"
|
|
|
|
|
size="small"
|
|
|
|
|
v-model="form[1].inharmList[$index].famp"
|
|
|
|
|
:disabled="!form[1].inHarmFlag"
|
|
|
|
|
/>
|
|
|
|
|
<label>%</label>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="name" label="间谐波相角" align="center">
|
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
<div class="input-label-container">
|
|
|
|
|
<el-input
|
|
|
|
|
type="number"
|
|
|
|
|
size="small"
|
|
|
|
|
v-model="form[1].inharmList[$index].fphase"
|
|
|
|
|
:disabled="!form[1].inHarmFlag"
|
|
|
|
|
/>
|
|
|
|
|
<label>°</label>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="date" align="center" label="操作" width="100">
|
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
<el-button
|
|
|
|
|
v-if="$index == 0"
|
|
|
|
|
type="primary"
|
|
|
|
|
size="small"
|
|
|
|
|
link
|
|
|
|
|
:icon="CirclePlus"
|
|
|
|
|
@click="inHarmFlagAdd(1, row)"
|
|
|
|
|
>
|
|
|
|
|
新增
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-button v-else type="primary" link :icon="Delete" @click="inHarmFlagDelete(1, $index)">
|
|
|
|
|
删除
|
|
|
|
|
</el-button>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
</el-tab-pane>
|
|
|
|
|
</el-tabs>
|
2024-12-30 14:43:13 +08:00
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
2025-02-18 16:36:54 +08:00
|
|
|
import { ref } from 'vue'
|
2025-02-20 16:39:15 +08:00
|
|
|
import { CirclePlus, Delete, EditPen, CopyDocument } from '@element-plus/icons-vue'
|
2025-02-18 16:36:54 +08:00
|
|
|
const props = defineProps({
|
|
|
|
|
childForm: {
|
|
|
|
|
type: Array,
|
|
|
|
|
required: true
|
|
|
|
|
}
|
|
|
|
|
})
|
2024-12-30 14:43:13 +08:00
|
|
|
|
2025-02-18 16:36:54 +08:00
|
|
|
const form: any = computed({
|
|
|
|
|
get() {
|
|
|
|
|
return props.childForm
|
|
|
|
|
},
|
|
|
|
|
set(value) {}
|
|
|
|
|
})
|
|
|
|
|
const num = ref(0)
|
2024-12-30 14:43:13 +08:00
|
|
|
|
2025-02-20 16:39:15 +08:00
|
|
|
// 添加间间谐波
|
|
|
|
|
const inHarmFlagAdd = (index: number, row: any) => {
|
|
|
|
|
props.childForm[index].inharmList.push({ inharm: '', famp: 0, fphase: 0 })
|
2025-02-18 16:36:54 +08:00
|
|
|
num.value += 1
|
2024-12-30 14:43:13 +08:00
|
|
|
}
|
2025-02-18 16:36:54 +08:00
|
|
|
// 删除
|
2025-02-20 16:39:15 +08:00
|
|
|
const inHarmFlagDelete = (index: number, number: number) => {
|
|
|
|
|
props.childForm[index].inharmList.splice(number, 1)
|
2025-02-18 16:36:54 +08:00
|
|
|
num.value -= 1
|
|
|
|
|
}
|
|
|
|
|
</script>
|
2024-12-30 14:43:13 +08:00
|
|
|
|
2025-02-18 16:36:54 +08:00
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
.container {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
border-bottom: 1px solid #ccc;
|
|
|
|
|
width: 100%;
|
|
|
|
|
margin-top: 10px;
|
|
|
|
|
height: 40px;
|
2024-12-30 14:43:13 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.fixed-width-tabs:last-child {
|
2025-02-18 16:36:54 +08:00
|
|
|
margin-right: 0; /* 最后一个 el-tabs 不需要右侧间距 */
|
2024-12-30 14:43:13 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.el-tab-pane {
|
2025-02-18 16:36:54 +08:00
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column; /* 确保内容上下排列 */
|
2024-12-30 14:43:13 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.el-form-item {
|
2025-02-18 16:36:54 +08:00
|
|
|
margin-bottom: 20px; /* 可选:添加表单项之间的间距 */
|
|
|
|
|
}
|
|
|
|
|
:deep(.el-form-item) {
|
|
|
|
|
margin-bottom: 10px !important;
|
2024-12-30 14:43:13 +08:00
|
|
|
}
|
2025-02-20 16:39:15 +08:00
|
|
|
.input-label-container {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center; /* 垂直居中对齐 */
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.input-label-container label {
|
|
|
|
|
margin-left: 5px; /* 添加标签与输入框之间的间距 */
|
|
|
|
|
}
|
|
|
|
|
.tabs-container {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between; /* 使两个 el-tabs 之间有间距 */
|
|
|
|
|
height: 100%;
|
|
|
|
|
.right-tabs {
|
|
|
|
|
flex: 1; /* 使两个 el-tabs 占据相同的空间 */
|
|
|
|
|
margin-right: 10px; /* 可选:添加右侧间距 */
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-02-18 16:36:54 +08:00
|
|
|
</style>
|