yyuap-ref
Version:
cloud os fe ref project which is based on tinper
215 lines (187 loc) • 8.84 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _tabs = require('../../bee/tabs');
var _tabs2 = _interopRequireDefault(_tabs);
var _icon = require('../../bee/icon');
var _icon2 = _interopRequireDefault(_icon);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var TabPane = _tabs2.default.TabPane;
var Alreadychosen = "已选择";
var Hidechosen = "收起已选择";
var Tab = function (_Component) {
_inherits(Tab, _Component);
function Tab(props) {
_classCallCheck(this, Tab);
var _this = _possibleConstructorReturn(this, (Tab.__proto__ || Object.getPrototypeOf(Tab)).call(this, props));
_this.onTabChange = function (activeKey) {
var originKey = null;
if (activeKey == '__selected') {
originKey = _this.state.activeKey;
}
_this.setState({
activeKey: activeKey
});
_this.onSelectTabItem({ activeKey: activeKey, originKey: originKey });
};
_this.onSelectTabItem = _this.onSelectTabItem.bind(_this);
return _this;
}
_createClass(Tab, [{
key: 'onSelectTabItem',
value: function onSelectTabItem(_ref) {
var activeKey = _ref.activeKey,
originKey = _ref.originKey;
this.props.onTabSelect({ activeKey: activeKey, originKey: originKey });
}
}, {
key: 'componentWillMount',
value: function componentWillMount() {
var language = this.props.language;
switch (language) {
case "zh_CN":
Alreadychosen = '已选择';
Hidechosen = "收起已选择";
break;
case "en_US":
Alreadychosen = 'chosen';
Hidechosen = "Hide";
break;
case "zh_TW":
Alreadychosen = '已選擇';
Hidechosen = "收起已選擇";
break;
case "fr_FR":
Alreadychosen = 'Choisissez';
Hidechosen = "Cacher";
break;
case "de_DE":
Alreadychosen = 'Gewählt Hat,';
Hidechosen = "Versteckt";
break;
case "ja_JP":
Alreadychosen = '選択した';
Hidechosen = "隠して";
break;
default:
Alreadychosen = '已选择';
Hidechosen = "收起已选择";
}
}
}, {
key: 'construct',
value: function construct() {
var _this2 = this;
var flag = this.state.activeKey === '__selected';
var originKey = this.state.originKey;
var tablist = this.state.tabs.map(function (t) {
return _react2.default.createElement(TabPane, {
tab: _react2.default.createElement(
'div',
{ className: 'tabItem' },
_react2.default.createElement(
'span',
null,
t.title
)
),
key: t.key
});
});
var seletedTab = [_react2.default.createElement(TabPane, {
disabled: true,
tab: _react2.default.createElement(
'div',
{ className: 'tabItem' },
_react2.default.createElement(
'span',
null,
Alreadychosen,
'\uFF08 ' + this.state.selectNum + ' \uFF09'
)
),
key: '__selectedChoosed'
})];
var selectTab = [_react2.default.createElement(TabPane, {
className: 'selectTab',
tab: _react2.default.createElement(
'div',
{ className: 'tabSelectItem' },
_react2.default.createElement(
'a',
{ style: { color: '#00bfff', cursor: 'pointer', lineHeight: '17px' },
onClick: function onClick() {
if (flag) {
_this2.setState({ activeKey: originKey });
_this2.onTabChange(originKey);
}
} },
flag ? Hidechosen : Alreadychosen + ('( ' + this.state.selectNum + ' \uFF09'),
_react2.default.createElement(_icon2.default, {
type: flag ? "uf-gridcaretarrowup" : "uf-arrow-down",
className: 'close-icon',
style: { color: 'red' }
})
)
),
key: '__selected'
})];
if (this.props.ifNeedSelect && this.props.ifNeedSelect == 'false') {
return tablist.concat([_react2.default.createElement(TabPane, { disabled: true, key: '_blank' })]);
}
if (this.props.ifOnlyNeedSelect && this.props.ifOnlyNeedSelect == 'true') {
return selectTab;
}
return (flag ? seletedTab : tablist).concat(selectTab);
}
}, {
key: 'render',
value: function render() {
var _props$data = this.props.data,
dataSource = _props$data.dataSource,
defaultActiveKey = _props$data.defaultActiveKey;
var selectedArray = this.props.selectedArray || [];
var tabActiveKey = this.props.tabActiveKey;
var originKey = this.props.originKey;
var activeKey;
if (dataSource && dataSource.length > 0) {
activeKey = tabActiveKey || defaultActiveKey || dataSource[0].key;
} else {
activeKey = tabActiveKey || defaultActiveKey;
}
this.state = {
tabs: dataSource || [],
activeKey: activeKey,
selectNum: selectedArray.length,
originKey: originKey
};
return _react2.default.createElement(
'div',
{ className: 'TabWrap' },
_react2.default.createElement(
_tabs2.default,
{
className: 'TabClass',
activeKey: this.state.activeKey,
onChange: this.onTabChange
// tabBarStyle='fade'
, tabBarPosition: 'top',
defaultActiveKey: 'commonUse',
extraContent: true
},
this.construct()
)
);
}
}]);
return Tab;
}(_react.Component);
exports.default = Tab;
module.exports = exports['default'];