1
1
<template >
2
- <XModal :title =" modelTitle" :loading =" modelLoading" v-model =" modelVisible" >
3
- <el-form ref =" formRef" :model =" form" :rules =" rules" label-width =" 80px" >
2
+ <!-- TODO 芋艿:Dialog 貌似高度不太对劲 -->
3
+ <Dialog :title =" modelTitle" v-model =" modelVisible" :loading =" modelLoading" >
4
+ <el-form ref =" formRef" :model =" formData" :rules =" formRules" label-width =" 80px" >
4
5
<el-form-item label =" 参数分类" prop =" category" >
5
- <el-input v-model =" form .category" placeholder =" 请输入参数分类" />
6
+ <el-input v-model =" formData .category" placeholder =" 请输入参数分类" />
6
7
</el-form-item >
7
8
<el-form-item label =" 参数名称" prop =" name" >
8
- <el-input v-model =" form .name" placeholder =" 请输入参数名称" />
9
+ <el-input v-model =" formData .name" placeholder =" 请输入参数名称" />
9
10
</el-form-item >
10
11
<el-form-item label =" 参数键名" prop =" key" >
11
- <el-input v-model =" form .key" placeholder =" 请输入参数键名" />
12
+ <el-input v-model =" formData .key" placeholder =" 请输入参数键名" />
12
13
</el-form-item >
13
14
<el-form-item label =" 参数键值" prop =" value" >
14
- <el-input v-model =" form .value" placeholder =" 请输入参数键值" />
15
+ <el-input v-model =" formData .value" placeholder =" 请输入参数键值" />
15
16
</el-form-item >
16
17
<el-form-item label =" 是否可见" prop =" visible" >
17
18
<!-- TODO 芋艿:改成组件 -->
18
- <el-radio-group v-model =" form .visible" >
19
+ <el-radio-group v-model =" formData .visible" >
19
20
<el-radio :key =" true" :label =" true" >是</el-radio >
20
21
<el-radio :key =" false" :label =" false" >否</el-radio >
21
22
</el-radio-group >
22
23
</el-form-item >
23
24
<el-form-item label =" 备注" prop =" remark" >
24
- <el-input v-model =" form .remark" type =" textarea" placeholder =" 请输入内容" />
25
+ <el-input v-model =" formData .remark" type =" textarea" placeholder =" 请输入内容" />
25
26
</el-form-item >
26
27
</el-form >
27
28
<template #footer >
28
29
<div class =" dialog-footer" >
29
30
<el-button type =" primary" @click =" submitForm" >确 定</el-button >
30
- <el-button @click =" modelLoading = false" >取 消</el-button >
31
+ <el-button @click =" modelVisible = false" >取 消</el-button >
31
32
</div >
32
33
</template >
33
- </XModal >
34
+ </Dialog >
34
35
</template >
35
36
<script setup lang="ts">
37
+ import * as ConfigApi from ' @/api/infra/config'
36
38
// import type { FormExpose } from '@/components/Form'
37
39
import * as PostApi from ' @/api/system/post'
38
40
const { t } = useI18n () // 国际化
39
41
const message = useMessage () // 消息弹窗
42
+ // const { proxy } = getCurrentInstance()
40
43
41
44
const modelVisible = ref (false ) // 弹窗的是否展示
42
45
const modelTitle = ref (' ' ) // 弹窗的标题
43
46
const modelLoading = ref (false ) // 弹窗的 Loading 加载
44
- const actionType = ref (' ' ) // 操作类型 :create - 新增;update - 修改
45
- const actionLoading = ref (false ) // 操作按钮的 Loading 加载
46
- const formRef = ref () // 表单的 Ref
47
- const form = reactive ({
47
+ const formType = ref (' ' ) // 表单的类型 :create - 新增;update - 修改
48
+ const formLoading = ref (false ) // 操作按钮的 Loading 加载
49
+ let formRef = ref () // 表单的 Ref
50
+ const formData = reactive ({
48
51
id: undefined ,
49
52
category: undefined ,
50
53
name: undefined ,
@@ -53,7 +56,7 @@ const form = reactive({
53
56
visible: true ,
54
57
remark: undefined
55
58
})
56
- const rules = reactive ({
59
+ const formRules = reactive ({
57
60
category: [{ required: true , message: ' 参数分类不能为空' , trigger: ' blur' }],
58
61
name: [{ required: true , message: ' 参数名称不能为空' , trigger: ' blur' }],
59
62
key: [{ required: true , message: ' 参数键名不能为空' , trigger: ' blur' }],
@@ -67,16 +70,12 @@ const openModal = async (type: string, id?: number) => {
67
70
modelVisible .value = true
68
71
modelLoading .value = true
69
72
modelTitle .value = t (' action.' + type )
70
- actionType .value = type
73
+ formType .value = type
71
74
// 设置数据
72
75
resetForm ()
73
76
if (id ) {
74
- // const res = await PostApi.getPostApi(id)
75
- // if (type === 'update') {
76
- // unref(formRef)?.setValues(res)
77
- // } else if (type === 'detail') {
78
- // detailData.value = res
79
- // }
77
+ const data = await ConfigApi .getConfig (id )
78
+ Object .assign (formData , data )
80
79
}
81
80
modelLoading .value = false
82
81
}
@@ -91,10 +90,10 @@ const submitForm = async () => {
91
90
const valid = await elForm .validate ()
92
91
if (! valid ) return
93
92
// 提交请求
94
- actionLoading .value = true
93
+ formLoading .value = true
95
94
try {
96
95
const data = unref (formRef )?.formModel as PostApi .PostVO
97
- if (actionType .value === ' create' ) {
96
+ if (formType .value === ' create' ) {
98
97
await PostApi .createPostApi (data )
99
98
message .success (t (' common.createSuccess' ))
100
99
} else {
@@ -104,19 +103,20 @@ const submitForm = async () => {
104
103
modelVisible .value = false
105
104
emit (' success' )
106
105
} finally {
107
- actionLoading .value = false
106
+ formLoading .value = false
108
107
}
109
108
}
110
109
111
110
/** 重置表单 */
112
111
const resetForm = () => {
113
- form .id = undefined
114
- form .category = undefined
115
- form .name = undefined
116
- form .key = undefined
117
- form .value = undefined
118
- form .visible = true
119
- form .remark = undefined
120
- formRef .value .resetFields ()
112
+ formData .id = undefined
113
+ formData .category = undefined
114
+ formData .name = undefined
115
+ formData .key = undefined
116
+ formData .value = undefined
117
+ formData .visible = true
118
+ formData .remark = undefined
119
+ // proxy.$refs['formRef'].resetFields()
120
+ // formRef.value.resetFields() // TODO 芋艿:为什么拿不到
121
121
}
122
122
</script >
0 commit comments