fx-form-widget
Version:
60 lines (52 loc) • 1.7 kB
JavaScript
import _Descriptions from "antd/es/descriptions";
import React from "react";
import ImageList from "../imageList";
import FileList from '../fileList';
var Item = _Descriptions.Item;
// 需要独占一行的组件(图片以及附件和子表单以及分组);
export var blockComponent = ['uploadPic', 'uploadFile'];
// 渲染图片组件
var renderImages = function renderImages(images) {
if (!Array.isArray(images)) return images;
return /*#__PURE__*/React.createElement(ImageList, {
images: images
});
};
// 渲染附件组件
var renderFiles = function renderFiles(files) {
if (!Array.isArray(files)) return files;
return /*#__PURE__*/React.createElement(FileList, {
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]]);
// 渲染不一样的组件类型
export var 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;
};