diff --git a/io.sc.platform.security/src/main/resources/liquibase/io.sc.platform.security_8.0.0_20220606__Security_Database_Schema_DDL.xml b/io.sc.platform.security/src/main/resources/liquibase/io.sc.platform.security_8.0.0_20220606__Security_Database_Schema_DDL.xml index 84d45542..c46c7050 100644 --- a/io.sc.platform.security/src/main/resources/liquibase/io.sc.platform.security_8.0.0_20220606__Security_Database_Schema_DDL.xml +++ b/io.sc.platform.security/src/main/resources/liquibase/io.sc.platform.security_8.0.0_20220606__Security_Database_Schema_DDL.xml @@ -109,6 +109,7 @@ + diff --git a/io.sc.platform.system.api/src/main/java/io/sc/platform/system/api/role/RoleVo.java b/io.sc.platform.system.api/src/main/java/io/sc/platform/system/api/role/RoleVo.java index 8f436d91..1f5463f3 100644 --- a/io.sc.platform.system.api/src/main/java/io/sc/platform/system/api/role/RoleVo.java +++ b/io.sc.platform.system.api/src/main/java/io/sc/platform/system/api/role/RoleVo.java @@ -13,6 +13,8 @@ public class RoleVo extends CorporationAuditorVo { private String description; //是否可用 private Boolean enable; + //排序号 + private Integer order; //默认首页面模版路径 private String indexPageUrl; @@ -56,6 +58,14 @@ public class RoleVo extends CorporationAuditorVo { this.enable = enable; } + public Integer getOrder() { + return order; + } + + public void setOrder(Integer order) { + this.order = order; + } + public String getIndexPageUrl() { return indexPageUrl; } diff --git a/io.sc.platform.system.frontend/src/views/role/Role.vue b/io.sc.platform.system.frontend/src/views/role/Role.vue index 588fdb75..30eb1b8e 100644 --- a/io.sc.platform.system.frontend/src/views/role/Role.vue +++ b/io.sc.platform.system.frontend/src/views/role/Role.vue @@ -6,11 +6,12 @@ ref="roleGridRef" :title="$t('system.role.grid.title')" :config-button="true" + dnd-mode="server" selection="multiple" db-click-operation="edit" :checkbox-selection="true" :data-url="Environment.apiContextPath('/api/system/role')" - :sort-by="['name']" + :sort-by="['order']" :query-form-cols-num="3" :query-form-fields="[ { name: 'code', label: $t('code'), type: 'w-text' }, @@ -20,6 +21,7 @@ :toolbar-configure="{ noIcon: false }" :toolbar-actions="['query', 'refresh', 'separator', 'add', 'clone', 'edit', 'remove', 'separator', 'view', 'separator', 'export']" :columns="[ + { width: 60, name: 'order', label: $t('order') }, { width: 200, name: 'code', label: $t('code') }, { width: '100%', name: 'name', label: $t('name') }, { width: 70, name: 'enable', label: $t('status'), align: 'center', format: Formater.enableTag() }, @@ -52,6 +54,7 @@ return SessionManager.isPrimaryCorporation(); }, }, + { name: 'order', label: $t('order'), type: 'w-integer' }, { name: 'enable', label: $t('enable'), type: 'w-checkbox', defaultValue: true }, ], }, diff --git a/io.sc.platform.system.frontend/src/views/shared/SelectRoleDialog.vue b/io.sc.platform.system.frontend/src/views/shared/SelectRoleDialog.vue index 5346f93b..ee7b7aae 100644 --- a/io.sc.platform.system.frontend/src/views/shared/SelectRoleDialog.vue +++ b/io.sc.platform.system.frontend/src/views/shared/SelectRoleDialog.vue @@ -2,8 +2,8 @@ diff --git a/io.sc.platform.system/src/main/java/io/sc/platform/system/role/jpa/entity/RoleEntity.java b/io.sc.platform.system/src/main/java/io/sc/platform/system/role/jpa/entity/RoleEntity.java index 8b2fe96a..bf95d35f 100644 --- a/io.sc.platform.system/src/main/java/io/sc/platform/system/role/jpa/entity/RoleEntity.java +++ b/io.sc.platform.system/src/main/java/io/sc/platform/system/role/jpa/entity/RoleEntity.java @@ -51,6 +51,10 @@ public class RoleEntity extends CorporationAuditorEntity { @Column(name="ENABLE_") @Convert(converter=NumericBooleanConverter.class) private Boolean enable; + + //排序 + @Column(name="ORDER_",nullable=false) + private Integer order; //默认首页面模版路径 @Column(name="INDEX_PAGE_URL_", length=255) @@ -95,6 +99,7 @@ public class RoleEntity extends CorporationAuditorEntity { vo.setName(this.getName()); vo.setDescription(this.getDescription()); vo.setEnable(this.getEnable()); + vo.setOrder(this.getOrder()); vo.setIndexPageUrl(this.getIndexPageUrl()); return vo; } @@ -178,7 +183,23 @@ public class RoleEntity extends CorporationAuditorEntity { public void setEnable(Boolean enable) { this.enable = enable; } - + + /** + * 获取排序号 + * @return 排序号 + */ + public Integer getOrder() { + return order; + } + + /** + * 设置排序号 + * @param order 排序号 + */ + public void setOrder(Integer order) { + this.order = order; + } + /** * 获取首页面URL * @return 首页面URL diff --git a/io.sc.platform.system/src/main/java/io/sc/platform/system/role/jpa/repository/RoleRepository.java b/io.sc.platform.system/src/main/java/io/sc/platform/system/role/jpa/repository/RoleRepository.java index 2e790260..2cecc7b6 100644 --- a/io.sc.platform.system/src/main/java/io/sc/platform/system/role/jpa/repository/RoleRepository.java +++ b/io.sc.platform.system/src/main/java/io/sc/platform/system/role/jpa/repository/RoleRepository.java @@ -3,6 +3,7 @@ package io.sc.platform.system.role.jpa.repository; import io.sc.platform.orm.repository.DaoRepository; import io.sc.platform.system.role.jpa.entity.RoleEntity; import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import java.util.List; @@ -14,4 +15,7 @@ public interface RoleRepository extends DaoRepository { public RoleEntity findByCode(String code); public List findByCodeIn(List codes); public List findAllByOrderByName(); + + @Query("select max(e.order)+1 from io.sc.platform.system.role.jpa.entity.RoleEntity e") + public Integer getNextOrder(); } diff --git a/io.sc.platform.system/src/main/java/io/sc/platform/system/role/service/impl/RoleServiceImpl.java b/io.sc.platform.system/src/main/java/io/sc/platform/system/role/service/impl/RoleServiceImpl.java index 07ad78fc..13e8b07e 100644 --- a/io.sc.platform.system/src/main/java/io/sc/platform/system/role/service/impl/RoleServiceImpl.java +++ b/io.sc.platform.system/src/main/java/io/sc/platform/system/role/service/impl/RoleServiceImpl.java @@ -4,11 +4,13 @@ import io.sc.platform.jdbc.util.SqlBatcher; import io.sc.platform.orm.service.impl.DaoServiceImpl; import io.sc.platform.orm.service.support.QueryParameter; import io.sc.platform.orm.service.support.QueryResult; +import io.sc.platform.security.util.SecurityUtil; import io.sc.platform.system.desensitizer.jpa.entity.DesensitizeFieldEntity; import io.sc.platform.system.menu.jpa.entity.MenuEntity; import io.sc.platform.system.role.jpa.entity.RoleEntity; import io.sc.platform.system.role.jpa.repository.RoleRepository; import io.sc.platform.system.role.service.RoleService; +import io.sc.platform.system.shortcutmenu.jpa.entity.ShortcutMenuEntity; import io.sc.platform.system.user.jpa.entity.UserEntity; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; @@ -38,6 +40,21 @@ public class RoleServiceImpl extends DaoServiceImpl queryRolesByCodeOrName(String filter, QueryParameter queryParameter) throws Exception { if(StringUtils.hasText(filter)) { diff --git a/io.sc.platform.system/src/main/resources/io/sc/platform/system/role/jpa/entity/RoleEntity.xlsx b/io.sc.platform.system/src/main/resources/io/sc/platform/system/role/jpa/entity/RoleEntity.xlsx index b5b1f8dd..7830e606 100644 Binary files a/io.sc.platform.system/src/main/resources/io/sc/platform/system/role/jpa/entity/RoleEntity.xlsx and b/io.sc.platform.system/src/main/resources/io/sc/platform/system/role/jpa/entity/RoleEntity.xlsx differ