UNPKG

jimu-mobile

Version:

积木组件库助力移动端开发

1,944 lines (1,899 loc) 45.4 kB
'use strict'; 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); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } 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; } /* <City cityArr={cityArr} // 城市数组 dataAttrName={ // 城市对象的默认属性为// city_id、city_name、first_char,如果对象不是这三个属性名,请把属性名传进去 { id:'city_id', name:'city_name', firstChar:'first_char' } } position= {cityArr[0]} 定位城市 callBack={this.selectCallBack.bind(this)} 选择完以后,回调函数 /> */ var City = function (_Component) { _inherits(City, _Component); function City(props) { _classCallCheck(this, City); var _this = _possibleConstructorReturn(this, (City.__proto__ || Object.getPrototypeOf(City)).call(this, props)); var i = 0; var firstChar = ['*']; // 把26个字母放进数组里 while (i < 26) { firstChar.push(String.fromCharCode(i + 97).toLocaleUpperCase()); i++; } _this.fast_charTouchMove = _this.fast_charTouchMove.bind(_this); _this.fast_charTouchEnd = _this.fast_charTouchEnd.bind(_this); _this.fast_charClick = _this.fast_charClick.bind(_this); _this.delCity = _this.delCity.bind(_this); _this.addCity = _this.addCity.bind(_this); _this.cityClick = _this.cityClick.bind(_this); _this.positionAddrClick = _this.positionAddrClick.bind(_this); _this.delSelect = _this.delSelect.bind(_this); _this.initSelectCityCon = _this.initSelectCityCon.bind(_this); _this.initMaxChar = _this.initMaxChar.bind(_this); _this.initPositionCon = _this.initPositionCon.bind(_this); _this.initCityCon = _this.initCityCon.bind(_this); _this.init_fast_char = _this.init_fast_char.bind(_this); _this.state = { selectCity: [], max_char: 'A', isRadio: true, showMaxChar: false, firstChar: firstChar }; return _this; } _createClass(City, [{ key: 'componentWillMount', value: function componentWillMount() { var self = this; var _props = this.props, cityArr = _props.cityArr, dataAttrName = _props.dataAttrName, aaa = _props.aaa; if (cityArr) { // 如果是对象的话,需要转换一下 if (!cityArr.length) { var cityObj = cityArr; cityArr = []; this.state.firstChar.map(function (char, index) { if (cityObj[char]) { cityObj[char].map(function (ele, index) { ele[self.props.dataAttrName.firstChar] = char; cityArr.push(ele); }); } }); } var Obj = {}; /* 把城市分成数组,字母相同的在一组 */ cityArr.map(function (ele, i) { var firstChar = ele[dataAttrName.firstChar]; if (!Obj[firstChar]) { Obj[firstChar] = []; } Obj[firstChar].push(cityArr[i]); }); this.setState({ cityObj: Obj }); } } /* 初始化右侧字母栏 */ }, { key: 'init_fast_char', value: function init_fast_char() { var self = this; var fast_charTouchMove = this.fast_charTouchMove, fast_charTouchEnd = this.fast_charTouchEnd, fast_charClick = this.fast_charClick, state = this.state; var cityObj = state.cityObj, firstChar = state.firstChar; // console.log(firstChar, 12345, cityObj) return _react2.default.createElement( 'div', { className: 'fast_char', onTouchMove: fast_charTouchMove, onTouchEnd: fast_charTouchEnd }, firstChar.map(function (char, i) { console.log(cityObj[char], 1234587654); // if (cityObj[char]) { return _react2.default.createElement( 'a', { href: 'javascript:;', 'data-char': char, key: i, onClick: fast_charClick.bind(self) }, char ); //} return null; }) ); } /* 解决锚点会产生历史记录,点后退,退不出当前页面的问题 */ }, { key: 'fast_charClick', value: function fast_charClick(e) { var fastCharEle = e.currentTarget; var ele = document.querySelector('#first_char_' + (fastCharEle.dataset.char == "*" ? "rm" : fastCharEle.dataset.char)); var _cityCon = document.querySelector('._cityCon'); _cityCon.scrollTop = ele.offsetTop; } /* 城市点击事件 */ }, { key: 'cityClick', value: function cityClick(e) { var isRadio = this.state.isRadio; var callBack = this.props.callBack; var target = e.currentTarget, target_class = target.className, inp = target.querySelector('input'), checked = inp.checked, cityObj = JSON.parse(target.dataset.cityobj); /* if(!checked&&this.props.selectCity.length===10){ return; } */ if (isRadio) { callBack && callBack(cityObj); return; } if (checked) { inp.checked = false; target.className = (' ' + target_class + ' ').replace(' select ', ' '); this.delCity(cityObj); } else { inp.checked = true; target.className += ' select'; this.addCity(cityObj); } } /* 点击城市-城市是未选中的时候,走到这里,把城市ID放入已选城市的数组里 */ }, { key: 'addCity', value: function addCity(cityData) { var selectCity = this.state.selectCity.slice(0); selectCity.push(cityData); this.setState({ selectCity: selectCity }); } /* 点击城市-城市是已选中的时候,走到这里,从已选城市的数组里删除城市ID */ }, { key: 'delCity', value: function delCity(cityData) { var dataAttrName = this.props.dataAttrName; var cityId = cityData[dataAttrName.id]; var selectCityArr = this.state.selectCity.slice(0); selectCityArr.map(function (ele, index) { Number(cityId) === Number(ele[dataAttrName.id]) && selectCityArr.splice(index, 1); }); this.setState({ selectCity: selectCityArr }); } /* 点击头部已选城市的删除按钮 */ }, { key: 'delSelect', value: function delSelect(a) { var cityid = a.currentTarget.dataset.cityid; var ele = document.getElementById('city_' + cityid); try { // oppo r8007 安卓4.3手机运行会报错 ele.click(); } catch (e) { var ev = document.createEvent('HTMLEvents'); ev.initEvent('click', true, true); ele.dispatchEvent(ev); } } }, { key: 'componentDidUpdate', value: function componentDidUpdate() { var selectCon = document.getElementById('selectCon'); if (selectCon) { selectCon.scrollTop = selectCon.scrollHeight; } } }, { key: 'fast_charTouchMove', value: function fast_charTouchMove(e) { var clientX = e.targetTouches[0].clientX; var clientY = e.targetTouches[0].clientY; var ele = document.elementFromPoint(clientX, clientY) || {}; var dataset = ele.dataset; if (ele && dataset.char) { this.setState({ maxChar: dataset.char, showMaxChar: true }); ele.click(); } e.preventDefault(); } }, { key: 'fast_charTouchEnd', value: function fast_charTouchEnd() { this.setState({ showMaxChar: false }); } }, { key: 'initCityCon', value: function initCityCon() { var self = this; var _state = this.state, cityObj = _state.cityObj, isRadio = _state.isRadio, selectCity = _state.selectCity; var dataAttrName = this.props.dataAttrName; if (!cityObj) { return null; } return _react2.default.createElement( 'ul', { className: 'cityCon' }, function () { var arr = []; for (var a in cityObj) { arr.push(_react2.default.createElement( 'li', { key: a, id: 'first_char_' + (a == '*' ? 'rm' : a) }, _react2.default.createElement( 'a', { className: 'first_char', href: 'javascript:;' }, a == '*' ? '* 热门城市' : a ), cityObj[a].map(function (ele, index) { var isCheck = false; selectCity.map(function () { var _ele = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; if (Number(ele.city_id) === Number(_ele.city_id)) { isCheck = true; } }); {/* div不用label是因为label click 会触发两次 */} return _react2.default.createElement( 'div', { className: 'list' + (isCheck ? ' select' : ''), key: index, id: 'city_' + ele.city_id, 'data-cityobj': JSON.stringify(ele), onClick: self.cityClick }, _react2.default.createElement('input', { className: 'none', defaultChecked: isCheck, name: 'cityInp', type: 'checkbox' }), !isRadio && _react2.default.createElement( 'span', { className: 'check' }, _react2.default.createElement('span', { className: 'icon icon-popup_right' }) ), _react2.default.createElement( 'span', { className: 'cityName' }, ele[dataAttrName.name] ) ); }) )); } return arr; }() ); } /* 点击定位城市的事件 */ }, { key: 'positionAddrClick', value: function positionAddrClick(e) { document.getElementById('city_' + e.currentTarget.dataset.cityid).click(); } }, { key: 'initPositionCon', value: function initPositionCon() { var _props2 = this.props, position = _props2.position, dataAttrName = _props2.dataAttrName; if (!position) { return null; } return _react2.default.createElement( 'div', null, _react2.default.createElement( 'div', { className: 'selectTitle' }, '\u5B9A\u4F4D\u57CE\u5E02' ), _react2.default.createElement( 'div', { className: 'positionAddr', 'data-cityid': position.city_id, onClick: this.positionAddrClick }, _react2.default.createElement('span', { className: 'icon icon-addr' }), _react2.default.createElement( 'span', { className: 'positionCityName' }, position[dataAttrName.name] ) ) ); } }, { key: 'initMaxChar', value: function initMaxChar() { var _state2 = this.state, maxChar = _state2.maxChar, showMaxChar = _state2.showMaxChar; if (!showMaxChar) { return null; } return _react2.default.createElement( 'div', { className: 'max_char' }, maxChar ); } }, { key: 'initSelectCityCon', value: function initSelectCityCon() { var _this2 = this; var selectCity = this.state.selectCity; var dataAttrName = this.props.dataAttrName; if (!selectCity || !(selectCity && selectCity.length)) { return null; } return _react2.default.createElement( 'div', { className: 'selectCon', id: 'selectCon' }, selectCity.map(function () { var ele = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var index = arguments[1]; return _react2.default.createElement( 'div', { className: 'list', key: index }, _react2.default.createElement('span', { className: 'icon icon-addr' }), _react2.default.createElement( 'span', null, ele[dataAttrName.name] ), _react2.default.createElement('a', { className: 'icon icon-close', 'data-cityid': ele.city_id, onClick: _this2.delSelect, href: 'javascript:;' }) ); }) ); } }, { key: 'render', value: function render() { if (!this.state) { return null; } var isRadio = this.state.isRadio; var _props3 = this.props, position = _props3.position, cityArr = _props3.cityArr, dataAttrName = _props3.dataAttrName, callBack = _props3.callBack, show = _props3.show, other = _objectWithoutProperties(_props3, ['position', 'cityArr', 'dataAttrName', 'callBack', 'show']); if (!show) { return null; } return _react2.default.createElement( 'div', { className: 'selectCity' }, !isRadio ? this.initSelectCityCon() : null, this.initMaxChar(), _react2.default.createElement( 'div', _extends({ className: '_cityCon' }, other), position ? this.initPositionCon() : null, this.initCityCon() ), this.init_fast_char() ); } }]); return City; }(_react.Component); City.defaultProps = { dataAttrName: { id: 'city_id', name: 'city_name', firstChar: 'first_char' }, cityArr: [{ first_char: '*', city_id: 1, lat: 39.90403, lng: 116.407526, city_name: '北京' }, { first_char: '*', city_id: 4, lat: 31.230416, lng: 121.473701, city_name: '上海' }, { first_char: '*', city_id: 3, lat: 23.129163, lng: 113.264435, city_name: '广州' }, { first_char: '*', city_id: 2, lat: 22.543099, lng: 114.057868, city_name: '深圳' }, { first_char: '*', city_id: 17, lat: 30.572269, lng: 104.066541, city_name: '成都' }, { first_char: '*', city_id: 5, lat: 30.274085, lng: 120.15507, city_name: '杭州' }, { first_char: '*', city_id: 6, lat: 30.593099, lng: 114.305393, city_name: '武汉' }, { first_char: "*", city_name: "苏州", city_id: 23 }, { first_char: "*", city_name: "南京", city_id: 11 }, { first_char: "*", city_name: "东莞", city_id: 21 }, { first_char: "*", city_name: "西安", city_id: 10 }, { first_char: "*", city_name: "天津", city_id: 7 }, { first_char: "*", city_name: "成都", city_id: 17 }, { first_char: '*', city_name: '\u91CD\u5E86', city_id: 18 }, { first_char: 'A', city_name: '\u978D\u5C71', city_id: 64 }, { first_char: 'A', city_name: '\u5B89\u5E86', city_id: 149 }, { first_char: 'A', city_name: '\u5B89\u9633', city_id: 174 }, { first_char: 'A', city_name: '\u963F\u62C9\u5584\u76DF', city_id: 202 }, { first_char: 'A', city_name: '\u5B89\u987A', city_id: 294 }, { first_char: 'A', city_name: '\u5B89\u5EB7', city_id: 320 }, { first_char: 'A', city_name: '\u963F\u514B\u82CF\u5730\u533A', city_id: 348 }, { first_char: 'A', city_name: '\u963F\u52D2\u6CF0\u5730\u533A', city_id: 355 }, { first_char: 'A', city_name: '\u963F\u62C9\u5C14', city_id: 356 }, { first_char: 'B', city_name: '\u5317\u4EAC', city_id: 1 }, { first_char: 'B', city_name: '\u4FDD\u5B9A', city_id: 62 }, { first_char: 'B', city_name: '\u5305\u5934', city_id: 63 }, { first_char: 'B', city_name: '\u672C\u6EAA', city_id: 77 }, { first_char: 'B', city_name: '\u868C\u57E0', city_id: 100 }, { first_char: 'B', city_name: '\u5317\u6D77', city_id: 161 }, { first_char: 'B', city_name: '\u6EE8\u5DDE', city_id: 166 }, { first_char: 'B', city_name: '\u5B9D\u9E21', city_id: 170 }, { first_char: 'B', city_name: '\u4EB3\u5DDE', city_id: 189 }, { first_char: 'B', city_name: '\u5DF4\u5F66\u6DD6\u5C14', city_id: 199 }, { first_char: 'B', city_name: '\u767D\u5C71', city_id: 208 }, { first_char: 'B', city_name: '\u767D\u57CE', city_id: 210 }, { first_char: 'B', city_name: '\u767E\u8272', city_id: 263 }, { first_char: 'B', city_name: '\u767D\u6C99\u9ECE\u65CF\u81EA\u6CBB\u53BF', city_id: 278 }, { first_char: 'B', city_name: '\u5DF4\u4E2D', city_id: 288 }, { first_char: 'B', city_name: '\u6BD5\u8282\u5730\u533A', city_id: 296 }, { first_char: 'B', city_name: '\u4FDD\u5C71', city_id: 301 }, { first_char: 'B', city_name: '\u767D\u94F6', city_id: 323 }, { first_char: 'B', city_name: '\u5DF4\u97F3\u90ED\u695E\u5DDE', city_id: 350 }, { first_char: 'B', city_name: '\u535A\u5C14\u5854\u62C9\u5DDE', city_id: 352 }, { first_char: 'B', city_name: '\u4FDD\u4EAD\u9ECE\u65CF\u82D7\u65CF\u81EA\u6CBB\u53BF', city_id: 364 }, { first_char: 'C', city_name: '\u6210\u90FD', city_id: 17 }, { first_char: 'C', city_name: '\u91CD\u5E86', city_id: 18 }, { first_char: 'C', city_name: '\u957F\u6C99', city_id: 24 }, { first_char: 'C', city_name: '\u957F\u6625', city_id: 25 }, { first_char: 'C', city_name: '\u5E38\u5DDE', city_id: 45 }, { first_char: 'C', city_name: '\u6CA7\u5DDE', city_id: 59 }, { first_char: 'C', city_name: '\u627F\u5FB7', city_id: 72 }, { first_char: 'C', city_name: '\u5E38\u5FB7', city_id: 106 }, { first_char: 'C', city_name: '\u90F4\u5DDE', city_id: 107 }, { first_char: 'C', city_name: '\u957F\u6CBB', city_id: 127 }, { first_char: 'C', city_name: '\u6EC1\u5DDE', city_id: 148 }, { first_char: 'C', city_name: '\u6C60\u5DDE', city_id: 187 }, { first_char: 'C', city_name: '\u8D64\u5CF0', city_id: 196 }, { first_char: 'C', city_name: '\u6F6E\u5DDE', city_id: 257 }, { first_char: 'C', city_name: '\u5D07\u5DE6', city_id: 267 }, { first_char: 'C', city_name: '\u6F84\u8FC8\u53BF', city_id: 274 }, { first_char: 'C', city_name: '\u695A\u96C4\u5DDE', city_id: 308 }, { first_char: 'C', city_name: '\u660C\u90FD\u5730\u533A', city_id: 313 }, { first_char: 'C', city_name: '\u660C\u5409\u5DDE', city_id: 351 }, { first_char: 'C', city_name: '\u660C\u6C5F\u9ECE\u65CF\u81EA\u6CBB\u53BF', city_id: 363 }, { first_char: 'D', city_name: '\u5927\u8FDE', city_id: 14 }, { first_char: 'D', city_name: '\u4E1C\u839E', city_id: 21 }, { first_char: 'D', city_name: '\u5927\u5E86', city_id: 48 }, { first_char: 'D', city_name: '\u4E1C\u8425', city_id: 73 }, { first_char: 'D', city_name: '\u5FB7\u5DDE', city_id: 120 }, { first_char: 'D', city_name: '\u5927\u540C', city_id: 125 }, { first_char: 'D', city_name: '\u5927\u7406\u5DDE', city_id: 136 }, { first_char: 'D', city_name: '\u4E39\u4E1C', city_id: 163 }, { first_char: 'D', city_name: '\u5FB7\u9633', city_id: 173 }, { first_char: 'D', city_name: '\u5927\u5174\u5B89\u5CAD\u5730\u533A', city_id: 218 }, { first_char: 'D', city_name: '\u510B\u5DDE', city_id: 270 }, { first_char: 'D', city_name: '\u4E1C\u65B9', city_id: 273 }, { first_char: 'D', city_name: '\u5B9A\u5B89\u53BF', city_id: 275 }, { first_char: 'D', city_name: '\u8FBE\u5DDE', city_id: 285 }, { first_char: 'D', city_name: '\u5FB7\u5B8F\u5DDE', city_id: 309 }, { first_char: 'D', city_name: '\u8FEA\u5E86\u5DDE', city_id: 311 }, { first_char: 'D', city_name: '\u5B9A\u897F', city_id: 330 }, { first_char: 'E', city_name: '\u9102\u5C14\u591A\u65AF', city_id: 43 }, { first_char: 'E', city_name: '\u9102\u5DDE', city_id: 230 }, { first_char: 'E', city_name: '\u6069\u65BD\u5DDE', city_id: 235 }, { first_char: 'F', city_name: '\u798F\u5DDE', city_id: 34 }, { first_char: 'F', city_name: '\u4F5B\u5C71', city_id: 36 }, { first_char: 'F', city_name: '\u629A\u987A', city_id: 66 }, { first_char: 'F', city_name: '\u961C\u65B0', city_id: 164 }, { first_char: 'F', city_name: '\u961C\u9633', city_id: 188 }, { first_char: 'F', city_name: '\u629A\u5DDE', city_id: 223 }, { first_char: 'F', city_name: '\u9632\u57CE\u6E2F', city_id: 260 }, { first_char: 'G', city_name: '\u5E7F\u5DDE', city_id: 3 }, { first_char: 'G', city_name: '\u8D35\u9633', city_id: 82 }, { first_char: 'G', city_name: '\u8D63\u5DDE', city_id: 102 }, { first_char: 'G', city_name: '\u6842\u6797', city_id: 135 }, { first_char: 'G', city_name: '\u8D35\u6E2F', city_id: 262 }, { first_char: 'G', city_name: '\u5E7F\u5143', city_id: 280 }, { first_char: 'G', city_name: '\u5E7F\u5B89', city_id: 284 }, { first_char: 'G', city_name: '\u7518\u5B5C\u5DDE', city_id: 291 }, { first_char: 'G', city_name: '\u7518\u5357\u5DDE', city_id: 333 }, { first_char: 'G', city_name: '\u56FA\u539F', city_id: 336 }, { first_char: 'G', city_name: '\u679C\u6D1B\u5DDE', city_id: 342 }, { first_char: 'H', city_name: '\u676D\u5DDE', city_id: 5 }, { first_char: 'H', city_name: '\u5408\u80A5', city_id: 15 }, { first_char: 'H', city_name: '\u54C8\u5C14\u6EE8', city_id: 16 }, { first_char: 'H', city_name: '\u547C\u548C\u6D69\u7279', city_id: 41 }, { first_char: 'H', city_name: '\u90AF\u90F8', city_id: 60 }, { first_char: 'H', city_name: '\u846B\u82A6\u5C9B', city_id: 70 }, { first_char: 'H', city_name: '\u8861\u6C34', city_id: 80 }, { first_char: 'H', city_name: '\u6D77\u53E3', city_id: 83 }, { first_char: 'H', city_name: '\u6E56\u5DDE', city_id: 90 }, { first_char: 'H', city_name: '\u6DEE\u5B89', city_id: 97 }, { first_char: 'H', city_name: '\u8861\u9633', city_id: 105 }, { first_char: 'H', city_name: '\u6C49\u4E2D', city_id: 115 }, { first_char: 'H', city_name: '\u83CF\u6CFD', city_id: 124 }, { first_char: 'H', city_name: '\u60E0\u5DDE', city_id: 133 }, { first_char: 'H', city_name: '\u9EC4\u5C71', city_id: 141 }, { first_char: 'H', city_name: '\u6DEE\u5357', city_id: 150 }, { first_char: 'H', city_name: '\u6DEE\u5317', city_id: 183 }, { first_char: 'H', city_name: '\u547C\u4F26\u8D1D\u5C14', city_id: 198 }, { first_char: 'H', city_name: '\u5174\u5B89\u76DF', city_id: 203 }, { first_char: 'H', city_name: '\u9E64\u5C97', city_id: 212 }, { first_char: 'H', city_name: '\u9ED1\u6CB3', city_id: 217 }, { first_char: 'H', city_name: '\u9EC4\u77F3', city_id: 227 }, { first_char: 'H', city_name: '\u9EC4\u5188', city_id: 232 }, { first_char: 'H', city_name: '\u6000\u5316', city_id: 244 }, { first_char: 'H', city_name: '\u9E64\u58C1', city_id: 247 }, { first_char: 'H', city_name: '\u6CB3\u6E90', city_id: 254 }, { first_char: 'H', city_name: '\u8D3A\u5DDE', city_id: 264 }, { first_char: 'H', city_name: '\u6CB3\u6C60', city_id: 265 }, { first_char: 'H', city_name: '\u7EA2\u6CB3\u5DDE', city_id: 306 }, { first_char: 'H', city_name: '\u6D77\u4E1C\u5730\u533A', city_id: 338 }, { first_char: 'H', city_name: '\u6D77\u5317\u5DDE', city_id: 339 }, { first_char: 'H', city_name: '\u9EC4\u5357\u5DDE', city_id: 340 }, { first_char: 'H', city_name: '\u6D77\u5357\u5DDE', city_id: 341 }, { first_char: 'H', city_name: '\u6D77\u897F\u5DDE', city_id: 344 }, { first_char: 'H', city_name: '\u54C8\u5BC6\u5730\u533A', city_id: 346 }, { first_char: 'H', city_name: '\u548C\u7530\u5730\u533A', city_id: 347 }, { first_char: 'I', city_name: '\u4F0A\u7281\u5DDE', city_id: 353 }, { first_char: 'J', city_name: '\u6D4E\u5357', city_id: 12 }, { first_char: 'J', city_name: '\u9526\u5DDE', city_id: 68 }, { first_char: 'J', city_name: '\u664B\u4E2D', city_id: 71 }, { first_char: 'J', city_name: '\u5409\u6797', city_id: 74 }, { first_char: 'J', city_name: '\u6D4E\u5B81', city_id: 79 }, { first_char: 'J', city_name: '\u91D1\u534E', city_id: 86 }, { first_char: 'J', city_name: '\u5609\u5174', city_id: 88 }, { first_char: 'J', city_name: '\u4E5D\u6C5F', city_id: 101 }, { first_char: 'J', city_name: '\u8346\u5DDE', city_id: 109 }, { first_char: 'J', city_name: '\u666F\u5FB7\u9547', city_id: 151 }, { first_char: 'J', city_name: '\u6C5F\u95E8', city_id: 153 }, { first_char: 'J', city_name: '\u63ED\u9633', city_id: 154 }, { first_char: 'J', city_name: '\u7126\u4F5C', city_id: 175 }, { first_char: 'J', city_name: '\u664B\u57CE', city_id: 190 }, { first_char: 'J', city_name: '\u9E21\u897F', city_id: 211 }, { first_char: 'J', city_name: '\u4F73\u6728\u65AF', city_id: 215 }, { first_char: 'J', city_name: '\u5409\u5B89', city_id: 221 }, { first_char: 'J', city_name: '\u8346\u95E8', city_id: 229 }, { first_char: 'J', city_name: '\u6D4E\u6E90', city_id: 252 }, { first_char: 'J', city_name: '\u91D1\u660C', city_id: 322 }, { first_char: 'J', city_name: '\u5609\u5CEA\u5173', city_id: 324 }, { first_char: 'J', city_name: '\u9152\u6CC9', city_id: 328 }, { first_char: 'K', city_name: '\u6606\u660E', city_id: 19 }, { first_char: 'K', city_name: '\u5F00\u5C01', city_id: 110 }, { first_char: 'K', city_name: '\u5580\u4EC0\u5730\u533A', city_id: 179 }, { first_char: 'K', city_name: '\u514B\u62C9\u739B\u4F9D', city_id: 180 }, { first_char: 'K', city_name: '\u514B\u5B5C\u52D2\u82CF\u67EF\u5DDE', city_id: 349 }, { first_char: 'L', city_name: '\u6D1B\u9633', city_id: 27 }, { first_char: 'L', city_name: '\u5170\u5DDE', city_id: 30 }, { first_char: 'L', city_name: '\u5ECA\u574A', city_id: 46 }, { first_char: 'L', city_name: '\u4E34\u6C82', city_id: 58 }, { first_char: 'L', city_name: '\u8FBD\u9633', city_id: 75 }, { first_char: 'L', city_name: '\u8FDE\u4E91\u6E2F', city_id: 96 }, { first_char: 'L', city_name: '\u6CF8\u5DDE', city_id: 117 }, { first_char: 'L', city_name: '\u83B1\u829C', city_id: 122 }, { first_char: 'L', city_name: '\u804A\u57CE', city_id: 123 }, { first_char: 'L', city_name: '\u67F3\u5DDE', city_id: 134 }, { first_char: 'L', city_name: '\u4E3D\u6C5F', city_id: 137 }, { first_char: 'L', city_name: '\u4E3D\u6C34', city_id: 139 }, { first_char: 'L', city_name: '\u62C9\u8428', city_id: 178 }, { first_char: 'L', city_name: '\u516D\u5B89', city_id: 186 }, { first_char: 'L', city_name: '\u4E34\u6C7E', city_id: 193 }, { first_char: 'L', city_name: '\u5415\u6881', city_id: 194 }, { first_char: 'L', city_name: '\u8FBD\u6E90', city_id: 206 }, { first_char: 'L', city_name: '\u9F99\u5CA9', city_id: 226 }, { first_char: 'L', city_name: '\u5A04\u5E95', city_id: 245 }, { first_char: 'L', city_name: '\u6F2F\u6CB3', city_id: 248 }, { first_char: 'L', city_name: '\u6765\u5BBE', city_id: 266 }, { first_char: 'L', city_name: '\u4E34\u9AD8\u53BF', city_id: 277 }, { first_char: 'L', city_name: '\u4E50\u5C71', city_id: 283 }, { first_char: 'L', city_name: '\u51C9\u5C71\u5DDE', city_id: 292 }, { first_char: 'L', city_name: '\u516D\u76D8\u6C34', city_id: 293 }, { first_char: 'L', city_name: '\u4E34\u6CA7', city_id: 304 }, { first_char: 'L', city_name: '\u6797\u829D\u5730\u533A', city_id: 317 }, { first_char: 'L', city_name: '\u9647\u5357', city_id: 331 }, { first_char: 'L', city_name: '\u4E34\u590F\u5DDE', city_id: 332 }, { first_char: 'L', city_name: '\u9675\u6C34\u9ECE\u65CF\u81EA\u6CBB\u53BF', city_id: 360 }, { first_char: 'L', city_name: '\u4E50\u4E1C\u9ECE\u65CF\u81EA\u6CBB\u53BF', city_id: 362 }, { first_char: 'M', city_name: '\u7EF5\u9633', city_id: 50 }, { first_char: 'M', city_name: '\u9A6C\u978D\u5C71', city_id: 99 }, { first_char: 'M', city_name: '\u7261\u4E39\u6C5F', city_id: 129 }, { first_char: 'M', city_name: '\u8302\u540D', city_id: 155 }, { first_char: 'M', city_name: '\u6885\u5DDE', city_id: 156 }, { first_char: 'M', city_name: '\u7709\u5C71', city_id: 286 }, { first_char: 'N', city_name: '\u5357\u4EAC', city_id: 11 }, { first_char: 'N', city_name: '\u5B81\u6CE2', city_id: 20 }, { first_char: 'N', city_name: '\u5357\u5B81', city_id: 33 }, { first_char: 'N', city_name: '\u5357\u660C', city_id: 38 }, { first_char: 'N', city_name: '\u5357\u5145', city_id: 53 }, { first_char: 'N', city_name: '\u5357\u901A', city_id: 92 }, { first_char: 'N', city_name: '\u5357\u9633', city_id: 113 }, { first_char: 'N', city_name: '\u5B81\u5FB7', city_id: 144 }, { first_char: 'N', city_name: '\u5357\u5E73', city_id: 145 }, { first_char: 'N', city_name: '\u5185\u6C5F', city_id: 282 }, { first_char: 'N', city_name: '\u963F\u575D\u5DDE', city_id: 290 }, { first_char: 'N', city_name: '\u6012\u6C5F\u5DDE', city_id: 310 }, { first_char: 'N', city_name: '\u90A3\u66F2\u5730\u533A', city_id: 312 }, { first_char: 'P', city_name: '\u5E73\u9876\u5C71', city_id: 103 }, { first_char: 'P', city_name: '\u6500\u679D\u82B1', city_id: 119 }, { first_char: 'P', city_name: '\u8386\u7530', city_id: 143 }, { first_char: 'P', city_name: '\u76D8\u9526', city_id: 165 }, { first_char: 'P', city_name: '\u6FEE\u9633', city_id: 176 }, { first_char: 'P', city_name: '\u840D\u4E61', city_id: 219 }, { first_char: 'P', city_name: '\u666E\u6D31', city_id: 303 }, { first_char: 'P', city_name: '\u5E73\u51C9', city_id: 327 }, { first_char: 'Q', city_name: '\u9752\u5C9B', city_id: 13 }, { first_char: 'Q', city_name: '\u6CC9\u5DDE', city_id: 35 }, { first_char: 'Q', city_name: '\u79E6\u7687\u5C9B', city_id: 61 }, { first_char: 'Q', city_name: '\u9F50\u9F50\u54C8\u5C14', city_id: 65 }, { first_char: 'Q', city_name: '\u66F2\u9756', city_id: 138 }, { first_char: 'Q', city_name: '\u8862\u5DDE', city_id: 140 }, { first_char: 'Q', city_name: '\u6E05\u8FDC', city_id: 157 }, { first_char: 'Q', city_name: '\u4E03\u53F0\u6CB3', city_id: 216 }, { first_char: 'Q', city_name: '\u6F5C\u6C5F', city_id: 238 }, { first_char: 'Q', city_name: '\u94A6\u5DDE', city_id: 261 }, { first_char: 'Q', city_name: '\u743C\u6D77', city_id: 269 }, { first_char: 'Q', city_name: '\u9ED4\u897F\u5357\u5DDE', city_id: 297 }, { first_char: 'Q', city_name: '\u9ED4\u4E1C\u5357\u5DDE', city_id: 298 }, { first_char: 'Q', city_name: '\u9ED4\u5357\u5DDE', city_id: 299 }, { first_char: 'Q', city_name: '\u5E86\u9633', city_id: 329 }, { first_char: 'Q', city_name: '\u743C\u4E2D\u9ECE\u65CF\u82D7\u65CF\u81EA\u6CBB\u53BF', city_id: 365 }, { first_char: 'R', city_name: '\u65E5\u7167', city_id: 167 }, { first_char: 'S', city_name: '\u6DF1\u5733', city_id: 2 }, { first_char: 'S', city_name: '\u4E0A\u6D77', city_id: 4 }, { first_char: 'S', city_name: '\u6C88\u9633', city_id: 8 }, { first_char: 'S', city_name: '\u77F3\u5BB6\u5E84', city_id: 22 }, { first_char: 'S', city_name: '\u82CF\u5DDE', city_id: 23 }, { first_char: 'S', city_name: '\u4E09\u4E9A', city_id: 37 }, { first_char: 'S', city_name: '\u7ECD\u5174', city_id: 89 }, { first_char: 'S', city_name: '\u7EE5\u5316', city_id: 128 }, { first_char: 'S', city_name: '\u56DB\u5E73', city_id: 130 }, { first_char: 'S', city_name: '\u5BBF\u8FC1', city_id: 147 }, { first_char: 'S', city_name: '\u6C55\u5934', city_id: 158 }, { first_char: 'S', city_name: '\u5546\u4E18', city_id: 177 }, { first_char: 'S', city_name: '\u77F3\u6CB3\u5B50', city_id: 181 }, { first_char: 'S', city_name: '\u5BBF\u5DDE', city_id: 185 }, { first_char: 'S', city_name: '\u6714\u5DDE', city_id: 191 }, { first_char: 'S', city_name: '\u677E\u539F', city_id: 209 }, { first_char: 'S', city_name: '\u53CC\u9E2D\u5C71', city_id: 213 }, { first_char: 'S', city_name: '\u4E0A\u9976', city_id: 224 }, { first_char: 'S', city_name: '\u4E09\u660E', city_id: 225 }, { first_char: 'S', city_name: '\u5341\u5830', city_id: 228 }, { first_char: 'S', city_name: '\u968F\u5DDE', city_id: 234 }, { first_char: 'S', city_name: '\u795E\u519C\u67B6\u6797\u533A', city_id: 239 }, { first_char: 'S', city_name: '\u90B5\u9633', city_id: 240 }, { first_char: 'S', city_name: '\u4E09\u95E8\u5CE1', city_id: 249 }, { first_char: 'S', city_name: '\u97F6\u5173', city_id: 253 }, { first_char: 'S', city_name: '\u6C55\u5C3E', city_id: 255 }, { first_char: 'S', city_name: '\u9042\u5B81', city_id: 281 }, { first_char: 'S', city_name: '\u5C71\u5357\u5730\u533A', city_id: 314 }, { first_char: 'S', city_name: '\u65E5\u5580\u5219\u5730\u533A', city_id: 315 }, { first_char: 'S', city_name: '\u5546\u6D1B', city_id: 321 }, { first_char: 'S', city_name: '\u77F3\u5634\u5C71', city_id: 334 }, { first_char: 'S', city_name: '\u4E09\u6C99', city_id: 361 }, { first_char: 'T', city_name: '\u5929\u6D25', city_id: 7 }, { first_char: 'T', city_name: '\u592A\u539F', city_id: 26 }, { first_char: 'T', city_name: '\u5510\u5C71', city_id: 40 }, { first_char: 'T', city_name: '\u94C1\u5CAD', city_id: 69 }, { first_char: 'T', city_name: '\u53F0\u5DDE', city_id: 87 }, { first_char: 'T', city_name: '\u6CF0\u5DDE', city_id: 95 }, { first_char: 'T', city_name: '\u6CF0\u5B89', city_id: 121 }, { first_char: 'T', city_name: '\u5929\u6C34', city_id: 169 }, { first_char: 'T', city_name: '\u94DC\u9675', city_id: 184 }, { first_char: 'T', city_name: '\u901A\u8FBD', city_id: 197 }, { first_char: 'T', city_name: '\u901A\u5316', city_id: 207 }, { first_char: 'T', city_name: '\u5929\u95E8', city_id: 237 }, { first_char: 'T', city_name: '\u5C6F\u660C\u53BF', city_id: 276 }, { first_char: 'T', city_name: '\u94DC\u4EC1\u5730\u533A', city_id: 295 }, { first_char: 'T', city_name: '\u94DC\u5DDD', city_id: 318 }, { first_char: 'T', city_name: '\u5410\u9C81\u756A\u5730\u533A', city_id: 345 }, { first_char: 'T', city_name: '\u5854\u57CE\u5730\u533A', city_id: 354 }, { first_char: 'U', city_name: '\u4E4C\u9C81\u6728\u9F50', city_id: 52 }, { first_char: 'W', city_name: '\u6B66\u6C49', city_id: 6 }, { first_char: 'W', city_name: '\u5A01\u6D77', city_id: 42 }, { first_char: 'W', city_name: '\u65E0\u9521', city_id: 47 }, { first_char: 'W', city_name: '\u6F4D\u574A', city_id: 81 }, { first_char: 'W', city_name: '\u6E29\u5DDE', city_id: 85 }, { first_char: 'W', city_name: '\u829C\u6E56', city_id: 98 }, { first_char: 'W', city_name: '\u4E4C\u6D77', city_id: 195 }, { first_char: 'W', city_name: '\u4E4C\u5170\u5BDF\u5E03', city_id: 200 }, { first_char: 'W', city_name: '\u68A7\u5DDE', city_id: 259 }, { first_char: 'W', city_name: '\u4E94\u6307\u5C71', city_id: 268 }, { first_char: 'W', city_name: '\u6587\u660C', city_id: 271 }, { first_char: 'W', city_name: '\u4E07\u5B81', city_id: 272 }, { first_char: 'W', city_name: '\u6587\u5C71\u5DDE', city_id: 305 }, { first_char: 'W', city_name: '\u6E2D\u5357', city_id: 319 }, { first_char: 'W', city_name: '\u6B66\u5A01', city_id: 325 }, { first_char: 'W', city_name: '\u5434\u5FE0', city_id: 335 }, { first_char: 'X', city_name: '\u897F\u5B89', city_id: 10 }, { first_char: 'X', city_name: '\u897F\u5B81', city_id: 28 }, { first_char: 'X', city_name: '\u53A6\u95E8', city_id: 32 }, { first_char: 'X', city_name: '\u5F90\u5DDE', city_id: 39 }, { first_char: 'X', city_name: '\u6E58\u6F6D', city_id: 55 }, { first_char: 'X', city_name: '\u90A2\u53F0', city_id: 67 }, { first_char: 'X', city_name: '\u8944\u9633', city_id: 108 }, { first_char: 'X', city_name: '\u65B0\u4E61', city_id: 111 }, { first_char: 'X', city_name: '\u8BB8\u660C', city_id: 112 }, { first_char: 'X', city_name: '\u54B8\u9633', city_id: 116 }, { first_char: 'X', city_name: '\u65B0\u4F59', city_id: 152 }, { first_char: 'X', city_name: '\u5BA3\u57CE', city_id: 182 }, { first_char: 'X', city_name: '\u5FFB\u5DDE', city_id: 192 }, { first_char: 'X', city_name: '\u9521\u6797\u90ED\u52D2\u76DF', city_id: 201 }, { first_char: 'X', city_name: '\u5B5D\u611F', city_id: 231 }, { first_char: 'X', city_name: '\u54B8\u5B81', city_id: 233 }, { first_char: 'X', city_name: '\u4ED9\u6843', city_id: 236 }, { first_char: 'X', city_name: '\u6E58\u897F\u5DDE', city_id: 246 }, { first_char: 'X', city_name: '\u4FE1\u9633', city_id: 250 }, { first_char: 'X', city_name: '\u897F\u53CC\u7248\u7EB3\u5DDE', city_id: 307 }, { first_char: 'Y', city_name: '\u70DF\u53F0', city_id: 29 }, { first_char: 'Y', city_name: '\u94F6\u5DDD', city_id: 49 }, { first_char: 'Y', city_name: '\u5B9C\u660C', city_id: 51 }, { first_char: 'Y', city_name: '\u5CB3\u9633', city_id: 56 }, { first_char: 'Y', city_name: '\u8425\u53E3', city_id: 76 }, { first_char: 'Y', city_name: '\u626C\u5DDE', city_id: 91 }, { first_char: 'Y', city_name: '\u76D0\u57CE', city_id: 94 }, { first_char: 'Y', city_name: '\u8FD0\u57CE', city_id: 104 }, { first_char: 'Y', city_name: '\u5B9C\u5BBE', city_id: 118 }, { first_char: 'Y', city_name: '\u9633\u6CC9', city_id: 126 }, { first_char: 'Y', city_name: '\u5EF6\u5409', city_id: 131 }, { first_char: 'Y', city_name: '\u7389\u6797', city_id: 162 }, { first_char: 'Y', city_name: '\u5EF6\u5B89', city_id: 171 }, { first_char: 'Y', city_name: '\u6986\u6797', city_id: 172 }, { first_char: 'Y', city_name: '\u4F0A\u6625', city_id: 214 }, { first_char: 'Y', city_name: '\u9E70\u6F6D', city_id: 220 }, { first_char: 'Y', city_name: '\u5B9C\u6625', city_id: 222 }, { first_char: 'Y', city_name: '\u76CA\u9633', city_id: 242 }, { first_char: 'Y', city_name: '\u6C38\u5DDE', city_id: 243 }, { first_char: 'Y', city_name: '\u9633\u6C5F', city_id: 256 }, { first_char: 'Y', city_name: '\u4E91\u6D6E', city_id: 258 }, { first_char: 'Y', city_name: '\u96C5\u5B89', city_id: 287 }, { first_char: 'Y', city_name: '\u7389\u6EAA', city_id: 300 }, { first_char: 'Y', city_name: '\u7389\u6811\u5DDE', city_id: 343 }, { first_char: 'Z', city_name: '\u90D1\u5DDE', city_id: 9 }, { first_char: 'Z', city_name: '\u9075\u4E49', city_id: 44 }, { first_char: 'Z', city_name: '\u682A\u6D32', city_id: 54 }, { first_char: 'Z', city_name: '\u6DC4\u535A', city_id: 57 }, { first_char: 'Z', city_name: '\u5F20\u5BB6\u53E3', city_id: 78 }, { first_char: 'Z', city_name: '\u73E0\u6D77', city_id: 84 }, { first_char: 'Z', city_name: '\u9547\u6C5F', city_id: 93 }, { first_char: 'Z', city_name: '\u5468\u53E3', city_id: 114 }, { first_char: 'Z', city_name: '\u4E2D\u5C71', city_id: 132 }, { first_char: 'Z', city_name: '\u6F33\u5DDE', city_id: 142 }, { first_char: 'Z', city_name: '\u821F\u5C71', city_id: 146 }, { first_char: 'Z', city_name: '\u6E5B\u6C5F', city_id: 159 }, { first_char: 'Z', city_name: '\u8087\u5E86', city_id: 160 }, { first_char: 'Z', city_name: '\u67A3\u5E84', city_id: 168 }, { first_char: 'Z', city_name: '\u5F20\u5BB6\u754C', city_id: 241 }, { first_char: 'Z', city_name: '\u9A7B\u9A6C\u5E97', city_id: 251 }, { first_char: 'Z', city_name: '\u81EA\u8D21', city_id: 279 }, { first_char: 'Z', city_name: '\u8D44\u9633', city_id: 289 }, { first_char: 'Z', city_name: '\u662D\u901A', city_id: 302 }, { first_char: 'Z', city_name: '\u5F20\u6396', city_id: 326 }, { first_char: 'Z', city_name: '\u4E2D\u536B', city_id: 337 }, { "city_id": "372", "city_name": '\u6768\u51CC\u793A\u8303\u533A', "first_char": "Y" }] }; module.exports = City;