优化检测脚本页面
录入检测脚本
This commit is contained in:
@@ -21,7 +21,7 @@
|
||||
v-if="row.show"
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
:disabled="disabled"
|
||||
:disabled="row.disabled || disabled"
|
||||
>
|
||||
<template #active-action>
|
||||
<span>√</span>
|
||||
@@ -39,7 +39,7 @@
|
||||
v-if="row.show"
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
:disabled="disabled"
|
||||
:disabled="row.disabled || disabled"
|
||||
>
|
||||
<template #active-action>
|
||||
<span>√</span>
|
||||
@@ -71,11 +71,17 @@ const props = defineProps({
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
options: {
|
||||
type: Array,
|
||||
required: true
|
||||
}
|
||||
})
|
||||
const tableData = ref<any[]>([])
|
||||
const info = async () => {
|
||||
let checkData: any = []
|
||||
let title = props.options.filter((i: any) => i.value == props.activeName)[0]
|
||||
|
||||
await checkDataList({
|
||||
scriptId: props.formContent.id,
|
||||
scriptType: props.activeName
|
||||
@@ -111,6 +117,7 @@ const info = async () => {
|
||||
id: k.id,
|
||||
pid: item.id,
|
||||
name: k.name,
|
||||
pname: item.name,
|
||||
dataType: item.name == '闪变' ? 'avg' : item.name == '暂态' ? 'avg' : 'real',
|
||||
show: true,
|
||||
errorFlag: childrenList[0].errorFlag,
|
||||
@@ -121,6 +128,8 @@ const info = async () => {
|
||||
id: k.id,
|
||||
pid: item.id,
|
||||
name: k.name,
|
||||
disabled: false,
|
||||
pname: item.name,
|
||||
dataType: item.name == '闪变' ? 'avg' : item.name == '暂态' ? 'avg' : 'real',
|
||||
show: true,
|
||||
errorFlag: 0,
|
||||
@@ -128,7 +137,22 @@ const info = async () => {
|
||||
})
|
||||
}
|
||||
})
|
||||
// 默认够选通讯脚本
|
||||
if (item.name == title.label.replace(/准确度|检测/g, '')) {
|
||||
if (item.name == '暂态') {
|
||||
tableData.value[i].children.forEach((k: any) => {
|
||||
k.disabled = true
|
||||
k.enable = 1
|
||||
k.errorFlag = 1
|
||||
})
|
||||
} else {
|
||||
tableData.value[i].children[0].disabled = true
|
||||
tableData.value[i].children[0].enable = 1
|
||||
tableData.value[i].children[0].errorFlag = 1
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
console.log('🚀 ~ item.children.forEach ~ tableData.value:', tableData.value)
|
||||
}
|
||||
const getData = () => {
|
||||
|
||||
@@ -9,7 +9,7 @@ let scriptForm: any = {
|
||||
inHarmFlag: false, //间谐波使能
|
||||
flickerFlag: false, //闪变使能
|
||||
dipFlag: false, //暂态使能
|
||||
famp: 0, //幅值
|
||||
famp: 100, //幅值
|
||||
fphase: 0, //相角
|
||||
harmList: [
|
||||
// {
|
||||
@@ -27,15 +27,15 @@ let scriptForm: any = {
|
||||
], //间谐波
|
||||
flickerData: {
|
||||
flickerValue: '1', //标准值
|
||||
fchagValue: '', //变动量
|
||||
fchagFre: '', //波动频度
|
||||
fchagValue: '2.724', //变动量
|
||||
fchagFre: '1', //波动频度
|
||||
waveType: 'CPM', // 波动类型
|
||||
waveFluType: 'SQU', //波类型
|
||||
fdutyCycle: 50 //占空比
|
||||
}, //闪变
|
||||
dipData: {
|
||||
ftransValue: 0, // 暂态幅值
|
||||
retainTime: 0 // 暂态持续时间
|
||||
ftransValue: '', // 暂态幅值
|
||||
retainTime: '' // 暂态持续时间
|
||||
} //暂态
|
||||
},
|
||||
{
|
||||
@@ -45,7 +45,7 @@ let scriptForm: any = {
|
||||
inHarmFlag: false, //间谐波使能
|
||||
flickerFlag: false, //闪变使能
|
||||
dipFlag: false, //暂态使能
|
||||
famp: 0, //幅值
|
||||
famp: 100, //幅值
|
||||
fphase: 0, //相角
|
||||
harmList: [], //谐波
|
||||
inharmList: [
|
||||
@@ -64,8 +64,8 @@ let scriptForm: any = {
|
||||
fdutyCycle: 50 //占空比
|
||||
}, //闪变
|
||||
dipData: {
|
||||
ftransValue: 0, // 暂态幅值
|
||||
retainTime: 0 // 暂态持续时间
|
||||
ftransValue: '', // 暂态幅值
|
||||
retainTime: '' // 暂态持续时间
|
||||
} //暂态
|
||||
},
|
||||
{
|
||||
@@ -75,8 +75,8 @@ let scriptForm: any = {
|
||||
inHarmFlag: false, //间谐波使能
|
||||
flickerFlag: false, //闪变使能
|
||||
dipFlag: false, //暂态使能
|
||||
famp: 0, //幅值
|
||||
fphase: 0, //相角
|
||||
famp: 100, //幅值
|
||||
fphase: -120, //相角
|
||||
harmList: [], //谐波
|
||||
inharmList: [
|
||||
{
|
||||
@@ -87,15 +87,15 @@ let scriptForm: any = {
|
||||
], //间谐波
|
||||
flickerData: {
|
||||
flickerValue: '1', //标准值
|
||||
fchagValue: '', //变动量
|
||||
fchagFre: '', //波动频度
|
||||
fchagValue: '2.724', //变动量
|
||||
fchagFre: '1', //波动频度
|
||||
waveType: 'CMP', // 波动类型
|
||||
waveFluType: 'SQU', //波类型
|
||||
fdutyCycle: 50 //占空比
|
||||
}, //闪变
|
||||
dipData: {
|
||||
ftransValue: 0, // 暂态幅值
|
||||
retainTime: 0 // 暂态持续时间
|
||||
ftransValue: '', // 暂态幅值
|
||||
retainTime: '' // 暂态持续时间
|
||||
} //暂态
|
||||
},
|
||||
{
|
||||
@@ -105,8 +105,8 @@ let scriptForm: any = {
|
||||
inHarmFlag: false, //间谐波使能
|
||||
flickerFlag: false, //闪变使能
|
||||
dipFlag: false, //暂态使能
|
||||
famp: 0, //幅值
|
||||
fphase: 0, //相角
|
||||
famp: 100, //幅值
|
||||
fphase:-120, //相角
|
||||
harmList: [], //谐波
|
||||
inharmList: [
|
||||
{
|
||||
@@ -124,8 +124,8 @@ let scriptForm: any = {
|
||||
fdutyCycle: 50 //占空比
|
||||
}, //闪变
|
||||
dipData: {
|
||||
ftransValue: 0, // 暂态幅值
|
||||
retainTime: 0 // 暂态持续时间
|
||||
ftransValue: '', // 暂态幅值
|
||||
retainTime: '' // 暂态持续时间
|
||||
} //暂态
|
||||
},
|
||||
{
|
||||
@@ -135,8 +135,8 @@ let scriptForm: any = {
|
||||
inHarmFlag: false, //间谐波使能
|
||||
flickerFlag: false, //闪变使能
|
||||
dipFlag: false, //暂态使能
|
||||
famp: 0, //幅值
|
||||
fphase: 0, //相角
|
||||
famp: 100, //幅值
|
||||
fphase: 120, //相角
|
||||
harmList: [], //谐波
|
||||
inharmList: [
|
||||
{
|
||||
@@ -147,15 +147,15 @@ let scriptForm: any = {
|
||||
], //间谐波
|
||||
flickerData: {
|
||||
flickerValue: '1', //标准值
|
||||
fchagValue: '', //变动量
|
||||
fchagFre: '', //波动频度
|
||||
fchagValue: '2.724', //变动量
|
||||
fchagFre: '1', //波动频度
|
||||
waveType: 'CMP', // 波动类型
|
||||
waveFluType: 'SQU', //波类型
|
||||
fdutyCycle: 50 //占空比
|
||||
}, //闪变
|
||||
dipData: {
|
||||
ftransValue: 0, // 暂态幅值
|
||||
retainTime: 0 // 暂态持续时间
|
||||
ftransValue: '', // 暂态幅值
|
||||
retainTime: '' // 暂态持续时间
|
||||
} //暂态
|
||||
},
|
||||
{
|
||||
@@ -165,8 +165,8 @@ let scriptForm: any = {
|
||||
inHarmFlag: false, //间谐波使能
|
||||
flickerFlag: false, //闪变使能
|
||||
dipFlag: false, //暂态使能
|
||||
famp: 0, //幅值
|
||||
fphase: 0, //相角
|
||||
famp: 100, //幅值
|
||||
fphase: 120, //相角
|
||||
harmList: [], //谐波
|
||||
inharmList: [
|
||||
{
|
||||
@@ -184,8 +184,8 @@ let scriptForm: any = {
|
||||
fdutyCycle: 50 //占空比
|
||||
}, //闪变
|
||||
dipData: {
|
||||
ftransValue: 0, // 暂态幅值
|
||||
retainTime: 0 // 暂态持续时间
|
||||
ftransValue: '', // 暂态幅值
|
||||
retainTime: '' // 暂态持续时间
|
||||
} //暂态
|
||||
}
|
||||
]
|
||||
@@ -202,5 +202,5 @@ function getScriptForm() {
|
||||
})
|
||||
}
|
||||
}
|
||||
getScriptForm()
|
||||
// getScriptForm()
|
||||
export default scriptForm
|
||||
|
||||
@@ -13,10 +13,23 @@
|
||||
>
|
||||
<el-table-column type="index" label="序号" width="60" />
|
||||
<el-table-column prop="pname" label="参考设定值类型" />
|
||||
<el-table-column prop="name" label="参考设定值子类型" />
|
||||
<el-table-column prop="name" label="参考设定值子类型" width="250">
|
||||
<template #default="{ row }">{{ row.harmNum ? `(${row.harmNum}次)` : '' }} {{ row.name }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="dataType" label="值类型" :formatter="formatter" />
|
||||
<el-table-column prop="phase" label="相别" />
|
||||
<el-table-column prop="value" label="参考设定值" />
|
||||
<el-table-column prop="value" label="参考设定值">
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.show">{{ row.value }}</span>
|
||||
<el-input
|
||||
type="number"
|
||||
v-else
|
||||
v-model="row.value"
|
||||
placeholder="请输入值"
|
||||
@blur="row.show = !row.show"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="value" label="参与误差比较">
|
||||
<template #default="{ row }">
|
||||
{{ row.errorFlag == 0 ? '否' : '是' }}
|
||||
@@ -24,7 +37,10 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作">
|
||||
<template #default="{ row }">
|
||||
<el-button type="primary" link :icon="EditPen">编辑</el-button>
|
||||
<el-button type="primary" link :icon="EditPen" @click="row.show = !row.show" v-if="row.show">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button type="primary" link :icon="Check" @click="row.show = !row.show" v-else>保存</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -52,7 +68,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { CirclePlus, EditPen, Delete, Share } from '@element-plus/icons-vue'
|
||||
import { CirclePlus, EditPen, Check, Share } from '@element-plus/icons-vue'
|
||||
import { reactive, ref } from 'vue'
|
||||
import { getDictTreeByCode } from '@/api/system/dictionary/dictTree'
|
||||
import { dialogBig } from '@/utils/elementBind'
|
||||
@@ -101,7 +117,7 @@ const formatter = (row: any, column: any) => {
|
||||
|
||||
// 打开弹窗,可能是新增,也可能是编辑
|
||||
|
||||
const open = async (row: any) => {
|
||||
const open = async (row: any, copyRowList: any) => {
|
||||
let treeData: any = []
|
||||
await getDictTreeByCode({
|
||||
name: '',
|
||||
@@ -127,21 +143,57 @@ const open = async (row: any) => {
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
let form = handleHarmData(JSON.parse(JSON.stringify(props.form)))
|
||||
let retryCompute = isEqual(form, copyRowList)
|
||||
await scriptDtlsCheckDataList({
|
||||
...props.form,
|
||||
...form,
|
||||
scriptId: props.formContent?.id,
|
||||
scriptType: props.activeName,
|
||||
checkDataList: checkDataList
|
||||
checkDataList: checkDataList,
|
||||
retryCompute: retryCompute
|
||||
}).then((res: any) => {
|
||||
res.data.forEach((item: any) => {
|
||||
let pList = treeData.filter((i: any) => i.id == item.pid)[0]
|
||||
item.pname = pList.name
|
||||
item.name = pList.children.filter((i: any) => i.id == item.valueType)[0].name
|
||||
item.show = true
|
||||
})
|
||||
tableData.value = res.data
|
||||
})
|
||||
}
|
||||
// 处理多余数据
|
||||
const handleHarmData = row => {
|
||||
row.channelList.forEach((channel: any) => {
|
||||
// 筛选出 famp 和 fphase 不同时为 0 的对象
|
||||
channel.harmList = channel.harmList.filter((item: any) => item.famp != 0 || item.fphase != 0)
|
||||
channel.inharmList = channel.inharmList.filter(
|
||||
(item: any) => item.inharm !== '' || item.famp !== 0 || item.fphase !== 0
|
||||
)
|
||||
})
|
||||
return row
|
||||
}
|
||||
// 判断数据是否变化
|
||||
const isEqual = (obj1, obj2) => {
|
||||
// 如果两个对象是同一个引用,直接返回 true
|
||||
if (obj1 == obj2) return true
|
||||
// 如果其中一个是 null 或者不是对象,返回 false
|
||||
if (obj1 === null || typeof obj1 !== 'object' || obj2 === null || typeof obj2 !== 'object') {
|
||||
return false
|
||||
}
|
||||
// 获取两个对象的键
|
||||
const keys1 = Object.keys(obj1)
|
||||
const keys2 = Object.keys(obj2)
|
||||
// 如果键的数量不同,返回 false
|
||||
if (keys1.length !== keys2.length) return false
|
||||
// 遍历所有键,递归比较值
|
||||
for (const key of keys1) {
|
||||
if (!keys2.includes(key) || !isEqual(obj1[key], obj2[key])) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
const save = () => {
|
||||
dialogVisible.value = false
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<el-dialog :title="dialogTitle" v-model="dialogVisible" @close="close" v-bind="dialogBig" width="1400px">
|
||||
<el-carousel height="620px" :autoplay="false" ref="carouselRef" indicator-position="none">
|
||||
<el-dialog :title="dialogTitle" v-model="dialogVisible" @close="close" v-bind="dialogBig" width="1450px">
|
||||
<el-carousel height="600px" :autoplay="false" ref="carouselRef" indicator-position="none">
|
||||
<el-carousel-item :name="0" style="height: 100%; overflow-y: auto">
|
||||
<div class="dialog-content">
|
||||
<el-tabs type="border-card" class="right-tabs">
|
||||
@@ -110,16 +110,11 @@
|
||||
<el-tabs type="border-card" class="right-tabs" style="height: 100%">
|
||||
<el-tab-pane label="全局设置菜单">
|
||||
<!-- 全局设置菜单内容 -->
|
||||
<div style="height: 295px">
|
||||
<div style="height: 295px; width: 170px">
|
||||
<div class="form-item-container">
|
||||
<el-form-item label="频率:" prop="name">
|
||||
<div class="input-label-container">
|
||||
<el-input
|
||||
type="number"
|
||||
@mousewheel.native.prevent
|
||||
style="width: 100px"
|
||||
v-model="form.ffreq"
|
||||
/>
|
||||
<el-input type="number" style="width: 100px" v-model="form.ffreq" />
|
||||
<label>Hz</label>
|
||||
</div>
|
||||
</el-form-item>
|
||||
@@ -132,7 +127,7 @@
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
<div style="margin-top: 10px; height: 245px">
|
||||
<div style="margin-top: 10px; height: 234px">
|
||||
<el-tabs type="border-card" class="custom-tabs">
|
||||
<el-tab-pane label="电压/电流编辑" v-if="childForm[0].channelFlag || childForm[1].channelFlag">
|
||||
<TestScriptVolCurTab :childForm="childForm" :valueCode="valueCode" />
|
||||
@@ -213,6 +208,7 @@ const props = defineProps({
|
||||
required: true
|
||||
}
|
||||
})
|
||||
const copyRowList = ref({})
|
||||
const key = ref(0)
|
||||
// let valueType
|
||||
const showSetValueTable = ref(false)
|
||||
@@ -262,7 +258,7 @@ const tableStyle = {
|
||||
}
|
||||
}
|
||||
const handleRowClick = async (row: any, column: any) => {
|
||||
if (column.label == '相别') {
|
||||
if (column.label == '相别' || column.label == '操作') {
|
||||
childForm.value = []
|
||||
selectedRow.value = row.name
|
||||
childForm.value.push(form.value.channelList[row.sort * 2])
|
||||
@@ -283,6 +279,12 @@ const close = () => {
|
||||
const save = () => {
|
||||
let copyForm = handleHarmData()
|
||||
copyForm.checkDataList = setValueTableRef.value?.getTableData()
|
||||
if (copyForm.checkDataList.some(item => item.value === null || item.value === '')) {
|
||||
return ElMessage.warning({
|
||||
message: '请填写所有参考设定值',
|
||||
type: 'warning'
|
||||
})
|
||||
}
|
||||
addScriptDtls({ ...copyForm, scriptId: props.formContent.id, scriptType: props.activeName }).then(res => {
|
||||
if (res.code === 'A0000') {
|
||||
ElMessage.success({
|
||||
@@ -305,48 +307,207 @@ const next = () => {
|
||||
emit('getCommunication')
|
||||
setTimeout(() => {
|
||||
// 判断通讯脚本
|
||||
if (!checkFlags(props.communicationList)) {
|
||||
if (form.value.ffreq == '') {
|
||||
ElMessage.warning({
|
||||
message: '请先完善通讯脚本',
|
||||
message: '请填写频率!',
|
||||
type: 'warning'
|
||||
})
|
||||
return
|
||||
}
|
||||
// 判断够选通道
|
||||
if (!checkChannel(form.value)) {
|
||||
let { flag, message } = checkFlags()
|
||||
// // 判断够选通道
|
||||
if (!flag) {
|
||||
ElMessage.warning({
|
||||
message: '请先选择使能通道',
|
||||
message: message,
|
||||
type: 'warning'
|
||||
})
|
||||
return
|
||||
}
|
||||
}, 100)
|
||||
showSetValueTable.value = true
|
||||
setTimeout(() => {
|
||||
setValueTableRef.value?.open(props.communicationList)
|
||||
|
||||
carouselRef.value.setActiveItem(1)
|
||||
showSetValueTable.value = true
|
||||
setTimeout(() => {
|
||||
setValueTableRef.value?.open(props.communicationList, copyRowList.value)
|
||||
|
||||
carouselRef.value.setActiveItem(1)
|
||||
}, 100)
|
||||
}, 100)
|
||||
// 切换轮播图
|
||||
}
|
||||
// 判断通讯脚本是否有值
|
||||
const checkFlags = (data: any) => {
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
const item = data[i]
|
||||
if (item.children) {
|
||||
for (let j = 0; j < item.children.length; j++) {
|
||||
const child = item.children[j]
|
||||
if (child.errorFlag != 0 || child.enable != 0) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
// 判断够选通道
|
||||
const checkFlags = () => {
|
||||
let list: any = []
|
||||
let flag = true
|
||||
let message = ''
|
||||
props.communicationList.forEach((item: any) => {
|
||||
list.push(...item.children.filter((item: any) => item.enable != 0 || item.errorFlag != 0))
|
||||
})
|
||||
|
||||
for (const item of list) {
|
||||
switch (item.pname) {
|
||||
case '频率':
|
||||
flag = form.value.channelList.some(item => item.channelFlag == true)
|
||||
message = '请选择通道使能'
|
||||
break
|
||||
case '电压':
|
||||
if (
|
||||
form.value.channelList[0].channelFlag == false &&
|
||||
form.value.channelList[2].channelFlag == false &&
|
||||
form.value.channelList[4].channelFlag == false
|
||||
)
|
||||
return { flag: false, message: '通讯脚本中够选了电压,请选择电压通道使能' }
|
||||
|
||||
break
|
||||
case '谐波电压':
|
||||
if (
|
||||
form.value.channelList[0].harmFlag == false &&
|
||||
form.value.channelList[2].harmFlag == false &&
|
||||
form.value.channelList[4].harmFlag == false
|
||||
)
|
||||
return { flag: false, message: '通讯脚本中够选了谐波电压,请选择谐波电压通道使能' }
|
||||
break
|
||||
case '谐波电流':
|
||||
if (
|
||||
form.value.channelList[1].harmFlag == false &&
|
||||
form.value.channelList[3].harmFlag == false &&
|
||||
form.value.channelList[5].harmFlag == false
|
||||
)
|
||||
return { flag: false, message: '通讯脚本中够选了谐波电流,请选择谐波电流通道使能' }
|
||||
break
|
||||
case '谐波有功功率':
|
||||
if (
|
||||
form.value.channelList[0].harmFlag == false &&
|
||||
form.value.channelList[1].harmFlag == false &&
|
||||
form.value.channelList[2].harmFlag == false &&
|
||||
form.value.channelList[3].harmFlag == false &&
|
||||
form.value.channelList[4].harmFlag == false &&
|
||||
form.value.channelList[5].harmFlag == false
|
||||
)
|
||||
return { flag: false, message: '通讯脚本中够选了谐波有功功率,请选择间电压、电流谐波通道使能' }
|
||||
break
|
||||
case '间谐波电压':
|
||||
if (
|
||||
form.value.channelList[0].inHarmFlag == false &&
|
||||
form.value.channelList[2].inHarmFlag == false &&
|
||||
form.value.channelList[4].inHarmFlag == false
|
||||
)
|
||||
return { flag: false, message: '通讯脚本中够选了间谐波电压,请选择间谐波电压通道使能' }
|
||||
break
|
||||
case '间谐波电流':
|
||||
if (
|
||||
form.value.channelList[1].inHarmFlag == false &&
|
||||
form.value.channelList[3].inHarmFlag == false &&
|
||||
form.value.channelList[5].inHarmFlag == false
|
||||
)
|
||||
return { flag: false, message: '通讯脚本中够选了间谐波电流,请选择间谐波电流通道使能' }
|
||||
break
|
||||
case '暂态':
|
||||
if (
|
||||
form.value.channelList[0].dipFlag == false &&
|
||||
form.value.channelList[2].dipFlag == false &&
|
||||
form.value.channelList[4].dipFlag == false
|
||||
)
|
||||
return { flag: false, message: '通讯脚本中够选了暂态,请选择电压暂态通道使能' }
|
||||
break
|
||||
case '电流':
|
||||
if (
|
||||
form.value.channelList[1].channelFlag == false &&
|
||||
form.value.channelList[3].channelFlag == false &&
|
||||
form.value.channelList[5].channelFlag == false
|
||||
)
|
||||
return { flag: false, message: '通讯脚本中够选了电压,请选择电压通道使能' }
|
||||
break
|
||||
case '三相电压不平衡度':
|
||||
if (
|
||||
form.value.channelList[0].channelFlag == false ||
|
||||
form.value.channelList[2].channelFlag == false ||
|
||||
form.value.channelList[4].channelFlag == false
|
||||
)
|
||||
return { flag: false, message: '通讯脚本中够选了三相电压不平衡度,请选择电压A、B、C通道使能' }
|
||||
break
|
||||
case '三相电流不平衡度':
|
||||
if (
|
||||
form.value.channelList[1].channelFlag == false ||
|
||||
form.value.channelList[3].channelFlag == false ||
|
||||
form.value.channelList[5].channelFlag == false
|
||||
)
|
||||
return { flag: false, message: '通讯脚本中够选了三相电流不平衡度,请选择电流A、B、C通道使能' }
|
||||
break
|
||||
case '闪变':
|
||||
if (
|
||||
form.value.channelList[0].flickerFlag == false &&
|
||||
form.value.channelList[2].flickerFlag == false &&
|
||||
form.value.channelList[4].flickerFlag == false
|
||||
)
|
||||
return { flag: false, message: '通讯脚本中够选了闪变,请选择电压闪变通道使能' }
|
||||
break
|
||||
}
|
||||
}
|
||||
return false
|
||||
|
||||
for (let index = 0; index < form.value.channelList.length; index++) {
|
||||
const item = form.value.channelList[index]
|
||||
const result = checkChannelValues(item, index)
|
||||
|
||||
if (!result.flag) {
|
||||
flag = result.flag
|
||||
message = result.message
|
||||
break // 如果发现错误,直接退出循环
|
||||
}
|
||||
}
|
||||
|
||||
return { flag, message }
|
||||
}
|
||||
// 判断够选通道
|
||||
const checkChannel = (data: row) => {
|
||||
return data.channelList.every(item => item.channelFlag === true)
|
||||
// 判断通道值
|
||||
const checkChannelValues = (item: any, index: number) => {
|
||||
const channelNames = ['L1/Ua', 'L1/Ia', 'L2/Ub', 'L2/Ib', 'L3/Uc', 'L3/Ic']
|
||||
const channelName = channelNames[index] || ''
|
||||
|
||||
// 检查通道使能
|
||||
if (item.channelFlag === false && (item.harmFlag || item.inHarmFlag || item.flickerFlag || item.dipFlag)) {
|
||||
return { flag: false, message: `请选择${channelName}通道使能` }
|
||||
}
|
||||
|
||||
// 检查通道使能值
|
||||
if (item.channelFlag === true && (item.famp === '' || item.fphase === '')) {
|
||||
return { flag: false, message: '请填写通道使能值' }
|
||||
}
|
||||
|
||||
// 检查谐波使能值
|
||||
if (item.harmFlag === true && item.harmList.filter(harm => harm.famp != 0 || harm.fphase != 0).length == 0) {
|
||||
return { flag: false, message: '请填写谐波使能值' }
|
||||
}
|
||||
|
||||
// 检查间谐波使能值
|
||||
if (
|
||||
item.inHarmFlag === true &&
|
||||
item.inharmList.filter(harm => harm.inharm !== '' || harm.famp !== 0 || harm.fphase !== 0).length === 0
|
||||
) {
|
||||
return { flag: false, message: '请填写间谐波使能值' }
|
||||
}
|
||||
|
||||
// 检查闪变使能值
|
||||
if (
|
||||
item.flickerFlag === true &&
|
||||
(item.flickerData.fchagFre === '' || item.flickerData.fchagValue === '') &&
|
||||
index != 1 &&
|
||||
index != 3 &&
|
||||
index != 5
|
||||
) {
|
||||
return { flag: false, message: '请填写闪变使能值' }
|
||||
}
|
||||
|
||||
// 检查暂态使能值
|
||||
if (
|
||||
item.dipFlag === true &&
|
||||
(item.dipData.ftransValue === '' || item.dipData.retainTime === '') &&
|
||||
index != 1 &&
|
||||
index != 3 &&
|
||||
index != 5
|
||||
) {
|
||||
return { flag: false, message: '请填写暂态使能值' }
|
||||
}
|
||||
|
||||
return { flag: true, message: '' }
|
||||
}
|
||||
//处理谐波数据
|
||||
const handleHarmData = () => {
|
||||
@@ -354,7 +515,7 @@ const handleHarmData = () => {
|
||||
|
||||
copyForm.channelList.forEach((channel: any) => {
|
||||
// 筛选出 famp 和 fphase 不同时为 0 的对象
|
||||
channel.harmList = channel.harmList.filter((item: any) => item.famp !== 0 || item.fphase !== 0)
|
||||
channel.harmList = channel.harmList.filter((item: any) => item.famp != 0 || item.fphase != 0)
|
||||
channel.inharmList = channel.inharmList.filter(
|
||||
(item: any) => item.inharm !== '' || item.famp !== 0 || item.fphase !== 0
|
||||
)
|
||||
@@ -365,40 +526,61 @@ const handleHarmData = () => {
|
||||
// 打开弹窗,可能是新增,也可能是编辑
|
||||
const open = (sign: string, row: any) => {
|
||||
dialogVisible.value = true
|
||||
|
||||
dialogTitle.value = sign === 'add' ? '新增检测项目信息' : '编辑检测项目信息'
|
||||
// 添加选择检测项目
|
||||
tabChildren.value = props.options.filter(item => item.value == props.activeName)[0].children || []
|
||||
// subType.value = tabChildren.value[0].code || ''
|
||||
if (sign == 'add') {
|
||||
form.value.subType = props.childActiveName == '' ? tabChildren.value[0].code || '' : props.childActiveName
|
||||
} else {
|
||||
form.value = setharmList(JSON.parse(JSON.stringify(row)))
|
||||
}
|
||||
handleRowClick({ name: 'L1', sort: 0 }, { label: '相别' })
|
||||
dictStore.getDictData('Script_Value_Type')
|
||||
valueCode.value = dictStore
|
||||
.getDictData('Script_Value_Type')
|
||||
.filter(item => item.id == props.formContent.valueType)[0].code
|
||||
dialogTitle.value = sign === 'add' ? '新增检测项目信息' : '编辑检测项目信息'
|
||||
// 添加选择检测项目
|
||||
tabChildren.value = JSON.parse(
|
||||
JSON.stringify(props.options.filter(item => item.value == props.activeName)[0].children || [])
|
||||
)
|
||||
|
||||
// 判断是否存在 code 在 targetCodes 中
|
||||
const hasTargetCode = tabChildren.value.some(item =>
|
||||
['Base_0_10', 'Base_20_85', 'Base_110_200'].includes(item.code)
|
||||
)
|
||||
if (hasTargetCode) {
|
||||
tabChildren.value.unshift({
|
||||
code: 'Base',
|
||||
label: '额定工作条件下的检测',
|
||||
value: '999999999999999999'
|
||||
})
|
||||
tabChildren.value = tabChildren.value.filter(
|
||||
item => item.code !== 'Base_0_10' && item.code !== 'Base_20_85' && item.code !== 'Base_110_200'
|
||||
)
|
||||
}
|
||||
|
||||
// subType.value = tabChildren.value[0].code || ''
|
||||
if (sign == 'add') {
|
||||
form.value.subType =
|
||||
props.childActiveName == ''
|
||||
? JSON.parse(JSON.stringify(tabChildren.value[0].code)) || ''
|
||||
: JSON.parse(JSON.stringify(props.childActiveName))
|
||||
|
||||
if (valueCode.value == 'Absolute') {
|
||||
form.value.channelList.forEach((item: any) => {
|
||||
item.famp = 0
|
||||
item.fphase = 0
|
||||
})
|
||||
}
|
||||
} else {
|
||||
form.value = setharmList(JSON.parse(JSON.stringify(row)))
|
||||
copyRowList.value = JSON.parse(JSON.stringify(row))
|
||||
}
|
||||
if (['Base_0_10', 'Base_20_85', 'Base_110_200'].includes(form.value.subType)) {
|
||||
form.value.subType = 'Base'
|
||||
}
|
||||
|
||||
handleRowClick({ name: 'L1', sort: 0 }, { label: '相别' })
|
||||
dictStore.getDictData('Script_Value_Type')
|
||||
}
|
||||
|
||||
// 判断后台没有谐波,简谐波值 用于回显
|
||||
|
||||
const setharmList = (row: any) => {
|
||||
row.channelList.forEach((item: any) => {
|
||||
let harmList = []
|
||||
|
||||
for (let i = 2; i < 51; i++) {
|
||||
let data = item.harmList.filter((harm: any) => harm.harm == i)
|
||||
if (data.length > 0) {
|
||||
harmList.push({ harm: i, famp: data[0].famp, fphase: data[0].fphase })
|
||||
} else {
|
||||
harmList.push({ harm: i, famp: 0, fphase: 0 })
|
||||
}
|
||||
}
|
||||
item.harmList = harmList
|
||||
|
||||
if (item.inharmList.length == 0) {
|
||||
item.inharmList.push({ inharm: 0, famp: 0, fphase: 0 })
|
||||
item.inharmList.push({ inharm: '', famp: 0, fphase: 0 })
|
||||
}
|
||||
})
|
||||
|
||||
@@ -408,12 +590,12 @@ const setharmList = (row: any) => {
|
||||
const copyRow = (num: number, index: number) => {
|
||||
form.value.channelList[index] = JSON.parse(JSON.stringify(form.value.channelList[num]))
|
||||
form.value.channelList[index + 1] = JSON.parse(JSON.stringify(form.value.channelList[num + 1]))
|
||||
form.value.channelList[num].channelType == 'Ua'
|
||||
? (form.value.channelList[index].channelType = 'Ub')
|
||||
: (form.value.channelList[index].channelType = 'Uc')
|
||||
form.value.channelList[num + 1].channelType == 'Ia'
|
||||
? (form.value.channelList[index + 1].channelType = 'Ib')
|
||||
: (form.value.channelList[index + 1].channelType = 'Ic')
|
||||
form.value.channelList[0].channelType = 'Ua'
|
||||
form.value.channelList[1].channelType = 'Ia'
|
||||
form.value.channelList[2].channelType = 'Ub'
|
||||
form.value.channelList[3].channelType = 'Ia'
|
||||
form.value.channelList[4].channelType = 'Uc'
|
||||
form.value.channelList[5].channelType = 'Ic'
|
||||
key.value += 1
|
||||
ElMessage.success({
|
||||
message: '复制成功!',
|
||||
@@ -480,4 +662,10 @@ defineExpose({ open })
|
||||
:deep(.el-carousel__arrow) {
|
||||
display: none !important;
|
||||
}
|
||||
:deep(.el-tabs--border-card > .el-tabs__content) {
|
||||
padding: 10px;
|
||||
}
|
||||
:deep(.el-table__body) {
|
||||
border-top: var(--el-table-border);
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
<Commun
|
||||
:activeName="activeName"
|
||||
:formContent="props.formContent"
|
||||
:options="props.options"
|
||||
style="width: 400px"
|
||||
:disabled="tab.children.length == 0 ? false : true"
|
||||
ref="communRef"
|
||||
@@ -65,36 +66,50 @@
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<table class="tableL">
|
||||
<tr>
|
||||
<td class="theFirst">V</td>
|
||||
<td>
|
||||
{{
|
||||
'电压=' +
|
||||
row.channelList[item.num]?.famp +
|
||||
(valueCode == 'Absolute' ? 'V' : '%')
|
||||
}}
|
||||
</td>
|
||||
<td>
|
||||
{{ '相角=' + row.channelList[item.num]?.fphase + '°' }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="theFirst">I</td>
|
||||
<td>
|
||||
{{
|
||||
'电流=' +
|
||||
row.channelList[item.num + 1]?.famp +
|
||||
(valueCode == 'Absolute' ? 'V' : '%')
|
||||
}}
|
||||
</td>
|
||||
<td>
|
||||
{{
|
||||
'相角=' +
|
||||
row.channelList[item.num + 1]?.fphase +
|
||||
'°'
|
||||
}}
|
||||
</td>
|
||||
</tr>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="theFirst">V</td>
|
||||
<td>
|
||||
{{
|
||||
row.channelList[item.num].famp == null
|
||||
? '/'
|
||||
: '电压=' +
|
||||
row.channelList[item.num]?.famp +
|
||||
(valueCode == 'Absolute' ? 'V' : '%')
|
||||
}}
|
||||
</td>
|
||||
<td>
|
||||
{{
|
||||
row.channelList[item.num].fphase == null
|
||||
? '/'
|
||||
: '相角=' +
|
||||
row.channelList[item.num].fphase +
|
||||
'°'
|
||||
}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="theFirst">I</td>
|
||||
<td>
|
||||
{{
|
||||
row.channelList[item.num + 1].famp == null
|
||||
? '/'
|
||||
: '电流=' +
|
||||
row.channelList[item.num + 1].famp +
|
||||
(valueCode == 'Absolute' ? 'V' : '%')
|
||||
}}
|
||||
</td>
|
||||
<td>
|
||||
{{
|
||||
row.channelList[item.num + 1].fphase == null
|
||||
? '/'
|
||||
: '相角=' +
|
||||
row.channelList[item.num + 1].fphase +
|
||||
'°'
|
||||
}}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -181,6 +196,7 @@ import { CheckData } from '@/api/check/interface'
|
||||
import { dlsDetails, deleteDtls, updateDtls, addScriptDtls, checkDataList } from '@/api/device/testScript'
|
||||
import { useDictStore } from '@/stores/modules/dict'
|
||||
import { useHandleData } from '@/hooks/useHandleData'
|
||||
import { scriptDtlsCheckDataList } from '@/api/device/testScript/index'
|
||||
interface TabOption {
|
||||
label?: string
|
||||
name?: string
|
||||
@@ -273,9 +289,15 @@ const getCommunication = () => {
|
||||
const tabChange = () => {
|
||||
if (copyActiveName.value != activeName.value) {
|
||||
copyActiveName.value == activeName.value
|
||||
childActiveName.value = ''
|
||||
childActiveName.value =
|
||||
tabData.value.filter((item: any) => item.value == activeName.value)[0]?.children[0]?.value || ''
|
||||
|
||||
if (
|
||||
tabData.value
|
||||
.filter((item: any) => item.value == activeName.value)[0]
|
||||
?.children.filter((item: any) => item.value == childActiveName.value).length == 0
|
||||
) {
|
||||
childActiveName.value =
|
||||
tabData.value.filter((item: any) => item.value == activeName.value)[0]?.children[0]?.value || ''
|
||||
}
|
||||
}
|
||||
inquireTable()
|
||||
}
|
||||
@@ -308,10 +330,26 @@ const openDialog = (titleType: string, row: Partial<TestScript.ResTestScript> =
|
||||
}, 0)
|
||||
}
|
||||
// 复制
|
||||
const copyRow = (row: any) => {
|
||||
const copyRow = async (row: any) => {
|
||||
let checkDataList: any = []
|
||||
await communRef.value[0]?.getData().forEach((item: any) => {
|
||||
item.children.forEach((k: any) => {
|
||||
if (k.enable != 0 || k.errorFlag != 0) {
|
||||
checkDataList.push({
|
||||
pid: k.pid,
|
||||
valueType: k.id,
|
||||
dataType: k.dataType,
|
||||
enable: k.enable,
|
||||
errorFlag: k.errorFlag
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
let { data } = await scriptDtlsCheckDataList({ checkDataList: checkDataList, ...row, retryCompute: true })
|
||||
let copyRow = JSON.parse(JSON.stringify(row))
|
||||
delete copyRow.index
|
||||
addScriptDtls({ ...copyRow, scriptType: activeName.value }).then(res => {
|
||||
|
||||
await addScriptDtls({ ...copyRow, scriptType: activeName.value, checkDataList: data }).then(res => {
|
||||
if (res.code === 'A0000') {
|
||||
ElMessage.success({
|
||||
message: '复制成功!',
|
||||
|
||||
@@ -27,10 +27,21 @@
|
||||
<div class="right-editor">
|
||||
<!-- 右侧编辑区域内容 -->
|
||||
<el-form-item label-width="120px" label="设定幅度(%)">
|
||||
<el-input v-model="form[0].dipData.ftransValue" style="width: 150px" :disabled="!form[0].dipFlag"/>
|
||||
<el-input
|
||||
type="number"
|
||||
@input="handleInput"
|
||||
v-model="form[0].dipData.ftransValue"
|
||||
style="width: 150px"
|
||||
:disabled="!form[0].dipFlag"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="120px" label="持续时间(周波)">
|
||||
<el-input v-model="form[0].dipData.retainTime" style="width: 150px" :disabled="!form[0].dipFlag"/>
|
||||
<el-input
|
||||
type="number"
|
||||
v-model="form[0].dipData.retainTime"
|
||||
style="width: 150px"
|
||||
:disabled="!form[0].dipFlag"
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
@@ -50,6 +61,13 @@ const form: any = computed({
|
||||
},
|
||||
set(value) {}
|
||||
})
|
||||
const handleInput = value => {
|
||||
if (value < 0) {
|
||||
props.childForm[0].dipData.ftransValue = 0
|
||||
} else if (value > 200) {
|
||||
props.childForm[0].dipData.ftransValue = 200
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
@@ -5,20 +5,6 @@
|
||||
<!-- 全局设置菜单内容 Modulation-->
|
||||
|
||||
<div style="display: flex">
|
||||
<el-form-item label="标准值">
|
||||
<el-select
|
||||
v-model="form[0].flickerData.flickerValue"
|
||||
style="width: 180px"
|
||||
placeholder="请选择标准值"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in standard"
|
||||
:key="item.label"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item abel-width="180px">
|
||||
<template #label>
|
||||
<el-select
|
||||
@@ -39,7 +25,6 @@
|
||||
placeholder="请选择波动类型"
|
||||
style="width: 180px"
|
||||
filterable
|
||||
allow-create
|
||||
v-model="form[0].flickerData.fchagFre"
|
||||
:disabled="!form[0].flickerFlag || props.childForm[0].flickerData.flickerValue == null"
|
||||
@change="changeWaveType"
|
||||
@@ -105,21 +90,27 @@ const props = defineProps({
|
||||
}
|
||||
})
|
||||
|
||||
const standard = [
|
||||
{
|
||||
label: '1',
|
||||
value: '1'
|
||||
},
|
||||
{
|
||||
label: '3',
|
||||
value: '3'
|
||||
}
|
||||
]
|
||||
const waveList = [
|
||||
{
|
||||
label: '变动频度(次/min)',
|
||||
value: 'CPM',
|
||||
children1: [
|
||||
children: [
|
||||
{
|
||||
fchagFre: '0.1',
|
||||
fchagValue: '7.4'
|
||||
},
|
||||
{
|
||||
fchagFre: '0.2',
|
||||
fchagValue: '4.58'
|
||||
},
|
||||
{
|
||||
fchagFre: '0.4',
|
||||
fchagValue: '3.54'
|
||||
},
|
||||
{
|
||||
fchagFre: '0.6',
|
||||
fchagValue: '3.2'
|
||||
},
|
||||
{
|
||||
fchagFre: '1',
|
||||
fchagValue: '2.724'
|
||||
@@ -128,42 +119,116 @@ const waveList = [
|
||||
fchagFre: '2',
|
||||
fchagValue: '2.211'
|
||||
},
|
||||
{
|
||||
fchagFre: '3',
|
||||
fchagValue: '1.95'
|
||||
},
|
||||
{
|
||||
fchagFre: '5',
|
||||
fchagValue: '1.64'
|
||||
},
|
||||
{
|
||||
fchagFre: '7',
|
||||
fchagValue: '1.459'
|
||||
},
|
||||
{
|
||||
fchagFre: '10',
|
||||
fchagValue: '1.29'
|
||||
},
|
||||
{
|
||||
fchagFre: '22',
|
||||
fchagValue: '1.02'
|
||||
},
|
||||
{
|
||||
fchagFre: '39',
|
||||
fchagValue: '0.906'
|
||||
},
|
||||
{
|
||||
fchagFre: '48',
|
||||
fchagValue: '0.87'
|
||||
},
|
||||
{
|
||||
fchagFre: '68',
|
||||
fchagValue: '0.81'
|
||||
},
|
||||
{
|
||||
fchagFre: '110',
|
||||
fchagValue: '0.725'
|
||||
},
|
||||
{
|
||||
fchagFre: '176',
|
||||
fchagValue: '0.64'
|
||||
},
|
||||
{
|
||||
fchagFre: '273',
|
||||
fchagValue: '0.56'
|
||||
},
|
||||
{
|
||||
fchagFre: '375',
|
||||
fchagValue: '0.5'
|
||||
},
|
||||
{
|
||||
fchagFre: '480',
|
||||
fchagValue: '0.48'
|
||||
},
|
||||
{
|
||||
fchagFre: '585',
|
||||
fchagValue: '0.42'
|
||||
},
|
||||
{
|
||||
fchagFre: '682',
|
||||
fchagValue: '0.37'
|
||||
},
|
||||
{
|
||||
fchagFre: '796',
|
||||
fchagValue: '0.32'
|
||||
},
|
||||
{
|
||||
fchagFre: '1020',
|
||||
fchagValue: '0.28'
|
||||
},
|
||||
{
|
||||
fchagFre: '1055',
|
||||
fchagValue: '0.28'
|
||||
},
|
||||
{
|
||||
fchagFre: '1200',
|
||||
fchagValue: '0.29'
|
||||
},
|
||||
{
|
||||
fchagFre: '1390',
|
||||
fchagValue: '0.34'
|
||||
},
|
||||
{
|
||||
fchagFre: '1620',
|
||||
fchagValue: '0.402'
|
||||
}
|
||||
],
|
||||
children3: [
|
||||
{
|
||||
fchagFre: '7',
|
||||
fchagValue: '4.377'
|
||||
},
|
||||
{
|
||||
fchagFre: '110',
|
||||
fchagValue: '2.175'
|
||||
},
|
||||
{
|
||||
fchagFre: '1620',
|
||||
fchagValue: '1.206'
|
||||
fchagFre: '2400',
|
||||
fchagValue: '0.77'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: '变动频率(HZ)',
|
||||
value: 'HZ',
|
||||
children1: [
|
||||
children: [
|
||||
{
|
||||
fchagFre: '0.000833',
|
||||
fchagValue: '7.4'
|
||||
},
|
||||
{
|
||||
fchagFre: '0.001667',
|
||||
fchagValue: '4.58'
|
||||
},
|
||||
{
|
||||
fchagFre: '0.003333',
|
||||
fchagValue: '3.54'
|
||||
},
|
||||
{
|
||||
fchagFre: '0.005000',
|
||||
fchagValue: '3.2'
|
||||
},
|
||||
{
|
||||
fchagFre: '0.008333',
|
||||
fchagValue: '2.724'
|
||||
@@ -172,67 +237,121 @@ const waveList = [
|
||||
fchagFre: '0.016667',
|
||||
fchagValue: '2.211'
|
||||
},
|
||||
{
|
||||
fchagFre: '0.025000',
|
||||
fchagValue: '1.95'
|
||||
},
|
||||
{
|
||||
fchagFre: '0.041667',
|
||||
fchagValue: '1.64'
|
||||
},
|
||||
{
|
||||
fchagFre: '0.058333',
|
||||
fchagValue: '1.459'
|
||||
},
|
||||
{
|
||||
fchagFre: '0.325',
|
||||
fchagFre: '0.083333',
|
||||
fchagValue: '1.29'
|
||||
},
|
||||
{
|
||||
fchagFre: '0.183333',
|
||||
fchagValue: '1.02'
|
||||
},
|
||||
{
|
||||
fchagFre: '0.325000',
|
||||
fchagValue: '0.906'
|
||||
},
|
||||
{
|
||||
fchagFre: '0.916',
|
||||
fchagFre: '0.400000',
|
||||
fchagValue: '0.87'
|
||||
},
|
||||
{
|
||||
fchagFre: '0.566667',
|
||||
fchagValue: '0.81'
|
||||
},
|
||||
{
|
||||
fchagFre: '0.916667',
|
||||
fchagValue: '0.725'
|
||||
},
|
||||
{
|
||||
fchagFre: '13.5',
|
||||
fchagFre: '1.466667',
|
||||
fchagValue: '0.64'
|
||||
},
|
||||
{
|
||||
fchagFre: '2.275000',
|
||||
fchagValue: '0.56'
|
||||
},
|
||||
{
|
||||
fchagFre: '3.125000',
|
||||
fchagValue: '0.5'
|
||||
},
|
||||
{
|
||||
fchagFre: '4.000000',
|
||||
fchagValue: '0.48'
|
||||
},
|
||||
{
|
||||
fchagFre: '4.875000',
|
||||
fchagValue: '0.42'
|
||||
},
|
||||
{
|
||||
fchagFre: '5.683333',
|
||||
fchagValue: '0.37'
|
||||
},
|
||||
{
|
||||
fchagFre: '6.633333',
|
||||
fchagValue: '0.32'
|
||||
},
|
||||
{
|
||||
fchagFre: '8.500000',
|
||||
fchagValue: '0.28'
|
||||
},
|
||||
{
|
||||
fchagFre: '8.791667',
|
||||
fchagValue: '0.28'
|
||||
},
|
||||
{
|
||||
fchagFre: '10.000000',
|
||||
fchagValue: '0.29'
|
||||
},
|
||||
{
|
||||
fchagFre: '11.583333',
|
||||
fchagValue: '0.34'
|
||||
},
|
||||
{
|
||||
fchagFre: '13.500000',
|
||||
fchagValue: '0.402'
|
||||
}
|
||||
],
|
||||
children3: [
|
||||
{
|
||||
fchagFre: '0.058333',
|
||||
fchagValue: '4.377'
|
||||
},
|
||||
{
|
||||
fchagFre: '0.916',
|
||||
fchagValue: '2.175'
|
||||
},
|
||||
{
|
||||
fchagFre: '13.5',
|
||||
fchagValue: '1.206'
|
||||
fchagFre: '20.000000',
|
||||
fchagValue: '0.77'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
const waveChildrenList = computed(() => {
|
||||
return waveList.filter((item: any) => item.value === form.value[0].flickerData.waveType)[0][
|
||||
props.childForm[0].flickerData.flickerValue == '1' ? 'children1' : 'children3'
|
||||
]
|
||||
return waveList.filter((item: any) => item.value === form.value[0].flickerData.waveType)[0].children
|
||||
})
|
||||
const changeLable = e => {
|
||||
setTimeout(() => {
|
||||
if (props.childForm[0].flickerData.fchagFre != '') {
|
||||
let data = waveChildrenList.value.filter((item: any) =>
|
||||
props.childForm[0].flickerData.waveType == 'CPM'
|
||||
? item.fchagFre == Math.round(props.childForm[0].flickerData.fchagFre * 120)
|
||||
: (item.fchagFre - 0).toFixed(3) == (props.childForm[0].flickerData.fchagFre / 120).toFixed(3)
|
||||
)
|
||||
if (data.length > 0) {
|
||||
props.childForm[0].flickerData.fchagValue = data[0].fchagValue
|
||||
props.childForm[0].flickerData.fchagFre = data[0].fchagFre
|
||||
} else {
|
||||
props.childForm[0].flickerData.fchagFre =
|
||||
props.childForm[0].flickerData.waveType == 'CPM'
|
||||
? Math.round(props.childForm[0].flickerData.fchagFre * 120)
|
||||
: (props.childForm[0].flickerData.fchagFre / 120).toFixed(3)
|
||||
}
|
||||
let data = {
|
||||
fchagFre: '',
|
||||
fchagValue: ''
|
||||
}
|
||||
waveList.forEach((item: any, i: number) => {
|
||||
item.children.forEach((item1: any, j: number) => {
|
||||
if (item1.fchagFre == props.childForm[0].flickerData.fchagFre) {
|
||||
data = waveList[i == 0 ? 1 : 0].children[j]
|
||||
}
|
||||
})
|
||||
})
|
||||
props.childForm[0].flickerData.fchagFre = data.fchagFre
|
||||
props.childForm[0].flickerData.fchagValue = data.fchagValue
|
||||
}, 100)
|
||||
}
|
||||
// [频率变化]
|
||||
const changeWaveType = e => {
|
||||
props.childForm[0].flickerData.fchagValue = waveChildrenList.value?.filter(
|
||||
props.childForm[0].flickerData.fchagValue = waveChildrenList.value.filter(
|
||||
(item: any) => item.fchagFre == e
|
||||
)[0].fchagValue
|
||||
}
|
||||
@@ -246,6 +365,8 @@ const form: any = computed({
|
||||
},
|
||||
set(value) {}
|
||||
})
|
||||
|
||||
onMounted(() => {})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
@@ -2,47 +2,97 @@
|
||||
<div class="tabs-container">
|
||||
<el-tabs type="border-card" class="right-tabs" style="height: 100%">
|
||||
<el-tab-pane label="电压通道">
|
||||
<el-form :inline="true" :model="formInline" :disabled="!props.childForm[0].harmFlag">
|
||||
<el-form-item label="次数">
|
||||
<el-select
|
||||
v-model="formInline.harm"
|
||||
multiple
|
||||
collapse-tags
|
||||
collapse-tags-tooltip
|
||||
style="width: 160px"
|
||||
filterable
|
||||
clearable
|
||||
>
|
||||
<el-option label="全部" value="0" />
|
||||
<el-option v-for="item in 49" :key="item" :label="item + 1" :value="item + 1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="含有率">
|
||||
<el-input
|
||||
v-model="formInline.famp"
|
||||
type="number"
|
||||
placeholder="含有率"
|
||||
style="width: 80px"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="相角">
|
||||
<el-input
|
||||
v-model="formInline.fphase"
|
||||
type="number"
|
||||
placeholder="相角"
|
||||
style="width: 80px"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="onSubmit" size="small">确定</el-button>
|
||||
<el-button type="primary" @click="empty(0)" size="small">清空列表</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- 电压通道内容 -->
|
||||
<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">
|
||||
<template #default="{ row, $index }">
|
||||
<div class="input-label-container">
|
||||
<el-input
|
||||
type="number"
|
||||
@mousewheel.native.prevent
|
||||
size="small"
|
||||
v-model="form[0].harmList[$index].famp"
|
||||
:disabled="!form[0].harmFlag"
|
||||
/>
|
||||
<label>%</label>
|
||||
</div>
|
||||
<el-table :data="form[0].harmList" border stripe size="small">
|
||||
<el-table-column prop="harm" align="center" label="次数" width="60" />
|
||||
<el-table-column prop="famp" align="center" label="谐波含有率">
|
||||
<template #default="{ row }">
|
||||
<el-input
|
||||
type="number"
|
||||
v-if="row.show"
|
||||
@blur="row.show = !row.show"
|
||||
v-model="row.famp"
|
||||
/>
|
||||
<span v-else>{{ row.famp }}%</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="name" label="谐波相角" align="center" width="120">
|
||||
<el-table-column prop="fphase" label="谐波相角" align="center">
|
||||
<template #default="{ row }">
|
||||
<el-input
|
||||
type="number"
|
||||
v-if="row.show"
|
||||
@blur="row.show = !row.show"
|
||||
v-model="row.fphase"
|
||||
/>
|
||||
<span v-else>{{ row.fphase }}°</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center">
|
||||
<template #default="{ row, $index }">
|
||||
<div class="input-label-container">
|
||||
<el-input
|
||||
type="number"
|
||||
@mousewheel.native.prevent
|
||||
size="small"
|
||||
v-model="form[0].harmList[$index].fphase"
|
||||
:disabled="!form[0].harmFlag"
|
||||
/>
|
||||
<label>°</label>
|
||||
</div>
|
||||
<el-button
|
||||
type="primary"
|
||||
link
|
||||
:icon="EditPen"
|
||||
v-if="!row.show"
|
||||
@click="row.show = true"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button type="primary" link :icon="Check" v-else @click="row.show = false">
|
||||
保存
|
||||
</el-button>
|
||||
<el-button type="primary" link :icon="Delete" @click="HarmFlagDelete(0, $index)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-table :data="tableData2" border size="small" class="half-width-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">
|
||||
<template #default="{ row, $index }">
|
||||
<div class="input-label-container">
|
||||
<el-input
|
||||
type="number"
|
||||
@mousewheel.native.prevent
|
||||
size="small"
|
||||
v-model="form[0].harmList[$index + 24].famp"
|
||||
:disabled="!form[0].harmFlag"
|
||||
@@ -56,7 +106,6 @@
|
||||
<div class="input-label-container">
|
||||
<el-input
|
||||
type="number"
|
||||
@mousewheel.native.prevent
|
||||
size="small"
|
||||
v-model="form[0].harmList[$index + 24].fphase"
|
||||
:disabled="!form[0].harmFlag"
|
||||
@@ -65,73 +114,93 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-table> -->
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
<el-tabs type="border-card" style="height: 100%">
|
||||
<el-tab-pane label="电流通道">
|
||||
<el-form :inline="true" :model="formInline1" :disabled="!props.childForm[1].harmFlag">
|
||||
<el-form-item label="次数">
|
||||
<el-select
|
||||
v-model="formInline1.harm"
|
||||
multiple
|
||||
collapse-tags
|
||||
collapse-tags-tooltip
|
||||
style="width: 160px"
|
||||
filterable
|
||||
clearable
|
||||
>
|
||||
<el-option label="全部" value="0" />
|
||||
<el-option v-for="item in 49" :key="item" :label="item + 1" :value="item + 1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="含有率">
|
||||
<el-input
|
||||
v-model="formInline1.famp"
|
||||
type="number"
|
||||
placeholder="含有率"
|
||||
style="width: 80px"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="相角">
|
||||
<el-input
|
||||
v-model="formInline1.fphase"
|
||||
type="number"
|
||||
placeholder="相角"
|
||||
style="width: 80px"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="onSubmit1" size="small">确定</el-button>
|
||||
<el-button type="primary" @click="empty(1)" size="small">清空列表</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- 电流通道内容 -->
|
||||
<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">
|
||||
<template #default="{ row, $index }">
|
||||
<div class="input-label-container">
|
||||
<el-input
|
||||
type="number"
|
||||
@mousewheel.native.prevent
|
||||
size="small"
|
||||
v-model="form[1].harmList[$index].famp"
|
||||
:disabled="!form[1].harmFlag"
|
||||
/>
|
||||
<label>%</label>
|
||||
</div>
|
||||
<el-table :data="form[1].harmList" border stripe size="small">
|
||||
<el-table-column prop="harm" align="center" label="次数" width="60" />
|
||||
<el-table-column prop="famp" align="center" label="谐波含有率">
|
||||
<template #default="{ row }">
|
||||
<el-input
|
||||
type="number"
|
||||
v-if="row.show"
|
||||
@blur="row.show = !row.show"
|
||||
v-model="row.famp"
|
||||
/>
|
||||
<span v-else>{{ row.famp }}%</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="name" align="center" label="谐波相角" width="120">
|
||||
<template #default="{ row, $index }">
|
||||
<div class="input-label-container">
|
||||
<el-input
|
||||
type="number"
|
||||
@mousewheel.native.prevent
|
||||
size="small"
|
||||
v-model="form[1].harmList[$index].fphase"
|
||||
:disabled="!form[1].harmFlag"
|
||||
/>
|
||||
<label>°</label>
|
||||
</div>
|
||||
<el-table-column prop="fphase" label="谐波相角" align="center">
|
||||
<template #default="{ row }">
|
||||
<el-input
|
||||
type="number"
|
||||
v-if="row.show"
|
||||
@blur="row.show = !row.show"
|
||||
v-model="row.fphase"
|
||||
/>
|
||||
<span v-else>{{ row.fphase }}°</span>
|
||||
</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">
|
||||
<el-table-column label="操作" align="center">
|
||||
<template #default="{ row, $index }">
|
||||
<div class="input-label-container">
|
||||
<el-input
|
||||
type="number"
|
||||
@mousewheel.native.prevent
|
||||
size="small"
|
||||
v-model="form[1].harmList[$index + 24].famp"
|
||||
:disabled="!form[1].harmFlag"
|
||||
/>
|
||||
<label>%</label>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="name" label="谐波相角" align="center" width="120">
|
||||
<template #default="{ row, $index }">
|
||||
<div class="input-label-container">
|
||||
<el-input
|
||||
type="number"
|
||||
@mousewheel.native.prevent
|
||||
size="small"
|
||||
v-model="form[1].harmList[$index + 24].fphase"
|
||||
:disabled="!form[1].harmFlag"
|
||||
/>
|
||||
<label>°</label>
|
||||
</div>
|
||||
<el-button
|
||||
type="primary"
|
||||
link
|
||||
:icon="EditPen"
|
||||
v-if="!row.show"
|
||||
@click="row.show = true"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button type="primary" link :icon="Check" v-else @click="row.show = false">
|
||||
保存
|
||||
</el-button>
|
||||
<el-button type="primary" link :icon="Delete" @click="HarmFlagDelete(1, $index)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -142,10 +211,11 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { Check, Delete, EditPen, CopyDocument } from '@element-plus/icons-vue'
|
||||
import { ref } from 'vue'
|
||||
const props = defineProps({
|
||||
childForm: {
|
||||
type: Array,
|
||||
type: Array as any,
|
||||
required: true
|
||||
}
|
||||
})
|
||||
@@ -156,7 +226,16 @@ const form: any = computed({
|
||||
},
|
||||
set(value) {}
|
||||
})
|
||||
|
||||
const formInline = ref({
|
||||
harm: [],
|
||||
famp: '',
|
||||
fphase: ''
|
||||
})
|
||||
const formInline1 = ref({
|
||||
harm: [],
|
||||
famp: '',
|
||||
fphase: ''
|
||||
})
|
||||
// 定义表格数据项的类型
|
||||
interface TableItem {
|
||||
date: string
|
||||
@@ -164,6 +243,88 @@ interface TableItem {
|
||||
harmonicPhase?: string
|
||||
name?: string
|
||||
}
|
||||
const empty = (index: number) => {
|
||||
props.childForm[index].harmList = []
|
||||
}
|
||||
const onSubmit = () => {
|
||||
console.log('🚀 ~ onSubmit ~ props.childForm[0]:', props.childForm[0].harmList)
|
||||
if (formInline.value.harm.length == 0 || formInline.value.famp == '' || formInline.value.fphase == '') {
|
||||
ElMessage.warning('请填写值!')
|
||||
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 // 间谐波相角
|
||||
})
|
||||
}
|
||||
} else {
|
||||
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--) {
|
||||
const item = props.childForm[0].harmList[i]
|
||||
// 如果 harm 还未出现过,则添加到结果数组
|
||||
if (!seen.has(item.harm)) {
|
||||
seen.add(item.harm)
|
||||
uniqueData.unshift(item) // 添加到结果数组的开头
|
||||
}
|
||||
}
|
||||
props.childForm[0].harmList = uniqueData.sort((a, b) => a.harm - b.harm)
|
||||
}
|
||||
}
|
||||
const onSubmit1 = () => {
|
||||
if (formInline1.value.harm.length == 0 || formInline1.value.famp == '' || formInline1.value.fphase == '') {
|
||||
ElMessage.warning('请填写值!')
|
||||
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 // 间谐波相角
|
||||
})
|
||||
}
|
||||
} else {
|
||||
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--) {
|
||||
const item = props.childForm[1].harmList[i]
|
||||
// 如果 harm 还未出现过,则添加到结果数组
|
||||
if (!seen.has(item.harm)) {
|
||||
seen.add(item.harm)
|
||||
uniqueData.unshift(item) // 添加到结果数组的开头
|
||||
}
|
||||
}
|
||||
props.childForm[1].harmList = uniqueData.sort((a, b) => a.harm - b.harm)
|
||||
}
|
||||
}
|
||||
// 删除
|
||||
const HarmFlagDelete = (index: number, number: number) => {
|
||||
props.childForm[index].harmList.splice(number, 1)
|
||||
}
|
||||
|
||||
// 定义并初始化 tableData
|
||||
const tableData1 = ref<TableItem[]>([])
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
<div class="input-label-container">
|
||||
<el-input
|
||||
type="number"
|
||||
@mousewheel.native.prevent
|
||||
size="small"
|
||||
v-model="form[0].inharmList[$index].famp"
|
||||
:disabled="!form[0].inHarmFlag"
|
||||
@@ -37,7 +36,6 @@
|
||||
<div class="input-label-container">
|
||||
<el-input
|
||||
type="number"
|
||||
@mousewheel.native.prevent
|
||||
size="small"
|
||||
v-model="form[0].inharmList[$index].fphase"
|
||||
:disabled="!form[0].inHarmFlag"
|
||||
@@ -89,7 +87,6 @@
|
||||
<div class="input-label-container">
|
||||
<el-input
|
||||
type="number"
|
||||
@mousewheel.native.prevent
|
||||
size="small"
|
||||
v-model="form[1].inharmList[$index].famp"
|
||||
:disabled="!form[1].inHarmFlag"
|
||||
@@ -103,7 +100,6 @@
|
||||
<div class="input-label-container">
|
||||
<el-input
|
||||
type="number"
|
||||
@mousewheel.native.prevent
|
||||
size="small"
|
||||
v-model="form[1].inharmList[$index].fphase"
|
||||
:disabled="!form[1].inHarmFlag"
|
||||
|
||||
@@ -139,7 +139,7 @@ const save = () => {
|
||||
if (res.code === 'A0000') {
|
||||
ElMessage.success({ message: res.message })
|
||||
formContent.value.id = res.data
|
||||
titleType.value == '编辑检测脚本'
|
||||
titleType.value = '编辑检测脚本'
|
||||
show.value = true
|
||||
}
|
||||
})
|
||||
@@ -179,8 +179,11 @@ const treeInfo = async (currentMode: string) => {
|
||||
sort: 0
|
||||
}
|
||||
const result = await getDictTreeByCode(data)
|
||||
const allOptions = convertToOptions(result.data as Dict.ResDictTree[])
|
||||
secondLevelOptions.push(...(allOptions[0]?.children || []))
|
||||
const result1 = (await getDictTreeByCode({ ...data, code: 'Script_Error' })).data[0].children
|
||||
const allOptions = await convertToOptions(result.data as Dict.ResDictTree[])
|
||||
console.log('🚀 ~ treeInfo ~ result1:', allOptions[0]?.children)
|
||||
const setallTree = await setTree(allOptions[0]?.children, result1)
|
||||
secondLevelOptions.push(...(setallTree || []))
|
||||
modeId.value = dictStore.getDictData('Pattern').find(item => item.name === currentMode)?.id
|
||||
}
|
||||
|
||||
@@ -193,7 +196,16 @@ onMounted(() => {
|
||||
await open(data.title, data.row)
|
||||
})
|
||||
})
|
||||
|
||||
const setTree = async (data, data1) => {
|
||||
data.forEach(item => {
|
||||
data1.forEach(item1 => {
|
||||
if (item.label.replace(/准确度|检测/g, '') == item1.name) {
|
||||
item.value = item1.id
|
||||
}
|
||||
})
|
||||
})
|
||||
return data
|
||||
}
|
||||
// 转换函数
|
||||
const convertToOptions = (dictTree: Dict.ResDictTree[]): CascaderOption[] => {
|
||||
return dictTree.map(item => ({
|
||||
|
||||
@@ -9,37 +9,17 @@
|
||||
<!-- 右侧编辑区域内容 -->
|
||||
<el-form :inline="true" label-width="auto" :model="form" class="form-two">
|
||||
<el-form-item :label="`电压有效值(${valueCode == 'Absolute' ? 'V' : '%'})`">
|
||||
<el-input
|
||||
type="number"
|
||||
@mousewheel.native.prevent
|
||||
v-model="form[0].famp"
|
||||
:disabled="!form[0].channelFlag"
|
||||
/>
|
||||
<el-input type="number" v-model="form[0].famp" :disabled="!form[0].channelFlag" />
|
||||
</el-form-item>
|
||||
<el-form-item label="电压相角(°)">
|
||||
<el-input
|
||||
type="number"
|
||||
@mousewheel.native.prevent
|
||||
v-model="form[0].fphase"
|
||||
:disabled="!form[0].channelFlag"
|
||||
/>
|
||||
<el-input type="number" v-model="form[0].fphase" :disabled="!form[0].channelFlag" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="`电流有效值(${valueCode == 'Absolute' ? 'A' : '%'})`">
|
||||
<el-input
|
||||
type="number"
|
||||
@mousewheel.native.prevent
|
||||
v-model="form[1].famp"
|
||||
:disabled="!form[1].channelFlag"
|
||||
/>
|
||||
<el-input type="number" v-model="form[1].famp" :disabled="!form[1].channelFlag" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="电流相角(°)">
|
||||
<el-input
|
||||
type="number"
|
||||
@mousewheel.native.prevent
|
||||
v-model="form[1].fphase"
|
||||
:disabled="!form[1].channelFlag"
|
||||
/>
|
||||
<el-input type="number" v-model="form[1].fphase" :disabled="!form[1].channelFlag" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user