nsn-comp
Version:
NSN核心组件
62 lines (55 loc) • 1.86 kB
JavaScript
import "antd/es/descriptions/style";
import _Descriptions from "antd/es/descriptions";
import "antd/es/drawer/style";
import _Drawer from "antd/es/drawer";
import { NStr } from 'nsn-util';
import React from 'react';
import { HeaderTitle } from './_comp';
import { getColumns } from './_util';
var getValue = function getValue(record, column) {
var value = record["".concat(column.dataIndex)];
if (NStr.isEqual(column.dataIndex, 'status') && column.filters) {
var foundItem = column.filters.find(function (ele) {
return NStr.isEqual(ele.value, value);
});
if (foundItem) {
return foundItem.text;
}
}
return value;
};
var DetailDrawer = function DetailDrawer(props) {
var comp = props.comp,
_props$width = props.width,
width = _props$width === void 0 ? 300 : _props$width;
var _comp$state = comp.state,
detailModalVisible = _comp$state.detailVisible,
_comp$state$record = _comp$state.record,
record = _comp$state$record === void 0 ? {} : _comp$state$record; // 排除特定的 column 不显示
var ValueTypeNotShow = ['index', 'option', 'indexBorder', 'progress'];
var fields = getColumns(comp).filter(function (ele) {
return !ValueTypeNotShow.includes("".concat(ele.valueType));
});
return React.createElement(_Drawer, Object.assign({}, {
width: width
}, {
visible: detailModalVisible,
onClose: function onClose() {
return comp.setState({
detailVisible: false
});
},
title: React.createElement(HeaderTitle, null)
}), React.createElement(_Descriptions, {
style: {
marginBottom: 16
},
column: 1
}, fields.map(function (f) {
return React.createElement(_Descriptions.Item, {
key: "".concat(f.dataIndex || NStr.guid()),
label: f.title
}, getValue(record, f));
})));
};
export { DetailDrawer };