UNPKG

@ywfe/materials-design

Version:
76 lines (75 loc) 2.57 kB
import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose"; import _Input from "@alifd/next/lib/input"; import React, { useState, Component } from 'react'; // 根据指定字段获取数据 // const tempPlaceHolder = '${rule}'; var tempPlaceHolderReg = /\$\{rule\}/g; var valueReg = /\{"var":".*"\}/g; var defaultTempFunc = 'this.appHelper?.utils?.jsonLogic(${rule},${data})'; var defaultTempHolderReg = /\$\{data\}/g; var RuelsSetter = function RuelsSetter(props) { var onChange = props.onChange, field = props.field, data = props.data, template = props.template, _props$defaultField = props.defaultField, defaultField = _props$defaultField === void 0 ? '' : _props$defaultField; var _template = template || defaultTempFunc.replace(defaultTempHolderReg, data.value); var formatDefaultSetterVal = function formatDefaultSetterVal() { var defaultValue = field.parent.getPropValue(field.name); if (defaultValue !== null && defaultValue !== void 0 && defaultValue.value) { var matchData = defaultValue.value.match(valueReg); console.log(JSON.parse(matchData[0])["var"]); if (matchData && matchData.length) { return JSON.parse(matchData[0])["var"] || defaultField; } } return defaultField; }; var _useState = useState(formatDefaultSetterVal()), value = _useState[0], setValue = _useState[1]; // 接口获取 或者手动输入 var formatFieldVal = function formatFieldVal(rule) { var func = _template.replace(tempPlaceHolderReg, JSON.stringify(rule)); return { type: 'JSExpression', value: func }; }; return /*#__PURE__*/React.createElement("div", { className: "lc-field-setter" }, /*#__PURE__*/React.createElement(_Input, { style: { width: '100%' }, value: value, onInput: function onInput(e) { if (!e.target.value) return; var rules = JSON.stringify(e.target.value); setValue(e.target.value); onChange(formatFieldVal(rules)); } })); }; RuelsSetter.defaultProps = { value: undefined, type: 'string', defaultValue: null, hasClear: true, onChange: function onChange() { return undefined; } }; var _default = /*#__PURE__*/function (_Component) { _inheritsLoose(_default, _Component); function _default() { return _Component.apply(this, arguments) || this; } var _proto = _default.prototype; _proto.render = function render() { return /*#__PURE__*/React.createElement(RuelsSetter, this.props); }; return _default; }(Component); export { _default as default };