fx-form-widget
Version:
65 lines (56 loc) • 2.08 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.renderWidget = exports.blockComponent = void 0;
var _descriptions = _interopRequireDefault(require("antd/lib/descriptions"));
var _react = _interopRequireDefault(require("react"));
var _imageList = _interopRequireDefault(require("../imageList"));
var _fileList = _interopRequireDefault(require("../fileList"));
var Item = _descriptions["default"].Item;
// 需要独占一行的组件(图片以及附件和子表单以及分组);
var blockComponent = exports.blockComponent = ['uploadPic', 'uploadFile'];
// 渲染图片组件
var renderImages = function renderImages(images) {
if (!Array.isArray(images)) return images;
return /*#__PURE__*/_react["default"].createElement(_imageList["default"], {
images: images
});
};
// 渲染附件组件
var renderFiles = function renderFiles(files) {
if (!Array.isArray(files)) return files;
return /*#__PURE__*/_react["default"].createElement(_fileList["default"], {
files: files
});
};
// 渲染评分组件
var renderRate = function renderRate(value) {
return value ? value + "\u5206" : '-';
};
// 渲染颜色
var renderColor = function renderColor() {
return '';
};
// 渲染时间选择器
var renderDatePicker = function renderDatePicker(value) {
return value ? String(value) : '-';
};
// 渲染值为数组的组件
var renderValueIsArray = function renderValueIsArray(value) {
return value.join('/');
};
var widgetTypeMap = new Map([['uploadPic', renderImages], ['uploadFile', renderFiles], ['rate', renderRate], ['datePicker', renderDatePicker], ['refill', renderColor]]);
// 渲染不一样的组件类型
var renderWidget = exports.renderWidget = function renderWidget(widgetType, value) {
var renderComponent = widgetTypeMap.get(widgetType);
if (renderComponent) {
return renderComponent(value);
}
if (Array.isArray(value)) {
return renderValueIsArray(value);
}
if (value === null || value === void 0) {
return '-';
}
return value;
};