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