UNPKG

antui-admin

Version:
172 lines (131 loc) 4.87 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties'); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); 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 _react = require('react'); var _react2 = _interopRequireDefault(_react); var _amap = require('./amap'); var _amap2 = _interopRequireDefault(_amap); var _objectAssign = require('object-assign'); var _objectAssign2 = _interopRequireDefault(_objectAssign); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Map = function (_React$Component) { (0, _inherits3.default)(Map, _React$Component); function Map(props) { (0, _classCallCheck3.default)(this, Map); var _this = (0, _possibleConstructorReturn3.default)(this, (Map.__proto__ || (0, _getPrototypeOf2.default)(Map)).call(this, props)); _this.initMap = function () { var _this$props = _this.props, lon = _this$props.lon, lat = _this$props.lat, center = _this$props.center, zoom = _this$props.zoom; var opts = (0, _objectAssign2.default)({ resizeEnable: true }, center && { center: center || [lon, lat] }, zoom && { zoom: zoom }); _this.map = new window.AMap.Map("_amap_point", opts); _this.map.on('complete', function () { return _this.onMapLoaded(_this.map); }); }; _this.onMapLoaded = function (map) { _this.props.onMapLoaded && _this.props.onMapLoaded(map, window.AMap, _this); _this.setState({ mapLoading: false }); }; _this.AMap = window.AMap; _this.state = { AMap: null, mapLoaded: false, mapLoading: true, mapLoadError: false }; return _this; } (0, _createClass3.default)(Map, [{ key: 'componentDidMount', value: function componentDidMount() { var _this2 = this; if (!window.AMap) { (0, _amap2.default)({ key: this.props.mapKey, plugin: true }).then(function (AMap) { _this2.initMap(); _this2.setState({ mapLoaded: true }); }).catch(function (e) { // notify.error(e.message); console.warn(e.message); _this2.setState({ mapLoaded: false, mapLoading: false, mapLoadError: e.message }); }); } else { this.initMap(); this.setState({ mapLoaded: true }); } } }, { key: 'componentWillUnmount', value: function componentWillUnmount() { // 解除事件绑定 this.map.off('complete', this.onMapLoaded); } }, { key: 'render', value: function render() { var _props = this.props, children = _props.children, otherProps = (0, _objectWithoutProperties3.default)(_props, ['children']); var _state = this.state, mapLoadError = _state.mapLoadError, mapLoading = _state.mapLoading; delete otherProps.onMapLoaded; delete otherProps.lon; delete otherProps.lat; delete otherProps.center; delete otherProps.zoom; return _react2.default.createElement( 'div', (0, _extends3.default)({ id: 'maps' }, otherProps), _react2.default.createElement( 'div', { id: '_amap_point' }, mapLoading ? "地图加载中..." : null, mapLoadError ? "地图初始化出错:" + mapLoadError : null ), children ); } }]); return Map; }(_react2.default.Component); // import notify from '../Notify'; Map.propTypes = { lon: _react2.default.PropTypes.number, lat: _react2.default.PropTypes.number, center: _react2.default.PropTypes.array, zoom: _react2.default.PropTypes.number, onMapLoaded: _react2.default.PropTypes.func, children: _react2.default.PropTypes.node, mapKey: _react2.default.PropTypes.string.isRequired }; exports.default = Map; ; module.exports = exports['default'];