├── .gitignore
├── .idea
├── compiler.xml
├── copyright
│ └── profiles_settings.xml
├── encodings.xml
├── gradle.xml
├── misc.xml
├── modules.xml
├── runConfigurations.xml
└── vcs.xml
├── README.md
├── app
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── me
│ │ └── leefeng
│ │ └── citypickerwebview
│ │ └── MainActivity.java
│ └── res
│ ├── layout
│ └── activity_main.xml
│ ├── mipmap-hdpi
│ └── ic_launcher.png
│ ├── mipmap-mdpi
│ └── ic_launcher.png
│ ├── mipmap-xhdpi
│ └── ic_launcher.png
│ ├── mipmap-xxhdpi
│ └── ic_launcher.png
│ ├── mipmap-xxxhdpi
│ └── ic_launcher.png
│ ├── values-w820dp
│ └── dimens.xml
│ └── values
│ ├── colors.xml
│ ├── dimens.xml
│ ├── strings.xml
│ └── styles.xml
├── build.gradle
├── citypicker
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── assets
│ ├── css
│ │ ├── mui.min.css
│ │ ├── mui.picker.css
│ │ └── mui.poppicker.css
│ ├── js
│ │ ├── city.data-3.js
│ │ ├── city.data.js
│ │ ├── mui.min.js
│ │ ├── mui.picker.js
│ │ └── mui.poppicker.js
│ └── page
│ │ └── leefeng.html
│ ├── java
│ └── me
│ │ └── leefeng
│ │ └── citypicker
│ │ ├── CityPicker.java
│ │ ├── CityPickerListener.java
│ │ ├── JavaScriptListener.java
│ │ └── JavaScriptObject.java
│ └── res
│ ├── anim
│ ├── alertview_bgin.xml
│ ├── alertview_bgout.xml
│ ├── slide_in_bottom.xml
│ └── slide_out_bottom.xml
│ ├── layout
│ └── citypickerview.xml
│ └── values
│ └── strings.xml
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | .externalNativeBuild
10 |
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/.idea/copyright/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
19 |
20 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | 1.8
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | 省市县三级联动,JS实现
3 |
4 | 
5 |
6 |
7 | * 爱生活,爱学习,更爱做代码的搬运工,分类查找更方便请下载黑马助手app
8 |
9 |
10 | 
11 |
12 |
13 | 开源地址:[https://github.com/open-android/CityPickerWebView](https://github.com/open-android/CityPickerWebView)
14 |
15 |
16 | 简书:[http://www.jianshu.com/p/979983c6b0fe](http://www.jianshu.com/p/979983c6b0fe "地址")
17 |
18 |
19 |
20 | ## 使用步骤
21 |
22 |
23 | ### 1. 在project的build.gradle添加如下代码(如下图)
24 |
25 | allprojects {
26 | repositories {
27 | maven { url "https://jitpack.io" }
28 | }
29 | }
30 | 
31 |
32 |
33 | ### 2. 在Module的build.gradle添加依赖
34 |
35 |
36 | compile 'com.github.open-android:CityPickerWebView:0.1.0'
37 |
38 |
39 | ### 3.在Activity当中实现implements CityPickerListener监听器并且复制如下内容
40 |
41 |
42 | cityPicker = new CityPicker(MainActivity.this, this);
43 | findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
44 | @Override
45 | public void onClick(View view) {
46 | cityPicker.show();
47 | }
48 | });
49 | textView = (TextView) findViewById(R.id.textView);
50 | findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {
51 | @Override
52 | public void onClick(View view) {
53 | cityPicker.close();
54 | }
55 | });
56 |
57 | @Override
58 | public void getCity(final String name) {
59 | textView.setText(name);
60 | }
61 |
62 | @Override
63 | public void onBackPressed() {
64 | if (cityPicker.isShow()){
65 | cityPicker.close();
66 | return;
67 | }
68 | super.onBackPressed();
69 | }
70 |
71 | 详细的使用方法在DEMO里面都演示啦,如果你觉得这个库还不错,请赏我一颗star吧~~~
72 |
73 | 欢迎关注微信公众号
74 |
75 | 
76 |
77 |
78 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 24
5 | buildToolsVersion "23.0.3"
6 | defaultConfig {
7 | applicationId "me.leefeng.citypickerwebview"
8 | minSdkVersion 14
9 | targetSdkVersion 24
10 | versionCode 1
11 | versionName "1.0"
12 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | }
21 |
22 | dependencies {
23 | compile fileTree(include: ['*.jar'], dir: 'libs')
24 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
25 | exclude group: 'com.android.support', module: 'support-annotations'
26 | })
27 | compile 'com.android.support:appcompat-v7:24.2.0'
28 | testCompile 'junit:junit:4.12'
29 | compile project(':citypicker')
30 | }
31 |
--------------------------------------------------------------------------------
/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 /Users/limxing/Library/Android/sdk/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 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/app/src/main/java/me/leefeng/citypickerwebview/MainActivity.java:
--------------------------------------------------------------------------------
1 | package me.leefeng.citypickerwebview;
2 |
3 | import android.support.v7.app.AppCompatActivity;
4 | import android.os.Bundle;
5 | import android.view.View;
6 | import android.widget.TextView;
7 |
8 | import me.leefeng.citypicker.CityPicker;
9 | import me.leefeng.citypicker.CityPickerListener;
10 |
11 | public class MainActivity extends AppCompatActivity implements CityPickerListener {
12 |
13 | private TextView textView;
14 | private CityPicker cityPicker;
15 |
16 | @Override
17 | protected void onCreate(Bundle savedInstanceState) {
18 | super.onCreate(savedInstanceState);
19 | setContentView(R.layout.activity_main);
20 | cityPicker = new CityPicker(MainActivity.this, this);
21 | findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
22 | @Override
23 | public void onClick(View view) {
24 | cityPicker.show();
25 | }
26 | });
27 | textView = (TextView) findViewById(R.id.textView);
28 | findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {
29 | @Override
30 | public void onClick(View view) {
31 | cityPicker.close();
32 | }
33 | });
34 | }
35 |
36 | @Override
37 | public void getCity(final String name) {
38 | textView.setText(name);
39 | }
40 |
41 | @Override
42 | public void onBackPressed() {
43 | if (cityPicker.isShow()){
44 | cityPicker.close();
45 | return;
46 | }
47 | super.onBackPressed();
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
18 |
19 |
27 |
28 |
38 |
39 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-android/CityPickerWebView/b690f60c14b89033493b27861b6443f5057bbdc2/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-android/CityPickerWebView/b690f60c14b89033493b27861b6443f5057bbdc2/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-android/CityPickerWebView/b690f60c14b89033493b27861b6443f5057bbdc2/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-android/CityPickerWebView/b690f60c14b89033493b27861b6443f5057bbdc2/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-android/CityPickerWebView/b690f60c14b89033493b27861b6443f5057bbdc2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | CityPickerWebView
3 |
4 |
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:2.2.2'
9 | classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' // Add this line
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | jcenter()
18 | }
19 | }
20 |
21 | task clean(type: Delete) {
22 | delete rootProject.buildDir
23 | }
24 |
--------------------------------------------------------------------------------
/citypicker/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/citypicker/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'com.github.dcendents.android-maven'//固定不变
3 | group='com.github.open-android'//itcastsh:github账号
4 | android {
5 | compileSdkVersion 24
6 | buildToolsVersion "23.0.3"
7 |
8 | defaultConfig {
9 | minSdkVersion 14
10 | targetSdkVersion 24
11 | versionCode 1
12 | versionName "1.0"
13 |
14 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
15 |
16 | }
17 | buildTypes {
18 | release {
19 | minifyEnabled false
20 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
21 | }
22 | }
23 | }
24 |
25 | dependencies {
26 | compile fileTree(dir: 'libs', include: ['*.jar'])
27 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
28 | exclude group: 'com.android.support', module: 'support-annotations'
29 | })
30 | compile 'com.android.support:appcompat-v7:24.2.0'
31 | testCompile 'junit:junit:4.12'
32 | }
33 |
--------------------------------------------------------------------------------
/citypicker/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 /Users/limxing/Library/Android/sdk/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 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/citypicker/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/citypicker/src/main/assets/css/mui.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * =====================================================
3 | * Mui v3.3.0 (http://dev.dcloud.net.cn/mui)
4 | * =====================================================
5 | *//*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{font:inherit;margin:0;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{margin:0 2px;padding:.35em .625em .75em;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}*{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;outline:0;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}body{font-family:'Helvetica Neue',Helvetica,sans-serif;font-size:17px;line-height:21px;color:#000;background-color:#efeff4;-webkit-overflow-scrolling:touch}a{text-decoration:none;color:#007aff}a:active{color:#0062cc}.mui-content{background-color:#efeff4;-webkit-overflow-scrolling:touch}.mui-bar-nav~.mui-content{padding-top:44px}.mui-bar-nav~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{top:44px}.mui-bar-header-secondary~.mui-content{padding-top:88px}.mui-bar-header-secondary~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{top:88px}.mui-bar-footer~.mui-content{padding-bottom:44px}.mui-bar-footer~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{bottom:44px}.mui-bar-footer-secondary~.mui-content{padding-bottom:88px}.mui-bar-footer-secondary~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{bottom:88px}.mui-bar-tab~.mui-content{padding-bottom:50px}.mui-bar-tab~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{bottom:50px}.mui-bar-footer-secondary-tab~.mui-content{padding-bottom:94px}.mui-bar-footer-secondary-tab~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{bottom:94px}.mui-content-padded{margin:10px}.mui-inline{display:inline-block;vertical-align:top}.mui-block{display:block!important}.mui-visibility{visibility:visible!important}.mui-hidden{display:none!important}.mui-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mui-ellipsis-2{display:-webkit-box;overflow:hidden;white-space:normal!important;text-overflow:ellipsis;word-wrap:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical}.mui-table{display:table;width:100%;table-layout:fixed}.mui-table-cell{position:relative;display:table-cell}.mui-text-left{text-align:left!important}.mui-text-center{text-align:center!important}.mui-text-justify{text-align:justify!important}.mui-text-right{text-align:right!important}.mui-pull-left{float:left}.mui-pull-right{float:right}.mui-list-unstyled{padding-left:0;list-style:none}.mui-list-inline{margin-left:-5px;padding-left:0;list-style:none}.mui-list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}.mui-clearfix:after,.mui-clearfix:before{display:table;content:' '}.mui-clearfix:after{clear:both}.mui-bg-primary{background-color:#007aff}.mui-bg-positive{background-color:#4cd964}.mui-bg-negative{background-color:#dd524d}.mui-error{margin:88px 35px;padding:10px;border-radius:6px;background-color:#bbb}.mui-subtitle{font-size:15px}h1,h2,h3,h4,h5,h6{line-height:1;margin-top:5px;margin-bottom:5px}.mui-h1,h1{font-size:36px}.mui-h2,h2{font-size:30px}.mui-h3,h3{font-size:24px}.mui-h4,h4{font-size:18px}.mui-h5,h5{font-size:14px;font-weight:400;color:#8f8f94}.mui-h6,h6{font-size:12px;font-weight:400;color:#8f8f94}p{font-size:14px;margin-top:0;margin-bottom:10px;color:#8f8f94}.mui-row:after,.mui-row:before{display:table;content:' '}.mui-row:after{clear:both}.mui-col-sm-1,.mui-col-sm-10,.mui-col-sm-11,.mui-col-sm-12,.mui-col-sm-2,.mui-col-sm-3,.mui-col-sm-4,.mui-col-sm-5,.mui-col-sm-6,.mui-col-sm-7,.mui-col-sm-8,.mui-col-sm-9,.mui-col-xs-1,.mui-col-xs-10,.mui-col-xs-11,.mui-col-xs-12,.mui-col-xs-2,.mui-col-xs-3,.mui-col-xs-4,.mui-col-xs-5,.mui-col-xs-6,.mui-col-xs-7,.mui-col-xs-8,.mui-col-xs-9{position:relative;min-height:1px}.mui-row>[class*=mui-col-]{float:left}.mui-col-xs-12{width:100%}.mui-col-xs-11{width:91.66666667%}.mui-col-xs-10{width:83.33333333%}.mui-col-xs-9{width:75%}.mui-col-xs-8{width:66.66666667%}.mui-col-xs-7{width:58.33333333%}.mui-col-xs-6{width:50%}.mui-col-xs-5{width:41.66666667%}.mui-col-xs-4{width:33.33333333%}.mui-col-xs-3{width:25%}.mui-col-xs-2{width:16.66666667%}.mui-col-xs-1{width:8.33333333%}@media (min-width:400px){.mui-col-sm-12{width:100%}.mui-col-sm-11{width:91.66666667%}.mui-col-sm-10{width:83.33333333%}.mui-col-sm-9{width:75%}.mui-col-sm-8{width:66.66666667%}.mui-col-sm-7{width:58.33333333%}.mui-col-sm-6{width:50%}.mui-col-sm-5{width:41.66666667%}.mui-col-sm-4{width:33.33333333%}.mui-col-sm-3{width:25%}.mui-col-sm-2{width:16.66666667%}.mui-col-sm-1{width:8.33333333%}}.mui-scroll-wrapper{position:absolute;z-index:2;top:0;bottom:0;left:0;overflow:hidden;width:100%}.mui-scroll{position:absolute;z-index:1;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0)}.mui-scrollbar{position:absolute;z-index:9998;overflow:hidden;-webkit-transition:500ms;transition:500ms;transform:translateZ(0px);pointer-events:none;opacity:0}.mui-scrollbar-vertical{top:0;right:1px;bottom:2px;width:4px}.mui-scrollbar-vertical .mui-scrollbar-indicator{width:100%}.mui-scrollbar-horizontal{right:2px;bottom:0;left:2px;height:4px}.mui-scrollbar-horizontal .mui-scrollbar-indicator{height:100%}.mui-scrollbar-indicator{position:absolute;display:block;box-sizing:border-box;-webkit-transition:.01s cubic-bezier(.1,.57,.1,1);transition:.01s cubic-bezier(.1,.57,.1,1);transform:translate(0px,0) translateZ(0px);border:1px solid rgba(255,255,255,.80196);border-radius:2px;background:rgba(0,0,0,.39804)}.mui-plus-pullrefresh .mui-fullscreen .mui-scroll-wrapper .mui-scroll-wrapper,.mui-plus-pullrefresh .mui-fullscreen .mui-slider-group .mui-scroll-wrapper{position:absolute;top:0;bottom:0;left:0;overflow:hidden;width:100%}.mui-plus-pullrefresh .mui-fullscreen .mui-scroll-wrapper .mui-scroll,.mui-plus-pullrefresh .mui-fullscreen .mui-slider-group .mui-scroll{position:absolute;width:100%}.mui-plus-pullrefresh .mui-scroll-wrapper,.mui-plus-pullrefresh .mui-slider-group{position:static;top:auto;bottom:auto;left:auto;overflow:auto;width:auto}.mui-plus-pullrefresh .mui-slider-group{overflow:visible}.mui-plus-pullrefresh .mui-scroll{position:static;width:auto}.mui-off-canvas-wrap .mui-bar{position:absolute!important;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-box-shadow:none;box-shadow:none}.mui-off-canvas-wrap{position:relative;z-index:1;overflow:hidden;width:100%;height:100%}.mui-off-canvas-wrap .mui-inner-wrap{position:relative;z-index:1;width:100%;height:100%}.mui-off-canvas-wrap .mui-inner-wrap.mui-transitioning{-webkit-transition:-webkit-transform 350ms;transition:transform 350ms cubic-bezier(.165,.84,.44,1)}.mui-off-canvas-wrap .mui-inner-wrap .mui-off-canvas-left{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.mui-off-canvas-wrap .mui-inner-wrap .mui-off-canvas-right{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.mui-off-canvas-wrap.mui-active{overflow:hidden;height:100%}.mui-off-canvas-wrap.mui-active .mui-off-canvas-backdrop{position:absolute;z-index:998;top:0;right:0;bottom:0;left:0;display:block;transition:background 350ms cubic-bezier(.165,.84,.44,1);background:rgba(0,0,0,.4);box-shadow:-4px 0 4px rgba(0,0,0,.5),4px 0 4px rgba(0,0,0,.5);-webkit-tap-highlight-color:transparent}.mui-off-canvas-wrap.mui-slide-in .mui-off-canvas-right{z-index:10000!important;-webkit-transform:translate3d(100%,0,0)}.mui-off-canvas-wrap.mui-slide-in .mui-off-canvas-left{z-index:10000!important;-webkit-transform:translate3d(-100%,0,0)}.mui-off-canvas-left,.mui-off-canvas-right{position:absolute;z-index:-1;top:0;bottom:0;visibility:hidden;box-sizing:content-box;width:70%;min-height:100%;background:#333;-webkit-overflow-scrolling:touch}.mui-off-canvas-left.mui-transitioning,.mui-off-canvas-right.mui-transitioning{-webkit-transition:-webkit-transform 350ms cubic-bezier(.165,.84,.44,1);transition:transform 350ms cubic-bezier(.165,.84,.44,1)}.mui-off-canvas-left{left:0}.mui-off-canvas-right{right:0}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable{background-color:#333}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-left,.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-right{width:80%;-webkit-transform:scale(.8);transform:scale(.8);opacity:.1}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-left.mui-transitioning,.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-right.mui-transitioning{-webkit-transition:-webkit-transform 350ms cubic-bezier(.165,.84,.44,1),opacity 350ms cubic-bezier(.165,.84,.44,1);transition:transform 350ms cubic-bezier(.165,.84,.44,1),opacity 350ms cubic-bezier(.165,.84,.44,1)}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-left{-webkit-transform-origin:-100%;transform-origin:-100%}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-right{-webkit-transform-origin:200%;transform-origin:200%}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active>.mui-inner-wrap{-webkit-transform:scale(.8);transform:scale(.8)}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active>.mui-off-canvas-left,.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active>.mui-off-canvas-right{-webkit-transform:scale(1);transform:scale(1);opacity:1}.mui-loading .mui-spinner{display:block;margin:0 auto}.mui-spinner{display:inline-block;width:24px;height:24px;-webkit-transform-origin:50%;transform-origin:50%;-webkit-animation:spinner-spin 1s step-end infinite;animation:spinner-spin 1s step-end infinite}.mui-spinner:after{display:block;width:100%;height:100%;content:'';background-image:url('data:image/svg+xml;charset=utf-8,');background-repeat:no-repeat;background-position:50%;background-size:100%}.mui-spinner-white:after{background-image:url('data:image/svg+xml;charset=utf-8,')}@-webkit-keyframes spinner-spin{0%{-webkit-transform:rotate(0deg)}8.33333333%{-webkit-transform:rotate(30deg)}16.66666667%{-webkit-transform:rotate(60deg)}25%{-webkit-transform:rotate(90deg)}33.33333333%{-webkit-transform:rotate(120deg)}41.66666667%{-webkit-transform:rotate(150deg)}50%{-webkit-transform:rotate(180deg)}58.33333333%{-webkit-transform:rotate(210deg)}66.66666667%{-webkit-transform:rotate(240deg)}75%{-webkit-transform:rotate(270deg)}83.33333333%{-webkit-transform:rotate(300deg)}91.66666667%{-webkit-transform:rotate(330deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes spinner-spin{0%{transform:rotate(0deg)}8.33333333%{transform:rotate(30deg)}16.66666667%{transform:rotate(60deg)}25%{transform:rotate(90deg)}33.33333333%{transform:rotate(120deg)}41.66666667%{transform:rotate(150deg)}50%{transform:rotate(180deg)}58.33333333%{transform:rotate(210deg)}66.66666667%{transform:rotate(240deg)}75%{transform:rotate(270deg)}83.33333333%{transform:rotate(300deg)}91.66666667%{transform:rotate(330deg)}100%{transform:rotate(360deg)}}.mui-btn,button,input[type=button],input[type=reset],input[type=submit]{font-size:14px;font-weight:400;line-height:1.42;position:relative;display:inline-block;margin-bottom:0;padding:6px 12px;cursor:pointer;-webkit-transition:all;transition:all;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transition-duration:.2s;transition-duration:.2s;text-align:center;vertical-align:top;white-space:nowrap;color:#333;border:1px solid #ccc;border-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;background-color:#fff;background-clip:padding-box}.mui-btn.mui-active:enabled,.mui-btn:enabled:active,button.mui-active:enabled,button:enabled:active,input[type=button].mui-active:enabled,input[type=button]:enabled:active,input[type=reset].mui-active:enabled,input[type=reset]:enabled:active,input[type=submit].mui-active:enabled,input[type=submit]:enabled:active{color:#fff;background-color:#929292}.mui-btn.mui-disabled,.mui-btn:disabled,button.mui-disabled,button:disabled,input[type=button].mui-disabled,input[type=button]:disabled,input[type=reset].mui-disabled,input[type=reset]:disabled,input[type=submit].mui-disabled,input[type=submit]:disabled{opacity:.6}.mui-btn-blue,.mui-btn-primary,input[type=submit]{color:#fff;border:1px solid #007aff;background-color:#007aff}.mui-btn-blue.mui-active:enabled,.mui-btn-blue:enabled:active,.mui-btn-primary.mui-active:enabled,.mui-btn-primary:enabled:active,input[type=submit].mui-active:enabled,input[type=submit]:enabled:active{color:#fff;border:1px solid #0062cc;background-color:#0062cc}.mui-btn-green,.mui-btn-positive,.mui-btn-success{color:#fff;border:1px solid #4cd964;background-color:#4cd964}.mui-btn-green.mui-active:enabled,.mui-btn-green:enabled:active,.mui-btn-positive.mui-active:enabled,.mui-btn-positive:enabled:active,.mui-btn-success.mui-active:enabled,.mui-btn-success:enabled:active{color:#fff;border:1px solid #2ac845;background-color:#2ac845}.mui-btn-warning,.mui-btn-yellow{color:#fff;border:1px solid #f0ad4e;background-color:#f0ad4e}.mui-btn-warning.mui-active:enabled,.mui-btn-warning:enabled:active,.mui-btn-yellow.mui-active:enabled,.mui-btn-yellow:enabled:active{color:#fff;border:1px solid #ec971f;background-color:#ec971f}.mui-btn-danger,.mui-btn-negative,.mui-btn-red{color:#fff;border:1px solid #dd524d;background-color:#dd524d}.mui-btn-danger.mui-active:enabled,.mui-btn-danger:enabled:active,.mui-btn-negative.mui-active:enabled,.mui-btn-negative:enabled:active,.mui-btn-red.mui-active:enabled,.mui-btn-red:enabled:active{color:#fff;border:1px solid #cf2d28;background-color:#cf2d28}.mui-btn-purple,.mui-btn-royal{color:#fff;border:1px solid #8a6de9;background-color:#8a6de9}.mui-btn-purple.mui-active:enabled,.mui-btn-purple:enabled:active,.mui-btn-royal.mui-active:enabled,.mui-btn-royal:enabled:active{color:#fff;border:1px solid #6641e2;background-color:#6641e2}.mui-btn-grey{color:#fff;border:1px solid #c7c7cc;background-color:#c7c7cc}.mui-btn-grey.mui-active:enabled,.mui-btn-grey:enabled:active{color:#fff;border:1px solid #acacb4;background-color:#acacb4}.mui-btn-outlined{background-color:transparent}.mui-btn-outlined.mui-btn-blue,.mui-btn-outlined.mui-btn-primary{color:#007aff}.mui-btn-outlined.mui-btn-green,.mui-btn-outlined.mui-btn-positive,.mui-btn-outlined.mui-btn-success{color:#4cd964}.mui-btn-outlined.mui-btn-warning,.mui-btn-outlined.mui-btn-yellow{color:#f0ad4e}.mui-btn-outlined.mui-btn-danger,.mui-btn-outlined.mui-btn-negative,.mui-btn-outlined.mui-btn-red{color:#dd524d}.mui-btn-outlined.mui-btn-purple,.mui-btn-outlined.mui-btn-royal{color:#8a6de9}.mui-btn-outlined.mui-btn-blue:enabled:active,.mui-btn-outlined.mui-btn-danger:enabled:active,.mui-btn-outlined.mui-btn-green:enabled:active,.mui-btn-outlined.mui-btn-negative:enabled:active,.mui-btn-outlined.mui-btn-positive:enabled:active,.mui-btn-outlined.mui-btn-primary:enabled:active,.mui-btn-outlined.mui-btn-purple:enabled:active,.mui-btn-outlined.mui-btn-red:enabled:active,.mui-btn-outlined.mui-btn-royal:enabled:active,.mui-btn-outlined.mui-btn-success:enabled:active,.mui-btn-outlined.mui-btn-warning:enabled:active,.mui-btn-outlined.mui-btn-yellow:enabled:active{color:#fff}.mui-btn-link{padding-top:6px;padding-bottom:6px;color:#007aff;border:0;background-color:transparent}.mui-btn-link.mui-active:enabled,.mui-btn-link:enabled:active{color:#0062cc;background-color:transparent}.mui-btn-block{font-size:18px;display:block;width:100%;margin-bottom:10px;padding:15px 0}.mui-btn .mui-badge{font-size:14px;margin:-2px -4px -2px 4px;background-color:rgba(0,0,0,.15)}.mui-btn .mui-badge-inverted,.mui-btn:enabled:active .mui-badge-inverted{background-color:transparent}.mui-btn-negative:enabled:active .mui-badge-inverted,.mui-btn-positive:enabled:active .mui-badge-inverted,.mui-btn-primary:enabled:active .mui-badge-inverted{color:#fff}.mui-btn-block .mui-badge{position:absolute;right:0;margin-right:10px}.mui-btn .mui-icon{font-size:inherit}.mui-btn.mui-icon{font-size:14px;line-height:1.42}.mui-btn.mui-fab{width:56px;height:56px;padding:16px;border-radius:50%;outline:0}.mui-btn.mui-fab.mui-btn-mini{width:40px;height:40px;padding:8px}.mui-btn.mui-fab .mui-icon{font-size:24px;line-height:24px;width:24px;height:24px}.mui-bar{position:fixed;z-index:10;right:0;left:0;height:44px;padding-right:10px;padding-left:10px;border-bottom:0;background-color:#f7f7f7;-webkit-box-shadow:0 0 1px rgba(0,0,0,.85);box-shadow:0 0 1px rgba(0,0,0,.85);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mui-bar .mui-title{right:40px;left:40px;display:inline-block;overflow:hidden;width:auto;margin:0;text-overflow:ellipsis}.mui-bar .mui-backdrop{background:0 0}.mui-bar-header-secondary{top:44px}.mui-bar-footer{bottom:0}.mui-bar-footer-secondary{bottom:44px}.mui-bar-footer-secondary-tab{bottom:50px}.mui-bar-footer,.mui-bar-footer-secondary,.mui-bar-footer-secondary-tab{border-top:0}.mui-bar-transparent{top:0;background-color:rgba(247,247,247,0);-webkit-box-shadow:none;box-shadow:none}.mui-bar-nav{top:0;-webkit-box-shadow:0 1px 6px #ccc;box-shadow:0 1px 6px #ccc}.mui-bar-nav~.mui-content .mui-anchor{display:block;visibility:hidden;height:45px;margin-top:-45px}.mui-bar-nav.mui-bar .mui-icon{margin-right:-10px;margin-left:-10px;padding-right:10px;padding-left:10px}.mui-title{font-size:17px;font-weight:500;line-height:44px;position:absolute;display:block;width:100%;margin:0 -10px;padding:0;text-align:center;white-space:nowrap;color:#000}.mui-title a{color:inherit}.mui-bar-tab{bottom:0;display:table;width:100%;height:50px;padding:0;table-layout:fixed;border-top:0;border-bottom:0;-webkit-touch-callout:none}.mui-bar-tab .mui-tab-item{display:table-cell;overflow:hidden;width:1%;height:50px;text-align:center;vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;color:#929292}.mui-bar-tab .mui-tab-item.mui-active{color:#007aff}.mui-bar-tab .mui-tab-item .mui-icon{top:3px;width:24px;height:24px;padding-top:0;padding-bottom:0}.mui-bar-tab .mui-tab-item .mui-icon~.mui-tab-label{font-size:11px;display:block;overflow:hidden;text-overflow:ellipsis}.mui-bar-tab .mui-tab-item .mui-icon:active{background:0 0}.mui-focusin>.mui-bar-header-secondary,.mui-focusin>.mui-bar-nav{position:absolute}.mui-focusin>.mui-bar~.mui-content{padding-bottom:0}.mui-bar .mui-btn{font-weight:400;position:relative;z-index:20;top:7px;margin-top:0;padding:6px 12px 7px}.mui-bar .mui-btn.mui-pull-right{margin-left:10px}.mui-bar .mui-btn.mui-pull-left{margin-right:10px}.mui-bar .mui-btn-link{font-size:16px;line-height:44px;top:0;padding:0;color:#007aff;border:0}.mui-bar .mui-btn-link.mui-active,.mui-bar .mui-btn-link:active{color:#0062cc}.mui-bar .mui-btn-block{font-size:16px;top:6px;margin-bottom:0;padding:5px 0}.mui-bar .mui-btn-nav.mui-pull-left{margin-left:-5px}.mui-bar .mui-btn-nav.mui-pull-left .mui-icon-left-nav{margin-right:-3px}.mui-bar .mui-btn-nav.mui-pull-right{margin-right:-5px}.mui-bar .mui-btn-nav.mui-pull-right .mui-icon-right-nav{margin-left:-3px}.mui-bar .mui-btn-nav:active{opacity:.3}.mui-bar .mui-icon{font-size:24px;position:relative;z-index:20;padding-top:10px;padding-bottom:10px}.mui-bar .mui-icon:active{opacity:.3}.mui-bar .mui-btn .mui-icon{top:1px;margin:0;padding:0}.mui-bar .mui-title .mui-icon{margin:0;padding:0}.mui-bar .mui-title .mui-icon.mui-icon-caret{top:4px;margin-left:-5px}.mui-bar input[type=search]{height:29px;margin:6px 0}.mui-bar .mui-input-row .mui-btn{padding:12px 10px}.mui-bar .mui-search:before{margin-top:-10px}.mui-bar .mui-input-row .mui-input-clear~.mui-icon-clear,.mui-bar .mui-input-row .mui-input-speech~.mui-icon-speech{top:0;right:12px}.mui-bar.mui-bar-header-secondary .mui-input-row .mui-input-clear~.mui-icon-clear,.mui-bar.mui-bar-header-secondary .mui-input-row .mui-input-speech~.mui-icon-speech{top:0;right:0}.mui-bar .mui-segmented-control{top:7px;width:auto;margin:0 auto}.mui-bar.mui-bar-header-secondary .mui-segmented-control{top:0}.mui-badge{font-size:12px;line-height:1;display:inline-block;padding:3px 6px;color:#333;border-radius:100px;background-color:rgba(0,0,0,.15)}.mui-badge.mui-badge-inverted{padding:0 5px 0 0;color:#929292;background-color:transparent}.mui-badge-blue,.mui-badge-primary{color:#fff;background-color:#007aff}.mui-badge-blue.mui-badge-inverted,.mui-badge-primary.mui-badge-inverted{color:#007aff;background-color:transparent}.mui-badge-green,.mui-badge-success{color:#fff;background-color:#4cd964}.mui-badge-green.mui-badge-inverted,.mui-badge-success.mui-badge-inverted{color:#4cd964;background-color:transparent}.mui-badge-warning,.mui-badge-yellow{color:#fff;background-color:#f0ad4e}.mui-badge-warning.mui-badge-inverted,.mui-badge-yellow.mui-badge-inverted{color:#f0ad4e;background-color:transparent}.mui-badge-danger,.mui-badge-red{color:#fff;background-color:#dd524d}.mui-badge-danger.mui-badge-inverted,.mui-badge-red.mui-badge-inverted{color:#dd524d;background-color:transparent}.mui-badge-purple,.mui-badge-royal{color:#fff;background-color:#8a6de9}.mui-badge-purple.mui-badge-inverted,.mui-badge-royal.mui-badge-inverted{color:#8a6de9;background-color:transparent}.mui-icon .mui-badge{font-size:10px;line-height:1.4;position:absolute;top:-2px;left:100%;margin-left:-10px;padding:1px 5px;color:#fff;background:red}.mui-card{font-size:14px;position:relative;overflow:hidden;margin:10px;border-radius:2px;background-color:#fff;background-clip:padding-box;box-shadow:0 1px 2px rgba(0,0,0,.3)}.mui-content>.mui-card:first-child{margin-top:15px}.mui-card .mui-input-group .mui-input-row:last-child:after,.mui-card .mui-input-group .mui-input-row:last-child:before,.mui-card .mui-input-group:after,.mui-card .mui-input-group:before{height:0}.mui-card .mui-table-view{margin-bottom:0;border-top:0;border-bottom:0;border-radius:6px}.mui-card .mui-table-view .mui-table-view-cell:first-child,.mui-card .mui-table-view .mui-table-view-divider:first-child{top:0;border-top-left-radius:6px;border-top-right-radius:6px}.mui-card .mui-table-view .mui-table-view-cell:last-child,.mui-card .mui-table-view .mui-table-view-divider:last-child{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.mui-card .mui-table-view:after,.mui-card .mui-table-view:before,.mui-card>.mui-table-view>.mui-table-view-cell:last-child:after,.mui-card>.mui-table-view>.mui-table-view-cell:last-child:before{height:0}.mui-card-footer,.mui-card-header{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;min-height:44px;padding:10px 15px;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.mui-card-footer .mui-card-link,.mui-card-header .mui-card-link{line-height:44px;position:relative;display:-webkit-box;display:-webkit-flex;display:flex;height:44px;margin-top:-10px;margin-bottom:-10px;-webkit-transition-duration:.3s;transition-duration:.3s;text-decoration:none;-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.mui-card-footer:before,.mui-card-header:after{position:absolute;top:0;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-card-header{font-size:17px;border-radius:2px 2px 0 0}.mui-card-header:after{top:auto;bottom:0}.mui-card-header>img:first-child{font-size:0;line-height:0;float:left;width:34px;height:34px}.mui-card-footer{color:#6d6d72;border-radius:0 0 2px 2px}.mui-card-content{font-size:14px;position:relative}.mui-card-content-inner{position:relative;padding:15px}.mui-card-media{vertical-align:bottom;color:#fff;background-position:center;background-size:cover}.mui-card-header.mui-card-media{display:block;padding:10px}.mui-card-header.mui-card-media .mui-media-body{font-size:14px;font-weight:500;line-height:17px;margin-bottom:0;margin-left:44px;color:#333}.mui-card-header.mui-card-media .mui-media-body p{font-size:13px;margin-bottom:0}.mui-table-view{position:relative;margin-top:0;margin-bottom:0;padding-left:0;list-style:none;background-color:#fff}.mui-table-view:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view:before{position:absolute;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc;top:-1px}.mui-table-view-icon .mui-table-view-cell .mui-navigate-right .mui-icon{font-size:20px;margin-top:-1px;margin-right:5px;margin-left:-5px}.mui-table-view-icon .mui-table-view-cell:after{left:40px}.mui-table-view-chevron .mui-table-view-cell{padding-right:65px}.mui-table-view-chevron .mui-table-view-cell>a:not(.mui-btn){margin-right:-65px}.mui-table-view-radio .mui-table-view-cell{padding-right:65px}.mui-table-view-radio .mui-table-view-cell>a:not(.mui-btn){margin-right:-65px}.mui-table-view-radio .mui-table-view-cell .mui-navigate-right:after{font-size:30px;font-weight:600;right:9px;content:'';color:#007aff}.mui-table-view-radio .mui-table-view-cell.mui-selected .mui-navigate-right:after{content:'\e472'}.mui-table-view-inverted{color:#fff;background:#333}.mui-table-view-inverted:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#222}.mui-table-view-inverted:before{position:absolute;top:0;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#222}.mui-table-view-inverted .mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:15px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#222}.mui-table-view-inverted .mui-table-view-cell.mui-active,.mui-table-view-inverted .mui-table-view-cell>a:not(.mui-btn).mui-active{background-color:#242424}.mui-table-view-cell{position:relative;overflow:hidden;padding:11px 15px;-webkit-touch-callout:none}.mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:15px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view-cell.mui-checkbox input[type=checkbox],.mui-table-view-cell.mui-radio input[type=radio]{top:8px}.mui-table-view-cell.mui-checkbox.mui-left,.mui-table-view-cell.mui-radio.mui-left{padding-left:58px}.mui-table-view-cell.mui-active{background-color:#eee}.mui-table-view-cell:last-child:after,.mui-table-view-cell:last-child:before{height:0}.mui-table-view-cell>a:not(.mui-btn){position:relative;display:block;overflow:hidden;margin:-11px -15px;padding:inherit;white-space:nowrap;text-overflow:ellipsis;color:inherit}.mui-table-view-cell>a:not(.mui-btn).mui-active{background-color:#eee}.mui-table-view-cell p{margin-bottom:0}.mui-table-view-cell.mui-transitioning>.mui-slider-handle,.mui-table-view-cell.mui-transitioning>.mui-slider-left .mui-btn,.mui-table-view-cell.mui-transitioning>.mui-slider-right .mui-btn{-webkit-transition:-webkit-transform 300ms ease;transition:transform 300ms ease}.mui-table-view-cell.mui-active>.mui-slider-handle{background-color:#eee}.mui-table-view-cell>.mui-slider-handle{position:relative;background-color:#fff}.mui-table-view-cell>.mui-slider-handle .mui-navigate-right:after,.mui-table-view-cell>.mui-slider-handle.mui-navigate-right:after{right:0}.mui-table-view-cell>.mui-slider-handle,.mui-table-view-cell>.mui-slider-left .mui-btn,.mui-table-view-cell>.mui-slider-right .mui-btn{-webkit-transition:-webkit-transform 0ms ease;transition:transform 0ms ease}.mui-table-view-cell>.mui-slider-left,.mui-table-view-cell>.mui-slider-right{position:absolute;top:0;display:-webkit-box;display:-webkit-flex;display:flex;height:100%}.mui-table-view-cell>.mui-slider-left>.mui-btn,.mui-table-view-cell>.mui-slider-right>.mui-btn{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:flex;padding:0 30px;color:#fff;border:0;border-radius:0;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.mui-table-view-cell>.mui-slider-left>.mui-btn:after,.mui-table-view-cell>.mui-slider-right>.mui-btn:after{position:absolute;z-index:-1;top:0;width:600%;height:100%;content:'';background:inherit}.mui-table-view-cell>.mui-slider-left>.mui-btn.mui-icon,.mui-table-view-cell>.mui-slider-right>.mui-btn.mui-icon{font-size:30px}.mui-table-view-cell>.mui-slider-right{right:0;-webkit-transition:-webkit-transform 0ms ease;transition:transform 0ms ease;-webkit-transform:translateX(100%);transform:translateX(100%)}.mui-table-view-cell>.mui-slider-left{left:0;-webkit-transition:-webkit-transform 0ms ease;transition:transform 0ms ease;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.mui-table-view-cell>.mui-slider-left>.mui-btn:after{right:100%;margin-right:-1px}.mui-table-view-divider{font-weight:500;position:relative;margin-top:-1px;margin-left:0;padding-top:6px;padding-bottom:6px;padding-left:15px;color:#999;background-color:#fafafa}.mui-table-view-divider:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view-divider:before{position:absolute;top:0;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view .mui-media,.mui-table-view .mui-media-body{overflow:hidden}.mui-table-view .mui-media-large .mui-media-object{line-height:80px;max-width:80px;height:80px}.mui-table-view .mui-media .mui-subtitle{color:#000}.mui-table-view .mui-media-object{line-height:42px;max-width:42px;height:42px}.mui-table-view .mui-media-object.mui-pull-left{margin-right:10px}.mui-table-view .mui-media-object.mui-pull-right{margin-left:10px}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object{line-height:29px;max-width:29px;height:29px;margin:-4px 0}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object img{line-height:29px;max-width:29px;height:29px}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object.mui-pull-left{margin-right:10px}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object .mui-icon{font-size:29px}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-body:after{position:absolute;right:0;bottom:0;left:55px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view .mui-table-view-cell.mui-media-icon:after{height:0!important}.mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view{display:block}.mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view:after,.mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view:before{height:0!important}.mui-table-view.mui-unfold .mui-table-view-cell.mui-media-icon.mui-collapse .mui-media-body:after{position:absolute;right:0;bottom:0;left:70px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view-cell>.mui-badge,.mui-table-view-cell>.mui-btn,.mui-table-view-cell>.mui-switch,.mui-table-view-cell>a>.mui-badge,.mui-table-view-cell>a>.mui-btn,.mui-table-view-cell>a>.mui-switch{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.mui-table-view-cell .mui-navigate-right>.mui-badge,.mui-table-view-cell .mui-navigate-right>.mui-btn,.mui-table-view-cell .mui-navigate-right>.mui-switch,.mui-table-view-cell .mui-push-left>.mui-badge,.mui-table-view-cell .mui-push-left>.mui-btn,.mui-table-view-cell .mui-push-left>.mui-switch,.mui-table-view-cell .mui-push-right>.mui-badge,.mui-table-view-cell .mui-push-right>.mui-btn,.mui-table-view-cell .mui-push-right>.mui-switch,.mui-table-view-cell>a .mui-navigate-right>.mui-badge,.mui-table-view-cell>a .mui-navigate-right>.mui-btn,.mui-table-view-cell>a .mui-navigate-right>.mui-switch,.mui-table-view-cell>a .mui-push-left>.mui-badge,.mui-table-view-cell>a .mui-push-left>.mui-btn,.mui-table-view-cell>a .mui-push-left>.mui-switch,.mui-table-view-cell>a .mui-push-right>.mui-badge,.mui-table-view-cell>a .mui-push-right>.mui-btn,.mui-table-view-cell>a .mui-push-right>.mui-switch{right:35px}.mui-content>.mui-table-view:first-child{margin-top:15px}.mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell:last-child:after,.mui-table-view-cell.mui-collapse .mui-table-view:after,.mui-table-view-cell.mui-collapse .mui-table-view:before{height:0}.mui-table-view-cell.mui-collapse>.mui-navigate-right:after,.mui-table-view-cell.mui-collapse>.mui-push-right:after{content:'\e581'}.mui-table-view-cell.mui-collapse.mui-active{margin-top:-1px}.mui-table-view-cell.mui-collapse.mui-active .mui-collapse-content,.mui-table-view-cell.mui-collapse.mui-active .mui-table-view{display:block}.mui-table-view-cell.mui-collapse.mui-active>.mui-navigate-right:after,.mui-table-view-cell.mui-collapse.mui-active>.mui-push-right:after{content:'\e580'}.mui-table-view-cell.mui-collapse.mui-active .mui-table-view-cell>a:not(.mui-btn).mui-active{margin-left:-31px;padding-left:47px}.mui-table-view-cell.mui-collapse .mui-collapse-content{position:relative;display:none;overflow:hidden;margin:11px -15px -11px;padding:8px 15px;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease;background:#fff}.mui-table-view-cell.mui-collapse .mui-collapse-content>.mui-input-group,.mui-table-view-cell.mui-collapse .mui-collapse-content>.mui-slider{width:auto;height:auto;margin:-8px -15px}.mui-table-view-cell.mui-collapse .mui-collapse-content>.mui-slider{margin:-8px -16px}.mui-table-view-cell.mui-collapse .mui-table-view{display:none;margin-top:11px;margin-right:-15px;margin-bottom:-11px;margin-left:-15px;border:0}.mui-table-view-cell.mui-collapse .mui-table-view.mui-table-view-chevron{margin-right:-65px}.mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell{padding-left:31px;background-position:31px 100%}.mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:30px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view.mui-grid-view{font-size:0;display:block;width:100%;padding:0 10px 10px 0;white-space:normal}.mui-table-view.mui-grid-view .mui-table-view-cell{font-size:17px;display:inline-block;margin-right:-4px;padding:10px 0 0 14px;text-align:center;vertical-align:middle;background:0 0}.mui-table-view.mui-grid-view .mui-table-view-cell .mui-media-object{width:100%;max-width:100%;height:auto}.mui-table-view.mui-grid-view .mui-table-view-cell>a:not(.mui-btn){margin:-10px 0 0 -14px}.mui-table-view.mui-grid-view .mui-table-view-cell>a:not(.mui-btn).mui-active,.mui-table-view.mui-grid-view .mui-table-view-cell>a:not(.mui-btn):active{background:0 0}.mui-table-view.mui-grid-view .mui-table-view-cell .mui-media-body{font-size:15px;line-height:15px;display:block;width:100%;height:15px;margin-top:8px;text-overflow:ellipsis;color:#333}.mui-table-view.mui-grid-view .mui-table-view-cell:after,.mui-table-view.mui-grid-view .mui-table-view-cell:before{height:0}.mui-grid-view.mui-grid-9{margin:0;padding:0;border-top:1px solid #eee;border-left:1px solid #eee;background-color:#f2f2f2}.mui-grid-view.mui-grid-9:after,.mui-grid-view.mui-grid-9:before{display:table;content:' '}.mui-grid-view.mui-grid-9:after{clear:both;position:static}.mui-grid-view.mui-grid-9 .mui-table-view-cell{margin:0;padding:11px 15px;vertical-align:top;border-right:1px solid #eee;border-bottom:1px solid #eee}.mui-grid-view.mui-grid-9 .mui-table-view-cell.mui-active{background-color:#eee}.mui-grid-view.mui-grid-9 .mui-table-view-cell>a:not(.mui-btn){margin:0;padding:10px 0}.mui-grid-view.mui-grid-9:before{height:0}.mui-grid-view.mui-grid-9 .mui-media{color:#797979}.mui-grid-view.mui-grid-9 .mui-media .mui-icon{font-size:2.4em;position:relative}.mui-slider-cell{position:relative}.mui-slider-cell>.mui-slider-handle{z-index:1}.mui-slider-cell>.mui-slider-left,.mui-slider-cell>.mui-slider-right{position:absolute;z-index:0;top:0;bottom:0}.mui-slider-cell>.mui-slider-left{left:0}.mui-slider-cell>.mui-slider-right{right:0}input,select,textarea{font-family:'Helvetica Neue',Helvetica,sans-serif;font-size:17px;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}input:focus,select:focus,textarea:focus{-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent;-webkit-user-modify:read-write-plaintext-only}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{line-height:21px;width:100%;height:40px;margin-bottom:15px;padding:10px 15px;-webkit-user-select:text;border:1px solid rgba(0,0,0,.2);border-radius:3px;outline:0;background-color:#fff;-webkit-appearance:none}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}input[type=search]{font-size:16px;-webkit-box-sizing:border-box;box-sizing:border-box;height:34px;text-align:center;border:0;border-radius:6px;background-color:rgba(0,0,0,.1)}input[type=search]:focus{text-align:left}textarea{height:auto;resize:none}select{font-size:14px;height:auto;margin-top:1px;border:0!important;background-color:#fff}select:focus{-webkit-user-modify:read-only}.mui-input-group{position:relative;padding:0;border:0;background-color:#fff}.mui-input-group:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-input-group:before{position:absolute;top:0;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-input-group input,.mui-input-group textarea{margin-bottom:0;border:0;border-radius:0;background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.mui-input-group input[type=search]{background:0 0}.mui-input-group input:last-child{background-image:none}.mui-input-row{clear:left;overflow:hidden}.mui-input-row select{font-size:17px;height:37px;padding:0}.mui-input-row .mui-btn+input,.mui-input-row label+input,.mui-input-row:last-child{background:0 0}.mui-input-group .mui-input-row{height:40px}.mui-input-group .mui-input-row:after{position:absolute;right:0;bottom:0;left:15px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-input-row label{font-family:'Helvetica Neue',Helvetica,sans-serif;line-height:1.1;float:left;width:35%;padding:11px 15px}.mui-input-row label~input,.mui-input-row label~select,.mui-input-row label~textarea{float:right;width:65%;margin-bottom:0;padding-left:0;border:0}.mui-input-row .mui-btn{line-height:1.1;float:right;width:15%;padding:10px 15px}.mui-input-row .mui-btn~input,.mui-input-row .mui-btn~select,.mui-input-row .mui-btn~textarea{float:left;width:85%;margin-bottom:0;padding-left:0;border:0}.mui-button-row{position:relative;padding-top:5px;text-align:center}.mui-input-group .mui-button-row{height:45px}.mui-input-row{position:relative}.mui-input-row.mui-input-range{overflow:visible;padding-right:20px}.mui-input-row .mui-inline{padding:8px 0}.mui-input-row .mui-input-clear~.mui-icon-clear,.mui-input-row .mui-input-password~.mui-icon-eye,.mui-input-row .mui-input-speech~.mui-icon-speech{font-size:20px;position:absolute;z-index:1;top:10px;right:0;width:38px;height:38px;text-align:center;color:#999}.mui-input-row .mui-input-clear~.mui-icon-clear.mui-active,.mui-input-row .mui-input-password~.mui-icon-eye.mui-active,.mui-input-row .mui-input-speech~.mui-icon-speech.mui-active{color:#007aff}.mui-input-row .mui-input-speech~.mui-icon-speech{font-size:24px;top:8px}.mui-input-row .mui-input-clear~.mui-icon-clear~.mui-icon-speech{display:none}.mui-input-row .mui-input-clear~.mui-icon-clear.mui-hidden~.mui-icon-speech{display:inline-block}.mui-input-row .mui-icon-speech~.mui-placeholder{right:38px}.mui-input-row.mui-search .mui-icon-clear{top:7px}.mui-input-row.mui-search .mui-icon-speech{top:5px}.mui-checkbox,.mui-radio{position:relative}.mui-checkbox label,.mui-radio label{display:inline-block;float:none;width:100%;padding-right:58px}.mui-checkbox.mui-left input[type=checkbox],.mui-radio.mui-left input[type=radio]{left:20px}.mui-checkbox.mui-left label,.mui-radio.mui-left label{padding-right:15px;padding-left:58px}.mui-checkbox input[type=checkbox],.mui-radio input[type=radio]{position:absolute;top:4px;right:20px;display:inline-block;width:28px;height:26px;border:0;outline:0!important;background-color:transparent;-webkit-appearance:none}.mui-checkbox input[type=checkbox][disabled]:before,.mui-radio input[type=radio][disabled]:before{opacity:.3}.mui-checkbox input[type=checkbox]:before,.mui-radio input[type=radio]:before{font-family:Muiicons;font-size:28px;font-weight:400;line-height:1;text-decoration:none;color:#aaa;border-radius:0;background:0 0;-webkit-font-smoothing:antialiased}.mui-checkbox input[type=checkbox]:checked:before,.mui-radio input[type=radio]:checked:before{color:#007aff}.mui-checkbox label.mui-disabled,.mui-checkbox.mui-disabled label,.mui-radio label.mui-disabled,.mui-radio.mui-disabled label{opacity:.4}.mui-radio input[type=radio]:before{content:'\e411'}.mui-radio input[type=radio]:checked:before{content:'\e441'}.mui-checkbox input[type=checkbox]:before{content:'\e411'}.mui-checkbox input[type=checkbox]:checked:before{content:'\e442'}.mui-select{position:relative}.mui-select:before{font-family:Muiicons;position:absolute;top:8px;right:21px;content:'\e581';color:rgba(170,170,170,.6)}.mui-input-row .mui-switch{float:right;margin-top:5px;margin-right:20px}.mui-input-range input[type=range]{position:relative;width:100%;height:2px;margin:17px 0;padding:0;cursor:pointer;border:0;border-radius:3px;outline:0;background-color:#999;-webkit-appearance:none!important}.mui-input-range input[type=range]::-webkit-slider-thumb{width:28px;height:28px;border-color:#0062cc;border-radius:50%;background-color:#007aff;background-clip:padding-box;-webkit-appearance:none!important}.mui-input-range label~input[type=range]{width:65%}.mui-input-range .mui-tooltip{font-size:36px;line-height:64px;position:absolute;z-index:1;top:-70px;width:64px;height:64px;text-align:center;opacity:.8;color:#333;border:1px solid #ddd;border-radius:6px;background-color:#fff;text-shadow:0 1px 0 #f3f3f3}.mui-search{position:relative}.mui-search input[type=search]{padding-left:30px}.mui-search .mui-placeholder{font-size:16px;line-height:34px;position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;display:inline-block;height:34px;text-align:center;color:#999;border:0;border-radius:6px;background:0 0}.mui-search .mui-placeholder .mui-icon{font-size:20px;color:#333}.mui-search:before{font-family:Muiicons;font-size:20px;font-weight:400;position:absolute;top:50%;right:50%;display:none;margin-top:-18px;margin-right:31px;content:'\e466'}.mui-search.mui-active:before{font-size:20px;right:auto;left:5px;display:block;margin-right:0}.mui-search.mui-active input[type=search]{text-align:left}.mui-search.mui-active .mui-placeholder{display:none}.mui-segmented-control{font-size:15px;font-weight:400;position:relative;display:table;overflow:hidden;width:100%;table-layout:fixed;border:1px solid #007aff;border-radius:3px;background-color:transparent;-webkit-touch-callout:none}.mui-segmented-control.mui-segmented-control-vertical{border-collapse:collapse;border-width:0;border-radius:0}.mui-segmented-control.mui-segmented-control-vertical .mui-control-item{display:block;border-bottom:1px solid #c8c7cc;border-left-width:0}.mui-segmented-control.mui-scroll-wrapper{height:38px}.mui-segmented-control.mui-scroll-wrapper .mui-scroll{width:auto;height:40px;white-space:nowrap}.mui-segmented-control.mui-scroll-wrapper .mui-control-item{display:inline-block;width:auto;padding:0 20px;border:0}.mui-segmented-control .mui-control-item{line-height:38px;display:table-cell;overflow:hidden;width:1%;-webkit-transition:background-color .1s linear;transition:background-color .1s linear;text-align:center;white-space:nowrap;text-overflow:ellipsis;color:#007aff;border-color:#007aff;border-left:1px solid #007aff}.mui-segmented-control .mui-control-item:first-child{border-left-width:0}.mui-segmented-control .mui-control-item.mui-active{color:#fff;background-color:#007aff}.mui-segmented-control.mui-segmented-control-inverted{width:100%;border:0;border-radius:0}.mui-segmented-control.mui-segmented-control-inverted.mui-segmented-control-vertical .mui-control-item,.mui-segmented-control.mui-segmented-control-inverted.mui-segmented-control-vertical .mui-control-item.mui-active{border-bottom:1px solid #c8c7cc}.mui-segmented-control.mui-segmented-control-inverted .mui-control-item{color:inherit;border:0}.mui-segmented-control.mui-segmented-control-inverted .mui-control-item.mui-active{color:#007aff;border-bottom:2px solid #007aff;background:0 0}.mui-segmented-control.mui-segmented-control-inverted~.mui-slider-progress-bar{background-color:#007aff}.mui-segmented-control-positive{border:1px solid #4cd964}.mui-segmented-control-positive .mui-control-item{color:#4cd964;border-color:inherit}.mui-segmented-control-positive .mui-control-item.mui-active{color:#fff;background-color:#4cd964}.mui-segmented-control-positive.mui-segmented-control-inverted .mui-control-item.mui-active{color:#4cd964;border-bottom:2px solid #4cd964;background:0 0}.mui-segmented-control-positive.mui-segmented-control-inverted~.mui-slider-progress-bar{background-color:#4cd964}.mui-segmented-control-negative{border:1px solid #dd524d}.mui-segmented-control-negative .mui-control-item{color:#dd524d;border-color:inherit}.mui-segmented-control-negative .mui-control-item.mui-active{color:#fff;background-color:#dd524d}.mui-segmented-control-negative.mui-segmented-control-inverted .mui-control-item.mui-active{color:#dd524d;border-bottom:2px solid #dd524d;background:0 0}.mui-segmented-control-negative.mui-segmented-control-inverted~.mui-slider-progress-bar{background-color:#dd524d}.mui-control-content{position:relative;display:none}.mui-control-content.mui-active{display:block}.mui-popover{position:absolute;z-index:999;display:none;width:280px;-webkit-transition:opacity .3s;transition:opacity .3s;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none;opacity:0;border-radius:7px;background-color:#f7f7f7;-webkit-box-shadow:0 0 15px rgba(0,0,0,.1);box-shadow:0 0 15px rgba(0,0,0,.1)}.mui-popover .mui-popover-arrow{position:absolute;z-index:1000;top:-25px;left:0;overflow:hidden;width:26px;height:26px}.mui-popover .mui-popover-arrow:after{position:absolute;top:19px;left:0;width:26px;height:26px;content:' ';-webkit-transform:rotate(45deg);transform:rotate(45deg);border-radius:3px;background:#f7f7f7}.mui-popover .mui-popover-arrow.mui-bottom{top:100%;left:-26px;margin-top:-1px}.mui-popover .mui-popover-arrow.mui-bottom:after{top:-19px;left:0}.mui-popover.mui-popover-action{bottom:0;width:100%;-webkit-transition:-webkit-transform .3s,opacity .3s;transition:transform .3s,opacity .3s;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);border-radius:0;background:0 0;-webkit-box-shadow:none;box-shadow:none}.mui-popover.mui-popover-action .mui-popover-arrow{display:none}.mui-popover.mui-popover-action.mui-popover-bottom{position:fixed}.mui-popover.mui-popover-action.mui-active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.mui-popover.mui-popover-action .mui-table-view{margin:8px;text-align:center;color:#007aff;border-radius:4px}.mui-popover.mui-popover-action .mui-table-view .mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-popover.mui-popover-action .mui-table-view small{font-weight:400;line-height:1.3;display:block}.mui-popover.mui-active{display:block;opacity:1}.mui-popover .mui-bar~.mui-table-view{padding-top:44px}.mui-backdrop{position:fixed;z-index:998;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.3)}.mui-bar-backdrop.mui-backdrop{bottom:50px;background:0 0}.mui-backdrop-action.mui-backdrop{background-color:rgba(0,0,0,.3)}.mui-backdrop-action.mui-backdrop,.mui-bar-backdrop.mui-backdrop{opacity:0}.mui-backdrop-action.mui-backdrop.mui-active,.mui-bar-backdrop.mui-backdrop.mui-active{-webkit-transition:all .4s ease;transition:all .4s ease;opacity:1}.mui-popover .mui-btn-block{margin-bottom:5px}.mui-popover .mui-btn-block:last-child{margin-bottom:0}.mui-popover .mui-bar{-webkit-box-shadow:none;box-shadow:none}.mui-popover .mui-bar-nav{border-bottom:1px solid rgba(0,0,0,.15);border-top-left-radius:12px;border-top-right-radius:12px;-webkit-box-shadow:none;box-shadow:none}.mui-popover .mui-scroll-wrapper{margin:7px 0;border-radius:7px;background-clip:padding-box}.mui-popover .mui-scroll .mui-table-view{max-height:none}.mui-popover .mui-table-view{overflow:auto;max-height:300px;margin-bottom:0;border-radius:7px;background-color:#f7f7f7;background-image:none;-webkit-overflow-scrolling:touch}.mui-popover .mui-table-view:after,.mui-popover .mui-table-view:before{height:0}.mui-popover .mui-table-view .mui-table-view-cell:first-child,.mui-popover .mui-table-view .mui-table-view-cell:first-child>a:not(.mui-btn){border-top-left-radius:12px;border-top-right-radius:12px}.mui-popover .mui-table-view .mui-table-view-cell:last-child,.mui-popover .mui-table-view .mui-table-view-cell:last-child>a:not(.mui-btn){border-bottom-right-radius:12px;border-bottom-left-radius:12px}.mui-popover.mui-bar-popover .mui-table-view{width:106px}.mui-popover.mui-bar-popover .mui-table-view .mui-table-view-cell{padding:11px 15px;background-position:0 100%}.mui-popover.mui-bar-popover .mui-table-view .mui-table-view-cell>a:not(.mui-btn){margin:-11px -15px -11px -15px}.mui-popup-backdrop{position:fixed;z-index:998;top:0;right:0;bottom:0;left:0;-webkit-transition-duration:400ms;transition-duration:400ms;opacity:0;background:rgba(0,0,0,.4)}.mui-popup-backdrop.mui-active{opacity:1}.mui-popup{position:fixed;z-index:10000;top:50%;left:50%;display:none;overflow:hidden;width:270px;-webkit-transition-property:-webkit-transform,opacity;transition-property:transform,opacity;-webkit-transform:translate3d(-50%,-50%,0) scale(1.185);transform:translate3d(-50%,-50%,0) scale(1.185);text-align:center;opacity:0;color:#000;border-radius:13px}.mui-popup.mui-popup-in{display:block;-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transform:translate3d(-50%,-50%,0) scale(1);transform:translate3d(-50%,-50%,0) scale(1);opacity:1}.mui-popup.mui-popup-out{-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transform:translate3d(-50%,-50%,0) scale(1);transform:translate3d(-50%,-50%,0) scale(1);opacity:0}.mui-popup-inner{position:relative;padding:15px;border-radius:13px 13px 0 0;background:rgba(255,255,255,.95)}.mui-popup-inner:after{position:absolute;z-index:15;top:auto;right:auto;bottom:0;left:0;display:block;width:100%;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;background-color:rgba(0,0,0,.2)}.mui-popup-title{font-size:18px;font-weight:500;text-align:center}.mui-popup-title+.mui-popup-text{font-family:inherit;font-size:14px;margin:5px 0 0}.mui-popup-buttons{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;height:44px;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.mui-popup-button{font-size:17px;line-height:44px;position:relative;display:block;overflow:hidden;box-sizing:border-box;width:100%;height:44px;padding:0 5px;cursor:pointer;text-align:center;white-space:nowrap;text-overflow:ellipsis;color:#007aff;background:rgba(255,255,255,.95);-webkit-box-flex:1}.mui-popup-button:after{position:absolute;z-index:15;top:0;right:0;bottom:auto;left:auto;display:block;width:1px;height:100%;content:'';-webkit-transform:scaleX(.5);transform:scaleX(.5);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;background-color:rgba(0,0,0,.2)}.mui-popup-button:first-child{border-radius:0 0 0 13px}.mui-popup-button:first-child:last-child{border-radius:0 0 13px 13px}.mui-popup-button:last-child{border-radius:0 0 13px}.mui-popup-button:last-child:after{display:none}.mui-popup-button.mui-popup-button-bold{font-weight:600}.mui-popup-input input{font-size:14px;width:100%;height:26px;margin:15px 0 0;padding:0 5px;border:1px solid rgba(0,0,0,.3);border-radius:0;background:#fff}.mui-plus.mui-android .mui-popup-backdrop{-webkit-transition-duration:1ms;transition-duration:1ms}.mui-plus.mui-android .mui-popup{-webkit-transition-duration:1ms;transition-duration:1ms;-webkit-transform:translate3d(-50%,-50%,0) scale(1);transform:translate3d(-50%,-50%,0) scale(1)}.mui-progressbar{position:relative;display:block;overflow:hidden;width:100%;height:2px;-webkit-transform-origin:center top;transform-origin:center top;vertical-align:middle;border-radius:2px;background:#b6b6b6;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.mui-progressbar span{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transition:150ms;transition:150ms;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);background:#007aff}.mui-progressbar.mui-progressbar-infinite:before{position:absolute;top:0;left:0;width:100%;height:100%;content:'';-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transform-origin:left center;transform-origin:left center;-webkit-animation:mui-progressbar-infinite 1s linear infinite;animation:mui-progressbar-infinite 1s linear infinite;background:#007aff}body>.mui-progressbar{position:absolute;z-index:10000;top:44px;left:0;border-radius:0}.mui-progressbar-in{-webkit-animation:mui-progressbar-in 300ms forwards;animation:mui-progressbar-in 300ms forwards}.mui-progressbar-out{-webkit-animation:mui-progressbar-out 300ms forwards;animation:mui-progressbar-out 300ms forwards}@-webkit-keyframes mui-progressbar-in{from{-webkit-transform:scaleY(0);opacity:0}to{-webkit-transform:scaleY(1);opacity:1}}@keyframes mui-progressbar-in{from{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}@-webkit-keyframes mui-progressbar-out{from{-webkit-transform:scaleY(1);opacity:1}to{-webkit-transform:scaleY(0);opacity:0}}@keyframes mui-progressbar-out{from{transform:scaleY(1);opacity:1}to{transform:scaleY(0);opacity:0}}@-webkit-keyframes mui-progressbar-infinite{0%{-webkit-transform:translate3d(-50%,0,0) scaleX(.5)}100%{-webkit-transform:translate3d(100%,0,0) scaleX(.5)}}@keyframes mui-progressbar-infinite{0%{transform:translate3d(-50%,0,0) scaleX(.5)}100%{transform:translate3d(100%,0,0) scaleX(.5)}}.mui-pagination{display:inline-block;margin:0 auto;padding-left:0;border-radius:6px}.mui-pagination>li{display:inline}.mui-pagination>li>a,.mui-pagination>li>span{line-height:1.428571429;position:relative;float:left;margin-left:-1px;padding:6px 12px;text-decoration:none;color:#007aff;border:1px solid #ddd;background-color:#fff}.mui-pagination>li:first-child>a,.mui-pagination>li:first-child>span{margin-left:0;border-top-left-radius:6px;border-bottom-left-radius:6px;background-clip:padding-box}.mui-pagination>li:last-child>a,.mui-pagination>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px;background-clip:padding-box}.mui-pagination>li.mui-active>a,.mui-pagination>li.mui-active>a:active,.mui-pagination>li.mui-active>span,.mui-pagination>li.mui-active>span:active,.mui-pagination>li:active>a,.mui-pagination>li:active>a:active,.mui-pagination>li:active>span,.mui-pagination>li:active>span:active{z-index:2;cursor:default;color:#fff;border-color:#007aff;background-color:#007aff}.mui-pagination>li.mui-disabled>a,.mui-pagination>li.mui-disabled>a:active,.mui-pagination>li.mui-disabled>span,.mui-pagination>li.mui-disabled>span:active{opacity:.6;color:#777;border:1px solid #ddd;background-color:#fff}.mui-pagination-lg>li>a,.mui-pagination-lg>li>span{font-size:18px;padding:10px 16px}.mui-pagination-sm>li>a,.mui-pagination-sm>li>span{font-size:12px;padding:5px 10px}.mui-pager{padding-left:0;list-style:none;text-align:center}.mui-pager:after,.mui-pager:before{display:table;content:' '}.mui-pager:after{clear:both}.mui-pager li{display:inline}.mui-pager li>a,.mui-pager li>span{display:inline-block;padding:5px 14px;border:1px solid #ddd;border-radius:6px;background-color:#fff;background-clip:padding-box}.mui-pager li.mui-active>a,.mui-pager li.mui-active>span,.mui-pager li:active>a,.mui-pager li:active>span{cursor:default;text-decoration:none;color:#fff;border-color:#007aff;background-color:#007aff}.mui-pager .mui-next>a,.mui-pager .mui-next>span{float:right}.mui-pager .mui-previous>a,.mui-pager .mui-previous>span{float:left}.mui-pager .mui-disabled>a,.mui-pager .mui-disabled>a:active,.mui-pager .mui-disabled>span,.mui-pager .mui-disabled>span:active{opacity:.6;color:#777;border:1px solid #ddd;background-color:#fff}.mui-modal{position:fixed;z-index:999;top:0;overflow:hidden;width:100%;min-height:100%;-webkit-transition:-webkit-transform .25s,opacity 1ms .25s;transition:transform .25s,opacity 1ms .25s;-webkit-transition-timing-function:cubic-bezier(.1,.5,.1,1);transition-timing-function:cubic-bezier(.1,.5,.1,1);-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);opacity:0;background-color:#fff}.mui-modal.mui-active{height:100%;-webkit-transition:-webkit-transform .25s;transition:transform .25s;-webkit-transition-timing-function:cubic-bezier(.1,.5,.1,1);transition-timing-function:cubic-bezier(.1,.5,.1,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.mui-android .mui-modal .mui-bar{position:static}.mui-android .mui-modal .mui-bar-nav~.mui-content{padding-top:0}.mui-slider{position:relative;z-index:1;overflow:hidden;width:100%}.mui-slider .mui-segmented-control.mui-segmented-control-inverted .mui-control-item.mui-active{border-bottom:0}.mui-slider .mui-segmented-control.mui-segmented-control-inverted~.mui-slider-group .mui-slider-item{border-top:1px solid #c8c7cc;border-bottom:1px solid #c8c7cc}.mui-slider .mui-slider-group{font-size:0;position:relative;-webkit-transition:all 0s linear;transition:all 0s linear;white-space:nowrap}.mui-slider .mui-slider-group .mui-slider-item{font-size:14px;position:relative;display:inline-block;width:100%;height:100%;vertical-align:top;white-space:normal}.mui-slider .mui-slider-group .mui-slider-item>a:not(.mui-control-item){line-height:0;position:relative;display:block}.mui-slider .mui-slider-group .mui-slider-item img{width:100%}.mui-slider .mui-slider-group .mui-slider-item .mui-table-view:after,.mui-slider .mui-slider-group .mui-slider-item .mui-table-view:before{height:0}.mui-slider .mui-slider-group.mui-slider-loop{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}.mui-slider-title{line-height:30px;position:absolute;bottom:0;left:0;width:100%;height:30px;margin:0;text-align:left;text-indent:12px;opacity:.8;background-color:#000}.mui-slider-indicator{position:absolute;bottom:8px;width:100%;text-align:center;background:0 0}.mui-slider-indicator.mui-segmented-control{position:relative;bottom:auto}.mui-slider-indicator .mui-indicator{display:inline-block;width:6px;height:6px;margin:1px 6px;cursor:pointer;border-radius:50%;background:#aaa;-webkit-box-shadow:0 0 1px 1px rgba(130,130,130,.7);box-shadow:0 0 1px 1px rgba(130,130,130,.7)}.mui-slider-indicator .mui-active.mui-indicator{background:#fff}.mui-slider-indicator .mui-icon{font-size:20px;line-height:30px;width:40px;height:30px;margin:3px;text-align:center;border:1px solid #ddd}.mui-slider-indicator .mui-number{line-height:32px;display:inline-block;width:58px}.mui-slider-indicator .mui-number span{color:#ff5053}.mui-slider-progress-bar{z-index:1;height:2px;-webkit-transform:translateZ(0);transform:translateZ(0)}.mui-switch{position:relative;display:block;width:74px;height:30px;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:background-color,border;transition-property:background-color,border;border:2px solid #ddd;border-radius:20px;background-color:#fff;background-clip:padding-box}.mui-switch.mui-disabled{opacity:.3}.mui-switch .mui-switch-handle{position:absolute;z-index:1;top:-1px;left:-1px;width:28px;height:28px;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out;-webkit-transition-property:-webkit-transform,width,left;transition-property:transform,width,left;border-radius:16px;background-color:#fff;background-clip:padding-box;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.4);box-shadow:0 2px 5px rgba(0,0,0,.4)}.mui-switch:before{font-size:13px;position:absolute;top:3px;right:11px;content:'Off';text-transform:uppercase;color:#999}.mui-switch.mui-dragging{border-color:#f7f7f7;background-color:#f7f7f7}.mui-switch.mui-dragging .mui-switch-handle{width:38px}.mui-switch.mui-dragging.mui-active .mui-switch-handle{left:-11px;width:38px}.mui-switch.mui-active{border-color:#4cd964;background-color:#4cd964}.mui-switch.mui-active .mui-switch-handle{-webkit-transform:translate(43px,0);transform:translate(43px,0)}.mui-switch.mui-active:before{right:auto;left:15px;content:'On';color:#fff}.mui-switch input[type=checkbox]{display:none}.mui-switch-mini{width:47px}.mui-switch-mini:before{display:none}.mui-switch-mini.mui-active .mui-switch-handle{-webkit-transform:translate(16px,0);transform:translate(16px,0)}.mui-switch-blue.mui-active{border:2px solid #007aff;background-color:#007aff}.mui-content.mui-fade{left:0;opacity:0}.mui-content.mui-fade.mui-in{opacity:1}.mui-content.mui-sliding{z-index:2;-webkit-transition:-webkit-transform .4s;transition:transform .4s;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.mui-content.mui-sliding.mui-left{z-index:1;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.mui-content.mui-sliding.mui-right{z-index:3;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.mui-navigate-right:after,.mui-push-left:after,.mui-push-right:after{font-family:Muiicons;font-size:inherit;line-height:1;position:absolute;top:50%;display:inline-block;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-decoration:none;color:#bbb;-webkit-font-smoothing:antialiased}.mui-push-left:after{left:15px;content:'\e582'}.mui-navigate-right:after,.mui-push-right:after{right:15px;content:'\e583'}.mui-pull-bottom-pocket,.mui-pull-top-pocket{position:absolute;left:0;display:block;visibility:hidden;overflow:hidden;width:100%;height:50px}.mui-plus-pullrefresh .mui-pull-bottom-pocket,.mui-plus-pullrefresh .mui-pull-top-pocket{display:none;visibility:visible}.mui-pull-top-pocket{top:0}.mui-bar-nav~.mui-content .mui-pull-top-pocket{top:44px}.mui-bar-nav~.mui-bar-header-secondary~.mui-content .mui-pull-top-pocket{top:88px}.mui-pull-bottom-pocket{position:relative;bottom:0;height:40px}.mui-pull-bottom-pocket .mui-pull-loading{visibility:hidden}.mui-pull-bottom-pocket .mui-pull-loading.mui-in{display:inline-block}.mui-pull{font-weight:700;position:absolute;right:0;bottom:10px;left:0;text-align:center;color:#777}.mui-pull-loading{margin-right:10px;-webkit-transition:-webkit-transform .4s;transition:transform .4s;-webkit-transition-duration:400ms;transition-duration:400ms;vertical-align:middle}.mui-pull-loading.mui-reverse{-webkit-transform:rotate(180deg) translateZ(0);transform:rotate(180deg) translateZ(0)}.mui-pull-caption{font-size:15px;line-height:24px;position:relative;display:inline-block;overflow:visible;margin-top:0;vertical-align:middle}.mui-pull-caption span{display:none}.mui-pull-caption span.mui-in{display:inline}.mui-toast-container{position:fixed;z-index:9999;bottom:50px;width:100%;-webkit-transition:opacity .8s;transition:opacity .8s;opacity:0}.mui-toast-container.mui-active{opacity:1}.mui-toast-message{font-size:14px;width:270px;margin:5px auto;padding:5px;text-align:center;color:#000;border-radius:7px;background-color:#d8d8d8}.mui-numbox{position:relative;display:inline-block;overflow:hidden;width:120px;height:35px;padding:0 40px;vertical-align:top;vertical-align:middle;border:solid 1px #bbb;border-radius:3px;background-color:#efeff4}.mui-numbox [class*=btn-numbox],.mui-numbox [class*=numbox-btn]{font-size:18px;font-weight:400;line-height:100%;position:absolute;top:0;overflow:hidden;width:40px;height:100%;padding:0;color:#555;border:none;border-radius:0;background-color:#f9f9f9}.mui-numbox [class*=btn-numbox]:active,.mui-numbox [class*=numbox-btn]:active{background-color:#ccc}.mui-numbox [class*=btn-numbox][disabled],.mui-numbox [class*=numbox-btn][disabled]{color:silver}.mui-numbox .mui-btn-numbox-plus,.mui-numbox .mui-numbox-btn-plus{right:0;border-top-right-radius:3px;border-bottom-right-radius:3px}.mui-numbox .mui-btn-numbox-minus,.mui-numbox .mui-numbox-btn-minus{left:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.mui-numbox .mui-input-numbox,.mui-numbox .mui-numbox-input{display:inline-block;overflow:hidden;width:100%!important;height:100%;margin:0;padding:0 3px!important;text-align:center;text-overflow:ellipsis;word-break:normal;border:none!important;border-right:solid 1px #ccc!important;border-left:solid 1px #ccc!important;border-radius:0!important}.mui-input-row .mui-numbox{float:right;margin:2px 8px}@font-face{font-family:Muiicons;font-weight:400;font-style:normal;src:url(../fonts/mui.ttf) format('truetype')}.mui-icon{font-family:Muiicons;font-size:24px;font-weight:400;font-style:normal;line-height:1;display:inline-block;text-decoration:none;-webkit-font-smoothing:antialiased}.mui-icon.mui-active{color:#007aff}.mui-icon.mui-right:before{float:right;padding-left:.2em}.mui-icon-contact:before{content:'\e100'}.mui-icon-person:before{content:'\e101'}.mui-icon-personadd:before{content:'\e102'}.mui-icon-contact-filled:before{content:'\e130'}.mui-icon-person-filled:before{content:'\e131'}.mui-icon-personadd-filled:before{content:'\e132'}.mui-icon-phone:before{content:'\e200'}.mui-icon-email:before{content:'\e201'}.mui-icon-chatbubble:before{content:'\e202'}.mui-icon-chatboxes:before{content:'\e203'}.mui-icon-phone-filled:before{content:'\e230'}.mui-icon-email-filled:before{content:'\e231'}.mui-icon-chatbubble-filled:before{content:'\e232'}.mui-icon-chatboxes-filled:before{content:'\e233'}.mui-icon-weibo:before{content:'\e260'}.mui-icon-weixin:before{content:'\e261'}.mui-icon-pengyouquan:before{content:'\e262'}.mui-icon-chat:before{content:'\e263'}.mui-icon-qq:before{content:'\e264'}.mui-icon-videocam:before{content:'\e300'}.mui-icon-camera:before{content:'\e301'}.mui-icon-mic:before{content:'\e302'}.mui-icon-location:before{content:'\e303'}.mui-icon-mic-filled:before,.mui-icon-speech:before{content:'\e332'}.mui-icon-location-filled:before{content:'\e333'}.mui-icon-micoff:before{content:'\e360'}.mui-icon-image:before{content:'\e363'}.mui-icon-map:before{content:'\e364'}.mui-icon-compose:before{content:'\e400'}.mui-icon-trash:before{content:'\e401'}.mui-icon-upload:before{content:'\e402'}.mui-icon-download:before{content:'\e403'}.mui-icon-close:before{content:'\e404'}.mui-icon-redo:before{content:'\e405'}.mui-icon-undo:before{content:'\e406'}.mui-icon-refresh:before{content:'\e407'}.mui-icon-star:before{content:'\e408'}.mui-icon-plus:before{content:'\e409'}.mui-icon-minus:before{content:'\e410'}.mui-icon-checkbox:before,.mui-icon-circle:before{content:'\e411'}.mui-icon-clear:before,.mui-icon-close-filled:before{content:'\e434'}.mui-icon-refresh-filled:before{content:'\e437'}.mui-icon-star-filled:before{content:'\e438'}.mui-icon-plus-filled:before{content:'\e439'}.mui-icon-minus-filled:before{content:'\e440'}.mui-icon-circle-filled:before{content:'\e441'}.mui-icon-checkbox-filled:before{content:'\e442'}.mui-icon-closeempty:before{content:'\e460'}.mui-icon-refreshempty:before{content:'\e461'}.mui-icon-reload:before{content:'\e462'}.mui-icon-starhalf:before{content:'\e463'}.mui-icon-spinner:before{content:'\e464'}.mui-icon-spinner-cycle:before{content:'\e465'}.mui-icon-search:before{content:'\e466'}.mui-icon-plusempty:before{content:'\e468'}.mui-icon-forward:before{content:'\e470'}.mui-icon-back:before,.mui-icon-left-nav:before{content:'\e471'}.mui-icon-checkmarkempty:before{content:'\e472'}.mui-icon-home:before{content:'\e500'}.mui-icon-navigate:before{content:'\e501'}.mui-icon-gear:before{content:'\e502'}.mui-icon-paperplane:before{content:'\e503'}.mui-icon-info:before{content:'\e504'}.mui-icon-help:before{content:'\e505'}.mui-icon-locked:before{content:'\e506'}.mui-icon-more:before{content:'\e507'}.mui-icon-flag:before{content:'\e508'}.mui-icon-home-filled:before{content:'\e530'}.mui-icon-gear-filled:before{content:'\e532'}.mui-icon-info-filled:before{content:'\e534'}.mui-icon-help-filled:before{content:'\e535'}.mui-icon-more-filled:before{content:'\e537'}.mui-icon-settings:before{content:'\e560'}.mui-icon-list:before{content:'\e562'}.mui-icon-bars:before{content:'\e563'}.mui-icon-loop:before{content:'\e565'}.mui-icon-paperclip:before{content:'\e567'}.mui-icon-eye:before{content:'\e568'}.mui-icon-arrowup:before{content:'\e580'}.mui-icon-arrowdown:before{content:'\e581'}.mui-icon-arrowleft:before{content:'\e582'}.mui-icon-arrowright:before{content:'\e583'}.mui-icon-arrowthinup:before{content:'\e584'}.mui-icon-arrowthindown:before{content:'\e585'}.mui-icon-arrowthinleft:before{content:'\e586'}.mui-icon-arrowthinright:before{content:'\e587'}.mui-icon-pulldown:before{content:'\e588'}.mui-fullscreen{position:absolute;top:0;right:0;bottom:0;left:0}.mui-fullscreen.mui-slider .mui-slider-group{height:100%}.mui-fullscreen .mui-segmented-control~.mui-slider-group{position:absolute;top:40px;bottom:0;width:100%;height:auto}.mui-fullscreen.mui-slider .mui-slider-item>a{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.mui-fullscreen .mui-off-canvas-wrap .mui-slider-item>a{top:auto;-webkit-transform:none;transform:none}.mui-bar-nav~.mui-content .mui-slider.mui-fullscreen{top:44px}.mui-bar-tab~.mui-content .mui-slider.mui-fullscreen .mui-segmented-control~.mui-slider-group{bottom:50px}.mui-android.mui-android-4-0 input:focus,.mui-android.mui-android-4-0 textarea:focus{-webkit-user-modify:inherit}.mui-android.mui-android-4-2 input,.mui-android.mui-android-4-2 textarea,.mui-android.mui-android-4-3 input,.mui-android.mui-android-4-3 textarea{-webkit-user-select:text}.mui-ios .mui-table-view-cell{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.mui-plus-visible,.mui-wechat-visible{display:none!important}.mui-plus-hidden,.mui-wechat-hidden{display:block!important}.mui-tab-item.mui-plus-hidden,.mui-tab-item.mui-wechat-hidden{display:table-cell!important}.mui-plus .mui-plus-visible,.mui-wechat .mui-wechat-visible{display:block!important}.mui-plus .mui-tab-item.mui-plus-visible,.mui-wechat .mui-tab-item.mui-wechat-visible{display:table-cell!important}.mui-plus .mui-plus-hidden,.mui-wechat .mui-wechat-hidden{display:none!important}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav{height:64px;padding-top:20px}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav~.mui-content{padding-top:64px}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-header-secondary,.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav~.mui-content .mui-pull-top-pocket{top:64px}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-header-secondary~.mui-content{padding-top:94px}.mui-iframe-wrapper{position:absolute;right:0;left:0;-webkit-overflow-scrolling:touch}.mui-iframe-wrapper iframe{width:100%;height:100%;border:0}
--------------------------------------------------------------------------------
/citypicker/src/main/assets/css/mui.picker.css:
--------------------------------------------------------------------------------
1 | /**
2 | * 选择列表插件
3 | * varstion 2.0.0
4 | * by Houfeng
5 | * Houfeng@DCloud.io
6 | */
7 |
8 | .mui-picker {
9 | background-color: #ddd;
10 | position: relative;
11 | height: 200px;
12 | overflow: hidden;
13 | border: solid 1px rgba(0, 0, 0, 0.1);
14 | -webkit-user-select: none;
15 | user-select: none;
16 | box-sizing: border-box;
17 | }
18 | .mui-picker-inner {
19 | box-sizing: border-box;
20 | position: relative;
21 | width: 100%;
22 | height: 100%;
23 | overflow: hidden;
24 | -webkit-mask-box-image: -webkit-linear-gradient(bottom, transparent, transparent 5%, #fff 20%, #fff 80%, transparent 95%, transparent);
25 | -webkit-mask-box-image: linear-gradient(top, transparent, transparent 5%, #fff 20%, #fff 80%, transparent 95%, transparent);
26 | }
27 | .mui-pciker-list,
28 | .mui-pciker-rule {
29 | box-sizing: border-box;
30 | padding: 0px;
31 | margin: 0px;
32 | width: 100%;
33 | height: 36px;
34 | line-height: 36px;
35 | position: absolute;
36 | left: 0px;
37 | top: 50%;
38 | margin-top: -18px;
39 | }
40 | .mui-pciker-rule-bg {
41 | z-index: 0;
42 | /*background-color: #cfd5da;*/
43 | }
44 | .mui-pciker-rule-ft {
45 | z-index: 2;
46 | border-top: solid 1px rgba(0, 0, 0, 0.1);
47 | border-bottom: solid 1px rgba(0, 0, 0, 0.1);
48 | /*-webkit-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);*/
49 | /*box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);*/
50 | }
51 | .mui-pciker-list {
52 | z-index: 1;
53 | -webkit-transform-style: preserve-3d;
54 | transform-style: preserve-3d;
55 | -webkit-transform: perspective(1000px) rotateY(0deg) rotateX(0deg);
56 | transform: perspective(1000px) rotateY(0deg) rotateX(0deg);
57 | }
58 | .mui-pciker-list li {
59 | width: 100%;
60 | height: 100%;
61 | position: absolute;
62 | text-align: center;
63 | vertical-align: middle;
64 | -webkit-backface-visibility: hidden;
65 | backface-visibility: hidden;
66 | overflow: hidden;
67 | box-sizing: border-box;
68 | font-size: 16px;
69 | font-family: "Helvetica Neue", "Helvetica", "Arial", "sans-serif";
70 | color: #888;
71 | padding: 0px 8px;
72 | white-space: nowrap;
73 | -webkit-text-overflow: ellipsis;
74 | text-overflow: ellipsis;
75 | overflow: hidden;
76 | cursor: default;
77 | visibility: hidden;
78 | }
79 | .mui-pciker-list li.highlight,
80 | .mui-pciker-list li.visible {
81 | visibility: visible;
82 | }
83 | .mui-pciker-list li.highlight {
84 | color: #222;
85 | }
--------------------------------------------------------------------------------
/citypicker/src/main/assets/css/mui.poppicker.css:
--------------------------------------------------------------------------------
1 | .mui-poppicker {
2 | position: fixed;
3 | left: 0px;
4 | width: 100%;
5 | z-index: 999;
6 | background-color: #eee;
7 | border-top: solid 1px #ccc;
8 | box-shadow: 0px -5px 7px 0px rgba(0, 0, 0, 0.1);
9 | -webkit-transition: .3s;
10 | bottom: 0px;
11 | -webkit-transform: translateY(300px);
12 | }
13 | .mui-poppicker.mui-active {
14 | -webkit-transform: translateY(0px);
15 | }
16 | .mui-android-5-1 .mui-poppicker {
17 | bottom: -300px;
18 | -webkit-transition-property: bottom;
19 | -webkit-transform: none;
20 | }
21 | .mui-android-5-1 .mui-poppicker.mui-active {
22 | bottom: 0px;
23 | -webkit-transition-property: bottom;
24 | -webkit-transform: none;
25 | }
26 | .mui-poppicker-header {
27 | padding: 6px;
28 | font-size: 14px;
29 | color: #888;
30 | }
31 | .mui-poppicker-header .mui-btn {
32 | font-size: 12px;
33 | padding: 5px 10px;
34 | }
35 | .mui-poppicker-btn-cancel {
36 | float: left;
37 | }
38 | .mui-poppicker-btn-ok {
39 | float: right;
40 | }
41 | .mui-poppicker-clear {
42 | clear: both;
43 | height: 0px;
44 | line-height: 0px;
45 | font-size: 0px;
46 | overflow: hidden;
47 | }
48 | .mui-poppicker-body {
49 | position: relative;
50 | width: 100%;
51 | height: 200px;
52 | border-top: solid 1px #ddd;
53 | /*-webkit-perspective: 1200px;
54 | perspective: 1200px;
55 | -webkit-transform-style: preserve-3d;
56 | transform-style: preserve-3d;*/
57 | }
58 | .mui-poppicker-body .mui-picker {
59 | width: 100%;
60 | height: 100%;
61 | margin: 0px;
62 | border: none;
63 | float: left;
64 | }
--------------------------------------------------------------------------------
/citypicker/src/main/assets/js/city.data.js:
--------------------------------------------------------------------------------
1 | var cityData = [{
2 | value: '110000',
3 | text: '北京市',
4 | children: [{
5 | value: "110101",
6 | text: "东城区"
7 | }, {
8 | value: "110102",
9 | text: "西城区"
10 | }, {
11 | value: "110103",
12 | text: "崇文区"
13 | }, {
14 | value: "110104",
15 | text: "宣武区"
16 | }, {
17 | value: "110105",
18 | text: "朝阳区"
19 | }, {
20 | value: "110106",
21 | text: "丰台区"
22 | }, {
23 | value: "110107",
24 | text: "石景山区"
25 | }, {
26 | value: "110108",
27 | text: "海淀区"
28 | }, {
29 | value: "110109",
30 | text: "门头沟区"
31 | }, {
32 | value: "110111",
33 | text: "房山区"
34 | }, {
35 | value: "110112",
36 | text: "通州区"
37 | }, {
38 | value: "110113",
39 | text: "顺义区"
40 | }, {
41 | value: "110114",
42 | text: "昌平区"
43 | }, {
44 | value: "110115",
45 | text: "大兴区"
46 | }, {
47 | value: "110116",
48 | text: "怀柔区"
49 | }, {
50 | value: "110117",
51 | text: "平谷区"
52 | }, {
53 | value: "110228",
54 | text: "密云县"
55 | }, {
56 | value: "110229",
57 | text: "延庆县"
58 | }, {
59 | value: "110230",
60 | text: "其它区"
61 | }]
62 | }, {
63 | value: '120000',
64 | text: '天津市',
65 | children: [{
66 | value: "120101",
67 | text: "和平区"
68 | }, {
69 | value: "120102",
70 | text: "河东区"
71 | }, {
72 | value: "120103",
73 | text: "河西区"
74 | }, {
75 | value: "120104",
76 | text: "南开区"
77 | }, {
78 | value: "120105",
79 | text: "河北区"
80 | }, {
81 | value: "120106",
82 | text: "红桥区"
83 | }, {
84 | value: "120107",
85 | text: "塘沽区"
86 | }, {
87 | value: "120108",
88 | text: "汉沽区"
89 | }, {
90 | value: "120109",
91 | text: "大港区"
92 | }, {
93 | value: "120110",
94 | text: "东丽区"
95 | }, {
96 | value: "120111",
97 | text: "西青区"
98 | }, {
99 | value: "120112",
100 | text: "津南区"
101 | }, {
102 | value: "120113",
103 | text: "北辰区"
104 | }, {
105 | value: "120114",
106 | text: "武清区"
107 | }, {
108 | value: "120115",
109 | text: "宝坻区"
110 | }, {
111 | value: "120116",
112 | text: "滨海新区"
113 | }, {
114 | value: "120221",
115 | text: "宁河县"
116 | }, {
117 | value: "120223",
118 | text: "静海县"
119 | }, {
120 | value: "120225",
121 | text: "蓟县"
122 | }, {
123 | value: "120226",
124 | text: "其它区"
125 | }]
126 | }, {
127 | value: '130000',
128 | text: '河北省',
129 | children: [{
130 | value: "130100",
131 | text: "石家庄市"
132 | }, {
133 | value: "130200",
134 | text: "唐山市"
135 | }, {
136 | value: "130300",
137 | text: "秦皇岛市"
138 | }, {
139 | value: "130400",
140 | text: "邯郸市"
141 | }, {
142 | value: "130500",
143 | text: "邢台市"
144 | }, {
145 | value: "130600",
146 | text: "保定市"
147 | }, {
148 | value: "130700",
149 | text: "张家口市"
150 | }, {
151 | value: "130800",
152 | text: "承德市"
153 | }, {
154 | value: "130900",
155 | text: "沧州市"
156 | }, {
157 | value: "131000",
158 | text: "廊坊市"
159 | }, {
160 | value: "131100",
161 | text: "衡水市"
162 | }]
163 | }, {
164 | value: '140000',
165 | text: '山西省',
166 | children: [{
167 | value: "140100",
168 | text: "太原市"
169 | }, {
170 | value: "140200",
171 | text: "大同市"
172 | }, {
173 | value: "140300",
174 | text: "阳泉市"
175 | }, {
176 | value: "140400",
177 | text: "长治市"
178 | }, {
179 | value: "140500",
180 | text: "晋城市"
181 | }, {
182 | value: "140600",
183 | text: "朔州市"
184 | }, {
185 | value: "140700",
186 | text: "晋中市"
187 | }, {
188 | value: "140800",
189 | text: "运城市"
190 | }, {
191 | value: "140900",
192 | text: "忻州市"
193 | }, {
194 | value: "141000",
195 | text: "临汾市"
196 | }, {
197 | value: "141100",
198 | text: "吕梁市"
199 | }]
200 | }, {
201 | value: '150000',
202 | text: '内蒙古',
203 | children: [{
204 | value: "150100",
205 | text: "呼和浩特市"
206 | }, {
207 | value: "150200",
208 | text: "包头市"
209 | }, {
210 | value: "150300",
211 | text: "乌海市"
212 | }, {
213 | value: "150400",
214 | text: "赤峰市"
215 | }, {
216 | value: "150500",
217 | text: "通辽市"
218 | }, {
219 | value: "150600",
220 | text: "鄂尔多斯市"
221 | }, {
222 | value: "150700",
223 | text: "呼伦贝尔市"
224 | }, {
225 | value: "150800",
226 | text: "巴彦淖尔市"
227 | }, {
228 | value: "150900",
229 | text: "乌兰察布市"
230 | }, {
231 | value: "152200",
232 | text: "兴安盟"
233 | }, {
234 | value: "152500",
235 | text: "锡林郭勒盟"
236 | }, {
237 | value: "152900",
238 | text: "阿拉善盟"
239 | }]
240 | }, {
241 | value: '210000',
242 | text: '辽宁省',
243 | children: [{
244 | value: "210100",
245 | text: "沈阳市"
246 | }, {
247 | value: "210200",
248 | text: "大连市"
249 | }, {
250 | value: "210300",
251 | text: "鞍山市"
252 | }, {
253 | value: "210400",
254 | text: "抚顺市"
255 | }, {
256 | value: "210500",
257 | text: "本溪市"
258 | }, {
259 | value: "210600",
260 | text: "丹东市"
261 | }, {
262 | value: "210700",
263 | text: "锦州市"
264 | }, {
265 | value: "210800",
266 | text: "营口市"
267 | }, {
268 | value: "210900",
269 | text: "阜新市"
270 | }, {
271 | value: "211000",
272 | text: "辽阳市"
273 | }, {
274 | value: "211100",
275 | text: "盘锦市"
276 | }, {
277 | value: "211200",
278 | text: "铁岭市"
279 | }, {
280 | value: "211300",
281 | text: "朝阳市"
282 | }, {
283 | value: "211400",
284 | text: "葫芦岛市"
285 | }]
286 | }, {
287 | value: '220000',
288 | text: '吉林省',
289 | children: [{
290 | value: "220100",
291 | text: "长春市"
292 | }, {
293 | value: "220200",
294 | text: "吉林市"
295 | }, {
296 | value: "220300",
297 | text: "四平市"
298 | }, {
299 | value: "220400",
300 | text: "辽源市"
301 | }, {
302 | value: "220500",
303 | text: "通化市"
304 | }, {
305 | value: "220600",
306 | text: "白山市"
307 | }, {
308 | value: "220700",
309 | text: "松原市"
310 | }, {
311 | value: "220800",
312 | text: "白城市"
313 | }, {
314 | value: "222400",
315 | text: "延边朝鲜族自治州"
316 | }]
317 | }, {
318 | value: '230000',
319 | text: '黑龙江省',
320 | children: [{
321 | value: "230100",
322 | text: "哈尔滨市"
323 | }, {
324 | value: "230200",
325 | text: "齐齐哈尔市"
326 | }, {
327 | value: "230300",
328 | text: "鸡西市"
329 | }, {
330 | value: "230400",
331 | text: "鹤岗市"
332 | }, {
333 | value: "230500",
334 | text: "双鸭山市"
335 | }, {
336 | value: "230600",
337 | text: "大庆市"
338 | }, {
339 | value: "230700",
340 | text: "伊春市"
341 | }, {
342 | value: "230800",
343 | text: "佳木斯市"
344 | }, {
345 | value: "230900",
346 | text: "七台河市"
347 | }, {
348 | value: "231000",
349 | text: "牡丹江市"
350 | }, {
351 | value: "231100",
352 | text: "黑河市"
353 | }, {
354 | value: "231200",
355 | text: "绥化市"
356 | }, {
357 | value: "232700",
358 | text: "大兴安岭地区"
359 | }]
360 | }, {
361 | value: '310000',
362 | text: '上海市',
363 | children: [{
364 | value: "310101",
365 | text: "黄浦区"
366 | }, {
367 | value: "310103",
368 | text: "卢湾区"
369 | }, {
370 | value: "310104",
371 | text: "徐汇区"
372 | }, {
373 | value: "310105",
374 | text: "长宁区"
375 | }, {
376 | value: "310106",
377 | text: "静安区"
378 | }, {
379 | value: "310107",
380 | text: "普陀区"
381 | }, {
382 | value: "310108",
383 | text: "闸北区"
384 | }, {
385 | value: "310109",
386 | text: "虹口区"
387 | }, {
388 | value: "310110",
389 | text: "杨浦区"
390 | }, {
391 | value: "310112",
392 | text: "闵行区"
393 | }, {
394 | value: "310113",
395 | text: "宝山区"
396 | }, {
397 | value: "310114",
398 | text: "嘉定区"
399 | }, {
400 | value: "310115",
401 | text: "浦东新区"
402 | }, {
403 | value: "310116",
404 | text: "金山区"
405 | }, {
406 | value: "310117",
407 | text: "松江区"
408 | }, {
409 | value: "310118",
410 | text: "青浦区"
411 | }, {
412 | value: "310119",
413 | text: "南汇区"
414 | }, {
415 | value: "310120",
416 | text: "奉贤区"
417 | }, {
418 | value: "310152",
419 | text: "川沙区"
420 | }, {
421 | value: "310230",
422 | text: "崇明县"
423 | }, {
424 | value: "310231",
425 | text: "其它区"
426 | }]
427 | }, {
428 | value: '320000',
429 | text: '江苏省',
430 | children: [{
431 | value: "320100",
432 | text: "南京市"
433 | }, {
434 | value: "320200",
435 | text: "无锡市"
436 | }, {
437 | value: "320300",
438 | text: "徐州市"
439 | }, {
440 | value: "320400",
441 | text: "常州市"
442 | }, {
443 | value: "320500",
444 | text: "苏州市"
445 | }, {
446 | value: "320600",
447 | text: "南通市"
448 | }, {
449 | value: "320700",
450 | text: "连云港市"
451 | }, {
452 | value: "320800",
453 | text: "淮安市"
454 | }, {
455 | value: "320900",
456 | text: "盐城市"
457 | }, {
458 | value: "321000",
459 | text: "扬州市"
460 | }, {
461 | value: "321100",
462 | text: "镇江市"
463 | }, {
464 | value: "321200",
465 | text: "泰州市"
466 | }, {
467 | value: "321300",
468 | text: "宿迁市"
469 | }]
470 | }, {
471 | value: '330000',
472 | text: '浙江省',
473 | children: [{
474 | value: "330100",
475 | text: "杭州市"
476 | }, {
477 | value: "330200",
478 | text: "宁波市"
479 | }, {
480 | value: "330300",
481 | text: "温州市"
482 | }, {
483 | value: "330400",
484 | text: "嘉兴市"
485 | }, {
486 | value: "330500",
487 | text: "湖州市"
488 | }, {
489 | value: "330600",
490 | text: "绍兴市"
491 | }, {
492 | value: "330700",
493 | text: "金华市"
494 | }, {
495 | value: "330800",
496 | text: "衢州市"
497 | }, {
498 | value: "330900",
499 | text: "舟山市"
500 | }, {
501 | value: "331000",
502 | text: "台州市"
503 | }, {
504 | value: "331100",
505 | text: "丽水市"
506 | }]
507 | }, {
508 | value: '340000',
509 | text: '安徽省',
510 | children: [{
511 | value: "340100",
512 | text: "合肥市"
513 | }, {
514 | value: "340200",
515 | text: "芜湖市"
516 | }, {
517 | value: "340300",
518 | text: "蚌埠市"
519 | }, {
520 | value: "340400",
521 | text: "淮南市"
522 | }, {
523 | value: "340500",
524 | text: "马鞍山市"
525 | }, {
526 | value: "340600",
527 | text: "淮北市"
528 | }, {
529 | value: "340700",
530 | text: "铜陵市"
531 | }, {
532 | value: "340800",
533 | text: "安庆市"
534 | }, {
535 | value: "341000",
536 | text: "黄山市"
537 | }, {
538 | value: "341100",
539 | text: "滁州市"
540 | }, {
541 | value: "341200",
542 | text: "阜阳市"
543 | }, {
544 | value: "341300",
545 | text: "宿州市"
546 | }, {
547 | value: "341500",
548 | text: "六安市"
549 | }, {
550 | value: "341600",
551 | text: "亳州市"
552 | }, {
553 | value: "341700",
554 | text: "池州市"
555 | }, {
556 | value: "341800",
557 | text: "宣城市"
558 | }]
559 | }, {
560 | value: '350000',
561 | text: '福建省',
562 | children: [{
563 | value: "350100",
564 | text: "福州市"
565 | }, {
566 | value: "350200",
567 | text: "厦门市"
568 | }, {
569 | value: "350300",
570 | text: "莆田市"
571 | }, {
572 | value: "350400",
573 | text: "三明市"
574 | }, {
575 | value: "350500",
576 | text: "泉州市"
577 | }, {
578 | value: "350600",
579 | text: "漳州市"
580 | }, {
581 | value: "350700",
582 | text: "南平市"
583 | }, {
584 | value: "350800",
585 | text: "龙岩市"
586 | }, {
587 | value: "350900",
588 | text: "宁德市"
589 | }]
590 | }, {
591 | value: '360000',
592 | text: '江西省',
593 | children: [{
594 | value: "360100",
595 | text: "南昌市"
596 | }, {
597 | value: "360200",
598 | text: "景德镇市"
599 | }, {
600 | value: "360300",
601 | text: "萍乡市"
602 | }, {
603 | value: "360400",
604 | text: "九江市"
605 | }, {
606 | value: "360500",
607 | text: "新余市"
608 | }, {
609 | value: "360600",
610 | text: "鹰潭市"
611 | }, {
612 | value: "360700",
613 | text: "赣州市"
614 | }, {
615 | value: "360800",
616 | text: "吉安市"
617 | }, {
618 | value: "360900",
619 | text: "宜春市"
620 | }, {
621 | value: "361000",
622 | text: "抚州市"
623 | }, {
624 | value: "361100",
625 | text: "上饶市"
626 | }]
627 | }, {
628 | value: '370000',
629 | text: '山东省',
630 | children: [{
631 | value: "370100",
632 | text: "济南市"
633 | }, {
634 | value: "370200",
635 | text: "青岛市"
636 | }, {
637 | value: "370300",
638 | text: "淄博市"
639 | }, {
640 | value: "370400",
641 | text: "枣庄市"
642 | }, {
643 | value: "370500",
644 | text: "东营市"
645 | }, {
646 | value: "370600",
647 | text: "烟台市"
648 | }, {
649 | value: "370700",
650 | text: "潍坊市"
651 | }, {
652 | value: "370800",
653 | text: "济宁市"
654 | }, {
655 | value: "370900",
656 | text: "泰安市"
657 | }, {
658 | value: "371000",
659 | text: "威海市"
660 | }, {
661 | value: "371100",
662 | text: "日照市"
663 | }, {
664 | value: "371200",
665 | text: "莱芜市"
666 | }, {
667 | value: "371300",
668 | text: "临沂市"
669 | }, {
670 | value: "371400",
671 | text: "德州市"
672 | }, {
673 | value: "371500",
674 | text: "聊城市"
675 | }, {
676 | value: "371600",
677 | text: "滨州市"
678 | }, {
679 | value: "371700",
680 | text: "菏泽市"
681 | }]
682 | }, {
683 | value: '410000',
684 | text: '河南省',
685 | children: [{
686 | value: "410100",
687 | text: "郑州市"
688 | }, {
689 | value: "410200",
690 | text: "开封市"
691 | }, {
692 | value: "410300",
693 | text: "洛阳市"
694 | }, {
695 | value: "410400",
696 | text: "平顶山市"
697 | }, {
698 | value: "410500",
699 | text: "安阳市"
700 | }, {
701 | value: "410600",
702 | text: "鹤壁市"
703 | }, {
704 | value: "410700",
705 | text: "新乡市"
706 | }, {
707 | value: "410800",
708 | text: "焦作市"
709 | }, {
710 | value: "410881",
711 | text: "济源市"
712 | }, {
713 | value: "410900",
714 | text: "濮阳市"
715 | }, {
716 | value: "411000",
717 | text: "许昌市"
718 | }, {
719 | value: "411100",
720 | text: "漯河市"
721 | }, {
722 | value: "411200",
723 | text: "三门峡市"
724 | }, {
725 | value: "411300",
726 | text: "南阳市"
727 | }, {
728 | value: "411400",
729 | text: "商丘市"
730 | }, {
731 | value: "411500",
732 | text: "信阳市"
733 | }, {
734 | value: "411600",
735 | text: "周口市"
736 | }, {
737 | value: "411700",
738 | text: "驻马店市"
739 | }]
740 | }, {
741 | value: '420000',
742 | text: '湖北省',
743 | children: [{
744 | value: "420100",
745 | text: "武汉市"
746 | }, {
747 | value: "420200",
748 | text: "黄石市"
749 | }, {
750 | value: "420300",
751 | text: "十堰市"
752 | }, {
753 | value: "420500",
754 | text: "宜昌市"
755 | }, {
756 | value: "420600",
757 | text: "襄阳市"
758 | }, {
759 | value: "420700",
760 | text: "鄂州市"
761 | }, {
762 | value: "420800",
763 | text: "荆门市"
764 | }, {
765 | value: "420900",
766 | text: "孝感市"
767 | }, {
768 | value: "421000",
769 | text: "荆州市"
770 | }, {
771 | value: "421100",
772 | text: "黄冈市"
773 | }, {
774 | value: "421200",
775 | text: "咸宁市"
776 | }, {
777 | value: "421300",
778 | text: "随州市"
779 | }, {
780 | value: "422800",
781 | text: "恩施土家族苗族自治州"
782 | }, {
783 | value: "429004",
784 | text: "仙桃市"
785 | }, {
786 | value: "429005",
787 | text: "潜江市"
788 | }, {
789 | value: "429006",
790 | text: "天门市"
791 | }, {
792 | value: "429021",
793 | text: "神农架林区"
794 | }]
795 | }, {
796 | value: '430000',
797 | text: '湖南省',
798 | children: [{
799 | value: "430100",
800 | text: "长沙市"
801 | }, {
802 | value: "430200",
803 | text: "株洲市"
804 | }, {
805 | value: "430300",
806 | text: "湘潭市"
807 | }, {
808 | value: "430400",
809 | text: "衡阳市"
810 | }, {
811 | value: "430500",
812 | text: "邵阳市"
813 | }, {
814 | value: "430600",
815 | text: "岳阳市"
816 | }, {
817 | value: "430700",
818 | text: "常德市"
819 | }, {
820 | value: "430800",
821 | text: "张家界市"
822 | }, {
823 | value: "430900",
824 | text: "益阳市"
825 | }, {
826 | value: "431000",
827 | text: "郴州市"
828 | }, {
829 | value: "431100",
830 | text: "永州市"
831 | }, {
832 | value: "431200",
833 | text: "怀化市"
834 | }, {
835 | value: "431300",
836 | text: "娄底市"
837 | }, {
838 | value: "433100",
839 | text: "湘西土家族苗族自治州"
840 | }]
841 | }, {
842 | value: '440000',
843 | text: '广东省',
844 | children: [{
845 | value: "440100",
846 | text: "广州市"
847 | }, {
848 | value: "440200",
849 | text: "韶关市"
850 | }, {
851 | value: "440300",
852 | text: "深圳市"
853 | }, {
854 | value: "440400",
855 | text: "珠海市"
856 | }, {
857 | value: "440500",
858 | text: "汕头市"
859 | }, {
860 | value: "440600",
861 | text: "佛山市"
862 | }, {
863 | value: "440700",
864 | text: "江门市"
865 | }, {
866 | value: "440800",
867 | text: "湛江市"
868 | }, {
869 | value: "440900",
870 | text: "茂名市"
871 | }, {
872 | value: "441200",
873 | text: "肇庆市"
874 | }, {
875 | value: "441300",
876 | text: "惠州市"
877 | }, {
878 | value: "441400",
879 | text: "梅州市"
880 | }, {
881 | value: "441500",
882 | text: "汕尾市"
883 | }, {
884 | value: "441600",
885 | text: "河源市"
886 | }, {
887 | value: "441700",
888 | text: "阳江市"
889 | }, {
890 | value: "441800",
891 | text: "清远市"
892 | }, {
893 | value: "441900",
894 | text: "东莞市"
895 | }, {
896 | value: "442000",
897 | text: "中山市"
898 | }, {
899 | value: "445100",
900 | text: "潮州市"
901 | }, {
902 | value: "445200",
903 | text: "揭阳市"
904 | }, {
905 | value: "445300",
906 | text: "云浮市"
907 | }]
908 | }, {
909 | value: '450000',
910 | text: '广西壮族',
911 | children: [{
912 | value: "450100",
913 | text: "南宁市"
914 | }, {
915 | value: "450200",
916 | text: "柳州市"
917 | }, {
918 | value: "450300",
919 | text: "桂林市"
920 | }, {
921 | value: "450400",
922 | text: "梧州市"
923 | }, {
924 | value: "450500",
925 | text: "北海市"
926 | }, {
927 | value: "450600",
928 | text: "防城港市"
929 | }, {
930 | value: "450700",
931 | text: "钦州市"
932 | }, {
933 | value: "450800",
934 | text: "贵港市"
935 | }, {
936 | value: "450900",
937 | text: "玉林市"
938 | }, {
939 | value: "451000",
940 | text: "百色市"
941 | }, {
942 | value: "451100",
943 | text: "贺州市"
944 | }, {
945 | value: "451200",
946 | text: "河池市"
947 | }, {
948 | value: "451300",
949 | text: "来宾市"
950 | }, {
951 | value: "451400",
952 | text: "崇左市"
953 | }]
954 | }, {
955 | value: '460000',
956 | text: '海南省',
957 | children: [{
958 | value: "460100",
959 | text: "海口市"
960 | }, {
961 | value: "460200",
962 | text: "三亚市"
963 | }, {
964 | value: "469001",
965 | text: "五指山市"
966 | }, {
967 | value: "469002",
968 | text: "琼海市"
969 | }, {
970 | value: "469003",
971 | text: "儋州市"
972 | }, {
973 | value: "469005",
974 | text: "文昌市"
975 | }, {
976 | value: "469006",
977 | text: "万宁市"
978 | }, {
979 | value: "469007",
980 | text: "东方市"
981 | }, {
982 | value: "469025",
983 | text: "定安县"
984 | }, {
985 | value: "469026",
986 | text: "屯昌县"
987 | }, {
988 | value: "469027",
989 | text: "澄迈县"
990 | }, {
991 | value: "469028",
992 | text: "临高县"
993 | }, {
994 | value: "469030",
995 | text: "白沙黎族自治县"
996 | }, {
997 | value: "469031",
998 | text: "昌江黎族自治县"
999 | }, {
1000 | value: "469033",
1001 | text: "乐东黎族自治县"
1002 | }, {
1003 | value: "469034",
1004 | text: "陵水黎族自治县"
1005 | }, {
1006 | value: "469035",
1007 | text: "保亭黎族苗族自治县"
1008 | }, {
1009 | value: "469036",
1010 | text: "琼中黎族苗族自治县"
1011 | }, {
1012 | value: "469037",
1013 | text: "西沙群岛"
1014 | }, {
1015 | value: "469038",
1016 | text: "南沙群岛"
1017 | }, {
1018 | value: "469039",
1019 | text: "中沙群岛的岛礁及其海域"
1020 | }]
1021 | }, {
1022 | value: '500000',
1023 | text: '重庆',
1024 | children: [{
1025 | value: "500101",
1026 | text: "万州区"
1027 | }, {
1028 | value: "500102",
1029 | text: "涪陵区"
1030 | }, {
1031 | value: "500103",
1032 | text: "渝中区"
1033 | }, {
1034 | value: "500104",
1035 | text: "大渡口区"
1036 | }, {
1037 | value: "500105",
1038 | text: "江北区"
1039 | }, {
1040 | value: "500106",
1041 | text: "沙坪坝区"
1042 | }, {
1043 | value: "500107",
1044 | text: "九龙坡区"
1045 | }, {
1046 | value: "500108",
1047 | text: "南岸区"
1048 | }, {
1049 | value: "500109",
1050 | text: "北碚区"
1051 | }, {
1052 | value: "500110",
1053 | text: "万盛区"
1054 | }, {
1055 | value: "500111",
1056 | text: "双桥区"
1057 | }, {
1058 | value: "500112",
1059 | text: "渝北区"
1060 | }, {
1061 | value: "500113",
1062 | text: "巴南区"
1063 | }, {
1064 | value: "500114",
1065 | text: "黔江区"
1066 | }, {
1067 | value: "500115",
1068 | text: "长寿区"
1069 | }, {
1070 | value: "500222",
1071 | text: "綦江县"
1072 | }, {
1073 | value: "500223",
1074 | text: "潼南县"
1075 | }, {
1076 | value: "500224",
1077 | text: "铜梁县"
1078 | }, {
1079 | value: "500225",
1080 | text: "大足县"
1081 | }, {
1082 | value: "500226",
1083 | text: "荣昌县"
1084 | }, {
1085 | value: "500227",
1086 | text: "璧山县"
1087 | }, {
1088 | value: "500228",
1089 | text: "梁平县"
1090 | }, {
1091 | value: "500229",
1092 | text: "城口县"
1093 | }, {
1094 | value: "500230",
1095 | text: "丰都县"
1096 | }, {
1097 | value: "500231",
1098 | text: "垫江县"
1099 | }, {
1100 | value: "500232",
1101 | text: "武隆县"
1102 | }, {
1103 | value: "500233",
1104 | text: "忠县"
1105 | }, {
1106 | value: "500234",
1107 | text: "开县"
1108 | }, {
1109 | value: "500235",
1110 | text: "云阳县"
1111 | }, {
1112 | value: "500236",
1113 | text: "奉节县"
1114 | }, {
1115 | value: "500237",
1116 | text: "巫山县"
1117 | }, {
1118 | value: "500238",
1119 | text: "巫溪县"
1120 | }, {
1121 | value: "500240",
1122 | text: "石柱土家族自治县"
1123 | }, {
1124 | value: "500241",
1125 | text: "秀山土家族苗族自治县"
1126 | }, {
1127 | value: "500242",
1128 | text: "酉阳土家族苗族自治县"
1129 | }, {
1130 | value: "500243",
1131 | text: "彭水苗族土家族自治县"
1132 | }, {
1133 | value: "500381",
1134 | text: "江津区"
1135 | }, {
1136 | value: "500382",
1137 | text: "合川区"
1138 | }, {
1139 | value: "500383",
1140 | text: "永川区"
1141 | }, {
1142 | value: "500384",
1143 | text: "南川区"
1144 | }, {
1145 | value: "500385",
1146 | text: "其它区"
1147 | }]
1148 | }, {
1149 | value: '510000',
1150 | text: '四川省',
1151 | children: [{
1152 | value: "510100",
1153 | text: "成都市"
1154 | }, {
1155 | value: "510300",
1156 | text: "自贡市"
1157 | }, {
1158 | value: "510400",
1159 | text: "攀枝花市"
1160 | }, {
1161 | value: "510500",
1162 | text: "泸州市"
1163 | }, {
1164 | value: "510600",
1165 | text: "德阳市"
1166 | }, {
1167 | value: "510700",
1168 | text: "绵阳市"
1169 | }, {
1170 | value: "510800",
1171 | text: "广元市"
1172 | }, {
1173 | value: "510900",
1174 | text: "遂宁市"
1175 | }, {
1176 | value: "511000",
1177 | text: "内江市"
1178 | }, {
1179 | value: "511100",
1180 | text: "乐山市"
1181 | }, {
1182 | value: "511300",
1183 | text: "南充市"
1184 | }, {
1185 | value: "511400",
1186 | text: "眉山市"
1187 | }, {
1188 | value: "511500",
1189 | text: "宜宾市"
1190 | }, {
1191 | value: "511600",
1192 | text: "广安市"
1193 | }, {
1194 | value: "511700",
1195 | text: "达州市"
1196 | }, {
1197 | value: "511800",
1198 | text: "雅安市"
1199 | }, {
1200 | value: "511900",
1201 | text: "巴中市"
1202 | }, {
1203 | value: "512000",
1204 | text: "资阳市"
1205 | }, {
1206 | value: "513200",
1207 | text: "阿坝藏族羌族自治州"
1208 | }, {
1209 | value: "513300",
1210 | text: "甘孜藏族自治州"
1211 | }, {
1212 | value: "513400",
1213 | text: "凉山彝族自治州"
1214 | }]
1215 | }, {
1216 | value: '520000',
1217 | text: '贵州省',
1218 | children: [{
1219 | value: "520100",
1220 | text: "贵阳市"
1221 | }, {
1222 | value: "520200",
1223 | text: "六盘水市"
1224 | }, {
1225 | value: "520300",
1226 | text: "遵义市"
1227 | }, {
1228 | value: "520400",
1229 | text: "安顺市"
1230 | }, {
1231 | value: "522200",
1232 | text: "铜仁地区"
1233 | }, {
1234 | value: "522300",
1235 | text: "黔西南布依族苗族自治州"
1236 | }, {
1237 | value: "522400",
1238 | text: "毕节地区"
1239 | }, {
1240 | value: "522600",
1241 | text: "黔东南苗族侗族自治州"
1242 | }, {
1243 | value: "522700",
1244 | text: "黔南布依族苗族自治州"
1245 | }]
1246 | }, {
1247 | value: '530000',
1248 | text: '云南省',
1249 | children: [{
1250 | value: "530100",
1251 | text: "昆明市"
1252 | }, {
1253 | value: "530300",
1254 | text: "曲靖市"
1255 | }, {
1256 | value: "530400",
1257 | text: "玉溪市"
1258 | }, {
1259 | value: "530500",
1260 | text: "保山市"
1261 | }, {
1262 | value: "530600",
1263 | text: "昭通市"
1264 | }, {
1265 | value: "530700",
1266 | text: "丽江市"
1267 | }, {
1268 | value: "530800",
1269 | text: "普洱市"
1270 | }, {
1271 | value: "530900",
1272 | text: "临沧市"
1273 | }, {
1274 | value: "532300",
1275 | text: "楚雄彝族自治州"
1276 | }, {
1277 | value: "532500",
1278 | text: "红河哈尼族彝族自治州"
1279 | }, {
1280 | value: "532600",
1281 | text: "文山壮族苗族自治州"
1282 | }, {
1283 | value: "532800",
1284 | text: "西双版纳傣族自治州"
1285 | }, {
1286 | value: "532900",
1287 | text: "大理白族自治州"
1288 | }, {
1289 | value: "533100",
1290 | text: "德宏傣族景颇族自治州"
1291 | }, {
1292 | value: "533300",
1293 | text: "怒江傈僳族自治州"
1294 | }, {
1295 | value: "533400",
1296 | text: "迪庆藏族自治州"
1297 | }]
1298 | }, {
1299 | value: '540000',
1300 | text: '西藏',
1301 | children: [{
1302 | value: "540100",
1303 | text: "拉萨市"
1304 | }, {
1305 | value: "542100",
1306 | text: "昌都地区"
1307 | }, {
1308 | value: "542200",
1309 | text: "山南地区"
1310 | }, {
1311 | value: "542300",
1312 | text: "日喀则地区"
1313 | }, {
1314 | value: "542400",
1315 | text: "那曲地区"
1316 | }, {
1317 | value: "542500",
1318 | text: "阿里地区"
1319 | }, {
1320 | value: "542600",
1321 | text: "林芝地区"
1322 | }]
1323 | }, {
1324 | value: '610000',
1325 | text: '陕西省',
1326 | children: [{
1327 | value: "610100",
1328 | text: "西安市"
1329 | }, {
1330 | value: "610200",
1331 | text: "铜川市"
1332 | }, {
1333 | value: "610300",
1334 | text: "宝鸡市"
1335 | }, {
1336 | value: "610400",
1337 | text: "咸阳市"
1338 | }, {
1339 | value: "610500",
1340 | text: "渭南市"
1341 | }, {
1342 | value: "610600",
1343 | text: "延安市"
1344 | }, {
1345 | value: "610700",
1346 | text: "汉中市"
1347 | }, {
1348 | value: "610800",
1349 | text: "榆林市"
1350 | }, {
1351 | value: "610900",
1352 | text: "安康市"
1353 | }, {
1354 | value: "611000",
1355 | text: "商洛市"
1356 | }]
1357 | }, {
1358 | value: '620000',
1359 | text: '甘肃省',
1360 | children: [{
1361 | value: "620100",
1362 | text: "兰州市"
1363 | }, {
1364 | value: "620200",
1365 | text: "嘉峪关市"
1366 | }, {
1367 | value: "620300",
1368 | text: "金昌市"
1369 | }, {
1370 | value: "620400",
1371 | text: "白银市"
1372 | }, {
1373 | value: "620500",
1374 | text: "天水市"
1375 | }, {
1376 | value: "620600",
1377 | text: "武威市"
1378 | }, {
1379 | value: "620700",
1380 | text: "张掖市"
1381 | }, {
1382 | value: "620800",
1383 | text: "平凉市"
1384 | }, {
1385 | value: "620900",
1386 | text: "酒泉市"
1387 | }, {
1388 | value: "621000",
1389 | text: "庆阳市"
1390 | }, {
1391 | value: "621100",
1392 | text: "定西市"
1393 | }, {
1394 | value: "621200",
1395 | text: "陇南市"
1396 | }, {
1397 | value: "622900",
1398 | text: "临夏回族自治州"
1399 | }, {
1400 | value: "623000",
1401 | text: "甘南藏族自治州"
1402 | }]
1403 | }, {
1404 | value: '630000',
1405 | text: '青海省',
1406 | children: [{
1407 | value: "630100",
1408 | text: "西宁市"
1409 | }, {
1410 | value: "632100",
1411 | text: "海东地区"
1412 | }, {
1413 | value: "632200",
1414 | text: "海北藏族自治州"
1415 | }, {
1416 | value: "632300",
1417 | text: "黄南藏族自治州"
1418 | }, {
1419 | value: "632500",
1420 | text: "海南藏族自治州"
1421 | }, {
1422 | value: "632600",
1423 | text: "果洛藏族自治州"
1424 | }, {
1425 | value: "632700",
1426 | text: "玉树藏族自治州"
1427 | }, {
1428 | value: "632800",
1429 | text: "海西蒙古族藏族自治州"
1430 | }]
1431 | }, {
1432 | value: '640000',
1433 | text: '宁夏',
1434 | children: [{
1435 | value: "640100",
1436 | text: "银川市"
1437 | }, {
1438 | value: "640200",
1439 | text: "石嘴山市"
1440 | }, {
1441 | value: "640300",
1442 | text: "吴忠市"
1443 | }, {
1444 | value: "640400",
1445 | text: "固原市"
1446 | }, {
1447 | value: "640500",
1448 | text: "中卫市"
1449 | }]
1450 | }, {
1451 | value: '650000',
1452 | text: '新疆',
1453 | children: [{
1454 | value: "650100",
1455 | text: "乌鲁木齐市"
1456 | }, {
1457 | value: "650200",
1458 | text: "克拉玛依市"
1459 | }, {
1460 | value: "652100",
1461 | text: "吐鲁番地区"
1462 | }, {
1463 | value: "652200",
1464 | text: "哈密地区"
1465 | }, {
1466 | value: "652300",
1467 | text: "昌吉回族自治州"
1468 | }, {
1469 | value: "652700",
1470 | text: "博尔塔拉蒙古自治州"
1471 | }, {
1472 | value: "652800",
1473 | text: "巴音郭楞蒙古自治州"
1474 | }, {
1475 | value: "652900",
1476 | text: "阿克苏地区"
1477 | }, {
1478 | value: "653000",
1479 | text: "克孜勒苏柯尔克孜自治州"
1480 | }, {
1481 | value: "653100",
1482 | text: "喀什地区"
1483 | }, {
1484 | value: "653200",
1485 | text: "和田地区"
1486 | }, {
1487 | value: "654000",
1488 | text: "伊犁哈萨克自治州"
1489 | }, {
1490 | value: "654200",
1491 | text: "塔城地区"
1492 | }, {
1493 | value: "654300",
1494 | text: "阿勒泰地区"
1495 | }, {
1496 | value: "659001",
1497 | text: "石河子市"
1498 | }, {
1499 | value: "659002",
1500 | text: "阿拉尔市"
1501 | }, {
1502 | value: "659003",
1503 | text: "图木舒克市"
1504 | }, {
1505 | value: "659004",
1506 | text: "五家渠市"
1507 | }]
1508 | }, {
1509 | value: '710000',
1510 | text: '台湾省',
1511 | children: [{
1512 | value: "710100",
1513 | text: "台北市"
1514 | }, {
1515 | value: "710200",
1516 | text: "高雄市"
1517 | }, {
1518 | value: "710300",
1519 | text: "台南市"
1520 | }, {
1521 | value: "710400",
1522 | text: "台中市"
1523 | }, {
1524 | value: "710500",
1525 | text: "金门县"
1526 | }, {
1527 | value: "710600",
1528 | text: "南投县"
1529 | }, {
1530 | value: "710700",
1531 | text: "基隆市"
1532 | }, {
1533 | value: "710800",
1534 | text: "新竹市"
1535 | }, {
1536 | value: "710900",
1537 | text: "嘉义市"
1538 | }, {
1539 | value: "711100",
1540 | text: "新北市"
1541 | }, {
1542 | value: "711200",
1543 | text: "宜兰县"
1544 | }, {
1545 | value: "711300",
1546 | text: "新竹县"
1547 | }, {
1548 | value: "711400",
1549 | text: "桃园县"
1550 | }, {
1551 | value: "711500",
1552 | text: "苗栗县"
1553 | }, {
1554 | value: "711700",
1555 | text: "彰化县"
1556 | }, {
1557 | value: "711900",
1558 | text: "嘉义县"
1559 | }, {
1560 | value: "712100",
1561 | text: "云林县"
1562 | }, {
1563 | value: "712400",
1564 | text: "屏东县"
1565 | }, {
1566 | value: "712500",
1567 | text: "台东县"
1568 | }, {
1569 | value: "712600",
1570 | text: "花莲县"
1571 | }, {
1572 | value: "712700",
1573 | text: "澎湖县"
1574 | }]
1575 | }, {
1576 | value: '810000',
1577 | text: '香港',
1578 | children: [{
1579 | value: "810100",
1580 | text: "香港岛"
1581 | }, {
1582 | value: "810200",
1583 | text: "九龙"
1584 | }, {
1585 | value: "810300",
1586 | text: "新界"
1587 | }]
1588 | }, {
1589 | value: '820000',
1590 | text: '澳门',
1591 | children: [{
1592 | value: "820100",
1593 | text: "澳门半岛"
1594 | }, {
1595 | value: "820200",
1596 | text: "离岛"
1597 | }]
1598 | }, {
1599 | value: '990000',
1600 | text: '海外',
1601 | children: [{
1602 | value: "990100",
1603 | text: "海外"
1604 | }]
1605 | }]
--------------------------------------------------------------------------------
/citypicker/src/main/assets/js/mui.picker.js:
--------------------------------------------------------------------------------
1 | /**
2 | * 选择列表插件
3 | * varstion 2.0.0
4 | * by Houfeng
5 | * Houfeng@DCloud.io
6 | */
7 |
8 | (function($, window, document, undefined) {
9 |
10 | var MAX_EXCEED = 30;
11 | var VISIBLE_RANGE = 90;
12 | var DEFAULT_ITEM_HEIGHT = 40;
13 | var BLUR_WIDTH = 10;
14 |
15 | var rad2deg = $.rad2deg = function(rad) {
16 | return rad / (Math.PI / 180);
17 | };
18 |
19 | var deg2rad = $.deg2rad = function(deg) {
20 | return deg * (Math.PI / 180);
21 | };
22 |
23 | var platform = navigator.platform.toLowerCase();
24 | var userAgent = navigator.userAgent.toLowerCase();
25 | var isIos = (userAgent.indexOf('iphone') > -1 ||
26 | userAgent.indexOf('ipad') > -1 ||
27 | userAgent.indexOf('ipod') > -1) &&
28 | (platform.indexOf('iphone') > -1 ||
29 | platform.indexOf('ipad') > -1 ||
30 | platform.indexOf('ipod') > -1);
31 | //alert(isIos);
32 |
33 | var Picker = $.Picker = function(holder, options) {
34 | var self = this;
35 | self.holder = holder;
36 | self.options = options || {};
37 | self.init();
38 | self.initInertiaParams();
39 | self.calcElementItemPostion(true);
40 | self.bindEvent();
41 | };
42 |
43 | Picker.prototype.findElementItems = function() {
44 | var self = this;
45 | self.elementItems = [].slice.call(self.holder.querySelectorAll('li'));
46 | return self.elementItems;
47 | };
48 |
49 | Picker.prototype.init = function() {
50 | var self = this;
51 | self.list = self.holder.querySelector('ul');
52 | self.findElementItems();
53 | self.height = self.holder.offsetHeight;
54 | self.r = self.height / 2 - BLUR_WIDTH;
55 | self.d = self.r * 2;
56 | self.itemHeight = self.elementItems.length > 0 ? self.elementItems[0].offsetHeight : DEFAULT_ITEM_HEIGHT;
57 | self.itemAngle = parseInt(self.calcAngle(self.itemHeight * 0.8));
58 | self.hightlightRange = self.itemAngle / 2;
59 | self.visibleRange = VISIBLE_RANGE;
60 | self.beginAngle = 0;
61 | self.beginExceed = self.beginAngle - MAX_EXCEED;
62 | self.list.angle = self.beginAngle;
63 | if (isIos) {
64 | self.list.style.webkitTransformOrigin = "center center " + self.r + "px";
65 | }
66 | };
67 |
68 | Picker.prototype.calcElementItemPostion = function(andGenerateItms) {
69 | var self = this;
70 | if (andGenerateItms) {
71 | self.items = [];
72 | }
73 | self.elementItems.forEach(function(item) {
74 | var index = self.elementItems.indexOf(item);
75 | self.endAngle = self.itemAngle * index;
76 | item.angle = self.endAngle;
77 | item.style.webkitTransformOrigin = "center center -" + self.r + "px";
78 | item.style.webkitTransform = "translateZ(" + self.r + "px) rotateX(" + (-self.endAngle) + "deg)";
79 | if (andGenerateItms) {
80 | var dataItem = {};
81 | dataItem.text = item.innerHTML || '';
82 | dataItem.value = item.getAttribute('data-value') || dataItem.text;
83 | self.items.push(dataItem);
84 | }
85 | });
86 | self.endExceed = self.endAngle + MAX_EXCEED;
87 | self.calcElementItemVisibility(self.beginAngle);
88 | };
89 |
90 | Picker.prototype.calcAngle = function(c) {
91 | var self = this;
92 | var a = b = parseFloat(self.r);
93 | //直径的整倍数部分直接乘以 180
94 | c = Math.abs(c); //只算角度不关心正否值
95 | var intDeg = parseInt(c / self.d) * 180;
96 | c = c % self.d;
97 | //余弦
98 | var cosC = (a * a + b * b - c * c) / (2 * a * b);
99 | var angleC = intDeg + rad2deg(Math.acos(cosC));
100 | return angleC;
101 | };
102 |
103 | Picker.prototype.calcElementItemVisibility = function(angle) {
104 | var self = this;
105 | self.elementItems.forEach(function(item) {
106 | var difference = Math.abs(item.angle - angle);
107 | if (difference < self.hightlightRange) {
108 | item.classList.add('highlight');
109 | } else if (difference < self.visibleRange) {
110 | item.classList.add('visible');
111 | item.classList.remove('highlight');
112 | } else {
113 | item.classList.remove('highlight');
114 | item.classList.remove('visible');
115 | }
116 | });
117 | };
118 |
119 | Picker.prototype.setAngle = function(angle) {
120 | var self = this;
121 | self.list.angle = angle;
122 | self.list.style.webkitTransform = "perspective(1000px) rotateY(0deg) rotateX(" + angle + "deg)";
123 | self.calcElementItemVisibility(angle);
124 | };
125 |
126 | Picker.prototype.bindEvent = function() {
127 | var self = this;
128 | var lastAngle = 0;
129 | var startY = null;
130 | var isPicking = false;
131 | self.holder.addEventListener($.EVENT_START, function(event) {
132 | isPicking = true;
133 | event.preventDefault();
134 | self.list.style.webkitTransition = '';
135 | startY = (event.changedTouches ? event.changedTouches[0] : event).pageY;
136 | lastAngle = self.list.angle;
137 | self.updateInertiaParams(event, true);
138 | }, false);
139 | self.holder.addEventListener($.EVENT_END, function(event) {
140 | isPicking = false;
141 | event.preventDefault();
142 | self.startInertiaScroll(event);
143 | }, false);
144 | self.holder.addEventListener($.EVENT_CANCEL, function(event) {
145 | isPicking = false;
146 | event.preventDefault();
147 | self.startInertiaScroll(event);
148 | }, false);
149 | self.holder.addEventListener($.EVENT_MOVE, function(event) {
150 | if (!isPicking) {
151 | return;
152 | }
153 | event.preventDefault();
154 | var endY = (event.changedTouches ? event.changedTouches[0] : event).pageY;
155 | var dragRange = endY - startY;
156 | var dragAngle = self.calcAngle(dragRange);
157 | var newAngle = dragRange > 0 ? lastAngle - dragAngle : lastAngle + dragAngle;
158 | if (newAngle > self.endExceed) {
159 | newAngle = self.endExceed
160 | }
161 | if (newAngle < self.beginExceed) {
162 | newAngle = self.beginExceed
163 | }
164 | self.setAngle(newAngle);
165 | self.updateInertiaParams(event);
166 | }, false);
167 | //--
168 | self.list.addEventListener('tap', function(event) {
169 | elementItem = event.target;
170 | if (elementItem.tagName == 'LI') {
171 | self.setSelectedIndex(self.elementItems.indexOf(elementItem), 200);
172 | }
173 | }, false);
174 | };
175 |
176 | Picker.prototype.initInertiaParams = function() {
177 | var self = this;
178 | self.lastMoveTime = 0;
179 | self.lastMoveStart = 0;
180 | self.stopInertiaMove = false;
181 | };
182 |
183 | Picker.prototype.updateInertiaParams = function(event, isStart) {
184 | var self = this;
185 | var point = event.changedTouches ? event.changedTouches[0] : event;
186 | if (isStart) {
187 | self.lastMoveStart = point.pageY;
188 | self.lastMoveTime = event.timeStamp || Date.now();
189 | self.startAngle = self.list.angle;
190 | } else {
191 | var nowTime = event.timeStamp || Date.now();
192 | if (nowTime - self.lastMoveTime > 300) {
193 | self.lastMoveTime = nowTime;
194 | self.lastMoveStart = point.pageY;
195 | }
196 | }
197 | self.stopInertiaMove = true;
198 | };
199 |
200 | Picker.prototype.startInertiaScroll = function(event) {
201 | var self = this;
202 | var point = event.changedTouches ? event.changedTouches[0] : event;
203 | /**
204 | * 缓动代码
205 | */
206 | var nowTime = event.timeStamp || Date.now();
207 | var v = (point.pageY - self.lastMoveStart) / (nowTime - self.lastMoveTime); //最后一段时间手指划动速度
208 | var dir = v > 0 ? -1 : 1; //加速度方向
209 | var deceleration = dir * 0.0006 * -1;
210 | var duration = Math.abs(v / deceleration); // 速度消减至0所需时间
211 | var dist = v * duration / 2; //最终移动多少
212 | var startAngle = self.list.angle;
213 | var distAngle = self.calcAngle(dist) * dir;
214 | //----
215 | var srcDistAngle = distAngle;
216 | if (startAngle + distAngle < self.beginExceed) {
217 | distAngle = self.beginExceed - startAngle;
218 | duration = duration * (distAngle / srcDistAngle) * 0.6;
219 | }
220 | if (startAngle + distAngle > self.endExceed) {
221 | distAngle = self.endExceed - startAngle;
222 | duration = duration * (distAngle / srcDistAngle) * 0.6;
223 | }
224 | //----
225 | if (distAngle == 0) {
226 | self.endScroll();
227 | return;
228 | }
229 | self.scrollDistAngle(nowTime, startAngle, distAngle, duration);
230 | };
231 |
232 | Picker.prototype.scrollDistAngle = function(nowTime, startAngle, distAngle, duration) {
233 | var self = this;
234 | self.stopInertiaMove = false;
235 | (function(nowTime, startAngle, distAngle, duration) {
236 | var frameInterval = 13;
237 | var stepCount = duration / frameInterval;
238 | var stepIndex = 0;
239 | (function inertiaMove() {
240 | if (self.stopInertiaMove) return;
241 | var newAngle = self.quartEaseOut(stepIndex, startAngle, distAngle, stepCount);
242 | self.setAngle(newAngle);
243 | stepIndex++;
244 | if (stepIndex > stepCount - 1 || newAngle < self.beginExceed || newAngle > self.endExceed) {
245 | self.endScroll();
246 | return;
247 | }
248 | setTimeout(inertiaMove, frameInterval);
249 | })();
250 | })(nowTime, startAngle, distAngle, duration);
251 | };
252 |
253 | Picker.prototype.quartEaseOut = function(t, b, c, d) {
254 | return -c * ((t = t / d - 1) * t * t * t - 1) + b;
255 | };
256 |
257 | Picker.prototype.endScroll = function() {
258 | var self = this;
259 | if (self.list.angle < self.beginAngle) {
260 | self.list.style.webkitTransition = "150ms ease-out";
261 | self.setAngle(self.beginAngle);
262 | } else if (self.list.angle > self.endAngle) {
263 | self.list.style.webkitTransition = "150ms ease-out";
264 | self.setAngle(self.endAngle);
265 | } else {
266 | var index = parseInt((self.list.angle / self.itemAngle).toFixed(0));
267 | self.list.style.webkitTransition = "100ms ease-out";
268 | self.setAngle(self.itemAngle * index);
269 | }
270 | self.triggerChange();
271 | };
272 |
273 | Picker.prototype.triggerChange = function(force) {
274 | var self = this;
275 | setTimeout(function() {
276 | var index = self.getSelectedIndex();
277 | var item = self.items[index];
278 | if ($.trigger && (index != self.lastIndex || force === true)) {
279 | $.trigger(self.holder, 'change', {
280 | "index": index,
281 | "item": item
282 | });
283 | //console.log('change:' + index);
284 | }
285 | self.lastIndex = index;
286 | typeof force === 'function' && force();
287 | }, 0);
288 | };
289 |
290 | Picker.prototype.correctAngle = function(angle) {
291 | var self = this;
292 | if (angle < self.beginAngle) {
293 | return self.beginAngle;
294 | } else if (angle > self.endAngle) {
295 | return self.endAngle;
296 | } else {
297 | return angle;
298 | }
299 | };
300 |
301 | Picker.prototype.setItems = function(items) {
302 | var self = this;
303 | self.items = items || [];
304 | var buffer = [];
305 | self.items.forEach(function(item) {
306 | if (item !== null && item !== undefined) {
307 | buffer.push('
' + (item.text || item) + '');
308 | }
309 | });
310 | self.list.innerHTML = buffer.join('');
311 | self.findElementItems();
312 | self.calcElementItemPostion();
313 | self.setAngle(self.correctAngle(self.list.angle));
314 | self.triggerChange(true);
315 | };
316 |
317 | Picker.prototype.getItems = function() {
318 | var self = this;
319 | return self.items;
320 | };
321 |
322 | Picker.prototype.getSelectedIndex = function() {
323 | var self = this;
324 | return parseInt((self.list.angle / self.itemAngle).toFixed(0));
325 | };
326 |
327 | Picker.prototype.setSelectedIndex = function(index, duration, callback) {
328 | var self = this;
329 | self.list.style.webkitTransition = '';
330 | var angle = self.correctAngle(self.itemAngle * index);
331 | if (duration && duration > 0) {
332 | var distAngle = angle - self.list.angle;
333 | self.scrollDistAngle(Date.now(), self.list.angle, distAngle, duration);
334 | } else {
335 | self.setAngle(angle);
336 | }
337 | self.triggerChange(callback);
338 | };
339 |
340 | Picker.prototype.getSelectedItem = function() {
341 | var self = this;
342 | return self.items[self.getSelectedIndex()];
343 | };
344 |
345 | Picker.prototype.getSelectedValue = function() {
346 | var self = this;
347 | return (self.items[self.getSelectedIndex()] || {}).value;
348 | };
349 |
350 | Picker.prototype.getSelectedText = function() {
351 | var self = this;
352 | return (self.items[self.getSelectedIndex()] || {}).text;
353 | };
354 |
355 | Picker.prototype.setSelectedValue = function(value, duration, callback) {
356 | var self = this;
357 | for (var index in self.items) {
358 | var item = self.items[index];
359 | if (item.value == value) {
360 | self.setSelectedIndex(index, duration, callback);
361 | return;
362 | }
363 | }
364 | };
365 |
366 | if ($.fn) {
367 | $.fn.picker = function(options) {
368 | //遍历选择的元素
369 | this.each(function(i, element) {
370 | if (element.picker) return;
371 | if (options) {
372 | element.picker = new Picker(element, options);
373 | } else {
374 | var optionsText = element.getAttribute('data-picker-options');
375 | var _options = optionsText ? JSON.parse(optionsText) : {};
376 | element.picker = new Picker(element, _options);
377 | }
378 | });
379 | return this[0] ? this[0].picker : null;
380 | };
381 |
382 | //自动初始化
383 | $.ready(function() {
384 | $('.mui-picker').picker();
385 | });
386 | }
387 |
388 | })(window.mui || window, window, document, undefined);
389 | //end
--------------------------------------------------------------------------------
/citypicker/src/main/assets/js/mui.poppicker.js:
--------------------------------------------------------------------------------
1 | /**
2 | * 弹出选择列表插件
3 | * 此组件依赖 listpcker ,请在页面中先引入 mui.picker.css + mui.picker.js
4 | * varstion 1.0.1
5 | * by Houfeng
6 | * Houfeng@DCloud.io
7 | */
8 |
9 | (function($, document) {
10 |
11 | //创建 DOM
12 | $.dom = function(str) {
13 | if (typeof(str) !== 'string') {
14 | if ((str instanceof Array) || (str[0] && str.length)) {
15 | return [].slice.call(str);
16 | } else {
17 | return [str];
18 | }
19 | }
20 | if (!$.__create_dom_div__) {
21 | $.__create_dom_div__ = document.createElement('div');
22 | }
23 | $.__create_dom_div__.innerHTML = str;
24 | return [].slice.call($.__create_dom_div__.childNodes);
25 | };
26 |
27 | var panelBuffer = '\
28 | \
33 |
\
34 |
\
35 |
';
36 |
37 | var pickerBuffer = '\
38 |
\
39 |
\
40 |
\
42 |
\
43 |
\
44 |
';
45 |
46 | //定义弹出选择器类
47 | var PopPicker = $.PopPicker = $.Class.extend({
48 | //构造函数
49 | init: function(options) {
50 | var self = this;
51 | self.options = options || {};
52 | self.options.buttons = self.options.buttons || ['取消', '确定'];
53 | self.panel = $.dom(panelBuffer)[0];
54 | document.body.appendChild(self.panel);
55 | self.ok = self.panel.querySelector('.mui-poppicker-btn-ok');
56 | self.cancel = self.panel.querySelector('.mui-poppicker-btn-cancel');
57 | self.body = self.panel.querySelector('.mui-poppicker-body');
58 | self.mask = $.createMask();
59 | self.cancel.innerText = self.options.buttons[0];
60 | self.ok.innerText = self.options.buttons[1];
61 | self.cancel.addEventListener('tap', function(event) {
62 | // self.hide();
63 | myObj.cancle();
64 | }, false);
65 | self.ok.addEventListener('tap', function(event) {
66 | if (self.callback) {
67 | var rs = self.callback(self.getSelectedItems());
68 | // self.ok.innerText = self.options.buttons[0];
69 | // myObj.fun1FromAndroid("调用android本地方法fun1FromAndroid(String name)!!");
70 | if (rs !== false) {
71 | self.hide();
72 | }
73 |
74 | }
75 | }, false);
76 | self.mask[0].addEventListener('tap', function() {
77 | self.hide();
78 | }, false);
79 | self._createPicker();
80 | //防止滚动穿透
81 | self.panel.addEventListener($.EVENT_START, function(event) {
82 | event.preventDefault();
83 | }, false);
84 | self.panel.addEventListener($.EVENT_MOVE, function(event) {
85 | event.preventDefault();
86 | }, false);
87 | },
88 | _createPicker: function() {
89 | var self = this;
90 | var layer = self.options.layer || 1;
91 | var width = (100 / layer) + '%';
92 | self.pickers = [];
93 | for (var i = 1; i <= layer; i++) {
94 | var pickerElement = $.dom(pickerBuffer)[0];
95 | pickerElement.style.width = width;
96 | self.body.appendChild(pickerElement);
97 | var picker = $(pickerElement).picker();
98 | self.pickers.push(picker);
99 | pickerElement.addEventListener('change', function(event) {
100 | var nextPickerElement = this.nextSibling;
101 | if (nextPickerElement && nextPickerElement.picker) {
102 | var eventData = event.detail || {};
103 | var preItem = eventData.item || {};
104 | nextPickerElement.picker.setItems(preItem.children);
105 | }
106 | }, false);
107 | }
108 | },
109 | //填充数据
110 | setData: function(data) {
111 | var self = this;
112 | data = data || [];
113 | self.pickers[0].setItems(data);
114 | },
115 | //获取选中的项(数组)
116 | getSelectedItems: function() {
117 | var self = this;
118 | var items = [];
119 | for (var i in self.pickers) {
120 | var picker = self.pickers[i];
121 | items.push(picker.getSelectedItem() || {});
122 | }
123 | return items;
124 | },
125 | //显示
126 | show: function(callback) {
127 | var self = this;
128 | self.callback = callback;
129 | self.mask.show();
130 | document.body.classList.add($.className('poppicker-active-for-page'));
131 | self.panel.classList.add($.className('active'));
132 | //处理物理返回键
133 | self.__back = $.back;
134 | $.back = function() {
135 | self.hide();
136 | };
137 | },
138 | //隐藏
139 | hide: function() {
140 | var self = this;
141 | if (self.disposed) return;
142 | self.panel.classList.remove($.className('active'));
143 | self.mask.close();
144 | document.body.classList.remove($.className('poppicker-active-for-page'));
145 | //处理物理返回键
146 | $.back=self.__back;
147 | },
148 | dispose: function() {
149 | var self = this;
150 | self.hide();
151 | setTimeout(function() {
152 | self.panel.parentNode.removeChild(self.panel);
153 | for (var name in self) {
154 | self[name] = null;
155 | delete self[name];
156 | };
157 | self.disposed = true;
158 | }, 300);
159 | }
160 | });
161 |
162 | })(mui, document);
--------------------------------------------------------------------------------
/citypicker/src/main/assets/page/leefeng.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/citypicker/src/main/java/me/leefeng/citypicker/CityPicker.java:
--------------------------------------------------------------------------------
1 | package me.leefeng.citypicker;
2 |
3 | import android.annotation.SuppressLint;
4 | import android.app.Activity;
5 | import android.content.Context;
6 | import android.view.Gravity;
7 | import android.view.LayoutInflater;
8 | import android.view.View;
9 | import android.view.ViewGroup;
10 | import android.view.animation.Animation;
11 | import android.view.animation.AnimationUtils;
12 | import android.webkit.JavascriptInterface;
13 | import android.webkit.WebView;
14 | import android.widget.FrameLayout;
15 |
16 | /**
17 | * Created by limxing on 16/10/8.
18 | */
19 |
20 | public class CityPicker implements JavaScriptListener {
21 |
22 | private final Animation inAnim;
23 | private final Animation outAnim;
24 | private final Activity context;
25 | private final Animation bgAnim;
26 | private final Animation bgAnimOut;
27 | private ViewGroup rootView;
28 | private WebView pickerview;
29 | private ViewGroup decorView;
30 | private boolean isShow;
31 | private CityPickerListener listener;
32 |
33 | public CityPicker(Activity context,CityPickerListener listener) {
34 | this.context=context;
35 | this.listener=listener;
36 | inAnim = AnimationUtils.loadAnimation(context, R.anim.slide_in_bottom);
37 | outAnim = AnimationUtils.loadAnimation(context, R.anim.slide_out_bottom);
38 | bgAnim = AnimationUtils.loadAnimation(context, R.anim.alertview_bgin);
39 | bgAnimOut = AnimationUtils.loadAnimation(context, R.anim.alertview_bgout);
40 | LayoutInflater layoutInflater = LayoutInflater.from(context);
41 | decorView = (ViewGroup) context.getWindow().getDecorView().findViewById(android.R.id.content);
42 | rootView = (ViewGroup) layoutInflater.inflate(R.layout.citypickerview, decorView, false);
43 | pickerview = (WebView) rootView.findViewById(R.id.pickerview);
44 | //设置编码
45 | pickerview.getSettings().setDefaultTextEncodingName("utf-8");
46 | //支持js
47 | pickerview.getSettings().setJavaScriptEnabled(true);
48 | pickerview.addJavascriptInterface(new JavaScriptObject(this), "myObj");
49 | pickerview.loadUrl("file:///android_asset/page/leefeng.html");
50 | rootView.setOnClickListener(new View.OnClickListener() {
51 | @Override
52 | public void onClick(View view) {
53 | cancle();
54 | }
55 | });
56 | }
57 |
58 | public void show() {
59 | if (isShow) {
60 | return;
61 | }
62 | isShow = true;
63 | decorView.addView(rootView);
64 | pickerview.startAnimation(inAnim);
65 | rootView.startAnimation(bgAnim);
66 |
67 | }
68 |
69 | public void close() {
70 | pickerview.startAnimation(outAnim);
71 | rootView.startAnimation(bgAnimOut);
72 | decorView.postDelayed(new Runnable() {
73 | @Override
74 | public void run() {
75 | isShow = false;
76 | decorView.removeView(rootView);
77 | }
78 | }, 300);
79 | }
80 |
81 | @Override
82 | public void cancle() {
83 | context.runOnUiThread(new Runnable() {
84 | @Override
85 | public void run() {
86 | close();
87 | }
88 | });
89 | }
90 |
91 | @Override
92 | public void city(final String name) {
93 | context.runOnUiThread(new Runnable() {
94 | @Override
95 | public void run() {
96 | listener.getCity(name);
97 | close();
98 | }
99 | });
100 |
101 | }
102 |
103 | public boolean isShow() {
104 | return isShow;
105 | }
106 | }
107 |
--------------------------------------------------------------------------------
/citypicker/src/main/java/me/leefeng/citypicker/CityPickerListener.java:
--------------------------------------------------------------------------------
1 | package me.leefeng.citypicker;
2 |
3 | /**
4 | * Created by limxing on 2016/10/9.
5 | */
6 |
7 | public interface CityPickerListener {
8 | void getCity(String name);
9 | }
10 |
--------------------------------------------------------------------------------
/citypicker/src/main/java/me/leefeng/citypicker/JavaScriptListener.java:
--------------------------------------------------------------------------------
1 | package me.leefeng.citypicker;
2 |
3 | /**
4 | * Created by limxing on 2016/10/9.
5 | */
6 |
7 | public interface JavaScriptListener {
8 | void cancle();
9 | void city(String name);
10 | }
11 |
--------------------------------------------------------------------------------
/citypicker/src/main/java/me/leefeng/citypicker/JavaScriptObject.java:
--------------------------------------------------------------------------------
1 | package me.leefeng.citypicker;
2 |
3 | import android.content.Context;
4 | import android.webkit.JavascriptInterface;
5 | import android.widget.Toast;
6 |
7 | /**
8 | * Created by limxing on 16/10/8.
9 | */
10 |
11 | public class JavaScriptObject {
12 |
13 |
14 | private final JavaScriptListener listener;
15 |
16 | // @JavascriptInterface //sdk17版本以上加上注解
17 | public JavaScriptObject(JavaScriptListener listener) {
18 | this.listener = listener;
19 | }
20 | @JavascriptInterface
21 | public void fun1FromAndroid(String name) {
22 | listener.city(name);
23 | }
24 |
25 | @JavascriptInterface
26 | public void cancle() {
27 | listener.cancle();
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/citypicker/src/main/res/anim/alertview_bgin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/citypicker/src/main/res/anim/alertview_bgout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/citypicker/src/main/res/anim/slide_in_bottom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
12 |
--------------------------------------------------------------------------------
/citypicker/src/main/res/anim/slide_out_bottom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
12 |
--------------------------------------------------------------------------------
/citypicker/src/main/res/layout/citypickerview.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
15 |
16 |
--------------------------------------------------------------------------------
/citypicker/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | CityPicker
3 |
4 |
--------------------------------------------------------------------------------
/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 | org.gradle.jvmargs=-Xmx1536m
13 |
14 | # When configured, Gradle will run in incubating parallel mode.
15 | # This option should only be used with decoupled projects. More details, visit
16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
17 | # org.gradle.parallel=true
18 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-android/CityPickerWebView/b690f60c14b89033493b27861b6443f5057bbdc2/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Dec 28 10:00:20 PST 2015
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
7 |
--------------------------------------------------------------------------------
/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | ##############################################################################
4 | ##
5 | ## Gradle start up script for UN*X
6 | ##
7 | ##############################################################################
8 |
9 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
10 | DEFAULT_JVM_OPTS=""
11 |
12 | APP_NAME="Gradle"
13 | APP_BASE_NAME=`basename "$0"`
14 |
15 | # Use the maximum available, or set MAX_FD != -1 to use that value.
16 | MAX_FD="maximum"
17 |
18 | warn ( ) {
19 | echo "$*"
20 | }
21 |
22 | die ( ) {
23 | echo
24 | echo "$*"
25 | echo
26 | exit 1
27 | }
28 |
29 | # OS specific support (must be 'true' or 'false').
30 | cygwin=false
31 | msys=false
32 | darwin=false
33 | case "`uname`" in
34 | CYGWIN* )
35 | cygwin=true
36 | ;;
37 | Darwin* )
38 | darwin=true
39 | ;;
40 | MINGW* )
41 | msys=true
42 | ;;
43 | esac
44 |
45 | # Attempt to set APP_HOME
46 | # Resolve links: $0 may be a link
47 | PRG="$0"
48 | # Need this for relative symlinks.
49 | while [ -h "$PRG" ] ; do
50 | ls=`ls -ld "$PRG"`
51 | link=`expr "$ls" : '.*-> \(.*\)$'`
52 | if expr "$link" : '/.*' > /dev/null; then
53 | PRG="$link"
54 | else
55 | PRG=`dirname "$PRG"`"/$link"
56 | fi
57 | done
58 | SAVED="`pwd`"
59 | cd "`dirname \"$PRG\"`/" >/dev/null
60 | APP_HOME="`pwd -P`"
61 | cd "$SAVED" >/dev/null
62 |
63 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
64 |
65 | # Determine the Java command to use to start the JVM.
66 | if [ -n "$JAVA_HOME" ] ; then
67 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
68 | # IBM's JDK on AIX uses strange locations for the executables
69 | JAVACMD="$JAVA_HOME/jre/sh/java"
70 | else
71 | JAVACMD="$JAVA_HOME/bin/java"
72 | fi
73 | if [ ! -x "$JAVACMD" ] ; then
74 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
75 |
76 | Please set the JAVA_HOME variable in your environment to match the
77 | location of your Java installation."
78 | fi
79 | else
80 | JAVACMD="java"
81 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
82 |
83 | Please set the JAVA_HOME variable in your environment to match the
84 | location of your Java installation."
85 | fi
86 |
87 | # Increase the maximum file descriptors if we can.
88 | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
89 | MAX_FD_LIMIT=`ulimit -H -n`
90 | if [ $? -eq 0 ] ; then
91 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
92 | MAX_FD="$MAX_FD_LIMIT"
93 | fi
94 | ulimit -n $MAX_FD
95 | if [ $? -ne 0 ] ; then
96 | warn "Could not set maximum file descriptor limit: $MAX_FD"
97 | fi
98 | else
99 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
100 | fi
101 | fi
102 |
103 | # For Darwin, add options to specify how the application appears in the dock
104 | if $darwin; then
105 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
106 | fi
107 |
108 | # For Cygwin, switch paths to Windows format before running java
109 | if $cygwin ; then
110 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
111 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
112 | JAVACMD=`cygpath --unix "$JAVACMD"`
113 |
114 | # We build the pattern for arguments to be converted via cygpath
115 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
116 | SEP=""
117 | for dir in $ROOTDIRSRAW ; do
118 | ROOTDIRS="$ROOTDIRS$SEP$dir"
119 | SEP="|"
120 | done
121 | OURCYGPATTERN="(^($ROOTDIRS))"
122 | # Add a user-defined pattern to the cygpath arguments
123 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
124 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
125 | fi
126 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
127 | i=0
128 | for arg in "$@" ; do
129 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
130 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
131 |
132 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
133 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
134 | else
135 | eval `echo args$i`="\"$arg\""
136 | fi
137 | i=$((i+1))
138 | done
139 | case $i in
140 | (0) set -- ;;
141 | (1) set -- "$args0" ;;
142 | (2) set -- "$args0" "$args1" ;;
143 | (3) set -- "$args0" "$args1" "$args2" ;;
144 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
145 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
146 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
147 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
148 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
149 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
150 | esac
151 | fi
152 |
153 | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
154 | function splitJvmOpts() {
155 | JVM_OPTS=("$@")
156 | }
157 | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
158 | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
159 |
160 | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
161 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':citypicker',':app'
2 |
--------------------------------------------------------------------------------