tplus-pos
Version:
pos module
330 lines (283 loc) • 11.9 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = undefined;
var _Menu4 = require('tinper-bee/dist/Menu');
var _Menu5 = _interopRequireDefault(_Menu4);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _class, _temp, _initialiseProps;
require('tinper-bee/dist/Menu/index.css');
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _tplusComponentsTouch = require('tplus-components-touch');
var _AuthProcess = require('../../domain/retail/auth/AuthProcess');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Sider = _tplusComponentsTouch.Layout.Sider;
var SubMenu = _Menu5.default.SubMenu,
Item = _Menu5.default.Item;
var SiderBarContent = (_temp = _class = function (_Component) {
(0, _inherits3.default)(SiderBarContent, _Component);
function SiderBarContent(props) {
(0, _classCallCheck3.default)(this, SiderBarContent);
var _this = (0, _possibleConstructorReturn3.default)(this, (SiderBarContent.__proto__ || (0, _getPrototypeOf2.default)(SiderBarContent)).call(this, props));
_initialiseProps.call(_this);
var _props$collapsed = props.collapsed,
collapsed = _props$collapsed === undefined ? false : _props$collapsed,
_props$selectedKey = props.selectedKey,
selectedKey = _props$selectedKey === undefined ? '' : _props$selectedKey;
_this.state = {
collapsed: collapsed,
selectedKey: selectedKey,
subMenuShow: []
};
return _this;
}
(0, _createClass3.default)(SiderBarContent, [{
key: 'componentWillUnmount',
value: function componentWillUnmount() {
this.removeSubMenuListener();
}
}, {
key: 'render',
value: function render() {
var _this2 = this;
var _state = this.state,
collapsed = _state.collapsed,
_state$selectedKey = _state.selectedKey,
selectedKey = _state$selectedKey === undefined ? '' : _state$selectedKey;
var _props = this.props,
trigger = _props.trigger,
_props$menu = _props.menu,
menu = _props$menu === undefined ? [] : _props$menu,
_props$menuStyle = _props.menuStyle,
menuStyle = _props$menuStyle === undefined ? {} : _props$menuStyle,
_props$iconStyle = _props.iconStyle,
iconStyle = _props$iconStyle === undefined ? {} : _props$iconStyle,
_props$style = _props.style,
style = _props$style === undefined ? {} : _props$style,
_props$collapsedWidth = _props.collapsedWidth,
collapsedWidth = _props$collapsedWidth === undefined ? 40 : _props$collapsedWidth,
_props$width = _props.width,
width = _props$width === undefined ? 88 : _props$width,
collapsible = _props.collapsible,
toggleAnimate = _props.toggleAnimate;
var menuItems = !!menu.length && menu.map(function (item, i) {
return _this2.renderMenuItem(item, i, selectedKey, collapsed, menuStyle, iconStyle);
});
return _react2.default.createElement(
'div',
{ style: (0, _extends3.default)({ display: 'inline-block' }, style), className: 'sider-bar-content' },
_react2.default.createElement(
Sider,
{
collapsed: collapsed,
width: width,
collapsedWidth: collapsedWidth,
trigger: trigger,
onCollapse: this.onCollapse,
collapsible: collapsible,
toggleAnimate: toggleAnimate
},
_react2.default.createElement(
_Menu5.default,
{
theme: 'dark',
style: { backgroundColor: '#464263' },
selectedKeys: [selectedKey || (menu[0] || {}).key || '0'],
onClick: this.onClick,
className: 'sider-menu'
},
menuItems
)
)
);
}
}]);
return SiderBarContent;
}(_react.Component), _initialiseProps = function _initialiseProps() {
var _this3 = this;
this.removeSubMenuListener = function () {
document.removeEventListener('click', _this3.hideSubMenu);
};
this.hideSubMenu = function (event) {
var _state2 = _this3.state,
subMenuShow = _state2.subMenuShow,
subMenuShowed = _state2.subMenuShowed;
var currentDom = document.querySelector('.sider-menu');
var targetDom = event.target;
if (currentDom === targetDom || currentDom.contains(targetDom)) {
// TODO: 点击自身的一些判断操作...
} else {
_this3.setState({ subMenuShow: [] }, function () {
return _this3.removeSubMenuListener();
});
}
};
this.onClick = function () {
var _props2 = _this3.props,
menuOnClick = _props2.menuOnClick,
_props2$menu = _props2.menu,
menu = _props2$menu === undefined ? [] : _props2$menu;
var _ref = arguments.length <= 0 ? undefined : arguments[0],
key = _ref.key;
var _state3 = _this3.state,
_state3$subMenuShow = _state3.subMenuShow,
subMenuShow = _state3$subMenuShow === undefined ? [] : _state3$subMenuShow,
_state3$subMenuShowed = _state3.subMenuShowed,
subMenuShowed = _state3$subMenuShowed === undefined ? [] : _state3$subMenuShowed;
var selectedKey = key;
var currentItem = menu.find(function (v) {
return v.key === key;
}) || {};
var subs = currentItem.subs,
action = currentItem.action;
if (subs) {
if (!subMenuShow.includes(key)) {
subMenuShow = [key];
subMenuShowed = [key];
_this3.setState({ subMenuShow: subMenuShow, subMenuShowed: subMenuShowed, subItemClickKey: '' }, function () {
document.addEventListener('click', _this3.hideSubMenu);
});
} else {
_this3.setState({ subMenuShow: [] });
}
} else {
_this3.setState({ subMenuShow: [] });
}
_this3.setState({ selectedKey: selectedKey, itemClickKey: selectedKey }, function () {
setTimeout(function () {
if (action) return; // 如果是路由跳转,则不去setState
_this3.setState({ itemClickKey: '' });
}, 200);
});
menuOnClick && menuOnClick(key);
};
this.subItemClick = function (item, selectedKey) {
console.log(selectedKey);
var subItemClickKey = item.key;
var _state$subMenuShow = _this3.state.subMenuShow,
subMenuShow = _state$subMenuShow === undefined ? [] : _state$subMenuShow;
var subMenuClick = _this3.props.subMenuClick;
_this3.setState({ subItemClickKey: subItemClickKey });
// subItemClickKey === 'refundCurrent' 非原单退货
if (subItemClickKey === 'refundCurrent' || subItemClickKey === 'refundBefore') {
var status = _AuthProcess.AuthProcess.execute('ReverseOperation');
if (!status) {
_this3.props.authorityValidate && _this3.props.authorityValidate({ callback: function callback(result) {
if (result) {
subMenuClick && subMenuClick(subItemClickKey);
}
} });
} else {
subMenuClick && subMenuClick(subItemClickKey);
}
} else {
subMenuClick && subMenuClick(subItemClickKey);
}
setTimeout(function () {
var subMenuShowFilter = subMenuShow.filter(function (v) {
return v !== selectedKey;
});
_this3.setState({ subMenuShow: subMenuShowFilter });
}, 200);
};
this.onCollapse = function () {
var onCollapse = _this3.props.onCollapse;
var collapsed = !_this3.state.collapsed;
onCollapse && onCollapse(collapsed);
_this3.setState({ collapsed: collapsed });
};
this.renderMenuItem = function (item, i, selectedKey, collapsed, menuStyle, iconStyle) {
var _state4 = _this3.state,
itemClickKey = _state4.itemClickKey,
subItemClickKey = _state4.subItemClickKey,
_state4$subMenuShow = _state4.subMenuShow,
subMenuShow = _state4$subMenuShow === undefined ? [] : _state4$subMenuShow,
_state4$subMenuShowed = _state4.subMenuShowed,
subMenuShowed = _state4$subMenuShowed === undefined ? [] : _state4$subMenuShowed;
var _props3 = _this3.props,
_props3$collapsedWidt = _props3.collapsedWidth,
collapsedWidth = _props3$collapsedWidt === undefined ? 40 : _props3$collapsedWidt,
_props3$width = _props3.width,
width = _props3$width === undefined ? 88 : _props3$width;
var _item$className = item.className,
className = _item$className === undefined ? '' : _item$className,
key = item.key,
_item$subs = item.subs,
subs = _item$subs === undefined ? [] : _item$subs;
className = className || 'sider-bar-menu-item-' + key;
var subComponents = !!subs.length && subs.map(function (value, i) {
return _react2.default.createElement(
'div',
{
key: value.key,
className: 'sub-menu-item ' + (subItemClickKey === value.key ? 'sub-menu-item-active' : ''),
onClick: function onClick(e) {
e.stopPropagation();
_this3.subItemClick(value, item.key);
}
},
_react2.default.createElement(
'span',
null,
value.title
),
value.isTotal && value.totalNum > 0 && _react2.default.createElement(
'div',
{ className: 'sub-menu-item-total' },
value.totalNum > 99 ? '99+' : value.totalNum
)
);
});
var subShow = subMenuShow.includes(item.key);
return _react2.default.createElement(
Item,
{ key: item.key,
className: 'sider-bar-menu-item ' + className + ' ' + (item.subs ? 'sider-bar-menu-submenu' : '') + ' ' + (itemClickKey === (item.key || i) ? 'sider-bar-menu-item-click' : '')
},
_react2.default.createElement(
'div',
{ className: 'menu-submenu-content' },
_react2.default.createElement(_tplusComponentsTouch.Ticon, {
icon: '' + (selectedKey === (item.key || i) ? item.activeIcon : item.icon),
className: 'menu-item-icon',
style: (0, _extends3.default)({}, item.icon ? {} : { backgroundColor: '#fff' }, iconStyle)
}),
item.isTotal && item.totalNum > 0 && _react2.default.createElement(
'div',
{ className: 'menu-submenu-total' },
item.totalNum > 99 ? '99+' : item.totalNum
),
!collapsed && _react2.default.createElement(
'h1',
{ className: 'menu-submenu-title' },
item.title
),
item.subs && _react2.default.createElement(
'div',
{
style: {
display: subMenuShowed.includes(item.key) ? 'block' : 'none',
left: (collapsed ? collapsedWidth : width) + 10
},
className: 'menu-submenu-list-wrapper ' + (subShow ? 'menu-submenu-list-active submenu-zoom-enter submenu-zoom-enter-active' : 'submenu-zoom-leave submenu-zoom-leave-active') },
subComponents
)
)
);
};
}, _temp);
exports.default = SiderBarContent;
//# sourceMappingURL=siderBarContent.js.map