mobile-more
Version:
基于 antd-mobile v5 扩展移动端 UI 组件
73 lines • 2.83 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
var _excluded = ["placeholder", "title", "options", "mapKeys", "renderCurrentValue", "separator", "areaCodeProps", "cascaderProps", "readOnly", "disabled", "onClick", "required"];
import React from 'react';
import { compact, isArray, nth } from 'ut2';
import BizFormItem from "../FormItem";
import AreaCodePicker from "./AreaCodePicker";
import { useConfig } from "../../BizConfigProvider";
import getDefaultPopupTitle from "../utils/getDefaultPopupTitle";
var transform = function transform(value) {
// console.log(value);
if (isArray(value)) {
// 可能是不设区地级市
return nth(compact(value), -1);
}
return value;
};
var BizFormItemAreaCode = function BizFormItemAreaCode(props) {
var _useConfig = useConfig(),
locale = _useConfig.locale;
var _props$placeholder = props.placeholder,
placeholder = _props$placeholder === void 0 ? locale.form.common.selectPlaceholder : _props$placeholder,
_props$title = props.title,
title = _props$title === void 0 ? getDefaultPopupTitle(props, locale) : _props$title,
options = props.options,
mapKeys = props.mapKeys,
renderCurrentValue = props.renderCurrentValue,
separator = props.separator,
areaCodeProps = props.areaCodeProps,
cascaderProps = props.cascaderProps,
readOnly = props.readOnly,
disabled = props.disabled,
onClick = props.onClick,
required = props.required,
restProps = _objectWithoutProperties(props, _excluded);
var _React$useState = React.useState(false),
_React$useState2 = _slicedToArray(_React$useState, 2),
visible = _React$useState2[0],
setVisible = _React$useState2[1];
var handleClick = function handleClick(e, widgetRef) {
if (!disabled && !readOnly) {
setVisible(true);
}
onClick === null || onClick === void 0 || onClick(e, widgetRef);
};
return /*#__PURE__*/React.createElement(BizFormItem, _extends({
rules: [{
required: required,
message: locale.form.common.selectRequired
}],
required: required,
disabled: disabled,
onClick: handleClick
}, restProps, {
trigger: "onConfirm",
validateTrigger: "onConfirm",
transform: transform
}), /*#__PURE__*/React.createElement(AreaCodePicker, _extends({
title: title,
visible: visible,
onClose: function onClose() {
return setVisible(false);
},
options: options,
mapKeys: mapKeys,
placeholder: placeholder,
renderCurrentValue: renderCurrentValue,
separator: separator
}, areaCodeProps, cascaderProps)));
};
BizFormItemAreaCode.transform = transform;
export default BizFormItemAreaCode;