Compare commits
10 Commits
6fde670f96
...
2025-10
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e7c93d03aa | ||
|
|
a4b016ef0d | ||
|
|
d329b68592 | ||
|
|
e12a1baf99 | ||
|
|
8aae184a8b | ||
|
|
7f2275bad9 | ||
|
|
aab884e524 | ||
|
|
0215dbc875 | ||
|
|
b09a2bab10 | ||
|
|
4dbcdd20df |
@@ -89,8 +89,8 @@ export namespace Device {
|
|||||||
boundPlanName?: string | null
|
boundPlanName?: string | null
|
||||||
assign?: number ////是否分配给检测人员 0否 1是
|
assign?: number ////是否分配给检测人员 0否 1是
|
||||||
monitorList: Monitor.ResPqMon[]
|
monitorList: Monitor.ResPqMon[]
|
||||||
checked: boolean // 是否已选择
|
checked?: boolean // 是否已选择
|
||||||
disabled: boolean // 是否禁用
|
disabled?: boolean // 是否禁用
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SelectOption {
|
export interface SelectOption {
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ export namespace Monitor {
|
|||||||
statInterval: number; //统计间隔
|
statInterval: number; //统计间隔
|
||||||
harmSysId: string; //默认与谐波系统监测点ID相同
|
harmSysId: string; //默认与谐波系统监测点ID相同
|
||||||
checkFlag: number;//是否参与检测0否1是
|
checkFlag: number;//是否参与检测0否1是
|
||||||
|
resultType:string|null; //检测结果类型
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
@close="handleClose"
|
@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
|
<el-tab-pane
|
||||||
v-for="(result, index) in resultData"
|
v-for="(result, index) in resultData"
|
||||||
:key="result.monitorId"
|
:key="result.monitorId"
|
||||||
@@ -233,8 +233,8 @@ const getResultData = async () => {
|
|||||||
dialogVisible.value = true
|
dialogVisible.value = true
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleTabClick = (tab: any) => {
|
const handleTabChange = (name: any) => {
|
||||||
activeName.value = tab.name
|
activeName.value = name
|
||||||
}
|
}
|
||||||
const handleChooseClick = async () => {
|
const handleChooseClick = async () => {
|
||||||
const currentResult = resultData.value[activeName.value]
|
const currentResult = resultData.value[activeName.value]
|
||||||
|
|||||||
@@ -82,36 +82,10 @@
|
|||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="固件版本" prop="hardwareVersion" v-if="scene === '0'">
|
<el-form-item label="固件版本" prop="hardwareVersion" v-if="scene === '0'">
|
||||||
<el-select
|
<el-input v-model="formContent.hardwareVersion" clearable placeholder="请输入固件版本" />
|
||||||
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-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="软件版本" prop="softwareVersion" v-if="scene === '0'">
|
<el-form-item label="软件版本" prop="softwareVersion" v-if="scene === '0'">
|
||||||
<el-select
|
<el-input v-model="formContent.softwareVersion" clearable placeholder="请输入软件版本" />
|
||||||
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-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="定检日期" prop="inspectDate" v-if="MonIsShow">
|
<el-form-item label="定检日期" prop="inspectDate" v-if="MonIsShow">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
@@ -218,55 +192,28 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="所属地市" prop="cityName" v-if="MonIsShow">
|
<el-form-item label="所属地市" prop="cityName" v-if="MonIsShow">
|
||||||
<el-select
|
<el-input
|
||||||
v-model="formContent.cityName"
|
v-model="formContent.cityName"
|
||||||
clearable
|
clearable
|
||||||
placeholder="请选择所属地市"
|
placeholder="请输入所属地市"
|
||||||
:disabled="formContent.importFlag == 1"
|
: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>
|
||||||
<el-form-item label="所属供电公司" prop="gdName" v-if="MonIsShow">
|
<el-form-item label="所属供电公司" prop="gdName" v-if="MonIsShow">
|
||||||
<el-select
|
<el-input
|
||||||
v-model="formContent.gdName"
|
v-model="formContent.gdName"
|
||||||
clearable
|
clearable
|
||||||
placeholder="请选择所属供电公司"
|
placeholder="请输入所属供电公司"
|
||||||
:disabled="formContent.importFlag == 1"
|
: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>
|
||||||
<el-form-item label="所属电站" prop="subName" v-if="MonIsShow">
|
<el-form-item label="所属电站" prop="subName" v-if="MonIsShow">
|
||||||
<el-select
|
<el-input
|
||||||
v-model="formContent.subName"
|
v-model="formContent.subName"
|
||||||
clearable
|
clearable
|
||||||
placeholder="请选择所属电站"
|
placeholder="请输入所属电站"
|
||||||
:disabled="formContent.importFlag == 1"
|
: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>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-auth.device="'factorFlag'"
|
v-auth.device="'factorFlag'"
|
||||||
@@ -279,6 +226,14 @@
|
|||||||
<el-radio :value="0">否</el-radio>
|
<el-radio :value="0">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</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>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
@@ -312,7 +267,7 @@ import dayjs from 'dayjs'
|
|||||||
import MonitorTable from '@/views/machine/device/components/monitorTab.vue'
|
import MonitorTable from '@/views/machine/device/components/monitorTab.vue'
|
||||||
import { useAppSceneStore } from '@/stores/modules/mode'
|
import { useAppSceneStore } from '@/stores/modules/mode'
|
||||||
import { generateUUID } from '@/utils'
|
import { generateUUID } from '@/utils'
|
||||||
import { Monitor } from '@/api/device/interface/monitor'
|
import { type Monitor } from '@/api/device/interface/monitor'
|
||||||
|
|
||||||
const AppSceneStore = useAppSceneStore()
|
const AppSceneStore = useAppSceneStore()
|
||||||
const MonIsShow = ref(false)
|
const MonIsShow = ref(false)
|
||||||
@@ -382,6 +337,7 @@ function useMetaInfo() {
|
|||||||
gdName: '',
|
gdName: '',
|
||||||
subName: '',
|
subName: '',
|
||||||
importFlag: 0,
|
importFlag: 0,
|
||||||
|
harmSysId: '',
|
||||||
inspectChannel: [],
|
inspectChannel: [],
|
||||||
monitorList: []
|
monitorList: []
|
||||||
})
|
})
|
||||||
@@ -421,6 +377,7 @@ const resetFormContent = () => {
|
|||||||
subName: '',
|
subName: '',
|
||||||
importFlag: 0,
|
importFlag: 0,
|
||||||
inspectChannel: [],
|
inspectChannel: [],
|
||||||
|
harmSysId: '',
|
||||||
monitorList: []
|
monitorList: []
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -486,8 +443,10 @@ const rules = computed(() => {
|
|||||||
}
|
}
|
||||||
if (scene.value !== '0') {
|
if (scene.value !== '0') {
|
||||||
dynamicRules.name = [{ required: true, message: '设备名称必填!', trigger: 'blur' }]
|
dynamicRules.name = [{ required: true, message: '设备名称必填!', trigger: 'blur' }]
|
||||||
dynamicRules.hardwareVersion = [{ required: true, message: '固件版本必选!', trigger: 'change' }]
|
// dynamicRules.hardwareVersion = [{ required: true, message: '固件版本必选!', trigger: 'change' }]
|
||||||
dynamicRules.softwareVersion = [{ 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' }]
|
dynamicRules.manufacturer = [{ required: true, message: '生产厂家必选!', trigger: 'change' }]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -498,9 +457,12 @@ const rules = computed(() => {
|
|||||||
|
|
||||||
if (mode.value === '比对式') {
|
if (mode.value === '比对式') {
|
||||||
dynamicRules.inspectDate = [{ required: true, message: '定检日期必填!', trigger: 'blur' }]
|
dynamicRules.inspectDate = [{ required: true, message: '定检日期必填!', trigger: 'blur' }]
|
||||||
dynamicRules.cityName = [{ required: true, message: '所属地市必选!', trigger: 'change' }]
|
// dynamicRules.cityName = [{ required: true, message: '所属地市必选!', trigger: 'change' }]
|
||||||
dynamicRules.gdName = [{ required: true, message: '所属供电公司必选!', trigger: 'change' }]
|
// dynamicRules.gdName = [{ required: true, message: '所属供电公司必选!', trigger: 'change' }]
|
||||||
dynamicRules.subName = [{ 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
|
return dynamicRules
|
||||||
@@ -517,7 +479,6 @@ const close = () => {
|
|||||||
|
|
||||||
//子组件监测点变化通知父组件设备台账
|
//子组件监测点变化通知父组件设备台账
|
||||||
const getParameter = (data: Monitor.ResPqMon[]) => {
|
const getParameter = (data: Monitor.ResPqMon[]) => {
|
||||||
console.log('子组件监测点变化通知父组件设备台账', data)
|
|
||||||
monitor.value = data
|
monitor.value = data
|
||||||
//保存监测点信息自动更新设备台账的被检通道
|
//保存监测点信息自动更新设备台账的被检通道
|
||||||
formContent.inspectChannel = monitor.value
|
formContent.inspectChannel = monitor.value
|
||||||
@@ -657,6 +618,7 @@ const open = async (
|
|||||||
}
|
}
|
||||||
monitor.value = data.monitorList
|
monitor.value = data.monitorList
|
||||||
} else {
|
} else {
|
||||||
|
monitor.value = []
|
||||||
resetFormContent()
|
resetFormContent()
|
||||||
//只有比对式设备ID由前端传
|
//只有比对式设备ID由前端传
|
||||||
if (currentMode === '比对式') formContent.id = generateUUID().replaceAll('-', '')
|
if (currentMode === '比对式') formContent.id = generateUUID().replaceAll('-', '')
|
||||||
|
|||||||
@@ -11,19 +11,17 @@
|
|||||||
<div>
|
<div>
|
||||||
<el-form :model="formContent" ref="dialogFormRef" :rules="rules" label-width="140" class="form-two">
|
<el-form :model="formContent" ref="dialogFormRef" :rules="rules" label-width="140" class="form-two">
|
||||||
<el-form-item label="名称" prop="name">
|
<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>
|
||||||
<el-form-item label="线路号" prop="num">
|
<el-form-item label="线路号" prop="num">
|
||||||
<el-select
|
<el-select v-model="formContent.num" placeholder="请选择线路号" @change="handleMonNumChange" :disabled="props.DevFormContent.importFlag == 1 || formContent.resultType!=null">
|
||||||
v-model="formContent.num"
|
|
||||||
clearable
|
|
||||||
placeholder="请选择线路号"
|
|
||||||
@change="handleMonNumChange"
|
|
||||||
>
|
|
||||||
<el-option v-for="item in lineNum" :key="item.id" :label="item.name" :value="item.id" />
|
<el-option v-for="item in lineNum" :key="item.id" :label="item.name" :value="item.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="所属母线" prop="busbar">
|
<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
|
<el-select
|
||||||
v-model="formContent.busbar"
|
v-model="formContent.busbar"
|
||||||
clearable
|
clearable
|
||||||
@@ -38,9 +36,9 @@
|
|||||||
:value="item.value"
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
<el-form-item label="接线方式" prop="connection">
|
<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
|
<el-option
|
||||||
v-for="item in dictStore.getDictData('Dev_Connect')"
|
v-for="item in dictStore.getDictData('Dev_Connect')"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
@@ -58,11 +56,11 @@
|
|||||||
</template>
|
</template>
|
||||||
<div class="ratio-input-group">
|
<div class="ratio-input-group">
|
||||||
<el-form-item prop="ptPrimary" class="ratio-form-item">
|
<el-form-item prop="ptPrimary" class="ratio-form-item">
|
||||||
<el-input v-model="ptPrimary" placeholder="一次侧" @input="handlePtInput" />
|
<el-input v-model="ptPrimary" placeholder="一次侧" @input="handlePtInput" :disabled="props.DevFormContent.importFlag == 1 || formContent.resultType!=null"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<div class="colon">:</div>
|
<div class="colon">:</div>
|
||||||
<el-form-item prop="ptSecondary" style="margin-left: 10px" class="ratio-form-item">
|
<el-form-item prop="ptSecondary" style="margin-left: 10px" class="ratio-form-item">
|
||||||
<el-input v-model="ptSecondary" placeholder="二次侧" @input="handlePtInput" />
|
<el-input v-model="ptSecondary" placeholder="二次侧" @input="handlePtInput" :disabled="props.DevFormContent.importFlag == 1 || formContent.resultType!=null"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -77,17 +75,17 @@
|
|||||||
</template>
|
</template>
|
||||||
<div class="ratio-input-group">
|
<div class="ratio-input-group">
|
||||||
<el-form-item prop="ctPrimary" class="ratio-form-item">
|
<el-form-item prop="ctPrimary" class="ratio-form-item">
|
||||||
<el-input v-model="ctPrimary" placeholder="一次侧" @input="handleCtInput" />
|
<el-input v-model="ctPrimary" placeholder="一次侧" @input="handleCtInput" :disabled="props.DevFormContent.importFlag == 1 || formContent.resultType!=null"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<div class="colon">:</div>
|
<div class="colon">:</div>
|
||||||
<el-form-item prop="ctSecondary" style="margin-left: 10px" class="ratio-form-item">
|
<el-form-item prop="ctSecondary" style="margin-left: 10px" class="ratio-form-item">
|
||||||
<el-input v-model="ctSecondary" placeholder="二次侧" @input="handleCtInput" />
|
<el-input v-model="ctSecondary" placeholder="二次侧" @input="handleCtInput" :disabled="props.DevFormContent.importFlag == 1 || formContent.resultType!=null"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="统计间隔" prop="statInterval">
|
<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
|
<el-option
|
||||||
v-for="item in dictStore.getDictData('Dev_Chns')"
|
v-for="item in dictStore.getDictData('Dev_Chns')"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
@@ -97,10 +95,10 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="谐波系统检测点id" prop="harmSysId" placeholder="请输入谐波系统检测点id">
|
<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>
|
||||||
<el-form-item label="是否参与检测" prop="checkFlag" placeholder="请输入CT编号">
|
<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="1"></el-option>
|
||||||
<el-option label="否" :value="0"></el-option>
|
<el-option label="否" :value="0"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
@@ -142,6 +140,11 @@ const ptSecondary = ref<string>('')
|
|||||||
const ctPrimary = ref<string>('')
|
const ctPrimary = ref<string>('')
|
||||||
const ctSecondary = ref<string>('')
|
const ctSecondary = ref<string>('')
|
||||||
|
|
||||||
|
// 定义 props
|
||||||
|
const props = defineProps<{
|
||||||
|
DevFormContent: Device.ResPqDev
|
||||||
|
}>()
|
||||||
|
|
||||||
// 定义弹出组件元信息
|
// 定义弹出组件元信息
|
||||||
const dialogFormRef = ref()
|
const dialogFormRef = ref()
|
||||||
function useMetaInfo() {
|
function useMetaInfo() {
|
||||||
@@ -179,7 +182,8 @@ const resetFormContent = () => {
|
|||||||
connection: '',
|
connection: '',
|
||||||
statInterval: 1,
|
statInterval: 1,
|
||||||
harmSysId: '',
|
harmSysId: '',
|
||||||
checkFlag: 1
|
checkFlag: 1,
|
||||||
|
resultType: null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -197,7 +201,8 @@ const rules: Ref<Record<string, Array<FormItemRule>>> = ref({
|
|||||||
name: [{ required: true, message: '监测点名称必填!', trigger: 'blur' }],
|
name: [{ required: true, message: '监测点名称必填!', trigger: 'blur' }],
|
||||||
num: [{ required: true, message: '线路号必选', trigger: 'change' }],
|
num: [{ required: true, message: '线路号必选', trigger: 'change' }],
|
||||||
connection: [{ 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' }],
|
// harmSysId : [{ required: true, message: '谐波系统检测点id必填!', trigger: 'blur' }],
|
||||||
checkFlag: [{ required: true, message: '是否参与检测必选!', trigger: 'change' }]
|
checkFlag: [{ required: true, message: '是否参与检测必选!', trigger: 'change' }]
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
type="primary"
|
type="primary"
|
||||||
:icon="CirclePlus"
|
:icon="CirclePlus"
|
||||||
@click="openDialog('add')"
|
@click="openDialog('add')"
|
||||||
:disabled="props.DevFormContent.importFlag == 1"
|
|
||||||
>
|
>
|
||||||
新增
|
新增
|
||||||
</el-button>
|
</el-button>
|
||||||
@@ -38,7 +37,6 @@
|
|||||||
link
|
link
|
||||||
:icon="EditPen"
|
:icon="EditPen"
|
||||||
:model-value="false"
|
:model-value="false"
|
||||||
:disabled="props.DevFormContent.importFlag == 1"
|
|
||||||
@click="openDialog('edit', scope.row)"
|
@click="openDialog('edit', scope.row)"
|
||||||
>
|
>
|
||||||
编辑
|
编辑
|
||||||
@@ -49,13 +47,14 @@
|
|||||||
link
|
link
|
||||||
:icon="Delete"
|
:icon="Delete"
|
||||||
@click="handleDelete(scope.row.id)"
|
@click="handleDelete(scope.row.id)"
|
||||||
|
:disabled="scope.row.resultType!=null"
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</ProTable>
|
</ProTable>
|
||||||
</div>
|
</div>
|
||||||
<MonitorPopup @getParameter="getParameter" ref="monitorPopup" />
|
<MonitorPopup @getParameter="getParameter" ref="monitorPopup" :DevFormContent="props.DevFormContent"/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
|||||||
@@ -57,7 +57,8 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-input
|
<el-input-number
|
||||||
|
:controls="false"
|
||||||
v-model="row.startValue"
|
v-model="row.startValue"
|
||||||
style="width: 60px"
|
style="width: 60px"
|
||||||
:disabled="isStartValueDisabled[row.sort]"
|
:disabled="isStartValueDisabled[row.sort]"
|
||||||
@@ -82,7 +83,8 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-input
|
<el-input-number
|
||||||
|
:controls="false"
|
||||||
v-model="row.endValue"
|
v-model="row.endValue"
|
||||||
style="width: 60px"
|
style="width: 60px"
|
||||||
:disabled="isEndValueDisabled[row.sort]"
|
:disabled="isEndValueDisabled[row.sort]"
|
||||||
@@ -107,7 +109,7 @@
|
|||||||
<el-table-column label="最大误差">
|
<el-table-column label="最大误差">
|
||||||
<el-table-column prop="maxErrorValue" label="最大误差值" width="100">
|
<el-table-column prop="maxErrorValue" label="最大误差值" width="100">
|
||||||
<template #default="{ row }">
|
<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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="误差类型" width="170">
|
<el-table-column label="误差类型" width="170">
|
||||||
|
|||||||
@@ -293,7 +293,7 @@
|
|||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8" v-if="waveRecordSetting">
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label-width="140"
|
:label-width="140"
|
||||||
label="录波数据有效组数"
|
label="录波数据有效组数"
|
||||||
@@ -311,7 +311,7 @@
|
|||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8" v-if="realTimeSetting">
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label-width="140"
|
:label-width="140"
|
||||||
label="实时数据有效组数"
|
label="实时数据有效组数"
|
||||||
@@ -329,7 +329,7 @@
|
|||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8" v-if="statisticsSetting">
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label-width="140"
|
:label-width="140"
|
||||||
label="统计数据有效组数"
|
label="统计数据有效组数"
|
||||||
@@ -347,7 +347,7 @@
|
|||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8" v-if="flickerSetting">
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label-width="140"
|
:label-width="140"
|
||||||
label="闪变数据有效组数"
|
label="闪变数据有效组数"
|
||||||
@@ -378,6 +378,39 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<ImportExcel ref="deviceImportExcel" @result="importResult" />
|
<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>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -414,6 +447,7 @@ import { downloadTemplate, importPqDev } from '@/api/device/device'
|
|||||||
import { getTestConfig } from '@/api/system/base'
|
import { getTestConfig } from '@/api/system/base'
|
||||||
import { getRegRes } from '@/api/system/versionRegister'
|
import { getRegRes } from '@/api/system/versionRegister'
|
||||||
import DevSelect from '@/views/plan/planList/components/devSelect.vue'
|
import DevSelect from '@/views/plan/planList/components/devSelect.vue'
|
||||||
|
import { WarningFilled } from '@element-plus/icons-vue'
|
||||||
|
|
||||||
const modeStore = useModeStore()
|
const modeStore = useModeStore()
|
||||||
const AppSceneStore = useAppSceneStore()
|
const AppSceneStore = useAppSceneStore()
|
||||||
@@ -444,8 +478,13 @@ const planType = ref<number>(0)
|
|||||||
const subPlanBindStandardDev = ref<any>([]) //哪些标准设备已经被子计划绑定
|
const subPlanBindStandardDev = ref<any>([]) //哪些标准设备已经被子计划绑定
|
||||||
const activeNames = ref(['1'])
|
const activeNames = ref(['1'])
|
||||||
const allDisabled = ref(false)
|
const allDisabled = ref(false)
|
||||||
|
const shanBianDialogVisible = ref(false)
|
||||||
const leaderData = ref<any[]>([])
|
const leaderData = ref<any[]>([])
|
||||||
const memberData = 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 generateData = () => {
|
||||||
const manufacturerDict = dictStore.getDictData('Dev_Manufacturers')
|
const manufacturerDict = dictStore.getDictData('Dev_Manufacturers')
|
||||||
|
|
||||||
@@ -747,6 +786,10 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
|||||||
titleType.value = sign
|
titleType.value = sign
|
||||||
isSelectDisabled.value = false
|
isSelectDisabled.value = false
|
||||||
planType.value = plan
|
planType.value = plan
|
||||||
|
waveRecordSetting.value = false
|
||||||
|
statisticsSetting.value = false
|
||||||
|
realTimeSetting.value = false
|
||||||
|
flickerSetting.value = false
|
||||||
if (sign == 'add') {
|
if (sign == 'add') {
|
||||||
resetFormContent()
|
resetFormContent()
|
||||||
allDisabled.value = false
|
allDisabled.value = false
|
||||||
@@ -761,7 +804,7 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
|||||||
user_Result: any
|
user_Result: any
|
||||||
|
|
||||||
if (mode.value === '比对式') {
|
if (mode.value === '比对式') {
|
||||||
[
|
;[
|
||||||
PqErrSys_Result,
|
PqErrSys_Result,
|
||||||
pqDevList_Result,
|
pqDevList_Result,
|
||||||
pqReportName_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 dataRuleDict = dictStore.getDictData('Data_Rule')
|
||||||
const rule = dataRuleDict.find(item => item.code === 'Cp95_Value')
|
const rule = dataRuleDict.find(item => item.code === 'Cp95_Value')
|
||||||
formContent.dataRule = rule ? rule.id : ''
|
formContent.dataRule = rule ? rule.id : ''
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
[pqSource_Result, PqScript_Result, PqErrSys_Result, pqDevList_Result, pqReportName_Result] =
|
;[pqSource_Result, PqScript_Result, PqErrSys_Result, pqDevList_Result, pqReportName_Result] =
|
||||||
await Promise.all([
|
await Promise.all([
|
||||||
getTestSourceList(data),
|
getTestSourceList(data),
|
||||||
getPqScriptList(data),
|
getPqScriptList(data),
|
||||||
@@ -844,6 +886,8 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
|||||||
formContent.datasourceIds = datasourceDicts
|
formContent.datasourceIds = datasourceDicts
|
||||||
.filter(item => ['real', 'wave_data'].includes(item.code))
|
.filter(item => ['real', 'wave_data'].includes(item.code))
|
||||||
.map(item => item.code)
|
.map(item => item.code)
|
||||||
|
realTimeSetting.value = true
|
||||||
|
waveRecordSetting.value = true
|
||||||
} else {
|
} else {
|
||||||
//编辑时先给表单赋值(这会没接收被检设备),需要手动再给被检设备复制后整体表单赋值
|
//编辑时先给表单赋值(这会没接收被检设备),需要手动再给被检设备复制后整体表单赋值
|
||||||
|
|
||||||
@@ -873,7 +917,7 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
|||||||
isSelectDisabled.value = true
|
isSelectDisabled.value = true
|
||||||
formContent.memberIds = data.members
|
formContent.memberIds = data.members
|
||||||
}
|
}
|
||||||
[
|
;[
|
||||||
PqErrSys_Result,
|
PqErrSys_Result,
|
||||||
boundPqDevList_Result,
|
boundPqDevList_Result,
|
||||||
unboundPqDevList_Result,
|
unboundPqDevList_Result,
|
||||||
@@ -920,7 +964,7 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
[
|
;[
|
||||||
pqSource_Result,
|
pqSource_Result,
|
||||||
PqScript_Result,
|
PqScript_Result,
|
||||||
PqErrSys_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集合
|
formContent.devIds = boundData.map((i: any) => i.id) // 已绑定设备id集合
|
||||||
}
|
}
|
||||||
|
handleDataSourceChange()
|
||||||
|
handleTestItemChange(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
pqToArray() //将对象转为数组
|
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) {
|
if (formContent.testItems.length > 0) {
|
||||||
const hasShanBian = secondLevelOptions
|
const hasShanBian = secondLevelOptions
|
||||||
.filter(option => formContent.testItems.includes(option.value))
|
.filter(option => formContent.testItems.includes(option.value))
|
||||||
.find(option => option.label === '闪变')
|
.find(option => option.label === '闪变')
|
||||||
if (hasShanBian) {
|
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) {
|
if (hasThreeSeconds && hasMinuteStats) {
|
||||||
ElMessage.warning('3s实时数据与分钟统计数据不能同时选择')
|
ElMessage.warning('3s实时数据与分钟统计数据不能同时选择')
|
||||||
formContent.datasourceIds = []
|
formContent.datasourceIds = []
|
||||||
|
realTimeSetting.value = false
|
||||||
|
statisticsSetting.value = false
|
||||||
|
waveRecordSetting.value = false
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if(hasLuBo && hasMinuteStats){
|
if (hasLuBo && hasMinuteStats) {
|
||||||
ElMessage.warning('录波数据与分钟统计数据不能同时选择')
|
ElMessage.warning('录波数据与分钟统计数据不能同时选择')
|
||||||
formContent.datasourceIds = []
|
formContent.datasourceIds = []
|
||||||
|
realTimeSetting.value = false
|
||||||
|
statisticsSetting.value = false
|
||||||
|
waveRecordSetting.value = false
|
||||||
|
return
|
||||||
}
|
}
|
||||||
// 判断是否选择了多个“分钟统计数据”项
|
// 判断是否选择了多个“分钟统计数据”项
|
||||||
const minuteStatLabels = selectedLabels.filter(label => label.includes('分钟'))
|
const minuteStatLabels = selectedLabels.filter(label => label.includes('分钟'))
|
||||||
if (minuteStatLabels.length > 1) {
|
if (minuteStatLabels.length > 1) {
|
||||||
ElMessage.warning('分钟统计数据不能多选')
|
ElMessage.warning('分钟统计数据不能多选')
|
||||||
formContent.datasourceIds = []
|
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;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
.fade-enter-active,
|
||||||
|
.fade-leave-active {
|
||||||
|
transition: opacity 0.5s;
|
||||||
|
}
|
||||||
|
.fade-enter-from,
|
||||||
|
.fade-leave-to {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user