UNPKG

jc-biz-components

Version:

jc component library based on Antd

614 lines (529 loc) 19.7 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _row = require('antd/lib/row'); var _row2 = _interopRequireDefault(_row); var _card = require('antd/lib/card'); var _card2 = _interopRequireDefault(_card); var _modal = require('antd/lib/modal'); var _modal2 = _interopRequireDefault(_modal); var _upload = require('antd/lib/upload'); var _upload2 = _interopRequireDefault(_upload); var _icon = require('antd/lib/icon'); var _icon2 = _interopRequireDefault(_icon); var _table = require('antd/lib/table'); var _table2 = _interopRequireDefault(_table); var _button = require('antd/lib/button'); var _button2 = _interopRequireDefault(_button); var _col = require('antd/lib/col'); var _col2 = _interopRequireDefault(_col); var _form = require('antd/lib/form'); var _form2 = _interopRequireDefault(_form); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _input = require('antd/lib/input'); var _input2 = _interopRequireDefault(_input); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _radio = require('antd/lib/radio'); var _radio2 = _interopRequireDefault(_radio); var _checkbox = require('antd/lib/checkbox'); var _checkbox2 = _interopRequireDefault(_checkbox); var _select = require('antd/lib/select'); var _select2 = _interopRequireDefault(_select); var _datePicker = require('antd/lib/date-picker'); var _datePicker2 = _interopRequireDefault(_datePicker); require('antd/lib/row/style'); require('antd/lib/card/style'); require('antd/lib/modal/style'); require('antd/lib/upload/style'); require('antd/lib/icon/style'); require('antd/lib/table/style'); require('antd/lib/button/style'); require('antd/lib/col/style'); require('antd/lib/form/style'); require('antd/lib/input/style'); require('antd/lib/radio/style'); require('antd/lib/checkbox/style'); require('antd/lib/select/style'); require('antd/lib/date-picker/style'); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactRouterDom = require('react-router-dom'); var _classifytree = require('components/classifytree'); var _classifytree2 = _interopRequireDefault(_classifytree); var _DescriptionList = require('../../components/DescriptionList'); var _DescriptionList2 = _interopRequireDefault(_DescriptionList); var _PropertySelector = require('../../modules/commodity/meal/commodity/PropertySelector'); var _PropertySelector2 = _interopRequireDefault(_PropertySelector); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } // import styles from './style.css' var RangePicker = _datePicker2['default'].RangePicker; var Option = _select2['default'].Option; var CheckboxGroup = _checkbox2['default'].Group; var RadioGroup = _radio2['default'].Group; var Description = _DescriptionList2['default'].Description; var formItemLayout = { labelCol: { span: 7 }, wrapperCol: { span: 17 } }; var formItemLayoutLarge = { labelCol: { span: 3 }, wrapperCol: { span: 20 } }; var DetailPage = function (_Component) { (0, _inherits3['default'])(DetailPage, _Component); function DetailPage() { var _ref; var _temp, _this, _ret; (0, _classCallCheck3['default'])(this, DetailPage); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return _ret = (_temp = (_this = (0, _possibleConstructorReturn3['default'])(this, (_ref = DetailPage.__proto__ || Object.getPrototypeOf(DetailPage)).call.apply(_ref, [this].concat(args))), _this), _this._renderInput = function (formItem) { var getFieldDecorator = _this.props.form.getFieldDecorator; return _react2['default'].createElement( _col2['default'], { span: 8 }, _react2['default'].createElement( _form2['default'].Item, (0, _extends3['default'])({}, formItemLayout, { label: formItem.label }), getFieldDecorator(formItem.fieldName, { initialValue: formItem.initialValue || '', rules: formItem.rules })(_react2['default'].createElement(_input2['default'], { placeholder: '请输入' + formItem.label, autoComplete: 'off' })) ) ); }, _this._filterOption = function (input, option) { return option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0; }, _this._renderSelect = function (formItem) { var getFieldDecorator = _this.props.form.getFieldDecorator; return _react2['default'].createElement( _col2['default'], { span: 8 }, _react2['default'].createElement( _form2['default'].Item, (0, _extends3['default'])({}, formItemLayout, { label: formItem.label }), getFieldDecorator(formItem.fieldName, { initialValue: formItem.initialValue || undefined, rules: formItem.rules })(_react2['default'].createElement( _select2['default'], { showSearch: formItem.showSearch || false, placeholder: '请选择' + formItem.label, getPopupContainer: function getPopupContainer() { return document.getElementById('form'); }, filterOption: _this._filterOption }, formItem.dictionary.map(function (dictItem) { return _react2['default'].createElement( Option, { key: dictItem.key, value: dictItem.key }, dictItem.value ); }) )) ) ); }, _this._renderRangePicker = function (formItem) { var getFieldDecorator = _this.props.form.getFieldDecorator; return getFieldDecorator(formItem.fieldName, { rules: formItem.rules })(_react2['default'].createElement(RangePicker, { style: { width: '100%' }, format: 'YYYY-MM-DD HH:mm:ss', placeholder: ['开始日期', '结束日期'], showTime: { hideDisabledOptions: false } })); }, _this._renderRadio = function (formItem) { var getFieldDecorator = _this.props.form.getFieldDecorator; return _react2['default'].createElement( _col2['default'], { span: 8 }, _react2['default'].createElement( _form2['default'].Item, (0, _extends3['default'])({}, formItemLayout, { label: formItem.label }), getFieldDecorator(formItem.fieldName, { initialValue: formItem.initialValue || undefined, rules: formItem.rules })(_react2['default'].createElement( RadioGroup, null, formItem.dictionary.map(function (dictItem) { return _react2['default'].createElement( _radio2['default'], { key: dictItem.key, value: dictItem.key }, dictItem.value ); }) )) ) ); }, _this._renderCheckbox = function (formItem) { var getFieldDecorator = _this.props.form.getFieldDecorator; return _react2['default'].createElement( _col2['default'], { span: 8 }, _react2['default'].createElement( _form2['default'].Item, (0, _extends3['default'])({}, formItemLayout, { label: formItem.label }), getFieldDecorator(formItem.fieldName, { initialValue: formItem.initialValue || undefined, rules: formItem.rules })(_react2['default'].createElement( CheckboxGroup, null, formItem.dictionary.map(function (dictItem) { return _react2['default'].createElement( _checkbox2['default'], { style: { marginTop: '10px' }, key: dictItem.key, value: dictItem.key }, dictItem.value ); }) )) ) ); }, _this._renderClassifyTree = function (formItem) { return _react2['default'].createElement(_classifytree2['default'], { allowClear: false, isTreeSelect: true, treeData: formItem.treeData, onSelect: formItem.onSelect }); }, _this._renderPropertyPull = function (formItem) { return _react2['default'].createElement( _form2['default'].Item, null, formItem.property.propertyPull.map(function (m, i) { return _react2['default'].createElement(_PropertySelector2['default'], { list: m, key: i, index: i }); }), formItem.property.propertyPull.length < 1 && _react2['default'].createElement( _button2['default'], { style: { margin: '0 16px 15px 0' }, onClick: formItem.propertyEvent._addPropertySelector }, '\u6DFB\u52A0\u89C4\u683C\u5C5E\u6027' ), formItem.property.length > 0 && _react2['default'].createElement( _button2['default'], { style: { marginBottom: '15px' }, onClick: formItem.propertyEvent._handleConfirm }, '\u786E\u8BA4' ), formItem.property.propertyColumns.length > 0 && _react2['default'].createElement(_table2['default'], { bordered: true, columns: formItem.propertyEvent._getColumns, dataSource: formItem.propertyEvent._getData, pagination: false }) ); }, _this._renderCommodityImg = function (formItem) { var getFieldDecorator = _this.props.form.getFieldDecorator; return _react2['default'].createElement( _form2['default'].Item, (0, _extends3['default'])({}, formItemLayoutLarge, { label: formItem.label }), getFieldDecorator(formItem.fieldName, { valuePropName: 'fileList', getValueFromEvent: function getValueFromEvent(e) { return formItem.CommodityImgEvent._processFileUpload(e, formItem.CommodityImgEvent.setGoodsImage); }, initialValue: formItem.initialValue, rules: formItem.rules })(_react2['default'].createElement( _upload2['default'], { listType: 'picture-card', action: 'http://upload.qiniu.com', beforeUpload: formItem.CommodityImgEvent.beforeUpload, data: { token: formItem.CommodityImgState.qiniuToken }, accept: 'image/jpg, image/jpeg, image/png', onPreview: formItem.CommodityImgEvent.onPreview, onChange: formItem.CommodityImgEvent.onChange, needOrder: true, onRemove: _this.props.pageType === 'edit' }, formItem.CommodityImgState.imageList < formItem.CommodityImgState.imageNum && _this.props.pageType === 'edit' ? _react2['default'].createElement( 'div', null, _react2['default'].createElement(_icon2['default'], { type: 'plus' }), _react2['default'].createElement( 'div', { className: 'ant-upload-text' }, '\u4E0A\u4F20\u56FE\u50CF' ) ) : null )), _react2['default'].createElement( _modal2['default'], { visible: formItem.CommodityImgState.modalVisible, footer: null, onCancel: formItem.CommodityImgEvent._coverCancel }, _react2['default'].createElement('img', { alt: 'example', style: { width: '100%', height: '100%' }, src: formItem.CommodityImgState.preview }) ) ); }, _this._renderTable = function (formItem) { return _react2['default'].createElement( _col2['default'], null, _react2['default'].createElement(_table2['default'], { columns: formItem.columns, dataSource: formItem.dataSource, rowKey: function rowKey(item, index) { return index; }, bordered: true, pagination: formItem.pagination }), formItem.tableFooter && formItem.tableFooter.map(function (footer, index) { return _react2['default'].createElement( 'div', { className: 'footer', style: { display: 'flex', 'flex-direction': 'column', 'text-align': 'right', 'font-size': '18px', 'font-weight': 'bold', 'margin-top': '10px' }, key: index }, _react2['default'].createElement( 'div', null, footer.label, '\uFF1A', _react2['default'].createElement( 'span', null, footer.text ) ) ); }) ); }, _this._renderFormItem = function (formItems) { return formItems.map(function (formItem, index) { return _react2['default'].createElement( _card2['default'], { title: formItem.cardTitle, key: index, bordered: false, style: { marginBottom: 24 } }, formItem.detail.map(function (item) { switch (item.componentType) { case 'Input': return _this._renderInput(item); case 'Select': return _this._renderSelect(item); case 'RangePicker': return _this._renderRangePicker(item); case 'ClassifyTree': return _this._renderClassifyTree(item); case 'Radio': return _this._renderRadio(item); case 'Checkbox': return _this._renderCheckbox(item); case 'Property': return _this._renderPropertyPull(item); case 'CommodityImg': return _this._renderCommodityImg(item); case 'Table': return _this._renderTable(item); default: return _react2['default'].createElement( 'p', null, '\u6682\u4E0D\u652F\u6301' ); } }) ); }); }, _this._renderButtons = function (buttons) { return _react2['default'].createElement( _form2['default'].Item, { className: 'btn-container' }, buttons.map(function (button, index) { if (button.type === 'action') { return _react2['default'].createElement( _button2['default'], { key: index, type: 'primary', className: 'button', onClick: function onClick() { return button.onClick(_this.props.form.getFieldsValue()); } }, button.desc ); } else if (button.type === 'link') { return _react2['default'].createElement( _reactRouterDom.Link, { key: index, className: 'button', to: button.url }, _react2['default'].createElement( _button2['default'], { type: 'primary' }, button.desc ) ); } }) ); }, _this._renderPageType = function (formItem) { if (_this.props.pageType === 'see') { return _this._renderDetail(formItem); } else if (_this.props.pageType === 'edit') { return _this._renderFormItem(formItem); } }, _this._renderDetail = function (formItem) { return formItem.map(function (cards, index) { if (cards.cardType === 'Img') { return _this._renderFormItem(formItem.filter(function (item) { return item.cardType === 'Img'; })); } else if (cards.cardType === 'Property') { return _this._renderFormItem(formItem.filter(function (item) { return item.cardType === 'Property'; })); } else if (cards.cardType === 'Table') { return _this._renderFormItem(formItem.filter(function (item) { return item.cardType === 'Table'; })); } else { return _react2['default'].createElement( _card2['default'], { key: index, title: cards.cardTitle, style: { marginBottom: 24 }, bordered: false }, _react2['default'].createElement( _DescriptionList2['default'], { key: index, style: { marginBottom: 24 } }, cards.detail.map(function (item, index) { return _react2['default'].createElement( Description, { key: index, term: item.label, style: { marginBottom: 24 } }, item.viewValue ); }) ) ); } }); }, _temp), (0, _possibleConstructorReturn3['default'])(_this, _ret); } (0, _createClass3['default'])(DetailPage, [{ key: 'render', value: function render() { var _props = this.props, details = _props.details, buttons = _props.buttons, pageType = _props.pageType, goodsId = _props.goodsId; return _react2['default'].createElement( _form2['default'], { id: 'form', className: 'form' }, goodsId && _react2['default'].createElement( _card2['default'], { bordered: false }, _react2['default'].createElement( _col2['default'], { span: 20, style: { fontSize: '16px', fontWeight: '500' } }, '\u5546\u54C1Id\uFF1A', goodsId ), pageType === 'edit' && _react2['default'].createElement( _col2['default'], { span: 4 }, this._renderButtons(buttons) ) ), _react2['default'].createElement( _row2['default'], null, this._renderPageType(details) ) ); } }]); return DetailPage; }(_react.Component); DetailPage.propTypes = { details: _propTypes2['default'].array, buttons: _propTypes2['default'].array }; exports['default'] = _form2['default'].create()(DetailPage); module.exports = exports['default'];