Browse Source

Merge pull request #240425 in DEC/fineui from master to feature/x

* commit '3243c0314400fe78fc14f0ae38cc332b3f2f0fcf':
  update
  无JIRA 添加EVENT_AFTER_HIDEVIEW 事件
  BI-128437 fix: 【来源PT项目】BI绑定参数文本下拉问题
  KERNEL-14848 feat: VirtualGroupList组件新增getNodeByValue方法
master
superman 1 year ago
parent
commit
cc9576f3f7
  1. 2
      packages/fineui/package.json
  2. 4
      packages/fineui/src/base/list/virtualgrouplist.js
  3. 13
      packages/fineui/src/widget/multiselect/loader.js
  4. 12
      packages/fineui/src/widget/multiselect/multiselect.combo.js
  5. 12
      packages/fineui/src/widget/multiselect/multiselect.combo.nobar.js
  6. 16
      packages/fineui/src/widget/multiselect/multiselect.insert.combo.js
  7. 16
      packages/fineui/src/widget/multiselect/multiselect.insert.combo.nobar.js
  8. 3
      packages/fineui/typescript/widget/multiselect/multiselect.combo.ts
  9. 3
      packages/fineui/typescript/widget/multiselect/multiselect.insert.combo.ts

2
packages/fineui/package.json

@ -1,6 +1,6 @@
{
"name": "@fui/core",
"version": "3.0.20230627163539",
"version": "3.0.20230707165537",
"description": "fineui",
"main": "dist/fineui.min.js",
"module": "dist/lib/index.js",

4
packages/fineui/src/base/list/virtualgrouplist.js

@ -214,4 +214,8 @@ export class VirtualGroupList extends Widget {
ResizeDetector.removeResizeListener(this);
this.restore();
}
getNodeByValue(value) {
return this.container.getNodeByValue(value);
}
}

13
packages/fineui/src/widget/multiselect/loader.js

@ -72,7 +72,8 @@ export class MultiSelectInnerLoader extends Widget {
this.next.setLoading();
if (this.cachItems && this.cachItems.length > 0) {
this.next.setLoaded();
this.addItems(this.cachItems.slice(0, 100));
const items = this._composeItems(this.cachItems.slice(0, 100));
this.addItems(items);
this.cachItems = this.cachItems.slice(100);
return;
@ -204,6 +205,16 @@ export class MultiSelectInnerLoader extends Widget {
this.button_group.addItems(...arguments);
}
_composeItems(items) {
const cacheValue = this.cachGroup.getValue();
return items.map(item => {
return {
...item,
selected: cacheValue.includes(item.value || item.id)
};
});
}
_populate(items) {
const self = this,
o = this.options;

12
packages/fineui/src/widget/multiselect/multiselect.combo.js

@ -47,6 +47,7 @@ export class MultiSelectCombo extends Single {
static EVENT_SEARCHING = "EVENT_SEARCHING";
static EVENT_CLICK_ITEM = "EVENT_CLICK_ITEM";
static EVENT_CONFIRM = "EVENT_CONFIRM";
static MultiSelectCombo = "MultiSelectCombo";
_defaultConfig() {
return extend(super._defaultConfig(...arguments), {
@ -116,7 +117,7 @@ export class MultiSelectCombo extends Single {
self.fireEvent(MultiSelectCombo.EVENT_BLUR);
});
this.trigger.on(MultiSelectTrigger.EVENT_START, function () {
this.trigger.on(MultiSelectTrigger.EVENT_START, function() {
self._setStartValue("");
this.getSearcher().setValue(self.storeValue);
});
@ -144,7 +145,7 @@ export class MultiSelectCombo extends Single {
self.fireEvent(MultiSelectCombo.EVENT_SEARCHING);
});
this.trigger.on(MultiSelectTrigger.EVENT_CHANGE, function (value, obj) {
this.trigger.on(MultiSelectTrigger.EVENT_CHANGE, function(value, obj) {
if (obj instanceof MultiSelectBar) {
self._joinAll(this.getValue(), () => {
assertShowValue();
@ -230,7 +231,7 @@ export class MultiSelectCombo extends Single {
},
});
this.combo.on(Combo.EVENT_BEFORE_POPUPVIEW, function () {
this.combo.on(Combo.EVENT_BEFORE_POPUPVIEW, function() {
if (!this.isViewVisible()) {
self._dataChange = false; // 标记数据是否发生变化
}
@ -249,6 +250,7 @@ export class MultiSelectCombo extends Single {
} else {
self._dataChange && self.fireEvent(MultiSelectCombo.EVENT_CONFIRM);
}
this.fireEvent(MultiSelectCombo.EVENT_AFTER_HIDEVIEW);
});
triggerBtn.on(TriggerIconButton.EVENT_CHANGE, () => {
@ -274,7 +276,7 @@ export class MultiSelectCombo extends Single {
self.combo.showView();
}
});
this.numberCounter.on(MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW, function () {
this.numberCounter.on(MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW, function() {
this.updateSelectedValue(self.storeValue);
});
@ -331,7 +333,7 @@ export class MultiSelectCombo extends Single {
_itemsCreator4Trigger(op, callback) {
const self = this;
const o = this.options;
o.itemsCreator(op, function (res) {
o.itemsCreator(op, function(res) {
if (op.times === 1 && isNotNull(op.keywords)) {
// 预防trigger内部把当前的storeValue改掉
self.trigger.setValue(deepClone(self.getValue()));

12
packages/fineui/src/widget/multiselect/multiselect.combo.nobar.js

@ -48,6 +48,7 @@ export class MultiSelectNoBarCombo extends Single {
static EVENT_SEARCHING = "EVENT_SEARCHING";
static EVENT_CLICK_ITEM = "EVENT_CLICK_ITEM";
static EVENT_CONFIRM = "EVENT_CONFIRM";
static EVENT_AFTER_HIDEVIEW = "EVENT_AFTER_HIDEVIEW";
_defaultConfig() {
return extend(super._defaultConfig(...arguments), {
@ -117,7 +118,7 @@ export class MultiSelectNoBarCombo extends Single {
self.fireEvent(MultiSelectNoBarCombo.EVENT_BLUR);
});
this.trigger.on(MultiSelectTrigger.EVENT_START, function () {
this.trigger.on(MultiSelectTrigger.EVENT_START, function() {
self._setStartValue("");
this.getSearcher().setValue(self.storeValue);
});
@ -145,7 +146,7 @@ export class MultiSelectNoBarCombo extends Single {
}
});
this.trigger.on(MultiSelectTrigger.EVENT_CHANGE, function (value, obj) {
this.trigger.on(MultiSelectTrigger.EVENT_CHANGE, function(value, obj) {
if (obj instanceof MultiSelectBar) {
self._joinAll(this.getValue(), () => {
assertShowValue();
@ -233,7 +234,7 @@ export class MultiSelectNoBarCombo extends Single {
},
});
this.combo.on(Combo.EVENT_BEFORE_POPUPVIEW, function () {
this.combo.on(Combo.EVENT_BEFORE_POPUPVIEW, function() {
if (!this.isViewVisible()) {
self._dataChange = false; // 标记数据是否发生变化
}
@ -252,6 +253,7 @@ export class MultiSelectNoBarCombo extends Single {
} else {
self._dataChange && self.fireEvent(MultiSelectNoBarCombo.EVENT_CONFIRM);
}
this.fireEvent(MultiSelectNoBarCombo.EVENT_AFTER_HIDEVIEW);
});
triggerBtn.on(TriggerIconButton.EVENT_CHANGE, () => {
@ -280,7 +282,7 @@ export class MultiSelectNoBarCombo extends Single {
self.combo.showView();
}
});
this.numberCounter.on(MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW, function () {
this.numberCounter.on(MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW, function() {
this.updateSelectedValue(self.storeValue);
});
@ -360,7 +362,7 @@ export class MultiSelectNoBarCombo extends Single {
_itemsCreator4Trigger(op, callback) {
const self = this,
o = this.options;
o.itemsCreator(op, function (res) {
o.itemsCreator(op, function(res) {
if (op.times === 1 && isNotNull(op.keywords)) {
// 预防trigger内部把当前的storeValue改掉
self.trigger.setValue(deepClone(self.storeValue));

16
packages/fineui/src/widget/multiselect/multiselect.insert.combo.js

@ -50,6 +50,7 @@ export class MultiSelectInsertCombo extends Single {
static EVENT_CLICK_ITEM = "EVENT_CLICK_ITEM";
static EVENT_CONFIRM = "EVENT_CONFIRM";
static EVENT_ADD_ITEM = "EVENT_ADD_ITEM";
static EVENT_AFTER_HIDEVIEW = "EVENT_AFTER_HIDEVIEW";
_defaultConfig() {
return extend(super._defaultConfig(...arguments), {
@ -116,7 +117,7 @@ export class MultiSelectInsertCombo extends Single {
self.fireEvent(MultiSelectInsertCombo.EVENT_BLUR);
});
this.trigger.on(MultiSelectInsertTrigger.EVENT_START, function () {
this.trigger.on(MultiSelectInsertTrigger.EVENT_START, function() {
self._setStartValue("");
this.getSearcher().setValue(self.storeValue);
});
@ -124,11 +125,11 @@ export class MultiSelectInsertCombo extends Single {
self._setStartValue("");
self.fireEvent(MultiSelectInsertCombo.EVENT_STOP);
});
this.trigger.on(MultiSelectInsertTrigger.EVENT_PAUSE, function () {
this.trigger.on(MultiSelectInsertTrigger.EVENT_PAUSE, function() {
self._addItem(assertShowValue, true);
self.fireEvent(MultiSelectInsertCombo.EVENT_ADD_ITEM, this.getSearcher().getKeyword());
});
this.trigger.on(MultiSelectInsertTrigger.EVENT_SEARCHING, function (keywords) {
this.trigger.on(MultiSelectInsertTrigger.EVENT_SEARCHING, function(keywords) {
const lastKeyword = last(keywords);
keywords = initial(keywords || []);
if (keywords.length > 0) {
@ -150,7 +151,7 @@ export class MultiSelectInsertCombo extends Single {
self.fireEvent(MultiSelectInsertCombo.EVENT_SEARCHING);
});
this.trigger.on(MultiSelectInsertTrigger.EVENT_CHANGE, function (value, obj) {
this.trigger.on(MultiSelectInsertTrigger.EVENT_CHANGE, function(value, obj) {
if (obj instanceof MultiSelectBar) {
self._joinAll(this.getValue(), () => {
assertShowValue();
@ -236,7 +237,7 @@ export class MultiSelectInsertCombo extends Single {
},
});
this.combo.on(Combo.EVENT_BEFORE_POPUPVIEW, function () {
this.combo.on(Combo.EVENT_BEFORE_POPUPVIEW, function() {
if (!this.isViewVisible()) {
self._dataChange = false; // 标记数据是否发生变化
}
@ -255,6 +256,7 @@ export class MultiSelectInsertCombo extends Single {
} else {
self._dataChange && self.fireEvent(MultiSelectInsertCombo.EVENT_CONFIRM);
}
this.fireEvent(MultiSelectInsertCombo.EVENT_AFTER_HIDEVIEW);
});
triggerBtn.on(TriggerIconButton.EVENT_CHANGE, () => {
@ -280,7 +282,7 @@ export class MultiSelectInsertCombo extends Single {
self.combo.showView();
}
});
this.numberCounter.on(MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW, function () {
this.numberCounter.on(MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW, function() {
this.updateSelectedValue(self.storeValue);
});
@ -337,7 +339,7 @@ export class MultiSelectInsertCombo extends Single {
_itemsCreator4Trigger(op, callback) {
const self = this,
o = this.options;
o.itemsCreator(op, function (res) {
o.itemsCreator(op, function(res) {
if (op.times === 1 && isNotNull(op.keywords)) {
// 预防trigger内部把当前的storeValue改掉
self.trigger.setValue(deepClone(self.getValue()));

16
packages/fineui/src/widget/multiselect/multiselect.insert.combo.nobar.js

@ -45,6 +45,7 @@ export class MultiSelectInsertNoBarCombo extends Single {
static REQ_GET_ALL_DATA = "-1";
static EVENT_CONFIRM = "EVENT_CONFIRM";
static EVENT_ADD_ITEM = "EVENT_ADD_ITEM";
static EVENT_AFTER_HIDEVIEW = "EVENT_AFTER_HIDEVIEW";
_defaultConfig() {
return extend(super._defaultConfig(...arguments), {
@ -106,18 +107,18 @@ export class MultiSelectInsertNoBarCombo extends Single {
},
});
this.trigger.on(MultiSelectInsertTrigger.EVENT_START, function () {
this.trigger.on(MultiSelectInsertTrigger.EVENT_START, function() {
self._setStartValue("");
this.getSearcher().setValue(self.storeValue);
});
this.trigger.on(MultiSelectInsertTrigger.EVENT_STOP, () => {
self._setStartValue("");
});
this.trigger.on(MultiSelectInsertTrigger.EVENT_PAUSE, function () {
this.trigger.on(MultiSelectInsertTrigger.EVENT_PAUSE, function() {
self._addItem(assertShowValue, true);
self.fireEvent(MultiSelectInsertNoBarCombo.EVENT_ADD_ITEM, this.getSearcher().getKeyword());
});
this.trigger.on(MultiSelectInsertTrigger.EVENT_SEARCHING, function (keywords) {
this.trigger.on(MultiSelectInsertTrigger.EVENT_SEARCHING, function(keywords) {
const lastKeyword = last(keywords);
keywords = initial(keywords || []);
if (keywords.length > 0) {
@ -138,7 +139,7 @@ export class MultiSelectInsertNoBarCombo extends Single {
}
});
this.trigger.on(MultiSelectInsertTrigger.EVENT_CHANGE, function (value, obj) {
this.trigger.on(MultiSelectInsertTrigger.EVENT_CHANGE, function(value, obj) {
if (obj instanceof MultiSelectBar) {
self._joinAll(this.getValue(), () => {
assertShowValue();
@ -223,7 +224,7 @@ export class MultiSelectInsertNoBarCombo extends Single {
},
});
this.combo.on(Combo.EVENT_BEFORE_POPUPVIEW, function () {
this.combo.on(Combo.EVENT_BEFORE_POPUPVIEW, function() {
if (!this.isViewVisible()) {
self._dataChange = false; // 标记数据是否发生变化
}
@ -242,6 +243,7 @@ export class MultiSelectInsertNoBarCombo extends Single {
} else {
self._dataChange && self.fireEvent(MultiSelectInsertNoBarCombo.EVENT_CONFIRM);
}
this.fireEvent(MultiSelectInsertNoBarCombo.EVENT_AFTER_HIDEVIEW);
});
triggerBtn.on(TriggerIconButton.EVENT_CHANGE, () => {
@ -270,7 +272,7 @@ export class MultiSelectInsertNoBarCombo extends Single {
self.combo.showView();
}
});
this.numberCounter.on(MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW, function () {
this.numberCounter.on(MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW, function() {
this.updateSelectedValue(self.storeValue);
});
@ -327,7 +329,7 @@ export class MultiSelectInsertNoBarCombo extends Single {
_itemsCreator4Trigger(op, callback) {
const self = this,
o = this.options;
o.itemsCreator(op, function (res) {
o.itemsCreator(op, function(res) {
if (op.times === 1 && isNotNull(op.keywords)) {
// 预防trigger内部把当前的storeValue改掉
self.trigger.setValue(deepClone(self.storeValue));

3
packages/fineui/typescript/widget/multiselect/multiselect.combo.ts

@ -10,6 +10,7 @@ export declare class MultiSelectCombo extends Single {
static EVENT_CONFIRM: string;
static REQ_GET_DATA_LENGTH: 1;
static REQ_GET_ALL_DATA: -1;
static EVENT_AFTER_HIDEVIEW: string;
props: {
itemsCreator: (options: any, callback: () => any[]) => void;
@ -17,7 +18,7 @@ export declare class MultiSelectCombo extends Single {
text: string;
valueFormatter: (v: string) => string;
allowEdit: boolean;
} & Single['props']
} & Single["props"];
_itemsCreator4Trigger(op: any, callback: Function): void;

3
packages/fineui/typescript/widget/multiselect/multiselect.insert.combo.ts

@ -11,6 +11,7 @@ export declare class MultiSelectInsertCombo extends Single {
static EVENT_ADD_ITEM: string;
static REQ_GET_DATA_LENGTH: 1;
static REQ_GET_ALL_DATA: -1;
static EVENT_AFTER_HIDEVIEW: string;
props: {
itemsCreator?: Function;
@ -20,7 +21,7 @@ export declare class MultiSelectInsertCombo extends Single {
text?: string;
watermark?: string;
container?: any;
} & Single['props'];
} & Single["props"];
_itemsCreator4Trigger(op: any, callback: Function): void;

Loading…
Cancel
Save