|
|
|
@ -10,7 +10,7 @@ import {
|
|
|
|
|
VerticalAdaptLayout, |
|
|
|
|
deepClone, |
|
|
|
|
Selection, |
|
|
|
|
SIZE_CONSANTS |
|
|
|
|
size |
|
|
|
|
} from "@/core"; |
|
|
|
|
import { Single, Combo } from "@/base"; |
|
|
|
|
import { MultiTreeSearcher } from "./trigger/searcher.multi.tree"; |
|
|
|
@ -27,12 +27,14 @@ export class MultiTreeCombo extends Single {
|
|
|
|
|
|
|
|
|
|
static EVENT_FOCUS = "EVENT_FOCUS"; |
|
|
|
|
static EVENT_BLUR = "EVENT_BLUR"; |
|
|
|
|
static EVENT_START = "EVENT_START"; |
|
|
|
|
static EVENT_STOP = "EVENT_STOP"; |
|
|
|
|
static EVENT_SEARCHING = "EVENT_SEARCHING"; |
|
|
|
|
static EVENT_CLICK_ITEM = "EVENT_CLICK_ITEM"; |
|
|
|
|
static EVENT_CONFIRM = "EVENT_CONFIRM"; |
|
|
|
|
static EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW"; |
|
|
|
|
static EVENT_AFTER_HIDEVIEW = "EVENT_AFTER_HIDEVIEW"; |
|
|
|
|
static EVENT_BEFORE_NUMBER_COUNTER_POPUPVIEW = "EVENT_BEFORE_NUMBER_COUNTER_POPUPVIEW"; |
|
|
|
|
|
|
|
|
|
_defaultConfig() { |
|
|
|
|
return extend(super._defaultConfig(...arguments), { |
|
|
|
@ -42,6 +44,8 @@ export class MultiTreeCombo extends Single {
|
|
|
|
|
height: 24, |
|
|
|
|
allowEdit: true, |
|
|
|
|
isNeedAdjustWidth: true, |
|
|
|
|
popup: {}, |
|
|
|
|
masker: {}, |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -63,23 +67,20 @@ export class MultiTreeCombo extends Single {
|
|
|
|
|
this.storeValue = { value: o.value || {} }; |
|
|
|
|
|
|
|
|
|
this.trigger = createWidget({ |
|
|
|
|
type: "bi.multi_select_trigger", |
|
|
|
|
type: MultiSelectTrigger.xtype, |
|
|
|
|
popup: o.popup, |
|
|
|
|
masker: o.masker, |
|
|
|
|
allowEdit: o.allowEdit, |
|
|
|
|
height: toPix(o.height, o.simple ? 1 : 2), |
|
|
|
|
valueFormatter: o.valueFormatter, |
|
|
|
|
text: o.text, |
|
|
|
|
defaultText: o.defaultText, |
|
|
|
|
watermark: o.watermark, |
|
|
|
|
masker: { |
|
|
|
|
offset: { |
|
|
|
|
left: 0, |
|
|
|
|
top: 0, |
|
|
|
|
right: 0, |
|
|
|
|
bottom: SIZE_CONSANTS.LIST_ITEM_HEIGHT + 1, |
|
|
|
|
}, |
|
|
|
|
adapter: () => { |
|
|
|
|
return this.popup.getView(); |
|
|
|
|
}, |
|
|
|
|
searcher: { |
|
|
|
|
type: "bi.multi_tree_searcher", |
|
|
|
|
type: MultiTreeSearcher.xtype, |
|
|
|
|
itemsCreator: o.itemsCreator, |
|
|
|
|
listeners: [ |
|
|
|
|
{ |
|
|
|
@ -104,8 +105,6 @@ export class MultiTreeCombo extends Single {
|
|
|
|
|
type: MultiTreePopup.xtype, |
|
|
|
|
ref() { |
|
|
|
|
self.popup = this; |
|
|
|
|
self.trigger.setAdapter(this); |
|
|
|
|
self.numberCounter.setAdapter(this); |
|
|
|
|
}, |
|
|
|
|
listeners: [ |
|
|
|
|
{ |
|
|
|
@ -160,13 +159,16 @@ export class MultiTreeCombo extends Single {
|
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
maxWidth: o.isNeedAdjustWidth ? "auto" : 500, |
|
|
|
|
...o.popup, |
|
|
|
|
}, |
|
|
|
|
isNeedAdjustWidth: o.isNeedAdjustWidth, |
|
|
|
|
value: { value: o.value || {} }, |
|
|
|
|
hideChecker(e) { |
|
|
|
|
return ( |
|
|
|
|
triggerBtn.element.find(e.target).length === 0 && |
|
|
|
|
self.numberCounter.element.find(e.target).length === 0 |
|
|
|
|
size(self.numberCounter.getView()?.element.find(e.target)) === 0 && |
|
|
|
|
size(self.trigger.getSearcher().getSearcher().getView()?.element.find(e.target)) === 0 && |
|
|
|
|
self.trigger.getSearcher().getSearcher().getView()?.element[0] !== e.target |
|
|
|
|
); |
|
|
|
|
}, |
|
|
|
|
}); |
|
|
|
@ -193,6 +195,7 @@ export class MultiTreeCombo extends Single {
|
|
|
|
|
self.storeValue = { value: self.combo.getValue() }; |
|
|
|
|
this.setValue(self.storeValue); |
|
|
|
|
self.numberCounter.setValue(self.storeValue); |
|
|
|
|
self.fireEvent(MultiTreeCombo.EVENT_START); |
|
|
|
|
}); |
|
|
|
|
this.trigger.on(MultiSelectTrigger.EVENT_STOP, function () { |
|
|
|
|
self.storeValue = { value: this.getValue() }; |
|
|
|
@ -295,23 +298,18 @@ export class MultiTreeCombo extends Single {
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
this.numberCounter = createWidget({ |
|
|
|
|
type: "bi.multi_select_check_selected_switcher", |
|
|
|
|
type: MultiSelectCheckSelectedSwitcher, |
|
|
|
|
el: { |
|
|
|
|
// type: "bi.multi_tree_check_selected_button",
|
|
|
|
|
type: MultiTreeCheckSelectedButton.xtype, |
|
|
|
|
}, |
|
|
|
|
popup: { |
|
|
|
|
// type: "bi.multi_tree_check_pane",
|
|
|
|
|
type: MultiTreeCheckPane.xtype, |
|
|
|
|
...o.popup, |
|
|
|
|
}, |
|
|
|
|
masker: { |
|
|
|
|
offset: { |
|
|
|
|
left: 0, |
|
|
|
|
top: 0, |
|
|
|
|
right: 0, |
|
|
|
|
bottom: SIZE_CONSANTS.LIST_ITEM_HEIGHT + 1, |
|
|
|
|
}, |
|
|
|
|
adapter: () => { |
|
|
|
|
return this.popup.getView(); |
|
|
|
|
}, |
|
|
|
|
masker: o.masker, |
|
|
|
|
itemsCreator: o.itemsCreator, |
|
|
|
|
valueFormatter: o.valueFormatter, |
|
|
|
|
value: { value: o.value || {} }, |
|
|
|
@ -334,6 +332,7 @@ export class MultiTreeCombo extends Single {
|
|
|
|
|
want2showCounter = null; |
|
|
|
|
showCounter(); |
|
|
|
|
} |
|
|
|
|
this.fireEvent(MultiTreeCombo.EVENT_BEFORE_NUMBER_COUNTER_POPUPVIEW); |
|
|
|
|
} |
|
|
|
|
); |
|
|
|
|
|
|
|
|
@ -443,4 +442,16 @@ export class MultiTreeCombo extends Single {
|
|
|
|
|
setWaterMark(v) { |
|
|
|
|
this.trigger.setWaterMark(v); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
getPopup() { |
|
|
|
|
return this.popup; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
getNumberCounter() { |
|
|
|
|
return this.numberCounter; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
getTrigger() { |
|
|
|
|
return this.trigger; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|