Browse Source

DESIGN-4103 feat: "bi.search_text_value_combo" 也支持清空

es6
zsmj 3 years ago
parent
commit
95027b0d20
  1. 43
      src/case/combo/searchtextvaluecombo/combo.searchtextvalue.js
  2. 52
      src/case/combo/searchtextvaluecombo/trigger.searchtextvalue.js
  3. 2
      src/case/trigger/trigger.text.js

43
src/case/combo/searchtextvaluecombo/combo.searchtextvalue.js

@ -22,10 +22,8 @@ BI.SearchTextValueCombo = BI.inherit(BI.Widget, {
o.items = BI.isFunction(o.items) ? this.__watch(o.items, function (context, newValue) { o.items = BI.isFunction(o.items) ? this.__watch(o.items, function (context, newValue) {
self.populate(newValue); self.populate(newValue);
}) : o.items; }) : o.items;
return { return {
type: "bi.absolute",
items: [{
el: {
type: "bi.combo", type: "bi.combo",
cls: (o.simple ? "bi-border-bottom" : "bi-border") + " bi-focus-shadow", cls: (o.simple ? "bi-border-bottom" : "bi-border") + " bi-focus-shadow",
container: o.container, container: o.container,
@ -64,6 +62,11 @@ BI.SearchTextValueCombo = BI.inherit(BI.Widget, {
self.combo.hideView(); self.combo.hideView();
self.fireEvent(BI.SearchTextValueCombo.EVENT_CHANGE); self.fireEvent(BI.SearchTextValueCombo.EVENT_CHANGE);
} }
}, {
eventName: BI.SearchTextValueTrigger.EVENT_CLEAR,
action: function () {
self._clear();
}
}] }]
}, },
popup: { popup: {
@ -100,35 +103,6 @@ BI.SearchTextValueCombo = BI.inherit(BI.Widget, {
self.fireEvent(BI.SearchTextValueCombo.EVENT_BEFORE_POPUPVIEW); self.fireEvent(BI.SearchTextValueCombo.EVENT_BEFORE_POPUPVIEW);
} }
}], }],
hideChecker: function (e) {
return self.triggerBtn.element.find(e.target).length === 0;
}
},
left: 0,
right: 0,
bottom: 0,
top: 0
}, {
el: {
type: "bi.trigger_icon_button",
cls: "trigger-icon-button",
ref: function () {
self.triggerBtn = this;
},
width: o.height,
height: o.height,
handler: function () {
if (self.combo.isViewVisible()) {
self.combo.hideView();
} else {
self.combo.showView();
}
}
},
right: 0,
bottom: 0,
top: 0
}]
}; };
}, },
@ -139,6 +113,11 @@ BI.SearchTextValueCombo = BI.inherit(BI.Widget, {
} }
}, },
_clear: function () {
this.trigger.attr("text", "");
this.setValue([]);
},
_checkError: function (v) { _checkError: function (v) {
if (BI.isNull(v) || BI.isEmptyArray(v) || BI.isEmptyString(v)) { if (BI.isNull(v) || BI.isEmptyArray(v) || BI.isEmptyString(v)) {
this.trigger.options.tipType = "success"; this.trigger.options.tipType = "success";

52
src/case/combo/searchtextvaluecombo/trigger.searchtextvalue.js

@ -5,16 +5,32 @@ BI.SearchTextValueTrigger = BI.inherit(BI.Trigger, {
props: function () { props: function () {
return { return {
extraCls: "bi-search-text-value-trigger", baseCls: "bi-search-text-value-trigger",
height: 24, height: 24,
watermark: BI.i18nText("BI-Basic_Search") watermark: BI.i18nText("BI-Basic_Search"),
allowClear: false,
}; };
}, },
render: function () { render: function () {
var self = this, o = this.options; var self = this, o = this.options;
var triggerButton = {
type: "bi.trigger_icon_button",
cls: "trigger-icon-button",
ref: function () {
self.triggerBtn = this;
},
width: o.height,
height: o.height,
width: 24,
};
var stateText = this._digest(o.value, o.items);
return { return {
type: "bi.htape", type: "bi.horizontal_fill",
columnSize: ["fill", 24],
items: [ items: [
{ {
el: { el: {
@ -30,7 +46,7 @@ BI.SearchTextValueTrigger = BI.inherit(BI.Trigger, {
}, },
watermark: o.watermark, watermark: o.watermark,
defaultText: o.defaultText, defaultText: o.defaultText,
text: this._digest(o.value, o.items), text: stateText,
value: o.value, value: o.value,
height: o.height, height: o.height,
tipText: "" tipText: ""
@ -55,10 +71,30 @@ BI.SearchTextValueTrigger = BI.inherit(BI.Trigger, {
}] }]
} }
}, { }, {
el: o.allowClear ? {
type: "bi.vertical_adapt",
horizontalAlign: "left",
scrollable: false,
items: [
{
el: { el: {
type: "bi.layout", type: "bi.icon_button",
width: 24 ref: function (_ref) {
self.clearBtn = _ref;
},
cls: "close-h-font " + (o.allowClear ? "clear-button" : ""),
stopPropagation: true,
invisible: !BI.isNotEmptyString(stateText),
width: o.height,
handler: function () {
self.fireEvent(BI.SearchTextValueTrigger.EVENT_CLEAR);
},
}, },
}, {
el: triggerButton,
}
]
} : triggerButton,
width: 24 width: 24
} }
] ]
@ -100,7 +136,9 @@ BI.SearchTextValueTrigger = BI.inherit(BI.Trigger, {
}, },
setValue: function (vals) { setValue: function (vals) {
this._setState(this._digest(vals, this.options.items)); var stateText = this._digest(vals, this.options.items);
this._setState(stateText);
this.options.allowClear && this.clearBtn.setVisible(BI.isNotEmptyString(stateText));
}, },
getValue: function () { getValue: function () {

2
src/case/trigger/trigger.text.js

@ -72,6 +72,8 @@ BI.TextTrigger = BI.inherit(BI.Trigger, {
}, },
cls: "close-h-font " + (o.allowClear ? "clear-button" : ""), cls: "close-h-font " + (o.allowClear ? "clear-button" : ""),
stopPropagation: true, stopPropagation: true,
width: o.triggerWidth || o.height,
invisible: !BI.isNotEmptyString(o.text),
handler: function () { handler: function () {
self.fireEvent(BI.TextTrigger.EVENT_CLEAR); self.fireEvent(BI.TextTrigger.EVENT_CLEAR);
}, },

Loading…
Cancel
Save