92 lines
2.6 KiB
JavaScript
92 lines
2.6 KiB
JavaScript
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
import { Input } from 'antd';
|
|
import React from 'react';
|
|
// 兼容代码-----------
|
|
import { proTheme } from '@ant-design/pro-provider';
|
|
import "antd/es/input/style";
|
|
//----------------------
|
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
var languageFormat = function languageFormat(text, language) {
|
|
if (typeof text !== 'string') {
|
|
return text;
|
|
}
|
|
try {
|
|
if (language === 'json') {
|
|
return JSON.stringify(JSON.parse(text), null, 2);
|
|
}
|
|
} catch (error) {
|
|
// console.log(error)
|
|
}
|
|
return text;
|
|
};
|
|
|
|
/**
|
|
* 代码片段组件 这个组件为了显示简单的配置,复杂的请使用更加重型的组件
|
|
*
|
|
* @param
|
|
*/
|
|
var FieldCode = function FieldCode(_ref, ref) {
|
|
var text = _ref.text,
|
|
mode = _ref.mode,
|
|
render = _ref.render,
|
|
_ref$language = _ref.language,
|
|
language = _ref$language === void 0 ? 'text' : _ref$language,
|
|
renderFormItem = _ref.renderFormItem,
|
|
plain = _ref.plain,
|
|
fieldProps = _ref.fieldProps;
|
|
var code = languageFormat(text, language);
|
|
var _proTheme$useToken = proTheme.useToken(),
|
|
token = _proTheme$useToken.token;
|
|
if (mode === 'read') {
|
|
var dom = /*#__PURE__*/_jsx("pre", _objectSpread(_objectSpread({
|
|
ref: ref
|
|
}, fieldProps), {}, {
|
|
style: _objectSpread({
|
|
padding: 16,
|
|
overflow: 'auto',
|
|
fontSize: '85%',
|
|
lineHeight: 1.45,
|
|
color: token.colorTextSecondary,
|
|
fontFamily: token.fontFamilyCode,
|
|
backgroundColor: 'rgba(150, 150, 150, 0.1)',
|
|
borderRadius: 3,
|
|
width: 'min-content'
|
|
}, fieldProps.style),
|
|
children: /*#__PURE__*/_jsx("code", {
|
|
children: code
|
|
})
|
|
}));
|
|
if (render) {
|
|
return render(code, _objectSpread(_objectSpread({
|
|
mode: mode
|
|
}, fieldProps), {}, {
|
|
ref: ref
|
|
}), dom);
|
|
}
|
|
return dom;
|
|
}
|
|
if (mode === 'edit' || mode === 'update') {
|
|
fieldProps.value = code;
|
|
var _dom = /*#__PURE__*/_jsx(Input.TextArea, _objectSpread(_objectSpread({
|
|
rows: 5
|
|
}, fieldProps), {}, {
|
|
ref: ref
|
|
}));
|
|
if (plain) {
|
|
_dom = /*#__PURE__*/_jsx(Input, _objectSpread(_objectSpread({}, fieldProps), {}, {
|
|
ref: ref
|
|
}));
|
|
}
|
|
if (renderFormItem) {
|
|
var _renderFormItem;
|
|
return (_renderFormItem = renderFormItem(code, _objectSpread(_objectSpread({
|
|
mode: mode
|
|
}, fieldProps), {}, {
|
|
ref: ref
|
|
}), _dom)) !== null && _renderFormItem !== void 0 ? _renderFormItem : null;
|
|
}
|
|
return _dom;
|
|
}
|
|
return null;
|
|
};
|
|
export default /*#__PURE__*/React.forwardRef(FieldCode); |