feat(plan): 根据数据源动态显示设置项

This commit is contained in:
贾同学
2025-10-29 16:11:58 +08:00
parent 4dbcdd20df
commit b09a2bab10

View File

@@ -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="闪变数据有效组数"
@@ -481,6 +481,10 @@ 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')
@@ -782,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
@@ -878,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 {
//编辑时先给表单赋值(这会没接收被检设备),需要手动再给被检设备复制后整体表单赋值
@@ -1029,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() //将对象转为数组
@@ -1076,16 +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) {
shanBianDialogVisible.value = true
setTimeout(() => {
shanBianDialogVisible.value = false
}, 5000)
flickerSetting.value = true
if (showTip) {
shanBianDialogVisible.value = true
setTimeout(() => {
shanBianDialogVisible.value = false
}, 5000)
}
} else {
flickerSetting.value = false
}
}
}
@@ -1243,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) {
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
}
}