Compare commits
12 Commits
0054f989c0
...
2025-10
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e7c93d03aa | ||
|
|
a4b016ef0d | ||
|
|
d329b68592 | ||
|
|
e12a1baf99 | ||
|
|
8aae184a8b | ||
|
|
7f2275bad9 | ||
|
|
aab884e524 | ||
|
|
0215dbc875 | ||
|
|
b09a2bab10 | ||
|
|
4dbcdd20df | ||
|
|
6fde670f96 | ||
|
|
ba1748830a |
@@ -89,8 +89,8 @@ export namespace Device {
|
||||
boundPlanName?: string | null
|
||||
assign?: number ////是否分配给检测人员 0否 1是
|
||||
monitorList: Monitor.ResPqMon[]
|
||||
checked: boolean // 是否已选择
|
||||
disabled: boolean // 是否禁用
|
||||
checked?: boolean // 是否已选择
|
||||
disabled?: boolean // 是否禁用
|
||||
}
|
||||
|
||||
export interface SelectOption {
|
||||
|
||||
@@ -27,6 +27,7 @@ export namespace Monitor {
|
||||
statInterval: number; //统计间隔
|
||||
harmSysId: string; //默认与谐波系统监测点ID相同
|
||||
checkFlag: number;//是否参与检测0否1是
|
||||
resultType:string|null; //检测结果类型
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
:close-on-click-modal="false"
|
||||
@close="handleClose"
|
||||
>
|
||||
<el-tabs v-if="dialogVisible" v-model="activeName" @tab-click="handleTabClick">
|
||||
<el-tabs v-if="dialogVisible" v-model="activeName" @tab-change="handleTabChange">
|
||||
<el-tab-pane
|
||||
v-for="(result, index) in resultData"
|
||||
:key="result.monitorId"
|
||||
@@ -233,8 +233,8 @@ const getResultData = async () => {
|
||||
dialogVisible.value = true
|
||||
}
|
||||
|
||||
const handleTabClick = (tab: any) => {
|
||||
activeName.value = tab.name
|
||||
const handleTabChange = (name: any) => {
|
||||
activeName.value = name
|
||||
}
|
||||
const handleChooseClick = async () => {
|
||||
const currentResult = resultData.value[activeName.value]
|
||||
|
||||
@@ -82,36 +82,10 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="固件版本" prop="hardwareVersion" v-if="scene === '0'">
|
||||
<el-select
|
||||
v-model="formContent.hardwareVersion"
|
||||
clearable
|
||||
placeholder="请选择固件版本"
|
||||
filterable
|
||||
allow-create
|
||||
>
|
||||
<el-option
|
||||
v-for="item in selectOptions['hardwareVersion']"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<el-input v-model="formContent.hardwareVersion" clearable placeholder="请输入固件版本" />
|
||||
</el-form-item>
|
||||
<el-form-item label="软件版本" prop="softwareVersion" v-if="scene === '0'">
|
||||
<el-select
|
||||
v-model="formContent.softwareVersion"
|
||||
clearable
|
||||
placeholder="请选择软件版本"
|
||||
filterable
|
||||
allow-create
|
||||
>
|
||||
<el-option
|
||||
v-for="item in selectOptions['softwareVersion']"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<el-input v-model="formContent.softwareVersion" clearable placeholder="请输入软件版本" />
|
||||
</el-form-item>
|
||||
<el-form-item label="定检日期" prop="inspectDate" v-if="MonIsShow">
|
||||
<el-date-picker
|
||||
@@ -218,55 +192,28 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属地市" prop="cityName" v-if="MonIsShow">
|
||||
<el-select
|
||||
<el-input
|
||||
v-model="formContent.cityName"
|
||||
clearable
|
||||
placeholder="请选择所属地市"
|
||||
placeholder="请输入所属地市"
|
||||
:disabled="formContent.importFlag == 1"
|
||||
filterable
|
||||
allow-create
|
||||
>
|
||||
<el-option
|
||||
v-for="item in selectOptions['cityName']"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属供电公司" prop="gdName" v-if="MonIsShow">
|
||||
<el-select
|
||||
<el-input
|
||||
v-model="formContent.gdName"
|
||||
clearable
|
||||
placeholder="请选择所属供电公司"
|
||||
placeholder="请输入所属供电公司"
|
||||
:disabled="formContent.importFlag == 1"
|
||||
filterable
|
||||
allow-create
|
||||
>
|
||||
<el-option
|
||||
v-for="item in selectOptions['gdName']"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属电站" prop="subName" v-if="MonIsShow">
|
||||
<el-select
|
||||
<el-input
|
||||
v-model="formContent.subName"
|
||||
clearable
|
||||
placeholder="请选择所属电站"
|
||||
placeholder="请输入所属电站"
|
||||
:disabled="formContent.importFlag == 1"
|
||||
filterable
|
||||
allow-create
|
||||
>
|
||||
<el-option
|
||||
v-for="item in selectOptions['subName']"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
v-auth.device="'factorFlag'"
|
||||
@@ -279,6 +226,14 @@
|
||||
<el-radio :value="0">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
v-if="scene === '1'"
|
||||
label="谐波系统设备id"
|
||||
prop="harmSysId"
|
||||
placeholder="请输入谐波系统设备id"
|
||||
>
|
||||
<el-input v-model="formContent.harmSysId" :disabled="formContent.importFlag == 1" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
@@ -312,7 +267,7 @@ import dayjs from 'dayjs'
|
||||
import MonitorTable from '@/views/machine/device/components/monitorTab.vue'
|
||||
import { useAppSceneStore } from '@/stores/modules/mode'
|
||||
import { generateUUID } from '@/utils'
|
||||
import { Monitor } from '@/api/device/interface/monitor'
|
||||
import { type Monitor } from '@/api/device/interface/monitor'
|
||||
|
||||
const AppSceneStore = useAppSceneStore()
|
||||
const MonIsShow = ref(false)
|
||||
@@ -382,6 +337,7 @@ function useMetaInfo() {
|
||||
gdName: '',
|
||||
subName: '',
|
||||
importFlag: 0,
|
||||
harmSysId: '',
|
||||
inspectChannel: [],
|
||||
monitorList: []
|
||||
})
|
||||
@@ -421,6 +377,7 @@ const resetFormContent = () => {
|
||||
subName: '',
|
||||
importFlag: 0,
|
||||
inspectChannel: [],
|
||||
harmSysId: '',
|
||||
monitorList: []
|
||||
})
|
||||
}
|
||||
@@ -486,8 +443,10 @@ const rules = computed(() => {
|
||||
}
|
||||
if (scene.value !== '0') {
|
||||
dynamicRules.name = [{ required: true, message: '设备名称必填!', trigger: 'blur' }]
|
||||
dynamicRules.hardwareVersion = [{ required: true, message: '固件版本必选!', trigger: 'change' }]
|
||||
dynamicRules.softwareVersion = [{ required: true, message: '软件版本必选!', trigger: 'change' }]
|
||||
// dynamicRules.hardwareVersion = [{ required: true, message: '固件版本必选!', trigger: 'change' }]
|
||||
// dynamicRules.softwareVersion = [{ required: true, message: '软件版本必选!', trigger: 'change' }]
|
||||
dynamicRules.hardwareVersion = [{ required: true, message: '固件版本必填!', trigger: 'blur' }]
|
||||
dynamicRules.softwareVersion = [{ required: true, message: '软件版本必填!', trigger: 'blur' }]
|
||||
dynamicRules.manufacturer = [{ required: true, message: '生产厂家必选!', trigger: 'change' }]
|
||||
}
|
||||
|
||||
@@ -498,9 +457,12 @@ const rules = computed(() => {
|
||||
|
||||
if (mode.value === '比对式') {
|
||||
dynamicRules.inspectDate = [{ required: true, message: '定检日期必填!', trigger: 'blur' }]
|
||||
dynamicRules.cityName = [{ required: true, message: '所属地市必选!', trigger: 'change' }]
|
||||
dynamicRules.gdName = [{ required: true, message: '所属供电公司必选!', trigger: 'change' }]
|
||||
dynamicRules.subName = [{ required: true, message: '所属电站必选!', trigger: 'change' }]
|
||||
// dynamicRules.cityName = [{ required: true, message: '所属地市必选!', trigger: 'change' }]
|
||||
// dynamicRules.gdName = [{ required: true, message: '所属供电公司必选!', trigger: 'change' }]
|
||||
// dynamicRules.subName = [{ required: true, message: '所属电站必选!', trigger: 'change' }]
|
||||
dynamicRules.cityName = [{ required: true, message: '所属地市必填!', trigger: 'blur' }]
|
||||
dynamicRules.gdName = [{ required: true, message: '所属供电公司必填!', trigger: 'blur' }]
|
||||
dynamicRules.subName = [{ required: true, message: '所属电站必填!', trigger: 'blur' }]
|
||||
}
|
||||
|
||||
return dynamicRules
|
||||
@@ -517,7 +479,6 @@ const close = () => {
|
||||
|
||||
//子组件监测点变化通知父组件设备台账
|
||||
const getParameter = (data: Monitor.ResPqMon[]) => {
|
||||
console.log('子组件监测点变化通知父组件设备台账', data)
|
||||
monitor.value = data
|
||||
//保存监测点信息自动更新设备台账的被检通道
|
||||
formContent.inspectChannel = monitor.value
|
||||
@@ -657,6 +618,7 @@ const open = async (
|
||||
}
|
||||
monitor.value = data.monitorList
|
||||
} else {
|
||||
monitor.value = []
|
||||
resetFormContent()
|
||||
//只有比对式设备ID由前端传
|
||||
if (currentMode === '比对式') formContent.id = generateUUID().replaceAll('-', '')
|
||||
|
||||
@@ -1,22 +1,27 @@
|
||||
<template>
|
||||
<!-- 基础信息弹出框 -->
|
||||
<el-dialog :model-value="dialogVisible" :title="dialogTitle" v-bind="dialogMiddle" @close="close" align-center>
|
||||
<el-dialog
|
||||
:model-value="dialogVisible"
|
||||
:title="dialogTitle"
|
||||
v-bind="dialogMiddle"
|
||||
width="50%"
|
||||
@close="close"
|
||||
align-center
|
||||
>
|
||||
<div>
|
||||
<el-form :model="formContent" ref="dialogFormRef" :rules="rules" class="form-two">
|
||||
<el-form :model="formContent" ref="dialogFormRef" :rules="rules" label-width="140" class="form-two">
|
||||
<el-form-item label="名称" prop="name">
|
||||
<el-input v-model="formContent.name" placeholder="请输入监测点名称" />
|
||||
<el-input clearable v-model="formContent.name" placeholder="请输入监测点名称" :disabled="props.DevFormContent.importFlag == 1 || formContent.resultType!=null"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="线路号" prop="num">
|
||||
<el-select
|
||||
v-model="formContent.num"
|
||||
clearable
|
||||
placeholder="请选择线路号"
|
||||
@change="handleMonNumChange"
|
||||
>
|
||||
<el-select v-model="formContent.num" placeholder="请选择线路号" @change="handleMonNumChange" :disabled="props.DevFormContent.importFlag == 1 || formContent.resultType!=null">
|
||||
<el-option v-for="item in lineNum" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属母线" prop="busbar">
|
||||
<el-input v-model="formContent.busbar" clearable placeholder="请输入所属母线" :disabled="props.DevFormContent.importFlag == 1 || formContent.resultType!=null"/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="所属母线" prop="busbar">
|
||||
<el-select
|
||||
v-model="formContent.busbar"
|
||||
clearable
|
||||
@@ -31,33 +36,9 @@
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="PT变比" required>
|
||||
<div class="ratio-input-group">
|
||||
<el-form-item prop="ptPrimary" class="ratio-form-item">
|
||||
<el-input v-model="ptPrimary" placeholder="一次侧" @input="handlePtInput" />
|
||||
</el-form-item>
|
||||
<span class="colon">:</span>
|
||||
<el-form-item prop="ptSecondary" class="ratio-form-item">
|
||||
<el-input v-model="ptSecondary" placeholder="二次侧" @input="handlePtInput" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 修改CT变比部分 -->
|
||||
<el-form-item label="CT变比" required>
|
||||
<div class="ratio-input-group">
|
||||
<el-form-item prop="ctPrimary" class="ratio-form-item">
|
||||
<el-input v-model="ctPrimary" placeholder="一次侧" @input="handleCtInput" />
|
||||
</el-form-item>
|
||||
<span class="colon">:</span>
|
||||
<el-form-item prop="ctSecondary" class="ratio-form-item">
|
||||
<el-input v-model="ctSecondary" placeholder="二次侧" @input="handleCtInput" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="接线方式" prop="connection">
|
||||
<el-select v-model="formContent.connection" clearable placeholder="请选择接线方式">
|
||||
<el-select v-model="formContent.connection" clearable placeholder="请选择接线方式" :disabled="props.DevFormContent.importFlag == 1 || formContent.resultType!=null">
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('Dev_Connect')"
|
||||
:key="item.id"
|
||||
@@ -66,8 +47,45 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item required>
|
||||
<template #label>
|
||||
<div style="display: flex; align-items: center">
|
||||
<el-icon style="color: var(--el-color-error)"><WarningFilled /></el-icon>
|
||||
<span>PT变比</span>
|
||||
</div>
|
||||
</template>
|
||||
<div class="ratio-input-group">
|
||||
<el-form-item prop="ptPrimary" class="ratio-form-item">
|
||||
<el-input v-model="ptPrimary" placeholder="一次侧" @input="handlePtInput" :disabled="props.DevFormContent.importFlag == 1 || formContent.resultType!=null"/>
|
||||
</el-form-item>
|
||||
<div class="colon">:</div>
|
||||
<el-form-item prop="ptSecondary" style="margin-left: 10px" class="ratio-form-item">
|
||||
<el-input v-model="ptSecondary" placeholder="二次侧" @input="handlePtInput" :disabled="props.DevFormContent.importFlag == 1 || formContent.resultType!=null"/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 修改CT变比部分 -->
|
||||
<el-form-item required>
|
||||
<template #label>
|
||||
<div style="display: flex; align-items: center">
|
||||
<el-icon style="color: var(--el-color-error)"><WarningFilled /></el-icon>
|
||||
<span>CT变比</span>
|
||||
</div>
|
||||
</template>
|
||||
<div class="ratio-input-group">
|
||||
<el-form-item prop="ctPrimary" class="ratio-form-item">
|
||||
<el-input v-model="ctPrimary" placeholder="一次侧" @input="handleCtInput" :disabled="props.DevFormContent.importFlag == 1 || formContent.resultType!=null"/>
|
||||
</el-form-item>
|
||||
<div class="colon">:</div>
|
||||
<el-form-item prop="ctSecondary" style="margin-left: 10px" class="ratio-form-item">
|
||||
<el-input v-model="ctSecondary" placeholder="二次侧" @input="handleCtInput" :disabled="props.DevFormContent.importFlag == 1 || formContent.resultType!=null"/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="统计间隔" prop="statInterval">
|
||||
<el-select v-model="formContent.statInterval" clearable placeholder="请选择统计间隔">
|
||||
<el-select v-model="formContent.statInterval" clearable placeholder="请选择统计间隔" :disabled="props.DevFormContent.importFlag == 1 || formContent.resultType!=null">
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('Dev_Chns')"
|
||||
:key="item.id"
|
||||
@@ -77,10 +95,10 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="谐波系统检测点id" prop="harmSysId" placeholder="请输入谐波系统检测点id">
|
||||
<el-input v-model="formContent.harmSysId" />
|
||||
<el-input v-model="formContent.harmSysId" :disabled="props.DevFormContent.importFlag == 1 || formContent.resultType!=null"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否参与检测" prop="checkFlag" placeholder="请输入CT编号">
|
||||
<el-select v-model="formContent.checkFlag" clearable placeholder="请选择是否加密">
|
||||
<el-select v-model="formContent.checkFlag" :disabled="formContent.resultType!=null">
|
||||
<el-option label="是" :value="1"></el-option>
|
||||
<el-option label="否" :value="0"></el-option>
|
||||
</el-select>
|
||||
@@ -88,9 +106,8 @@
|
||||
</el-form>
|
||||
</div>
|
||||
<el-alert
|
||||
show-icon
|
||||
title="注意:PT和CT变比请输入正常值,不可以缩小相同的倍数!"
|
||||
type="warning"
|
||||
type="error"
|
||||
:closable="false"
|
||||
></el-alert>
|
||||
<template #footer>
|
||||
@@ -123,6 +140,11 @@ const ptSecondary = ref<string>('')
|
||||
const ctPrimary = ref<string>('')
|
||||
const ctSecondary = ref<string>('')
|
||||
|
||||
// 定义 props
|
||||
const props = defineProps<{
|
||||
DevFormContent: Device.ResPqDev
|
||||
}>()
|
||||
|
||||
// 定义弹出组件元信息
|
||||
const dialogFormRef = ref()
|
||||
function useMetaInfo() {
|
||||
@@ -160,7 +182,8 @@ const resetFormContent = () => {
|
||||
connection: '',
|
||||
statInterval: 1,
|
||||
harmSysId: '',
|
||||
checkFlag: 1
|
||||
checkFlag: 1,
|
||||
resultType: null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,7 +201,8 @@ const rules: Ref<Record<string, Array<FormItemRule>>> = ref({
|
||||
name: [{ required: true, message: '监测点名称必填!', trigger: 'blur' }],
|
||||
num: [{ required: true, message: '线路号必选', trigger: 'change' }],
|
||||
connection: [{ required: true, message: '接线方式必选!', trigger: 'change' }],
|
||||
busbar: [{ required: true, message: '所属母线必选!', trigger: 'change' }],
|
||||
//busbar: [{ required: true, message: '所属母线必选!', trigger: 'change' }],
|
||||
busbar: [{ required: true, message: '所属母线必填!', trigger: 'blur' }],
|
||||
// harmSysId : [{ required: true, message: '谐波系统检测点id必填!', trigger: 'blur' }],
|
||||
checkFlag: [{ required: true, message: '是否参与检测必选!', trigger: 'change' }]
|
||||
})
|
||||
@@ -355,7 +379,6 @@ const sendParameter = () => {
|
||||
}
|
||||
// 打开弹窗,可能是新增,也可能是编辑
|
||||
const open = async (sign: string, data: Monitor.ResPqMon, device: Device.ResPqDev, table: any[], options: any) => {
|
||||
|
||||
selectOptions.value = options
|
||||
titleType.value = sign
|
||||
dialogVisible.value = true
|
||||
@@ -395,13 +418,12 @@ const open = async (sign: string, data: Monitor.ResPqMon, device: Device.ResPqDe
|
||||
ctSecondary.value = secondary
|
||||
}
|
||||
} else {
|
||||
|
||||
// 清空PT和CT的临时变量
|
||||
// 清空PT和CT的临时变量
|
||||
ptPrimary.value = ''
|
||||
ptSecondary.value = ''
|
||||
ctPrimary.value = ''
|
||||
ctSecondary.value = ''
|
||||
|
||||
|
||||
// 重置表单内容,但保留devId
|
||||
const devId = formContent.value.devId
|
||||
resetFormContent()
|
||||
@@ -444,15 +466,15 @@ defineExpose({ open })
|
||||
.ratio-input-group {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.ratio-form-item {
|
||||
flex: 1;
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
.colon {
|
||||
text-align: center;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
type="primary"
|
||||
:icon="CirclePlus"
|
||||
@click="openDialog('add')"
|
||||
:disabled="props.DevFormContent.importFlag == 1"
|
||||
>
|
||||
新增
|
||||
</el-button>
|
||||
@@ -38,7 +37,6 @@
|
||||
link
|
||||
:icon="EditPen"
|
||||
:model-value="false"
|
||||
:disabled="props.DevFormContent.importFlag == 1"
|
||||
@click="openDialog('edit', scope.row)"
|
||||
>
|
||||
编辑
|
||||
@@ -49,13 +47,14 @@
|
||||
link
|
||||
:icon="Delete"
|
||||
@click="handleDelete(scope.row.id)"
|
||||
:disabled="scope.row.resultType!=null"
|
||||
>
|
||||
删除
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</ProTable>
|
||||
</div>
|
||||
<MonitorPopup @getParameter="getParameter" ref="monitorPopup" />
|
||||
<MonitorPopup @getParameter="getParameter" ref="monitorPopup" :DevFormContent="props.DevFormContent"/>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
|
||||
@@ -57,7 +57,8 @@
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-input
|
||||
<el-input-number
|
||||
:controls="false"
|
||||
v-model="row.startValue"
|
||||
style="width: 60px"
|
||||
:disabled="isStartValueDisabled[row.sort]"
|
||||
@@ -82,7 +83,8 @@
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-input
|
||||
<el-input-number
|
||||
:controls="false"
|
||||
v-model="row.endValue"
|
||||
style="width: 60px"
|
||||
:disabled="isEndValueDisabled[row.sort]"
|
||||
@@ -107,7 +109,7 @@
|
||||
<el-table-column label="最大误差">
|
||||
<el-table-column prop="maxErrorValue" label="最大误差值" width="100">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.maxErrorValue" style="width: 70px" />
|
||||
<el-input-number :controls="false" v-model="row.maxErrorValue" style="width: 70px" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="误差类型" width="170">
|
||||
|
||||
@@ -293,7 +293,7 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-col :span="8" v-if="waveRecordSetting">
|
||||
<el-form-item
|
||||
:label-width="140"
|
||||
label="录波数据有效组数"
|
||||
@@ -311,7 +311,7 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-col :span="8" v-if="realTimeSetting">
|
||||
<el-form-item
|
||||
:label-width="140"
|
||||
label="实时数据有效组数"
|
||||
@@ -329,7 +329,7 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-col :span="8" v-if="statisticsSetting">
|
||||
<el-form-item
|
||||
:label-width="140"
|
||||
label="统计数据有效组数"
|
||||
@@ -347,7 +347,7 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-col :span="8" v-if="flickerSetting">
|
||||
<el-form-item
|
||||
:label-width="140"
|
||||
label="闪变数据有效组数"
|
||||
@@ -378,6 +378,39 @@
|
||||
</div>
|
||||
</template>
|
||||
<ImportExcel ref="deviceImportExcel" @result="importResult" />
|
||||
<transition name="fade">
|
||||
<div
|
||||
v-if="shanBianDialogVisible"
|
||||
style="
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
z-index: 999999999;
|
||||
top: 0;
|
||||
left: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
"
|
||||
>
|
||||
<div
|
||||
style="
|
||||
padding: 10px;
|
||||
border: 1px solid var(--el-color-warning);
|
||||
border-radius: 5px;
|
||||
user-select: none;
|
||||
background-color: var(--el-color-danger-light-9);
|
||||
"
|
||||
>
|
||||
<el-text style="font-weight: bold" type="warning" size="large">
|
||||
<el-icon><WarningFilled /></el-icon>
|
||||
闪变耗时较长,不推荐批量被检设备在检测过程中采集该指标
|
||||
<el-icon @click="() => (shanBianDialogVisible = false)"><Close /></el-icon>
|
||||
</el-text>
|
||||
</div>
|
||||
</div>
|
||||
</transition>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
@@ -414,6 +447,7 @@ import { downloadTemplate, importPqDev } from '@/api/device/device'
|
||||
import { getTestConfig } from '@/api/system/base'
|
||||
import { getRegRes } from '@/api/system/versionRegister'
|
||||
import DevSelect from '@/views/plan/planList/components/devSelect.vue'
|
||||
import { WarningFilled } from '@element-plus/icons-vue'
|
||||
|
||||
const modeStore = useModeStore()
|
||||
const AppSceneStore = useAppSceneStore()
|
||||
@@ -444,8 +478,13 @@ const planType = ref<number>(0)
|
||||
const subPlanBindStandardDev = ref<any>([]) //哪些标准设备已经被子计划绑定
|
||||
const activeNames = ref(['1'])
|
||||
const allDisabled = ref(false)
|
||||
const shanBianDialogVisible = ref(false)
|
||||
const leaderData = ref<any[]>([])
|
||||
const memberData = ref<any[]>([])
|
||||
const waveRecordSetting = ref(false)
|
||||
const realTimeSetting = ref(false)
|
||||
const statisticsSetting = ref(false)
|
||||
const flickerSetting = ref(false)
|
||||
const generateData = () => {
|
||||
const manufacturerDict = dictStore.getDictData('Dev_Manufacturers')
|
||||
|
||||
@@ -747,6 +786,10 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
||||
titleType.value = sign
|
||||
isSelectDisabled.value = false
|
||||
planType.value = plan
|
||||
waveRecordSetting.value = false
|
||||
statisticsSetting.value = false
|
||||
realTimeSetting.value = false
|
||||
flickerSetting.value = false
|
||||
if (sign == 'add') {
|
||||
resetFormContent()
|
||||
allDisabled.value = false
|
||||
@@ -761,7 +804,7 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
||||
user_Result: any
|
||||
|
||||
if (mode.value === '比对式') {
|
||||
[
|
||||
;[
|
||||
PqErrSys_Result,
|
||||
pqDevList_Result,
|
||||
pqReportName_Result,
|
||||
@@ -805,9 +848,8 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
||||
const dataRuleDict = dictStore.getDictData('Data_Rule')
|
||||
const rule = dataRuleDict.find(item => item.code === 'Cp95_Value')
|
||||
formContent.dataRule = rule ? rule.id : ''
|
||||
|
||||
} else {
|
||||
[pqSource_Result, PqScript_Result, PqErrSys_Result, pqDevList_Result, pqReportName_Result] =
|
||||
;[pqSource_Result, PqScript_Result, PqErrSys_Result, pqDevList_Result, pqReportName_Result] =
|
||||
await Promise.all([
|
||||
getTestSourceList(data),
|
||||
getPqScriptList(data),
|
||||
@@ -844,6 +886,8 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
||||
formContent.datasourceIds = datasourceDicts
|
||||
.filter(item => ['real', 'wave_data'].includes(item.code))
|
||||
.map(item => item.code)
|
||||
realTimeSetting.value = true
|
||||
waveRecordSetting.value = true
|
||||
} else {
|
||||
//编辑时先给表单赋值(这会没接收被检设备),需要手动再给被检设备复制后整体表单赋值
|
||||
|
||||
@@ -873,7 +917,7 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
||||
isSelectDisabled.value = true
|
||||
formContent.memberIds = data.members
|
||||
}
|
||||
[
|
||||
;[
|
||||
PqErrSys_Result,
|
||||
boundPqDevList_Result,
|
||||
unboundPqDevList_Result,
|
||||
@@ -920,7 +964,7 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
||||
}
|
||||
}
|
||||
} else {
|
||||
[
|
||||
;[
|
||||
pqSource_Result,
|
||||
PqScript_Result,
|
||||
PqErrSys_Result,
|
||||
@@ -995,6 +1039,8 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
||||
}
|
||||
formContent.devIds = boundData.map((i: any) => i.id) // 已绑定设备id集合
|
||||
}
|
||||
handleDataSourceChange()
|
||||
handleTestItemChange(false)
|
||||
}
|
||||
|
||||
pqToArray() //将对象转为数组
|
||||
@@ -1042,13 +1088,21 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
||||
}
|
||||
|
||||
// 检测项选择变化时的处理函数
|
||||
const handleTestItemChange = () => {
|
||||
const handleTestItemChange = (showTip: boolean = true) => {
|
||||
if (formContent.testItems.length > 0) {
|
||||
const hasShanBian = secondLevelOptions
|
||||
.filter(option => formContent.testItems.includes(option.value))
|
||||
.find(option => option.label === '闪变')
|
||||
if (hasShanBian) {
|
||||
ElMessage.warning('闪变耗时较长,不推荐批量被检设备在检测过程中采集该指标')
|
||||
flickerSetting.value = true
|
||||
if (showTip) {
|
||||
shanBianDialogVisible.value = true
|
||||
setTimeout(() => {
|
||||
shanBianDialogVisible.value = false
|
||||
}, 5000)
|
||||
}
|
||||
} else {
|
||||
flickerSetting.value = false
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1206,17 +1260,44 @@ const handleDataSourceChange = () => {
|
||||
if (hasThreeSeconds && hasMinuteStats) {
|
||||
ElMessage.warning('3s实时数据与分钟统计数据不能同时选择')
|
||||
formContent.datasourceIds = []
|
||||
realTimeSetting.value = false
|
||||
statisticsSetting.value = false
|
||||
waveRecordSetting.value = false
|
||||
return
|
||||
}
|
||||
|
||||
if(hasLuBo && hasMinuteStats){
|
||||
if (hasLuBo && hasMinuteStats) {
|
||||
ElMessage.warning('录波数据与分钟统计数据不能同时选择')
|
||||
formContent.datasourceIds = []
|
||||
realTimeSetting.value = false
|
||||
statisticsSetting.value = false
|
||||
waveRecordSetting.value = false
|
||||
return
|
||||
}
|
||||
// 判断是否选择了多个“分钟统计数据”项
|
||||
const minuteStatLabels = selectedLabels.filter(label => label.includes('分钟'))
|
||||
if (minuteStatLabels.length > 1) {
|
||||
ElMessage.warning('分钟统计数据不能多选')
|
||||
formContent.datasourceIds = []
|
||||
realTimeSetting.value = false
|
||||
statisticsSetting.value = false
|
||||
waveRecordSetting.value = false
|
||||
return
|
||||
}
|
||||
if (hasThreeSeconds) {
|
||||
realTimeSetting.value = true
|
||||
} else {
|
||||
realTimeSetting.value = false
|
||||
}
|
||||
if (hasMinuteStats) {
|
||||
statisticsSetting.value = true
|
||||
} else {
|
||||
statisticsSetting.value = false
|
||||
}
|
||||
if (hasLuBo) {
|
||||
waveRecordSetting.value = true
|
||||
} else {
|
||||
waveRecordSetting.value = false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1272,4 +1353,12 @@ const props = defineProps<{
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.fade-enter-active,
|
||||
.fade-leave-active {
|
||||
transition: opacity 0.5s;
|
||||
}
|
||||
.fade-enter-from,
|
||||
.fade-leave-to {
|
||||
opacity: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user