mirror of
				https://gitee.com/hhyykk/ipms-sjy-ui.git
				synced 2025-10-31 18:28:44 +08:00 
			
		
		
		
	1. 修复化配置管理的 formRef 有问题的逻辑
This commit is contained in:
		| @@ -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 加载:1)修改时的数据加载;2)提交的按钮禁用 | const formLoading = ref(false) // 表单的 Loading 加载:1)修改时的数据加载;2)提交的按钮禁用 | ||||||
| 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> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV