feat(X-Pack): [数据填报]内置数据源增加支持数据填报功能配置

This commit is contained in:
ulleo
2025-09-10 17:42:35 +08:00
committed by ulleo
parent ddec73ede5
commit 0086544117
9 changed files with 48 additions and 9 deletions

View File

@@ -7,11 +7,11 @@ import java.io.Serializable;
/**
* <p>
*
* 数据引擎
* </p>
*
* @author fit2cloud
* @since 2023-04-18
* @since 2025-09-10
*/
@TableName("core_de_engine")
public class CoreDeEngine implements Serializable {
@@ -64,6 +64,11 @@ public class CoreDeEngine implements Serializable {
*/
private String status;
/**
* 启用数据填报功能
*/
private Boolean enableDataFill;
public Long getId() {
return id;
}
@@ -136,6 +141,14 @@ public class CoreDeEngine implements Serializable {
this.status = status;
}
public Boolean getEnableDataFill() {
return enableDataFill;
}
public void setEnableDataFill(Boolean enableDataFill) {
this.enableDataFill = enableDataFill;
}
@Override
public String toString() {
return "CoreDeEngine{" +
@@ -148,6 +161,7 @@ public class CoreDeEngine implements Serializable {
", updateTime = " + updateTime +
", createBy = " + createBy +
", status = " + status +
", enableDataFill = " + enableDataFill +
"}";
}
}

View File

@@ -6,11 +6,11 @@ import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* Mapper 接口
* 数据引擎 Mapper 接口
* </p>
*
* @author fit2cloud
* @since 2023-04-18
* @since 2025-09-10
*/
@Mapper
public interface CoreDeEngineMapper extends BaseMapper<CoreDeEngine> {

View File

@@ -0,0 +1,2 @@
alter table `core_de_engine`
add `enable_data_fill` tinyint default 1 null comment '启用数据填报功能';

View File

@@ -0,0 +1,2 @@
alter table `core_de_engine`
add `enable_data_fill` tinyint default 1 null comment '启用数据填报功能';

View File

@@ -98,6 +98,7 @@ i18n_df_end=End
i18n_df_datasource_not_found=No data source found
i18n_df_datasource_does_not_enable_data_filling=This data source has not enabled data reporting configuration
i18n_df_builtin_datasource=Built-in database
i18n_df_default=Default
i18n_df_folder_required=Folder is required
i18n_df_form_not_exists=Form does not exist
i18n_df_name_can_not_empty=Name cannot be empty
@@ -211,4 +212,4 @@ i18n_invalid_address=Invalid address!
i18n_unsupported_protocol=Unsupported protocol!
i18n_excel_error_first_row=Empty cells are not allowed in the middle of the first row!
i18n_app_error_no_api=Currently, API and Lark data sources are not supported.
i18n_resource_not_exists=Resource does not exist or has been deleted...
i18n_resource_not_exists=Resource does not exist or has been deleted...

View File

@@ -97,6 +97,7 @@ i18n_df_end=\u7ED3\u675F
i18n_df_datasource_not_found=\u6CA1\u6709\u627E\u5230\u6570\u636E\u6E90
i18n_df_datasource_does_not_enable_data_filling=\u8BE5\u6570\u636E\u6E90\u6CA1\u6709\u542F\u7528\u6570\u636E\u586B\u62A5\u914D\u7F6E
i18n_df_builtin_datasource=\u5185\u5EFA\u6570\u636E\u5E93
i18n_df_default=\u9ED8\u8BA4
i18n_df_folder_required=\u76EE\u5F55\u5FC5\u9009
i18n_df_form_not_exists=\u8868\u5355\u4E0D\u5B58\u5728
i18n_df_name_can_not_empty=\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A
@@ -210,4 +211,4 @@ i18n_invalid_address=\u65E0\u6548\u7684\u5730\u5740\uFF01
i18n_unsupported_protocol=\u4E0D\u652F\u6301\u7684\u534F\u8BAE\uFF01
i18n_excel_error_first_row=\u9996\u884C\u884C\u4E2D\u4E0D\u5141\u8BB8\u6709\u7A7A\u5355\u5143\u683C\uFF01
i18n_app_error_no_api=\u5F53\u524D\u4E0D\u652F\u6301API\u548C\u98DE\u4E66\u6570\u636E\u6E90
i18n_resource_not_exists=\u8d44\u6e90\u4e0d\u5b58\u5728\u6216\u5df2\u7ecf\u88ab\u5220\u9664...
i18n_resource_not_exists=\u8D44\u6E90\u4E0D\u5B58\u5728\u6216\u5DF2\u7ECF\u88AB\u5220\u9664...

View File

@@ -97,6 +97,7 @@ i18n_df_end=\u7D50\u675F
i18n_df_datasource_not_found=\u6C92\u6709\u627E\u5230\u6578\u64DA\u6E90
i18n_df_datasource_does_not_enable_data_filling=\u8A72\u6578\u64DA\u6E90\u6C92\u6709\u555F\u7528\u6578\u64DA\u586B\u5831\u914D\u7F6E
i18n_df_builtin_datasource=\u5167\u5EFA\u6578\u64DA\u5EAB
i18n_df_default=\u9ED8\u8A8D
i18n_df_folder_required=\u76EE\u9304\u5FC5\u9078
i18n_df_form_not_exists=\u8868\u55AE\u4E0D\u5B58\u5728
i18n_df_name_can_not_empty=\u540D\u7A31\u4E0D\u80FD\u70BA\u7A7A
@@ -210,4 +211,4 @@ i18n_invalid_address=\u7121\u6548\u7684\u5730\u5740\uFF01
i18n_unsupported_protocol=\u4E0D\u652F\u63F4\u7684\u5354\u8B70\uFF01
i18n_excel_error_first_row=\u9996\u884C\u884C\u4E2D\u4E0D\u5141\u8A31\u6709\u7A7A\u5132\u5B58\u683C\uFF01
i18n_app_error_no_api=\u7576\u524D\u4E0D\u652F\u63F4API\u548C\u98DB\u66F8\u6578\u64DA\u6E90
i18n_resource_not_exists=\u8cc7\u6e90\u4e0d\u5b58\u5728\u6216\u5df2\u7d93\u88ab\u522a\u9664...
i18n_resource_not_exists=\u8CC7\u6E90\u4E0D\u5B58\u5728\u6216\u5DF2\u7D93\u88AB\u522A\u9664...

View File

@@ -12,6 +12,7 @@ import { CustomPassword } from '@/components/custom-password'
import { Base64 } from 'js-base64'
import { querySymmetricKey } from '@/api/login'
import { symmetricDecrypt } from '@/utils/encryption'
import { XpackComponent } from '@/components/plugin'
const { t } = useI18n()
const dialogVisible = ref(false)
const loadingInstance = ref(null)
@@ -175,7 +176,8 @@ const edit = () => {
fileName,
size,
description,
lastSyncTime
lastSyncTime,
enableDataFill
} = res.data
if (configuration) {
configuration = JSON.parse(symmetricDecrypt(configuration, response.data))
@@ -193,7 +195,8 @@ const edit = () => {
type,
configuration,
syncSetting,
lastSyncTime
lastSyncTime,
enableDataFill
})
})
.finally(() => {
@@ -436,6 +439,11 @@ defineExpose({
</el-col>
</el-row>
</template>
<!-- 数据填报 -->
<XpackComponent
:form="nodeInfo"
jsname="L2NvbXBvbmVudC9kYXRhLWZpbGxpbmcvRGF0YXNvdXJjZUVuYWJsZURhdGFGaWxsaW5n"
/>
</el-form>
<template #footer>
<span class="dialog-footer">

View File

@@ -29,6 +29,12 @@
hide-head
:setting-data="templateListTime"
/>
<!-- 数据填报 -->
<XpackComponent
style="padding: 0 24px 8px"
:nodeInfo="xPackInfo"
jsname="L2NvbXBvbmVudC9kYXRhLWZpbGxpbmcvRGF0YXNvdXJjZURhdGFGaWxsaW5nSW5mbw=="
/>
</template>
<script lang="ts" setup>
@@ -44,6 +50,7 @@ import { getDeEngine } from '@/api/datasource'
import request from '@/config/axios'
import { querySymmetricKey } from '@/api/login'
import { symmetricDecrypt } from '@/utils/encryption'
import { XpackComponent } from '@/components/plugin'
const { t } = useI18n()
const typeMap = dsTypes.reduce((pre, next) => {
pre[next.type] = next.name
@@ -55,10 +62,13 @@ const infoTemplate = ref()
const infoTemplateTime = ref()
const templateList = ref<SettingRecord[]>([])
const templateListTime = ref<SettingRecord[]>([])
const xPackInfo = ref({ enableDataFill: false, type: undefined })
const getEngine = () => {
querySymmetricKey().then(response => {
getDeEngine().then(res => {
let { id, type, configuration } = res.data
xPackInfo.value.enableDataFill = !!res.data.enableDataFill
xPackInfo.value.type = type
if (configuration) {
configuration = JSON.parse(symmetricDecrypt(configuration, response.data))
}