queryPage(SysListenerListDto dto);
27 | }
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/field-color/color-defaultValue-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/svg/button.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/defaultValue-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/appendButton-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ i18nt("designer.setting.inputButton") }}
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/displayStyle-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ i18nt("designer.setting.inlineLayout") }}
5 | {{ i18nt("designer.setting.blockLayout") }}
6 |
7 |
8 |
9 |
10 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/uploadURL-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ i18nt("designer.setting.uploadSetting") }}
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/field-html-text/htmlContent-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
23 |
24 |
29 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/field-date/date-valueFormat-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/field-switch/switch-defaultValue-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/labelIconClass-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ i18nt("designer.setting.customLabelIcon") }}
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/BpmnJs/i18n/zh_CN/elements/tasks.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | Task: "任务",
3 | "Send Task": "发送任务",
4 | "Receive Task": "接收任务",
5 | "User Task": "用户任务",
6 | "Manual Task": "手工任务",
7 | "Business Rule Task": "业务规则任务",
8 | "Service Task": "服务任务",
9 | "Script Task": "脚本任务",
10 | "Call Activity": "调用活动",
11 | "Sub Process (collapsed)": "子流程(折叠的)",
12 | "Sub Process (expanded)": "子流程(展开的)",
13 | "Start Event": "开始事件",
14 | "Intermediate Throw Event": "中间事件",
15 | "End Event": "结束事件",
16 | StartEvent: "开始事件",
17 | EndEvent: "结束事件",
18 | SendTask: "发送任务",
19 | ReceiveTask: "接收任务",
20 | UserTask: "用户任务",
21 | ManualTask: "手工任务",
22 | BusinessRuleTask: "业务规则任务",
23 | ServiceTask: "服务任务",
24 | ScriptTask: "脚本任务",
25 | CallActivity: "调用活动",
26 | SubProcess: "子流程"
27 | };
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/BpmnJs/utils/EmptyXML.ts:
--------------------------------------------------------------------------------
1 | export default (key: string, name: string): string => {
2 | return `
3 |
11 |
12 |
13 |
14 |
15 | `;
16 | };
17 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/field-divider/contentPosition-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/activiti7-java/src/main/java/com/activiti/utils/constant/ActivityType.java:
--------------------------------------------------------------------------------
1 | package com.activiti.utils.constant;
2 |
3 | /**
4 | * 网关类型
5 | *
6 | * @author liuguofeng
7 | * @date 2023/11/21 16:45
8 | **/
9 | public class ActivityType {
10 |
11 | /**
12 | * 开始节点
13 | */
14 | public final static String START_EVENT = "startEvent";
15 |
16 |
17 | /**
18 | * 用户节点
19 | */
20 | public final static String USER_TASK = "userTask";
21 |
22 | /**
23 | * 并行网关
24 | */
25 | public final static String PARALLEL_GATEWAY = "parallelGateway";
26 |
27 | /**
28 | * 包容网关
29 | */
30 | public final static String INCLUSIVE_GATEWAY = "inclusiveGateway";
31 |
32 | /**
33 | * 互斥网关
34 | */
35 | public final static String EXCLUSIVE_GATEWAY = "exclusiveGateway";
36 | }
37 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/container-grid/colHeight-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/BpmnJs/components/Toolbar/index.tsx:
--------------------------------------------------------------------------------
1 | import { defineComponent } from "vue";
2 | import Imports from "@/components/BpmnJs/components/Toolbar/components/Imports";
3 | import Previews from "@/components/BpmnJs/components/Toolbar/components/Previews";
4 | import Scales from "@/components/BpmnJs/components/Toolbar/components/Scales";
5 | import Commands from "@/components/BpmnJs/components/Toolbar/components/Commands";
6 |
7 | const Toolbar = defineComponent({
8 | name: "ToolBar",
9 | setup() {
10 | return () => (
11 |
17 | );
18 | }
19 | });
20 |
21 | export default Toolbar;
22 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/BpmnJs/bpmn-icons/bpmn-icon-data-output.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/field-date-range/date-range-valueFormat-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/field-time/time-format-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/svg/grid-col.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/activiti7-java/src/main/java/com/activiti/modules/service/impl/SysDeptServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.activiti.modules.service.impl;
2 |
3 | import com.activiti.modules.dao.SysDeptDao;
4 | import com.activiti.modules.entity.SysDeptEntity;
5 | import com.activiti.modules.service.SysDeptService;
6 | import org.springframework.stereotype.Service;
7 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
8 |
9 | import java.util.List;
10 |
11 |
12 | @Service("sysDeptService")
13 | public class SysDeptServiceImpl extends ServiceImpl implements SysDeptService {
14 |
15 | /**
16 | * 部门分页列表
17 | *
18 | * @param dto 分页参数
19 | * @return 列表
20 | */
21 | @Override
22 | public List queryPage(SysDeptEntity dto) {
23 | return baseMapper.queryPage(dto);
24 | }
25 | }
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/label-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/utils/smart-vue-i18n/index.js:
--------------------------------------------------------------------------------
1 | import { reactive } from "vue";
2 | import { get } from "./utils";
3 |
4 | let locale = reactive({
5 | lang: localStorage.getItem("v_form_locale") || "zh-CN"
6 | });
7 |
8 | export function createI18n(options) {
9 | return {
10 | messages: options.messages,
11 |
12 | $st(path, ...args) {
13 | const message = get(this.messages[locale.lang], path);
14 | return typeof message === "function" ? message(...args) : message !== null ? message : path;
15 | },
16 |
17 | $st2(path, path2) {
18 | let messages = this.messages[locale.lang];
19 | const message = get(messages, path);
20 | return message !== null ? message : get(messages, path2);
21 | },
22 |
23 | setLang(lang) {
24 | locale.lang = lang;
25 | }
26 | };
27 | }
28 |
--------------------------------------------------------------------------------
/activiti7-java/src/main/java/com/activiti/modules/entity/dto/workflow/TableColumnsDto.java:
--------------------------------------------------------------------------------
1 | package com.activiti.modules.entity.dto.workflow;
2 |
3 | import lombok.Data;
4 |
5 | import javax.validation.constraints.Pattern;
6 |
7 | /**
8 | * 表结构
9 | *
10 | * @author liuguofeng
11 | * @date 2023/12/13 10:23
12 | **/
13 | @Data
14 | public class TableColumnsDto {
15 |
16 | /**
17 | * 行名称
18 | */
19 | @Pattern(regexp = "^[a-zA-Z][a-zA-Z0-9_]*$", message = "绑定字段-字段名称不符合规则")
20 | private String columnName;
21 | /**
22 | * 数据类型
23 | */
24 | private String dataType;
25 |
26 | /**
27 | * 字段长度
28 | */
29 | private Integer columnLength;
30 | /**
31 | * 行备注
32 | */
33 | private String columnComment;
34 | /**
35 | * 行健
36 | */
37 | private String columnKey;
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/field-date-range/date-range-type-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/field-number/number-defaultValue-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/field-time-range/time-range-format-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/field-time/time-defaultValue-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/extension/samples/extension-schema.js:
--------------------------------------------------------------------------------
1 | export const cardSchema = {
2 | type: "card",
3 | category: "container",
4 | icon: "card",
5 | widgetList: [],
6 | options: {
7 | name: "",
8 | label: "card",
9 | hidden: false,
10 | folded: false,
11 | showFold: true,
12 | cardWidth: "100%",
13 | shadow: "never",
14 | customClass: ""
15 | }
16 | };
17 |
18 | export const alertSchema = {
19 | type: "alert",
20 | icon: "alert",
21 | formItemFlag: false,
22 | options: {
23 | name: "",
24 | title: "Good things are coming...",
25 | type: "info",
26 | description: "",
27 | closable: true,
28 | closeText: "",
29 | center: true,
30 | showIcon: false,
31 | effect: "light",
32 | hidden: false,
33 | onClose: "",
34 | customClass: ""
35 | }
36 | };
37 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/svg/redo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/svg/undo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/refMixinDesign.js:
--------------------------------------------------------------------------------
1 | export default {
2 | methods: {
3 | initRefList() {
4 | if (this.refList !== null && !!this.widget.options.name) {
5 | this.refList[this.widget.options.name] = this;
6 | }
7 | },
8 |
9 | getWidgetRef(widgetName, showError) {
10 | let foundRef = this.refList[widgetName];
11 | if (!foundRef && !!showError) {
12 | this.$message.error(this.i18nt("render.hint.refNotFound") + widgetName);
13 | }
14 | return foundRef;
15 | },
16 |
17 | /* 该方法用于组件重名检查!! */
18 | registerToRefList(oldRefName) {
19 | if (this.refList !== null && !!this.widget.options.name) {
20 | if (oldRefName) {
21 | delete this.refList[oldRefName];
22 | }
23 | this.refList[this.widget.options.name] = this;
24 | }
25 | }
26 | }
27 | };
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/field-time-range/time-range-defaultValue-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/optionItems-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ i18nt("designer.setting.optionsSetting") }}
4 |
5 |
6 |
7 |
8 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/BpmnJs/overwrite-modules/Palette/utils.ts:
--------------------------------------------------------------------------------
1 | import { assign } from "min-dash";
2 |
3 | export function createAction(
4 | elementFactory,
5 | create,
6 | type: string,
7 | group: string,
8 | className: string,
9 | title: string,
10 | options?: object
11 | ) {
12 | function createListener(event) {
13 | const shape = elementFactory.createShape(assign({ type: type }, options));
14 |
15 | if (options) {
16 | !shape.businessObject.di && (shape.businessObject.di = {});
17 | shape.businessObject.di.isExpanded = (options as { [key: string]: any }).isExpanded;
18 | }
19 |
20 | create.start(event, shape);
21 | }
22 |
23 | return {
24 | group: group,
25 | className: className,
26 | title: title,
27 | action: {
28 | dragstart: createListener,
29 | click: createListener
30 | }
31 | };
32 | }
33 |
--------------------------------------------------------------------------------
/activiti7-java/src/main/java/com/activiti/modules/entity/dto/workflow/DeployProcessDto.java:
--------------------------------------------------------------------------------
1 | package com.activiti.modules.entity.dto.workflow;
2 |
3 | import lombok.Data;
4 |
5 | import javax.validation.Valid;
6 | import javax.validation.constraints.NotBlank;
7 |
8 | import java.util.List;
9 |
10 | /**
11 | * 部署流程
12 | *
13 | * @author liuguofeng
14 | * @date 2023/11/29 17:10
15 | **/
16 | @Data
17 | public class DeployProcessDto {
18 | /**
19 | * bpmn xml
20 | */
21 | @NotBlank(message = "bpmn不能为空")
22 | private String xml;
23 |
24 | /**
25 | * 表单数据
26 | */
27 | private List formJsonList;
28 |
29 | /**
30 | * 节点绑定字段信息
31 | */
32 | @Valid
33 | private List nodeColumns;
34 |
35 | /**
36 | * 数据库表信息
37 | */
38 | @Valid
39 | private TableInfoDto tableInfo;
40 |
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/BpmnJs/bpmn-icons/bpmn-icon-default-flow.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/svg/el/drag-move.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/field-date/date-defaultValue-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/svg/el/info.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/event-handler/onBlur-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ i18nt("designer.setting.addEventHandler") }}
4 |
5 |
6 |
7 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/event-handler/onClick-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ i18nt("designer.setting.addEventHandler") }}
4 |
5 |
6 |
7 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/event-handler/onCreated-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ i18nt("designer.setting.addEventHandler") }}
4 |
5 |
6 |
7 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/event-handler/onFocus-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ i18nt("designer.setting.addEventHandler") }}
4 |
5 |
6 |
7 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/event-handler/onInput-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ i18nt("designer.setting.addEventHandler") }}
4 |
5 |
6 |
7 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/event-handler/onMounted-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ i18nt("designer.setting.addEventHandler") }}
4 |
5 |
6 |
7 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/constants/app.ts:
--------------------------------------------------------------------------------
1 | import { getValueByKeys } from "@/utils/utils";
2 | import appPack from "../../package.json";
3 | /**
4 | * app系统配置
5 | */
6 | export default {
7 | /**
8 | * 系统版本号,自动读取package.json中的version字段
9 | */
10 | version: appPack.version,
11 |
12 | /**
13 | * 系统默认语言
14 | */
15 | defaultLang: "zh-CN",
16 |
17 | /**
18 | * api请求地址,这里读取env环境变量中的VITE_APP_API,优先使用全局变量window.SITE_CONFIG.apiURL钩子,支持在index.html中配置
19 | */
20 | api: getValueByKeys(window, "SITE_CONFIG.apiURL") || import.meta.env.VITE_APP_API,
21 |
22 | /**
23 | * 启用logo图标,logo尺寸32*32,存放路径@/assets/images/logo.png
24 | */
25 | enabledLogo: false,
26 |
27 | /**
28 | * 开启页面缓存
29 | */
30 | enabledKeepAlive: true,
31 |
32 | /**
33 | * 网络请求超时时间,单位毫秒
34 | */
35 | requestTimeout: 30000,
36 |
37 | /**
38 | * 全屏渲染的页面
39 | */
40 | fullscreenPages: ["/login"]
41 | };
42 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/field-date-range/date-range-defaultValue-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/document/bpmnDataTable.md:
--------------------------------------------------------------------------------
1 | # 介绍
2 |
3 | > 工作流项目不会依赖任何业务,都是通过表单和数据库表结构动态绑定的
4 |
5 | #### 一.绑定已有的表
6 |
7 | ##### 1.表结构
8 |
9 | > 要求:字段必须有主键,并且类型是varchar(40)
10 |
11 | 
12 |
13 | ##### 2.在流程管理 >> 流程定义 >> 新建
14 |
15 | 
16 |
17 | ##### 3.绑定成功后,在任意一个节点表单(甚至主表单)点击设计,可以和动态表单的字段进行绑定,一个节点表单被绑定后,另一个节点表单也可以再次绑定,`注意`:(后面表单的值会覆盖前面表单的值从而影响数据库中的绑定值)
18 |
19 | 
20 |
21 | 
22 |
23 | #### 二.绑定创建数据库表
24 |
25 | ##### 1.在流程管理 >> 流程定义 >> 新建
26 |
27 | 
28 |
29 | ##### 2.和绑定已有的表地第3步一致,唯一不同的是表字段从选择变成输入,输入的值将作为表字段,标签将作为字段备注
30 |
31 | 
32 |
33 | ##### 3.设计完成后,保存流程系统将会自动创建表结构
34 |
35 | 
36 |
37 |
38 |
39 | #### 三.关于表单字段和数据库对应关系扩展
40 |
41 | > 需要扩展字段或者数据库需要修改或新增 类 `DbConfig` 和 文件`resources` 下的 `widgetDataType`
42 |
43 | 
44 |
45 | 
46 |
47 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/BpmnJs/bpmn-icons/bpmn-icon-send-task.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/svg/el/move-down.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/activiti7-java/src/main/java/com/activiti/modules/service/ProcessTodoService.java:
--------------------------------------------------------------------------------
1 | package com.activiti.modules.service;
2 |
3 |
4 | import com.activiti.modules.entity.dto.workflow.TodoCompleteDto;
5 | import com.activiti.modules.entity.dto.workflow.TodoListDto;
6 | import com.activiti.utils.page.TableDataInfo;
7 |
8 | import java.util.Map;
9 |
10 | /**
11 | * 代办任务
12 | *
13 | * @author liuguofeng
14 | * @date 2023/11/04 19:14
15 | **/
16 | public interface ProcessTodoService {
17 |
18 | /**
19 | * 查看我代办的流程
20 | *
21 | * @param dto 参数
22 | */
23 | TableDataInfo queryPage(TodoListDto dto);
24 |
25 | /**
26 | * 获取节点表单
27 | * @param taskId 任务id
28 | * @return 表单数据
29 | */
30 | Map getNodeForm(String taskId);
31 |
32 | /**
33 | * 节点审批
34 | *
35 | * @param dto 参数
36 | */
37 | void complete(TodoCompleteDto dto);
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/BpmnJs/bpmn-icons/bpmn-icon-collaboration.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/event-handler/onFileRemove.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ i18nt("designer.setting.addEventHandler") }}
4 |
5 |
6 |
7 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/event-handler/onRemoteQuery-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ i18nt("designer.setting.addEventHandler") }}
4 |
5 |
6 |
7 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/form-render/refMixin.js:
--------------------------------------------------------------------------------
1 | export default {
2 | methods: {
3 | initRefList() {
4 | if (this.refList !== null && !!this.widget.options.name) {
5 | this.refList[this.widget.options.name] = this;
6 | }
7 | },
8 |
9 | getWidgetRef(widgetName, showError) {
10 | let foundRef = this.refList[widgetName];
11 | if (!foundRef && !!showError) {
12 | this.$message.error(this.i18nt("render.hint.refNotFound") + widgetName);
13 | }
14 | return foundRef;
15 | },
16 |
17 | getFormRef() {
18 | /* 获取VFrom引用,必须在VForm组件created之后方可调用 */
19 | return this.refList["v_form_ref"];
20 | },
21 |
22 | getComponentByContainer(con) {
23 | if (con.type === "grid") {
24 | //grid-item跟VueGridLayout全局注册组件重名,故特殊处理!!
25 | return "vf-grid-item";
26 | }
27 |
28 | return con.type + "-item";
29 | }
30 | }
31 | };
32 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/event-handler/onBeforeUpload-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ i18nt("designer.setting.addEventHandler") }}
4 |
5 |
6 |
7 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/svg/slot-component.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/event-handler/onValidate-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ i18nt("designer.setting.addEventHandler") }}
4 |
5 |
6 |
7 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/utils/cache.ts:
--------------------------------------------------------------------------------
1 | import { CacheToken } from "@/constants/cacheKey";
2 |
3 | /**
4 | * 取缓存值
5 | * @param {*} key
6 | * @param {*} options
7 | */
8 | export const getCache = (key: string): any => {
9 | const data = localStorage.getItem(key);
10 | if (!data) {
11 | return {};
12 | }
13 | return JSON.parse(data);
14 | };
15 |
16 | /**
17 | * 设置缓存值
18 | * @param {*} key
19 | * @param {*} value
20 | */
21 | export const setCache = (
22 | key: string,
23 | value: string | Record | Array[]
24 | ): void => {
25 | localStorage.setItem(key, typeof value === "object" ? JSON.stringify(value) : value);
26 | };
27 |
28 | /**
29 | * 清除缓存
30 | * @param key
31 | * @param isSessionStorage
32 | */
33 | export const removeCache = (key: string): void => {
34 | localStorage.removeItem(key);
35 | };
36 |
37 | export const getToken = (): string => {
38 | return getCache(CacheToken)["userId"];
39 | };
40 |
--------------------------------------------------------------------------------
/activiti7-java/src/main/java/com/activiti/modules/service/SysDeployService.java:
--------------------------------------------------------------------------------
1 | package com.activiti.modules.service;
2 |
3 | import com.activiti.modules.entity.SysDeployEntity;
4 | import com.activiti.modules.entity.SysDeployNodeEntity;
5 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
6 | import com.baomidou.mybatisplus.extension.service.IService;
7 |
8 | import java.util.Map;
9 |
10 | /**
11 | * 流程部署详情
12 | *
13 | * @author liuguofeng
14 | * @email liuguofeng-java@qq.com
15 | * @date 2023-12-15 11:48:02
16 | */
17 | public interface SysDeployService extends IService {
18 | /**
19 | * 插入数据到绑定数据库表中
20 | *
21 | * @param instanceId 实例id
22 | * @param deployId 部署id
23 | * @param activityId 流程定义节点唯一标识
24 | * @param variables 流程变量
25 | */
26 | void saveData(String instanceId, String deployId, String activityId, Map variables);
27 |
28 | }
29 |
30 |
--------------------------------------------------------------------------------
/activiti7-java/src/main/java/com/activiti/modules/service/impl/SysUserServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.activiti.modules.service.impl;
2 |
3 | import com.activiti.modules.dao.SysUserDao;
4 | import com.activiti.modules.entity.SysUserEntity;
5 | import com.activiti.modules.entity.dto.SysUserListDto;
6 | import com.activiti.modules.service.SysUserService;
7 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
8 | import org.springframework.stereotype.Service;
9 |
10 | import java.util.List;
11 |
12 |
13 | /**
14 | * 系统用户
15 | */
16 | @Service("sysUserService")
17 | public class SysUserServiceImpl extends ServiceImpl implements SysUserService {
18 |
19 | /**
20 | * 系统用户分页列表
21 | *
22 | * @param dto 分页参数
23 | * @return 列表
24 | */
25 | @Override
26 | public List queryPage(SysUserListDto dto) {
27 | return this.baseMapper.queryPage(dto);
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/event-handler/onAppendButtonClick-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ i18nt("designer.setting.addEventHandler") }}
4 |
5 |
6 |
7 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/event-handler/onChange-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ i18nt("designer.setting.addEventHandler") }}
4 |
5 |
6 |
7 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/labelIconPosition-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/svg/textarea-field.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/activiti7-java/src/main/java/com/activiti/modules/service/impl/SysListenerServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.activiti.modules.service.impl;
2 |
3 | import com.activiti.modules.dao.SysListenerDao;
4 | import com.activiti.modules.entity.SysListenerEntity;
5 | import com.activiti.modules.entity.dto.SysListenerListDto;
6 | import com.activiti.modules.service.SysListenerService;
7 | import org.springframework.stereotype.Service;
8 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
9 |
10 | import java.util.List;
11 |
12 |
13 | @Service("sysListenerService")
14 | public class SysListenerServiceImpl extends ServiceImpl implements SysListenerService {
15 |
16 | /**
17 | * 执行监听器分页列表
18 | *
19 | * @param dto 分页参数
20 | * @return 列表
21 | */
22 | @Override
23 | public List queryPage(SysListenerListDto dto) {
24 | return baseMapper.queryPage(dto);
25 | }
26 | }
--------------------------------------------------------------------------------
/activiti7-ui/src/components/BpmnJs/styles/contextmenu.scss:
--------------------------------------------------------------------------------
1 | .bpmn-context-menu {
2 | display: flex;
3 | width: 400px;
4 | max-height: 360px;
5 | overflow: hidden;
6 | flex-direction: column;
7 | .context-menu_header {
8 | line-height: 40px;
9 | font-size: 16px;
10 | font-weight: bold;
11 | border-bottom: 1px solid rgb(239, 239, 245);
12 | }
13 | .context-menu_body {
14 | flex: 1;
15 | display: flex;
16 | flex-direction: column;
17 | overflow-x: hidden;
18 | overflow-y: auto;
19 | }
20 | .context-menu_item {
21 | width: 100%;
22 | height: 32px;
23 | font-size: 14px;
24 | cursor: pointer;
25 | border-radius: 4px;
26 | padding: 0 4px;
27 | display: flex;
28 | align-items: center;
29 | &:hover {
30 | background-color: rgb(241, 242, 244);
31 | }
32 | .context-menu_item_icon {
33 | font-size: 20px;
34 | margin-right: 8px;
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/event-handler/onUploadError-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ i18nt("designer.setting.addEventHandler") }}
4 |
5 |
6 |
7 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/event-handler/onSubFormRowAdd-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ i18nt("designer.setting.addEventHandler") }}
4 |
5 |
6 |
7 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/event-handler/onSubFormRowChange-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ i18nt("designer.setting.addEventHandler") }}
4 |
5 |
6 |
7 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/event-handler/onUploadSuccess-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ i18nt("designer.setting.addEventHandler") }}
4 |
5 |
6 |
7 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/type-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
12 |
13 |
14 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/svg/el/move-up.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/svg/section.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/event-handler/onSubFormRowInsert-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ i18nt("designer.setting.addEventHandler") }}
4 |
5 |
6 |
7 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/activiti7-java/src/main/java/com/activiti/modules/entity/SysDeployEntity.java:
--------------------------------------------------------------------------------
1 | package com.activiti.modules.entity;
2 |
3 | import com.baomidou.mybatisplus.annotation.TableId;
4 | import com.baomidou.mybatisplus.annotation.TableName;
5 |
6 | import java.io.Serializable;
7 | import java.util.Date;
8 |
9 | import lombok.Data;
10 |
11 |
12 | /**
13 | * 流程部署详情
14 | *
15 | * @author liuguofeng
16 | * @email liuguofeng-java@qq.com
17 | * @date 2023-12-15 11:48:02
18 | */
19 | @Data
20 | @TableName("sys_deploy")
21 | public class SysDeployEntity implements Serializable {
22 | private static final long serialVersionUID = 1L;
23 |
24 | /**
25 | * 部署id
26 | */
27 | @TableId
28 | private String deployId;
29 | /**
30 | * 绑定数据库表的名称
31 | */
32 | private String tableName;
33 | /**
34 | * 绑定数据库表的备注
35 | */
36 | private String tableComment;
37 | /**
38 | * 创建时间
39 | */
40 | private Date createTime;
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/event-handler/onSubFormRowDelete-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ i18nt("designer.setting.addEventHandler") }}
4 |
5 |
6 |
7 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/field-date/date-type-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/setting-panel/property-editor/max-editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/svg/html-text.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/svg/number-field.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/BpmnJs/bpmn-icons/bpmn-icon-gateway-eventbased.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/FormDesigner/svg/card.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/activiti7-ui/src/components/BpmnJs/utils/index.ts:
--------------------------------------------------------------------------------
1 | import EmptyXML from "@/components/BpmnJs/utils/EmptyXML";
2 | import { EditorSettings } from "@/components/BpmnJs/types/editor/settings";
3 | import modelerStore from "@/store/modeler";
4 |
5 | export const createNewDiagram = async function (newXml?: string, settings?: EditorSettings) {
6 | try {
7 | const store = modelerStore();
8 | const timestamp = Date.now();
9 | const { processId, processName } = settings || {};
10 | const newId: string = processId ? processId : `Process_${timestamp}`;
11 | const newName: string = processName || `新建流程_${timestamp}`;
12 | const xmlString = newXml || EmptyXML(newId, newName);
13 | const { warnings } = await store.getModeler.importXML(xmlString);
14 | store.getCanvas.zoom("fit-viewport", { x: 0, y: 0 });
15 | console.log("bpmb warnings->", warnings);
16 | } catch (e) {
17 | console.error(`[Process Designer Warn]: ${typeof e === "string" ? e : (e as Error)?.message}`);
18 | }
19 | };
20 |
--------------------------------------------------------------------------------