@aliretail/react-materials-components
Version:
248 lines (222 loc) • 8.52 kB
JavaScript
"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;