子组件利用watch监听弹窗的打开与关闭;
主要数据都在baTable的原型上;
<template>
<!-- 对话框表单 -->
<el-dialog class="ba-operate-dialog" :close-on-click-modal="false"
:model-value="['add', 'edit'].includes(baTable.form.operate!)"
@close="baTable.toggleForm" width="38%">
</el-dialog>
</template>
<script setup lang="ts">
import {
reactive,
ref,
inject,
onMounted,
watch
} from 'vue'
import type baTableClass from '/@/utils/baTable'
const baTable = inject('baTable') as baTableClass
const items = reactive({
form: {},
})
onMounted(() => {})
watch(baTable.form, () => {
if(baTable.form.operate != "" && baTable.form.operate == 'add') {
// 弹窗打开 -- 新增
}
if(baTable.form.operate != "" && baTable.form.operate == 'edit') {
// 弹窗打开 -- 编辑
}
if(baTable.form.operate == "") {
// 弹窗关闭
}
})
</script>