1. 修复化配置管理的 formRef 有问题的逻辑

This commit is contained in:
YunaiV 2023-03-09 22:58:54 +08:00
parent 6f7a785c80
commit 7540a4e2e7

View File

@ -1,7 +1,7 @@
<template> <template>
<Dialog :title="modelTitle" v-model="modelVisible"> <Dialog :title="modelTitle" v-model="modelVisible">
<el-form <el-form
ref="ruleFormRef" ref="formRef"
:model="formData" :model="formData"
:rules="formRules" :rules="formRules"
label-width="80px" label-width="80px"
@ -33,24 +33,20 @@
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button> <el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="colseForm(ruleFormRef)"> </el-button> <el-button @click="modelVisible = false"> </el-button>
</div> </div>
</template> </template>
</Dialog> </Dialog>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import * as ConfigApi from '@/api/infra/config' import * as ConfigApi from '@/api/infra/config'
// import type { FormExpose } from '@/components/Form'
import type { FormInstance } from 'element-plus'
const { t } = useI18n() // const { t } = useI18n() //
const message = useMessage() // const message = useMessage() //
// const { proxy } = getCurrentInstance()
const modelVisible = ref(false) // const modelVisible = ref(false) //
const modelTitle = ref('') // const modelTitle = ref('') //
const formLoading = ref(false) // Loading 12 const formLoading = ref(false) // Loading 12
const formType = ref('') // create - update - const formType = ref('') // create - update -
// let formRef = ref() // Ref
const formData = reactive({ const formData = reactive({
id: undefined, id: undefined,
category: '', category: '',
@ -67,9 +63,7 @@ const formRules = reactive({
value: [{ required: true, message: '参数键值不能为空', trigger: 'blur' }], value: [{ required: true, message: '参数键值不能为空', trigger: 'blur' }],
visible: [{ required: true, message: '是否可见不能为空', trigger: 'blur' }] visible: [{ required: true, message: '是否可见不能为空', trigger: 'blur' }]
}) })
let ruleFormRef = ref<FormInstance>() // Ref const formRef = ref() // Ref
const { proxy } = getCurrentInstance() as any
/** 打开弹窗 */ /** 打开弹窗 */
const openModal = async (type: string, id?: number) => { const openModal = async (type: string, id?: number) => {
@ -94,15 +88,9 @@ defineExpose({ openModal }) // 提供 openModal 方法,用于打开弹窗
/** 提交表单 */ /** 提交表单 */
const emit = defineEmits(['success']) // success const emit = defineEmits(['success']) // success
const submitForm = async () => { const submitForm = async () => {
if (true) {
formLoading.value = true
console.log('1111')
return
}
const formRef = proxy.$refs['formRef']
// //
if (!formRef) return if (!formRef) return
const valid = await formRef.validate() const valid = await formRef.value.validate()
if (!valid) return if (!valid) return
// //
formLoading.value = true formLoading.value = true
@ -124,27 +112,15 @@ const submitForm = async () => {
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.id = undefined Object.assign(formData, {
formData.category = '' id: undefined,
formData.name = '' category: '',
formData.key = '' name: '',
formData.value = '' key: '',
formData.visible = true value: '',
formData.remark = '' visible: true,
// remark: ''
console.log(ruleFormRef) })
console.log(ruleFormRef.value) formRef.value?.resetFields()
// proxy.$refs['ruleFormRef'].resetFields()
// setTimeout(() => {
// console.log(ruleFormRef.value, 'formRef.value')
// formRef.value.resetFields() // TODO formRef
// ruleFormRef.value?.resetFields()
// }, 100)
}
/** 取消添加 */
const colseForm = (formEl: FormInstance | undefined) => {
if (!formEl) return
formEl.resetFields()
modelVisible.value = false
} }
</script> </script>