From 997ce40b98d7ff648f66faa8063d270420913a33 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Tue, 29 Mar 2022 16:10:16 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataease/commons/utils/DeFileUtils.java | 7 +++++ .../dataease/service/sys/PluginService.java | 1 + .../main/resources/db/migration/V33__1.9.sql | 5 ++++ .../resources/i18n/messages_en_US.properties | 1 + .../resources/i18n/messages_zh_CN.properties | 1 + .../resources/i18n/messages_zh_TW.properties | 1 + frontend/src/views/system/plugin/index.vue | 26 +++++++------------ 7 files changed, 26 insertions(+), 16 deletions(-) diff --git a/backend/src/main/java/io/dataease/commons/utils/DeFileUtils.java b/backend/src/main/java/io/dataease/commons/utils/DeFileUtils.java index 9106a22998..4f89d7e4a2 100644 --- a/backend/src/main/java/io/dataease/commons/utils/DeFileUtils.java +++ b/backend/src/main/java/io/dataease/commons/utils/DeFileUtils.java @@ -35,6 +35,12 @@ public class DeFileUtils { } return filename; } + + public static void validateExist(String path) { + File dir = new File(path); + if (dir.exists()) return ; + dir.mkdirs(); + } /** * 将文件名解析成文件的上传路径 */ @@ -42,6 +48,7 @@ public class DeFileUtils { String name = getFileNameNoEx(file.getOriginalFilename()); String suffix = getExtensionName(file.getOriginalFilename()); try { + validateExist(filePath); String fileName = name + "." + suffix; String path = filePath + fileName; // getCanonicalFile 可解析正确各种路径 diff --git a/backend/src/main/java/io/dataease/service/sys/PluginService.java b/backend/src/main/java/io/dataease/service/sys/PluginService.java index e14056867a..282f3fe68f 100644 --- a/backend/src/main/java/io/dataease/service/sys/PluginService.java +++ b/backend/src/main/java/io/dataease/service/sys/PluginService.java @@ -175,6 +175,7 @@ public class PluginService { MyPlugin result = new MyPlugin(); try { org.apache.commons.beanutils.BeanUtils.populate(result, myPlugin); + result.setInstallTime(System.currentTimeMillis()); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { diff --git a/backend/src/main/resources/db/migration/V33__1.9.sql b/backend/src/main/resources/db/migration/V33__1.9.sql index 921ab185c5..fd5d222e0b 100644 --- a/backend/src/main/resources/db/migration/V33__1.9.sql +++ b/backend/src/main/resources/db/migration/V33__1.9.sql @@ -251,3 +251,8 @@ INSERT INTO `my_plugin`(`plugin_id`, `name`, `store`, `free`, `cost`, `category` ALTER TABLE `panel_link_jump_info` ADD COLUMN `attach_params` tinyint(1) NULL COMMENT '是否附加点击参数' AFTER `checked`; + + +update `sys_menu` set menu_id = 100 where title = '首页'; + +INSERT INTO `sys_menu` VALUES (101, 1, 4, 1, '插件管理', 'system-plugin', 'system/plugin/index', 1002, 'peoples', 'plugin', b'0', b'0', b'0', 'plugin:read', NULL, NULL, NULL, 1620281952752); diff --git a/backend/src/main/resources/i18n/messages_en_US.properties b/backend/src/main/resources/i18n/messages_en_US.properties index a791bd0bcb..a07ed2d8c2 100644 --- a/backend/src/main/resources/i18n/messages_en_US.properties +++ b/backend/src/main/resources/i18n/messages_en_US.properties @@ -122,3 +122,4 @@ theme_name_repeat=name of theme has been existed theme_name_empty=name can not be empty i18n_public_chart=【Public Chart】 i18n_class_blue=Blue Tone +插件管理=Plugins diff --git a/backend/src/main/resources/i18n/messages_zh_CN.properties b/backend/src/main/resources/i18n/messages_zh_CN.properties index 12f05d2d9d..73b2ec6ac2 100644 --- a/backend/src/main/resources/i18n/messages_zh_CN.properties +++ b/backend/src/main/resources/i18n/messages_zh_CN.properties @@ -121,4 +121,5 @@ theme_name_repeat=名称已存在 theme_name_empty=名称不能为空 i18n_public_chart=【存量视图】 i18n_class_blue=蓝色调 +插件管理=插件管理 diff --git a/backend/src/main/resources/i18n/messages_zh_TW.properties b/backend/src/main/resources/i18n/messages_zh_TW.properties index 530efcead4..0e8f1ca77b 100644 --- a/backend/src/main/resources/i18n/messages_zh_TW.properties +++ b/backend/src/main/resources/i18n/messages_zh_TW.properties @@ -122,3 +122,4 @@ theme_name_repeat=名稱已存在 theme_name_empty=名稱不能為空 i18n_public_chart=【存量视图】 i18n_class_blue=蓝色调 +插件管理=插件管理 diff --git a/frontend/src/views/system/plugin/index.vue b/frontend/src/views/system/plugin/index.vue index d5713dfb74..99c08b8f62 100644 --- a/frontend/src/views/system/plugin/index.vue +++ b/frontend/src/views/system/plugin/index.vue @@ -30,7 +30,11 @@ - + @@ -42,7 +46,7 @@ {{ scope.row.installTime | timestampFormatDate }} - + @@ -53,7 +57,7 @@ import LayoutContent from '@/components/business/LayoutContent' import ComplexTable from '@/components/business/complex-table' // import { checkPermission } from '@/utils/permission' -import { formatCondition } from '@/utils/index' +import { formatCondition, formatQuickCondition } from '@/utils/index' import { pluginLists, uninstall } from '@/api/system/plugin' import { getToken } from '@/utils/auth' export default { @@ -70,21 +74,10 @@ export default { // } ], searchConfig: { - useQuickSearch: false, + useQuickSearch: true, quickPlaceholder: this.$t('role.search_by_name'), components: [ - { field: 'name', label: this.$t('plugin.name'), component: 'FuComplexInput' } - - // { - // field: 'u.enabled', - // label: '状态', - // component: 'FuComplexSelect', - // options: [ - // { label: '启用', value: '1' }, - // { label: '禁用', value: '0' } - // ], - // multiple: false - // } + { field: 'name', label: this.$t('plugin.name'), component: 'DeComplexInput' } ] }, paginationConfig: { @@ -107,6 +100,7 @@ export default { methods: { search(condition) { + condition = formatQuickCondition(condition, 'name') const temp = formatCondition(condition) const param = temp || {} const { currentPage, pageSize } = this.paginationConfig