Commit 163fc682 by jason

【功能新增】 新增异步Http 请求触发器

parent bfe43369
...@@ -754,7 +754,11 @@ export enum TriggerTypeEnum { ...@@ -754,7 +754,11 @@ export enum TriggerTypeEnum {
/** /**
* 表单数据删除触发器 * 表单数据删除触发器
*/ */
FORM_DELETE = 3 FORM_DELETE = 3,
/**
* 发起异步 HTTP 请求
*/
ASYNC_HTTP_REQUEST = 4
} }
/** /**
...@@ -789,6 +793,7 @@ export type FormTriggerSetting = { ...@@ -789,6 +793,7 @@ export type FormTriggerSetting = {
export const TRIGGER_TYPES: DictDataVO[] = [ export const TRIGGER_TYPES: DictDataVO[] = [
{ label: 'HTTP 请求', value: TriggerTypeEnum.HTTP_REQUEST }, { label: 'HTTP 请求', value: TriggerTypeEnum.HTTP_REQUEST },
{ label: '异步 HTTP 请求', value: TriggerTypeEnum.ASYNC_HTTP_REQUEST },
{ label: '修改表单数据', value: TriggerTypeEnum.FORM_UPDATE }, { label: '修改表单数据', value: TriggerTypeEnum.FORM_UPDATE },
{ label: '删除表单数据', value: TriggerTypeEnum.FORM_DELETE } { label: '删除表单数据', value: TriggerTypeEnum.FORM_DELETE }
] ]
...@@ -37,7 +37,11 @@ ...@@ -37,7 +37,11 @@
</el-form-item> </el-form-item>
<!-- HTTP 请求触发器 --> <!-- HTTP 请求触发器 -->
<div <div
v-if="configForm.type === TriggerTypeEnum.HTTP_REQUEST && configForm.httpRequestSetting" v-if="
(configForm.type === TriggerTypeEnum.HTTP_REQUEST ||
configForm.type === TriggerTypeEnum.ASYNC_HTTP_REQUEST) &&
configForm.httpRequestSetting
"
> >
<el-form-item> <el-form-item>
<el-alert <el-alert
...@@ -58,6 +62,7 @@ ...@@ -58,6 +62,7 @@
:bind="'httpRequestSetting'" :bind="'httpRequestSetting'"
/> />
<!-- 返回值设置--> <!-- 返回值设置-->
<div v-if="configForm.type === TriggerTypeEnum.HTTP_REQUEST">
<el-form-item label="返回值"> <el-form-item label="返回值">
<el-alert <el-alert
title="通过请求返回值, 可以修改流程表单的值" title="通过请求返回值, 可以修改流程表单的值"
...@@ -108,7 +113,9 @@ ...@@ -108,7 +113,9 @@
<Icon <Icon
icon="ep:delete" icon="ep:delete"
:size="18" :size="18"
@click="deleteHttpResponseSetting(configForm.httpRequestSetting.response!, index)" @click="
deleteHttpResponseSetting(configForm.httpRequestSetting.response!, index)
"
/> />
</div> </div>
</div> </div>
...@@ -121,6 +128,7 @@ ...@@ -121,6 +128,7 @@
</el-button> </el-button>
</el-form-item> </el-form-item>
</div> </div>
</div>
<!-- 表单数据修改触发器 --> <!-- 表单数据修改触发器 -->
<div v-if="configForm.type === TriggerTypeEnum.FORM_UPDATE"> <div v-if="configForm.type === TriggerTypeEnum.FORM_UPDATE">
...@@ -385,14 +393,28 @@ let originalSetting: TriggerSetting | undefined ...@@ -385,14 +393,28 @@ let originalSetting: TriggerSetting | undefined
/** 触发器类型改变了 */ /** 触发器类型改变了 */
const changeTriggerType = () => { const changeTriggerType = () => {
if (configForm.value.type === TriggerTypeEnum.HTTP_REQUEST) { if (configForm.value.type === TriggerTypeEnum.HTTP_REQUEST) {
configForm.value.httpRequestSetting = originalSetting?.httpRequestSetting || { configForm.value.httpRequestSetting =
originalSetting?.type === TriggerTypeEnum.HTTP_REQUEST && originalSetting.httpRequestSetting
? originalSetting.httpRequestSetting
: {
url: '', url: '',
header: [], header: [],
body: [], body: [],
response: [] response: []
} }
configForm.value.formSettings = undefined configForm.value.formSettings = undefined
} else if (configForm.value.type === TriggerTypeEnum.FORM_UPDATE) { } else if (configForm.value.type === TriggerTypeEnum.ASYNC_HTTP_REQUEST) {
configForm.value.httpRequestSetting =
originalSetting?.type === TriggerTypeEnum.ASYNC_HTTP_REQUEST && originalSetting.httpRequestSetting
? originalSetting.httpRequestSetting
: {
url: '',
header: [],
body: [],
response: []
}
configForm.value.formSettings = undefined
}else if (configForm.value.type === TriggerTypeEnum.FORM_UPDATE) {
configForm.value.formSettings = configForm.value.formSettings =
originalSetting?.type === TriggerTypeEnum.FORM_UPDATE && originalSetting.formSettings originalSetting?.type === TriggerTypeEnum.FORM_UPDATE && originalSetting.formSettings
? originalSetting.formSettings ? originalSetting.formSettings
...@@ -405,7 +427,6 @@ const changeTriggerType = () => { ...@@ -405,7 +427,6 @@ const changeTriggerType = () => {
] ]
configForm.value.httpRequestSetting = undefined configForm.value.httpRequestSetting = undefined
} else if (configForm.value.type === TriggerTypeEnum.FORM_DELETE) { } else if (configForm.value.type === TriggerTypeEnum.FORM_DELETE) {
console.log('originalSetting?.type', originalSetting?.type)
configForm.value.formSettings = configForm.value.formSettings =
originalSetting?.type === TriggerTypeEnum.FORM_DELETE && originalSetting.formSettings originalSetting?.type === TriggerTypeEnum.FORM_DELETE && originalSetting.formSettings
? originalSetting.formSettings ? originalSetting.formSettings
...@@ -531,7 +552,10 @@ const saveConfig = async () => { ...@@ -531,7 +552,10 @@ const saveConfig = async () => {
/** 获取节点展示内容 */ /** 获取节点展示内容 */
const getShowText = (): string => { const getShowText = (): string => {
let showText = '' let showText = ''
if (configForm.value.type === TriggerTypeEnum.HTTP_REQUEST) { if (
configForm.value.type === TriggerTypeEnum.HTTP_REQUEST ||
configForm.value.type === TriggerTypeEnum.ASYNC_HTTP_REQUEST
) {
showText = `${configForm.value.httpRequestSetting?.url}` showText = `${configForm.value.httpRequestSetting?.url}`
} else if (configForm.value.type === TriggerTypeEnum.FORM_UPDATE) { } else if (configForm.value.type === TriggerTypeEnum.FORM_UPDATE) {
for (const [index, setting] of configForm.value.formSettings!.entries()) { for (const [index, setting] of configForm.value.formSettings!.entries()) {
...@@ -556,7 +580,7 @@ const getShowText = (): string => { ...@@ -556,7 +580,7 @@ const getShowText = (): string => {
/** 显示触发器节点配置, 由父组件传过来 */ /** 显示触发器节点配置, 由父组件传过来 */
const showTriggerNodeConfig = (node: SimpleFlowNode) => { const showTriggerNodeConfig = (node: SimpleFlowNode) => {
nodeName.value = node.name nodeName.value = node.name
originalSetting = node.triggerSetting originalSetting = node.triggerSetting ? JSON.parse(JSON.stringify(node.triggerSetting)) : {}
if (node.triggerSetting) { if (node.triggerSetting) {
configForm.value = { configForm.value = {
type: node.triggerSetting.type, type: node.triggerSetting.type,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment