UNPKG

@aliretail/react-materials-components

Version:
283 lines (238 loc) 12.1 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = void 0; var _dialog = _interopRequireDefault(require("@alifd/next/lib/dialog")); var _message = _interopRequireDefault(require("@alifd/next/lib/message")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireWildcard(require("react")); var PropTypes = _interopRequireWildcard(require("prop-types")); var _reactUniversalRequest = _interopRequireDefault(require("@aliretail/react-universal-request")); var _RelateMainModeTable = _interopRequireDefault(require("./components/RelateMainModeTable")); var _type = _interopRequireDefault(require("./utils/type")); 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; } var SettlementConfigurationTable = function SettlementConfigurationTable(props) { var columns = props.columns, _props$requestMap = props.requestMap, requestMap = _props$requestMap === void 0 ? {} : _props$requestMap, url = props.url, handleSave = props.handleSave, handleDelete = props.handleDelete, handleChange = props.handleChange; var table = requestMap.table, relateSelect = requestMap.relateSelect, deleted = requestMap.deleted, save = requestMap.save, disabled = requestMap.disabled; var selectUrl = url.selectUrl, tableUrl = url.tableUrl, deleteUrl = url.deleteUrl, saveUrl = url.saveUrl, disabledUrl = url.disabledUrl; var _useState = (0, _react.useState)([]), dataSource = _useState[0], setDataSource = _useState[1]; // table列表数据 var _useState2 = (0, _react.useState)([]), columnsList = _useState2[0], setColumnsList = _useState2[1]; // table列配置数据 var _useState3 = (0, _react.useState)([]), relateSelectList = _useState3[0], setRelateSelectList = _useState3[1]; // table列配置的下拉数据 // 获取表格列表数据请求 var getTableDataSourceListApi = function getTableDataSourceListApi() { // if (!table?.apiCode || !table?.appCode) { // return; // } (0, _reactUniversalRequest["default"])({ url: tableUrl, method: 'post', type: 'json', appCode: table === null || table === void 0 ? void 0 : table.appCode, apiCode: table === null || table === void 0 ? void 0 : table.apiCode, data: (0, _extends2["default"])({}, table === null || table === void 0 ? void 0 : table.params), autoShowErrorMessage: true }).then(function (result) { if (result !== null && result !== void 0 && result.success && result !== null && result !== void 0 && result.result) { // 回填的数据组件除了switch组件不会被禁用 其他都会被禁用 isComponentDisabled就是这个禁用标识 var newResult = result === null || result === void 0 ? void 0 : result.result.map(function (item) { return (0, _extends2["default"])({}, item, { isComponentDisabled: true, isSave: true }); }); setDataSource(newResult); } else { _message["default"].error((result === null || result === void 0 ? void 0 : result.message) || '获取表格数据列表失败'); } }); }; // 获取关联主对象下拉列表数据 var getSelectDataSourceListApi = function getSelectDataSourceListApi() { // if (!relateSelect?.apiCode || !relateSelect?.appCode) { // return; // } (0, _reactUniversalRequest["default"])({ url: selectUrl, method: 'post', type: 'json', apiCode: relateSelect === null || relateSelect === void 0 ? void 0 : relateSelect.apiCode, appCode: relateSelect === null || relateSelect === void 0 ? void 0 : relateSelect.appCode, data: (0, _extends2["default"])({}, relateSelect === null || relateSelect === void 0 ? void 0 : relateSelect.params, table === null || table === void 0 ? void 0 : table.params), autoShowErrorMessage: true }).then(function (result) { if (result !== null && result !== void 0 && result.success && result !== null && result !== void 0 && result.result) { setRelateSelectList(result.result); getTableDataSourceListApi(); } else { _message["default"].error((result === null || result === void 0 ? void 0 : result.message) || '获取下拉数据列表失败'); } }); }; // 删除服务请求 var deleteApi = function deleteApi(value, index, record) { // if (!deleted?.appCode || !deleted?.apiCode) { // return; // } _dialog["default"].confirm({ content: '确认删除这条数据吗?', onOk: function onOk() { (0, _reactUniversalRequest["default"])({ url: deleteUrl, method: 'post', type: 'json', appCode: deleted === null || deleted === void 0 ? void 0 : deleted.appCode, apiCode: deleted === null || deleted === void 0 ? void 0 : deleted.apiCode, data: (0, _extends2["default"])({}, deleted === null || deleted === void 0 ? void 0 : deleted.params, table === null || table === void 0 ? void 0 : table.params, record), autoShowErrorMessage: true }).then(function (result) { if (result !== null && result !== void 0 && result.success && result !== null && result !== void 0 && result.result) { _message["default"].success('删除成功'); getTableDataSourceListApi(); handleDelete(value, index, record); } else { _message["default"].error((result === null || result === void 0 ? void 0 : result.message) || '删除失败'); } }); } }); }; // 保存服务请求 var saveApi = function saveApi(value, index, record) { // if (!save?.apiCode || !save?.appCode) { // return; // } (0, _reactUniversalRequest["default"])({ url: saveUrl, method: 'post', type: 'json', appCode: save === null || save === void 0 ? void 0 : save.appCode, apiCode: save === null || save === void 0 ? void 0 : save.apiCode, data: (0, _extends2["default"])({}, save === null || save === void 0 ? void 0 : save.params, table === null || table === void 0 ? void 0 : table.params, record), autoShowErrorMessage: true }).then(function (result) { if (result !== null && result !== void 0 && result.success && result !== null && result !== void 0 && result.result) { _message["default"].success('保存成功'); getTableDataSourceListApi(); handleSave(value, index, record); } else { _message["default"].error((result === null || result === void 0 ? void 0 : result.message) || '保存失败'); } }); }; // 启用/禁用服务请求 var disableApi = function disableApi(value, index, record) { // if (!disabled?.apiCode || !disabled?.appCode) { // return; // } var messageText = value ? '启用成功' : '禁用成功'; (0, _reactUniversalRequest["default"])({ url: disabledUrl, method: 'post', appCode: disabled === null || disabled === void 0 ? void 0 : disabled.appCode, apiCode: disabled === null || disabled === void 0 ? void 0 : disabled.apiCode, data: (0, _extends2["default"])({}, disabled === null || disabled === void 0 ? void 0 : disabled.params, table === null || table === void 0 ? void 0 : table.params, record), autoShowErrorMessage: true }).then(function (result) { if (result !== null && result !== void 0 && result.success && result !== null && result !== void 0 && result.result) { _message["default"].success(messageText); // getTableDataSourceListApi(); } else { _message["default"].error((result === null || result === void 0 ? void 0 : result.message) || messageText); } }); }; // 处理表格columns列配置列表数据 合并没有传cell回调的情况 如果有不进行合并 var dealColumnsList = function dealColumnsList() { var newColumnsList = columns === null || columns === void 0 ? void 0 : columns.map(function (item) { var TypeCom = _type["default"][item.type]; var extraProps = {}; // 处理select组件以及switch组件情况 select需要传dataSource switch需要传其他配置 if (item.type === 'select') { extraProps.dataSource = relateSelectList; } else if (item.type === 'switch') { extraProps.checkedChildren = '已启用'; extraProps.unCheckedChildren = '已禁用'; extraProps.disabled = false; } else if (item.type === 'text') { extraProps.isPreview = true; } return (0, _extends2["default"])({ cell: function cell(value, index, record) { var type = item.type; return /*#__PURE__*/_react["default"].createElement(TypeCom, (0, _extends2["default"])({ value: value, checked: value, disabled: record.isComponentDisabled }, extraProps, { onChange: function onChange(val) { _onChange(val, index, record, item.dataIndex, type); } })); } }, item); }); setColumnsList(newColumnsList); }; (0, _react.useEffect)(function () { getSelectDataSourceListApi(); dealColumnsList(); }, []); (0, _react.useEffect)(function () { dealColumnsList(); }, [dataSource]); // 表格列组件onChange事件 (启用和禁用也需要调接口) var _onChange = function _onChange(value, index, record, dataIndex, type) { var newDataSource = Object.assign([], dataSource); newDataSource.forEach(function (item, idx) { if (idx === index) { item[dataIndex] = value; } }); setDataSource(newDataSource); // switch组件进行onChange需要发请求 不会禁用 if (type === 'switch' && record.isSave) { disableApi(value, index, record); } handleChange(value, index, record, dataIndex); }; // 操作列-保存操作 var onSave = function onSave(value, index, record) { saveApi(value, index, record); }; // 操作列-删除操作 var onDelete = function onDelete(value, index, record) { deleteApi(value, index, record); }; return /*#__PURE__*/_react["default"].createElement("div", { className: "aliretail-settlement-configurate-table" }, /*#__PURE__*/_react["default"].createElement(_RelateMainModeTable["default"], { columns: columnsList, dataSource: dataSource, relateSelectList: relateSelectList, setDataSource: setDataSource, onSave: onSave, onDelete: onDelete })); }; SettlementConfigurationTable.propTypes = { columns: PropTypes.arrayOf(PropTypes.any), requestMap: PropTypes.objectOf(PropTypes.any), url: PropTypes.objectOf(PropTypes.any) }; SettlementConfigurationTable.defaultProps = { columns: [], requestMap: {}, url: {} }; var _default = SettlementConfigurationTable; exports["default"] = _default;