diff --git a/.eslintrc b/.eslintrc index 56c26d0b0..c435e6b66 100644 --- a/.eslintrc +++ b/.eslintrc @@ -29,6 +29,8 @@ "files": ["src/*.js","src/**/*.js", "demo/*.js", "demo/**/*.js", "i18n/**/*.js", "i18n/*.js", "test/**/*.js", "test/*.js"], "extends": "plugin:@fui/es5", "rules": { + "no-param-reassign": "off", + "quotes": [2, "double"], "comma-dangle": ["error", "never"] // 多行对象字面量中要求拖尾逗号 } }, { diff --git a/demo/js/config/demo.pane.js b/demo/js/config/demo.pane.js index 30b2415a7..e6cb35c62 100644 --- a/demo/js/config/demo.pane.js +++ b/demo/js/config/demo.pane.js @@ -4,11 +4,15 @@ * description: */ !(function () { - var Pane = BI.inherit(BI.LoadingPane, { + var Pane = BI.inherit(BI.Pane, { props: { }, + mounted: function () { + console.log('loading pane mounted'); + }, + render: function () { return { type: "bi.center_adapt", @@ -19,11 +23,14 @@ }; }, - beforeInit: function (callback) { + beforeRender: function (callback) { + var self = this; + this.loading(); setTimeout(function () { + self.loaded(); callback(); }, 3000); } }); BI.shortcut("demo.pane", Pane); -})(); \ No newline at end of file +})(); diff --git a/dist/fix/fix.compact.js b/dist/fix/fix.compact.js index fc7d7dfff..69a0a3196 100644 --- a/dist/fix/fix.compact.js +++ b/dist/fix/fix.compact.js @@ -183,7 +183,7 @@ delete this.__cacheStore; }; - _.each(["_afterRender", "_mount", "__afterMount"], function (name) { + _.each(["__afterRender", "_mount", "__afterMount"], function (name) { var old = BI.Widget.prototype[name]; old && (BI.Widget.prototype[name] = function () { this.store && pushTarget(this.store); diff --git a/dist/font/iconfont.eot b/dist/font/iconfont.eot index 096920073..9db044108 100644 Binary files a/dist/font/iconfont.eot and b/dist/font/iconfont.eot differ diff --git a/dist/font/iconfont.svg b/dist/font/iconfont.svg index 828e25e8c..5a40b7253 100644 --- a/dist/font/iconfont.svg +++ b/dist/font/iconfont.svg @@ -14,6 +14,10 @@ /> + + + + diff --git a/dist/font/iconfont.ttf b/dist/font/iconfont.ttf index 063794e17..2200c297f 100644 Binary files a/dist/font/iconfont.ttf and b/dist/font/iconfont.ttf differ diff --git a/dist/font/iconfont.woff b/dist/font/iconfont.woff index 710b16b2b..dfeba9b00 100644 Binary files a/dist/font/iconfont.woff and b/dist/font/iconfont.woff differ diff --git a/dist/font/iconfont.woff2 b/dist/font/iconfont.woff2 index 8cb81ad6c..d85feabbd 100644 Binary files a/dist/font/iconfont.woff2 and b/dist/font/iconfont.woff2 differ diff --git a/karma.conf.js b/karma.conf.js index 8b5bca997..1152ccb6a 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -35,7 +35,6 @@ module.exports = function (config) { exclude: [ "src/base/single/input/file.js", - "src/case/loading/loading_pane.js", "src/case/ztree/**/*.js", "src/widget/multitree/**/*.js", "src/widget/multiselecttree/**/*.js", diff --git a/package.json b/package.json index fa65d73b3..6c5aa3bf6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fineui", - "version": "2.0.20211022093820", + "version": "2.0.20211109174238", "description": "fineui", "main": "dist/fineui.min.js", "types": "dist/lib/index.d.ts", diff --git a/src/base/1.pane.js b/src/base/1.pane.js index 5bbecf5da..630d7cddb 100644 --- a/src/base/1.pane.js +++ b/src/base/1.pane.js @@ -150,3 +150,5 @@ BI.Pane = BI.inherit(BI.Widget, { }); BI.Pane.EVENT_LOADED = "EVENT_LOADED"; BI.Pane.EVENT_LOADING = "EVENT_LOADING"; + +BI.shortcut("bi.pane", BI.Pane); diff --git a/src/base/combination/combo.js b/src/base/combination/combo.js index 881480a84..64192fe29 100644 --- a/src/base/combination/combo.js +++ b/src/base/combination/combo.js @@ -21,6 +21,7 @@ container: null, // popupview放置的容器,默认为this.element isDefaultInit: false, destroyWhenHide: false, + hideWhenBlur: true, hideWhenAnotherComboOpen: false, isNeedAdjustHeight: true, // 是否需要高度调整 isNeedAdjustWidth: true, @@ -291,6 +292,7 @@ }, _hideView: function (e) { + var o = this.options; this.fireEvent(BI.Combo.EVENT_BEFORE_HIDEVIEW); if (this.options.destroyWhenHide === true) { this.popupView && this.popupView.destroy(); @@ -310,12 +312,12 @@ delete needHideWhenAnotherComboOpen[this.getName()]; BI.Widget._renderEngine.createElement(document).unbind("mousedown." + this.getName()).unbind("mousewheel." + this.getName()); - BI.Widget._renderEngine.createElement(window).unbind("blur." + this.getName()); + BI.EVENT_BLUR && o.hideWhenBlur && BI.Widget._renderEngine.createElement(window).unbind("blur." + this.getName()); this.fireEvent(BI.Combo.EVENT_AFTER_HIDEVIEW); }, _popupView: function (e) { - var self = this; + var self = this, o = this.options; this._assertPopupViewRender(); this.fireEvent(BI.Combo.EVENT_BEFORE_POPUPVIEW); // popupVisible是为了获取其宽高, 放到可视范围之外以防止在IE下闪一下 @@ -334,10 +336,10 @@ this.element.addClass(this.options.comboClass); BI.Widget._renderEngine.createElement(document).unbind("mousedown." + this.getName()).unbind("mousewheel." + this.getName()); - BI.Widget._renderEngine.createElement(window).unbind("blur." + this.getName()); + BI.EVENT_BLUR && o.hideWhenBlur && BI.Widget._renderEngine.createElement(window).unbind("blur." + this.getName()); BI.Widget._renderEngine.createElement(document).bind("mousedown." + this.getName(), BI.bind(this._hideIf, this)).bind("mousewheel." + this.getName(), BI.bind(this._hideIf, this)); - BI.Widget._renderEngine.createElement(window).bind("blur." + this.getName(), BI.bind(this._hideIf, this)); + BI.EVENT_BLUR && o.hideWhenBlur && BI.Widget._renderEngine.createElement(window).bind("blur." + this.getName(), BI.bind(this._hideIf, this)); this.fireEvent(BI.Combo.EVENT_AFTER_POPUPVIEW); }, diff --git a/src/base/list/virtualgrouplist.js b/src/base/list/virtualgrouplist.js index 56dd68bb1..95ed647e0 100644 --- a/src/base/list/virtualgrouplist.js +++ b/src/base/list/virtualgrouplist.js @@ -55,8 +55,16 @@ BI.VirtualGroupList = BI.inherit(BI.Widget, { mounted: function () { var self = this, o = this.options; this._populate(); + this._debounceRelease = BI.debounce(function () { + self._scrollLock = false; + }, 30); this.element.scroll(function (e) { + if (self._scrollLock === true) { + return; + } + self._scrollLock = true; o.scrollTop = self.element.scrollTop(); + self._debounceRelease(); self._calculateBlocksToRender(); }); BI.ResizeDetector.addResizeListener(this, function () { diff --git a/src/base/single/button/button.basic.js b/src/base/single/button/button.basic.js index 4a5d68a0c..de0ec5ebe 100644 --- a/src/base/single/button/button.basic.js +++ b/src/base/single/button/button.basic.js @@ -10,6 +10,7 @@ BI.BasicButton = BI.inherit(BI.Single, { var conf = BI.BasicButton.superclass._defaultConfig.apply(this, arguments); return BI.extend(conf, { _baseCls: (conf._baseCls || "") + " bi-basic-button" + (conf.invalid ? "" : " cursor-pointer") + ((BI.isIE() && BI.getIEVersion() < 10) ? " hack" : ""), + // el: {} // 可以通过el来创建button元素 value: "", stopEvent: false, stopPropagation: false, @@ -26,6 +27,7 @@ BI.BasicButton = BI.inherit(BI.Single, { bubble: null }); }, + _init: function () { BI.BasicButton.superclass._init.apply(this, arguments); var opts = this.options; @@ -44,6 +46,11 @@ BI.BasicButton = BI.inherit(BI.Single, { } }, + // 默认render方法 + render: function () { + return this.options.el; + }, + _createShadow: function () { var self = this, o = this.options; diff --git a/src/base/single/editor/editor.multifile.js b/src/base/single/editor/editor.multifile.js index d917a4762..68b5bcc2e 100644 --- a/src/base/single/editor/editor.multifile.js +++ b/src/base/single/editor/editor.multifile.js @@ -78,6 +78,10 @@ BI.MultifileEditor = BI.inherit(BI.Widget, { this.file.select(); }, + getQueue: function () { + return this.file.getQueue(); + }, + getValue: function () { return this.file.getValue(); }, diff --git a/src/base/single/input/file.js b/src/base/single/input/file.js index bf4e207b9..fa589681b 100644 --- a/src/base/single/input/file.js +++ b/src/base/single/input/file.js @@ -671,6 +671,10 @@ return this.wrap ? this.wrap.attach_array : []; }, + getQueue: function () { + return this.wrap.files; + }, + reset: function () { if (this.wrap) { this.wrap.attach_array = []; diff --git a/src/base/single/input/input.js b/src/base/single/input/input.js index 837d6d205..31c1ea296 100644 --- a/src/base/single/input/input.js +++ b/src/base/single/input/input.js @@ -24,7 +24,7 @@ BI.Input = BI.inherit(BI.Single, { var _keydown = BI.debounce(function (keyCode) { self.onKeyDown(keyCode, ctrlKey); self._keydown_ = false; - }, 300); + }, BI.EVENT_RESPONSE_TIME); var _clk = BI.debounce(BI.bind(this._click, this), BI.EVENT_RESPONSE_TIME, { "leading": true, "trailing": false @@ -95,11 +95,7 @@ BI.Input = BI.inherit(BI.Single, { _blur: function () { var self = this; - if (self._keydown_ === true) { - BI.delay(blur, 300); - } else { - blur(); - } + blur(); function blur () { if (!self.isValid() && self.options.quitChecker.apply(self, [BI.trim(self.getValue())]) !== false) { diff --git a/src/base/single/label/abstract.label.js b/src/base/single/label/abstract.label.js index c9a6eb608..8bbfbee15 100644 --- a/src/base/single/label/abstract.label.js +++ b/src/base/single/label/abstract.label.js @@ -29,6 +29,7 @@ textAlign: o.textAlign, whiteSpace: o.whiteSpace, lineHeight: o.textHeight, + maxWidth: "100%", text: o.text, value: o.value, py: o.py, @@ -185,17 +186,13 @@ })); return; } - BI.extend(json, { + this.text = BI.createWidget(BI.extend(json, { hgap: o.hgap, vgap: o.vgap, lgap: o.lgap, rgap: o.rgap, tgap: o.tgap, bgap: o.bgap - }); - - this.text = BI.createWidget(BI.extend(json, { - maxWidth: "100%" })); BI.createWidget({ type: "bi.center_adapt", @@ -211,7 +208,7 @@ var json = this._createJson(); if (BI.isNumber(o.width) && o.width > 0) { if (BI.isNumber(o.textWidth) && o.textWidth > 0) { - json.width = o.textWidth; + json.maxWidth = o.textWidth; if (BI.isNumber(o.height) && o.height > 0) { // 2.1 BI.createWidget({ type: adaptLayout, @@ -249,6 +246,11 @@ return; } if (BI.isNumber(o.height) && o.height > 0) { // 2.3 + if (o.whiteSpace !== "normal") { + this.element.css({ + "line-height": (o.height - (o.vgap * 2)) / BI.pixRatio + BI.pixUnit + }); + } this.text = BI.createWidget(BI.extend(json, { element: this, hgap: o.hgap, @@ -258,14 +260,9 @@ tgap: o.tgap, bgap: o.bgap })); - if (o.whiteSpace !== "normal") { - this.element.css({ - "line-height": (o.height - (o.vgap * 2)) / BI.pixRatio + BI.pixUnit - }); - } return; } - json.width = o.width - 2 * o.hgap - o.lgap - o.rgap; + json.maxWidth = o.width - 2 * o.hgap - o.lgap - o.rgap; BI.createWidget({ // 2.4 type: adaptLayout, horizontalAlign: o.textAlign, @@ -285,7 +282,7 @@ return; } if (BI.isNumber(o.textWidth) && o.textWidth > 0) { - json.width = o.textWidth; + json.maxWidth = o.textWidth; BI.createWidget({ // 2.5 type: adaptLayout, horizontalAlign: o.textAlign, @@ -323,17 +320,13 @@ })); return; } - BI.extend(json, { + this.text = BI.createWidget(BI.extend(json, { hgap: o.hgap, vgap: o.vgap, lgap: o.lgap, rgap: o.rgap, tgap: o.tgap, bgap: o.bgap - }); - - this.text = BI.createWidget(BI.extend(json, { - maxWidth: "100%" })); BI.createWidget({ type: adaptLayout, diff --git a/src/base/single/tip/tip.toast.js b/src/base/single/tip/tip.toast.js index afd444fd1..68e59a88a 100644 --- a/src/base/single/tip/tip.toast.js +++ b/src/base/single/tip/tip.toast.js @@ -61,13 +61,13 @@ BI.Toast = BI.inherit(BI.Tip, { cls: cls + " toast-icon", width: 36 }, { - el: { + el: BI.isString(o.text) ? { type: "bi.label", whiteSpace: "normal", text: o.text, textHeight: 16, textAlign: "left" - }, + } : o.text, rgap: o.autoClose ? this._const.hgap : 0 }]; diff --git a/src/case/calendar/calendar.date.item.js b/src/case/calendar/calendar.date.item.js index b8ee105c6..9da26c663 100644 --- a/src/case/calendar/calendar.date.item.js +++ b/src/case/calendar/calendar.date.item.js @@ -21,8 +21,8 @@ BI.CalendarDateItem = BI.inherit(BI.BasicButton, { }, left: o.lgap, right: o.rgap, - top: 0, - bottom: 0 + top: o.tgap, + bottom: o.rgap }] }; }, @@ -50,4 +50,4 @@ BI.CalendarDateItem = BI.inherit(BI.BasicButton, { return this.text.getValue(); } }); -BI.shortcut("bi.calendar_date_item", BI.CalendarDateItem); \ No newline at end of file +BI.shortcut("bi.calendar_date_item", BI.CalendarDateItem); diff --git a/src/case/calendar/calendar.js b/src/case/calendar/calendar.js index fb762da7e..ddc12c071 100644 --- a/src/case/calendar/calendar.js +++ b/src/case/calendar/calendar.js @@ -100,8 +100,7 @@ BI.Calendar = BI.inherit(BI.Widget, { columns: 7, rows: 6, columnSize: [1 / 7, 1 / 7, 1 / 7, 1 / 7, 1 / 7, 1 / 7, 1 / 7], - rowSize: BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT, - vgap: 10 + rowSize: BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT + 10 }))] }); this.days.on(BI.Controller.EVENT_CHANGE, function () { @@ -111,7 +110,10 @@ BI.Calendar = BI.inherit(BI.Widget, { element: this }, BI.LogicFactory.createLogic("vertical", BI.extend({}, o.logic, { - items: BI.LogicFactory.createLogicItemsByDirection("top", title, this.days) + items: BI.LogicFactory.createLogicItemsByDirection("top", title, { + el: this.days, + tgap: -5 + }) })))); }, @@ -159,11 +161,13 @@ BI.Calendar = BI.inherit(BI.Widget, { whiteSpace: "normal", once: false, forceSelected: true, - height: BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT, + height: BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT + 10, value: o.year + "-" + month + "-" + td.text, disabled: td.lastMonth || td.nextMonth || td.disabled, lgap: 5, - rgap: 5 + rgap: 5, + tgap: 5, + bgap: 5 // selected: td.currentDay }); }); @@ -231,4 +235,4 @@ BI.extend(BI.Calendar, { } }); -BI.shortcut("bi.calendar", BI.Calendar); \ No newline at end of file +BI.shortcut("bi.calendar", BI.Calendar); diff --git a/src/case/colorchooser/colorpicker/editor.colorpicker.hex.js b/src/case/colorchooser/colorpicker/editor.colorpicker.hex.js index 6aa07afe8..83b7b9462 100644 --- a/src/case/colorchooser/colorpicker/editor.colorpicker.hex.js +++ b/src/case/colorchooser/colorpicker/editor.colorpicker.hex.js @@ -72,20 +72,9 @@ BI.HexColorPickerEditor = BI.inherit(BI.Widget, { listeners: [{ eventName: BI.ColorChooserShowButton.EVENT_CHANGE, action: function () { - if (this.isSelected()) { - self.lastColor = self.getValue(); - self.setValue("transparent"); - } else { - if (self.lastColor === "transparent") { - self.lastColor = ""; - } - self.setValue(self.lastColor || "#ffffff"); - } - if ((self.R.isValid() && self.G.isValid() && self.B.isValid()) || - self._isEmptyRGB()) { - self.colorShow.element.css("background-color", self.getValue()); - self.fireEvent(BI.ColorPickerEditor.EVENT_CHANGE); - } + var value = self.getValue(); + self.setValue("transparent"); + (value !== "transparent") && self.fireEvent(BI.ColorPickerEditor.EVENT_CHANGE); } }], ref: function (_ref) { @@ -101,16 +90,9 @@ BI.HexColorPickerEditor = BI.inherit(BI.Widget, { listeners: [{ eventName: BI.ColorChooserShowButton.EVENT_CHANGE, action: function () { - if (this.isSelected()) { - self.lastColor = self.getValue(); - self.setValue(""); - } else { - self.setValue(self.lastColor || "#ffffff"); - } - if ((self.R.isValid() && self.G.isValid() && self.B.isValid()) || self._isEmptyRGB()) { - self.colorShow.element.css("background-color", self.getValue()); - self.fireEvent(BI.ColorPickerEditor.EVENT_CHANGE); - } + var value = self.getValue(); + self.setValue(""); + (value !== "") && self.fireEvent(BI.ColorPickerEditor.EVENT_CHANGE); } }], ref: function (_ref) { diff --git a/src/case/colorchooser/colorpicker/editor.colorpicker.js b/src/case/colorchooser/colorpicker/editor.colorpicker.js index 4be3375a4..9d0dbbca0 100644 --- a/src/case/colorchooser/colorpicker/editor.colorpicker.js +++ b/src/case/colorchooser/colorpicker/editor.colorpicker.js @@ -72,16 +72,9 @@ BI.ColorPickerEditor = BI.inherit(BI.Widget, { title: BI.i18nText("BI-Basic_Auto") }); this.none.on(BI.IconButton.EVENT_CHANGE, function () { - if (this.isSelected()) { - self.lastColor = self.getValue(); - self.setValue(""); - } else { - self.setValue(self.lastColor || "#ffffff"); - } - if ((self.R.isValid() && self.G.isValid() && self.B.isValid()) || self._isEmptyRGB()) { - self.colorShow.element.css("background-color", self.getValue()); - self.fireEvent(BI.ColorPickerEditor.EVENT_CHANGE); - } + var value = self.getValue(); + self.setValue(""); + (value !== "") && self.fireEvent(BI.ColorPickerEditor.EVENT_CHANGE); }); this.transparent = BI.createWidget({ @@ -94,20 +87,9 @@ BI.ColorPickerEditor = BI.inherit(BI.Widget, { title: BI.i18nText("BI-Transparent_Color") }); this.transparent.on(BI.IconButton.EVENT_CHANGE, function () { - if (this.isSelected()) { - self.lastColor = self.getValue(); - self.setValue("transparent"); - } else { - if (self.lastColor === "transparent") { - self.lastColor = ""; - } - self.setValue(self.lastColor || "#ffffff"); - } - if ((self.R.isValid() && self.G.isValid() && self.B.isValid()) || - self._isEmptyRGB()) { - self.colorShow.element.css("background-color", self.getValue()); - self.fireEvent(BI.ColorPickerEditor.EVENT_CHANGE); - } + var value = self.getValue(); + self.setValue("transparent"); + (value !== "transparent") && self.fireEvent(BI.ColorPickerEditor.EVENT_CHANGE); }); BI.createWidget({ diff --git a/src/case/combo/bubblecombo/combo.bubble.js b/src/case/combo/bubblecombo/combo.bubble.js index dcf6f62e0..8a0af89b3 100644 --- a/src/case/combo/bubblecombo/combo.bubble.js +++ b/src/case/combo/bubblecombo/combo.bubble.js @@ -16,6 +16,7 @@ BI.BubbleCombo = BI.inherit(BI.Widget, { direction: "bottom,left", // top||bottom||left||right||top,left||top,right||bottom,left||bottom,right isDefaultInit: false, destroyWhenHide: false, + hideWhenBlur: true, isNeedAdjustHeight: true, // 是否需要高度调整 isNeedAdjustWidth: true, stopPropagation: false, @@ -40,6 +41,7 @@ BI.BubbleCombo = BI.inherit(BI.Widget, { container: o.container, direction: o.direction, isDefaultInit: o.isDefaultInit, + hideWhenBlur: o.hideWhenBlur, destroyWhenHide: o.destroyWhenHide, hideWhenAnotherComboOpen: o.hideWhenAnotherComboOpen, isNeedAdjustHeight: o.isNeedAdjustHeight, diff --git a/src/case/combo/editoriconcheckcombo/combo.editiconcheck.js b/src/case/combo/editoriconcheckcombo/combo.editiconcheck.js index 8ab27cf1a..28c57a2e9 100644 --- a/src/case/combo/editoriconcheckcombo/combo.editiconcheck.js +++ b/src/case/combo/editoriconcheckcombo/combo.editiconcheck.js @@ -64,6 +64,7 @@ BI.EditorIconCheckCombo = BI.inherit(BI.Widget, { this.editorIconCheckCombo = BI.createWidget({ type: "bi.combo", container: o.container, + direction: o.direction, element: this, adjustLength: 2, el: this.trigger, diff --git a/src/case/combo/icontextvaluecombo/combo.icontextvalue.js b/src/case/combo/icontextvaluecombo/combo.icontextvalue.js index d114dddee..118138779 100644 --- a/src/case/combo/icontextvaluecombo/combo.icontextvalue.js +++ b/src/case/combo/icontextvaluecombo/combo.icontextvalue.js @@ -52,6 +52,7 @@ BI.IconTextValueCombo = BI.inherit(BI.Widget, { type: "bi.combo", element: this, container: o.container, + direction: o.direction, adjustLength: 2, el: this.trigger, popup: { diff --git a/src/case/combo/textvaluecheckcombo/combo.textvaluecheck.js b/src/case/combo/textvaluecheckcombo/combo.textvaluecheck.js index 996e7adf6..530cc2a01 100644 --- a/src/case/combo/textvaluecheckcombo/combo.textvaluecheck.js +++ b/src/case/combo/textvaluecheckcombo/combo.textvaluecheck.js @@ -44,6 +44,7 @@ BI.TextValueCheckCombo = BI.inherit(BI.Widget, { this.textIconCheckCombo = BI.createWidget({ type: "bi.combo", container: o.container, + direction: o.direction, element: this, adjustLength: 2, el: this.trigger, @@ -82,4 +83,4 @@ BI.TextValueCheckCombo = BI.inherit(BI.Widget, { } }); BI.TextValueCheckCombo.EVENT_CHANGE = "EVENT_CHANGE"; -BI.shortcut("bi.text_value_check_combo", BI.TextValueCheckCombo); \ No newline at end of file +BI.shortcut("bi.text_value_check_combo", BI.TextValueCheckCombo); diff --git a/src/case/combo/textvaluecombo/combo.textvalue.js b/src/case/combo/textvaluecombo/combo.textvalue.js index b0ff081b7..b0242a64d 100644 --- a/src/case/combo/textvaluecombo/combo.textvalue.js +++ b/src/case/combo/textvaluecombo/combo.textvalue.js @@ -46,6 +46,7 @@ BI.TextValueCombo = BI.inherit(BI.Widget, { this.textIconCombo = BI.createWidget({ type: "bi.combo", container: o.container, + direction: o.direction, element: this, adjustLength: 2, el: this.trigger, diff --git a/src/case/loading/loading_pane.js b/src/case/loading/loading_pane.js deleted file mode 100644 index 2218685c5..000000000 --- a/src/case/loading/loading_pane.js +++ /dev/null @@ -1,31 +0,0 @@ -/** - * author: young - * createdDate: 2018/12/18 - * description: - */ -BI.LoadingPane = BI.inherit(BI.Pane, { - _mount: function () { - var isMounted = BI.Pane.superclass._mount.apply(this, arguments); - if (isMounted) { - if (this.beforeInit) { - this.__asking = true; - this.loading(); - this.beforeInit(BI.bind(this.__loaded, this)); - } - } - }, - - _initRender: function () { - if (this.beforeInit) { - this.__async = true; - } else { - this._render(); - } - }, - - __loaded: function () { - this.__asking = false; - this.loaded(); - this._render(); - } -}); \ No newline at end of file diff --git a/src/core/4.widget.js b/src/core/4.widget.js index 94a2fe6e8..c3d1e0bc5 100644 --- a/src/core/4.widget.js +++ b/src/core/4.widget.js @@ -128,8 +128,7 @@ } renderCallbackCalled = true; self._render(); - self._afterRender(); - self.__async = false; + self.__afterRender(); } if (self.options.beforeRender || self.beforeRender) { @@ -137,7 +136,7 @@ (self.options.beforeRender || self.beforeRender).call(self, render); } else { self._render(); - self._afterRender(); + self.__afterRender(); } } @@ -149,13 +148,17 @@ } }, - _afterRender: function () { + __afterRender: function () { pushTarget(this); - this.__async === true && this._isMounted && callLifeHook(this, "beforeMount"); - this._mount(); - if (this.__async === true && this._isMounted) { + var async = this.__async; + this.__async = false; + if (async && this._isMounted) { + callLifeHook(this, "beforeMount"); + this._mount(); callLifeHook(this, "mounted"); this.fireEvent(BI.Events.MOUNT); + } else { + this._mount(); } popTarget(); }, @@ -330,49 +333,6 @@ } }, - // _initVNode: function () { - // if (this.options.vdom) { - // var div = document.createElement("div"); - // var element = this.element; - // element.append(div); - // this.vnode = this._renderVNode(); - // BI.patchVNode(div, this.vnode); - // // 去除这个临时的div - // BI.DOM.hang([div]); - // element.attr("style", this.vnode.elm.getAttribute("style")); - // element.addClass(this.vnode.elm.getAttribute("class")); - // element.empty(); - // BI.each(BI.jQuery(this.vnode.elm).children(), function (i, node) { - // element.append(node); - // }); - // return true; - // } - // return false; - // }, - - // _renderVNode: function () { - // var self = this; - // var render = BI.isFunction(this.options.render) ? this.options.render : this.render; - // var els = render && render.call(this); - // els = BI.Plugin.getRender(this.options.type, els); - // if (BI.isPlainObject(els)) { - // els = [els]; - // } - // if (BI.isArray(els)) { - // var container = document.createElement("div"); - // this._children = {}; - // BI.each(els, function (i, el) { - // if (el) { - // var w = BI._lazyCreateWidget(el, { - // element: container - // }); - // self.addWidget(w); - // } - // }); - // } - // return BI.Element2Vnode(container); - // }, - _setParent: function (parent) { this._parent = parent; }, @@ -806,7 +766,7 @@ BI.onBeforeMount = function (beforeMount) { if (current) { - if(current.__isMounting){ + if (current.__isMounting) { beforeMount(); return; } @@ -820,7 +780,7 @@ }; BI.onMounted = function (mounted) { if (current) { - if(current._isMounted && !this.__async){ + if (current._isMounted && !this.__async) { mounted(); return; } diff --git a/src/core/6.inject.js b/src/core/6.inject.js index b60093e31..ed4d1165b 100644 --- a/src/core/6.inject.js +++ b/src/core/6.inject.js @@ -397,7 +397,7 @@ if (!providers[type]) { providers[type] = new providerInjection[type](); } - if (!providerInstance[type]) { + if (!providerInstance[type] && providers[type].$get) { providerInstance[type] = new (providers[type].$get())(config); } return providerInstance[type]; diff --git a/src/core/9.popper.js b/src/core/8.popper.js similarity index 100% rename from src/core/9.popper.js rename to src/core/8.popper.js diff --git a/src/core/10.worker.js b/src/core/9.worker.js similarity index 100% rename from src/core/10.worker.js rename to src/core/9.worker.js diff --git a/src/core/constant/var.js b/src/core/constant/var.js index a5bad8f77..cc767737b 100644 --- a/src/core/constant/var.js +++ b/src/core/constant/var.js @@ -6,6 +6,7 @@ _.extend(BI, { MAX: 0xfffffffffffffff, MIN: -0xfffffffffffffff, EVENT_RESPONSE_TIME: 200, + EVENT_BLUR: true, zIndex_layer: 1e5, zIndex_popover: 1e6, zIndex_popup: 1e7, diff --git a/src/core/wrapper/layout.js b/src/core/wrapper/layout.js index 01ff69be8..04ffa4fa4 100644 --- a/src/core/wrapper/layout.js +++ b/src/core/wrapper/layout.js @@ -240,8 +240,8 @@ BI.Layout = BI.inherit(BI.Widget, { var w = this._newElement(newIndex, item); // 需要有个地方临时存一下新建的组件,否则如果直接使用newIndex的话,newIndex位置的元素可能会被用到 this._children[this._getChildName(newIndex) + "-temp"] = w; - var nextSibling = del.element[0].nextSibling; - if (nextSibling) { + var nextSibling = del.element.next(); + if (nextSibling.length > 0) { BI.Widget._renderEngine.createElement(nextSibling).before(w.element); } else { w.element.appendTo(this._getWrapper()); @@ -420,6 +420,7 @@ BI.Layout = BI.inherit(BI.Widget, { var shouldUpdate = this.shouldUpdateItem(oldIndex, vnode); var child = this._children[this._getChildName(oldIndex)]; if (shouldUpdate) { + this._children[this._getChildName(newIndex) + "-temp"] = child; return child._update(this._getOptions(vnode), shouldUpdate); } if (shouldUpdate === null && !this._compare(oldVnode, vnode)) { diff --git a/src/less/base/segment/button.segment.less b/src/less/base/segment/button.segment.less index fa24f8331..4a5597ce6 100644 --- a/src/less/base/segment/button.segment.less +++ b/src/less/base/segment/button.segment.less @@ -2,14 +2,14 @@ .bi-segment-button { color: @color-bi-text-highlight; - &.active { - &:active { - color: @color-bi-text; - background-color: @color-bi-background-highlight; - } - } - &:active { - color: @color-bi-text-highlight; - .background-color(@color-bi-background-highlight, 10%); - } -} \ No newline at end of file + //&.active { + // &:active { + // color: @color-bi-text; + // background-color: @color-bi-background-highlight; + // } + //} + //&:active { + // color: @color-bi-text-highlight; + // .background-color(@color-bi-background-highlight, 10%); + //} +} diff --git a/src/less/base/single/tip/tip.toast.less b/src/less/base/single/tip/tip.toast.less index ef682969a..6ac76d4a6 100644 --- a/src/less/base/single/tip/tip.toast.less +++ b/src/less/base/single/tip/tip.toast.less @@ -4,6 +4,7 @@ color: @color-bi-text; max-width: 400px; min-width: 150px; + line-height: @font-size-16; .border-radius(2px); &.toast-success{ background: @color-bi-background-toast-success; diff --git a/src/less/core/utils/list-item.less b/src/less/core/utils/list-item.less index f6e1a4549..8964830cd 100644 --- a/src/less/core/utils/list-item.less +++ b/src/less/core/utils/list-item.less @@ -337,13 +337,69 @@ } } +// hover的时候背景变化 -- 变灰 +// active的时候文字高亮背景变化 -- 变灰 +.bi-list-item-active3, .bi-list-item-select3 { + &:hover, &.hover { + background-color: @color-bi-background-normal; + } + &:active, &.active { + color: @color-bi-text-highlight; + & .bi-input { + color: @color-bi-text-highlight; + } + & .bi-textarea { + color: @color-bi-text-highlight; + } + background-color: @color-bi-background-normal; + } + &.disabled { + &:hover, &.hover, &:active, &.active { + background-color: @color-bi-background-default !important; + } + } +} + +.bi-theme-dark { + .bi-list-item-active3, .bi-list-item-select3 { + &:hover, &.hover { + background-color: @color-bi-background-normal-theme-dark; + } + &:active, &.active { + color: @color-bi-text-highlight; + & .bi-input { + color: @color-bi-text-highlight; + } + & .bi-textarea { + color: @color-bi-text-highlight; + } + background-color: @color-bi-background-normal-theme-dark; + } + &.disabled { + &:hover, &.hover, &:active, &.active { + background-color: @color-bi-background-default-theme-dark !important; + } + } + } +} + // hover的时候背景变化 // active的时候背景高亮 .bi-list-item-select { &:hover, &.hover { .background-color(@color-bi-background-highlight, 10%); } - &:active, &.active { + &:active { + color: @color-bi-text-highlight; + & .bi-input { + color: @color-bi-text-highlight; + } + & .bi-textarea { + color: @color-bi-text-highlight; + } + .background-color(@color-bi-background-highlight, 15%); + } + &.active { color: @color-bi-text; & .bi-input { color: @color-bi-text; @@ -471,7 +527,17 @@ } .background-color(@color-bi-background-default, 5%); } - &:active, &.active { + &:active { + color: @color-bi-text; + & .bi-input { + color: @color-bi-text; + } + & .bi-textarea { + color: @color-bi-text; + } + .background-color(@color-bi-background-default, 5%); + } + &.active { color: @color-bi-text; & .bi-input { color: @color-bi-text; @@ -600,52 +666,6 @@ } } -// hover的时候背景变化 -- 变灰 -// active的时候文字高亮背景变化 -- 变灰 -.bi-list-item-select3 { - &:hover, &.hover { - background-color: @color-bi-background-normal; - } - &:active, &.active { - color: @color-bi-text-highlight; - & .bi-input { - color: @color-bi-text-highlight; - } - & .bi-textarea { - color: @color-bi-text-highlight; - } - background-color: @color-bi-background-normal; - } - &.disabled { - &:hover, &.hover, &:active, &.active { - background-color: @color-bi-background-default !important; - } - } -} - -.bi-theme-dark { - .bi-list-item-select3 { - &:hover, &.hover { - background-color: @color-bi-background-normal-theme-dark; - } - &:active, &.active { - color: @color-bi-text-highlight; - & .bi-input { - color: @color-bi-text-highlight; - } - & .bi-textarea { - color: @color-bi-text-highlight; - } - background-color: @color-bi-background-normal-theme-dark; - } - &.disabled { - &:hover, &.hover, &:active, &.active { - background-color: @color-bi-background-default-theme-dark !important; - } - } - } -} - // 去掉list-item效果 .bi-list-item-none { &:hover, &.hover { diff --git a/src/less/lib/background.less b/src/less/lib/background.less index 8d9221621..1f291a5fe 100644 --- a/src/less/lib/background.less +++ b/src/less/lib/background.less @@ -7,7 +7,7 @@ @background-trans-color: "background/trans_normal.png"; @background-trans-color-disabled: "background/trans_disable.png"; @background-auto-color-square-normal: "icon/auto_square_normal.png"; -@background-auto-color-no-square-normal: "icon/auto_no_square_normal"; +@background-auto-color-no-square-normal: "icon/auto_no_square_normal.png"; @background-farbtastic-wheel:"background/wheel.png"; @background-farbtastic-overlay:"background/mask.png"; diff --git a/src/widget/date/calendar/picker.date.js b/src/widget/date/calendar/picker.date.js index 458da3d7d..369982dfa 100644 --- a/src/widget/date/calendar/picker.date.js +++ b/src/widget/date/calendar/picker.date.js @@ -11,31 +11,32 @@ BI.DatePicker = BI.inherit(BI.Widget, { baseCls: "bi-date-picker", height: 40, min: "1900-01-01", // 最小日期 - max: "2099-12-31", // 最大日期 + max: "2099-12-31" // 最大日期 }); }, _init: function () { BI.DatePicker.superclass._init.apply(this, arguments); - var self = this; var o = this.options; + var self = this; + var o = this.options; this._year = BI.getDate().getFullYear(); this._month = BI.getDate().getMonth() + 1; this.left = BI.createWidget({ type: "bi.icon_button", cls: "pre-page-h-font", width: 24, - height: 24, + height: 24 }); this.left.on(BI.IconButton.EVENT_CHANGE, function () { if (self._month === 1) { self.setValue({ year: (self.year.getValue() - 1) || (BI.getDate().getFullYear() - 1), - month: 12, + month: 12 }); } else { self.setValue({ year: self.year.getValue() || BI.getDate().getFullYear(), - month: (self.month.getValue() - 1) || BI.getDate().getMonth(), + month: (self.month.getValue() - 1) || BI.getDate().getMonth() }); } self.fireEvent(BI.DatePicker.EVENT_CHANGE); @@ -47,19 +48,19 @@ BI.DatePicker = BI.inherit(BI.Widget, { type: "bi.icon_button", cls: "next-page-h-font", width: 24, - height: 24, + height: 24 }); this.right.on(BI.IconButton.EVENT_CHANGE, function () { if (self._month === 12) { self.setValue({ year: (self.year.getValue() + 1) || (BI.getDate().getFullYear() + 1), - month: 1, + month: 1 }); } else { self.setValue({ year: self.year.getValue() || BI.getDate().getFullYear(), - month: (self.month.getValue() + 1) || (BI.getDate().getMonth() + 2), + month: (self.month.getValue() + 1) || (BI.getDate().getMonth() + 2) }); } self.fireEvent(BI.DatePicker.EVENT_CHANGE); @@ -71,7 +72,7 @@ BI.DatePicker = BI.inherit(BI.Widget, { type: "bi.year_date_combo", behaviors: o.behaviors, min: o.min, - max: o.max, + max: o.max }); this.year.on(BI.YearDateCombo.EVENT_CHANGE, function () { self.setValue({ @@ -91,7 +92,7 @@ BI.DatePicker = BI.inherit(BI.Widget, { this.month.on(BI.MonthDateCombo.EVENT_CHANGE, function () { self.setValue({ year: self.year.getValue() || self._year, - month: self.month.getValue(), + month: self.month.getValue() }); self.fireEvent(BI.DatePicker.EVENT_CHANGE); }); @@ -105,33 +106,26 @@ BI.DatePicker = BI.inherit(BI.Widget, { items: [{ el: { type: "bi.center_adapt", - items: [this.left], + items: [this.left] }, - width: 24, + width: 24 }, { - type: "bi.center_adapt", - items: [{ - el: { - type: "bi.horizontal", - width: 120, - rgap: 10, - items: [{ - el: this.year, - lgap: 10, - }, this.month], - }, - }], + el: { + type: "bi.center_adapt", + hgap: 10, + items: [this.year, this.month] + } }, { el: { type: "bi.center_adapt", - items: [this.right], + items: [this.right] }, - width: 24, - }], + width: 24 + }] }); this.setValue({ year: this._year, - month: this._month, + month: this._month }); }, @@ -177,7 +171,7 @@ BI.DatePicker = BI.inherit(BI.Widget, { return valid; }, - _getCheckMinMaxDate: function() { + _getCheckMinMaxDate: function () { var o = this.options; var minDate = BI.parseDateTime(o.min, "%Y-%X-%d"); var maxDate = BI.parseDateTime(o.max, "%Y-%X-%d"); @@ -219,9 +213,9 @@ BI.DatePicker = BI.inherit(BI.Widget, { getValue: function () { return { year: this.year.getValue(), - month: this.month.getValue(), + month: this.month.getValue() }; - }, + } }); BI.DatePicker.EVENT_CHANGE = "EVENT_CHANGE"; BI.DatePicker.EVENT_BEFORE_YEAR_MONTH_POPUPVIEW = "EVENT_BEFORE_YEAR_MONTH_POPUPVIEW"; diff --git a/src/widget/date/calendar/popup.calendar.date.js b/src/widget/date/calendar/popup.calendar.date.js index 9ddf99649..1a353afef 100644 --- a/src/widget/date/calendar/popup.calendar.date.js +++ b/src/widget/date/calendar/popup.calendar.date.js @@ -88,7 +88,7 @@ BI.DateCalendarPopup = BI.inherit(BI.Widget, { items: [{ el: this.calendar, hgap: 5, - bgap: 12 + bgap: 7 }] }, { type: "bi.absolute", @@ -148,4 +148,4 @@ BI.DateCalendarPopup = BI.inherit(BI.Widget, { }); BI.DateCalendarPopup.EVENT_CHANGE = "EVENT_CHANGE"; BI.DateCalendarPopup.EVENT_BEFORE_YEAR_MONTH_POPUPVIEW = "EVENT_BEFORE_YEAR_MONTH_POPUPVIEW"; -BI.shortcut("bi.date_calendar_popup", BI.DateCalendarPopup); \ No newline at end of file +BI.shortcut("bi.date_calendar_popup", BI.DateCalendarPopup); diff --git a/src/widget/dynamicdate/dynamicdate.combo.js b/src/widget/dynamicdate/dynamicdate.combo.js index ef010b87f..c587425cb 100644 --- a/src/widget/dynamicdate/dynamicdate.combo.js +++ b/src/widget/dynamicdate/dynamicdate.combo.js @@ -30,7 +30,7 @@ BI.DynamicDateCombo = BI.inherit(BI.Single, { this.storeTriggerValue = ""; var date = BI.getDate(); this.storeValue = opts.value; - + return { type: "bi.absolute", items: [{ @@ -250,10 +250,10 @@ BI.DynamicDateCombo = BI.inherit(BI.Single, { self.comboWrapper = _ref; } }, - top: 1, - left: 1, - right: 1, - bottom: 1 + top: 0, + left: 0, + right: 0, + bottom: 0 }] }; }, @@ -289,7 +289,7 @@ BI.DynamicDateCombo = BI.inherit(BI.Single, { return BI.isNotEmptyObject(v.value); case BI.DynamicDateCombo.Static: var value = v.value || {}; - + return !BI.checkDateVoid(value.year, value.month, value.day, o.minDate, o.maxDate)[0]; default: return true; diff --git a/src/widget/dynamicdatetime/dynamicdatetime.combo.js b/src/widget/dynamicdatetime/dynamicdatetime.combo.js index bc0f71c44..ae201b041 100644 --- a/src/widget/dynamicdatetime/dynamicdatetime.combo.js +++ b/src/widget/dynamicdatetime/dynamicdatetime.combo.js @@ -30,7 +30,7 @@ BI.DynamicDateTimeCombo = BI.inherit(BI.Single, { this.storeTriggerValue = ""; var date = BI.getDate(); this.storeValue = opts.value; - + return { type: "bi.absolute", items: [{ @@ -259,10 +259,10 @@ BI.DynamicDateTimeCombo = BI.inherit(BI.Single, { self.comboWrapper = _ref; } }, - top: 1, - left: 1, - right: 1, - bottom: 1 + top: 0, + left: 0, + right: 0, + bottom: 0 }] }; }, diff --git a/src/widget/multiselect/check/multiselect.check.pane.js b/src/widget/multiselect/check/multiselect.check.pane.js index d9b2b8b9c..958375876 100644 --- a/src/widget/multiselect/check/multiselect.check.pane.js +++ b/src/widget/multiselect/check/multiselect.check.pane.js @@ -39,6 +39,7 @@ BI.MultiSelectCheckPane = BI.inherit(BI.Widget, { callback({ items: BI.map(self.storeValue.value, function (i, v) { var txt = opts.valueFormatter(v) || v; + return { text: txt, value: v, @@ -46,6 +47,7 @@ BI.MultiSelectCheckPane = BI.inherit(BI.Widget, { }; }) }); + return; } opts.itemsCreator(op, callback); @@ -54,6 +56,7 @@ BI.MultiSelectCheckPane = BI.inherit(BI.Widget, { this.continueSelect = BI.createWidget({ type: "bi.text_button", + title: BI.i18nText("BI-Continue_Select"), text: BI.i18nText("BI-Continue_Select"), cls: "multi-select-check-selected bi-high-light" }); @@ -69,18 +72,20 @@ BI.MultiSelectCheckPane = BI.inherit(BI.Widget, { height: this.constants.height, el: { type: "bi.vertical_adapt", + columnSize: ["auto", "auto"], cls: "multi-select-continue-select", items: [ { el: { type: "bi.label", + title: BI.i18nText("BI-Selected_Data"), text: BI.i18nText("BI-Selected_Data") }, lgap: this.constants.lgap }, { el: this.continueSelect, - lgap: this.constants.lgap + hgap: this.constants.lgap }] }, tgap: this.constants.tgap @@ -105,4 +110,4 @@ BI.MultiSelectCheckPane = BI.inherit(BI.Widget, { } }); -BI.shortcut("bi.multi_select_check_pane", BI.MultiSelectCheckPane); \ No newline at end of file +BI.shortcut("bi.multi_select_check_pane", BI.MultiSelectCheckPane); diff --git a/src/widget/multiselect/multiselect.insert.combo.nobar.js b/src/widget/multiselect/multiselect.insert.combo.nobar.js index 226cc5260..fe1293a5c 100644 --- a/src/widget/multiselect/multiselect.insert.combo.nobar.js +++ b/src/widget/multiselect/multiselect.insert.combo.nobar.js @@ -401,7 +401,7 @@ BI.MultiSelectInsertNoBarCombo = BI.inherit(BI.Single, { callback(); function adjust () { if (self.wants2Quit === true) { - self.fireEvent(BI.MultiSelectInsertNoBarCombo.EVENT_CONFIRM); + self._dataChange && self.fireEvent(BI.MultiSelectInsertNoBarCombo.EVENT_CONFIRM); self.wants2Quit = false; } self.requesting = false; diff --git a/src/widget/multitree/check/multi.tree.check.pane.js b/src/widget/multitree/check/multi.tree.check.pane.js index b73f8d1ec..598a19f21 100644 --- a/src/widget/multitree/check/multi.tree.check.pane.js +++ b/src/widget/multitree/check/multi.tree.check.pane.js @@ -30,6 +30,7 @@ BI.MultiTreeCheckPane = BI.inherit(BI.Pane, { var continueSelect = BI.createWidget({ type: "bi.text_button", + title: BI.i18nText("BI-Continue_Select"), text: BI.i18nText("BI-Continue_Select"), cls: "multi-tree-check-selected" }); @@ -41,12 +42,14 @@ BI.MultiTreeCheckPane = BI.inherit(BI.Pane, { }); var backToPopup = BI.createWidget({ - type: "bi.left", + type: "bi.vertical_adapt", + columnSize: ["auto", "auto"], cls: "multi-tree-continue-select", items: [ { el: { type: "bi.label", + title: BI.i18nText("BI-Selected_Data"), text: BI.i18nText("BI-Selected_Data") }, lgap: this.constants.lgap, @@ -54,7 +57,7 @@ BI.MultiTreeCheckPane = BI.inherit(BI.Pane, { }, { el: continueSelect, - lgap: this.constants.lgap, + hgap: this.constants.lgap, tgap: this.constants.tgap }] }); @@ -92,7 +95,6 @@ BI.MultiTreeCheckPane = BI.inherit(BI.Pane, { el: this.display }] }); - }, empty: function () { @@ -116,4 +118,4 @@ BI.MultiTreeCheckPane = BI.inherit(BI.Pane, { BI.MultiTreeCheckPane.EVENT_CONTINUE_CLICK = "EVENT_CONTINUE_CLICK"; -BI.shortcut("bi.multi_tree_check_pane", BI.MultiTreeCheckPane); \ No newline at end of file +BI.shortcut("bi.multi_tree_check_pane", BI.MultiTreeCheckPane); diff --git a/src/widget/searchmultitextvaluecombo/multitextvalue.combo.search.js b/src/widget/searchmultitextvaluecombo/multitextvalue.combo.search.js index def624c1b..cb7fddf9a 100644 --- a/src/widget/searchmultitextvaluecombo/multitextvalue.combo.search.js +++ b/src/widget/searchmultitextvaluecombo/multitextvalue.combo.search.js @@ -333,7 +333,7 @@ BI.SearchMultiTextValueCombo = BI.inherit(BI.Single, { self._updateAllValue(); self._checkError(); if (self.wants2Quit === true) { - self.fireEvent(BI.SearchMultiTextValueCombo.EVENT_CONFIRM); + self._dataChange && self.fireEvent(BI.SearchMultiTextValueCombo.EVENT_CONFIRM); self.wants2Quit = false; } self.requesting = false; diff --git a/src/widget/singleselect/singleselect.combo.js b/src/widget/singleselect/singleselect.combo.js index 00f3ec366..729b666ef 100644 --- a/src/widget/singleselect/singleselect.combo.js +++ b/src/widget/singleselect/singleselect.combo.js @@ -64,6 +64,7 @@ BI.SingleSelectCombo = BI.inherit(BI.Single, { self.fireEvent(BI.SingleSelectCombo.EVENT_STOP); }); this.trigger.on(BI.SingleSelectTrigger.EVENT_SEARCHING, function () { + self._dataChange = true; self.fireEvent(BI.SingleSelectCombo.EVENT_SEARCHING); }); @@ -71,6 +72,7 @@ BI.SingleSelectCombo = BI.inherit(BI.Single, { self.storeValue = this.getValue(); assertShowValue(); self._defaultState(); + self._dataChange = true; }); this.trigger.on(BI.SingleSelectTrigger.EVENT_COUNTER_CLICK, function () { if (!self.combo.isViewVisible()) { @@ -95,6 +97,7 @@ BI.SingleSelectCombo = BI.inherit(BI.Single, { listeners: [{ eventName: BI.SingleSelectPopupView.EVENT_CHANGE, action: function () { + self._dataChange = true; self.storeValue = this.getValue(); self._adjust(function () { assertShowValue(); @@ -120,6 +123,9 @@ BI.SingleSelectCombo = BI.inherit(BI.Single, { }); this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () { + if (!this.isViewVisible()) { + self._dataChange = false;// 标记数据是否发生变化 + } this.setValue(self.storeValue); BI.nextTick(function () { self.populate(); @@ -133,7 +139,7 @@ BI.SingleSelectCombo = BI.inherit(BI.Single, { if (self.requesting === true) { self.wants2Quit = true; } else { - self.fireEvent(BI.SingleSelectCombo.EVENT_CONFIRM); + self._dataChange && self.fireEvent(BI.SingleSelectCombo.EVENT_CONFIRM); } }); @@ -173,7 +179,8 @@ BI.SingleSelectCombo = BI.inherit(BI.Single, { this.combo.hideView(); }, - _assertValue: function (val) {}, + _assertValue: function (val) { + }, _makeMap: function (values) { return BI.makeObject(values || []); @@ -220,7 +227,7 @@ BI.SingleSelectCombo = BI.inherit(BI.Single, { function adjust () { if (self.wants2Quit === true) { - self.fireEvent(BI.SingleSelectCombo.EVENT_CONFIRM); + self._dataChange && self.fireEvent(BI.SingleSelectCombo.EVENT_CONFIRM); self.wants2Quit = false; } self.requesting = false; diff --git a/src/widget/singleselect/singleselect.insert.combo.js b/src/widget/singleselect/singleselect.insert.combo.js index d94f97197..fc5d7db7a 100644 --- a/src/widget/singleselect/singleselect.insert.combo.js +++ b/src/widget/singleselect/singleselect.insert.combo.js @@ -75,6 +75,7 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, { self._defaultState(); }); this.trigger.on(BI.SingleSelectTrigger.EVENT_SEARCHING, function () { + self._dataChange = true; self.fireEvent(BI.SingleSelectInsertCombo.EVENT_SEARCHING); }); @@ -82,6 +83,7 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, { self.storeValue = this.getValue(); assertShowValue(); self._defaultState(); + self._dataChange = true; }); this.trigger.on(BI.SingleSelectTrigger.EVENT_COUNTER_CLICK, function () { if (!self.combo.isViewVisible()) { @@ -106,6 +108,7 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, { listeners: [{ eventName: BI.SingleSelectPopupView.EVENT_CHANGE, action: function () { + self._dataChange = true; self.storeValue = this.getValue(); self._adjust(function () { assertShowValue(); @@ -131,6 +134,9 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, { }); this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () { + if (!this.isViewVisible()) { + self._dataChange = false;// 标记数据是否发生变化 + } this.setValue(self.storeValue); BI.nextTick(function () { self.populate(); @@ -144,7 +150,7 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, { if (self.requesting === true) { self.wants2Quit = true; } else { - self.fireEvent(BI.SingleSelectInsertCombo.EVENT_CONFIRM); + self._dataChange && self.fireEvent(BI.SingleSelectInsertCombo.EVENT_CONFIRM); } }); @@ -198,7 +204,7 @@ BI.SingleSelectInsertCombo = BI.inherit(BI.Single, { function adjust () { if (self.wants2Quit === true) { - self.fireEvent(BI.SingleSelectInsertCombo.EVENT_CONFIRM); + self._dataChange && self.fireEvent(BI.SingleSelectInsertCombo.EVENT_CONFIRM); self.wants2Quit = false; } self.requesting = false; @@ -237,4 +243,4 @@ BI.SingleSelectInsertCombo.EVENT_SEARCHING = "EVENT_SEARCHING"; BI.SingleSelectInsertCombo.EVENT_CLICK_ITEM = "EVENT_CLICK_ITEM"; BI.SingleSelectInsertCombo.EVENT_CONFIRM = "EVENT_CONFIRM"; -BI.shortcut("bi.single_select_insert_combo", BI.SingleSelectInsertCombo); \ No newline at end of file +BI.shortcut("bi.single_select_insert_combo", BI.SingleSelectInsertCombo); diff --git a/src/widget/timeinterval/dateinterval.js b/src/widget/timeinterval/dateinterval.js index 69a5b9c87..ca6895301 100644 --- a/src/widget/timeinterval/dateinterval.js +++ b/src/widget/timeinterval/dateinterval.js @@ -73,6 +73,7 @@ BI.DateInterval = BI.inherit(BI.Single, { minDate: o.minDate, maxDate: o.maxDate, behaviors: o.behaviors, + watermark: o.watermark, value: v, height: o.height, listeners: [{ diff --git a/src/widget/timeinterval/timeinterval.js b/src/widget/timeinterval/timeinterval.js index 14367889f..56a9df8fb 100644 --- a/src/widget/timeinterval/timeinterval.js +++ b/src/widget/timeinterval/timeinterval.js @@ -73,6 +73,7 @@ BI.TimeInterval = BI.inherit(BI.Single, { minDate: o.minDate, maxDate: o.maxDate, behaviors: o.behaviors, + watermark: o.watermark, value: v, height: o.height, }); diff --git a/src/widget/year/combo.year.js b/src/widget/year/combo.year.js index b23b660e4..eb94f34b9 100644 --- a/src/widget/year/combo.year.js +++ b/src/widget/year/combo.year.js @@ -141,10 +141,10 @@ BI.DynamicYearCombo = BI.inherit(BI.Widget, { width: o.height - 2 }, this.combo] }, - top: 1, - left: 1, - right: 1, - bottom: 1 + top: 0, + left: 0, + right: 0, + bottom: 0 }] }); this._checkDynamicValue(o.value); diff --git a/src/widget/yearmonth/combo.yearmonth.js b/src/widget/yearmonth/combo.yearmonth.js index 761760e1a..4986f7928 100644 --- a/src/widget/yearmonth/combo.yearmonth.js +++ b/src/widget/yearmonth/combo.yearmonth.js @@ -145,10 +145,10 @@ BI.DynamicYearMonthCombo = BI.inherit(BI.Single, { width: o.height - 2 }, this.combo] }, - top: 1, - left: 1, - right: 1, - bottom: 1 + top: 0, + left: 0, + right: 0, + bottom: 0 }] }); this._checkDynamicValue(o.value); diff --git a/src/widget/yearquarter/combo.yearquarter.js b/src/widget/yearquarter/combo.yearquarter.js index 83c973702..85f093e69 100644 --- a/src/widget/yearquarter/combo.yearquarter.js +++ b/src/widget/yearquarter/combo.yearquarter.js @@ -145,10 +145,10 @@ BI.DynamicYearQuarterCombo = BI.inherit(BI.Widget, { width: o.height - 2 }, this.combo] }, - top: 1, - left: 1, - right: 1, - bottom: 1 + top: 0, + left: 0, + right: 0, + bottom: 0 }] }); this._checkDynamicValue(o.value); diff --git a/typescript/base/a/a.ts b/typescript/base/a/a.ts index 91e778dfd..08b76a5f9 100644 --- a/typescript/base/a/a.ts +++ b/typescript/base/a/a.ts @@ -4,5 +4,6 @@ export declare class A extends Text { static xtype: string; props: { href: string; + el: Obj; } & Text['props']; } diff --git a/typescript/base/single/button/listitem/icontextitem.ts b/typescript/base/single/button/listitem/icontextitem.ts index cde508fe8..5e3f3d6e9 100644 --- a/typescript/base/single/button/listitem/icontextitem.ts +++ b/typescript/base/single/button/listitem/icontextitem.ts @@ -10,6 +10,7 @@ export declare class IconTextItem extends BasicButton { dynamic: boolean; }; iconWrapperWidth?: number; + iconCls?: string; iconHeight?: number; iconWidth?: number; textHgap?: number; diff --git a/typescript/case/loading/loading_pane.ts b/typescript/case/loading/loading_pane.ts deleted file mode 100644 index 362c8f1b4..000000000 --- a/typescript/case/loading/loading_pane.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Pane } from "../../base/pane"; - -export declare class LoadingPane extends Pane { - __loaded: (...args: any[]) => void; -} diff --git a/typescript/index.ts b/typescript/index.ts index fdbae2aa0..6e6131a7d 100644 --- a/typescript/index.ts +++ b/typescript/index.ts @@ -24,7 +24,6 @@ import { SmallTextValueCombo } from './case/combo/combo.textvaluesmall'; import { SearchTextValueCombo } from "./case/combo/searchtextvaluecombo/combo.searchtextvalue"; import { SignEditor } from "./case/editor/editor.sign"; import { StateEditor } from './case/editor/editor.state'; -import { LoadingPane } from "./case/loading/loading_pane"; import { AllValueMultiTextValueCombo } from "./component/allvaluemultitextvaluecombo/allvalue.multitextvalue.combo"; import { AbstractTreeValueChooser } from "./component/treevaluechooser/abstract.treevaluechooser"; import { AbstractListTreeValueChooser } from "./component/treevaluechooser/abstract.treevaluechooser.list"; @@ -205,7 +204,6 @@ export interface BI extends _func, _i18n, _base, _inject, _var, _web, _utils { HighlightBehavior: typeof HighlightBehavior; RedMarkBehavior: typeof RedMarkBehavior; Pane: typeof Pane; - LoadingPane: typeof LoadingPane; Tab: typeof Tab; ButtonGroup: typeof ButtonGroup; Combo: typeof Combo; @@ -411,7 +409,6 @@ export { BehaviorFactory, RedMarkBehavior, HighlightBehavior, - LoadingPane, Searcher, AbstractLabel, Label, diff --git a/typescript/shims-tsx.ts b/typescript/shims-tsx.ts index fcafdf807..aa76c2e9d 100644 --- a/typescript/shims-tsx.ts +++ b/typescript/shims-tsx.ts @@ -19,6 +19,8 @@ interface UIProps { interface AdditionalProps { column: number; row: number; + innerVGap: number; + innerHGap: number; } interface ElementClassProps extends UIProps { diff --git a/typescript/widget/dynamicdate/dynamicdate.combo.ts b/typescript/widget/dynamicdate/dynamicdate.combo.ts index 3f19c3386..a7ead70cf 100644 --- a/typescript/widget/dynamicdate/dynamicdate.combo.ts +++ b/typescript/widget/dynamicdate/dynamicdate.combo.ts @@ -15,6 +15,18 @@ export declare class DynamicDateCombo extends Single { static EVENT_BEFORE_POPUPVIEW: string; static EVENT_BEFORE_YEAR_MONTH_POPUPVIEW: string; + props: { + minDate?: string; + maxDate?: string; + format?: string; + allowEdit?: boolean; + supportDynamic?: boolean; + attributes?: { + tabIndex?: number; + }; + watermark?: string; + } & Single['props'] + setMinDate(minDate: string): void; setMaxDate(maxDate: string): void; diff --git a/typescript/widget/dynamicdatetime/dynamicdatetime.combo.ts b/typescript/widget/dynamicdatetime/dynamicdatetime.combo.ts index 6236950c5..b6593b2a7 100644 --- a/typescript/widget/dynamicdatetime/dynamicdatetime.combo.ts +++ b/typescript/widget/dynamicdatetime/dynamicdatetime.combo.ts @@ -22,6 +22,7 @@ export declare class DynamicDateTimeCombo extends Single { attributes?: { tabIndex?: number; }; + watermark?: string; } & Single['props']; setMinDate(minDate: string): void; diff --git a/typescript/widget/editor/editor.multifile.ts b/typescript/widget/editor/editor.multifile.ts index f55abaf81..3a29e0960 100644 --- a/typescript/widget/editor/editor.multifile.ts +++ b/typescript/widget/editor/editor.multifile.ts @@ -19,6 +19,15 @@ export declare class MultifileEditor extends Widget { }[]; upload(): void; - + reset(): void; + + getQueue(): { + fileName: string; + lastModified: number; + lastModifiedDate: Date; + name: string; + size: number; + type: string; + }[]; } diff --git a/typescript/widget/singleselect/singleselect.insert.combo.ts b/typescript/widget/singleselect/singleselect.insert.combo.ts index 1924e5e8b..5c9f5d934 100644 --- a/typescript/widget/singleselect/singleselect.insert.combo.ts +++ b/typescript/widget/singleselect/singleselect.insert.combo.ts @@ -8,4 +8,13 @@ export declare class SingleSelectInsertCombo extends Single { static EVENT_SEARCHING: string; static EVENT_CLICK_ITEM: string; static EVENT_CONFIRM: string; + + props: { + text?: string, + allowNoSelect?: boolean, + itemsCreator?: Function, + valueFormatter?: Function, + allowEdit?: boolean, + watermark?: string, + } & Single['props'] } diff --git a/typescript/widget/timeinterval/dateinterval.ts b/typescript/widget/timeinterval/dateinterval.ts index bae50b238..31001fe6a 100644 --- a/typescript/widget/timeinterval/dateinterval.ts +++ b/typescript/widget/timeinterval/dateinterval.ts @@ -8,6 +8,13 @@ export declare class DateInterval extends Single { static EVENT_ERROR: string; static EVENT_BEFORE_YEAR_MONTH_POPUPVIEW: string; + props: { + minDate?: string; + maxDate?: string; + supportDynamic?: boolean; + watermark?: string; + } & Single['props'] + getValue(): { start: DynamicDataComboValue; end: DynamicDataComboValue; diff --git a/typescript/widget/timeinterval/timeinterval.ts b/typescript/widget/timeinterval/timeinterval.ts index 475ba688b..3f57695a4 100644 --- a/typescript/widget/timeinterval/timeinterval.ts +++ b/typescript/widget/timeinterval/timeinterval.ts @@ -7,6 +7,13 @@ export declare class TimeInterval extends Single { static EVENT_VALID: string; static EVENT_ERROR: string; + props: { + minDate?: string; + maxDate?: string; + supportDynamic?: boolean; + watermark?: string; + } & Single['props'] + getValue(): { start: DynamicDataComboValue; end: DynamicDataComboValue; diff --git a/webpack/attachments.js b/webpack/attachments.js index faacd3d7a..b463f5ee9 100644 --- a/webpack/attachments.js +++ b/webpack/attachments.js @@ -161,7 +161,7 @@ const fineuiProxy = [].concat( const fineuiWithoutJqueryAndPolyfillJs = [].concat( sync([ - "src/core/foundation.js", + "src/core/0.foundation.js", lodashJs, "src/core/**/*.js", "src/data/**/*.js",