@aliretail/react-materials-components
Version:
283 lines (238 loc) • 12.1 kB
JavaScript
;
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;