diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/FormMetadataI18nService.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/FormMetadataI18nService.java index 711274ff9cc686d21d247676e35d40d4efbd3907..a6c15694fb7ad49e0f16ef457ee5615a73ffb3c0 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/FormMetadataI18nService.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/FormMetadataI18nService.java @@ -262,6 +262,21 @@ public class FormMetadataI18nService implements MetadataI18nService { // 兼容datagrid contents = component.get("fields"); } + // 兼容OA 模板 table 结构布局 + if (contents == null && ComponentUtility.getInstance().getType(component).equals("Table")) { + contents = component.get("rows"); + } + // 兼容OA 模板 table 结构布局 + if (contents == null && ComponentUtility.getInstance().getType(component).equals("TableRow")) { + contents = component.get("columns"); + } + // 兼容OA 模板 table结构布局 提取ed中的editor + if (contents == null && ComponentUtility.getInstance().getType(component).equals("TableTd") && + ComponentUtility.getInstance().getValue(component, "tdType").equals("editor")) { + List editorList = new ArrayList<>(); + editorList.add(component.get("editor")); + contents = editorList; + } if (contents == null) { return childCompnentCollection; } diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/component/ComponentUtility.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/component/ComponentUtility.java index 7e8cc74ab398d77d1f5efddfc5f38f63b788bcde..4fbd408c519ca7e4a1c8bc270f8de49d9dc8ca5c 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/component/ComponentUtility.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/component/ComponentUtility.java @@ -78,7 +78,7 @@ public class ComponentUtility { private static final String Toolbar_DATA = "toolbarData"; ///#endregion - public T getValue(HashMap component, String keyName) { + public T getValue(HashMap component, String keyName) { T componentValue = null; if (component == null || component.size() == 0) { @@ -276,6 +276,16 @@ public class ComponentUtility { return GetChildComponentCollection(component, HEADER_GROUP); } + /** + * 获取table的rows节点内容 + * + * @param component + * @return + */ + public final List> getRows(HashMap component) { + return GetChildComponentCollection(component, "rows"); + } + public final ArrayList> getStepMessages(HashMap component) { return GetChildComponentCollection(component, STEP_MESSAGES); diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/component/I18nResourceStrategyFactory.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/component/I18nResourceStrategyFactory.java index dd1718a8fb7815bf8659a7019ef7df4d464f19cf..6313507d7d577b31c00520aa2e6b94779202a218 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/component/I18nResourceStrategyFactory.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/component/I18nResourceStrategyFactory.java @@ -79,6 +79,8 @@ public class I18nResourceStrategyFactory { dicComponentStrategies.put(ComponentType.HELP_PROVIDER, new HelpProviderI18nResourceStrategy()); dicComponentStrategies.put(ComponentType.TAG, new TagI18nResourceStrategy()); + dicComponentStrategies.put(ComponentType.TableTd, new TableTdI18nResourceStrategy()); + dicComponentStrategies.put(ComponentType.FileUploadPreview, new FileUploadPreviewI18nResourceStrategy()); // 取消tags的国际化提取 diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/component/strategy/i18nresourcestrategy/SectionI18nResourceStrategy.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/component/strategy/i18nresourcestrategy/SectionI18nResourceStrategy.java index 7b1846f358b566f8810e9c7d38f2d77a3af7b48b..b976ed185740b8a8114caf4d28a92ccd0975b3e5 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/component/strategy/i18nresourcestrategy/SectionI18nResourceStrategy.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/component/strategy/i18nresourcestrategy/SectionI18nResourceStrategy.java @@ -66,18 +66,31 @@ public class SectionI18nResourceStrategy extends AbstractI18nResourceStrategy { List> contentsToolbar = (List>) toolbarComponent.get("contents"); if (contentsToolbar != null && !contentsToolbar.isEmpty()) { contentsToolbar.forEach(t -> { - String toolbarTitle = ComponentUtility.getInstance().getTitle(t); - String toolbarId = ComponentUtility.getInstance().getId(t); - this.addInCollection(i18nResourceItemCollection, I18nResourceItemManager.createI18nResourceItem(i18nResourceItemBaseId, toolbarId, toolbarTitle, toolbarTitle)); + this.extractToolbarItem(t, i18nResourceItemBaseId, i18nResourceItemCollection); }); } } } - - return i18nResourceItemCollection; } + /** + * 递归获取toolbar标题 及其子 + * @param toolbarItem + * @param i18nResourceItemBaseId + * @param i18nResourceItemCollection + */ + private void extractToolbarItem(HashMap toolbarItem, String i18nResourceItemBaseId, I18nResourceItemCollection i18nResourceItemCollection) { + String toolbarTitle = ComponentUtility.getInstance().getTitle(toolbarItem); + String toolbarId = ComponentUtility.getInstance().getId(toolbarItem); + this.addInCollection(i18nResourceItemCollection, I18nResourceItemManager.createI18nResourceItem(i18nResourceItemBaseId, toolbarId, toolbarTitle, toolbarTitle)); + // 如果包含下级菜单 那么进行递归 + List> childrenItems = ComponentUtility.getInstance().GetItems(toolbarItem); + if (childrenItems != null && childrenItems.size() > 0) { + childrenItems.forEach(t -> this.extractToolbarItem(t, i18nResourceItemBaseId, i18nResourceItemCollection)); + } + } + private I18nResourceItemCollection extractComponentHtmlI18nResourceItemCollection(String i18nResourceItemBaseId, HashMap currentComponent) { I18nResourceItemCollection i18nResourceItemCollection = new I18nResourceItemCollection(); diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/component/strategy/i18nresourcestrategy/TableTdI18nResourceStrategy.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/component/strategy/i18nresourcestrategy/TableTdI18nResourceStrategy.java new file mode 100644 index 0000000000000000000000000000000000000000..40ab237d8cb712d01e09c86a2aadf75e61f89e05 --- /dev/null +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/component/strategy/i18nresourcestrategy/TableTdI18nResourceStrategy.java @@ -0,0 +1,52 @@ +package com.inspur.edp.web.formmetadata.i18n.component.strategy.i18nresourcestrategy; + +import com.inspur.edp.lcm.metadata.api.entity.I18nResourceItemCollection; +import com.inspur.edp.web.common.utility.StringUtility; +import com.inspur.edp.web.formmetadata.i18n.I18nResourceItemManager; +import com.inspur.edp.web.formmetadata.i18n.component.ComponentUtility; + +import java.util.HashMap; + +/** + * table 布局中td单元格中国际化参数提取 + * + * @author noah + * 2023/8/22 14:24 + */ +public class TableTdI18nResourceStrategy extends AbstractI18nResourceStrategy { + /** + * td 类型 staticText + */ + private static final String StaticTextTdType = "staticText"; + + /** + * td 类型 editor + */ + private static final String EditorTdType = "editor"; + + @Override + protected I18nResourceItemCollection extractAttributeI18nResourceItemCollection(String i18nResourceItemBaseId, HashMap currentComponent) { + I18nResourceItemCollection i18nResourceItemCollection = new I18nResourceItemCollection(); + String tdType = ComponentUtility.getInstance().getValue(currentComponent, "tdType"); + if (StringUtility.isNullOrEmpty(tdType)) { + tdType = StaticTextTdType; + } + + // 仅提取staticText的文本内容 + if (StringUtility.equals(tdType, StaticTextTdType)) { + HashMap staticTextMap = ComponentUtility.getInstance().GetAttributeObject(currentComponent, "staticText"); + if (staticTextMap != null) { + String componentType = ComponentUtility.getInstance().getType(currentComponent); + String componentId = ComponentUtility.getInstance().getId(currentComponent); + + String generatedComponentId = componentType + "/" + componentId + "/staticText/text"; + String staticTextValue = ComponentUtility.getInstance().getValue(staticTextMap, "text"); + + this.addInCollection(i18nResourceItemCollection, I18nResourceItemManager.createI18nResourceItem(i18nResourceItemBaseId, generatedComponentId, staticTextValue, staticTextValue)); + } + } + + + return i18nResourceItemCollection; + } +} diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/constant/ComponentType.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/constant/ComponentType.java index 1012589cdb8834642d0c74e814271f475b7fc02d..f836ce60fd46d6a7f3ecf2fc62dac1b98a2dd8b3 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/constant/ComponentType.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/constant/ComponentType.java @@ -101,6 +101,11 @@ public final class ComponentType { */ public static final String TAG = "Tag"; + /** + * table oa 布局 单元格 + */ + public static final String TableTd="TableTd"; + /** * 附件上传预览组件类型 */ diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/lic/FormMetadataCreateLicControlListener.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/lic/FormMetadataCreateLicControlListener.java index 7af76060154b75a2066c9c9b06e81954363f84f5..260e37767783d353fe11595bce39722715ae03eb 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/lic/FormMetadataCreateLicControlListener.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/lic/FormMetadataCreateLicControlListener.java @@ -29,6 +29,7 @@ import java.util.Optional; /** * 表单元数据创建授权控制 + * @author noah */ public class FormMetadataCreateLicControlListener implements LicControlExtendForIde { private StandardControlFactory standardControlFactory = null;