40
40
</template >
41
41
<script setup lang="ts">
42
42
import * as ConfigApi from ' @/api/infra/config'
43
+
43
44
const { t } = useI18n () // 国际化
44
45
const message = useMessage () // 消息弹窗
45
46
46
47
const modelVisible = ref (false ) // 弹窗的是否展示
47
48
const modelTitle = ref (' ' ) // 弹窗的标题
48
49
const formLoading = ref (false ) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
49
50
const formType = ref (' ' ) // 表单的类型:create - 新增;update - 修改
50
- const formData = reactive ({
51
+ const formData = ref ({
51
52
id: undefined ,
52
53
category: ' ' ,
53
54
name: ' ' ,
@@ -75,9 +76,7 @@ const openModal = async (type: string, id?: number) => {
75
76
if (id ) {
76
77
formLoading .value = true
77
78
try {
78
- const data = await ConfigApi .getConfig (id )
79
- // TODO 规范纠结点:因为用 reactive,所以需要使用 Object;可以替换的方案,1)把 reactive 改成 ref;
80
- Object .assign (formData , data )
79
+ formData .value = await ConfigApi .getConfig (id )
81
80
} finally {
82
81
formLoading .value = false
83
82
}
@@ -95,7 +94,7 @@ const submitForm = async () => {
95
94
// 提交请求
96
95
formLoading .value = true
97
96
try {
98
- const data = formData as ConfigApi .ConfigVO
97
+ const data = formData . value as ConfigApi .ConfigVO
99
98
if (formType .value === ' create' ) {
100
99
await ConfigApi .createConfig (data )
101
100
message .success (t (' common.createSuccess' ))
@@ -104,6 +103,7 @@ const submitForm = async () => {
104
103
message .success (t (' common.updateSuccess' ))
105
104
}
106
105
modelVisible .value = false
106
+ // 发送操作成功的事件
107
107
emit (' success' )
108
108
} finally {
109
109
formLoading .value = false
@@ -112,15 +112,15 @@ const submitForm = async () => {
112
112
113
113
/** 重置表单 */
114
114
const resetForm = () => {
115
- Object . assign ( formData , {
115
+ formData . value = {
116
116
id: undefined ,
117
117
category: ' ' ,
118
118
name: ' ' ,
119
119
key: ' ' ,
120
120
value: ' ' ,
121
121
visible: true ,
122
122
remark: ' '
123
- })
123
+ }
124
124
formRef .value ?.resetFields ()
125
125
}
126
126
</script >
0 commit comments