From b4a005277d11aad29ea4b7f52b2311c1f893b14a Mon Sep 17 00:00:00 2001 From: RB <42044143+getrebuild@users.noreply.github.com> Date: Fri, 13 May 2022 10:45:40 +0800 Subject: [PATCH] 2.9 beta3 (#464) * fix autofill * sort reports, approvals * fix wpc of frontjs --- @rbv | 2 +- .../general/AutoFillinManager.java | 9 +++- .../web/general/ReportsController.java | 11 +++- .../robot/approval/ApprovalController.java | 13 +++-- .../web/assets/js/metadata/auto-fillin.js | 52 ++++++------------- src/main/resources/web/assets/js/rb-forms.js | 17 ++++-- 6 files changed, 56 insertions(+), 48 deletions(-) diff --git a/@rbv b/@rbv index e9a9fb7c0..ab1d26ce6 160000 --- a/@rbv +++ b/@rbv @@ -1 +1 @@ -Subproject commit e9a9fb7c0cc142b3c7939c98e4e36d6feffe1be1 +Subproject commit ab1d26ce623c3f437cbf8094848ffe1914e783a4 diff --git a/src/main/java/com/rebuild/core/configuration/general/AutoFillinManager.java b/src/main/java/com/rebuild/core/configuration/general/AutoFillinManager.java index e715b7855..c36e8e821 100644 --- a/src/main/java/com/rebuild/core/configuration/general/AutoFillinManager.java +++ b/src/main/java/com/rebuild/core/configuration/general/AutoFillinManager.java @@ -160,9 +160,16 @@ public class AutoFillinManager implements ConfigManager { */ protected Object conversionCompatibleValue(Field source, Field target, Object value) { EasyField sourceEasy = EasyMetaFactory.valueOf(source); - Object newValue = sourceEasy.convertCompatibleValue(value, EasyMetaFactory.valueOf(target)); + EasyField targetEasy = EasyMetaFactory.valueOf(target); + Object newValue = sourceEasy.convertCompatibleValue(value, targetEasy); // 转换成前端可接受的值 + + if (sourceEasy.getDisplayType() == targetEasy.getDisplayType() + && sourceEasy.getDisplayType() == DisplayType.MULTISELECT) { + return newValue; // Long + } + if (sourceEasy instanceof MixValue) { if (!(newValue instanceof String) || sourceEasy instanceof EasyFile) { newValue = sourceEasy.wrapValue(newValue); diff --git a/src/main/java/com/rebuild/web/general/ReportsController.java b/src/main/java/com/rebuild/web/general/ReportsController.java index 666fc6ce7..103ced4c2 100644 --- a/src/main/java/com/rebuild/web/general/ReportsController.java +++ b/src/main/java/com/rebuild/web/general/ReportsController.java @@ -11,6 +11,7 @@ import cn.devezhao.commons.CalendarUtils; import cn.devezhao.commons.web.ServletUtils; import cn.devezhao.persist4j.engine.ID; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.rebuild.api.RespBody; import com.rebuild.core.Application; @@ -52,9 +53,17 @@ public class ReportsController extends BaseController { @RequestMapping("report/available") public JSON availableReports(@PathVariable String entity, HttpServletRequest request) { - return DataReportManager.instance.getReports( + JSONArray res = DataReportManager.instance.getReports( MetadataHelper.getEntity(entity), getIntParameter(request, "type", DataReportManager.TYPE_RECORD)); + + // 名称排序 + res.sort((o1, o2) -> { + JSONObject j1 = (JSONObject) o1; + JSONObject j2 = (JSONObject) o2; + return j1.getString("name").compareTo(j2.getString("name")); + }); + return res; } @RequestMapping({"report/generate", "report/export"}) diff --git a/src/main/java/com/rebuild/web/robot/approval/ApprovalController.java b/src/main/java/com/rebuild/web/robot/approval/ApprovalController.java index cbbf646c3..c777b976e 100644 --- a/src/main/java/com/rebuild/web/robot/approval/ApprovalController.java +++ b/src/main/java/com/rebuild/web/robot/approval/ApprovalController.java @@ -45,11 +45,18 @@ public class ApprovalController extends BaseController { final ID user = getRequestUser(request); FlowDefinition[] defs = RobotApprovalManager.instance.getFlowDefinitions(recordId, user); - JSONArray data = new JSONArray(); + JSONArray res = new JSONArray(); for (FlowDefinition d : defs) { - data.add(d.toJSON("id", "name")); + res.add(d.toJSON("id", "name")); } - return data; + + // 名称排序 + res.sort((o1, o2) -> { + JSONObject j1 = (JSONObject) o1; + JSONObject j2 = (JSONObject) o2; + return j1.getString("name").compareTo(j2.getString("name")); + }); + return res; } @GetMapping("state") diff --git a/src/main/resources/web/assets/js/metadata/auto-fillin.js b/src/main/resources/web/assets/js/metadata/auto-fillin.js index 62089c1a2..8d2039eb3 100644 --- a/src/main/resources/web/assets/js/metadata/auto-fillin.js +++ b/src/main/resources/web/assets/js/metadata/auto-fillin.js @@ -21,16 +21,18 @@ const loadRules = () => { $(`