diff --git a/db/im-admin.sql b/db/im-admin.sql index 3e3562d..f12bf90 100644 --- a/db/im-admin.sql +++ b/db/im-admin.sql @@ -65,13 +65,6 @@ create table sys_tenant ) engine=innodb comment = '租户表'; --- ---------------------------- --- 初始化-租户表数据 --- ---------------------------- - -insert into sys_tenant values(1, '000000', '管理组', '15888888888', 'XXX有限公司', null, null, '多租户通用后台管理管理系统', null, null, null, null, -1, '0', '0', 103, 1, sysdate(), null, null); - - -- ---------------------------- -- 租户套餐表 -- ---------------------------- @@ -121,16 +114,7 @@ create table sys_dept ( -- ---------------------------- -insert into sys_dept values(100, '000000', 0, '0', 'XXX科技', null,0, null, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null); -insert into sys_dept values(101, '000000', 100, '0,100', '深圳总公司', null,1, null, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null); -insert into sys_dept values(102, '000000', 100, '0,100', '长沙分公司', null,2, null, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null); -insert into sys_dept values(103, '000000', 101, '0,100,101', '研发部门', null,1, 1, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null); -insert into sys_dept values(104, '000000', 101, '0,100,101', '市场部门', null,2, null, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null); -insert into sys_dept values(105, '000000', 101, '0,100,101', '测试部门', null,3, null, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null); -insert into sys_dept values(106, '000000', 101, '0,100,101', '财务部门', null,4, null, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null); -insert into sys_dept values(107, '000000', 101, '0,100,101', '运维部门', null,5, null, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null); -insert into sys_dept values(108, '000000', 102, '0,100,102', '市场部门', null,1, null, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null); -insert into sys_dept values(109, '000000', 102, '0,100,102', '财务部门', null,2, null, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null); +insert into sys_dept values(100, '000000', 0, '0', '盒子科技', null,0, null, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null); -- ---------------------------- @@ -164,9 +148,7 @@ create table sys_user ( -- ---------------------------- -- 初始化-用户信息表数据 -- ---------------------------- -insert into sys_user values(1, '000000', 103, 'admin', '疯狂的狮子Li', 'sys_user', 'crazyLionLi@163.com', '15888888888', '1', null, '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', sysdate(), 103, 1, sysdate(), null, null, '管理员'); -insert into sys_user values(3, '000000', 108, 'test', '本部门及以下 密码666666', 'sys_user', '', '', '0', null, '$2a$10$b8yUzN0C71sbz.PhNOCgJe.Tu1yWC3RNrTyjSQ8p1W0.aaUXUJ.Ne', '0', '0', '127.0.0.1', sysdate(), 103, 1, sysdate(), 3, sysdate(), null); -insert into sys_user values(4, '000000', 102, 'test1', '仅本人 密码666666', 'sys_user', '', '', '0', null, '$2a$10$b8yUzN0C71sbz.PhNOCgJe.Tu1yWC3RNrTyjSQ8p1W0.aaUXUJ.Ne', '0', '0', '127.0.0.1', sysdate(), 103, 1, sysdate(), 4, sysdate(), null); +insert into sys_user values(1, '000000', 100, 'admin', 'admin', 'sys_user', 'xxx@163.com', '15888888888', '1', null, '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', sysdate(), 103, 1, sysdate(), null, null, '管理员'); -- ---------------------------- -- 3、岗位信息表 @@ -190,13 +172,6 @@ create table sys_post primary key (post_id) ) engine=innodb comment = '岗位信息表'; --- ---------------------------- --- 初始化-岗位信息表数据 --- ---------------------------- -insert into sys_post values(1, '000000', 103, 'ceo', null, '董事长', 1, '0', 103, 1, sysdate(), null, null, ''); -insert into sys_post values(2, '000000', 100, 'se', null, '项目经理', 2, '0', 103, 1, sysdate(), null, null, ''); -insert into sys_post values(3, '000000', 100, 'hr', null, '人力资源', 3, '0', 103, 1, sysdate(), null, null, ''); -insert into sys_post values(4, '000000', 100, 'user', null, '普通员工', 4, '0', 103, 1, sysdate(), null, null, ''); -- ---------------------------- @@ -226,8 +201,6 @@ create table sys_role ( -- 初始化-角色信息表数据 -- ---------------------------- insert into sys_role values(1, '000000', '超级管理员', 'superadmin', 1, 1, 1, 1, '0', '0', 103, 1, sysdate(), null, null, '超级管理员'); -insert into sys_role values(3, '000000', '本部门及以下', 'test1', 3, 4, 1, 1, '0', '0', 103, 1, sysdate(), null, null, ''); -insert into sys_role values(4, '000000', '仅本人', 'test2', 4, 5, 1, 1, '0', '0', 103, 1, sysdate(), null, null, ''); -- ---------------------------- -- 5、菜单权限表 @@ -261,11 +234,9 @@ create table sys_menu ( -- ---------------------------- -- 一级菜单 insert into sys_menu values('1', '系统管理', '0', '1', 'system', null, '', 1, 0, 'M', '0', '0', '', 'system', 103, 1, sysdate(), null, null, '系统管理目录'); -insert into sys_menu values('6', '租户管理', '0', '2', 'tenant', null, '', 1, 0, 'M', '0', '0', '', 'chart', 103, 1, sysdate(), null, null, '租户管理目录'); insert into sys_menu values('2', '系统监控', '0', '3', 'monitor', null, '', 1, 0, 'M', '0', '0', '', 'monitor', 103, 1, sysdate(), null, null, '系统监控目录'); insert into sys_menu values('3', '系统工具', '0', '4', 'tool', null, '', 1, 0, 'M', '0', '0', '', 'tool', 103, 1, sysdate(), null, null, '系统工具目录'); -insert into sys_menu values('4', 'PLUS官网', '0', '5', 'https://gitee.com/dromara/RuoYi-Vue-Plus', null, '', 0, 0, 'M', '0', '0', '', 'guide', 103, 1, sysdate(), null, null, 'RuoYi-Vue-Plus官网地址'); -insert into sys_menu values('5', '测试菜单', '0', '5', 'demo', null, '', 1, 0, 'M', '0', '0', '', 'star', 103, 1, sysdate(), null, null, '测试菜单'); + -- 二级菜单 insert into sys_menu values('100', '用户管理', '1', '1', 'user', 'system/user/index', '', 1, 0, 'C', '0', '0', 'system:user:list', 'user', 103, 1, sysdate(), null, null, '用户管理菜单'); insert into sys_menu values('101', '角色管理', '1', '2', 'role', 'system/role/index', '', 1, 0, 'C', '0', '0', 'system:role:list', 'peoples', 103, 1, sysdate(), null, null, '角色管理菜单'); @@ -283,12 +254,8 @@ insert into sys_menu values('121', '租户管理', '6', '1', 'tenant', insert into sys_menu values('122', '租户套餐管理', '6', '2', 'tenantPackage', 'system/tenantPackage/index', '', 1, 0, 'C', '0', '0', 'system:tenantPackage:list', 'form', 103, 1, sysdate(), null, null, '租户套餐管理菜单'); insert into sys_menu values('123', '客户端管理', '1', '11', 'client', 'system/client/index', '', 1, 0, 'C', '0', '0', 'system:client:list', 'international', 103, 1, sysdate(), null, null, '客户端管理菜单'); --- springboot-admin监控 -insert into sys_menu values('117', 'Admin监控', '2', '5', 'Admin', 'monitor/admin/index', '', 1, 0, 'C', '0', '0', 'monitor:admin:list', 'dashboard', 103, 1, sysdate(), null, null, 'Admin监控菜单'); -- oss菜单 insert into sys_menu values('118', '文件管理', '1', '10', 'oss', 'system/oss/index', '', 1, 0, 'C', '0', '0', 'system:oss:list', 'upload', 103, 1, sysdate(), null, null, '文件管理菜单'); --- snail-job server控制台 -insert into sys_menu values('120', '任务调度中心', '2', '6', 'snailjob', 'monitor/snailjob/index', '', 1, 0, 'C', '0', '0', 'monitor:snailjob:list', 'job', 103, 1, sysdate(), null, null, 'SnailJob控制台菜单'); -- 三级菜单 insert into sys_menu values('500', '操作日志', '108', '1', 'operlog', 'monitor/operlog/index', '', 1, 0, 'C', '0', '0', 'monitor:operlog:list', 'form', 103, 1, sysdate(), null, null, '操作日志菜单'); @@ -370,37 +337,13 @@ insert into sys_menu values('1621', '配置添加', '118', '6', '#', '', '', 1, insert into sys_menu values('1622', '配置编辑', '118', '6', '#', '', '', 1, 0, 'F', '0', '0', 'system:ossConfig:edit', '#', 103, 1, sysdate(), null, null, ''); insert into sys_menu values('1623', '配置删除', '118', '6', '#', '', '', 1, 0, 'F', '0', '0', 'system:ossConfig:remove', '#', 103, 1, sysdate(), null, null, ''); --- 租户管理相关按钮 -insert into sys_menu values ('1606', '租户查询', '121', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenant:query', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values ('1607', '租户新增', '121', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenant:add', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values ('1608', '租户修改', '121', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenant:edit', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values ('1609', '租户删除', '121', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenant:remove', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values ('1610', '租户导出', '121', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenant:export', '#', 103, 1, sysdate(), null, null, ''); --- 租户套餐管理相关按钮 -insert into sys_menu values ('1611', '租户套餐查询', '122', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenantPackage:query', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values ('1612', '租户套餐新增', '122', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenantPackage:add', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values ('1613', '租户套餐修改', '122', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenantPackage:edit', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values ('1614', '租户套餐删除', '122', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenantPackage:remove', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values ('1615', '租户套餐导出', '122', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenantPackage:export', '#', 103, 1, sysdate(), null, null, ''); -- 客户端管理按钮 insert into sys_menu values('1061', '客户端管理查询', '123', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:query', '#', 103, 1, sysdate(), null, null, ''); insert into sys_menu values('1062', '客户端管理新增', '123', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:add', '#', 103, 1, sysdate(), null, null, ''); insert into sys_menu values('1063', '客户端管理修改', '123', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:edit', '#', 103, 1, sysdate(), null, null, ''); insert into sys_menu values('1064', '客户端管理删除', '123', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:remove', '#', 103, 1, sysdate(), null, null, ''); insert into sys_menu values('1065', '客户端管理导出', '123', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:export', '#', 103, 1, sysdate(), null, null, ''); --- 测试菜单 -insert into sys_menu values('1500', '测试单表', '5', '1', 'demo', 'demo/demo/index', '', 1, 0, 'C', '0', '0', 'demo:demo:list', '#', 103, 1, sysdate(), null, null, '测试单表菜单'); -insert into sys_menu values('1501', '测试单表查询', '1500', '1', '#', '', '', 1, 0, 'F', '0', '0', 'demo:demo:query', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values('1502', '测试单表新增', '1500', '2', '#', '', '', 1, 0, 'F', '0', '0', 'demo:demo:add', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values('1503', '测试单表修改', '1500', '3', '#', '', '', 1, 0, 'F', '0', '0', 'demo:demo:edit', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values('1504', '测试单表删除', '1500', '4', '#', '', '', 1, 0, 'F', '0', '0', 'demo:demo:remove', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values('1505', '测试单表导出', '1500', '5', '#', '', '', 1, 0, 'F', '0', '0', 'demo:demo:export', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values('1506', '测试树表', '5', '1', 'tree', 'demo/tree/index', '', 1, 0, 'C', '0', '0', 'demo:tree:list', '#', 103, 1, sysdate(), null, null, '测试树表菜单'); -insert into sys_menu values('1507', '测试树表查询', '1506', '1', '#', '', '', 1, 0, 'F', '0', '0', 'demo:tree:query', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values('1508', '测试树表新增', '1506', '2', '#', '', '', 1, 0, 'F', '0', '0', 'demo:tree:add', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values('1509', '测试树表修改', '1506', '3', '#', '', '', 1, 0, 'F', '0', '0', 'demo:tree:edit', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values('1510', '测试树表删除', '1506', '4', '#', '', '', 1, 0, 'F', '0', '0', 'demo:tree:remove', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values('1511', '测试树表导出', '1506', '5', '#', '', '', 1, 0, 'F', '0', '0', 'demo:tree:export', '#', 103, 1, sysdate(), null, null, ''); + -- ---------------------------- -- 6、用户和角色关联表 用户N-1角色 @@ -415,8 +358,6 @@ create table sys_user_role ( -- 初始化-用户和角色关联表数据 -- ---------------------------- insert into sys_user_role values ('1', '1'); -insert into sys_user_role values ('3', '3'); -insert into sys_user_role values ('4', '4'); -- ---------------------------- -- 7、角色和菜单关联表 角色1-N菜单 @@ -427,93 +368,6 @@ create table sys_role_menu ( primary key(role_id, menu_id) ) engine=innodb comment = '角色和菜单关联表'; --- ---------------------------- --- 初始化-角色和菜单关联表数据 --- ---------------------------- -insert into sys_role_menu values ('3', '1'); -insert into sys_role_menu values ('3', '5'); -insert into sys_role_menu values ('3', '100'); -insert into sys_role_menu values ('3', '101'); -insert into sys_role_menu values ('3', '102'); -insert into sys_role_menu values ('3', '103'); -insert into sys_role_menu values ('3', '104'); -insert into sys_role_menu values ('3', '105'); -insert into sys_role_menu values ('3', '106'); -insert into sys_role_menu values ('3', '107'); -insert into sys_role_menu values ('3', '108'); -insert into sys_role_menu values ('3', '500'); -insert into sys_role_menu values ('3', '501'); -insert into sys_role_menu values ('3', '1001'); -insert into sys_role_menu values ('3', '1002'); -insert into sys_role_menu values ('3', '1003'); -insert into sys_role_menu values ('3', '1004'); -insert into sys_role_menu values ('3', '1005'); -insert into sys_role_menu values ('3', '1006'); -insert into sys_role_menu values ('3', '1007'); -insert into sys_role_menu values ('3', '1008'); -insert into sys_role_menu values ('3', '1009'); -insert into sys_role_menu values ('3', '1010'); -insert into sys_role_menu values ('3', '1011'); -insert into sys_role_menu values ('3', '1012'); -insert into sys_role_menu values ('3', '1013'); -insert into sys_role_menu values ('3', '1014'); -insert into sys_role_menu values ('3', '1015'); -insert into sys_role_menu values ('3', '1016'); -insert into sys_role_menu values ('3', '1017'); -insert into sys_role_menu values ('3', '1018'); -insert into sys_role_menu values ('3', '1019'); -insert into sys_role_menu values ('3', '1020'); -insert into sys_role_menu values ('3', '1021'); -insert into sys_role_menu values ('3', '1022'); -insert into sys_role_menu values ('3', '1023'); -insert into sys_role_menu values ('3', '1024'); -insert into sys_role_menu values ('3', '1025'); -insert into sys_role_menu values ('3', '1026'); -insert into sys_role_menu values ('3', '1027'); -insert into sys_role_menu values ('3', '1028'); -insert into sys_role_menu values ('3', '1029'); -insert into sys_role_menu values ('3', '1030'); -insert into sys_role_menu values ('3', '1031'); -insert into sys_role_menu values ('3', '1032'); -insert into sys_role_menu values ('3', '1033'); -insert into sys_role_menu values ('3', '1034'); -insert into sys_role_menu values ('3', '1035'); -insert into sys_role_menu values ('3', '1036'); -insert into sys_role_menu values ('3', '1037'); -insert into sys_role_menu values ('3', '1038'); -insert into sys_role_menu values ('3', '1039'); -insert into sys_role_menu values ('3', '1040'); -insert into sys_role_menu values ('3', '1041'); -insert into sys_role_menu values ('3', '1042'); -insert into sys_role_menu values ('3', '1043'); -insert into sys_role_menu values ('3', '1044'); -insert into sys_role_menu values ('3', '1045'); -insert into sys_role_menu values ('3', '1500'); -insert into sys_role_menu values ('3', '1501'); -insert into sys_role_menu values ('3', '1502'); -insert into sys_role_menu values ('3', '1503'); -insert into sys_role_menu values ('3', '1504'); -insert into sys_role_menu values ('3', '1505'); -insert into sys_role_menu values ('3', '1506'); -insert into sys_role_menu values ('3', '1507'); -insert into sys_role_menu values ('3', '1508'); -insert into sys_role_menu values ('3', '1509'); -insert into sys_role_menu values ('3', '1510'); -insert into sys_role_menu values ('3', '1511'); -insert into sys_role_menu values ('4', '5'); -insert into sys_role_menu values ('4', '1500'); -insert into sys_role_menu values ('4', '1501'); -insert into sys_role_menu values ('4', '1502'); -insert into sys_role_menu values ('4', '1503'); -insert into sys_role_menu values ('4', '1504'); -insert into sys_role_menu values ('4', '1505'); -insert into sys_role_menu values ('4', '1506'); -insert into sys_role_menu values ('4', '1507'); -insert into sys_role_menu values ('4', '1508'); -insert into sys_role_menu values ('4', '1509'); -insert into sys_role_menu values ('4', '1510'); -insert into sys_role_menu values ('4', '1511'); - -- ---------------------------- -- 8、角色和部门关联表 角色1-N部门 -- ---------------------------- @@ -724,12 +578,6 @@ create table sys_notice ( primary key (notice_id) ) engine=innodb comment = '通知公告表'; --- ---------------------------- --- 初始化-公告信息表数据 --- ---------------------------- -insert into sys_notice values('1', '000000', '温馨提醒:2018-07-01 新版本发布啦', '2', '新版本内容', '0', 103, 1, sysdate(), null, null, '管理员'); -insert into sys_notice values('2', '000000', '维护通知:2018-07-01 系统凌晨维护', '1', '维护内容', '0', 103, 1, sysdate(), null, null, '管理员'); - -- ---------------------------- -- 18、代码生成业务表 @@ -838,10 +686,6 @@ create table sys_oss_config ( ) engine=innodb comment='对象存储配置表'; insert into sys_oss_config values (1, '000000', 'minio', 'ruoyi', 'ruoyi123', 'ruoyi', '', '127.0.0.1:9000', '','N', '', '1' ,'0', '', 103, 1, sysdate(), 1, sysdate(), null); -insert into sys_oss_config values (2, '000000', 'qiniu', 'XXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXX', 'ruoyi', '', 's3-cn-north-1.qiniucs.com', '','N', '', '1' ,'1', '', 103, 1, sysdate(), 1, sysdate(), null); -insert into sys_oss_config values (3, '000000', 'aliyun', 'XXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXX', 'ruoyi', '', 'oss-cn-beijing.aliyuncs.com', '','N', '', '1' ,'1', '', 103, 1, sysdate(), 1, sysdate(), null); -insert into sys_oss_config values (4, '000000', 'qcloud', 'XXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXX', 'ruoyi-1250000000', '', 'cos.ap-beijing.myqcloud.com', '','N', 'ap-beijing', '1' ,'1', '', 103, 1, sysdate(), 1, sysdate(), null); -insert into sys_oss_config values (5, '000000', 'image', 'ruoyi', 'ruoyi123', 'ruoyi', 'image', '127.0.0.1:9000', '','N', '', '1' ,'1', '', 103, 1, sysdate(), 1, sysdate(), null); -- ---------------------------- -- 系统授权表 @@ -869,67 +713,4 @@ insert into sys_client values (1, 'e5cd7e4891bf95d1d19206ce24a7b32e', 'pc', 'pc1 insert into sys_client values (2, '428a8310cd442757ae699df5d894f051', 'app', 'app123', 'password,sms,social', 'android', 1800, 604800, 0, 0, 103, 1, sysdate(), 1, sysdate()); -CREATE TABLE test_demo -( - id bigint(0) NOT NULL COMMENT '主键', - tenant_id varchar(20) NULL DEFAULT '000000' COMMENT '租户编号', - dept_id bigint(0) NULL DEFAULT NULL COMMENT '部门id', - user_id bigint(0) NULL DEFAULT NULL COMMENT '用户id', - order_num int(0) NULL DEFAULT 0 COMMENT '排序号', - test_key varchar(255) NULL DEFAULT NULL COMMENT 'key键', - value varchar(255) NULL DEFAULT NULL COMMENT '值', - version int(0) NULL DEFAULT 0 COMMENT '版本', - create_dept bigint(0) NULL DEFAULT NULL COMMENT '创建部门', - create_time datetime(0) NULL DEFAULT NULL COMMENT '创建时间', - create_by bigint(0) NULL DEFAULT NULL COMMENT '创建人', - update_time datetime(0) NULL DEFAULT NULL COMMENT '更新时间', - update_by bigint(0) NULL DEFAULT NULL COMMENT '更新人', - del_flag int(0) NULL DEFAULT 0 COMMENT '删除标志', - PRIMARY KEY (id) USING BTREE -) ENGINE = InnoDB COMMENT = '测试单表'; - -CREATE TABLE test_tree -( - id bigint(0) NOT NULL COMMENT '主键', - tenant_id varchar(20) NULL DEFAULT '000000' COMMENT '租户编号', - parent_id bigint(0) NULL DEFAULT 0 COMMENT '父id', - dept_id bigint(0) NULL DEFAULT NULL COMMENT '部门id', - user_id bigint(0) NULL DEFAULT NULL COMMENT '用户id', - tree_name varchar(255) NULL DEFAULT NULL COMMENT '值', - version int(0) NULL DEFAULT 0 COMMENT '版本', - create_dept bigint(0) NULL DEFAULT NULL COMMENT '创建部门', - create_time datetime(0) NULL DEFAULT NULL COMMENT '创建时间', - create_by bigint(0) NULL DEFAULT NULL COMMENT '创建人', - update_time datetime(0) NULL DEFAULT NULL COMMENT '更新时间', - update_by bigint(0) NULL DEFAULT NULL COMMENT '更新人', - del_flag int(0) NULL DEFAULT 0 COMMENT '删除标志', - PRIMARY KEY (id) USING BTREE -) ENGINE = InnoDB COMMENT = '测试树表'; - -INSERT INTO test_demo VALUES (1, '000000', 102, 4, 1, '测试数据权限', '测试', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_demo VALUES (2, '000000', 102, 3, 2, '子节点1', '111', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_demo VALUES (3, '000000', 102, 3, 3, '子节点2', '222', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_demo VALUES (4, '000000', 108, 4, 4, '测试数据', 'demo', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_demo VALUES (5, '000000', 108, 3, 13, '子节点11', '1111', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_demo VALUES (6, '000000', 108, 3, 12, '子节点22', '2222', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_demo VALUES (7, '000000', 108, 3, 11, '子节点33', '3333', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_demo VALUES (8, '000000', 108, 3, 10, '子节点44', '4444', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_demo VALUES (9, '000000', 108, 3, 9, '子节点55', '5555', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_demo VALUES (10, '000000', 108, 3, 8, '子节点66', '6666', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_demo VALUES (11, '000000', 108, 3, 7, '子节点77', '7777', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_demo VALUES (12, '000000', 108, 3, 6, '子节点88', '8888', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_demo VALUES (13, '000000', 108, 3, 5, '子节点99', '9999', 0, 103, sysdate(), 1, NULL, NULL, 0); - -INSERT INTO test_tree VALUES (1, '000000', 0, 102, 4, '测试数据权限', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_tree VALUES (2, '000000', 1, 102, 3, '子节点1', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_tree VALUES (3, '000000', 2, 102, 3, '子节点2', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_tree VALUES (4, '000000', 0, 108, 4, '测试树1', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_tree VALUES (5, '000000', 4, 108, 3, '子节点11', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_tree VALUES (6, '000000', 4, 108, 3, '子节点22', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_tree VALUES (7, '000000', 4, 108, 3, '子节点33', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_tree VALUES (8, '000000', 5, 108, 3, '子节点44', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_tree VALUES (9, '000000', 6, 108, 3, '子节点55', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_tree VALUES (10, '000000', 7, 108, 3, '子节点66', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_tree VALUES (11, '000000', 7, 108, 3, '子节点77', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_tree VALUES (12, '000000', 10, 108, 3, '子节点88', 0, 103, sysdate(), 1, NULL, NULL, 0); -INSERT INTO test_tree VALUES (13, '000000', 10, 108, 3, '子节点99', 0, 103, sysdate(), 1, NULL, NULL, 0); + diff --git a/im-admin-ui/.env.development b/im-admin-ui/.env.development index 14e1335..e91c30a 100644 --- a/im-admin-ui/.env.development +++ b/im-admin-ui/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = RuoYi-Vue-Plus多租户管理系统 +VITE_APP_TITLE = 盒子IM后台管理系统 # 开发环境配置 VITE_APP_ENV = 'development' @@ -10,20 +10,8 @@ VITE_APP_BASE_API = '/dev-api' # 应用访问路径 例如使用前缀 /admin/ VITE_APP_CONTEXT_PATH = '/' -# 监控地址 -VITE_APP_MONITOR_ADMIN = 'http://localhost:9090/admin/applications' - -# SnailJob 控制台地址 -VITE_APP_SNAILJOB_ADMIN = 'http://localhost:8800/snail-job' - VITE_APP_PORT = 80 -# 接口加密功能开关(如需关闭 后端也必须对应关闭) -VITE_APP_ENCRYPT = true -# 接口加密传输 RSA 公钥与后端解密私钥对应 如更换需前后端一同更换 -VITE_APP_RSA_PUBLIC_KEY = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==' -# 接口响应解密 RSA 私钥与后端加密公钥对应 如更换需前后端一同更换 -VITE_APP_RSA_PRIVATE_KEY = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAmc3CuPiGL/LcIIm7zryCEIbl1SPzBkr75E2VMtxegyZ1lYRD+7TZGAPkvIsBcaMs6Nsy0L78n2qh+lIZMpLH8wIDAQABAkEAk82Mhz0tlv6IVCyIcw/s3f0E+WLmtPFyR9/WtV3Y5aaejUkU60JpX4m5xNR2VaqOLTZAYjW8Wy0aXr3zYIhhQQIhAMfqR9oFdYw1J9SsNc+CrhugAvKTi0+BF6VoL6psWhvbAiEAxPPNTmrkmrXwdm/pQQu3UOQmc2vCZ5tiKpW10CgJi8kCIFGkL6utxw93Ncj4exE/gPLvKcT+1Emnoox+O9kRXss5AiAMtYLJDaLEzPrAWcZeeSgSIzbL+ecokmFKSDDcRske6QIgSMkHedwND1olF8vlKsJUGK3BcdtM8w4Xq7BpSBwsloE=' # 客户端id VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e' diff --git a/im-admin-ui/bin/build.bat b/im-admin-ui/bin/build.bat deleted file mode 100644 index ecbb454..0000000 --- a/im-admin-ui/bin/build.bat +++ /dev/null @@ -1,12 +0,0 @@ -@echo off -echo. -echo [Ϣ] Weḅdistļ -echo. - -%~d0 -cd %~dp0 - -cd .. -yarn build:prod - -pause \ No newline at end of file diff --git a/im-admin-ui/bin/package.bat b/im-admin-ui/bin/package.bat deleted file mode 100644 index f5b24e0..0000000 --- a/im-admin-ui/bin/package.bat +++ /dev/null @@ -1,12 +0,0 @@ -@echo off -echo. -echo [Ϣ] װWeḅnode_modulesļ -echo. - -%~d0 -cd %~dp0 - -cd .. -yarn --registry=https://registry.npmmirror.com - -pause \ No newline at end of file diff --git a/im-admin-ui/bin/run-web.bat b/im-admin-ui/bin/run-web.bat deleted file mode 100644 index d2fe397..0000000 --- a/im-admin-ui/bin/run-web.bat +++ /dev/null @@ -1,12 +0,0 @@ -@echo off -echo. -echo [Ϣ] ʹ Vite Web ̡ -echo. - -%~d0 -cd %~dp0 - -cd .. -yarn dev - -pause \ No newline at end of file diff --git a/im-admin-ui/package.json b/im-admin-ui/package.json index e67d60f..4f8fd8e 100644 --- a/im-admin-ui/package.json +++ b/im-admin-ui/package.json @@ -1,8 +1,8 @@ { - "name": "ruoyi-vue-plus", - "version": "5.2.3", - "description": "RuoYi-Vue-Plus多租户管理系统", - "author": "LionLi", + "name": "盒子IM", + "version": "3.0", + "description": "盒子IM后台管理系统", + "author": "Blue", "license": "MIT", "type": "module", "scripts": { @@ -13,10 +13,6 @@ "lint:eslint": "eslint --fix --ext .ts,.js,.vue ./src ", "prettier": "prettier --write ." }, - "repository": { - "type": "git", - "url": "https://gitee.com/JavaLionLi/plus-ui.git" - }, "dependencies": { "@element-plus/icons-vue": "2.3.1", "@highlightjs/vue-plugin": "2.1.0", diff --git a/im-admin-ui/public/favicon.ico b/im-admin-ui/public/favicon.ico index 3f919d8..36c8c23 100644 Binary files a/im-admin-ui/public/favicon.ico and b/im-admin-ui/public/favicon.ico differ diff --git a/im-admin-ui/src/api/demo/demo/index.ts b/im-admin-ui/src/api/demo/demo/index.ts deleted file mode 100644 index 7441720..0000000 --- a/im-admin-ui/src/api/demo/demo/index.ts +++ /dev/null @@ -1,62 +0,0 @@ -import request from '@/utils/request'; -import { AxiosPromise } from 'axios'; -import { DemoVO, DemoForm, DemoQuery } from '@/api/demo/demo/types'; - -/** - * 查询测试单列表 - * @param query - * @returns {*} - */ -export const listDemo = (query?: DemoQuery): AxiosPromise => { - return request({ - url: '/demo/demo/list', - method: 'get', - params: query - }); -}; - -/** - * 查询测试单详细 - * @param id - */ -export const getDemo = (id: string | number): AxiosPromise => { - return request({ - url: '/demo/demo/' + id, - method: 'get' - }); -}; - -/** - * 新增测试单 - * @param data - */ -export const addDemo = (data: DemoForm) => { - return request({ - url: '/demo/demo', - method: 'post', - data: data - }); -}; - -/** - * 修改测试单 - * @param data - */ -export const updateDemo = (data: DemoForm) => { - return request({ - url: '/demo/demo', - method: 'put', - data: data - }); -}; - -/** - * 删除测试单 - * @param id - */ -export const delDemo = (id: string | number | Array) => { - return request({ - url: '/demo/demo/' + id, - method: 'delete' - }); -}; diff --git a/im-admin-ui/src/api/demo/demo/types.ts b/im-admin-ui/src/api/demo/demo/types.ts deleted file mode 100644 index ea51d32..0000000 --- a/im-admin-ui/src/api/demo/demo/types.ts +++ /dev/null @@ -1,90 +0,0 @@ -export interface DemoVO { - /** - * 主键 - */ - id: string | number; - - /** - * 部门id - */ - deptId: string | number; - - /** - * 用户id - */ - userId: string | number; - - /** - * 排序号 - */ - orderNum: number; - - /** - * key键 - */ - testKey: string; - - /** - * 值 - */ - value: string; -} - -export interface DemoForm extends BaseEntity { - /** - * 主键 - */ - id?: string | number; - - /** - * 部门id - */ - deptId?: string | number; - - /** - * 用户id - */ - userId?: string | number; - - /** - * 排序号 - */ - orderNum?: number; - - /** - * key键 - */ - testKey?: string; - - /** - * 值 - */ - value?: string; -} - -export interface DemoQuery extends PageQuery { - /** - * 部门id - */ - deptId?: string | number; - - /** - * 用户id - */ - userId?: string | number; - - /** - * 排序号 - */ - orderNum?: number; - - /** - * key键 - */ - testKey?: string; - - /** - * 值 - */ - value?: string; -} diff --git a/im-admin-ui/src/api/demo/tree/index.ts b/im-admin-ui/src/api/demo/tree/index.ts deleted file mode 100644 index 562deb6..0000000 --- a/im-admin-ui/src/api/demo/tree/index.ts +++ /dev/null @@ -1,62 +0,0 @@ -import request from '@/utils/request'; -import { AxiosPromise } from 'axios'; -import { TreeVO, TreeForm, TreeQuery } from '@/api/demo/tree/types'; - -/** - * 查询测试树列表 - * @param query - * @returns {*} - */ -export const listTree = (query?: TreeQuery): AxiosPromise => { - return request({ - url: '/demo/tree/list', - method: 'get', - params: query - }); -}; - -/** - * 查询测试树详细 - * @param id - */ -export const getTree = (id: string | number): AxiosPromise => { - return request({ - url: '/demo/tree/' + id, - method: 'get' - }); -}; - -/** - * 新增测试树 - * @param data - */ -export const addTree = (data: TreeForm) => { - return request({ - url: '/demo/tree', - method: 'post', - data: data - }); -}; - -/** - * 修改测试树 - * @param data - */ -export const updateTree = (data: TreeForm) => { - return request({ - url: '/demo/tree', - method: 'put', - data: data - }); -}; - -/** - * 删除测试树 - * @param id - */ -export const delTree = (id: string | number | Array) => { - return request({ - url: '/demo/tree/' + id, - method: 'delete' - }); -}; diff --git a/im-admin-ui/src/api/demo/tree/types.ts b/im-admin-ui/src/api/demo/tree/types.ts deleted file mode 100644 index e164d8b..0000000 --- a/im-admin-ui/src/api/demo/tree/types.ts +++ /dev/null @@ -1,80 +0,0 @@ -export interface TreeVO { - /** - * 主键 - */ - id: string | number; - - /** - * 父id - */ - parentId: string | number; - - /** - * 部门id - */ - deptId: string | number; - - /** - * 用户id - */ - userId: string | number; - - /** - * 值 - */ - treeName: string; - - /** - * 子对象 - */ - children: TreeVO[]; -} - -export interface TreeForm extends BaseEntity { - /** - * 主键 - */ - id?: string | number; - - /** - * 父id - */ - parentId?: string | number; - - /** - * 部门id - */ - deptId?: string | number; - - /** - * 用户id - */ - userId?: string | number; - - /** - * 值 - */ - treeName?: string; -} - -export interface TreeQuery { - /** - * 父id - */ - parentId?: string | number; - - /** - * 部门id - */ - deptId?: string | number; - - /** - * 用户id - */ - userId?: string | number; - - /** - * 值 - */ - treeName?: string; -} diff --git a/im-admin-ui/src/api/workflow/category/index.ts b/im-admin-ui/src/api/workflow/category/index.ts deleted file mode 100644 index e9723b0..0000000 --- a/im-admin-ui/src/api/workflow/category/index.ts +++ /dev/null @@ -1,63 +0,0 @@ -import request from '@/utils/request'; -import { AxiosPromise } from 'axios'; -import { CategoryVO, CategoryForm, CategoryQuery } from '@/api/workflow/category/types'; - -/** - * 查询流程分类列表 - * @param query - * @returns {*} - */ - -export const listCategory = (query?: CategoryQuery): AxiosPromise => { - return request({ - url: '/workflow/category/list', - method: 'get', - params: query - }); -}; - -/** - * 查询流程分类详细 - * @param id - */ -export const getCategory = (id: string | number): AxiosPromise => { - return request({ - url: '/workflow/category/' + id, - method: 'get' - }); -}; - -/** - * 新增流程分类 - * @param data - */ -export const addCategory = (data: CategoryForm) => { - return request({ - url: '/workflow/category', - method: 'post', - data: data - }); -}; - -/** - * 修改流程分类 - * @param data - */ -export const updateCategory = (data: CategoryForm) => { - return request({ - url: '/workflow/category', - method: 'put', - data: data - }); -}; - -/** - * 删除流程分类 - * @param id - */ -export const delCategory = (id: string | number | Array) => { - return request({ - url: '/workflow/category/' + id, - method: 'delete' - }); -}; diff --git a/im-admin-ui/src/api/workflow/category/types.ts b/im-admin-ui/src/api/workflow/category/types.ts deleted file mode 100644 index 414fa55..0000000 --- a/im-admin-ui/src/api/workflow/category/types.ts +++ /dev/null @@ -1,67 +0,0 @@ -export interface CategoryVO { - /** - * 主键 - */ - id: string; - - /** - * 分类名称 - */ - categoryName: string; - - /** - * 分类编码 - */ - categoryCode: string; - - /** - * 父级id - */ - parentId: string | number; - - /** - * 排序 - */ - sortNum: number; - - children?: CategoryVO[]; -} - -export interface CategoryForm extends BaseEntity { - /** - * 主键 - */ - id?: string | number; - - /** - * 分类名称 - */ - categoryName?: string; - - /** - * 分类编码 - */ - categoryCode?: string; - - /** - * 父级id - */ - parentId?: string | number; - - /** - * 排序 - */ - sortNum?: number; -} - -export interface CategoryQuery extends PageQuery { - /** - * 分类名称 - */ - categoryName?: string; - - /** - * 分类编码 - */ - categoryCode?: string; -} diff --git a/im-admin-ui/src/api/workflow/definitionConfig/index.ts b/im-admin-ui/src/api/workflow/definitionConfig/index.ts deleted file mode 100644 index d34bf05..0000000 --- a/im-admin-ui/src/api/workflow/definitionConfig/index.ts +++ /dev/null @@ -1,49 +0,0 @@ -import request from '@/utils/request'; -import { AxiosPromise } from 'axios'; -import { DefinitionConfigVO, DefinitionConfigForm } from '@/api/workflow/definitionConfig/types'; - -/** - * 查询表单配置详细 - * @param definitionId - */ -export const getByDefId = (definitionId: string | number): AxiosPromise => { - return request({ - url: '/workflow/definitionConfig/getByDefId/' + definitionId, - method: 'get' - }); -}; - -/** - * 新增表单配置 - * @param data - */ -export const saveOrUpdate = (data: DefinitionConfigForm) => { - return request({ - url: '/workflow/definitionConfig/saveOrUpdate', - method: 'post', - data: data - }); -}; - -/** - * 删除表单配置 - * @param id - */ -export const deldefinitionConfig = (id: string | number | Array) => { - return request({ - url: '/workflow/definitionConfig/' + id, - method: 'delete' - }); -}; - -/** - * 查询流程定义配置排除当前查询的流程定义 - * @param tableName - * @param definitionId - */ -export const getByTableNameNotDefId = (tableName: string, definitionId: string | number) => { - return request({ - url: `/workflow/definitionConfig/getByTableNameNotDefId/${tableName}/${definitionId}`, - method: 'get' - }); -}; diff --git a/im-admin-ui/src/api/workflow/definitionConfig/types.ts b/im-admin-ui/src/api/workflow/definitionConfig/types.ts deleted file mode 100644 index 7627403..0000000 --- a/im-admin-ui/src/api/workflow/definitionConfig/types.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { FormManageVO } from '@/api/workflow/formManage/types'; - -export interface DefinitionConfigVO { - /** - * 主键 - */ - id: string | number; - - /** - * 表名 - */ - tableName?: string; - - /** - * 流程定义ID - */ - definitionId: string | number; - - /** - * 流程KEY - */ - processKey: string; - - /** - * 流程版本 - */ - version?: string | number; - - /** - * 备注 - */ - remark: string; - - /** - * 表单管理 - */ - wfFormManageVo: FormManageVO; -} - -export interface DefinitionConfigForm extends BaseEntity { - /** - * 主键 - */ - id?: string | number; - - /** - * 表名 - */ - tableName?: string; - - /** - * 流程定义ID - */ - definitionId?: string | number; - - /** - * 流程KEY - */ - processKey?: string; - - /** - * 流程版本 - */ - version?: string | number; - - /** - * 备注 - */ - remark?: string; - - /** - * 表单管理 - */ - wfFormManageVo?: FormManageVO; -} - -export interface DefinitionConfigQuery extends PageQuery { - /** - * 表名 - */ - tableName?: string; - - /** - * 流程定义ID - */ - definitionId?: string | number; - - /** - * 流程KEY - */ - processKey?: string; - - /** - * 流程版本 - */ - version?: string | number; - - /** - * 表单管理 - */ - wfFormManageVo: FormManageVO; -} diff --git a/im-admin-ui/src/api/workflow/formManage/index.ts b/im-admin-ui/src/api/workflow/formManage/index.ts deleted file mode 100644 index 6c5ec60..0000000 --- a/im-admin-ui/src/api/workflow/formManage/index.ts +++ /dev/null @@ -1,76 +0,0 @@ -import request from '@/utils/request'; -import { AxiosPromise } from 'axios'; -import { FormManageVO, FormManageForm, FormManageQuery } from '@/api/workflow/formManage/types'; - -/** - * 查询表单管理列表 - * @param query - * @returns {*} - */ - -export const listFormManage = (query?: FormManageQuery): AxiosPromise => { - return request({ - url: '/workflow/formManage/list', - method: 'get', - params: query - }); -}; - -/** - * 查询表单管理列表 - * @param query - * @returns {*} - */ - -export const selectListFormManage = (): AxiosPromise => { - return request({ - url: '/workflow/formManage/list/selectList', - method: 'get' - }); -}; - -/** - * 查询表单管理详细 - * @param id - */ -export const getFormManage = (id: string | number): AxiosPromise => { - return request({ - url: '/workflow/formManage/' + id, - method: 'get' - }); -}; - -/** - * 新增表单管理 - * @param data - */ -export const addFormManage = (data: FormManageForm) => { - return request({ - url: '/workflow/formManage', - method: 'post', - data: data - }); -}; - -/** - * 修改表单管理 - * @param data - */ -export const updateFormManage = (data: FormManageForm) => { - return request({ - url: '/workflow/formManage', - method: 'put', - data: data - }); -}; - -/** - * 删除表单管理 - * @param id - */ -export const delFormManage = (id: string | number | Array) => { - return request({ - url: '/workflow/formManage/' + id, - method: 'delete' - }); -}; diff --git a/im-admin-ui/src/api/workflow/formManage/types.ts b/im-admin-ui/src/api/workflow/formManage/types.ts deleted file mode 100644 index b9dc1d8..0000000 --- a/im-admin-ui/src/api/workflow/formManage/types.ts +++ /dev/null @@ -1,69 +0,0 @@ -export interface FormManageVO { - /** - * 主键 - */ - id: string | number; - - /** - * 表单名称 - */ - formName: string; - - /** - * 表单类型 - */ - formType: string; - /** - * 表单类型名称 - */ - formTypeName: string; - - /** - * 路由地址/表单ID - */ - router: string; - - /** - * 备注 - */ - remark: string; -} - -export interface FormManageForm extends BaseEntity { - /** - * 主键 - */ - id?: string | number; - - /** - * 表单名称 - */ - formName?: string; - - /** - * 表单类型 - */ - formType?: string; - - /** - * 路由地址/表单ID - */ - router?: string; - - /** - * 备注 - */ - remark?: string; -} - -export interface FormManageQuery extends PageQuery { - /** - * 表单名称 - */ - formName?: string; - - /** - * 表单类型 - */ - formType?: string; -} diff --git a/im-admin-ui/src/api/workflow/leave/index.ts b/im-admin-ui/src/api/workflow/leave/index.ts deleted file mode 100644 index 4e6f363..0000000 --- a/im-admin-ui/src/api/workflow/leave/index.ts +++ /dev/null @@ -1,63 +0,0 @@ -import request from '@/utils/request'; -import { AxiosPromise } from 'axios'; -import { LeaveVO, LeaveQuery, LeaveForm } from '@/api/workflow/leave/types'; - -/** - * 查询请假列表 - * @param query - * @returns {*} - */ - -export const listLeave = (query?: LeaveQuery): AxiosPromise => { - return request({ - url: '/workflow/leave/list', - method: 'get', - params: query - }); -}; - -/** - * 查询请假详细 - * @param id - */ -export const getLeave = (id: string | number): AxiosPromise => { - return request({ - url: '/workflow/leave/' + id, - method: 'get' - }); -}; - -/** - * 新增请假 - * @param data - */ -export const addLeave = (data: LeaveForm): AxiosPromise => { - return request({ - url: '/workflow/leave', - method: 'post', - data: data - }); -}; - -/** - * 修改请假 - * @param data - */ -export const updateLeave = (data: LeaveForm): AxiosPromise => { - return request({ - url: '/workflow/leave', - method: 'put', - data: data - }); -}; - -/** - * 删除请假 - * @param id - */ -export const delLeave = (id: string | number | Array) => { - return request({ - url: '/workflow/leave/' + id, - method: 'delete' - }); -}; diff --git a/im-admin-ui/src/api/workflow/leave/types.ts b/im-admin-ui/src/api/workflow/leave/types.ts deleted file mode 100644 index a44d35d..0000000 --- a/im-admin-ui/src/api/workflow/leave/types.ts +++ /dev/null @@ -1,24 +0,0 @@ -export interface LeaveVO { - id: string | number; - leaveType: string; - startDate: string; - endDate: string; - leaveDays: number; - remark: string; - status?: string; -} - -export interface LeaveForm extends BaseEntity { - id?: string | number; - leaveType?: string; - startDate?: string; - endDate?: string; - leaveDays?: number; - remark?: string; - status?: string; -} - -export interface LeaveQuery extends PageQuery { - startLeaveDays?: number; - endLeaveDays?: number; -} diff --git a/im-admin-ui/src/api/workflow/model/index.ts b/im-admin-ui/src/api/workflow/model/index.ts deleted file mode 100644 index 1ca8b19..0000000 --- a/im-admin-ui/src/api/workflow/model/index.ts +++ /dev/null @@ -1,104 +0,0 @@ -import request from '@/utils/request'; -import { AxiosPromise } from 'axios'; -import { ModelForm, ModelQuery, ModelVO } from '@/api/workflow/model/types'; - -/** - * 查询模型列表 - * @param query - * @returns {*} - */ -export const listModel = (query: ModelQuery): AxiosPromise => { - return request({ - url: '/workflow/model/list', - method: 'get', - params: query - }); -}; - -/** - * 查询模型信息 - * @param query - * @returns {*} - */ -export const getInfo = (id: string): AxiosPromise => { - return request({ - url: '/workflow/model/getInfo/' + id, - method: 'get' - }); -}; - -/** - * 新增模型 - * @param data - * @returns {*} - */ -export const addModel = (data: ModelForm): AxiosPromise => { - return request({ - url: '/workflow/model/save', - method: 'post', - data: data - }); -}; - -/** - * 修改模型信息 - * @param data - * @returns {*} - */ -export function update(data: ModelForm): AxiosPromise { - return request({ - url: '/workflow/model/update', - method: 'put', - data: data - }); -} - -/** - * 修改模型信息 - * @param data - * @returns {*} - */ -export function editModelXml(data: ModelForm): AxiosPromise { - return request({ - url: '/workflow/model/editModelXml', - method: 'put', - data: data - }); -} - -/** - * 按id删除模型 - * @returns {*} - * @param id 模型id - */ -export function delModel(id: string | string[]): AxiosPromise { - return request({ - url: '/workflow/model/' + id, - method: 'delete' - }); -} - -/** - * 模型部署 - * @returns {*} - * @param id 模型id - */ -export const modelDeploy = (id: string): AxiosPromise => { - return request({ - url: `/workflow/model/modelDeploy/${id}`, - method: 'post' - }); -}; - -/** - * 复制模型 - * @param data - * @returns {*} - */ -export const copyModel = (data: ModelForm): AxiosPromise => { - return request({ - url: '/workflow/model/copyModel', - method: 'post', - data: data - }); -}; diff --git a/im-admin-ui/src/api/workflow/model/types.ts b/im-admin-ui/src/api/workflow/model/types.ts deleted file mode 100644 index 77f947d..0000000 --- a/im-admin-ui/src/api/workflow/model/types.ts +++ /dev/null @@ -1,66 +0,0 @@ -export interface ModelForm { - id: string; - name: string; - key: string; - categoryCode: string; - xml: string; - svg: string; - description: string; -} - -export interface ModelQuery extends PageQuery { - name?: string; - key?: string; - categoryCode?: string; -} - -export interface OriginalPersistentState { - metaInfo: string; - editorSourceValueId: string; - createTime: string; - deploymentId?: string; - name: string; - tenantId: string; - category?: string; - version: number; - editorSourceExtraValueId?: string; - key: string; - lastUpdateTime: string; -} - -export interface PersistentState { - metaInfo: string; - editorSourceValueId: string; - createTime: string; - deploymentId?: string; - name: string; - tenantId: string; - category?: string; - version: number; - editorSourceExtraValueId?: string; - key: string; - lastUpdateTime: string; -} - -export interface ModelVO { - id: string; - revision: number; - originalPersistentState: OriginalPersistentState; - name: string; - key: string; - category?: string; - createTime: string; - lastUpdateTime: string; - version: number; - metaInfo: string; - deploymentId?: string; - editorSourceValueId: string; - editorSourceExtraValueId?: string; - tenantId: string; - persistentState: PersistentState; - revisionNext: number; - idPrefix: string; - inserted: boolean; - updated: boolean; - deleted: boolean; -} diff --git a/im-admin-ui/src/api/workflow/nodeConfig/types.ts b/im-admin-ui/src/api/workflow/nodeConfig/types.ts deleted file mode 100644 index a55fc91..0000000 --- a/im-admin-ui/src/api/workflow/nodeConfig/types.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { FormManageVO } from '@/api/workflow/formManage/types'; - -export interface NodeConfigVO { - /** - * 主键 - */ - id: string | number; - - /** - * 表单id - */ - formId: string | number; - - /** - * 表单类型 - */ - formType: string; - - /** - * 节点名称 - */ - nodeName: string; - - /** - * 节点id - */ - nodeId: string | number; - - /** - * 流程定义id - */ - definitionId: string | number; - - /** - * 表单管理 - */ - wfFormManageVo: FormManageVO; -} diff --git a/im-admin-ui/src/api/workflow/processDefinition/index.ts b/im-admin-ui/src/api/workflow/processDefinition/index.ts deleted file mode 100644 index c063120..0000000 --- a/im-admin-ui/src/api/workflow/processDefinition/index.ts +++ /dev/null @@ -1,114 +0,0 @@ -import request from '@/utils/request'; -import { ProcessDefinitionQuery, ProcessDefinitionVO, definitionXmlVO } from '@/api/workflow/processDefinition/types'; -import { AxiosPromise } from 'axios'; - -/** - * 获取流程定义列表 - * @param query 流程实例id - * @returns - */ -export const listProcessDefinition = (query: ProcessDefinitionQuery): AxiosPromise => { - return request({ - url: `/workflow/processDefinition/list`, - method: 'get', - params: query - }); -}; -/** - * 按照流程定义key获取流程定义 - * @param processInstanceId 流程实例id - * @returns - */ -export const getListByKey = (key: string) => { - return request({ - url: `/workflow/processDefinition/getListByKey/${key}`, - method: 'get' - }); -}; - -/** - * 通过流程定义id获取流程图 - */ -export const definitionImage = (processDefinitionId: string): AxiosPromise => { - return request({ - url: `/workflow/processDefinition/definitionImage/${processDefinitionId}` + '?t' + Math.random(), - method: 'get' - }); -}; - -/** - * 通过流程定义id获取xml - * @param processDefinitionId 流程定义id - * @returns - */ -export const definitionXml = (processDefinitionId: string): AxiosPromise => { - return request({ - url: `/workflow/processDefinition/definitionXml/${processDefinitionId}`, - method: 'get' - }); -}; - -/** - * 删除流程定义 - * @param deploymentId 部署id - * @param processDefinitionId 流程定义id - * @returns - */ -export const deleteProcessDefinition = (deploymentId: string | string[], processDefinitionId: string | string[]) => { - return request({ - url: `/workflow/processDefinition/${deploymentId}/${processDefinitionId}`, - method: 'delete' - }); -}; - -/** - * 挂起/激活 - * @param processDefinitionId 流程定义id - * @returns - */ -export const updateDefinitionState = (processDefinitionId: string) => { - return request({ - url: `/workflow/processDefinition/updateDefinitionState/${processDefinitionId}`, - method: 'put' - }); -}; - -/** - * 流程定义转换为模型 - * @param processDefinitionId 流程定义id - * @returns - */ -export const convertToModel = (processDefinitionId: string) => { - return request({ - url: `/workflow/processDefinition/convertToModel/${processDefinitionId}`, - method: 'put' - }); -}; - -/** - * 通过zip或xml部署流程定义 - * @returns - */ -export function deployProcessFile(data: any) { - return request({ - url: '/workflow/processDefinition/deployByFile', - method: 'post', - data: data, - headers: { - repeatSubmit: false - } - }); -} - -/** - * 迁移流程 - * @param currentProcessDefinitionId - * @param fromProcessDefinitionId - * @returns - */ -export const migrationDefinition = (currentProcessDefinitionId: string, fromProcessDefinitionId: string) => { - return request({ - url: `/workflow/processDefinition/migrationDefinition/${currentProcessDefinitionId}/${fromProcessDefinitionId}`, - method: 'put' - }); -}; diff --git a/im-admin-ui/src/api/workflow/processDefinition/types.ts b/im-admin-ui/src/api/workflow/processDefinition/types.ts deleted file mode 100644 index 979ec25..0000000 --- a/im-admin-ui/src/api/workflow/processDefinition/types.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { DefinitionConfigVO } from '@/api/workflow/definitionConfig/types'; -export interface ProcessDefinitionQuery extends PageQuery { - key?: string; - name?: string; - categoryCode?: string; -} - -export interface ProcessDefinitionVO extends BaseEntity { - id: string; - name: string; - key: string; - version: number; - suspensionState: number; - resourceName: string; - diagramResourceName: string; - deploymentId: string; - deploymentTime: string; - wfDefinitionConfigVo: DefinitionConfigVO; -} - -export interface definitionXmlVO { - xml: string[]; - xmlStr: string; -} diff --git a/im-admin-ui/src/api/workflow/processInstance/index.ts b/im-admin-ui/src/api/workflow/processInstance/index.ts deleted file mode 100644 index 6d5e53b..0000000 --- a/im-admin-ui/src/api/workflow/processInstance/index.ts +++ /dev/null @@ -1,136 +0,0 @@ -import request from '@/utils/request'; -import { ProcessInstanceQuery, ProcessInstanceVO } from '@/api/workflow/processInstance/types'; -import { AxiosPromise } from 'axios'; - -/** - * 查询运行中实例列表 - * @param query - * @returns {*} - */ -export const getPageByRunning = (query: ProcessInstanceQuery): AxiosPromise => { - return request({ - url: '/workflow/processInstance/getPageByRunning', - method: 'get', - params: query - }); -}; - -/** - * 查询已完成实例列表 - * @param query - * @returns {*} - */ -export const getPageByFinish = (query: ProcessInstanceQuery): AxiosPromise => { - return request({ - url: '/workflow/processInstance/getPageByFinish', - method: 'get', - params: query - }); -}; - -/** - * 通过业务id获取历史流程图 - */ -export const getHistoryImage = (businessKey: string) => { - return request({ - url: `/workflow/processInstance/getHistoryImage/${businessKey}` + '?t' + Math.random(), - method: 'get' - }); -}; - -/** - * 通过业务id获取历史流程图运行中,历史等节点 - */ -export const getHistoryList = (businessKey: string): AxiosPromise> => { - return request({ - url: `/workflow/processInstance/getHistoryList/${businessKey}` + '?t' + Math.random(), - method: 'get' - }); -}; - -/** - * 获取审批记录 - * @param businessKey 业务id - * @returns - */ -export const getHistoryRecord = (businessKey: string | number) => { - return request({ - url: `/workflow/processInstance/getHistoryRecord/${businessKey}`, - method: 'get' - }); -}; - -/** - * 作废 - * @param data 参数 - * @returns - */ -export const deleteRunInstance = (data: object) => { - return request({ - url: `/workflow/processInstance/deleteRunInstance`, - method: 'post', - data: data - }); -}; - -/** - * 运行中的实例 删除程实例,删除历史记录,删除业务与流程关联信息 - * @param businessKey 业务id - * @returns - */ -export const deleteRunAndHisInstance = (businessKey: string | string[]) => { - return request({ - url: `/workflow/processInstance/deleteRunAndHisInstance/${businessKey}`, - method: 'delete' - }); -}; - -/** - * 已完成的实例 删除程实例,删除历史记录,删除业务与流程关联信息 - * @param businessKey 业务id - * @returns - */ -export const deleteFinishAndHisInstance = (businessKey: string | string[]) => { - return request({ - url: `/workflow/processInstance/deleteFinishAndHisInstance/${businessKey}`, - method: 'delete' - }); -}; - -/** - * 分页查询当前登录人单据 - * @param query - * @returns {*} - */ -export const getPageByCurrent = (query: ProcessInstanceQuery): AxiosPromise => { - return request({ - url: '/workflow/processInstance/getPageByCurrent', - method: 'get', - params: query - }); -}; - -/** - * 撤销流程 - * @param businessKey 业务id - * @returns - */ -export const cancelProcessApply = (businessKey: string) => { - return request({ - url: `/workflow/processInstance/cancelProcessApply/${businessKey}`, - method: 'post' - }); -}; - -export default { - getPageByRunning, - getPageByFinish, - getHistoryImage, - getHistoryList, - getHistoryRecord, - deleteRunInstance, - deleteRunAndHisInstance, - deleteFinishAndHisInstance, - getPageByCurrent, - cancelProcessApply -}; diff --git a/im-admin-ui/src/api/workflow/processInstance/types.ts b/im-admin-ui/src/api/workflow/processInstance/types.ts deleted file mode 100644 index 99d0511..0000000 --- a/im-admin-ui/src/api/workflow/processInstance/types.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { TaskVO } from '@/api/workflow/task/types'; - -export interface ProcessInstanceQuery extends PageQuery { - categoryCode?: string; - name?: string; - key?: string; - startUserId?: string; - businessKey?: string; -} - -export interface ProcessInstanceVO extends BaseEntity { - id: string; - processDefinitionId: string; - processDefinitionName: string; - processDefinitionKey: string; - processDefinitionVersion: string; - deploymentId: string; - businessKey: string; - isSuspended?: any; - tenantId: string; - startTime: string; - endTime?: string; - startUserId: string; - businessStatus: string; - businessStatusName: string; - taskVoList: TaskVO[]; -} diff --git a/im-admin-ui/src/api/workflow/task/index.ts b/im-admin-ui/src/api/workflow/task/index.ts deleted file mode 100644 index d29de30..0000000 --- a/im-admin-ui/src/api/workflow/task/index.ts +++ /dev/null @@ -1,264 +0,0 @@ -import request from '@/utils/request'; -import { AxiosPromise } from 'axios'; -import { TaskQuery, TaskVO } from '@/api/workflow/task/types'; - -/** - * 查询待办列表 - * @param query - * @returns {*} - */ -export const getPageByTaskWait = (query: TaskQuery): AxiosPromise => { - return request({ - url: '/workflow/task/getPageByTaskWait', - method: 'get', - params: query - }); -}; - -/** - * 查询已办列表 - * @param query - * @returns {*} - */ -export const getPageByTaskFinish = (query: TaskQuery): AxiosPromise => { - return request({ - url: '/workflow/task/getPageByTaskFinish', - method: 'get', - params: query - }); -}; - -/** - * 查询当前用户的抄送列表 - * @param query - * @returns {*} - */ -export const getPageByTaskCopy = (query: TaskQuery): AxiosPromise => { - return request({ - url: '/workflow/task/getPageByTaskCopy', - method: 'get', - params: query - }); -}; - -/** - * 当前租户所有待办任务 - * @param query - * @returns {*} - */ -export const getPageByAllTaskWait = (query: TaskQuery): AxiosPromise => { - return request({ - url: '/workflow/task/getPageByAllTaskWait', - method: 'get', - params: query - }); -}; - -/** - * 当前租户所有已办任务 - * @param query - * @returns {*} - */ -export const getPageByAllTaskFinish = (query: TaskQuery): AxiosPromise => { - return request({ - url: '/workflow/task/getPageByAllTaskFinish', - method: 'get', - params: query - }); -}; - -/** - * 启动流程 - * @param data - * @returns {*} - */ -export const startWorkFlow = (data: object): any => { - return request({ - url: '/workflow/task/startWorkFlow', - method: 'post', - data: data - }); -}; - -/** - * 办理流程 - * @param data - * @returns {*} - */ -export const completeTask = (data: object) => { - return request({ - url: '/workflow/task/completeTask', - method: 'post', - data: data - }); -}; - -/** - * 认领任务 - * @param taskId - * @returns {*} - */ -export const claim = (taskId: string): any => { - return request({ - url: '/workflow/task/claim/' + taskId, - method: 'post' - }); -}; - -/** - * 归还任务 - * @param taskId - * @returns {*} - */ -export const returnTask = (taskId: string): any => { - return request({ - url: '/workflow/task/returnTask/' + taskId, - method: 'post' - }); -}; - -/** - * 任务驳回 - * @param data - * @returns {*} - */ -export const backProcess = (data: any): any => { - return request({ - url: '/workflow/task/backProcess', - method: 'post', - data: data - }); -}; - -/** - * 获取当前任务 - * @param taskId - * @returns - */ -export const getTaskById = (taskId: string) => { - return request({ - url: '/workflow/task/getTaskById/' + taskId, - method: 'get' - }); -}; - -/** - * 加签 - * @param data - * @returns - */ -export const addMultiInstanceExecution = (data: any) => { - return request({ - url: '/workflow/task/addMultiInstanceExecution', - method: 'post', - data: data - }); -}; - -/** - * 减签 - * @param data - * @returns - */ -export const deleteMultiInstanceExecution = (data: any) => { - return request({ - url: '/workflow/task/deleteMultiInstanceExecution', - method: 'post', - data: data - }); -}; - -/** - * 修改任务办理人 - * @param taskIds - * @param userId - * @returns - */ -export const updateAssignee = (taskIds: Array, userId: string) => { - return request({ - url: `/workflow/task/updateAssignee/${taskIds}/${userId}`, - method: 'put' - }); -}; - -/** - * 转办任务 - * @returns - */ -export const transferTask = (data: any) => { - return request({ - url: `/workflow/task/transferTask`, - method: 'post', - data: data - }); -}; - -/** - * 终止任务 - * @returns - */ -export const terminationTask = (data: any) => { - return request({ - url: `/workflow/task/terminationTask`, - method: 'post', - data: data - }); -}; - -/** - * 查询流程变量 - * @returns - */ -export const getInstanceVariable = (taskId: string) => { - return request({ - url: `/workflow/task/getInstanceVariable/${taskId}`, - method: 'get' - }); -}; - -/** - * 获取可驳回得任务节点 - * @returns - */ -export const getTaskNodeList = (processInstanceId: string) => { - return request({ - url: `/workflow/task/getTaskNodeList/${processInstanceId}`, - method: 'get' - }); -}; - -/** - * 委托任务 - * @returns - */ -export const delegateTask = (data: any) => { - return request({ - url: `/workflow/task/delegateTask`, - method: 'post', - data: data - }); -}; - -/** - * 查询工作流任务用户选择加签人员 - * @param taskId - * @returns {*} - */ -export const getTaskUserIdsByAddMultiInstance = (taskId: string) => { - return request({ - url: '/workflow/task/getTaskUserIdsByAddMultiInstance/' + taskId, - method: 'get' - }); -}; - -/** - * 查询工作流选择减签人员 - * @param taskId - * @returns {*} - */ -export const getListByDeleteMultiInstance = (taskId: string) => { - return request({ - url: '/workflow/task/getListByDeleteMultiInstance/' + taskId, - method: 'get' - }); -}; diff --git a/im-admin-ui/src/api/workflow/task/types.ts b/im-admin-ui/src/api/workflow/task/types.ts deleted file mode 100644 index 0425a1a..0000000 --- a/im-admin-ui/src/api/workflow/task/types.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { NodeConfigVO } from '@/api/workflow/nodeConfig/types'; -import { DefinitionConfigVO } from '@/api/workflow/definitionConfig/types'; -export interface TaskQuery extends PageQuery { - name?: string; - processDefinitionKey?: string; - processDefinitionName?: string; -} - -export interface ParticipantVo { - groupIds?: string[] | number[]; - candidate: string[] | number[]; - candidateName: string[]; - claim: boolean; -} - -export interface TaskVO extends BaseEntity { - id: string; - name: string; - description?: string; - priority: number; - owner?: string; - assignee?: string | number; - assigneeName?: string; - processInstanceId: string; - executionId: string; - taskDefinitionId?: any; - processDefinitionId: string; - endTime?: string; - taskDefinitionKey: string; - dueDate?: string; - category?: any; - parentTaskId?: any; - tenantId: string; - claimTime?: string; - businessStatus?: string; - businessStatusName?: string; - processDefinitionName?: string; - processDefinitionKey?: string; - participantVo?: ParticipantVo; - multiInstance?: boolean; - businessKey?: string; - wfNodeConfigVo?: NodeConfigVO; - wfDefinitionConfigVo?: DefinitionConfigVO; -} - -export interface VariableVo { - key: string; - value: string; -} diff --git a/im-admin-ui/src/api/workflow/workflowCommon/index.ts b/im-admin-ui/src/api/workflow/workflowCommon/index.ts deleted file mode 100644 index 63ce318..0000000 --- a/im-admin-ui/src/api/workflow/workflowCommon/index.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { RouterJumpVo } from '@/api/workflow/workflowCommon/types'; - -export default { - routerJump(routerJumpVo: RouterJumpVo, proxy) { - if (routerJumpVo.wfNodeConfigVo && routerJumpVo.wfNodeConfigVo.formType === 'static' && routerJumpVo.wfNodeConfigVo.wfFormManageVo) { - proxy.$tab.closePage(proxy.$route); - proxy.$router.push({ - path: `${routerJumpVo.wfNodeConfigVo.wfFormManageVo.router}`, - query: { - id: routerJumpVo.businessKey, - type: routerJumpVo.type, - taskId: routerJumpVo.taskId - } - }); - } else if (routerJumpVo.wfNodeConfigVo && routerJumpVo.wfNodeConfigVo.formType === 'dynamic' && routerJumpVo.wfNodeConfigVo.wfFormManageVo) { - proxy.$tab.closePage(proxy.$route); - proxy.$router.push({ - path: `${routerJumpVo.wfNodeConfigVo.wfFormManageVo.router}`, - query: { - id: routerJumpVo.businessKey, - type: routerJumpVo.type, - taskId: routerJumpVo.taskId - } - }); - } else { - proxy?.$modal.msgError('请到模型配置菜单!'); - } - } -}; diff --git a/im-admin-ui/src/api/workflow/workflowCommon/types.ts b/im-admin-ui/src/api/workflow/workflowCommon/types.ts deleted file mode 100644 index 0f1ef1f..0000000 --- a/im-admin-ui/src/api/workflow/workflowCommon/types.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { NodeConfigVO } from '@/api/workflow/nodeConfig/types'; -import { DefinitionConfigVO } from '@/api/workflow/definitionConfig/types'; - -export interface RouterJumpVo { - wfNodeConfigVo: NodeConfigVO; - wfDefinitionConfigVo: DefinitionConfigVO; - businessKey: string; - taskId: string; - type: string; -} - -export interface StartProcessBo { - businessKey: string | number; - tableName: string; - variables: any; -} diff --git a/im-admin-ui/src/assets/logo/logo.png b/im-admin-ui/src/assets/logo/logo.png index 3f919d8..36c8c23 100644 Binary files a/im-admin-ui/src/assets/logo/logo.png and b/im-admin-ui/src/assets/logo/logo.png differ diff --git a/im-admin-ui/src/bpmn/assets/defaultXML.ts b/im-admin-ui/src/bpmn/assets/defaultXML.ts deleted file mode 100644 index dff0349..0000000 --- a/im-admin-ui/src/bpmn/assets/defaultXML.ts +++ /dev/null @@ -1,23 +0,0 @@ -function generateRandomValue() { - // 生成一个随机数 - const randomValue = Math.random().toString(36).slice(2, 12); - return `Process_${randomValue}`; -} - -const cartage: string = 'default'; -export default ` - - - - - - - - - - - - - - -`; diff --git a/im-admin-ui/src/bpmn/assets/lang/zh.ts b/im-admin-ui/src/bpmn/assets/lang/zh.ts deleted file mode 100644 index ee0c5de..0000000 --- a/im-admin-ui/src/bpmn/assets/lang/zh.ts +++ /dev/null @@ -1,126 +0,0 @@ -export const NodeName = { - 'bpmn:Process': '流程', - 'bpmn:StartEvent': '开始事件', - 'bpmn:IntermediateThrowEvent': '中间事件', - 'bpmn:Task': '任务', - 'bpmn:SendTask': '发送任务', - 'bpmn:ReceiveTask': '接收任务', - 'bpmn:UserTask': '用户任务', - 'bpmn:ManualTask': '手工任务', - 'bpmn:BusinessRuleTask': '业务规则任务', - 'bpmn:ServiceTask': '服务任务', - 'bpmn:ScriptTask': '脚本任务', - 'bpmn:EndEvent': '结束事件', - 'bpmn:SequenceFlow': '流程线', - 'bpmn:ExclusiveGateway': '互斥网关', - 'bpmn:ParallelGateway': '并行网关', - 'bpmn:InclusiveGateway': '相容网关', - 'bpmn:ComplexGateway': '复杂网关', - 'bpmn:EventBasedGateway': '事件网关', - 'bpmn:Participant': '池/参与者', - 'bpmn:SubProcess': '子流程', - 'bpmn:DataObjectReference': '数据对象引用', - 'bpmn:DataStoreReference': '数据存储引用', - 'bpmn:Group': '组' -}; - -export default { - 'Activate hand tool': '启动手动工具', - 'Activate lasso tool': '启动 Lasso 工具', - 'Activate create/remove space tool': '启动创建/删除空间工具', - 'Activate global connect tool': '启动全局连接工具', - 'Ad-hoc': 'Ad-hoc', - 'Add lane above': '在上方添加泳道', - 'Add lane below': '在下方添加泳道', - 'Business rule task': '规则任务', - 'Call activity': '引用流程', - 'Compensation end event': '结束补偿事件', - 'Compensation intermediate throw event': '中间补偿抛出事件', - 'Complex gateway': '复杂网关', - 'Conditional intermediate catch event': '中间条件捕获事件', - 'Conditional start event (non-interrupting)': '条件启动事件 (非中断)', - 'Conditional start event': '条件启动事件', - 'Connect using association': '文本关联', - 'Connect using sequence/message flow or association': '消息关联', - 'Change element': '更改元素', - 'Change type': '更改类型', - 'Create data object reference': '创建数据对象引用', - 'Create data store reference': '创建数据存储引用', - 'Create expanded sub-process': '创建可折叠子流程', - 'Create pool/participant': '创建池/参与者', - 'Collection': '集合', - 'Connect using data input association': '数据输入关联', - 'Data store reference': '数据存储引用', - 'Data object reference': '数据对象引用', - 'Divide into two lanes': '分成两个泳道', - 'Divide into three lanes': '分成三个泳道', - 'End event': '结束事件', - 'Error end event': '结束错误事件', - 'Escalation end event': '结束升级事件', - 'Escalation intermediate throw event': '中间升级抛出事件', - 'Event sub-process': '事件子流程', - 'Event-based gateway': '事件网关', - 'Exclusive gateway': '互斥网关', - 'Empty pool/participant (removes content)': '清空池/参与者 (删除内容)', - 'Empty pool/participant': '清空池/参与者', - 'Expanded pool/participant': '展开池/参与者', - 'Inclusive gateway': '相容网关', - 'Intermediate throw event': '中间抛出事件', - 'Loop': '循环', - 'Link intermediate catch event': '中间链接捕获事件', - 'Link intermediate throw event': '中间链接抛出事件', - 'Manual task': '手动任务', - 'Message end event': '结束消息事件', - 'Message intermediate catch event': '中间消息捕获事件', - 'Message intermediate throw event': '中间消息抛出事件', - 'Message start event': '消息启动事件', - 'Parallel gateway': '并行网关', - 'Parallel multi-instance': '并行多实例', - 'Participant multiplicity': '参与者多重性', - 'Receive task': '接受任务', - 'Remove': '移除', - 'Script task': '脚本任务', - 'Send task': '发送任务', - 'Sequential multi-instance': '串行多实例', - 'Service task': '服务任务', - 'Signal end event': '结束信号事件', - 'Signal intermediate catch event': '中间信号捕获事件', - 'Signal intermediate throw event': '中间信号抛出事件', - 'Signal start event (non-interrupting)': '信号启动事件 (非中断)', - 'Signal start event': '信号启动事件', - 'Start event': '开始事件', - 'Sub-process (collapsed)': '可折叠子流程', - 'Sub-process (expanded)': '可展开子流程', - 'Sub rocess': '子流程', - 'Task': '任务', - 'Transaction': '事务', - 'Terminate end event': '终止边界事件', - 'Timer intermediate catch event': '中间定时捕获事件', - 'Timer start event (non-interrupting)': '定时启动事件 (非中断)', - 'Timer start event': '定时启动事件', - 'User task': '用户任务', - 'Create start event': '创建开始事件', - 'Create gateway': '创建网关', - 'Create intermediate/boundary event': '创建中间/边界事件', - 'Create end event': '创建结束事件', - 'Create group': '创建组', - 'Create startEvent': '开始节点', - 'Create endEvent': '结束节点', - 'Create exclusiveGateway': '互斥网关', - 'Create parallelGateway': '并行网关', - 'Create task': '任务节点', - 'Create userTask': '用户任务节点', - 'Condition type': '条件类型', - 'Append end event': '追加结束事件节点', - 'Append gateway': '追加网关节点', - 'Append task': '追加任务', - 'Append user task': '追加用户任务节点', - 'Append text annotation': '追加文本注释', - 'Append intermediate/boundary event': '追加中间或边界事件', - 'Append receive task': '追加接收任务节点', - 'Append message intermediate catch event': '追加中间消息捕获事件', - 'Append timer intermediate catch event': '追加中间定时捕获事件', - 'Append conditional intermediate catch event': '追加中间条件捕获事件', - 'Append signal intermediate catch event': '追加中间信号捕获事件', - 'flow elements must be children of pools/participants': '流程元素必须是池/参与者的子元素' -}; diff --git a/im-admin-ui/src/bpmn/assets/moddle/flowable.ts b/im-admin-ui/src/bpmn/assets/moddle/flowable.ts deleted file mode 100644 index de959a6..0000000 --- a/im-admin-ui/src/bpmn/assets/moddle/flowable.ts +++ /dev/null @@ -1,1250 +0,0 @@ -export default { - 'name': 'Flowable', - 'uri': 'http://flowable.org/bpmn', - 'prefix': 'flowable', - 'xml': { - 'tagAlias': 'lowerCase' - }, - 'associations': [], - 'types': [ - { - 'name': 'flowable:extCandidateUsers', - 'isAbstract': true, - 'extends': [], - 'superClass': ['Element'], - 'meta': { - 'allowedIn': ['*'] - }, - 'properties': [ - { - 'name': 'body', - 'type': 'String', - 'isBody': true - } - ] - }, - { - 'name': 'flowable:extAssignee', - 'isAbstract': true, - 'extends': [], - 'superClass': ['Element'], - 'meta': { - 'allowedIn': ['*'] - }, - 'properties': [ - { - 'name': 'body', - 'type': 'String', - 'isBody': true - } - ] - }, - { - 'name': 'flowable:property', - 'superClass': ['Element'], - 'properties': [ - { - 'name': 'id', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'name', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'value', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'flowable:properties', - 'isAbstract': true, - 'extends': [], - 'superClass': ['Element'], - 'meta': { - 'allowedIn': ['*'] - }, - 'properties': [ - { - 'name': 'values', - 'type': 'flowable:property', - 'isMany': true - } - ] - }, - { - 'name': 'InOutBinding', - 'superClass': ['Element'], - 'isAbstract': true, - 'properties': [ - { - 'name': 'source', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'sourceExpression', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'target', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'businessKey', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'local', - 'isAttr': true, - 'type': 'Boolean', - 'default': false - }, - { - 'name': 'variables', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'In', - 'superClass': ['InOutBinding'], - 'meta': { - 'allowedIn': ['bpmn:CallActivity'] - } - }, - { - 'name': 'Out', - 'superClass': ['InOutBinding'], - 'meta': { - 'allowedIn': ['bpmn:CallActivity'] - } - }, - { - 'name': 'AsyncCapable', - 'isAbstract': true, - 'extends': ['bpmn:Activity', 'bpmn:Gateway', 'bpmn:Event'], - 'properties': [ - { - 'name': 'async', - 'isAttr': true, - 'type': 'Boolean', - 'default': false - }, - { - 'name': 'asyncBefore', - 'isAttr': true, - 'type': 'Boolean', - 'default': false - }, - { - 'name': 'asyncAfter', - 'isAttr': true, - 'type': 'Boolean', - 'default': false - }, - { - 'name': 'exclusive', - 'isAttr': true, - 'type': 'Boolean', - 'default': true - } - ] - }, - { - 'name': 'flowable:in', - 'superClass': ['Element'], - 'properties': [ - { - 'name': 'source', - 'type': 'string', - 'isAttr': true - }, - { - 'name': 'target', - 'type': 'string', - 'isAttr': true - } - ] - }, - { - 'name': 'flowable:out', - 'superClass': ['Element'], - 'properties': [ - { - 'name': 'source', - 'type': 'string', - 'isAttr': true - }, - { - 'name': 'target', - 'type': 'string', - 'isAttr': true - } - ] - }, - { - 'name': 'BoundaryEvent', - 'superClass': ['CatchEvent'], - 'properties': [ - { - 'name': 'cancelActivity', - 'default': true, - 'isAttr': true, - 'type': 'Boolean' - }, - { - 'name': 'attachedToRef', - 'type': 'Activity', - 'isAttr': true, - 'isReference': true - } - ] - }, - { - 'name': 'JobPriorized', - 'isAbstract': true, - 'extends': ['bpmn:Process', 'flowable:AsyncCapable'], - 'properties': [ - { - 'name': 'jobPriority', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'SignalEventDefinition', - 'isAbstract': true, - 'extends': ['bpmn:SignalEventDefinition'], - 'properties': [ - { - 'name': 'async', - 'isAttr': true, - 'type': 'Boolean', - 'default': false - } - ] - }, - { - 'name': 'ErrorEventDefinition', - 'isAbstract': true, - 'extends': ['bpmn:ErrorEventDefinition'], - 'properties': [ - { - 'name': 'errorCodeVariable', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'errorMessageVariable', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'Error', - 'isAbstract': true, - 'extends': ['bpmn:Error'], - 'properties': [ - { - 'name': 'flowable:errorMessage', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'PotentialStarter', - 'superClass': ['Element'], - 'properties': [ - { - 'name': 'resourceAssignmentExpression', - 'type': 'bpmn:ResourceAssignmentExpression' - } - ] - }, - { - 'name': 'UserTask', - 'isAbstract': true, - 'extends': ['bpmn:UserTask'], - 'properties': [ - { - 'name': 'timerEventDefinition', - 'type': 'Expression' - }, - { - 'name': 'multiInstanceLoopCharacteristics', - 'type': 'MultiInstanceLoopCharacteristics' - } - ] - }, - { - 'name': 'StartEvent', - 'isAbstract': true, - 'extends': ['bpmn:StartEvent'], - 'properties': [ - { - 'name': 'timerEventDefinition', - 'type': 'Expression' - } - ] - }, - { - 'name': 'FormSupported', - 'isAbstract': true, - 'extends': ['bpmn:StartEvent', 'bpmn:UserTask'], - 'properties': [ - { - 'name': 'formHandlerClass', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'formKey', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'TemplateSupported', - 'isAbstract': true, - 'extends': ['bpmn:Process', 'bpmn:FlowElement'], - 'properties': [ - { - 'name': 'modelerTemplate', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'Initiator', - 'isAbstract': true, - 'extends': ['bpmn:StartEvent'], - 'properties': [ - { - 'name': 'initiator', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'ScriptTask', - 'isAbstract': true, - 'extends': ['bpmn:ScriptTask'], - 'properties': [ - { - 'name': 'resultVariable', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'resource', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'Process', - 'isAbstract': true, - 'extends': ['bpmn:Process'], - 'properties': [ - { - 'name': 'candidateStarterGroups', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'candidateStarterUsers', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'versionTag', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'historyTimeToLive', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'isStartableInTasklist', - 'isAttr': true, - 'type': 'Boolean', - 'default': true - } - ] - }, - { - 'name': 'EscalationEventDefinition', - 'isAbstract': true, - 'extends': ['bpmn:EscalationEventDefinition'], - 'properties': [ - { - 'name': 'escalationCodeVariable', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'FormalExpression', - 'isAbstract': true, - 'extends': ['bpmn:FormalExpression'], - 'properties': [ - { - 'name': 'resource', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'Assignable', - 'extends': ['bpmn:UserTask'], - 'properties': [ - { - 'name': 'candidateGroups', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'dueDate', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'followUpDate', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'priority', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'CallActivity', - 'extends': ['bpmn:CallActivity'], - 'properties': [ - { - 'name': 'calledElementBinding', - 'isAttr': true, - 'type': 'String', - 'default': 'latest' - }, - { - 'name': 'calledElementVersion', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'calledElementVersionTag', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'calledElementTenantId', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'caseRef', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'caseBinding', - 'isAttr': true, - 'type': 'String', - 'default': 'latest' - }, - { - 'name': 'caseVersion', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'caseTenantId', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'variableMappingClass', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'variableMappingDelegateExpression', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'ServiceTaskLike', - 'extends': ['bpmn:ServiceTask', 'bpmn:BusinessRuleTask', 'bpmn:SendTask', 'bpmn:MessageEventDefinition'], - 'properties': [ - { - 'name': 'expression', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'class', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'delegateExpression', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'resultVariable', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'ExclusiveGateway', - 'isAbstract': true, - 'extends': ['bpmn:ExclusiveGateway'], - 'properties': [ - { - 'name': 'serviceClass', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'DmnCapable', - 'extends': ['bpmn:BusinessRuleTask'], - 'properties': [ - { - 'name': 'decisionRef', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'decisionRefBinding', - 'isAttr': true, - 'type': 'String', - 'default': 'latest' - }, - { - 'name': 'decisionRefVersion', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'mapDecisionResult', - 'isAttr': true, - 'type': 'String', - 'default': 'resultList' - }, - { - 'name': 'decisionRefTenantId', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'ExternalCapable', - 'extends': ['flowable:ServiceTaskLike'], - 'properties': [ - { - 'name': 'type', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'topic', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'TaskPriorized', - 'extends': ['bpmn:Process', 'flowable:ExternalCapable'], - 'properties': [ - { - 'name': 'taskPriority', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'Properties', - 'superClass': ['Element'], - 'meta': { - 'allowedIn': ['*'] - }, - 'properties': [ - { - 'name': 'values', - 'type': 'Property', - 'isMany': true - } - ] - }, - { - 'name': 'Property', - 'superClass': ['Element'], - 'properties': [ - { - 'name': 'id', - 'type': 'String', - 'isAttr': true - }, - { - 'name': 'name', - 'type': 'String', - 'isAttr': true - }, - { - 'name': 'value', - 'type': 'String', - 'isAttr': true - } - ] - }, - { - 'name': 'Connector', - 'superClass': ['Element'], - 'meta': { - 'allowedIn': ['flowable:ServiceTaskLike'] - }, - 'properties': [ - { - 'name': 'inputOutput', - 'type': 'InputOutput' - }, - { - 'name': 'connectorId', - 'type': 'String' - } - ] - }, - { - 'name': 'InputOutput', - 'superClass': ['Element'], - 'meta': { - 'allowedIn': ['bpmn:FlowNode', 'flowable:Connector'] - }, - 'properties': [ - { - 'name': 'inputOutput', - 'type': 'InputOutput' - }, - { - 'name': 'connectorId', - 'type': 'String' - }, - { - 'name': 'inputParameters', - 'isMany': true, - 'type': 'InputParameter' - }, - { - 'name': 'outputParameters', - 'isMany': true, - 'type': 'OutputParameter' - } - ] - }, - { - 'name': 'InputOutputParameter', - 'properties': [ - { - 'name': 'name', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'value', - 'isBody': true, - 'type': 'String' - }, - { - 'name': 'definition', - 'type': 'InputOutputParameterDefinition' - } - ] - }, - { - 'name': 'InputOutputParameterDefinition', - 'isAbstract': true - }, - { - 'name': 'List', - 'superClass': ['InputOutputParameterDefinition'], - 'properties': [ - { - 'name': 'items', - 'isMany': true, - 'type': 'InputOutputParameterDefinition' - } - ] - }, - { - 'name': 'Map', - 'superClass': ['InputOutputParameterDefinition'], - 'properties': [ - { - 'name': 'entries', - 'isMany': true, - 'type': 'Entry' - } - ] - }, - { - 'name': 'Entry', - 'properties': [ - { - 'name': 'key', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'value', - 'isBody': true, - 'type': 'String' - }, - { - 'name': 'definition', - 'type': 'InputOutputParameterDefinition' - } - ] - }, - { - 'name': 'Value', - 'superClass': ['InputOutputParameterDefinition'], - 'properties': [ - { - 'name': 'id', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'name', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'value', - 'isBody': true, - 'type': 'String' - } - ] - }, - { - 'name': 'Script', - 'superClass': ['InputOutputParameterDefinition'], - 'properties': [ - { - 'name': 'scriptFormat', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'resource', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'value', - 'isBody': true, - 'type': 'String' - } - ] - }, - { - 'name': 'Field', - 'superClass': ['Element'], - 'meta': { - 'allowedIn': ['flowable:ServiceTaskLike', 'flowable:ExecutionListener', 'flowable:TaskListener'] - }, - 'properties': [ - { - 'name': 'name', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'expression', - 'isAttr': true, - 'type': 'expression' - }, - { - 'name': 'string', - 'type': 'string' - }, - { - 'name': 'stringValue', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'string', - 'superClass': ['Element'], - 'meta': { - 'allowedIn': ['flowable:Field'] - }, - 'properties': [ - { - 'name': 'body', - 'isBody': true, - 'type': 'String' - } - ] - }, - { - 'name': 'expression', - 'superClass': ['Element'], - 'meta': { - 'allowedIn': ['flowable:Field'] - }, - 'properties': [ - { - 'name': 'body', - 'isBody': true, - 'type': 'String' - } - ] - }, - { - 'name': 'InputParameter', - 'superClass': ['InputOutputParameter'] - }, - { - 'name': 'OutputParameter', - 'superClass': ['InputOutputParameter'] - }, - { - 'name': 'Collectable', - 'isAbstract': true, - 'extends': ['bpmn:MultiInstanceLoopCharacteristics'], - 'superClass': ['flowable:AsyncCapable'], - 'properties': [ - { - 'name': 'collection', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'elementVariable', - 'isAttr': true, - 'type': 'String' - } - ] - }, - { - 'name': 'SequenceFlow', - 'superClass': ['FlowElement'], - 'properties': [ - { - 'name': 'isImmediate', - 'isAttr': true, - 'type': 'Boolean' - }, - { - 'name': 'conditionExpression', - 'type': 'Expression' - }, - { - 'name': 'sourceRef', - 'type': 'FlowNode', - 'isAttr': true, - 'isReference': true - }, - { - 'name': 'targetRef', - 'type': 'FlowNode', - 'isAttr': true, - 'isReference': true - } - ] - }, - { - 'name': 'MultiInstanceLoopCharacteristics', - 'superClass': ['LoopCharacteristics'], - 'properties': [ - { - 'name': 'isSequential', - 'default': false, - 'isAttr': true, - 'type': 'Boolean' - }, - { - 'name': 'behavior', - 'type': 'MultiInstanceBehavior', - 'default': 'All', - 'isAttr': true - }, - { - 'name': 'loopCardinality', - 'type': 'Expression', - 'xml': { - 'serialize': 'xsi:type' - } - }, - { - 'name': 'loopDataInputRef', - 'type': 'ItemAwareElement', - 'isReference': true - }, - { - 'name': 'loopDataOutputRef', - 'type': 'ItemAwareElement', - 'isReference': true - }, - { - 'name': 'inputDataItem', - 'type': 'DataInput', - 'xml': { - 'serialize': 'property' - } - }, - { - 'name': 'outputDataItem', - 'type': 'DataOutput', - 'xml': { - 'serialize': 'property' - } - }, - { - 'name': 'complexBehaviorDefinition', - 'type': 'ComplexBehaviorDefinition', - 'isMany': true - }, - { - 'name': 'completionCondition', - 'type': 'Expression', - 'xml': { - 'serialize': 'xsi:type' - } - }, - { - 'name': 'oneBehaviorEventRef', - 'type': 'EventDefinition', - 'isAttr': true, - 'isReference': true - }, - { - 'name': 'noneBehaviorEventRef', - 'type': 'EventDefinition', - 'isAttr': true, - 'isReference': true - } - ] - }, - { - 'name': 'FailedJobRetryTimeCycle', - 'superClass': ['Element'], - 'meta': { - 'allowedIn': ['flowable:AsyncCapable', 'bpmn:MultiInstanceLoopCharacteristics'] - }, - 'properties': [ - { - 'name': 'body', - 'isBody': true, - 'type': 'String' - } - ] - }, - { - 'name': 'ExecutionListener', - 'superClass': ['Element'], - 'meta': { - 'allowedIn': [ - 'bpmn:Task', - 'bpmn:ServiceTask', - 'bpmn:UserTask', - 'bpmn:BusinessRuleTask', - 'bpmn:ScriptTask', - 'bpmn:ReceiveTask', - 'bpmn:ManualTask', - 'bpmn:ExclusiveGateway', - 'bpmn:SequenceFlow', - 'bpmn:ParallelGateway', - 'bpmn:InclusiveGateway', - 'bpmn:EventBasedGateway', - 'bpmn:StartEvent', - 'bpmn:IntermediateCatchEvent', - 'bpmn:IntermediateThrowEvent', - 'bpmn:EndEvent', - 'bpmn:BoundaryEvent', - 'bpmn:CallActivity', - 'bpmn:SubProcess', - 'bpmn:Process' - ] - }, - 'properties': [ - { - 'name': 'expression', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'class', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'delegateExpression', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'event', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'script', - 'type': 'Script' - }, - { - 'name': 'fields', - 'type': 'Field', - 'isMany': true - } - ] - }, - { - 'name': 'TaskListener', - 'superClass': ['Element'], - 'meta': { - 'allowedIn': ['bpmn:UserTask'] - }, - 'properties': [ - { - 'name': 'expression', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'class', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'delegateExpression', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'event', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'script', - 'type': 'Script' - }, - { - 'name': 'fields', - 'type': 'Field', - 'isMany': true - } - ] - }, - { - 'name': 'FormProperty', - 'superClass': ['Element'], - 'meta': { - 'allowedIn': ['bpmn:StartEvent', 'bpmn:UserTask'] - }, - 'properties': [ - { - 'name': 'id', - 'type': 'String', - 'isAttr': true - }, - { - 'name': 'name', - 'type': 'String', - 'isAttr': true - }, - { - 'name': 'type', - 'type': 'String', - 'isAttr': true - }, - { - 'name': 'required', - 'type': 'String', - 'isAttr': true - }, - { - 'name': 'readable', - 'type': 'String', - 'isAttr': true - }, - { - 'name': 'writable', - 'type': 'String', - 'isAttr': true - }, - { - 'name': 'variable', - 'type': 'String', - 'isAttr': true - }, - { - 'name': 'expression', - 'type': 'String', - 'isAttr': true - }, - { - 'name': 'datePattern', - 'type': 'String', - 'isAttr': true - }, - { - 'name': 'default', - 'type': 'String', - 'isAttr': true - }, - { - 'name': 'values', - 'type': 'Value', - 'isMany': true - } - ] - }, - { - 'name': 'FormData', - 'superClass': ['Element'], - 'meta': { - 'allowedIn': ['bpmn:StartEvent', 'bpmn:UserTask'] - }, - 'properties': [ - { - 'name': 'fields', - 'type': 'FormField', - 'isMany': true - }, - { - 'name': 'businessKey', - 'type': 'String', - 'isAttr': true - } - ] - }, - { - 'name': 'FormField', - 'superClass': ['Element'], - 'properties': [ - { - 'name': 'id', - 'type': 'String', - 'isAttr': true - }, - { - 'name': 'label', - 'type': 'String', - 'isAttr': true - }, - { - 'name': 'type', - 'type': 'String', - 'isAttr': true - }, - { - 'name': 'datePattern', - 'type': 'String', - 'isAttr': true - }, - { - 'name': 'defaultValue', - 'type': 'String', - 'isAttr': true - }, - { - 'name': 'properties', - 'type': 'Properties' - }, - { - 'name': 'validation', - 'type': 'Validation' - }, - { - 'name': 'values', - 'type': 'Value', - 'isMany': true - } - ] - }, - { - 'name': 'Validation', - 'superClass': ['Element'], - 'properties': [ - { - 'name': 'constraints', - 'type': 'Constraint', - 'isMany': true - } - ] - }, - { - 'name': 'Constraint', - 'superClass': ['Element'], - 'properties': [ - { - 'name': 'name', - 'type': 'String', - 'isAttr': true - }, - { - 'name': 'config', - 'type': 'String', - 'isAttr': true - } - ] - }, - { - 'name': 'ConditionalEventDefinition', - 'isAbstract': true, - 'extends': ['bpmn:ConditionalEventDefinition'], - 'properties': [ - { - 'name': 'variableName', - 'isAttr': true, - 'type': 'String' - }, - { - 'name': 'variableEvent', - 'isAttr': true, - 'type': 'String' - } - ] - } - ], - 'emumerations': [] -}; diff --git a/im-admin-ui/src/bpmn/assets/module/ContextPad/CustomContextPadProvider.ts b/im-admin-ui/src/bpmn/assets/module/ContextPad/CustomContextPadProvider.ts deleted file mode 100644 index 13ccf50..0000000 --- a/im-admin-ui/src/bpmn/assets/module/ContextPad/CustomContextPadProvider.ts +++ /dev/null @@ -1,138 +0,0 @@ -import ContextPadProvider from 'bpmn-js/lib/features/context-pad/ContextPadProvider'; -import { Injector } from 'didi'; -import EventBus from 'diagram-js/lib/core/EventBus'; -import ContextPad from 'diagram-js/lib/features/context-pad/ContextPad'; -import Modeling from 'bpmn-js/lib/features/modeling/Modeling.js'; -import ElementFactory from 'bpmn-js/lib/features/modeling/ElementFactory'; -import Connect from 'diagram-js/lib/features/connect/Connect'; -import Create from 'diagram-js/lib/features/create/Create'; -import PopupMenu from 'diagram-js/lib/features/popup-menu/PopupMenu'; -import Canvas from 'diagram-js/lib/core/Canvas'; -import Rules from 'diagram-js/lib/features/rules/Rules'; -import { Element, Shape } from 'diagram-js/lib/model/Types'; -import BpmnFactory from 'bpmn-js/lib/features/modeling/BpmnFactory'; -import modeler from '@/store/modules/modeler'; - -// @Description: 增强元素连线事件 - -class CustomContextPadProvider extends ContextPadProvider { - private _contextPad: ContextPad; - private _modeling: Modeling; - private _elementFactory: ElementFactory; - private _autoPlace: any; - private _connect: Connect; - private _create: Create; - private _popupMenu: PopupMenu; - private _canvas: Canvas; - private _rules: Rules; - - constructor( - config: any, - injector: Injector, - eventBus: EventBus, - contextPad: ContextPad, - modeling: Modeling, - elementFactory: ElementFactory, - connect: Connect, - create: Create, - popupMenu: PopupMenu, - canvas: Canvas, - rules: Rules, - translate - ) { - // @ts-expect-error 忽略异常 - super(config, injector, eventBus, contextPad, modeling, elementFactory, connect, create, popupMenu, canvas, rules, translate); - - this._contextPad = contextPad; - this._modeling = modeling; - this._elementFactory = elementFactory; - this._connect = connect; - this._create = create; - this._popupMenu = popupMenu; - this._canvas = canvas; - this._rules = rules; - - this._autoPlace = injector.get('autoPlace', false); - } - - getContextPadEntries(element: Element) { - const actions: Record = {}; - - const appendUserTask = (event: Event, element: Shape) => { - const shape = this._elementFactory.createShape({ type: 'bpmn:UserTask' }); - this._create.start(event, shape, { - source: element - }); - }; - - const appendMultiInstanceUserTask = (event: Event, element: Shape) => { - const store = modeler(); - const bpmnFactory = store.getModeler().get('bpmnFactory') as BpmnFactory; - const businessObject = bpmnFactory.create('bpmn:UserTask', { - // name: '多实例用户任务', - isForCompensation: false - }); - businessObject.loopCharacteristics = bpmnFactory.create('bpmn:MultiInstanceLoopCharacteristics'); - // 创建 Shape - const shape = this._elementFactory.createShape({ - type: 'bpmn:UserTask', - businessObject: businessObject - }); - this._create.start(event, shape, { source: element }); - }; - - const appendTask = this._autoPlace - ? (event, element) => { - const bpmnFactory: BpmnFactory | undefined = modeler().getModeler().get('bpmnFactory'); - const businessObject = bpmnFactory.create('bpmn:UserTask', { - // name: '多实例用户任务',// 右键创建显示 - isForCompensation: false - }); - - // 创建多实例属性并分配给用户任务的 loopCharacteristics - businessObject.loopCharacteristics = bpmnFactory.create('bpmn:MultiInstanceLoopCharacteristics'); - - // 创建 Shape - const shape = this._elementFactory.createShape({ - type: 'bpmn:UserTask', - businessObject: businessObject - }); - - this._autoPlace.append(element, shape); - } - : appendMultiInstanceUserTask; - - const append = this._autoPlace - ? (event: Event, element: Shape) => { - const shape = this._elementFactory.createShape({ type: 'bpmn:UserTask' }); - this._autoPlace.append(element, shape); - } - : appendUserTask; - - // // 添加创建用户任务按钮 - actions['append.append-user-task'] = { - group: 'model', - className: 'bpmn-icon-user-task', - title: '用户任务', - action: { - dragstart: appendUserTask, - click: append - } - }; - - // 添加创建多实例用户任务按钮 - actions['append.append-multi-instance-user-task'] = { - group: 'model', - className: 'bpmn-icon-user', // 你可以使用多实例用户任务的图标 bpmn-icon-user bpmn-icon-user-task - title: '多实例用户任务', - action: { - dragstart: appendMultiInstanceUserTask, - click: appendTask - } - }; - - return actions; - } -} - -export default CustomContextPadProvider; diff --git a/im-admin-ui/src/bpmn/assets/module/Palette/CustomPaletteProvider.ts b/im-admin-ui/src/bpmn/assets/module/Palette/CustomPaletteProvider.ts deleted file mode 100644 index 8556d9b..0000000 --- a/im-admin-ui/src/bpmn/assets/module/Palette/CustomPaletteProvider.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { assign } from 'min-dash'; -import PaletteProvider from 'bpmn-js/lib/features/palette/PaletteProvider'; -import ElementFactory from 'bpmn-js/lib/features/modeling/ElementFactory'; -import Create from 'diagram-js/lib/features/create/Create'; -import SpaceTool from 'diagram-js/lib/features/space-tool/SpaceTool'; -import LassoTool from 'diagram-js/lib/features/lasso-tool/LassoTool'; -import HandTool from 'diagram-js/lib/features/hand-tool/HandTool'; -import GlobalConnect from 'diagram-js/lib/features/global-connect/GlobalConnect'; -import Palette from 'diagram-js/lib/features/palette/Palette'; -import modeler from '@/store/modules/modeler'; -import BpmnFactory from 'bpmn-js/lib/features/modeling/BpmnFactory'; - -// @Description: 增强左侧面板 -class CustomPaletteProvider extends PaletteProvider { - private readonly _palette: Palette; - private readonly _create: Create; - private readonly _elementFactory: ElementFactory; - private readonly _spaceTool: SpaceTool; - private readonly _lassoTool: LassoTool; - private readonly _handTool: HandTool; - private readonly _globalConnect: GlobalConnect; - private readonly _translate: any; - - constructor(palette, create, elementFactory, spaceTool, lassoTool, handTool, globalConnect, translate) { - super(palette, create, elementFactory, spaceTool, lassoTool, handTool, globalConnect, translate); - this._palette = palette; - this._create = create; - this._elementFactory = elementFactory; - this._spaceTool = spaceTool; - this._lassoTool = lassoTool; - this._handTool = handTool; - this._globalConnect = globalConnect; - this._translate = translate; - } - - getPaletteEntries() { - const actions = {}, - create = this._create, - elementFactory = this._elementFactory, - translate = this._translate; - - function createAction(type: string, group: string, className: string, title: string, options?: object) { - function createListener(event) { - const shape = elementFactory.createShape(assign({ type: type }, options)); - if (options) { - !shape.businessObject.di && (shape.businessObject.di = {}); - shape.businessObject.di.isExpanded = (options as { [key: string]: any }).isExpanded; - } - create.start(event, shape, null); - } - const shortType = type.replace(/^bpmn:/, ''); - return { - group: group, - className: className, - title: title || translate('Create {type}', { type: shortType }), - action: { - dragstart: createListener, - click: createListener - } - }; - } - - function createMultiInstanceUserTask(event) { - const bpmnFactory: BpmnFactory | undefined = modeler().getBpmnFactory(); - // 创建一个 bpmn:UserTask - const userTask = bpmnFactory.create('bpmn:UserTask', { - // name: '多实例用户任务', // 在画板中显示字段 - isForCompensation: false - }); - // 将多实例属性分配给 bpmn:UserTask 的 loopCharacteristics - userTask.loopCharacteristics = bpmnFactory.create('bpmn:MultiInstanceLoopCharacteristics'); - const customUserTask = elementFactory.createShape({ - type: 'bpmn:UserTask', - businessObject: userTask // 分配创建的 userTask 到 businessObject - }); - create.start(event, customUserTask, {}); - } - - assign(actions, { - 'create.parallel-gateway': createAction('bpmn:ParallelGateway', 'gateway', 'bpmn-icon-gateway-parallel', '并行网关'), - 'create.event-base-gateway': createAction('bpmn:EventBasedGateway', 'gateway', 'bpmn-icon-gateway-eventbased', '事件网关'), - // 分组线 - 'gateway-separator': { - group: 'gateway', - separator: true - }, - 'create.user-task': createAction('bpmn:UserTask', 'activity', 'bpmn-icon-user-task', '创建用户任务'), - 'create.multi-instance-user-task': { - group: 'activity', - type: 'bpmn:UserTask', - className: 'bpmn-icon-user task-multi-instance', - title: '创建多实例用户任务', - action: { - click: createMultiInstanceUserTask, - dragstart: createMultiInstanceUserTask - } - }, - 'task-separator': { - group: 'activity', - separator: true - } - }); - return actions; - } -} - -CustomPaletteProvider['$inject'] = ['palette', 'create', 'elementFactory', 'spaceTool', 'lassoTool', 'handTool', 'globalConnect', 'translate']; - -export default CustomPaletteProvider; diff --git a/im-admin-ui/src/bpmn/assets/module/Renderer/CustomRenderer.ts b/im-admin-ui/src/bpmn/assets/module/Renderer/CustomRenderer.ts deleted file mode 100644 index 6a4eb1a..0000000 --- a/im-admin-ui/src/bpmn/assets/module/Renderer/CustomRenderer.ts +++ /dev/null @@ -1,56 +0,0 @@ -import BaseRenderer from 'diagram-js/lib/draw/BaseRenderer'; -import { - append as svgAppend, - attr as svgAttr, - create as svgCreate, - select as svgSelect, - selectAll as svgSelectAll, - clone as svgClone, - clear as svgClear, - remove as svgRemove -} from 'tiny-svg'; - -const HIGH_PRIORITY = 1500; -export default class CustomRenderer extends BaseRenderer { - bpmnRenderer: BaseRenderer; - modeling: any; - constructor(eventBus, bpmnRenderer, modeling) { - super(eventBus, HIGH_PRIORITY); - this.bpmnRenderer = bpmnRenderer; - this.modeling = modeling; - } - canRender(element) { - // ignore labels - return !element.labelTarget; - } - - /** - * 自定义节点图形 - * @param {*} parentNode 当前元素的svgNode - * @param {*} element - * @returns - */ - drawShape(parentNode, element) { - const shape = this.bpmnRenderer.drawShape(parentNode, element); - const { type, width, height } = element; - // 开始 填充绿色 - if (type === 'bpmn:StartEvent') { - svgAttr(shape, { fill: '#77DF6D' }); - return shape; - } - if (type === 'bpmn:EndEvent') { - svgAttr(shape, { fill: '#EE7B77' }); - return shape; - } - if (type === 'bpmn:UserTask') { - svgAttr(shape, { fill: '#A9C4F8' }); - return shape; - } - return shape; - } - - getShapePath(shape) { - return this.bpmnRenderer.getShapePath(shape); - } -} -CustomRenderer['$inject'] = ['eventBus', 'bpmnRenderer']; diff --git a/im-admin-ui/src/bpmn/assets/module/Translate/index.ts b/im-admin-ui/src/bpmn/assets/module/Translate/index.ts deleted file mode 100644 index 6b52dae..0000000 --- a/im-admin-ui/src/bpmn/assets/module/Translate/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -import zh from '../../lang/zh'; - -const customTranslate = (template: any, replacements: any) => { - replacements = replacements || {}; - template = zh[template] || template; - return template.replace(/{([^}]+)}/g, function (_: any, key: any) { - return replacements[key] || '{' + key + '}'; - }); -}; - -export const translateModule = { - translate: ['value', customTranslate] -}; - -export default translateModule; diff --git a/im-admin-ui/src/bpmn/assets/module/index.ts b/im-admin-ui/src/bpmn/assets/module/index.ts deleted file mode 100644 index 55f6b9f..0000000 --- a/im-admin-ui/src/bpmn/assets/module/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -// 翻译模块 -import TranslationModule from './Translate'; -import { ModuleDeclaration } from 'didi'; -import CustomPaletteProvider from './Palette/CustomPaletteProvider'; -import CustomRenderer from './Renderer/CustomRenderer'; -import CustomContextPadProvider from './ContextPad/CustomContextPadProvider'; - -const Module: ModuleDeclaration[] = [ - { - __init__: ['customPaletteProvider', 'customContextPadProvider', 'customRenderer'], - customPaletteProvider: ['type', CustomPaletteProvider], - customRenderer: ['type', CustomRenderer], - customContextPadProvider: ['type', CustomContextPadProvider] - }, - TranslationModule -]; -export default Module; diff --git a/im-admin-ui/src/bpmn/assets/showConfig.ts b/im-admin-ui/src/bpmn/assets/showConfig.ts deleted file mode 100644 index 853eb35..0000000 --- a/im-admin-ui/src/bpmn/assets/showConfig.ts +++ /dev/null @@ -1,50 +0,0 @@ -export default { - 'bpmn:EndEvent': {}, - 'bpmn:StartEvent': { - initiator: true, - formKey: true - }, - 'bpmn:UserTask': { - allocationType: true, - specifyDesc: true, - multipleUserAuditType: true, - async: true, - priority: true, - skipExpression: true, - dueDate: true, - taskListener: true, - executionListener: true - }, - 'bpmn:ServiceTask': { - async: true, - skipExpression: true, - isForCompensation: true, - triggerable: true, - class: true - }, - 'bpmn:ScriptTask': { - async: true, - isForCompensation: true, - autoStoreVariables: true - }, - 'bpmn:ManualTask': { - async: true, - isForCompensation: true - }, - 'bpmn:ReceiveTask': { - async: true, - isForCompensation: true - }, - 'bpmn:SendTask': { - async: true, - isForCompensation: true - }, - 'bpmn:BusinessRuleTask': { - async: true, - isForCompensation: true, - ruleVariablesInput: true, - rules: true, - resultVariable: true, - exclude: true - } -}; diff --git a/im-admin-ui/src/bpmn/assets/style/index.scss b/im-admin-ui/src/bpmn/assets/style/index.scss deleted file mode 100644 index 3c92792..0000000 --- a/im-admin-ui/src/bpmn/assets/style/index.scss +++ /dev/null @@ -1,284 +0,0 @@ -.djs-palette { - width: 300px; - - .bpmn-icon-hand-tool:hover { - &:after { - content: '启动手动工具'; - position: absolute; - left: 45px; - width: 120px; - font-size: 15px; - font-weight: bold; - color: #3a84de; - border-radius: 2px; - border: 1px solid #cccccc; - background-color: #fafafa; - opacity: 0.8; - } - } - .bpmn-icon-lasso-tool:hover { - &:after { - content: '启动套索工具'; - position: absolute; - left: 100px; - width: 120px; - font-size: 15px; - font-weight: bold; - color: #3a84de; - border-radius: 2px; - border: 1px solid #cccccc; - background-color: #fafafa; - opacity: 0.8; - } - } - .bpmn-icon-space-tool:hover { - &:after { - content: '启动创建/删除空间工具'; - position: absolute; - left: 45px; - width: 170px; - font-size: 15px; - font-weight: bold; - color: #3a84de; - border-radius: 2px; - border: 1px solid #cccccc; - background-color: #fafafa; - opacity: 0.8; - } - } - .bpmn-icon-connection-multi:hover { - &:after { - content: '启动全局连接工具'; - position: absolute; - left: 100px; - width: 140px; - font-size: 15px; - font-weight: bold; - color: #3a84de; - border-radius: 2px; - border: 1px solid #cccccc; - background-color: #fafafa; - opacity: 0.8; - } - } - .bpmn-icon-start-event-none:hover { - &:after { - content: '创建开始事件'; - position: absolute; - left: 45px; - width: 120px; - font-size: 15px; - font-weight: bold; - color: #3a84de; - border-radius: 2px; - border: 1px solid #cccccc; - background-color: #fafafa; - opacity: 0.8; - } - } - .bpmn-icon-intermediate-event-none:hover { - &:after { - content: '创建中间/边界事件'; - position: absolute; - left: 100px; - width: 140px; - font-size: 15px; - font-weight: bold; - color: #3a84de; - border-radius: 2px; - border: 1px solid #cccccc; - background-color: #fafafa; - opacity: 0.8; - } - } - .bpmn-icon-end-event-none:hover { - &:after { - content: '创建结束事件'; - position: absolute; - left: 45px; - width: 120px; - font-size: 15px; - font-weight: bold; - color: #3a84de; - border-radius: 2px; - border: 1px solid #cccccc; - background-color: #fafafa; - opacity: 0.8; - } - } - .bpmn-icon-gateway-none:hover { - &:after { - content: '创建网关'; - position: absolute; - left: 100px; - width: 90px; - font-size: 15px; - font-weight: bold; - color: #3a84de; - border-radius: 2px; - border: 1px solid #cccccc; - background-color: #fafafa; - opacity: 0.8; - } - } - .bpmn-icon-gateway-parallel:hover { - &:after { - content: '创建并行网关'; - position: absolute; - left: 45px; - width: 120px; - font-size: 15px; - font-weight: bold; - color: #3a84de; - border-radius: 2px; - border: 1px solid #cccccc; - background-color: #fafafa; - opacity: 0.8; - } - } - .bpmn-icon-gateway-eventbased:hover { - &:after { - content: '创建事件网关'; - position: absolute; - left: 100px; - width: 120px; - font-size: 15px; - font-weight: bold; - color: #3a84de; - border-radius: 2px; - border: 1px solid #cccccc; - background-color: #fafafa; - opacity: 0.8; - } - } - .bpmn-icon-task:hover { - &:after { - content: '创建任务'; - position: absolute; - left: 45px; - width: 80px; - font-size: 15px; - font-weight: bold; - color: #3a84de; - border-radius: 2px; - border: 1px solid #cccccc; - background-color: #fafafa; - opacity: 0.8; - } - } - .bpmn-icon-subprocess-expanded:hover { - &:after { - content: '创建可折叠子流程'; - position: absolute; - left: 100px; - width: 140px; - font-size: 15px; - font-weight: bold; - color: #3a84de; - border-radius: 2px; - border: 1px solid #cccccc; - background-color: #fafafa; - opacity: 0.8; - } - } - .bpmn-icon-user-task:hover { - &:after { - content: '创建用户任务'; - position: absolute; - left: 45px; - width: 120px; - font-size: 15px; - font-weight: bold; - color: #3a84de; - border-radius: 2px; - border: 1px solid #cccccc; - background-color: #fafafa; - opacity: 0.8; - } - } - - .task-multi-instance:hover { - &:after { - content: '创建多实例用户任务'; - position: absolute; - left: 100px; - width: 160px; - font-size: 15px; - font-weight: bold; - color: #3a84de; - border-radius: 2px; - border: 1px solid #cccccc; - background-color: #fafafa; - opacity: 0.8; - } - } - .bpmn-icon-participant:hover { - &:after { - content: '创建泳池/泳道'; - position: absolute; - left: 45px; - width: 120px; - font-size: 15px; - font-weight: bold; - color: #3a84de; - border-radius: 2px; - border: 1px solid #cccccc; - background-color: #fafafa; - opacity: 0.8; - } - } - .bpmn-icon-data-object { - display: none; - &:hover { - &:after { - content: '创建数据对象'; - position: absolute; - left: 45px; - width: 120px; - font-size: 15px; - font-weight: bold; - color: #3a84de; - border-radius: 2px; - border: 1px solid #cccccc; - background-color: #fafafa; - opacity: 0.8; - } - } - } - .bpmn-icon-data-store { - display: none; - &:hover { - &:after { - content: '创建数据存储'; - position: absolute; - left: 100px; - width: 120px; - font-size: 15px; - font-weight: bold; - color: #3a84de; - border-radius: 2px; - border: 1px solid #cccccc; - background-color: #fafafa; - opacity: 0.8; - } - } - } - .bpmn-icon-group { - display: none; - &:hover { - &:after { - content: '创建分组'; - position: absolute; - left: 100px; - width: 100px; - font-size: 15px; - font-weight: bold; - color: #3a84de; - border-radius: 2px; - border: 1px solid #cccccc; - background-color: #fafafa; - opacity: 0.8; - } - } - } -} diff --git a/im-admin-ui/src/bpmn/hooks/usePanel.ts b/im-admin-ui/src/bpmn/hooks/usePanel.ts deleted file mode 100644 index ace579b..0000000 --- a/im-admin-ui/src/bpmn/hooks/usePanel.ts +++ /dev/null @@ -1,145 +0,0 @@ -import showConfig from '../assets/showConfig'; -import type { ModdleElement } from 'bpmn'; -import useModelerStore from '@/store/modules/modeler'; -import { MultiInstanceTypeEnum } from '@/enums/bpmn/IndexEnums'; -interface Options { - element: ModdleElement; -} - -export default (ops: Options) => { - const { element } = ops; - const { getModeling, getModdle } = useModelerStore(); - const modeling = getModeling(); - const moddle = getModdle(); - - /** - * 当前节点类型 - */ - const elementType = computed(() => { - const bizObj = element.businessObject; - return bizObj.eventDefinitions ? bizObj.eventDefinitions[0].$type : bizObj.$type; - }); - - /** - * 用于控制面板字段显示与隐藏的配置 - */ - const config = computed(() => showConfig[elementType.value] || {}); - - /** - * 创建一个节点 - * @param elementType 节点类型 - * @param properties 属性 - * @param parent 父节点 - */ - const createModdleElement = (elementType: string, properties: any, parent: ModdleElement) => { - const element = moddle.create(elementType, properties); - parent && (element.$parent = parent); - return element; - }; - - /** - * 获取扩展属性,如果不存在会自动创建 - */ - const getExtensionElements = (create = true) => { - let extensionElements = element.businessObject.get('extensionElements'); - if (!extensionElements && create) { - extensionElements = createModdleElement('bpmn:ExtensionElements', { values: [] }, element.businessObject); - modeling.updateModdleProperties(element, element.businessObject, { extensionElements }); - } - return extensionElements; - }; - - /** - * 获取extensionElements下的properties - * @param extensionElements 可选参数,默认获取当前Element下的extensionElements下的Properties - */ - const getPropertiesElements = (extensionElements?: ModdleElement) => { - if (!extensionElements) { - extensionElements = getExtensionElements(); - } - let propertiesElements = extensionElements.values.find((item) => item.$type === 'flowable:properties'); - if (!propertiesElements) { - propertiesElements = createModdleElement('flowable:properties', { values: [] }, extensionElements); - modeling.updateModdleProperties(element, extensionElements, { - values: [...extensionElements.get<[]>('values'), propertiesElements] - }); - } - return propertiesElements; - }; - - /** - * 更新节点属性 - * @param properties 属性值 - */ - const updateProperties = (properties: any) => { - modeling.updateProperties(element, properties); - }; - - /** - * 更新节点信息 - * @param updateElement 需要更新的节点 - * @param properties 属性 - */ - const updateModdleProperties = (updateElement, properties: any) => { - modeling.updateModdleProperties(element, updateElement, properties); - }; - - /** - * 更新Property属性 - * @param name key值 - * @param value 值 - */ - const updateProperty = (name: string, value: string) => { - const propertiesElements = getPropertiesElements(); - - let propertyElements = propertiesElements.values.find((item) => item.name === name); - if (!propertyElements) { - propertyElements = createModdleElement('flowable:property', { name: name, value: value }, propertiesElements); - modeling.updateModdleProperties(element, propertiesElements, { - values: [...propertiesElements.get('values'), propertyElements] - }); - } else { - propertyElements.name = name; - propertyElements.value = value; - } - return propertyElements; - }; - - const idChange = (newVal: string) => { - if (newVal) { - updateProperties({ id: newVal }); - } - }; - const nameChange = (newVal: string) => { - if (newVal) { - updateProperties({ name: newVal }); - } - }; - const formKeyChange = (newVal: string) => { - updateProperties({ formKey: newVal }); - }; - const constant = { - MultiInstanceType: [ - { id: '373d4b81-a0d1-4eb8-8685-0d2fb1b468e2', label: '无', value: MultiInstanceTypeEnum.NONE }, - { id: 'b5acea7c-b7e5-46b0-8778-390db091bdab', label: '串行', value: MultiInstanceTypeEnum.SERIAL }, - { id: 'b4f0c683-1ccc-43c4-8380-e1b998986caf', label: '并行', value: MultiInstanceTypeEnum.PARALLEL } - ] - }; - - return { - elementType, - constant, - showConfig: config, - - updateProperties, - updateProperty, - updateModdleProperties, - - createModdleElement, - idChange, - nameChange, - formKeyChange, - getExtensionElements, - getPropertiesElements - }; -}; diff --git a/im-admin-ui/src/bpmn/hooks/useParseElement.ts b/im-admin-ui/src/bpmn/hooks/useParseElement.ts deleted file mode 100644 index e1a6054..0000000 --- a/im-admin-ui/src/bpmn/hooks/useParseElement.ts +++ /dev/null @@ -1,34 +0,0 @@ -import type { ModdleElement } from 'bpmn'; - -interface Options { - element: ModdleElement; -} - -interface Data { - id: string; -} - -export default (ops: Options) => { - const { element } = ops; - - const parseData = (): T => { - const result = { - ...element.businessObject, - ...element.businessObject.$attrs - }; - - // 移除flowable前缀,格式化数组 - for (const key in result) { - if (key.indexOf('flowable:') === 0) { - const newKey = key.replace('flowable:', ''); - result[newKey] = result[key]; - delete result[key]; - } - } - return { ...result } as T; - }; - - return { - parseData - }; -}; diff --git a/im-admin-ui/src/bpmn/index.vue b/im-admin-ui/src/bpmn/index.vue deleted file mode 100644 index 15437c8..0000000 --- a/im-admin-ui/src/bpmn/index.vue +++ /dev/null @@ -1,496 +0,0 @@ - - - - - diff --git a/im-admin-ui/src/bpmn/panel/GatewayPanel.vue b/im-admin-ui/src/bpmn/panel/GatewayPanel.vue deleted file mode 100644 index 20cc134..0000000 --- a/im-admin-ui/src/bpmn/panel/GatewayPanel.vue +++ /dev/null @@ -1,68 +0,0 @@ - - - - diff --git a/im-admin-ui/src/bpmn/panel/ParticipantPanel.vue b/im-admin-ui/src/bpmn/panel/ParticipantPanel.vue deleted file mode 100644 index b1d42e6..0000000 --- a/im-admin-ui/src/bpmn/panel/ParticipantPanel.vue +++ /dev/null @@ -1,68 +0,0 @@ - - - - diff --git a/im-admin-ui/src/bpmn/panel/ProcessPanel.vue b/im-admin-ui/src/bpmn/panel/ProcessPanel.vue deleted file mode 100644 index 9e118e2..0000000 --- a/im-admin-ui/src/bpmn/panel/ProcessPanel.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - - - diff --git a/im-admin-ui/src/bpmn/panel/SequenceFlowPanel.vue b/im-admin-ui/src/bpmn/panel/SequenceFlowPanel.vue deleted file mode 100644 index eac8227..0000000 --- a/im-admin-ui/src/bpmn/panel/SequenceFlowPanel.vue +++ /dev/null @@ -1,95 +0,0 @@ - - - - diff --git a/im-admin-ui/src/bpmn/panel/StartEndPanel.vue b/im-admin-ui/src/bpmn/panel/StartEndPanel.vue deleted file mode 100644 index bde1212..0000000 --- a/im-admin-ui/src/bpmn/panel/StartEndPanel.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - diff --git a/im-admin-ui/src/bpmn/panel/SubProcessPanel.vue b/im-admin-ui/src/bpmn/panel/SubProcessPanel.vue deleted file mode 100644 index 3490fff..0000000 --- a/im-admin-ui/src/bpmn/panel/SubProcessPanel.vue +++ /dev/null @@ -1,193 +0,0 @@ - - - - diff --git a/im-admin-ui/src/bpmn/panel/TaskPanel.vue b/im-admin-ui/src/bpmn/panel/TaskPanel.vue deleted file mode 100644 index a42de8a..0000000 --- a/im-admin-ui/src/bpmn/panel/TaskPanel.vue +++ /dev/null @@ -1,491 +0,0 @@ - - - - diff --git a/im-admin-ui/src/bpmn/panel/index.vue b/im-admin-ui/src/bpmn/panel/index.vue deleted file mode 100644 index 445571a..0000000 --- a/im-admin-ui/src/bpmn/panel/index.vue +++ /dev/null @@ -1,110 +0,0 @@ - - - - diff --git a/im-admin-ui/src/bpmn/panel/property/DueDate.vue b/im-admin-ui/src/bpmn/panel/property/DueDate.vue deleted file mode 100644 index 882766b..0000000 --- a/im-admin-ui/src/bpmn/panel/property/DueDate.vue +++ /dev/null @@ -1,252 +0,0 @@ - - - diff --git a/im-admin-ui/src/bpmn/panel/property/ExecutionListener.vue b/im-admin-ui/src/bpmn/panel/property/ExecutionListener.vue deleted file mode 100644 index 3c584cb..0000000 --- a/im-admin-ui/src/bpmn/panel/property/ExecutionListener.vue +++ /dev/null @@ -1,308 +0,0 @@ - - - - diff --git a/im-admin-ui/src/bpmn/panel/property/ListenerParam.vue b/im-admin-ui/src/bpmn/panel/property/ListenerParam.vue deleted file mode 100644 index 21c6de1..0000000 --- a/im-admin-ui/src/bpmn/panel/property/ListenerParam.vue +++ /dev/null @@ -1,121 +0,0 @@ - - - - - diff --git a/im-admin-ui/src/bpmn/panel/property/TaskListener.vue b/im-admin-ui/src/bpmn/panel/property/TaskListener.vue deleted file mode 100644 index 9a32c47..0000000 --- a/im-admin-ui/src/bpmn/panel/property/TaskListener.vue +++ /dev/null @@ -1,310 +0,0 @@ - - - - diff --git a/im-admin-ui/src/components/BpmnDesign/index.vue b/im-admin-ui/src/components/BpmnDesign/index.vue deleted file mode 100644 index 1f84516..0000000 --- a/im-admin-ui/src/components/BpmnDesign/index.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - - - diff --git a/im-admin-ui/src/components/BpmnView/index.vue b/im-admin-ui/src/components/BpmnView/index.vue deleted file mode 100644 index c5e0c7b..0000000 --- a/im-admin-ui/src/components/BpmnView/index.vue +++ /dev/null @@ -1,411 +0,0 @@ - - - - - diff --git a/im-admin-ui/src/components/RuoYiDoc/index.vue b/im-admin-ui/src/components/RuoYiDoc/index.vue deleted file mode 100644 index 1e27d89..0000000 --- a/im-admin-ui/src/components/RuoYiDoc/index.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/im-admin-ui/src/components/RuoYiGit/index.vue b/im-admin-ui/src/components/RuoYiGit/index.vue deleted file mode 100644 index ad27808..0000000 --- a/im-admin-ui/src/components/RuoYiGit/index.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/im-admin-ui/src/layout/components/Navbar.vue b/im-admin-ui/src/layout/components/Navbar.vue index c2ed0b6..bcf6403 100644 --- a/im-admin-ui/src/layout/components/Navbar.vue +++ b/im-admin-ui/src/layout/components/Navbar.vue @@ -43,14 +43,6 @@ - - - - - - - - diff --git a/im-admin-ui/src/router/index.ts b/im-admin-ui/src/router/index.ts index 86e0092..6be5060 100644 --- a/im-admin-ui/src/router/index.ts +++ b/im-admin-ui/src/router/index.ts @@ -162,20 +162,6 @@ export const dynamicRoutes: RouteRecordRaw[] = [ meta: { title: '修改生成配置', activeMenu: '/tool/gen', icon: '', noCache: true } } ] - }, - { - path: '/workflow/leaveEdit', - component: Layout, - hidden: true, - permissions: ['workflow:leave:edit'], - children: [ - { - path: 'index', - component: () => import('@/views/workflow/leave/leaveEdit.vue'), - name: 'leaveEdit', - meta: { title: '请假申请', activeMenu: '/workflow/leave', noCache: true } - } - ] } ]; diff --git a/im-admin-ui/src/views/demo/demo/index.vue b/im-admin-ui/src/views/demo/demo/index.vue deleted file mode 100644 index 523deff..0000000 --- a/im-admin-ui/src/views/demo/demo/index.vue +++ /dev/null @@ -1,254 +0,0 @@ - - - diff --git a/im-admin-ui/src/views/demo/tree/index.vue b/im-admin-ui/src/views/demo/tree/index.vue deleted file mode 100644 index 921ddd9..0000000 --- a/im-admin-ui/src/views/demo/tree/index.vue +++ /dev/null @@ -1,258 +0,0 @@ - - - diff --git a/im-admin-ui/src/views/login.vue b/im-admin-ui/src/views/login.vue index db1fca6..5d5fd82 100644 --- a/im-admin-ui/src/views/login.vue +++ b/im-admin-ui/src/views/login.vue @@ -1,7 +1,7 @@ @@ -186,20 +165,7 @@ const initTenantList = async () => { } }; -/** - * 第三方登录 - * @param type - */ -const doSocialLogin = (type: string) => { - authBinding(type, loginForm.value.tenantId).then((res: any) => { - if (res.code === HttpStatus.SUCCESS) { - // 获取授权地址跳转 - window.location.href = res.data; - } else { - ElMessage.error(res.msg); - } - }); -}; + onMounted(() => { getCode(); diff --git a/im-admin-ui/src/views/monitor/admin/index.vue b/im-admin-ui/src/views/monitor/admin/index.vue deleted file mode 100644 index b71a5cc..0000000 --- a/im-admin-ui/src/views/monitor/admin/index.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/im-admin-ui/src/views/monitor/snailjob/index.vue b/im-admin-ui/src/views/monitor/snailjob/index.vue deleted file mode 100644 index 89e3b23..0000000 --- a/im-admin-ui/src/views/monitor/snailjob/index.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/im-admin-ui/src/views/workflow/category/index.vue b/im-admin-ui/src/views/workflow/category/index.vue deleted file mode 100644 index fd3bfc5..0000000 --- a/im-admin-ui/src/views/workflow/category/index.vue +++ /dev/null @@ -1,263 +0,0 @@ - - - diff --git a/im-admin-ui/src/views/workflow/formManage/index.vue b/im-admin-ui/src/views/workflow/formManage/index.vue deleted file mode 100644 index 9b9cfe2..0000000 --- a/im-admin-ui/src/views/workflow/formManage/index.vue +++ /dev/null @@ -1,243 +0,0 @@ - - - diff --git a/im-admin-ui/src/views/workflow/leave/index.vue b/im-admin-ui/src/views/workflow/leave/index.vue deleted file mode 100644 index f413136..0000000 --- a/im-admin-ui/src/views/workflow/leave/index.vue +++ /dev/null @@ -1,242 +0,0 @@ - - - diff --git a/im-admin-ui/src/views/workflow/leave/leaveEdit.vue b/im-admin-ui/src/views/workflow/leave/leaveEdit.vue deleted file mode 100644 index 55556fd..0000000 --- a/im-admin-ui/src/views/workflow/leave/leaveEdit.vue +++ /dev/null @@ -1,252 +0,0 @@ - - - diff --git a/im-admin-ui/src/views/workflow/model/index.vue b/im-admin-ui/src/views/workflow/model/index.vue deleted file mode 100644 index e83cd94..0000000 --- a/im-admin-ui/src/views/workflow/model/index.vue +++ /dev/null @@ -1,383 +0,0 @@ - - - diff --git a/im-admin-ui/src/views/workflow/processDefinition/components/processPreview.vue b/im-admin-ui/src/views/workflow/processDefinition/components/processPreview.vue deleted file mode 100644 index 19a95df..0000000 --- a/im-admin-ui/src/views/workflow/processDefinition/components/processPreview.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - diff --git a/im-admin-ui/src/views/workflow/processDefinition/index.vue b/im-admin-ui/src/views/workflow/processDefinition/index.vue deleted file mode 100644 index 1dacb80..0000000 --- a/im-admin-ui/src/views/workflow/processDefinition/index.vue +++ /dev/null @@ -1,517 +0,0 @@ - - - diff --git a/im-admin-ui/src/views/workflow/processInstance/index.vue b/im-admin-ui/src/views/workflow/processInstance/index.vue deleted file mode 100644 index 7c60880..0000000 --- a/im-admin-ui/src/views/workflow/processInstance/index.vue +++ /dev/null @@ -1,364 +0,0 @@ - - - diff --git a/im-admin-ui/src/views/workflow/task/allTaskWaiting.vue b/im-admin-ui/src/views/workflow/task/allTaskWaiting.vue deleted file mode 100644 index fe530b8..0000000 --- a/im-admin-ui/src/views/workflow/task/allTaskWaiting.vue +++ /dev/null @@ -1,286 +0,0 @@ - - - diff --git a/im-admin-ui/src/views/workflow/task/myDocument.vue b/im-admin-ui/src/views/workflow/task/myDocument.vue deleted file mode 100644 index 1bf5bbf..0000000 --- a/im-admin-ui/src/views/workflow/task/myDocument.vue +++ /dev/null @@ -1,255 +0,0 @@ - - - diff --git a/im-admin-ui/src/views/workflow/task/taskCopyList.vue b/im-admin-ui/src/views/workflow/task/taskCopyList.vue deleted file mode 100644 index 7784a08..0000000 --- a/im-admin-ui/src/views/workflow/task/taskCopyList.vue +++ /dev/null @@ -1,150 +0,0 @@ - - - diff --git a/im-admin-ui/src/views/workflow/task/taskFinish.vue b/im-admin-ui/src/views/workflow/task/taskFinish.vue deleted file mode 100644 index 155bd4f..0000000 --- a/im-admin-ui/src/views/workflow/task/taskFinish.vue +++ /dev/null @@ -1,136 +0,0 @@ - - - diff --git a/im-admin-ui/src/views/workflow/task/taskWaiting.vue b/im-admin-ui/src/views/workflow/task/taskWaiting.vue deleted file mode 100644 index dc6546a..0000000 --- a/im-admin-ui/src/views/workflow/task/taskWaiting.vue +++ /dev/null @@ -1,149 +0,0 @@ - - - diff --git a/im-admin-ui/vite.config.ts b/im-admin-ui/vite.config.ts index 97c8d9d..f75cfe4 100644 --- a/im-admin-ui/vite.config.ts +++ b/im-admin-ui/vite.config.ts @@ -25,7 +25,7 @@ export default defineConfig(({ mode, command }: ConfigEnv): UserConfig => { open: true, proxy: { [env.VITE_APP_BASE_API]: { - target: 'http://localhost:8080', + target: 'http://localhost:8889', changeOrigin: true, ws: true, rewrite: (path) => path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '') diff --git a/im-admin/.editorconfig b/im-admin/.editorconfig deleted file mode 100644 index 25b312e..0000000 --- a/im-admin/.editorconfig +++ /dev/null @@ -1,18 +0,0 @@ -# http://editorconfig.org -root = true - -# 空格替代Tab缩进在各种编辑工具下效果一致 -[*] -indent_style = space -indent_size = 4 -charset = utf-8 -end_of_line = lf -trim_trailing_whitespace = true -insert_final_newline = true - -[*.{json,yml,yaml}] -indent_size = 2 - -[*.md] -insert_final_newline = false -trim_trailing_whitespace = false diff --git a/im-admin/.gitignore b/im-admin/.gitignore deleted file mode 100644 index fa3ee97..0000000 --- a/im-admin/.gitignore +++ /dev/null @@ -1,48 +0,0 @@ -###################################################################### -# Build Tools - -.gradle -/build/ -!gradle/wrapper/gradle-wrapper.jar - -target/ -!.mvn/wrapper/maven-wrapper.jar - -###################################################################### -# IDE - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### JRebel ### -rebel.xml - -### NetBeans ### -nbproject/private/ -build/* -nbbuild/ -nbdist/ -.nb-gradle/ - -###################################################################### -# Others -*.log -*.xml.versionsBackup -*.swp - -!*/build/*.java -!*/build/*.html -!*/build/*.xml - -.flattened-pom.xml diff --git a/im-admin/README.md b/im-admin/README.md deleted file mode 100644 index 3ef0ea0..0000000 --- a/im-admin/README.md +++ /dev/null @@ -1,182 +0,0 @@ - -
- -- - - -## 平台简介 - -[![码云Gitee](https://gitee.com/dromara/RuoYi-Vue-Plus/badge/star.svg?theme=blue)](https://gitee.com/dromara/RuoYi-Vue-Plus) -[![GitHub](https://img.shields.io/github/stars/dromara/RuoYi-Vue-Plus.svg?style=social&label=Stars)](https://github.com/dromara/RuoYi-Vue-Plus) -[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://gitee.com/dromara/RuoYi-Vue-Plus/blob/master/LICENSE) -[![使用IntelliJ IDEA开发维护](https://img.shields.io/badge/IntelliJ%20IDEA-提供支持-blue.svg)](https://www.jetbrains.com/?from=RuoYi-Vue-Plus) -
-[![RuoYi-Vue-Plus](https://img.shields.io/badge/RuoYi_Vue_Plus-5.2.3-success.svg)](https://gitee.com/dromara/RuoYi-Vue-Plus) -[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.2-blue.svg)]() -[![JDK-17](https://img.shields.io/badge/JDK-17-green.svg)]() -[![JDK-21](https://img.shields.io/badge/JDK-21-green.svg)]() - -> RuoYi-Vue-Plus 是重写 RuoYi-Vue 针对 `分布式集群与多租户` 场景全方位升级(不兼容原框架) - -> 项目代码、文档 均开源免费可商用 遵循开源协议在项目中保留开源协议文件即可
-活到老写到老 为兴趣而开源 为学习而开源 为让大家真正可以学到技术而开源 - -> 系统演示: [传送门](https://plus-doc.dromara.org/#/common/demo_system) - -> 前端项目地址: [plus-ui](https://gitee.com/JavaLionLi/plus-ui) - -> 文档地址: [plus-doc](https://plus-doc.dromara.org) - -## 赞助商 - -MaxKey 业界领先单点登录产品 - https://gitee.com/dromara/MaxKey
-CCFlow 驰聘低代码-流程-表单 - https://gitee.com/opencc/RuoYi-JFlow
-数舵科技 软件定制开发APP小程序等 - http://www.shuduokeji.com/
-引迈信息 软件开发平台 - https://www.jnpfsoft.com/index.html?from=plus-doc
-[如何成为赞助商 加群联系作者详谈](https://plus-doc.dromara.org/#/common/add_group) - -# 本框架与RuoYi的功能差异 - -| 功能 | 本框架 | RuoYi | -|-------------|-------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------| -| 前端项目 | 采用 Vue3 + TS + ElementPlus 重写 | 基于Vue2/Vue3 + JS | -| 后端项目结构 | 采用插件化 + 扩展包形式 结构解耦 易于扩展 | 模块相互注入耦合严重难以扩展 | -| 后端代码风格 | 严格遵守Alibaba规范与项目统一配置的代码格式化 | 代码书写与常规结构不同阅读障碍大 | -| Web容器 | 采用 Undertow 基于 XNIO 的高性能容器 | 采用 Tomcat | -| 权限认证 | 采用 Sa-Token、Jwt 静态使用功能齐全 低耦合 高扩展 | Spring Security 配置繁琐扩展性极差 | -| 权限注解 | 采用 Sa-Token 支持注解 登录校验、角色校验、权限校验、二级认证校验、HttpBasic校验、忽略校验
角色与权限校验支持多种条件 如 `AND` `OR` 或 `权限 OR 角色` 等复杂表达式 | 只支持是否存在匹配 | -| 三方鉴权 | 采用 JustAuth 第三方登录组件 支持微信、钉钉等数十种三方认证 | 无 | -| 关系数据库支持 | 原生支持 MySQL、Oracle、PostgreSQL、SQLServer
可同时使用异构切换(支持其他 mybatis-plus 支持的所有数据库 只需要增加jdbc依赖即可使用 达梦金仓等均有成功案例) | 支持 Mysql、Oracle 不支持同时使用、不支持异构切换 | -| 缓存数据库 | 支持 Redis 5-7 支持大部分新功能特性 如 分布式限流、分布式队列 | Redis 简单 get set 支持 | -| Redis客户端 | 采用 Redisson Redis官方推荐 基于Netty的客户端工具
支持Redis 90%以上的命令 底层优化规避很多不正确的用法 例如: keys被转换为scan
支持单机、哨兵、单主集群、多主集群等模式 | Lettuce + RedisTemplate 支持模式少 工具使用繁琐
连接池采用 common-pool Bug多经常性出问题 | -| 缓存注解 | 采用 Spring-Cache 注解 对其扩展了实现支持了更多功能
例如 过期时间 最大空闲时间 组最大长度等 只需一个注解即可完成数据自动缓存 | 需手动编写Redis代码逻辑 | -| ORM框架 | 采用 Mybatis-Plus 基于对象几乎不用写SQL全java操作 功能强大插件众多
例如多租户插件 分页插件 乐观锁插件等等 | 采用 Mybatis 基于XML需要手写SQL | -| SQL监控 | 采用 p6spy 可输出完整SQL与执行时间监控 | log输出 需手动拼接sql与参数无法快速查看调试问题 | -| 数据分页 | 采用 Mybatis-Plus 分页插件
框架对其进行了扩展 对象化分页对象 支持多种方式传参 支持前端多排序 复杂排序 | 采用 PageHelper 仅支持单查询分页 参数只能从param传 只能单排序 功能扩展性差 体验不好 | -| 数据权限 | 采用 Mybatis-Plus 插件 自行分析拼接SQL 无感式过滤
只需为Mapper设置好注解条件 支持多种自定义 不限于部门角色 | 采用 注解+aop 实现 基于部门角色 生成的sql兼容性差 不支持其他业务扩展
生成sql后需手动拼接到具体业务sql上 对于多个Mapper查询不起作用 | -| 数据脱敏 | 采用 注解 + jackson 序列化期间脱敏 支持不同模块不同的脱敏条件
支持多种策略 如身份证、手机号、地址、邮箱、银行卡等 可自行扩展 | 无 | -| 数据加解密 | 采用 注解 + mybatis 拦截器 对存取数据期间自动加解密
支持多种策略 如BASE64、AES、RSA、SM2、SM4等 | 无 | -| 接口传输加密 | 采用 动态 AES + RSA 加密请求 body 每一次请求秘钥都不同大幅度降低可破解性 | 无 | -| 数据翻译 | 采用 注解 + jackson 序列化期间动态修改数据 数据进行翻译
支持多种模式: `映射翻译` `直接翻译` `其他扩展条件翻译` 接口化两步即可完成自定义扩展 内置多种翻译实现 | 无 | -| 多数据源框架 | 采用 dynamic-datasource 支持市面大部分数据库
通过yml配置即可动态管理异构不同种类的数据库 也可通过前端页面添加数据源
支持spel表达式从请求头参数等条件切换数据源 | 基于 druid 手动编写代码配置数据源 配置繁琐 支持性差 | -| 多数据源事务 | 采用 dynamic-datasource 支持多数据源不同种类的数据库事务回滚 | 不支持 | -| 数据库连接池 | 采用 HikariCP Spring官方内置连接池 配置简单 以性能与稳定性闻名天下 | 采用 druid bug众多 社区维护差 活跃度低 配置众多繁琐性能一般 | -| 数据库主键 | 采用 雪花ID 基于时间戳的 有序增长 唯一ID 再也不用为分库分表 数据合并主键冲突重复而发愁 | 采用 数据库自增ID 支持数据量有限 不支持多数据源主键唯一 | -| WebSocket协议 | 基于 Spring 封装的 WebSocket 协议 扩展了Token鉴权与分布式会话同步 不再只是基于单机的废物 | 无 | -| SSE推送 | 采用 Spring SSE 实现 扩展了Token鉴权与分布式会话同步 | 无 | -| 序列化 | 采用 Jackson Spring官方内置序列化 靠谱!!! | 采用 fastjson bugjson 远近闻名 | -| 分布式幂等 | 参考美团GTIS防重系统简化实现(细节可看文档) | 手动编写注解基于aop实现 | -| 分布式锁 | 采用 Lock4j 底层基于 Redisson | 无 | -| 分布式任务调度 | 采用 SnailJob 天生支持分布式 统一的管理中心 支持多种数据库 支持分片重试DAG任务流等 | 采用 Quartz 基于数据库锁性能差 集群需要做很多配置与改造 | -| 文件存储 | 采用 Minio 分布式文件存储 天生支持多机、多硬盘、多分片、多副本存储
支持权限管理 安全可靠 文件可加密存储 | 采用 本机文件存储 文件裸漏 易丢失泄漏 不支持集群有单点效应 | -| 云存储 | 采用 AWS S3 协议客户端 支持 七牛、阿里、腾讯 等一切支持S3协议的厂家 | 不支持 | -| 短信 | 采用 sms4j 短信融合包 支持数十种短信厂家 只需在yml配置好厂家密钥即可使用 可多厂家共用 | 不支持 | -| 邮件 | 采用 mail-api 通用协议支持大部分邮件厂商 | 不支持 | -| 接口文档 | 采用 SpringDoc、javadoc 无注解零入侵基于java注释
只需把注释写好 无需再写一大堆的文档注解了 | 采用 Springfox 已停止维护 需要编写大量的注解来支持文档生成 | -| 校验框架 | 采用 Validation 支持注解与工具类校验 注解支持国际化 | 仅支持注解 且注解不支持国际化 | -| Excel框架 | 采用 Alibaba EasyExcel 基于插件化
框架对其增加了很多功能 例如 自动合并相同内容 自动排列布局 字典翻译等 | 基于 POI 手写实现 功能有限 复杂 扩展性差 | -| 工作流支持 | 支持各种复杂审批 转办 委派 加减签 会签 或签 票签 等功能 | 无 | -| 工具类框架 | 采用 Hutool、Lombok 上百种工具覆盖90%的使用需求 基于注解自动生成 get set 等简化框架大量代码 | 手写工具稳定性差易出问题 工具数量有限 代码臃肿需自己手写 get set 等 | -| 监控框架 | 采用 SpringBoot-Admin 基于SpringBoot官方 actuator 探针机制
实时监控服务状态 框架还为其扩展了在线日志查看监控 | 无 | -| 链路追踪 | 采用 Apache SkyWalking 还在为请求不知道去哪了 到哪出了问题而烦恼吗
用了它即可实时查看请求经过的每一处每一个节点 | 无 | -| 代码生成器 | 只需设计好表结构 一键生成所有crud代码与页面
降低80%的开发量 把精力都投入到业务设计上
框架为其适配MP、SpringDoc规范化代码 同时支持动态多数据源代码生成 | 代码生成原生结构 只支持单数据源生成 | -| 部署方式 | 支持 Docker 编排 一键搭建所有环境 让开发人员从此不再为搭建环境而烦恼 | 原生jar部署 其他环境需手动下载安装 自行搭建 | -| 项目路径修改 | 提供详细的修改方案文档 并为其做了一些改动 非常简单即可修改成自己想要的 | 需要做很多改造 文档说明有限 | -| 国际化 | 基于请求头动态返回不同语种的文本内容 开发难度低 有对应的工具类 支持大部分注解内容国际化 | 只提供基础功能 其他需自行编写扩展 | -| 代码单例测试 | 提供单例测试 使用方式编写方法与maven多环境单测插件 | 只提供基础功能 其他需自行编写扩展 | -| Demo案例 | 提供框架功能的实际使用案例 单独一个模块提供了很多很全 | 无 | - - -## 本框架与RuoYi的业务差异 - -| 业务 | 功能说明 | 本框架 | RuoYi | -|--------|----------------------------------------------------------------------|-----|------------------| -| 租户管理 | 系统内租户的管理 如:租户套餐、过期时间、用户数量、企业信息等 | 支持 | 无 | -| 租户套餐管理 | 系统内租户所能使用的套餐管理 如:套餐内所包含的菜单等 | 支持 | 无 | -| 客户端管理 | 系统内对接的所有客户端管理 如: pc端、小程序端等
支持动态授权登录方式 如: 短信登录、密码登录等 支持动态控制token时效 | 支持 | 无 | -| 用户管理 | 用户的管理配置 如:新增用户、分配用户所属部门、角色、岗位等 | 支持 | 支持 | -| 部门管理 | 配置系统组织机构(公司、部门、小组) 树结构展现支持数据权限 | 支持 | 支持 | -| 岗位管理 | 配置系统用户所属担任职务 | 支持 | 支持 | -| 菜单管理 | 配置系统菜单、操作权限、按钮权限标识等 | 支持 | 支持 | -| 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 | 支持 | 支持 | -| 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 | 支持 | 支持 | -| 参数管理 | 对系统动态配置常用参数 | 支持 | 支持 | -| 通知公告 | 系统通知公告信息发布维护 | 支持 | 支持 | -| 操作日志 | 系统正常操作日志记录和查询 系统异常信息日志记录和查询 | 支持 | 支持 | -| 登录日志 | 系统登录日志记录查询包含登录异常 | 支持 | 支持 | -| 文件管理 | 系统文件展示、上传、下载、删除等管理 | 支持 | 无 | -| 文件配置管理 | 系统文件上传、下载所需要的配置信息动态添加、修改、删除等管理 | 支持 | 无 | -| 在线用户管理 | 已登录系统的在线用户信息监控与强制踢出操作 | 支持 | 支持 | -| 定时任务 | 运行报表、任务管理(添加、修改、删除)、日志管理、执行器管理等 | 支持 | 仅支持任务与日志管理 | -| 代码生成 | 多数据源前后端代码的生成(java、html、xml、sql)支持CRUD下载 | 支持 | 仅支持单数据源 | -| 系统接口 | 根据业务代码自动生成相关的api接口文档 | 支持 | 支持 | -| 服务监控 | 监视集群系统CPU、内存、磁盘、堆栈、在线日志、Spring相关配置等 | 支持 | 仅支持单机CPU、内存、磁盘监控 | -| 缓存监控 | 对系统的缓存信息查询,命令统计等。 | 支持 | 支持 | -| 在线构建器 | 拖动表单元素生成相应的HTML代码。 | 支持 | 支持 | -| 使用案例 | 系统的一些功能案例 | 支持 | 不支持 | - -## 参考文档 - -使用框架前请仔细阅读文档重点注意事项 -
->[初始化项目 必看](https://plus-doc.dromara.org/#/ruoyi-vue-plus/quickstart/init) ->>[https://plus-doc.dromara.org/#/ruoyi-vue-plus/quickstart/init](https://plus-doc.dromara.org/#/ruoyi-vue-plus/quickstart/init) -> ->[专栏与视频 入门必看](https://plus-doc.dromara.org/#/common/column) ->>[https://plus-doc.dromara.org/#/common/column](https://plus-doc.dromara.org/#/common/column) -> ->[部署项目 必看](https://plus-doc.dromara.org/#/ruoyi-vue-plus/quickstart/deploy) ->>[https://plus-doc.dromara.org/#/ruoyi-vue-plus/quickstart/deploy](https://plus-doc.dromara.org/#/ruoyi-vue-plus/quickstart/deploy) -> ->[如何加群](https://plus-doc.dromara.org/#/common/add_group) ->>[https://plus-doc.dromara.org/#/common/add_group](https://plus-doc.dromara.org/#/common/add_group) -> ->[参考文档 Wiki](https://plus-doc.dromara.org) ->>[https://plus-doc.dromara.org](https://plus-doc.dromara.org) - -## 软件架构图 - -![Plus部署架构图](https://foruda.gitee.com/images/1678981882624240692/ae2a3f3e_1766278.png "Plus部署架构图.png") - -## 如何参与贡献 - -[参与贡献的方式 https://plus-doc.dromara.org/#/common/contribution](https://plus-doc.dromara.org/#/common/contribution) - -## 捐献作者 -作者为兼职做开源,平时还需要工作,如果帮到了您可以请作者吃个盒饭 - - - -## 演示图例 - -| | | -|--------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------| -| ![输入图片说明](https://foruda.gitee.com/images/1680077524361362822/270bb429_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680077619939771291/989bf9b6_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680077681751513929/1c27c5bd_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680077721559267315/74d63e23_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680077765638904515/1b75d4a6_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078026375951297/eded7a4b_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078237104531207/0eb1b6a7_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078254306078709/5931e22f_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078287971528493/0b9af60a_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078308138770249/8d3b6696_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078352553634393/db5ef880_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078378238393374/601e4357_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078414983206024/2aae27c1_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078446738419874/ecce7d59_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078475971341775/149e8634_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078491666717143/3fadece7_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078558863188826/fb8ced2a_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078574561685461/ae68a0b2_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078594932772013/9d8bfec6_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078626493093532/fcfe4ff6_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078643608812515/0295bd4f_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078685196286463/d7612c81_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078703877318597/56fce0bc_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078716586545643/b6dbd68f_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078734103217688/eb1e6aa6_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078759131415480/73c525d8_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078779416197879/75e3ed02_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078802329118061/77e10915_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078893627848351/34a1c342_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078928175016986/f126ec4a_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078941718318363/b68a0f72_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078963175518631/3bb769a1_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078982294090567/b31c343d_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680079000642440444/77ca82a9_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680079020995074177/03b7d52e_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680079039367822173/76811806_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680079274333484664/4dfdc7c0_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680079290467458224/d6715fcf_1766278.png "屏幕截图") | - - - - - - - - - - - - diff --git a/im-admin/pom.xml b/im-admin/pom.xml index c4d24ee..228e53f 100644 --- a/im-admin/pom.xml +++ b/im-admin/pom.xml @@ -401,32 +401,6 @@ exclude - - - org.codehaus.mojo - flatten-maven-plugin - ${flatten-maven-plugin.version} - - true - resolveCiFriendliesOnly - - - - flatten - process-resources - - flatten - - - - flatten.clean - clean - - clean - - - - diff --git a/im-admin/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java b/im-admin/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java deleted file mode 100644 index afe4349..0000000 --- a/im-admin/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.dromara; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup; - -/** - * 启动程序 - * - * @author Lion Li - */ - -@SpringBootApplication -public class DromaraApplication { - - public static void main(String[] args) { - SpringApplication application = new SpringApplication(DromaraApplication.class); - application.setApplicationStartup(new BufferingApplicationStartup(2048)); - application.run(args); - System.out.println("盒子IM后台管理服务启动成功"); - } - -} diff --git a/im-admin/ruoyi-admin/src/main/java/org/dromara/DromaraServletInitializer.java b/im-admin/ruoyi-admin/src/main/java/org/dromara/DromaraServletInitializer.java deleted file mode 100644 index 066a683..0000000 --- a/im-admin/ruoyi-admin/src/main/java/org/dromara/DromaraServletInitializer.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.dromara; - -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; - -/** - * web容器中进行部署 - * - * @author Lion Li - */ -public class DromaraServletInitializer extends SpringBootServletInitializer { - - @Override - protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { - return application.sources(DromaraApplication.class); - } - -} diff --git a/im-admin/ruoyi-admin/src/main/resources/application.yml b/im-admin/ruoyi-admin/src/main/resources/application.yml index 80083aa..65a286e 100644 --- a/im-admin/ruoyi-admin/src/main/resources/application.yml +++ b/im-admin/ruoyi-admin/src/main/resources/application.yml @@ -8,7 +8,7 @@ app: copyrightYear: 2024 captcha: - enable: true + enable: false # 页面 <参数设置> 可开启关闭 验证码校验 # 验证码类型 math 数组计算 char 字符验证 type: MATH @@ -153,19 +153,6 @@ mybatis-encryptor: publicKey: privateKey: -# api接口加密 -api-decrypt: - # 是否开启全局接口加密 - enabled: true - # AES 加密头标识 - headerFlag: encrypt-key - # 响应加密公钥 非对称算法的公私钥 如:SM2,RSA 使用者请自行更换 - # 对应前端解密私钥 MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAmc3CuPiGL/LcIIm7zryCEIbl1SPzBkr75E2VMtxegyZ1lYRD+7TZGAPkvIsBcaMs6Nsy0L78n2qh+lIZMpLH8wIDAQABAkEAk82Mhz0tlv6IVCyIcw/s3f0E+WLmtPFyR9/WtV3Y5aaejUkU60JpX4m5xNR2VaqOLTZAYjW8Wy0aXr3zYIhhQQIhAMfqR9oFdYw1J9SsNc+CrhugAvKTi0+BF6VoL6psWhvbAiEAxPPNTmrkmrXwdm/pQQu3UOQmc2vCZ5tiKpW10CgJi8kCIFGkL6utxw93Ncj4exE/gPLvKcT+1Emnoox+O9kRXss5AiAMtYLJDaLEzPrAWcZeeSgSIzbL+ecokmFKSDDcRske6QIgSMkHedwND1olF8vlKsJUGK3BcdtM8w4Xq7BpSBwsloE= - publicKey: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJnNwrj4hi/y3CCJu868ghCG5dUj8wZK++RNlTLcXoMmdZWEQ/u02RgD5LyLAXGjLOjbMtC+/J9qofpSGTKSx/MCAwEAAQ== - # 请求解密私钥 非对称算法的公私钥 如:SM2,RSA 使用者请自行更换 - # 对应前端加密公钥 MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ== - privateKey: MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKNPuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gAkM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWowcSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99EcvDQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthhYhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3UP8iWi1Qw0Y= - springdoc: api-docs: # 是否开启接口文档