From 578aa2fb5a2898aef41fe482da638c242571c673 Mon Sep 17 00:00:00 2001 From: warm <290631660@qq.com> Date: Fri, 1 Nov 2024 22:19:40 +0800 Subject: [PATCH 01/16] =?UTF-8?q?[update]=20=E6=9B=B4=E6=96=B0=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/update.md | 4 +- src/master/guide/api.md | 63 ++-- src/master/guide/config.md | 4 +- src/master/guide/designerIntroduced.md | 317 ++++++++---------- src/master/guide/jsonlib.md | 2 +- src/master/guide/ormusagetips.md | 14 +- src/master/guide/started.md | 88 +++-- src/master/guide/tenant.md | 2 +- ...34\346\265\201\345\274\225\346\223\216.md" | 33 +- 9 files changed, 259 insertions(+), 268 deletions(-) diff --git a/src/common/update.md b/src/common/update.md index b5baf65..916bc76 100644 --- a/src/common/update.md +++ b/src/common/update.md @@ -38,8 +38,10 @@ ## 更新日志 -### v1.3.1 2024-10-31 +### v1.3.1 2024-11-01 - 【升级指南】 + - 依赖的groupId:io.github.minliuhua,改为org.dromara + - 包名:com.warm, 改为org.dromara.warm - 节点详情进入改为双击 - 终止操作的流程状态改为更合理的终止状态,如需还想按照原本的自动完成,请使用自定义流程状态 - FlowParams对象删除setXxx(yyy)方法,改为xxx(yyy)方法赋值 diff --git a/src/master/guide/api.md b/src/master/guide/api.md index 1735eae..6a1054c 100644 --- a/src/master/guide/api.md +++ b/src/master/guide/api.md @@ -2,24 +2,27 @@ ## 1、DefService流程定义接口 -### 1.1、导入流程定义 -`importXml(is)`:导入流程定义xml的输入流is,保存流程定义数据,返回流程定义对象 +### 1.1、新增流程定义表数据,新增后需要通过saveXml接口保存流程节点和流程跳转数据 +`checkAndSave(definition)`:校验后新增 -### 1.2、保存流程定义 -`saveXml(def)`: 传入流程定义id、流程定义xml字符串,保存流程定义数据。def包含如下字段: +### 1.1、新增流程定义、流程节点和流程跳转数据 +`importXml(is)`:导入流程定义xml的输入流 + +### 1.2、保存流程节点和流程跳转数据 +`saveXml(def)`: 传入流程定义id、流程定义xml字符串 - id: 流程定义id [必传] - xmlString: 流程定义xml字符串 [必传] -### 1.3、保存流程定义 -`saveXml(id, xmlString)`: 传入流程定义id、流程定义xml字符串,保存流程定义数据 +### 1.3、保存流程节点和流程跳转数据 +`saveXml(id, xmlString)`: 传入流程定义id、流程定义xml字符串 - id: 流程定义id - xmlString: 流程定义xml字符串 ### 1.4、导出流程定义 -`exportXml(id)`: 导出流程定义xml的Document对象 +`exportXml(id)`: 导出流程定义(流程定义、流程节点和流程跳转数据)xml的Document对象 ### 1.5、获取流程定义 -`xmlString(id)`: 获取流程定义xml的字符串 +`xmlString(id)`: 获取流程定义xml(流程定义、流程节点和流程跳转数据)的字符串 ### 1.6、删除 `removeDef(ids)`: 删除流程定义相关数据 @@ -61,6 +64,7 @@ - handler: 办理人唯一标识 [建议传] - variable: 流程变量 [按需传输] - flowStatus: 流程状态,自定义流程状态 [按需传输] +- ignore: 转办忽略权限校验,默认不忽略(true:忽略,false:不忽略)[按需传输] ### 2.3、终止流程 `termination(instanceId, flowParams)`:传入流程实例id,终止流程。flowParams包含如下字段: @@ -68,6 +72,7 @@ - message: 审批意见 [按需传输] - flowStatus: 流程状态,自定义流程状态 [按需传输] - permissionFlag: 办理人权限标识,比如用户,角色,部门等,不传不校验权限 [按需传输] +- ignore: 转办忽略权限校验,默认不忽略(true:忽略,false:不忽略)[按需传输] ### 2.4、删除流程实例 `remove(instanceIds)`:根据实例ids,删除流程 @@ -89,6 +94,7 @@ - handler: 办理人唯一标识 [建议传] - variable: 流程变量 [按需传输] - flowStatus: 流程状态,自定义流程状态 [按需传输] +- ignore: 转办忽略权限校验,默认不忽略(true:忽略,false:不忽略)[按需传输] ### 3.2、终止流程 `termination(taskId, flowParams)`:传入流程任务id,终止流程。flowParams包含如下字段: @@ -96,48 +102,49 @@ - handler: 办理人唯一标识 [建议传] - flowStatus: 流程状态,自定义流程状态 [按需传输] - permissionFlag: 办理人权限标识,比如用户,角色,部门等,不传不校验权限 [按需传输] +- ignore: 转办忽略权限校验,默认不忽略(true:忽略,false:不忽略)[按需传输] ### 3.3、转办 -`transfer(taskId, curUser, permissionFlag, addHandlers, message)`:转办, 默认删除当然办理用户权限,转办后,当前办理不可办理 -- taskId: 修改的任务id [必传] -- curUser: 当前办理人唯一标识 [必传] +`transfer(taskId, flowParams)`:转办, 默认删除当然办理用户权限,转办后,当前办理不可办理。flowParams包含如下字段: +- handler: 当前办理人唯一标识 [必传] - permissionFlag: 用户权限标识集合 [必传] -- addHandlers: 增加办理人:加签,转办,委托 [必传] +- addHandlers: 转办对象 [必传] - message: 审批意见 [按需传输] +- ignore: 转办忽略权限校验,默认不忽略(true:忽略,false:不忽略)[按需传输] ### 3.4、委派 -`depute(taskId, curUser, permissionFlag, addHandlers, message)`:委派, 默认删除当然办理用户权限,转办后,当前办理不可办理 -- taskId: 修改的任务id [必传] -- curUser: 当前办理人唯一标识 [必传] +`depute(taskId, flowParams)`:委派, 默认删除当然办理用户权限,委派后,当前办理不可办理。flowParams包含如下字段: +- handler: 当前办理人唯一标识 [必传] - permissionFlag: 用户权限标识集合 [必传] -- addHandlers: 增加办理人:加签,转办,委托 [必传] +- addHandlers: 委托对象 [必传] - message: 审批意见 [按需传输] +- ignore: 转办忽略权限校验,默认不忽略(true:忽略,false:不忽略)[按需传输] ### 3.5、加签 -`addSignature(taskId, curUser, permissionFlag, addHandlers, message)`:加签,增加办理人 -- taskId: 修改的任务id [必传] -- curUser: 当前办理人唯一标识 [必传] +`addSignature(taskId, flowParams)`:加签,增加办理人。flowParams包含如下字段: +- handler: 当前办理人唯一标识 [必传] - permissionFlag: 用户权限标识集合 [必传] -- addHandlers: 增加办理人:加签,转办,委托 [必传] +- addHandlers: 加签对象 [必传] - message: 审批意见 [按需传输] +- ignore: 转办忽略权限校验,默认不忽略(true:忽略,false:不忽略)[按需传输] ### 3.6、减签 -`reductionSignature(taskId, curUser, permissionFlag, addHandlers, message)`:减签,减少办理人 -- taskId: 修改的任务id [必传] -- curUser: 当前办理人唯一标识 [必传] +`reductionSignature(taskId, flowParams)`:减签,减少办理人。flowParams包含如下字段: +- handler: 当前办理人唯一标识 [必传] - permissionFlag: 用户权限标识集合 [必传] -- addHandlers: 增加办理人:加签,转办,委托 [必传] +- reductionHandlers: 减少办理人 [必传] - message: 审批意见 [按需传输] +- ignore: 转办忽略权限校验,默认不忽略(true:忽略,false:不忽略)[按需传输] ### 3.7、修改办理人 -`updateHandler(modifyHandler)`:修改办理人 -- curUser: 办理人唯一标识 [按需传输] -- ignore: 转办忽略权限校验(true:忽略,false:不忽略)[按需传输] +`updateHandler(taskId, flowParams)`:传入流程任务id,修改办理人 +- handler: 办理人唯一标识 [按需传输] - permissionFlag: 用户所拥有的权限标识 [按需传输,ignore为false,则必传] - addHandlers: 增加办理人:加签,转办,委托 [按需传输] - reductionHandlers: 减少办理人:减签,委托 [按需传输] - message: 审批意见 [按需传输] -- cooperateType: 协作方式(1审批 2转办 3委派 4会签 5票签 6加签 7减签)[按需传输] +- cooperateType: 协作方式(2转办 3委派 6加签 7减签)[按需传输] +- ignore: 转办忽略权限校验(true:忽略,false:不忽略)[按需传输] ## 4、NodeService节点接口 ### 4.1、获取下一个节点列表 diff --git a/src/master/guide/config.md b/src/master/guide/config.md index c29bbf9..e3c1d40 100644 --- a/src/master/guide/config.md +++ b/src/master/guide/config.md @@ -74,9 +74,9 @@ warm-flow: # 是否显示banner图,默认是 banner: true # # 填充器,内部有默认实现,如果不满足实际业务,可通过此配置自定义实现 - # data-fill-handler-path: com.warm.flow.core.test.handle.CustomDataFillHandler + # data-fill-handler-path: org.dromara.warm.flow.core.test.handle.CustomDataFillHandler # 全局租户处理器(可通过配置文件注入,也可用@Bean/@Component方式 - # tenant_handler_path: com.warm.flow.core.test.handle.CustomTenantHandler + # tenant_handler_path: org.dromara.warm.flow.core.test.handle.CustomTenantHandler # 是否开启逻辑删除(orm框架本身不支持逻辑删除,可通过这种方式开启,比如jpa) logic_delete: false # 逻辑删除字段值(开启后默认为2) diff --git a/src/master/guide/designerIntroduced.md b/src/master/guide/designerIntroduced.md index 91da6dc..69b4d67 100644 --- a/src/master/guide/designerIntroduced.md +++ b/src/master/guide/designerIntroduced.md @@ -8,16 +8,16 @@ ```xml - io.github.minliuhua - warm-flow-plugin-ui-sb-web - 版本号 + org.dromara + warm-flow-plugin-ui-sb-web + 版本号 ``` ## 2. 后端放行部分路径 -> 这两个路径需要放行,否则无法访问,`/warm-flow-ui/**`, `/warm-flow/**` +> 这个路径需要放行,否则无法访问,`/warm-flow-ui/**` -### 2.1 spring-security 放行配置 +### 2.1 spring-security 放行配置
```java @@ -29,7 +29,7 @@ protected SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exce // 注解标记允许匿名访问的url .authorizeHttpRequests((requests) -> { // 后端请求,静态资源,可匿名访问 - requests.antMatchers("/warm-flow-ui/**", "/warm-flow/**").permitAll() + requests.antMatchers("/warm-flow-ui/**").permitAll() // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated(); }) @@ -56,7 +56,6 @@ public class ShiroConfig { // 后端请求,静态资源,可匿名访问 LinkedHashMap filterChainDefinitionMap = new LinkedHashMap<>(); filterChainDefinitionMap.put("/warm-flow-ui/**", "anon"); - filterChainDefinitionMap.put("/warm-flow/**", "anon"); shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap); return shiroFilterFactoryBean; @@ -76,48 +75,19 @@ public class SaTokenConfigure implements WebMvcConfigurer { registry.addInterceptor(new SaInterceptor(handle -> StpUtil.checkLogin())) .addPathPatterns("/**") // 以上是sa-token案例,下面才是需要排除的地址 - .excludePathPatterns("/warm-flow-ui/**", "/warm-flow/**"); + .excludePathPatterns("/warm-flow-ui/**"); } } ``` ## 3. 前端加载设计器 -> 1、设计器页面入口地址为:`/warm-flow-ui/${definitionId}?disabled=${disabled}` -> 2、总体思路就是把前端接口(比如80)代理成后端接口(8080),去访问该地址,其他不变 -> 3、或者直接通过后端接口访问该地址,可能需要处理跨域问题 - -### 3.1 nginx 代理配置 - -``` -server { - listen 80; - server_name localhost; - - location /warm-flow-ui/ { - proxy_pass http://localhost:8080/warm-flow-ui/; - } -} -``` +> 1、设计器页面入口是访问后端地址(前后端不分离):`ip:port/warm-flow-ui/index?id=${definitionId}?disabled=${disabled}` ### 3.2 vue2 引入 -- 代理到后端需要vue.config.js配置代码 - -```javascript -"/warm-flow-ui": { - target: `http://localhost:8080/warm-flow-ui`, - changeOrigin: true, - pathRewrite: { - '/warm-flow-ui': '/' - } -}, - -``` - -
- 首先传入设计器需要的流程定义definitionId和是否可编辑disabled参数 - 本实例采用iframe方式嵌入设计器 -
+
```vue @@ -137,9 +107,10 @@ server { }; }, mounted() { - // definitionId为需要查询的流程定义id, - // disabled为是否可编辑, 例如:查看的时候不可编辑,不可保存 - this.url = `/warm-flow-ui/${definitionId}?disabled=${disabled}`; + // process.env.VUE_APP_BASE_API: 前端地址的前缀如dev-api + // definitionId: 为需要查询的流程定义id + // disabled: 为是否可编辑, 例如:查看的时候不可编辑,不可保存 + this.url = process.env.VUE_APP_BASE_API + `/warm-flow-ui/index.html?id=${definitionId}&disabled=${disabled}`; this.iframeLoaded(); }, methods: { @@ -165,18 +136,6 @@ server {
### 3.3 vue3 引入 -- vue3项目引入过程同上vue2 - -```javascript -"/warm-flow-ui": { - target: `http://localhost:8080`, - changeOrigin: true, - pathRewrite: { - '/warm-flow-ui': '/' - } -}, -``` -
```vue