fx-form-widget
Version:
124 lines (121 loc) • 5.67 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _col = _interopRequireDefault(require("antd/lib/col"));
var _input = _interopRequireDefault(require("antd/lib/input"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = _interopRequireWildcard(require("react"));
var _plusAddressSelection = _interopRequireDefault(require("@fle-ui/plus-address-selection"));
var _tools = require("./tools");
require("./index.less");
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 AddressSelection = function AddressSelection(_ref) {
var _ref$schema = _ref.schema,
schema = _ref$schema === void 0 ? {} : _ref$schema,
_ref$onChange = _ref.onChange,
onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
_ref$value = _ref.value,
value = _ref$value === void 0 ? (0, _tools.isNotNullValue)(schema.data) ? schema.data : '' : _ref$value,
_ref$showSubTitle = _ref.showSubTitle,
showSubTitle = _ref$showSubTitle === void 0 ? true : _ref$showSubTitle;
var _schema$readonly = schema.readonly,
readonly = _schema$readonly === void 0 ? false : _schema$readonly,
_schema$required = schema.required,
required = _schema$required === void 0 ? false : _schema$required,
_schema$allowClear = schema.allowClear,
allowClear = _schema$allowClear === void 0 ? false : _schema$allowClear,
_schema$addressLevel = schema.addressLevel,
addressLevel = _schema$addressLevel === void 0 ? 4 : _schema$addressLevel,
_schema$changeOnSelec = schema.changeOnSelect,
changeOnSelect = _schema$changeOnSelec === void 0 ? false : _schema$changeOnSelec;
var _ref2 = value || [],
addressValue = _ref2[0],
input = _ref2[1];
var _useState = (0, _react.useState)(''),
inputValue = _useState[0],
setInputValue = _useState[1];
var _useState2 = (0, _react.useState)([]),
addresses = _useState2[0],
setAddresses = _useState2[1];
// 如果value发生改变进行渲染
(0, _react.useEffect)(function () {
setInputValue(input);
}, [input]);
(0, _react.useEffect)(function () {
if (typeof addressValue === 'string' && addressValue) {
setAddresses(addressValue.split('_').map(function (item) {
return Number(item);
}));
} else {
setAddresses(addressValue);
}
}, [addressValue]);
// 默认值
var defaultOptions = {};
if (schema['ui_options']) {
Object.keys(schema['ui_options']).forEach(function (key) {
defaultOptions[key] = schema['ui_options'][key][0];
});
}
var baseOptions = (0, _extends2["default"])({
disabled: readonly,
required: required,
placeholder: '请选择地址',
allowClear: allowClear,
changeOnSelect: changeOnSelect
}, defaultOptions);
var siteSelectOptions = (0, _extends2["default"])({}, baseOptions, {
// 由于目前地址仅支持4级如果大于四级就按四级处理(省/市/区/街道)
level: addressLevel > 4 ? 4 : addressLevel
});
var onSiteSelectChange = function onSiteSelectChange(value) {
emitAllChange(value, inputValue);
};
var onInputChange = function onInputChange(e) {
setInputValue(e.target.value);
emitAllChange(addresses, e.target.value);
};
var emitAllChange = function emitAllChange(addresses, inputValue) {
if (!addresses) {
return;
}
var arrs = addressLevel === 5 ? [addresses.join('_'), inputValue] : [addresses.join('_')];
onChange(arrs);
};
var renderInput = function renderInput(addressLevel) {
if (!showSubTitle) {
return null;
}
if (addressLevel === 5) {
return /*#__PURE__*/_react["default"].createElement("div", {
className: "address-input-wrap"
}, /*#__PURE__*/_react["default"].createElement(_input["default"], {
allowClear: true,
placeholder: "\u8BF7\u8F93\u5165\u8BE6\u7EC6\u5730\u5740",
value: inputValue,
onChange: onInputChange
}));
}
return null;
};
return /*#__PURE__*/_react["default"].createElement("div", {
className: "address-selection"
}, /*#__PURE__*/_react["default"].createElement(_col["default"], null, /*#__PURE__*/_react["default"].createElement(_plusAddressSelection["default"], (0, _extends2["default"])({
style: {
width: '100%'
}
}, siteSelectOptions, {
valueDivision: "",
onChange: onSiteSelectChange,
value: addresses || []
})), renderInput(addressLevel)));
};
var Ss = function Ss(props) {
var _props$schema;
return /*#__PURE__*/_react["default"].createElement(AddressSelection, (0, _extends2["default"])({
key: props === null || props === void 0 ? void 0 : (_props$schema = props.schema) === null || _props$schema === void 0 ? void 0 : _props$schema.addressLevel
}, props));
};
var _default = exports["default"] = Ss;