From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目
---
src/components/SimpleProcessDesignerV2/src/nodes-config/components/HttpRequestParamSetting.vue | 199 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 199 insertions(+), 0 deletions(-)
diff --git a/src/components/SimpleProcessDesignerV2/src/nodes-config/components/HttpRequestParamSetting.vue b/src/components/SimpleProcessDesignerV2/src/nodes-config/components/HttpRequestParamSetting.vue
new file mode 100644
index 0000000..7d617ba
--- /dev/null
+++ b/src/components/SimpleProcessDesignerV2/src/nodes-config/components/HttpRequestParamSetting.vue
@@ -0,0 +1,199 @@
+<template>
+ <el-form-item label-position="top" label="璇锋眰澶�">
+ <div class="flex pb-4" v-for="(item, index) in props.header" :key="index">
+ <div class="mr-2">
+ <el-form-item
+ :prop="`${bind}.header.${index}.key`"
+ :rules="{
+ required: true,
+ message: '鍙傛暟鍚嶄笉鑳戒负绌�',
+ trigger: 'blur'
+ }"
+ >
+ <el-input v-model="item.key" style="width: 160px" />
+ </el-form-item>
+ </div>
+ <div class="mr-2">
+ <el-form-item>
+ <el-select v-model="item.type" style="width: 160px" @change="handleTypeChange(item)">
+ <el-option
+ v-for="types in BPM_HTTP_REQUEST_PARAM_TYPES"
+ :key="types.value"
+ :label="types.label"
+ :value="types.value"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ <div class="mr-2">
+ <el-form-item
+ :prop="`${bind}.header.${index}.value`"
+ :rules="{
+ required: true,
+ message: '鍙傛暟鍊间笉鑳戒负绌�',
+ trigger: 'blur'
+ }"
+ >
+ <el-input
+ v-if="item.type === BpmHttpRequestParamTypeEnum.FIXED_VALUE"
+ v-model="item.value"
+ style="width: 200px"
+ />
+ </el-form-item>
+ <el-form-item
+ :prop="`${bind}.header.${index}.value`"
+ :rules="{
+ required: true,
+ message: '鍙傛暟鍊间笉鑳戒负绌�',
+ trigger: 'change'
+ }"
+ >
+ <el-select
+ v-if="item.type === BpmHttpRequestParamTypeEnum.FROM_FORM"
+ v-model="item.value"
+ style="width: 200px"
+ >
+ <el-option
+ v-for="(field, fIdx) in formFieldOptions"
+ :key="fIdx"
+ :label="field.title"
+ :value="field.field"
+ :disabled="!field.required"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ <div class="mr-1 flex items-center">
+ <Icon icon="ep:delete" :size="18" @click="deleteHttpRequestParam(props.header, index)" />
+ </div>
+ </div>
+ <el-button type="primary" text @click="addHttpRequestParam(props.header)">
+ <Icon icon="ep:plus" class="mr-5px" />娣诲姞涓�琛�
+ </el-button>
+ </el-form-item>
+ <el-form-item label-position="top" label="璇锋眰浣�">
+ <div class="flex pb-4" v-for="(item, index) in props.body" :key="index">
+ <div class="mr-2">
+ <el-form-item
+ :prop="`${bind}.body.${index}.key`"
+ :rules="{
+ required: true,
+ message: '鍙傛暟鍚嶄笉鑳戒负绌�',
+ trigger: 'blur'
+ }"
+ >
+ <el-input v-model="item.key" style="width: 160px" />
+ </el-form-item>
+ </div>
+ <div class="mr-2">
+ <el-form-item>
+ <el-select v-model="item.type" style="width: 160px" @change="handleTypeChange(item)">
+ <el-option
+ v-for="types in BPM_HTTP_REQUEST_PARAM_TYPES"
+ :key="types.value"
+ :label="types.label"
+ :value="types.value"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ <div class="mr-2">
+ <el-form-item
+ :prop="`${bind}.body.${index}.value`"
+ :rules="{
+ required: true,
+ message: '鍙傛暟鍊间笉鑳戒负绌�',
+ trigger: 'blur'
+ }"
+ >
+ <el-input
+ v-if="item.type === BpmHttpRequestParamTypeEnum.FIXED_VALUE"
+ v-model="item.value"
+ style="width: 200px"
+ />
+ </el-form-item>
+ <el-form-item
+ :prop="`${bind}.body.${index}.value`"
+ :rules="{
+ required: true,
+ message: '鍙傛暟鍊间笉鑳戒负绌�',
+ trigger: 'change'
+ }"
+ >
+ <el-select
+ v-if="item.type === BpmHttpRequestParamTypeEnum.FROM_FORM"
+ v-model="item.value"
+ style="width: 200px"
+ >
+ <el-option
+ v-for="(field, fIdx) in formFieldOptions"
+ :key="fIdx"
+ :label="field.title"
+ :value="field.field"
+ :disabled="!field.required"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ <div class="mr-1 flex items-center">
+ <Icon icon="ep:delete" :size="18" @click="deleteHttpRequestParam(props.body, index)" />
+ </div>
+ </div>
+ <el-button type="primary" text @click="addHttpRequestParam(props.body)">
+ <Icon icon="ep:plus" class="mr-5px" />娣诲姞涓�琛�
+ </el-button>
+ </el-form-item>
+</template>
+<script setup lang="ts">
+import {
+ HttpRequestParam,
+ BPM_HTTP_REQUEST_PARAM_TYPES,
+ BpmHttpRequestParamTypeEnum
+} from '../../consts'
+import { useFormFieldsAndStartUser } from '../../node'
+defineOptions({
+ name: 'HttpRequestParamSetting'
+})
+
+const props = defineProps({
+ header: {
+ type: Array as () => HttpRequestParam[],
+ required: false,
+ default: () => []
+ },
+ body: {
+ type: Array as () => HttpRequestParam[],
+ required: false,
+ default: () => []
+ },
+ bind: {
+ type: String,
+ required: true
+ }
+})
+
+// 娴佺▼琛ㄥ崟瀛楁锛屽彂璧蜂汉瀛楁
+const formFieldOptions = useFormFieldsAndStartUser()
+
+/** 鐩戝惉绫诲瀷鍙樺寲锛屾竻绌哄�� */
+const handleTypeChange = (item: HttpRequestParam) => {
+ // 褰撶被鍨嬫敼鍙樻椂锛屾竻绌哄��
+ item.value = ''
+}
+
+/** 娣诲姞璇锋眰閰嶇疆椤� */
+const addHttpRequestParam = (arr: HttpRequestParam[]) => {
+ arr.push({
+ key: '',
+ type: BpmHttpRequestParamTypeEnum.FIXED_VALUE,
+ value: ''
+ })
+}
+
+/** 鍒犻櫎璇锋眰閰嶇疆椤� */
+const deleteHttpRequestParam = (arr: HttpRequestParam[], index: number) => {
+ arr.splice(index, 1)
+}
+</script>
+
+<style lang="scss" scoped></style>
--
Gitblit v1.8.0