UNPKG

@wufengteam/wform

Version:

@wufengteam/wform

372 lines (371 loc) 17 kB
"use strict"; function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _antd = require("antd"); var _core = require("@wufengteam/core"); var _MemberListComp = _interopRequireDefault(require("./MemberListComp")); var _constants = require("./constants"); var _utils = require("../utils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } 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 unionby from 'lodash.unionby'; var Search = _antd.Input.Search; var AddMemberModal = function AddMemberModal(props) { var _a, _b; var visible = props.visible, onCancel = props.onCancel, _onOk = props.onOk, componentId = props.componentId, pageId = props.pageId, _props$selectType = props.selectType, selectType = _props$selectType === void 0 ? 'single' : _props$selectType, _props$defaultValue = props.defaultValue, defaultValue = _props$defaultValue === void 0 ? [] : _props$defaultValue, _props$$$componentIte = props.$$componentItem, $$componentItem = _props$$$componentIte === void 0 ? {} : _props$$$componentIte; var _useState = (0, _react.useState)([]), _useState2 = _slicedToArray(_useState, 2), memberOptions = _useState2[0], setMemberOptions = _useState2[1]; var _useState3 = (0, _react.useState)([]), _useState4 = _slicedToArray(_useState3, 2), memberValues = _useState4[0], setMemberValues = _useState4[1]; // 选中的成员key var _useState5 = (0, _react.useState)(defaultValue), _useState6 = _slicedToArray(_useState5, 2), sMemberList = _useState6[0], setSMemberList = _useState6[1]; // 选中的成员信息 var _useState7 = (0, _react.useState)({ pageIndex: 0, searchValue: '' }), _useState8 = _slicedToArray(_useState7, 2), memPageInfo = _useState8[0], setMemPageInfo = _useState8[1]; // 成员分页信息 var renderType = $$componentItem.renderType; 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 setDefaultValue = function setDefaultValue() { if (defaultValue) { var staffIds = defaultValue.map(function (item) { return item.staffId; }); setMemberValues(staffIds); setSMemberList(defaultValue); } }; (0, _react.useEffect)(function () { setDefaultValue(); }, [JSON.stringify(defaultValue)]); (0, _react.useEffect)(function () { if (visible) { setDefaultValue(); } }, [JSON.stringify(visible)]); /** * 处理人员数据 * @param srcData * @returns */ var formatGroups = function formatGroups() { var srcData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var memberList = []; if (srcData && (srcData === null || srcData === void 0 ? void 0 : srcData.length) > 0) { srcData.forEach(function (item) { var staffId = item.staffId, staffName = item.staffName; if (staffName && staffId) { memberList.push(Object.assign(Object.assign({}, item), { label: staffName, value: staffId })); } }); } return memberList; }; var deleteMemberList = function deleteMemberList(staffId) { var otherMemberInfo = sMemberList.filter(function (item) { return item.staffId !== staffId; }); setSMemberList(otherMemberInfo); var otherMemberKeys = memberValues === null || memberValues === void 0 ? void 0 : memberValues.filter(function (value) { return value !== staffId; }); setMemberValues(otherMemberKeys); }; // 由于安全问题,不使用lodash.unionby,自己手动写一个类似功能的方法 var myUnionBy = function myUnionBy(arrays, iteratee) { if (typeof iteratee !== 'function' && typeof iteratee !== 'string') { throw new Error('Iteratee must be a function or a string'); } // 使用 Map 来存储唯一值,因为 Map 保留了插入顺序 var resultMap = new Map(); // 遍历所有数组 // eslint-disable-next-line no-restricted-syntax var _iterator = _createForOfIteratorHelper(arrays), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var array = _step.value; // eslint-disable-next-line no-restricted-syntax var _iterator2 = _createForOfIteratorHelper(array), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var item = _step2.value; var key = item[iteratee]; if (!resultMap.has(key)) { resultMap.set(key, item); } } } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } } // 将 Map 转换回数组 } catch (err) { _iterator.e(err); } finally { _iterator.f(); } return Array.from(resultMap.values()); }; /** * 选中的人员数据 * @param srcObj */ var formatSMemberList = function formatSMemberList() { var _a; if (memberValues) { // const allMembers = unionby(sMemberList, memberOptions, 'staffId'); var allMembers = myUnionBy([sMemberList, memberOptions], 'staffId'); var memberInfo = []; (_a = memberValues === null || memberValues === void 0 ? void 0 : memberValues.forEach) === null || _a === void 0 ? void 0 : _a.call(memberValues, function (value) { var hasMember = allMembers.filter(function (item) { return "".concat(item.staffId) === "".concat(value); }); if (hasMember && hasMember.length) { var sList = hasMember; if (hasMember.length > 1) { sList = [hasMember[0]]; } memberInfo = [].concat(_toConsumableArray(memberInfo), _toConsumableArray(sList)); } }); setSMemberList(memberInfo); } }; (0, _react.useEffect)(function () { formatSMemberList(); }, [JSON.stringify(memberValues)]); /** * 获取人员数据 * @param pageIndex */ var getUserRunning = function getUserRunning(param) { var _a; var _param$pageIndex = param.pageIndex, pageIndex = _param$pageIndex === void 0 ? 0 : _param$pageIndex; var reqParms = Object.assign(Object.assign({}, param), { pageLen: 20 }); if (memPageInfo === null || memPageInfo === void 0 ? void 0 : memPageInfo.searchValue.trim()) { reqParms.staffName = memPageInfo === null || memPageInfo === void 0 ? void 0 : memPageInfo.searchValue.trim(); } if (renderType === 'editor') { _core.wufengController.getAction('getUserRunning', reqParms).then(function (res) { if (res) { setMemberOptions(formatGroups(res)); var _res$list = res.list, list = _res$list === void 0 ? [] : _res$list, total = res.total; if (pageIndex === 0) { setMemberOptions(_toConsumableArray(formatGroups(list))); } else { setMemberOptions([].concat(_toConsumableArray(memberOptions), _toConsumableArray(formatGroups(list)))); } setMemPageInfo(Object.assign(Object.assign({}, memPageInfo), { pageIndex: pageIndex + 1, total: parseInt(total || '0', 10) })); } }); } else { (_a = customEngineApi === null || customEngineApi === void 0 ? void 0 : customEngineApi.getUserRunning) === null || _a === void 0 ? void 0 : _a.call(customEngineApi, reqParms).then(function (res) { if (res) { setMemberOptions(formatGroups(res)); var _res$list2 = res.list, list = _res$list2 === void 0 ? [] : _res$list2, total = res.total; if (pageIndex === 0) { setMemberOptions(_toConsumableArray(formatGroups(list))); } else { setMemberOptions([].concat(_toConsumableArray(memberOptions), _toConsumableArray(formatGroups(list)))); } setMemPageInfo(Object.assign(Object.assign({}, memPageInfo), { pageIndex: pageIndex + 1, total: parseInt(total || '0', 10) })); } }); } }; // const formateTreeData = (srcData = [], parentKey: string) => { // if (!Array.isArray(srcData)) return []; // const treeData = (srcData || []).map((item: any) => { // const { orgId, orgName, children = [] } = item; // const obj = item; // if (children?.length) { // obj.children = formateTreeData(children, orgId); // } // return { ...item, key: orgId, title: orgName, parentKey }; // }); // return treeData; // }; (0, _react.useEffect)(function () { if (visible) { if (pageId && componentId) { getUserRunning({ pageIndex: 0, page: pageId, componentId: componentId }); } else { getUserRunning({ pageIndex: 0 }); } } }, [visible]); var onSearch = function onSearch(value) { if (pageId && componentId) { getUserRunning({ pageIndex: 0, staffName: value, page: pageId, componentId: componentId }); } else { getUserRunning({ pageIndex: 0, staffName: value }); } }; return /*#__PURE__*/_react.default.createElement(_antd.Modal, { title: "\u6DFB\u52A0\u4EBA\u5458", width: 729, bodyStyle: { padding: '0', height: '510px' }, visible: visible, onCancel: onCancel, maskClosable: false, okText: "\u786E\u5B9A", cancelText: "\u53D6\u6D88", onOk: function onOk() { if (_onOk) { _onOk(sMemberList); } } }, /*#__PURE__*/_react.default.createElement(_antd.Space, { direction: "vertical", style: { width: '100%', padding: ' 12px 24px 0 24px' }, size: 16 }, /*#__PURE__*/_react.default.createElement(Search, { placeholder: "\u641C\u7D22\u4EBA\u5458\u540D\u79F0", onSearch: onSearch, style: { width: '100%' }, enterButton: "\u641C\u7D22", value: memPageInfo === null || memPageInfo === void 0 ? void 0 : memPageInfo.searchValue, onChange: function onChange(e) { setMemPageInfo(Object.assign(Object.assign({}, memPageInfo), { searchValue: e.target.value })); } }), /*#__PURE__*/_react.default.createElement("div", { className: "".concat(_utils.prefix, "-memberTabPane") }, /*#__PURE__*/_react.default.createElement(_MemberListComp.default, { value: memberValues, data: memberOptions, total: (memPageInfo === null || memPageInfo === void 0 ? void 0 : memPageInfo.total) || 0, loadMoreFun: function loadMoreFun() { getUserRunning({ pageIndex: memPageInfo === null || memPageInfo === void 0 ? void 0 : memPageInfo.pageIndex }); }, onChange: function onChange(checkedValue) { if (selectType === 'single') { if (checkedValue.length) { // 单选 setMemberValues([checkedValue[checkedValue.length - 1]]); } else { setMemberValues([]); } } else { // 多选 setMemberValues(checkedValue); } } }))), /*#__PURE__*/_react.default.createElement("div", { className: "".concat(_utils.prefix, "-footContent") }, /*#__PURE__*/_react.default.createElement("div", { className: "".concat(_utils.prefix, "-clearText") }, /*#__PURE__*/_react.default.createElement("a", { onClick: function onClick() { setMemberValues([]); setSMemberList([]); } }, "\u6E05\u7A7A")), /*#__PURE__*/_react.default.createElement(_antd.Space, { size: 4, wrap: true, style: { width: '100%', height: '70px', overflowY: 'auto' } }, (_b = sMemberList === null || sMemberList === void 0 ? void 0 : sMemberList.map) === null || _b === void 0 ? void 0 : _b.call(sMemberList, function (mItem) { var staffId = mItem.staffId, staffName = mItem.staffName; return /*#__PURE__*/_react.default.createElement(_antd.Tag, { key: staffId, icon: /*#__PURE__*/_react.default.createElement("span", { style: _constants.MEMBER_ICON_STYLE }, staffName.substr(0, 1)), closable: true, style: _constants.TAG_STYLE, onClose: function onClose() { deleteMemberList(staffId); } }, staffName); })))); }; var _default = exports.default = AddMemberModal;