UNPKG

fx-form-widget

Version:
120 lines (119 loc) 5.28 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _radio = _interopRequireDefault(require("antd/lib/radio")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _react = _interopRequireWildcard(require("react")); var React = _react; var _request = require("./request"); var _tools = require("./tools"); 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 RadioWidget = function RadioWidget(_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$isInit = _ref.isInit, isInit = _ref$isInit === void 0 ? false : _ref$isInit, _ref$value = _ref.value, value = _ref$value === void 0 ? (0, _tools.isNotNullValue)(schema.data) ? schema.data : undefined : _ref$value; 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$enumKeys = schema.enumKeys, enumKeys = _schema$enumKeys === void 0 ? [] : _schema$enumKeys, _schema$enumNames = schema.enumNames, enumNames = _schema$enumNames === void 0 ? [] : _schema$enumNames, _schema$dataUrl = schema.dataUrl, dataUrl = _schema$dataUrl === void 0 ? undefined : _schema$dataUrl, _schema$fieldName = schema.fieldName, fieldName = _schema$fieldName === void 0 ? undefined : _schema$fieldName; var _useState = (0, _react.useState)(enumKeys), keys = _useState[0], setKeys = _useState[1]; var _useState2 = (0, _react.useState)(enumNames), values = _useState2[0], setValues = _useState2[1]; (0, _react.useEffect)(function () { if (isInit && dataUrl && fieldName) { // 请求参数 fetchData(); } }, [isInit, dataUrl, fieldName]); (0, _react.useEffect)(function () { if (!(dataUrl && fieldName)) { setKeys(enumKeys); setValues(enumNames); } }, [enumKeys, enumNames]); var fetchData = /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { var queryObj, data, tempKeys, tempValues; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: queryObj = (0, _tools.parseQueryString)(dataUrl); if (!queryObj) { _context.next = 6; break; } _context.next = 4; return (0, _request.getUrlData)(dataUrl, queryObj); case 4: data = _context.sent; if (data.success) { tempKeys = []; tempValues = []; if (data.data.length) { data.data.forEach(function (optionItem) { tempKeys.push(optionItem.id); tempValues.push(optionItem.name); }); } setKeys(tempKeys); setValues(tempValues); } case 6: case "end": return _context.stop(); } }, _callee); })); return function fetchData() { return _ref2.apply(this, arguments); }; }(); var handleChange = function handleChange(e) { return onChange(e.target.value); }; var defaultOption = {}; if (schema['ui_options']) { Object.keys(schema['ui_options']).forEach(function (key) { defaultOption[key] = schema['ui_options'][key]; }); } var options = (0, _extends2["default"])({ disabled: readonly, required: required }, defaultOption); return /*#__PURE__*/React.createElement(_radio["default"].Group, (0, _extends2["default"])({ style: { width: '100%' } }, options, { value: value, onChange: handleChange }), (keys || []).map(function (keyValue, index) { var option = values ? values[index] : keyValue; return /*#__PURE__*/React.createElement(_radio["default"], { value: keyValue, key: index }, option); })); }; var _default = exports["default"] = RadioWidget;