diff --git a/Dockerfile b/Dockerfile index bccc1a06e6f4624d3fdf1359585666891b51f489..5039872ca468e07134ce2671381e2e5b1a777c38 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,9 +6,16 @@ ADD console/target/*.jar juggle-server.jar EXPOSE 9127 +ENV BASE_DIR="/home/juggle" \ + JVM_XMS="1g" \ + JVM_XMX="1g" \ + JVM_MS="128m" \ + JVM_MMS="320m" \ + JVM_GC_LOG="false" \ + TIME_ZONE="Asia/Shanghai" + COPY console/src/main/resources/data/application-default.properties /home/juggle/conf/application.properties COPY console/src/main/resources/data/db_juggle.mv.db /home/juggle/data/ +COPY console/src/main/resources/data/docker-startup.sh /home/juggle/bin/ -ENV JAVA_OPTS=" -Xss228k -Xmx512m -Xms512m -Duser.timezone=GMT+08 " - -ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /juggle-server.jar --spring.config.additional-location=/home/juggle/conf/application.properties" ] \ No newline at end of file +ENTRYPOINT ["sh","/home/juggle/bin/docker-startup.sh"] \ No newline at end of file diff --git a/README.md b/README.md index 2705927851507b5768c18499a559b8d0279ee640..542ead76c43d9896e18f322feaa9d44e59773cbc 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,37 @@ Juggle是一个接口编排的低代码工具,通过它可以快速将简单 7.全信创支持,支持MySql,达梦,TiDB,OceanBase等数据库 +## 流程说明 +Juggle支持创建多种不同类型的流程,不同类型的流程解决不同类型的业务场景,下面将对每种流程的详细介绍 + +### 1.同步流程 + +**描述:** 即流程的执行结果是同步的返回,调用方能直接获取流程结果 + +**场景:** 对流程实时性要求比较高的场景,如:微服务接口编排,BFF层接口等 + + +### 2.异步流程 + +**描述:** 即流程的执行结果是异步的返回,调用方需要通过另外的接口获取异步流程的结果 + +**场景:** 对流程实时性要求不高或者流程执行比较耗时的场景,如:数据清洗等 + + +### 3.定时流程 + +**描述:** 即不太关心流程的执行结果,需要定时定点或周期性的执行流程 + +**场景:** 对流程实时性要求不高或者需要定时定点周期性执行的场景,如:数据定时同步等 + + +### 4.监听流程 + +**描述:** 即不太关心流程的执行结果,需要监听业务系统MQ的消息来执行流程 + +**场景:** 需要直接监听业务系统MQ消息后出现业务逻辑的场景,如:数据清洗,数据标注等 + + ## 系统截图 1.灵活流程设计 diff --git a/common/src/main/java/net/somta/juggle/common/constants/ApplicationConstants.java b/common/src/main/java/net/somta/juggle/common/constants/ApplicationConstants.java index b26928ca6b61f41a220cc7543401c6c0812b7543..4deecde6f1a212a81da79fa931c431be5bb06c3c 100644 --- a/common/src/main/java/net/somta/juggle/common/constants/ApplicationConstants.java +++ b/common/src/main/java/net/somta/juggle/common/constants/ApplicationConstants.java @@ -7,8 +7,12 @@ public class ApplicationConstants { public static final String JUGGLE_SERVER_VERSION = "/v1"; + public static final String JUGGLE_API_PREFIX = "/api" + JUGGLE_SERVER_VERSION; + public static final String JUGGLE_OPEN_API_PREFIX = "/open" + JUGGLE_SERVER_VERSION; + public static final String COLON = ":"; + /** * 应用统一前缀 */ diff --git a/console-ui/package.json b/console-ui/package.json index 86c0f37147b80d98717ec97fb55630ecd5c4e44c..cf97b887ebbd5c73365464991cd7244909e483ab 100644 --- a/console-ui/package.json +++ b/console-ui/package.json @@ -1,6 +1,6 @@ { "name": "juggle", - "version": "1.3.1", + "version": "1.3.2", "private": true, "scripts": { "dev": "node scripts/predev.js && vite", @@ -13,7 +13,7 @@ }, "dependencies": { "@types/d3": "7.4.3", - "axios": "1.6.7", + "axios": "1.8.2", "crypto-js": "4.2.0", "d3": "7.8.5", "dayjs": "1.11.10", @@ -31,7 +31,7 @@ "@types/crypto-js": "4.2.1", "@types/node": "20.10.4", "@types/qrcode": "1.5.5", - "@vitejs/plugin-vue": "4.5.2", + "@vitejs/plugin-vue": "5.1.0", "@vue/eslint-config-prettier": "10.0.0", "@vue/eslint-config-typescript": "14.0.0", "@vue/tsconfig": "0.4.0", @@ -41,7 +41,7 @@ "npm-run-all": "4.1.5", "prettier": "3.1.0", "typescript": "5.3.3", - "vite": "5.2.6", + "vite": "6.3.4", "vite-plugin-monaco-editor": "1.1.0", "vue-tsc": "1.8.25" } diff --git a/console-ui/public/suite/siliconflow.png b/console-ui/public/suite/siliconflow.png new file mode 100644 index 0000000000000000000000000000000000000000..63896bf4d8597784fca929354aefea17c4be7763 Binary files /dev/null and b/console-ui/public/suite/siliconflow.png differ diff --git a/console-ui/src/assets/logo.png b/console-ui/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7790a8afa509a11fd1114f8351c7c7a43771da3e Binary files /dev/null and b/console-ui/src/assets/logo.png differ diff --git a/console-ui/src/assets/logo.svg b/console-ui/src/assets/logo.svg deleted file mode 100644 index 7565660356e5b3723c9c33d508b830c9cfbea29f..0000000000000000000000000000000000000000 --- a/console-ui/src/assets/logo.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/console-ui/src/components/common/ClassifyFilter.vue b/console-ui/src/components/common/ClassifyFilter.vue new file mode 100644 index 0000000000000000000000000000000000000000..63e4e0e77a41193bc40ed0b33cf4c5d9a4d6cb46 --- /dev/null +++ b/console-ui/src/components/common/ClassifyFilter.vue @@ -0,0 +1,174 @@ + + + + + \ No newline at end of file diff --git a/console-ui/src/components/layout/aside/LayoutAside.vue b/console-ui/src/components/layout/aside/LayoutAside.vue index f52fc383d4c79980f7fed712fe87c3742a0cd446..639a7577501d22b329bc511114f8d38a106614f4 100644 --- a/console-ui/src/components/layout/aside/LayoutAside.vue +++ b/console-ui/src/components/layout/aside/LayoutAside.vue @@ -20,14 +20,10 @@ import IconSetting from "@/components/icons/IconSetting.vue"; 流程定义 流程列表 - - - 套件 - 接口 - + + + 套件 + 对象 diff --git a/console-ui/src/components/layout/header/AppLogo.vue b/console-ui/src/components/layout/header/AppLogo.vue index a4508727a95642648c89bc9bf63bfd0b2b7786d1..abb2a1209779812d70eec92328ed03fc3586cce5 100644 --- a/console-ui/src/components/layout/header/AppLogo.vue +++ b/console-ui/src/components/layout/header/AppLogo.vue @@ -1,5 +1,5 @@ diff --git a/console-ui/src/const/application.ts b/console-ui/src/const/application.ts new file mode 100644 index 0000000000000000000000000000000000000000..6006d27f508d586ae4eff363ec552367a7f7db11 --- /dev/null +++ b/console-ui/src/const/application.ts @@ -0,0 +1,3 @@ + +export const JUGGLE_SERVER_VERSION = "/v1"; +export const JUGGLE_API_PREFIX = "/api" + JUGGLE_SERVER_VERSION; \ No newline at end of file diff --git a/console-ui/src/service/api/api.ts b/console-ui/src/service/api/api.ts index 33323e4884241424012196f44f300da2d5563bb6..9fe5054179e3b5a2b386f3df97ea8a748bfcedf1 100644 --- a/console-ui/src/service/api/api.ts +++ b/console-ui/src/service/api/api.ts @@ -1,5 +1,6 @@ import type { ApiInfo } from '@/typings'; import { request, type ResponsePageResult, type ResponseResult } from '../base'; +import {JUGGLE_API_PREFIX} from "@/const/application.ts"; export async function listQuery(params: { pageNum: number; @@ -8,7 +9,7 @@ export async function listQuery(params: { apiName?: string; apiUrl?: string; }): ResponsePageResult { - return request.post('/v1/api/page', params); + return request.post(JUGGLE_API_PREFIX+'/api/page', params); } export async function listAdd(params: { @@ -19,7 +20,7 @@ export async function listAdd(params: { apiRequestType: string; apiRequestContentType: string; }): ResponseResult { - return request.post('/v1/api/add', params); + return request.post(JUGGLE_API_PREFIX+'/api/add', params); } export async function listUpdate(params: { @@ -31,29 +32,29 @@ export async function listUpdate(params: { apiRequestType?: string; apiRequestContentType?: string; }): ResponseResult { - return request.put('/v1/api/update', params); + return request.put(JUGGLE_API_PREFIX+'/api/update', params); } export async function listDelete(id: number): ResponseResult { - return request.delete(`/v1/api/delete/${id}`); + return request.delete(JUGGLE_API_PREFIX+`/api/delete/${id}`); } export async function queryApiInfo(id: number): ResponseResult { - return request.get(`/v1/api/info/${id}`); + return request.get(JUGGLE_API_PREFIX+`/api/info/${id}`); } export async function queryApiInfoByCode(apiCode: string): ResponseResult { - return request.get(`/v1/api/info/code/${apiCode}`); + return request.get(JUGGLE_API_PREFIX+`/api/info/code/${apiCode}`); } export function debugApi(apiId: number, params: { headerData: any; inputParamData: any }): ResponseResult { - return request.post(`/v1/api/debug/${apiId}`, params); + return request.post(JUGGLE_API_PREFIX+`/api/debug/${apiId}`, params); } export async function getApiListBySuiteId(suiteId: number): ResponseResult { - return request.post(`/v1/api/getApiListBySuiteId/${suiteId}`); + return request.post(JUGGLE_API_PREFIX+`/api/getApiListBySuiteId/${suiteId}`); } export async function getApiListBySuiteCode(suiteCode: string): ResponseResult { - return request.post(`/v1/api/getApiListBySuiteCode/${suiteCode}`); + return request.post(JUGGLE_API_PREFIX+`/api/getApiListBySuiteCode/${suiteCode}`); } diff --git a/console-ui/src/service/api/common.ts b/console-ui/src/service/api/common.ts index 04d4f601c1249b89baa10ae4c39f9376579d9117..b7823a192f55473afb0de6fda84b722b072b11ec 100644 --- a/console-ui/src/service/api/common.ts +++ b/console-ui/src/service/api/common.ts @@ -1,5 +1,6 @@ import { request, ResponseResult } from '@/service/base'; +import {JUGGLE_API_PREFIX} from "@/const/application.ts"; export function listDataType(): ResponseResult { - return request.get('/v1/dataType/list'); + return request.get(JUGGLE_API_PREFIX+'/dataType/list'); } diff --git a/console-ui/src/service/api/dataSource.ts b/console-ui/src/service/api/dataSource.ts index 5b3b9b5d7a4802d6296e492254cec0e1b6d1aa7d..dd3806f1c00a33f82364b9b4450e64ae7330d6d1 100644 --- a/console-ui/src/service/api/dataSource.ts +++ b/console-ui/src/service/api/dataSource.ts @@ -1,4 +1,5 @@ import { request, ResponsePageResult, type ResponseResult } from '@/service/base'; +import {JUGGLE_API_PREFIX} from "@/const/application.ts"; export async function addDataSource(params: { dataSourceName: string; @@ -14,11 +15,11 @@ export async function addDataSource(params: { maxPoolSize: number; queryTimeout: number; }): ResponseResult { - return request.post(`/v1/datasource/add`, params); + return request.post(JUGGLE_API_PREFIX+`/datasource/add`, params); } export async function deleteDataSourceById(datasourceId: number): ResponseResult { - return request.delete(`/v1/datasource/delete/${datasourceId}`); + return request.delete(JUGGLE_API_PREFIX+`/datasource/delete/${datasourceId}`); } export async function updateDataSourceById(params: { @@ -36,21 +37,21 @@ export async function updateDataSourceById(params: { maxPoolSize: number; queryTimeout: number; }): ResponseResult { - return request.put(`/v1/datasource/update`, params); + return request.put(JUGGLE_API_PREFIX+`/datasource/update`, params); } export async function queryDataSourceInfo(dataSourceId: number): ResponsePageResult { - return request.get('/v1/datasource/info/' + dataSourceId); + return request.get(JUGGLE_API_PREFIX+'/datasource/info/' + dataSourceId); } export async function dataSourceList(): ResponsePageResult { - return request.get('/v1/datasource/list'); + return request.get(JUGGLE_API_PREFIX+'/datasource/list'); } export async function dataSourcePage(params: { pageNum: number; pageSize: number }): ResponsePageResult { - return request.post('/v1/datasource/page', params); + return request.post(JUGGLE_API_PREFIX+'/datasource/page', params); } export async function connectDataSource(dataSourceId: number): ResponsePageResult { - return request.get('/v1/datasource/connect/' + dataSourceId); + return request.get(JUGGLE_API_PREFIX+'/datasource/connect/' + dataSourceId); } diff --git a/console-ui/src/service/api/flow.ts b/console-ui/src/service/api/flow.ts index b39f74344d391900f4c8f8ab9d767e1f3be9beee..92e0e27fdf35dd627de1ef60165a2c791698b8c8 100644 --- a/console-ui/src/service/api/flow.ts +++ b/console-ui/src/service/api/flow.ts @@ -1,13 +1,14 @@ import { request, ResponsePageResult, ResponseResult } from '@/service/base'; +import {JUGGLE_API_PREFIX} from "@/const/application.ts"; export function updateFlowStatus(flowId: number, flowStatus: number): ResponsePageResult { - return request.put('/v1/flow/status', { flowId: flowId, flowStatus: flowStatus }); + return request.put(JUGGLE_API_PREFIX+'/flow/status', { flowId: flowId, flowStatus: flowStatus }); } export async function flowPage(params: { pageNum: number; pageSize: number; flowName?: string; flowType?: string }): ResponsePageResult { - return request.post('/v1/flow/page', params); + return request.post(JUGGLE_API_PREFIX+'/flow/page', params); } export async function deleteFlow(id: number): ResponseResult { - return request.delete(`/v1/flow/delete/${id}`); + return request.delete(JUGGLE_API_PREFIX+`/flow/delete/${id}`); } diff --git a/console-ui/src/service/api/flowDefine.ts b/console-ui/src/service/api/flowDefine.ts index 627ffd5439f40644b6faab262c3306e8b6cbf35a..3fcb5c6a0c43548666fc159ac8b66a5d110b732f 100644 --- a/console-ui/src/service/api/flowDefine.ts +++ b/console-ui/src/service/api/flowDefine.ts @@ -1,6 +1,7 @@ import { request, type ResponsePageResult, type ResponseResult } from '../base'; import { FlowDefineInfo, InputParams, OutputParams } from '@/typings'; import { FlowVariable } from '@/views/flow/design'; +import {JUGGLE_API_PREFIX} from "@/const/application.ts"; export async function addDefineInfo(params: { flowName: string; @@ -9,19 +10,19 @@ export async function addDefineInfo(params: { flowInputParams?: InputParams[]; flowOutputParams?: OutputParams[]; }): ResponseResult { - return request.post(`/v1/flow/definition/add`, params); + return request.post(JUGGLE_API_PREFIX+`/flow/definition/add`, params); } export async function getDefineInfo(id: number): ResponseResult { - return request.get(`/v1/flow/definition/info/${id}`); + return request.get(JUGGLE_API_PREFIX+`/flow/definition/info/${id}`); } export async function flowDefinePage(params: { pageNum: number; pageSize: number; flowName?: string; flowType?: string }): ResponsePageResult { - return request.post('/v1/flow/definition/page', params); + return request.post(JUGGLE_API_PREFIX+'/flow/definition/page', params); } export async function deleteFlowDefine(id: number): ResponseResult { - return request.delete(`/v1/flow/definition/delete/${id}`); + return request.delete(JUGGLE_API_PREFIX+`/flow/definition/delete/${id}`); } export async function updateDefineInfo(params: { @@ -32,15 +33,15 @@ export async function updateDefineInfo(params: { flowInputParams?: InputParams[]; flowOutputParams?: OutputParams[]; }): ResponseResult { - return request.put(`/v1/flow/definition/update`, params); + return request.put(JUGGLE_API_PREFIX+`/flow/definition/update`, params); } export async function saveFlowContent(params: { id: number; flowContent: string; flowVariables?: FlowVariable[] }): ResponseResult { - return request.put('/v1/flow/definition/save', params); + return request.put(JUGGLE_API_PREFIX+'/flow/definition/save', params); } export function deployFlowDefine(params: { flowDefinitionId: string; flowDeployVersion: string; flowVersionRemark: string }): ResponsePageResult { - return request.post('/v1/flow/definition/deploy', params); + return request.post(JUGGLE_API_PREFIX+'/flow/definition/deploy', params); } export async function debugFlow( @@ -49,5 +50,5 @@ export async function debugFlow( flowData?: Record; } ): ResponseResult { - return request.post(`/v1/flow/definition/debug/${flowKey}`, triggerData); + return request.post(JUGGLE_API_PREFIX+`/flow/definition/debug/${flowKey}`, triggerData); } diff --git a/console-ui/src/service/api/flowVersion.ts b/console-ui/src/service/api/flowVersion.ts index c8bd3e7b4ef334fd10c08feedf2c310ec6e78085..b05603ed3c7c22316f69747be4adda88f2668845 100644 --- a/console-ui/src/service/api/flowVersion.ts +++ b/console-ui/src/service/api/flowVersion.ts @@ -1,21 +1,22 @@ import { request, ResponsePageResult, ResponseResult } from '@/service/base'; +import {JUGGLE_API_PREFIX} from "@/const/application.ts"; export function getLatestDeployVersion(flowId: number): ResponsePageResult { - return request.get('/v1/flow/version/latest/' + flowId); + return request.get(JUGGLE_API_PREFIX+'/flow/version/latest/' + flowId); } export function updateFlowVersionStatus(flowVersionId: number, flowVersionStatus: number): ResponsePageResult { - return request.put('/v1/flow/version/status', { flowVersionId: flowVersionId, flowVersionStatus: flowVersionStatus }); + return request.put(JUGGLE_API_PREFIX+'/flow/version/status', { flowVersionId: flowVersionId, flowVersionStatus: flowVersionStatus }); } export async function flowVersionPage(params: { pageNum: number; pageSize: number; flowId: number; flowVersionStatus?: number }): ResponsePageResult { - return request.post('/v1/flow/version/page', params); + return request.post(JUGGLE_API_PREFIX+'/flow/version/page', params); } export async function deleteFlowVersion(id: number): ResponseResult { - return request.delete(`/v1/flow/version/delete/${id}`); + return request.delete(JUGGLE_API_PREFIX+`/flow/version/delete/${id}`); } export async function getAsyncFlowResult(flowInstanceId: string): ResponseResult { - return request.get(`/v1/flow/version/getAsyncFlowResult/${flowInstanceId}`); + return request.get(JUGGLE_API_PREFIX+`/flow/version/getAsyncFlowResult/${flowInstanceId}`); } diff --git a/console-ui/src/service/api/object.ts b/console-ui/src/service/api/object.ts index ca6b45dfcc126a7d3041bdd77bce80eeae926e7b..34d4e21a8287d7112cd03212385e478c1c451a5a 100644 --- a/console-ui/src/service/api/object.ts +++ b/console-ui/src/service/api/object.ts @@ -1,5 +1,6 @@ import { request, ResponsePageResult, type ResponseResult } from '@/service/base'; import { ObjectInfo, ObjectProperty } from '@/typings'; +import {JUGGLE_API_PREFIX} from "@/const/application.ts"; export async function addObject(params: { objectKey: string; @@ -7,11 +8,11 @@ export async function addObject(params: { objectDesc?: string; props?: ObjectProperty[]; }): ResponseResult { - return request.post(`/v1/object/add`, params); + return request.post(JUGGLE_API_PREFIX+`/object/add`, params); } export async function deleteObjectById(objectId: number): ResponseResult { - return request.delete(`/v1/object/delete/${objectId}`); + return request.delete(JUGGLE_API_PREFIX+`/object/delete/${objectId}`); } export async function updateObjectById(params: { @@ -20,20 +21,20 @@ export async function updateObjectById(params: { objectDesc?: string; props?: ObjectProperty[]; }): ResponseResult { - return request.put(`/v1/object/update`, params); + return request.put(JUGGLE_API_PREFIX+`/object/update`, params); } export async function queryObjectInfo(objectId: number): ResponseResult { - return request.get(`/v1/object/info/${objectId}`); + return request.get(JUGGLE_API_PREFIX+`/object/info/${objectId}`); } export async function isExistObjectKey(params: { id: number | null; objectKey: string; }): ResponseResult { - return request.post(`/v1/object/exist/key`,params); + return request.post(JUGGLE_API_PREFIX+`/object/exist/key`,params); } export async function objectPage(params: { pageNum: number; pageSize: number; objectName?: string }): ResponsePageResult { - return request.post('/v1/object/page', params); + return request.post(JUGGLE_API_PREFIX+'/object/page', params); } diff --git a/console-ui/src/service/api/order.ts b/console-ui/src/service/api/order.ts index 57d59f8b6b24bf2dbdbdc2e38a7f9ce10949c763..9b961298ac17c50d9d4d1180edf307f9b97623b4 100644 --- a/console-ui/src/service/api/order.ts +++ b/console-ui/src/service/api/order.ts @@ -1,16 +1,17 @@ import { request, type ResponseResult } from '@/service/base'; import {CreateOrder} from "@/typings"; +import {JUGGLE_API_PREFIX} from "@/const/application.ts"; export async function createOrder(params: { orderName: string; orderType: number; goodsId: number; }): ResponseResult { - return request.post(`/v1/order/createOrder`, params); + return request.post(JUGGLE_API_PREFIX+`/order/createOrder`, params); } export async function getOrderPayStatus(orderNo: string): ResponseResult { - return request.get(`/v1/order/getOrderPayStatus/${orderNo}`); + return request.get(JUGGLE_API_PREFIX+`/order/getOrderPayStatus/${orderNo}`); } diff --git a/console-ui/src/service/api/suite.ts b/console-ui/src/service/api/suite.ts index c273b05d1bd7153893a921e41682ae5c176a3d13..3a56b51f253334399182cc771f8a4d841e72e4e5 100644 --- a/console-ui/src/service/api/suite.ts +++ b/console-ui/src/service/api/suite.ts @@ -1,21 +1,22 @@ import { request, type ResponsePageResult, type ResponseResult } from '../base'; +import {JUGGLE_API_PREFIX} from "@/const/application.ts"; export async function addSuite(params: { suiteCode: string; suiteName: string; suiteDesc: string }): ResponseResult { - return request.post('/v1/suite/add', params); + return request.post(JUGGLE_API_PREFIX+'/suite/add', params); } export async function deleteSuite(id: number): ResponseResult { - return request.delete(`/v1/suite/delete/${id}`); + return request.delete(JUGGLE_API_PREFIX+`/suite/delete/${id}`); } export async function updateSuite(params: { id: string; suiteCode: string; suiteName: string; suiteDesc: string }): ResponseResult { - return request.put('/v1/suite/update', params); + return request.put(JUGGLE_API_PREFIX+'/suite/update', params); } export async function suitePage(params: { pageNum: number; pageSize: number; suiteName?: string }): ResponsePageResult { - return request.post('/v1/suite/page', params); + return request.post(JUGGLE_API_PREFIX+'/suite/page', params); } export async function suiteList(): ResponseResult { - return request.get('/v1/suite/list'); + return request.get(JUGGLE_API_PREFIX+'/suite/list'); } diff --git a/console-ui/src/service/api/suiteMarket.ts b/console-ui/src/service/api/suiteMarket.ts index f9bf5c79abf6e4be589890df7887cec9a2a97b7c..df81d1e3700b17690b0265740e672d3bc1d0dffa 100644 --- a/console-ui/src/service/api/suiteMarket.ts +++ b/console-ui/src/service/api/suiteMarket.ts @@ -1,7 +1,8 @@ import { request, type ResponseResult } from '../base'; +import {JUGGLE_API_PREFIX} from "@/const/application.ts"; export async function querySuiteMarketClassifyList(): ResponseResult { - return request.post('/v1/suite/market/classify'); + return request.post(JUGGLE_API_PREFIX+'/suite/market/classify'); } export async function querySuiteMarketList(params: { @@ -9,16 +10,17 @@ export async function querySuiteMarketList(params: { pageSize:number; suiteName: string; suiteClassifyId: number|null; + priceStatus: number|null; }): ResponseResult { - return request.post('/v1/suite/market',params); + return request.post(JUGGLE_API_PREFIX+'/suite/market',params); } export async function querySuiteMarketDetail(suiteId: number): ResponseResult { - return request.get('/v1/suite/market/info/' + suiteId); + return request.get(JUGGLE_API_PREFIX+'/suite/market/info/' + suiteId); } export async function installSuiteMarket(suiteId: number,bill?:string): ResponseResult { - return request.post('/v1/suite/market/install', { + return request.post(JUGGLE_API_PREFIX+'/suite/market/install', { suiteId: suiteId, bill: bill }); diff --git a/console-ui/src/service/api/templateMarket.ts b/console-ui/src/service/api/templateMarket.ts index 12293aab560e90e44351482703841308cb7cca17..15e56287b866512729f00e95268f2af5fc0b23de 100644 --- a/console-ui/src/service/api/templateMarket.ts +++ b/console-ui/src/service/api/templateMarket.ts @@ -1,7 +1,8 @@ import { request, type ResponseResult } from '../base'; +import {JUGGLE_API_PREFIX} from "@/const/application.ts"; export async function queryTemplateMarketClassifyList(): ResponseResult { - return request.post('/v1/template/market/classify'); + return request.post(JUGGLE_API_PREFIX+'/template/market/classify'); } export async function queryTemplateMarketList(params: { @@ -9,21 +10,22 @@ export async function queryTemplateMarketList(params: { pageSize:number; templateName: string; templateClassifyId: number|null; + priceStatus: number|null; }): ResponseResult { - return request.post('/v1/template/market',params); + return request.post(JUGGLE_API_PREFIX+'/template/market',params); } export async function queryTemplateMarketDetail(templateId: number): ResponseResult { - return request.get('/v1/template/market/info/' + templateId); + return request.get(JUGGLE_API_PREFIX+'/template/market/info/' + templateId); } export async function useTemplateMarket(templateId: number,bill?:string): ResponseResult { - return request.post('/v1/template/market/use', { + return request.post(JUGGLE_API_PREFIX+'/template/market/use', { templateId: templateId, bill: bill }); } export function queryRecommendTemplateList(templateId: number): ResponseResult { - return request.get('/v1/template/market/recommend/'+templateId); + return request.get(JUGGLE_API_PREFIX+'/template/market/recommend/'+templateId); } diff --git a/console-ui/src/service/api/token.ts b/console-ui/src/service/api/token.ts index 62fbd27c3716fa6c13a5efda3585d0a8db3391cd..6583c9c11ee32eca9c07b8428c7ad96659f25af4 100644 --- a/console-ui/src/service/api/token.ts +++ b/console-ui/src/service/api/token.ts @@ -1,17 +1,18 @@ import { request, ResponsePageResult, type ResponseResult } from '@/service/base'; +import {JUGGLE_API_PREFIX} from "@/const/application.ts"; export async function addToken(tokenDesc: string): ResponseResult { - return request.post(`/v1/token/add`, tokenDesc); + return request.post(JUGGLE_API_PREFIX+`/token/add`, tokenDesc); } export async function deleteTokenById(tokenId: number): ResponseResult { - return request.delete(`/v1/token/delete/${tokenId}`); + return request.delete(JUGGLE_API_PREFIX+`/token/delete/${tokenId}`); } export async function updateTokenById(params: { id: number; tokenDesc: string }): ResponseResult { - return request.put(`/v1/token/update`, params); + return request.put(JUGGLE_API_PREFIX+`/token/update`, params); } export async function tokenPage(params: { pageNum: number; pageSize: number }): ResponsePageResult { - return request.post('/v1/token/page', params); + return request.post(JUGGLE_API_PREFIX+'/token/page', params); } diff --git a/console-ui/src/service/api/user.ts b/console-ui/src/service/api/user.ts index e0d3ff61a269b6e7abc2254579b754815ebb6c77..a686d6248f2f644246432e6ed625cce1468ee292 100644 --- a/console-ui/src/service/api/user.ts +++ b/console-ui/src/service/api/user.ts @@ -1,7 +1,8 @@ import { request, type ResponseResult } from '@/service/base'; +import {JUGGLE_API_PREFIX} from "@/const/application.ts"; export function login(data: { userName: string; password: string }): ResponseResult { - return request.post('/v1/user/login', data); + return request.post(JUGGLE_API_PREFIX+'/user/login', data); } export function logout() {} @@ -9,5 +10,5 @@ export function logout() {} export function check() {} export function getProductInfo(): ResponseResult { - return request.get('/v1/user/product/info'); + return request.get(JUGGLE_API_PREFIX+'/user/product/info'); } \ No newline at end of file diff --git a/console-ui/src/service/base/index.ts b/console-ui/src/service/base/index.ts index 2a68f71f7dbc5dda588d6384675d7c6b0001f919..8b32d6d9c9f0984e0b7bde250fae40ebcc75ca36 100644 --- a/console-ui/src/service/base/index.ts +++ b/console-ui/src/service/base/index.ts @@ -5,7 +5,7 @@ function createRequestInstance() { // 创建实例 const instance = axios.create({ baseURL: '', - timeout: 10000, + timeout: 30000, headers: {}, }); diff --git a/console-ui/src/service/module/suiteMarketService.ts b/console-ui/src/service/module/suiteMarketService.ts index 698036eb5b5cd08f2f02c5b4bc97e7a4a69269f4..debfd3062b091beddef138e8faea6344d3039b16 100644 --- a/console-ui/src/service/module/suiteMarketService.ts +++ b/console-ui/src/service/module/suiteMarketService.ts @@ -3,7 +3,21 @@ import { ResponseResult } from '@/service/base'; import {SuiteMarketInfo} from '@/typings'; export async function querySuiteMarketClassifyList() { - return suiteMarketAPI.querySuiteMarketClassifyList(); + const res = await suiteMarketAPI.querySuiteMarketClassifyList(); + if (res.success) { + const suiteClassifyFilter = { + title: "套件分类", + key: "suiteClassify", + options : [{label: "全部",value: null}, + ...res.result.map(item => ({ + value: item.id, + label: item.classifyName + }))] + } + return suiteClassifyFilter; + } else { + return null; + } } export async function querySuiteMarketList(params: Parameters[0]) { diff --git a/console-ui/src/service/module/templateMarketService.ts b/console-ui/src/service/module/templateMarketService.ts index 11b44901c454a2baf2b29087d574eb68cf50c672..01ada7cb278cb3d2750a3a42bfc6123194ec366f 100644 --- a/console-ui/src/service/module/templateMarketService.ts +++ b/console-ui/src/service/module/templateMarketService.ts @@ -3,7 +3,21 @@ import { ResponseResult } from '@/service/base'; import { TemplateMarketInfo} from '@/typings'; export async function queryTemplateMarketClassifyList() { - return templateMarketAPI.queryTemplateMarketClassifyList(); + const res = await templateMarketAPI.queryTemplateMarketClassifyList(); + if (res.success) { + const suiteClassifyFilter = { + title: "模板分类", + key: "templateClassify", + options : [{label: "全部",value: null}, + ...res.result.map(item => ({ + value: item.id, + label: item.classifyName + }))] + } + return suiteClassifyFilter; + } else { + return null; + } } export async function queryTemplateMarketList(params: Parameters[0]) { diff --git a/console-ui/src/typings/dataType.ts b/console-ui/src/typings/dataType.ts index f715b4bdb0cb9d2abb77c962634913108fdbe3c5..077ec898c9f1a5335fd78a407866d20a94c57137 100644 --- a/console-ui/src/typings/dataType.ts +++ b/console-ui/src/typings/dataType.ts @@ -1,3 +1,5 @@ +import { ObjectProperty } from '@/typings/object.ts'; + export enum DataTypeEnum { Basic = 1, List = 2, @@ -17,5 +19,5 @@ export interface DataType { type: string; itemType?: string | null; objectKey?: string | null; - objectStructure?: string | null; + objectStructure?: ObjectProperty[] | null; } \ No newline at end of file diff --git a/console-ui/src/typings/object.ts b/console-ui/src/typings/object.ts index 890b2bc8ebe4ede8c8b4b2be547edf76554f74da..10ce878d96c45d84acfcf3e29cadf11c12d742cb 100644 --- a/console-ui/src/typings/object.ts +++ b/console-ui/src/typings/object.ts @@ -1,7 +1,9 @@ +import { DataType } from '@/typings/dataType.ts'; + export interface ObjectProperty { propKey: string; propName: string; - dataType: string; + dataType: DataType; } export interface ObjectInfo { diff --git a/console-ui/src/utils/dataType.ts b/console-ui/src/utils/dataType.ts index 10ef000477cd9cb2a95af653d67bfc3f0b3c5077..759db007a85d1de1b6a1ab552b06a05a37269119 100644 --- a/console-ui/src/utils/dataType.ts +++ b/console-ui/src/utils/dataType.ts @@ -1,5 +1,5 @@ import {FlowVariable} from "@/views/flow/design"; -import {DataType} from "@/typings"; +import { DataType, ObjectProperty } from '@/typings'; const DATA_TYPE_TEMP: Map = new Map(); @@ -66,9 +66,6 @@ export function isDataTypeMatch(sourceDataTypeItem: DataType, filterDataType: Da if (sourceDataTypeItem === filterDataType) { return true; } - if (sourceDataTypeItem.type == filterDataType.type) { - return true; - } if(filterDataType.type == "String" || filterDataType.type == "Integer" || filterDataType.type == "Double" || filterDataType.type == "Boolean" || @@ -78,11 +75,29 @@ export function isDataTypeMatch(sourceDataTypeItem: DataType, filterDataType: Da } } - /*if(filterDataType.type == "Object"){ + if(filterDataType.type == "Object"){ + //都是对象类型,且对象编码一致 if(sourceDataTypeItem.type == 'Object' && sourceDataTypeItem.objectKey == filterDataType.objectKey){ + console.log("object", filterDataType,sourceDataTypeItem); return true; } - }*/ + // 对象属性中有匹配的对象 + if(sourceDataTypeItem.type == 'Object' && isMatchObjectStructure(filterDataType,sourceDataTypeItem?.objectStructure)){ + return true; + } + } + return false; +} + +/** + * 对象字段是否有匹配属性 + * @param filterDataType + * @param objectStructure + */ +function isMatchObjectStructure(filterDataType: DataType, objectStructure: ObjectProperty[] | null | undefined){ + if(objectStructure && Array.isArray(objectStructure)){ + return objectStructure.some(prop => prop.dataType.type === filterDataType.type && prop.dataType.objectKey === filterDataType.objectKey); + } return false; } diff --git a/console-ui/src/views/flow/define/FlowDefineTable.vue b/console-ui/src/views/flow/define/FlowDefineTable.vue index 94f50e10e669dbaf5281dd6e89c3918fc523f252..d6e2d34691f10e245405621f657e8bf91b4182f9 100644 --- a/console-ui/src/views/flow/define/FlowDefineTable.vue +++ b/console-ui/src/views/flow/define/FlowDefineTable.vue @@ -50,7 +50,7 @@ function goDesignPage(flowDefinitionId: number, flowKey: string) { 异步 - + - +