检测弹窗关闭后页面刷新

This commit is contained in:
caozehui
2026-06-08 08:45:05 +08:00
parent 4189eea278
commit b9515f7f91
4 changed files with 21 additions and 8 deletions

View File

@@ -1,6 +1,6 @@
<template> <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" @close="close" @closed="handleClosed" align-center>
<div> <div>
<el-form :model="formContent" ref='dialogFormRef' :rules='baseRules' class="form-two"> <el-form :model="formContent" ref='dialogFormRef' :rules='baseRules' class="form-two">
<el-form-item label="名称" prop="name"> <el-form-item label="名称" prop="name">
@@ -161,6 +161,10 @@ const close = () => {
dialogFormRef.value?.resetFields() dialogFormRef.value?.resetFields()
} }
const handleClosed = async () => {
await props.refreshTable?.()
}
// 保存数据 // 保存数据
const save = () => { const save = () => {
try { try {
@@ -173,8 +177,6 @@ const save = () => {
} }
ElMessage.success({message: `${dialogTitle.value}成功!`}) ElMessage.success({message: `${dialogTitle.value}成功!`})
close() close()
// 刷新表格
await props.refreshTable!()
} }
}) })
} catch (err) { } catch (err) {
@@ -199,7 +201,7 @@ const open = async (sign: string, data: Partial<FreqConverter.ResFreqConverter>
// 对外映射 // 对外映射
defineExpose({open}) defineExpose({open})
const props = defineProps<{ const props = defineProps<{
refreshTable: (() => Promise<void>) | undefined; refreshTable?: (() => Promise<void>) | (() => void);
}>() }>()
</script> </script>

View File

@@ -7,6 +7,7 @@
destroy-on-close destroy-on-close
align-center align-center
@close="handleClose" @close="handleClose"
@closed="handleClosed"
> >
<div v-loading="loading" class="freq-converter-result-popup"> <div v-loading="loading" class="freq-converter-result-popup">
<FreqConverterDipChart <FreqConverterDipChart
@@ -35,6 +36,10 @@ import {getFreqConverterResult} from '@/api/device/freqConverter'
import {type FreqConverter} from '@/api/device/interface/freqConverter' import {type FreqConverter} from '@/api/device/interface/freqConverter'
import FreqConverterDipChart from '@/views/machine/freqConverter/components/freqConverterDipChart.vue' import FreqConverterDipChart from '@/views/machine/freqConverter/components/freqConverterDipChart.vue'
const props = defineProps<{
refreshTable?: (() => Promise<void>) | (() => void);
}>()
const dialogVisible = ref(false) const dialogVisible = ref(false)
const loading = ref(false) const loading = ref(false)
const resultPayload = ref<any[]>([]) const resultPayload = ref<any[]>([])
@@ -84,6 +89,10 @@ const handleClose = () => {
resetState() resetState()
} }
const handleClosed = async () => {
await props.refreshTable?.()
}
const open = async (row: FreqConverter.ResFreqConverter) => { const open = async (row: FreqConverter.ResFreqConverter) => {
if (!row.id) { if (!row.id) {
ElMessage.warning('未获取到变频器ID') ElMessage.warning('未获取到变频器ID')

View File

@@ -10,6 +10,7 @@
:show-close="true" :show-close="true"
:close-on-press-escape="false" :close-on-press-escape="false"
:before-close="handleBeforeClose" :before-close="handleBeforeClose"
@closed="handleClosed"
destroy-on-close destroy-on-close
align-center align-center
> >
@@ -217,6 +218,10 @@ const closeDialog = () => {
resetState() resetState()
} }
const handleClosed = async () => {
await props.refreshTable?.()
}
const stopDetect = async () => { const stopDetect = async () => {
if (!startDetectSuccess.value) { if (!startDetectSuccess.value) {
return return
@@ -277,7 +282,6 @@ const handleBeforeClose = async (done: () => void) => {
if (hasSocketError.value) { if (hasSocketError.value) {
await stopDetect() await stopDetect()
closeDialog() closeDialog()
await props.refreshTable?.()
done() done()
return return
} }
@@ -286,7 +290,6 @@ const handleBeforeClose = async (done: () => void) => {
await confirmExit() await confirmExit()
await stopDetect() await stopDetect()
closeDialog() closeDialog()
await props.refreshTable?.()
done() done()
} catch { } catch {
// 用户取消关闭 // 用户取消关闭
@@ -353,7 +356,6 @@ const handleExit = async () => {
await stopDetect() await stopDetect()
closeDialog() closeDialog()
await props.refreshTable?.()
} }
const open = (row: FreqConverter.ResFreqConverter) => { const open = (row: FreqConverter.ResFreqConverter) => {

View File

@@ -66,7 +66,7 @@
<FreqConverterPopup :refresh-table="proTable?.getTableList" ref="freqConverterPopup" /> <FreqConverterPopup :refresh-table="proTable?.getTableList" ref="freqConverterPopup" />
<FreqConverterTestPopup :refresh-table="proTable?.getTableList" ref="freqConverterTestPopup" /> <FreqConverterTestPopup :refresh-table="proTable?.getTableList" ref="freqConverterTestPopup" />
<FreqConverterResultPopup ref="freqConverterResultPopup" /> <FreqConverterResultPopup :refresh-table="proTable?.getTableList" ref="freqConverterResultPopup" />
</template> </template>
<script setup lang="tsx" name="freqConverter"> <script setup lang="tsx" name="freqConverter">