@51yzone/pc-components
Version:
An enterprise-class UI design language and React-based implementation
98 lines (79 loc) • 2.62 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
require("antd/lib/descriptions/style");
var _descriptions = _interopRequireDefault(require("antd/lib/descriptions"));
require("antd/lib/image/style");
var _image = _interopRequireDefault(require("antd/lib/image"));
var _react = _interopRequireDefault(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
/**
* 关键字:详情页
* 新增人:徐友万
* 完善中
*/
// 渲染子节点DescriptionItem
var renderChild = function renderChild(item) {
var newValue = item.value;
if (item.isImg) {
// 不是数组先转换成数组
if (!Array.isArray(newValue)) {
newValue = [newValue];
}
newValue = newValue.map(function (n) {
var image = n;
if (image.attchUrlUncompressWithoutWatermark) {
image.url = n.attchUrl;
image.uid = n.attchId;
image.previewUrl = n.attchUrlUncompressWithoutWatermark;
}
return /*#__PURE__*/_react["default"].createElement(_image["default"], {
key: image.uid,
width: 100,
height: 100,
src: image.url,
preview: {
src: image.previewUrl || image.url
}
});
});
}
return /*#__PURE__*/_react["default"].createElement(_descriptions["default"].Item, {
key: item.label,
label: item.label,
span: item.span || 1
}, newValue);
}; // 渲染外层节点Descriptions
var renderDetail = function renderDetail(data) {
return data.map(function (n) {
return /*#__PURE__*/_react["default"].createElement(_descriptions["default"], (0, _extends2["default"])({}, n, {
key: n.key,
column: n.column || 2
}), Boolean(n.children && n.children.length) && n.children.map(function (m) {
return renderChild(m);
}));
});
};
var Detail = function Detail(props) {
var _props$value = props.value,
value = _props$value === void 0 ? [] : _props$value,
prefixCls = props.prefixCls,
className = props.className,
style = props.style;
return /*#__PURE__*/_react["default"].createElement("div", {
className: (0, _classnames["default"])(className, "".concat(prefixCls, "-wrapper")),
style: style
}, renderDetail(value));
};
Detail.defaultProps = {
value: [],
prefixCls: 'yz-detail',
className: '',
style: {}
};
var _default = Detail;
exports["default"] = _default;