mirror of https://gitee.com/topiam/eiam
Merge remote-tracking branch 'origin/master'
commit
d3d6615013
|
@ -108,4 +108,5 @@ public interface AppGroupRepository extends LogicDeleteRepository<AppGroupEntity
|
||||||
* @return {@link AppGroupEntity}
|
* @return {@link AppGroupEntity}
|
||||||
*/
|
*/
|
||||||
Optional<AppGroupEntity> findByCode(@Param("code") String code);
|
Optional<AppGroupEntity> findByCode(@Param("code") String code);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,4 +47,22 @@ public interface AppGroupRepositoryCustomized {
|
||||||
* @return {@link List}
|
* @return {@link List}
|
||||||
*/
|
*/
|
||||||
List<AppGroupPO> getAppGroupList(AppGroupQuery query);
|
List<AppGroupPO> getAppGroupList(AppGroupQuery query);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询应用组列表
|
||||||
|
*
|
||||||
|
* @param userId {@link Long}
|
||||||
|
* @param query {@link AppGroupQuery}
|
||||||
|
* @return {@link List}
|
||||||
|
*/
|
||||||
|
List<AppGroupPO> getAppGroupList(Long userId, AppGroupQuery query);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据当前用户和分组获取应用数量
|
||||||
|
*
|
||||||
|
* @param groupId {@link Long}
|
||||||
|
* @param userId {@link Long}
|
||||||
|
* @return {@link Long}
|
||||||
|
*/
|
||||||
|
Long getAppCount(String groupId, Long userId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
*/
|
*/
|
||||||
package cn.topiam.employee.common.repository.app;
|
package cn.topiam.employee.common.repository.app;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
@ -74,7 +73,7 @@ public interface AppRepository extends LogicDeleteRepository<AppEntity, Long>,
|
||||||
@Modifying
|
@Modifying
|
||||||
@CacheEvict(allEntries = true)
|
@CacheEvict(allEntries = true)
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Query(value = "UPDATE app SET is_enabled = :enabled WHERE id_ = :id", nativeQuery = true)
|
@Query(value = "UPDATE AppEntity SET enabled = :enabled WHERE id = :id")
|
||||||
Integer updateAppStatus(@Param(value = "id") Long id,
|
Integer updateAppStatus(@Param(value = "id") Long id,
|
||||||
@Param(value = "enabled") Boolean enabled);
|
@Param(value = "enabled") Boolean enabled);
|
||||||
|
|
||||||
|
@ -106,17 +105,9 @@ public interface AppRepository extends LogicDeleteRepository<AppEntity, Long>,
|
||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
@Cacheable
|
@Cacheable
|
||||||
@Query(value = "SELECT * FROM app WHERE id_ = :id", nativeQuery = true)
|
@Query(value = "SELECT AppEntity FROM AppEntity WHERE id = :id")
|
||||||
Optional<AppEntity> findByIdContainsDeleted(@NotNull @Param(value = "id") Long id);
|
Optional<AppEntity> findByIdContainsDeleted(@NotNull @Param(value = "id") Long id);
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @return {@link AppEntity}
|
|
||||||
*/
|
|
||||||
@NotNull
|
|
||||||
@Query(value = "SELECT a.* from app a LEFT JOIN app_group ag on a.group_id =ag.id_ WHERE a.group_id IS NOT NULL", nativeQuery = true)
|
|
||||||
List<AppEntity> getAppListByGroup();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据clientId获取配置
|
* 根据clientId获取配置
|
||||||
*
|
*
|
||||||
|
@ -136,12 +127,4 @@ public interface AppRepository extends LogicDeleteRepository<AppEntity, Long>,
|
||||||
@Cacheable
|
@Cacheable
|
||||||
Optional<AppEntity> findByCode(String appCode);
|
Optional<AppEntity> findByCode(String appCode);
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新应用状态
|
|
||||||
*
|
|
||||||
* @param id {@link Long}
|
|
||||||
* @param enabled {@link Boolean}
|
|
||||||
* @return {@link Boolean}
|
|
||||||
*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,4 +54,13 @@ public interface AppRepositoryCustomized {
|
||||||
* @return {@link List}
|
* @return {@link List}
|
||||||
*/
|
*/
|
||||||
Page<AppEntity> getAppList(AppQuery appQuery, Pageable pageable);
|
Page<AppEntity> getAppList(AppQuery appQuery, Pageable pageable);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户应用数量
|
||||||
|
*
|
||||||
|
* @param userId {@link Long}
|
||||||
|
* @return {@link Long}
|
||||||
|
*/
|
||||||
|
Long getAppCount(Long userId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,6 +44,26 @@ import lombok.AllArgsConstructor;
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class AppGroupRepositoryCustomizedImpl implements AppGroupRepositoryCustomized {
|
public class AppGroupRepositoryCustomizedImpl implements AppGroupRepositoryCustomized {
|
||||||
|
|
||||||
|
private StringBuilder getBaseAppGroupListSql(AppGroupQuery query) {
|
||||||
|
//@formatter:off
|
||||||
|
StringBuilder builder = new StringBuilder("SELECT `group`.id_, `group`.name_, `group`.code_, `group`.type_, `group`.create_time, `group`.remark_, IFNULL( ass.app_count, 0) AS app_count FROM app_group `group` LEFT JOIN(SELECT aga.group_id, COUNT(*) AS `app_count` FROM app_group_association aga INNER JOIN app ON aga.app_id = app.id_ AND app.is_deleted = 0 GROUP BY aga.group_id ) ass ON `group`.id_ = ass.group_id WHERE is_deleted = '0'");
|
||||||
|
//分组名称
|
||||||
|
if (StringUtils.isNoneBlank(query.getName())) {
|
||||||
|
builder.append(" AND `group`.name_ like '%").append(query.getName()).append("%'");
|
||||||
|
}
|
||||||
|
//分组编码
|
||||||
|
if (StringUtils.isNoneBlank(query.getCode())) {
|
||||||
|
builder.append(" AND `group`.code_ like '%").append(query.getCode()).append("%'");
|
||||||
|
}
|
||||||
|
//分组类型
|
||||||
|
if (ObjectUtils.isNotEmpty(query.getType())) {
|
||||||
|
builder.append(" AND `group`.type_ like '%").append(query.getType().getCode()).append("%'");
|
||||||
|
}
|
||||||
|
builder.append(" ORDER BY `group`.create_time DESC");
|
||||||
|
//@formatter:on
|
||||||
|
return builder;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取应用组应用列表(分页)
|
* 获取应用组应用列表(分页)
|
||||||
*
|
*
|
||||||
|
@ -76,24 +96,28 @@ public class AppGroupRepositoryCustomizedImpl implements AppGroupRepositoryCusto
|
||||||
return jdbcTemplate.query(getBaseAppGroupListSql(query).toString(), new AppGroupPoMapper());
|
return jdbcTemplate.query(getBaseAppGroupListSql(query).toString(), new AppGroupPoMapper());
|
||||||
}
|
}
|
||||||
|
|
||||||
private StringBuilder getBaseAppGroupListSql(AppGroupQuery query) {
|
/**
|
||||||
//@formatter:off
|
* 查询应用组列表
|
||||||
StringBuilder builder = new StringBuilder("SELECT `group`.id_, `group`.name_, `group`.code_, `group`.type_, `group`.create_time, `group`.remark_, IFNULL( ass.app_count, 0) AS app_count FROM app_group `group` LEFT JOIN(SELECT aga.group_id, COUNT(*) AS `app_count` FROM app_group_association aga INNER JOIN app ON aga.app_id = app.id_ AND app.is_deleted = 0 GROUP BY aga.group_id ) ass ON `group`.id_ = ass.group_id WHERE is_deleted = '0'");
|
*
|
||||||
//分组名称
|
* @param userId {@link Long}
|
||||||
if (StringUtils.isNoneBlank(query.getName())) {
|
* @param query {@link AppGroupQuery}
|
||||||
builder.append(" AND `group`.name_ like '%").append(query.getName()).append("%'");
|
* @return {@link List}
|
||||||
}
|
*/
|
||||||
//分组编码
|
@Override
|
||||||
if (StringUtils.isNoneBlank(query.getCode())) {
|
public List<AppGroupPO> getAppGroupList(Long userId, AppGroupQuery query) {
|
||||||
builder.append(" AND `group`.code_ like '%").append(query.getCode()).append("%'");
|
return null;
|
||||||
}
|
}
|
||||||
//分组类型
|
|
||||||
if (ObjectUtils.isNotEmpty(query.getType())) {
|
/**
|
||||||
builder.append(" AND `group`.type_ like '%").append(query.getType().getCode()).append("%'");
|
* 根据当前用户和分组获取应用数量
|
||||||
}
|
*
|
||||||
builder.append(" ORDER BY `group`.create_time DESC");
|
* @param groupId {@link Long}
|
||||||
//@formatter:on
|
* @param userId {@link Long}
|
||||||
return builder;
|
* @return {@link Long}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Long getAppCount(String groupId, Long userId) {
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private final JdbcTemplate jdbcTemplate;
|
private final JdbcTemplate jdbcTemplate;
|
||||||
|
|
|
@ -94,7 +94,7 @@ public class AppRepositoryCustomizedImpl implements AppRepositoryCustomized {
|
||||||
.append(",").append(pageable.getPageSize()).toString(),
|
.append(",").append(pageable.getPageSize()).toString(),
|
||||||
paramMap, new AppEntityMapper());
|
paramMap, new AppEntityMapper());
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
String countSql = "SELECT count(*) FROM (" + sql + ") app_account_";
|
String countSql = "SELECT count(*) FROM (" + sql + ") app_";
|
||||||
//@formatter:on
|
//@formatter:on
|
||||||
Integer count = namedParameterJdbcTemplate.queryForObject(countSql, paramMap,
|
Integer count = namedParameterJdbcTemplate.queryForObject(countSql, paramMap,
|
||||||
Integer.class);
|
Integer.class);
|
||||||
|
@ -139,6 +139,17 @@ public class AppRepositoryCustomizedImpl implements AppRepositoryCustomized {
|
||||||
return new PageImpl<>(list, pageable, Objects.requireNonNull(count).longValue());
|
return new PageImpl<>(list, pageable, Objects.requireNonNull(count).longValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户应用数量
|
||||||
|
*
|
||||||
|
* @param userId {@link Long}
|
||||||
|
* @return {@link Long}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Long getAppCount(Long userId) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JdbcTemplate
|
* JdbcTemplate
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
"@ant-design/charts": "^1.4.2",
|
"@ant-design/charts": "^1.4.2",
|
||||||
"@ant-design/icons": "^5.2.6",
|
"@ant-design/icons": "^5.2.6",
|
||||||
"@ant-design/maps": "^1.0.7",
|
"@ant-design/maps": "^1.0.7",
|
||||||
"@ant-design/pro-components": "^2.6.24",
|
"@ant-design/pro-components": "^2.6.25",
|
||||||
"ahooks": "^3.7.8",
|
"ahooks": "^3.7.8",
|
||||||
"antd": "^5.9.3",
|
"antd": "^5.9.3",
|
||||||
"antd-img-crop": "^4.13.0",
|
"antd-img-crop": "^4.13.0",
|
||||||
|
|
|
@ -151,8 +151,8 @@ const Login: React.FC = () => {
|
||||||
<Helmet>
|
<Helmet>
|
||||||
<link rel="icon" href={'/favicon.ico'} />
|
<link rel="icon" href={'/favicon.ico'} />
|
||||||
</Helmet>
|
</Helmet>
|
||||||
{showBanner && <Banner />}
|
|
||||||
<div className={classnames(`${prefixCls}`)}>
|
<div className={classnames(`${prefixCls}`)}>
|
||||||
|
{showBanner && <Banner />}
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
backgroundColor: 'white',
|
backgroundColor: 'white',
|
||||||
|
@ -187,7 +187,7 @@ const Login: React.FC = () => {
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
onFinish={async (values) => {
|
onFinish={async (values) => {
|
||||||
await run(values);
|
run(values);
|
||||||
return data;
|
return data;
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|
|
@ -23,7 +23,6 @@ const useStyle = createStyles(({ token, prefixCls }, prefix) => {
|
||||||
return {
|
return {
|
||||||
main: {
|
main: {
|
||||||
[`${prefixClassName}`]: {
|
[`${prefixClassName}`]: {
|
||||||
padding: '24px',
|
|
||||||
[`${prefixClassName}-form-prefix-icon`]: {
|
[`${prefixClassName}-form-prefix-icon`]: {
|
||||||
color: token.colorPrimary,
|
color: token.colorPrimary,
|
||||||
fontSize: token.fontSize,
|
fontSize: token.fontSize,
|
||||||
|
@ -46,12 +45,18 @@ const useStyle = createStyles(({ token, prefixCls }, prefix) => {
|
||||||
},
|
},
|
||||||
[`${antCls}-pro-form-login-page-desc`]: {
|
[`${antCls}-pro-form-login-page-desc`]: {
|
||||||
marginTop: '25px',
|
marginTop: '25px',
|
||||||
marginBottom: '25px',
|
marginBottom: '40px',
|
||||||
color: 'rgba(0, 0, 0, 0.45)',
|
color: 'rgba(0, 0, 0, 0.45)',
|
||||||
fontSize: '14px',
|
fontSize: '14px',
|
||||||
},
|
},
|
||||||
[`${antCls}-pro-form-login-page-container`]: {
|
[`${antCls}-pro-form-login-page-container`]: {
|
||||||
height: 'auto',
|
height: 'auto',
|
||||||
|
[`${antCls}-pro-form-login-page-top`]: {
|
||||||
|
marginTop: '25px',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[`${antCls}-pro-form-login-page-main`]: {
|
||||||
|
marginBottom: '80px',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -129,7 +129,7 @@ public interface AppConverter {
|
||||||
appGetResult.setClientId(entity.getClientId());
|
appGetResult.setClientId(entity.getClientId());
|
||||||
appGetResult.setClientSecret(entity.getClientSecret());
|
appGetResult.setClientSecret(entity.getClientSecret());
|
||||||
appGetResult.setType(entity.getType());
|
appGetResult.setType(entity.getType());
|
||||||
appGetResult.setGroupIds(groupIds);
|
appGetResult.setGroupIds(groupIds.stream().map(String::valueOf).toList());
|
||||||
//图标未配置,所以先从模版中拿
|
//图标未配置,所以先从模版中拿
|
||||||
if (StringUtils.isBlank(entity.getIcon())) {
|
if (StringUtils.isBlank(entity.getIcon())) {
|
||||||
ApplicationService applicationService = getApplicationServiceLoader()
|
ApplicationService applicationService = getApplicationServiceLoader()
|
||||||
|
|
|
@ -24,6 +24,9 @@ import java.util.List;
|
||||||
import cn.topiam.employee.common.enums.app.AppProtocol;
|
import cn.topiam.employee.common.enums.app.AppProtocol;
|
||||||
import cn.topiam.employee.common.enums.app.AppType;
|
import cn.topiam.employee.common.enums.app.AppType;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
@ -110,5 +113,5 @@ public class AppGetResult implements Serializable {
|
||||||
* 应用组ID集合
|
* 应用组ID集合
|
||||||
*/
|
*/
|
||||||
@Parameter(description = "应用组ID集合")
|
@Parameter(description = "应用组ID集合")
|
||||||
private List<Long> groupIds;
|
private List<String> groupIds;
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ package cn.topiam.employee.portal.controller;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
@ -49,6 +50,24 @@ import static cn.topiam.employee.common.constant.AppConstants.APP_PATH;
|
||||||
@RequestMapping(value = APP_PATH)
|
@RequestMapping(value = APP_PATH)
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class AppController {
|
public class AppController {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取应用数量
|
||||||
|
*
|
||||||
|
* @return {@link GetAppListResult}
|
||||||
|
*/
|
||||||
|
@Operation(summary = "获取应用数量")
|
||||||
|
@GetMapping(value = "/count")
|
||||||
|
public ApiRestResult<String> getAppCount(String groupId) {
|
||||||
|
Long count;
|
||||||
|
if (StringUtils.isEmpty(groupId)) {
|
||||||
|
count = appService.getAppCount();
|
||||||
|
} else {
|
||||||
|
count = appService.getAppCount(groupId);
|
||||||
|
}
|
||||||
|
return ApiRestResult.ok(count.toString());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取应用列表
|
* 获取应用列表
|
||||||
*
|
*
|
||||||
|
|
|
@ -49,4 +49,19 @@ public interface AppService {
|
||||||
* @return {@link AppGroupListResult}
|
* @return {@link AppGroupListResult}
|
||||||
*/
|
*/
|
||||||
List<AppGroupListResult> getAppGroupList(AppGroupQuery appGroupQuery);
|
List<AppGroupListResult> getAppGroupList(AppGroupQuery appGroupQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取应用数量
|
||||||
|
*
|
||||||
|
* @param groupId {@link String}
|
||||||
|
* @return {@link Long}
|
||||||
|
*/
|
||||||
|
Long getAppCount(String groupId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有应用
|
||||||
|
*
|
||||||
|
* @return {@link Long}
|
||||||
|
*/
|
||||||
|
Long getAppCount();
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,10 +68,34 @@ public class AppServiceImpl implements AppService {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<AppGroupListResult> getAppGroupList(AppGroupQuery query) {
|
public List<AppGroupListResult> getAppGroupList(AppGroupQuery query) {
|
||||||
List<AppGroupPO> list = appGroupRepository.getAppGroupList(query);
|
Long userId = Long.valueOf(SecurityUtils.getCurrentUserId());
|
||||||
|
List<AppGroupPO> list = appGroupRepository.getAppGroupList(userId, query);
|
||||||
return appGroupConverter.entityConvertToAppGroupListResult(list);
|
return appGroupConverter.entityConvertToAppGroupListResult(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取应用数量
|
||||||
|
*
|
||||||
|
* @param groupId {@link String}
|
||||||
|
* @return {@link Integer}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Long getAppCount(String groupId) {
|
||||||
|
Long userId = Long.valueOf(SecurityUtils.getCurrentUserId());
|
||||||
|
return appGroupRepository.getAppCount(groupId, userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取应用数量
|
||||||
|
*
|
||||||
|
* @return {@link Long}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Long getAppCount() {
|
||||||
|
Long userId = Long.valueOf(SecurityUtils.getCurrentUserId());
|
||||||
|
return appRepository.getAppCount(userId);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AppRepository
|
* AppRepository
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
"@ant-design/charts": "^1.4.2",
|
"@ant-design/charts": "^1.4.2",
|
||||||
"@ant-design/icons": "^5.2.6",
|
"@ant-design/icons": "^5.2.6",
|
||||||
"@ant-design/maps": "^1.0.7",
|
"@ant-design/maps": "^1.0.7",
|
||||||
"@ant-design/pro-components": "^2.6.24",
|
"@ant-design/pro-components": "^2.6.25",
|
||||||
"ahooks": "^3.7.8",
|
"ahooks": "^3.7.8",
|
||||||
"antd": "^5.9.3",
|
"antd": "^5.9.3",
|
||||||
"antd-img-crop": "^4.13.0",
|
"antd-img-crop": "^4.13.0",
|
||||||
|
|
|
@ -135,32 +135,28 @@ const CardList = () => {
|
||||||
manualRequest
|
manualRequest
|
||||||
request={queryAppList}
|
request={queryAppList}
|
||||||
pagination={{}}
|
pagination={{}}
|
||||||
toolbar={
|
toolbar={{
|
||||||
appGroupList?.length > 0
|
menu: {
|
||||||
? {
|
type: 'tab',
|
||||||
menu: {
|
activeKey: currentGroup,
|
||||||
type: 'tab',
|
items: getItems(),
|
||||||
activeKey: currentGroup,
|
onChange(key) {
|
||||||
items: getItems(),
|
if (key) {
|
||||||
onChange(key) {
|
setCurrentGroup(key);
|
||||||
if (key) {
|
if (key === all) {
|
||||||
setCurrentGroup(key);
|
setSearchParams((values) => {
|
||||||
if (key === all) {
|
return { ...values, groupId: undefined };
|
||||||
setSearchParams((values) => {
|
});
|
||||||
return { ...values, groupId: undefined };
|
} else {
|
||||||
});
|
setSearchParams((values) => {
|
||||||
} else {
|
return { ...values, groupId: key };
|
||||||
setSearchParams((values) => {
|
});
|
||||||
return { ...values, groupId: key };
|
}
|
||||||
});
|
actionRef.current?.reload();
|
||||||
}
|
|
||||||
actionRef.current?.reload();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
: {}
|
},
|
||||||
}
|
},
|
||||||
|
}}
|
||||||
params={searchParams}
|
params={searchParams}
|
||||||
actionRef={actionRef}
|
actionRef={actionRef}
|
||||||
renderItem={(item: AppList) => {
|
renderItem={(item: AppList) => {
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
*/
|
*/
|
||||||
export default {
|
export default {
|
||||||
'pages.application.search.name': '应用名称',
|
'pages.application.search.name': '应用名称',
|
||||||
'pages.application.group_all': '全部',
|
'pages.application.group_all': '全部应用',
|
||||||
'pages.application.tab.list': '应用列表',
|
'pages.application.tab.list': '应用列表',
|
||||||
'pages.application.tab.account': '应用账号',
|
'pages.application.tab.account': '应用账号',
|
||||||
'pages.application.init.warning': '仅允许应用发起',
|
'pages.application.init.warning': '仅允许应用发起',
|
||||||
|
|
Loading…
Reference in New Issue