From 1693f3afb5ea8604f3945994033d26695b27942a Mon Sep 17 00:00:00 2001 From: RB <42044143+getrebuild@users.noreply.github.com> Date: Mon, 11 Aug 2025 15:55:49 +0800 Subject: [PATCH] be: options of field --- .../configuration/general/MultiSelectManager.java | 6 ++---- .../core/support/general/DataListWrapper.java | 2 +- src/main/resources/web/assets/js/general/rb-forms.js | 12 ++++++++++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/rebuild/core/configuration/general/MultiSelectManager.java b/src/main/java/com/rebuild/core/configuration/general/MultiSelectManager.java index ea4f9192e..0a67c4604 100644 --- a/src/main/java/com/rebuild/core/configuration/general/MultiSelectManager.java +++ b/src/main/java/com/rebuild/core/configuration/general/MultiSelectManager.java @@ -48,12 +48,10 @@ public class MultiSelectManager extends PickListManager { * @return */ public String[] getLabels(long maskValue, Field field) { - if (maskValue <= 0) { - return new String[0]; - } + if (maskValue <= 0) return new String[0]; List labels = new ArrayList<>(); - ConfigBean[] entries = getPickListRaw(field, false); + ConfigBean[] entries = getPickListRaw(field, true); for (ConfigBean e : entries) { long m = e.get("mask", Long.class); if ((maskValue & m) != 0) { diff --git a/src/main/java/com/rebuild/core/support/general/DataListWrapper.java b/src/main/java/com/rebuild/core/support/general/DataListWrapper.java index f04fd2b1d..ef3f5249c 100644 --- a/src/main/java/com/rebuild/core/support/general/DataListWrapper.java +++ b/src/main/java/com/rebuild/core/support/general/DataListWrapper.java @@ -225,7 +225,7 @@ public class DataListWrapper { // @see MultiSelectManager#getLabels List colorLabels = new ArrayList<>(); - ConfigBean[] entries = MultiSelectManager.instance.getPickListRaw(field, false); + ConfigBean[] entries = MultiSelectManager.instance.getPickListRaw(field, true); for (ConfigBean e : entries) { long m = e.get("mask", Long.class); if (((long) originValue & m) != 0) { diff --git a/src/main/resources/web/assets/js/general/rb-forms.js b/src/main/resources/web/assets/js/general/rb-forms.js index 6750b6609..6be4ff913 100644 --- a/src/main/resources/web/assets/js/general/rb-forms.js +++ b/src/main/resources/web/assets/js/general/rb-forms.js @@ -2083,7 +2083,10 @@ class RbFormPickList extends RbFormElement { options.push({ id: props.value, text: '[DELETED]' }) } } - this._options = options + this._options = options.filter((item) => { + return item.hide !== true || (props.value && item.id === props.value) + }) + this._isShowRadio39 = props.showStyle === '10' this._htmlid = `${props.field}-${$random()}-` } @@ -2910,7 +2913,12 @@ class RbFormMultiSelect extends RbFormElement { super(props) this._htmlid = `${props.field}-${$random()}_` this._isShowSelect41 = props.showStyle === '10' - this._options = props.options || [] + this._options = (props.options || []).filter((item) => { + if (props.value && props.value.id) { + if ((props.value.id & item.mask) !== 0) return true + } + return item.hide !== true + }) } renderElement() {