UNPKG

mobile-more

Version:

基于 antd-mobile v5 扩展移动端 UI 组件

73 lines 2.83 kB
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;