diff --git a/src/extensions/multiselect.js b/src/extensions/multiselect.js index 8879ae1..e96ca72 100644 --- a/src/extensions/multiselect.js +++ b/src/extensions/multiselect.js @@ -185,10 +185,10 @@ define('bui/extensions/multiselect/multilist', ['bui/common', 'bui/list'], funct * @ignore */ -define('bui/extensions/multiselect/multilistpicker', ['bui/overlay', 'bui/picker/mixin'], function (require) { +define('bui/extensions/multiselect/multilistpicker', ['bui/overlay', 'bui/picker'], function (require) { var Dialog = require('bui/overlay').Dialog, - Mixin = require('bui/picker/mixin'); + Mixin = require('bui/picker').Mixin; var MultilistPicker = Dialog.extend([Mixin], { /** @@ -347,10 +347,26 @@ define('bui/extensions/multiselect/multiselect',['bui/common', 'bui/extensions/m var picker = new MultiListPicker({ trigger: inputEl, + autoRender: true, textField: inputEl, valueField: _self.get('valueField'), children: [multilist] - }).render(); + }); + _self.set('picker', picker); + _self.set('textField', inputEl); + }, + bindUI: function(){ + var _self = this, + multilist = _self.get('multilist'); + + multilist.on('selected', function(ev){ + var items = ev.items; + return _self.fire('selected', {items: items}); + }); + multilist.on('unselected', function(ev){ + var items = ev.items; + return _self.fire('unselected', {items: items}); + }) } }, { ATTRS: { @@ -368,9 +384,21 @@ define('bui/extensions/multiselect/multiselect',['bui/common', 'bui/extensions/m }, items: { + }, + source: { + getter: function(){ + return this.get('multilist').get('source'); + } + }, + target: { + getter: function(){ + return this.get('multilist').get('target'); + } }, valueField: { - + setter: function(v){ + return $(v); + } }, textField: { diff --git a/src/extensions/multiselect/multiselect.js b/src/extensions/multiselect/multiselect.js index 5764d5d..6189479 100644 --- a/src/extensions/multiselect/multiselect.js +++ b/src/extensions/multiselect/multiselect.js @@ -44,14 +44,26 @@ define('bui/extensions/multiselect/multiselect',['bui/common', 'bui/extensions/m var picker = new MultiListPicker({ trigger: inputEl, + autoRender: true, textField: inputEl, valueField: _self.get('valueField'), children: [multilist] - }).render(); + }); + _self.set('picker', picker); + _self.set('textField', inputEl); }, bindUI: function(){ var _self = this, multilist = _self.get('multilist'); + + multilist.on('selected', function(ev){ + var items = ev.items; + return _self.fire('selected', {items: items}); + }); + multilist.on('unselected', function(ev){ + var items = ev.items; + return _self.fire('unselected', {items: items}); + }) } }, { ATTRS: { @@ -69,9 +81,21 @@ define('bui/extensions/multiselect/multiselect',['bui/common', 'bui/extensions/m }, items: { + }, + source: { + getter: function(){ + return this.get('multilist').get('source'); + } + }, + target: { + getter: function(){ + return this.get('multilist').get('target'); + } }, valueField: { - + setter: function(v){ + return $(v); + } }, textField: { diff --git a/src/picker/picker.js b/src/picker/picker.js index fe199e5..55af3d6 100644 --- a/src/picker/picker.js +++ b/src/picker/picker.js @@ -3,10 +3,10 @@ * @ignore */ -define('bui/picker/picker',['bui/overlay', 'bui/picker/mixin'],function (require) { +define('bui/picker/picker',['bui/overlay', 'bui/picker'],function (require) { var Overlay = require('bui/overlay').Overlay, - Mixin = require('bui/picker/mixin'); + Mixin = require('bui/picker').Mixin; /** * 选择器控件的基类,弹出一个层来选择数据,不要使用此类创建控件,仅用于继承实现控件