Skip to content

Commit 9ef85e1

Browse files
committed
vue3 重构:配置管理,新增表单
1 parent 64b249e commit 9ef85e1

File tree

3 files changed

+38
-38
lines changed

3 files changed

+38
-38
lines changed

src/api/infra/config/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export const getConfigPage = (params: ConfigPageReqVO) => {
3232
}
3333

3434
// 查询参数详情
35-
export const getConfigApi = (id: number) => {
35+
export const getConfig = (id: number) => {
3636
return request.get({ url: '/infra/config/get?id=' + id })
3737
}
3838

src/views/infra/config/form.vue

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,53 @@
11
<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">
45
<el-form-item label="参数分类" prop="category">
5-
<el-input v-model="form.category" placeholder="请输入参数分类" />
6+
<el-input v-model="formData.category" placeholder="请输入参数分类" />
67
</el-form-item>
78
<el-form-item label="参数名称" prop="name">
8-
<el-input v-model="form.name" placeholder="请输入参数名称" />
9+
<el-input v-model="formData.name" placeholder="请输入参数名称" />
910
</el-form-item>
1011
<el-form-item label="参数键名" prop="key">
11-
<el-input v-model="form.key" placeholder="请输入参数键名" />
12+
<el-input v-model="formData.key" placeholder="请输入参数键名" />
1213
</el-form-item>
1314
<el-form-item label="参数键值" prop="value">
14-
<el-input v-model="form.value" placeholder="请输入参数键值" />
15+
<el-input v-model="formData.value" placeholder="请输入参数键值" />
1516
</el-form-item>
1617
<el-form-item label="是否可见" prop="visible">
1718
<!-- TODO 芋艿:改成组件 -->
18-
<el-radio-group v-model="form.visible">
19+
<el-radio-group v-model="formData.visible">
1920
<el-radio :key="true" :label="true">是</el-radio>
2021
<el-radio :key="false" :label="false">否</el-radio>
2122
</el-radio-group>
2223
</el-form-item>
2324
<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="请输入内容" />
2526
</el-form-item>
2627
</el-form>
2728
<template #footer>
2829
<div class="dialog-footer">
2930
<el-button type="primary" @click="submitForm">确 定</el-button>
30-
<el-button @click="modelLoading = false">取 消</el-button>
31+
<el-button @click="modelVisible = false">取 消</el-button>
3132
</div>
3233
</template>
33-
</XModal>
34+
</Dialog>
3435
</template>
3536
<script setup lang="ts">
37+
import * as ConfigApi from '@/api/infra/config'
3638
// import type { FormExpose } from '@/components/Form'
3739
import * as PostApi from '@/api/system/post'
3840
const { t } = useI18n() // 国际化
3941
const message = useMessage() // 消息弹窗
42+
// const { proxy } = getCurrentInstance()
4043
4144
const modelVisible = ref(false) // 弹窗的是否展示
4245
const modelTitle = ref('') // 弹窗的标题
4346
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({
4851
id: undefined,
4952
category: undefined,
5053
name: undefined,
@@ -53,7 +56,7 @@ const form = reactive({
5356
visible: true,
5457
remark: undefined
5558
})
56-
const rules = reactive({
59+
const formRules = reactive({
5760
category: [{ required: true, message: '参数分类不能为空', trigger: 'blur' }],
5861
name: [{ required: true, message: '参数名称不能为空', trigger: 'blur' }],
5962
key: [{ required: true, message: '参数键名不能为空', trigger: 'blur' }],
@@ -67,16 +70,12 @@ const openModal = async (type: string, id?: number) => {
6770
modelVisible.value = true
6871
modelLoading.value = true
6972
modelTitle.value = t('action.' + type)
70-
actionType.value = type
73+
formType.value = type
7174
// 设置数据
7275
resetForm()
7376
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)
8079
}
8180
modelLoading.value = false
8281
}
@@ -91,10 +90,10 @@ const submitForm = async () => {
9190
const valid = await elForm.validate()
9291
if (!valid) return
9392
// 提交请求
94-
actionLoading.value = true
93+
formLoading.value = true
9594
try {
9695
const data = unref(formRef)?.formModel as PostApi.PostVO
97-
if (actionType.value === 'create') {
96+
if (formType.value === 'create') {
9897
await PostApi.createPostApi(data)
9998
message.success(t('common.createSuccess'))
10099
} else {
@@ -104,19 +103,20 @@ const submitForm = async () => {
104103
modelVisible.value = false
105104
emit('success')
106105
} finally {
107-
actionLoading.value = false
106+
formLoading.value = false
108107
}
109108
}
110109
111110
/** 重置表单 */
112111
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 芋艿:为什么拿不到
121121
}
122122
</script>

src/views/infra/config/index.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<!-- 搜索工作栏 -->
44
<el-form
55
:model="queryParams"
6-
ref="queryForm"
6+
ref="queryFormRef"
77
:inline="true"
88
v-show="showSearch"
99
label-width="68px"
@@ -65,7 +65,7 @@
6565
type="primary"
6666
plain
6767
icon="el-icon-plus"
68-
@click="handleAdd"
68+
@click="openModal('create')"
6969
v-hasPermi="['infra:config:create']"
7070
>
7171
新增
@@ -160,7 +160,7 @@ const queryParams = reactive({
160160
type: undefined,
161161
createTime: []
162162
})
163-
const queryForm = ref() // 搜索的表单
163+
const queryFormRef = ref() // 搜索的表单
164164
165165
/** 搜索按钮操作 */
166166
const handleQuery = () => {
@@ -182,7 +182,7 @@ const getList = async () => {
182182
183183
/** 重置按钮操作 */
184184
const resetQuery = () => {
185-
queryForm.value.resetFields()
185+
queryFormRef.value.resetFields()
186186
handleQuery()
187187
}
188188

0 commit comments

Comments
 (0)