diff --git a/core/core-frontend/public/svg/relation-dataset.svg b/core/core-frontend/public/svg/relation-dataset.svg new file mode 100644 index 0000000000..c31cfd38db --- /dev/null +++ b/core/core-frontend/public/svg/relation-dataset.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/core/core-frontend/public/svg/relation-ds.svg b/core/core-frontend/public/svg/relation-ds.svg new file mode 100644 index 0000000000..d5073da2e9 --- /dev/null +++ b/core/core-frontend/public/svg/relation-ds.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/core/core-frontend/public/svg/relation-panel.svg b/core/core-frontend/public/svg/relation-panel.svg new file mode 100644 index 0000000000..090c1f461c --- /dev/null +++ b/core/core-frontend/public/svg/relation-panel.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/core/core-frontend/public/svg/relation-screen.svg b/core/core-frontend/public/svg/relation-screen.svg new file mode 100644 index 0000000000..5b302b4cdc --- /dev/null +++ b/core/core-frontend/public/svg/relation-screen.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/core/core-frontend/src/locales/zh-CN.ts b/core/core-frontend/src/locales/zh-CN.ts index 508b17aede..78ce6bf227 100644 --- a/core/core-frontend/src/locales/zh-CN.ts +++ b/core/core-frontend/src/locales/zh-CN.ts @@ -4090,6 +4090,7 @@ export default { folder: '文件夹', del_folder_tips: '删除后,此文件夹下的所有资源都会被删除,请谨慎操作。', sync_to_org: '迁移至目标组织', - sync_org_placeholder: '请选择目标组织' + sync_org_placeholder: '请选择目标组织', + relation_picture: '血缘关系图' } } diff --git a/core/core-frontend/src/views/login/index.vue b/core/core-frontend/src/views/login/index.vue index 44a71d5c5a..cf84908f91 100644 --- a/core/core-frontend/src/views/login/index.vue +++ b/core/core-frontend/src/views/login/index.vue @@ -51,42 +51,10 @@ const state = reactive({ }, footContent: '' }) -const checkUsername = (rule: any, value: any, callback: any) => { - if (!value || activeName.value === 'ldap') { - return callback() - } - const pattern = /^[a-zA-Z0-9][a-zA-Z0-9\@._-]*$/ - const reg = new RegExp(pattern) - if (!reg.test(value)) { - const msg = t('user.user_name_pattern_error') - callback(new Error(msg)) - } - return callback() -} - -const validatePwd = (rule: any, value: any, callback: any) => { - if (!value || activeName.value === 'ldap') { - return callback() - } - const pattern = - /^.*(?=.{6,20})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[~!@#$%^&*()_+\-\={}|":<>?`[\];',.\/])[a-zA-Z0-9~!@#$%^&*()_+\-\={}|":<>?`[\];',.\/]*$/ - const regep = new RegExp(pattern) - if (!regep.test(value)) { - const msg = t('user.pwd_pattern_error') - callback(new Error(msg)) - } - return callback() -} const rules = reactive({ - username: [ - { required: true, message: t('common.required'), trigger: 'blur' }, - { required: true, validator: checkUsername, trigger: 'blur' } - ], - password: [ - { required: true, message: t('common.required'), trigger: 'blur' }, - { required: true, validator: validatePwd, trigger: 'blur' } - ] + username: [{ required: true, message: t('common.required'), trigger: 'blur' }], + password: [{ required: true, message: t('common.required'), trigger: 'blur' }] }) const activeName = ref('simple') diff --git a/de-xpack b/de-xpack index 8ac18a900a..315fa62982 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit 8ac18a900ac4744d62ff3c7e4ee6ec3c8fb82933 +Subproject commit 315fa62982d6f322fb3dddf641882251f1572c79 diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/free/FreeApi.java b/sdk/api/api-base/src/main/java/io/dataease/api/free/FreeApi.java index 0f51b930ed..aba18ae952 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/free/FreeApi.java +++ b/sdk/api/api-base/src/main/java/io/dataease/api/free/FreeApi.java @@ -1,9 +1,7 @@ package io.dataease.api.free; -import io.dataease.api.free.dto.FreeBatchDelRequest; -import io.dataease.api.free.dto.FreeBatchSyncRequest; -import io.dataease.api.free.dto.FreeQueryRequest; -import io.dataease.api.free.dto.FreeSyncRequest; +import io.dataease.api.free.dto.*; +import io.dataease.api.free.vo.FreeRelationVO; import io.dataease.api.free.vo.FreeVO; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -26,4 +24,7 @@ public interface FreeApi { @PostMapping("/deleteBatch") void deleteBatch(@RequestBody FreeBatchDelRequest request); + + @PostMapping("/relation") + FreeRelationVO relation(@RequestBody FreeRelationRequest request); } diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeRelationCategory.java b/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeRelationCategory.java new file mode 100644 index 0000000000..f40da1f2cb --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeRelationCategory.java @@ -0,0 +1,14 @@ +package io.dataease.api.free.dto; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +@Data +public class FreeRelationCategory implements Serializable { + @Serial + private static final long serialVersionUID = 2235520960613140213L; + + private String name; +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeRelationLink.java b/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeRelationLink.java new file mode 100644 index 0000000000..3f91dbe715 --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeRelationLink.java @@ -0,0 +1,24 @@ +package io.dataease.api.free.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serial; +import java.io.Serializable; + +@NoArgsConstructor +@AllArgsConstructor +@Data +public class FreeRelationLink implements Serializable { + @Serial + private static final long serialVersionUID = 8574916923164645781L; + + @JsonSerialize(using= ToStringSerializer.class) + private Long source; + + @JsonSerialize(using= ToStringSerializer.class) + private Long target; +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeRelationNode.java b/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeRelationNode.java new file mode 100644 index 0000000000..2fb1787903 --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeRelationNode.java @@ -0,0 +1,37 @@ +package io.dataease.api.free.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serial; +import java.io.Serializable; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class FreeRelationNode implements Serializable { + @Serial + private static final long serialVersionUID = 5396869322229400707L; + + @JsonSerialize(using= ToStringSerializer.class) + private Long id; + + private String name; + + private Integer category; + + private Integer x; + + private Integer y; + + public FreeRelationNode(Long id, String name, Integer category) { + this.id = id; + this.name = name; + this.category = category; + this.x = 0; + this.y = 0; + } +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeRelationRequest.java b/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeRelationRequest.java new file mode 100644 index 0000000000..ca976a53a1 --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeRelationRequest.java @@ -0,0 +1,15 @@ +package io.dataease.api.free.dto; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +@Data +public class FreeRelationRequest implements Serializable { + @Serial + private static final long serialVersionUID = -316612770549936486L; + + private Long id; + +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/free/vo/FreeRelationVO.java b/sdk/api/api-base/src/main/java/io/dataease/api/free/vo/FreeRelationVO.java new file mode 100644 index 0000000000..0c6e205944 --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/free/vo/FreeRelationVO.java @@ -0,0 +1,26 @@ +package io.dataease.api.free.vo; + +import io.dataease.api.free.dto.FreeRelationCategory; +import io.dataease.api.free.dto.FreeRelationLink; +import io.dataease.api.free.dto.FreeRelationNode; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + +@NoArgsConstructor +@AllArgsConstructor +@Data +public class FreeRelationVO implements Serializable { + @Serial + private static final long serialVersionUID = 7087187548660162237L; + + private List categories; + + private List links; + + private List nodes; +}