UNPKG

@ywfe/materials-design

Version:
93 lines (92 loc) 3 kB
import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose"; import _Input from "@alifd/next/lib/input"; import _Select from "@alifd/next/lib/select"; 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 FieldSetter = function FieldSetter(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 items = []; 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" }, items !== null && items !== void 0 && items.length ? /*#__PURE__*/React.createElement(_Select, { value: value, style: { width: '100%' }, placeholder: "\u8BF7\u9009\u62E9\u5B57\u6BB5", dataSource: items, onChange: function onChange(val) { if (!val) return; var rules = { "var": val }; _onChange(formatFieldVal(rules)); } }) : /*#__PURE__*/React.createElement(_Input, { style: { width: '100%' }, value: value, onInput: function onInput(e) { if (!e.target.value) return; var rules = { "var": e.target.value }; setValue(e.target.value); _onChange(formatFieldVal(rules)); } })); }; FieldSetter.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(FieldSetter, this.props); }; return _default; }(Component); export { _default as default };