diff --git a/core/core-backend/src/main/resources/i18n/core_zh_CN.properties b/core/core-backend/src/main/resources/i18n/core_zh_CN.properties
index 6652b56019..a81e5fa41b 100644
--- a/core/core-backend/src/main/resources/i18n/core_zh_CN.properties
+++ b/core/core-backend/src/main/resources/i18n/core_zh_CN.properties
@@ -31,6 +31,7 @@ i18n_menu.plugin=\u63D2\u4EF6\u7BA1\u7406
i18n_menu.platform=\u5E73\u53F0\u5BF9\u63A5
i18n_menu.appearance=\u5916\u89C2\u914D\u7F6E
i18n_menu.sysVariable=\u7CFB\u7EDF\u53D8\u91CF
+i18n_menu.sysTypeface=\u5b57\u4f53\u7ba1\u7406
i18n_field_name_repeat=\u6709\u91CD\u590D\u5B57\u6BB5\u540D\uFF1A
i18n_pid_not_eq_id=\u79FB\u52A8\u76EE\u6807\u4E0D\u80FD\u662F\u81EA\u5DF1\u6216\u5B50\u76EE\u5F55
i18n_ds_name_exists=\u8BE5\u5206\u7EC4\u4E0B\u540D\u79F0\u91CD\u590D
diff --git a/core/core-frontend/src/custom-component/v-query/DynamicTimeForViewFilter.vue b/core/core-frontend/src/custom-component/v-query/DynamicTimeForViewFilter.vue
index 367ffff853..0f7d5c54e6 100644
--- a/core/core-frontend/src/custom-component/v-query/DynamicTimeForViewFilter.vue
+++ b/core/core-frontend/src/custom-component/v-query/DynamicTimeForViewFilter.vue
@@ -127,9 +127,17 @@ onBeforeMount(() => {
+
+
diff --git a/core/core-frontend/src/views/chart/components/editor/filter/TimeDialog.vue b/core/core-frontend/src/views/chart/components/editor/filter/TimeDialog.vue
index 67a50d9c26..7b90ba0184 100644
--- a/core/core-frontend/src/views/chart/components/editor/filter/TimeDialog.vue
+++ b/core/core-frontend/src/views/chart/components/editor/filter/TimeDialog.vue
@@ -231,7 +231,7 @@ defineExpose({
/>
@@ -239,8 +239,8 @@ defineExpose({
@@ -280,7 +280,7 @@ defineExpose({
.setting-input {
display: flex;
- padding-left: 86px;
+ padding-left: 126px;
justify-content: flex-end;
align-items: center;
&.range {
diff --git a/core/core-frontend/src/views/chart/components/editor/filter/auth-tree/FilterFiled.vue b/core/core-frontend/src/views/chart/components/editor/filter/auth-tree/FilterFiled.vue
index ff5e4e35b6..532a8e6b27 100644
--- a/core/core-frontend/src/views/chart/components/editor/filter/auth-tree/FilterFiled.vue
+++ b/core/core-frontend/src/views/chart/components/editor/filter/auth-tree/FilterFiled.vue
@@ -197,14 +197,59 @@ const relativeToCurrentTypeMap = {
const confirmTimeSelect = () => {
item.value.dynamicTimeSetting = { ...timeDialog.value.curComponent }
- const { timeGranularity, timeNum, relativeToCurrentType, around, arbitraryTime } =
- item.value.dynamicTimeSetting
+ const {
+ timeGranularity,
+ timeNum,
+ relativeToCurrentType,
+ around,
+ arbitraryTime,
+ relativeToCurrent
+ } = item.value.dynamicTimeSetting
+ if (relativeToCurrent !== 'custom') {
+ item.value.timeValue = [
+ {
+ label: '今年',
+ value: 'thisYear'
+ },
+ {
+ label: '去年',
+ value: 'lastYear'
+ },
+ {
+ label: '本月',
+ value: 'thisMonth'
+ },
+ {
+ label: '上月',
+ value: 'lastMonth'
+ },
+ {
+ label: '今天',
+ value: 'today'
+ },
+ {
+ label: '昨天',
+ value: 'yesterday'
+ },
+ {
+ label: '月初',
+ value: 'monthBeginning'
+ },
+ {
+ label: '年初',
+ value: 'yearBeginning'
+ }
+ ].find(ele => ele.value === relativeToCurrent).label
+ dialogVisible.value = false
+ return
+ }
item.value.timeValue = `${timeNum}${relativeToCurrentTypeMap[relativeToCurrentType]}${
around === 'f' ? '前' : '后'
}`
if (timeGranularity === 'datetime') {
item.value.timeValue += new Date(arbitraryTime).toLocaleString().split(' ')[1]
}
+
dialogVisible.value = false
}
diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/typeface/api/SysTypefaceApi.java b/sdk/api/api-base/src/main/java/io/dataease/api/typeface/api/SysTypefaceApi.java
new file mode 100644
index 0000000000..4bc2296ac6
--- /dev/null
+++ b/sdk/api/api-base/src/main/java/io/dataease/api/typeface/api/SysTypefaceApi.java
@@ -0,0 +1,40 @@
+package io.dataease.api.typeface.api;
+
+
+import com.github.xiaoymin.knife4j.annotations.ApiSupport;
+
+import io.dataease.api.typeface.dto.SysTypefaceDto;
+import io.dataease.auth.DeApiPath;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+import static io.dataease.constant.AuthResourceEnum.SYSTEM;
+
+@Tag(name = "字体管理")
+@ApiSupport(order = 881, author = "fit2cloud-someone")
+@DeApiPath(value = "/sysTypeface", rt = SYSTEM)
+public interface SysTypefaceApi {
+
+ @Operation(summary = "创建")
+ @PostMapping("/create")
+ SysTypefaceDto create(@RequestBody SysTypefaceDto sysVariableDto);
+
+ @Operation(summary = "编辑")
+ @PostMapping("/edit")
+ SysTypefaceDto edit(@RequestBody SysTypefaceDto sysVariableDto);
+
+ @Operation(summary = "删除")
+ @PostMapping("/delete/{id}")
+ void delete(@PathVariable("id") Long id);
+
+ @Operation(summary = "变更默认设置")
+ @PostMapping("/changeDefault/")
+ void changeDefault(@RequestBody SysTypefaceDto sysVariableDto);
+
+}
diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/typeface/dto/SysTypefaceDto.java b/sdk/api/api-base/src/main/java/io/dataease/api/typeface/dto/SysTypefaceDto.java
new file mode 100644
index 0000000000..68fa23cdd6
--- /dev/null
+++ b/sdk/api/api-base/src/main/java/io/dataease/api/typeface/dto/SysTypefaceDto.java
@@ -0,0 +1,32 @@
+package io.dataease.api.typeface.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+
+@Data
+public class SysTypefaceDto {
+ @JsonSerialize(using = ToStringSerializer.class)
+ private Long id;
+
+ /**
+ * 字体名称
+ */
+ private String name;
+
+ /**
+ * 文件名称
+ */
+ private String fileName;
+
+ /**
+ * 文件转换名称
+ */
+ private String fileTransName;
+
+ /**
+ * 是否默认
+ */
+ private Boolean isDefault;
+}
+
diff --git a/sdk/extensions/extensions-datasource/src/main/java/io/dataease/extensions/datasource/provider/Provider.java b/sdk/extensions/extensions-datasource/src/main/java/io/dataease/extensions/datasource/provider/Provider.java
index ab7f5c9251..39f168150a 100644
--- a/sdk/extensions/extensions-datasource/src/main/java/io/dataease/extensions/datasource/provider/Provider.java
+++ b/sdk/extensions/extensions-datasource/src/main/java/io/dataease/extensions/datasource/provider/Provider.java
@@ -92,9 +92,13 @@ public abstract class Provider {
*/
public abstract void hidePW(DatasourceDTO datasourceDTO);
- public abstract void exec(DatasourceRequest datasourceRequest) throws DEException;
+ public void exec(DatasourceRequest datasourceRequest) {
- public abstract int executeUpdate(DatasourceRequest datasourceRequest) throws DEException;
+ }
+
+ public int executeUpdate(DatasourceRequest datasourceRequest) {
+ return 0;
+ }
@Getter