From 8de0657846ff9d860207aa26b9fa1a1ecd457afb Mon Sep 17 00:00:00 2001 From: dengzedong <dengzedong@email> Date: 星期五, 20 九月 2024 09:58:53 +0800 Subject: [PATCH] 路由 --- src/views/data/channel/http/HttpApiForm.vue | 199 ++++++++++++++++++++++++------------------------- 1 files changed, 98 insertions(+), 101 deletions(-) diff --git a/src/views/data/channel/http/HttpApiForm.vue b/src/views/data/channel/http/HttpApiForm.vue index 92fb9c5..e9ef92b 100644 --- a/src/views/data/channel/http/HttpApiForm.vue +++ b/src/views/data/channel/http/HttpApiForm.vue @@ -9,51 +9,47 @@ > <el-row> <el-col :span="12"> - <el-form-item label="名称" prop="name"> - <el-input v-model="formData.name" placeholder="请输入名称" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> <el-form-item label="编码" prop="code"> - <el-input v-model="formData.code" placeholder="请输入编码" /> + <el-input v-model="formData.code" placeholder="请输入编码"/> </el-form-item> </el-col> <el-col :span="12"> + <el-form-item label="名称" prop="name"> + <el-input v-model="formData.name" placeholder="请输入名称"/> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> <el-form-item label="url" prop="url"> - <el-input v-model="formData.url" placeholder="请输入url" /> + <el-input v-model="formData.url" placeholder="请输入url"/> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="12"> - <el-form-item label="方法" prop="method"> - <el-input v-model="formData.method" placeholder="请输入方法" /> + <el-form-item label="请求方法" prop="method"> + <el-select v-model="formData.method" placeholder="请选择"> + <el-option + v-for="dict in getStrDictOptions(DICT_TYPE.HTTP_METHOD)" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> </el-form-item> </el-col> - <el-col :span="12"> - <el-form-item label="采集类型" prop="collectType"> - <el-input v-model="formData.collectType" placeholder="请输入采集类型" /> - </el-form-item> - </el-col> - </el-row> - <el-row> <el-col :span="12"> <el-form-item label="参数" prop="param"> - <el-input v-model="formData.param" placeholder="请输入参数" /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="描述" prop="descp"> - <el-input v-model="formData.descp" placeholder="请输入描述" /> + <el-input v-model="formData.param" placeholder="请输入参数"/> </el-form-item> </el-col> </el-row> <el-row> - <el-col :span="12"> - <el-form-item label="状态" prop="status"> - <el-input v-model="formData.status" placeholder="请输入状态" /> + <el-col :span="24"> + <el-form-item label="描述" prop="descp"> + <el-input v-model="formData.descp" placeholder="请输入描述" type="textarea" maxlength="100" + show-word-limit/> </el-form-item> </el-col> </el-row> @@ -66,16 +62,81 @@ </template> <script lang="ts" setup> import * as HttpApi from '@/api/data/channel/http' +import { DICT_TYPE, getStrDictOptions, getBoolDictOptions } from '@/utils/dict' -defineOptions({ name: 'DataHttpApiForm' }) +defineOptions({name: 'DataHttpApiForm'}) - const { t } = useI18n() // 国际化 - const message = useMessage() // 消息弹窗 - const dialogVisible = ref(false) // 弹窗的是否展示 - const dialogTitle = ref('') // 弹窗的标题 - const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 - const formType = ref('') // 表单的类型:create - 新增;update - 修改 - const formData = ref({ +const {t} = useI18n() // 国际化 +const message = useMessage() // 消息弹窗 +const dialogVisible = ref(false) // 弹窗的是否展示 +const dialogTitle = ref('') // 弹窗的标题 +const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 +const formType = ref('') // 表单的类型:create - 新增;update - 修改 +const formData = ref({ + id: undefined, + name: undefined, + code: undefined, + url: undefined, + method: undefined, + collectType: undefined, + param: undefined, + descp: undefined, + status: undefined +}) +const formRules = reactive({ + name: [{required: true, message: '名称不能为空', trigger: 'blur'}], + code: [{required: true, message: '编码不能为空', trigger: 'blur'}], + url: [{required: true, message: 'url不能为空', trigger: 'blur'}], +}) +const formRef = ref() // 表单 Ref + +/** 打开弹窗 */ +const open = async (type: string, id?: number) => { + dialogVisible.value = true + dialogTitle.value = t('action.' + type) + formType.value = type + resetForm() + // 修改时,设置数据 + if (id) { + formLoading.value = true + try { + formData.value = await HttpApi.getHttpApi(id) + } finally { + formLoading.value = false + } + } +} +defineExpose({open}) // 提供 open 方法,用于打开弹窗 + +/** 提交表单 */ +const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 +const submitForm = async () => { + // 校验表单 + if (!formRef) return + const valid = await formRef.value.validate() + if (!valid) return + // 提交请求 + formLoading.value = true + try { + const data = formData.value as unknown as HttpApi.HttpApiVO + if (formType.value === 'create') { + await HttpApi.createHttpApi(data) + message.success(t('common.createSuccess')) + } else { + await HttpApi.updateHttpApi(data) + message.success(t('common.updateSuccess')) + } + dialogVisible.value = false + // 发送操作成功的事件 + emit('success') + } finally { + formLoading.value = false + } +} + +/** 重置表单 */ +const resetForm = () => { + formData.value = { id: undefined, name: undefined, code: undefined, @@ -85,71 +146,7 @@ param: undefined, descp: undefined, status: undefined - }) - const formRules = reactive({ - name: [{ required: true, message: '名称不能为空', trigger: 'blur' }], - code: [{ required: true, message: '编码不能为空', trigger: 'blur' }], - url: [{ required: true, message: 'url不能为空', trigger: 'blur' }], - }) - const formRef = ref() // 表单 Ref - - /** 打开弹窗 */ - const open = async (type: string, id?: number) => { - dialogVisible.value = true - dialogTitle.value = t('action.' + type) - formType.value = type - resetForm() - // 修改时,设置数据 - if (id) { - formLoading.value = true - try { - formData.value = await HttpApi.getHttpApi(id) - } finally { - formLoading.value = false - } - } } - defineExpose({ open }) // 提供 open 方法,用于打开弹窗 - - /** 提交表单 */ - const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 - const submitForm = async () => { - // 校验表单 - if (!formRef) return - const valid = await formRef.value.validate() - if (!valid) return - // 提交请求 - formLoading.value = true - try { - const data = formData.value as unknown as HttpApi.HttpApiVO - if (formType.value === 'create') { - await HttpApi.createHttpApi(data) - message.success(t('common.createSuccess')) - } else { - await HttpApi.updateHttpApi(data) - message.success(t('common.updateSuccess')) - } - dialogVisible.value = false - // 发送操作成功的事件 - emit('success') - } finally { - formLoading.value = false - } - } - - /** 重置表单 */ - const resetForm = () => { - formData.value = { - id: undefined, - name: undefined, - code: undefined, - url: undefined, - method: undefined, - collectType: undefined, - param: undefined, - descp: undefined, - status: undefined - } - formRef.value?.resetFields() - } + formRef.value?.resetFields() +} </script> -- Gitblit v1.9.3