UNPKG

@wufengteam/wform

Version:

@wufengteam/wform

298 lines 12.2 kB
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } import React, { useState, useEffect } from 'react'; import { Modal, Space, Tag } from 'antd'; import { getFirstChar, prefix } from '../../../utils'; import DeptTree from '../DeptTree'; import "./index.css"; import { COLOR_DATA } from '../../constants'; import { addDisabledToHierarchy } from '../../tools'; var cssPrefix = "".concat(prefix, "-add-department-modal"); var AddDepartModal = function AddDepartModal(props) { var _a, _b, _c, _d, _e; var visible = props.visible, onCancel = props.onCancel, _onOk = props.onOk, _props$initialValue = props.initialValue, initialValue = _props$initialValue === void 0 ? [] : _props$initialValue, _props$selectType = props.selectType, selectType = _props$selectType === void 0 ? 'single' : _props$selectType, defaultDepart = props.defaultDepart, settingDepart = props.settingDepart, selectRank = props.selectRank, enableOrgIds = props.enableOrgIds; var _ref = ((_a = props === null || props === void 0 ? void 0 : props.getEngineApis) === null || _a === void 0 ? void 0 : _a.call(props)) || {}, _ref$customEngineApi = _ref.customEngineApi, customEngineApi = _ref$customEngineApi === void 0 ? {} : _ref$customEngineApi; var _useState = useState([]), _useState2 = _slicedToArray(_useState, 2), departTreeData = _useState2[0], setDepartTreeData = _useState2[1]; var _useState3 = useState(initialValue), _useState4 = _slicedToArray(_useState3, 2), sDepartList = _useState4[0], setSDepartList = _useState4[1]; // 选中的部门信息 var _useState5 = useState(''), _useState6 = _slicedToArray(_useState5, 2), searchValue = _useState6[0], setSearchValue = _useState6[1]; var defaultParams = { childIdFilterList: ((_c = (_b = settingDepart === null || settingDepart === void 0 ? void 0 : settingDepart.checkValues) === null || _b === void 0 ? void 0 : _b.cfgObjs) === null || _c === void 0 ? void 0 : _c.map(function (item) { return item === null || item === void 0 ? void 0 : item.orgId; })) || [], containCurrentUserOrg: settingDepart === null || settingDepart === void 0 ? void 0 : settingDepart.containCurrentUserOrg, recursive: (_d = settingDepart || defaultDepart) === null || _d === void 0 ? void 0 : _d.recursive }; useEffect(function () { setSDepartList(Array.isArray(initialValue) ? initialValue : []); }, [JSON.stringify(initialValue)]); useEffect(function () { if (visible) { setSDepartList(Array.isArray(initialValue) ? initialValue : []); } }, [JSON.stringify(visible)]); /** * 删除对应的部门信息 * @param orgId */ var deleteDepartInfo = function deleteDepartInfo(orgId) { var otherDepartInfo = sDepartList.filter(function (item) { return item.orgId !== orgId; }); setSDepartList(otherDepartInfo); }; var formateTreeData = function formateTreeData() { var srcData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; if (!Array.isArray(srcData)) return []; var treeData = (srcData || []).map(function (item) { var orgId = item.orgId, orgName = item.orgName, _item$children = item.children, children = _item$children === void 0 ? [] : _item$children; var obj = item; if (children === null || children === void 0 ? void 0 : children.length) { obj.children = formateTreeData(children); } var params = Object.assign(Object.assign({}, item), { key: orgId, title: orgName, isLeaf: false }); return params; }); return treeData; }; /** * 条件查询获取部门数据 */ var getOrgByOrgName = function getOrgByOrgName(param) { var _a; (_a = customEngineApi === null || customEngineApi === void 0 ? void 0 : customEngineApi.getOrgByOrgName) === null || _a === void 0 ? void 0 : _a.call(customEngineApi, param).then(function (res) { var treeData = formateTreeData(res); setDepartTreeData(treeData); }); }; /** * 获取部门数据 */ var getOrgInfoByAsync = function getOrgInfoByAsync(orgId) { var _a; var params = Object.assign(Object.assign({}, defaultParams), { orgId: orgId }); (_a = customEngineApi === null || customEngineApi === void 0 ? void 0 : customEngineApi.getOrgInfoByAsync) === null || _a === void 0 ? void 0 : _a.call(customEngineApi, params).then(function (res) { var data = formateTreeData(res); setDepartTreeData(data); }); }; var updateTreeData = function updateTreeData(list, key, children) { return list.map(function (node) { if ("".concat(node.key) === "".concat(key)) { return Object.assign(Object.assign({}, node), { children: children }); } if (node.children) { return Object.assign(Object.assign({}, node), { children: updateTreeData(node.children, key, children) }); } return node; }); }; var loadOrgData = function loadOrgData(_ref2) { var key = _ref2.key, children = _ref2.children; return new Promise(function (resolve) { var _a, _b, _c, _d; if (children) { resolve(); return; } var cfgObjs = (_c = (_b = (_a = defaultDepart || settingDepart) === null || _a === void 0 ? void 0 : _a.checkValues) === null || _b === void 0 ? void 0 : _b.cfgObjs) === null || _c === void 0 ? void 0 : _c.find(function (item) { return (item === null || item === void 0 ? void 0 : item.orgId) === key; }); var params = Object.assign(Object.assign({}, defaultParams), { orgId: key, recursive: (cfgObjs === null || cfgObjs === void 0 ? void 0 : cfgObjs.isSonOrg) === 1 ? 'T' : 'F' }); (_d = customEngineApi === null || customEngineApi === void 0 ? void 0 : customEngineApi.getOrgInfoByAsync) === null || _d === void 0 ? void 0 : _d.call(customEngineApi, params).then(function (res) { var data = formateTreeData(res); setDepartTreeData(function (origin) { return updateTreeData(origin, key, data); }); setTimeout(function () { resolve(); }, 500); }); }); }; var orgSearch = function orgSearch(orgName) { if (orgName) { // 条件查询则是返回部门列表 getOrgByOrgName({ orgName: orgName }); } else { // 异步查询数据 getOrgInfoByAsync('0'); } }; useEffect(function () { if (visible && !departTreeData.length) { getOrgInfoByAsync('0'); } }, [visible]); return /*#__PURE__*/React.createElement(Modal, { title: "\u6DFB\u52A0\u90E8\u95E8", width: 729, bodyStyle: { padding: '0', height: '510px' }, visible: visible, onCancel: onCancel, maskClosable: false, okText: "\u786E\u5B9A", cancelText: "\u53D6\u6D88", onOk: function onOk() { if (_onOk) { var departs = []; sDepartList.forEach(function (item) { var key = item.key, title = item.title, areaId = item.areaId, leader = item.leader, leaderStaffName = item.leaderStaffName, leaderStaffUserId = item.leaderStaffUserId, level1 = item.level1, orgCode = item.orgCode, orgId = item.orgId, orgName = item.orgName, orgType = item.orgType, parentOrgId = item.parentOrgId, spId = item.spId, staffId = item.staffId, staffOrgId = item.staffOrgId, state = item.state, isSonOrg = item.isSonOrg, orgPathId = item.orgPathId, orgPathName = item.orgPathName; departs.push({ key: key, title: title, areaId: areaId, leader: leader, leaderStaffName: leaderStaffName, leaderStaffUserId: leaderStaffUserId, orgCode: orgCode, level1: level1, orgId: orgId, orgName: orgName, orgType: orgType, parentOrgId: parentOrgId, spId: spId, staffId: staffId, staffOrgId: staffOrgId, state: state, isSonOrg: isSonOrg, orgPathId: orgPathId, orgPathName: orgPathName }); }); _onOk(departs); } } }, /*#__PURE__*/React.createElement("div", { style: { height: '412px', padding: '0 10px' } }, /*#__PURE__*/React.createElement(DeptTree, { key: searchValue, initValues: sDepartList, onCheck: function onCheck(values) { if (selectType === 'single') { // 单选 if (Array.isArray(values) && values.length) { var len = values.length; setSDepartList([values[len - 1]]); } else { // 单选 只选一个并且取消勾选 setSDepartList(values); } } else { // 多选 setSDepartList(values); } }, treeData: addDisabledToHierarchy(departTreeData, selectRank, enableOrgIds || []), onSearch: function onSearch(values) { setSearchValue(searchValue); orgSearch(values); }, loadData: loadOrgData })), /*#__PURE__*/React.createElement("div", { className: "".concat(cssPrefix, "-footer") }, (sDepartList === null || sDepartList === void 0 ? void 0 : sDepartList.length) > 0 && ( /*#__PURE__*/React.createElement("div", { className: "".concat(cssPrefix, "-clearText"), style: { lineHeight: '30px' } }, /*#__PURE__*/React.createElement("a", { onClick: function onClick() { setSDepartList([]); } }, "\u6E05\u7A7A"))), /*#__PURE__*/React.createElement(Space, { size: 4, wrap: true, style: { width: '100%', height: '60px', overflowY: 'auto' } }, (_e = sDepartList === null || sDepartList === void 0 ? void 0 : sDepartList.map) === null || _e === void 0 ? void 0 : _e.call(sDepartList, function (dItem, posIndex) { var orgId = dItem.orgId, orgName = dItem.orgName, isSonOrg = dItem.isSonOrg; return /*#__PURE__*/React.createElement(Tag, { key: orgId, icon: /*#__PURE__*/React.createElement("div", { style: { background: COLOR_DATA[posIndex % 8] }, className: "iconBg" }, getFirstChar(orgName)), closable: true, className: "".concat(cssPrefix, "-tagItem"), onClose: function onClose() { deleteDepartInfo(orgId); } }, "".concat(isSonOrg) === '1' ? "".concat(orgName, "(\u542B\u5B50\u90E8\u95E8)") : orgName); })))); }; export default AddDepartModal;