From d391ed5550713ade658b3b96800d88cd9575cf9b Mon Sep 17 00:00:00 2001 From: guy Date: Mon, 22 May 2017 09:30:41 +0800 Subject: [PATCH] add --- bi/base.js | 7 +++++++ bi/case.js | 12 ++++++++++++ bi/widget.js | 4 +++- docs/base.js | 7 +++++++ docs/case.js | 12 ++++++++++++ docs/widget.js | 4 +++- src/base/single/button/button.basic.js | 7 +++++++ src/case/toolbar/toolbar.multiselect.js | 12 ++++++++++++ src/widget/sequencetable/treenumber.sequencetable.js | 4 +++- 9 files changed, 66 insertions(+), 3 deletions(-) diff --git a/bi/base.js b/bi/base.js index b17b35928..cace48d53 100644 --- a/bi/base.js +++ b/bi/base.js @@ -817,12 +817,19 @@ BI.BasicButton = BI.inherit(BI.Single, { }, _doClick: function () { + if (this.isValid()) { + this.beforeClick(); + } this._trigger(); if (this.isValid()) { this.doClick(); } }, + beforeClick: function () { + + }, + doClick: function () { }, diff --git a/bi/case.js b/bi/case.js index 00223d3cb..668dfc064 100644 --- a/bi/case.js +++ b/bi/case.js @@ -10269,6 +10269,8 @@ BI.MultiSelectBar = BI.inherit(BI.BasicButton, { height: 25, text: BI.i18nText('BI-Select_All'), isAllCheckedBySelectedValue: BI.emptyFn, + //手动控制选中 + disableSelected: true, isHalfCheckedBySelectedValue: function (selectedValues) { return selectedValues.length > 0; } @@ -10331,6 +10333,16 @@ BI.MultiSelectBar = BI.inherit(BI.BasicButton, { this.half.invisible(); }, + //自己手动控制选中 + beforeClick: function () { + var isHalf = this.isHalfSelected(), isSelected = this.isSelected(); + if (isHalf === true) { + this.setSelected(true); + } else { + this.setSelected(!isSelected); + } + }, + setSelected: function (v) { this.checkbox.setSelected(v); this.setHalfSelected(false); diff --git a/bi/widget.js b/bi/widget.js index 5ff973be8..778e5221f 100644 --- a/bi/widget.js +++ b/bi/widget.js @@ -79,7 +79,9 @@ BI.SequenceTableTreeNumber = BI.inherit(BI.Widget, { var cnt = this.start; function track(node) { - self.cache[node.text || node.value] = cnt++; + //如果已经有缓存了就不改计数了,复杂表会出现这种情况 + self.cache[node.text || node.value] || (self.cache[node.text || node.value] = cnt); + cnt++; } BI.each(nodes, function (i, node) { diff --git a/docs/base.js b/docs/base.js index b17b35928..cace48d53 100644 --- a/docs/base.js +++ b/docs/base.js @@ -817,12 +817,19 @@ BI.BasicButton = BI.inherit(BI.Single, { }, _doClick: function () { + if (this.isValid()) { + this.beforeClick(); + } this._trigger(); if (this.isValid()) { this.doClick(); } }, + beforeClick: function () { + + }, + doClick: function () { }, diff --git a/docs/case.js b/docs/case.js index 00223d3cb..668dfc064 100644 --- a/docs/case.js +++ b/docs/case.js @@ -10269,6 +10269,8 @@ BI.MultiSelectBar = BI.inherit(BI.BasicButton, { height: 25, text: BI.i18nText('BI-Select_All'), isAllCheckedBySelectedValue: BI.emptyFn, + //手动控制选中 + disableSelected: true, isHalfCheckedBySelectedValue: function (selectedValues) { return selectedValues.length > 0; } @@ -10331,6 +10333,16 @@ BI.MultiSelectBar = BI.inherit(BI.BasicButton, { this.half.invisible(); }, + //自己手动控制选中 + beforeClick: function () { + var isHalf = this.isHalfSelected(), isSelected = this.isSelected(); + if (isHalf === true) { + this.setSelected(true); + } else { + this.setSelected(!isSelected); + } + }, + setSelected: function (v) { this.checkbox.setSelected(v); this.setHalfSelected(false); diff --git a/docs/widget.js b/docs/widget.js index 5ff973be8..778e5221f 100644 --- a/docs/widget.js +++ b/docs/widget.js @@ -79,7 +79,9 @@ BI.SequenceTableTreeNumber = BI.inherit(BI.Widget, { var cnt = this.start; function track(node) { - self.cache[node.text || node.value] = cnt++; + //如果已经有缓存了就不改计数了,复杂表会出现这种情况 + self.cache[node.text || node.value] || (self.cache[node.text || node.value] = cnt); + cnt++; } BI.each(nodes, function (i, node) { diff --git a/src/base/single/button/button.basic.js b/src/base/single/button/button.basic.js index 8e1079af0..636fb51d4 100644 --- a/src/base/single/button/button.basic.js +++ b/src/base/single/button/button.basic.js @@ -234,12 +234,19 @@ BI.BasicButton = BI.inherit(BI.Single, { }, _doClick: function () { + if (this.isValid()) { + this.beforeClick(); + } this._trigger(); if (this.isValid()) { this.doClick(); } }, + beforeClick: function () { + + }, + doClick: function () { }, diff --git a/src/case/toolbar/toolbar.multiselect.js b/src/case/toolbar/toolbar.multiselect.js index 7a1497d8d..156398c47 100644 --- a/src/case/toolbar/toolbar.multiselect.js +++ b/src/case/toolbar/toolbar.multiselect.js @@ -12,6 +12,8 @@ BI.MultiSelectBar = BI.inherit(BI.BasicButton, { height: 25, text: BI.i18nText('BI-Select_All'), isAllCheckedBySelectedValue: BI.emptyFn, + //手动控制选中 + disableSelected: true, isHalfCheckedBySelectedValue: function (selectedValues) { return selectedValues.length > 0; } @@ -74,6 +76,16 @@ BI.MultiSelectBar = BI.inherit(BI.BasicButton, { this.half.invisible(); }, + //自己手动控制选中 + beforeClick: function () { + var isHalf = this.isHalfSelected(), isSelected = this.isSelected(); + if (isHalf === true) { + this.setSelected(true); + } else { + this.setSelected(!isSelected); + } + }, + setSelected: function (v) { this.checkbox.setSelected(v); this.setHalfSelected(false); diff --git a/src/widget/sequencetable/treenumber.sequencetable.js b/src/widget/sequencetable/treenumber.sequencetable.js index d1ae137dc..6a1fff133 100644 --- a/src/widget/sequencetable/treenumber.sequencetable.js +++ b/src/widget/sequencetable/treenumber.sequencetable.js @@ -79,7 +79,9 @@ BI.SequenceTableTreeNumber = BI.inherit(BI.Widget, { var cnt = this.start; function track(node) { - self.cache[node.text || node.value] = cnt++; + //如果已经有缓存了就不改计数了,复杂表会出现这种情况 + self.cache[node.text || node.value] || (self.cache[node.text || node.value] = cnt); + cnt++; } BI.each(nodes, function (i, node) {