Browse Source

BI-20841

es6
windy 6 years ago
parent
commit
e218b7e671
  1. 5
      demo/js/widget/singleselct/demo.single_select_combo.js
  2. 42
      dist/_fineui.min.js
  3. 540
      dist/bundle.js
  4. 42
      dist/bundle.min.js
  5. 110
      dist/demo.js
  6. 540
      dist/fineui.js
  7. 42
      dist/fineui.min.js
  8. 540
      dist/widget.js
  9. 0
      src/widget/multiselect/multiselect.insert.combo.js
  10. 18
      src/widget/singleselect/search/singleselect.search.loader.js
  11. 79
      src/widget/singleselect/singleselect.combo.js
  12. 2
      src/widget/singleselect/singleselect.loader.js
  13. 100
      src/widget/singleselect/singleselectlist.insert.js
  14. 39
      src/widget/singleselectaddsearch/search/singleselect.search.loader.js
  15. 118
      src/widget/singleselectaddsearch/singleselect.combo.js
  16. 3
      src/widget/singleselectaddsearch/singleselect.trigger.js
  17. 7
      src/widget/singleselectaddsearch/trigger/searcher.singleselect.js

5
demo/js/widget/singleselct/demo.single_select_combo.js

@ -9,15 +9,18 @@ Demo.SingleSelectCombo = BI.inherit(BI.Widget, {
_createSingleSelectCombo: function () {
var self = this;
var widget = BI.createWidget({
type: "bi.single_select_combo",
type: "bi.single_select_insert_list",
itemsCreator: BI.bind(this._itemsCreator, this),
width: 200,
height: 600,
ref: function () {
self.SingleSelectCombo = this;
},
value: "柳州市针织总厂"
});
widget.populate();
widget.on(BI.SingleSelectCombo.EVENT_CONFIRM, function () {
BI.Msg.toast(JSON.stringify(this.getValue()));
});

42
dist/_fineui.min.js vendored

File diff suppressed because one or more lines are too long

540
dist/bundle.js vendored

@ -97350,14 +97350,14 @@ BI.DisplaySelectedList = BI.inherit(BI.Pane, {
BI.shortcut("bi.display_selected_list", BI.DisplaySelectedList);/**
*
* @class BI.MultiSelectInsertCombo
* @class BI.MultiSelectCombo
* @extends BI.Single
*/
BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
BI.MultiSelectCombo = BI.inherit(BI.Single, {
_defaultConfig: function () {
return BI.extend(BI.MultiSelectInsertCombo.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-multi-select-insert-combo",
return BI.extend(BI.MultiSelectCombo.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-multi-select-combo",
itemsCreator: BI.emptyFn,
valueFormatter: BI.emptyFn,
height: 28
@ -97365,7 +97365,7 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
},
_init: function () {
BI.MultiSelectInsertCombo.superclass._init.apply(this, arguments);
BI.MultiSelectCombo.superclass._init.apply(this, arguments);
var self = this, o = this.options;
var assertShowValue = function () {
@ -97374,6 +97374,9 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
self.trigger.getCounter().setButtonChecked(self.storeValue);
};
this.storeValue = o.value || {};
this._assertValue(this.storeValue);
// 标记正在请求数据
this.requesting = false;
@ -97399,7 +97402,7 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
callback.apply(self, arguments);
});
},
value: o.value
value: this.storeValue
});
this.trigger.on(BI.MultiSelectTrigger.EVENT_START, function () {
@ -97410,23 +97413,19 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
self._setStartValue("");
});
this.trigger.on(BI.MultiSelectTrigger.EVENT_PAUSE, function () {
// if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
// 如果在不选的状态下直接把该值添加进来
if (self.storeValue.type === BI.Selection.Multi) {
self.storeValue.value.pushDistinct(keyword);
}
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue("");
});
// }
if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue("");
});
}
});
this.trigger.on(BI.MultiSelectTrigger.EVENT_SEARCHING, function (keywords) {
var last = BI.last(keywords);
@ -97528,7 +97527,7 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
if (self.requesting === true) {
self.wants2Quit = true;
} else {
self.fireEvent(BI.MultiSelectInsertCombo.EVENT_CONFIRM);
self.fireEvent(BI.MultiSelectCombo.EVENT_CONFIRM);
}
});
@ -97584,7 +97583,7 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
this._assertValue(this.storeValue);
this.requesting = true;
o.itemsCreator({
type: BI.MultiSelectInsertCombo.REQ_GET_ALL_DATA,
type: BI.MultiSelectCombo.REQ_GET_ALL_DATA,
keywords: keywords
}, function (ob) {
var values = BI.map(ob.items, "value");
@ -97607,7 +97606,7 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
this._assertValue(res);
this.requesting = true;
o.itemsCreator({
type: BI.MultiSelectInsertCombo.REQ_GET_ALL_DATA,
type: BI.MultiSelectCombo.REQ_GET_ALL_DATA,
keywords: [this.trigger.getKey()]
}, function (ob) {
var items = BI.map(ob.items, "value");
@ -97642,11 +97641,34 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
_adjust: function (callback) {
var self = this, o = this.options;
adjust();
callback();
if (!this._count) {
o.itemsCreator({
type: BI.MultiSelectCombo.REQ_GET_DATA_LENGTH
}, function (res) {
self._count = res.count;
adjust();
callback();
});
} else {
adjust();
callback();
}
function adjust () {
if (self.storeValue.type === BI.Selection.All && self.storeValue.value.length >= self._count) {
self.storeValue = {
type: BI.Selection.Multi,
value: []
};
} else if (self.storeValue.type === BI.Selection.Multi && self.storeValue.value.length >= self._count) {
self.storeValue = {
type: BI.Selection.All,
value: []
};
}
if (self.wants2Quit === true) {
self.fireEvent(BI.MultiSelectInsertCombo.EVENT_CONFIRM);
self.fireEvent(BI.MultiSelectCombo.EVENT_CONFIRM);
self.wants2Quit = false;
}
self.requesting = false;
@ -97695,27 +97717,28 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
},
populate: function () {
this._count = null;
this.combo.populate.apply(this.combo, arguments);
}
});
BI.extend(BI.MultiSelectInsertCombo, {
BI.extend(BI.MultiSelectCombo, {
REQ_GET_DATA_LENGTH: 1,
REQ_GET_ALL_DATA: -1
});
BI.MultiSelectInsertCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.MultiSelectCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.shortcut("bi.multi_select_insert_combo", BI.MultiSelectInsertCombo);/**
BI.shortcut("bi.multi_select_combo", BI.MultiSelectCombo);/**
*
* @class BI.MultiSelectCombo
* @class BI.MultiSelectInsertCombo
* @extends BI.Single
*/
BI.MultiSelectCombo = BI.inherit(BI.Single, {
BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
_defaultConfig: function () {
return BI.extend(BI.MultiSelectCombo.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-multi-select-combo",
return BI.extend(BI.MultiSelectInsertCombo.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-multi-select-insert-combo",
itemsCreator: BI.emptyFn,
valueFormatter: BI.emptyFn,
height: 28
@ -97723,7 +97746,7 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
},
_init: function () {
BI.MultiSelectCombo.superclass._init.apply(this, arguments);
BI.MultiSelectInsertCombo.superclass._init.apply(this, arguments);
var self = this, o = this.options;
var assertShowValue = function () {
@ -97732,9 +97755,6 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
self.trigger.getCounter().setButtonChecked(self.storeValue);
};
this.storeValue = o.value || {};
this._assertValue(this.storeValue);
// 标记正在请求数据
this.requesting = false;
@ -97760,7 +97780,7 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
callback.apply(self, arguments);
});
},
value: this.storeValue
value: o.value
});
this.trigger.on(BI.MultiSelectTrigger.EVENT_START, function () {
@ -97771,19 +97791,23 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
self._setStartValue("");
});
this.trigger.on(BI.MultiSelectTrigger.EVENT_PAUSE, function () {
if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue("");
});
}
// if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
// 如果在不选的状态下直接把该值添加进来
if (self.storeValue.type === BI.Selection.Multi) {
self.storeValue.value.pushDistinct(keyword);
}
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue("");
});
// }
});
this.trigger.on(BI.MultiSelectTrigger.EVENT_SEARCHING, function (keywords) {
var last = BI.last(keywords);
@ -97885,7 +97909,7 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
if (self.requesting === true) {
self.wants2Quit = true;
} else {
self.fireEvent(BI.MultiSelectCombo.EVENT_CONFIRM);
self.fireEvent(BI.MultiSelectInsertCombo.EVENT_CONFIRM);
}
});
@ -97941,7 +97965,7 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
this._assertValue(this.storeValue);
this.requesting = true;
o.itemsCreator({
type: BI.MultiSelectCombo.REQ_GET_ALL_DATA,
type: BI.MultiSelectInsertCombo.REQ_GET_ALL_DATA,
keywords: keywords
}, function (ob) {
var values = BI.map(ob.items, "value");
@ -97964,7 +97988,7 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
this._assertValue(res);
this.requesting = true;
o.itemsCreator({
type: BI.MultiSelectCombo.REQ_GET_ALL_DATA,
type: BI.MultiSelectInsertCombo.REQ_GET_ALL_DATA,
keywords: [this.trigger.getKey()]
}, function (ob) {
var items = BI.map(ob.items, "value");
@ -97999,34 +98023,11 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
_adjust: function (callback) {
var self = this, o = this.options;
if (!this._count) {
o.itemsCreator({
type: BI.MultiSelectCombo.REQ_GET_DATA_LENGTH
}, function (res) {
self._count = res.count;
adjust();
callback();
});
} else {
adjust();
callback();
}
adjust();
callback();
function adjust () {
if (self.storeValue.type === BI.Selection.All && self.storeValue.value.length >= self._count) {
self.storeValue = {
type: BI.Selection.Multi,
value: []
};
} else if (self.storeValue.type === BI.Selection.Multi && self.storeValue.value.length >= self._count) {
self.storeValue = {
type: BI.Selection.All,
value: []
};
}
if (self.wants2Quit === true) {
self.fireEvent(BI.MultiSelectCombo.EVENT_CONFIRM);
self.fireEvent(BI.MultiSelectInsertCombo.EVENT_CONFIRM);
self.wants2Quit = false;
}
self.requesting = false;
@ -98075,19 +98076,18 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
},
populate: function () {
this._count = null;
this.combo.populate.apply(this.combo, arguments);
}
});
BI.extend(BI.MultiSelectCombo, {
BI.extend(BI.MultiSelectInsertCombo, {
REQ_GET_DATA_LENGTH: 1,
REQ_GET_ALL_DATA: -1
});
BI.MultiSelectCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.MultiSelectInsertCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.shortcut("bi.multi_select_combo", BI.MultiSelectCombo);/**
BI.shortcut("bi.multi_select_insert_combo", BI.MultiSelectInsertCombo);/**
*
* @class BI.MultiSelectInsertCombo
* @extends BI.Single
@ -104808,19 +104808,11 @@ BI.SingleSelectSearchLoader = BI.inherit(BI.Widget, {
var keyword = ob.keyword = opts.keywordGetter();
hasNext = ob.hasNext;
var firstItems = [];
if (op.times === 1 && self.storeValue) {
var json = BI.map([self.storeValue], function (i, v) {
var txt = opts.valueFormatter(v) || v;
return {
text: txt,
value: v,
title: txt,
selected: false
};
});
if (op.times === 1 && BI.isNotNull(self.storeValue)) {
var json = self._filterValues(self.storeValue);
firstItems = self._createItems(json);
}
callback(firstItems.concat(self._createItems(ob.items)), keyword);
callback(firstItems.concat(self._createItems(ob.items)), keyword || "");
if (op.times === 1 && self.storeValue) {
self.setValue(self.storeValue);
}
@ -104852,8 +104844,8 @@ BI.SingleSelectSearchLoader = BI.inherit(BI.Widget, {
_filterValues: function (src) {
var o = this.options;
var keyword = o.keywordGetter();
var values = BI.deepClone(src.value) || [];
var newValues = BI.map(values, function (i, v) {
var values = src || [];
var newValues = BI.map(BI.isArray(values) ? values : [values], function (i, v) {
return {
text: o.valueFormatter(v) || v,
value: v
@ -105066,16 +105058,11 @@ BI.SingleSelectCombo = BI.inherit(BI.Single, {
this.trigger.on(BI.SingleSelectTrigger.EVENT_PAUSE, function () {
if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue();
});
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue();
}
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_SEARCHING, function (keywords) {
@ -105227,44 +105214,6 @@ BI.SingleSelectCombo = BI.inherit(BI.Single, {
}
},
_joinAll: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this.requesting = true;
o.itemsCreator({
type: BI.SingleSelectCombo.REQ_GET_ALL_DATA,
keywords: [this.trigger.getKey()]
}, function (ob) {
var items = BI.map(ob.items, "value");
if (self.storeValue.type === res.type) {
var change = false;
var map = self._makeMap(self.storeValue.value);
BI.each(items, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (self.storeValue.value = BI.values(map));
self._adjust(callback);
return;
}
var selectedMap = self._makeMap(self.storeValue.value);
var notSelectedMap = self._makeMap(res.value);
var newItems = [];
BI.each(items, function (i, item) {
if (BI.isNotNull(selectedMap[items[i]])) {
delete selectedMap[items[i]];
}
if (BI.isNull(notSelectedMap[items[i]])) {
newItems.push(item);
}
});
self.storeValue.value = newItems.concat(BI.values(selectedMap));
self._adjust(callback);
});
},
_adjust: function (callback) {
var self = this, o = this.options;
if (!this._count) {
@ -105290,32 +105239,6 @@ BI.SingleSelectCombo = BI.inherit(BI.Single, {
}
},
_join: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this._assertValue(this.storeValue);
if (this.storeValue.type === res.type) {
var map = this._makeMap(this.storeValue.value);
BI.each(res.value, function (i, v) {
if (!map[v]) {
self.storeValue.value.push(v);
map[v] = v;
}
});
var change = false;
BI.each(res.assist, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (this.storeValue.value = BI.values(map));
self._adjust(callback);
return;
}
this._joinAll(res, callback);
},
_setStartValue: function (value) {
this._startValue = value;
this.popup.setStartValue(value);
@ -105573,7 +105496,7 @@ BI.SingleSelectLoader = BI.inherit(BI.Widget, {
var self = this, opts = this.options;
var hasNext = false;
this.storeValue = opts.value;
this.button_group = BI.createWidget({
type: "bi.single_select_list",
element: this,
@ -105901,7 +105824,7 @@ BI.SingleSelectInsertList = BI.inherit(BI.Single, {
this.storeValue = o.value;
var assertShowValue = function () {
BI.isKey(self._startValue) && self.storeValue.value[self.storeValue.type === BI.Selection.All ? "remove" : "pushDistinct"](self._startValue);
BI.isKey(self._startValue) && (self.storeValue = self._startValue);
// self.trigger.setValue(self.storeValue);
};
@ -105970,33 +105893,14 @@ BI.SingleSelectInsertList = BI.inherit(BI.Single, {
eventName: BI.Searcher.EVENT_PAUSE,
action: function () {
var keyword = this.getKeyword();
if (this.hasMatched()) {
self._join({
type: BI.Selection.Single,
value: [keyword]
}, function () {
if (self.storeValue.type === BI.Selection.Single) {
self.storeValue.value.pushDistinct(keyword);
}
self._showAdapter();
self.adapter.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.adapter.populate();
self._setStartValue();
self.fireEvent(BI.SingleSelectInsertList.EVENT_CHANGE);
});
} else {
if (self.storeValue.type === BI.Selection.Single) {
self.storeValue.value.pushDistinct(keyword);
}
self._showAdapter();
self.adapter.setValue(self.storeValue);
self.adapter.populate();
if (self.storeValue.type === BI.Selection.Single) {
self.fireEvent(BI.SingleSelectInsertList.EVENT_CHANGE);
}
}
self.storeValue = keyword;
self._showAdapter();
self.adapter.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.adapter.populate();
self._setStartValue();
self.fireEvent(BI.SingleSelectInsertList.EVENT_CHANGE);
}
}, {
eventName: BI.Searcher.EVENT_SEARCHING,
@ -106096,69 +106000,6 @@ BI.SingleSelectInsertList = BI.inherit(BI.Single, {
}
},
_joinAll: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
o.itemsCreator({
type: BI.SingleSelectInsertList.REQ_GET_ALL_DATA,
keyword: self.trigger.getKeyword()
}, function (ob) {
var items = BI.map(ob.items, "value");
if (self.storeValue.type === res.type) {
var change = false;
var map = self._makeMap(self.storeValue.value);
BI.each(items, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (self.storeValue.value = BI.values(map));
callback();
return;
}
var selectedMap = self._makeMap(self.storeValue.value);
var notSelectedMap = self._makeMap(res.value);
var newItems = [];
BI.each(items, function (i, item) {
if (BI.isNotNull(selectedMap[items[i]])) {
delete selectedMap[items[i]];
}
if (BI.isNull(notSelectedMap[items[i]])) {
newItems.push(item);
}
});
self.storeValue.value = newItems.concat(BI.values(selectedMap));
callback();
});
},
_join: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this._assertValue(this.storeValue);
if (this.storeValue.type === res.type) {
var map = this._makeMap(this.storeValue.value);
BI.each(res.value, function (i, v) {
if (!map[v]) {
self.storeValue.value.push(v);
map[v] = v;
}
});
var change = false;
BI.each(res.assist, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (this.storeValue.value = BI.values(map));
callback();
return;
}
this._joinAll(res, callback);
},
_setStartValue: function (value) {
this._startValue = value;
this.adapter.setStartValue(value);
@ -106471,44 +106312,21 @@ BI.SingleSelectSearchLoader = BI.inherit(BI.Widget, {
}
},
itemsCreator: function (op, callback) {
self.storeValue && (op = BI.extend(op || {}, {
var startValue = self._startValue;
BI.isNotNull(self.storeValue) && (op = BI.extend(op || {}, {
selectedValues: [self.storeValue]
}));
opts.itemsCreator(op, function (ob) {
var keyword = ob.keyword = opts.keywordGetter();
hasNext = ob.hasNext;
var firstItems = [];
if (op.times === 1 && self.storeValue) {
var json = BI.map([self.storeValue], function (i, v) {
var txt = opts.valueFormatter(v) || v;
return {
text: txt,
value: v,
title: txt,
selected: false
};
});
if (op.times === 1 && BI.isNotNull(self.storeValue)) {
var json = self._filterValues(self.storeValue);
firstItems = self._createItems(json);
}
if(keyword) {
var flag = false;
for(var i = 0; i < ob.items.length; i++) {
if(BI.contains(ob.items[i], keyword)) {
flag = true;
}
}
if(!flag) {
var preItems = self._createItems([{
text: keyword,
value: keyword,
title: keyword,
selected: false
}]);
firstItems = firstItems.concat(preItems);
}
}
callback(firstItems.concat(self._createItems(ob.items)), keyword);
callback(firstItems.concat(self._createItems(ob.items)), keyword || "");
if (op.times === 1 && self.storeValue) {
BI.isKey(startValue) && (self.storeValue = startValue);
self.setValue(self.storeValue);
}
});
@ -106539,8 +106357,8 @@ BI.SingleSelectSearchLoader = BI.inherit(BI.Widget, {
_filterValues: function (src) {
var o = this.options;
var keyword = o.keywordGetter();
var values = BI.deepClone(src.value) || [];
var newValues = BI.map(values, function (i, v) {
var values = src || [];
var newValues = BI.map(BI.isArray(values) ? values : [values], function (i, v) {
return {
text: o.valueFormatter(v) || v,
value: v
@ -106713,7 +106531,7 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
BI.isKey(self._startValue) && (self.storeValue = self._startValue);
self.trigger.getSearcher().setState(self.storeValue);
};
this.storeValue = "";
this.storeValue = o.value;
// 标记正在请求数据
this.requesting = false;
@ -106738,30 +106556,25 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
}
callback.apply(self, arguments);
});
}
},
value: this.storeValue
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_START, function () {
self._setStartValue("");
self._setStartValue();
this.getSearcher().setValue(self.storeValue);
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_STOP, function () {
self._setStartValue("");
self._setStartValue();
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_PAUSE, function () {
if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue("");
});
}
var keyword = this.getSearcher().getKeyword();
self.storeValue = keyword;
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue();
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_SEARCHING, function (keywords) {
var last = BI.last(keywords);
@ -106772,7 +106585,7 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
self.combo.setValue(self.storeValue);
assertShowValue();
self.combo.populate();
self._setStartValue("");
self._setStartValue();
} else {
self.combo.setValue(self.storeValue);
assertShowValue();
@ -106784,6 +106597,7 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
this.trigger.on(BI.SingleSelectTrigger.EVENT_CHANGE, function (value, obj) {
self.storeValue = this.getValue();
assertShowValue();
self._defaultState();
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_COUNTER_CLICK, function () {
if (!self.combo.isViewVisible()) {
@ -106824,7 +106638,8 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
},
hideChecker: function (e) {
return triggerBtn.element.find(e.target).length === 0;
}
},
value: o.value
});
this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () {
@ -106882,7 +106697,6 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
},
_assertValue: function (val) {
val || (val = "");
},
_makeMap: function (values) {
@ -106912,59 +106726,10 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
}
},
_joinAll: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this.requesting = true;
o.itemsCreator({
type: BI.SingleSelectInsertCombo.REQ_GET_ALL_DATA,
keywords: [this.trigger.getKey()]
}, function (ob) {
var items = BI.map(ob.items, "value");
if (self.storeValue.type === res.type) {
var change = false;
var map = self._makeMap(self.storeValue.value);
BI.each(items, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (self.storeValue.value = BI.values(map));
self._adjust(callback);
return;
}
var selectedMap = self._makeMap(self.storeValue.value);
var notSelectedMap = self._makeMap(res.value);
var newItems = [];
BI.each(items, function (i, item) {
if (BI.isNotNull(selectedMap[items[i]])) {
delete selectedMap[items[i]];
}
if (BI.isNull(notSelectedMap[items[i]])) {
newItems.push(item);
}
});
self.storeValue.value = newItems.concat(BI.values(selectedMap));
self._adjust(callback);
});
},
_adjust: function (callback) {
var self = this, o = this.options;
if (!this._count) {
o.itemsCreator({
type: BI.SingleSelectInsertCombo.REQ_GET_DATA_LENGTH
}, function (res) {
self._count = res.count;
adjust();
callback();
});
} else {
adjust();
callback();
}
adjust();
callback();
function adjust () {
if (self.wants2Quit === true) {
@ -106975,39 +106740,13 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
}
},
_join: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this._assertValue(this.storeValue);
if (this.storeValue.type === res.type) {
var map = this._makeMap(this.storeValue.value);
BI.each(res.value, function (i, v) {
if (!map[v]) {
self.storeValue.value.push(v);
map[v] = v;
}
});
var change = false;
BI.each(res.assist, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (this.storeValue.value = BI.values(map));
self._adjust(callback);
return;
}
this._joinAll(res, callback);
},
_setStartValue: function (value) {
this._startValue = value;
this.popup.setStartValue(value);
},
setValue: function (v) {
this.storeValue = v || "";
this.storeValue = v;
this._assertValue(this.storeValue);
this.combo.setValue(this.storeValue);
},
@ -107017,7 +106756,6 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
},
populate: function () {
this._count = null;
this.combo.populate.apply(this.combo, arguments);
}
});
@ -107072,7 +106810,8 @@ BI.SingleSelectTrigger = BI.inherit(BI.Trigger, {
valueFormatter: o.valueFormatter,
popup: {},
adapter: o.adapter,
masker: o.masker
masker: o.masker,
value: o.value
});
this.searcher.on(BI.SingleSelectSearcher.EVENT_START, function () {
self.fireEvent(BI.SingleSelectTrigger.EVENT_START);
@ -107187,9 +106926,9 @@ BI.SingleSelectSearcher = BI.inherit(BI.Widget, {
op.keyword = self.editor.getValue();
this.setKeyword(op.keyword);
o.itemsCreator(op, callback);
}
},
value: o.value
}, o.popup),
adapter: o.adapter,
masker: o.masker
});
@ -107212,6 +106951,9 @@ BI.SingleSelectSearcher = BI.inherit(BI.Widget, {
var keywords = this.getKeywords();
self.fireEvent(BI.SingleSelectSearcher.EVENT_SEARCHING, keywords);
});
if(BI.isNotNull(o.value)) {
this.setState(o.value);
}
},
adjustView: function () {

42
dist/bundle.min.js vendored

File diff suppressed because one or more lines are too long

110
dist/demo.js vendored

@ -11017,6 +11017,111 @@ BI.shortcut("demo.tmp", Demo.Func);
});
BI.shortcut("demo.fix_global_watcher", Demo.Fix);
}());(function () {
var State = BI.inherit(Fix.Model, {
state: function () {
return {
name: "原始属性",
info: {
age: 12,
sex: "male",
birth: {
year: 2018,
month: 9,
day: 11
}
},
career: [{
a: 1,
b: 2,
c: 3
}]
};
},
computed: {
b: function () {
return this.model.name + "-计算属性";
},
birth: function () {
return this.model.info.birth;
}
}
});
Demo.Fix = BI.inherit(BI.Widget, {
_store: function () {
return new State();
},
watch: {
b: function () {
this.button.setText(this.model.b);
},
"birth.**": function () {
console.log(123);
}
},
render: function () {
var self = this;
return {
type: "bi.vertical",
items: [{
el: {
type: "bi.button",
ref: function () {
self.button = this;
},
handler: function () {
self.model.name = "这是改变后的属性";
},
text: this.model.b
}
}, {
el: {
type: "bi.button",
ref: function () {
self.button = this;
},
handler: function () {
self.model.birth.year = 2019;
},
text: "birthYearButton"
}
}, {
el: {
type: "bi.button",
ref: function () {
self.button = this;
},
handler: function () {
self.model.career.push({
year: 2017,
month: 3,
day: 24
});
},
text: "careerAddButton"
}
}, {
el: {
type: "bi.button",
ref: function () {
self.button = this;
},
handler: function () {
self.model.career[0].a = 24;
},
text: "careerChangeButton"
}
}]
};
},
mounted: function () {
}
});
BI.shortcut("demo.fix_immutable", Demo.Fix);
}());/**
* @Author: Young
* @CreationDate 2017-11-06 10:32
@ -13248,15 +13353,18 @@ Demo.SingleSelectCombo = BI.inherit(BI.Widget, {
_createSingleSelectCombo: function () {
var self = this;
var widget = BI.createWidget({
type: "bi.single_select_combo",
type: "bi.single_select_insert_list",
itemsCreator: BI.bind(this._itemsCreator, this),
width: 200,
height: 600,
ref: function () {
self.SingleSelectCombo = this;
},
value: "柳州市针织总厂"
});
widget.populate();
widget.on(BI.SingleSelectCombo.EVENT_CONFIRM, function () {
BI.Msg.toast(JSON.stringify(this.getValue()));
});

540
dist/fineui.js vendored

@ -97593,14 +97593,14 @@ BI.DisplaySelectedList = BI.inherit(BI.Pane, {
BI.shortcut("bi.display_selected_list", BI.DisplaySelectedList);/**
*
* @class BI.MultiSelectInsertCombo
* @class BI.MultiSelectCombo
* @extends BI.Single
*/
BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
BI.MultiSelectCombo = BI.inherit(BI.Single, {
_defaultConfig: function () {
return BI.extend(BI.MultiSelectInsertCombo.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-multi-select-insert-combo",
return BI.extend(BI.MultiSelectCombo.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-multi-select-combo",
itemsCreator: BI.emptyFn,
valueFormatter: BI.emptyFn,
height: 28
@ -97608,7 +97608,7 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
},
_init: function () {
BI.MultiSelectInsertCombo.superclass._init.apply(this, arguments);
BI.MultiSelectCombo.superclass._init.apply(this, arguments);
var self = this, o = this.options;
var assertShowValue = function () {
@ -97617,6 +97617,9 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
self.trigger.getCounter().setButtonChecked(self.storeValue);
};
this.storeValue = o.value || {};
this._assertValue(this.storeValue);
// 标记正在请求数据
this.requesting = false;
@ -97642,7 +97645,7 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
callback.apply(self, arguments);
});
},
value: o.value
value: this.storeValue
});
this.trigger.on(BI.MultiSelectTrigger.EVENT_START, function () {
@ -97653,23 +97656,19 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
self._setStartValue("");
});
this.trigger.on(BI.MultiSelectTrigger.EVENT_PAUSE, function () {
// if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
// 如果在不选的状态下直接把该值添加进来
if (self.storeValue.type === BI.Selection.Multi) {
self.storeValue.value.pushDistinct(keyword);
}
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue("");
});
// }
if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue("");
});
}
});
this.trigger.on(BI.MultiSelectTrigger.EVENT_SEARCHING, function (keywords) {
var last = BI.last(keywords);
@ -97771,7 +97770,7 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
if (self.requesting === true) {
self.wants2Quit = true;
} else {
self.fireEvent(BI.MultiSelectInsertCombo.EVENT_CONFIRM);
self.fireEvent(BI.MultiSelectCombo.EVENT_CONFIRM);
}
});
@ -97827,7 +97826,7 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
this._assertValue(this.storeValue);
this.requesting = true;
o.itemsCreator({
type: BI.MultiSelectInsertCombo.REQ_GET_ALL_DATA,
type: BI.MultiSelectCombo.REQ_GET_ALL_DATA,
keywords: keywords
}, function (ob) {
var values = BI.map(ob.items, "value");
@ -97850,7 +97849,7 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
this._assertValue(res);
this.requesting = true;
o.itemsCreator({
type: BI.MultiSelectInsertCombo.REQ_GET_ALL_DATA,
type: BI.MultiSelectCombo.REQ_GET_ALL_DATA,
keywords: [this.trigger.getKey()]
}, function (ob) {
var items = BI.map(ob.items, "value");
@ -97885,11 +97884,34 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
_adjust: function (callback) {
var self = this, o = this.options;
adjust();
callback();
if (!this._count) {
o.itemsCreator({
type: BI.MultiSelectCombo.REQ_GET_DATA_LENGTH
}, function (res) {
self._count = res.count;
adjust();
callback();
});
} else {
adjust();
callback();
}
function adjust () {
if (self.storeValue.type === BI.Selection.All && self.storeValue.value.length >= self._count) {
self.storeValue = {
type: BI.Selection.Multi,
value: []
};
} else if (self.storeValue.type === BI.Selection.Multi && self.storeValue.value.length >= self._count) {
self.storeValue = {
type: BI.Selection.All,
value: []
};
}
if (self.wants2Quit === true) {
self.fireEvent(BI.MultiSelectInsertCombo.EVENT_CONFIRM);
self.fireEvent(BI.MultiSelectCombo.EVENT_CONFIRM);
self.wants2Quit = false;
}
self.requesting = false;
@ -97938,27 +97960,28 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
},
populate: function () {
this._count = null;
this.combo.populate.apply(this.combo, arguments);
}
});
BI.extend(BI.MultiSelectInsertCombo, {
BI.extend(BI.MultiSelectCombo, {
REQ_GET_DATA_LENGTH: 1,
REQ_GET_ALL_DATA: -1
});
BI.MultiSelectInsertCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.MultiSelectCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.shortcut("bi.multi_select_insert_combo", BI.MultiSelectInsertCombo);/**
BI.shortcut("bi.multi_select_combo", BI.MultiSelectCombo);/**
*
* @class BI.MultiSelectCombo
* @class BI.MultiSelectInsertCombo
* @extends BI.Single
*/
BI.MultiSelectCombo = BI.inherit(BI.Single, {
BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
_defaultConfig: function () {
return BI.extend(BI.MultiSelectCombo.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-multi-select-combo",
return BI.extend(BI.MultiSelectInsertCombo.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-multi-select-insert-combo",
itemsCreator: BI.emptyFn,
valueFormatter: BI.emptyFn,
height: 28
@ -97966,7 +97989,7 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
},
_init: function () {
BI.MultiSelectCombo.superclass._init.apply(this, arguments);
BI.MultiSelectInsertCombo.superclass._init.apply(this, arguments);
var self = this, o = this.options;
var assertShowValue = function () {
@ -97975,9 +97998,6 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
self.trigger.getCounter().setButtonChecked(self.storeValue);
};
this.storeValue = o.value || {};
this._assertValue(this.storeValue);
// 标记正在请求数据
this.requesting = false;
@ -98003,7 +98023,7 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
callback.apply(self, arguments);
});
},
value: this.storeValue
value: o.value
});
this.trigger.on(BI.MultiSelectTrigger.EVENT_START, function () {
@ -98014,19 +98034,23 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
self._setStartValue("");
});
this.trigger.on(BI.MultiSelectTrigger.EVENT_PAUSE, function () {
if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue("");
});
}
// if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
// 如果在不选的状态下直接把该值添加进来
if (self.storeValue.type === BI.Selection.Multi) {
self.storeValue.value.pushDistinct(keyword);
}
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue("");
});
// }
});
this.trigger.on(BI.MultiSelectTrigger.EVENT_SEARCHING, function (keywords) {
var last = BI.last(keywords);
@ -98128,7 +98152,7 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
if (self.requesting === true) {
self.wants2Quit = true;
} else {
self.fireEvent(BI.MultiSelectCombo.EVENT_CONFIRM);
self.fireEvent(BI.MultiSelectInsertCombo.EVENT_CONFIRM);
}
});
@ -98184,7 +98208,7 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
this._assertValue(this.storeValue);
this.requesting = true;
o.itemsCreator({
type: BI.MultiSelectCombo.REQ_GET_ALL_DATA,
type: BI.MultiSelectInsertCombo.REQ_GET_ALL_DATA,
keywords: keywords
}, function (ob) {
var values = BI.map(ob.items, "value");
@ -98207,7 +98231,7 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
this._assertValue(res);
this.requesting = true;
o.itemsCreator({
type: BI.MultiSelectCombo.REQ_GET_ALL_DATA,
type: BI.MultiSelectInsertCombo.REQ_GET_ALL_DATA,
keywords: [this.trigger.getKey()]
}, function (ob) {
var items = BI.map(ob.items, "value");
@ -98242,34 +98266,11 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
_adjust: function (callback) {
var self = this, o = this.options;
if (!this._count) {
o.itemsCreator({
type: BI.MultiSelectCombo.REQ_GET_DATA_LENGTH
}, function (res) {
self._count = res.count;
adjust();
callback();
});
} else {
adjust();
callback();
}
adjust();
callback();
function adjust () {
if (self.storeValue.type === BI.Selection.All && self.storeValue.value.length >= self._count) {
self.storeValue = {
type: BI.Selection.Multi,
value: []
};
} else if (self.storeValue.type === BI.Selection.Multi && self.storeValue.value.length >= self._count) {
self.storeValue = {
type: BI.Selection.All,
value: []
};
}
if (self.wants2Quit === true) {
self.fireEvent(BI.MultiSelectCombo.EVENT_CONFIRM);
self.fireEvent(BI.MultiSelectInsertCombo.EVENT_CONFIRM);
self.wants2Quit = false;
}
self.requesting = false;
@ -98318,19 +98319,18 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
},
populate: function () {
this._count = null;
this.combo.populate.apply(this.combo, arguments);
}
});
BI.extend(BI.MultiSelectCombo, {
BI.extend(BI.MultiSelectInsertCombo, {
REQ_GET_DATA_LENGTH: 1,
REQ_GET_ALL_DATA: -1
});
BI.MultiSelectCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.MultiSelectInsertCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.shortcut("bi.multi_select_combo", BI.MultiSelectCombo);/**
BI.shortcut("bi.multi_select_insert_combo", BI.MultiSelectInsertCombo);/**
*
* @class BI.MultiSelectInsertCombo
* @extends BI.Single
@ -105051,19 +105051,11 @@ BI.SingleSelectSearchLoader = BI.inherit(BI.Widget, {
var keyword = ob.keyword = opts.keywordGetter();
hasNext = ob.hasNext;
var firstItems = [];
if (op.times === 1 && self.storeValue) {
var json = BI.map([self.storeValue], function (i, v) {
var txt = opts.valueFormatter(v) || v;
return {
text: txt,
value: v,
title: txt,
selected: false
};
});
if (op.times === 1 && BI.isNotNull(self.storeValue)) {
var json = self._filterValues(self.storeValue);
firstItems = self._createItems(json);
}
callback(firstItems.concat(self._createItems(ob.items)), keyword);
callback(firstItems.concat(self._createItems(ob.items)), keyword || "");
if (op.times === 1 && self.storeValue) {
self.setValue(self.storeValue);
}
@ -105095,8 +105087,8 @@ BI.SingleSelectSearchLoader = BI.inherit(BI.Widget, {
_filterValues: function (src) {
var o = this.options;
var keyword = o.keywordGetter();
var values = BI.deepClone(src.value) || [];
var newValues = BI.map(values, function (i, v) {
var values = src || [];
var newValues = BI.map(BI.isArray(values) ? values : [values], function (i, v) {
return {
text: o.valueFormatter(v) || v,
value: v
@ -105309,16 +105301,11 @@ BI.SingleSelectCombo = BI.inherit(BI.Single, {
this.trigger.on(BI.SingleSelectTrigger.EVENT_PAUSE, function () {
if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue();
});
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue();
}
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_SEARCHING, function (keywords) {
@ -105470,44 +105457,6 @@ BI.SingleSelectCombo = BI.inherit(BI.Single, {
}
},
_joinAll: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this.requesting = true;
o.itemsCreator({
type: BI.SingleSelectCombo.REQ_GET_ALL_DATA,
keywords: [this.trigger.getKey()]
}, function (ob) {
var items = BI.map(ob.items, "value");
if (self.storeValue.type === res.type) {
var change = false;
var map = self._makeMap(self.storeValue.value);
BI.each(items, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (self.storeValue.value = BI.values(map));
self._adjust(callback);
return;
}
var selectedMap = self._makeMap(self.storeValue.value);
var notSelectedMap = self._makeMap(res.value);
var newItems = [];
BI.each(items, function (i, item) {
if (BI.isNotNull(selectedMap[items[i]])) {
delete selectedMap[items[i]];
}
if (BI.isNull(notSelectedMap[items[i]])) {
newItems.push(item);
}
});
self.storeValue.value = newItems.concat(BI.values(selectedMap));
self._adjust(callback);
});
},
_adjust: function (callback) {
var self = this, o = this.options;
if (!this._count) {
@ -105533,32 +105482,6 @@ BI.SingleSelectCombo = BI.inherit(BI.Single, {
}
},
_join: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this._assertValue(this.storeValue);
if (this.storeValue.type === res.type) {
var map = this._makeMap(this.storeValue.value);
BI.each(res.value, function (i, v) {
if (!map[v]) {
self.storeValue.value.push(v);
map[v] = v;
}
});
var change = false;
BI.each(res.assist, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (this.storeValue.value = BI.values(map));
self._adjust(callback);
return;
}
this._joinAll(res, callback);
},
_setStartValue: function (value) {
this._startValue = value;
this.popup.setStartValue(value);
@ -105816,7 +105739,7 @@ BI.SingleSelectLoader = BI.inherit(BI.Widget, {
var self = this, opts = this.options;
var hasNext = false;
this.storeValue = opts.value;
this.button_group = BI.createWidget({
type: "bi.single_select_list",
element: this,
@ -106144,7 +106067,7 @@ BI.SingleSelectInsertList = BI.inherit(BI.Single, {
this.storeValue = o.value;
var assertShowValue = function () {
BI.isKey(self._startValue) && self.storeValue.value[self.storeValue.type === BI.Selection.All ? "remove" : "pushDistinct"](self._startValue);
BI.isKey(self._startValue) && (self.storeValue = self._startValue);
// self.trigger.setValue(self.storeValue);
};
@ -106213,33 +106136,14 @@ BI.SingleSelectInsertList = BI.inherit(BI.Single, {
eventName: BI.Searcher.EVENT_PAUSE,
action: function () {
var keyword = this.getKeyword();
if (this.hasMatched()) {
self._join({
type: BI.Selection.Single,
value: [keyword]
}, function () {
if (self.storeValue.type === BI.Selection.Single) {
self.storeValue.value.pushDistinct(keyword);
}
self._showAdapter();
self.adapter.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.adapter.populate();
self._setStartValue();
self.fireEvent(BI.SingleSelectInsertList.EVENT_CHANGE);
});
} else {
if (self.storeValue.type === BI.Selection.Single) {
self.storeValue.value.pushDistinct(keyword);
}
self._showAdapter();
self.adapter.setValue(self.storeValue);
self.adapter.populate();
if (self.storeValue.type === BI.Selection.Single) {
self.fireEvent(BI.SingleSelectInsertList.EVENT_CHANGE);
}
}
self.storeValue = keyword;
self._showAdapter();
self.adapter.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.adapter.populate();
self._setStartValue();
self.fireEvent(BI.SingleSelectInsertList.EVENT_CHANGE);
}
}, {
eventName: BI.Searcher.EVENT_SEARCHING,
@ -106339,69 +106243,6 @@ BI.SingleSelectInsertList = BI.inherit(BI.Single, {
}
},
_joinAll: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
o.itemsCreator({
type: BI.SingleSelectInsertList.REQ_GET_ALL_DATA,
keyword: self.trigger.getKeyword()
}, function (ob) {
var items = BI.map(ob.items, "value");
if (self.storeValue.type === res.type) {
var change = false;
var map = self._makeMap(self.storeValue.value);
BI.each(items, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (self.storeValue.value = BI.values(map));
callback();
return;
}
var selectedMap = self._makeMap(self.storeValue.value);
var notSelectedMap = self._makeMap(res.value);
var newItems = [];
BI.each(items, function (i, item) {
if (BI.isNotNull(selectedMap[items[i]])) {
delete selectedMap[items[i]];
}
if (BI.isNull(notSelectedMap[items[i]])) {
newItems.push(item);
}
});
self.storeValue.value = newItems.concat(BI.values(selectedMap));
callback();
});
},
_join: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this._assertValue(this.storeValue);
if (this.storeValue.type === res.type) {
var map = this._makeMap(this.storeValue.value);
BI.each(res.value, function (i, v) {
if (!map[v]) {
self.storeValue.value.push(v);
map[v] = v;
}
});
var change = false;
BI.each(res.assist, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (this.storeValue.value = BI.values(map));
callback();
return;
}
this._joinAll(res, callback);
},
_setStartValue: function (value) {
this._startValue = value;
this.adapter.setStartValue(value);
@ -106714,44 +106555,21 @@ BI.SingleSelectSearchLoader = BI.inherit(BI.Widget, {
}
},
itemsCreator: function (op, callback) {
self.storeValue && (op = BI.extend(op || {}, {
var startValue = self._startValue;
BI.isNotNull(self.storeValue) && (op = BI.extend(op || {}, {
selectedValues: [self.storeValue]
}));
opts.itemsCreator(op, function (ob) {
var keyword = ob.keyword = opts.keywordGetter();
hasNext = ob.hasNext;
var firstItems = [];
if (op.times === 1 && self.storeValue) {
var json = BI.map([self.storeValue], function (i, v) {
var txt = opts.valueFormatter(v) || v;
return {
text: txt,
value: v,
title: txt,
selected: false
};
});
if (op.times === 1 && BI.isNotNull(self.storeValue)) {
var json = self._filterValues(self.storeValue);
firstItems = self._createItems(json);
}
if(keyword) {
var flag = false;
for(var i = 0; i < ob.items.length; i++) {
if(BI.contains(ob.items[i], keyword)) {
flag = true;
}
}
if(!flag) {
var preItems = self._createItems([{
text: keyword,
value: keyword,
title: keyword,
selected: false
}]);
firstItems = firstItems.concat(preItems);
}
}
callback(firstItems.concat(self._createItems(ob.items)), keyword);
callback(firstItems.concat(self._createItems(ob.items)), keyword || "");
if (op.times === 1 && self.storeValue) {
BI.isKey(startValue) && (self.storeValue = startValue);
self.setValue(self.storeValue);
}
});
@ -106782,8 +106600,8 @@ BI.SingleSelectSearchLoader = BI.inherit(BI.Widget, {
_filterValues: function (src) {
var o = this.options;
var keyword = o.keywordGetter();
var values = BI.deepClone(src.value) || [];
var newValues = BI.map(values, function (i, v) {
var values = src || [];
var newValues = BI.map(BI.isArray(values) ? values : [values], function (i, v) {
return {
text: o.valueFormatter(v) || v,
value: v
@ -106956,7 +106774,7 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
BI.isKey(self._startValue) && (self.storeValue = self._startValue);
self.trigger.getSearcher().setState(self.storeValue);
};
this.storeValue = "";
this.storeValue = o.value;
// 标记正在请求数据
this.requesting = false;
@ -106981,30 +106799,25 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
}
callback.apply(self, arguments);
});
}
},
value: this.storeValue
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_START, function () {
self._setStartValue("");
self._setStartValue();
this.getSearcher().setValue(self.storeValue);
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_STOP, function () {
self._setStartValue("");
self._setStartValue();
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_PAUSE, function () {
if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue("");
});
}
var keyword = this.getSearcher().getKeyword();
self.storeValue = keyword;
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue();
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_SEARCHING, function (keywords) {
var last = BI.last(keywords);
@ -107015,7 +106828,7 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
self.combo.setValue(self.storeValue);
assertShowValue();
self.combo.populate();
self._setStartValue("");
self._setStartValue();
} else {
self.combo.setValue(self.storeValue);
assertShowValue();
@ -107027,6 +106840,7 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
this.trigger.on(BI.SingleSelectTrigger.EVENT_CHANGE, function (value, obj) {
self.storeValue = this.getValue();
assertShowValue();
self._defaultState();
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_COUNTER_CLICK, function () {
if (!self.combo.isViewVisible()) {
@ -107067,7 +106881,8 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
},
hideChecker: function (e) {
return triggerBtn.element.find(e.target).length === 0;
}
},
value: o.value
});
this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () {
@ -107125,7 +106940,6 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
},
_assertValue: function (val) {
val || (val = "");
},
_makeMap: function (values) {
@ -107155,59 +106969,10 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
}
},
_joinAll: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this.requesting = true;
o.itemsCreator({
type: BI.SingleSelectInsertCombo.REQ_GET_ALL_DATA,
keywords: [this.trigger.getKey()]
}, function (ob) {
var items = BI.map(ob.items, "value");
if (self.storeValue.type === res.type) {
var change = false;
var map = self._makeMap(self.storeValue.value);
BI.each(items, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (self.storeValue.value = BI.values(map));
self._adjust(callback);
return;
}
var selectedMap = self._makeMap(self.storeValue.value);
var notSelectedMap = self._makeMap(res.value);
var newItems = [];
BI.each(items, function (i, item) {
if (BI.isNotNull(selectedMap[items[i]])) {
delete selectedMap[items[i]];
}
if (BI.isNull(notSelectedMap[items[i]])) {
newItems.push(item);
}
});
self.storeValue.value = newItems.concat(BI.values(selectedMap));
self._adjust(callback);
});
},
_adjust: function (callback) {
var self = this, o = this.options;
if (!this._count) {
o.itemsCreator({
type: BI.SingleSelectInsertCombo.REQ_GET_DATA_LENGTH
}, function (res) {
self._count = res.count;
adjust();
callback();
});
} else {
adjust();
callback();
}
adjust();
callback();
function adjust () {
if (self.wants2Quit === true) {
@ -107218,39 +106983,13 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
}
},
_join: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this._assertValue(this.storeValue);
if (this.storeValue.type === res.type) {
var map = this._makeMap(this.storeValue.value);
BI.each(res.value, function (i, v) {
if (!map[v]) {
self.storeValue.value.push(v);
map[v] = v;
}
});
var change = false;
BI.each(res.assist, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (this.storeValue.value = BI.values(map));
self._adjust(callback);
return;
}
this._joinAll(res, callback);
},
_setStartValue: function (value) {
this._startValue = value;
this.popup.setStartValue(value);
},
setValue: function (v) {
this.storeValue = v || "";
this.storeValue = v;
this._assertValue(this.storeValue);
this.combo.setValue(this.storeValue);
},
@ -107260,7 +106999,6 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
},
populate: function () {
this._count = null;
this.combo.populate.apply(this.combo, arguments);
}
});
@ -107315,7 +107053,8 @@ BI.SingleSelectTrigger = BI.inherit(BI.Trigger, {
valueFormatter: o.valueFormatter,
popup: {},
adapter: o.adapter,
masker: o.masker
masker: o.masker,
value: o.value
});
this.searcher.on(BI.SingleSelectSearcher.EVENT_START, function () {
self.fireEvent(BI.SingleSelectTrigger.EVENT_START);
@ -107430,9 +107169,9 @@ BI.SingleSelectSearcher = BI.inherit(BI.Widget, {
op.keyword = self.editor.getValue();
this.setKeyword(op.keyword);
o.itemsCreator(op, callback);
}
},
value: o.value
}, o.popup),
adapter: o.adapter,
masker: o.masker
});
@ -107455,6 +107194,9 @@ BI.SingleSelectSearcher = BI.inherit(BI.Widget, {
var keywords = this.getKeywords();
self.fireEvent(BI.SingleSelectSearcher.EVENT_SEARCHING, keywords);
});
if(BI.isNotNull(o.value)) {
this.setState(o.value);
}
},
adjustView: function () {

42
dist/fineui.min.js vendored

File diff suppressed because one or more lines are too long

540
dist/widget.js vendored

@ -9783,14 +9783,14 @@ BI.DisplaySelectedList = BI.inherit(BI.Pane, {
BI.shortcut("bi.display_selected_list", BI.DisplaySelectedList);/**
*
* @class BI.MultiSelectInsertCombo
* @class BI.MultiSelectCombo
* @extends BI.Single
*/
BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
BI.MultiSelectCombo = BI.inherit(BI.Single, {
_defaultConfig: function () {
return BI.extend(BI.MultiSelectInsertCombo.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-multi-select-insert-combo",
return BI.extend(BI.MultiSelectCombo.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-multi-select-combo",
itemsCreator: BI.emptyFn,
valueFormatter: BI.emptyFn,
height: 28
@ -9798,7 +9798,7 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
},
_init: function () {
BI.MultiSelectInsertCombo.superclass._init.apply(this, arguments);
BI.MultiSelectCombo.superclass._init.apply(this, arguments);
var self = this, o = this.options;
var assertShowValue = function () {
@ -9807,6 +9807,9 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
self.trigger.getCounter().setButtonChecked(self.storeValue);
};
this.storeValue = o.value || {};
this._assertValue(this.storeValue);
// 标记正在请求数据
this.requesting = false;
@ -9832,7 +9835,7 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
callback.apply(self, arguments);
});
},
value: o.value
value: this.storeValue
});
this.trigger.on(BI.MultiSelectTrigger.EVENT_START, function () {
@ -9843,23 +9846,19 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
self._setStartValue("");
});
this.trigger.on(BI.MultiSelectTrigger.EVENT_PAUSE, function () {
// if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
// 如果在不选的状态下直接把该值添加进来
if (self.storeValue.type === BI.Selection.Multi) {
self.storeValue.value.pushDistinct(keyword);
}
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue("");
});
// }
if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue("");
});
}
});
this.trigger.on(BI.MultiSelectTrigger.EVENT_SEARCHING, function (keywords) {
var last = BI.last(keywords);
@ -9961,7 +9960,7 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
if (self.requesting === true) {
self.wants2Quit = true;
} else {
self.fireEvent(BI.MultiSelectInsertCombo.EVENT_CONFIRM);
self.fireEvent(BI.MultiSelectCombo.EVENT_CONFIRM);
}
});
@ -10017,7 +10016,7 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
this._assertValue(this.storeValue);
this.requesting = true;
o.itemsCreator({
type: BI.MultiSelectInsertCombo.REQ_GET_ALL_DATA,
type: BI.MultiSelectCombo.REQ_GET_ALL_DATA,
keywords: keywords
}, function (ob) {
var values = BI.map(ob.items, "value");
@ -10040,7 +10039,7 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
this._assertValue(res);
this.requesting = true;
o.itemsCreator({
type: BI.MultiSelectInsertCombo.REQ_GET_ALL_DATA,
type: BI.MultiSelectCombo.REQ_GET_ALL_DATA,
keywords: [this.trigger.getKey()]
}, function (ob) {
var items = BI.map(ob.items, "value");
@ -10075,11 +10074,34 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
_adjust: function (callback) {
var self = this, o = this.options;
adjust();
callback();
if (!this._count) {
o.itemsCreator({
type: BI.MultiSelectCombo.REQ_GET_DATA_LENGTH
}, function (res) {
self._count = res.count;
adjust();
callback();
});
} else {
adjust();
callback();
}
function adjust () {
if (self.storeValue.type === BI.Selection.All && self.storeValue.value.length >= self._count) {
self.storeValue = {
type: BI.Selection.Multi,
value: []
};
} else if (self.storeValue.type === BI.Selection.Multi && self.storeValue.value.length >= self._count) {
self.storeValue = {
type: BI.Selection.All,
value: []
};
}
if (self.wants2Quit === true) {
self.fireEvent(BI.MultiSelectInsertCombo.EVENT_CONFIRM);
self.fireEvent(BI.MultiSelectCombo.EVENT_CONFIRM);
self.wants2Quit = false;
}
self.requesting = false;
@ -10128,27 +10150,28 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
},
populate: function () {
this._count = null;
this.combo.populate.apply(this.combo, arguments);
}
});
BI.extend(BI.MultiSelectInsertCombo, {
BI.extend(BI.MultiSelectCombo, {
REQ_GET_DATA_LENGTH: 1,
REQ_GET_ALL_DATA: -1
});
BI.MultiSelectInsertCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.MultiSelectCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.shortcut("bi.multi_select_insert_combo", BI.MultiSelectInsertCombo);/**
BI.shortcut("bi.multi_select_combo", BI.MultiSelectCombo);/**
*
* @class BI.MultiSelectCombo
* @class BI.MultiSelectInsertCombo
* @extends BI.Single
*/
BI.MultiSelectCombo = BI.inherit(BI.Single, {
BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
_defaultConfig: function () {
return BI.extend(BI.MultiSelectCombo.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-multi-select-combo",
return BI.extend(BI.MultiSelectInsertCombo.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-multi-select-insert-combo",
itemsCreator: BI.emptyFn,
valueFormatter: BI.emptyFn,
height: 28
@ -10156,7 +10179,7 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
},
_init: function () {
BI.MultiSelectCombo.superclass._init.apply(this, arguments);
BI.MultiSelectInsertCombo.superclass._init.apply(this, arguments);
var self = this, o = this.options;
var assertShowValue = function () {
@ -10165,9 +10188,6 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
self.trigger.getCounter().setButtonChecked(self.storeValue);
};
this.storeValue = o.value || {};
this._assertValue(this.storeValue);
// 标记正在请求数据
this.requesting = false;
@ -10193,7 +10213,7 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
callback.apply(self, arguments);
});
},
value: this.storeValue
value: o.value
});
this.trigger.on(BI.MultiSelectTrigger.EVENT_START, function () {
@ -10204,19 +10224,23 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
self._setStartValue("");
});
this.trigger.on(BI.MultiSelectTrigger.EVENT_PAUSE, function () {
if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue("");
});
}
// if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
// 如果在不选的状态下直接把该值添加进来
if (self.storeValue.type === BI.Selection.Multi) {
self.storeValue.value.pushDistinct(keyword);
}
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue("");
});
// }
});
this.trigger.on(BI.MultiSelectTrigger.EVENT_SEARCHING, function (keywords) {
var last = BI.last(keywords);
@ -10318,7 +10342,7 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
if (self.requesting === true) {
self.wants2Quit = true;
} else {
self.fireEvent(BI.MultiSelectCombo.EVENT_CONFIRM);
self.fireEvent(BI.MultiSelectInsertCombo.EVENT_CONFIRM);
}
});
@ -10374,7 +10398,7 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
this._assertValue(this.storeValue);
this.requesting = true;
o.itemsCreator({
type: BI.MultiSelectCombo.REQ_GET_ALL_DATA,
type: BI.MultiSelectInsertCombo.REQ_GET_ALL_DATA,
keywords: keywords
}, function (ob) {
var values = BI.map(ob.items, "value");
@ -10397,7 +10421,7 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
this._assertValue(res);
this.requesting = true;
o.itemsCreator({
type: BI.MultiSelectCombo.REQ_GET_ALL_DATA,
type: BI.MultiSelectInsertCombo.REQ_GET_ALL_DATA,
keywords: [this.trigger.getKey()]
}, function (ob) {
var items = BI.map(ob.items, "value");
@ -10432,34 +10456,11 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
_adjust: function (callback) {
var self = this, o = this.options;
if (!this._count) {
o.itemsCreator({
type: BI.MultiSelectCombo.REQ_GET_DATA_LENGTH
}, function (res) {
self._count = res.count;
adjust();
callback();
});
} else {
adjust();
callback();
}
adjust();
callback();
function adjust () {
if (self.storeValue.type === BI.Selection.All && self.storeValue.value.length >= self._count) {
self.storeValue = {
type: BI.Selection.Multi,
value: []
};
} else if (self.storeValue.type === BI.Selection.Multi && self.storeValue.value.length >= self._count) {
self.storeValue = {
type: BI.Selection.All,
value: []
};
}
if (self.wants2Quit === true) {
self.fireEvent(BI.MultiSelectCombo.EVENT_CONFIRM);
self.fireEvent(BI.MultiSelectInsertCombo.EVENT_CONFIRM);
self.wants2Quit = false;
}
self.requesting = false;
@ -10508,19 +10509,18 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
},
populate: function () {
this._count = null;
this.combo.populate.apply(this.combo, arguments);
}
});
BI.extend(BI.MultiSelectCombo, {
BI.extend(BI.MultiSelectInsertCombo, {
REQ_GET_DATA_LENGTH: 1,
REQ_GET_ALL_DATA: -1
});
BI.MultiSelectCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.MultiSelectInsertCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.shortcut("bi.multi_select_combo", BI.MultiSelectCombo);/**
BI.shortcut("bi.multi_select_insert_combo", BI.MultiSelectInsertCombo);/**
*
* @class BI.MultiSelectInsertCombo
* @extends BI.Single
@ -17241,19 +17241,11 @@ BI.SingleSelectSearchLoader = BI.inherit(BI.Widget, {
var keyword = ob.keyword = opts.keywordGetter();
hasNext = ob.hasNext;
var firstItems = [];
if (op.times === 1 && self.storeValue) {
var json = BI.map([self.storeValue], function (i, v) {
var txt = opts.valueFormatter(v) || v;
return {
text: txt,
value: v,
title: txt,
selected: false
};
});
if (op.times === 1 && BI.isNotNull(self.storeValue)) {
var json = self._filterValues(self.storeValue);
firstItems = self._createItems(json);
}
callback(firstItems.concat(self._createItems(ob.items)), keyword);
callback(firstItems.concat(self._createItems(ob.items)), keyword || "");
if (op.times === 1 && self.storeValue) {
self.setValue(self.storeValue);
}
@ -17285,8 +17277,8 @@ BI.SingleSelectSearchLoader = BI.inherit(BI.Widget, {
_filterValues: function (src) {
var o = this.options;
var keyword = o.keywordGetter();
var values = BI.deepClone(src.value) || [];
var newValues = BI.map(values, function (i, v) {
var values = src || [];
var newValues = BI.map(BI.isArray(values) ? values : [values], function (i, v) {
return {
text: o.valueFormatter(v) || v,
value: v
@ -17499,16 +17491,11 @@ BI.SingleSelectCombo = BI.inherit(BI.Single, {
this.trigger.on(BI.SingleSelectTrigger.EVENT_PAUSE, function () {
if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue();
});
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue();
}
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_SEARCHING, function (keywords) {
@ -17660,44 +17647,6 @@ BI.SingleSelectCombo = BI.inherit(BI.Single, {
}
},
_joinAll: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this.requesting = true;
o.itemsCreator({
type: BI.SingleSelectCombo.REQ_GET_ALL_DATA,
keywords: [this.trigger.getKey()]
}, function (ob) {
var items = BI.map(ob.items, "value");
if (self.storeValue.type === res.type) {
var change = false;
var map = self._makeMap(self.storeValue.value);
BI.each(items, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (self.storeValue.value = BI.values(map));
self._adjust(callback);
return;
}
var selectedMap = self._makeMap(self.storeValue.value);
var notSelectedMap = self._makeMap(res.value);
var newItems = [];
BI.each(items, function (i, item) {
if (BI.isNotNull(selectedMap[items[i]])) {
delete selectedMap[items[i]];
}
if (BI.isNull(notSelectedMap[items[i]])) {
newItems.push(item);
}
});
self.storeValue.value = newItems.concat(BI.values(selectedMap));
self._adjust(callback);
});
},
_adjust: function (callback) {
var self = this, o = this.options;
if (!this._count) {
@ -17723,32 +17672,6 @@ BI.SingleSelectCombo = BI.inherit(BI.Single, {
}
},
_join: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this._assertValue(this.storeValue);
if (this.storeValue.type === res.type) {
var map = this._makeMap(this.storeValue.value);
BI.each(res.value, function (i, v) {
if (!map[v]) {
self.storeValue.value.push(v);
map[v] = v;
}
});
var change = false;
BI.each(res.assist, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (this.storeValue.value = BI.values(map));
self._adjust(callback);
return;
}
this._joinAll(res, callback);
},
_setStartValue: function (value) {
this._startValue = value;
this.popup.setStartValue(value);
@ -18006,7 +17929,7 @@ BI.SingleSelectLoader = BI.inherit(BI.Widget, {
var self = this, opts = this.options;
var hasNext = false;
this.storeValue = opts.value;
this.button_group = BI.createWidget({
type: "bi.single_select_list",
element: this,
@ -18334,7 +18257,7 @@ BI.SingleSelectInsertList = BI.inherit(BI.Single, {
this.storeValue = o.value;
var assertShowValue = function () {
BI.isKey(self._startValue) && self.storeValue.value[self.storeValue.type === BI.Selection.All ? "remove" : "pushDistinct"](self._startValue);
BI.isKey(self._startValue) && (self.storeValue = self._startValue);
// self.trigger.setValue(self.storeValue);
};
@ -18403,33 +18326,14 @@ BI.SingleSelectInsertList = BI.inherit(BI.Single, {
eventName: BI.Searcher.EVENT_PAUSE,
action: function () {
var keyword = this.getKeyword();
if (this.hasMatched()) {
self._join({
type: BI.Selection.Single,
value: [keyword]
}, function () {
if (self.storeValue.type === BI.Selection.Single) {
self.storeValue.value.pushDistinct(keyword);
}
self._showAdapter();
self.adapter.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.adapter.populate();
self._setStartValue();
self.fireEvent(BI.SingleSelectInsertList.EVENT_CHANGE);
});
} else {
if (self.storeValue.type === BI.Selection.Single) {
self.storeValue.value.pushDistinct(keyword);
}
self._showAdapter();
self.adapter.setValue(self.storeValue);
self.adapter.populate();
if (self.storeValue.type === BI.Selection.Single) {
self.fireEvent(BI.SingleSelectInsertList.EVENT_CHANGE);
}
}
self.storeValue = keyword;
self._showAdapter();
self.adapter.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.adapter.populate();
self._setStartValue();
self.fireEvent(BI.SingleSelectInsertList.EVENT_CHANGE);
}
}, {
eventName: BI.Searcher.EVENT_SEARCHING,
@ -18529,69 +18433,6 @@ BI.SingleSelectInsertList = BI.inherit(BI.Single, {
}
},
_joinAll: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
o.itemsCreator({
type: BI.SingleSelectInsertList.REQ_GET_ALL_DATA,
keyword: self.trigger.getKeyword()
}, function (ob) {
var items = BI.map(ob.items, "value");
if (self.storeValue.type === res.type) {
var change = false;
var map = self._makeMap(self.storeValue.value);
BI.each(items, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (self.storeValue.value = BI.values(map));
callback();
return;
}
var selectedMap = self._makeMap(self.storeValue.value);
var notSelectedMap = self._makeMap(res.value);
var newItems = [];
BI.each(items, function (i, item) {
if (BI.isNotNull(selectedMap[items[i]])) {
delete selectedMap[items[i]];
}
if (BI.isNull(notSelectedMap[items[i]])) {
newItems.push(item);
}
});
self.storeValue.value = newItems.concat(BI.values(selectedMap));
callback();
});
},
_join: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this._assertValue(this.storeValue);
if (this.storeValue.type === res.type) {
var map = this._makeMap(this.storeValue.value);
BI.each(res.value, function (i, v) {
if (!map[v]) {
self.storeValue.value.push(v);
map[v] = v;
}
});
var change = false;
BI.each(res.assist, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (this.storeValue.value = BI.values(map));
callback();
return;
}
this._joinAll(res, callback);
},
_setStartValue: function (value) {
this._startValue = value;
this.adapter.setStartValue(value);
@ -18904,44 +18745,21 @@ BI.SingleSelectSearchLoader = BI.inherit(BI.Widget, {
}
},
itemsCreator: function (op, callback) {
self.storeValue && (op = BI.extend(op || {}, {
var startValue = self._startValue;
BI.isNotNull(self.storeValue) && (op = BI.extend(op || {}, {
selectedValues: [self.storeValue]
}));
opts.itemsCreator(op, function (ob) {
var keyword = ob.keyword = opts.keywordGetter();
hasNext = ob.hasNext;
var firstItems = [];
if (op.times === 1 && self.storeValue) {
var json = BI.map([self.storeValue], function (i, v) {
var txt = opts.valueFormatter(v) || v;
return {
text: txt,
value: v,
title: txt,
selected: false
};
});
if (op.times === 1 && BI.isNotNull(self.storeValue)) {
var json = self._filterValues(self.storeValue);
firstItems = self._createItems(json);
}
if(keyword) {
var flag = false;
for(var i = 0; i < ob.items.length; i++) {
if(BI.contains(ob.items[i], keyword)) {
flag = true;
}
}
if(!flag) {
var preItems = self._createItems([{
text: keyword,
value: keyword,
title: keyword,
selected: false
}]);
firstItems = firstItems.concat(preItems);
}
}
callback(firstItems.concat(self._createItems(ob.items)), keyword);
callback(firstItems.concat(self._createItems(ob.items)), keyword || "");
if (op.times === 1 && self.storeValue) {
BI.isKey(startValue) && (self.storeValue = startValue);
self.setValue(self.storeValue);
}
});
@ -18972,8 +18790,8 @@ BI.SingleSelectSearchLoader = BI.inherit(BI.Widget, {
_filterValues: function (src) {
var o = this.options;
var keyword = o.keywordGetter();
var values = BI.deepClone(src.value) || [];
var newValues = BI.map(values, function (i, v) {
var values = src || [];
var newValues = BI.map(BI.isArray(values) ? values : [values], function (i, v) {
return {
text: o.valueFormatter(v) || v,
value: v
@ -19146,7 +18964,7 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
BI.isKey(self._startValue) && (self.storeValue = self._startValue);
self.trigger.getSearcher().setState(self.storeValue);
};
this.storeValue = "";
this.storeValue = o.value;
// 标记正在请求数据
this.requesting = false;
@ -19171,30 +18989,25 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
}
callback.apply(self, arguments);
});
}
},
value: this.storeValue
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_START, function () {
self._setStartValue("");
self._setStartValue();
this.getSearcher().setValue(self.storeValue);
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_STOP, function () {
self._setStartValue("");
self._setStartValue();
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_PAUSE, function () {
if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue("");
});
}
var keyword = this.getSearcher().getKeyword();
self.storeValue = keyword;
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue();
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_SEARCHING, function (keywords) {
var last = BI.last(keywords);
@ -19205,7 +19018,7 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
self.combo.setValue(self.storeValue);
assertShowValue();
self.combo.populate();
self._setStartValue("");
self._setStartValue();
} else {
self.combo.setValue(self.storeValue);
assertShowValue();
@ -19217,6 +19030,7 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
this.trigger.on(BI.SingleSelectTrigger.EVENT_CHANGE, function (value, obj) {
self.storeValue = this.getValue();
assertShowValue();
self._defaultState();
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_COUNTER_CLICK, function () {
if (!self.combo.isViewVisible()) {
@ -19257,7 +19071,8 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
},
hideChecker: function (e) {
return triggerBtn.element.find(e.target).length === 0;
}
},
value: o.value
});
this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () {
@ -19315,7 +19130,6 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
},
_assertValue: function (val) {
val || (val = "");
},
_makeMap: function (values) {
@ -19345,59 +19159,10 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
}
},
_joinAll: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this.requesting = true;
o.itemsCreator({
type: BI.SingleSelectInsertCombo.REQ_GET_ALL_DATA,
keywords: [this.trigger.getKey()]
}, function (ob) {
var items = BI.map(ob.items, "value");
if (self.storeValue.type === res.type) {
var change = false;
var map = self._makeMap(self.storeValue.value);
BI.each(items, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (self.storeValue.value = BI.values(map));
self._adjust(callback);
return;
}
var selectedMap = self._makeMap(self.storeValue.value);
var notSelectedMap = self._makeMap(res.value);
var newItems = [];
BI.each(items, function (i, item) {
if (BI.isNotNull(selectedMap[items[i]])) {
delete selectedMap[items[i]];
}
if (BI.isNull(notSelectedMap[items[i]])) {
newItems.push(item);
}
});
self.storeValue.value = newItems.concat(BI.values(selectedMap));
self._adjust(callback);
});
},
_adjust: function (callback) {
var self = this, o = this.options;
if (!this._count) {
o.itemsCreator({
type: BI.SingleSelectInsertCombo.REQ_GET_DATA_LENGTH
}, function (res) {
self._count = res.count;
adjust();
callback();
});
} else {
adjust();
callback();
}
adjust();
callback();
function adjust () {
if (self.wants2Quit === true) {
@ -19408,39 +19173,13 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
}
},
_join: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this._assertValue(this.storeValue);
if (this.storeValue.type === res.type) {
var map = this._makeMap(this.storeValue.value);
BI.each(res.value, function (i, v) {
if (!map[v]) {
self.storeValue.value.push(v);
map[v] = v;
}
});
var change = false;
BI.each(res.assist, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (this.storeValue.value = BI.values(map));
self._adjust(callback);
return;
}
this._joinAll(res, callback);
},
_setStartValue: function (value) {
this._startValue = value;
this.popup.setStartValue(value);
},
setValue: function (v) {
this.storeValue = v || "";
this.storeValue = v;
this._assertValue(this.storeValue);
this.combo.setValue(this.storeValue);
},
@ -19450,7 +19189,6 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
},
populate: function () {
this._count = null;
this.combo.populate.apply(this.combo, arguments);
}
});
@ -19505,7 +19243,8 @@ BI.SingleSelectTrigger = BI.inherit(BI.Trigger, {
valueFormatter: o.valueFormatter,
popup: {},
adapter: o.adapter,
masker: o.masker
masker: o.masker,
value: o.value
});
this.searcher.on(BI.SingleSelectSearcher.EVENT_START, function () {
self.fireEvent(BI.SingleSelectTrigger.EVENT_START);
@ -19620,9 +19359,9 @@ BI.SingleSelectSearcher = BI.inherit(BI.Widget, {
op.keyword = self.editor.getValue();
this.setKeyword(op.keyword);
o.itemsCreator(op, callback);
}
},
value: o.value
}, o.popup),
adapter: o.adapter,
masker: o.masker
});
@ -19645,6 +19384,9 @@ BI.SingleSelectSearcher = BI.inherit(BI.Widget, {
var keywords = this.getKeywords();
self.fireEvent(BI.SingleSelectSearcher.EVENT_SEARCHING, keywords);
});
if(BI.isNotNull(o.value)) {
this.setState(o.value);
}
},
adjustView: function () {

0
src/widget/multiselect/multiselect..insert.combo.js → src/widget/multiselect/multiselect.insert.combo.js

18
src/widget/singleselect/search/singleselect.search.loader.js

@ -58,19 +58,11 @@ BI.SingleSelectSearchLoader = BI.inherit(BI.Widget, {
var keyword = ob.keyword = opts.keywordGetter();
hasNext = ob.hasNext;
var firstItems = [];
if (op.times === 1 && self.storeValue) {
var json = BI.map([self.storeValue], function (i, v) {
var txt = opts.valueFormatter(v) || v;
return {
text: txt,
value: v,
title: txt,
selected: false
};
});
if (op.times === 1 && BI.isNotNull(self.storeValue)) {
var json = self._filterValues(self.storeValue);
firstItems = self._createItems(json);
}
callback(firstItems.concat(self._createItems(ob.items)), keyword);
callback(firstItems.concat(self._createItems(ob.items)), keyword || "");
if (op.times === 1 && self.storeValue) {
self.setValue(self.storeValue);
}
@ -102,8 +94,8 @@ BI.SingleSelectSearchLoader = BI.inherit(BI.Widget, {
_filterValues: function (src) {
var o = this.options;
var keyword = o.keywordGetter();
var values = BI.deepClone(src.value) || [];
var newValues = BI.map(values, function (i, v) {
var values = src || [];
var newValues = BI.map(BI.isArray(values) ? values : [values], function (i, v) {
return {
text: o.valueFormatter(v) || v,
value: v

79
src/widget/singleselect/singleselect.combo.js

@ -61,16 +61,11 @@ BI.SingleSelectCombo = BI.inherit(BI.Single, {
this.trigger.on(BI.SingleSelectTrigger.EVENT_PAUSE, function () {
if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue();
});
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue();
}
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_SEARCHING, function (keywords) {
@ -222,44 +217,6 @@ BI.SingleSelectCombo = BI.inherit(BI.Single, {
}
},
_joinAll: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this.requesting = true;
o.itemsCreator({
type: BI.SingleSelectCombo.REQ_GET_ALL_DATA,
keywords: [this.trigger.getKey()]
}, function (ob) {
var items = BI.map(ob.items, "value");
if (self.storeValue.type === res.type) {
var change = false;
var map = self._makeMap(self.storeValue.value);
BI.each(items, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (self.storeValue.value = BI.values(map));
self._adjust(callback);
return;
}
var selectedMap = self._makeMap(self.storeValue.value);
var notSelectedMap = self._makeMap(res.value);
var newItems = [];
BI.each(items, function (i, item) {
if (BI.isNotNull(selectedMap[items[i]])) {
delete selectedMap[items[i]];
}
if (BI.isNull(notSelectedMap[items[i]])) {
newItems.push(item);
}
});
self.storeValue.value = newItems.concat(BI.values(selectedMap));
self._adjust(callback);
});
},
_adjust: function (callback) {
var self = this, o = this.options;
if (!this._count) {
@ -285,32 +242,6 @@ BI.SingleSelectCombo = BI.inherit(BI.Single, {
}
},
_join: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this._assertValue(this.storeValue);
if (this.storeValue.type === res.type) {
var map = this._makeMap(this.storeValue.value);
BI.each(res.value, function (i, v) {
if (!map[v]) {
self.storeValue.value.push(v);
map[v] = v;
}
});
var change = false;
BI.each(res.assist, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (this.storeValue.value = BI.values(map));
self._adjust(callback);
return;
}
this._joinAll(res, callback);
},
_setStartValue: function (value) {
this._startValue = value;
this.popup.setStartValue(value);

2
src/widget/singleselect/singleselect.loader.js

@ -26,7 +26,7 @@ BI.SingleSelectLoader = BI.inherit(BI.Widget, {
var self = this, opts = this.options;
var hasNext = false;
this.storeValue = opts.value;
this.button_group = BI.createWidget({
type: "bi.single_select_list",
element: this,

100
src/widget/singleselect/singleselectlist.insert.js

@ -18,7 +18,7 @@ BI.SingleSelectInsertList = BI.inherit(BI.Single, {
this.storeValue = o.value;
var assertShowValue = function () {
BI.isKey(self._startValue) && self.storeValue.value[self.storeValue.type === BI.Selection.All ? "remove" : "pushDistinct"](self._startValue);
BI.isKey(self._startValue) && (self.storeValue = self._startValue);
// self.trigger.setValue(self.storeValue);
};
@ -87,33 +87,14 @@ BI.SingleSelectInsertList = BI.inherit(BI.Single, {
eventName: BI.Searcher.EVENT_PAUSE,
action: function () {
var keyword = this.getKeyword();
if (this.hasMatched()) {
self._join({
type: BI.Selection.Single,
value: [keyword]
}, function () {
if (self.storeValue.type === BI.Selection.Single) {
self.storeValue.value.pushDistinct(keyword);
}
self._showAdapter();
self.adapter.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.adapter.populate();
self._setStartValue();
self.fireEvent(BI.SingleSelectInsertList.EVENT_CHANGE);
});
} else {
if (self.storeValue.type === BI.Selection.Single) {
self.storeValue.value.pushDistinct(keyword);
}
self._showAdapter();
self.adapter.setValue(self.storeValue);
self.adapter.populate();
if (self.storeValue.type === BI.Selection.Single) {
self.fireEvent(BI.SingleSelectInsertList.EVENT_CHANGE);
}
}
self.storeValue = keyword;
self._showAdapter();
self.adapter.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.adapter.populate();
self._setStartValue();
self.fireEvent(BI.SingleSelectInsertList.EVENT_CHANGE);
}
}, {
eventName: BI.Searcher.EVENT_SEARCHING,
@ -213,69 +194,6 @@ BI.SingleSelectInsertList = BI.inherit(BI.Single, {
}
},
_joinAll: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
o.itemsCreator({
type: BI.SingleSelectInsertList.REQ_GET_ALL_DATA,
keyword: self.trigger.getKeyword()
}, function (ob) {
var items = BI.map(ob.items, "value");
if (self.storeValue.type === res.type) {
var change = false;
var map = self._makeMap(self.storeValue.value);
BI.each(items, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (self.storeValue.value = BI.values(map));
callback();
return;
}
var selectedMap = self._makeMap(self.storeValue.value);
var notSelectedMap = self._makeMap(res.value);
var newItems = [];
BI.each(items, function (i, item) {
if (BI.isNotNull(selectedMap[items[i]])) {
delete selectedMap[items[i]];
}
if (BI.isNull(notSelectedMap[items[i]])) {
newItems.push(item);
}
});
self.storeValue.value = newItems.concat(BI.values(selectedMap));
callback();
});
},
_join: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this._assertValue(this.storeValue);
if (this.storeValue.type === res.type) {
var map = this._makeMap(this.storeValue.value);
BI.each(res.value, function (i, v) {
if (!map[v]) {
self.storeValue.value.push(v);
map[v] = v;
}
});
var change = false;
BI.each(res.assist, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (this.storeValue.value = BI.values(map));
callback();
return;
}
this._joinAll(res, callback);
},
_setStartValue: function (value) {
this._startValue = value;
this.adapter.setStartValue(value);

39
src/widget/singleselectaddsearch/search/singleselect.search.loader.js

@ -50,44 +50,21 @@ BI.SingleSelectSearchLoader = BI.inherit(BI.Widget, {
}
},
itemsCreator: function (op, callback) {
self.storeValue && (op = BI.extend(op || {}, {
var startValue = self._startValue;
BI.isNotNull(self.storeValue) && (op = BI.extend(op || {}, {
selectedValues: [self.storeValue]
}));
opts.itemsCreator(op, function (ob) {
var keyword = ob.keyword = opts.keywordGetter();
hasNext = ob.hasNext;
var firstItems = [];
if (op.times === 1 && self.storeValue) {
var json = BI.map([self.storeValue], function (i, v) {
var txt = opts.valueFormatter(v) || v;
return {
text: txt,
value: v,
title: txt,
selected: false
};
});
if (op.times === 1 && BI.isNotNull(self.storeValue)) {
var json = self._filterValues(self.storeValue);
firstItems = self._createItems(json);
}
if(keyword) {
var flag = false;
for(var i = 0; i < ob.items.length; i++) {
if(BI.contains(ob.items[i], keyword)) {
flag = true;
}
}
if(!flag) {
var preItems = self._createItems([{
text: keyword,
value: keyword,
title: keyword,
selected: false
}]);
firstItems = firstItems.concat(preItems);
}
}
callback(firstItems.concat(self._createItems(ob.items)), keyword);
callback(firstItems.concat(self._createItems(ob.items)), keyword || "");
if (op.times === 1 && self.storeValue) {
BI.isKey(startValue) && (self.storeValue = startValue);
self.setValue(self.storeValue);
}
});
@ -118,8 +95,8 @@ BI.SingleSelectSearchLoader = BI.inherit(BI.Widget, {
_filterValues: function (src) {
var o = this.options;
var keyword = o.keywordGetter();
var values = BI.deepClone(src.value) || [];
var newValues = BI.map(values, function (i, v) {
var values = src || [];
var newValues = BI.map(BI.isArray(values) ? values : [values], function (i, v) {
return {
text: o.valueFormatter(v) || v,
value: v

118
src/widget/singleselectaddsearch/singleselect.combo.js

@ -22,7 +22,7 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
BI.isKey(self._startValue) && (self.storeValue = self._startValue);
self.trigger.getSearcher().setState(self.storeValue);
};
this.storeValue = "";
this.storeValue = o.value;
// 标记正在请求数据
this.requesting = false;
@ -47,30 +47,25 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
}
callback.apply(self, arguments);
});
}
},
value: this.storeValue
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_START, function () {
self._setStartValue("");
self._setStartValue();
this.getSearcher().setValue(self.storeValue);
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_STOP, function () {
self._setStartValue("");
self._setStartValue();
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_PAUSE, function () {
if (this.getSearcher().hasMatched()) {
var keyword = this.getSearcher().getKeyword();
self._join({
type: BI.Selection.Multi,
value: [keyword]
}, function () {
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue("");
});
}
var keyword = this.getSearcher().getKeyword();
self.storeValue = keyword;
self.combo.setValue(self.storeValue);
self._setStartValue(keyword);
assertShowValue();
self.populate();
self._setStartValue();
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_SEARCHING, function (keywords) {
var last = BI.last(keywords);
@ -81,7 +76,7 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
self.combo.setValue(self.storeValue);
assertShowValue();
self.combo.populate();
self._setStartValue("");
self._setStartValue();
} else {
self.combo.setValue(self.storeValue);
assertShowValue();
@ -93,6 +88,7 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
this.trigger.on(BI.SingleSelectTrigger.EVENT_CHANGE, function (value, obj) {
self.storeValue = this.getValue();
assertShowValue();
self._defaultState();
});
this.trigger.on(BI.SingleSelectTrigger.EVENT_COUNTER_CLICK, function () {
if (!self.combo.isViewVisible()) {
@ -133,7 +129,8 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
},
hideChecker: function (e) {
return triggerBtn.element.find(e.target).length === 0;
}
},
value: o.value
});
this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () {
@ -191,7 +188,6 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
},
_assertValue: function (val) {
val || (val = "");
},
_makeMap: function (values) {
@ -221,59 +217,10 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
}
},
_joinAll: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this.requesting = true;
o.itemsCreator({
type: BI.SingleSelectInsertCombo.REQ_GET_ALL_DATA,
keywords: [this.trigger.getKey()]
}, function (ob) {
var items = BI.map(ob.items, "value");
if (self.storeValue.type === res.type) {
var change = false;
var map = self._makeMap(self.storeValue.value);
BI.each(items, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (self.storeValue.value = BI.values(map));
self._adjust(callback);
return;
}
var selectedMap = self._makeMap(self.storeValue.value);
var notSelectedMap = self._makeMap(res.value);
var newItems = [];
BI.each(items, function (i, item) {
if (BI.isNotNull(selectedMap[items[i]])) {
delete selectedMap[items[i]];
}
if (BI.isNull(notSelectedMap[items[i]])) {
newItems.push(item);
}
});
self.storeValue.value = newItems.concat(BI.values(selectedMap));
self._adjust(callback);
});
},
_adjust: function (callback) {
var self = this, o = this.options;
if (!this._count) {
o.itemsCreator({
type: BI.SingleSelectInsertCombo.REQ_GET_DATA_LENGTH
}, function (res) {
self._count = res.count;
adjust();
callback();
});
} else {
adjust();
callback();
}
adjust();
callback();
function adjust () {
if (self.wants2Quit === true) {
@ -284,39 +231,13 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
}
},
_join: function (res, callback) {
var self = this, o = this.options;
this._assertValue(res);
this._assertValue(this.storeValue);
if (this.storeValue.type === res.type) {
var map = this._makeMap(this.storeValue.value);
BI.each(res.value, function (i, v) {
if (!map[v]) {
self.storeValue.value.push(v);
map[v] = v;
}
});
var change = false;
BI.each(res.assist, function (i, v) {
if (BI.isNotNull(map[v])) {
change = true;
delete map[v];
}
});
change && (this.storeValue.value = BI.values(map));
self._adjust(callback);
return;
}
this._joinAll(res, callback);
},
_setStartValue: function (value) {
this._startValue = value;
this.popup.setStartValue(value);
},
setValue: function (v) {
this.storeValue = v || "";
this.storeValue = v;
this._assertValue(this.storeValue);
this.combo.setValue(this.storeValue);
},
@ -326,7 +247,6 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, {
},
populate: function () {
this._count = null;
this.combo.populate.apply(this.combo, arguments);
}
});

3
src/widget/singleselectaddsearch/singleselect.trigger.js

@ -41,7 +41,8 @@ BI.SingleSelectTrigger = BI.inherit(BI.Trigger, {
valueFormatter: o.valueFormatter,
popup: {},
adapter: o.adapter,
masker: o.masker
masker: o.masker,
value: o.value
});
this.searcher.on(BI.SingleSelectSearcher.EVENT_START, function () {
self.fireEvent(BI.SingleSelectTrigger.EVENT_START);

7
src/widget/singleselectaddsearch/trigger/searcher.singleselect.js

@ -47,9 +47,9 @@ BI.SingleSelectSearcher = BI.inherit(BI.Widget, {
op.keyword = self.editor.getValue();
this.setKeyword(op.keyword);
o.itemsCreator(op, callback);
}
},
value: o.value
}, o.popup),
adapter: o.adapter,
masker: o.masker
});
@ -72,6 +72,9 @@ BI.SingleSelectSearcher = BI.inherit(BI.Widget, {
var keywords = this.getKeywords();
self.fireEvent(BI.SingleSelectSearcher.EVENT_SEARCHING, keywords);
});
if(BI.isNotNull(o.value)) {
this.setState(o.value);
}
},
adjustView: function () {

Loading…
Cancel
Save