diff --git a/changelog.md b/changelog.md index a4910b1451..3e69fb3070 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,6 @@ # 更新日志 2.0(2020-12) +- 新增不带全选的同步复选下拉框 - 日期选择控件为年月选择器子组件新增POPUP弹出前事件 - 文件上传控件新增API(setMaxFileLength)以动态设置最大上传文件数量 - 复选下拉树显示查看已选效果改成和复选下拉列表一致 diff --git a/src/component/valuechooser/combo.valuechooser.nobar.js b/src/component/valuechooser/combo.valuechooser.nobar.js new file mode 100644 index 0000000000..3fc381df34 --- /dev/null +++ b/src/component/valuechooser/combo.valuechooser.nobar.js @@ -0,0 +1,96 @@ +/** + * @author windy + * @version 2.0 + * Created by windy on 2020/12/31 + */ +BI.ValueChooserNoBarCombo = BI.inherit(BI.AbstractValueChooser, { + + props: { + baseCls: "bi-value-chooser-combo", + width: 200, + height: 24, + items: null, + itemsCreator: BI.emptyFn, + cache: true + }, + + render: function () { + var self = this, o = this.options; + if (BI.isNotNull(o.items)) { + this.items = o.items; + } + + return { + type: "bi.multi_select_no_bar_combo", + allowEdit: o.allowEdit, + text: o.text, + value: this._assertValue(o.value), + itemsCreator: BI.bind(this._itemsCreator, this), + valueFormatter: BI.bind(this._valueFormatter, this), + width: o.width, + height: o.height, + ref: function(_ref) { + self.combo = _ref; + }, + listeners: [{ + eventName: BI.MultiSelectCombo.EVENT_FOCUS, + action: function () { + self.fireEvent(BI.ValueChooserNoBarCombo.EVENT_FOCUS); + } + }, { + eventName: BI.MultiSelectCombo.EVENT_BLUR, + action: function () { + self.fireEvent(BI.ValueChooserNoBarCombo.EVENT_BLUR); + } + }, { + eventName: BI.MultiSelectCombo.EVENT_STOP, + action: function () { + self.fireEvent(BI.ValueChooserNoBarCombo.EVENT_STOP); + } + }, { + eventName: BI.MultiSelectCombo.EVENT_CLICK_ITEM, + action: function () { + self.fireEvent(BI.ValueChooserNoBarCombo.EVENT_CLICK_ITEM); + } + }, { + eventName: BI.MultiSelectCombo.EVENT_SEARCHING, + action: function () { + self.fireEvent(BI.ValueChooserNoBarCombo.EVENT_SEARCHING); + } + }, { + eventName: BI.MultiSelectCombo.EVENT_CONFIRM, + action: function () { + self.fireEvent(BI.ValueChooserNoBarCombo.EVENT_CONFIRM); + } + }] + } + }, + + setValue: function (v) { + this.combo.setValue(v); + }, + + getValue: function () { + return this.combo.getValue(); + }, + + getAllValue: function() { + return this.getValue(); + }, + + populate: function (items) { + // 直接用combo的populate不会作用到AbstractValueChooser上 + if (BI.isNotNull(items)) { + this.items = items; + } + this.combo.populate(); + } +}); + +BI.ValueChooserNoBarCombo.EVENT_BLUR = "EVENT_BLUR"; +BI.ValueChooserNoBarCombo.EVENT_FOCUS = "EVENT_FOCUS"; +BI.ValueChooserNoBarCombo.EVENT_STOP = "EVENT_STOP"; +BI.ValueChooserNoBarCombo.EVENT_SEARCHING = "EVENT_SEARCHING"; +BI.ValueChooserNoBarCombo.EVENT_CLICK_ITEM = "EVENT_CLICK_ITEM"; +BI.ValueChooserNoBarCombo.EVENT_CONFIRM = "EVENT_CONFIRM"; +BI.shortcut("bi.value_chooser_no_bar_combo", BI.ValueChooserNoBarCombo);