diff --git a/.gitignore b/.gitignore index 8280961..fcf7ca1 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ hs_err_pid* /scripts/docker/thirdparties/doris/docker-compose-doris.yaml /dms-api/src/main/resources/application-local.yml +/.kilocode/ diff --git a/dms-api/src/main/java/com/basedt/dms/api/init/DatabaseInitRunner.java b/dms-api/src/main/java/com/basedt/dms/api/init/DatabaseInitRunner.java index 05fd49b..b40040d 100644 --- a/dms-api/src/main/java/com/basedt/dms/api/init/DatabaseInitRunner.java +++ b/dms-api/src/main/java/com/basedt/dms/api/init/DatabaseInitRunner.java @@ -19,19 +19,19 @@ import com.basedt.dms.plugins.datasource.utils.JdbcUtil; import lombok.extern.slf4j.Slf4j; -import org.apache.ibatis.jdbc.ScriptRunner; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.core.annotation.Order; +import org.springframework.core.io.Resource; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.jdbc.datasource.init.ScriptUtils; import org.springframework.stereotype.Component; -import org.springframework.util.ClassUtils; -import java.io.InputStream; -import java.io.InputStreamReader; import java.sql.Connection; import java.sql.PreparedStatement; -import java.util.ArrayList; +import java.util.Arrays; +import java.util.Comparator; import java.util.List; @Order(1) @@ -55,17 +55,13 @@ public class DatabaseInitRunner implements ApplicationRunner { public void run(ApplicationArguments args) throws Exception { if (isNeedInit()) { log.info("Initialize database script"); - List inList = new ArrayList<>(); - inList.add(ClassUtils.getDefaultClassLoader().getResourceAsStream("db/init/dms.sql")); - inList.add(ClassUtils.getDefaultClassLoader().getResourceAsStream("db/init/dms_quartz.sql")); + Resource[] resources = new PathMatchingResourcePatternResolver().getResources("classpath:db/init/*.sql"); + List sortedResources = Arrays.stream(resources).sorted(Comparator.comparing(Resource::getFilename, Comparator.nullsLast(String::compareTo))).toList(); Connection conn = null; try { conn = JdbcUtil.getConnection(this.jdbc_url, this.driverClassName, this.userName, this.password, null); - for (InputStream in : inList) { - ScriptRunner scriptRunner = new ScriptRunner(conn); - scriptRunner.setSendFullScript(true); - scriptRunner.setLogWriter(null); - scriptRunner.runScript(new InputStreamReader(in)); + for (Resource resource : sortedResources) { + ScriptUtils.executeSqlScript(conn, resource); } } catch (Exception e) { log.info("sql script init error : {}", e.getMessage()); diff --git a/dms-api/src/main/resources/db/init/dms.sql b/dms-api/src/main/resources/db/init/01-dms.sql similarity index 80% rename from dms-api/src/main/resources/db/init/dms.sql rename to dms-api/src/main/resources/db/init/01-dms.sql index 2fe1f81..1e15e57 100644 --- a/dms-api/src/main/resources/db/init/dms.sql +++ b/dms-api/src/main/resources/db/init/01-dms.sql @@ -270,49 +270,6 @@ comment on column sys_privilege.editor is 'editor'; comment on column sys_privilege.update_time is 'update time'; create unique index un_sys_privilege on sys_privilege (privilege_code); -/* init data */ -truncate table sys_privilege; -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dct:0','dms.p.sys.dic.dct.show','sys:dic:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wss:wpi:2','dms.p.ws.wss.wpi.edit','ws:wss:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:rol:rli:2','dms.p.sys.rol.rli.edit','sys:rol:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wsh:dft:0','dms.p.ws.wsh.dft.show','ws:dft:dft:0','2','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:dft:dft:0','dms.p.ws.dft.dft.show','root','1','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wsd:wdl:0','dms.p.ws.wsd.wdl.show','ws:wsd:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wsd:wdl:3','dms.p.ws.wsd.wdl.delete','ws:wsd:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wso:dft:0','dms.p.ws.wso.dft.show','ws:dft:dft:0','2','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:rol:rli:0','dms.p.sys.rol.rli.show','sys:rol:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:rol:rli:4','dms.p.sys.rol.rli.grant','sys:rol:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wsd:wdl:1','dms.p.ws.wsd.wdl.add','ws:wsd:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dct:2','dms.p.sys.dic.dct.edit','sys:dic:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wss:wpi:1','dms.p.ws.wss.wpi.add','ws:wss:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:usr:uli:2','dms.p.sys.usr.uli.edit','sys:usr:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:usr:uli:3','dms.p.sys.usr.uli.delete','sys:usr:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dcd:1','dms.p.sys.dic.dcd.add','sys:dic:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dcd:3','dms.p.sys.dic.dcd.delete','sys:dic:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:rol:rli:3','dms.p.sys.rol.rli.delete','sys:rol:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wsd:wdl:2','dms.p.ws.wsd.wdl.edit','ws:wsd:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wse:dft:0','dms.p.ws.wse.dft.show','ws:dft:dft:0','2','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:usr:dft:0','dms.p.sys.usr.dft.show','sys:dft:dft:0','2','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dct:1','dms.p.sys.dic.dct.add','sys:dic:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wsh:whl:0','dms.p.ws.wsh.whl.show','ws:wsh:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dcd:2','dms.p.sys.dic.dcd.edit','sys:dic:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wsd:dft:0','dms.p.ws.wsd.dft.show','ws:dft:dft:0','2','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:rol:rli:1','dms.p.sys.rol.rli.add','sys:rol:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wsi:whi:0','dms.p.ws.wsi.whi.show','ws:wsi:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wss:wpi:3','dms.p.ws.wss.wpi.delete','ws:wss:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:usr:uli:1','dms.p.sys.usr.uli.add','sys:usr:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:usr:uli:0','dms.p.sys.usr.uli.show','sys:usr:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dct:3','dms.p.sys.dic.dct.delete','sys:dic:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:set:dft:0','dms.p.sys.set.dft.show','sys:dft:dft:0','2','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dcd:0','dms.p.sys.dic.dcd.show','sys:dic:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dft:dft:0','dms.p.sys.dft.dft.show','root','1','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wsi:dft:0','dms.p.ws.wsi.dft.show','ws:dft:dft:0','2','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wss:wpi:0','dms.p.ws.wss.wpi.show','ws:wss:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wss:dft:0','dms.p.ws.wss.dft.show','ws:dft:dft:0','2','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:rol:dft:0','dms.p.sys.rol.dft.show','sys:dft:dft:0','2','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dft:0','dms.p.sys.dic.dft.show','sys:dft:dft:0','2','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wse:whe:0','dms.p.ws.wse.whe.show','ws:wse:dft:0','3','sys','sys'); -insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dct:7','dms.p.sys.dic.dct.detail','sys:dic:dft:0','3','sys','sys'); drop table if exists sys_role_privilege; create table sys_role_privilege @@ -334,30 +291,6 @@ comment on column sys_role_privilege.create_time is 'create time'; comment on column sys_role_privilege.editor is 'editor'; comment on column sys_role_privilege.update_time is 'update time'; create unique index un_sys_role_privilege on sys_role_privilege (role_id, privilege_id); -/* init data */ -insert into sys_role_privilege(role_id, privilege_id, creator, editor) -select r.id as role_id, p.id as privilege_id, 'sys' as creator, 'sys' as editor -from sys_role r, - sys_privilege p -where r.role_code = '_super_admin'; - -insert into sys_role_privilege(role_id, privilege_id, creator, editor) -select r.id as role_id, - p.id as privilege_id, - 'sys' as creator, - 'sys' as editor -from sys_role r, - sys_privilege p -where r.role_code = '_normal' - and (p.privilege_code in ( - 'ws:dft:dft:0', 'sys:dic:dcd:0', 'sys:dic:dct:0' - ) - or p.privilege_code like 'ws:wsd%' - or p.privilege_code like 'ws:wss%' - or p.privilege_code like 'ws:wsh%' - or p.privilege_code like 'ws:wsi%' - or p.privilege_code like 'ws:wse%' - ); drop table if exists sys_user_role; create table sys_user_role diff --git a/dms-api/src/main/resources/db/init/dms_quartz.sql b/dms-api/src/main/resources/db/init/02-dms-quartz.sql similarity index 100% rename from dms-api/src/main/resources/db/init/dms_quartz.sql rename to dms-api/src/main/resources/db/init/02-dms-quartz.sql diff --git a/dms-api/src/main/resources/db/init/99-dms-privilege.sql b/dms-api/src/main/resources/db/init/99-dms-privilege.sql new file mode 100644 index 0000000..6af0fc3 --- /dev/null +++ b/dms-api/src/main/resources/db/init/99-dms-privilege.sql @@ -0,0 +1,90 @@ +/* init privilege data */ +truncate table sys_privilege; +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dct:0','dms.p.sys.dic.dct.show','sys:dic:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wss:wpi:2','dms.p.ws.wss.wpi.edit','ws:wss:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dst:dft:dft:0','dms.p.dst.dft.dft.show','dg:dft:dft:0','1','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wsh:dft:0','dms.p.ws.wsh.dft.show','ws:dft:dft:0','2','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:dft:dft:0','dms.p.ws.dft.dft.show','root','1','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:rol:rli:0','dms.p.sys.rol.rli.show','sys:rol:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:rol:rli:4','dms.p.sys.rol.rli.grant','sys:rol:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wss:wpi:1','dms.p.ws.wss.wpi.add','ws:wss:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:usr:uli:2','dms.p.sys.usr.uli.edit','sys:usr:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:usr:uli:3','dms.p.sys.usr.uli.delete','sys:usr:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dcd:1','dms.p.sys.dic.dcd.add','sys:dic:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dcd:3','dms.p.sys.dic.dcd.delete','sys:dic:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dgd:ddi:0','dms.p.dg.dgd.ddi.show','dg:dgd:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wsd:wdl:2','dms.p.ws.wsd.wdl.edit','ws:wsd:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wse:dft:0','dms.p.ws.wse.dft.show','ws:dft:dft:0','2','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:usr:dft:0','dms.p.sys.usr.dft.show','sys:dft:dft:0','2','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dct:1','dms.p.sys.dic.dct.add','sys:dic:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wsd:dft:0','dms.p.ws.wsd.dft.show','ws:dft:dft:0','2','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:rol:rli:1','dms.p.sys.rol.rli.add','sys:rol:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wss:wpi:3','dms.p.ws.wss.wpi.delete','ws:wss:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dgm:dft:0','dms.p.dg.dgm.dft.show','dst:dft:dft:0','2','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:usr:uli:1','dms.p.sys.usr.uli.add','sys:usr:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dgd:ddi:2','dms.p.dg.dgd.ddi.edit','dg:dgd:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:usr:uli:0','dms.p.sys.usr.uli.show','sys:usr:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dcd:0','dms.p.sys.dic.dcd.show','sys:dic:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dft:dft:0','dms.p.sys.dft.dft.show','root','1','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dgm:dmi:0','dms.p.dg.dgm.dmi.show','dg:dgm:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dge:dei:0','dms.p.dg.dge.dei.show','dg:dge:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wss:wpi:0','dms.p.ws.wss.wpi.show','ws:wss:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dgm:dmi:3','dms.p.dg.dgm.dmi.delete','dg:dgm:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wss:dft:0','dms.p.ws.wss.dft.show','ws:dft:dft:0','2','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dft:0','dms.p.sys.dic.dft.show','sys:dft:dft:0','2','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wse:whe:0','dms.p.ws.wse.whe.show','ws:wse:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dgm:dmi:1','dms.p.dg.dgm.dmi.add','dg:dgm:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dgd:dft:0','dms.p.dg.dgd.dft.show','dst:dft:dft:0','2','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:rol:rli:2','dms.p.sys.rol.rli.edit','sys:rol:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dgs:dgi:0','dms.p.dg.dgs.dgi.show','dg:dgs:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dgd:ddi:3','dms.p.dg.dgd.ddi.delete','dg:dgd:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wsd:wdl:0','dms.p.ws.wsd.wdl.show','ws:wsd:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wsd:wdl:3','dms.p.ws.wsd.wdl.delete','ws:wsd:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wso:dft:0','dms.p.ws.wso.dft.show','ws:dft:dft:0','2','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wsd:wdl:1','dms.p.ws.wsd.wdl.add','ws:wsd:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dge:dft:0','dms.p.dg.dge.dft.show','dst:dft:dft:0','2','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dct:2','dms.p.sys.dic.dct.edit','sys:dic:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dft:dft:0','dms.p.dg.dft.dft.show','root','1','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dge:dei:1','dms.p.dg.dge.dei.add','dg:dge:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:rol:rli:3','dms.p.sys.rol.rli.delete','sys:rol:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dgs:dgi:3','dms.p.dg.dgs.dgi.delete','dg:dgs:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wsh:whl:0','dms.p.ws.wsh.whl.show','ws:wsh:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dcd:2','dms.p.sys.dic.dcd.edit','sys:dic:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dgs:dgi:2','dms.p.dg.dgs.dgi.edit','dg:dgs:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dgs:dft:0','dms.p.dg.dgs.dft.show','dst:dft:dft:0','2','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wsi:whi:0','dms.p.ws.wsi.whi.show','ws:wsi:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dgm:dmi:2','dms.p.dg.dgm.dmi.edit','dg:dgm:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dct:3','dms.p.sys.dic.dct.delete','sys:dic:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:set:dft:0','dms.p.sys.set.dft.show','sys:dft:dft:0','2','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dgs:dgi:1','dms.p.dg.dgs.dgi.add','dg:dgs:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('ws:wsi:dft:0','dms.p.ws.wsi.dft.show','ws:dft:dft:0','2','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dge:dei:3','dms.p.dg.dge.dei.delete','dg:dge:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:rol:dft:0','dms.p.sys.rol.dft.show','sys:dft:dft:0','2','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('sys:dic:dct:7','dms.p.sys.dic.dct.detail','sys:dic:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dgd:ddi:1','dms.p.dg.dgd.ddi.add','dg:dgd:dft:0','3','sys','sys'); +insert into sys_privilege (privilege_code,privilege_name,parent_code,level,creator,editor) values ('dg:dge:dei:2','dms.p.dg.dge.dei.edit','dg:dge:dft:0','3','sys','sys'); + +/* init role privilege */ +insert into sys_role_privilege(role_id, privilege_id, creator, editor) +select r.id as role_id, p.id as privilege_id, 'sys' as creator, 'sys' as editor +from sys_role r, + sys_privilege p +where r.role_code = '_super_admin'; + +insert into sys_role_privilege(role_id, privilege_id, creator, editor) +select r.id as role_id, + p.id as privilege_id, + 'sys' as creator, + 'sys' as editor +from sys_role r, + sys_privilege p +where r.role_code = '_normal' + and (p.privilege_code in ( + 'ws:dft:dft:0', 'sys:dic:dcd:0', 'sys:dic:dct:0' + ) + or p.privilege_code like 'ws:wsd%' + or p.privilege_code like 'ws:wss%' + or p.privilege_code like 'ws:wsh%' + or p.privilege_code like 'ws:wsi%' + or p.privilege_code like 'ws:wse%' + ); \ No newline at end of file diff --git a/dms-api/src/main/resources/static/i18n/messages_en_US.properties b/dms-api/src/main/resources/static/i18n/messages_en_US.properties index 680c242..9f2e448 100644 --- a/dms-api/src/main/resources/static/i18n/messages_en_US.properties +++ b/dms-api/src/main/resources/static/i18n/messages_en_US.properties @@ -97,7 +97,6 @@ dms.meta.catalog.schema=Schema dms.meta.catalog.table=Table dms.meta.catalog.view=View dms.meta.catalog.materializedView=Materialized View -dms.meta.catalog.table.index=Index dms.meta.catalog.function=Function dms.meta.catalog.sequence=Sequence dms.meta.catalog.foreignTable=Foreign Table diff --git a/dms-api/src/main/resources/static/i18n/messages_zh_CN.properties b/dms-api/src/main/resources/static/i18n/messages_zh_CN.properties index c11cc77..6cdac98 100644 --- a/dms-api/src/main/resources/static/i18n/messages_zh_CN.properties +++ b/dms-api/src/main/resources/static/i18n/messages_zh_CN.properties @@ -45,8 +45,8 @@ dms.p.ws.wso.dft.show=\u6982\u89C8 dms.p.ws.wss.dft.show=\u5DE5\u4F5C\u7A7A\u95F4 dms.p.ws.wsd.dft.show=\u6570\u636E\u6E90 dms.p.ws.wsh.dft.show=\u8FD0\u884C\u5386\u53F2 -dms.p.ws.wse.dft.show=\u6570\u636e\u5bfc\u51fa -dms.p.ws.wsi.dft.show=\u6570\u636e\u5bfc\u5165 +dms.p.ws.wse.dft.show=\u6570\u636E\u5BFC\u51FA +dms.p.ws.wsi.dft.show=\u6570\u636E\u5BFC\u5165 #block privilege dms.p.block.dft=\u533A\u5757 dms.p.sys.dic.dct.show=\u67E5\u8BE2\u5B57\u5178\u7C7B\u578B @@ -56,8 +56,8 @@ dms.p.sys.usr.uli.show=\u67E5\u8BE2\u7528\u6237 dms.p.ws.wss.wpi.show=\u67E5\u8BE2\u5DE5\u4F5C\u7A7A\u95F4 dms.p.ws.wsd.wdl.show=\u67E5\u8BE2\u6570\u636E\u6E90 dms.p.ws.wsh.whl.show=\u67E5\u8BE2\u8FD0\u884C\u5386\u53F2 -dms.p.ws.wse.whe.show=\u67E5\u8BE2\u6570\u636e\u5bfc\u51fa -dms.p.ws.wsi.whi.show=\u67E5\u8BE2\u6570\u636e\u5bfc\u5165 +dms.p.ws.wse.whe.show=\u67E5\u8BE2\u6570\u636E\u5BFC\u51FA +dms.p.ws.wsi.whi.show=\u67E5\u8BE2\u6570\u636E\u5BFC\u5165 # action privilege dms.p.sys.dic.dct.detail=\u67E5\u770B\u5B57\u5178\u8BE6\u60C5 dms.p.sys.dic.dct.edit=\u7F16\u8F91\u5B57\u5178\u7C7B\u578B @@ -96,7 +96,6 @@ dms.meta.catalog.schema=\u6A21\u5F0F dms.meta.catalog.table=\u8868 dms.meta.catalog.view=\u89C6\u56FE dms.meta.catalog.materializedView=\u7269\u5316\u89C6\u56FE -dms.meta.catalog.table.index=\u7D22\u5F15 dms.meta.catalog.function=\u51FD\u6570 dms.meta.catalog.sequence=\u5E8F\u5217 dms.meta.catalog.foreignTable=\u5916\u90E8\u8868 diff --git a/dms-dao/src/main/java/com/basedt/dms/dao/entity/master/workspace/DmsDataTask.java b/dms-dao/src/main/java/com/basedt/dms/dao/entity/master/workspace/DmsDataTask.java index b7b93e9..039cd1f 100644 --- a/dms-dao/src/main/java/com/basedt/dms/dao/entity/master/workspace/DmsDataTask.java +++ b/dms-dao/src/main/java/com/basedt/dms/dao/entity/master/workspace/DmsDataTask.java @@ -23,7 +23,7 @@ import lombok.EqualsAndHashCode; @Data -@EqualsAndHashCode(callSuper = false) +@EqualsAndHashCode(callSuper = true) @TableName(value = "dms_data_task", resultMap = "dmsDataTaskMap") public class DmsDataTask extends BaseDO { diff --git a/dms-dao/src/main/resources/com.basedt.dms.dao.mapper/master/workspace/DmsDataSourceMapper.xml b/dms-dao/src/main/resources/com.basedt.dms.dao.mapper/master/workspace/DmsDataSourceMapper.xml index 72363df..02610a8 100644 --- a/dms-dao/src/main/resources/com.basedt.dms.dao.mapper/master/workspace/DmsDataSourceMapper.xml +++ b/dms-dao/src/main/resources/com.basedt.dms.dao.mapper/master/workspace/DmsDataSourceMapper.xml @@ -35,5 +35,4 @@ - \ No newline at end of file diff --git a/dms-dao/src/main/resources/com.basedt.dms.dao.mapper/master/workspace/DmsDataTask.xml b/dms-dao/src/main/resources/com.basedt.dms.dao.mapper/master/workspace/DmsDataTask.xml index f93aa61..c01b4fd 100644 --- a/dms-dao/src/main/resources/com.basedt.dms.dao.mapper/master/workspace/DmsDataTask.xml +++ b/dms-dao/src/main/resources/com.basedt.dms.dao.mapper/master/workspace/DmsDataTask.xml @@ -30,8 +30,9 @@ + + - \ No newline at end of file diff --git a/dms-dao/src/main/resources/com.basedt.dms.dao.mapper/master/workspace/DmsFileCatalog.xml b/dms-dao/src/main/resources/com.basedt.dms.dao.mapper/master/workspace/DmsFileCatalog.xml index e387698..70a3f9f 100644 --- a/dms-dao/src/main/resources/com.basedt.dms.dao.mapper/master/workspace/DmsFileCatalog.xml +++ b/dms-dao/src/main/resources/com.basedt.dms.dao.mapper/master/workspace/DmsFileCatalog.xml @@ -28,5 +28,4 @@ - \ No newline at end of file diff --git a/dms-dao/src/main/resources/com.basedt.dms.dao.mapper/master/workspace/DmsWorkspaceMapper.xml b/dms-dao/src/main/resources/com.basedt.dms.dao.mapper/master/workspace/DmsWorkspaceMapper.xml index 85d254a..e64338e 100644 --- a/dms-dao/src/main/resources/com.basedt.dms.dao.mapper/master/workspace/DmsWorkspaceMapper.xml +++ b/dms-dao/src/main/resources/com.basedt.dms.dao.mapper/master/workspace/DmsWorkspaceMapper.xml @@ -29,5 +29,4 @@ - \ No newline at end of file diff --git a/dms-ui/config/routes.ts b/dms-ui/config/routes.ts index 6eaae73..d84214d 100644 --- a/dms-ui/config/routes.ts +++ b/dms-ui/config/routes.ts @@ -140,6 +140,7 @@ export default [ }, ], }, + { path: "/user/center", component: "./User", diff --git a/dms-ui/package.json b/dms-ui/package.json index 4f7dfd5..ba628ca 100644 --- a/dms-ui/package.json +++ b/dms-ui/package.json @@ -51,8 +51,8 @@ "@ag-grid-community/react": "^31.1.1", "@ag-grid-community/styles": "^31.1.1", "@ant-design/icons": "^4.7.0", - "@ant-design/pro-components": "^2.3.47", - "@ant-design/pro-layout": "^7.10.3", + "@ant-design/pro-components": "2.8.10", + "@ant-design/pro-layout": "7.22.7", "@ant-design/use-emotion-css": "1.0.4", "@ant-design/x": "^1.0.6", "@dnd-kit/core": "^6.3.1", @@ -63,7 +63,7 @@ "@monaco-editor/react": "^4.4.6", "@types/babel__template": "^7.4.1", "@umijs/route-utils": "^2.1.3", - "antd": "^5.25.2", + "antd": "^5.29.3", "antd-style": "^3.7.1", "copy-to-clipboard": "^3.3.3", "file-saver": "^2.0.5", @@ -73,7 +73,7 @@ "monaco-editor": "^0.37.0", "monaco-themes": "^0.4.4", "omit.js": "^2.0.2", - "rc-menu": "^9.6.4", + "rc-menu": "9.16.1", "rc-util": "^5.24.4", "react": "^18.0.0", "react-activation": "^0.12.4", diff --git a/dms-ui/pom.xml b/dms-ui/pom.xml index 20aee7b..fcd111b 100644 --- a/dms-ui/pom.xml +++ b/dms-ui/pom.xml @@ -12,9 +12,9 @@ dms-ui - v18.20.5 - v9.10.0 - 1.12.1 + v20.19.6 + 10.26.2 + 1.15.4 diff --git a/dms-ui/src/app.tsx b/dms-ui/src/app.tsx index 16508c1..3941e58 100644 --- a/dms-ui/src/app.tsx +++ b/dms-ui/src/app.tsx @@ -10,6 +10,18 @@ import { errorConfig } from "./requestErrorConfig"; import { AuthService } from "./services/admin/auth.service"; const whiteList: string[] = ["/user/login", "/user/register"]; +// Temporary fix for findDOMNode deprecation warning in development +// This only runs in development mode and will not affect production builds +if (process.env.NODE_ENV === 'development') { + const originalConsoleError = console.error; + console.error = (...args) => { + if (args[0]?.includes?.('findDOMNode is deprecated')) { + return; + } + originalConsoleError.apply(console, args); + }; +} + /** * @see https://umijs.org/zh-CN/plugins/plugin-initial-state * */ @@ -91,7 +103,7 @@ export const layout: RunTimeLayoutConfig = ({ }, rightContentRender: () => , menuFooterRender: (props) => { - false; + return false; }, onPageChange: () => { const { location } = history; diff --git a/dms-ui/src/components/Header/HeaderMegaMenu.tsx b/dms-ui/src/components/Header/HeaderMegaMenu.tsx index e239bee..20f1a10 100644 --- a/dms-ui/src/components/Header/HeaderMegaMenu.tsx +++ b/dms-ui/src/components/Header/HeaderMegaMenu.tsx @@ -2,96 +2,183 @@ import { ProProvider } from '@ant-design/pro-components'; import { HeaderViewProps } from '@ant-design/pro-layout/es/components/Header'; import { history, Icon } from '@umijs/max'; import { Drawer } from 'antd'; -import React, { useContext, useState } from 'react'; +import React, { useContext, useLayoutEffect, useCallback, useState, useMemo } from 'react'; import './index.less'; export type HeaderMegaMenuProps = { headerProps: HeaderViewProps; }; -type HeaderMegaMenuItem = { +type MenuDataItem = { name?: string; icon?: React.ReactNode; - children?: HeaderMegaMenuItem[]; + children?: MenuDataItem[]; path?: string; + [key: string]: any; }; -const MegaMenuItem: React.FC<{ - item: HeaderMegaMenuItem; - hoverStyle: Record; - handleMouseEnter: (item: HeaderMegaMenuItem, type: string) => void; +type HeaderMegaMenuItem = MenuDataItem & { + level: number; +}; + +// check if menu item should be displayed (filter out redirect types) +const shouldDisplayMenuItem = (item: MenuDataItem): boolean => { + if (!item.name) return false; + if (item.redirect) return false; + if (item.menuRender === false) return false; + return true; +}; + +// convert MenuDataItem to HeaderMegaMenuItem and filter out items that shouldn't be displayed +const convertMenuDataToHeaderMegaMenuItem = (menuData: MenuDataItem[], level: number = 1): HeaderMegaMenuItem[] => { + return menuData + .filter(shouldDisplayMenuItem) + .map(item => ({ + ...item, + level, + children: item.children ? convertMenuDataToHeaderMegaMenuItem(item.children, level + 1) : undefined, + })); +}; + +// get menu items for the current level based on hover state +const getCurrentLevelMenuItems = ( + menuData: HeaderMegaMenuItem[], + hoverStyle: Record, + currentLevel: number +): HeaderMegaMenuItem[] => { + if (currentLevel === 1) { + return menuData; + } + + let currentItems = menuData; + for (let level = 1; level < currentLevel; level++) { + const activeItemName = hoverStyle[level]; + if (!activeItemName) { + return []; + } + + const activeItem = currentItems.find(item => item.name === activeItemName); + if (!activeItem || !activeItem.children) { + return []; + } + + currentItems = activeItem.children as HeaderMegaMenuItem[]; + } + + return currentItems; +}; + +const MenuLevelRenderer: React.FC<{ + items: HeaderMegaMenuItem[]; + hoverStyle: Record; + handleMouseEnter: (item: HeaderMegaMenuItem, level: number) => void; setOpen: React.Dispatch>; - setHoverStyle: React.Dispatch>>; - setHoverList: React.Dispatch>; + setHoverStyle: React.Dispatch>>; setWidth: React.Dispatch>; - type?: string; -}> = ({ - item, - hoverStyle, - handleMouseEnter, - setOpen, - type = '1', - setHoverStyle, - setHoverList, - setWidth, -}) => ( -
  • { - handleMouseEnter(item, type); - }} - onClick={ - type === '2' - ? () => { + level: number; +}> = ({ items, hoverStyle, handleMouseEnter, setOpen, setHoverStyle, setWidth, level }) => ( +
      + {items.filter(item => item.name).map((item, index) => ( +
    • { + handleMouseEnter(item, level); + }} + onClick={ + item.children ? undefined : () => { history.push(item.path as string); setOpen(false); setHoverStyle({}); - setHoverList([]); - setWidth(256); } - : undefined - } - > -
      - {item.icon} - {item.name} -
      - {type !== '2' && ( -
      - {hoverStyle[type] === item.name ? ( - - ) : ( - + } + > +
      + {item.icon ? item.icon : ""} + {item.name} +
      + {item.children && ( +
      + {(hoverStyle[level] === item.name) ? ( + + ) : ( + + )} +
      )} -
      - )} -
    • + + ))} +
    ); const HeaderMegaMenu: React.FC = ({ headerProps }) => { const { token } = useContext(ProProvider); const [open, setOpen] = useState(false); const [width, setWidth] = useState(256); - const [hoverList, setHoverList] = useState([]); - const [hoverStyle, setHoverStyle] = useState>({}); + const [hoverStyle, setHoverStyle] = useState>({}); const onClose = () => { setOpen(false); setHoverStyle({}); - setHoverList([]); - setWidth(256); }; - const handleMouseEnter = (item: HeaderMegaMenuItem, type: string) => { - setHoverStyle({ ...hoverStyle, [type]: item.name || '' }); - setWidth(512); - setTimeout(() => { - item.children && setHoverList(item.children); - }, 100); - }; + const handleMouseEnter = useCallback((item: HeaderMegaMenuItem, level: number) => { + // clear hover state for current level and below + const newHoverStyle = { ...hoverStyle }; + for (let i = level; i <= Object.keys(hoverStyle).length; i++) { + delete newHoverStyle[i]; + } + newHoverStyle[level] = item.name || ''; + setHoverStyle(newHoverStyle); + }, [hoverStyle]); + + // convert menuData to HeaderMegaMenuItem format and filter out items that shouldn't be displayed + const convertedMenuData = useMemo(() => { + return headerProps?.menuData ? convertMenuDataToHeaderMegaMenuItem(headerProps.menuData) : []; + }, [headerProps?.menuData]); + + // compute the number of menu levels to show based on the current hover state + const maxLevelToShow = useMemo(() => { + if (!open || convertedMenuData.length === 0) return 1; + + // find the maximum depth of the current hover path + let maxLevel = 1; + let currentItems: HeaderMegaMenuItem[] = convertedMenuData; + + const hoverLevels = Object.keys(hoverStyle).map(Number).sort((a, b) => a - b); + if (hoverLevels.length === 0) return 1; + + for (let i = 0; i < hoverLevels.length; i++) { + const level = hoverLevels[i]; + const activeItemName = hoverStyle[level]; + if (!activeItemName) break; + + const activeItem = currentItems.find(item => item.name === activeItemName); + if (!activeItem || !activeItem.children) break; + + maxLevel = level + 1; + currentItems = activeItem.children as HeaderMegaMenuItem[]; + } + + return maxLevel; + }, [open, hoverStyle, convertedMenuData]); + + const currentWidth = useMemo(() => { + return open ? 256 * maxLevelToShow : 256; + }, [open, maxLevelToShow]); + + // sync width state with currentWidth + useLayoutEffect(() => { + const rafId = requestAnimationFrame(() => { + setWidth(currentWidth); + }); + return () => { + cancelAnimationFrame(rafId); + }; + }, [currentWidth]); return (
    @@ -100,8 +187,6 @@ const HeaderMegaMenu: React.FC = ({ headerProps }) => { onClick={() => { if (open) { setHoverStyle({}); - setHoverList([]); - setWidth(256); } setOpen(!open); }} @@ -118,45 +203,36 @@ const HeaderMegaMenu: React.FC = ({ headerProps }) => { - +
    -
      - {headerProps?.menuData?.map( - (item, index) => - item.name && ( - - ), - )} -
    - {hoverList.length > 0 && ( -
      - {hoverList.map( - (item, index) => - item.name && ( - - ), - )} -
    - )} + {Array.from({ length: maxLevelToShow }, (_, index) => { + const level = index + 1; + const menuItems = getCurrentLevelMenuItems( + convertedMenuData, + hoverStyle, + level + ).filter(item => item.name); + + if (menuItems.length === 0) return null; + + return ( + + ); + })}
    diff --git a/dms-ui/src/constants.ts b/dms-ui/src/constants.ts index 55b5fb9..709d0e7 100644 --- a/dms-ui/src/constants.ts +++ b/dms-ui/src/constants.ts @@ -13,45 +13,67 @@ export const PRIVILEGES = { roleSuperAdmin: '_super_admin', sysDicDctShow: 'sys:dic:dct:0', wsWssWpiEdit: 'ws:wss:wpi:2', - sysRolRliEdit: 'sys:rol:rli:2', + dstDftDftShow: 'dst:dft:dft:0', wsWshDftShow: 'ws:wsh:dft:0', wsDftDftShow: 'ws:dft:dft:0', - wsWsdWdlShow: 'ws:wsd:wdl:0', - wsWsdWdlDelete: 'ws:wsd:wdl:3', - wsWsoDftShow: 'ws:wso:dft:0', sysRolRliShow: 'sys:rol:rli:0', sysRolRliGrant: 'sys:rol:rli:4', - wsWsdWdlAdd: 'ws:wsd:wdl:1', - sysDicDctEdit: 'sys:dic:dct:2', wsWssWpiAdd: 'ws:wss:wpi:1', sysUsrUliEdit: 'sys:usr:uli:2', sysUsrUliDelete: 'sys:usr:uli:3', sysDicDcdAdd: 'sys:dic:dcd:1', sysDicDcdDelete: 'sys:dic:dcd:3', - sysRolRliDelete: 'sys:rol:rli:3', + dgDgdDdiShow: 'dg:dgd:ddi:0', wsWsdWdlEdit: 'ws:wsd:wdl:2', wsWseDftShow: 'ws:wse:dft:0', sysUsrDftShow: 'sys:usr:dft:0', sysDicDctAdd: 'sys:dic:dct:1', - wsWshWhlShow: 'ws:wsh:whl:0', - sysDicDcdEdit: 'sys:dic:dcd:2', wsWsdDftShow: 'ws:wsd:dft:0', sysRolRliAdd: 'sys:rol:rli:1', - wsWsiWhiShow: 'ws:wsi:whi:0', wsWssWpiDelete: 'ws:wss:wpi:3', + dgDgmDftShow: 'dg:dgm:dft:0', sysUsrUliAdd: 'sys:usr:uli:1', + dgDgdDdiEdit: 'dg:dgd:ddi:2', sysUsrUliShow: 'sys:usr:uli:0', - sysDicDctDelete: 'sys:dic:dct:3', - sysSetDftShow: 'sys:set:dft:0', sysDicDcdShow: 'sys:dic:dcd:0', sysDftDftShow: 'sys:dft:dft:0', - wsWsiDftShow: 'ws:wsi:dft:0', + dgDgmDmiShow: 'dg:dgm:dmi:0', + dgDgeDeiShow: 'dg:dge:dei:0', wsWssWpiShow: 'ws:wss:wpi:0', + dgDgmDmiDelete: 'dg:dgm:dmi:3', wsWssDftShow: 'ws:wss:dft:0', - sysRolDftShow: 'sys:rol:dft:0', sysDicDftShow: 'sys:dic:dft:0', wsWseWheShow: 'ws:wse:whe:0', + dgDgmDmiAdd: 'dg:dgm:dmi:1', + dgDgdDftShow: 'dg:dgd:dft:0', + sysRolRliEdit: 'sys:rol:rli:2', + dgDgsDgiShow: 'dg:dgs:dgi:0', + dgDgdDdiDelete: 'dg:dgd:ddi:3', + wsWsdWdlShow: 'ws:wsd:wdl:0', + wsWsdWdlDelete: 'ws:wsd:wdl:3', + wsWsoDftShow: 'ws:wso:dft:0', + wsWsdWdlAdd: 'ws:wsd:wdl:1', + dgDgeDftShow: 'dg:dge:dft:0', + sysDicDctEdit: 'sys:dic:dct:2', + dgDftDftShow: 'dg:dft:dft:0', + dgDgeDeiAdd: 'dg:dge:dei:1', + sysRolRliDelete: 'sys:rol:rli:3', + dgDgsDgiDelete: 'dg:dgs:dgi:3', + wsWshWhlShow: 'ws:wsh:whl:0', + sysDicDcdEdit: 'sys:dic:dcd:2', + dgDgsDgiEdit: 'dg:dgs:dgi:2', + dgDgsDftShow: 'dg:dgs:dft:0', + wsWsiWhiShow: 'ws:wsi:whi:0', + dgDgmDmiEdit: 'dg:dgm:dmi:2', + sysDicDctDelete: 'sys:dic:dct:3', + sysSetDftShow: 'sys:set:dft:0', + dgDgsDgiAdd: 'dg:dgs:dgi:1', + wsWsiDftShow: 'ws:wsi:dft:0', + dgDgeDeiDelete: 'dg:dge:dei:3', + sysRolDftShow: 'sys:rol:dft:0', sysDicDctDetail: 'sys:dic:dct:7', + dgDgdDdiAdd: 'dg:dgd:ddi:1', + dgDgeDeiEdit: 'dg:dge:dei:2', }; export const PATTERNS = { diff --git a/dms-ui/src/locales/en-US.ts b/dms-ui/src/locales/en-US.ts index d82326c..48ae831 100644 --- a/dms-ui/src/locales/en-US.ts +++ b/dms-ui/src/locales/en-US.ts @@ -80,4 +80,6 @@ export default { 'dms.common.operate.sql.success': 'Success', 'dms.common.operate.sql.failure': 'Failed', 'dms.common.operate.new.row': 'Add New Record', + 'dms.common.text.yes': 'Yes', + 'dms.common.text.no': 'No', }; diff --git a/dms-ui/src/locales/en-US/pages/admin.ts b/dms-ui/src/locales/en-US/pages/admin.ts index 5f0cf34..b7b9c8a 100644 --- a/dms-ui/src/locales/en-US/pages/admin.ts +++ b/dms-ui/src/locales/en-US/pages/admin.ts @@ -1,27 +1,27 @@ export default { - 'dms.admin.dict.type': 'Dictionary Type', - 'dms.admin.dict.type.dictTypeCode': 'Dictionary Type Code', - 'dms.admin.dict.type.dictTypeName': 'Dictionary Type Name', + 'dms.admin.dict.type': ' Dictionary Type', + 'dms.admin.dict.type.dictTypeCode': 'Type Code', + 'dms.admin.dict.type.dictTypeName': 'Type Name', 'dms.admin.dict.type.remark': 'Remarks', - 'dms.admin.dict.data': 'Dictionary Data', - 'dms.admin.dict.data.dictCode': 'Dictionary Data Code', - 'dms.admin.dict.data.dictValue': 'Dictionary Data Value', + 'dms.admin.dict.data': ' Dictionary Data', + 'dms.admin.dict.data.dictCode': 'Data Code', + 'dms.admin.dict.data.dictValue': 'Data Value', 'dms.admin.dict.data.remark': 'Remarks', - 'dms.admin.role': 'Role', + 'dms.admin.role': ' Role', 'dms.admin.role.list': 'Role List', 'dms.admin.role.roleCode': 'Role Code', 'dms.admin.role.roleName': 'Role Name', 'dms.admin.role.roleType': 'Role Type', 'dms.admin.role.roleStatus': 'Role Status', 'dms.admin.role.roleDesc': 'Description', - 'dms.admin.role.user.grant': 'User Authorization', + 'dms.admin.role.user.grant': 'Authorization', 'dms.admin.role.privilege.grant': 'Grant Privilege', 'dms.admin.role.privilege.grant.help': 'Sub-privileges and parent privileges have no association; both must be granted for them to take effect.', 'dms.admin.role.privilege.module': 'Module', 'dms.admin.role.privilege.page': 'Page', 'dms.admin.role.privilege.action': 'Action', - 'dms.admin.user': 'User', + 'dms.admin.user': ' User', 'dms.admin.user.list': 'User List', 'dms.admin.user.userName': 'User Name', 'dms.admin.user.nickName': 'Nickname', @@ -33,7 +33,7 @@ export default { 'dms.admin.user.registerChannel': 'Registration Channel', 'dms.admin.user.registerTime': 'Registration Time', 'dms.admin.user.registerIp': 'Registration IP', - 'dms.admin.user.role.grant': 'Role Authorization', + 'dms.admin.user.role.grant': 'Authorization', 'dms.admin.user.disable.title': 'Confirm Disable?', 'dms.admin.user.disable.content': 'Disabling will prevent the user from logging in!', 'dms.admin.user.enable.title': 'Confirm Enable?', diff --git a/dms-ui/src/locales/en-US/pages/workspace.ts b/dms-ui/src/locales/en-US/pages/workspace.ts index 895c0c7..8c97cfe 100644 --- a/dms-ui/src/locales/en-US/pages/workspace.ts +++ b/dms-ui/src/locales/en-US/pages/workspace.ts @@ -1,5 +1,5 @@ export default { - 'dms.workspace': 'Workspace', + 'dms.workspace': ' Workspace', 'dms.console.workspace.workspaceCode': 'Code', 'dms.console.workspace.workspaceName': 'Name', 'dms.console.workspace.owner': 'Owner', diff --git a/dms-ui/src/locales/zh-CN.ts b/dms-ui/src/locales/zh-CN.ts index 7260710..a849664 100644 --- a/dms-ui/src/locales/zh-CN.ts +++ b/dms-ui/src/locales/zh-CN.ts @@ -78,4 +78,6 @@ export default { 'dms.common.operate.sql.success': '成功', 'dms.common.operate.sql.failure': '失败', 'dms.common.operate.new.row': '新增一行数据', + 'dms.common.text.yes': '是', + 'dms.common.text.no': '否', }; diff --git a/dms-ui/src/pages/Admin/Dict/Data/index.tsx b/dms-ui/src/pages/Admin/Dict/Data/index.tsx index b756ef9..eade817 100644 --- a/dms-ui/src/pages/Admin/Dict/Data/index.tsx +++ b/dms-ui/src/pages/Admin/Dict/Data/index.tsx @@ -220,7 +220,7 @@ const DmsDictDataView: React.FC = () => { id: 'dms.common.operate.delete.confirm.content', }), onOk: () => { - DictDataService.deleteBatch(selectedRowKeys).then((resp) => { + DictDataService.deleteBatch(selectedRowKeys as (string | number)[]).then((resp) => { if (resp.success) { message.success( intl.formatMessage({ diff --git a/scripts/docker/build/dms-backend/Dockerfile b/scripts/docker/build/dms-backend/Dockerfile index 0a990a7..da0f93d 100644 --- a/scripts/docker/build/dms-backend/Dockerfile +++ b/scripts/docker/build/dms-backend/Dockerfile @@ -5,4 +5,4 @@ COPY ./dms-api/target/dms-api.jar . COPY ./scripts/docker/build/dms-backend/application-docker.yml . EXPOSE 8080 -ENTRYPOINT ["sh","-c","java --add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED -Dspring.profiles.active=docker -jar $DMS_HOME/dms/dms-api.jar --spring.config.location=$DMS_HOME/dms/application-docker.yml "] \ No newline at end of file +ENTRYPOINT ["sh","-c","java --add-opens=java.base/java.nio=ALL-UNNAMED -Dspring.profiles.active=docker -jar $DMS_HOME/dms/dms-api.jar --spring.config.location=$DMS_HOME/dms/application-docker.yml "] \ No newline at end of file