syber-lowcode-business-materials
Version:
syber-lowcode-business-materials
605 lines (594 loc) • 27.6 kB
JavaScript
"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;