|
|
@ -1,3 +1,6 @@ |
|
|
|
|
|
|
|
import { MultiListTreeSearcher } from "./trigger/searcher.list.multi.tree"; |
|
|
|
|
|
|
|
import { MultiTreeCheckSelectedButton } from "./trigger/multi.tree.button.checkselected"; |
|
|
|
|
|
|
|
import { MultiTreeCheckPane } from "./check/multi.tree.check.pane"; |
|
|
|
import { |
|
|
|
import { |
|
|
|
shortcut, |
|
|
|
shortcut, |
|
|
|
extend, |
|
|
|
extend, |
|
|
@ -14,12 +17,7 @@ import { Single, Combo } from "@/base"; |
|
|
|
import { MultiTreeSearchInsertPane } from "./trigger/multi.tree.search.insert.pane"; |
|
|
|
import { MultiTreeSearchInsertPane } from "./trigger/multi.tree.search.insert.pane"; |
|
|
|
import { MultiTreePopup } from "./multi.tree.popup"; |
|
|
|
import { MultiTreePopup } from "./multi.tree.popup"; |
|
|
|
import { MultiSelectTrigger } from "../multiselect/multiselect.trigger"; |
|
|
|
import { MultiSelectTrigger } from "../multiselect/multiselect.trigger"; |
|
|
|
import { |
|
|
|
import { TriggerIconButton, ListPartTree, ListDisplayTree, Listasynctree } from "@/case"; |
|
|
|
TriggerIconButton, |
|
|
|
|
|
|
|
ListPartTree, |
|
|
|
|
|
|
|
ListDisplayTree, |
|
|
|
|
|
|
|
Listasynctree |
|
|
|
|
|
|
|
} from "@/case"; |
|
|
|
|
|
|
|
import { MultiSelectCheckSelectedSwitcher } from "../multiselect/trigger/switcher.checkselected"; |
|
|
|
import { MultiSelectCheckSelectedSwitcher } from "../multiselect/trigger/switcher.checkselected"; |
|
|
|
|
|
|
|
|
|
|
|
@shortcut() |
|
|
|
@shortcut() |
|
|
@ -57,7 +55,7 @@ export class MultiTreeListCombo extends Single { |
|
|
|
this.storeValue = { value: o.value || [] }; |
|
|
|
this.storeValue = { value: o.value || [] }; |
|
|
|
|
|
|
|
|
|
|
|
this.trigger = createWidget({ |
|
|
|
this.trigger = createWidget({ |
|
|
|
type: "bi.multi_select_trigger", |
|
|
|
type: MultiSelectTrigger.xtype, |
|
|
|
allowEdit: o.allowEdit, |
|
|
|
allowEdit: o.allowEdit, |
|
|
|
text: o.text, |
|
|
|
text: o.text, |
|
|
|
defaultText: o.defaultText, |
|
|
|
defaultText: o.defaultText, |
|
|
@ -73,12 +71,10 @@ export class MultiTreeListCombo extends Single { |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
searcher: { |
|
|
|
searcher: { |
|
|
|
type: "bi.multi_list_tree_searcher", |
|
|
|
type: MultiListTreeSearcher.xtype, |
|
|
|
itemsCreator: o.itemsCreator, |
|
|
|
itemsCreator: o.itemsCreator, |
|
|
|
popup: { |
|
|
|
popup: { |
|
|
|
type: o.allowInsertValue |
|
|
|
type: o.allowInsertValue ? "bi.multi_tree_search_insert_pane" : "bi.multi_tree_search_pane", |
|
|
|
? "bi.multi_tree_search_insert_pane" |
|
|
|
|
|
|
|
: "bi.multi_tree_search_pane", |
|
|
|
|
|
|
|
el: { |
|
|
|
el: { |
|
|
|
type: ListPartTree.xtype, |
|
|
|
type: ListPartTree.xtype, |
|
|
|
}, |
|
|
|
}, |
|
|
@ -86,9 +82,7 @@ export class MultiTreeListCombo extends Single { |
|
|
|
{ |
|
|
|
{ |
|
|
|
eventName: MultiTreeSearchInsertPane.EVENT_ADD_ITEM, |
|
|
|
eventName: MultiTreeSearchInsertPane.EVENT_ADD_ITEM, |
|
|
|
action() { |
|
|
|
action() { |
|
|
|
self.storeValue.value.unshift([ |
|
|
|
self.storeValue.value.unshift([self.trigger.getSearcher().getKeyword()]); |
|
|
|
self.trigger.getSearcher().getKeyword() |
|
|
|
|
|
|
|
]); |
|
|
|
|
|
|
|
self._assertShowValue(); |
|
|
|
self._assertShowValue(); |
|
|
|
// setValue以更新paras.value, 之后从search popup中拿到的就能有add的值了
|
|
|
|
// setValue以更新paras.value, 之后从search popup中拿到的就能有add的值了
|
|
|
|
self.combo.setValue(self.storeValue); |
|
|
|
self.combo.setValue(self.storeValue); |
|
|
@ -102,10 +96,10 @@ export class MultiTreeListCombo extends Single { |
|
|
|
}, |
|
|
|
}, |
|
|
|
switcher: { |
|
|
|
switcher: { |
|
|
|
el: { |
|
|
|
el: { |
|
|
|
type: "bi.multi_tree_check_selected_button", |
|
|
|
type: MultiTreeCheckSelectedButton.xtype, |
|
|
|
}, |
|
|
|
}, |
|
|
|
popup: { |
|
|
|
popup: { |
|
|
|
type: "bi.multi_tree_check_pane", |
|
|
|
type: MultiTreeCheckPane.xtype, |
|
|
|
el: { |
|
|
|
el: { |
|
|
|
type: ListDisplayTree.xtype, |
|
|
|
type: ListDisplayTree.xtype, |
|
|
|
}, |
|
|
|
}, |
|
|
@ -154,10 +148,7 @@ export class MultiTreeListCombo extends Single { |
|
|
|
self.trigger.getSearcher().setState(val); |
|
|
|
self.trigger.getSearcher().setState(val); |
|
|
|
self.numberCounter.setButtonChecked(val); |
|
|
|
self.numberCounter.setButtonChecked(val); |
|
|
|
self.storeValue = { value: self.combo.getValue() }; |
|
|
|
self.storeValue = { value: self.combo.getValue() }; |
|
|
|
self.fireEvent( |
|
|
|
self.fireEvent(MultiTreeListCombo.EVENT_CLICK_ITEM, self.getValue()); |
|
|
|
MultiTreeListCombo.EVENT_CLICK_ITEM, |
|
|
|
|
|
|
|
self.getValue() |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
self._dataChange = true; |
|
|
|
self._dataChange = true; |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
@ -196,16 +187,12 @@ export class MultiTreeListCombo extends Single { |
|
|
|
}, |
|
|
|
}, |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
var change = false; |
|
|
|
let change = false; |
|
|
|
var clear = false; // 标识当前是否点击了清空
|
|
|
|
let clear = false; // 标识当前是否点击了清空
|
|
|
|
|
|
|
|
|
|
|
|
const isSearching = function () { |
|
|
|
const isSearching = () => self.trigger.getSearcher().isSearching(); |
|
|
|
return self.trigger.getSearcher().isSearching(); |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const isPopupView = function () { |
|
|
|
const isPopupView = () => self.combo.isViewVisible(); |
|
|
|
return self.combo.isViewVisible(); |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.trigger.on(MultiSelectTrigger.EVENT_FOCUS, () => { |
|
|
|
this.trigger.on(MultiSelectTrigger.EVENT_FOCUS, () => { |
|
|
|
self.fireEvent(MultiTreeListCombo.EVENT_FOCUS); |
|
|
|
self.fireEvent(MultiTreeListCombo.EVENT_FOCUS); |
|
|
@ -255,14 +242,9 @@ export class MultiTreeListCombo extends Single { |
|
|
|
type: BI.Selection.Multi, |
|
|
|
type: BI.Selection.Multi, |
|
|
|
value: checked ? { 1: 1 } : {}, |
|
|
|
value: checked ? { 1: 1 } : {}, |
|
|
|
}; |
|
|
|
}; |
|
|
|
this.getSearcher().setState( |
|
|
|
this.getSearcher().setState(checked ? BI.Selection.Multi : BI.Selection.None); |
|
|
|
checked ? BI.Selection.Multi : BI.Selection.None |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
self.numberCounter.setButtonChecked(val); |
|
|
|
self.numberCounter.setButtonChecked(val); |
|
|
|
self.fireEvent( |
|
|
|
self.fireEvent(MultiTreeListCombo.EVENT_CLICK_ITEM, self.combo.getValue()); |
|
|
|
MultiTreeListCombo.EVENT_CLICK_ITEM, |
|
|
|
|
|
|
|
self.combo.getValue() |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
self._dataChange = true; |
|
|
|
self._dataChange = true; |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
@ -285,8 +267,7 @@ export class MultiTreeListCombo extends Single { |
|
|
|
this.combo.on(Combo.EVENT_BEFORE_HIDEVIEW, () => { |
|
|
|
this.combo.on(Combo.EVENT_BEFORE_HIDEVIEW, () => { |
|
|
|
if (isSearching()) { |
|
|
|
if (isSearching()) { |
|
|
|
self.trigger.stopEditing(); |
|
|
|
self.trigger.stopEditing(); |
|
|
|
self._dataChange && |
|
|
|
self._dataChange && self.fireEvent(MultiTreeListCombo.EVENT_CONFIRM); |
|
|
|
self.fireEvent(MultiTreeListCombo.EVENT_CONFIRM); |
|
|
|
|
|
|
|
} else { |
|
|
|
} else { |
|
|
|
if (isPopupView()) { |
|
|
|
if (isPopupView()) { |
|
|
|
self._stopEditing(); |
|
|
|
self._stopEditing(); |
|
|
@ -294,15 +275,14 @@ export class MultiTreeListCombo extends Single { |
|
|
|
if (clear === true) { |
|
|
|
if (clear === true) { |
|
|
|
self.storeValue = { value: [] }; |
|
|
|
self.storeValue = { value: [] }; |
|
|
|
} |
|
|
|
} |
|
|
|
self._dataChange && |
|
|
|
self._dataChange && self.fireEvent(MultiTreeListCombo.EVENT_CONFIRM); |
|
|
|
self.fireEvent(MultiTreeListCombo.EVENT_CONFIRM); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
clear = false; |
|
|
|
clear = false; |
|
|
|
change = false; |
|
|
|
change = false; |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
var triggerBtn = createWidget({ |
|
|
|
const triggerBtn = createWidget({ |
|
|
|
type: TriggerIconButton.xtype, |
|
|
|
type: TriggerIconButton.xtype, |
|
|
|
width: o.height, |
|
|
|
width: o.height, |
|
|
|
height: o.height, |
|
|
|
height: o.height, |
|
|
@ -318,12 +298,12 @@ export class MultiTreeListCombo extends Single { |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
this.numberCounter = createWidget({ |
|
|
|
this.numberCounter = createWidget({ |
|
|
|
type: "bi.multi_select_check_selected_switcher", |
|
|
|
type: MultiSelectCheckSelectedSwitcher.xtype, |
|
|
|
el: { |
|
|
|
el: { |
|
|
|
type: "bi.multi_tree_check_selected_button", |
|
|
|
type: MultiTreeCheckSelectedButton.xtype, |
|
|
|
}, |
|
|
|
}, |
|
|
|
popup: { |
|
|
|
popup: { |
|
|
|
type: "bi.multi_tree_check_pane", |
|
|
|
type: MultiTreeCheckPane.xtype, |
|
|
|
}, |
|
|
|
}, |
|
|
|
itemsCreator: o.itemsCreator, |
|
|
|
itemsCreator: o.itemsCreator, |
|
|
|
masker: { |
|
|
|
masker: { |
|
|
@ -337,17 +317,12 @@ export class MultiTreeListCombo extends Single { |
|
|
|
valueFormatter: o.valueFormatter, |
|
|
|
valueFormatter: o.valueFormatter, |
|
|
|
value: o.value, |
|
|
|
value: o.value, |
|
|
|
}); |
|
|
|
}); |
|
|
|
this.numberCounter.on( |
|
|
|
this.numberCounter.on(MultiSelectCheckSelectedSwitcher.EVENT_TRIGGER_CHANGE, () => { |
|
|
|
MultiSelectCheckSelectedSwitcher.EVENT_TRIGGER_CHANGE, |
|
|
|
|
|
|
|
() => { |
|
|
|
|
|
|
|
if (!self.combo.isViewVisible()) { |
|
|
|
if (!self.combo.isViewVisible()) { |
|
|
|
self.combo.showView(); |
|
|
|
self.combo.showView(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
); |
|
|
|
this.numberCounter.on(MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW, () => { |
|
|
|
this.numberCounter.on( |
|
|
|
|
|
|
|
MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW, |
|
|
|
|
|
|
|
() => { |
|
|
|
|
|
|
|
if (want2showCounter === false) { |
|
|
|
if (want2showCounter === false) { |
|
|
|
want2showCounter = true; |
|
|
|
want2showCounter = true; |
|
|
|
} |
|
|
|
} |
|
|
@ -355,27 +330,21 @@ export class MultiTreeListCombo extends Single { |
|
|
|
want2showCounter = null; |
|
|
|
want2showCounter = null; |
|
|
|
showCounter(); |
|
|
|
showCounter(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.numberCounter.on(Events.VIEW, b => { |
|
|
|
this.numberCounter.on(Events.VIEW, b => { |
|
|
|
nextTick(() => { |
|
|
|
nextTick(() => { |
|
|
|
// 自动调整宽度
|
|
|
|
// 自动调整宽度
|
|
|
|
self.trigger.refreshPlaceHolderWidth( |
|
|
|
self.trigger.refreshPlaceHolderWidth(b === true ? self.numberCounter.element.outerWidth() + 8 : 0); |
|
|
|
b === true ? self.numberCounter.element.outerWidth() + 8 : 0 |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
this.numberCounter.on( |
|
|
|
this.numberCounter.on(MultiSelectCheckSelectedSwitcher.EVENT_AFTER_HIDEVIEW, () => { |
|
|
|
MultiSelectCheckSelectedSwitcher.EVENT_AFTER_HIDEVIEW, |
|
|
|
|
|
|
|
() => { |
|
|
|
|
|
|
|
nextTick(() => { |
|
|
|
nextTick(() => { |
|
|
|
// 收起时自动调整宽度
|
|
|
|
// 收起时自动调整宽度
|
|
|
|
self.trigger.refreshPlaceHolderWidth(0); |
|
|
|
self.trigger.refreshPlaceHolderWidth(0); |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
}); |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.trigger.element.click(e => { |
|
|
|
this.trigger.element.click(e => { |
|
|
|
if (self.trigger.element.find(e.target).length > 0) { |
|
|
|
if (self.trigger.element.find(e.target).length > 0) { |
|
|
|