Browse Source

1. 前端发布 8.2.29

2. 前端增加 Formater.join 用于格式化数组
3. 后端开发者工具增加上传功能
4. 修复导入菜单贡献项 bug
main
wangshaoping 2 months ago
parent
commit
728483e69d
  1. 12
      io.sc.engine.rule.frontend/src/views/shared/TestcaseParameterGrid.vue
  2. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/dictionary/entity/DictionaryEntity.java
  3. 2
      io.sc.platform.core.frontend/package.json
  4. 5
      io.sc.platform.core.frontend/src/platform/components-ext/formater/index.ts
  5. 4
      io.sc.platform.core.frontend/template-project/package.json
  6. 21
      io.sc.platform.core/src/main/java/io/sc/platform/core/validation/CodeValidator.java
  7. 43
      io.sc.platform.core/src/main/java/io/sc/platform/core/validation/annotation/Code.java
  8. 4
      io.sc.platform.developer.frontend/package.json
  9. 2
      io.sc.platform.developer.frontend/src/components/index.ts
  10. 112
      io.sc.platform.developer.frontend/src/i18n/messages.json
  11. 112
      io.sc.platform.developer.frontend/src/i18n/messages_tw_CN.json
  12. 112
      io.sc.platform.developer.frontend/src/i18n/messages_zh_CN.json
  13. 4
      io.sc.platform.developer.frontend/src/menus/menus.json
  14. 124
      io.sc.platform.developer.frontend/src/routes/routes.json
  15. 12
      io.sc.platform.developer.frontend/src/views/plugin/ApplicationProperties.vue
  16. 26
      io.sc.platform.developer.frontend/src/views/plugin/FrontendModule.vue
  17. 16
      io.sc.platform.developer.frontend/src/views/plugin/Security.vue
  18. 24
      io.sc.platform.developer/src/main/java/io/sc/platform/developer/tools/controller/ToolsWebController.java
  19. 3
      io.sc.platform.developer/src/main/resources/META-INF/platform/plugins/components.json
  20. 1
      io.sc.platform.system/src/main/java/io/sc/platform/system/menu/service/impl/MenuServiceImpl.java
  21. 8
      io.sc.standard.frontend/src/views/standard/FinancialReportingSubject.vue

12
io.sc.engine.rule.frontend/src/views/shared/TestcaseParameterGrid.vue

@ -85,8 +85,8 @@
format: (value: any, row: any) => { format: (value: any, row: any) => {
return Tools.escapeHtml(value); return Tools.escapeHtml(value);
}, },
title: (args: any) => { title: (value: any, row: any) => {
return args.value; return value;
}, },
}, },
{ {
@ -100,8 +100,8 @@
} }
return value; return value;
}, },
title: (args: any) => { title: (value: any, row: any) => {
return args.value; return value;
}, },
}, },
{ {
@ -121,8 +121,8 @@
format: (value: any, row: any) => { format: (value: any, row: any) => {
return Tools.escapeHtml(value); return Tools.escapeHtml(value);
}, },
title: (args: any) => { title: (value: any, row: any) => {
return args.value; return value;
}, },
}, },
{ {

2
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/dictionary/entity/DictionaryEntity.java

@ -43,7 +43,7 @@ public class DictionaryEntity extends CorporationAuditorEntity<DictionaryVo> imp
@Column(name="ID_", length=36) @Column(name="ID_", length=36)
@Size(max=36) @Size(max=36)
protected String id; protected String id;
//代码 //代码
@Column(name="CODE_", length=254) @Column(name="CODE_", length=254)
@Size(max=254) @Size(max=254)

2
io.sc.platform.core.frontend/package.json

@ -1,6 +1,6 @@
{ {
"name": "platform-core", "name": "platform-core",
"version": "8.2.28", "version": "8.2.29",
"description": "前端核心包,用于快速构建前端的脚手架", "description": "前端核心包,用于快速构建前端的脚手架",
"//main": "库的主文件", "//main": "库的主文件",
"main": "dist/platform-core.js", "main": "dist/platform-core.js",

5
io.sc.platform.core.frontend/src/platform/components-ext/formater/index.ts

@ -8,6 +8,7 @@ import { simpleClassNameFormater } from './SimpleClassNameFormater';
import { SplitFormater } from './SplitFormater'; import { SplitFormater } from './SplitFormater';
import { ReplaceFormater } from './ReplaceFormater'; import { ReplaceFormater } from './ReplaceFormater';
import { i18nFormater } from './I18nFormater'; import { i18nFormater } from './I18nFormater';
import { JoinFormater } from './JoinFormater';
import { percentFormater } from './PercentFormater'; import { percentFormater } from './PercentFormater';
import { thousandsFormater } from './ThousandsFormater'; import { thousandsFormater } from './ThousandsFormater';
@ -57,6 +58,10 @@ class Formater {
return new SplitFormater(spliter, replacer).formater(); return new SplitFormater(spliter, replacer).formater();
} }
public static join(joiner: string) {
return new JoinFormater(joiner).formater();
}
public static replaceAll(token: string = '\n', replacer: string = '<br/>') { public static replaceAll(token: string = '\n', replacer: string = '<br/>') {
return new ReplaceFormater(token, replacer).formater(); return new ReplaceFormater(token, replacer).formater();
} }

4
io.sc.platform.core.frontend/template-project/package.json

@ -1,6 +1,6 @@
{ {
"name": "platform-core", "name": "platform-core",
"version": "8.2.28", "version": "8.2.29",
"description": "前端核心包,用于快速构建前端的脚手架", "description": "前端核心包,用于快速构建前端的脚手架",
"private": false, "private": false,
"keywords": [], "keywords": [],
@ -110,7 +110,7 @@
"mockjs": "1.1.0", "mockjs": "1.1.0",
"node-sql-parser": "5.3.4", "node-sql-parser": "5.3.4",
"pinia": "2.2.6", "pinia": "2.2.6",
"platform-core": "8.2.28", "platform-core": "8.2.29",
"quasar": "2.17.4", "quasar": "2.17.4",
"sort-array": "5.0.0", "sort-array": "5.0.0",
"svg-path-commander": "2.1.5", "svg-path-commander": "2.1.5",

21
io.sc.platform.core/src/main/java/io/sc/platform/core/validation/CodeValidator.java

@ -0,0 +1,21 @@
package io.sc.platform.core.validation;
import io.sc.platform.core.validation.annotation.Code;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
public class CodeValidator implements ConstraintValidator<Code, String> {
@Override
public void initialize(Code constraintAnnotation) {
ConstraintValidator.super.initialize(constraintAnnotation);
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
System.out.println(">>>>>>>>" + value);
return false;
}
}

43
io.sc.platform.core/src/main/java/io/sc/platform/core/validation/annotation/Code.java

@ -0,0 +1,43 @@
package io.sc.platform.core.validation.annotation;
import io.sc.platform.core.validation.CodeValidator;
import javax.validation.Constraint;
import javax.validation.Payload;
import javax.validation.constraints.Pattern;
import java.lang.annotation.Documented;
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RUNTIME)
@Repeatable(Code.List.class)
@Documented
@Constraint(validatedBy= CodeValidator.class)
public @interface Code {
/**
* @return the error message template
*/
String message() default "{javax.validation.constraints.Pattern.message}";
/**
* @return the groups the constraint belongs to
*/
Class<?>[] groups() default { };
/**
* @return the payload associated to the constraint
*/
Class<? extends Payload>[] payload() default { };
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RUNTIME)
@Documented
@interface List {
Code[] value();
}
}

4
io.sc.platform.developer.frontend/package.json

@ -111,7 +111,7 @@
"node-sql-parser": "5.3.4", "node-sql-parser": "5.3.4",
"pinia": "2.2.6", "pinia": "2.2.6",
"pinia-undo": "0.2.4", "pinia-undo": "0.2.4",
"platform-core": "8.2.28", "platform-core": "8.2.29",
"quasar": "2.17.4", "quasar": "2.17.4",
"sort-array": "5.0.0", "sort-array": "5.0.0",
"svg-path-commander": "2.1.5", "svg-path-commander": "2.1.5",
@ -122,4 +122,4 @@
"vue-router": "4.5.0", "vue-router": "4.5.0",
"xml-formatter": "3.6.3" "xml-formatter": "3.6.3"
} }
} }

2
io.sc.platform.developer.frontend/src/components/index.ts

@ -28,6 +28,7 @@ import component_developer_plugin_SystemProperties from '@/views/plugin/SystemPr
import component_developer_backend_importLiquibase from '@/views/backend/ImportLiquibase.vue'; import component_developer_backend_importLiquibase from '@/views/backend/ImportLiquibase.vue';
import component_developer_backend_exportLiquibase from '@/views/backend/ExportLiquibase.vue'; import component_developer_backend_exportLiquibase from '@/views/backend/ExportLiquibase.vue';
import component_developer_backend_sql from '@/views/backend/sql/Sql.vue'; import component_developer_backend_sql from '@/views/backend/sql/Sql.vue';
import component_developer_backend_upload from '@/views/backend/Upload.vue';
import component_developer_frontend_Icons from '@/views/frontend/Icons.vue'; import component_developer_frontend_Icons from '@/views/frontend/Icons.vue';
import component_developer_frontend_SvgEditor from '@/views/frontend/SvgEditor.vue'; import component_developer_frontend_SvgEditor from '@/views/frontend/SvgEditor.vue';
import component_developer_frontend_SvgPathEditor from '@/views/frontend/SvgPathEditor.vue'; import component_developer_frontend_SvgPathEditor from '@/views/frontend/SvgPathEditor.vue';
@ -60,6 +61,7 @@ const localComponents = {
'component.developer.backend.importLiquibase': component_developer_backend_importLiquibase, 'component.developer.backend.importLiquibase': component_developer_backend_importLiquibase,
'component.developer.backend.exportLiquibase': component_developer_backend_exportLiquibase, 'component.developer.backend.exportLiquibase': component_developer_backend_exportLiquibase,
'component.developer.backend.sql': component_developer_backend_sql, 'component.developer.backend.sql': component_developer_backend_sql,
'component.developer.backend.upload': component_developer_backend_upload,
'component.developer.frontend.Icons': component_developer_frontend_Icons, 'component.developer.frontend.Icons': component_developer_frontend_Icons,
'component.developer.frontend.SvgEditor': component_developer_frontend_SvgEditor, 'component.developer.frontend.SvgEditor': component_developer_frontend_SvgEditor,
'component.developer.frontend.SvgPathEditor': component_developer_frontend_SvgPathEditor, 'component.developer.frontend.SvgPathEditor': component_developer_frontend_SvgPathEditor,

112
io.sc.platform.developer.frontend/src/i18n/messages.json

@ -1,68 +1,70 @@
{ {
"menu.developer" : "Developer Tools", "menu.developer": "Developer Tools",
"menu.developer.help" : "Developer Help", "menu.developer.help": "Developer Help",
"menu.developer.springboot" : "Spring Boot Container", "menu.developer.springboot": "Spring Boot Container",
"menu.developer.springboot.bean" : "Bean", "menu.developer.springboot.bean": "Bean",
"menu.developer.springboot.mapping" : "Request Mapping", "menu.developer.springboot.mapping": "Request Mapping",
"menu.developer.springboot.environment" : "Environment", "menu.developer.springboot.environment": "Environment",
"menu.developer.springboot.autoconfigure" : "Auto Configure", "menu.developer.springboot.autoconfigure": "Auto Configure",
"menu.developer.plugin" : "Platform Plugins", "menu.developer.plugin": "Platform Plugins",
"menu.developer.plugin.applicationProperties" : "Application Properties", "menu.developer.plugin.applicationProperties": "Application Properties",
"menu.developer.plugin.components" : "Auto Scan Components", "menu.developer.plugin.components": "Auto Scan Components",
"menu.developer.plugin.directories" : "Directories", "menu.developer.plugin.directories": "Directories",
"menu.developer.plugin.initializer" : "Initializer", "menu.developer.plugin.initializer": "Initializer",
"menu.developer.plugin.jsonSerializers" : "Json Serializer", "menu.developer.plugin.jsonSerializers": "Json Serializer",
"menu.developer.plugin.messages" : "I18n Messages", "menu.developer.plugin.messages": "I18n Messages",
"menu.developer.plugin.restartProperties" : "Restart Properties", "menu.developer.plugin.restartProperties": "Restart Properties",
"menu.developer.plugin.security" : "Security", "menu.developer.plugin.security": "Security",
"menu.developer.plugin.p6spy" : "p6spy", "menu.developer.plugin.p6spy": "p6spy",
"menu.developer.plugin.systemProperties" : "System Properties", "menu.developer.plugin.systemProperties": "System Properties",
"menu.developer.plugin.parameters" : "System Parameter", "menu.developer.plugin.parameters": "System Parameter",
"menu.developer.plugin.swagger" : "Swagger", "menu.developer.plugin.swagger": "Swagger",
"menu.developer.plugin.repositories" : "JPA Repository", "menu.developer.plugin.repositories": "JPA Repository",
"menu.developer.plugin.liquibase" : "Liquibase", "menu.developer.plugin.liquibase": "Liquibase",
"menu.developer.plugin.frontendModule" : "Front End Module", "menu.developer.plugin.frontendModule": "Front End Module",
"menu.developer.plugin.frontendRoutes" : "Front End Route", "menu.developer.plugin.frontendRoutes": "Front End Route",
"menu.developer.plugin.menus" : "Menu", "menu.developer.plugin.menus": "Menu",
"menu.developer.plugin.ws" : "WebService", "menu.developer.plugin.ws": "WebService",
"menu.developer.backend" : "Back End Tools", "menu.developer.backend": "Back End Tools",
"menu.developer.backend.import.liquibase" : "Data Import", "menu.developer.backend.import.liquibase": "Data Import",
"menu.developer.backend.export.liquibase" : "Data Export", "menu.developer.backend.export.liquibase": "Data Export",
"menu.developer.backend.sql" : "SQL", "menu.developer.backend.sql": "SQL",
"menu.developer.backend.upload": "Upload File",
"menu.developer.backend.upload.pleaseSelectFile": "Please select a file to upload.",
"menu.developer.frontend" : "Front End Tools", "menu.developer.frontend": "Front End Tools",
"menu.developer.frontend.icons" : "Icons", "menu.developer.frontend.icons": "Icons",
"menu.developer.frontend.svgEditor": "SVG Editor", "menu.developer.frontend.svgEditor": "SVG Editor",
"menu.developer.frontend.svgPathEditor": "SVG Path Editor", "menu.developer.frontend.svgPathEditor": "SVG Path Editor",
"menu.developer.frontend.svgToPath": "SVG to PATH", "menu.developer.frontend.svgToPath": "SVG to PATH",
"developer.backend.import.liquibase.deleteFirst" : "Delete data before import?", "developer.backend.import.liquibase.deleteFirst": "Delete data before import?",
"developer.backend.import.liquibase.import.tip" : "Are you sure to import?", "developer.backend.import.liquibase.import.tip": "Are you sure to import?",
"developer.backend.export.liquibase.datasource" : "Datasource", "developer.backend.export.liquibase.datasource": "Datasource",
"developer.backend.export.liquibase.schema" : "Schema", "developer.backend.export.liquibase.schema": "Schema",
"developer.backend.export.liquibase.tables" : "Tables", "developer.backend.export.liquibase.tables": "Tables",
"developer.backend.export.liquibase.export.tip" : "Are you sure to export?", "developer.backend.export.liquibase.export.tip": "Are you sure to export?",
"developer.backend.sql.datasource" : "Datasource", "developer.backend.sql.datasource": "Datasource",
"developer.backend.sql.schema" : "Schema", "developer.backend.sql.schema": "Schema",
"developer.backend.sql.action.execute" : "Execute", "developer.backend.sql.action.execute": "Execute",
"developer.backend.sql.action.executeAll" : "Execute All", "developer.backend.sql.action.executeAll": "Execute All",
"developer.backend.sql.action.import" : "Import", "developer.backend.sql.action.import": "Import",
"developer.backend.sql.import.dialog.title" : "Data Import", "developer.backend.sql.import.dialog.title": "Data Import",
"developer.backend.sql.import.dialog.step.upload" : "Upload File", "developer.backend.sql.import.dialog.step.upload": "Upload File",
"developer.backend.sql.import.dialog.step.upload.fileTip" : "Please select a .xlsx or .csv file", "developer.backend.sql.import.dialog.step.upload.fileTip": "Please select a .xlsx or .csv file",
"developer.backend.sql.import.dialog.step.dataView" : "View Data", "developer.backend.sql.import.dialog.step.dataView": "View Data",
"developer.backend.sql.import.dialog.step.mapping" : "Table and field mapping", "developer.backend.sql.import.dialog.step.mapping": "Table and field mapping",
"developer.backend.sql.import.dialog.step.mapping.table": "Table Name:", "developer.backend.sql.import.dialog.step.mapping.table": "Table Name:",
"developer.backend.sql.import.dialog.step.mapping.fieldNameRowIndex" : "Field Name Row Index", "developer.backend.sql.import.dialog.step.mapping.fieldNameRowIndex": "Field Name Row Index",
"developer.backend.sql.import.dialog.step.mapping.grid.entity.no" : "Excel No.", "developer.backend.sql.import.dialog.step.mapping.grid.entity.no": "Excel No.",
"developer.backend.sql.import.dialog.step.mapping.grid.entity.fieldName" : "Field Name", "developer.backend.sql.import.dialog.step.mapping.grid.entity.fieldName": "Field Name",
"developer.backend.sql.import.dialog.step.mapping.grid.entity.javaType" : "Field Type", "developer.backend.sql.import.dialog.step.mapping.grid.entity.javaType": "Field Type",
"developer.backend.sql.import.dialog.step.import" : "Import", "developer.backend.sql.import.dialog.step.import": "Import",
"developer.backend.sql.import.dialog.step.import.progress" : "Current Running Task:", "developer.backend.sql.import.dialog.step.import.progress": "Current Running Task:",
"developer.backend.sql.import.dialog.step.result" : "Result", "developer.backend.sql.import.dialog.step.result": "Result"
} }

112
io.sc.platform.developer.frontend/src/i18n/messages_tw_CN.json

@ -1,68 +1,70 @@
{ {
"menu.developer" : "開發者工具", "menu.developer": "開發者工具",
"menu.developer.help" : "開發者幫助文檔", "menu.developer.help": "開發者幫助文檔",
"menu.developer.springboot" : "Spring Boot 容器", "menu.developer.springboot": "Spring Boot 容器",
"menu.developer.springboot.bean" : "Bean", "menu.developer.springboot.bean": "Bean",
"menu.developer.springboot.mapping" : "Request Mapping", "menu.developer.springboot.mapping": "Request Mapping",
"menu.developer.springboot.environment" : "Environment", "menu.developer.springboot.environment": "Environment",
"menu.developer.springboot.autoconfigure" : "Auto Configure", "menu.developer.springboot.autoconfigure": "Auto Configure",
"menu.developer.plugin" : "平台插件", "menu.developer.plugin": "平台插件",
"menu.developer.plugin.applicationProperties" : "Application Properties", "menu.developer.plugin.applicationProperties": "Application Properties",
"menu.developer.plugin.components" : "自動掃描組件", "menu.developer.plugin.components": "自動掃描組件",
"menu.developer.plugin.directories" : "目錄", "menu.developer.plugin.directories": "目錄",
"menu.developer.plugin.initializer" : "初始化器", "menu.developer.plugin.initializer": "初始化器",
"menu.developer.plugin.jsonSerializers" : "Json 序列化器", "menu.developer.plugin.jsonSerializers": "Json 序列化器",
"menu.developer.plugin.messages" : "國際化多語言消息", "menu.developer.plugin.messages": "國際化多語言消息",
"menu.developer.plugin.restartProperties" : "Restart Properties", "menu.developer.plugin.restartProperties": "Restart Properties",
"menu.developer.plugin.security" : "安全", "menu.developer.plugin.security": "安全",
"menu.developer.plugin.p6spy" : "p6spy", "menu.developer.plugin.p6spy": "p6spy",
"menu.developer.plugin.systemProperties" : "System Properties", "menu.developer.plugin.systemProperties": "System Properties",
"menu.developer.plugin.parameters" : "系統參數", "menu.developer.plugin.parameters": "系統參數",
"menu.developer.plugin.swagger" : "Swagger", "menu.developer.plugin.swagger": "Swagger",
"menu.developer.plugin.repositories" : "JPA Repository", "menu.developer.plugin.repositories": "JPA Repository",
"menu.developer.plugin.liquibase" : "Liquibase", "menu.developer.plugin.liquibase": "Liquibase",
"menu.developer.plugin.frontendModule" : "前端模塊", "menu.developer.plugin.frontendModule": "前端模塊",
"menu.developer.plugin.frontendRoutes" : "前端路由", "menu.developer.plugin.frontendRoutes": "前端路由",
"menu.developer.plugin.menus" : "菜單", "menu.developer.plugin.menus": "菜單",
"menu.developer.plugin.ws" : "Web 服務", "menu.developer.plugin.ws": "Web 服務",
"menu.developer.backend" : "後端工具", "menu.developer.backend": "後端工具",
"menu.developer.backend.import.liquibase" : "數據導入", "menu.developer.backend.import.liquibase": "數據導入",
"menu.developer.backend.export.liquibase" : "數據導出", "menu.developer.backend.export.liquibase": "數據導出",
"menu.developer.backend.sql" : "SQL", "menu.developer.backend.sql": "SQL",
"menu.developer.backend.upload": "上傳文件",
"menu.developer.backend.upload.pleaseSelectFile": "請選擇一個本地文件, 然後重試。",
"menu.developer.frontend" : "前端工具", "menu.developer.frontend": "前端工具",
"menu.developer.frontend.icons" : "圖標庫", "menu.developer.frontend.icons": "圖標庫",
"menu.developer.frontend.svgEditor": "SVG 編輯器", "menu.developer.frontend.svgEditor": "SVG 編輯器",
"menu.developer.frontend.svgPathEditor": "SVG 路徑編輯器", "menu.developer.frontend.svgPathEditor": "SVG 路徑編輯器",
"menu.developer.frontend.svgToPath": "SVG 轉 PATH", "menu.developer.frontend.svgToPath": "SVG 轉 PATH",
"developer.backend.import.liquibase.deleteFirst" : "導入數據前首先刪除原數據?", "developer.backend.import.liquibase.deleteFirst": "導入數據前首先刪除原數據?",
"developer.backend.import.liquibase.import.tip" : "您確定要導入嗎?", "developer.backend.import.liquibase.import.tip": "您確定要導入嗎?",
"developer.backend.export.liquibase.datasource" : "數據源", "developer.backend.export.liquibase.datasource": "數據源",
"developer.backend.export.liquibase.schema" : "方案", "developer.backend.export.liquibase.schema": "方案",
"developer.backend.export.liquibase.tables" : "表", "developer.backend.export.liquibase.tables": "表",
"developer.backend.export.liquibase.export.tip" : "您確定要導出嗎?", "developer.backend.export.liquibase.export.tip": "您確定要導出嗎?",
"developer.backend.sql.datasource" : "數據源", "developer.backend.sql.datasource": "數據源",
"developer.backend.sql.schema" : "方案", "developer.backend.sql.schema": "方案",
"developer.backend.sql.action.execute" : "執行", "developer.backend.sql.action.execute": "執行",
"developer.backend.sql.action.executeAll" : "執行所有", "developer.backend.sql.action.executeAll": "執行所有",
"developer.backend.sql.action.import" : "數據導入", "developer.backend.sql.action.import": "數據導入",
"developer.backend.sql.import.dialog.title" : "數據導入", "developer.backend.sql.import.dialog.title": "數據導入",
"developer.backend.sql.import.dialog.step.upload" : "上傳文件", "developer.backend.sql.import.dialog.step.upload": "上傳文件",
"developer.backend.sql.import.dialog.step.upload.fileTip" : "請選擇一個 .xlsx 或 .csv 文件", "developer.backend.sql.import.dialog.step.upload.fileTip": "請選擇一個 .xlsx 或 .csv 文件",
"developer.backend.sql.import.dialog.step.dataView" : "查看數據", "developer.backend.sql.import.dialog.step.dataView": "查看數據",
"developer.backend.sql.import.dialog.step.mapping" : "表和字段映射", "developer.backend.sql.import.dialog.step.mapping": "表和字段映射",
"developer.backend.sql.import.dialog.step.mapping.table": "數據庫表名:", "developer.backend.sql.import.dialog.step.mapping.table": "數據庫表名:",
"developer.backend.sql.import.dialog.step.mapping.fieldNameRowIndex" : "數據庫表字段名行號", "developer.backend.sql.import.dialog.step.mapping.fieldNameRowIndex": "數據庫表字段名行號",
"developer.backend.sql.import.dialog.step.mapping.grid.entity.no" : "Excel 序號", "developer.backend.sql.import.dialog.step.mapping.grid.entity.no": "Excel 序號",
"developer.backend.sql.import.dialog.step.mapping.grid.entity.fieldName" : "字段名", "developer.backend.sql.import.dialog.step.mapping.grid.entity.fieldName": "字段名",
"developer.backend.sql.import.dialog.step.mapping.grid.entity.javaType" : "數據類型", "developer.backend.sql.import.dialog.step.mapping.grid.entity.javaType": "數據類型",
"developer.backend.sql.import.dialog.step.import" : "導入", "developer.backend.sql.import.dialog.step.import": "導入",
"developer.backend.sql.import.dialog.step.import.progress" : "當前正在執行的任務進度:", "developer.backend.sql.import.dialog.step.import.progress": "當前正在執行的任務進度:",
"developer.backend.sql.import.dialog.step.result" : "導入結果", "developer.backend.sql.import.dialog.step.result": "導入結果"
} }

112
io.sc.platform.developer.frontend/src/i18n/messages_zh_CN.json

@ -1,68 +1,70 @@
{ {
"menu.developer" : "开发者工具", "menu.developer": "开发者工具",
"menu.developer.help" : "开发者帮助文档", "menu.developer.help": "开发者帮助文档",
"menu.developer.springboot" : "Spring Boot 容器", "menu.developer.springboot": "Spring Boot 容器",
"menu.developer.springboot.bean" : "Bean", "menu.developer.springboot.bean": "Bean",
"menu.developer.springboot.mapping" : "Request Mapping", "menu.developer.springboot.mapping": "Request Mapping",
"menu.developer.springboot.environment" : "Environment", "menu.developer.springboot.environment": "Environment",
"menu.developer.springboot.autoconfigure" : "Auto Configure", "menu.developer.springboot.autoconfigure": "Auto Configure",
"menu.developer.plugin" : "平台插件", "menu.developer.plugin": "平台插件",
"menu.developer.plugin.applicationProperties" : "Application Properties", "menu.developer.plugin.applicationProperties": "Application Properties",
"menu.developer.plugin.components" : "自动扫描组件", "menu.developer.plugin.components": "自动扫描组件",
"menu.developer.plugin.directories" : "目录", "menu.developer.plugin.directories": "目录",
"menu.developer.plugin.initializer" : "初始化器", "menu.developer.plugin.initializer": "初始化器",
"menu.developer.plugin.jsonSerializers" : "Json 序列化器", "menu.developer.plugin.jsonSerializers": "Json 序列化器",
"menu.developer.plugin.messages" : "国际化多语言消息", "menu.developer.plugin.messages": "国际化多语言消息",
"menu.developer.plugin.restartProperties" : "Restart Properties", "menu.developer.plugin.restartProperties": "Restart Properties",
"menu.developer.plugin.security" : "安全", "menu.developer.plugin.security": "安全",
"menu.developer.plugin.p6spy" : "p6spy", "menu.developer.plugin.p6spy": "p6spy",
"menu.developer.plugin.systemProperties" : "System Properties", "menu.developer.plugin.systemProperties": "System Properties",
"menu.developer.plugin.parameters" : "系统参数", "menu.developer.plugin.parameters": "系统参数",
"menu.developer.plugin.swagger" : "Swagger", "menu.developer.plugin.swagger": "Swagger",
"menu.developer.plugin.repositories" : "JPA Repository", "menu.developer.plugin.repositories": "JPA Repository",
"menu.developer.plugin.liquibase" : "Liquibase", "menu.developer.plugin.liquibase": "Liquibase",
"menu.developer.plugin.frontendModule" : "前端模块", "menu.developer.plugin.frontendModule": "前端模块",
"menu.developer.plugin.frontendRoutes" : "前端路由", "menu.developer.plugin.frontendRoutes": "前端路由",
"menu.developer.plugin.menus" : "菜单", "menu.developer.plugin.menus": "菜单",
"menu.developer.plugin.ws" : "Web 服务", "menu.developer.plugin.ws": "Web 服务",
"menu.developer.backend" : "后端工具", "menu.developer.backend": "后端工具",
"menu.developer.backend.import.liquibase" : "数据导入", "menu.developer.backend.import.liquibase": "数据导入",
"menu.developer.backend.export.liquibase" : "数据导出", "menu.developer.backend.export.liquibase": "数据导出",
"menu.developer.backend.sql" : "SQL", "menu.developer.backend.sql": "SQL",
"menu.developer.backend.upload": "上传文件",
"menu.developer.backend.upload.pleaseSelectFile": "请选择一个本地文件, 然后重试。",
"menu.developer.frontend" : "前端工具", "menu.developer.frontend": "前端工具",
"menu.developer.frontend.icons" : "图标库", "menu.developer.frontend.icons": "图标库",
"menu.developer.frontend.svgEditor": "SVG 编辑器", "menu.developer.frontend.svgEditor": "SVG 编辑器",
"menu.developer.frontend.svgPathEditor": "SVG 路径编辑器", "menu.developer.frontend.svgPathEditor": "SVG 路径编辑器",
"menu.developer.frontend.svgToPath": "SVG 转 PATH", "menu.developer.frontend.svgToPath": "SVG 转 PATH",
"developer.backend.import.liquibase.deleteFirst" : "导入数据前首先删除原数据?", "developer.backend.import.liquibase.deleteFirst": "导入数据前首先删除原数据?",
"developer.backend.import.liquibase.import.tip" : "您确定要导入吗?", "developer.backend.import.liquibase.import.tip": "您确定要导入吗?",
"developer.backend.export.liquibase.datasource" : "数据源", "developer.backend.export.liquibase.datasource": "数据源",
"developer.backend.export.liquibase.schema" : "方案", "developer.backend.export.liquibase.schema": "方案",
"developer.backend.export.liquibase.tables" : "表", "developer.backend.export.liquibase.tables": "表",
"developer.backend.export.liquibase.export.tip" : "您确定要导出吗?", "developer.backend.export.liquibase.export.tip": "您确定要导出吗?",
"developer.backend.sql.datasource" : "数据源", "developer.backend.sql.datasource": "数据源",
"developer.backend.sql.schema" : "方案", "developer.backend.sql.schema": "方案",
"developer.backend.sql.action.execute" : "执行", "developer.backend.sql.action.execute": "执行",
"developer.backend.sql.action.executeAll" : "执行所有", "developer.backend.sql.action.executeAll": "执行所有",
"developer.backend.sql.action.import" : "数据导入", "developer.backend.sql.action.import": "数据导入",
"developer.backend.sql.import.dialog.title" : "数据导入", "developer.backend.sql.import.dialog.title": "数据导入",
"developer.backend.sql.import.dialog.step.upload" : "上传文件", "developer.backend.sql.import.dialog.step.upload": "上传文件",
"developer.backend.sql.import.dialog.step.upload.fileTip" : "请选择一个 .xlsx 或 .csv 文件", "developer.backend.sql.import.dialog.step.upload.fileTip": "请选择一个 .xlsx 或 .csv 文件",
"developer.backend.sql.import.dialog.step.dataView" : "查看数据", "developer.backend.sql.import.dialog.step.dataView": "查看数据",
"developer.backend.sql.import.dialog.step.mapping" : "表和字段映射", "developer.backend.sql.import.dialog.step.mapping": "表和字段映射",
"developer.backend.sql.import.dialog.step.mapping.table": "数据库表名:", "developer.backend.sql.import.dialog.step.mapping.table": "数据库表名:",
"developer.backend.sql.import.dialog.step.mapping.fieldNameRowIndex" : "数据库表字段名行号", "developer.backend.sql.import.dialog.step.mapping.fieldNameRowIndex": "数据库表字段名行号",
"developer.backend.sql.import.dialog.step.mapping.grid.entity.no" : "Excel 序号", "developer.backend.sql.import.dialog.step.mapping.grid.entity.no": "Excel 序号",
"developer.backend.sql.import.dialog.step.mapping.grid.entity.fieldName" : "字段名", "developer.backend.sql.import.dialog.step.mapping.grid.entity.fieldName": "字段名",
"developer.backend.sql.import.dialog.step.mapping.grid.entity.javaType" : "数据类型", "developer.backend.sql.import.dialog.step.mapping.grid.entity.javaType": "数据类型",
"developer.backend.sql.import.dialog.step.import" : "导入", "developer.backend.sql.import.dialog.step.import": "导入",
"developer.backend.sql.import.dialog.step.import.progress" : "当前正在执行的任务进度:", "developer.backend.sql.import.dialog.step.import.progress": "当前正在执行的任务进度:",
"developer.backend.sql.import.dialog.step.result" : "导入结果", "developer.backend.sql.import.dialog.step.result": "导入结果"
} }

4
io.sc.platform.developer.frontend/src/menus/menus.json

@ -78,7 +78,9 @@
/*//*/ /*//*/
{"type":"ROUTE", "order":200, "parentId":"menu.developer.backend", "id":"menu.developer.backend.export.liquibase", "titleI18nKey":"menu.developer.backend.export.liquibase", "icon":"bi-database-down", "routeName":"route.developer.backend.export.liquibase"}, {"type":"ROUTE", "order":200, "parentId":"menu.developer.backend", "id":"menu.developer.backend.export.liquibase", "titleI18nKey":"menu.developer.backend.export.liquibase", "icon":"bi-database-down", "routeName":"route.developer.backend.export.liquibase"},
/*//SQL*/ /*//SQL*/
{"type":"ROUTE", "order":200, "parentId":"menu.developer.backend", "id":"menu.developer.backend.sql", "titleI18nKey":"menu.developer.backend.sql", "icon":"bi-filetype-sql", "routeName":"route.developer.backend.sql"}, {"type":"ROUTE", "order":300, "parentId":"menu.developer.backend", "id":"menu.developer.backend.sql", "titleI18nKey":"menu.developer.backend.sql", "icon":"bi-filetype-sql", "routeName":"route.developer.backend.sql"},
/*//*/
{"type":"ROUTE", "order":400, "parentId":"menu.developer.backend", "id":"menu.developer.backend.upload", "titleI18nKey":"menu.developer.backend.upload", "icon":"cloud_upload", "routeName":"route.developer.backend.upload"},
/*/*/ /*/*/
{"type":"GROUP", "order":600, "parentId":"menu.developer", "id":"menu.developer.frontend", "titleI18nKey":"menu.developer.frontend", "icon":"bi-layout-text-window"}, {"type":"GROUP", "order":600, "parentId":"menu.developer", "id":"menu.developer.frontend", "titleI18nKey":"menu.developer.frontend", "icon":"bi-layout-text-window"},

124
io.sc.platform.developer.frontend/src/routes/routes.json

@ -9,9 +9,7 @@
"componentPath": "@/views/Help.vue", "componentPath": "@/views/Help.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/help/**/*"]
"/system/developer/help/**/*"
]
} }
}, },
{ {
@ -24,9 +22,7 @@
"componentPath": "@/views/springboot/Autoconfigure.vue", "componentPath": "@/views/springboot/Autoconfigure.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/springboot/autoconfigure/**/*"]
"/system/developer/springboot/autoconfigure/**/*"
]
} }
}, },
{ {
@ -39,9 +35,7 @@
"componentPath": "@/views/springboot/Bean.vue", "componentPath": "@/views/springboot/Bean.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/springboot/bean/**/*"]
"/system/developer/springboot/bean/**/*"
]
} }
}, },
{ {
@ -54,9 +48,7 @@
"componentPath": "@/views/springboot/Environment.vue", "componentPath": "@/views/springboot/Environment.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/springboot/environment/**/*"]
"/system/developer/springboot/environment/**/*"
]
} }
}, },
{ {
@ -69,9 +61,7 @@
"componentPath": "@/views/springboot/Mapping.vue", "componentPath": "@/views/springboot/Mapping.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/springboot/mapping/**/*"]
"/system/developer/springboot/mapping/**/*"
]
} }
}, },
{ {
@ -84,9 +74,7 @@
"componentPath": "@/views/plugin/ApplicationProperties.vue", "componentPath": "@/views/plugin/ApplicationProperties.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/plugin/applicationProperties/**/*"]
"/system/developer/plugin/applicationProperties/**/*"
]
} }
}, },
{ {
@ -99,9 +87,7 @@
"componentPath": "@/views/plugin/Components.vue", "componentPath": "@/views/plugin/Components.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/plugin/components/**/*"]
"/system/developer/plugin/components/**/*"
]
} }
}, },
{ {
@ -114,9 +100,7 @@
"componentPath": "@/views/plugin/Directories.vue", "componentPath": "@/views/plugin/Directories.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/plugin/directories/**/*"]
"/system/developer/plugin/directories/**/*"
]
} }
}, },
{ {
@ -129,9 +113,7 @@
"componentPath": "@/views/plugin/FrontendModule.vue", "componentPath": "@/views/plugin/FrontendModule.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/plugin/frontendModule/**/*"]
"/system/developer/plugin/frontendModule/**/*"
]
} }
}, },
{ {
@ -144,9 +126,7 @@
"componentPath": "@/views/plugin/FrontendRoutes.vue", "componentPath": "@/views/plugin/FrontendRoutes.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/plugin/frontendRoutes/**/*"]
"/system/developer/plugin/frontendRoutes/**/*"
]
} }
}, },
{ {
@ -159,9 +139,7 @@
"componentPath": "@/views/plugin/Initializer.vue", "componentPath": "@/views/plugin/Initializer.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/plugin/initializer/**/*"]
"/system/developer/plugin/initializer/**/*"
]
} }
}, },
{ {
@ -174,9 +152,7 @@
"componentPath": "@/views/plugin/JsonSerializers.vue", "componentPath": "@/views/plugin/JsonSerializers.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/plugin/jsonSerializers/**/*"]
"/system/developer/plugin/jsonSerializers/**/*"
]
} }
}, },
{ {
@ -189,9 +165,7 @@
"componentPath": "@/views/plugin/Menus.vue", "componentPath": "@/views/plugin/Menus.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/plugin/menus/**/*"]
"/system/developer/plugin/menus/**/*"
]
} }
}, },
{ {
@ -204,9 +178,7 @@
"componentPath": "@/views/plugin/Messages.vue", "componentPath": "@/views/plugin/Messages.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/plugin/messages/**/*"]
"/system/developer/plugin/messages/**/*"
]
} }
}, },
{ {
@ -219,9 +191,7 @@
"componentPath": "@/views/plugin/P6spy.vue", "componentPath": "@/views/plugin/P6spy.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/plugin/p6spy/**/*"]
"/system/developer/plugin/p6spy/**/*"
]
} }
}, },
{ {
@ -234,9 +204,7 @@
"componentPath": "@/views/plugin/Parameters.vue", "componentPath": "@/views/plugin/Parameters.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/plugin/parameters/**/*"]
"/system/developer/plugin/parameters/**/*"
]
} }
}, },
{ {
@ -249,9 +217,7 @@
"componentPath": "@/views/plugin/Repositories.vue", "componentPath": "@/views/plugin/Repositories.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/plugin/repositories/**/*"]
"/system/developer/plugin/repositories/**/*"
]
} }
}, },
{ {
@ -264,9 +230,7 @@
"componentPath": "@/views/plugin/Liquibase.vue", "componentPath": "@/views/plugin/Liquibase.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/plugin/repositories/**/*"]
"/system/developer/plugin/repositories/**/*"
]
} }
}, },
{ {
@ -279,9 +243,7 @@
"componentPath": "@/views/plugin/RestartProperties.vue", "componentPath": "@/views/plugin/RestartProperties.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/plugin/restartProperties/**/*"]
"/system/developer/plugin/restartProperties/**/*"
]
} }
}, },
{ {
@ -294,9 +256,7 @@
"componentPath": "@/views/plugin/Security.vue", "componentPath": "@/views/plugin/Security.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/plugin/security/**/*"]
"/system/developer/plugin/security/**/*"
]
} }
}, },
{ {
@ -309,9 +269,7 @@
"componentPath": "@/views/plugin/Ws.vue", "componentPath": "@/views/plugin/Ws.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/plugin/ws/**/*"]
"/system/developer/plugin/ws/**/*"
]
} }
}, },
{ {
@ -324,9 +282,7 @@
"componentPath": "@/views/plugin/Swagger.vue", "componentPath": "@/views/plugin/Swagger.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/plugin/swagger/**/*"]
"/system/developer/plugin/swagger/**/*"
]
} }
}, },
{ {
@ -339,9 +295,7 @@
"componentPath": "@/views/plugin/SystemProperties.vue", "componentPath": "@/views/plugin/SystemProperties.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {
"permissions": [ "permissions": ["/system/developer/plugin/systemProperties/**/*"]
"/system/developer/plugin/systemProperties/**/*"
]
} }
}, },
{ {
@ -353,8 +307,7 @@
"component": "component.developer.backend.importLiquibase", "component": "component.developer.backend.importLiquibase",
"componentPath": "@/views/backend/ImportLiquibase.vue", "componentPath": "@/views/backend/ImportLiquibase.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {}
}
}, },
{ {
"name": "route.developer.backend.export.liquibase", "name": "route.developer.backend.export.liquibase",
@ -365,8 +318,7 @@
"component": "component.developer.backend.exportLiquibase", "component": "component.developer.backend.exportLiquibase",
"componentPath": "@/views/backend/ExportLiquibase.vue", "componentPath": "@/views/backend/ExportLiquibase.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {}
}
}, },
{ {
"name": "route.developer.backend.sql", "name": "route.developer.backend.sql",
@ -377,8 +329,18 @@
"component": "component.developer.backend.sql", "component": "component.developer.backend.sql",
"componentPath": "@/views/backend/sql/Sql.vue", "componentPath": "@/views/backend/sql/Sql.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {}
} },
{
"name": "route.developer.backend.upload",
"path": "developer/backend/upload",
"parent": "/",
"priority": 0,
"module": "io.sc.platform.developer.frontend",
"component": "component.developer.backend.upload",
"componentPath": "@/views/backend/Upload.vue",
"redirect": null,
"meta": {}
}, },
{ {
@ -390,8 +352,7 @@
"component": "component.developer.frontend.Icons", "component": "component.developer.frontend.Icons",
"componentPath": "@/views/frontend/Icons.vue", "componentPath": "@/views/frontend/Icons.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {}
}
}, },
{ {
"name": "route.developer.frontend.svgEditor", "name": "route.developer.frontend.svgEditor",
@ -402,8 +363,7 @@
"component": "component.developer.frontend.SvgEditor", "component": "component.developer.frontend.SvgEditor",
"componentPath": "@/views/frontend/SvgEditor.vue", "componentPath": "@/views/frontend/SvgEditor.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {}
}
}, },
{ {
"name": "route.developer.frontend.svgPathEditor", "name": "route.developer.frontend.svgPathEditor",
@ -414,8 +374,7 @@
"component": "component.developer.frontend.SvgPathEditor", "component": "component.developer.frontend.SvgPathEditor",
"componentPath": "@/views/frontend/SvgPathEditor.vue", "componentPath": "@/views/frontend/SvgPathEditor.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {}
}
}, },
{ {
@ -427,7 +386,6 @@
"component": "component.developer.frontend.SvgToPath", "component": "component.developer.frontend.SvgToPath",
"componentPath": "@/views/frontend/SvgToPath.vue", "componentPath": "@/views/frontend/SvgToPath.vue",
"redirect": null, "redirect": null,
"meta": { "meta": {}
}
} }
] ]

12
io.sc.platform.developer.frontend/src/views/plugin/ApplicationProperties.vue

@ -14,14 +14,8 @@
name: 'properties', name: 'properties',
label: $t('properties'), label: $t('properties'),
sortable: false, sortable: false,
format: (properties) => { format: Formater.join('<br/>'),
properties = properties || []; title: Formater.join('\n'),
let result = '';
for (const property of properties) {
result += property + '<br/>';
}
return result;
},
}, },
{ width: 200, name: 'configurationFileUrl', label: $t('url') }, { width: 200, name: 'configurationFileUrl', label: $t('url') },
]" ]"
@ -29,5 +23,5 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import 'tailwindcss/utilities.css'; import 'tailwindcss/utilities.css';
import { Environment } from 'platform-core'; import { Environment, Formater } from 'platform-core';
</script> </script>

26
io.sc.platform.developer.frontend/src/views/plugin/FrontendModule.vue

@ -12,34 +12,22 @@
name: 'components', name: 'components',
label: $t('component'), label: $t('component'),
sortable: false, sortable: false,
format: (components) => { format: Formater.join('<br/>'),
components = components || []; title: Formater.join('\n'),
let result = '';
for (const component of components) {
result += component + '<br/>';
}
return result;
},
}, },
{ {
width: 300, width: 400,
name: 'resources', name: 'resources',
label: $t('resource'), label: $t('resource'),
sortable: false, sortable: false,
format: (resources) => { format: Formater.join('<br/>'),
resources = resources || []; title: Formater.join('\n'),
let result = '';
for (const resource of resources) {
result += resource + '<br/>';
}
return result;
},
}, },
{ width: 200, name: 'configurationFileUrl', label: $t('url'), sortable: false }, { width: 100, name: 'configurationFileUrl', label: $t('url'), sortable: false },
]" ]"
></w-grid> ></w-grid>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import 'tailwindcss/utilities.css'; import 'tailwindcss/utilities.css';
import { Environment } from 'platform-core'; import { Environment, Formater } from 'platform-core';
</script> </script>

16
io.sc.platform.developer.frontend/src/views/plugin/Security.vue

@ -7,24 +7,18 @@
:pageable="false" :pageable="false"
:columns="[ :columns="[
{ {
width: 200, width: 350,
name: 'permitPatterns', name: 'permitPatterns',
label: $t('ignored'), label: $t('ignored'),
sortable: false, sortable: false,
format: (permitPatterns) => { format: Formater.join('<br/>'),
permitPatterns = permitPatterns || []; title: Formater.join('\n'),
let result = '';
for (const permitPattern of permitPatterns) {
result += permitPattern + '<br/>';
}
return result;
},
}, },
{ width: 500, name: 'configurationFileUrl', label: $t('url'), sortable: false }, { width: 350, name: 'configurationFileUrl', label: $t('url'), sortable: false },
]" ]"
></w-grid> ></w-grid>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import 'tailwindcss/utilities.css'; import 'tailwindcss/utilities.css';
import { Environment } from 'platform-core'; import { Environment, Formater } from 'platform-core';
</script> </script>

24
io.sc.platform.developer/src/main/java/io/sc/platform/developer/tools/controller/ToolsWebController.java

@ -0,0 +1,24 @@
package io.sc.platform.developer.tools.controller;
import io.sc.platform.core.DirectoryManager;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.Locale;
@RestController("io.sc.platform.developer.sql.controller.ToolsWebController")
@RequestMapping("/api/developer/tools")
public class ToolsWebController {
@PostMapping(value="upload")
public void upload(@RequestParam(name="file",required=false) MultipartFile multipartFile,Locale locale) throws Exception{
if(multipartFile!=null && !multipartFile.isEmpty()) {
String file =DirectoryManager.getInstance().getByName("dir.work.web.upload") + "/" + multipartFile.getOriginalFilename();
multipartFile.transferTo(new File(file));
}
}
}

3
io.sc.platform.developer/src/main/resources/META-INF/platform/plugins/components.json

@ -3,6 +3,7 @@
"io.sc.platform.developer.controller.plugins", "io.sc.platform.developer.controller.plugins",
"io.sc.platform.developer.controller.springboot", "io.sc.platform.developer.controller.springboot",
"io.sc.platform.developer.sql.controller", "io.sc.platform.developer.sql.controller",
"io.sc.platform.developer.sql.service.impl" "io.sc.platform.developer.sql.service.impl",
"io.sc.platform.developer.tools.controller"
] ]
} }

1
io.sc.platform.system/src/main/java/io/sc/platform/system/menu/service/impl/MenuServiceImpl.java

@ -472,6 +472,7 @@ public class MenuServiceImpl extends DaoServiceImpl<MenuEntity, String, MenuRepo
List<MenuEntity> entities =pluginConverter.fromVo(result); List<MenuEntity> entities =pluginConverter.fromVo(result);
entities =treeBuilder.buildAndGetRoots(entities); entities =treeBuilder.buildAndGetRoots(entities);
for(MenuEntity entity : entities){ for(MenuEntity entity : entities){
entity.setParent(null);//导入到菜单树的根目录下
entity.clearId(); entity.clearId();
} }
repository.saveAll(entities); repository.saveAll(entities);

8
io.sc.standard.frontend/src/views/standard/FinancialReportingSubject.vue

@ -103,8 +103,8 @@
width: 200, width: 200,
name: 'name', name: 'name',
label: $t('name'), label: $t('name'),
title: (args: any) => { title: (value: any, row: any) => {
return args.value; return value;
}, },
format: (value: any, row: any) => { format: (value: any, row: any) => {
if (value) { if (value) {
@ -126,8 +126,8 @@
width: 200, width: 200,
name: 'mappingName', name: 'mappingName',
label: $t('name'), label: $t('name'),
title: (args: any) => { title: (value: any, row: any) => {
return args.value; return value;
}, },
format: (value: any, row: any) => { format: (value: any, row: any) => {
if (value) { if (value) {

Loading…
Cancel
Save