├── .watchmanconfig
├── .gitattributes
├── app.json
├── .eslintrc.js
├── babel.config.js
├── App
├── CityList
│ ├── Images
│ │ ├── Close.png
│ │ └── location.png
│ ├── Config
│ │ ├── alphabeticalIndex.js
│ │ ├── hotCities.js
│ │ └── cityIndex.js
│ ├── Styles.js
│ └── index.js
├── Components
│ ├── List
│ │ ├── UpPullLoading
│ │ │ ├── arrow@2x.png
│ │ │ └── index.js
│ │ ├── Styles.js
│ │ └── index.js
│ └── Header
│ │ ├── Style.js
│ │ └── index.js
└── Themes
│ ├── Fonts.js
│ ├── Px.js
│ ├── index.js
│ ├── Styles.js
│ ├── Height.js
│ └── Colors.js
├── android
├── app
│ ├── src
│ │ ├── main
│ │ │ ├── res
│ │ │ │ ├── values
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── mipmap-xxxhdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── listdemo
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ └── AndroidManifest.xml
│ │ └── debug
│ │ │ └── AndroidManifest.xml
│ ├── proguard-rules.pro
│ ├── build_defs.bzl
│ ├── BUCK
│ └── build.gradle
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── settings.gradle
├── gradle.properties
├── build.gradle
├── gradlew.bat
└── gradlew
├── ios
├── listDemo
│ ├── Images.xcassets
│ │ ├── Contents.json
│ │ └── AppIcon.appiconset
│ │ │ └── Contents.json
│ ├── AppDelegate.h
│ ├── main.m
│ ├── AppDelegate.m
│ ├── Info.plist
│ └── Base.lproj
│ │ └── LaunchScreen.xib
├── listDemoTests
│ ├── Info.plist
│ └── listDemoTests.m
├── listDemo-tvOSTests
│ └── Info.plist
├── listDemo-tvOS
│ └── Info.plist
├── Podfile
└── listDemo.xcodeproj
│ ├── xcshareddata
│ └── xcschemes
│ │ ├── listDemo.xcscheme
│ │ └── listDemo-tvOS.xcscheme
│ └── project.pbxproj
├── .buckconfig
├── index.js
├── App.js
├── __tests__
└── App-test.js
├── metro.config.js
├── package.json
├── .gitignore
└── .flowconfig
/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.pbxproj -text
2 |
--------------------------------------------------------------------------------
/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "listDemo",
3 | "displayName": "listDemo"
4 | }
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | extends: '@react-native-community',
4 | };
5 |
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: ['module:metro-react-native-babel-preset'],
3 | };
4 |
--------------------------------------------------------------------------------
/App/CityList/Images/Close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HuangZhe007/ListDemo/HEAD/App/CityList/Images/Close.png
--------------------------------------------------------------------------------
/App/CityList/Images/location.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HuangZhe007/ListDemo/HEAD/App/CityList/Images/location.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | listDemo
3 |
4 |
--------------------------------------------------------------------------------
/ios/listDemo/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HuangZhe007/ListDemo/HEAD/android/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/App/Components/List/UpPullLoading/arrow@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HuangZhe007/ListDemo/HEAD/App/Components/List/UpPullLoading/arrow@2x.png
--------------------------------------------------------------------------------
/.buckconfig:
--------------------------------------------------------------------------------
1 |
2 | [android]
3 | target = Google Inc.:Google APIs:23
4 |
5 | [maven_repositories]
6 | central = https://repo1.maven.org/maven2
7 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HuangZhe007/ListDemo/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HuangZhe007/ListDemo/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HuangZhe007/ListDemo/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HuangZhe007/ListDemo/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HuangZhe007/ListDemo/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HuangZhe007/ListDemo/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HuangZhe007/ListDemo/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HuangZhe007/ListDemo/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HuangZhe007/ListDemo/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HuangZhe007/ListDemo/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/App/Themes/Fonts.js:
--------------------------------------------------------------------------------
1 |
2 | import Px from './Px'
3 |
4 | const size = {
5 | s:Px(27),
6 | m:Px(34)
7 | }
8 |
9 |
10 |
11 | export default {
12 | size,
13 | }
14 |
--------------------------------------------------------------------------------
/App/Themes/Px.js:
--------------------------------------------------------------------------------
1 |
2 | import { Dimensions } from 'react-native'
3 | const UIWIDTH = 750
4 | const { width } = Dimensions.get('window');
5 |
6 | export default (UIPX) => {
7 | return Math.round(UIPX * width / UIWIDTH);
8 | }
--------------------------------------------------------------------------------
/App/Themes/index.js:
--------------------------------------------------------------------------------
1 | import Colors from './Colors'
2 | import Fonts from './Fonts'
3 | import Height from './Height'
4 | import Px from './Px'
5 | import Styles from './Styles'
6 | export { Colors, Fonts, Height, Px, Styles }
7 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @format
3 | */
4 |
5 | import {AppRegistry} from 'react-native';
6 | import App from './App';
7 | import {name as appName} from './app.json';
8 |
9 | AppRegistry.registerComponent(appName, () => App);
10 |
--------------------------------------------------------------------------------
/App/Themes/Styles.js:
--------------------------------------------------------------------------------
1 | import {StyleSheet} from 'react-native'
2 | import Px from './Px'
3 | const styles = StyleSheet.create({
4 | closeStyle: {
5 | width: Px(38),
6 | height: Px(38)
7 | }
8 | })
9 | export default styles
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/App.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Sample React Native App
3 | * https://github.com/facebook/react-native
4 | *
5 | * @format
6 | * @flow
7 | */
8 |
9 | import React, { Fragment } from 'react';
10 | import CityList from './App/CityList'
11 | const App = () => {
12 | return (
13 |
14 | );
15 | };
16 |
17 | export default App;
18 |
--------------------------------------------------------------------------------
/App/Themes/Height.js:
--------------------------------------------------------------------------------
1 | import { PixelRatio } from 'react-native';
2 | const pixelSize = (function () {
3 | let pixelRatio = PixelRatio.get();
4 | if (pixelRatio >= 3) return 0.333;
5 | else if (pixelRatio >= 2) return 0.5;
6 | else return 1;
7 | })();
8 |
9 | const height = {
10 | pixelSize
11 | }
12 | export default height
13 |
--------------------------------------------------------------------------------
/__tests__/App-test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @format
3 | */
4 |
5 | import 'react-native';
6 | import React from 'react';
7 | import App from '../App';
8 |
9 | // Note: test renderer must be required after react-native.
10 | import renderer from 'react-test-renderer';
11 |
12 | it('renders correctly', () => {
13 | renderer.create();
14 | });
15 |
--------------------------------------------------------------------------------
/App/CityList/Config/alphabeticalIndex.js:
--------------------------------------------------------------------------------
1 | export default [
2 | '热',
3 | 'A',
4 | 'B',
5 | 'C',
6 | 'D',
7 | 'E',
8 | 'F',
9 | 'G',
10 | 'H',
11 | 'J',
12 | 'K',
13 | 'L',
14 | 'M',
15 | 'N',
16 | 'P',
17 | 'Q',
18 | 'R',
19 | 'S',
20 | 'T',
21 | 'W',
22 | 'X',
23 | 'Y',
24 | 'Z',
25 | ]
--------------------------------------------------------------------------------
/metro.config.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Metro configuration for React Native
3 | * https://github.com/facebook/react-native
4 | *
5 | * @format
6 | */
7 |
8 | module.exports = {
9 | transformer: {
10 | getTransformOptions: async () => ({
11 | transform: {
12 | experimentalImportSupport: false,
13 | inlineRequires: false,
14 | },
15 | }),
16 | },
17 | };
18 |
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'listDemo'
2 | include ':react-native-spring-scrollview'
3 | project(':react-native-spring-scrollview').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-spring-scrollview/android')
4 | apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
5 | include ':app'
6 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/listDemo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Facebook, Inc. and its affiliates.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | #import
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (nonatomic, strong) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/android/app/src/main/java/com/listdemo/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.listdemo;
2 |
3 | import com.facebook.react.ReactActivity;
4 |
5 | public class MainActivity extends ReactActivity {
6 |
7 | /**
8 | * Returns the name of the main component registered from JavaScript.
9 | * This is used to schedule rendering of the component.
10 | */
11 | @Override
12 | protected String getMainComponentName() {
13 | return "listDemo";
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/ios/listDemo/main.m:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Facebook, Inc. and its affiliates.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | #import
9 |
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/App/Themes/Colors.js:
--------------------------------------------------------------------------------
1 | const colors = {
2 | white: "white",
3 | Subject: "#22C3B5",
4 | SheetItem: "#25C2B7",
5 | maskLayers: "#999999",
6 | subsidiary_text: "#8c8c8c",
7 | subsidiary_white: "#f9f9f9",
8 | subsidiary_black: "#1F1F1F",
9 | border: "#f5f5f5",
10 | indexColor: '#F6C403',
11 | facilityItemColor: '#979797',
12 | funcBgColor: '#fdfdfd',
13 | inactiveTintColor: '#616161',
14 | activeTintColor: '#22C3B5'
15 | }
16 |
17 | export default colors
18 |
--------------------------------------------------------------------------------
/App/Components/List/Styles.js:
--------------------------------------------------------------------------------
1 | import { StyleSheet } from 'react-native'
2 | import { Colors } from '../../Themes'
3 | export default StyleSheet.create({
4 | Box: {
5 | flex: 1,
6 | },
7 | flatBox: {
8 | position: 'absolute',
9 | right: 5,
10 | },
11 | indexText: {
12 | color: Colors.indexColor
13 | },
14 | TextBox: {
15 | width: 20,
16 | justifyContent: 'center',
17 | alignItems: 'center'
18 | }
19 | })
20 |
--------------------------------------------------------------------------------
/android/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
--------------------------------------------------------------------------------
/App/CityList/Config/hotCities.js:
--------------------------------------------------------------------------------
1 | export default {
2 | "sortLetters": "热门城市",
3 | "items": [
4 | { "name": "上海", "pinyin": "shanghai", "zip": "0837", },
5 | { "name": "广州", "pinyin": "Aba", "zip": "0837", },
6 | { "name": "深圳", "pinyin": "Aba", "zip": "0837", },
7 | { "name": "青岛", "pinyin": "Aba", "zip": "0837", },
8 | { "name": "杭州", "pinyin": "Aba", "zip": "0837", },
9 | { "name": "南京", "pinyin": "Aba", "zip": "0837", },
10 | ]
11 | }
--------------------------------------------------------------------------------
/android/app/build_defs.bzl:
--------------------------------------------------------------------------------
1 | """Helper definitions to glob .aar and .jar targets"""
2 |
3 | def create_aar_targets(aarfiles):
4 | for aarfile in aarfiles:
5 | name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")]
6 | lib_deps.append(":" + name)
7 | android_prebuilt_aar(
8 | name = name,
9 | aar = aarfile,
10 | )
11 |
12 | def create_jar_targets(jarfiles):
13 | for jarfile in jarfiles:
14 | name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")]
15 | lib_deps.append(":" + name)
16 | prebuilt_jar(
17 | name = name,
18 | binary_jar = jarfile,
19 | )
20 |
--------------------------------------------------------------------------------
/ios/listDemo/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | }
33 | ],
34 | "info" : {
35 | "version" : 1,
36 | "author" : "xcode"
37 | }
38 | }
--------------------------------------------------------------------------------
/App/Components/Header/Style.js:
--------------------------------------------------------------------------------
1 | import { StyleSheet, Platform, StatusBar } from 'react-native';
2 | import { Colors, Fonts, Px } from '../../Themes'
3 |
4 |
5 | const statusBarHeight = Platform.OS === 'android' ? StatusBar.currentHeight : 0
6 | export default StyleSheet.create({
7 | statusBarStyle: { paddingTop: statusBarHeight },
8 | headerStyle: {
9 | height: Px(88),
10 | flexDirection: 'row',
11 | alignItems: 'center',
12 | justifyContent: 'space-between',
13 | paddingHorizontal: Px(33),
14 | },
15 | titleStyle: {
16 | fontSize: Fonts.size.m,
17 | color: Colors.subsidiary_black,
18 | fontWeight: '500'
19 | },
20 | leftStyle: { flex: 1, flexDirection: 'row' },
21 | rightStyle: { flex: 1, flexDirection: 'row-reverse' }
22 | })
--------------------------------------------------------------------------------
/ios/listDemoTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "listDemo",
3 | "version": "0.0.1",
4 | "private": true,
5 | "scripts": {
6 | "start": "react-native start",
7 | "test": "jest",
8 | "lint": "eslint ."
9 | },
10 | "dependencies": {
11 | "react": "16.8.6",
12 | "react-native": "0.60.4",
13 | "react-native-largelist-v3": "^3.0.14",
14 | "react-native-spinkit": "^1.4.1",
15 | "react-native-spring-scrollview": "^2.0.22"
16 | },
17 | "devDependencies": {
18 | "@babel/core": "^7.5.5",
19 | "@babel/runtime": "^7.5.5",
20 | "@react-native-community/eslint-config": "^0.0.5",
21 | "babel-jest": "^24.8.0",
22 | "eslint": "^6.1.0",
23 | "jest": "^24.8.0",
24 | "metro-react-native-babel-preset": "^0.56.0",
25 | "react-test-renderer": "16.8.6"
26 | },
27 | "jest": {
28 | "preset": "react-native"
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/ios/listDemo-tvOSTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
19 |
20 | android.useAndroidX=true
21 | android.enableJetifier=true
22 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # OSX
2 | #
3 | .DS_Store
4 |
5 | # Xcode
6 | #
7 | build/
8 | *.pbxuser
9 | !default.pbxuser
10 | *.mode1v3
11 | !default.mode1v3
12 | *.mode2v3
13 | !default.mode2v3
14 | *.perspectivev3
15 | !default.perspectivev3
16 | xcuserdata
17 | *.xccheckout
18 | *.moved-aside
19 | DerivedData
20 | *.hmap
21 | *.ipa
22 | *.xcuserstate
23 | project.xcworkspace
24 |
25 | # Android/IntelliJ
26 | #
27 | build/
28 | .idea
29 | .gradle
30 | local.properties
31 | *.iml
32 |
33 | # node.js
34 | #
35 | node_modules/
36 | npm-debug.log
37 | yarn-error.log
38 |
39 | # BUCK
40 | buck-out/
41 | \.buckd/
42 | *.keystore
43 |
44 | # fastlane
45 | #
46 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
47 | # screenshots whenever they are needed.
48 | # For more information about the recommended setup visit:
49 | # https://docs.fastlane.tools/best-practices/source-control/
50 |
51 | */fastlane/report.xml
52 | */fastlane/Preview.html
53 | */fastlane/screenshots
54 |
55 | # Bundle artifact
56 | *.jsbundle
57 |
58 | # CocoaPods
59 | /ios/Pods/
60 |
--------------------------------------------------------------------------------
/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
13 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | ext {
5 | buildToolsVersion = "28.0.3"
6 | minSdkVersion = 16
7 | compileSdkVersion = 28
8 | targetSdkVersion = 28
9 | supportLibVersion = "28.0.0"
10 | }
11 | repositories {
12 | google()
13 | jcenter()
14 | }
15 | dependencies {
16 | classpath("com.android.tools.build:gradle:3.4.1")
17 |
18 | // NOTE: Do not place your application dependencies here; they belong
19 | // in the individual module build.gradle files
20 | }
21 | }
22 |
23 | allprojects {
24 | repositories {
25 | mavenLocal()
26 | maven {
27 | // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
28 | url("$rootDir/../node_modules/react-native/android")
29 | }
30 | maven {
31 | // Android JSC is installed from npm
32 | url("$rootDir/../node_modules/jsc-android/dist")
33 | }
34 |
35 | google()
36 | jcenter()
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/android/app/BUCK:
--------------------------------------------------------------------------------
1 | # To learn about Buck see [Docs](https://buckbuild.com/).
2 | # To run your application with Buck:
3 | # - install Buck
4 | # - `npm start` - to start the packager
5 | # - `cd android`
6 | # - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"`
7 | # - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
8 | # - `buck install -r android/app` - compile, install and run application
9 | #
10 |
11 | load(":build_defs.bzl", "create_aar_targets", "create_jar_targets")
12 |
13 | lib_deps = []
14 |
15 | create_aar_targets(glob(["libs/*.aar"]))
16 |
17 | create_jar_targets(glob(["libs/*.jar"]))
18 |
19 | android_library(
20 | name = "all-libs",
21 | exported_deps = lib_deps,
22 | )
23 |
24 | android_library(
25 | name = "app-code",
26 | srcs = glob([
27 | "src/main/java/**/*.java",
28 | ]),
29 | deps = [
30 | ":all-libs",
31 | ":build_config",
32 | ":res",
33 | ],
34 | )
35 |
36 | android_build_config(
37 | name = "build_config",
38 | package = "com.listdemo",
39 | )
40 |
41 | android_resource(
42 | name = "res",
43 | package = "com.listdemo",
44 | res = "src/main/res",
45 | )
46 |
47 | android_binary(
48 | name = "app",
49 | keystore = "//android/keystores:debug",
50 | manifest = "src/main/AndroidManifest.xml",
51 | package_type = "debug",
52 | deps = [
53 | ":app-code",
54 | ],
55 | )
56 |
--------------------------------------------------------------------------------
/ios/listDemo/AppDelegate.m:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Facebook, Inc. and its affiliates.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | #import "AppDelegate.h"
9 |
10 | #import
11 | #import
12 | #import
13 |
14 | @implementation AppDelegate
15 |
16 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
17 | {
18 | RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
19 | RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
20 | moduleName:@"listDemo"
21 | initialProperties:nil];
22 |
23 | rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
24 |
25 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
26 | UIViewController *rootViewController = [UIViewController new];
27 | rootViewController.view = rootView;
28 | self.window.rootViewController = rootViewController;
29 | [self.window makeKeyAndVisible];
30 | return YES;
31 | }
32 |
33 | - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
34 | {
35 | #if DEBUG
36 | return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
37 | #else
38 | return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
39 | #endif
40 | }
41 |
42 | @end
43 |
--------------------------------------------------------------------------------
/android/app/src/main/java/com/listdemo/MainApplication.java:
--------------------------------------------------------------------------------
1 | package com.listdemo;
2 |
3 | import android.app.Application;
4 | import android.util.Log;
5 |
6 | import com.facebook.react.PackageList;
7 | import com.facebook.hermes.reactexecutor.HermesExecutorFactory;
8 | import com.facebook.react.bridge.JavaScriptExecutorFactory;
9 | import com.facebook.react.ReactApplication;
10 | import com.bolan9999.SpringScrollViewPackage;
11 | import com.facebook.react.ReactNativeHost;
12 | import com.facebook.react.ReactPackage;
13 | import com.facebook.soloader.SoLoader;
14 |
15 | import java.util.List;
16 |
17 | public class MainApplication extends Application implements ReactApplication {
18 |
19 | private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
20 | @Override
21 | public boolean getUseDeveloperSupport() {
22 | return BuildConfig.DEBUG;
23 | }
24 |
25 | @Override
26 | protected List getPackages() {
27 | @SuppressWarnings("UnnecessaryLocalVariable")
28 | List packages = new PackageList(this).getPackages();
29 | // Packages that cannot be autolinked yet can be added manually here, for example:
30 | // packages.add(new MyReactNativePackage());
31 | return packages;
32 | }
33 |
34 | @Override
35 | protected String getJSMainModuleName() {
36 | return "index";
37 | }
38 | };
39 |
40 | @Override
41 | public ReactNativeHost getReactNativeHost() {
42 | return mReactNativeHost;
43 | }
44 |
45 | @Override
46 | public void onCreate() {
47 | super.onCreate();
48 | SoLoader.init(this, /* native exopackage */ false);
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/ios/listDemo-tvOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 | LSRequiresIPhoneOS
24 |
25 | NSAppTransportSecurity
26 |
27 | NSExceptionDomains
28 |
29 | localhost
30 |
31 | NSExceptionAllowsInsecureHTTPLoads
32 |
33 |
34 |
35 |
36 | NSLocationWhenInUseUsageDescription
37 |
38 | UILaunchStoryboardName
39 | LaunchScreen
40 | UIRequiredDeviceCapabilities
41 |
42 | armv7
43 |
44 | UISupportedInterfaceOrientations
45 |
46 | UIInterfaceOrientationPortrait
47 | UIInterfaceOrientationLandscapeLeft
48 | UIInterfaceOrientationLandscapeRight
49 |
50 | UIViewControllerBasedStatusBarAppearance
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/ios/listDemo/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | listDemo
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSRequiresIPhoneOS
26 |
27 | NSAppTransportSecurity
28 |
29 | NSAllowsArbitraryLoads
30 |
31 | NSExceptionDomains
32 |
33 | localhost
34 |
35 | NSExceptionAllowsInsecureHTTPLoads
36 |
37 |
38 |
39 |
40 | NSLocationWhenInUseUsageDescription
41 |
42 | UILaunchStoryboardName
43 | LaunchScreen
44 | UIRequiredDeviceCapabilities
45 |
46 | armv7
47 |
48 | UISupportedInterfaceOrientations
49 |
50 | UIInterfaceOrientationPortrait
51 | UIInterfaceOrientationLandscapeLeft
52 | UIInterfaceOrientationLandscapeRight
53 |
54 | UIViewControllerBasedStatusBarAppearance
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/App/CityList/Styles.js:
--------------------------------------------------------------------------------
1 | import { StyleSheet, Dimensions } from 'react-native'
2 | import { Colors, Fonts, Px } from '../Themes'
3 | export default StyleSheet.create({
4 | Box: {
5 | flex: 1,
6 | paddingLeft: Px(8),
7 | backgroundColor: Colors.subsidiary_white,
8 | },
9 | SectionBox: {
10 | height: Px(87),
11 | paddingLeft: Px(17),
12 | flexDirection: 'row',
13 | alignItems: 'center',
14 | backgroundColor: Colors.subsidiary_white,
15 | },
16 | SectionText: {
17 | fontSize: Fonts.size.s,
18 | color: Colors.subsidiary_text
19 | },
20 | ItemBox: {
21 | height: Px(80),
22 | paddingLeft: Px(17),
23 | flexDirection: 'row',
24 | alignItems: 'center',
25 | backgroundColor: Colors.white,
26 | },
27 | ItemTetx: {
28 | fontSize: Fonts.size.s,
29 | color: Colors.subsidiary_black
30 | },
31 | border: {
32 | height: 1,
33 | left: Px(18),
34 | right: Px(26),
35 | bottom: 0,
36 | position: 'absolute',
37 | backgroundColor: Colors.border
38 | },
39 | FlatBox: {
40 | marginLeft: Px(4)
41 | },
42 | flatItemBox: {
43 | borderRadius: Px(5),
44 | marginLeft: Px(14),
45 | marginBottom: Px(14),
46 | width: Px(210),
47 | height: Px(62),
48 | alignItems: 'center',
49 | justifyContent: 'center',
50 | backgroundColor: Colors.white,
51 | },
52 | LocatingBox: {
53 | flexDirection: 'row',
54 | backgroundColor: Colors.Subject,
55 | },
56 | ImageStyles: {
57 | height: Px(26),
58 | width: Px(21),
59 | marginRight: Px(8)
60 | },
61 | showHeaderStyle: {
62 | color: Colors.subsidiary_black
63 | },
64 | showHeaderBoxStyle: {
65 | backgroundColor: '#FFAB24',
66 | borderRadius: Px(6)
67 | }
68 | })
69 |
--------------------------------------------------------------------------------
/ios/listDemoTests/listDemoTests.m:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Facebook, Inc. and its affiliates.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | #import
9 | #import
10 |
11 | #import
12 | #import
13 |
14 | #define TIMEOUT_SECONDS 600
15 | #define TEXT_TO_LOOK_FOR @"Welcome to React Native!"
16 |
17 | @interface listDemoTests : XCTestCase
18 |
19 | @end
20 |
21 | @implementation listDemoTests
22 |
23 | - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test
24 | {
25 | if (test(view)) {
26 | return YES;
27 | }
28 | for (UIView *subview in [view subviews]) {
29 | if ([self findSubviewInView:subview matching:test]) {
30 | return YES;
31 | }
32 | }
33 | return NO;
34 | }
35 |
36 | - (void)testRendersWelcomeScreen
37 | {
38 | UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController];
39 | NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS];
40 | BOOL foundElement = NO;
41 |
42 | __block NSString *redboxError = nil;
43 | RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) {
44 | if (level >= RCTLogLevelError) {
45 | redboxError = message;
46 | }
47 | });
48 |
49 | while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) {
50 | [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
51 | [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
52 |
53 | foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) {
54 | if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) {
55 | return YES;
56 | }
57 | return NO;
58 | }];
59 | }
60 |
61 | RCTSetLogFunction(RCTDefaultLogFunction);
62 |
63 | XCTAssertNil(redboxError, @"RedBox error: %@", redboxError);
64 | XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS);
65 | }
66 |
67 |
68 | @end
69 |
--------------------------------------------------------------------------------
/App/Components/Header/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { View, StatusBar, Text, ViewPropTypes } from 'react-native'
3 | import PropTypes from 'prop-types'
4 | import styles from './Style'
5 | import { Colors, Px } from '../../Themes';
6 |
7 | export default class Header extends React.Component {
8 | constructor(props) {
9 | super(props);
10 |
11 | }
12 | static propsTypes = {
13 | LeftComponent: PropTypes.element, // 左边的组件
14 | RightComponent: PropTypes.element, // 右边的组件
15 | titleComponent: PropTypes.element, // 标题的组件,优先级高,设置此属性,title失效
16 | title: PropTypes.string, // 标题
17 | headerStyle: ViewPropTypes.style, // 头部样式
18 | titleStyle: PropTypes.object, // 标题样式,当设置titleComponent属性以后,此样式失效
19 | titleColor: PropTypes.string, // 标题颜色
20 | headerBgColor: PropTypes.string, // 头部颜色
21 | showStatusBar: PropTypes.bool, // 是否设置状态栏
22 | }
23 | static defaultProps = {
24 | showStatusBar: true // 状态栏默认设置
25 | }
26 | render() {
27 | const { LeftComponent, RightComponent, TitleComponent, title, headerStyle,
28 | titleStyle, headerBgColor, titleColor, showStatusBar } = this.props
29 | return
30 | {
31 | showStatusBar &&
32 |
36 | }
37 |
38 |
39 | {LeftComponent ? : }
40 |
41 | {TitleComponent ? : {title}}
42 |
43 | {RightComponent ? : }
44 |
45 |
46 |
47 | }
48 | }
--------------------------------------------------------------------------------
/ios/Podfile:
--------------------------------------------------------------------------------
1 | platform :ios, '9.0'
2 | require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
3 |
4 | target 'listDemo' do
5 | # Pods for listDemo
6 | pod 'React', :path => '../node_modules/react-native/'
7 | pod 'React-Core', :path => '../node_modules/react-native/React'
8 | pod 'React-DevSupport', :path => '../node_modules/react-native/React'
9 | pod 'React-fishhook', :path => '../node_modules/react-native/Libraries/fishhook'
10 | pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
11 | pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
12 | pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
13 | pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'
14 | pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'
15 | pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'
16 | pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
17 | pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
18 | pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
19 | pod 'React-RCTWebSocket', :path => '../node_modules/react-native/Libraries/WebSocket'
20 |
21 | pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
22 | pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
23 | pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
24 | pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
25 | pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
26 |
27 | pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
28 | pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
29 | pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
30 |
31 | pod 'RNSpringScrollView', :path => '../node_modules/react-native-spring-scrollview'
32 |
33 | target 'listDemoTests' do
34 | inherit! :search_paths
35 | # Pods for testing
36 | end
37 |
38 | use_native_modules!
39 | end
40 |
41 | target 'listDemo-tvOS' do
42 | # Pods for listDemo-tvOS
43 |
44 | target 'listDemo-tvOSTests' do
45 | inherit! :search_paths
46 | # Pods for testing
47 | end
48 |
49 | end
50 |
--------------------------------------------------------------------------------
/App/Components/List/UpPullLoading/index.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import {
3 | Animated,
4 | View,
5 | StyleSheet,
6 | Text
7 | } from "react-native";
8 | import arrow from './arrow.png'
9 | import { Colors } from "../../../Themes";
10 | import Spinner from "react-native-spinkit";
11 | import { RefreshHeader } from "react-native-spring-scrollview/RefreshHeader";
12 | export default class UpPullLoading extends RefreshHeader {
13 | static height = 80;
14 |
15 | static style = "stickyContent";
16 |
17 | render() {
18 | return (
19 |
20 | {this._renderIcon()}
21 | {this._renderText()}
22 |
23 | );
24 | }
25 | _renderText = _ => {
26 | const s = this.state.status;
27 | if (s === 'refreshing') {
28 | return (
29 |
30 | )
31 | } else {
32 | return (
33 |
34 |
35 | {this.getTitle()}
36 |
37 |
38 | )
39 | }
40 | }
41 | _renderIcon = _ => {
42 | const s = this.state.status;
43 | if (s === "refreshing") {
44 | return
45 | }
46 | const { maxHeight, offset } = this.props;
47 | return (
48 |
62 | );
63 | }
64 |
65 | getTitle() {
66 | const s = this.state.status;
67 | switch (s) {
68 | case "pulling":
69 | return "下拉刷新"
70 | case "waiting":
71 | return "下拉刷新"
72 | case "pullingEnough":
73 | return "松开刷新"
74 | case "refreshing":
75 | return "请稍等..."
76 | case "pullingCancel":
77 | return "放弃刷新"
78 | case "rebound":
79 | return "刷新完成"
80 | default:
81 | break;
82 | }
83 | }
84 | }
85 | const styles = StyleSheet.create({
86 | container: {
87 | flex: 1,
88 | alignItems: "center",
89 | justifyContent: "center",
90 | flexDirection: "row"
91 | },
92 | rContainer: {
93 | marginLeft: 10
94 | },
95 | text: {
96 | marginVertical: 5,
97 | fontSize: 15,
98 | color: Colors.Subject,
99 | }
100 | });
--------------------------------------------------------------------------------
/android/gradlew.bat:
--------------------------------------------------------------------------------
1 | @rem
2 | @rem Copyright 2015 the original author or authors.
3 | @rem
4 | @rem Licensed under the Apache License, Version 2.0 (the "License");
5 | @rem you may not use this file except in compliance with the License.
6 | @rem You may obtain a copy of the License at
7 | @rem
8 | @rem http://www.apache.org/licenses/LICENSE-2.0
9 | @rem
10 | @rem Unless required by applicable law or agreed to in writing, software
11 | @rem distributed under the License is distributed on an "AS IS" BASIS,
12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | @rem See the License for the specific language governing permissions and
14 | @rem limitations under the License.
15 | @rem
16 |
17 | @if "%DEBUG%" == "" @echo off
18 | @rem ##########################################################################
19 | @rem
20 | @rem Gradle startup script for Windows
21 | @rem
22 | @rem ##########################################################################
23 |
24 | @rem Set local scope for the variables with windows NT shell
25 | if "%OS%"=="Windows_NT" setlocal
26 |
27 | set DIRNAME=%~dp0
28 | if "%DIRNAME%" == "" set DIRNAME=.
29 | set APP_BASE_NAME=%~n0
30 | set APP_HOME=%DIRNAME%
31 |
32 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
33 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
34 |
35 | @rem Find java.exe
36 | if defined JAVA_HOME goto findJavaFromJavaHome
37 |
38 | set JAVA_EXE=java.exe
39 | %JAVA_EXE% -version >NUL 2>&1
40 | if "%ERRORLEVEL%" == "0" goto init
41 |
42 | echo.
43 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
44 | echo.
45 | echo Please set the JAVA_HOME variable in your environment to match the
46 | echo location of your Java installation.
47 |
48 | goto fail
49 |
50 | :findJavaFromJavaHome
51 | set JAVA_HOME=%JAVA_HOME:"=%
52 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
53 |
54 | if exist "%JAVA_EXE%" goto init
55 |
56 | echo.
57 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
58 | echo.
59 | echo Please set the JAVA_HOME variable in your environment to match the
60 | echo location of your Java installation.
61 |
62 | goto fail
63 |
64 | :init
65 | @rem Get command-line arguments, handling Windows variants
66 |
67 | if not "%OS%" == "Windows_NT" goto win9xME_args
68 |
69 | :win9xME_args
70 | @rem Slurp the command line arguments.
71 | set CMD_LINE_ARGS=
72 | set _SKIP=2
73 |
74 | :win9xME_args_slurp
75 | if "x%~1" == "x" goto execute
76 |
77 | set CMD_LINE_ARGS=%*
78 |
79 | :execute
80 | @rem Setup the command line
81 |
82 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
83 |
84 | @rem Execute Gradle
85 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
86 |
87 | :end
88 | @rem End local scope for the variables with windows NT shell
89 | if "%ERRORLEVEL%"=="0" goto mainEnd
90 |
91 | :fail
92 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
93 | rem the _cmd.exe /c_ return code!
94 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
95 | exit /b 1
96 |
97 | :mainEnd
98 | if "%OS%"=="Windows_NT" endlocal
99 |
100 | :omega
101 |
--------------------------------------------------------------------------------
/.flowconfig:
--------------------------------------------------------------------------------
1 | [ignore]
2 | ; We fork some components by platform
3 | .*/*[.]android.js
4 |
5 | ; Ignore "BUCK" generated dirs
6 | /\.buckd/
7 |
8 | ; Ignore unexpected extra "@providesModule"
9 | .*/node_modules/.*/node_modules/fbjs/.*
10 |
11 | ; Ignore duplicate module providers
12 | ; For RN Apps installed via npm, "Libraries" folder is inside
13 | ; "node_modules/react-native" but in the source repo it is in the root
14 | node_modules/react-native/Libraries/react-native/React.js
15 |
16 | ; Ignore polyfills
17 | node_modules/react-native/Libraries/polyfills/.*
18 |
19 | ; These should not be required directly
20 | ; require from fbjs/lib instead: require('fbjs/lib/warning')
21 | node_modules/warning/.*
22 |
23 | ; Flow doesn't support platforms
24 | .*/Libraries/Utilities/HMRLoadingView.js
25 |
26 | [untyped]
27 | .*/node_modules/@react-native-community/cli/.*/.*
28 |
29 | [include]
30 |
31 | [libs]
32 | node_modules/react-native/Libraries/react-native/react-native-interface.js
33 | node_modules/react-native/flow/
34 |
35 | [options]
36 | emoji=true
37 |
38 | esproposal.optional_chaining=enable
39 | esproposal.nullish_coalescing=enable
40 |
41 | module.file_ext=.js
42 | module.file_ext=.json
43 | module.file_ext=.ios.js
44 |
45 | module.system=haste
46 | module.system.haste.use_name_reducers=true
47 | # get basename
48 | module.system.haste.name_reducers='^.*/\([a-zA-Z0-9$_.-]+\.js\(\.flow\)?\)$' -> '\1'
49 | # strip .js or .js.flow suffix
50 | module.system.haste.name_reducers='^\(.*\)\.js\(\.flow\)?$' -> '\1'
51 | # strip .ios suffix
52 | module.system.haste.name_reducers='^\(.*\)\.ios$' -> '\1'
53 | module.system.haste.name_reducers='^\(.*\)\.android$' -> '\1'
54 | module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1'
55 | module.system.haste.paths.blacklist=.*/__tests__/.*
56 | module.system.haste.paths.blacklist=.*/__mocks__/.*
57 | module.system.haste.paths.whitelist=/node_modules/react-native/Libraries/.*
58 | module.system.haste.paths.whitelist=/node_modules/react-native/RNTester/.*
59 | module.system.haste.paths.whitelist=/node_modules/react-native/IntegrationTests/.*
60 | module.system.haste.paths.blacklist=/node_modules/react-native/Libraries/react-native/react-native-implementation.js
61 | module.system.haste.paths.blacklist=/node_modules/react-native/Libraries/Animated/src/polyfills/.*
62 |
63 | munge_underscores=true
64 |
65 | module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub'
66 |
67 | suppress_type=$FlowIssue
68 | suppress_type=$FlowFixMe
69 | suppress_type=$FlowFixMeProps
70 | suppress_type=$FlowFixMeState
71 |
72 | suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)
73 | suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)?:? #[0-9]+
74 | suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
75 |
76 | [lints]
77 | sketchy-null-number=warn
78 | sketchy-null-mixed=warn
79 | sketchy-number=warn
80 | untyped-type-import=warn
81 | nonstrict-import=warn
82 | deprecated-type=warn
83 | unsafe-getters-setters=warn
84 | inexact-spread=warn
85 | unnecessary-invariant=warn
86 | signature-verification-failure=warn
87 | deprecated-utility=error
88 |
89 | [strict]
90 | deprecated-type
91 | nonstrict-import
92 | sketchy-null
93 | unclear-type
94 | unsafe-getters-setters
95 | untyped-import
96 | untyped-type-import
97 |
98 | [version]
99 | ^0.98.0
100 |
--------------------------------------------------------------------------------
/ios/listDemo/Base.lproj/LaunchScreen.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
21 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/App/CityList/index.js:
--------------------------------------------------------------------------------
1 | import React, { Component, Fragment } from 'react'
2 | import {
3 | View,
4 | Text,
5 | Image,
6 | FlatList, TouchableOpacity,
7 | } from 'react-native'
8 | import { Colors, Styles, Px } from '../Themes'
9 | import List from '../Components/List'
10 | import styles from './Styles'
11 | import cityIndex from './Config/cityIndex'
12 | import hotCities from './Config/hotCities'
13 | import alphabeticalIndex from './Config/alphabeticalIndex'
14 | import location from './Images/location.png'
15 | import close from './Images/Close.png'
16 | import Header from '../Components/Header';
17 | import PropTypes from 'prop-types'
18 | const Section_Height = Px(87)
19 | const Index_Height = Px(80)
20 | const HotHeight = Px(402)
21 | export default class CityList extends Component {
22 | static propTypes = {
23 | ChoosingCity: PropTypes.func,
24 | closeModal: PropTypes.func,
25 | }
26 | constructor(props) {
27 | super(props)
28 | }
29 | _renderSection = (index) => {
30 | const contact = cityIndex[index];
31 | return (
32 |
33 | {contact.sortLetters}
34 |
35 | )
36 | }
37 | _renderItem = ({ section: section, row: row }) => {
38 | const item = cityIndex[section].items[row];
39 | return (
40 | this.props.ChoosingCity(item.name)}
42 | >
43 | {item.name}
44 |
45 |
46 | )
47 | }
48 | _flatItem = ({ item, index }) => {
49 | return (
50 | this.props.ChoosingCity(item.name)}
52 | >
53 | {item.name}
54 |
55 | )
56 | }
57 | LocatingCity = _ => {
58 | return (
59 |
60 |
61 | 当前定位城市
62 |
63 |
64 |
65 | 北京市
66 |
67 |
68 | )
69 | }
70 | _renderHeader = _ => {
71 | return (
72 |
73 | {this.LocatingCity()}
74 |
75 | {hotCities.sortLetters}
76 |
77 |
78 | `item${index}`}
83 | />
84 |
85 |
86 |
87 | )
88 | }
89 | _LeftComponent = _ => {
90 | return (
91 |
94 |
95 |
96 | )
97 | }
98 | _UpPullRefresh = _ => {
99 | this._list.endUpPullRefresh()
100 | }
101 | render() {
102 | return (
103 |
104 |
110 |
111 | (this._list = ref)}
119 | Section_Height={Section_Height}
120 | renderHeader={this._renderHeader}
121 | UpPullRefresh={this._UpPullRefresh}
122 | renderSection={this._renderSection}
123 | showHeaderStyle={styles.showHeaderStyle}
124 | showHeaderBoxStyle={styles.showHeaderBoxStyle}
125 | />
126 |
127 |
128 | )
129 | }
130 | }
131 |
--------------------------------------------------------------------------------
/App/Components/List/index.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react'
2 | import {
3 | View,
4 | Text,
5 | Dimensions,
6 | FlatList,
7 | TouchableOpacity,
8 | ViewPropTypes,
9 | } from 'react-native'
10 | import styles from './Styles'
11 | import PropTypes from 'prop-types'
12 | let screenH = Dimensions.get('window').height;
13 | import UpPullLoading from './UpPullLoading'
14 | import { LargeList } from "react-native-largelist-v3";
15 | export default class List extends Component {
16 | static propTypes = {
17 | UpPullRefresh: PropTypes.func, //是否展示下拉刷新,下拉刷新的回调
18 | showHeader: PropTypes.bool, //是否展示头部组件
19 | renderHeader: PropTypes.func, //头部组件
20 | renderSection: PropTypes.func, //分組頭组建
21 | renderItem: PropTypes.func, //分組每一項组件
22 | ItemBoxStyle: ViewPropTypes.style, //导航容器样式
23 | showHeaderBoxStyle: ViewPropTypes.style, //导航第一个容器额外样式
24 | showHeaderStyle: PropTypes.object, //导航第一个Text的额外样式
25 | flatBoxStyle: ViewPropTypes.style, //導航List的样式
26 | letterStyle: PropTypes.object, //導航每一個Text的样式
27 | indexArray: PropTypes.array, //导航數組,有则展示右侧导航
28 | dataArray: PropTypes.array.isRequired, //数据源数组
29 | HeaderHeight: PropTypes.number, //头部高度
30 | Section_Height: PropTypes.number.isRequired,//分組組頭的高度
31 | Index_Height: PropTypes.number.isRequired, //分組每一項的高度
32 | }
33 | static defaultProps = {
34 | Index_Height: 50,
35 | Section_Height: 0,
36 | showHeader: false, //默认不展示头部
37 | UpPullRefresh: () => null,
38 | renderSection: () => null,
39 | };
40 | constructor(props) {
41 | super(props)
42 | }
43 | componentWillUnmount() {
44 | this.timer && clearTimeout(this.timer)
45 | }
46 | getOfset = (key) => {
47 | const { dataArray, Index_Height, Section_Height, HeaderHeight, showHeader } = this.props
48 | let [hKey, itemkey, sectionKey, hot_height] = [key, 0, 0, 0]
49 | if (showHeader) {
50 | if (key > 0) hKey = key - 1
51 | hot_height = key ? HeaderHeight : 0
52 | }
53 | for (i = 0; i < hKey; i++) {
54 | for (index = 0, len = dataArray[i].items.length; index < len; index++) {
55 | itemkey++
56 | }
57 | sectionKey++
58 | }
59 | return (itemkey * Index_Height + sectionKey * Section_Height) + hot_height
60 | }
61 | _onSectionselect = (value, key) => {
62 | const ofset = this.getOfset(key)
63 | if (this._LargeList) {
64 | this._LargeList.scrollTo({
65 | x: 0, y: ofset
66 | });
67 | }
68 | };
69 | _renderFooter = () => {
70 | return (
71 |
72 | )
73 | }
74 | _FlatItem = ({ item, index }) => {
75 | const { ItemBoxStyle, letterStyle, showHeaderBoxStyle, showHeaderStyle } = this.props
76 | const hot = index == 0
77 | return (
78 | this._onSectionselect(e, index)}>
80 |
81 | {item}
82 |
83 |
84 | )
85 | }
86 | endUpPullRefresh = _ => {
87 | this.timer = setTimeout(() => {
88 | if (this._LargeList)
89 | this._LargeList.endRefresh();
90 | }, 1000);
91 | }
92 | render() {
93 | const { indexArray, dataArray, Section_Height, Index_Height, showHeader, renderItem,
94 | UpPullRefresh, renderSection, renderHeader } = this.props
95 | const top_offset = indexArray ? (screenH - indexArray.length * 15) / 3 : 0
96 | return (
97 |
98 | (this._LargeList = ref)}
106 | heightForSection={() => Section_Height}
107 | heightForIndexPath={() => Index_Height}
108 | renderHeader={showHeader ? renderHeader : () => null}
109 | />
110 | {
111 | indexArray &&
112 |
115 | index.toString()} //不重复的key
119 | initialNumToRender={indexArray ? indexArray.length : 10}
120 | />
121 |
122 | }
123 |
124 | )
125 | }
126 | }
127 |
--------------------------------------------------------------------------------
/ios/listDemo.xcodeproj/xcshareddata/xcschemes/listDemo.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
29 |
35 |
36 |
37 |
43 |
49 |
50 |
51 |
52 |
53 |
58 |
59 |
61 |
67 |
68 |
69 |
70 |
71 |
77 |
78 |
79 |
80 |
81 |
82 |
92 |
94 |
100 |
101 |
102 |
103 |
104 |
105 |
111 |
113 |
119 |
120 |
121 |
122 |
124 |
125 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/ios/listDemo.xcodeproj/xcshareddata/xcschemes/listDemo-tvOS.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
29 |
35 |
36 |
37 |
43 |
49 |
50 |
51 |
52 |
53 |
58 |
59 |
61 |
67 |
68 |
69 |
70 |
71 |
77 |
78 |
79 |
80 |
81 |
82 |
92 |
94 |
100 |
101 |
102 |
103 |
104 |
105 |
111 |
113 |
119 |
120 |
121 |
122 |
124 |
125 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/android/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | #
4 | # Copyright 2015 the original author or authors.
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # http://www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | #
18 |
19 | ##############################################################################
20 | ##
21 | ## Gradle start up script for UN*X
22 | ##
23 | ##############################################################################
24 |
25 | # Attempt to set APP_HOME
26 | # Resolve links: $0 may be a link
27 | PRG="$0"
28 | # Need this for relative symlinks.
29 | while [ -h "$PRG" ] ; do
30 | ls=`ls -ld "$PRG"`
31 | link=`expr "$ls" : '.*-> \(.*\)$'`
32 | if expr "$link" : '/.*' > /dev/null; then
33 | PRG="$link"
34 | else
35 | PRG=`dirname "$PRG"`"/$link"
36 | fi
37 | done
38 | SAVED="`pwd`"
39 | cd "`dirname \"$PRG\"`/" >/dev/null
40 | APP_HOME="`pwd -P`"
41 | cd "$SAVED" >/dev/null
42 |
43 | APP_NAME="Gradle"
44 | APP_BASE_NAME=`basename "$0"`
45 |
46 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
47 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
48 |
49 | # Use the maximum available, or set MAX_FD != -1 to use that value.
50 | MAX_FD="maximum"
51 |
52 | warn () {
53 | echo "$*"
54 | }
55 |
56 | die () {
57 | echo
58 | echo "$*"
59 | echo
60 | exit 1
61 | }
62 |
63 | # OS specific support (must be 'true' or 'false').
64 | cygwin=false
65 | msys=false
66 | darwin=false
67 | nonstop=false
68 | case "`uname`" in
69 | CYGWIN* )
70 | cygwin=true
71 | ;;
72 | Darwin* )
73 | darwin=true
74 | ;;
75 | MINGW* )
76 | msys=true
77 | ;;
78 | NONSTOP* )
79 | nonstop=true
80 | ;;
81 | esac
82 |
83 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
84 |
85 | # Determine the Java command to use to start the JVM.
86 | if [ -n "$JAVA_HOME" ] ; then
87 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
88 | # IBM's JDK on AIX uses strange locations for the executables
89 | JAVACMD="$JAVA_HOME/jre/sh/java"
90 | else
91 | JAVACMD="$JAVA_HOME/bin/java"
92 | fi
93 | if [ ! -x "$JAVACMD" ] ; then
94 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
95 |
96 | Please set the JAVA_HOME variable in your environment to match the
97 | location of your Java installation."
98 | fi
99 | else
100 | JAVACMD="java"
101 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
102 |
103 | Please set the JAVA_HOME variable in your environment to match the
104 | location of your Java installation."
105 | fi
106 |
107 | # Increase the maximum file descriptors if we can.
108 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
109 | MAX_FD_LIMIT=`ulimit -H -n`
110 | if [ $? -eq 0 ] ; then
111 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
112 | MAX_FD="$MAX_FD_LIMIT"
113 | fi
114 | ulimit -n $MAX_FD
115 | if [ $? -ne 0 ] ; then
116 | warn "Could not set maximum file descriptor limit: $MAX_FD"
117 | fi
118 | else
119 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
120 | fi
121 | fi
122 |
123 | # For Darwin, add options to specify how the application appears in the dock
124 | if $darwin; then
125 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
126 | fi
127 |
128 | # For Cygwin, switch paths to Windows format before running java
129 | if $cygwin ; then
130 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
131 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
132 | JAVACMD=`cygpath --unix "$JAVACMD"`
133 |
134 | # We build the pattern for arguments to be converted via cygpath
135 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
136 | SEP=""
137 | for dir in $ROOTDIRSRAW ; do
138 | ROOTDIRS="$ROOTDIRS$SEP$dir"
139 | SEP="|"
140 | done
141 | OURCYGPATTERN="(^($ROOTDIRS))"
142 | # Add a user-defined pattern to the cygpath arguments
143 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
144 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
145 | fi
146 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
147 | i=0
148 | for arg in "$@" ; do
149 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
150 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
151 |
152 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
153 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
154 | else
155 | eval `echo args$i`="\"$arg\""
156 | fi
157 | i=$((i+1))
158 | done
159 | case $i in
160 | (0) set -- ;;
161 | (1) set -- "$args0" ;;
162 | (2) set -- "$args0" "$args1" ;;
163 | (3) set -- "$args0" "$args1" "$args2" ;;
164 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
165 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
166 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
167 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
168 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
169 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
170 | esac
171 | fi
172 |
173 | # Escape application args
174 | save () {
175 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
176 | echo " "
177 | }
178 | APP_ARGS=$(save "$@")
179 |
180 | # Collect all arguments for the java command, following the shell quoting and substitution rules
181 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
182 |
183 | # by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
184 | if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
185 | cd "$(dirname "$0")"
186 | fi
187 |
188 | exec "$JAVACMD" "$@"
189 |
--------------------------------------------------------------------------------
/android/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: "com.android.application"
2 |
3 | import com.android.build.OutputFile
4 |
5 | /**
6 | * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
7 | * and bundleReleaseJsAndAssets).
8 | * These basically call `react-native bundle` with the correct arguments during the Android build
9 | * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
10 | * bundle directly from the development server. Below you can see all the possible configurations
11 | * and their defaults. If you decide to add a configuration block, make sure to add it before the
12 | * `apply from: "../../node_modules/react-native/react.gradle"` line.
13 | *
14 | * project.ext.react = [
15 | * // the name of the generated asset file containing your JS bundle
16 | * bundleAssetName: "index.android.bundle",
17 | *
18 | * // the entry file for bundle generation
19 | * entryFile: "index.android.js",
20 | *
21 | * // https://facebook.github.io/react-native/docs/performance#enable-the-ram-format
22 | * bundleCommand: "ram-bundle",
23 | *
24 | * // whether to bundle JS and assets in debug mode
25 | * bundleInDebug: false,
26 | *
27 | * // whether to bundle JS and assets in release mode
28 | * bundleInRelease: true,
29 | *
30 | * // whether to bundle JS and assets in another build variant (if configured).
31 | * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
32 | * // The configuration property can be in the following formats
33 | * // 'bundleIn${productFlavor}${buildType}'
34 | * // 'bundleIn${buildType}'
35 | * // bundleInFreeDebug: true,
36 | * // bundleInPaidRelease: true,
37 | * // bundleInBeta: true,
38 | *
39 | * // whether to disable dev mode in custom build variants (by default only disabled in release)
40 | * // for example: to disable dev mode in the staging build type (if configured)
41 | * devDisabledInStaging: true,
42 | * // The configuration property can be in the following formats
43 | * // 'devDisabledIn${productFlavor}${buildType}'
44 | * // 'devDisabledIn${buildType}'
45 | *
46 | * // the root of your project, i.e. where "package.json" lives
47 | * root: "../../",
48 | *
49 | * // where to put the JS bundle asset in debug mode
50 | * jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
51 | *
52 | * // where to put the JS bundle asset in release mode
53 | * jsBundleDirRelease: "$buildDir/intermediates/assets/release",
54 | *
55 | * // where to put drawable resources / React Native assets, e.g. the ones you use via
56 | * // require('./image.png')), in debug mode
57 | * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
58 | *
59 | * // where to put drawable resources / React Native assets, e.g. the ones you use via
60 | * // require('./image.png')), in release mode
61 | * resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
62 | *
63 | * // by default the gradle tasks are skipped if none of the JS files or assets change; this means
64 | * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
65 | * // date; if you have any other folders that you want to ignore for performance reasons (gradle
66 | * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
67 | * // for example, you might want to remove it from here.
68 | * inputExcludes: ["android/**", "ios/**"],
69 | *
70 | * // override which node gets called and with what additional arguments
71 | * nodeExecutableAndArgs: ["node"],
72 | *
73 | * // supply additional arguments to the packager
74 | * extraPackagerArgs: []
75 | * ]
76 | */
77 |
78 | project.ext.react = [
79 | entryFile: "index.js",
80 | enableHermes: false, // clean and rebuild if changing
81 | ]
82 |
83 | apply from: "../../node_modules/react-native/react.gradle"
84 |
85 | /**
86 | * Set this to true to create two separate APKs instead of one:
87 | * - An APK that only works on ARM devices
88 | * - An APK that only works on x86 devices
89 | * The advantage is the size of the APK is reduced by about 4MB.
90 | * Upload all the APKs to the Play Store and people will download
91 | * the correct one based on the CPU architecture of their device.
92 | */
93 | def enableSeparateBuildPerCPUArchitecture = false
94 |
95 | /**
96 | * Run Proguard to shrink the Java bytecode in release builds.
97 | */
98 | def enableProguardInReleaseBuilds = false
99 |
100 | /**
101 | * The preferred build flavor of JavaScriptCore.
102 | *
103 | * For example, to use the international variant, you can use:
104 | * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
105 | *
106 | * The international variant includes ICU i18n library and necessary data
107 | * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
108 | * give correct results when using with locales other than en-US. Note that
109 | * this variant is about 6MiB larger per architecture than default.
110 | */
111 | def jscFlavor = 'org.webkit:android-jsc:+'
112 |
113 | /**
114 | * Whether to enable the Hermes VM.
115 | *
116 | * This should be set on project.ext.react and mirrored here. If it is not set
117 | * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
118 | * and the benefits of using Hermes will therefore be sharply reduced.
119 | */
120 | def enableHermes = project.ext.react.get("enableHermes", false);
121 |
122 | android {
123 | compileSdkVersion rootProject.ext.compileSdkVersion
124 |
125 | compileOptions {
126 | sourceCompatibility JavaVersion.VERSION_1_8
127 | targetCompatibility JavaVersion.VERSION_1_8
128 | }
129 |
130 | defaultConfig {
131 | applicationId "com.listdemo"
132 | minSdkVersion rootProject.ext.minSdkVersion
133 | targetSdkVersion rootProject.ext.targetSdkVersion
134 | versionCode 1
135 | versionName "1.0"
136 | }
137 | splits {
138 | abi {
139 | reset()
140 | enable enableSeparateBuildPerCPUArchitecture
141 | universalApk false // If true, also generate a universal APK
142 | include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
143 | }
144 | }
145 | signingConfigs {
146 | debug {
147 | storeFile file('debug.keystore')
148 | storePassword 'android'
149 | keyAlias 'androiddebugkey'
150 | keyPassword 'android'
151 | }
152 | }
153 | buildTypes {
154 | debug {
155 | signingConfig signingConfigs.debug
156 | }
157 | release {
158 | // Caution! In production, you need to generate your own keystore file.
159 | // see https://facebook.github.io/react-native/docs/signed-apk-android.
160 | signingConfig signingConfigs.debug
161 | minifyEnabled enableProguardInReleaseBuilds
162 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
163 | }
164 | }
165 | // applicationVariants are e.g. debug, release
166 | applicationVariants.all { variant ->
167 | variant.outputs.each { output ->
168 | // For each separate APK per architecture, set a unique version code as described here:
169 | // https://developer.android.com/studio/build/configure-apk-splits.html
170 | def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
171 | def abi = output.getFilter(OutputFile.ABI)
172 | if (abi != null) { // null for the universal-debug, universal-release variants
173 | output.versionCodeOverride =
174 | versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
175 | }
176 |
177 | }
178 | }
179 |
180 | packagingOptions {
181 | pickFirst '**/armeabi-v7a/libc++_shared.so'
182 | pickFirst '**/x86/libc++_shared.so'
183 | pickFirst '**/arm64-v8a/libc++_shared.so'
184 | pickFirst '**/x86_64/libc++_shared.so'
185 | pickFirst '**/x86/libjsc.so'
186 | pickFirst '**/armeabi-v7a/libjsc.so'
187 | }
188 | }
189 |
190 | dependencies {
191 | implementation project(':react-native-spring-scrollview')
192 | implementation fileTree(dir: "libs", include: ["*.jar"])
193 | implementation "com.facebook.react:react-native:+" // From node_modules
194 |
195 | if (enableHermes) {
196 | def hermesPath = "../../node_modules/hermesvm/android/";
197 | debugImplementation files(hermesPath + "hermes-debug.aar")
198 | releaseImplementation files(hermesPath + "hermes-release.aar")
199 | } else {
200 | implementation jscFlavor
201 | }
202 | }
203 |
204 | // Run this once to be able to run the application with BUCK
205 | // puts all compile dependencies into folder libs for BUCK to use
206 | task copyDownloadableDepsToLibs(type: Copy) {
207 | from configurations.compile
208 | into 'libs'
209 | }
210 |
211 | apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
212 |
--------------------------------------------------------------------------------
/ios/listDemo.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 00E356F31AD99517003FC87E /* listDemoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* listDemoTests.m */; };
11 | 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
12 | 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; };
13 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
14 | 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
15 | 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
16 | 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
17 | 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
18 | 2DCD954D1E0B4F2C00145EB5 /* listDemoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* listDemoTests.m */; };
19 | /* End PBXBuildFile section */
20 |
21 | /* Begin PBXContainerItemProxy section */
22 | 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = {
23 | isa = PBXContainerItemProxy;
24 | containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
25 | proxyType = 1;
26 | remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
27 | remoteInfo = listDemo;
28 | };
29 | 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */ = {
30 | isa = PBXContainerItemProxy;
31 | containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
32 | proxyType = 1;
33 | remoteGlobalIDString = 2D02E47A1E0B4A5D006451C7;
34 | remoteInfo = "listDemo-tvOS";
35 | };
36 | /* End PBXContainerItemProxy section */
37 |
38 | /* Begin PBXFileReference section */
39 | 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; };
40 | 00E356EE1AD99517003FC87E /* listDemoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = listDemoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
41 | 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
42 | 00E356F21AD99517003FC87E /* listDemoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = listDemoTests.m; sourceTree = ""; };
43 | 13B07F961A680F5B00A75B9A /* listDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = listDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
44 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = listDemo/AppDelegate.h; sourceTree = ""; };
45 | 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = listDemo/AppDelegate.m; sourceTree = ""; };
46 | 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; };
47 | 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = listDemo/Images.xcassets; sourceTree = ""; };
48 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = listDemo/Info.plist; sourceTree = ""; };
49 | 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = listDemo/main.m; sourceTree = ""; };
50 | 2D02E47B1E0B4A5D006451C7 /* listDemo-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "listDemo-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
51 | 2D02E4901E0B4A5D006451C7 /* listDemo-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "listDemo-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
52 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
53 | ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; };
54 | /* End PBXFileReference section */
55 |
56 | /* Begin PBXFrameworksBuildPhase section */
57 | 00E356EB1AD99517003FC87E /* Frameworks */ = {
58 | isa = PBXFrameworksBuildPhase;
59 | buildActionMask = 2147483647;
60 | files = (
61 | );
62 | runOnlyForDeploymentPostprocessing = 0;
63 | };
64 | 13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
65 | isa = PBXFrameworksBuildPhase;
66 | buildActionMask = 2147483647;
67 | files = (
68 | );
69 | runOnlyForDeploymentPostprocessing = 0;
70 | };
71 | 2D02E4781E0B4A5D006451C7 /* Frameworks */ = {
72 | isa = PBXFrameworksBuildPhase;
73 | buildActionMask = 2147483647;
74 | files = (
75 | );
76 | runOnlyForDeploymentPostprocessing = 0;
77 | };
78 | 2D02E48D1E0B4A5D006451C7 /* Frameworks */ = {
79 | isa = PBXFrameworksBuildPhase;
80 | buildActionMask = 2147483647;
81 | files = (
82 | );
83 | runOnlyForDeploymentPostprocessing = 0;
84 | };
85 | /* End PBXFrameworksBuildPhase section */
86 |
87 | /* Begin PBXGroup section */
88 | 00E356EF1AD99517003FC87E /* listDemoTests */ = {
89 | isa = PBXGroup;
90 | children = (
91 | 00E356F21AD99517003FC87E /* listDemoTests.m */,
92 | 00E356F01AD99517003FC87E /* Supporting Files */,
93 | );
94 | path = listDemoTests;
95 | sourceTree = "";
96 | };
97 | 00E356F01AD99517003FC87E /* Supporting Files */ = {
98 | isa = PBXGroup;
99 | children = (
100 | 00E356F11AD99517003FC87E /* Info.plist */,
101 | );
102 | name = "Supporting Files";
103 | sourceTree = "";
104 | };
105 | 13B07FAE1A68108700A75B9A /* listDemo */ = {
106 | isa = PBXGroup;
107 | children = (
108 | 008F07F21AC5B25A0029DE68 /* main.jsbundle */,
109 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */,
110 | 13B07FB01A68108700A75B9A /* AppDelegate.m */,
111 | 13B07FB51A68108700A75B9A /* Images.xcassets */,
112 | 13B07FB61A68108700A75B9A /* Info.plist */,
113 | 13B07FB11A68108700A75B9A /* LaunchScreen.xib */,
114 | 13B07FB71A68108700A75B9A /* main.m */,
115 | );
116 | name = listDemo;
117 | sourceTree = "";
118 | };
119 | 2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
120 | isa = PBXGroup;
121 | children = (
122 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
123 | ED2971642150620600B7C4FE /* JavaScriptCore.framework */,
124 | );
125 | name = Frameworks;
126 | sourceTree = "";
127 | };
128 | 832341AE1AAA6A7D00B99B32 /* Libraries */ = {
129 | isa = PBXGroup;
130 | children = (
131 | );
132 | name = Libraries;
133 | sourceTree = "";
134 | };
135 | 83CBB9F61A601CBA00E9B192 = {
136 | isa = PBXGroup;
137 | children = (
138 | 13B07FAE1A68108700A75B9A /* listDemo */,
139 | 832341AE1AAA6A7D00B99B32 /* Libraries */,
140 | 00E356EF1AD99517003FC87E /* listDemoTests */,
141 | 83CBBA001A601CBA00E9B192 /* Products */,
142 | 2D16E6871FA4F8E400B85C8A /* Frameworks */,
143 | );
144 | indentWidth = 2;
145 | sourceTree = "";
146 | tabWidth = 2;
147 | usesTabs = 0;
148 | };
149 | 83CBBA001A601CBA00E9B192 /* Products */ = {
150 | isa = PBXGroup;
151 | children = (
152 | 13B07F961A680F5B00A75B9A /* listDemo.app */,
153 | 00E356EE1AD99517003FC87E /* listDemoTests.xctest */,
154 | 2D02E47B1E0B4A5D006451C7 /* listDemo-tvOS.app */,
155 | 2D02E4901E0B4A5D006451C7 /* listDemo-tvOSTests.xctest */,
156 | );
157 | name = Products;
158 | sourceTree = "";
159 | };
160 | /* End PBXGroup section */
161 |
162 | /* Begin PBXNativeTarget section */
163 | 00E356ED1AD99517003FC87E /* listDemoTests */ = {
164 | isa = PBXNativeTarget;
165 | buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "listDemoTests" */;
166 | buildPhases = (
167 | 00E356EA1AD99517003FC87E /* Sources */,
168 | 00E356EB1AD99517003FC87E /* Frameworks */,
169 | 00E356EC1AD99517003FC87E /* Resources */,
170 | );
171 | buildRules = (
172 | );
173 | dependencies = (
174 | 00E356F51AD99517003FC87E /* PBXTargetDependency */,
175 | );
176 | name = listDemoTests;
177 | productName = listDemoTests;
178 | productReference = 00E356EE1AD99517003FC87E /* listDemoTests.xctest */;
179 | productType = "com.apple.product-type.bundle.unit-test";
180 | };
181 | 13B07F861A680F5B00A75B9A /* listDemo */ = {
182 | isa = PBXNativeTarget;
183 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "listDemo" */;
184 | buildPhases = (
185 | FD10A7F022414F080027D42C /* Start Packager */,
186 | 13B07F871A680F5B00A75B9A /* Sources */,
187 | 13B07F8C1A680F5B00A75B9A /* Frameworks */,
188 | 13B07F8E1A680F5B00A75B9A /* Resources */,
189 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
190 | );
191 | buildRules = (
192 | );
193 | dependencies = (
194 | );
195 | name = listDemo;
196 | productName = "listDemo";
197 | productReference = 13B07F961A680F5B00A75B9A /* listDemo.app */;
198 | productType = "com.apple.product-type.application";
199 | };
200 | 2D02E47A1E0B4A5D006451C7 /* listDemo-tvOS */ = {
201 | isa = PBXNativeTarget;
202 | buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "listDemo-tvOS" */;
203 | buildPhases = (
204 | FD10A7F122414F3F0027D42C /* Start Packager */,
205 | 2D02E4771E0B4A5D006451C7 /* Sources */,
206 | 2D02E4781E0B4A5D006451C7 /* Frameworks */,
207 | 2D02E4791E0B4A5D006451C7 /* Resources */,
208 | 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */,
209 | );
210 | buildRules = (
211 | );
212 | dependencies = (
213 | );
214 | name = "listDemo-tvOS";
215 | productName = "listDemo-tvOS";
216 | productReference = 2D02E47B1E0B4A5D006451C7 /* listDemo-tvOS.app */;
217 | productType = "com.apple.product-type.application";
218 | };
219 | 2D02E48F1E0B4A5D006451C7 /* listDemo-tvOSTests */ = {
220 | isa = PBXNativeTarget;
221 | buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "listDemo-tvOSTests" */;
222 | buildPhases = (
223 | 2D02E48C1E0B4A5D006451C7 /* Sources */,
224 | 2D02E48D1E0B4A5D006451C7 /* Frameworks */,
225 | 2D02E48E1E0B4A5D006451C7 /* Resources */,
226 | );
227 | buildRules = (
228 | );
229 | dependencies = (
230 | 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */,
231 | );
232 | name = "listDemo-tvOSTests";
233 | productName = "listDemo-tvOSTests";
234 | productReference = 2D02E4901E0B4A5D006451C7 /* listDemo-tvOSTests.xctest */;
235 | productType = "com.apple.product-type.bundle.unit-test";
236 | };
237 | /* End PBXNativeTarget section */
238 |
239 | /* Begin PBXProject section */
240 | 83CBB9F71A601CBA00E9B192 /* Project object */ = {
241 | isa = PBXProject;
242 | attributes = {
243 | LastUpgradeCheck = 0940;
244 | ORGANIZATIONNAME = Facebook;
245 | TargetAttributes = {
246 | 00E356ED1AD99517003FC87E = {
247 | CreatedOnToolsVersion = 6.2;
248 | TestTargetID = 13B07F861A680F5B00A75B9A;
249 | };
250 | 2D02E47A1E0B4A5D006451C7 = {
251 | CreatedOnToolsVersion = 8.2.1;
252 | ProvisioningStyle = Automatic;
253 | };
254 | 2D02E48F1E0B4A5D006451C7 = {
255 | CreatedOnToolsVersion = 8.2.1;
256 | ProvisioningStyle = Automatic;
257 | TestTargetID = 2D02E47A1E0B4A5D006451C7;
258 | };
259 | };
260 | };
261 | buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "listDemo" */;
262 | compatibilityVersion = "Xcode 3.2";
263 | developmentRegion = English;
264 | hasScannedForEncodings = 0;
265 | knownRegions = (
266 | en,
267 | Base,
268 | );
269 | mainGroup = 83CBB9F61A601CBA00E9B192;
270 | productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
271 | projectDirPath = "";
272 | projectRoot = "";
273 | targets = (
274 | 13B07F861A680F5B00A75B9A /* listDemo */,
275 | 00E356ED1AD99517003FC87E /* listDemoTests */,
276 | 2D02E47A1E0B4A5D006451C7 /* listDemo-tvOS */,
277 | 2D02E48F1E0B4A5D006451C7 /* listDemo-tvOSTests */,
278 | );
279 | };
280 | /* End PBXProject section */
281 |
282 | /* Begin PBXResourcesBuildPhase section */
283 | 00E356EC1AD99517003FC87E /* Resources */ = {
284 | isa = PBXResourcesBuildPhase;
285 | buildActionMask = 2147483647;
286 | files = (
287 | );
288 | runOnlyForDeploymentPostprocessing = 0;
289 | };
290 | 13B07F8E1A680F5B00A75B9A /* Resources */ = {
291 | isa = PBXResourcesBuildPhase;
292 | buildActionMask = 2147483647;
293 | files = (
294 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
295 | 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */,
296 | );
297 | runOnlyForDeploymentPostprocessing = 0;
298 | };
299 | 2D02E4791E0B4A5D006451C7 /* Resources */ = {
300 | isa = PBXResourcesBuildPhase;
301 | buildActionMask = 2147483647;
302 | files = (
303 | 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */,
304 | );
305 | runOnlyForDeploymentPostprocessing = 0;
306 | };
307 | 2D02E48E1E0B4A5D006451C7 /* Resources */ = {
308 | isa = PBXResourcesBuildPhase;
309 | buildActionMask = 2147483647;
310 | files = (
311 | );
312 | runOnlyForDeploymentPostprocessing = 0;
313 | };
314 | /* End PBXResourcesBuildPhase section */
315 |
316 | /* Begin PBXShellScriptBuildPhase section */
317 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = {
318 | isa = PBXShellScriptBuildPhase;
319 | buildActionMask = 2147483647;
320 | files = (
321 | );
322 | inputPaths = (
323 | );
324 | name = "Bundle React Native code and images";
325 | outputPaths = (
326 | );
327 | runOnlyForDeploymentPostprocessing = 0;
328 | shellPath = /bin/sh;
329 | shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
330 | };
331 | 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = {
332 | isa = PBXShellScriptBuildPhase;
333 | buildActionMask = 2147483647;
334 | files = (
335 | );
336 | inputPaths = (
337 | );
338 | name = "Bundle React Native Code And Images";
339 | outputPaths = (
340 | );
341 | runOnlyForDeploymentPostprocessing = 0;
342 | shellPath = /bin/sh;
343 | shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
344 | };
345 | FD10A7F022414F080027D42C /* Start Packager */ = {
346 | isa = PBXShellScriptBuildPhase;
347 | buildActionMask = 2147483647;
348 | files = (
349 | );
350 | inputFileListPaths = (
351 | );
352 | inputPaths = (
353 | );
354 | name = "Start Packager";
355 | outputFileListPaths = (
356 | );
357 | outputPaths = (
358 | );
359 | runOnlyForDeploymentPostprocessing = 0;
360 | shellPath = /bin/sh;
361 | shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n";
362 | showEnvVarsInLog = 0;
363 | };
364 | FD10A7F122414F3F0027D42C /* Start Packager */ = {
365 | isa = PBXShellScriptBuildPhase;
366 | buildActionMask = 2147483647;
367 | files = (
368 | );
369 | inputFileListPaths = (
370 | );
371 | inputPaths = (
372 | );
373 | name = "Start Packager";
374 | outputFileListPaths = (
375 | );
376 | outputPaths = (
377 | );
378 | runOnlyForDeploymentPostprocessing = 0;
379 | shellPath = /bin/sh;
380 | shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n";
381 | showEnvVarsInLog = 0;
382 | };
383 | /* End PBXShellScriptBuildPhase section */
384 |
385 | /* Begin PBXSourcesBuildPhase section */
386 | 00E356EA1AD99517003FC87E /* Sources */ = {
387 | isa = PBXSourcesBuildPhase;
388 | buildActionMask = 2147483647;
389 | files = (
390 | 00E356F31AD99517003FC87E /* listDemoTests.m in Sources */,
391 | );
392 | runOnlyForDeploymentPostprocessing = 0;
393 | };
394 | 13B07F871A680F5B00A75B9A /* Sources */ = {
395 | isa = PBXSourcesBuildPhase;
396 | buildActionMask = 2147483647;
397 | files = (
398 | 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */,
399 | 13B07FC11A68108700A75B9A /* main.m in Sources */,
400 | );
401 | runOnlyForDeploymentPostprocessing = 0;
402 | };
403 | 2D02E4771E0B4A5D006451C7 /* Sources */ = {
404 | isa = PBXSourcesBuildPhase;
405 | buildActionMask = 2147483647;
406 | files = (
407 | 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */,
408 | 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */,
409 | );
410 | runOnlyForDeploymentPostprocessing = 0;
411 | };
412 | 2D02E48C1E0B4A5D006451C7 /* Sources */ = {
413 | isa = PBXSourcesBuildPhase;
414 | buildActionMask = 2147483647;
415 | files = (
416 | 2DCD954D1E0B4F2C00145EB5 /* listDemoTests.m in Sources */,
417 | );
418 | runOnlyForDeploymentPostprocessing = 0;
419 | };
420 | /* End PBXSourcesBuildPhase section */
421 |
422 | /* Begin PBXTargetDependency section */
423 | 00E356F51AD99517003FC87E /* PBXTargetDependency */ = {
424 | isa = PBXTargetDependency;
425 | target = 13B07F861A680F5B00A75B9A /* listDemo */;
426 | targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */;
427 | };
428 | 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */ = {
429 | isa = PBXTargetDependency;
430 | target = 2D02E47A1E0B4A5D006451C7 /* listDemo-tvOS */;
431 | targetProxy = 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */;
432 | };
433 | /* End PBXTargetDependency section */
434 |
435 | /* Begin PBXVariantGroup section */
436 | 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = {
437 | isa = PBXVariantGroup;
438 | children = (
439 | 13B07FB21A68108700A75B9A /* Base */,
440 | );
441 | name = LaunchScreen.xib;
442 | path = listDemo;
443 | sourceTree = "";
444 | };
445 | /* End PBXVariantGroup section */
446 |
447 | /* Begin XCBuildConfiguration section */
448 | 00E356F61AD99517003FC87E /* Debug */ = {
449 | isa = XCBuildConfiguration;
450 | buildSettings = {
451 | BUNDLE_LOADER = "$(TEST_HOST)";
452 | GCC_PREPROCESSOR_DEFINITIONS = (
453 | "DEBUG=1",
454 | "$(inherited)",
455 | );
456 | INFOPLIST_FILE = listDemoTests/Info.plist;
457 | IPHONEOS_DEPLOYMENT_TARGET = 9.0;
458 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
459 | OTHER_LDFLAGS = (
460 | "-ObjC",
461 | "-lc++",
462 | "$(inherited)",
463 | );
464 | PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
465 | PRODUCT_NAME = "$(TARGET_NAME)";
466 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/listDemo.app/listDemo";
467 | };
468 | name = Debug;
469 | };
470 | 00E356F71AD99517003FC87E /* Release */ = {
471 | isa = XCBuildConfiguration;
472 | buildSettings = {
473 | BUNDLE_LOADER = "$(TEST_HOST)";
474 | COPY_PHASE_STRIP = NO;
475 | INFOPLIST_FILE = listDemoTests/Info.plist;
476 | IPHONEOS_DEPLOYMENT_TARGET = 9.0;
477 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
478 | OTHER_LDFLAGS = (
479 | "-ObjC",
480 | "-lc++",
481 | "$(inherited)",
482 | );
483 | PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
484 | PRODUCT_NAME = "$(TARGET_NAME)";
485 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/listDemo.app/listDemo";
486 | };
487 | name = Release;
488 | };
489 | 13B07F941A680F5B00A75B9A /* Debug */ = {
490 | isa = XCBuildConfiguration;
491 | buildSettings = {
492 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
493 | CURRENT_PROJECT_VERSION = 1;
494 | DEAD_CODE_STRIPPING = NO;
495 | INFOPLIST_FILE = listDemo/Info.plist;
496 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
497 | OTHER_LDFLAGS = (
498 | "$(inherited)",
499 | "-ObjC",
500 | "-lc++",
501 | );
502 | PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
503 | PRODUCT_NAME = listDemo;
504 | VERSIONING_SYSTEM = "apple-generic";
505 | };
506 | name = Debug;
507 | };
508 | 13B07F951A680F5B00A75B9A /* Release */ = {
509 | isa = XCBuildConfiguration;
510 | buildSettings = {
511 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
512 | CURRENT_PROJECT_VERSION = 1;
513 | INFOPLIST_FILE = listDemo/Info.plist;
514 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
515 | OTHER_LDFLAGS = (
516 | "$(inherited)",
517 | "-ObjC",
518 | "-lc++",
519 | );
520 | PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
521 | PRODUCT_NAME = listDemo;
522 | VERSIONING_SYSTEM = "apple-generic";
523 | };
524 | name = Release;
525 | };
526 | 2D02E4971E0B4A5E006451C7 /* Debug */ = {
527 | isa = XCBuildConfiguration;
528 | buildSettings = {
529 | ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
530 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
531 | CLANG_ANALYZER_NONNULL = YES;
532 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
533 | CLANG_WARN_INFINITE_RECURSION = YES;
534 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
535 | DEBUG_INFORMATION_FORMAT = dwarf;
536 | ENABLE_TESTABILITY = YES;
537 | GCC_NO_COMMON_BLOCKS = YES;
538 | INFOPLIST_FILE = "listDemo-tvOS/Info.plist";
539 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
540 | OTHER_LDFLAGS = (
541 | "$(inherited)",
542 | "-ObjC",
543 | "-lc++",
544 | );
545 | PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.listDemo-tvOS";
546 | PRODUCT_NAME = "$(TARGET_NAME)";
547 | SDKROOT = appletvos;
548 | TARGETED_DEVICE_FAMILY = 3;
549 | TVOS_DEPLOYMENT_TARGET = 9.2;
550 | };
551 | name = Debug;
552 | };
553 | 2D02E4981E0B4A5E006451C7 /* Release */ = {
554 | isa = XCBuildConfiguration;
555 | buildSettings = {
556 | ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
557 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
558 | CLANG_ANALYZER_NONNULL = YES;
559 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
560 | CLANG_WARN_INFINITE_RECURSION = YES;
561 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
562 | COPY_PHASE_STRIP = NO;
563 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
564 | GCC_NO_COMMON_BLOCKS = YES;
565 | INFOPLIST_FILE = "listDemo-tvOS/Info.plist";
566 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
567 | OTHER_LDFLAGS = (
568 | "$(inherited)",
569 | "-ObjC",
570 | "-lc++",
571 | );
572 | PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.listDemo-tvOS";
573 | PRODUCT_NAME = "$(TARGET_NAME)";
574 | SDKROOT = appletvos;
575 | TARGETED_DEVICE_FAMILY = 3;
576 | TVOS_DEPLOYMENT_TARGET = 9.2;
577 | };
578 | name = Release;
579 | };
580 | 2D02E4991E0B4A5E006451C7 /* Debug */ = {
581 | isa = XCBuildConfiguration;
582 | buildSettings = {
583 | BUNDLE_LOADER = "$(TEST_HOST)";
584 | CLANG_ANALYZER_NONNULL = YES;
585 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
586 | CLANG_WARN_INFINITE_RECURSION = YES;
587 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
588 | DEBUG_INFORMATION_FORMAT = dwarf;
589 | ENABLE_TESTABILITY = YES;
590 | GCC_NO_COMMON_BLOCKS = YES;
591 | INFOPLIST_FILE = "listDemo-tvOSTests/Info.plist";
592 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
593 | OTHER_LDFLAGS = (
594 | "$(inherited)",
595 | "-ObjC",
596 | "-lc++",
597 | );
598 | PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.listDemo-tvOSTests";
599 | PRODUCT_NAME = "$(TARGET_NAME)";
600 | SDKROOT = appletvos;
601 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/listDemo-tvOS.app/listDemo-tvOS";
602 | TVOS_DEPLOYMENT_TARGET = 10.1;
603 | };
604 | name = Debug;
605 | };
606 | 2D02E49A1E0B4A5E006451C7 /* Release */ = {
607 | isa = XCBuildConfiguration;
608 | buildSettings = {
609 | BUNDLE_LOADER = "$(TEST_HOST)";
610 | CLANG_ANALYZER_NONNULL = YES;
611 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
612 | CLANG_WARN_INFINITE_RECURSION = YES;
613 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
614 | COPY_PHASE_STRIP = NO;
615 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
616 | GCC_NO_COMMON_BLOCKS = YES;
617 | INFOPLIST_FILE = "listDemo-tvOSTests/Info.plist";
618 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
619 | OTHER_LDFLAGS = (
620 | "$(inherited)",
621 | "-ObjC",
622 | "-lc++",
623 | );
624 | PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.listDemo-tvOSTests";
625 | PRODUCT_NAME = "$(TARGET_NAME)";
626 | SDKROOT = appletvos;
627 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/listDemo-tvOS.app/listDemo-tvOS";
628 | TVOS_DEPLOYMENT_TARGET = 10.1;
629 | };
630 | name = Release;
631 | };
632 | 83CBBA201A601CBA00E9B192 /* Debug */ = {
633 | isa = XCBuildConfiguration;
634 | buildSettings = {
635 | ALWAYS_SEARCH_USER_PATHS = NO;
636 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
637 | CLANG_CXX_LIBRARY = "libc++";
638 | CLANG_ENABLE_MODULES = YES;
639 | CLANG_ENABLE_OBJC_ARC = YES;
640 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
641 | CLANG_WARN_BOOL_CONVERSION = YES;
642 | CLANG_WARN_COMMA = YES;
643 | CLANG_WARN_CONSTANT_CONVERSION = YES;
644 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
645 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
646 | CLANG_WARN_EMPTY_BODY = YES;
647 | CLANG_WARN_ENUM_CONVERSION = YES;
648 | CLANG_WARN_INFINITE_RECURSION = YES;
649 | CLANG_WARN_INT_CONVERSION = YES;
650 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
651 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
652 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
653 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
654 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
655 | CLANG_WARN_STRICT_PROTOTYPES = YES;
656 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
657 | CLANG_WARN_UNREACHABLE_CODE = YES;
658 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
659 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
660 | COPY_PHASE_STRIP = NO;
661 | ENABLE_STRICT_OBJC_MSGSEND = YES;
662 | ENABLE_TESTABILITY = YES;
663 | GCC_C_LANGUAGE_STANDARD = gnu99;
664 | GCC_DYNAMIC_NO_PIC = NO;
665 | GCC_NO_COMMON_BLOCKS = YES;
666 | GCC_OPTIMIZATION_LEVEL = 0;
667 | GCC_PREPROCESSOR_DEFINITIONS = (
668 | "DEBUG=1",
669 | "$(inherited)",
670 | );
671 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
672 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
673 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
674 | GCC_WARN_UNDECLARED_SELECTOR = YES;
675 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
676 | GCC_WARN_UNUSED_FUNCTION = YES;
677 | GCC_WARN_UNUSED_VARIABLE = YES;
678 | IPHONEOS_DEPLOYMENT_TARGET = 9.0;
679 | MTL_ENABLE_DEBUG_INFO = YES;
680 | ONLY_ACTIVE_ARCH = YES;
681 | SDKROOT = iphoneos;
682 | };
683 | name = Debug;
684 | };
685 | 83CBBA211A601CBA00E9B192 /* Release */ = {
686 | isa = XCBuildConfiguration;
687 | buildSettings = {
688 | ALWAYS_SEARCH_USER_PATHS = NO;
689 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
690 | CLANG_CXX_LIBRARY = "libc++";
691 | CLANG_ENABLE_MODULES = YES;
692 | CLANG_ENABLE_OBJC_ARC = YES;
693 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
694 | CLANG_WARN_BOOL_CONVERSION = YES;
695 | CLANG_WARN_COMMA = YES;
696 | CLANG_WARN_CONSTANT_CONVERSION = YES;
697 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
698 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
699 | CLANG_WARN_EMPTY_BODY = YES;
700 | CLANG_WARN_ENUM_CONVERSION = YES;
701 | CLANG_WARN_INFINITE_RECURSION = YES;
702 | CLANG_WARN_INT_CONVERSION = YES;
703 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
704 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
705 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
706 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
707 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
708 | CLANG_WARN_STRICT_PROTOTYPES = YES;
709 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
710 | CLANG_WARN_UNREACHABLE_CODE = YES;
711 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
712 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
713 | COPY_PHASE_STRIP = YES;
714 | ENABLE_NS_ASSERTIONS = NO;
715 | ENABLE_STRICT_OBJC_MSGSEND = YES;
716 | GCC_C_LANGUAGE_STANDARD = gnu99;
717 | GCC_NO_COMMON_BLOCKS = YES;
718 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
719 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
720 | GCC_WARN_UNDECLARED_SELECTOR = YES;
721 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
722 | GCC_WARN_UNUSED_FUNCTION = YES;
723 | GCC_WARN_UNUSED_VARIABLE = YES;
724 | IPHONEOS_DEPLOYMENT_TARGET = 9.0;
725 | MTL_ENABLE_DEBUG_INFO = NO;
726 | SDKROOT = iphoneos;
727 | VALIDATE_PRODUCT = YES;
728 | };
729 | name = Release;
730 | };
731 | /* End XCBuildConfiguration section */
732 |
733 | /* Begin XCConfigurationList section */
734 | 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "listDemoTests" */ = {
735 | isa = XCConfigurationList;
736 | buildConfigurations = (
737 | 00E356F61AD99517003FC87E /* Debug */,
738 | 00E356F71AD99517003FC87E /* Release */,
739 | );
740 | defaultConfigurationIsVisible = 0;
741 | defaultConfigurationName = Release;
742 | };
743 | 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "listDemo" */ = {
744 | isa = XCConfigurationList;
745 | buildConfigurations = (
746 | 13B07F941A680F5B00A75B9A /* Debug */,
747 | 13B07F951A680F5B00A75B9A /* Release */,
748 | );
749 | defaultConfigurationIsVisible = 0;
750 | defaultConfigurationName = Release;
751 | };
752 | 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "listDemo-tvOS" */ = {
753 | isa = XCConfigurationList;
754 | buildConfigurations = (
755 | 2D02E4971E0B4A5E006451C7 /* Debug */,
756 | 2D02E4981E0B4A5E006451C7 /* Release */,
757 | );
758 | defaultConfigurationIsVisible = 0;
759 | defaultConfigurationName = Release;
760 | };
761 | 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "listDemo-tvOSTests" */ = {
762 | isa = XCConfigurationList;
763 | buildConfigurations = (
764 | 2D02E4991E0B4A5E006451C7 /* Debug */,
765 | 2D02E49A1E0B4A5E006451C7 /* Release */,
766 | );
767 | defaultConfigurationIsVisible = 0;
768 | defaultConfigurationName = Release;
769 | };
770 | 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "listDemo" */ = {
771 | isa = XCConfigurationList;
772 | buildConfigurations = (
773 | 83CBBA201A601CBA00E9B192 /* Debug */,
774 | 83CBBA211A601CBA00E9B192 /* Release */,
775 | );
776 | defaultConfigurationIsVisible = 0;
777 | defaultConfigurationName = Release;
778 | };
779 | /* End XCConfigurationList section */
780 | };
781 | rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
782 | }
783 |
--------------------------------------------------------------------------------
/App/CityList/Config/cityIndex.js:
--------------------------------------------------------------------------------
1 | export default [{"sortLetters":"A","items":[{"label":"阿坝Aba0837","name":"阿坝","pinyin":"Aba","zip":"0837","sortLetters":"A","index":55},{"label":"阿克苏Akesu0997","name":"阿克苏","pinyin":"Akesu","zip":"0997","sortLetters":"A","index":56},{"label":"阿拉善盟Alashanmeng0483","name":"阿拉善盟","pinyin":"Alashanmeng","zip":"0483","sortLetters":"A","index":57},{"label":"阿勒泰Aletai0906","name":"阿勒泰","pinyin":"Aletai","zip":"0906","sortLetters":"A","index":58},{"label":"阿里Ali0897","name":"阿里","pinyin":"Ali","zip":"0897","sortLetters":"A","index":59},{"label":"安康Ankang0915","name":"安康","pinyin":"Ankang","zip":"0915","sortLetters":"A","index":60},{"label":"安庆Anqing0556","name":"安庆","pinyin":"Anqing","zip":"0556","sortLetters":"A","index":61},{"label":"鞍山Anshan0412","name":"鞍山","pinyin":"Anshan","zip":"0412","sortLetters":"A","index":62},{"label":"安顺Anshun0853","name":"安顺","pinyin":"Anshun","zip":"0853","sortLetters":"A","index":63},{"label":"安阳Anyang0372","name":"安阳","pinyin":"Anyang","zip":"0372","sortLetters":"A","index":64},{"label":"阿城Acheng0451","name":"阿城","pinyin":"Acheng","zip":"0451","sortLetters":"A","index":337},{"label":"安福Anfu0796","name":"安福","pinyin":"Anfu","zip":"0796","sortLetters":"A","index":338},{"label":"安吉Anji0572","name":"安吉","pinyin":"Anji","zip":"0572","sortLetters":"A","index":339},{"label":"安宁Anning0871","name":"安宁","pinyin":"Anning","zip":"0871","sortLetters":"A","index":340},{"label":"安丘Anqiu0536","name":"安丘","pinyin":"Anqiu","zip":"0536","sortLetters":"A","index":341},{"label":"安溪Anxi0595","name":"安溪","pinyin":"Anxi","zip":"0595","sortLetters":"A","index":342},{"label":"安义Anyi0791","name":"安义","pinyin":"Anyi","zip":"0791","sortLetters":"A","index":343},{"label":"安远Anyuan0797","name":"安远","pinyin":"Anyuan","zip":"0797","sortLetters":"A","index":344},{"label":"阿坝Aba0837","name":"阿坝","pinyin":"Aba","zip":"0837","sortLetters":"A","index":55}]},{"sortLetters":"B","items":[{"label":"白城Baicheng0436","name":"白城","pinyin":"Baicheng","zip":"0436","sortLetters":"B","index":65},{"label":"百色Baise0776","name":"百色","pinyin":"Baise","zip":"0776","sortLetters":"B","index":66},{"label":"白山Baishan0439","name":"白山","pinyin":"Baishan","zip":"0439","sortLetters":"B","index":67},{"label":"白银Baiyin0943","name":"白银","pinyin":"Baiyin","zip":"0943","sortLetters":"B","index":68},{"label":"蚌埠Bangbu0552","name":"蚌埠","pinyin":"Bangbu","zip":"0552","sortLetters":"B","index":69},{"label":"保定Baoding0312","name":"保定","pinyin":"Baoding","zip":"0312","sortLetters":"B","index":70},{"label":"宝鸡Baoji0917","name":"宝鸡","pinyin":"Baoji","zip":"0917","sortLetters":"B","index":71},{"label":"保山Baoshan0875","name":"保山","pinyin":"Baoshan","zip":"0875","sortLetters":"B","index":72},{"label":"包头Baotou0472","name":"包头","pinyin":"Baotou","zip":"0472","sortLetters":"B","index":73},{"label":"巴彦淖尔Bayannaoer0478","name":"巴彦淖尔","pinyin":"Bayannaoer","zip":"0478","sortLetters":"B","index":74},{"label":"巴音郭楞Bayinguoleng0996","name":"巴音郭楞","pinyin":"Bayinguoleng","zip":"0996","sortLetters":"B","index":75},{"label":"巴中Bazhong0827","name":"巴中","pinyin":"Bazhong","zip":"0827","sortLetters":"B","index":76},{"label":"北海Beihai0779","name":"北海","pinyin":"Beihai","zip":"0779","sortLetters":"B","index":77},{"label":"本溪Benxi0414","name":"本溪","pinyin":"Benxi","zip":"0414","sortLetters":"B","index":78},{"label":"毕节Bijie0857","name":"毕节","pinyin":"Bijie","zip":"0857","sortLetters":"B","index":79},{"label":"滨州Binzhou0543","name":"滨州","pinyin":"Binzhou","zip":"0543","sortLetters":"B","index":80},{"label":"博尔塔拉Boertala0909","name":"博尔塔拉","pinyin":"Boertala","zip":"0909","sortLetters":"B","index":81},{"label":"亳州Bozhou0558","name":"亳州","pinyin":"Bozhou","zip":"0558","sortLetters":"B","index":82},{"label":"宝应Baoying0514","name":"宝应","pinyin":"Baoying","zip":"0514","sortLetters":"B","index":345},{"label":"巴彦Bayan0451","name":"巴彦","pinyin":"Bayan","zip":"0451","sortLetters":"B","index":346},{"label":"滨海Binhai0515","name":"滨海","pinyin":"Binhai","zip":"0515","sortLetters":"B","index":347},{"label":"宾县Binxian0451","name":"宾县","pinyin":"Binxian","zip":"0451","sortLetters":"B","index":348},{"label":"宾阳Binyang0771","name":"宾阳","pinyin":"Binyang","zip":"0771","sortLetters":"B","index":349},{"label":"璧山Bishan023","name":"璧山","pinyin":"Bishan","zip":"023","sortLetters":"B","index":350},{"label":"博爱Boai0391","name":"博爱","pinyin":"Boai","zip":"0391","sortLetters":"B","index":351},{"label":"博罗Boluo0752","name":"博罗","pinyin":"Boluo","zip":"0752","sortLetters":"B","index":352},{"label":"博兴Boxing0543","name":"博兴","pinyin":"Boxing","zip":"0543","sortLetters":"B","index":353},{"label":"白城Baicheng0436","name":"白城","pinyin":"Baicheng","zip":"0436","sortLetters":"B","index":65}]},{"sortLetters":"C","items":[{"label":"昌都Changdu0895","name":"昌都","pinyin":"Changdu","zip":"0895","sortLetters":"C","index":85},{"label":"昌吉Changji0997","name":"昌吉","pinyin":"Changji","zip":"0997","sortLetters":"C","index":86},{"label":"长治Changzhi0355","name":"长治","pinyin":"Changzhi","zip":"0355","sortLetters":"C","index":87},{"label":"巢湖Chaohu0565","name":"巢湖","pinyin":"Chaohu","zip":"0565","sortLetters":"C","index":88},{"label":"朝阳Chaoyang0421","name":"朝阳","pinyin":"Chaoyang","zip":"0421","sortLetters":"C","index":89},{"label":"潮州Chaozhou0768","name":"潮州","pinyin":"Chaozhou","zip":"0768","sortLetters":"C","index":90},{"label":"承德Chengde0314","name":"承德","pinyin":"Chengde","zip":"0314","sortLetters":"C","index":91},{"label":"郴州Chenzhou0735","name":"郴州","pinyin":"Chenzhou","zip":"0735","sortLetters":"C","index":92},{"label":"赤峰Chifeng0476","name":"赤峰","pinyin":"Chifeng","zip":"0476","sortLetters":"C","index":93},{"label":"池州Chizhou0566","name":"池州","pinyin":"Chizhou","zip":"0566","sortLetters":"C","index":94},{"label":"崇左Chongzuo0771","name":"崇左","pinyin":"Chongzuo","zip":"0771","sortLetters":"C","index":95},{"label":"楚雄Chuxiong0875","name":"楚雄","pinyin":"Chuxiong","zip":"0875","sortLetters":"C","index":96},{"label":"滁州Chuzhou0550","name":"滁州","pinyin":"Chuzhou","zip":"0550","sortLetters":"C","index":97},{"label":"长春Changchun0431","name":"长春","pinyin":"Changchun","zip":"0431","sortLetters":"C","index":4},{"label":"长沙Changsha0731","name":"长沙","pinyin":"Changsha","zip":"0731","sortLetters":"C","index":5},{"label":"常州Changzhou0519","name":"常州","pinyin":"Changzhou","zip":"0519","sortLetters":"C","index":6},{"label":"成都Chengdu028","name":"成都","pinyin":"Chengdu","zip":"028","sortLetters":"C","index":7},{"label":"沧州Cangzhou0317","name":"沧州","pinyin":"Cangzhou","zip":"0317","sortLetters":"C","index":83},{"label":"常德Changde0736","name":"常德","pinyin":"Changde","zip":"0736","sortLetters":"C","index":84},{"label":"苍南Cangnan0577","name":"苍南","pinyin":"Cangnan","zip":"0577","sortLetters":"C","index":354},{"label":"苍山Cangshan0539","name":"苍山","pinyin":"Cangshan","zip":"0539","sortLetters":"C","index":355},{"label":"曹县Caoxian0530","name":"曹县","pinyin":"Caoxian","zip":"0530","sortLetters":"C","index":356},{"label":"长岛Changdao0535","name":"长岛","pinyin":"Changdao","zip":"0535","sortLetters":"C","index":357},{"label":"长丰Changfeng0551","name":"长丰","pinyin":"Changfeng","zip":"0551","sortLetters":"C","index":358},{"label":"长海Changhai0411","name":"长海","pinyin":"Changhai","zip":"0411","sortLetters":"C","index":359},{"label":"长乐Changle0591","name":"长乐","pinyin":"Changle","zip":"0591","sortLetters":"C","index":360},{"label":"昌乐Changle0536","name":"昌乐","pinyin":"Changle","zip":"0536","sortLetters":"C","index":361},{"label":"常山Changshan0570","name":"常山","pinyin":"Changshan","zip":"0570","sortLetters":"C","index":362},{"label":"常熟Changshu0512","name":"常熟","pinyin":"Changshu","zip":"0512","sortLetters":"C","index":363},{"label":"长泰Changtai0596","name":"长泰","pinyin":"Changtai","zip":"0596","sortLetters":"C","index":364},{"label":"长汀Changting0597","name":"长汀","pinyin":"Changting","zip":"0597","sortLetters":"C","index":365},{"label":"长兴Changxing0572","name":"长兴","pinyin":"Changxing","zip":"0572","sortLetters":"C","index":366},{"label":"昌邑Changyi0536","name":"昌邑","pinyin":"Changyi","zip":"0536","sortLetters":"C","index":367},{"label":"潮安Chaoan0768","name":"潮安","pinyin":"Chaoan","zip":"0768","sortLetters":"C","index":368},{"label":"呈贡Chenggong0871","name":"呈贡","pinyin":"Chenggong","zip":"0871","sortLetters":"C","index":369},{"label":"城口Chengkou023","name":"城口","pinyin":"Chengkou","zip":"023","sortLetters":"C","index":370},{"label":"成武Chengwu0530","name":"成武","pinyin":"Chengwu","zip":"0530","sortLetters":"C","index":371},{"label":"茌平Chiping0635","name":"茌平","pinyin":"Chiping","zip":"0635","sortLetters":"C","index":372},{"label":"崇仁Chongren0794","name":"崇仁","pinyin":"Chongren","zip":"0794","sortLetters":"C","index":373},{"label":"崇义Chongyi0797","name":"崇义","pinyin":"Chongyi","zip":"0797","sortLetters":"C","index":374},{"label":"崇州Chongzhou028","name":"崇州","pinyin":"Chongzhou","zip":"028","sortLetters":"C","index":375},{"label":"淳安Chunan0571","name":"淳安","pinyin":"Chunan","zip":"0571","sortLetters":"C","index":376},{"label":"慈溪Cixi0574","name":"慈溪","pinyin":"Cixi","zip":"0574","sortLetters":"C","index":377},{"label":"从化Conghua020","name":"从化","pinyin":"Conghua","zip":"020","sortLetters":"C","index":378},{"label":"枞阳Congyang0556","name":"枞阳","pinyin":"Congyang","zip":"0556","sortLetters":"C","index":379},{"label":"长春Changchun0431","name":"长春","pinyin":"Changchun","zip":"0431","sortLetters":"C","index":4},{"label":"重庆Chongqing023","name":"重庆","pinyin":"Chongqing","zip":"023","sortLetters":"C","index":1}]},{"sortLetters":"D","items":[{"label":"东莞Dongguan0769","name":"东莞","pinyin":"Dongguan","zip":"0769","sortLetters":"D","index":9},{"label":"丹东Dandong0415","name":"丹东","pinyin":"Dandong","zip":"0415","sortLetters":"D","index":99},{"label":"大庆Daqing0459","name":"大庆","pinyin":"Daqing","zip":"0459","sortLetters":"D","index":100},{"label":"大同Datong0352","name":"大同","pinyin":"Datong","zip":"0352","sortLetters":"D","index":101},{"label":"大兴安岭Daxinganling0457","name":"大兴安岭","pinyin":"Daxinganling","zip":"0457","sortLetters":"D","index":102},{"label":"达州Dazhou0818","name":"达州","pinyin":"Dazhou","zip":"0818","sortLetters":"D","index":103},{"label":"德宏Dehong0692","name":"德宏","pinyin":"Dehong","zip":"0692","sortLetters":"D","index":104},{"label":"德阳Deyang0838","name":"德阳","pinyin":"Deyang","zip":"0838","sortLetters":"D","index":105},{"label":"德州Dezhou0534","name":"德州","pinyin":"Dezhou","zip":"0534","sortLetters":"D","index":106},{"label":"定西Dingxi0932","name":"定西","pinyin":"Dingxi","zip":"0932","sortLetters":"D","index":107},{"label":"迪庆Diqing0887","name":"迪庆","pinyin":"Diqing","zip":"0887","sortLetters":"D","index":108},{"label":"东营Dongying0546","name":"东营","pinyin":"Dongying","zip":"0546","sortLetters":"D","index":109},{"label":"大连Dalian0411","name":"大连","pinyin":"Dalian","zip":"0411","sortLetters":"D","index":8},{"label":"大丰Dafeng0515","name":"大丰","pinyin":"Dafeng","zip":"0515","sortLetters":"D","index":380},{"label":"岱山Daishan0580","name":"岱山","pinyin":"Daishan","zip":"0580","sortLetters":"D","index":381},{"label":"砀山Dangshan0557","name":"砀山","pinyin":"Dangshan","zip":"0557","sortLetters":"D","index":382},{"label":"当涂Dangtu0555","name":"当涂","pinyin":"Dangtu","zip":"0555","sortLetters":"D","index":383},{"label":"单县Danxian0530","name":"单县","pinyin":"Danxian","zip":"0530","sortLetters":"D","index":384},{"label":"丹阳Danyang0511","name":"丹阳","pinyin":"Danyang","zip":"0511","sortLetters":"D","index":385},{"label":"大埔Dapu0753","name":"大埔","pinyin":"Dapu","zip":"0753","sortLetters":"D","index":386},{"label":"大田Datian0598","name":"大田","pinyin":"Datian","zip":"0598","sortLetters":"D","index":387},{"label":"大邑Dayi028","name":"大邑","pinyin":"Dayi","zip":"028","sortLetters":"D","index":388},{"label":"大余Dayu0797","name":"大余","pinyin":"Dayu","zip":"0797","sortLetters":"D","index":389},{"label":"大足Dazu023","name":"大足","pinyin":"Dazu","zip":"023","sortLetters":"D","index":390},{"label":"德安Dean0792","name":"德安","pinyin":"Dean","zip":"0792","sortLetters":"D","index":391},{"label":"德化Dehua0595","name":"德化","pinyin":"Dehua","zip":"0595","sortLetters":"D","index":392},{"label":"德惠Dehui0431","name":"德惠","pinyin":"Dehui","zip":"0431","sortLetters":"D","index":393},{"label":"登封Dengfeng0371","name":"登封","pinyin":"Dengfeng","zip":"0371","sortLetters":"D","index":394},{"label":"德清Deqing0572","name":"德清","pinyin":"Deqing","zip":"0572","sortLetters":"D","index":395},{"label":"德庆Deqing0758","name":"德庆","pinyin":"Deqing","zip":"0758","sortLetters":"D","index":396},{"label":"德兴Dexing0793","name":"德兴","pinyin":"Dexing","zip":"0793","sortLetters":"D","index":397},{"label":"电白Dianbai0668","name":"电白","pinyin":"Dianbai","zip":"0668","sortLetters":"D","index":398},{"label":"垫江Dianjiang023","name":"垫江","pinyin":"Dianjiang","zip":"023","sortLetters":"D","index":399},{"label":"定南Dingnan0797","name":"定南","pinyin":"Dingnan","zip":"0797","sortLetters":"D","index":400},{"label":"定陶Dingtao0530","name":"定陶","pinyin":"Dingtao","zip":"0530","sortLetters":"D","index":401},{"label":"定远Dingyuan0550","name":"定远","pinyin":"Dingyuan","zip":"0550","sortLetters":"D","index":402},{"label":"东阿Donga0635","name":"东阿","pinyin":"Donga","zip":"0635","sortLetters":"D","index":403},{"label":"东海Donghai0518","name":"东海","pinyin":"Donghai","zip":"0518","sortLetters":"D","index":404},{"label":"东明Dongming0530","name":"东明","pinyin":"Dongming","zip":"0530","sortLetters":"D","index":405},{"label":"东平Dongping0538","name":"东平","pinyin":"Dongping","zip":"0538","sortLetters":"D","index":406},{"label":"东山Dongshan0596","name":"东山","pinyin":"Dongshan","zip":"0596","sortLetters":"D","index":407},{"label":"东台Dongtai0515","name":"东台","pinyin":"Dongtai","zip":"0515","sortLetters":"D","index":408},{"label":"洞头Dongtou0577","name":"洞头","pinyin":"Dongtou","zip":"0577","sortLetters":"D","index":409},{"label":"东乡Dongxiang0794","name":"东乡","pinyin":"Dongxiang","zip":"0794","sortLetters":"D","index":410},{"label":"东阳Dongyang0579","name":"东阳","pinyin":"Dongyang","zip":"0579","sortLetters":"D","index":411},{"label":"东源Dongyuan0762","name":"东源","pinyin":"Dongyuan","zip":"0762","sortLetters":"D","index":412},{"label":"东至Dongzhi0566","name":"东至","pinyin":"Dongzhi","zip":"0566","sortLetters":"D","index":413},{"label":"都昌Duchang0792","name":"都昌","pinyin":"Duchang","zip":"0792","sortLetters":"D","index":414},{"label":"都江堰Dujiangyan028","name":"都江堰","pinyin":"Dujiangyan","zip":"028","sortLetters":"D","index":415},{"label":"大连Dalian0411","name":"大连","pinyin":"Dalian","zip":"0411","sortLetters":"D","index":8},{"label":"丹东Dandong0415","name":"丹东","pinyin":"Dandong","zip":"0415","sortLetters":"D","index":99}]},{"sortLetters":"E","items":[{"label":"鄂州Ezhou0711","name":"鄂州","pinyin":"Ezhou","zip":"0711","sortLetters":"E","index":112},{"label":"恩施Enshi0718","name":"恩施","pinyin":"Enshi","zip":"0718","sortLetters":"E","index":111},{"label":"恩平Enping0750","name":"恩平","pinyin":"Enping","zip":"0750","sortLetters":"E","index":416}]},{"sortLetters":"F","items":[{"label":"抚州Fuzhou0794","name":"抚州","pinyin":"Fuzhou","zip":"0794","sortLetters":"F","index":117},{"label":"福州Fuzhou0591","name":"福州","pinyin":"Fuzhou","zip":"0591","sortLetters":"F","index":11},{"label":"防城港Fangchenggang0770","name":"防城港","pinyin":"Fangchenggang","zip":"0770","sortLetters":"F","index":113},{"label":"抚顺Fushun0413","name":"抚顺","pinyin":"Fushun","zip":"0413","sortLetters":"F","index":114},{"label":"阜新Fuxin0418","name":"阜新","pinyin":"Fuxin","zip":"0418","sortLetters":"F","index":115},{"label":"阜阳Fuyang0558","name":"阜阳","pinyin":"Fuyang","zip":"0558","sortLetters":"F","index":116},{"label":"法库Faku024","name":"法库","pinyin":"Faku","zip":"024","sortLetters":"F","index":417},{"label":"繁昌Fanchang0553","name":"繁昌","pinyin":"Fanchang","zip":"0553","sortLetters":"F","index":418},{"label":"方正Fangzheng0451","name":"方正","pinyin":"Fangzheng","zip":"0451","sortLetters":"F","index":419},{"label":"肥城Feicheng0538","name":"肥城","pinyin":"Feicheng","zip":"0538","sortLetters":"F","index":420},{"label":"肥东Feidong0551","name":"肥东","pinyin":"Feidong","zip":"0551","sortLetters":"F","index":421},{"label":"肥西Feixi0551","name":"肥西","pinyin":"Feixi","zip":"0551","sortLetters":"F","index":422},{"label":"费县Feixian0539","name":"费县","pinyin":"Feixian","zip":"0539","sortLetters":"F","index":423},{"label":"丰城Fengcheng0795","name":"丰城","pinyin":"Fengcheng","zip":"0795","sortLetters":"F","index":424},{"label":"丰都Fengdu023","name":"丰都","pinyin":"Fengdu","zip":"023","sortLetters":"F","index":425},{"label":"奉化Fenghua0574","name":"奉化","pinyin":"Fenghua","zip":"0574","sortLetters":"F","index":426},{"label":"奉节Fengjie023","name":"奉节","pinyin":"Fengjie","zip":"023","sortLetters":"F","index":427},{"label":"封开Fengkai0758","name":"封开","pinyin":"Fengkai","zip":"0758","sortLetters":"F","index":428},{"label":"丰顺Fengshun0753","name":"丰顺","pinyin":"Fengshun","zip":"0753","sortLetters":"F","index":429},{"label":"凤台Fengtai0554","name":"凤台","pinyin":"Fengtai","zip":"0554","sortLetters":"F","index":430},{"label":"丰县Fengxian0516","name":"丰县","pinyin":"Fengxian","zip":"0516","sortLetters":"F","index":431},{"label":"奉新Fengxin0795","name":"奉新","pinyin":"Fengxin","zip":"0795","sortLetters":"F","index":432},{"label":"凤阳Fengyang0550","name":"凤阳","pinyin":"Fengyang","zip":"0550","sortLetters":"F","index":433},{"label":"分宜Fenyi0790","name":"分宜","pinyin":"Fenyi","zip":"0790","sortLetters":"F","index":434},{"label":"佛冈Fogang0763","name":"佛冈","pinyin":"Fogang","zip":"0763","sortLetters":"F","index":435},{"label":"福安Fuan0593","name":"福安","pinyin":"Fuan","zip":"0593","sortLetters":"F","index":436},{"label":"福鼎Fuding0593","name":"福鼎","pinyin":"Fuding","zip":"0593","sortLetters":"F","index":437},{"label":"浮梁Fuliang0798","name":"浮梁","pinyin":"Fuliang","zip":"0798","sortLetters":"F","index":438},{"label":"富民Fumin0871","name":"富民","pinyin":"Fumin","zip":"0871","sortLetters":"F","index":439},{"label":"阜南Funan0558","name":"阜南","pinyin":"Funan","zip":"0558","sortLetters":"F","index":440},{"label":"阜宁Funing0515","name":"阜宁","pinyin":"Funing","zip":"0515","sortLetters":"F","index":441},{"label":"福清Fuqing0591","name":"福清","pinyin":"Fuqing","zip":"0591","sortLetters":"F","index":442},{"label":"富阳Fuyang0571","name":"富阳","pinyin":"Fuyang","zip":"0571","sortLetters":"F","index":443},{"label":"福州Fuzhou0591","name":"福州","pinyin":"Fuzhou","zip":"0591","sortLetters":"F","index":11}]},{"sortLetters":"G","items":[{"label":"广安Guangan0826","name":"广安","pinyin":"Guangan","zip":"0826","sortLetters":"G","index":121},{"label":"广元Guangyuan0839","name":"广元","pinyin":"Guangyuan","zip":"0839","sortLetters":"G","index":122},{"label":"贵港Guigang0775","name":"贵港","pinyin":"Guigang","zip":"0775","sortLetters":"G","index":123},{"label":"桂林Guilin0773","name":"桂林","pinyin":"Guilin","zip":"0773","sortLetters":"G","index":124},{"label":"果洛Guoluo0975","name":"果洛","pinyin":"Guoluo","zip":"0975","sortLetters":"G","index":125},{"label":"固原Guyuan0954","name":"固原","pinyin":"Guyuan","zip":"0954","sortLetters":"G","index":126},{"label":"赣州Ganzhou0797","name":"赣州","pinyin":"Ganzhou","zip":"0797","sortLetters":"G","index":119},{"label":"广州Guangzhou020","name":"广州","pinyin":"Guangzhou","zip":"020","sortLetters":"G","index":12},{"label":"贵阳Guiyang0851","name":"贵阳","pinyin":"Guiyang","zip":"0851","sortLetters":"G","index":13},{"label":"甘孜Ganzi0836","name":"甘孜","pinyin":"Ganzi","zip":"0836","sortLetters":"G","index":120},{"label":"赣县Ganxian0797","name":"赣县","pinyin":"Ganxian","zip":"0797","sortLetters":"G","index":444},{"label":"赣榆Ganyu0518","name":"赣榆","pinyin":"Ganyu","zip":"0518","sortLetters":"G","index":445},{"label":"高安Gaoan0795","name":"高安","pinyin":"Gaoan","zip":"0795","sortLetters":"G","index":446},{"label":"藁城Gaocheng0311","name":"藁城","pinyin":"Gaocheng","zip":"0311","sortLetters":"G","index":447},{"label":"高淳Gaochun025","name":"高淳","pinyin":"Gaochun","zip":"025","sortLetters":"G","index":448},{"label":"皋兰Gaolan0931","name":"皋兰","pinyin":"Gaolan","zip":"0931","sortLetters":"G","index":449},{"label":"高陵Gaoling029","name":"高陵","pinyin":"Gaoling","zip":"029","sortLetters":"G","index":450},{"label":"高密Gaomi0536","name":"高密","pinyin":"Gaomi","zip":"0536","sortLetters":"G","index":451},{"label":"高青Gaoqing0533","name":"高青","pinyin":"Gaoqing","zip":"0533","sortLetters":"G","index":452},{"label":"高唐Gaotang0635","name":"高唐","pinyin":"Gaotang","zip":"0635","sortLetters":"G","index":453},{"label":"高要Gaoyao0758","name":"高要","pinyin":"Gaoyao","zip":"0758","sortLetters":"G","index":454},{"label":"高邑Gaoyi0311","name":"高邑","pinyin":"Gaoyi","zip":"0311","sortLetters":"G","index":455},{"label":"高邮Gaoyou0514","name":"高邮","pinyin":"Gaoyou","zip":"0514","sortLetters":"G","index":456},{"label":"高州Gaozhou0668","name":"高州","pinyin":"Gaozhou","zip":"0668","sortLetters":"G","index":457},{"label":"巩义Gongyi0371","name":"巩义","pinyin":"Gongyi","zip":"0371","sortLetters":"G","index":458},{"label":"广昌Guangchang0794","name":"广昌","pinyin":"Guangchang","zip":"0794","sortLetters":"G","index":459},{"label":"广德Guangde0563","name":"广德","pinyin":"Guangde","zip":"0563","sortLetters":"G","index":460},{"label":"广丰Guangfeng0793","name":"广丰","pinyin":"Guangfeng","zip":"0793","sortLetters":"G","index":461},{"label":"广宁Guangning0758","name":"广宁","pinyin":"Guangning","zip":"0758","sortLetters":"G","index":462},{"label":"广饶Guangrao0546","name":"广饶","pinyin":"Guangrao","zip":"0546","sortLetters":"G","index":463},{"label":"光泽Guangze0599","name":"光泽","pinyin":"Guangze","zip":"0599","sortLetters":"G","index":464},{"label":"灌南Guannan0518","name":"灌南","pinyin":"Guannan","zip":"0518","sortLetters":"G","index":465},{"label":"冠县Guanxian0635","name":"冠县","pinyin":"Guanxian","zip":"0635","sortLetters":"G","index":466},{"label":"灌云Guanyun0518","name":"灌云","pinyin":"Guanyun","zip":"0518","sortLetters":"G","index":467},{"label":"贵溪Guixi0701","name":"贵溪","pinyin":"Guixi","zip":"0701","sortLetters":"G","index":468},{"label":"古田Gutian0593","name":"古田","pinyin":"Gutian","zip":"0593","sortLetters":"G","index":469},{"label":"固镇Guzhen0552","name":"固镇","pinyin":"Guzhen","zip":"0552","sortLetters":"G","index":470}]},{"sortLetters":"H","items":[{"label":"哈尔滨Haerbin0451","name":"哈尔滨","pinyin":"Haerbin","zip":"0451","sortLetters":"H","index":14},{"label":"海口Haikou0898","name":"海口","pinyin":"Haikou","zip":"0898","sortLetters":"H","index":15},{"label":"邯郸Handan0310","name":"邯郸","pinyin":"Handan","zip":"0310","sortLetters":"H","index":16},{"label":"杭州Hangzhou0571","name":"杭州","pinyin":"Hangzhou","zip":"0571","sortLetters":"H","index":17},{"label":"合肥Hefei0551","name":"合肥","pinyin":"Hefei","zip":"0551","sortLetters":"H","index":18},{"label":"海北Haibei0970","name":"海北","pinyin":"Haibei","zip":"0970","sortLetters":"H","index":127},{"label":"海东Haidong0972","name":"海东","pinyin":"Haidong","zip":"0972","sortLetters":"H","index":128},{"label":"海南Hainan0974","name":"海南","pinyin":"Hainan","zip":"0974","sortLetters":"H","index":129},{"label":"海西Haixi0977","name":"海西","pinyin":"Haixi","zip":"0977","sortLetters":"H","index":130},{"label":"哈密Hami0902","name":"哈密","pinyin":"Hami","zip":"0902","sortLetters":"H","index":131},{"label":"汉中Hanzhong0916","name":"汉中","pinyin":"Hanzhong","zip":"0916","sortLetters":"H","index":132},{"label":"鹤壁Hebi0392","name":"鹤壁","pinyin":"Hebi","zip":"0392","sortLetters":"H","index":133},{"label":"河池Hechi0778","name":"河池","pinyin":"Hechi","zip":"0778","sortLetters":"H","index":134},{"label":"鹤岗Hegang0468","name":"鹤岗","pinyin":"Hegang","zip":"0468","sortLetters":"H","index":135},{"label":"黑河Heihe0456","name":"黑河","pinyin":"Heihe","zip":"0456","sortLetters":"H","index":136},{"label":"衡水Hengshui0318","name":"衡水","pinyin":"Hengshui","zip":"0318","sortLetters":"H","index":137},{"label":"衡阳Hengyang0734","name":"衡阳","pinyin":"Hengyang","zip":"0734","sortLetters":"H","index":138},{"label":"和田地Hetiandi0903","name":"和田地","pinyin":"Hetiandi","zip":"0903","sortLetters":"H","index":139},{"label":"河源Heyuan0762","name":"河源","pinyin":"Heyuan","zip":"0762","sortLetters":"H","index":140},{"label":"菏泽Heze0530","name":"菏泽","pinyin":"Heze","zip":"0530","sortLetters":"H","index":141},{"label":"贺州Hezhou0774","name":"贺州","pinyin":"Hezhou","zip":"0774","sortLetters":"H","index":142},{"label":"红河Honghe0873","name":"红河","pinyin":"Honghe","zip":"0873","sortLetters":"H","index":143},{"label":"淮安Huaian0517","name":"淮安","pinyin":"Huaian","zip":"0517","sortLetters":"H","index":144},{"label":"淮北Huaibei0561","name":"淮北","pinyin":"Huaibei","zip":"0561","sortLetters":"H","index":145},{"label":"怀化Huaihua0745","name":"怀化","pinyin":"Huaihua","zip":"0745","sortLetters":"H","index":146},{"label":"淮南Huainan0554","name":"淮南","pinyin":"Huainan","zip":"0554","sortLetters":"H","index":147},{"label":"黄冈Huanggang0713","name":"黄冈","pinyin":"Huanggang","zip":"0713","sortLetters":"H","index":148},{"label":"黄南Huangnan0973","name":"黄南","pinyin":"Huangnan","zip":"0973","sortLetters":"H","index":149},{"label":"黄山Huangshan0559","name":"黄山","pinyin":"Huangshan","zip":"0559","sortLetters":"H","index":150},{"label":"黄石Huangshi0714","name":"黄石","pinyin":"Huangshi","zip":"0714","sortLetters":"H","index":151},{"label":"呼和浩特Huhehaote0471","name":"呼和浩特","pinyin":"Huhehaote","zip":"0471","sortLetters":"H","index":152},{"label":"葫芦岛Huludao0429","name":"葫芦岛","pinyin":"Huludao","zip":"0429","sortLetters":"H","index":153},{"label":"呼伦贝尔Hulunbeier0470","name":"呼伦贝尔","pinyin":"Hulunbeier","zip":"0470","sortLetters":"H","index":154},{"label":"湖州Huzhou0572","name":"湖州","pinyin":"Huzhou","zip":"0572","sortLetters":"H","index":155},{"label":"海安Haian0513","name":"海安","pinyin":"Haian","zip":"0513","sortLetters":"H","index":471},{"label":"海丰Haifeng0660","name":"海丰","pinyin":"Haifeng","zip":"0660","sortLetters":"H","index":472},{"label":"海门Haimen0513","name":"海门","pinyin":"Haimen","zip":"0513","sortLetters":"H","index":473},{"label":"海宁Haining0573","name":"海宁","pinyin":"Haining","zip":"0573","sortLetters":"H","index":474},{"label":"海盐Haiyan0573","name":"海盐","pinyin":"Haiyan","zip":"0573","sortLetters":"H","index":475},{"label":"海阳Haiyang0535","name":"海阳","pinyin":"Haiyang","zip":"0535","sortLetters":"H","index":476},{"label":"含山Hanshan0565","name":"含山","pinyin":"Hanshan","zip":"0565","sortLetters":"H","index":477},{"label":"合川Hechuan023","name":"合川","pinyin":"Hechuan","zip":"023","sortLetters":"H","index":478},{"label":"横峰Hengfeng0793","name":"横峰","pinyin":"Hengfeng","zip":"0793","sortLetters":"H","index":479},{"label":"横县Hengxian0771","name":"横县","pinyin":"Hengxian","zip":"0771","sortLetters":"H","index":480},{"label":"和平Heping0762","name":"和平","pinyin":"Heping","zip":"0762","sortLetters":"H","index":481},{"label":"鹤山Heshan0750","name":"鹤山","pinyin":"Heshan","zip":"0750","sortLetters":"H","index":482},{"label":"和县Hexian0565","name":"和县","pinyin":"Hexian","zip":"0565","sortLetters":"H","index":483},{"label":"洪泽Hongze0517","name":"洪泽","pinyin":"Hongze","zip":"0517","sortLetters":"H","index":484},{"label":"华安Huaan0596","name":"华安","pinyin":"Huaan","zip":"0596","sortLetters":"H","index":485},{"label":"桦甸Huadian0423","name":"桦甸","pinyin":"Huadian","zip":"0423","sortLetters":"H","index":486},{"label":"怀集Huaiji0758","name":"怀集","pinyin":"Huaiji","zip":"0758","sortLetters":"H","index":487},{"label":"怀宁Huaining0556","name":"怀宁","pinyin":"Huaining","zip":"0556","sortLetters":"H","index":488},{"label":"怀远Huaiyuan0552","name":"怀远","pinyin":"Huaiyuan","zip":"0552","sortLetters":"H","index":489},{"label":"桓台Huantai0533","name":"桓台","pinyin":"Huantai","zip":"0533","sortLetters":"H","index":490},{"label":"化州Huazhou0668","name":"化州","pinyin":"Huazhou","zip":"0668","sortLetters":"H","index":491},{"label":"惠安Huian0595","name":"惠安","pinyin":"Huian","zip":"0595","sortLetters":"H","index":492},{"label":"会昌Huichang0797","name":"会昌","pinyin":"Huichang","zip":"0797","sortLetters":"H","index":493},{"label":"惠东Huidong0752","name":"惠东","pinyin":"Huidong","zip":"0752","sortLetters":"H","index":494},{"label":"惠来Huilai0663","name":"惠来","pinyin":"Huilai","zip":"0663","sortLetters":"H","index":495},{"label":"惠民Huimin0543","name":"惠民","pinyin":"Huimin","zip":"0543","sortLetters":"H","index":496},{"label":"湖口Hukou0792","name":"湖口","pinyin":"Hukou","zip":"0792","sortLetters":"H","index":497},{"label":"呼兰Hulan0451","name":"呼兰","pinyin":"Hulan","zip":"0451","sortLetters":"H","index":498},{"label":"霍邱Huoqiu0564","name":"霍邱","pinyin":"Huoqiu","zip":"0564","sortLetters":"H","index":499},{"label":"霍山Huoshan0564","name":"霍山","pinyin":"Huoshan","zip":"0564","sortLetters":"H","index":500},{"label":"户县Huxian029","name":"户县","pinyin":"Huxian","zip":"029","sortLetters":"H","index":501},{"label":"哈尔滨Haerbin0451","name":"哈尔滨","pinyin":"Haerbin","zip":"0451","sortLetters":"H","index":14}]},{"sortLetters":"J","items":[{"label":"嘉兴Jiaxing0573","name":"嘉兴","pinyin":"Jiaxing","zip":"0573","sortLetters":"J","index":21},{"label":"吉林Jilin0423","name":"吉林","pinyin":"Jilin","zip":"0423","sortLetters":"J","index":22},{"label":"济南Jinan0531","name":"济南","pinyin":"Jinan","zip":"0531","sortLetters":"J","index":23},{"label":"佳木斯Jiamusi0454","name":"佳木斯","pinyin":"Jiamusi","zip":"0454","sortLetters":"J","index":156},{"label":"江门Jiangmen0750","name":"江门","pinyin":"Jiangmen","zip":"0750","sortLetters":"J","index":157},{"label":"吉安Jian0796","name":"吉安","pinyin":"Jian","zip":"0796","sortLetters":"J","index":158},{"label":"嘉峪关Jiayuguan0937","name":"嘉峪关","pinyin":"Jiayuguan","zip":"0937","sortLetters":"J","index":159},{"label":"揭阳Jieyang0663","name":"揭阳","pinyin":"Jieyang","zip":"0663","sortLetters":"J","index":160},{"label":"金昌Jinchang0935","name":"金昌","pinyin":"Jinchang","zip":"0935","sortLetters":"J","index":161},{"label":"晋城Jincheng0356","name":"晋城","pinyin":"Jincheng","zip":"0356","sortLetters":"J","index":162},{"label":"景德镇Jingdezhen0798","name":"景德镇","pinyin":"Jingdezhen","zip":"0798","sortLetters":"J","index":163},{"label":"荆门Jingmen0724","name":"荆门","pinyin":"Jingmen","zip":"0724","sortLetters":"J","index":164},{"label":"荆州Jingzhou0716","name":"荆州","pinyin":"Jingzhou","zip":"0716","sortLetters":"J","index":165},{"label":"金华Jinhua0579","name":"金华","pinyin":"Jinhua","zip":"0579","sortLetters":"J","index":166},{"label":"济宁Jining0537","name":"济宁","pinyin":"Jining","zip":"0537","sortLetters":"J","index":167},{"label":"晋中Jinzhong0354","name":"晋中","pinyin":"Jinzhong","zip":"0354","sortLetters":"J","index":168},{"label":"锦州Jinzhou0416","name":"锦州","pinyin":"Jinzhou","zip":"0416","sortLetters":"J","index":169},{"label":"九江Jiujiang0792","name":"九江","pinyin":"Jiujiang","zip":"0792","sortLetters":"J","index":170},{"label":"酒泉Jiuquan0937","name":"酒泉","pinyin":"Jiuquan","zip":"0937","sortLetters":"J","index":171},{"label":"鸡西Jixi0467","name":"鸡西","pinyin":"Jixi","zip":"0467","sortLetters":"J","index":172},{"label":"建德Jiande0571","name":"建德","pinyin":"Jiande","zip":"0571","sortLetters":"J","index":502},{"label":"江都Jiangdu0514","name":"江都","pinyin":"Jiangdu","zip":"0514","sortLetters":"J","index":503},{"label":"江津Jiangjin023","name":"江津","pinyin":"Jiangjin","zip":"023","sortLetters":"J","index":504},{"label":"将乐Jiangle0598","name":"将乐","pinyin":"Jiangle","zip":"0598","sortLetters":"J","index":505},{"label":"江山Jiangshan0570","name":"江山","pinyin":"Jiangshan","zip":"0570","sortLetters":"J","index":506},{"label":"姜堰Jiangyan0523","name":"姜堰","pinyin":"Jiangyan","zip":"0523","sortLetters":"J","index":507},{"label":"江阴Jiangyin0510","name":"江阴","pinyin":"Jiangyin","zip":"0510","sortLetters":"J","index":508},{"label":"建湖Jianhu0515","name":"建湖","pinyin":"Jianhu","zip":"0515","sortLetters":"J","index":509},{"label":"建宁Jianning0598","name":"建宁","pinyin":"Jianning","zip":"0598","sortLetters":"J","index":510},{"label":"建瓯Jianou0599","name":"建瓯","pinyin":"Jianou","zip":"0599","sortLetters":"J","index":511},{"label":"建阳Jianyang0599","name":"建阳","pinyin":"Jianyang","zip":"0599","sortLetters":"J","index":512},{"label":"吉安Jian0796","name":"吉安","pinyin":"Jian","zip":"0796","sortLetters":"J","index":513},{"label":"蛟河Jiaohe0423","name":"蛟河","pinyin":"Jiaohe","zip":"0423","sortLetters":"J","index":514},{"label":"蕉岭Jiaoling0753","name":"蕉岭","pinyin":"Jiaoling","zip":"0753","sortLetters":"J","index":515},{"label":"胶南Jiaonan0532","name":"胶南","pinyin":"Jiaonan","zip":"0532","sortLetters":"J","index":516},{"label":"胶州Jiaozhou0532","name":"胶州","pinyin":"Jiaozhou","zip":"0532","sortLetters":"J","index":517},{"label":"嘉善Jiashan0573","name":"嘉善","pinyin":"Jiashan","zip":"0573","sortLetters":"J","index":518},{"label":"嘉祥Jiaxiang0537","name":"嘉祥","pinyin":"Jiaxiang","zip":"0537","sortLetters":"J","index":519},{"label":"揭东Jiedong0663","name":"揭东","pinyin":"Jiedong","zip":"0663","sortLetters":"J","index":520},{"label":"界首Jieshou0558","name":"界首","pinyin":"Jieshou","zip":"0558","sortLetters":"J","index":521},{"label":"揭西Jiexi0663","name":"揭西","pinyin":"Jiexi","zip":"0663","sortLetters":"J","index":522},{"label":"即墨Jimo0532","name":"即墨","pinyin":"Jimo","zip":"0532","sortLetters":"J","index":523},{"label":"靖安Jingan0795","name":"靖安","pinyin":"Jingan","zip":"0795","sortLetters":"J","index":524},{"label":"旌德Jingde0563","name":"旌德","pinyin":"Jingde","zip":"0563","sortLetters":"J","index":525},{"label":"井冈山Jinggangshan0796","name":"井冈山","pinyin":"Jinggangshan","zip":"0796","sortLetters":"J","index":526},{"label":"靖江Jingjiang0523","name":"靖江","pinyin":"Jingjiang","zip":"0523","sortLetters":"J","index":527},{"label":"景宁Jingning0578","name":"景宁","pinyin":"Jingning","zip":"0578","sortLetters":"J","index":528},{"label":"泾县Jingxian0563","name":"泾县","pinyin":"Jingxian","zip":"0563","sortLetters":"J","index":529},{"label":"井陉Jingxing0311","name":"井陉","pinyin":"Jingxing","zip":"0311","sortLetters":"J","index":530},{"label":"金湖Jinhu0517","name":"金湖","pinyin":"Jinhu","zip":"0517","sortLetters":"J","index":531},{"label":"晋江Jinjiang0595","name":"晋江","pinyin":"Jinjiang","zip":"0595","sortLetters":"J","index":532},{"label":"金门Jinmen0595","name":"金门","pinyin":"Jinmen","zip":"0595","sortLetters":"J","index":533},{"label":"晋宁Jinning0871","name":"晋宁","pinyin":"Jinning","zip":"0871","sortLetters":"J","index":534},{"label":"金坛Jintan0519","name":"金坛","pinyin":"Jintan","zip":"0519","sortLetters":"J","index":535},{"label":"金堂Jintang028","name":"金堂","pinyin":"Jintang","zip":"028","sortLetters":"J","index":536},{"label":"进贤Jinxian0791","name":"进贤","pinyin":"Jinxian","zip":"0791","sortLetters":"J","index":537},{"label":"金溪Jinxi0794","name":"金溪","pinyin":"Jinxi","zip":"0794","sortLetters":"J","index":538},{"label":"金乡Jinxiang0537","name":"金乡","pinyin":"Jinxiang","zip":"0537","sortLetters":"J","index":539},{"label":"缙云Jinyun0578","name":"缙云","pinyin":"Jinyun","zip":"0578","sortLetters":"J","index":540},{"label":"金寨Jinzhai0564","name":"金寨","pinyin":"Jinzhai","zip":"0564","sortLetters":"J","index":541},{"label":"晋州Jinzhou0311","name":"晋州","pinyin":"Jinzhou","zip":"0311","sortLetters":"J","index":542},{"label":"吉水Jishui0796","name":"吉水","pinyin":"Jishui","zip":"0796","sortLetters":"J","index":543},{"label":"九江Jiujiang0792","name":"九江","pinyin":"Jiujiang","zip":"0792","sortLetters":"J","index":544},{"label":"九台Jiutai0431","name":"九台","pinyin":"Jiutai","zip":"0431","sortLetters":"J","index":545},{"label":"绩溪Jixi0563","name":"绩溪","pinyin":"Jixi","zip":"0563","sortLetters":"J","index":546},{"label":"济阳Jiyang0531","name":"济阳","pinyin":"Jiyang","zip":"0531","sortLetters":"J","index":547},{"label":"济源Jiyuan0391","name":"济源","pinyin":"Jiyuan","zip":"0391","sortLetters":"J","index":548},{"label":"鄄城Juancheng0530","name":"鄄城","pinyin":"Juancheng","zip":"0530","sortLetters":"J","index":549},{"label":"莒南Junan0539","name":"莒南","pinyin":"Junan","zip":"0539","sortLetters":"J","index":550},{"label":"句容Jurong0511","name":"句容","pinyin":"Jurong","zip":"0511","sortLetters":"J","index":551},{"label":"莒县Juxian0633","name":"莒县","pinyin":"Juxian","zip":"0633","sortLetters":"J","index":552},{"label":"巨野Juye0530","name":"巨野","pinyin":"Juye","zip":"0530","sortLetters":"J","index":553},{"label":"嘉兴Jiaxing0573","name":"嘉兴","pinyin":"Jiaxing","zip":"0573","sortLetters":"J","index":21},{"label":"焦作Jiaozuo0391","name":"焦作","pinyin":"Jiaozuo","zip":"0391","sortLetters":"J","index":20}]},{"sortLetters":"K","items":[{"label":"克孜勒Kezile0908","name":"克孜勒","pinyin":"Kezile","zip":"0908","sortLetters":"K","index":176},{"label":"昆明Kunming0871","name":"昆明","pinyin":"Kunming","zip":"0871","sortLetters":"K","index":24},{"label":"开封Kaifeng0378","name":"开封","pinyin":"Kaifeng","zip":"0378","sortLetters":"K","index":173},{"label":"喀什地Kashidi0998","name":"喀什地","pinyin":"Kashidi","zip":"0998","sortLetters":"K","index":174},{"label":"开化Kaihua0570","name":"开化","pinyin":"Kaihua","zip":"0570","sortLetters":"K","index":554},{"label":"开平Kaiping0750","name":"开平","pinyin":"Kaiping","zip":"0750","sortLetters":"K","index":555},{"label":"开县Kaixian023","name":"开县","pinyin":"Kaixian","zip":"023","sortLetters":"K","index":556},{"label":"开阳Kaiyang0851","name":"开阳","pinyin":"Kaiyang","zip":"0851","sortLetters":"K","index":557},{"label":"康平Kangping024","name":"康平","pinyin":"Kangping","zip":"024","sortLetters":"K","index":558},{"label":"垦利Kenli0546","name":"垦利","pinyin":"Kenli","zip":"0546","sortLetters":"K","index":559},{"label":"昆山Kunshan0512","name":"昆山","pinyin":"Kunshan","zip":"0512","sortLetters":"K","index":560},{"label":"克孜勒Kezile0908","name":"克孜勒","pinyin":"Kezile","zip":"0908","sortLetters":"K","index":176}]},{"sortLetters":"L","items":[{"label":"柳州Liuzhou0772","name":"柳州","pinyin":"Liuzhou","zip":"0772","sortLetters":"L","index":26},{"label":"洛阳Luoyang0379","name":"洛阳","pinyin":"Luoyang","zip":"0379","sortLetters":"L","index":27},{"label":"漯河Luohe0395","name":"漯河","pinyin":"Luohe","zip":"0395","sortLetters":"L","index":199},{"label":"来宾Laibin0772","name":"来宾","pinyin":"Laibin","zip":"0772","sortLetters":"L","index":177},{"label":"莱芜Laiwu0634","name":"莱芜","pinyin":"Laiwu","zip":"0634","sortLetters":"L","index":178},{"label":"泸州Luzhou0830","name":"泸州","pinyin":"Luzhou","zip":"0830","sortLetters":"L","index":200},{"label":"兰州Lanzhou0931","name":"兰州","pinyin":"Lanzhou","zip":"0931","sortLetters":"L","index":25},{"label":"廊坊Langfang0316","name":"廊坊","pinyin":"Langfang","zip":"0316","sortLetters":"L","index":179},{"label":"拉萨Lasa0891","name":"拉萨","pinyin":"Lasa","zip":"0891","sortLetters":"L","index":180},{"label":"乐山Leshan0833","name":"乐山","pinyin":"Leshan","zip":"0833","sortLetters":"L","index":181},{"label":"凉山Liangshan0834","name":"凉山","pinyin":"Liangshan","zip":"0834","sortLetters":"L","index":182},{"label":"连云港Lianyungang0518","name":"连云港","pinyin":"Lianyungang","zip":"0518","sortLetters":"L","index":183},{"label":"聊城Liaocheng0635","name":"聊城","pinyin":"Liaocheng","zip":"0635","sortLetters":"L","index":184},{"label":"辽阳Liaoyang0419","name":"辽阳","pinyin":"Liaoyang","zip":"0419","sortLetters":"L","index":185},{"label":"辽源Liaoyuan0437","name":"辽源","pinyin":"Liaoyuan","zip":"0437","sortLetters":"L","index":186},{"label":"丽江Lijiang0888","name":"丽江","pinyin":"Lijiang","zip":"0888","sortLetters":"L","index":187},{"label":"临沧Lincang0883","name":"临沧","pinyin":"Lincang","zip":"0883","sortLetters":"L","index":188},{"label":"临汾Linfen0357","name":"临汾","pinyin":"Linfen","zip":"0357","sortLetters":"L","index":189},{"label":"临夏Linxia0930","name":"临夏","pinyin":"Linxia","zip":"0930","sortLetters":"L","index":190},{"label":"临沂Linyi0539","name":"临沂","pinyin":"Linyi","zip":"0539","sortLetters":"L","index":191},{"label":"林芝Linzhi0894","name":"林芝","pinyin":"Linzhi","zip":"0894","sortLetters":"L","index":192},{"label":"丽水Lishui0578","name":"丽水","pinyin":"Lishui","zip":"0578","sortLetters":"L","index":193},{"label":"六安Liuan0564","name":"六安","pinyin":"Liuan","zip":"0564","sortLetters":"L","index":194},{"label":"六盘水Liupanshui0858","name":"六盘水","pinyin":"Liupanshui","zip":"0858","sortLetters":"L","index":195},{"label":"吕梁Lvliang0358","name":"吕梁","pinyin":"Lvliang","zip":"0358","sortLetters":"L","index":201},{"label":"陇南Longnan0939","name":"陇南","pinyin":"Longnan","zip":"0939","sortLetters":"L","index":196},{"label":"龙岩Longyan0597","name":"龙岩","pinyin":"Longyan","zip":"0597","sortLetters":"L","index":197},{"label":"来安Laian0550","name":"来安","pinyin":"Laian","zip":"0550","sortLetters":"L","index":561},{"label":"莱西Laixi0532","name":"莱西","pinyin":"Laixi","zip":"0532","sortLetters":"L","index":562},{"label":"莱阳Laiyang0535","name":"莱阳","pinyin":"Laiyang","zip":"0535","sortLetters":"L","index":563},{"label":"莱州Laizhou0535","name":"莱州","pinyin":"Laizhou","zip":"0535","sortLetters":"L","index":564},{"label":"郎溪Langxi0563","name":"郎溪","pinyin":"Langxi","zip":"0563","sortLetters":"L","index":565},{"label":"蓝田Lantian029","name":"蓝田","pinyin":"Lantian","zip":"029","sortLetters":"L","index":566},{"label":"兰溪Lanxi0579","name":"兰溪","pinyin":"Lanxi","zip":"0579","sortLetters":"L","index":567},{"label":"乐安Lean0794","name":"乐安","pinyin":"Lean","zip":"0794","sortLetters":"L","index":568},{"label":"乐昌Lechang0751","name":"乐昌","pinyin":"Lechang","zip":"0751","sortLetters":"L","index":569},{"label":"雷州Leizhou0759","name":"雷州","pinyin":"Leizhou","zip":"0759","sortLetters":"L","index":570},{"label":"乐陵Leling0534","name":"乐陵","pinyin":"Leling","zip":"0534","sortLetters":"L","index":571},{"label":"乐平Leping0798","name":"乐平","pinyin":"Leping","zip":"0798","sortLetters":"L","index":572},{"label":"乐清Leqing0577","name":"乐清","pinyin":"Leqing","zip":"0577","sortLetters":"L","index":573},{"label":"乐亭Leting0315","name":"乐亭","pinyin":"Leting","zip":"0315","sortLetters":"L","index":574},{"label":"连城Liancheng0597","name":"连城","pinyin":"Liancheng","zip":"0597","sortLetters":"L","index":575},{"label":"梁平Liangping023","name":"梁平","pinyin":"Liangping","zip":"023","sortLetters":"L","index":576},{"label":"梁山Liangshan0537","name":"梁山","pinyin":"Liangshan","zip":"0537","sortLetters":"L","index":577},{"label":"莲花Lianhua0799","name":"莲花","pinyin":"Lianhua","zip":"0799","sortLetters":"L","index":578},{"label":"连江Lianjiang0591","name":"连江","pinyin":"Lianjiang","zip":"0591","sortLetters":"L","index":579},{"label":"廉江Lianjiang0759","name":"廉江","pinyin":"Lianjiang","zip":"0759","sortLetters":"L","index":580},{"label":"连南Liannan0763","name":"连南","pinyin":"Liannan","zip":"0763","sortLetters":"L","index":581},{"label":"连平Lianping0762","name":"连平","pinyin":"Lianping","zip":"0762","sortLetters":"L","index":582},{"label":"连山Lianshan0763","name":"连山","pinyin":"Lianshan","zip":"0763","sortLetters":"L","index":583},{"label":"涟水Lianshui0517","name":"涟水","pinyin":"Lianshui","zip":"0517","sortLetters":"L","index":584},{"label":"连州Lianzhou0763","name":"连州","pinyin":"Lianzhou","zip":"0763","sortLetters":"L","index":585},{"label":"辽中Liaozhong024","name":"辽中","pinyin":"Liaozhong","zip":"024","sortLetters":"L","index":586},{"label":"黎川Lichuan0794","name":"黎川","pinyin":"Lichuan","zip":"0794","sortLetters":"L","index":587},{"label":"利津Lijin0546","name":"利津","pinyin":"Lijin","zip":"0546","sortLetters":"L","index":588},{"label":"临安Linan0571","name":"临安","pinyin":"Linan","zip":"0571","sortLetters":"L","index":589},{"label":"灵璧Lingbi0557","name":"灵璧","pinyin":"Lingbi","zip":"0557","sortLetters":"L","index":590},{"label":"灵寿Lingshou0311","name":"灵寿","pinyin":"Lingshou","zip":"0311","sortLetters":"L","index":591},{"label":"陵县Lingxian0534","name":"陵县","pinyin":"Lingxian","zip":"0534","sortLetters":"L","index":592},{"label":"临海Linhai0576","name":"临海","pinyin":"Linhai","zip":"0576","sortLetters":"L","index":593},{"label":"临清Linqing0635","name":"临清","pinyin":"Linqing","zip":"0635","sortLetters":"L","index":594},{"label":"临泉Linquan0558","name":"临泉","pinyin":"Linquan","zip":"0558","sortLetters":"L","index":595},{"label":"临朐Linqu0536","name":"临朐","pinyin":"Linqu","zip":"0536","sortLetters":"L","index":596},{"label":"临沭Linshu0539","name":"临沭","pinyin":"Linshu","zip":"0539","sortLetters":"L","index":597},{"label":"临邑Linyi0534","name":"临邑","pinyin":"Linyi","zip":"0534","sortLetters":"L","index":598},{"label":"溧水Lishui025","name":"溧水","pinyin":"Lishui","zip":"025","sortLetters":"L","index":599},{"label":"柳城Liucheng0772","name":"柳城","pinyin":"Liucheng","zip":"0772","sortLetters":"L","index":600},{"label":"柳江Liujiang0772","name":"柳江","pinyin":"Liujiang","zip":"0772","sortLetters":"L","index":601},{"label":"浏阳Liuyang0731","name":"浏阳","pinyin":"Liuyang","zip":"0731","sortLetters":"L","index":602},{"label":"利辛Lixin0558","name":"利辛","pinyin":"Lixin","zip":"0558","sortLetters":"L","index":603},{"label":"溧阳Liyang0519","name":"溧阳","pinyin":"Liyang","zip":"0519","sortLetters":"L","index":604},{"label":"隆安Longan0771","name":"隆安","pinyin":"Longan","zip":"0771","sortLetters":"L","index":605},{"label":"龙川Longchuan0762","name":"龙川","pinyin":"Longchuan","zip":"0762","sortLetters":"L","index":606},{"label":"龙海Longhai0596","name":"龙海","pinyin":"Longhai","zip":"0596","sortLetters":"L","index":607},{"label":"龙口Longkou0535","name":"龙口","pinyin":"Longkou","zip":"0535","sortLetters":"L","index":608},{"label":"龙门Longmen0752","name":"龙门","pinyin":"Longmen","zip":"0752","sortLetters":"L","index":609},{"label":"龙南Longnan0797","name":"龙南","pinyin":"Longnan","zip":"0797","sortLetters":"L","index":610},{"label":"龙泉Longquan0578","name":"龙泉","pinyin":"Longquan","zip":"0578","sortLetters":"L","index":611},{"label":"龙游Longyou0570","name":"龙游","pinyin":"Longyou","zip":"0570","sortLetters":"L","index":612},{"label":"栾城Luancheng0311","name":"栾城","pinyin":"Luancheng","zip":"0311","sortLetters":"L","index":613},{"label":"栾川Luanchuan0379","name":"栾川","pinyin":"Luanchuan","zip":"0379","sortLetters":"L","index":614},{"label":"滦南Luannan0315","name":"滦南","pinyin":"Luannan","zip":"0315","sortLetters":"L","index":615},{"label":"滦县Luanxian0315","name":"滦县","pinyin":"Luanxian","zip":"0315","sortLetters":"L","index":616},{"label":"陆丰Lufeng0660","name":"陆丰","pinyin":"Lufeng","zip":"0660","sortLetters":"L","index":617},{"label":"陆河Luhe0660","name":"陆河","pinyin":"Luhe","zip":"0660","sortLetters":"L","index":618},{"label":"庐江Lujiang0565","name":"庐江","pinyin":"Lujiang","zip":"0565","sortLetters":"L","index":619},{"label":"罗定Luoding0766","name":"罗定","pinyin":"Luoding","zip":"0766","sortLetters":"L","index":620},{"label":"洛宁Luoning0379","name":"洛宁","pinyin":"Luoning","zip":"0379","sortLetters":"L","index":621},{"label":"罗源Luoyuan0591","name":"罗源","pinyin":"Luoyuan","zip":"0591","sortLetters":"L","index":622},{"label":"鹿泉Luquan0311","name":"鹿泉","pinyin":"Luquan","zip":"0311","sortLetters":"L","index":623},{"label":"禄劝Luquan0871","name":"禄劝","pinyin":"Luquan","zip":"0871","sortLetters":"L","index":624},{"label":"芦溪Luxi0799","name":"芦溪","pinyin":"Luxi","zip":"0799","sortLetters":"L","index":625},{"label":"鹿寨Luzhai0772","name":"鹿寨","pinyin":"Luzhai","zip":"0772","sortLetters":"L","index":626},{"label":"陇南Longnan0939","name":"陇南","pinyin":"Longnan","zip":"0939","sortLetters":"L","index":196},{"label":"柳州Liuzhou0772","name":"柳州","pinyin":"Liuzhou","zip":"0772","sortLetters":"L","index":26}]},{"sortLetters":"M","items":[{"label":"眉山Meishan028","name":"眉山","pinyin":"Meishan","zip":"028","sortLetters":"M","index":204},{"label":"梅州Meizhou0753","name":"梅州","pinyin":"Meizhou","zip":"0753","sortLetters":"M","index":205},{"label":"绵阳Mianyang0816","name":"绵阳","pinyin":"Mianyang","zip":"0816","sortLetters":"M","index":206},{"label":"牡丹江Mudanjiang0453","name":"牡丹江","pinyin":"Mudanjiang","zip":"0453","sortLetters":"M","index":207},{"label":"茂名Maoming0668","name":"茂名","pinyin":"Maoming","zip":"0668","sortLetters":"M","index":203},{"label":"马山Mashan0771","name":"马山","pinyin":"Mashan","zip":"0771","sortLetters":"M","index":627},{"label":"梅县Meixian0753","name":"梅县","pinyin":"Meixian","zip":"0753","sortLetters":"M","index":628},{"label":"蒙城Mengcheng0558","name":"蒙城","pinyin":"Mengcheng","zip":"0558","sortLetters":"M","index":629},{"label":"孟津Mengjin0379","name":"孟津","pinyin":"Mengjin","zip":"0379","sortLetters":"M","index":630},{"label":"蒙阴Mengyin0539","name":"蒙阴","pinyin":"Mengyin","zip":"0539","sortLetters":"M","index":631},{"label":"孟州Mengzhou0391","name":"孟州","pinyin":"Mengzhou","zip":"0391","sortLetters":"M","index":632},{"label":"明光Mingguang0550","name":"明光","pinyin":"Mingguang","zip":"0550","sortLetters":"M","index":633},{"label":"明溪Mingxi0598","name":"明溪","pinyin":"Mingxi","zip":"0598","sortLetters":"M","index":634},{"label":"闽侯Minhou0591","name":"闽侯","pinyin":"Minhou","zip":"0591","sortLetters":"M","index":635},{"label":"闽清Minqing0591","name":"闽清","pinyin":"Minqing","zip":"0591","sortLetters":"M","index":636},{"label":"木兰Mulan0451","name":"木兰","pinyin":"Mulan","zip":"0451","sortLetters":"M","index":637}]},{"sortLetters":"N","items":[{"label":"南昌Nanchang0791","name":"南昌","pinyin":"Nanchang","zip":"0791","sortLetters":"N","index":28},{"label":"南京Nanjing025","name":"南京","pinyin":"Nanjing","zip":"025","sortLetters":"N","index":29},{"label":"南宁Nanning0771","name":"南宁","pinyin":"Nanning","zip":"0771","sortLetters":"N","index":30},{"label":"南通Nantong0513","name":"南通","pinyin":"Nantong","zip":"0513","sortLetters":"N","index":31},{"label":"宁波Ningbo0574","name":"宁波","pinyin":"Ningbo","zip":"0574","sortLetters":"N","index":32},{"label":"宁德Ningde0593","name":"宁德","pinyin":"Ningde","zip":"0593","sortLetters":"N","index":213},{"label":"怒江Nujiang0886","name":"怒江","pinyin":"Nujiang","zip":"0886","sortLetters":"N","index":214},{"label":"那曲Naqu0896","name":"那曲","pinyin":"Naqu","zip":"0896","sortLetters":"N","index":211},{"label":"内江Neijiang0832","name":"内江","pinyin":"Neijiang","zip":"0832","sortLetters":"N","index":212},{"label":"南充Nanchong0817","name":"南充","pinyin":"Nanchong","zip":"0817","sortLetters":"N","index":208},{"label":"南平Nanping0599","name":"南平","pinyin":"Nanping","zip":"0599","sortLetters":"N","index":209},{"label":"南安Nanan0595","name":"南安","pinyin":"Nanan","zip":"0595","sortLetters":"N","index":638},{"label":"南澳Nanao0754","name":"南澳","pinyin":"Nanao","zip":"0754","sortLetters":"N","index":639},{"label":"南城Nancheng0794","name":"南城","pinyin":"Nancheng","zip":"0794","sortLetters":"N","index":640},{"label":"南川Nanchuan023","name":"南川","pinyin":"Nanchuan","zip":"023","sortLetters":"N","index":641},{"label":"南丰Nanfeng0794","name":"南丰","pinyin":"Nanfeng","zip":"0794","sortLetters":"N","index":642},{"label":"南靖Nanjing0596","name":"南靖","pinyin":"Nanjing","zip":"0596","sortLetters":"N","index":643},{"label":"南康Nankang0797","name":"南康","pinyin":"Nankang","zip":"0797","sortLetters":"N","index":644},{"label":"南陵Nanling0553","name":"南陵","pinyin":"Nanling","zip":"0553","sortLetters":"N","index":645},{"label":"南雄Nanxiong0751","name":"南雄","pinyin":"Nanxiong","zip":"0751","sortLetters":"N","index":646},{"label":"宁都Ningdu0797","name":"宁都","pinyin":"Ningdu","zip":"0797","sortLetters":"N","index":647},{"label":"宁国Ningguo0563","name":"宁国","pinyin":"Ningguo","zip":"0563","sortLetters":"N","index":648},{"label":"宁海Ninghai0574","name":"宁海","pinyin":"Ninghai","zip":"0574","sortLetters":"N","index":649},{"label":"宁化Ninghua0598","name":"宁化","pinyin":"Ninghua","zip":"0598","sortLetters":"N","index":650},{"label":"宁津Ningjin0534","name":"宁津","pinyin":"Ningjin","zip":"0534","sortLetters":"N","index":651},{"label":"宁乡Ningxiang0731","name":"宁乡","pinyin":"Ningxiang","zip":"0731","sortLetters":"N","index":652},{"label":"宁阳Ningyang0538","name":"宁阳","pinyin":"Ningyang","zip":"0538","sortLetters":"N","index":653},{"label":"农安Nongan0431","name":"农安","pinyin":"Nongan","zip":"0431","sortLetters":"N","index":654}]},{"sortLetters":"P","items":[{"label":"盘锦Panjin0427","name":"盘锦","pinyin":"Panjin","zip":"0427","sortLetters":"P","index":215},{"label":"攀枝花Panzhihua0812","name":"攀枝花","pinyin":"Panzhihua","zip":"0812","sortLetters":"P","index":216},{"label":"平顶山Pingdingshan0375","name":"平顶山","pinyin":"Pingdingshan","zip":"0375","sortLetters":"P","index":217},{"label":"平凉Pingliang0933","name":"平凉","pinyin":"Pingliang","zip":"0933","sortLetters":"P","index":218},{"label":"普洱Puer0879","name":"普洱","pinyin":"Puer","zip":"0879","sortLetters":"P","index":220},{"label":"莆田Putian0594","name":"莆田","pinyin":"Putian","zip":"0594","sortLetters":"P","index":221},{"label":"濮阳Puyang0393","name":"濮阳","pinyin":"Puyang","zip":"0393","sortLetters":"P","index":222},{"label":"磐安Panan0579","name":"磐安","pinyin":"Panan","zip":"0579","sortLetters":"P","index":655},{"label":"磐石Panshi0423","name":"磐石","pinyin":"Panshi","zip":"0423","sortLetters":"P","index":656},{"label":"沛县Peixian0516","name":"沛县","pinyin":"Peixian","zip":"0516","sortLetters":"P","index":657},{"label":"蓬莱Penglai0535","name":"蓬莱","pinyin":"Penglai","zip":"0535","sortLetters":"P","index":658},{"label":"彭水Pengshui023","name":"彭水","pinyin":"Pengshui","zip":"023","sortLetters":"P","index":659},{"label":"彭泽Pengze0792","name":"彭泽","pinyin":"Pengze","zip":"0792","sortLetters":"P","index":660},{"label":"彭州Pengzhou028","name":"彭州","pinyin":"Pengzhou","zip":"028","sortLetters":"P","index":661},{"label":"平度Pingdu0532","name":"平度","pinyin":"Pingdu","zip":"0532","sortLetters":"P","index":662},{"label":"平和Pinghe0596","name":"平和","pinyin":"Pinghe","zip":"0596","sortLetters":"P","index":663},{"label":"平湖Pinghu0573","name":"平湖","pinyin":"Pinghu","zip":"0573","sortLetters":"P","index":664},{"label":"屏南Pingnan0593","name":"屏南","pinyin":"Pingnan","zip":"0593","sortLetters":"P","index":665},{"label":"平山Pingshan0311","name":"平山","pinyin":"Pingshan","zip":"0311","sortLetters":"P","index":666},{"label":"平潭Pingtan0591","name":"平潭","pinyin":"Pingtan","zip":"0591","sortLetters":"P","index":667},{"label":"平阳Pingyang0577","name":"平阳","pinyin":"Pingyang","zip":"0577","sortLetters":"P","index":668},{"label":"平阴Pingyin0531","name":"平阴","pinyin":"Pingyin","zip":"0531","sortLetters":"P","index":669},{"label":"平邑Pingyi0539","name":"平邑","pinyin":"Pingyi","zip":"0539","sortLetters":"P","index":670},{"label":"平原Pingyuan0534","name":"平原","pinyin":"Pingyuan","zip":"0534","sortLetters":"P","index":671},{"label":"平远Pingyuan0753","name":"平远","pinyin":"Pingyuan","zip":"0753","sortLetters":"P","index":672},{"label":"郫县Pixian028","name":"郫县","pinyin":"Pixian","zip":"028","sortLetters":"P","index":673},{"label":"邳州Pizhou0516","name":"邳州","pinyin":"Pizhou","zip":"0516","sortLetters":"P","index":674},{"label":"鄱阳Poyang0793","name":"鄱阳","pinyin":"Poyang","zip":"0793","sortLetters":"P","index":675},{"label":"浦城Pucheng0599","name":"浦城","pinyin":"Pucheng","zip":"0599","sortLetters":"P","index":676},{"label":"浦江Pujiang0579","name":"浦江","pinyin":"Pujiang","zip":"0579","sortLetters":"P","index":677},{"label":"蒲江Pujiang028","name":"蒲江","pinyin":"Pujiang","zip":"028","sortLetters":"P","index":678},{"label":"普兰店Pulandian0411","name":"普兰店","pinyin":"Pulandian","zip":"0411","sortLetters":"P","index":679},{"label":"普宁Puning0663","name":"普宁","pinyin":"Puning","zip":"0663","sortLetters":"P","index":680},{"label":"磐安Panan0579","name":"磐安","pinyin":"Panan","zip":"0579","sortLetters":"P","index":655},{"label":"盘锦Panjin0427","name":"盘锦","pinyin":"Panjin","zip":"0427","sortLetters":"P","index":215}]},{"sortLetters":"Q","items":[{"label":"青岛Qingdao0532","name":"青岛","pinyin":"Qingdao","zip":"0532","sortLetters":"Q","index":33},{"label":"泉州Quanzhou0595","name":"泉州","pinyin":"Quanzhou","zip":"0595","sortLetters":"Q","index":34},{"label":"黔南Qiannan0854","name":"黔南","pinyin":"Qiannan","zip":"0854","sortLetters":"Q","index":224},{"label":"黔西南Qianxinan0859","name":"黔西南","pinyin":"Qianxinan","zip":"0859","sortLetters":"Q","index":225},{"label":"庆阳Qingyang0934","name":"庆阳","pinyin":"Qingyang","zip":"0934","sortLetters":"Q","index":226},{"label":"清远Qingyuan0763","name":"清远","pinyin":"Qingyuan","zip":"0763","sortLetters":"Q","index":227},{"label":"秦皇岛Qinhuangdao0335","name":"秦皇岛","pinyin":"Qinhuangdao","zip":"0335","sortLetters":"Q","index":228},{"label":"钦州Qinzhou0777","name":"钦州","pinyin":"Qinzhou","zip":"0777","sortLetters":"Q","index":229},{"label":"齐齐哈尔Qiqihaer0452","name":"齐齐哈尔","pinyin":"Qiqihaer","zip":"0452","sortLetters":"Q","index":230},{"label":"七台河Qitaihe0464","name":"七台河","pinyin":"Qitaihe","zip":"0464","sortLetters":"Q","index":231},{"label":"曲靖Qujing0874","name":"曲靖","pinyin":"Qujing","zip":"0874","sortLetters":"Q","index":232},{"label":"衢州Quzhou0570","name":"衢州","pinyin":"Quzhou","zip":"0570","sortLetters":"Q","index":233},{"label":"迁安Qianan0315","name":"迁安","pinyin":"Qianan","zip":"0315","sortLetters":"Q","index":681},{"label":"潜山Qianshan0556","name":"潜山","pinyin":"Qianshan","zip":"0556","sortLetters":"Q","index":682},{"label":"铅山Qianshan0793","name":"铅山","pinyin":"Qianshan","zip":"0793","sortLetters":"Q","index":683},{"label":"迁西Qianxi0315","name":"迁西","pinyin":"Qianxi","zip":"0315","sortLetters":"Q","index":684},{"label":"启东Qidong0513","name":"启东","pinyin":"Qidong","zip":"0513","sortLetters":"Q","index":685},{"label":"齐河Qihe0534","name":"齐河","pinyin":"Qihe","zip":"0534","sortLetters":"Q","index":686},{"label":"綦江Qijiang023","name":"綦江","pinyin":"Qijiang","zip":"023","sortLetters":"Q","index":687},{"label":"祁门Qimen0559","name":"祁门","pinyin":"Qimen","zip":"0559","sortLetters":"Q","index":688},{"label":"清流Qingliu0598","name":"清流","pinyin":"Qingliu","zip":"0598","sortLetters":"Q","index":689},{"label":"青田Qingtian0578","name":"青田","pinyin":"Qingtian","zip":"0578","sortLetters":"Q","index":690},{"label":"清新Qingxin0763","name":"清新","pinyin":"Qingxin","zip":"0763","sortLetters":"Q","index":691},{"label":"青阳Qingyang0566","name":"青阳","pinyin":"Qingyang","zip":"0566","sortLetters":"Q","index":692},{"label":"庆元Qingyuan0578","name":"庆元","pinyin":"Qingyuan","zip":"0578","sortLetters":"Q","index":693},{"label":"庆云Qingyun0534","name":"庆云","pinyin":"Qingyun","zip":"0534","sortLetters":"Q","index":694},{"label":"清镇Qingzhen0851","name":"清镇","pinyin":"Qingzhen","zip":"0851","sortLetters":"Q","index":695},{"label":"青州Qingzhou0536","name":"青州","pinyin":"Qingzhou","zip":"0536","sortLetters":"Q","index":696},{"label":"沁阳Qinyang0391","name":"沁阳","pinyin":"Qinyang","zip":"0391","sortLetters":"Q","index":697},{"label":"邛崃Qionglai028","name":"邛崃","pinyin":"Qionglai","zip":"028","sortLetters":"Q","index":698},{"label":"栖霞Qixia0535","name":"栖霞","pinyin":"Qixia","zip":"0535","sortLetters":"Q","index":699},{"label":"全椒Quanjiao0550","name":"全椒","pinyin":"Quanjiao","zip":"0550","sortLetters":"Q","index":700},{"label":"全南Quannan0797","name":"全南","pinyin":"Quannan","zip":"0797","sortLetters":"Q","index":701},{"label":"曲阜Qufu0537","name":"曲阜","pinyin":"Qufu","zip":"0537","sortLetters":"Q","index":702},{"label":"曲江Qujiang0751","name":"曲江","pinyin":"Qujiang","zip":"0751","sortLetters":"Q","index":703},{"label":"迁安Qianan0315","name":"迁安","pinyin":"Qianan","zip":"0315","sortLetters":"Q","index":681}]},{"sortLetters":"R","items":[{"label":"日照Rizhao0633","name":"日照","pinyin":"Rizhao","zip":"0633","sortLetters":"R","index":235},{"label":"饶平Raoping0768","name":"饶平","pinyin":"Raoping","zip":"0768","sortLetters":"R","index":704},{"label":"仁化Renhua0751","name":"仁化","pinyin":"Renhua","zip":"0751","sortLetters":"R","index":705},{"label":"融安Rongan0772","name":"融安","pinyin":"Rongan","zip":"0772","sortLetters":"R","index":706},{"label":"荣昌Rongchang023","name":"荣昌","pinyin":"Rongchang","zip":"023","sortLetters":"R","index":707},{"label":"荣成Rongcheng0631","name":"荣成","pinyin":"Rongcheng","zip":"0631","sortLetters":"R","index":708},{"label":"融水Rongshui0772","name":"融水","pinyin":"Rongshui","zip":"0772","sortLetters":"R","index":709},{"label":"如东Rudong0513","name":"如东","pinyin":"Rudong","zip":"0513","sortLetters":"R","index":710},{"label":"如皋Rugao0513","name":"如皋","pinyin":"Rugao","zip":"0513","sortLetters":"R","index":711},{"label":"瑞安Ruian0577","name":"瑞安","pinyin":"Ruian","zip":"0577","sortLetters":"R","index":712},{"label":"瑞昌Ruichang0792","name":"瑞昌","pinyin":"Ruichang","zip":"0792","sortLetters":"R","index":713},{"label":"瑞金Ruijin0797","name":"瑞金","pinyin":"Ruijin","zip":"0797","sortLetters":"R","index":714},{"label":"乳山Rushan0631","name":"乳山","pinyin":"Rushan","zip":"0631","sortLetters":"R","index":715},{"label":"汝阳Ruyang0379","name":"汝阳","pinyin":"Ruyang","zip":"0379","sortLetters":"R","index":716},{"label":"乳源Ruyuan0751","name":"乳源","pinyin":"Ruyuan","zip":"0751","sortLetters":"R","index":717}]},{"sortLetters":"S","items":[{"label":"石嘴山Shizuishan0952","name":"石嘴山","pinyin":"Shizuishan","zip":"0952","sortLetters":"S","index":249},{"label":"双鸭山Shuangyashan0469","name":"双鸭山","pinyin":"Shuangyashan","zip":"0469","sortLetters":"S","index":250},{"label":"朔州Shuozhou0349","name":"朔州","pinyin":"Shuozhou","zip":"0349","sortLetters":"S","index":251},{"label":"四平Siping0434","name":"四平","pinyin":"Siping","zip":"0434","sortLetters":"S","index":252},{"label":"松原Songyuan0438","name":"松原","pinyin":"Songyuan","zip":"0438","sortLetters":"S","index":253},{"label":"绥化Suihua0455","name":"绥化","pinyin":"Suihua","zip":"0455","sortLetters":"S","index":254},{"label":"遂宁Suining0825","name":"遂宁","pinyin":"Suining","zip":"0825","sortLetters":"S","index":255},{"label":"随州Suizhou0722","name":"随州","pinyin":"Suizhou","zip":"0722","sortLetters":"S","index":256},{"label":"宿迁Suqian0527","name":"宿迁","pinyin":"Suqian","zip":"0527","sortLetters":"S","index":257},{"label":"宿州Suzhou0557","name":"宿州","pinyin":"Suzhou","zip":"0557","sortLetters":"S","index":258},{"label":"三门峡Sanmenxia0398","name":"三门峡","pinyin":"Sanmenxia","zip":"0398","sortLetters":"S","index":236},{"label":"三明Sanming0598","name":"三明","pinyin":"Sanming","zip":"0598","sortLetters":"S","index":237},{"label":"商洛Shangluo0914","name":"商洛","pinyin":"Shangluo","zip":"0914","sortLetters":"S","index":239},{"label":"商丘Shangqiu0370","name":"商丘","pinyin":"Shangqiu","zip":"0370","sortLetters":"S","index":240},{"label":"沈阳Shenyang024","name":"沈阳","pinyin":"Shenyang","zip":"024","sortLetters":"S","index":35},{"label":"深圳Shenzhen0755","name":"深圳","pinyin":"Shenzhen","zip":"0755","sortLetters":"S","index":36},{"label":"石家庄Shijiazhuang0311","name":"石家庄","pinyin":"Shijiazhuang","zip":"0311","sortLetters":"S","index":37},{"label":"苏州Suzhou0512","name":"苏州","pinyin":"Suzhou","zip":"0512","sortLetters":"S","index":38},{"label":"上饶Shangrao0793","name":"上饶","pinyin":"Shangrao","zip":"0793","sortLetters":"S","index":241},{"label":"山南Shannan0893","name":"山南","pinyin":"Shannan","zip":"0893","sortLetters":"S","index":242},{"label":"汕头Shantou0754","name":"汕头","pinyin":"Shantou","zip":"0754","sortLetters":"S","index":243},{"label":"汕尾Shanwei0660","name":"汕尾","pinyin":"Shanwei","zip":"0660","sortLetters":"S","index":244},{"label":"韶关Shaoguan0751","name":"韶关","pinyin":"Shaoguan","zip":"0751","sortLetters":"S","index":245},{"label":"绍兴Shaoxing0575","name":"绍兴","pinyin":"Shaoxing","zip":"0575","sortLetters":"S","index":246},{"label":"邵阳Shaoyang0739","name":"邵阳","pinyin":"Shaoyang","zip":"0739","sortLetters":"S","index":247},{"label":"十堰Shiyan0719","name":"十堰","pinyin":"Shiyan","zip":"0719","sortLetters":"S","index":248},{"label":"上海Shanghai021","name":"上海","pinyin":"Shanghai","zip":"021","sortLetters":"S","index":2},{"label":"三江Sanjiang0772","name":"三江","pinyin":"Sanjiang","zip":"0772","sortLetters":"S","index":718},{"label":"三门Sanmen0576","name":"三门","pinyin":"Sanmen","zip":"0576","sortLetters":"S","index":719},{"label":"诏安Saoan0596","name":"诏安","pinyin":"Saoan","zip":"0596","sortLetters":"S","index":720},{"label":"上高Shanggao0795","name":"上高","pinyin":"Shanggao","zip":"0795","sortLetters":"S","index":721},{"label":"上杭Shanghang0597","name":"上杭","pinyin":"Shanghang","zip":"0597","sortLetters":"S","index":722},{"label":"商河Shanghe0531","name":"商河","pinyin":"Shanghe","zip":"0531","sortLetters":"S","index":723},{"label":"上栗Shangli0799","name":"上栗","pinyin":"Shangli","zip":"0799","sortLetters":"S","index":724},{"label":"上林Shanglin0771","name":"上林","pinyin":"Shanglin","zip":"0771","sortLetters":"S","index":725},{"label":"上饶Shangrao0793","name":"上饶","pinyin":"Shangrao","zip":"0793","sortLetters":"S","index":726},{"label":"上犹Shangyou0797","name":"上犹","pinyin":"Shangyou","zip":"0797","sortLetters":"S","index":727},{"label":"上虞Shangyu0575","name":"上虞","pinyin":"Shangyu","zip":"0575","sortLetters":"S","index":728},{"label":"尚志Shangzhi0451","name":"尚志","pinyin":"Shangzhi","zip":"0451","sortLetters":"S","index":729},{"label":"邵武Shaowu0599","name":"邵武","pinyin":"Shaowu","zip":"0599","sortLetters":"S","index":730},{"label":"绍兴Shaoxing0575","name":"绍兴","pinyin":"Shaoxing","zip":"0575","sortLetters":"S","index":731},{"label":"沙县Shaxian0598","name":"沙县","pinyin":"Shaxian","zip":"0598","sortLetters":"S","index":732},{"label":"嵊泗Shengsi0580","name":"嵊泗","pinyin":"Shengsi","zip":"0580","sortLetters":"S","index":733},{"label":"嵊州Shengzhou0575","name":"嵊州","pinyin":"Shengzhou","zip":"0575","sortLetters":"S","index":734},{"label":"莘县Shenxian0635","name":"莘县","pinyin":"Shenxian","zip":"0635","sortLetters":"S","index":735},{"label":"深泽Shenze0311","name":"深泽","pinyin":"Shenze","zip":"0311","sortLetters":"S","index":736},{"label":"歙县Shexian0559","name":"歙县","pinyin":"Shexian","zip":"0559","sortLetters":"S","index":737},{"label":"射阳Sheyang0515","name":"射阳","pinyin":"Sheyang","zip":"0515","sortLetters":"S","index":738},{"label":"石城Shicheng0797","name":"石城","pinyin":"Shicheng","zip":"0797","sortLetters":"S","index":739},{"label":"石林Shilin0871","name":"石林","pinyin":"Shilin","zip":"0871","sortLetters":"S","index":740},{"label":"石狮Shishi0595","name":"石狮","pinyin":"Shishi","zip":"0595","sortLetters":"S","index":741},{"label":"石台Shitai0566","name":"石台","pinyin":"Shitai","zip":"0566","sortLetters":"S","index":742},{"label":"始兴Shixing0751","name":"始兴","pinyin":"Shixing","zip":"0751","sortLetters":"S","index":743},{"label":"石柱Shizhu023","name":"石柱","pinyin":"Shizhu","zip":"023","sortLetters":"S","index":744},{"label":"寿光Shouguang0536","name":"寿光","pinyin":"Shouguang","zip":"0536","sortLetters":"S","index":745},{"label":"寿宁Shouning0593","name":"寿宁","pinyin":"Shouning","zip":"0593","sortLetters":"S","index":746},{"label":"寿县Shouxian0564","name":"寿县","pinyin":"Shouxian","zip":"0564","sortLetters":"S","index":747},{"label":"双城Shuangcheng0451","name":"双城","pinyin":"Shuangcheng","zip":"0451","sortLetters":"S","index":748},{"label":"双流Shuangliu028","name":"双流","pinyin":"Shuangliu","zip":"028","sortLetters":"S","index":749},{"label":"舒城Shucheng0564","name":"舒城","pinyin":"Shucheng","zip":"0564","sortLetters":"S","index":750},{"label":"舒兰Shulan0423","name":"舒兰","pinyin":"Shulan","zip":"0423","sortLetters":"S","index":751},{"label":"顺昌Shunchang0599","name":"顺昌","pinyin":"Shunchang","zip":"0599","sortLetters":"S","index":752},{"label":"沭阳Shuyang0527","name":"沭阳","pinyin":"Shuyang","zip":"0527","sortLetters":"S","index":753},{"label":"泗洪Sihong0527","name":"泗洪","pinyin":"Sihong","zip":"0527","sortLetters":"S","index":754},{"label":"四会Sihui0758","name":"四会","pinyin":"Sihui","zip":"0758","sortLetters":"S","index":755},{"label":"泗水Sishui0537","name":"泗水","pinyin":"Sishui","zip":"0537","sortLetters":"S","index":756},{"label":"泗县Sixian0557","name":"泗县","pinyin":"Sixian","zip":"0557","sortLetters":"S","index":757},{"label":"泗阳Siyang0527","name":"泗阳","pinyin":"Siyang","zip":"0527","sortLetters":"S","index":758},{"label":"嵩明Songming0871","name":"嵩明","pinyin":"Songming","zip":"0871","sortLetters":"S","index":759},{"label":"松溪Songxi0599","name":"松溪","pinyin":"Songxi","zip":"0599","sortLetters":"S","index":760},{"label":"嵩县Songxian0379","name":"嵩县","pinyin":"Songxian","zip":"0379","sortLetters":"S","index":761},{"label":"松阳Songyang0578","name":"松阳","pinyin":"Songyang","zip":"0578","sortLetters":"S","index":762},{"label":"遂昌Suichang0578","name":"遂昌","pinyin":"Suichang","zip":"0578","sortLetters":"S","index":763},{"label":"遂川Suichuan0796","name":"遂川","pinyin":"Suichuan","zip":"0796","sortLetters":"S","index":764},{"label":"睢宁Suining0516","name":"睢宁","pinyin":"Suining","zip":"0516","sortLetters":"S","index":765},{"label":"濉溪Suixi0561","name":"濉溪","pinyin":"Suixi","zip":"0561","sortLetters":"S","index":766},{"label":"遂溪Suixi0759","name":"遂溪","pinyin":"Suixi","zip":"0759","sortLetters":"S","index":767},{"label":"宿松Susong0556","name":"宿松","pinyin":"Susong","zip":"0556","sortLetters":"S","index":768},{"label":"宿豫Suyu0527","name":"宿豫","pinyin":"Suyu","zip":"0527","sortLetters":"S","index":769},{"label":"三亚Sanya0899","name":"三亚","pinyin":"Sanya","zip":"0899","sortLetters":"S","index":238}]},{"sortLetters":"T","items":[{"label":"唐山Tangshan0315","name":"唐山","pinyin":"Tangshan","zip":"0315","sortLetters":"T","index":40},{"label":"天津Tianjin022","name":"天津","pinyin":"Tianjin","zip":"022","sortLetters":"T","index":3},{"label":"塔城地Tachengdi0901","name":"塔城地","pinyin":"Tachengdi","zip":"0901","sortLetters":"T","index":259},{"label":"泰安Taian0538","name":"泰安","pinyin":"Taian","zip":"0538","sortLetters":"T","index":260},{"label":"太原Taiyuan0351","name":"太原","pinyin":"Taiyuan","zip":"0351","sortLetters":"T","index":261},{"label":"泰州Taizhou0523","name":"泰州","pinyin":"Taizhou","zip":"0523","sortLetters":"T","index":262},{"label":"天水Tianshui0938","name":"天水","pinyin":"Tianshui","zip":"0938","sortLetters":"T","index":263},{"label":"铁岭Tieling0410","name":"铁岭","pinyin":"Tieling","zip":"0410","sortLetters":"T","index":264},{"label":"铜川Tongchuan0919","name":"铜川","pinyin":"Tongchuan","zip":"0919","sortLetters":"T","index":265},{"label":"通化Tonghua0435","name":"通化","pinyin":"Tonghua","zip":"0435","sortLetters":"T","index":266},{"label":"通辽Tongliao0475","name":"通辽","pinyin":"Tongliao","zip":"0475","sortLetters":"T","index":267},{"label":"铜陵Tongling0562","name":"铜陵","pinyin":"Tongling","zip":"0562","sortLetters":"T","index":268},{"label":"铜仁Tongren0856","name":"铜仁","pinyin":"Tongren","zip":"0856","sortLetters":"T","index":269},{"label":"吐鲁番Tulufan0995","name":"吐鲁番","pinyin":"Tulufan","zip":"0995","sortLetters":"T","index":270},{"label":"太仓Taicang0512","name":"太仓","pinyin":"Taicang","zip":"0512","sortLetters":"T","index":770},{"label":"太和Taihe0558","name":"太和","pinyin":"Taihe","zip":"0558","sortLetters":"T","index":771},{"label":"泰和Taihe0796","name":"泰和","pinyin":"Taihe","zip":"0796","sortLetters":"T","index":772},{"label":"太湖Taihu0556","name":"太湖","pinyin":"Taihu","zip":"0556","sortLetters":"T","index":773},{"label":"泰宁Taining0598","name":"泰宁","pinyin":"Taining","zip":"0598","sortLetters":"T","index":774},{"label":"台山Taishan0750","name":"台山","pinyin":"Taishan","zip":"0750","sortLetters":"T","index":775},{"label":"泰顺Taishun0577","name":"泰顺","pinyin":"Taishun","zip":"0577","sortLetters":"T","index":776},{"label":"泰兴Taixing0523","name":"泰兴","pinyin":"Taixing","zip":"0523","sortLetters":"T","index":777},{"label":"郯城Tancheng0539","name":"郯城","pinyin":"Tancheng","zip":"0539","sortLetters":"T","index":778},{"label":"唐海Tanghai0315","name":"唐海","pinyin":"Tanghai","zip":"0315","sortLetters":"T","index":779},{"label":"滕州Tengzhou0623","name":"滕州","pinyin":"Tengzhou","zip":"0623","sortLetters":"T","index":780},{"label":"天长Tianchang0550","name":"天长","pinyin":"Tianchang","zip":"0550","sortLetters":"T","index":781},{"label":"天台Tiantai0576","name":"天台","pinyin":"Tiantai","zip":"0576","sortLetters":"T","index":782},{"label":"桐城Tongcheng0556","name":"桐城","pinyin":"Tongcheng","zip":"0556","sortLetters":"T","index":783},{"label":"铜鼓Tonggu0795","name":"铜鼓","pinyin":"Tonggu","zip":"0795","sortLetters":"T","index":784},{"label":"通河Tonghe0451","name":"通河","pinyin":"Tonghe","zip":"0451","sortLetters":"T","index":785},{"label":"铜梁Tongliang023","name":"铜梁","pinyin":"Tongliang","zip":"023","sortLetters":"T","index":786},{"label":"铜陵Tongling0562","name":"铜陵","pinyin":"Tongling","zip":"0562","sortLetters":"T","index":787},{"label":"桐庐Tonglu0571","name":"桐庐","pinyin":"Tonglu","zip":"0571","sortLetters":"T","index":788},{"label":"潼南Tongnan023","name":"潼南","pinyin":"Tongnan","zip":"023","sortLetters":"T","index":789},{"label":"铜山Tongshan0516","name":"铜山","pinyin":"Tongshan","zip":"0516","sortLetters":"T","index":790},{"label":"桐乡Tongxiang0573","name":"桐乡","pinyin":"Tongxiang","zip":"0573","sortLetters":"T","index":791},{"label":"通州Tongzhou0513","name":"通州","pinyin":"Tongzhou","zip":"0513","sortLetters":"T","index":792},{"label":"天津Tianjin022","name":"天津","pinyin":"Tianjin","zip":"022","sortLetters":"T","index":3},{"label":"唐山Tangshan0315","name":"唐山","pinyin":"Tangshan","zip":"0315","sortLetters":"T","index":40}]},{"sortLetters":"W","items":[{"label":"武威Wuwei0935","name":"武威","pinyin":"Wuwei","zip":"0935","sortLetters":"W","index":278},{"label":"吴忠Wuzhong0953","name":"吴忠","pinyin":"Wuzhong","zip":"0953","sortLetters":"W","index":279},{"label":"梧州Wuzhou0774","name":"梧州","pinyin":"Wuzhou","zip":"0774","sortLetters":"W","index":280},{"label":"武汉Wuhan027","name":"武汉","pinyin":"Wuhan","zip":"027","sortLetters":"W","index":43},{"label":"无锡Wuxi0510","name":"无锡","pinyin":"Wuxi","zip":"0510","sortLetters":"W","index":44},{"label":"威海Weihai0631","name":"威海","pinyin":"Weihai","zip":"0631","sortLetters":"W","index":42},{"label":"渭南Weinan0913","name":"渭南","pinyin":"Weinan","zip":"0913","sortLetters":"W","index":271},{"label":"文山Wenshan0876","name":"文山","pinyin":"Wenshan","zip":"0876","sortLetters":"W","index":272},{"label":"温州Wenzhou0577","name":"温州","pinyin":"Wenzhou","zip":"0577","sortLetters":"W","index":273},{"label":"乌海Wuhai0473","name":"乌海","pinyin":"Wuhai","zip":"0473","sortLetters":"W","index":274},{"label":"芜湖Wuhu0553","name":"芜湖","pinyin":"Wuhu","zip":"0553","sortLetters":"W","index":275},{"label":"乌兰察布Wulanchabu0474","name":"乌兰察布","pinyin":"Wulanchabu","zip":"0474","sortLetters":"W","index":276},{"label":"乌鲁木齐Wulumuqi0991","name":"乌鲁木齐","pinyin":"Wulumuqi","zip":"0991","sortLetters":"W","index":277},{"label":"瓦房店Wafangdian0411","name":"瓦房店","pinyin":"Wafangdian","zip":"0411","sortLetters":"W","index":793},{"label":"万安Wanan0796","name":"万安","pinyin":"Wanan","zip":"0796","sortLetters":"W","index":794},{"label":"望城Wangcheng0731","name":"望城","pinyin":"Wangcheng","zip":"0731","sortLetters":"W","index":795},{"label":"望江Wangjiang0556","name":"望江","pinyin":"Wangjiang","zip":"0556","sortLetters":"W","index":796},{"label":"万年Wannian0793","name":"万年","pinyin":"Wannian","zip":"0793","sortLetters":"W","index":797},{"label":"万载Wanzai0795","name":"万载","pinyin":"Wanzai","zip":"0795","sortLetters":"W","index":798},{"label":"微山Weishan0537","name":"微山","pinyin":"Weishan","zip":"0537","sortLetters":"W","index":799},{"label":"文成Wencheng0577","name":"文成","pinyin":"Wencheng","zip":"0577","sortLetters":"W","index":800},{"label":"文登Wendeng0631","name":"文登","pinyin":"Wendeng","zip":"0631","sortLetters":"W","index":801},{"label":"翁源Wengyuan0751","name":"翁源","pinyin":"Wengyuan","zip":"0751","sortLetters":"W","index":802},{"label":"温岭Wenling0576","name":"温岭","pinyin":"Wenling","zip":"0576","sortLetters":"W","index":803},{"label":"汶上Wenshang0537","name":"汶上","pinyin":"Wenshang","zip":"0537","sortLetters":"W","index":804},{"label":"温县Wenxian0391","name":"温县","pinyin":"Wenxian","zip":"0391","sortLetters":"W","index":805},{"label":"涡阳Woyang0558","name":"涡阳","pinyin":"Woyang","zip":"0558","sortLetters":"W","index":806},{"label":"五常Wuchang0451","name":"五常","pinyin":"Wuchang","zip":"0451","sortLetters":"W","index":807},{"label":"武城Wucheng0534","name":"武城","pinyin":"Wucheng","zip":"0534","sortLetters":"W","index":808},{"label":"吴川Wuchuan0759","name":"吴川","pinyin":"Wuchuan","zip":"0759","sortLetters":"W","index":809},{"label":"无棣Wudi0543","name":"无棣","pinyin":"Wudi","zip":"0543","sortLetters":"W","index":810},{"label":"五河Wuhe0552","name":"五河","pinyin":"Wuhe","zip":"0552","sortLetters":"W","index":811},{"label":"芜湖Wuhu0553","name":"芜湖","pinyin":"Wuhu","zip":"0553","sortLetters":"W","index":812},{"label":"五华Wuhua0753","name":"五华","pinyin":"Wuhua","zip":"0753","sortLetters":"W","index":813},{"label":"无极Wuji0311","name":"无极","pinyin":"Wuji","zip":"0311","sortLetters":"W","index":814},{"label":"吴江Wujiang0512","name":"吴江","pinyin":"Wujiang","zip":"0512","sortLetters":"W","index":815},{"label":"五莲Wulian0633","name":"五莲","pinyin":"Wulian","zip":"0633","sortLetters":"W","index":816},{"label":"武隆Wulong023","name":"武隆","pinyin":"Wulong","zip":"023","sortLetters":"W","index":817},{"label":"武鸣Wuming0771","name":"武鸣","pinyin":"Wuming","zip":"0771","sortLetters":"W","index":818},{"label":"武宁Wuning0792","name":"武宁","pinyin":"Wuning","zip":"0792","sortLetters":"W","index":819},{"label":"武平Wuping0597","name":"武平","pinyin":"Wuping","zip":"0597","sortLetters":"W","index":820},{"label":"巫山Wushan023","name":"巫山","pinyin":"Wushan","zip":"023","sortLetters":"W","index":821},{"label":"无为Wuwei0565","name":"无为","pinyin":"Wuwei","zip":"0565","sortLetters":"W","index":822},{"label":"巫溪Wuxi023","name":"巫溪","pinyin":"Wuxi","zip":"023","sortLetters":"W","index":823},{"label":"武义Wuyi0579","name":"武义","pinyin":"Wuyi","zip":"0579","sortLetters":"W","index":824},{"label":"武夷山Wuyishan0599","name":"武夷山","pinyin":"Wuyishan","zip":"0599","sortLetters":"W","index":825},{"label":"婺源Wuyuan0793","name":"婺源","pinyin":"Wuyuan","zip":"0793","sortLetters":"W","index":826},{"label":"武陟Wuzhi0391","name":"武陟","pinyin":"Wuzhi","zip":"0391","sortLetters":"W","index":827}]},{"sortLetters":"X","items":[{"label":"邢台Xingtai0319","name":"邢台","pinyin":"Xingtai","zip":"0319","sortLetters":"X","index":289},{"label":"西宁Xining0971","name":"西宁","pinyin":"Xining","zip":"0971","sortLetters":"X","index":290},{"label":"新乡Xinxiang0373","name":"新乡","pinyin":"Xinxiang","zip":"0373","sortLetters":"X","index":291},{"label":"信阳Xinyang0376","name":"信阳","pinyin":"Xinyang","zip":"0376","sortLetters":"X","index":292},{"label":"新余Xinyu0790","name":"新余","pinyin":"Xinyu","zip":"0790","sortLetters":"X","index":293},{"label":"忻州Xinzhou0350","name":"忻州","pinyin":"Xinzhou","zip":"0350","sortLetters":"X","index":294},{"label":"西双版纳Xishuangbanna0691","name":"西双版纳","pinyin":"Xishuangbanna","zip":"0691","sortLetters":"X","index":295},{"label":"徐州Xuzhou0516","name":"徐州","pinyin":"Xuzhou","zip":"0516","sortLetters":"X","index":48},{"label":"厦门Xiamen0592","name":"厦门","pinyin":"Xiamen","zip":"0592","sortLetters":"X","index":45},{"label":"西安Xian029","name":"西安","pinyin":"Xian","zip":"029","sortLetters":"X","index":46},{"label":"许昌Xuchang0374","name":"许昌","pinyin":"Xuchang","zip":"0374","sortLetters":"X","index":47},{"label":"襄樊Xiangfan0710","name":"襄樊","pinyin":"Xiangfan","zip":"0710","sortLetters":"X","index":281},{"label":"湘潭Xiangtan0732","name":"湘潭","pinyin":"Xiangtan","zip":"0732","sortLetters":"X","index":282},{"label":"湘西Xiangxi0743","name":"湘西","pinyin":"Xiangxi","zip":"0743","sortLetters":"X","index":283},{"label":"咸宁Xianning0715","name":"咸宁","pinyin":"Xianning","zip":"0715","sortLetters":"X","index":284},{"label":"咸阳Xianyang029","name":"咸阳","pinyin":"Xianyang","zip":"029","sortLetters":"X","index":285},{"label":"孝感Xiaogan0712","name":"孝感","pinyin":"Xiaogan","zip":"0712","sortLetters":"X","index":286},{"label":"锡林郭勒盟Xilinguolemeng0479","name":"锡林郭勒盟","pinyin":"Xilinguolemeng","zip":"0479","sortLetters":"X","index":287},{"label":"兴安盟Xinganmeng0482","name":"兴安盟","pinyin":"Xinganmeng","zip":"0482","sortLetters":"X","index":288},{"label":"峡江Xiajiang0796","name":"峡江","pinyin":"Xiajiang","zip":"0796","sortLetters":"X","index":828},{"label":"夏津Xiajin0534","name":"夏津","pinyin":"Xiajin","zip":"0534","sortLetters":"X","index":829},{"label":"象山Xiangshan0574","name":"象山","pinyin":"Xiangshan","zip":"0574","sortLetters":"X","index":830},{"label":"响水Xiangshui0515","name":"响水","pinyin":"Xiangshui","zip":"0515","sortLetters":"X","index":831},{"label":"仙居Xianju0576","name":"仙居","pinyin":"Xianju","zip":"0576","sortLetters":"X","index":832},{"label":"仙游Xianyou0594","name":"仙游","pinyin":"Xianyou","zip":"0594","sortLetters":"X","index":833},{"label":"萧县Xiaoxian0557","name":"萧县","pinyin":"Xiaoxian","zip":"0557","sortLetters":"X","index":834},{"label":"霞浦Xiapu0593","name":"霞浦","pinyin":"Xiapu","zip":"0593","sortLetters":"X","index":835},{"label":"息烽Xifeng0851","name":"息烽","pinyin":"Xifeng","zip":"0851","sortLetters":"X","index":836},{"label":"新安Xinan0379","name":"新安","pinyin":"Xinan","zip":"0379","sortLetters":"X","index":837},{"label":"新昌Xinchang0575","name":"新昌","pinyin":"Xinchang","zip":"0575","sortLetters":"X","index":838},{"label":"信丰Xinfeng0797","name":"信丰","pinyin":"Xinfeng","zip":"0797","sortLetters":"X","index":839},{"label":"新丰Xinfeng0751","name":"新丰","pinyin":"Xinfeng","zip":"0751","sortLetters":"X","index":840},{"label":"新干Xingan0796","name":"新干","pinyin":"Xingan","zip":"0796","sortLetters":"X","index":841},{"label":"兴国Xingguo0797","name":"兴国","pinyin":"Xingguo","zip":"0797","sortLetters":"X","index":842},{"label":"兴化Xinghua0523","name":"兴化","pinyin":"Xinghua","zip":"0523","sortLetters":"X","index":843},{"label":"兴宁Xingning0753","name":"兴宁","pinyin":"Xingning","zip":"0753","sortLetters":"X","index":844},{"label":"行唐Xingtang0311","name":"行唐","pinyin":"Xingtang","zip":"0311","sortLetters":"X","index":845},{"label":"荥阳Xingyang0371","name":"荥阳","pinyin":"Xingyang","zip":"0371","sortLetters":"X","index":846},{"label":"星子Xingzi0792","name":"星子","pinyin":"Xingzi","zip":"0792","sortLetters":"X","index":847},{"label":"辛集Xinji0311","name":"辛集","pinyin":"Xinji","zip":"0311","sortLetters":"X","index":848},{"label":"新建Xinjian0791","name":"新建","pinyin":"Xinjian","zip":"0791","sortLetters":"X","index":849},{"label":"新津Xinjin028","name":"新津","pinyin":"Xinjin","zip":"028","sortLetters":"X","index":850},{"label":"新乐Xinle0311","name":"新乐","pinyin":"Xinle","zip":"0311","sortLetters":"X","index":851},{"label":"新民Xinmin024","name":"新民","pinyin":"Xinmin","zip":"024","sortLetters":"X","index":852},{"label":"新密Xinmi0371","name":"新密","pinyin":"Xinmi","zip":"0371","sortLetters":"X","index":853},{"label":"新泰Xintai0538","name":"新泰","pinyin":"Xintai","zip":"0538","sortLetters":"X","index":854},{"label":"新兴Xinxing0766","name":"新兴","pinyin":"Xinxing","zip":"0766","sortLetters":"X","index":855},{"label":"新沂Xinyi0516","name":"新沂","pinyin":"Xinyi","zip":"0516","sortLetters":"X","index":856},{"label":"信宜Xinyi0668","name":"信宜","pinyin":"Xinyi","zip":"0668","sortLetters":"X","index":857},{"label":"新郑Xinzheng0371","name":"新郑","pinyin":"Xinzheng","zip":"0371","sortLetters":"X","index":858},{"label":"休宁Xiuning0559","name":"休宁","pinyin":"Xiuning","zip":"0559","sortLetters":"X","index":859},{"label":"秀山Xiushan023","name":"秀山","pinyin":"Xiushan","zip":"023","sortLetters":"X","index":860},{"label":"修水Xiushui0792","name":"修水","pinyin":"Xiushui","zip":"0792","sortLetters":"X","index":861},{"label":"修文Xiuwen0851","name":"修文","pinyin":"Xiuwen","zip":"0851","sortLetters":"X","index":862},{"label":"修武Xiuwu0391","name":"修武","pinyin":"Xiuwu","zip":"0391","sortLetters":"X","index":863},{"label":"寻甸Xundian0871","name":"寻甸","pinyin":"Xundian","zip":"0871","sortLetters":"X","index":864},{"label":"寻乌Xunwu0797","name":"寻乌","pinyin":"Xunwu","zip":"0797","sortLetters":"X","index":865},{"label":"徐闻Xuwen0759","name":"徐闻","pinyin":"Xuwen","zip":"0759","sortLetters":"X","index":866},{"label":"盱眙Xuyi0517","name":"盱眙","pinyin":"Xuyi","zip":"0517","sortLetters":"X","index":867},{"label":"厦门Xiamen0592","name":"厦门","pinyin":"Xiamen","zip":"0592","sortLetters":"X","index":45},{"label":"徐州Xuzhou0516","name":"徐州","pinyin":"Xuzhou","zip":"0516","sortLetters":"X","index":48}]},{"sortLetters":"Y","items":[{"label":"延边Yanbian0433","name":"延边","pinyin":"Yanbian","zip":"0433","sortLetters":"Y","index":299},{"label":"盐城Yancheng0515","name":"盐城","pinyin":"Yancheng","zip":"0515","sortLetters":"Y","index":300},{"label":"阳江Yangjiang0662","name":"阳江","pinyin":"Yangjiang","zip":"0662","sortLetters":"Y","index":301},{"label":"烟台Yantai0535","name":"烟台","pinyin":"Yantai","zip":"0535","sortLetters":"Y","index":50},{"label":"阳泉Yangquan0353","name":"阳泉","pinyin":"Yangquan","zip":"0353","sortLetters":"Y","index":302},{"label":"雅安Yaan0835","name":"雅安","pinyin":"Yaan","zip":"0835","sortLetters":"Y","index":297},{"label":"延安Yanan0911","name":"延安","pinyin":"Yanan","zip":"0911","sortLetters":"Y","index":298},{"label":"宜宾Yibin0831","name":"宜宾","pinyin":"Yibin","zip":"0831","sortLetters":"Y","index":303},{"label":"宜昌Yichang0717","name":"宜昌","pinyin":"Yichang","zip":"0717","sortLetters":"Y","index":304},{"label":"伊春Yichun0458","name":"伊春","pinyin":"Yichun","zip":"0458","sortLetters":"Y","index":305},{"label":"宜春Yichun0795","name":"宜春","pinyin":"Yichun","zip":"0795","sortLetters":"Y","index":306},{"label":"伊犁哈萨克Yilihasake0999","name":"伊犁哈萨克","pinyin":"Yilihasake","zip":"0999","sortLetters":"Y","index":307},{"label":"银川Yinchuan0951","name":"银川","pinyin":"Yinchuan","zip":"0951","sortLetters":"Y","index":308},{"label":"营口Yingkou0417","name":"营口","pinyin":"Yingkou","zip":"0417","sortLetters":"Y","index":309},{"label":"鹰潭Yingtan0701","name":"鹰潭","pinyin":"Yingtan","zip":"0701","sortLetters":"Y","index":310},{"label":"益阳Yiyang0737","name":"益阳","pinyin":"Yiyang","zip":"0737","sortLetters":"Y","index":311},{"label":"永州Yongzhou0746","name":"永州","pinyin":"Yongzhou","zip":"0746","sortLetters":"Y","index":312},{"label":"岳阳Yueyang0730","name":"岳阳","pinyin":"Yueyang","zip":"0730","sortLetters":"Y","index":313},{"label":"玉林Yulin0775","name":"玉林","pinyin":"Yulin","zip":"0775","sortLetters":"Y","index":314},{"label":"榆林Yulin0912","name":"榆林","pinyin":"Yulin","zip":"0912","sortLetters":"Y","index":315},{"label":"运城Yuncheng0359","name":"运城","pinyin":"Yuncheng","zip":"0359","sortLetters":"Y","index":316},{"label":"云浮Yunfu0766","name":"云浮","pinyin":"Yunfu","zip":"0766","sortLetters":"Y","index":317},{"label":"玉树Yushu0976","name":"玉树","pinyin":"Yushu","zip":"0976","sortLetters":"Y","index":318},{"label":"玉溪Yuxi0877","name":"玉溪","pinyin":"Yuxi","zip":"0877","sortLetters":"Y","index":319},{"label":"阳春Yangchun0662","name":"阳春","pinyin":"Yangchun","zip":"0662","sortLetters":"Y","index":868},{"label":"阳东Yangdong0662","name":"阳东","pinyin":"Yangdong","zip":"0662","sortLetters":"Y","index":869},{"label":"阳谷Yanggu0635","name":"阳谷","pinyin":"Yanggu","zip":"0635","sortLetters":"Y","index":870},{"label":"阳山Yangshan0763","name":"阳山","pinyin":"Yangshan","zip":"0763","sortLetters":"Y","index":871},{"label":"阳信Yangxin0543","name":"阳信","pinyin":"Yangxin","zip":"0543","sortLetters":"Y","index":872},{"label":"阳西Yangxi0662","name":"阳西","pinyin":"Yangxi","zip":"0662","sortLetters":"Y","index":873},{"label":"扬中Yangzhong0511","name":"扬中","pinyin":"Yangzhong","zip":"0511","sortLetters":"Y","index":874},{"label":"偃师Yanshi0379","name":"偃师","pinyin":"Yanshi","zip":"0379","sortLetters":"Y","index":875},{"label":"延寿Yanshou0451","name":"延寿","pinyin":"Yanshou","zip":"0451","sortLetters":"Y","index":876},{"label":"兖州Yanzhou0537","name":"兖州","pinyin":"Yanzhou","zip":"0537","sortLetters":"Y","index":877},{"label":"伊川Yichuan0379","name":"伊川","pinyin":"Yichuan","zip":"0379","sortLetters":"Y","index":878},{"label":"宜丰Yifeng0795","name":"宜丰","pinyin":"Yifeng","zip":"0795","sortLetters":"Y","index":879},{"label":"宜黄Yihuang0794","name":"宜黄","pinyin":"Yihuang","zip":"0794","sortLetters":"Y","index":880},{"label":"依兰Yilan0451","name":"依兰","pinyin":"Yilan","zip":"0451","sortLetters":"Y","index":881},{"label":"宜良Yiliang0871","name":"宜良","pinyin":"Yiliang","zip":"0871","sortLetters":"Y","index":882},{"label":"沂南Yinan0539","name":"沂南","pinyin":"Yinan","zip":"0539","sortLetters":"Y","index":883},{"label":"英德Yingde0763","name":"英德","pinyin":"Yingde","zip":"0763","sortLetters":"Y","index":884},{"label":"颍上Yingshang0558","name":"颍上","pinyin":"Yingshang","zip":"0558","sortLetters":"Y","index":885},{"label":"沂水Yishui0539","name":"沂水","pinyin":"Yishui","zip":"0539","sortLetters":"Y","index":886},{"label":"义乌Yiwu0579","name":"义乌","pinyin":"Yiwu","zip":"0579","sortLetters":"Y","index":887},{"label":"黟县Yixian0559","name":"黟县","pinyin":"Yixian","zip":"0559","sortLetters":"Y","index":888},{"label":"宜兴Yixing0510","name":"宜兴","pinyin":"Yixing","zip":"0510","sortLetters":"Y","index":889},{"label":"弋阳Yiyang0793","name":"弋阳","pinyin":"Yiyang","zip":"0793","sortLetters":"Y","index":890},{"label":"宜阳Yiyang0379","name":"宜阳","pinyin":"Yiyang","zip":"0379","sortLetters":"Y","index":891},{"label":"沂源Yiyuan0533","name":"沂源","pinyin":"Yiyuan","zip":"0533","sortLetters":"Y","index":892},{"label":"仪征Yizheng0514","name":"仪征","pinyin":"Yizheng","zip":"0514","sortLetters":"Y","index":893},{"label":"永安Yongan0598","name":"永安","pinyin":"Yongan","zip":"0598","sortLetters":"Y","index":894},{"label":"永川Yongchuan023","name":"永川","pinyin":"Yongchuan","zip":"023","sortLetters":"Y","index":895},{"label":"永春Yongchun0595","name":"永春","pinyin":"Yongchun","zip":"0595","sortLetters":"Y","index":896},{"label":"永登Yongdeng0931","name":"永登","pinyin":"Yongdeng","zip":"0931","sortLetters":"Y","index":897},{"label":"永定Yongding0597","name":"永定","pinyin":"Yongding","zip":"0597","sortLetters":"Y","index":898},{"label":"永丰Yongfeng0796","name":"永丰","pinyin":"Yongfeng","zip":"0796","sortLetters":"Y","index":899},{"label":"永吉Yongji0423","name":"永吉","pinyin":"Yongji","zip":"0423","sortLetters":"Y","index":900},{"label":"永嘉Yongjia0577","name":"永嘉","pinyin":"Yongjia","zip":"0577","sortLetters":"Y","index":901},{"label":"永康Yongkang0579","name":"永康","pinyin":"Yongkang","zip":"0579","sortLetters":"Y","index":902},{"label":"邕宁Yongning0771","name":"邕宁","pinyin":"Yongning","zip":"0771","sortLetters":"Y","index":903},{"label":"永泰Yongtai0591","name":"永泰","pinyin":"Yongtai","zip":"0591","sortLetters":"Y","index":904},{"label":"永新Yongxin0796","name":"永新","pinyin":"Yongxin","zip":"0796","sortLetters":"Y","index":905},{"label":"永修Yongxiu0792","name":"永修","pinyin":"Yongxiu","zip":"0792","sortLetters":"Y","index":906},{"label":"尤溪Youxi0598","name":"尤溪","pinyin":"Youxi","zip":"0598","sortLetters":"Y","index":907},{"label":"酉阳Youyang023","name":"酉阳","pinyin":"Youyang","zip":"023","sortLetters":"Y","index":908},{"label":"元氏Yuanshi0311","name":"元氏","pinyin":"Yuanshi","zip":"0311","sortLetters":"Y","index":909},{"label":"禹城Yucheng0534","name":"禹城","pinyin":"Yucheng","zip":"0534","sortLetters":"Y","index":910},{"label":"于都Yudu0797","name":"于都","pinyin":"Yudu","zip":"0797","sortLetters":"Y","index":911},{"label":"岳西Yuexi0556","name":"岳西","pinyin":"Yuexi","zip":"0556","sortLetters":"Y","index":912},{"label":"余干Yugan0793","name":"余干","pinyin":"Yugan","zip":"0793","sortLetters":"Y","index":913},{"label":"玉环Yuhuan0576","name":"玉环","pinyin":"Yuhuan","zip":"0576","sortLetters":"Y","index":914},{"label":"余江Yujiang0701","name":"余江","pinyin":"Yujiang","zip":"0701","sortLetters":"Y","index":915},{"label":"郁南Yunan0766","name":"郁南","pinyin":"Yunan","zip":"0766","sortLetters":"Y","index":916},{"label":"云安Yunan0766","name":"云安","pinyin":"Yunan","zip":"0766","sortLetters":"Y","index":917},{"label":"郓城Yuncheng0530","name":"郓城","pinyin":"Yuncheng","zip":"0530","sortLetters":"Y","index":918},{"label":"云和Yunhe0578","name":"云和","pinyin":"Yunhe","zip":"0578","sortLetters":"Y","index":919},{"label":"云霄Yunxiao0596","name":"云霄","pinyin":"Yunxiao","zip":"0596","sortLetters":"Y","index":920},{"label":"云阳Yunyang023","name":"云阳","pinyin":"Yunyang","zip":"023","sortLetters":"Y","index":921},{"label":"玉山Yushan0793","name":"玉山","pinyin":"Yushan","zip":"0793","sortLetters":"Y","index":922},{"label":"榆树Yushu0431","name":"榆树","pinyin":"Yushu","zip":"0431","sortLetters":"Y","index":923},{"label":"鱼台Yutai0537","name":"鱼台","pinyin":"Yutai","zip":"0537","sortLetters":"Y","index":924},{"label":"玉田Yutian0315","name":"玉田","pinyin":"Yutian","zip":"0315","sortLetters":"Y","index":925},{"label":"余姚Yuyao0574","name":"余姚","pinyin":"Yuyao","zip":"0574","sortLetters":"Y","index":926},{"label":"榆中Yuzhong0931","name":"榆中","pinyin":"Yuzhong","zip":"0931","sortLetters":"Y","index":927}]},{"sortLetters":"Z","items":[{"label":"周口Zhoukou0394","name":"周口","pinyin":"Zhoukou","zip":"0394","sortLetters":"Z","index":329},{"label":"舟山Zhoushan0580","name":"舟山","pinyin":"Zhoushan","zip":"0580","sortLetters":"Z","index":330},{"label":"驻马店Zhumadian0396","name":"驻马店","pinyin":"Zhumadian","zip":"0396","sortLetters":"Z","index":331},{"label":"株洲Zhuzhou0731","name":"株洲","pinyin":"Zhuzhou","zip":"0731","sortLetters":"Z","index":332},{"label":"淄博Zibo0533","name":"淄博","pinyin":"Zibo","zip":"0533","sortLetters":"Z","index":333},{"label":"自贡Zigong0813","name":"自贡","pinyin":"Zigong","zip":"0813","sortLetters":"Z","index":334},{"label":"资阳Ziyang028","name":"资阳","pinyin":"Ziyang","zip":"028","sortLetters":"Z","index":335},{"label":"枣庄Zaozhuang0623","name":"枣庄","pinyin":"Zaozhuang","zip":"0623","sortLetters":"Z","index":320},{"label":"张家界Zhangjiajie0744","name":"张家界","pinyin":"Zhangjiajie","zip":"0744","sortLetters":"Z","index":321},{"label":"张家口Zhangjiakou0313","name":"张家口","pinyin":"Zhangjiakou","zip":"0313","sortLetters":"Z","index":322},{"label":"张掖Zhangye0936","name":"张掖","pinyin":"Zhangye","zip":"0936","sortLetters":"Z","index":323},{"label":"湛江Zhanjiang0759","name":"湛江","pinyin":"Zhanjiang","zip":"0759","sortLetters":"Z","index":324},{"label":"遵义Zunyi0852","name":"遵义","pinyin":"Zunyi","zip":"0852","sortLetters":"Z","index":336},{"label":"中山Zhongshan0760","name":"中山","pinyin":"Zhongshan","zip":"0760","sortLetters":"Z","index":53},{"label":"珠海Zhuhai0756","name":"珠海","pinyin":"Zhuhai","zip":"0756","sortLetters":"Z","index":54},{"label":"郑州Zhengzhou0371","name":"郑州","pinyin":"Zhengzhou","zip":"0371","sortLetters":"Z","index":52},{"label":"漳州Zhangzhou0596","name":"漳州","pinyin":"Zhangzhou","zip":"0596","sortLetters":"Z","index":51},{"label":"昭通Zhaotong0870","name":"昭通","pinyin":"Zhaotong","zip":"0870","sortLetters":"Z","index":326},{"label":"镇江Zhenjiang0511","name":"镇江","pinyin":"Zhenjiang","zip":"0511","sortLetters":"Z","index":327},{"label":"中卫Zhongwei0955","name":"中卫","pinyin":"Zhongwei","zip":"0955","sortLetters":"Z","index":328},{"label":"赞皇Zanhuang0311","name":"赞皇","pinyin":"Zanhuang","zip":"0311","sortLetters":"Z","index":928},{"label":"增城Zengcheng020","name":"增城","pinyin":"Zengcheng","zip":"020","sortLetters":"Z","index":929},{"label":"张家港Zhangjiagang0512","name":"张家港","pinyin":"Zhangjiagang","zip":"0512","sortLetters":"Z","index":930},{"label":"漳平Zhangping0597","name":"漳平","pinyin":"Zhangping","zip":"0597","sortLetters":"Z","index":931},{"label":"漳浦Zhangpu0596","name":"漳浦","pinyin":"Zhangpu","zip":"0596","sortLetters":"Z","index":932},{"label":"章丘Zhangqiu0531","name":"章丘","pinyin":"Zhangqiu","zip":"0531","sortLetters":"Z","index":933},{"label":"樟树Zhangshu0795","name":"樟树","pinyin":"Zhangshu","zip":"0795","sortLetters":"Z","index":934},{"label":"沾化Zhanhua0543","name":"沾化","pinyin":"Zhanhua","zip":"0543","sortLetters":"Z","index":935},{"label":"赵县Zhaoxian0311","name":"赵县","pinyin":"Zhaoxian","zip":"0311","sortLetters":"Z","index":936},{"label":"招远Zhaoyuan0535","name":"招远","pinyin":"Zhaoyuan","zip":"0535","sortLetters":"Z","index":937},{"label":"正定Zhengding0311","name":"正定","pinyin":"Zhengding","zip":"0311","sortLetters":"Z","index":938},{"label":"政和Zhenghe0599","name":"政和","pinyin":"Zhenghe","zip":"0599","sortLetters":"Z","index":939},{"label":"柘荣Zherong0593","name":"柘荣","pinyin":"Zherong","zip":"0593","sortLetters":"Z","index":940},{"label":"中牟Zhongmou0371","name":"中牟","pinyin":"Zhongmou","zip":"0371","sortLetters":"Z","index":941},{"label":"忠县Zhongxian023","name":"忠县","pinyin":"Zhongxian","zip":"023","sortLetters":"Z","index":942},{"label":"周宁Zhouning0593","name":"周宁","pinyin":"Zhouning","zip":"0593","sortLetters":"Z","index":943},{"label":"周至Zhouzhi029","name":"周至","pinyin":"Zhouzhi","zip":"029","sortLetters":"Z","index":944},{"label":"庄河Zhuanghe0411","name":"庄河","pinyin":"Zhuanghe","zip":"0411","sortLetters":"Z","index":945},{"label":"诸城Zhucheng0536","name":"诸城","pinyin":"Zhucheng","zip":"0536","sortLetters":"Z","index":946},{"label":"诸暨Zhuji0575","name":"诸暨","pinyin":"Zhuji","zip":"0575","sortLetters":"Z","index":947},{"label":"紫金Zijin0762","name":"紫金","pinyin":"Zijin","zip":"0762","sortLetters":"Z","index":948},{"label":"资溪Zixi0794","name":"资溪","pinyin":"Zixi","zip":"0794","sortLetters":"Z","index":949},{"label":"邹城Zoucheng0537","name":"邹城","pinyin":"Zoucheng","zip":"0537","sortLetters":"Z","index":950},{"label":"邹平Zouping0543","name":"邹平","pinyin":"Zouping","zip":"0543","sortLetters":"Z","index":951},{"label":"遵化Zunhua0315","name":"遵化","pinyin":"Zunhua","zip":"0315","sortLetters":"Z","index":952}]}]
--------------------------------------------------------------------------------