UNPKG

syber-lowcode-business-materials

Version:
605 lines (594 loc) 27.6 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _space = _interopRequireDefault(require("antd/lib/space")); var _button = _interopRequireDefault(require("antd/lib/button")); var _form = _interopRequireDefault(require("antd/lib/form")); var _input = _interopRequireDefault(require("antd/lib/input")); var _message2 = _interopRequireDefault(require("antd/lib/message")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _modal = _interopRequireDefault(require("antd/lib/modal")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _directoryPlus = _interopRequireDefault(require("./directory-plus")); var _react = _interopRequireWildcard(require("react")); require("./directory-plus.scss"); var _variables = require("../../variables"); var _checkEnv = require("../../utils/function/checkEnv"); 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; } var CustomDirectory = function CustomDirectory(props) { var _appHelper$constants, _appHelper$constants2, _appHelper$constants3, _props$permission, _props$permission2, _props$permission3, _props$permission4, _props$permission5, _props$permission6, _props$permission7; var appHelper = _react["default"].useContext(window.__appContext).appHelper; var _useState = (0, _react.useState)(0), updateTime = _useState[0], setUpdateTime = _useState[1]; var groupName = props.groupName || '分组'; var itemName = props.itemName || '分组'; var directoryRef = (0, _react.useRef)(null); var httpFuncRef = (0, _react.useRef)({ sendTcp: function sendTcp(path, data, successCallback, errorCallback) { var _appHelper$utils, _appHelper$utils$_req; console.log("appHelper", appHelper); appHelper === null || appHelper === void 0 ? void 0 : (_appHelper$utils = appHelper.utils) === null || _appHelper$utils === void 0 ? void 0 : (_appHelper$utils$_req = _appHelper$utils._request) === null || _appHelper$utils$_req === void 0 ? void 0 : _appHelper$utils$_req.call(_appHelper$utils, path, { method: 'post', data: data }).then(function (result) { if ((result === null || result === void 0 ? void 0 : result.code) === 200) { successCallback(result.code, result.message, result.data, result.option); } else { errorCallback(result.code, result.message, result.data, result.option); } })["catch"](function (err) { errorCallback(-99, err.toString(), null, null); }); } }); var platformType = (appHelper === null || appHelper === void 0 ? void 0 : (_appHelper$constants = appHelper.constants) === null || _appHelper$constants === void 0 ? void 0 : _appHelper$constants.__platformType) || "platform"; var baseApiParams = { spaceId: appHelper === null || appHelper === void 0 ? void 0 : (_appHelper$constants2 = appHelper.constants) === null || _appHelper$constants2 === void 0 ? void 0 : _appHelper$constants2.__spaceId, execUnitId: appHelper === null || appHelper === void 0 ? void 0 : (_appHelper$constants3 = appHelper.constants) === null || _appHelper$constants3 === void 0 ? void 0 : _appHelper$constants3.__execUnitId, customKey: props.customKey }; if ((props === null || props === void 0 ? void 0 : props.__designMode) === "design") { console.log("props", props); } var dpConfig = { subTitle: props.subTitle || '', groupName: groupName, itemName: itemName, maxLevel: props.maxLevel || 4, childIndent: props.childIndent || 24, showGroupNum: props.showGroupNum, showEmptyMark: props.showEmptyMark, hideArrow: props.hideArrow, hideTitle: props.hideTitle, couldDrag: props.__designMode === "design" || ((_props$permission = props.permission) === null || _props$permission === void 0 ? void 0 : _props$permission.couldDrag), couldAddGroup: props.__designMode === "design" || ((_props$permission2 = props.permission) === null || _props$permission2 === void 0 ? void 0 : _props$permission2.couldAddGroup), couldAddItem: props.__designMode === "design" || ((_props$permission3 = props.permission) === null || _props$permission3 === void 0 ? void 0 : _props$permission3.couldAddItem), couldEditGroup: props.__designMode === "design" || ((_props$permission4 = props.permission) === null || _props$permission4 === void 0 ? void 0 : _props$permission4.couldEditGroup), couldEditItem: props.__designMode === "design" || ((_props$permission5 = props.permission) === null || _props$permission5 === void 0 ? void 0 : _props$permission5.couldEditItem), couldDeleteGroup: props.__designMode === "design" || ((_props$permission6 = props.permission) === null || _props$permission6 === void 0 ? void 0 : _props$permission6.couldDeleteGroup), couldDeleteItem: props.__designMode === "design" || ((_props$permission7 = props.permission) === null || _props$permission7 === void 0 ? void 0 : _props$permission7.couldDeleteItem) }; (0, _react.useEffect)(function () { setUpdateTime(function (oldTime) { return oldTime + 1; }); }, [JSON.stringify(dpConfig)]); //获取目录树 var getTreeData = function getTreeData() { console.log("去请求目录树"); return new Promise(function (resolve, reject) { if (!props.customKey) { console.log("请填写目录唯一Key"); reject('请填写目录唯一Key'); } if ((0, _checkEnv.isLocalDev)()) { var testData = [{ isGroup: 1, name: "分组1", _id: "group_1", child: [{ isGroup: 0, name: "子项A", _id: "item_a" }, { isGroup: 0, name: "子项B", _id: "item_b" }] }, { isGroup: 1, name: "分组2", _id: "group_2", child: [] }]; resolve(testData); } else { httpFuncRef.current.sendTcp(platformType === 'platform' ? '/platform/platform/erpCustom/treeList' : '/platform/space/erpCustom/treeList', (0, _extends2["default"])({}, baseApiParams), function (code, msg, json) { var _props$onDirectoryDat; console.log("目录请求成功", json); (_props$onDirectoryDat = props.onDirectoryDataGet) === null || _props$onDirectoryDat === void 0 ? void 0 : _props$onDirectoryDat.call(props, json); resolve(json); }, function (code, msg) { console.log("目录请求失败", msg); reject(msg); }); } }); }; //删除分组 var deleteGroup = function deleteGroup(data) { return new Promise(function (resolve, reject) { var url; if (data.isGroup) { url = platformType === 'platform' ? '/platform/platform/group/delete' : '/platform/space/group/delete'; } else { url = platformType === 'platform' ? '/platform/platform/erpCustom/delete' : '/platform/space/erpCustom/delete'; } _modal["default"].confirm({ title: '提示', content: "\u786E\u8BA4\u5220\u9664" + (data.isGroup ? groupName : itemName) + "\u3010" + data.name + "\u3011\u5417\uFF1F", okText: "确认", cancelText: "取消", onOk: function onOk() { var _httpFuncRef$current; //请求删除接口 (_httpFuncRef$current = httpFuncRef.current) === null || _httpFuncRef$current === void 0 ? void 0 : _httpFuncRef$current.sendTcp(url, (0, _extends2["default"])({ _id: data._id }, baseApiParams), function (code, msg, json) { //触发回调 if (data.isGroup) { var _props$onDirectoryGro; (_props$onDirectoryGro = props.onDirectoryGroupDelete) === null || _props$onDirectoryGro === void 0 ? void 0 : _props$onDirectoryGro.call(props, data); } else { var _props$onDirectoryIte; (_props$onDirectoryIte = props.onDirectoryItemDelete) === null || _props$onDirectoryIte === void 0 ? void 0 : _props$onDirectoryIte.call(props, data); } resolve(); }, function (code, msg) { _modal["default"].warn({ title: '提示', content: msg }); reject(); }); }, onCancel: function onCancel() { reject(); } }); }); }; //新增、编辑分组 var editGroup = function editGroup(data, parentNode) { var addUrl = platformType === 'platform' ? '/platform/platform/group/add' : '/platform/space/group/add'; var editUrl = platformType === 'platform' ? '/platform/platform/group/update' : '/platform/space/group/update'; console.log(data); return new Promise(function (resolve, reject) { _modal["default"].confirm({ title: (data ? '编辑' : '新增') + groupName, icon: null, // footer: null, okButtonProps: { style: { display: 'none' } }, cancelButtonProps: { style: { display: 'none' } }, content: /*#__PURE__*/_react["default"].createElement(_form["default"], { layout: "horizontal", labelCol: { span: 6 }, wrapperCol: { span: 16 }, initialValues: data, onFinish: (/*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(values) { var params; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: params = data ? (0, _extends2["default"])({ _id: data._id, title: values.name }, baseApiParams) : (0, _extends2["default"])({ sort: 1, parentId: parentNode === null || parentNode === void 0 ? void 0 : parentNode._id, title: values.name, isGroup: 1, entityType: 5 }, baseApiParams); httpFuncRef.current.sendTcp(data ? editUrl : addUrl, params, function (code, msg, json) { _modal["default"].destroyAll(); _message2["default"].success('操作成功'); if (data) { var _props$onDirectoryGro2; //编辑 (_props$onDirectoryGro2 = props.onDirectoryGroupEdit) === null || _props$onDirectoryGro2 === void 0 ? void 0 : _props$onDirectoryGro2.call(props, { isGroup: 1, name: values.name, _id: data._id, originName: data.name }); } else if (json) { //选中创建的分组 setTimeout(function () { var _directoryRef$current, _props$onDirectoryGro3; (_directoryRef$current = directoryRef.current) === null || _directoryRef$current === void 0 ? void 0 : _directoryRef$current.setSelItem(json, null, true); //触发新增的回调 (_props$onDirectoryGro3 = props.onDirectoryGroupAdd) === null || _props$onDirectoryGro3 === void 0 ? void 0 : _props$onDirectoryGro3.call(props, { isGroup: 1, name: values.name, _id: json }); }, 500); } resolve(); }, function (code, msg) { _message2["default"].error(msg); reject(msg); }); case 2: case "end": return _context.stop(); } }, _callee); })); return function (_x) { return _ref.apply(this, arguments); }; }()) }, /*#__PURE__*/_react["default"].createElement(_form["default"].Item, { name: 'name', label: groupName + '名称', initialValue: data === null || data === void 0 ? void 0 : data.name, rules: [{ required: true, message: "\u8BF7\u8F93\u5165" + groupName + "\u540D\u79F0" }] }, /*#__PURE__*/_react["default"].createElement(_input["default"], { placeholder: "\u8BF7\u8F93\u5165" + groupName + "\u540D\u79F0", maxLength: 30, showCount: true })), /*#__PURE__*/_react["default"].createElement("div", { className: _variables.bizCssPrefix + '-flexEnd' }, /*#__PURE__*/_react["default"].createElement(_space["default"], null, /*#__PURE__*/_react["default"].createElement(_button["default"], { onClick: function onClick() { _modal["default"].destroyAll(); } }, "\u53D6\u6D88"), /*#__PURE__*/_react["default"].createElement(_button["default"], { type: "primary", htmlType: "submit" }, "\u4FDD\u5B58")))) }); }); }; //新增子项 var addChildItem = function addChildItem(parentNode) { var editUrl = platformType === 'platform' ? '/platform/platform/erpCustom/add' : '/platform/space/erpCustom/add'; return new Promise(function (resolve, reject) { _modal["default"].confirm({ title: '新增' + itemName, icon: null, okButtonProps: { style: { display: 'none' } }, cancelButtonProps: { style: { display: 'none' } }, content: /*#__PURE__*/_react["default"].createElement(_form["default"], { layout: "horizontal", labelCol: { span: 5 }, wrapperCol: { span: 19 }, onFinish: (/*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(values) { return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: console.log('values', values); httpFuncRef.current.sendTcp(editUrl, (0, _extends2["default"])({}, values, { parentId: parentNode === null || parentNode === void 0 ? void 0 : parentNode._id, isGroup: 0, sort: 1 }, baseApiParams), function (code, msg, json) { var _props$onDirectoryIte2; _modal["default"].destroyAll(); _message2["default"].success('创建成功'); if (json) { //选中 setTimeout(function () { var _directoryRef$current2; (_directoryRef$current2 = directoryRef.current) === null || _directoryRef$current2 === void 0 ? void 0 : _directoryRef$current2.setSelItem(json, null, true); }, 500); } //触发回调 (_props$onDirectoryIte2 = props.onDirectoryItemAdd) === null || _props$onDirectoryIte2 === void 0 ? void 0 : _props$onDirectoryIte2.call(props, { isGroup: 0, name: values.name, _id: json }); resolve(); }, function (code, msg) { _message2["default"].error(msg); reject(msg); }); case 2: case "end": return _context2.stop(); } }, _callee2); })); return function (_x2) { return _ref2.apply(this, arguments); }; }()) }, /*#__PURE__*/_react["default"].createElement(_form["default"].Item, { name: 'name', label: itemName + '名称', rules: [{ required: true, message: "\u8BF7\u8F93\u5165" + itemName + "\u540D\u79F0" }] }, /*#__PURE__*/_react["default"].createElement(_input["default"], { placeholder: "\u8BF7\u8F93\u5165" + itemName + "\u540D\u79F0", maxLength: 30, showCount: true })), /*#__PURE__*/_react["default"].createElement("div", { className: _variables.bizCssPrefix + '-flexEnd' }, /*#__PURE__*/_react["default"].createElement(_space["default"], null, /*#__PURE__*/_react["default"].createElement(_button["default"], { onClick: function onClick() { _modal["default"].destroyAll(); } }, "\u53D6\u6D88"), /*#__PURE__*/_react["default"].createElement(_button["default"], { type: "primary", htmlType: "submit" }, "\u4FDD\u5B58")))) }); }); }; //编辑子项 var editChildItem = function editChildItem(originData) { var editUrl = platformType === 'platform' ? '/platform/platform/erpCustom/update' : '/platform/space/erpCustom/update'; return new Promise(function (resolve, reject) { _modal["default"].confirm({ title: '编辑' + itemName, icon: null, okButtonProps: { style: { display: 'none' } }, cancelButtonProps: { style: { display: 'none' } }, content: /*#__PURE__*/_react["default"].createElement(_form["default"], { layout: "horizontal", initialValues: originData, labelCol: { span: 5 }, wrapperCol: { span: 19 }, onFinish: (/*#__PURE__*/function () { var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(values) { return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: console.log('values', values); httpFuncRef.current.sendTcp(editUrl, (0, _extends2["default"])({}, values, { _id: originData._id }, baseApiParams), function (code, msg, json) { var _props$onDirectoryIte3; _modal["default"].destroyAll(); _message2["default"].success('编辑成功'); //编辑的回调 (_props$onDirectoryIte3 = props.onDirectoryItemEdit) === null || _props$onDirectoryIte3 === void 0 ? void 0 : _props$onDirectoryIte3.call(props, { _id: originData._id, name: values.name, isGroup: 0, originName: originData.name }); resolve(); }, function (code, msg) { _message2["default"].error(msg); reject(msg); }); case 2: case "end": return _context3.stop(); } }, _callee3); })); return function (_x3) { return _ref3.apply(this, arguments); }; }()) }, /*#__PURE__*/_react["default"].createElement(_form["default"].Item, { name: 'name', label: itemName + '名称', initialValue: originData === null || originData === void 0 ? void 0 : originData.name, rules: [{ required: true, message: "\u8BF7\u8F93\u5165" + itemName + "\u540D\u79F0" }] }, /*#__PURE__*/_react["default"].createElement(_input["default"], { placeholder: "\u8BF7\u8F93\u5165" + itemName + "\u540D\u79F0", maxLength: 30, showCount: true })), /*#__PURE__*/_react["default"].createElement("div", { className: _variables.bizCssPrefix + '-flexEnd' }, /*#__PURE__*/_react["default"].createElement(_space["default"], null, /*#__PURE__*/_react["default"].createElement(_button["default"], { onClick: function onClick() { _modal["default"].destroyAll(); } }, "\u53D6\u6D88"), /*#__PURE__*/_react["default"].createElement(_button["default"], { type: "primary", htmlType: "submit" }, "\u4FDD\u5B58")))) }); }); }; //排序 var sortGroup = function sortGroup(parentItem, sortChildren) { return new Promise(function (resolve, reject) { var maxNum = sortChildren === null || sortChildren === void 0 ? void 0 : sortChildren.length; var url = platformType === 'platform' ? '/platform/platform/group/edit' : '/platform/space/group/edit'; httpFuncRef.current.sendTcp(url, (0, _extends2["default"])({ entityType: 5 }, baseApiParams, { list: sortChildren.map(function (eachItem, index) { return { _id: eachItem._id, isGroup: eachItem.isGroup, sort: maxNum - index }; }) }), function (code, msg, json) { _message2["default"].success('排序成功'); console.log('-------', json); // //触发更新小版本列表 // triggerUpdateVersion({}) resolve(); }, function (code, msg) { _modal["default"].warn({ title: '提示', content: msg }); reject(); }); }); }; //切换分组 var changeGroup = function changeGroup(parentItem, childItem, sortChildren) { var useForGroup = platformType === 'platform' ? '/platform/platform/group/edit' : '/platform/space/group/edit'; var useForPage = platformType === 'platform' ? '/platform/platform/group/edit' : '/platform/space/group/edit'; var maxNum = sortChildren === null || sortChildren === void 0 ? void 0 : sortChildren.length; return new Promise(function (resolve, reject) { var url = childItem.isGroup ? useForGroup : useForPage; httpFuncRef.current.sendTcp(url, (0, _extends2["default"])({ entityType: 5, _id: childItem._id, parentId: (parentItem === null || parentItem === void 0 ? void 0 : parentItem._id) || null }, baseApiParams, { list: sortChildren.map(function (eachItem, index) { return { _id: eachItem._id, isGroup: eachItem.isGroup, sort: maxNum - index }; }) }), function (code, msg, json) { _message2["default"].success('操作成功'); console.log('-------', json); resolve(true); }, function (code, msg) { _modal["default"].warn({ title: '提示', content: msg }); reject(); }); }); }; return /*#__PURE__*/_react["default"].createElement("div", { style: props.style || { width: "100%", height: "100%", position: "relative" } }, /*#__PURE__*/_react["default"].createElement(_directoryPlus["default"], { ref: directoryRef, key: "DirectoryPlus_" + updateTime, title: /*#__PURE__*/_react["default"].createElement("span", { onClick: function onClick() { var _props$onDirectoryTit; //点击标题 (_props$onDirectoryTit = props.onDirectoryTitleClick) === null || _props$onDirectoryTit === void 0 ? void 0 : _props$onDirectoryTit.call(props); } }, props.title || ''), fieldsConfig: { title: 'name', id: '_id', isGroup: 'isGroup', children: 'child' }, customStyle: { containerStyle: props.backgroundTransparent ? { background: "transparent" } : {} }, staticConfig: dpConfig, selectConfig: { defaultSelect: null }, requestTreeData: getTreeData, onClickTreeItem: function onClickTreeItem(selectNode) { console.log('点击了节点'); console.log(selectNode); if (selectNode.isGroup === 1) { var _props$onDirectoryGro4; //触发选中目录事件 (_props$onDirectoryGro4 = props.onDirectoryGroupSelected) === null || _props$onDirectoryGro4 === void 0 ? void 0 : _props$onDirectoryGro4.call(props, selectNode); } else { var _props$onDirectoryIte4; //触发选中子项事件 (_props$onDirectoryIte4 = props.onDirectoryItemSelected) === null || _props$onDirectoryIte4 === void 0 ? void 0 : _props$onDirectoryIte4.call(props, selectNode); } }, onDelete: function onDelete(targetTree) { console.log('需要被删除的数据', targetTree); return deleteGroup(targetTree); }, onAddGroup: function onAddGroup(parentItem) { console.log('新增分组,新增到这一层', parentItem); return editGroup(null, parentItem); }, onEditGroup: function onEditGroup(targetTree) { console.log('需要编辑的分组', targetTree); return editGroup(targetTree, null); }, onAddItem: function onAddItem(parentItem) { console.log('新增项目,新增到这一层', parentItem); return addChildItem(parentItem); }, onEditItem: function onEditItem(targetTree) { console.log('需要编辑的', targetTree); return editChildItem(targetTree); }, onSort: function onSort(parentItem, sortChildren) { console.log('触发排序'); console.log('parentItem为父级,不存在则代表排序顶层内容', parentItem); console.log('sortChildren为新的已经排序好的子项数组', sortChildren); return sortGroup(parentItem, sortChildren); }, onChangeGroup: function onChangeGroup(parentItem, childItem, sortChildren) { console.log('触发移动到别的分组'); console.log('parentItem为父级,不存在则代表移动到顶层', parentItem); console.log('childItem为被移动的项目', childItem); console.log('sortChildren为修改后新的层级排序结果', sortChildren); return changeGroup(parentItem, childItem, sortChildren); } })); }; CustomDirectory.displayName = 'CustomDirectory'; var _default = exports["default"] = CustomDirectory;