1
1
<template >
2
- <Dialog :title =" modelTitle" v-model =" modelVisible" :loading =" modelLoading" >
3
- <el-form ref =" ruleFormRef" :model =" formData" :rules =" formRules" label-width =" 80px" >
2
+ <Dialog :title =" modelTitle" v-model =" modelVisible" >
3
+ <el-form
4
+ ref =" ruleFormRef"
5
+ :model =" formData"
6
+ :rules =" formRules"
7
+ label-width =" 80px"
8
+ v-loading =" formLoading"
9
+ >
4
10
<el-form-item label =" 参数分类" prop =" category" >
5
11
<el-input v-model =" formData.category" placeholder =" 请输入参数分类" />
6
12
</el-form-item >
@@ -42,9 +48,9 @@ const message = useMessage() // 消息弹窗
42
48
43
49
const modelVisible = ref (false ) // 弹窗的是否展示
44
50
const modelTitle = ref (' ' ) // 弹窗的标题
45
- const modelLoading = ref (false ) // 弹窗的 Loading 加载
51
+ const formLoading = ref (false ) // 表单的数据 Loading 加载
46
52
const formType = ref (' ' ) // 表单的类型:create - 新增;update - 修改
47
- const formLoading = ref (false ) // 操作按钮的 Loading 加载
53
+ const submitLoading = ref (false ) // 操作按钮的 Loading 加载:避免重复提交
48
54
// let formRef = ref() // 表单的 Ref
49
55
const formData = reactive ({
50
56
id: undefined ,
@@ -62,7 +68,7 @@ const formRules = reactive({
62
68
value: [{ required: true , message: ' 参数键值不能为空' , trigger: ' blur' }],
63
69
visible: [{ required: true , message: ' 是否可见不能为空' , trigger: ' blur' }]
64
70
})
65
- const ruleFormRef = ref <FormInstance >() // 表单 Ref
71
+ let ruleFormRef = ref <FormInstance >() // 表单 Ref
66
72
67
73
const { proxy } = getCurrentInstance () as any
68
74
@@ -74,13 +80,13 @@ const openModal = async (type: string, id?: number) => {
74
80
resetForm ()
75
81
// 修改时,设置数据
76
82
if (id ) {
77
- modelLoading .value = true
83
+ formLoading .value = true
78
84
try {
79
85
const data = await ConfigApi .getConfig (id )
80
86
// TODO 规范纠结点:因为用 reactive,所以需要使用 Object;可以替换的方案,1)把 reactive 改成 ref;
81
87
Object .assign (formData , data )
82
88
} finally {
83
- modelLoading .value = false
89
+ formLoading .value = false
84
90
}
85
91
}
86
92
}
@@ -95,7 +101,7 @@ const submitForm = async () => {
95
101
const valid = await formRef .validate ()
96
102
if (! valid ) return
97
103
// 提交请求
98
- formLoading .value = true
104
+ submitLoading .value = true
99
105
try {
100
106
const data = formData as ConfigApi .ConfigVO
101
107
if (formType .value === ' create' ) {
@@ -108,7 +114,7 @@ const submitForm = async () => {
108
114
modelVisible .value = false
109
115
emit (' success' )
110
116
} finally {
111
- formLoading .value = false
117
+ submitLoading .value = false
112
118
}
113
119
}
114
120
@@ -121,6 +127,9 @@ const resetForm = () => {
121
127
formData .value = ' '
122
128
formData .visible = true
123
129
formData .remark = ' '
130
+ // 重置表单
131
+ console .log (ruleFormRef )
132
+ console .log (ruleFormRef .value )
124
133
// proxy.$refs['ruleFormRef'].resetFields()
125
134
// setTimeout(() => {
126
135
// console.log(ruleFormRef.value, 'formRef.value')
0 commit comments