UNPKG

@aliretail/react-materials-components

Version:
248 lines (222 loc) 8.52 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 = _interopRequireDefault(require("prop-types")); var _reactUniversalRequest = _interopRequireDefault(require("@aliretail/react-universal-request")); var _FormComponents = require("../FormComponents"); 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; } (0, _FormComponents.setup)(); var actions = (0, _FormComponents.createFormActions)(); var debounceFlag = false; var DeliverGoodsDialog = function DeliverGoodsDialog(props) { var visible = props.visible, handleOk = props.handleOk, handleClose = props.handleClose, children = props.children, params = props.params, title = props.title, apiCode = props.apiCode, appCode = props.appCode, logisticsAppCode = props.logisticsAppCode, logisticsApiCode = props.logisticsApiCode, labelText = props.labelText, valueText = props.valueText, logisticsCompanyDataSource = props.logisticsCompanyDataSource; var _useState = (0, _react.useState)(visible), dialogVisible = _useState[0], setDialogVisible = _useState[1]; var _useState2 = (0, _react.useState)([]), companyList = _useState2[0], setCompanyList = _useState2[1]; (0, _react.useEffect)(function () { setDialogVisible(visible); }, [visible]); var onClose = function onClose() { setDialogVisible(false); handleClose && handleClose(); }; var onOk = function onOk() { if (!appCode || !apiCode || debounceFlag) { return; } actions.validate().then(function () { debounceFlag = true; var _actions$getFormState = actions.getFormState().values, companyId = _actions$getFormState.companyId, logisticsNo = _actions$getFormState.logisticsNo; var currentCompany = companyList.filter(function (item) { return item.code === companyId; })[0]; var submitParams = (0, _extends2["default"])({}, params, { logisticsNo: logisticsNo, logisticsCompanyName: currentCompany.name, logisticsCompanyId: currentCompany.id ? currentCompany.id : undefined, logisticsCompanyCode: currentCompany.code }); (0, _reactUniversalRequest["default"])({ method: 'post', appCode: appCode, apiCode: apiCode, autoShowErrorMessage: true, data: submitParams }).then(function (resp) { var result = resp.result; if (result.success) { onClose(); handleOk && handleOk(); } else { _message["default"].error(result.message || '接口异常'); } })["finally"](function () { debounceFlag = false; }); })["catch"](function () {// TODO // console.log(err); }); }; (0, _react.useEffect)(function () { if (dialogVisible) { if (logisticsCompanyDataSource && logisticsCompanyDataSource.length) { var list = logisticsCompanyDataSource.map(function (it) { return (0, _extends2["default"])({}, it, { value: it.code, label: it.name }); }); setCompanyList(list); return; } if (!logisticsAppCode || !logisticsApiCode || companyList.length) { return; } (0, _reactUniversalRequest["default"])({ method: 'post', appCode: logisticsAppCode, apiCode: logisticsApiCode, autoShowErrorMessage: true }).then(function (res) { var result = res.result; if (result.success && result.result) { var _list = result.result.map(function (item) { return (0, _extends2["default"])({}, item, { value: item.code, label: item.name }); }); setCompanyList(_list); } else { _message["default"].error(result.message || '获取物流公司失败'); } }); } }, [dialogVisible]); return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, children && /*#__PURE__*/_react["default"].cloneElement(children, { onClick: function onClick() { setDialogVisible(true); } }), /*#__PURE__*/_react["default"].createElement(_dialog["default"], { title: title, visible: dialogVisible, locale: { ok: '确定', cancel: '取消' }, style: { width: '400px' }, onOk: onOk, onCancel: onClose, onClose: onClose }, /*#__PURE__*/_react["default"].createElement(_FormComponents.SchemaForm, { defaultValue: (0, _extends2["default"])({}, params, { valueText: valueText }), actions: actions, schema: { type: 'object', properties: { gridLayout: { type: 'object', 'x-component': 'GridLayout', 'x-component-props': { isForm: true, type: 'dialog' }, properties: { valueText: { title: labelText, 'x-component': 'input', 'x-component-props': { isPreview: true } }, companyId: { title: '物流公司', required: true, 'x-component': 'select', 'x-component-props': { placeholder: '请选择', showSearch: true }, 'retail-form-item-props': { inputAreaWidth: 272 }, 'x-rules': [{ required: true, message: '请选择物流公司' }], "enum": companyList }, logisticsNo: { title: '物流单号', required: true, 'x-component': 'input', 'x-component-props': { placeholder: '请输入', maxLength: 50, showLimitHint: true }, 'retail-form-item-props': { inputAreaWidth: 272 }, 'x-rules': [{ required: true, message: '请输入物流单号' }] } } } } } }))); }; DeliverGoodsDialog.defaultProps = { visible: false, params: {}, title: '发货', labelText: '售后单号', valueText: '-' }; DeliverGoodsDialog.propTypes = { handleOk: _propTypes["default"].func, handleClose: _propTypes["default"].func, children: _propTypes["default"].element, visible: _propTypes["default"].bool, params: _propTypes["default"].object, title: _propTypes["default"].string, appCode: _propTypes["default"].string, apiCode: _propTypes["default"].string, logisticsAppCode: _propTypes["default"].string, logisticsApiCode: _propTypes["default"].string, labelText: _propTypes["default"].string, valueText: _propTypes["default"].string, logisticsCompanyDataSource: _propTypes["default"].array }; var _default = DeliverGoodsDialog; exports["default"] = _default;