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