Skip to content

Commit d24d9e6

Browse files
committed
1. 优化配置管理的 loading 设置
1 parent 74846a1 commit d24d9e6

File tree

3 files changed

+20
-11
lines changed

3 files changed

+20
-11
lines changed

src/api/infra/config/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import request from '@/config/axios'
22

33
export interface ConfigVO {
4-
id: number
4+
id: number | undefined
55
category: string
66
name: string
77
key: string

src/components/Dialog/src/Dialog.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ const dialogStyle = computed(() => {
8686
<ElScrollbar :style="dialogStyle" v-if="scroll">
8787
<slot></slot>
8888
</ElScrollbar>
89-
<!-- 情况一:如果 scroll 为 false,说明关闭滚动条滚动条 -->
89+
<!-- 情况二:如果 scroll 为 false,说明关闭滚动条滚动条 -->
9090
<slot v-else></slot>
9191

9292
<template v-if="slots.footer" #footer>

src/views/infra/config/form.vue

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
<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+
>
410
<el-form-item label="参数分类" prop="category">
511
<el-input v-model="formData.category" placeholder="请输入参数分类" />
612
</el-form-item>
@@ -42,9 +48,9 @@ const message = useMessage() // 消息弹窗
4248
4349
const modelVisible = ref(false) // 弹窗的是否展示
4450
const modelTitle = ref('') // 弹窗的标题
45-
const modelLoading = ref(false) // 弹窗的 Loading 加载
51+
const formLoading = ref(false) // 表单的数据 Loading 加载
4652
const formType = ref('') // 表单的类型:create - 新增;update - 修改
47-
const formLoading = ref(false) // 操作按钮的 Loading 加载
53+
const submitLoading = ref(false) // 操作按钮的 Loading 加载:避免重复提交
4854
// let formRef = ref() // 表单的 Ref
4955
const formData = reactive({
5056
id: undefined,
@@ -62,7 +68,7 @@ const formRules = reactive({
6268
value: [{ required: true, message: '参数键值不能为空', trigger: 'blur' }],
6369
visible: [{ required: true, message: '是否可见不能为空', trigger: 'blur' }]
6470
})
65-
const ruleFormRef = ref<FormInstance>() // 表单 Ref
71+
let ruleFormRef = ref<FormInstance>() // 表单 Ref
6672
6773
const { proxy } = getCurrentInstance() as any
6874
@@ -74,13 +80,13 @@ const openModal = async (type: string, id?: number) => {
7480
resetForm()
7581
// 修改时,设置数据
7682
if (id) {
77-
modelLoading.value = true
83+
formLoading.value = true
7884
try {
7985
const data = await ConfigApi.getConfig(id)
8086
// TODO 规范纠结点:因为用 reactive,所以需要使用 Object;可以替换的方案,1)把 reactive 改成 ref;
8187
Object.assign(formData, data)
8288
} finally {
83-
modelLoading.value = false
89+
formLoading.value = false
8490
}
8591
}
8692
}
@@ -95,7 +101,7 @@ const submitForm = async () => {
95101
const valid = await formRef.validate()
96102
if (!valid) return
97103
// 提交请求
98-
formLoading.value = true
104+
submitLoading.value = true
99105
try {
100106
const data = formData as ConfigApi.ConfigVO
101107
if (formType.value === 'create') {
@@ -108,7 +114,7 @@ const submitForm = async () => {
108114
modelVisible.value = false
109115
emit('success')
110116
} finally {
111-
formLoading.value = false
117+
submitLoading.value = false
112118
}
113119
}
114120
@@ -121,6 +127,9 @@ const resetForm = () => {
121127
formData.value = ''
122128
formData.visible = true
123129
formData.remark = ''
130+
// 重置表单
131+
console.log(ruleFormRef)
132+
console.log(ruleFormRef.value)
124133
// proxy.$refs['ruleFormRef'].resetFields()
125134
// setTimeout(() => {
126135
// console.log(ruleFormRef.value, 'formRef.value')

0 commit comments

Comments
 (0)