UNPKG

betanet-mini-ui

Version:
112 lines (91 loc) 3.66 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireDefault(require("react")); var _components = require("@tarojs/components"); var _excluded = ["value", "placeholder", "options", "optionKey", "optionValue", "onChange", "mode"]; var BmPicker = function BmPicker(_ref) { var value = _ref.value, placeholder = _ref.placeholder, options = _ref.options, optionKey = _ref.optionKey, _ref$optionValue = _ref.optionValue, optionValue = _ref$optionValue === void 0 ? optionKey : _ref$optionValue, onChange = _ref.onChange, mode = _ref.mode, rest = (0, _objectWithoutProperties2.default)(_ref, _excluded); var handleChange = function handleChange(e) { var reValue = e.detail.value; switch (mode) { case 'time': case 'date': onChange(reValue, reValue); break; case 'multiSelector': var _analysisMultiData = analysisMultiData(reValue), _analysisMultiData2 = (0, _slicedToArray2.default)(_analysisMultiData, 2), item = _analysisMultiData2[0], itemObj = _analysisMultiData2[1]; onChange(item, itemObj); break; default: var fValue = optionKey ? options[reValue][optionValue] : options[reValue]; onChange(fValue, options[reValue]); break; } }; var analysisMultiData = function analysisMultiData(param) { var itemObj = []; var item = param.map(function (p, i) { if (optionKey) { itemObj.push(options[i][p]); return options[i][p][optionValue]; } itemObj.push(options[i][p]); return options[i][p]; }); return [item, itemObj]; }; var getCurrentDisplay = function getCurrentDisplay() { if (!optionKey) return !value || typeof value === 'string' ? value : value.join(','); if (mode === 'multiSelector') { var f = value === null || value === void 0 ? void 0 : value.map(function (v, i) { var c = options[i].find(function (item) { return item[optionValue] === v; }); return c[optionKey]; }); return f === null || f === void 0 ? void 0 : f.join(','); } var currentItem = (options === null || options === void 0 ? void 0 : options.find(function (item) { return item[optionValue] == value; })) || {}; return currentItem[optionKey]; }; return /*#__PURE__*/_react.default.createElement(_components.View, { className: "bm-picker" }, /*#__PURE__*/_react.default.createElement(_components.Picker, (0, _extends2.default)({}, rest, { mode: mode, range: options, rangeKey: optionKey, onChange: handleChange }), /*#__PURE__*/_react.default.createElement(_components.View, { className: "bm-picker-item" }, /*#__PURE__*/_react.default.createElement(_components.Text, null, getCurrentDisplay() || placeholder), /*#__PURE__*/_react.default.createElement(_components.Image, { className: "bm-picker-item-arrow", src: require('../../assets/images/arrow-down.svg') })))); }; BmPicker.defaultProps = { placeholder: '请点击选择', options: [], onChange: function onChange() {} }; var _default = BmPicker; exports.default = _default;