UNPKG

yyuap-ref

Version:

cloud os fe ref project which is based on tinper

434 lines (376 loc) 15.8 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactDom = require('react-dom'); var _reactDom2 = _interopRequireDefault(_reactDom); var _Ref = require('../components/ref/Ref'); var _Ref2 = _interopRequireDefault(_Ref); var _modal = require('../bee/modal'); var _modal2 = _interopRequireDefault(_modal); var _icon = require('../bee/icon'); var _icon2 = _interopRequireDefault(_icon); var _tooltip = require('../bee/tooltip'); var _tooltip2 = _interopRequireDefault(_tooltip); var _utils = require('../utils'); var _expandTable = require('./component/expandTable'); var _expandTable2 = _interopRequireDefault(_expandTable); require('./style.css'); var _style = { 'titleStyle': 'titleStyle__style___2mmMc', 'closeBtnStyle': 'closeBtnStyle__style___3DwyK', 'contentWrap': 'contentWrap__style___3blJl' }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } //refpk var RefMultipleTable = function (_Component) { _inherits(RefMultipleTable, _Component); function RefMultipleTable(props) { _classCallCheck(this, RefMultipleTable); var _this = _possibleConstructorReturn(this, (RefMultipleTable.__proto__ || Object.getPrototypeOf(RefMultipleTable)).call(this, props)); var option = _this.props.option; _this.state = { isShowModal: true, columnsData: [], //表头数据 tableData: [], //表格数据 selectedRowIndex: -1, checkedArray: option.checkedArray || [], //保存的数据 totalPage: 1, //总页数 pageSize: '10', //每页数据数 activePage: 0, //激活页码 filterInfo: {} //过滤信息 }; _this.handlePagination = _this.handlePagination.bind(_this); _this.handlePageSize = _this.handlePageSize.bind(_this); _this.searchFilterInfo = _this.searchFilterInfo.bind(_this); _this.setFilterInfo = _this.setFilterInfo.bind(_this); _this.setCheckedArray = _this.setCheckedArray.bind(_this); return _this; } _createClass(RefMultipleTable, [{ key: 'getBarData', value: function getBarData(data) { var keyList = data.strFieldCode || []; var titleList = data.strFieldName || []; var colunms = this.props.option.colunms; var colunmsList = keyList.map(function (v, k) { return { key: v, dataIndex: v, title: titleList[k], width: 200, render: function render(text, record, index) { return _react2.default.createElement( _tooltip2.default, { inverse: true, overlay: text }, _react2.default.createElement( 'span', { style: { display: "inline-block", maxWidth: "100px", textOverflow: "ellipsis", overflow: "hidden", whiteSpace: "nowrap", verticalAlign: "middle" } }, text ) ); } }; }); if (colunmsList.length === 0) { this.setState({ columnsData: [{ title: "未传递表头数据", dataIndex: "nodata", key: "nodata" }] }); } else { if (colunms) { var colunmsListNew = colunmsList.map(function (v, k) { return Object.assign(v, colunms[k]); }); } else { var colunmsListNew = colunmsList; } this.setState({ columnsData: colunmsListNew }); } } }, { key: 'getTableData', value: function getTableData(data) { var tempData = []; var _props$option = this.props.option, checkedArray = _props$option.checkedArray, multiple = _props$option.multiple; var selectedRowIndex = this.state.selectedRowIndex; var selectedRowIndexlast; if (data) { tempData = data.data; } tempData.map(function (v, k) { v.key = v.refpk; if (multiple && checkedArray.length > 0 && v.key == checkedArray[0].key) { selectedRowIndexlast = k; v.selectedRowIndex = true; } return v; }); this.setState({ tableData: tempData, totalPage: data.page.pageCount, selectedRowIndexlast: selectedRowIndexlast }); } }, { key: 'componentWillMount', value: function componentWillMount() { var _this2 = this; var option = this.props.option; Promise.all([(0, _utils.get)(this.props.option.refModelUrl.TableBarUrl, this.props.option.param), (0, _utils.get)(this.props.option.refModelUrl.TableBodyUrl, _extends({}, this.props.option.param, { page: 0, 'refClientPageInfo.currPageIndex': 0, 'refClientPageInfo.pageSize': 10 }))]).then(function (_ref) { var _ref2 = _slicedToArray(_ref, 2), columnsData = _ref2[0], bodyData = _ref2[1]; if (_this2.props.option.onAfterAjax) { _this2.props.option.onAfterAjax(bodyData); } _this2.getBarData(columnsData); _this2.getTableData(bodyData); }); this.setState({ checkedArray: option.checkedArray }); } }, { key: 'componentWillReceiveProps', value: function componentWillReceiveProps(nextProps) { this.setState({ checkedArray: this.props.option.checkedArray }); } }, { key: 'onSave', value: function onSave() { this.setState({ isShowModal: false }); var checkedArray = this.state.checkedArray; this.props.option.onSave(checkedArray); this.props.option.destory(); } }, { key: 'onCancel', value: function onCancel() { this.setState({ isShowModal: false }); this.props.option.onCancel(); this.props.option.destory(); } }, { key: 'handleBtnCancel', value: function handleBtnCancel() { this.setState({ isShowModal: false }); this.props.option.onCancel(); this.props.option.destory(); } }, { key: 'handlePagination', value: function handlePagination(index) { var _props$option2 = this.props.option, TableBodyUrl = _props$option2.refModelUrl.TableBodyUrl, param = _props$option2.param; index = index - 1; this.setState({ activePage: index }, function () { var _this3 = this; var _state = this.state, filterInfo = _state.filterInfo, pageSize = _state.pageSize; if (Object.keys(filterInfo).length > 0) { var paramWithActivePage = Object.assign({}, param, { page: index, pageSize: pageSize, content: filterInfo, 'refClientPageInfo.currPageIndex': index, 'refClientPageInfo.pageSize': pageSize }); } else { var paramWithActivePage = Object.assign({}, param, { page: index, pageSize: pageSize, 'refClientPageInfo.currPageIndex': index, 'refClientPageInfo.pageSize': pageSize }); } (0, _utils.get)(TableBodyUrl, paramWithActivePage).then(function (response) { var data = response.data, page = response.page; var tempData = []; tempData = data.map(function (v, k) { v.key = v.refpk; return v; }); _this3.setState({ tableData: tempData }); }); }); } }, { key: 'handlePageSize', value: function handlePageSize(size) { var _props$option3 = this.props.option, TableBodyUrl = _props$option3.refModelUrl.TableBodyUrl, param = _props$option3.param; this.setState({ activePage: 0, pageSize: size }, function () { var _this4 = this; var filterInfo = this.state.filterInfo; if (Object.keys(filterInfo).length > 0) { var paramWithPageSize = Object.assign({}, param, { page: 0, pageSize: size, content: filterInfo, 'refClientPageInfo.currPageIndex': 0, 'refClientPageInfo.pageSize': size }); } else { var paramWithPageSize = Object.assign({}, param, { page: 0, pageSize: size, 'refClientPageInfo.currPageIndex': 0, 'refClientPageInfo.pageSize': size }); } (0, _utils.get)(TableBodyUrl, paramWithPageSize).then(function (response) { var data = response.data, page = response.page; var tempData = []; tempData = data.map(function (v, k) { v.key = v.refpk; return v; }); _this4.setState({ tableData: tempData, totalPage: page.pageCount }); }); }); } // tableData:[],//表格数据 // totalPage:1,//总页数 // pageSize:'10',//每页数据数 // activePage:1,//激活页码 // filterInfo:{},//过滤信息 }, { key: 'setFilterInfo', value: function setFilterInfo(filterInfo) { this.setState({ filterInfo: filterInfo }); } }, { key: 'searchFilterInfo', value: function searchFilterInfo() { var _props$option4 = this.props.option, TableBodyUrl = _props$option4.refModelUrl.TableBodyUrl, param = _props$option4.param; this.setState({ activePage: 0 }, function () { var _this5 = this; var _state2 = this.state, filterInfo = _state2.filterInfo, pageSize = _state2.pageSize; console.log(filterInfo); if (Object.keys(filterInfo).length > 0) { var paramWithFilter = Object.assign({}, param, { page: 0, pageSize: pageSize, content: filterInfo, 'refClientPageInfo.currPageIndex': 0, 'refClientPageInfo.pageSize': pageSize }); } else { var paramWithFilter = Object.assign({}, param, { page: 0, pageSize: pageSize, 'refClientPageInfo.currPageIndex': 0, 'refClientPageInfo.pageSize': pageSize }); } (0, _utils.get)(TableBodyUrl, paramWithFilter).then(function (response) { var data = response.data, page = response.page; var tempData = []; tempData = data.map(function (v, k) { v.key = v.refpk; return v; }); _this5.setState({ tableData: tempData, totalPage: page.pageCount }); }); }); } }, { key: 'setCheckedArray', value: function setCheckedArray(checkedArray) { this.setState({ checkedArray: checkedArray }); } }, { key: 'render', value: function render() { var _props = this.props, option = _props.option, _props$modalOptions = _props.modalOptions, modalOptions = _props$modalOptions === undefined ? {} : _props$modalOptions; var _state3 = this.state, isShowModal = _state3.isShowModal, tableData = _state3.tableData, columnsData = _state3.columnsData, selectedRowIndexlast = _state3.selectedRowIndexlast; var _state4 = this.state, totalPage = _state4.totalPage, pageSize = _state4.pageSize, activePage = _state4.activePage, filterInfo = _state4.filterInfo, checkedArray = _state4.checkedArray; var _props$option$title = this.props.option.title, title = _props$option$title === undefined ? '参照默认标题' : _props$option$title; return _react2.default.createElement( 'div', null, isShowModal ? _react2.default.createElement( _modal2.default, _extends({ show: true, className: option.className + ' yyuap-ref ' + _style.contentWrap, backdrop: option.backdrop, enforceFocus: false }, modalOptions), _react2.default.createElement( _modal2.default.Body, null, _react2.default.createElement( 'div', null, _react2.default.createElement( 'div', { className: _style.titleStyle }, title ), _react2.default.createElement(_icon2.default, { onClick: this.handleBtnCancel.bind(this), className: _style.closeBtnStyle, type: 'uf-close-bold' }) ), _react2.default.createElement(_expandTable2.default, { filterKey: option.filterKey, columnsData: columnsData, tableData: tableData, selectedRowIndexlast: selectedRowIndexlast, onSave: this.onSave.bind(this), onCancel: this.onCancel.bind(this), multiple: option.multiple, checkedArray: checkedArray, totalPage: totalPage, pageSize: pageSize, activePage: activePage, filterInfo: filterInfo, setCheckedArray: this.setCheckedArray, handlePagination: this.handlePagination, handlePageSize: this.handlePageSize, setFilterInfo: this.setFilterInfo, searchFilterInfo: this.searchFilterInfo, buttonText: option.buttonText }) ) ) : null ); } }]); return RefMultipleTable; }(_react.Component); exports.default = RefMultipleTable; module.exports = exports['default'];