"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _typeof = require("@babel/runtime/helpers/typeof");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

require("maycur-antd/lib/list/style/css");

var _list = _interopRequireDefault(require("maycur-antd/lib/list"));

var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

require("maycur-antd/lib/alert/style/css");

var _alert = _interopRequireDefault(require("maycur-antd/lib/alert"));

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

require("maycur-antd/lib/select/style/css");

var _select = _interopRequireDefault(require("maycur-antd/lib/select"));

require("maycur-antd/lib/tabs/style/css");

var _tabs = _interopRequireDefault(require("maycur-antd/lib/tabs"));

require("maycur-antd/lib/breadcrumb/style/css");

var _breadcrumb = _interopRequireDefault(require("maycur-antd/lib/breadcrumb"));

require("maycur-antd/lib/input/style/css");

var _input = _interopRequireDefault(require("maycur-antd/lib/input"));

var _react = _interopRequireWildcard(require("react"));

var _reactDom = _interopRequireDefault(require("react-dom"));

var _reactI18next = require("react-i18next");

var _i18next = _interopRequireDefault(require("i18next"));

var _lodash = _interopRequireDefault(require("lodash"));

var _DepartmentList = _interopRequireDefault(require("../DepartmentList"));

var _UserGroupList = _interopRequireDefault(require("../UserGroupList"));

var _Empty = _interopRequireDefault(require("../../Empty"));

var _utils = _interopRequireDefault(require("../../utils/utils"));

var _constants = _interopRequireDefault(require("../../utils/constants"));

var _mkTranslate = _interopRequireDefault(require("../../utils/mkTranslate"));

function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }

function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

var DEPARTMENT_PICKER = _constants.default.DEPARTMENT_PICKER;
var Search = _input.default.Search;
var BreadItem = _breadcrumb.default.Item;
var TabPane = _tabs.default.TabPane;
var prefix = _utils.default.prefixCls;
var Option = _select.default.Option;

var DepartmentTransfer = /*#__PURE__*/function (_Component) {
  (0, _inherits2.default)(DepartmentTransfer, _Component);

  var _super = _createSuper(DepartmentTransfer);

  function DepartmentTransfer(props) {
    var _this;

    (0, _classCallCheck2.default)(this, DepartmentTransfer);
    _this = _super.call(this, props);

    _this.localeProcess = function () {
      var breadName = _this.props.breadName;

      _mkTranslate.default.getNameSpace('MK_DepartmentSelectionModal').then(function (t) {
        _this.setState({
          t: t,
          breads: [{
            name: breadName ? breadName : t('departmentTransfer.addressBook'),
            code: null
          }]
        });
      });
    };

    _this.onSearchSelectChange = function (accurate) {
      return _this.setState({
        accurate: accurate
      });
    };

    _this.clearSearch = function () {
      // if (this.searchRef) {
      //     let dom = ReactDOM.findDOMNode(this.searchRef);
      //     let input = dom.getElementsByTagName("input")[0];
      //     input.value = "";
      // }
      _this.setState({
        searchKeyword: null,
        searchList: [],
        isSearching: false
      });
    };

    _this.setSelectList = function (selectList) {
      var onChange = _this.props.onChange;

      _this.setState({
        selectList: selectList
      });

      if (typeof onChange === 'function') {
        onChange(selectList);
      }
    };

    _this.processRootNode = function (departments) {
      // const { t } = this.state;
      var rootNode = _lodash.default.find(departments, {
        root: true
      });

      if (rootNode) {
        rootNode.type = 'DEPARTMENT'; // rootNode.name = rootNode.name + t('departmentTransfer.root');
      }

      ;
      return departments;
    };

    _this.setSourceList = function (departments, staffs) {
      var scope = _this.props.scope;

      var sourceList = _lodash.default.unionBy([], departments, scope === DEPARTMENT_PICKER.SCOPE_DEPARTMENT ? [] : staffs, 'code');

      _this.setState({
        sourceList: sourceList
      });
    };

    _this.showIncludeDisableDeptRefresh = function () {
      var isSearching = _this.state.isSearching;

      if (isSearching) {
        // 如果是搜索状态，change时清空搜索回退到根节点刷新部门树
        _this.onSearch();
      }

      _this.goToBread({
        name: "通讯录",
        code: null
      });
    };

    _this.state = {
      sourceList: [],
      searchList: [],
      breads: [],
      selectList: props.selectList || [],
      allSelected: false,
      searchKeyword: null,
      sourceListLoading: false,
      searchListLoading: false,
      isSearching: false,
      t: _mkTranslate.default.noop(),
      accurate: 'false'
    };
    _this.onSearch = _this.onSearch.bind((0, _assertThisInitialized2.default)(_this));
    _this.clearSearch = _this.clearSearch.bind((0, _assertThisInitialized2.default)(_this));
    _this.closeSelf = _this.closeSelf.bind((0, _assertThisInitialized2.default)(_this));
    _this.unSelectItem = _this.unSelectItem.bind((0, _assertThisInitialized2.default)(_this));
    _this.clearAll = _this.clearAll.bind((0, _assertThisInitialized2.default)(_this));
    _this.onOutput = _this.onOutput.bind((0, _assertThisInitialized2.default)(_this));
    _this.fetchSourceList = _this.fetchSourceList.bind((0, _assertThisInitialized2.default)(_this));
    _this.fetchSearchList = _this.fetchSearchList.bind((0, _assertThisInitialized2.default)(_this));
    _this.onDrillDown = _this.onDrillDown.bind((0, _assertThisInitialized2.default)(_this));
    _this.goToBread = _this.goToBread.bind((0, _assertThisInitialized2.default)(_this));
    _this.scrollBottom = _this.scrollBottom.bind((0, _assertThisInitialized2.default)(_this));

    _this.localeProcess();

    _this.selectBefore = /*#__PURE__*/_react.default.createElement(_select.default, {
      defaultValue: 'false',
      onChange: _this.onSearchSelectChange,
      dropdownClassName: 'ant-dept-search-dropdown',
      dropdownMatchSelectWidth: true
    }, /*#__PURE__*/_react.default.createElement(Option, {
      value: 'false'
    }, _this.state.t('FuzzySearch')), /*#__PURE__*/_react.default.createElement(Option, {
      value: 'true'
    }, _this.state.t('AccurateSearch')));
    return _this;
  }

  (0, _createClass2.default)(DepartmentTransfer, [{
    key: "onSearch",
    value: function onSearch(value) {
      var flat = this.props.flat;
      value = _lodash.default.trim(value);
      this.setState({
        isSearching: true,
        searchKeyword: value
      });

      if (value) {
        if (flat) {
          var sourceList = this.state.sourceList;

          var searchList = _lodash.default.filter(sourceList, function (item) {
            return item.name.indexOf(value) !== -1;
          });

          this.setState({
            searchList: searchList
          });
        } else {
          this.fetchSearchList(value);
        }
      } else {
        this.setState({
          searchList: [],
          isSearching: false
        });
      }
    }
  }, {
    key: "goToBread",
    value: function goToBread(bread) {
      var breads = this.state.breads;
      breads = _lodash.default.dropRightWhile(breads, function (item) {
        return item.code !== bread.code;
      });
      this.setState({
        breads: breads
      });

      if (!bread.code) {
        this.fetchSourceList(bread.code, 1);
        return;
      }

      this.fetchSourceList(bread.code);
    }
  }, {
    key: "unSelectItem",
    value: function unSelectItem(item) {
      var selectList = this.state.selectList;

      var idx = _lodash.default.findIndex(selectList, {
        code: item.code
      });

      if (idx !== -1) {
        selectList.splice(idx, 1);
      }

      this.setSelectList(selectList);
    }
  }, {
    key: "clearAll",
    value: function clearAll() {
      this.setSelectList([]);
    }
  }, {
    key: "closeSelf",
    value: function closeSelf() {
      var onCancel = this.props.onCancel;

      if (typeof onCancel === 'function') {
        onCancel();
      }
    }
  }, {
    key: "onOutput",
    value: function onOutput(result) {
      var added = result.added,
          allSelected = result.allSelected,
          itemSelected = result.itemSelected;
      var _this$props = this.props,
          maxSelectLength = _this$props.maxSelectLength,
          onChange = _this$props.onChange;
      var selectList = this.state.selectList;
      /** 单选 */

      if (!maxSelectLength || maxSelectLength === 1) {
        this.setState({
          selectList: added
        });
        setTimeout(this.scrollBottom);

        if (typeof onChange === 'function') {
          onChange(added);
        }

        return;
      }

      if (!allSelected || itemSelected) {
        selectList = _lodash.default.unionWith(selectList, added, _utils.default.bizEquals);
      } else {
        selectList = _lodash.default.filter(selectList, function (o) {
          return added.every(function (i) {
            return i.code !== o.code;
          });
        });
      }

      this.setSelectList(selectList);
      setTimeout(this.scrollBottom);
    }
  }, {
    key: "onDrillDown",
    value: function onDrillDown(item) {
      var breads = this.state.breads;
      breads.push(item);
      this.setState({
        breads: breads
      });
      this.fetchSourceList(item.code);
    } // 获取根部门

    /* fetchRootDepartment = () => {
        const { rootSync } = this.props;
        const { t } = this.state;
        return new Promise((resolve, reject) => {
            if (typeof rootSync === 'function') {
                rootSync().then(res => {
                    if (res.code === 'ACK') {
                        let roots = [];
                        if (res.data && res.data.length > 0) {
                            roots = res.data.map(item => {
                                return {
                                    code: item.code,
                                    name: item.name + t('departmentTransfer.root'),
                                    type: 'DEPARTMENT',
                                    hasChildren: false,
                                    hasDepartments: false,
                                    isRoot: true
                                }
                            })
                        }
                        resolve(roots);
                    } else {
                        reject();
                    }
                })
            } else {
                reject();
            }
        })
    } */

  }, {
    key: "fetchSourceList",
    value: function fetchSourceList(code, level) {
      var _this2 = this;

      var _this$props2 = this.props,
          fetchDepartmentChildren = _this$props2.fetchDepartmentChildren,
          legalEntity = _this$props2.legalEntity,
          sceneSource = _this$props2.sceneSource,
          employeeStatus = _this$props2.employeeStatus,
          includeDisableDept = _this$props2.includeDisableDept,
          outerPermit = _this$props2.outerPermit,
          includeType = _this$props2.includeType;
      if (typeof fetchDepartmentChildren !== 'function') return;
      this.setState({
        sourceListLoading: true
      });
      fetchDepartmentChildren(code, {
        legalEntityCode: legalEntity && legalEntity.code,
        sceneSource: sceneSource,
        employeeStatus: employeeStatus,
        includeDisableDept: includeDisableDept,
        outerPermit: outerPermit,
        // 单据（包括费用和分摊）中的人和部门选择以及加签、转交、评论需要根据boss开关传入此值
        includeType: includeType // 根据承担人受限部门是否包含上级或者下级情况

      }).then(function (data) {
        _this2.setState({
          sourceListLoading: false
        });

        if (_utils.default.apiOK(data)) {
          var _data$data = data.data,
              departments = _data$data.departments,
              staffs = _data$data.staffs; // 1.先将获取到的部门 人员信息更新到视图

          _lodash.default.forEach(departments, function (item) {
            item.type = DEPARTMENT_PICKER.DEPARTMENT;
          });

          _lodash.default.forEach(staffs, function (item) {
            item.type = DEPARTMENT_PICKER.STAFF;
          });

          _this2.setSourceList(departments, staffs); // 2.再插入根节点 如果是第一层


          if (level === 1) {
            /* this.fetchRootDepartment().then(roots => {
                departments = [...roots, ...(departments || [])];
                this.setSourceList(departments, staffs);
            }) */
            _this2.setSourceList(_this2.processRootNode(departments), staffs);
          }
        }
      }, function () {
        _this2.setState({
          sourceListLoading: false
        });
      });
    }
  }, {
    key: "fetchSearchList",
    value: function fetchSearchList(keyword) {
      var _this3 = this;

      var _this$props3 = this.props,
          scope = _this$props3.scope,
          searchDepartmentChildren = _this$props3.searchDepartmentChildren,
          legalEntity = _this$props3.legalEntity,
          sceneSource = _this$props3.sceneSource,
          employeeStatus = _this$props3.employeeStatus,
          includeDisableDept = _this$props3.includeDisableDept,
          outerPermit = _this$props3.outerPermit,
          includeType = _this$props3.includeType,
          isRequestDepartment = _this$props3.isRequestDepartment,
          userCode = _this$props3.userCode;
      if (typeof searchDepartmentChildren !== 'function') return;
      this.setState({
        searchListLoading: true
      });
      var searchParams = {
        keyword: keyword,
        onlyEnable: true,
        accurate: this.state.accurate === 'true',
        legalEntityCode: legalEntity && legalEntity.code,
        outerPermit: outerPermit,
        // 单据（包括费用和分摊）中的人和部门选择需要根据boss开关传入此值
        includeType: includeType // 根据承担人受限部门是否包含上级或者下级情况

      }; // sceneSource为在报销单中的承担部门，分摊的承担部门，申请单的承担部门使用范围传入

      if (sceneSource) {
        searchParams.notSelectScene = sceneSource;
      } // 有值为只查询离职的人员


      if (employeeStatus) {
        searchParams.onlyDisable = true;
        searchParams.onlyEnable = false;
      } // includeDisableDept 为 true需要显示已停用的部门


      if (includeDisableDept) {
        searchParams.includeDisableDept = includeDisableDept;
      } // 提单人部门


      if (isRequestDepartment) {
        searchParams.userCode = userCode;
        searchParams.userBelongTo = true;
      }

      searchDepartmentChildren(searchParams, {
        pageId: DEPARTMENT_PICKER.SEARCH_LIST
      }).then(function (data) {
        _this3.setState({
          searchListLoading: false
        });

        if (_utils.default.apiOK(data)) {
          var _data$data2 = data.data,
              departments = _data$data2.departments,
              staffs = _data$data2.staffs;

          _lodash.default.forEach(departments, function (item) {
            item.type = DEPARTMENT_PICKER.DEPARTMENT;
          });

          _lodash.default.forEach(staffs, function (item) {
            item.type = DEPARTMENT_PICKER.STAFF;
          });

          var searchList = _lodash.default.unionBy([], scope === DEPARTMENT_PICKER.SCOPE_STAFF ? [] : departments.filter(function (department) {
            return department;
          }), scope === DEPARTMENT_PICKER.SCOPE_DEPARTMENT ? [] : staffs.filter(function (staff) {
            return !staff.disable;
          }), 'code');

          _this3.setState({
            searchList: searchList
          });
        }
      }, function () {
        _this3.setState({
          searchListLoading: false
        });
      });
    }
  }, {
    key: "scrollBottom",
    value: function scrollBottom() {
      if (this.selectListRef) {
        var dom = _reactDom.default.findDOMNode(this.selectListRef);

        dom.scrollTop = dom.scrollHeight;
      }
    }
  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      var breads = this.state.breads;
      var last = _lodash.default.last(breads) || {};
      this.fetchSourceList(last.code, 1);
    } // 显示停用部门

  }, {
    key: "UNSAFE_componentWillReceiveProps",
    value: function UNSAFE_componentWillReceiveProps(nextProps) {
      if (this.props.selectList !== nextProps.selectList) {
        this.setState({
          selectList: nextProps.selectList
        });
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this4 = this;

      var _this$state = this.state,
          sourceList = _this$state.sourceList,
          searchList = _this$state.searchList,
          selectList = _this$state.selectList,
          breads = _this$state.breads,
          searchKeyword = _this$state.searchKeyword,
          sourceListLoading = _this$state.sourceListLoading,
          searchListLoading = _this$state.searchListLoading,
          isSearching = _this$state.isSearching,
          t = _this$state.t,
          accurate = _this$state.accurate;
      var _this$props4 = this.props,
          scope = _this$props4.scope,
          justShowUserGroup = _this$props4.justShowUserGroup,
          isShowUserGroup = _this$props4.isShowUserGroup,
          maxSelectLength = _this$props4.maxSelectLength,
          fetchUserGroup = _this$props4.fetchUserGroup,
          leftAlertText = _this$props4.leftAlertText,
          renderAddition = _this$props4.renderAddition,
          includeChildDept = _this$props4.includeChildDept,
          addressBookName = _this$props4.addressBookName,
          hideAccurateSearch = _this$props4.hideAccurateSearch;
      var placeholder = t('departmentTransfer.placeholder');

      switch (scope) {
        case DEPARTMENT_PICKER.SCOPE_DEPARTMENT:
          break;

        case DEPARTMENT_PICKER.SCOPE_STAFF:
          placeholder = t('departmentTransfer.staffPlaceholder');
          break;

        default:
          break;
      }

      return /*#__PURE__*/_react.default.createElement("div", {
        className: "".concat(prefix, "-department-picker-transfer")
      }, /*#__PURE__*/_react.default.createElement("div", {
        className: 'transfer-content'
      }, /*#__PURE__*/_react.default.createElement("div", {
        className: 'left'
      }, /*#__PURE__*/_react.default.createElement(_tabs.default, {
        defaultActiveKey: "DEPT"
      }, !justShowUserGroup ? /*#__PURE__*/_react.default.createElement(TabPane, {
        tab: addressBookName ? addressBookName : t('departmentTransfer.addressBook'),
        key: "DEPT"
      }, leftAlertText && /*#__PURE__*/_react.default.createElement(_alert.default, {
        message: leftAlertText,
        showIcon: true
      }), /*#__PURE__*/_react.default.createElement("div", {
        className: "search-box".concat(searchKeyword ? ' searching' : '')
      }, /*#__PURE__*/_react.default.createElement(Search, {
        addonBefore: hideAccurateSearch ? '' : this.selectBefore,
        value: searchKeyword,
        placeholder: accurate === 'true' ? '搜索部门和人员名称' : placeholder,
        onChange: function onChange(e) {
          return _this4.setState({
            searchKeyword: e.target.value
          });
        },
        onSearch: this.onSearch
      }), searchKeyword ? /*#__PURE__*/_react.default.createElement("span", {
        className: 'fm fm-cross',
        onClick: this.clearSearch
      }) : null), isSearching ? /*#__PURE__*/_react.default.createElement("div", {
        className: 'search-list'
      }, /*#__PURE__*/_react.default.createElement(_DepartmentList.default, (0, _extends2.default)({
        loading: searchListLoading
      }, this.props, {
        scope: scope,
        canDrillDown: false,
        sourceList: searchList,
        selectList: selectList,
        includeChildDept: includeChildDept,
        onOutput: this.onOutput
      }))) : /*#__PURE__*/_react.default.createElement("div", {
        className: 'source-list'
      }, /*#__PURE__*/_react.default.createElement(_breadcrumb.default, null, breads.map(function (bread, idx) {
        return /*#__PURE__*/_react.default.createElement(BreadItem, {
          key: bread.code
        }, idx !== breads.length - 1 ?
        /*#__PURE__*/
        // eslint-disable-next-line jsx-a11y/anchor-is-valid
        _react.default.createElement("a", {
          href: "javascript:void(0)",
          onClick: function onClick() {
            _this4.goToBread(bread);
          }
        }, bread.name) : /*#__PURE__*/_react.default.createElement("span", null, bread.name));
      })), /*#__PURE__*/_react.default.createElement(_DepartmentList.default, (0, _extends2.default)({
        loading: sourceListLoading
      }, this.props, {
        scope: scope,
        sourceList: sourceList,
        selectList: selectList,
        includeChildDept: includeChildDept,
        onOutput: this.onOutput,
        onDrillDown: this.onDrillDown
      })))) : null, justShowUserGroup || isShowUserGroup ? /*#__PURE__*/_react.default.createElement(TabPane, {
        tab: t('departmentTransfer.byUserGroup'),
        key: "USER_GROUP"
      }, /*#__PURE__*/_react.default.createElement("div", {
        className: 'user-group-wrapper'
      }, /*#__PURE__*/_react.default.createElement(_UserGroupList.default, {
        selectList: selectList,
        onOutput: this.onOutput,
        fetchUserGroup: fetchUserGroup,
        hideAccurateSearch: hideAccurateSearch
      }))) : null)), /*#__PURE__*/_react.default.createElement("div", {
        className: 'middle'
      }, /*#__PURE__*/_react.default.createElement("span", {
        className: "fm fm-angle-right"
      })), /*#__PURE__*/_react.default.createElement("div", {
        className: 'right'
      }, /*#__PURE__*/_react.default.createElement("div", {
        className: 'status-bar'
      }, /*#__PURE__*/_react.default.createElement("span", {
        className: 'bar-label'
      }, t('departmentTransfer.barLabel')), justShowUserGroup || scope === DEPARTMENT_PICKER.SCOPE_STAFF ? null : /*#__PURE__*/_react.default.createElement("span", {
        className: 'dep-count'
      }, t('departmentTransfer.department'), /*#__PURE__*/_react.default.createElement("span", {
        className: 'strong'
      }, _lodash.default.filter(selectList, {
        type: DEPARTMENT_PICKER.DEPARTMENT
      }).length)), justShowUserGroup || scope === DEPARTMENT_PICKER.SCOPE_DEPARTMENT ? null : /*#__PURE__*/_react.default.createElement("span", {
        className: 'staff-count'
      }, t('departmentTransfer.staff'), /*#__PURE__*/_react.default.createElement("span", {
        className: 'strong'
      }, " ", _lodash.default.filter(selectList, {
        type: DEPARTMENT_PICKER.STAFF
      }).length)), justShowUserGroup || isShowUserGroup ? /*#__PURE__*/_react.default.createElement("span", {
        className: 'staff-count'
      }, t('departmentTransfer.userGroup'), /*#__PURE__*/_react.default.createElement("span", {
        className: 'strong'
      }, _lodash.default.filter(selectList, {
        type: DEPARTMENT_PICKER.USER_GROUP
      }).length)) : null, /*#__PURE__*/_react.default.createElement("span", {
        className: 'clear-all'
      }, /*#__PURE__*/_react.default.createElement("span", {
        className: 'btn',
        onClick: this.clearAll
      }, t('departmentTransfer.clear')))), maxSelectLength > 0 ? /*#__PURE__*/_react.default.createElement(_alert.default, {
        message: /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_reactI18next.Trans, {
          i18n: _i18next.default,
          i18nKey: "departmentTransfer.maxLength",
          ns: "MK_DepartmentSelectionModal",
          values: {
            maxSelectLength: maxSelectLength
          },
          components: [/*#__PURE__*/_react.default.createElement("span", null), /*#__PURE__*/_react.default.createElement("span", {
            className: "strong"
          })],
          children: "\u6700\u591A\u53EA\u80FD\u9009\u62E9 <span className={'strong'}>{{ maxSelectLength }} </span>\u9879"
        })),
        className: "right-warn-alert",
        type: "warning"
      }) : null, /*#__PURE__*/_react.default.createElement(_list.default, {
        size: "small",
        dataSource: selectList,
        locale: {
          emptyText: /*#__PURE__*/_react.default.createElement(_Empty.default, null)
        },
        ref: function ref(_ref) {
          _this4.selectListRef = _ref;
        },
        renderItem: function renderItem(item) {
          return /*#__PURE__*/_react.default.createElement(_list.default.Item, {
            key: item.code
          }, /*#__PURE__*/_react.default.createElement("span", {
            className: 'item-name'
          }, item.type === DEPARTMENT_PICKER.STAFF ? /*#__PURE__*/_react.default.createElement("span", {
            className: 'fm fm-employee'
          }) : item.type === DEPARTMENT_PICKER.DEPARTMENT ? /*#__PURE__*/_react.default.createElement("span", {
            className: 'fm fm-cube'
          }) : /*#__PURE__*/_react.default.createElement("span", {
            className: 'fm fm-user-group'
          }), /*#__PURE__*/_react.default.createElement("span", {
            className: 'name'
          }, item.name, renderAddition && renderAddition(item))), /*#__PURE__*/_react.default.createElement("span", {
            className: 'fm fm-trash',
            onClick: function onClick(e) {
              e.stopPropagation();

              _this4.unSelectItem(item);
            }
          }));
        }
      }))));
    }
  }]);
  return DepartmentTransfer;
}(_react.Component);

DepartmentTransfer.defaultProps = {
  justShowUserGroup: false
};
var _default = DepartmentTransfer;
exports.default = _default;