Demo.Func = BI.inherit(BI.Widget, { props: { baseCls: "demo-func" }, years: [{ text: "2010年", value: 2010, iconCls: "close-ha-font" }, { text: "2011年", value: 2011 }, { text: "2012年", value: 2012, iconCls: "close-ha-font" }, { text: "2013年", value: 2013 }, { text: "2014年", value: 2014, iconCls: "close-ha-font" }, { text: "2015年", value: 2015, iconCls: "close-ha-font" }, { text: "2016年", value: 2016, iconCls: "close-ha-font" }, { text: "2017年", value: 2017, iconCls: "close-ha-font" }], child: [{ type: "bi.combo_group", el: { type: "bi.icon_text_icon_item", text: "2010年", value: 2010, height: 25, iconCls: "close-ha-font" }, children: [{ type: "bi.single_select_item", height: 25, text: "一月", value: 11 }, { type: "bi.icon_text_icon_item", height: 25, text: "二月", value: 12, children: [{type: "bi.single_select_item", text: "一号", value: 101, height: 25}] }] }, { text: "2011年", value: 2011 }, { text: "2012年", value: 2012, iconCls: "close-ha-font" }, { text: "2013年", value: 2013 }, { text: "2014年", value: 2014, iconCls: "close-ha-font" }, { text: "2015年", value: 2015, iconCls: "close-ha-font" }], months: [[{ el: { text: "一月", value: 1 } }, { el: { text: "二月", value: 2 } }], [{ el: { text: "三月", value: 3 } }, { el: { text: "四月", value: 4 } }], [{ el: { text: "五月", value: 5 } }, { el: { text: "六月", value: 6 } }], [{ el: { text: "七月", value: 7 } }, { el: { text: "八月", value: 8 } }], [{ el: { text: "九月", value: 9 } }, { el: { text: "十月", value: 10 } }], [{ el: { text: "十一月", value: 11 } }, { el: { text: "十二月", value: 12 } }]], dynamic: [ { text: "2010年", value: 1 }, { text: "20112222年", value: 2 }, { text: "201233333年", value: 3 }, { text: "2013年", value: 4 }, { text: "2012324年", value: 5 }, { text: "2015年", value: 6 }, { text: "2016年", value: 7 }, { text: "201744444444444444444444444444444444444年", value: 8 } ], week: [{ text: "周一", value: 100, iconClsLeft: "close-ha-font", iconClsRight: "close-font" }, { text: "周二", value: 101, iconClsLeft: "close-ha-font" }, { text: "周三", value: 102 }, { text: "周四", value: 103, iconClsRight: "close-ha-font" }, { text: "周五", value: 104, iconClsLeft: "close-ha-font", iconClsRight: "close-font" }, { text: "周六", value: 105, iconClsLeft: "close-font", iconClsRight: "close-ha-font" }, { text: "周日", value: 106, iconClsLeft: "close-font" }], _createTop: function () { var self = this; var yearCombo = BI.createWidget({ type: "bi.combo", el: { type: "bi.button", text: "简单下拉框", height: 30 }, popup: { el: { type: "bi.button_group", items: BI.createItems(BI.deepClone(this.years), { type: "bi.single_select_radio_item", height: 25, handler: function (v) { } }), layouts: [{ type: "bi.vertical" }] } }, width: 200 }); var multiCombo = BI.createWidget({ type: "bi.combo", el: { type: "bi.button", text: "多选下拉框", height: 30 }, popup: { el: { items: BI.createItems(BI.deepClone(this.years), { type: "bi.multi_select_item", height: 25, handler: function (v) { } }), chooseType: 1, layouts: [{ type: "bi.vertical" }] }, tool: { type: "bi.label", text: "这是一个下拉框", height: 35 }, tabs: [{ type: "bi.multi_select_bar", height: 25, text: "全选", onCheck: function (v) { if (v) { multiCombo.setValue(BI.pluck(BI.deepClone(self.years), "value")); } else { multiCombo.setValue([]); } }, isAllCheckedBySelectedValue: function (selectedValue) { return selectedValue.length == self.years.length; // return true; } }], buttons: [{ type: "bi.text_button", text: "清空", handler: function () { multiCombo.setValue([]); } }, { type: "bi.text_button", text: "确定", handler: function () { BI.Msg.alert("", multiCombo.getValue()); } }] }, width: 200 }); var dynamicPopupCombo = BI.createWidget({ type: "bi.combo", isNeedAdjustWidth: false, offsetStyle: "center", el: { type: "bi.button", text: "动态调整宽度", height: 30 }, popup: { el: { items: BI.createItems(BI.deepClone(this.dynamic), { type: "bi.single_select_item", height: 25 }), layouts: [{ type: "bi.vertical" }] } }, width: 200 }); var dynamicCombo = BI.createWidget({ type: "bi.combo", el: { type: "bi.button", text: "搜索", height: 30 }, popup: { el: { type: "bi.loader", logic: { dynamic: true, scrolly: true }, el: { behaviors: { redmark: function () { return true; } }, layouts: [{ type: "bi.vertical" }] }, itemsCreator: function (options, popuplate) { var times = options.times; BI.delay(function () { if (times == 3) { popuplate([{ type: "bi.single_select_item", text: "这是最后一个", value: "这是最后一个", py: "zszhyg", height: 25 }]); return; } var map = BI.map(BI.makeArray(3, null), function (i, v) { var val = i + "_" + BI.random(1, 100); return { type: "bi.single_select_item", text: val, value: val, height: 25 }; }); popuplate(map); }, 1000); }, hasNext: function (options) { return options.times < 3; } }, buttons: [{ type: "bi.text_button", text: "清空", handler: function () { dynamicCombo.setValue([]); } }, { type: "bi.text_button", text: "确定", handler: function () { BI.Msg.alert("", dynamicCombo.getValue()); } }] }, width: 200 }); return BI.createWidget({ type: "bi.left", items: [yearCombo, multiCombo, dynamicPopupCombo, dynamicCombo], hgap: 20, vgap: 20 }); }, _createBottom: function () { var combo = BI.createWidget({ type: "bi.combo", el: { type: "bi.text_button", cls: "button-combo", height: 30 }, popup: { el: { type: "bi.button_group", items: BI.createItems(BI.deepClone(this.years), { type: "bi.single_select_item", iconWidth: 25, height: 25, handler: function (v) { } }), chooseType: 1, layouts: [{ type: "bi.vertical" }] } }, width: 200 }); combo.setValue(BI.deepClone(this.years)[0].value); var childCombo = BI.createWidget({ type: "bi.combo", el: { type: "bi.text_button", cls: "button-combo", height: 30 }, popup: { el: { type: "bi.button_tree", items: BI.createItems(BI.deepClone(this.child), { type: "bi.single_select_item", height: 25, handler: function (v) { } }), layouts: [{ type: "bi.vertical" }] } }, width: 200 }); childCombo.setValue(BI.deepClone(this.child)[0].children[0].value); var monthCombo = BI.createWidget({ type: "bi.combo", el: { type: "bi.button", text: "多层样式下拉框", height: 30 }, popup: { el: { items: BI.createItems(BI.deepClone(this.months), { type: "bi.single_select_item", cls: "button-combo", handler: function (v) { } }), layouts: [{ type: "bi.adaptive", items: [{ el: { type: "bi.table", columns: 2, rows: 6, columnSize: [0.5, "fill"], rowSize: 30 }, left: 4, right: 4, top: 2, bottom: 2 }] }, { type: "bi.absolute", el: {left: 4, top: 2, right: 4, bottom: 2} }] } }, width: 200 }); var yearCombo = BI.createWidget({ type: "bi.combo", el: { type: "bi.button", text: "自定义控件", height: 30 }, popup: { el: { type: "bi.navigation", direction: "bottom", logic: { dynamic: true }, tab: { height: 30, items: [{ once: false, text: "后退", value: -1, cls: "mvc-button layout-bg3" }, { once: false, text: "前进", value: 1, cls: "mvc-button layout-bg4" }] }, cardCreator: function (v) { return BI.createWidget({ type: "bi.text_button", whiteSpace: "normal", text: new Date().getFullYear() + v }); } } }, width: 200 }); return BI.createWidget({ type: "bi.left", items: [combo, childCombo, monthCombo, yearCombo], hgap: 20, vgap: 20 }); }, render: function () { return { type: "bi.grid", columns: 1, rows: 2, items: [{ column: 0, row: 0, el: this._createTop() }, { column: 0, row: 1, el: this._createBottom() }] }; } }); BI.shortcut("demo.combo", Demo.Func);