|
@@ -1,12 +1,5 @@
|
|
|
<template>
|
|
|
- <el-dialog
|
|
|
- class="api-edit"
|
|
|
- v-model="showDialog"
|
|
|
- :title="`${formData.id ? '编辑' : '新增'}`"
|
|
|
- width="600px"
|
|
|
- :close-on-click-modal="false"
|
|
|
- :close-on-press-escape="false"
|
|
|
- >
|
|
|
+ <el-dialog class="api-edit" v-model="showDialog" :title="`${formData.id ? '编辑' : '新增'}`" width="600px" :close-on-click-modal="false" :close-on-press-escape="false">
|
|
|
<el-form ref="formRef" :model="formData" :rules="ruleForm" label-width="80px">
|
|
|
<el-form-item label="名称" prop="name">
|
|
|
<el-input v-model.trim="formData.name" placeholder="输入名称" />
|
|
@@ -31,6 +24,7 @@ import axios from 'axios';
|
|
|
import { ruleRequired } from '/@/utils/validator';
|
|
|
import { ElMessage } from 'element-plus';
|
|
|
import { getToken } from "/@/utils/auth";
|
|
|
+import { v4 as uuid } from 'uuid'
|
|
|
|
|
|
const emit = defineEmits(['getList']);
|
|
|
|
|
@@ -39,6 +33,10 @@ const props = defineProps({
|
|
|
type: Number,
|
|
|
default: 0, // 规则编排是0 数据转发是1
|
|
|
},
|
|
|
+ model: {
|
|
|
+ type: String,
|
|
|
+ default: 'rulego', // rulego node-red
|
|
|
+ },
|
|
|
});
|
|
|
|
|
|
const headers = {
|
|
@@ -47,7 +45,6 @@ const headers = {
|
|
|
const flowsUrl = window.location.origin + '/rule-engine/flow';
|
|
|
// const flowsUrl = 'http://zhgy.sagoo.cn/rule-engine/flow';
|
|
|
|
|
|
-
|
|
|
const showDialog = ref(false);
|
|
|
const formRef = ref();
|
|
|
|
|
@@ -71,36 +68,75 @@ const ruleForm = {
|
|
|
const onSubmit = async () => {
|
|
|
await formRef.value.validate();
|
|
|
|
|
|
- if (!formData.id) {
|
|
|
- const { data } = await axios.post(
|
|
|
- flowsUrl,
|
|
|
- {
|
|
|
- label: formData.name,
|
|
|
- disabled: true,
|
|
|
- info: '',
|
|
|
- env: [],
|
|
|
- nodes: [],
|
|
|
- },
|
|
|
- {
|
|
|
- headers,
|
|
|
+ // 不同引擎,用不同处理方式
|
|
|
+ if (props.model === 'rulego') {
|
|
|
+ if (!formData.id) {
|
|
|
+ const id = uuid()
|
|
|
+ await axios.post(
|
|
|
+ import.meta.env.VITE_RULEGO_SERVER_URL + '/rule/' + id,
|
|
|
+ {
|
|
|
+ "ruleChain": {
|
|
|
+ "id": id,
|
|
|
+ "name": formData.name,
|
|
|
+ "root": false,
|
|
|
+ "additionalInfo": {
|
|
|
+ "description": formData.expound
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "metadata": {
|
|
|
+ "endpoints": [],
|
|
|
+ "nodes": [],
|
|
|
+ "connections": []
|
|
|
+ }
|
|
|
+ },
|
|
|
+ { headers }
|
|
|
+ );
|
|
|
+ formData.flowId = id;
|
|
|
+ } else {
|
|
|
+ // 找到规则
|
|
|
+ const { data } = await axios.get(import.meta.env.VITE_RULEGO_SERVER_URL + '/rule/' + formData.flowId, { headers }).catch(() => {
|
|
|
+ ElMessage.error('规则不存在')
|
|
|
+ }) as any
|
|
|
+
|
|
|
+ // 修改名称和说明
|
|
|
+ data.ruleChain.name = formData.name
|
|
|
+ data.ruleChain.additionalInfo.description = formData.expound
|
|
|
+
|
|
|
+ // 保存
|
|
|
+ await axios.post(import.meta.env.VITE_RULEGO_SERVER_URL + '/rule/' + formData.flowId, data, { headers });
|
|
|
+ }
|
|
|
+ } else if (props.model === 'node-red') {
|
|
|
+ if (!formData.id) {
|
|
|
+ const { data } = await axios.post(
|
|
|
+ flowsUrl,
|
|
|
+ {
|
|
|
+ label: formData.name,
|
|
|
+ disabled: true,
|
|
|
+ info: '',
|
|
|
+ env: [],
|
|
|
+ nodes: [],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ headers,
|
|
|
+ }
|
|
|
+ );
|
|
|
+ formData.flowId = data.id;
|
|
|
+ } else {
|
|
|
+ // 找到所有规则
|
|
|
+ const { data: flows } = await axios.get(flowsUrl + 's', { headers });
|
|
|
+
|
|
|
+ const flow = flows.find((item: any) => item.id === formData.flowId);
|
|
|
+
|
|
|
+ if (!flow) {
|
|
|
+ ElMessage.error('规则不存在');
|
|
|
+ return;
|
|
|
}
|
|
|
- );
|
|
|
- formData.flowId = data.id;
|
|
|
- } else {
|
|
|
- // 找到所有规则
|
|
|
- const { data: flows } = await axios.get(flowsUrl + 's', { headers });
|
|
|
|
|
|
- const flow = flows.find((item: any) => item.id === formData.flowId);
|
|
|
+ flow.label = formData.name;
|
|
|
|
|
|
- if (!flow) {
|
|
|
- ElMessage.error('规则不存在');
|
|
|
- return;
|
|
|
+ // 设置规则状态
|
|
|
+ await axios.post(flowsUrl + 's', flows, { headers });
|
|
|
}
|
|
|
-
|
|
|
- flow.label = formData.name;
|
|
|
-
|
|
|
- // 设置规则状态
|
|
|
- await axios.post(flowsUrl + 's', flows, { headers });
|
|
|
}
|
|
|
|
|
|
const theApi = formData.id ? api.edit : api.add;
|