检测弹窗关闭后页面刷新

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

View File

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

View File

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

View File

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