微调
This commit is contained in:
@@ -18,7 +18,7 @@
|
|||||||
<template #tableHeader=''>
|
<template #tableHeader=''>
|
||||||
<el-form :model='form' :inline='true'>
|
<el-form :model='form' :inline='true'>
|
||||||
<el-form-item label='关键字'>
|
<el-form-item label='关键字'>
|
||||||
<el-input v-model='form.search' placeholder='请输入设备名称' clearable style='width: 140px;'></el-input>
|
<el-input v-model='form.search' placeholder='请输入设备名称' clearable style='width: 170px;' show-word-limit maxlength="32"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label='检测状态' v-if='form.activeTabs != 3 && form.activeTabs != 4 && form.activeTabs != 5'>
|
<el-form-item label='检测状态' v-if='form.activeTabs != 3 && form.activeTabs != 4 && form.activeTabs != 5'>
|
||||||
<el-select v-model='form.checkStatus' clearable>
|
<el-select v-model='form.checkStatus' clearable>
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
placeholder='请输入计划名称'
|
placeholder='请输入计划名称'
|
||||||
clearable
|
clearable
|
||||||
v-model='searchForm.planName'
|
v-model='searchForm.planName'
|
||||||
|
show-word-limit
|
||||||
|
maxlength="32"
|
||||||
></el-input>
|
></el-input>
|
||||||
<el-tooltip content="检测计划列表" placement="top">
|
<el-tooltip content="检测计划列表" placement="top">
|
||||||
<Menu style='width: 26px;height: 26px; margin-left: 8px;cursor: pointer;color:var(--el-color-primary)'
|
<Menu style='width: 26px;height: 26px; margin-left: 8px;cursor: pointer;color:var(--el-color-primary)'
|
||||||
|
|||||||
@@ -114,7 +114,7 @@
|
|||||||
<div class="form-item-container">
|
<div class="form-item-container">
|
||||||
<el-form-item label="频率:" prop="name">
|
<el-form-item label="频率:" prop="name">
|
||||||
<div class="input-label-container">
|
<div class="input-label-container">
|
||||||
<el-input type="number" style="width: 100px" v-model="form.ffreq" />
|
<el-input type="number" style="width: 100px" v-model="form.ffreq" onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))" @change="validateFreq" />
|
||||||
<label>Hz</label>
|
<label>Hz</label>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -611,6 +611,15 @@ const copyRow = (num: number, index: number) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const validateFreq = () => {
|
||||||
|
if (form.value.ffreq < 40) {
|
||||||
|
ElMessage.warning("频率不能低于40Hz")
|
||||||
|
form.value.ffreq = 40
|
||||||
|
} else if (form.value.ffreq > 60) {
|
||||||
|
ElMessage.warning("频率不能高于60Hz")
|
||||||
|
form.value.ffreq = 60
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 打开 drawer(新增、编辑)
|
// 打开 drawer(新增、编辑)
|
||||||
const openDialog = () => {}
|
const openDialog = () => {}
|
||||||
|
|||||||
@@ -33,14 +33,17 @@
|
|||||||
v-model="form[0].dipData.ftransValue"
|
v-model="form[0].dipData.ftransValue"
|
||||||
style="width: 150px"
|
style="width: 150px"
|
||||||
:disabled="!form[0].dipFlag"
|
:disabled="!form[0].dipFlag"
|
||||||
|
onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label-width="120px" label="持续时间(周波)">
|
<el-form-item label-width="120px" label="持续时间(周波)">
|
||||||
<el-input
|
<el-input
|
||||||
type="number"
|
type="number"
|
||||||
v-model="form[0].dipData.retainTime"
|
v-model="form[0].dipData.retainTime"
|
||||||
|
@input="handleInputRetainTime"
|
||||||
style="width: 150px"
|
style="width: 150px"
|
||||||
:disabled="!form[0].dipFlag"
|
:disabled="!form[0].dipFlag"
|
||||||
|
onkeypress="return (/[\d.]/.test(String.fromCharCode(event.keyCode)))"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
@@ -63,9 +66,21 @@ const form: any = computed({
|
|||||||
})
|
})
|
||||||
const handleInput = value => {
|
const handleInput = value => {
|
||||||
if (value < 0) {
|
if (value < 0) {
|
||||||
|
ElMessage.warning("设定幅度不能小于0%")
|
||||||
props.childForm[0].dipData.ftransValue = 0
|
props.childForm[0].dipData.ftransValue = 0
|
||||||
} else if (value > 200) {
|
} else if (value > 140) {
|
||||||
props.childForm[0].dipData.ftransValue = 200
|
ElMessage.warning("设定幅度不能大于140%")
|
||||||
|
props.childForm[0].dipData.ftransValue = 140
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleInputRetainTime = value => {
|
||||||
|
if (value < 0) {
|
||||||
|
ElMessage.warning("持续时间不能小于0周波")
|
||||||
|
props.childForm[0].dipData.retainTime = 0
|
||||||
|
}else if (value > 300) {
|
||||||
|
ElMessage.warning("持续时间不能大于300周波")
|
||||||
|
props.childForm[0].dipData.retainTime = 300
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,322 +1,377 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="tabs-container">
|
<div class="tabs-container">
|
||||||
<el-tabs type="border-card" class="right-tabs" style="height: 100%">
|
<el-tabs type="border-card" class="right-tabs" style="height: 100%">
|
||||||
<el-tab-pane label="电压通道">
|
<el-tab-pane label="电压通道">
|
||||||
<el-form :inline="true" :model="formInline" :disabled="!props.childForm[0].harmFlag">
|
<el-form :inline="true" :model="formInline" :disabled="!props.childForm[0].harmFlag">
|
||||||
<el-form-item label="次数">
|
<el-form-item label="次数">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="formInline.harm"
|
v-model="formInline.harm"
|
||||||
multiple
|
multiple
|
||||||
collapse-tags
|
collapse-tags
|
||||||
collapse-tags-tooltip
|
collapse-tags-tooltip
|
||||||
style="width: 160px"
|
style="width: 160px"
|
||||||
filterable
|
filterable
|
||||||
clearable
|
clearable
|
||||||
>
|
>
|
||||||
<el-option label="全部" value="0" />
|
<el-option label="全部" value="0"/>
|
||||||
<el-option v-for="item in 49" :key="item" :label="item + 1" :value="item + 1" />
|
<el-option v-for="item in 49" :key="item" :label="item + 1" :value="item + 1"/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="含有率">
|
<el-form-item label="含有率">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="formInline.famp"
|
v-model="formInline.famp"
|
||||||
type="number"
|
type="number"
|
||||||
placeholder="含有率"
|
placeholder="含有率"
|
||||||
style="width: 80px"
|
style="width: 80px"
|
||||||
clearable
|
onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
|
||||||
/>
|
@input="validateInput('famp',0)"
|
||||||
</el-form-item>
|
clearable
|
||||||
<el-form-item label="相角">
|
/>
|
||||||
<el-input
|
</el-form-item>
|
||||||
v-model="formInline.fphase"
|
<el-form-item label="相角">
|
||||||
type="number"
|
<el-input
|
||||||
placeholder="相角"
|
v-model="formInline.fphase"
|
||||||
style="width: 80px"
|
type="number"
|
||||||
clearable
|
placeholder="相角"
|
||||||
/>
|
style="width: 80px"
|
||||||
</el-form-item>
|
onkeypress="return (/[\d-]/.test(String.fromCharCode(event.keyCode)))"
|
||||||
<el-form-item>
|
@input="validateInput('fphase',0)"
|
||||||
<el-button type="primary" :icon="Check" @click="onSubmit" size="small">确定</el-button>
|
clearable
|
||||||
<el-button type="primary" :icon="Delete" @click="empty(0)" size="small">清空表格</el-button>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
<el-form-item>
|
||||||
<!-- 电压通道内容 -->
|
<el-button type="primary" :icon="Check" @click="onSubmit" size="small">确定</el-button>
|
||||||
<div class="table-container">
|
<el-button type="primary" :icon="Delete" @click="empty(0)" size="small">清空表格</el-button>
|
||||||
<el-table :data="form[0].harmList" border stripe size="small">
|
</el-form-item>
|
||||||
<el-table-column prop="harm" align="center" label="次数" width="60" />
|
</el-form>
|
||||||
<el-table-column prop="famp" align="center" label="谐波含有率">
|
<!-- 电压通道内容 -->
|
||||||
<template #default="{ row }">
|
<div class="table-container">
|
||||||
<el-input type="number" v-if="row.show" v-model="row.famp" />
|
<el-table :data="form[0].harmList" border stripe size="small">
|
||||||
<span v-else>{{ row.famp }}%</span>
|
<el-table-column prop="harm" align="center" label="次数" width="60"/>
|
||||||
</template>
|
<el-table-column prop="famp" align="center" label="谐波含有率">
|
||||||
</el-table-column>
|
<template #default="{ row }">
|
||||||
<el-table-column prop="fphase" label="谐波相角" align="center">
|
<el-input type="number" v-if="row.show" v-model="row.famp"/>
|
||||||
<template #default="{ row }">
|
<span v-else>{{ row.famp }}%</span>
|
||||||
<el-input type="number" v-if="row.show" v-model="row.fphase" />
|
</template>
|
||||||
<span v-else>{{ row.fphase }}°</span>
|
</el-table-column>
|
||||||
</template>
|
<el-table-column prop="fphase" label="谐波相角" align="center">
|
||||||
</el-table-column>
|
<template #default="{ row }">
|
||||||
<el-table-column label="操作" align="center">
|
<el-input type="number" v-if="row.show" v-model="row.fphase"/>
|
||||||
<template #default="{ row, $index }">
|
<span v-else>{{ row.fphase }}°</span>
|
||||||
<el-button
|
</template>
|
||||||
type="primary"
|
</el-table-column>
|
||||||
link
|
<el-table-column label="操作" align="center">
|
||||||
:icon="EditPen"
|
<template #default="{ row, $index }">
|
||||||
v-if="!row.show"
|
<el-button
|
||||||
@click="row.show = true"
|
type="primary"
|
||||||
>
|
link
|
||||||
编辑
|
:icon="EditPen"
|
||||||
</el-button>
|
v-if="!row.show"
|
||||||
<el-button type="primary" link :icon="Check" v-else @click="row.show = false">
|
@click="row.show = true"
|
||||||
保存
|
>
|
||||||
</el-button>
|
编辑
|
||||||
<el-button type="primary" link :icon="Delete" @click="HarmFlagDelete(0, $index)">
|
</el-button>
|
||||||
删除
|
<el-button type="primary" link :icon="Check" v-else @click="row.show = false">
|
||||||
</el-button>
|
保存
|
||||||
</template>
|
</el-button>
|
||||||
</el-table-column>
|
<el-button type="primary" link :icon="Delete" @click="HarmFlagDelete(0, $index)">
|
||||||
</el-table>
|
删除
|
||||||
</div>
|
</el-button>
|
||||||
</el-tab-pane>
|
</template>
|
||||||
</el-tabs>
|
</el-table-column>
|
||||||
<el-tabs type="border-card" style="height: 100%">
|
</el-table>
|
||||||
<el-tab-pane label="电流通道">
|
</div>
|
||||||
<el-form :inline="true" :model="formInline1" :disabled="!props.childForm[1].harmFlag">
|
</el-tab-pane>
|
||||||
<el-form-item label="次数">
|
</el-tabs>
|
||||||
<el-select
|
<el-tabs type="border-card" style="height: 100%">
|
||||||
v-model="formInline1.harm"
|
<el-tab-pane label="电流通道">
|
||||||
multiple
|
<el-form :inline="true" :model="formInline1" :disabled="!props.childForm[1].harmFlag">
|
||||||
collapse-tags
|
<el-form-item label="次数">
|
||||||
collapse-tags-tooltip
|
<el-select
|
||||||
style="width: 160px"
|
v-model="formInline1.harm"
|
||||||
filterable
|
multiple
|
||||||
clearable
|
collapse-tags
|
||||||
>
|
collapse-tags-tooltip
|
||||||
<el-option label="全部" value="0" />
|
style="width: 160px"
|
||||||
<el-option v-for="item in 49" :key="item" :label="item + 1" :value="item + 1" />
|
filterable
|
||||||
</el-select>
|
clearable
|
||||||
</el-form-item>
|
>
|
||||||
<el-form-item label="含有率">
|
<el-option label="全部" value="0"/>
|
||||||
<el-input
|
<el-option v-for="item in 49" :key="item" :label="item + 1" :value="item + 1"/>
|
||||||
v-model="formInline1.famp"
|
</el-select>
|
||||||
type="number"
|
</el-form-item>
|
||||||
placeholder="含有率"
|
<el-form-item label="含有率">
|
||||||
style="width: 80px"
|
<el-input
|
||||||
clearable
|
v-model="formInline1.famp"
|
||||||
/>
|
type="number"
|
||||||
</el-form-item>
|
placeholder="含有率"
|
||||||
<el-form-item label="相角">
|
style="width: 80px"
|
||||||
<el-input
|
onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
|
||||||
v-model="formInline1.fphase"
|
@input="validateInput('famp',1)"
|
||||||
type="number"
|
clearable
|
||||||
placeholder="相角"
|
/>
|
||||||
style="width: 80px"
|
</el-form-item>
|
||||||
clearable
|
<el-form-item label="相角">
|
||||||
/>
|
<el-input
|
||||||
</el-form-item>
|
v-model="formInline1.fphase"
|
||||||
<el-form-item>
|
type="number"
|
||||||
<el-button type="primary" :icon="Check" @click="onSubmit1" size="small">确定</el-button>
|
placeholder="相角"
|
||||||
<el-button type="primary" :icon="Delete" @click="empty(1)" size="small">清空表格</el-button>
|
style="width: 80px"
|
||||||
</el-form-item>
|
onkeypress="return (/[\d-]/.test(String.fromCharCode(event.keyCode)))"
|
||||||
</el-form>
|
@input="validateInput('fphase',1)"
|
||||||
<!-- 电流通道内容 -->
|
clearable
|
||||||
<div class="table-container">
|
/>
|
||||||
<el-table :data="form[1].harmList" border stripe size="small">
|
</el-form-item>
|
||||||
<el-table-column prop="harm" align="center" label="次数" width="60" />
|
<el-form-item>
|
||||||
<el-table-column prop="famp" align="center" label="谐波含有率">
|
<el-button type="primary" :icon="Check" @click="onSubmit1" size="small">确定</el-button>
|
||||||
<template #default="{ row }">
|
<el-button type="primary" :icon="Delete" @click="empty(1)" size="small">清空表格</el-button>
|
||||||
<el-input type="number" v-if="row.show" v-model="row.famp" />
|
</el-form-item>
|
||||||
<span v-else>{{ row.famp }}%</span>
|
</el-form>
|
||||||
</template>
|
<!-- 电流通道内容 -->
|
||||||
</el-table-column>
|
<div class="table-container">
|
||||||
<el-table-column prop="fphase" label="谐波相角" align="center">
|
<el-table :data="form[1].harmList" border stripe size="small">
|
||||||
<template #default="{ row }">
|
<el-table-column prop="harm" align="center" label="次数" width="60"/>
|
||||||
<el-input type="number" v-if="row.show" v-model="row.fphase" />
|
<el-table-column prop="famp" align="center" label="谐波含有率">
|
||||||
<span v-else>{{ row.fphase }}°</span>
|
<template #default="{ row }">
|
||||||
</template>
|
<el-input type="number" v-if="row.show" v-model="row.famp"/>
|
||||||
</el-table-column>
|
<span v-else>{{ row.famp }}%</span>
|
||||||
<el-table-column label="操作" align="center">
|
</template>
|
||||||
<template #default="{ row, $index }">
|
</el-table-column>
|
||||||
<el-button
|
<el-table-column prop="fphase" label="谐波相角" align="center">
|
||||||
type="primary"
|
<template #default="{ row }">
|
||||||
link
|
<el-input type="number" v-if="row.show" v-model="row.fphase"/>
|
||||||
:icon="EditPen"
|
<span v-else>{{ row.fphase }}°</span>
|
||||||
v-if="!row.show"
|
</template>
|
||||||
@click="row.show = true"
|
</el-table-column>
|
||||||
>
|
<el-table-column label="操作" align="center">
|
||||||
编辑
|
<template #default="{ row, $index }">
|
||||||
</el-button>
|
<el-button
|
||||||
<el-button type="primary" link :icon="Check" v-else @click="row.show = false">
|
type="primary"
|
||||||
保存
|
link
|
||||||
</el-button>
|
:icon="EditPen"
|
||||||
<el-button type="primary" link :icon="Delete" @click="HarmFlagDelete(1, $index)">
|
v-if="!row.show"
|
||||||
删除
|
@click="row.show = true"
|
||||||
</el-button>
|
>
|
||||||
</template>
|
编辑
|
||||||
</el-table-column>
|
</el-button>
|
||||||
</el-table>
|
<el-button type="primary" link :icon="Check" v-else @click="row.show = false">
|
||||||
</div>
|
保存
|
||||||
</el-tab-pane>
|
</el-button>
|
||||||
</el-tabs>
|
<el-button type="primary" link :icon="Delete" @click="HarmFlagDelete(1, $index)">
|
||||||
</div>
|
删除
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { Check, Delete, EditPen, CopyDocument } from '@element-plus/icons-vue'
|
import {Check, Delete, EditPen} from '@element-plus/icons-vue'
|
||||||
import { ref } from 'vue'
|
import {ref} from 'vue'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
childForm: {
|
childForm: {
|
||||||
type: Array as any,
|
type: Array as any,
|
||||||
required: true
|
required: true
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const form: any = computed({
|
const form: any = computed({
|
||||||
get() {
|
get() {
|
||||||
return props.childForm
|
return props.childForm
|
||||||
},
|
},
|
||||||
set(value) {}
|
set(value) {
|
||||||
|
}
|
||||||
})
|
})
|
||||||
const formInline = ref({
|
const formInline = ref({
|
||||||
harm: [],
|
harm: [],
|
||||||
famp: '',
|
famp: '',
|
||||||
fphase: ''
|
fphase: ''
|
||||||
})
|
})
|
||||||
const formInline1 = ref({
|
const formInline1 = ref({
|
||||||
harm: [],
|
harm: [],
|
||||||
famp: '',
|
famp: '',
|
||||||
fphase: ''
|
fphase: ''
|
||||||
})
|
})
|
||||||
|
|
||||||
// 定义表格数据项的类型
|
// 定义表格数据项的类型
|
||||||
interface TableItem {
|
interface TableItem {
|
||||||
date: string
|
date: string
|
||||||
harmonicRate?: string
|
harmonicRate?: string
|
||||||
harmonicPhase?: string
|
harmonicPhase?: string
|
||||||
name?: string
|
name?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
const empty = (index: number) => {
|
const empty = (index: number) => {
|
||||||
props.childForm[index].harmList = []
|
props.childForm[index].harmList = []
|
||||||
}
|
}
|
||||||
const onSubmit = () => {
|
const onSubmit = () => {
|
||||||
console.log('🚀 ~ onSubmit ~ props.childForm[0]:', props.childForm[0].harmList)
|
console.log('🚀 ~ onSubmit ~ props.childForm[0]:', props.childForm[0].harmList)
|
||||||
if (formInline.value.harm.length == 0 || formInline.value.famp == '' || formInline.value.fphase == '') {
|
if (formInline.value.harm.length == 0 || formInline.value.famp == '' || formInline.value.fphase == '') {
|
||||||
ElMessage.warning('请填写值!')
|
ElMessage.warning('请填写值!')
|
||||||
return
|
return
|
||||||
|
}
|
||||||
|
if (formInline.value.harm.includes('0')) {
|
||||||
|
props.childForm[0].harmList = []
|
||||||
|
for (let i = 2; i < 51; i++) {
|
||||||
|
props.childForm[0].harmList.push({
|
||||||
|
harm: i, //间谐波次数
|
||||||
|
famp: formInline.value.famp, //间谐波含有率
|
||||||
|
fphase: formInline.value.fphase // 间谐波相角
|
||||||
|
})
|
||||||
}
|
}
|
||||||
if (formInline.value.harm.includes('0')) {
|
} else {
|
||||||
props.childForm[0].harmList = []
|
formInline.value.harm.forEach((item: any) => {
|
||||||
for (let i = 2; i < 51; i++) {
|
props.childForm[0].harmList.push({
|
||||||
props.childForm[0].harmList.push({
|
harm: item, //间谐波次数
|
||||||
harm: i, //间谐波次数
|
famp: formInline.value.famp, //间谐波含有率
|
||||||
famp: formInline.value.famp, //间谐波含有率
|
fphase: formInline.value.fphase // 间谐波相角
|
||||||
fphase: formInline.value.fphase // 间谐波相角
|
})
|
||||||
})
|
})
|
||||||
}
|
const seen = new Set()
|
||||||
} else {
|
const uniqueData = []
|
||||||
formInline.value.harm.forEach((item: any) => {
|
|
||||||
props.childForm[0].harmList.push({
|
|
||||||
harm: item, //间谐波次数
|
|
||||||
famp: formInline.value.famp, //间谐波含有率
|
|
||||||
fphase: formInline.value.fphase // 间谐波相角
|
|
||||||
})
|
|
||||||
})
|
|
||||||
const seen = new Set()
|
|
||||||
const uniqueData = []
|
|
||||||
|
|
||||||
// 反向遍历数组
|
// 反向遍历数组
|
||||||
for (let i = props.childForm[0].harmList.length - 1; i >= 0; i--) {
|
for (let i = props.childForm[0].harmList.length - 1; i >= 0; i--) {
|
||||||
const item = props.childForm[0].harmList[i]
|
const item = props.childForm[0].harmList[i]
|
||||||
// 如果 harm 还未出现过,则添加到结果数组
|
// 如果 harm 还未出现过,则添加到结果数组
|
||||||
if (!seen.has(item.harm)) {
|
if (!seen.has(item.harm)) {
|
||||||
seen.add(item.harm)
|
seen.add(item.harm)
|
||||||
uniqueData.unshift(item) // 添加到结果数组的开头
|
uniqueData.unshift(item) // 添加到结果数组的开头
|
||||||
}
|
}
|
||||||
}
|
|
||||||
props.childForm[0].harmList = uniqueData.sort((a, b) => a.harm - b.harm)
|
|
||||||
}
|
}
|
||||||
|
props.childForm[0].harmList = uniqueData.sort((a, b) => a.harm - b.harm)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const onSubmit1 = () => {
|
const onSubmit1 = () => {
|
||||||
if (formInline1.value.harm.length == 0 || formInline1.value.famp == '' || formInline1.value.fphase == '') {
|
if (formInline1.value.harm.length == 0 || formInline1.value.famp == '' || formInline1.value.fphase == '') {
|
||||||
ElMessage.warning('请填写值!')
|
ElMessage.warning('请填写值!')
|
||||||
return
|
return
|
||||||
|
}
|
||||||
|
if (formInline1.value.harm.includes('0')) {
|
||||||
|
props.childForm[1].harmList = []
|
||||||
|
for (let i = 2; i < 51; i++) {
|
||||||
|
props.childForm[1].harmList.push({
|
||||||
|
harm: i, //间谐波次数
|
||||||
|
famp: formInline1.value.famp, //间谐波含有率
|
||||||
|
fphase: formInline1.value.fphase // 间谐波相角
|
||||||
|
})
|
||||||
}
|
}
|
||||||
if (formInline1.value.harm.includes('0')) {
|
} else {
|
||||||
props.childForm[1].harmList = []
|
formInline1.value.harm.forEach((item: any) => {
|
||||||
for (let i = 2; i < 51; i++) {
|
props.childForm[1].harmList.push({
|
||||||
props.childForm[1].harmList.push({
|
harm: item, //间谐波次数
|
||||||
harm: i, //间谐波次数
|
famp: formInline1.value.famp, //间谐波含有率
|
||||||
famp: formInline1.value.famp, //间谐波含有率
|
fphase: formInline1.value.fphase // 间谐波相角
|
||||||
fphase: formInline1.value.fphase // 间谐波相角
|
})
|
||||||
})
|
})
|
||||||
}
|
const seen = new Set()
|
||||||
} else {
|
const uniqueData = []
|
||||||
formInline1.value.harm.forEach((item: any) => {
|
|
||||||
props.childForm[1].harmList.push({
|
|
||||||
harm: item, //间谐波次数
|
|
||||||
famp: formInline1.value.famp, //间谐波含有率
|
|
||||||
fphase: formInline1.value.fphase // 间谐波相角
|
|
||||||
})
|
|
||||||
})
|
|
||||||
const seen = new Set()
|
|
||||||
const uniqueData = []
|
|
||||||
|
|
||||||
// 反向遍历数组
|
// 反向遍历数组
|
||||||
for (let i = props.childForm[1].harmList.length - 1; i >= 0; i--) {
|
for (let i = props.childForm[1].harmList.length - 1; i >= 0; i--) {
|
||||||
const item = props.childForm[1].harmList[i]
|
const item = props.childForm[1].harmList[i]
|
||||||
// 如果 harm 还未出现过,则添加到结果数组
|
// 如果 harm 还未出现过,则添加到结果数组
|
||||||
if (!seen.has(item.harm)) {
|
if (!seen.has(item.harm)) {
|
||||||
seen.add(item.harm)
|
seen.add(item.harm)
|
||||||
uniqueData.unshift(item) // 添加到结果数组的开头
|
uniqueData.unshift(item) // 添加到结果数组的开头
|
||||||
}
|
}
|
||||||
}
|
|
||||||
props.childForm[1].harmList = uniqueData.sort((a, b) => a.harm - b.harm)
|
|
||||||
}
|
}
|
||||||
|
props.childForm[1].harmList = uniqueData.sort((a, b) => a.harm - b.harm)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 删除
|
// 删除
|
||||||
const HarmFlagDelete = (index: number, number: number) => {
|
const HarmFlagDelete = (index: number, number: number) => {
|
||||||
props.childForm[index].harmList.splice(number, 1)
|
props.childForm[index].harmList.splice(number, 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
const validateInput = (type: string, index: number) => {
|
||||||
|
if (type == 'famp') {
|
||||||
|
if (Number(formInline.value.famp) < 0 || Number(formInline1.value.famp) < 0) {
|
||||||
|
ElMessage.warning("含有率不能低于0")
|
||||||
|
if (index == 0) {
|
||||||
|
formInline.value.famp = '0'
|
||||||
|
}
|
||||||
|
if (index == 1) {
|
||||||
|
formInline1.value.famp = '0'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (Number(formInline.value.famp) > 200 || Number(formInline1.value.famp) > 200) {
|
||||||
|
ElMessage.warning("含有率不能高于200")
|
||||||
|
if (index == 0) {
|
||||||
|
formInline.value.famp = '200'
|
||||||
|
}
|
||||||
|
if (index == 1) {
|
||||||
|
formInline1.value.famp = '200'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (type == 'fphase') {
|
||||||
|
if (Number(formInline.value.fphase) < -360 || Number(formInline1.value.fphase) < -360) {
|
||||||
|
ElMessage.warning("相角不能低于-360°")
|
||||||
|
if (index == 0) {
|
||||||
|
formInline.value.fphase = '-360';
|
||||||
|
}
|
||||||
|
if (index == 1) {
|
||||||
|
formInline1.value.fphase = '-360';
|
||||||
|
}
|
||||||
|
} else if (Number(formInline.value.fphase) > 360 || Number(formInline1.value.fphase) > 360) {
|
||||||
|
ElMessage.warning("相角不能高于360°")
|
||||||
|
if (index == 0) {
|
||||||
|
formInline.value.fphase = '360';
|
||||||
|
}
|
||||||
|
if (index == 1) {
|
||||||
|
formInline1.value.fphase = '360';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.tabs-container {
|
.tabs-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between; /* 使两个 el-tabs 之间有间距 */
|
justify-content: space-between; /* 使两个 el-tabs 之间有间距 */
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-tabs {
|
.right-tabs {
|
||||||
flex: 1; /* 使两个 el-tabs 占据相同的空间 */
|
flex: 1; /* 使两个 el-tabs 占据相同的空间 */
|
||||||
margin-right: 10px; /* 可选:添加右侧间距 */
|
margin-right: 10px; /* 可选:添加右侧间距 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-tabs {
|
.el-tabs {
|
||||||
flex: 1; /* 使两个 el-tabs 占据相同的空间 */
|
flex: 1; /* 使两个 el-tabs 占据相同的空间 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.table-container {
|
.table-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between; /* 使两个表格之间有间距 */
|
justify-content: space-between; /* 使两个表格之间有间距 */
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.half-width-table {
|
.half-width-table {
|
||||||
flex: 1; /* 使两个表格占据相同的空间 */
|
flex: 1; /* 使两个表格占据相同的空间 */
|
||||||
margin-right: 10px; /* 可选:添加表格之间的间距 */
|
margin-right: 10px; /* 可选:添加表格之间的间距 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.half-width-table:last-child {
|
.half-width-table:last-child {
|
||||||
margin-right: 0; /* 最后一个表格不需要右侧间距 */
|
margin-right: 0; /* 最后一个表格不需要右侧间距 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-label-container {
|
.input-label-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center; /* 垂直居中对齐 */
|
align-items: center; /* 垂直居中对齐 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-label-container label {
|
.input-label-container label {
|
||||||
margin-left: 5px; /* 添加标签与输入框之间的间距 */
|
margin-left: 5px; /* 添加标签与输入框之间的间距 */
|
||||||
}
|
}
|
||||||
|
|
||||||
// 全局css 加上以下代码,可以隐藏上下箭头
|
// 全局css 加上以下代码,可以隐藏上下箭头
|
||||||
|
|
||||||
// 取消input的上下箭头
|
// 取消input的上下箭头
|
||||||
|
|||||||
@@ -23,6 +23,8 @@
|
|||||||
type="number"
|
type="number"
|
||||||
placeholder="含有率"
|
placeholder="含有率"
|
||||||
style="width: 80px"
|
style="width: 80px"
|
||||||
|
onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
|
||||||
|
@input="validateInput('famp',0)"
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -32,6 +34,8 @@
|
|||||||
type="number"
|
type="number"
|
||||||
placeholder="相角"
|
placeholder="相角"
|
||||||
style="width: 80px"
|
style="width: 80px"
|
||||||
|
onkeypress="return (/[\d-]/.test(String.fromCharCode(event.keyCode)))"
|
||||||
|
@input="validateInput('fphase',0)"
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -102,6 +106,8 @@
|
|||||||
type="number"
|
type="number"
|
||||||
placeholder="含有率"
|
placeholder="含有率"
|
||||||
style="width: 80px"
|
style="width: 80px"
|
||||||
|
onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
|
||||||
|
@input="validateInput('famp',1)"
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -111,6 +117,8 @@
|
|||||||
type="number"
|
type="number"
|
||||||
placeholder="相角"
|
placeholder="相角"
|
||||||
style="width: 80px"
|
style="width: 80px"
|
||||||
|
onkeypress="return (/[\d-]/.test(String.fromCharCode(event.keyCode)))"
|
||||||
|
@input="validateInput('fphase',1)"
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -276,6 +284,48 @@ const onSubmit1 = () => {
|
|||||||
const inHarmFlagDelete = (index: number, number: number) => {
|
const inHarmFlagDelete = (index: number, number: number) => {
|
||||||
props.childForm[index].inharmList.splice(number, 1)
|
props.childForm[index].inharmList.splice(number, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const validateInput = (type: string, index: number) => {
|
||||||
|
if (type == 'famp') {
|
||||||
|
if (Number(formInline.value.famp) < 0 || Number(formInline1.value.famp) < 0) {
|
||||||
|
ElMessage.warning("含有率不能低于0")
|
||||||
|
if (index == 0) {
|
||||||
|
formInline.value.famp = '0'
|
||||||
|
}
|
||||||
|
if (index == 1) {
|
||||||
|
formInline1.value.famp = '0'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (Number(formInline.value.famp) > 200 || Number(formInline1.value.famp) > 200) {
|
||||||
|
ElMessage.warning("含有率不能高于200")
|
||||||
|
if (index == 0) {
|
||||||
|
formInline.value.famp = '200'
|
||||||
|
}
|
||||||
|
if (index == 1) {
|
||||||
|
formInline1.value.famp = '200'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (type == 'fphase') {
|
||||||
|
if (Number(formInline.value.fphase) < -360 || Number(formInline1.value.fphase) < -360) {
|
||||||
|
ElMessage.warning("相角不能低于-360°")
|
||||||
|
if (index == 0) {
|
||||||
|
formInline.value.fphase = '-360';
|
||||||
|
}
|
||||||
|
if (index == 1) {
|
||||||
|
formInline1.value.fphase = '-360';
|
||||||
|
}
|
||||||
|
} else if (Number(formInline.value.fphase) > 360 || Number(formInline1.value.fphase) > 360) {
|
||||||
|
ElMessage.warning("相角不能高于360°")
|
||||||
|
if (index == 0) {
|
||||||
|
formInline.value.fphase = '360';
|
||||||
|
}
|
||||||
|
if (index == 1) {
|
||||||
|
formInline1.value.fphase = '360';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|||||||
@@ -9,17 +9,17 @@
|
|||||||
<!-- 右侧编辑区域内容 -->
|
<!-- 右侧编辑区域内容 -->
|
||||||
<el-form :inline="true" label-width="auto" :model="form" class="form-two">
|
<el-form :inline="true" label-width="auto" :model="form" class="form-two">
|
||||||
<el-form-item :label="`电压有效值(${valueCode == 'Absolute' ? 'V' : '%'})`">
|
<el-form-item :label="`电压有效值(${valueCode == 'Absolute' ? 'V' : '%'})`">
|
||||||
<el-input type="number" v-model="form[0].famp" :disabled="!form[0].channelFlag" />
|
<el-input type="number" v-model="form[0].famp" :disabled="!form[0].channelFlag" onkeypress="return (/[\d.]/.test(String.fromCharCode(event.keyCode)))" @input="validateInput(0, 'famp')"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="电压相角(°)">
|
<el-form-item label="电压相角(°)">
|
||||||
<el-input type="number" v-model="form[0].fphase" :disabled="!form[0].channelFlag" />
|
<el-input type="number" v-model="form[0].fphase" :disabled="!form[0].channelFlag" onkeypress="return (/[\d-]/.test(String.fromCharCode(event.keyCode)))" @input="validateInput(0, 'fphase')"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="`电流有效值(${valueCode == 'Absolute' ? 'A' : '%'})`">
|
<el-form-item :label="`电流有效值(${valueCode == 'Absolute' ? 'A' : '%'})`">
|
||||||
<el-input type="number" v-model="form[1].famp" :disabled="!form[1].channelFlag" />
|
<el-input type="number" v-model="form[1].famp" :disabled="!form[1].channelFlag" onkeypress="return (/[\d.]/.test(String.fromCharCode(event.keyCode)))" @input="validateInput(1, 'famp')"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="电流相角(°)">
|
<el-form-item label="电流相角(°)">
|
||||||
<el-input type="number" v-model="form[1].fphase" :disabled="!form[1].channelFlag" />
|
<el-input type="number" v-model="form[1].fphase" :disabled="!form[1].channelFlag" onkeypress="return (/[\d-]/.test(String.fromCharCode(event.keyCode)))" @input="validateInput(1, 'fphase')"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
@@ -109,6 +109,41 @@ function drawSineWave() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const validateInput = (index: number, field: string) => {
|
||||||
|
const value = form.value[index][field];
|
||||||
|
if (index === 0) {
|
||||||
|
if (field === 'famp') {
|
||||||
|
if (value < 0) {
|
||||||
|
ElMessage.warning("电压不能低于0V")
|
||||||
|
form.value[index][field] = 0;
|
||||||
|
} else if (value > 380) {
|
||||||
|
ElMessage.warning("电压不能高于380V")
|
||||||
|
form.value[index][field] = 380;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (index === 1) {
|
||||||
|
if (field === 'famp') {
|
||||||
|
if (value < 0) {
|
||||||
|
ElMessage.warning("电流不能低于0A")
|
||||||
|
form.value[index][field] = 0;
|
||||||
|
} else if (value > 20) {
|
||||||
|
ElMessage.warning("电流不能高于20A")
|
||||||
|
form.value[index][field] = 20;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (field === 'fphase') {
|
||||||
|
if (value < -360) {
|
||||||
|
ElMessage.warning("相角不能低于-360°")
|
||||||
|
form.value[index][field] = -360;
|
||||||
|
} else if (value > 360) {
|
||||||
|
ElMessage.warning("相角不能高于360°")
|
||||||
|
form.value[index][field] = 360;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@@ -16,7 +16,8 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label='检测最大次数' prop='maxTime' :label-width="110">
|
<el-form-item label='检测最大次数' prop='maxTime' :label-width="110">
|
||||||
<el-input-number v-model='TestConfigForm.maxTime' :min='1' :max='999'/>
|
<!-- <el-input-number v-model='TestConfigForm.maxTime' :min='1' :max='999' onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"/>-->
|
||||||
|
<el-input number v-model.number='TestConfigForm.maxTime' placeholder="请输入检测最大次数" onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
@@ -43,17 +44,17 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="实时数据有效组数" prop="realTime" :label-width="140">
|
<el-form-item label="实时数据有效组数" prop="realTime" :label-width="140">
|
||||||
<el-input number v-model.number='RegResForm.realTime' placeholder="请输入实时数据有效组数"/>
|
<el-input number v-model.number='RegResForm.realTime' placeholder="请输入实时数据有效组数" onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="统计数据有效组数" prop="statistics" :label-width="140">
|
<el-form-item label="统计数据有效组数" prop="statistics" :label-width="140">
|
||||||
<el-input number v-model.number='RegResForm.statistics' placeholder="请输入统计数据有效组数"/>
|
<el-input number v-model.number='RegResForm.statistics' placeholder="请输入统计数据有效组数" onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="闪变数据有效组数" prop="flicker" :label-width="140">
|
<el-form-item label="闪变数据有效组数" prop="flicker" :label-width="140">
|
||||||
<el-input number v-model.number='RegResForm.flicker' placeholder="请输入闪变数据有效组数"/>
|
<el-input number v-model.number='RegResForm.flicker' placeholder="请输入闪变数据有效组数" onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -257,6 +258,7 @@ const rules = computed(() => {
|
|||||||
const baseRules: Ref<Record<string, Array<FormItemRule>>> = ref({
|
const baseRules: Ref<Record<string, Array<FormItemRule>>> = ref({
|
||||||
maxTime: [
|
maxTime: [
|
||||||
{required: true, trigger: 'blur', message: '检测最大次数必填!'},
|
{required: true, trigger: 'blur', message: '检测最大次数必填!'},
|
||||||
|
{pattern: /^(?:[1-9]|[1-9][0-9]|[1-9][0-9]{2})$/, message: '检测最大次数为1~999的正整数', trigger: 'blur'}
|
||||||
],
|
],
|
||||||
realTime: [
|
realTime: [
|
||||||
{required: true, trigger: 'blur', message: '实时数据有效组数必填!'},
|
{required: true, trigger: 'blur', message: '实时数据有效组数必填!'},
|
||||||
|
|||||||
Reference in New Issue
Block a user