UNPKG

@beisen/ethos

Version:

beisencloud pc react components

257 lines (220 loc) 8.95 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; 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 _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactDom = require('react-dom'); var _ParItems = require('./ParItems'); var _ParItems2 = _interopRequireDefault(_ParItems); var _UserItems = require('./UserItems'); var _UserItems2 = _interopRequireDefault(_UserItems); var _toolTip = require('../tool-tip'); var _toolTip2 = _interopRequireDefault(_toolTip); var _commonFunc = require('../common-func'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* eslint-disable */ var ChildItems = function (_Component) { (0, _inherits3.default)(ChildItems, _Component); function ChildItems(props) { (0, _classCallCheck3.default)(this, ChildItems); var _this = (0, _possibleConstructorReturn3.default)(this, (ChildItems.__proto__ || (0, _getPrototypeOf2.default)(ChildItems)).call(this, props)); _this.state = { isOpen: props.isOpen || false, // 部门下拉 isDelete: props.isDelete || false, // 鼠标划过 是否添加 level: 1 }; _this.depClick = _this.depClick.bind(_this); return _this; } // 嵌套部门渲染 (0, _createClass3.default)(ChildItems, [{ key: 'renderChildDep', value: function renderChildDep() { var _props = this.props, childDep = _props.childDep, getDepInfo = _props.getDepInfo, urls = _props.urls, isUseInitial = _props.isUseInitial, apiType = _props.apiType, isDelete = _props.isDelete, addDepartment = _props.addDepartment, changeLen = _props.changeLen, hiddenTip = _props.hiddenTip, sideTip = _props.sideTip, level = _props.level, translation = _props.translation; if (!childDep) return; var tempLevel = level ? level + 1 : this.state.level + 1; var addDepartIconShow = isDelete ? false : addDepartment; return childDep && childDep.map(function (item, index) { return _react2.default.createElement(_ParItems2.default, (0, _extends3.default)({}, item, { level: tempLevel, changeLen: changeLen, isDelete: isDelete, addDepartment: addDepartIconShow, key: index, getDepInfo: getDepInfo, urls: urls, isUseInitial: isUseInitial, apiType: apiType, hiddenTip: hiddenTip, sideTip: sideTip, translation: translation })); }); } /* 收起下拉点击 */ }, { key: 'depClick', value: function depClick(event) { event.nativeEvent.stopImmediatePropagation(); var isOpen = this.state.isOpen; var _props2 = this.props, childUser = _props2.childUser, Id = _props2.Id, isUseInitial = _props2.isUseInitial, urls = _props2.urls, apiType = _props2.apiType, getDepInfo = _props2.getDepInfo, changeLen = _props2.changeLen; //if (isDelete&&!addDepartment) return; var node = event.target; if (node.className == 'sys-icon-add') return; if (node.className == 'sys-icon-close') return; var highLight = document.querySelectorAll('.dep-hold-on'); for (var i = 0; i < highLight.length; i++) { highLight[i].className = highLight[i].className.substring(0, highLight[i].className.length - 11); } if (node.className == 'us-avatar' || node.className == 'us-info-name' || node.className == 'us-info-email') { return false; } else { event.currentTarget.firstChild.className = event.currentTarget.firstChild.className + ' dep-hold-on'; } var getParNode = function getParNode(node, target, className) { if (node.className == 'us-item-top') return; if (node.tagName == target.toUpperCase() && node.className == className) return node; return getParNode(node.parentNode, target, className); }; if (getParNode(node, 'li', 'us-item us-item-user')) return; changeLen(this); if (getParNode(node, 'li', 'us-item us-item-department')) { event.stopPropagation(); if (!childUser && !isOpen) { if (isUseInitial) { var tempDepUserUrl = urls['get' + apiType]('depUserUrl') + Id; getDepInfo && getDepInfo(Id, tempDepUserUrl); } else { getDepInfo && getDepInfo(Id); } } this.setState({ isOpen: !this.state.isOpen }); } } //渲染部门人员 }, { key: 'renderDepUser', value: function renderDepUser() { var _props3 = this.props, childUser = _props3.childUser, translation = _props3.translation; if (!childUser) return; return childUser && childUser.map(function (item, index) { return _react2.default.createElement(_UserItems2.default, (0, _extends3.default)({}, item, { key: index, translation: translation })); }); } }, { key: 'render', value: function render() { var _props4 = this.props, Id = _props4.Id, DepartmentName = _props4.DepartmentName, TotalUserCount = _props4.TotalUserCount, addDepartment = _props4.addDepartment, IsShowTotalUserCount = _props4.IsShowTotalUserCount, hiddenTip = _props4.hiddenTip, sideTip = _props4.sideTip, level = _props4.level, translation = _props4.translation; var _state = this.state, isOpen = _state.isOpen, isDelete = _state.isDelete; var childDep = isOpen ? this.renderChildDep() : undefined; var childUser = isOpen ? this.renderDepUser() : undefined; var style = { 'display': 'inline-block', //'marginLeft': '10px', 'lineHeight': '30px', 'whiteSpace': 'nowrap', 'overflow': 'hidden', 'textOverflow': 'ellipsis', 'maxWidth': (addDepartment ? 145 : 190) - (level ? level * 10 : this.state.level * 10) - (IsShowTotalUserCount != false ? (TotalUserCount + '').length * 6.7 : 0) }; var stylePerson = { 'display': 'inline-block', //'marginLeft': '10px', 'lineHeight': '30px', 'whiteSpace': 'nowrap', 'overflow': 'hidden', 'textOverflow': 'ellipsis' }; var openClass = isOpen ? 'pc-sys-arrowdown-nomal-svg' : 'pc-sys-arrowright-nomal-svg'; var addClassName = isDelete ? 'sys-icon-close' : 'sys-icon-add'; return _react2.default.createElement( 'li', { className: 'us-item us-item-department', 'data-id': Id, onClick: this.depClick }, _react2.default.createElement( 'div', { className: 'us-item-list us-department' }, _react2.default.createElement('span', { className: openClass }), _react2.default.createElement( 'div', { className: 'us-department-info' }, _react2.default.createElement( _toolTip2.default, { title: (0, _commonFunc.decode)(DepartmentName), hidden: hiddenTip, side: sideTip }, _react2.default.createElement( 'span', { style: style, ref: 'depName' }, (0, _commonFunc.decode)(DepartmentName) ) ), IsShowTotalUserCount != false ? _react2.default.createElement( 'span', { style: stylePerson }, '\xA0\xA0\xA0', (0, _commonFunc.transFormat)(translation.personCount, TotalUserCount) ) : "" ), addDepartment ? _react2.default.createElement('a', { href: 'javascript:void(0)', className: addClassName }) : '' ), _react2.default.createElement( 'ul', { className: 'us-item-container' }, childUser, childDep ) ); } }]); return ChildItems; }(_react.Component); exports.default = ChildItems; module.exports = exports['default'];