antui-admin
Version:
admin ui for antd
172 lines (131 loc) • 4.87 kB
JavaScript
;
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'];