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