Skip to content

Commit 30dea30

Browse files
committed
重构:调整 formData 使用 ref。原因是,原本的 reactive 无法整个赋值
1 parent d989fa2 commit 30dea30

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/views/infra/config/form.vue

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,15 @@
4040
</template>
4141
<script setup lang="ts">
4242
import * as ConfigApi from '@/api/infra/config'
43+
4344
const { t } = useI18n() // 国际化
4445
const message = useMessage() // 消息弹窗
4546
4647
const modelVisible = ref(false) // 弹窗的是否展示
4748
const modelTitle = ref('') // 弹窗的标题
4849
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
4950
const formType = ref('') // 表单的类型:create - 新增;update - 修改
50-
const formData = reactive({
51+
const formData = ref({
5152
id: undefined,
5253
category: '',
5354
name: '',
@@ -75,9 +76,7 @@ const openModal = async (type: string, id?: number) => {
7576
if (id) {
7677
formLoading.value = true
7778
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)
8180
} finally {
8281
formLoading.value = false
8382
}
@@ -95,7 +94,7 @@ const submitForm = async () => {
9594
// 提交请求
9695
formLoading.value = true
9796
try {
98-
const data = formData as ConfigApi.ConfigVO
97+
const data = formData.value as ConfigApi.ConfigVO
9998
if (formType.value === 'create') {
10099
await ConfigApi.createConfig(data)
101100
message.success(t('common.createSuccess'))
@@ -104,6 +103,7 @@ const submitForm = async () => {
104103
message.success(t('common.updateSuccess'))
105104
}
106105
modelVisible.value = false
106+
// 发送操作成功的事件
107107
emit('success')
108108
} finally {
109109
formLoading.value = false
@@ -112,15 +112,15 @@ const submitForm = async () => {
112112
113113
/** 重置表单 */
114114
const resetForm = () => {
115-
Object.assign(formData, {
115+
formData.value = {
116116
id: undefined,
117117
category: '',
118118
name: '',
119119
key: '',
120120
value: '',
121121
visible: true,
122122
remark: ''
123-
})
123+
}
124124
formRef.value?.resetFields()
125125
}
126126
</script>

0 commit comments

Comments
 (0)