├── .gitignore ├── README.md ├── manage.py ├── rent ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py ├── rentAnalysis ├── __init__.py ├── admin.py ├── apps.py ├── migrations │ ├── 0001_initial.py │ └── __init__.py ├── models.py ├── tests.py ├── urls.py └── views.py ├── rentSpider ├── rentSpider │ ├── __init__.py │ ├── items.py │ ├── middlewares.py │ ├── pipelines.py │ ├── settings.py │ └── spiders │ │ ├── __init__.py │ │ └── house.py └── scrapy.cfg ├── requirements.txt ├── static ├── css │ ├── concept.min.css │ └── style.css └── js │ ├── charts.js │ ├── concept.min.js │ ├── index.js │ └── new.js └── templates ├── base.html ├── district.html └── index.html /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__/ 2 | db.sqlite3 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## 成都⼆⼿房爬⾍及可视化 2 | 3 | **开发环境**:**Scrapy**、**Django2.x** 4 | 5 | **项⽬描述**:该项⽬使⽤ **Scrapy** 框架爬取链家成都地区⼆⼿房数据,通过 **Django** 框架写⼊数据库并使⽤ **ECharts** 将分析后的数据可视化展⽰到⽹⻚。 6 | 7 | #### 教程 8 | 9 | - 创建Django工程 10 | 11 | ``` 12 | djagno-admin startproject rent 13 | ``` 14 | - 进入rent目录并创建Django项目 15 | 16 | ``` 17 | cd rent 18 | 19 | python manage.py startapp rentAnalysis 20 | ``` 21 | - 创建Scrapy工程 22 | ``` 23 | scrapy startproject rentSpider 24 | ``` 25 | - 进入rentSpider目录并创建爬虫文件 26 | ``` 27 | cd rentSpider 28 | 29 | scrapy genspider house(spider_name) cd.lianjia.com(spider_url) 30 | ``` 31 | - 在Scrapy工程中配置Django 32 | 33 | ``` 34 | # rentSpider/settings.py 35 | 36 | import os 37 | import sys 38 | import django 39 | sys.path.append(os.path.dirname(os.path.abspath('.'))) 40 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'rent.settings') # Django Project Name 41 | django.setup() 42 | ``` 43 | - 启动Scrapy 44 | 45 | ``` 46 | scrapy crawl house(spider_name) 47 | ``` 48 | - 启动Django 49 | 50 | ``` 51 | python manage.py runserver 52 | ``` 53 | 54 | ``` 55 | admin: rent 56 | password: rent1234 57 | ``` 58 | -------------------------------------------------------------------------------- /manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "rent.settings") 7 | try: 8 | from django.core.management import execute_from_command_line 9 | except ImportError as exc: 10 | raise ImportError( 11 | "Couldn't import Django. Are you sure it's installed and " 12 | "available on your PYTHONPATH environment variable? Did you " 13 | "forget to activate a virtual environment?" 14 | ) from exc 15 | execute_from_command_line(sys.argv) 16 | -------------------------------------------------------------------------------- /rent/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PFFFei/rent/da8e387bb33804bb406ff452c508a155b771e3e9/rent/__init__.py -------------------------------------------------------------------------------- /rent/settings.py: -------------------------------------------------------------------------------- 1 | """ 2 | Django settings for rent project. 3 | 4 | Generated by 'django-admin startproject' using Django 2.0.5. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/2.0/topics/settings/ 8 | 9 | For the full list of settings and their values, see 10 | https://docs.djangoproject.com/en/2.0/ref/settings/ 11 | """ 12 | 13 | import os 14 | 15 | # Build paths inside the project like this: os.path.join(BASE_DIR, ...) 16 | BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 17 | 18 | 19 | # Quick-start development settings - unsuitable for production 20 | # See https://docs.djangoproject.com/en/2.0/howto/deployment/checklist/ 21 | 22 | # SECURITY WARNING: keep the secret key used in production secret! 23 | SECRET_KEY = ')e2llefgl-#_uxt6c94f*^jdd!1@-g+5w+*j8e-$(css*6odwr' 24 | 25 | # SECURITY WARNING: don't run with debug turned on in production! 26 | DEBUG = True 27 | 28 | ALLOWED_HOSTS = [] 29 | 30 | 31 | # Application definition 32 | 33 | INSTALLED_APPS = [ 34 | 'django.contrib.admin', 35 | 'django.contrib.auth', 36 | 'django.contrib.contenttypes', 37 | 'django.contrib.sessions', 38 | 'django.contrib.messages', 39 | 'django.contrib.staticfiles', 40 | 'rentAnalysis', 41 | ] 42 | 43 | MIDDLEWARE = [ 44 | 'django.middleware.security.SecurityMiddleware', 45 | 'django.contrib.sessions.middleware.SessionMiddleware', 46 | 'django.middleware.common.CommonMiddleware', 47 | 'django.middleware.csrf.CsrfViewMiddleware', 48 | 'django.contrib.auth.middleware.AuthenticationMiddleware', 49 | 'django.contrib.messages.middleware.MessageMiddleware', 50 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', 51 | ] 52 | 53 | ROOT_URLCONF = 'rent.urls' 54 | 55 | TEMPLATES = [ 56 | { 57 | 'BACKEND': 'django.template.backends.django.DjangoTemplates', 58 | 'DIRS': [os.path.join(BASE_DIR, 'templates')], 59 | 'APP_DIRS': True, 60 | 'OPTIONS': { 61 | 'context_processors': [ 62 | 'django.template.context_processors.debug', 63 | 'django.template.context_processors.request', 64 | 'django.contrib.auth.context_processors.auth', 65 | 'django.contrib.messages.context_processors.messages', 66 | ], 67 | }, 68 | }, 69 | ] 70 | 71 | WSGI_APPLICATION = 'rent.wsgi.application' 72 | 73 | 74 | # Database 75 | # https://docs.djangoproject.com/en/2.0/ref/settings/#databases 76 | 77 | DATABASES = { 78 | 'default': { 79 | 'ENGINE': 'django.db.backends.sqlite3', 80 | 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 81 | } 82 | } 83 | 84 | 85 | # Password validation 86 | # https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validators 87 | 88 | AUTH_PASSWORD_VALIDATORS = [ 89 | { 90 | 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 91 | }, 92 | { 93 | 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 94 | }, 95 | { 96 | 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 97 | }, 98 | { 99 | 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 100 | }, 101 | ] 102 | 103 | 104 | # Internationalization 105 | # https://docs.djangoproject.com/en/2.0/topics/i18n/ 106 | 107 | LANGUAGE_CODE = 'zh-hans' 108 | 109 | TIME_ZONE = 'Asia/Shanghai' 110 | 111 | USE_I18N = True 112 | 113 | USE_L10N = True 114 | 115 | USE_TZ = True 116 | 117 | 118 | # Static files (CSS, JavaScript, Images) 119 | # https://docs.djangoproject.com/en/2.0/howto/static-files/ 120 | 121 | STATIC_URL = '/static/' 122 | 123 | STATICFILES_DIRS = [ 124 | os.path.join(BASE_DIR, 'static') 125 | ] 126 | -------------------------------------------------------------------------------- /rent/urls.py: -------------------------------------------------------------------------------- 1 | """rent URL Configuration 2 | 3 | The `urlpatterns` list routes URLs to views. For more information please see: 4 | https://docs.djangoproject.com/en/2.0/topics/http/urls/ 5 | Examples: 6 | Function views 7 | 1. Add an import: from my_app import views 8 | 2. Add a URL to urlpatterns: path('', views.home, name='home') 9 | Class-based views 10 | 1. Add an import: from other_app.views import Home 11 | 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') 12 | Including another URLconf 13 | 1. Import the include() function: from django.urls import include, path 14 | 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) 15 | """ 16 | from django.contrib import admin 17 | from django.urls import path, include 18 | 19 | 20 | urlpatterns = [ 21 | path('admin/', admin.site.urls), 22 | path('', include('rentAnalysis.urls')), 23 | ] 24 | -------------------------------------------------------------------------------- /rent/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for rent project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "rent.settings") 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /rentAnalysis/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PFFFei/rent/da8e387bb33804bb406ff452c508a155b771e3e9/rentAnalysis/__init__.py -------------------------------------------------------------------------------- /rentAnalysis/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from .models import Rent 3 | 4 | 5 | admin.site.site_title = '二手房信息管理系统' 6 | admin.site.site_header = '二手房信息管理系统' 7 | 8 | 9 | class RentAdmin(admin.ModelAdmin): 10 | list_display = ('title',) 11 | 12 | 13 | admin.site.register(Rent, RentAdmin) 14 | -------------------------------------------------------------------------------- /rentAnalysis/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class RentanalysisConfig(AppConfig): 5 | name = 'rentAnalysis' 6 | -------------------------------------------------------------------------------- /rentAnalysis/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.1 on 2020-04-04 14:50 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | initial = True 9 | 10 | dependencies = [ 11 | ] 12 | 13 | operations = [ 14 | migrations.CreateModel( 15 | name='Rent', 16 | fields=[ 17 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 18 | ('district', models.CharField(max_length=20, verbose_name='区域')), 19 | ('title', models.CharField(max_length=256, verbose_name='标题')), 20 | ('bedroom', models.CharField(max_length=20, verbose_name='房厅')), 21 | ('area', models.CharField(max_length=20, verbose_name='面积')), 22 | ('direction', models.CharField(max_length=20, verbose_name='朝向')), 23 | ('decoration', models.CharField(max_length=10, verbose_name='装修')), 24 | ('total_price', models.FloatField(verbose_name='总价(万元)')), 25 | ('unit_price', models.IntegerField(verbose_name='单价(元/平方米)')), 26 | ('add_date', models.DateTimeField(auto_now_add=True, verbose_name='创建日期')), 27 | ('mod_date', models.DateTimeField(auto_now=True, verbose_name='修改日期')), 28 | ], 29 | options={ 30 | 'verbose_name': '二手房', 31 | 'verbose_name_plural': '二手房', 32 | }, 33 | ), 34 | ] 35 | -------------------------------------------------------------------------------- /rentAnalysis/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PFFFei/rent/da8e387bb33804bb406ff452c508a155b771e3e9/rentAnalysis/migrations/__init__.py -------------------------------------------------------------------------------- /rentAnalysis/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | 4 | class Rent(models.Model): 5 | district = models.CharField(max_length=20, verbose_name='区域') 6 | title = models.CharField(max_length=256, verbose_name='标题') 7 | bedroom = models.CharField(max_length=20, verbose_name='房厅') 8 | area = models.CharField(max_length=20, verbose_name='面积') 9 | direction = models.CharField(max_length=20, verbose_name='朝向') 10 | decoration = models.CharField(max_length=10, verbose_name='装修') 11 | total_price = models.FloatField(verbose_name='总价(万元)') 12 | unit_price = models.IntegerField(verbose_name='单价(元/平方米)') 13 | 14 | add_date = models.DateTimeField(auto_now_add=True, verbose_name="创建日期") 15 | mod_date = models.DateTimeField(auto_now=True, verbose_name="修改日期") 16 | 17 | class Meta: 18 | verbose_name = '二手房' 19 | verbose_name_plural = verbose_name 20 | 21 | def __str__(self): 22 | return "{}-{}".format(self.title, self.total_price) 23 | 24 | 25 | -------------------------------------------------------------------------------- /rentAnalysis/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /rentAnalysis/urls.py: -------------------------------------------------------------------------------- 1 | from django.urls import path 2 | from .views import home, bedroom, index, district 3 | 4 | app_name = 'rentAnalysis' 5 | 6 | urlpatterns = [ 7 | path('', home, name='home'), 8 | path('bedroom/', bedroom, name='bedroom'), 9 | path('index/', index, name='index'), 10 | path('district/', district, name='district'), 11 | ] -------------------------------------------------------------------------------- /rentAnalysis/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render 2 | from .models import Rent 3 | from django.db.models import Avg, Max, Min, Sum 4 | from django.http import HttpResponse 5 | import json 6 | 7 | ''' 8 | 数据已进行预处理如下: 9 | for each in Rent.objects.all(): 10 | if each.district not in [' 简装 ', ' 毛坯 ', ' 精装 ', ' 其他 ']: 11 | each.district = ' 其他 ' 12 | each.save() 13 | ''' 14 | 15 | 16 | def home(request): 17 | return render(request, 'index.html') 18 | 19 | 20 | def bedroom(request): 21 | return render(request, 'district.html') 22 | 23 | 24 | def index(request): 25 | districts = ['简阳', '新津', '彭州', '龙泉驿', '天府新区南区', '青白江', '温江', '高新西', '金牛', '武侯', '天府新区', '高新', '成华', '双流', '新都', '郫都', '都江堰', '金堂', '锦江', '大邑', '崇州', '青羊'] 26 | decorations = [' 简装 ', ' 毛坯 ', ' 精装 ', ' 其他 '] 27 | source = [['decoration', '简装', '毛坯', '精装', '其他']] 28 | number = [] 29 | # # 每个区域 装修类型 平均单价 30 | for district in districts: 31 | temp = [district] 32 | rent = Rent.objects.filter(district=district) 33 | number.append(rent.count()) 34 | for decoration in decorations: 35 | unit_average = rent.filter(decoration=decoration).aggregate(Avg('unit_price')) 36 | temp.append(int(unit_average['unit_price__avg'])) 37 | source.append(temp) 38 | return HttpResponse(json.dumps({'source': source, 'districts': districts, 'number': number})) 39 | 40 | 41 | def district(request): 42 | temp = ['3室2厅 ', '2室2厅 ', '3室1厅 ', '4室2厅 ', '1室1厅 ', '5室2厅 ', '2室1厅 ', '6室2厅 ', '4室3厅 ', '5室1厅 ', '6室3厅 ', '2室0厅', '4室1厅 ', '车位 ', '1室0厅 ', '1室2厅 ', '5室3厅 ', '7室2厅 ', '3室3厅 ', '9室2厅 ', '3室0厅 ', '6室1厅 ', '7室1厅 ', '6室4厅', '4室4厅 ', '7室4厅 ', '0室0厅 ', '7室3厅 ', '8室2厅 ', '5室4厅 ', '2室3厅 ', '5室0厅 ', '6室5厅 ', '5室5厅 ', '7室5厅 ', '8室4厅 ', '8室3厅 ', '0室1厅 ', '8室8厅 ', '18室3厅 ', '12室3厅 ', '9室4厅 ', '9室6厅 ', '4室0厅 ', '3室4厅 ', '13室4厅 '] 43 | data = [] 44 | rent = Rent.objects.filter(district='锦江') 45 | for each in temp: 46 | data.append({'value': rent.filter(bedroom=each).count(), 'name': each}) 47 | 48 | return HttpResponse(json.dumps(data)) -------------------------------------------------------------------------------- /rentSpider/rentSpider/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PFFFei/rent/da8e387bb33804bb406ff452c508a155b771e3e9/rentSpider/rentSpider/__init__.py -------------------------------------------------------------------------------- /rentSpider/rentSpider/items.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Define here the models for your scraped items 4 | # 5 | # See documentation in: 6 | # https://docs.scrapy.org/en/latest/topics/items.html 7 | 8 | import scrapy 9 | 10 | # class RentspiderItem(scrapy.Item): 11 | # pass 12 | 13 | 14 | from scrapy_djangoitem import DjangoItem 15 | from rentAnalysis.models import Rent 16 | 17 | 18 | class RentspiderItem(DjangoItem): 19 | django_model = Rent 20 | -------------------------------------------------------------------------------- /rentSpider/rentSpider/middlewares.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Define here the models for your spider middleware 4 | # 5 | # See documentation in: 6 | # https://docs.scrapy.org/en/latest/topics/spider-middleware.html 7 | 8 | from scrapy import signals 9 | 10 | 11 | class RentspiderSpiderMiddleware(object): 12 | # Not all methods need to be defined. If a method is not defined, 13 | # scrapy acts as if the spider middleware does not modify the 14 | # passed objects. 15 | 16 | @classmethod 17 | def from_crawler(cls, crawler): 18 | # This method is used by Scrapy to create your spiders. 19 | s = cls() 20 | crawler.signals.connect(s.spider_opened, signal=signals.spider_opened) 21 | return s 22 | 23 | def process_spider_input(self, response, spider): 24 | # Called for each response that goes through the spider 25 | # middleware and into the spider. 26 | 27 | # Should return None or raise an exception. 28 | return None 29 | 30 | def process_spider_output(self, response, result, spider): 31 | # Called with the results returned from the Spider, after 32 | # it has processed the response. 33 | 34 | # Must return an iterable of Request, dict or Item objects. 35 | for i in result: 36 | yield i 37 | 38 | def process_spider_exception(self, response, exception, spider): 39 | # Called when a spider or process_spider_input() method 40 | # (from other spider middleware) raises an exception. 41 | 42 | # Should return either None or an iterable of Request, dict 43 | # or Item objects. 44 | pass 45 | 46 | def process_start_requests(self, start_requests, spider): 47 | # Called with the start requests of the spider, and works 48 | # similarly to the process_spider_output() method, except 49 | # that it doesn’t have a response associated. 50 | 51 | # Must return only requests (not items). 52 | for r in start_requests: 53 | yield r 54 | 55 | def spider_opened(self, spider): 56 | spider.logger.info('Spider opened: %s' % spider.name) 57 | 58 | 59 | class RentspiderDownloaderMiddleware(object): 60 | # Not all methods need to be defined. If a method is not defined, 61 | # scrapy acts as if the downloader middleware does not modify the 62 | # passed objects. 63 | 64 | @classmethod 65 | def from_crawler(cls, crawler): 66 | # This method is used by Scrapy to create your spiders. 67 | s = cls() 68 | crawler.signals.connect(s.spider_opened, signal=signals.spider_opened) 69 | return s 70 | 71 | def process_request(self, request, spider): 72 | # Called for each request that goes through the downloader 73 | # middleware. 74 | 75 | # Must either: 76 | # - return None: continue processing this request 77 | # - or return a Response object 78 | # - or return a Request object 79 | # - or raise IgnoreRequest: process_exception() methods of 80 | # installed downloader middleware will be called 81 | return None 82 | 83 | def process_response(self, request, response, spider): 84 | # Called with the response returned from the downloader. 85 | 86 | # Must either; 87 | # - return a Response object 88 | # - return a Request object 89 | # - or raise IgnoreRequest 90 | return response 91 | 92 | def process_exception(self, request, exception, spider): 93 | # Called when a download handler or a process_request() 94 | # (from other downloader middleware) raises an exception. 95 | 96 | # Must either: 97 | # - return None: continue processing this exception 98 | # - return a Response object: stops process_exception() chain 99 | # - return a Request object: stops process_exception() chain 100 | pass 101 | 102 | def spider_opened(self, spider): 103 | spider.logger.info('Spider opened: %s' % spider.name) 104 | -------------------------------------------------------------------------------- /rentSpider/rentSpider/pipelines.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Define your item pipelines here 4 | # 5 | # Don't forget to add your pipeline to the ITEM_PIPELINES setting 6 | # See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html 7 | 8 | 9 | class RentspiderPipeline(object): 10 | def process_item(self, item, spider): 11 | item.save() 12 | return item 13 | -------------------------------------------------------------------------------- /rentSpider/rentSpider/settings.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Scrapy settings for rentSpider project 4 | # 5 | # For simplicity, this file contains only settings considered important or 6 | # commonly used. You can find more settings consulting the documentation: 7 | # 8 | # https://docs.scrapy.org/en/latest/topics/settings.html 9 | # https://docs.scrapy.org/en/latest/topics/downloader-middleware.html 10 | # https://docs.scrapy.org/en/latest/topics/spider-middleware.html 11 | 12 | import os 13 | import sys 14 | import django 15 | sys.path.append(os.path.dirname(os.path.abspath('.'))) 16 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'rent.settings') # Django Project Name 17 | django.setup() 18 | 19 | BOT_NAME = 'rentSpider' 20 | 21 | SPIDER_MODULES = ['rentSpider.spiders'] 22 | NEWSPIDER_MODULE = 'rentSpider.spiders' 23 | 24 | 25 | # Crawl responsibly by identifying yourself (and your website) on the user-agent 26 | #USER_AGENT = 'rentSpider (+http://www.yourdomain.com)' 27 | USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0' 28 | 29 | # Obey robots.txt rules 30 | ROBOTSTXT_OBEY = True 31 | 32 | # Configure maximum concurrent requests performed by Scrapy (default: 16) 33 | #CONCURRENT_REQUESTS = 32 34 | 35 | # Configure a delay for requests for the same website (default: 0) 36 | # See https://docs.scrapy.org/en/latest/topics/settings.html#download-delay 37 | # See also autothrottle settings and docs 38 | #DOWNLOAD_DELAY = 3 39 | # The download delay setting will honor only one of: 40 | #CONCURRENT_REQUESTS_PER_DOMAIN = 16 41 | #CONCURRENT_REQUESTS_PER_IP = 16 42 | 43 | # Disable cookies (enabled by default) 44 | #COOKIES_ENABLED = False 45 | 46 | # Disable Telnet Console (enabled by default) 47 | #TELNETCONSOLE_ENABLED = False 48 | 49 | # Override the default request headers: 50 | #DEFAULT_REQUEST_HEADERS = { 51 | # 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 52 | # 'Accept-Language': 'en', 53 | #} 54 | 55 | # Enable or disable spider middlewares 56 | # See https://docs.scrapy.org/en/latest/topics/spider-middleware.html 57 | #SPIDER_MIDDLEWARES = { 58 | # 'rentSpider.middlewares.RentspiderSpiderMiddleware': 543, 59 | #} 60 | 61 | # Enable or disable downloader middlewares 62 | # See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html 63 | #DOWNLOADER_MIDDLEWARES = { 64 | # 'rentSpider.middlewares.RentspiderDownloaderMiddleware': 543, 65 | #} 66 | 67 | # Enable or disable extensions 68 | # See https://docs.scrapy.org/en/latest/topics/extensions.html 69 | #EXTENSIONS = { 70 | # 'scrapy.extensions.telnet.TelnetConsole': None, 71 | #} 72 | 73 | # Configure item pipelines 74 | # See https://docs.scrapy.org/en/latest/topics/item-pipeline.html 75 | ITEM_PIPELINES = { 76 | 'rentSpider.pipelines.RentspiderPipeline': 300, # Pipeline receives content 77 | } 78 | 79 | # Enable and configure the AutoThrottle extension (disabled by default) 80 | # See https://docs.scrapy.org/en/latest/topics/autothrottle.html 81 | #AUTOTHROTTLE_ENABLED = True 82 | # The initial download delay 83 | #AUTOTHROTTLE_START_DELAY = 5 84 | # The maximum download delay to be set in case of high latencies 85 | #AUTOTHROTTLE_MAX_DELAY = 60 86 | # The average number of requests Scrapy should be sending in parallel to 87 | # each remote server 88 | #AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0 89 | # Enable showing throttling stats for every response received: 90 | #AUTOTHROTTLE_DEBUG = False 91 | 92 | # Enable and configure HTTP caching (disabled by default) 93 | # See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings 94 | #HTTPCACHE_ENABLED = True 95 | #HTTPCACHE_EXPIRATION_SECS = 0 96 | #HTTPCACHE_DIR = 'httpcache' 97 | #HTTPCACHE_IGNORE_HTTP_CODES = [] 98 | #HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage' 99 | -------------------------------------------------------------------------------- /rentSpider/rentSpider/spiders/__init__.py: -------------------------------------------------------------------------------- 1 | # This package will contain the spiders of your Scrapy project 2 | # 3 | # Please refer to the documentation for information on how to create and manage 4 | # your spiders. 5 | -------------------------------------------------------------------------------- /rentSpider/rentSpider/spiders/house.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import scrapy 3 | from rentSpider.items import RentspiderItem 4 | import re 5 | 6 | 7 | class HouseSpider(scrapy.Spider): 8 | name = 'house' 9 | allowed_domains = ['cd.lianjia.com'] 10 | start_urls = ['https://cd.lianjia.com/ershoufang/'] 11 | 12 | def parse(self, response): 13 | for url in response.xpath('//div[@data-role="ershoufang"]/div/a/@href').extract(): 14 | yield scrapy.Request('https://cd.lianjia.com' + url, callback=self.page) 15 | 16 | def page(self, response): 17 | page = response.xpath('//div[@class="page-box house-lst-page-box"]/@page-data').extract() 18 | page = eval(page[0]) 19 | for i in range(1, page['totalPage']): 20 | yield scrapy.Request(response.url + 'pg{}'.format(i), callback=self.detail) 21 | 22 | def detail(self, response): 23 | for li in response.xpath('//ul[@class="sellListContent"]/li'): 24 | item = RentspiderItem() 25 | item['district'] = response.xpath('//h2[@class="total fl"]/text()').extract()[1].strip("套,二手房") 26 | item['title'] = li.xpath('.//div[@class="title"]/a/text()').extract()[0] 27 | detail = li.xpath('.//div[@class="address"]/div/text()').extract()[0].split("|") 28 | item['bedroom'] = detail[0] 29 | item['area'] = detail[1] 30 | item['direction'] = detail[2] 31 | item['decoration'] = detail[3] 32 | item['total_price'] = li.xpath('.//div[@class="totalPrice"]/span/text()').extract()[0] 33 | item['unit_price'] = li.xpath('.//div[@class="unitPrice"]/@data-price').extract()[0] 34 | yield item 35 | -------------------------------------------------------------------------------- /rentSpider/scrapy.cfg: -------------------------------------------------------------------------------- 1 | # Automatically created by: scrapy startproject 2 | # 3 | # For more information about the [deploy] section see: 4 | # https://scrapyd.readthedocs.io/en/latest/deploy.html 5 | 6 | [settings] 7 | default = rentSpider.settings 8 | 9 | [deploy] 10 | #url = http://localhost:6800/ 11 | project = rentSpider 12 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | asgiref==3.2.7 2 | attrs==19.3.0 3 | Automat==20.2.0 4 | cffi==1.14.0 5 | constantly==15.1.0 6 | cryptography==2.8 7 | cssselect==1.1.0 8 | Django==2.2.10 9 | hyperlink==19.0.0 10 | idna==2.9 11 | incremental==17.5.0 12 | lxml==4.5.0 13 | numpy==1.18.2 14 | pandas==1.0.3 15 | parsel==1.5.2 16 | Pillow==7.1.1 17 | Protego==0.1.16 18 | pyasn1==0.4.8 19 | pyasn1-modules==0.2.8 20 | pycparser==2.20 21 | PyDispatcher==2.0.5 22 | PyHamcrest==2.0.2 23 | pyOpenSSL==19.1.0 24 | python-dateutil==2.8.1 25 | pytz==2019.3 26 | queuelib==1.5.0 27 | Scrapy==2.0.1 28 | scrapy-djangoitem==1.1.1 29 | selenium==3.141.0 30 | service-identity==18.1.0 31 | six==1.14.0 32 | sqlparse==0.3.1 33 | Twisted==20.3.0 34 | urllib3==1.25.8 35 | w3lib==1.21.0 36 | zope.interface==5.0.2 37 | -------------------------------------------------------------------------------- /static/css/style.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'icomoon'; 3 | src: url('fonts/icomoon.eot?fo3jum'); 4 | src: url('fonts/icomoon.eot?fo3jum#iefix') format('embedded-opentype'), 5 | url('fonts/icomoon.ttf?fo3jum') format('truetype'), 6 | url('fonts/icomoon.woff?fo3jum') format('woff'), 7 | url('fonts/icomoon.svg?fo3jum#icomoon') format('svg'); 8 | font-weight: normal; 9 | font-style: normal; 10 | } 11 | 12 | [class^="icon-"], [class*=" icon-"] { 13 | /* use !important to prevent issues with browser extensions that change fonts */ 14 | font-family: 'icomoon' !important; 15 | speak: none; 16 | font-style: normal; 17 | font-weight: normal; 18 | font-variant: normal; 19 | text-transform: none; 20 | line-height: 1; 21 | 22 | /* Better Font Rendering =========== */ 23 | -webkit-font-smoothing: antialiased; 24 | -moz-osx-font-smoothing: grayscale; 25 | } 26 | 27 | .icon-3d_rotation:before { 28 | content: "\e84d"; 29 | } 30 | .icon-ac_unit:before { 31 | content: "\eb3b"; 32 | } 33 | .icon-alarm2:before { 34 | content: "\e855"; 35 | } 36 | .icon-access_alarms:before { 37 | content: "\e191"; 38 | } 39 | .icon-schedule:before { 40 | content: "\e8b5"; 41 | } 42 | .icon-accessibility2:before { 43 | content: "\e84e"; 44 | } 45 | .icon-accessible:before { 46 | content: "\eaeb"; 47 | } 48 | .icon-account_balance:before { 49 | content: "\e84f"; 50 | } 51 | .icon-account_balance_wallet:before { 52 | content: "\e850"; 53 | } 54 | .icon-account_box:before { 55 | content: "\e851"; 56 | } 57 | .icon-account_circle:before { 58 | content: "\e853"; 59 | } 60 | .icon-adb:before { 61 | content: "\e60e"; 62 | } 63 | .icon-add:before { 64 | content: "\e145"; 65 | } 66 | .icon-add_a_photo:before { 67 | content: "\e439"; 68 | } 69 | .icon-alarm_add:before { 70 | content: "\e856"; 71 | } 72 | .icon-add_alert:before { 73 | content: "\e003"; 74 | } 75 | .icon-add_box:before { 76 | content: "\e146"; 77 | } 78 | .icon-add_circle:before { 79 | content: "\e147"; 80 | } 81 | .icon-control_point:before { 82 | content: "\e3ba"; 83 | } 84 | .icon-add_location:before { 85 | content: "\e567"; 86 | } 87 | .icon-add_shopping_cart:before { 88 | content: "\e854"; 89 | } 90 | .icon-queue:before { 91 | content: "\e03c"; 92 | } 93 | .icon-add_to_queue:before { 94 | content: "\e05c"; 95 | } 96 | .icon-adjust:before { 97 | content: "\e39e"; 98 | } 99 | .icon-airline_seat_flat:before { 100 | content: "\e630"; 101 | } 102 | .icon-airline_seat_flat_angled:before { 103 | content: "\e631"; 104 | } 105 | .icon-airline_seat_individual_suite:before { 106 | content: "\e632"; 107 | } 108 | .icon-airline_seat_legroom_extra:before { 109 | content: "\e633"; 110 | } 111 | .icon-airline_seat_legroom_normal:before { 112 | content: "\e634"; 113 | } 114 | .icon-airline_seat_legroom_reduced:before { 115 | content: "\e635"; 116 | } 117 | .icon-airline_seat_recline_extra:before { 118 | content: "\e636"; 119 | } 120 | .icon-airline_seat_recline_normal:before { 121 | content: "\e637"; 122 | } 123 | .icon-flight:before { 124 | content: "\e539"; 125 | } 126 | .icon-airplanemode_inactive:before { 127 | content: "\e194"; 128 | } 129 | .icon-airplay:before { 130 | content: "\e055"; 131 | } 132 | .icon-airport_shuttle:before { 133 | content: "\eb3c"; 134 | } 135 | .icon-alarm_off:before { 136 | content: "\e857"; 137 | } 138 | .icon-alarm_on:before { 139 | content: "\e858"; 140 | } 141 | .icon-album:before { 142 | content: "\e019"; 143 | } 144 | .icon-all_inclusive:before { 145 | content: "\eb3d"; 146 | } 147 | .icon-all_out:before { 148 | content: "\eaec"; 149 | } 150 | .icon-android2:before { 151 | content: "\e859"; 152 | } 153 | .icon-announcement:before { 154 | content: "\e85a"; 155 | } 156 | .icon-apps:before { 157 | content: "\e5c3"; 158 | } 159 | .icon-archive:before { 160 | content: "\e149"; 161 | } 162 | .icon-arrow_back:before { 163 | content: "\e5c4"; 164 | } 165 | .icon-arrow_downward:before { 166 | content: "\e5db"; 167 | } 168 | .icon-arrow_drop_down:before { 169 | content: "\e5c5"; 170 | } 171 | .icon-arrow_drop_down_circle:before { 172 | content: "\e5c6"; 173 | } 174 | .icon-arrow_drop_up:before { 175 | content: "\e5c7"; 176 | } 177 | .icon-arrow_forward:before { 178 | content: "\e5c8"; 179 | } 180 | .icon-arrow_upward:before { 181 | content: "\e5d8"; 182 | } 183 | .icon-art_track:before { 184 | content: "\e060"; 185 | } 186 | .icon-aspect_ratio:before { 187 | content: "\e85b"; 188 | } 189 | .icon-poll:before { 190 | content: "\e801"; 191 | } 192 | .icon-assignment:before { 193 | content: "\e85d"; 194 | } 195 | .icon-assignment_ind:before { 196 | content: "\e85e"; 197 | } 198 | .icon-assignment_late:before { 199 | content: "\e85f"; 200 | } 201 | .icon-assignment_return:before { 202 | content: "\e860"; 203 | } 204 | .icon-assignment_returned:before { 205 | content: "\e861"; 206 | } 207 | .icon-assignment_turned_in:before { 208 | content: "\e862"; 209 | } 210 | .icon-assistant:before { 211 | content: "\e39f"; 212 | } 213 | .icon-flag2:before { 214 | content: "\e153"; 215 | } 216 | .icon-attach_file:before { 217 | content: "\e226"; 218 | } 219 | .icon-attach_money:before { 220 | content: "\e227"; 221 | } 222 | .icon-attachment2:before { 223 | content: "\e2bc"; 224 | } 225 | .icon-audiotrack:before { 226 | content: "\e3a1"; 227 | } 228 | .icon-autorenew:before { 229 | content: "\e863"; 230 | } 231 | .icon-av_timer:before { 232 | content: "\e01b"; 233 | } 234 | .icon-backspace:before { 235 | content: "\e14a"; 236 | } 237 | .icon-cloud_upload:before { 238 | content: "\e2c3"; 239 | } 240 | .icon-battery_alert:before { 241 | content: "\e19c"; 242 | } 243 | .icon-battery_charging_full:before { 244 | content: "\e1a3"; 245 | } 246 | .icon-battery_std:before { 247 | content: "\e1a5"; 248 | } 249 | .icon-battery_unknown:before { 250 | content: "\e1a6"; 251 | } 252 | .icon-beach_access:before { 253 | content: "\eb3e"; 254 | } 255 | .icon-beenhere:before { 256 | content: "\e52d"; 257 | } 258 | .icon-block:before { 259 | content: "\e14b"; 260 | } 261 | .icon-bluetooth:before { 262 | content: "\e1a7"; 263 | } 264 | .icon-bluetooth_searching:before { 265 | content: "\e1aa"; 266 | } 267 | .icon-bluetooth_connected:before { 268 | content: "\e1a8"; 269 | } 270 | .icon-bluetooth_disabled:before { 271 | content: "\e1a9"; 272 | } 273 | .icon-blur_circular:before { 274 | content: "\e3a2"; 275 | } 276 | .icon-blur_linear:before { 277 | content: "\e3a3"; 278 | } 279 | .icon-blur_off:before { 280 | content: "\e3a4"; 281 | } 282 | .icon-blur_on:before { 283 | content: "\e3a5"; 284 | } 285 | .icon-class:before { 286 | content: "\e86e"; 287 | } 288 | .icon-turned_in:before { 289 | content: "\e8e6"; 290 | } 291 | .icon-turned_in_not:before { 292 | content: "\e8e7"; 293 | } 294 | .icon-border_all:before { 295 | content: "\e228"; 296 | } 297 | .icon-border_bottom:before { 298 | content: "\e229"; 299 | } 300 | .icon-border_clear:before { 301 | content: "\e22a"; 302 | } 303 | .icon-border_color:before { 304 | content: "\e22b"; 305 | } 306 | .icon-border_horizontal:before { 307 | content: "\e22c"; 308 | } 309 | .icon-border_inner:before { 310 | content: "\e22d"; 311 | } 312 | .icon-border_left:before { 313 | content: "\e22e"; 314 | } 315 | .icon-border_outer:before { 316 | content: "\e22f"; 317 | } 318 | .icon-border_right:before { 319 | content: "\e230"; 320 | } 321 | .icon-border_style:before { 322 | content: "\e231"; 323 | } 324 | .icon-border_top:before { 325 | content: "\e232"; 326 | } 327 | .icon-border_vertical:before { 328 | content: "\e233"; 329 | } 330 | .icon-branding_watermark:before { 331 | content: "\e06b"; 332 | } 333 | .icon-brightness_1:before { 334 | content: "\e3a6"; 335 | } 336 | .icon-brightness_2:before { 337 | content: "\e3a7"; 338 | } 339 | .icon-brightness_3:before { 340 | content: "\e3a8"; 341 | } 342 | .icon-brightness_4:before { 343 | content: "\e3a9"; 344 | } 345 | .icon-brightness_low:before { 346 | content: "\e1ad"; 347 | } 348 | .icon-brightness_medium:before { 349 | content: "\e1ae"; 350 | } 351 | .icon-brightness_high:before { 352 | content: "\e1ac"; 353 | } 354 | .icon-brightness_auto:before { 355 | content: "\e1ab"; 356 | } 357 | .icon-broken_image:before { 358 | content: "\e3ad"; 359 | } 360 | .icon-brush:before { 361 | content: "\e3ae"; 362 | } 363 | .icon-bubble_chart:before { 364 | content: "\e6dd"; 365 | } 366 | .icon-bug_report:before { 367 | content: "\e868"; 368 | } 369 | .icon-build:before { 370 | content: "\e869"; 371 | } 372 | .icon-burst_mode:before { 373 | content: "\e43c"; 374 | } 375 | .icon-domain:before { 376 | content: "\e7ee"; 377 | } 378 | .icon-business_center:before { 379 | content: "\eb3f"; 380 | } 381 | .icon-cached:before { 382 | content: "\e86a"; 383 | } 384 | .icon-cake:before { 385 | content: "\e7e9"; 386 | } 387 | .icon-phone2:before { 388 | content: "\e0cd"; 389 | } 390 | .icon-call_end:before { 391 | content: "\e0b1"; 392 | } 393 | .icon-call_made:before { 394 | content: "\e0b2"; 395 | } 396 | .icon-merge_type:before { 397 | content: "\e252"; 398 | } 399 | .icon-call_missed:before { 400 | content: "\e0b4"; 401 | } 402 | .icon-call_missed_outgoing:before { 403 | content: "\e0e4"; 404 | } 405 | .icon-call_received:before { 406 | content: "\e0b5"; 407 | } 408 | .icon-call_split:before { 409 | content: "\e0b6"; 410 | } 411 | .icon-call_to_action:before { 412 | content: "\e06c"; 413 | } 414 | .icon-camera2:before { 415 | content: "\e3af"; 416 | } 417 | .icon-photo_camera:before { 418 | content: "\e412"; 419 | } 420 | .icon-camera_enhance:before { 421 | content: "\e8fc"; 422 | } 423 | .icon-camera_front:before { 424 | content: "\e3b1"; 425 | } 426 | .icon-camera_rear:before { 427 | content: "\e3b2"; 428 | } 429 | .icon-camera_roll:before { 430 | content: "\e3b3"; 431 | } 432 | .icon-cancel:before { 433 | content: "\e5c9"; 434 | } 435 | .icon-redeem:before { 436 | content: "\e8b1"; 437 | } 438 | .icon-card_membership:before { 439 | content: "\e8f7"; 440 | } 441 | .icon-card_travel:before { 442 | content: "\e8f8"; 443 | } 444 | .icon-casino:before { 445 | content: "\eb40"; 446 | } 447 | .icon-cast:before { 448 | content: "\e307"; 449 | } 450 | .icon-cast_connected:before { 451 | content: "\e308"; 452 | } 453 | .icon-center_focus_strong:before { 454 | content: "\e3b4"; 455 | } 456 | .icon-center_focus_weak:before { 457 | content: "\e3b5"; 458 | } 459 | .icon-change_history:before { 460 | content: "\e86b"; 461 | } 462 | .icon-chat:before { 463 | content: "\e0b7"; 464 | } 465 | .icon-chat_bubble:before { 466 | content: "\e0ca"; 467 | } 468 | .icon-chat_bubble_outline:before { 469 | content: "\e0cb"; 470 | } 471 | .icon-check:before { 472 | content: "\e5ca"; 473 | } 474 | .icon-check_box:before { 475 | content: "\e834"; 476 | } 477 | .icon-check_box_outline_blank:before { 478 | content: "\e835"; 479 | } 480 | .icon-check_circle:before { 481 | content: "\e86c"; 482 | } 483 | .icon-navigate_before:before { 484 | content: "\e408"; 485 | } 486 | .icon-navigate_next:before { 487 | content: "\e409"; 488 | } 489 | .icon-child_care:before { 490 | content: "\eb41"; 491 | } 492 | .icon-child_friendly:before { 493 | content: "\eb42"; 494 | } 495 | .icon-chrome_reader_mode:before { 496 | content: "\e86d"; 497 | } 498 | .icon-close:before { 499 | content: "\e5cd"; 500 | } 501 | .icon-clear_all:before { 502 | content: "\e0b8"; 503 | } 504 | .icon-closed_caption:before { 505 | content: "\e01c"; 506 | } 507 | .icon-wb_cloudy:before { 508 | content: "\e42d"; 509 | } 510 | .icon-cloud_circle:before { 511 | content: "\e2be"; 512 | } 513 | .icon-cloud_done:before { 514 | content: "\e2bf"; 515 | } 516 | .icon-cloud_download:before { 517 | content: "\e2c0"; 518 | } 519 | .icon-cloud_off:before { 520 | content: "\e2c1"; 521 | } 522 | .icon-cloud_queue:before { 523 | content: "\e2c2"; 524 | } 525 | .icon-code:before { 526 | content: "\e86f"; 527 | } 528 | .icon-photo_library:before { 529 | content: "\e413"; 530 | } 531 | .icon-collections_bookmark:before { 532 | content: "\e431"; 533 | } 534 | .icon-palette:before { 535 | content: "\e40a"; 536 | } 537 | .icon-colorize:before { 538 | content: "\e3b8"; 539 | } 540 | .icon-comment:before { 541 | content: "\e0b9"; 542 | } 543 | .icon-compare:before { 544 | content: "\e3b9"; 545 | } 546 | .icon-compare_arrows:before { 547 | content: "\eaed"; 548 | } 549 | .icon-laptop2:before { 550 | content: "\e31e"; 551 | } 552 | .icon-confirmation_number:before { 553 | content: "\e638"; 554 | } 555 | .icon-contact_mail:before { 556 | content: "\e0d0"; 557 | } 558 | .icon-contact_phone:before { 559 | content: "\e0cf"; 560 | } 561 | .icon-contacts:before { 562 | content: "\e0ba"; 563 | } 564 | .icon-content_copy:before { 565 | content: "\e14d"; 566 | } 567 | .icon-content_cut:before { 568 | content: "\e14e"; 569 | } 570 | .icon-content_paste:before { 571 | content: "\e14f"; 572 | } 573 | .icon-control_point_duplicate:before { 574 | content: "\e3bb"; 575 | } 576 | .icon-copyright:before { 577 | content: "\eaee"; 578 | } 579 | .icon-mode_edit:before { 580 | content: "\e254"; 581 | } 582 | .icon-create_new_folder:before { 583 | content: "\e2cc"; 584 | } 585 | .icon-payment:before { 586 | content: "\e8a1"; 587 | } 588 | .icon-crop2:before { 589 | content: "\e3be"; 590 | } 591 | .icon-crop_16_9:before { 592 | content: "\e3bc"; 593 | } 594 | .icon-crop_3_2:before { 595 | content: "\e3bd"; 596 | } 597 | .icon-crop_landscape:before { 598 | content: "\e3c3"; 599 | } 600 | .icon-crop_7_5:before { 601 | content: "\e3c0"; 602 | } 603 | .icon-crop_din:before { 604 | content: "\e3c1"; 605 | } 606 | .icon-crop_free:before { 607 | content: "\e3c2"; 608 | } 609 | .icon-crop_original:before { 610 | content: "\e3c4"; 611 | } 612 | .icon-crop_portrait:before { 613 | content: "\e3c5"; 614 | } 615 | .icon-crop_rotate:before { 616 | content: "\e437"; 617 | } 618 | .icon-crop_square:before { 619 | content: "\e3c6"; 620 | } 621 | .icon-dashboard:before { 622 | content: "\e871"; 623 | } 624 | .icon-data_usage:before { 625 | content: "\e1af"; 626 | } 627 | .icon-date_range:before { 628 | content: "\eaef"; 629 | } 630 | .icon-dehaze:before { 631 | content: "\e3c7"; 632 | } 633 | .icon-delete:before { 634 | content: "\e872"; 635 | } 636 | .icon-delete_forever:before { 637 | content: "\eaf0"; 638 | } 639 | .icon-delete_sweep:before { 640 | content: "\e16c"; 641 | } 642 | .icon-description:before { 643 | content: "\e873"; 644 | } 645 | .icon-desktop_mac:before { 646 | content: "\e30b"; 647 | } 648 | .icon-desktop_windows:before { 649 | content: "\e30c"; 650 | } 651 | .icon-details:before { 652 | content: "\e3c8"; 653 | } 654 | .icon-developer_board:before { 655 | content: "\e30d"; 656 | } 657 | .icon-developer_mode:before { 658 | content: "\e1b0"; 659 | } 660 | .icon-device_hub:before { 661 | content: "\e335"; 662 | } 663 | .icon-phonelink:before { 664 | content: "\e326"; 665 | } 666 | .icon-devices_other:before { 667 | content: "\e337"; 668 | } 669 | .icon-dialer_sip:before { 670 | content: "\e0bb"; 671 | } 672 | .icon-dialpad:before { 673 | content: "\e0bc"; 674 | } 675 | .icon-directions:before { 676 | content: "\e52e"; 677 | } 678 | .icon-directions_bike:before { 679 | content: "\e52f"; 680 | } 681 | .icon-directions_boat:before { 682 | content: "\e532"; 683 | } 684 | .icon-directions_bus:before { 685 | content: "\e530"; 686 | } 687 | .icon-directions_car:before { 688 | content: "\e531"; 689 | } 690 | .icon-directions_railway:before { 691 | content: "\e534"; 692 | } 693 | .icon-directions_run:before { 694 | content: "\e566"; 695 | } 696 | .icon-directions_transit:before { 697 | content: "\e535"; 698 | } 699 | .icon-directions_walk:before { 700 | content: "\e536"; 701 | } 702 | .icon-disc_full:before { 703 | content: "\e610"; 704 | } 705 | .icon-dns:before { 706 | content: "\e875"; 707 | } 708 | .icon-not_interested:before { 709 | content: "\e033"; 710 | } 711 | .icon-do_not_disturb_alt:before { 712 | content: "\e611"; 713 | } 714 | .icon-do_not_disturb_off:before { 715 | content: "\e643"; 716 | } 717 | .icon-remove_circle:before { 718 | content: "\e15c"; 719 | } 720 | .icon-dock:before { 721 | content: "\e30e"; 722 | } 723 | .icon-done:before { 724 | content: "\e876"; 725 | } 726 | .icon-done_all:before { 727 | content: "\e877"; 728 | } 729 | .icon-donut_large:before { 730 | content: "\eaf1"; 731 | } 732 | .icon-donut_small:before { 733 | content: "\eaf2"; 734 | } 735 | .icon-drafts:before { 736 | content: "\e151"; 737 | } 738 | .icon-drag_handle:before { 739 | content: "\e25d"; 740 | } 741 | .icon-time_to_leave:before { 742 | content: "\e62c"; 743 | } 744 | .icon-dvr:before { 745 | content: "\e1b2"; 746 | } 747 | .icon-edit_location:before { 748 | content: "\e568"; 749 | } 750 | .icon-eject2:before { 751 | content: "\e8fb"; 752 | } 753 | .icon-markunread:before { 754 | content: "\e159"; 755 | } 756 | .icon-enhanced_encryption:before { 757 | content: "\e63f"; 758 | } 759 | .icon-equalizer3:before { 760 | content: "\e01d"; 761 | } 762 | .icon-error:before { 763 | content: "\e000"; 764 | } 765 | .icon-error_outline:before { 766 | content: "\e001"; 767 | } 768 | .icon-euro_symbol:before { 769 | content: "\eaf3"; 770 | } 771 | .icon-ev_station:before { 772 | content: "\e56d"; 773 | } 774 | .icon-insert_invitation:before { 775 | content: "\e24f"; 776 | } 777 | .icon-event_available:before { 778 | content: "\e614"; 779 | } 780 | .icon-event_busy:before { 781 | content: "\e615"; 782 | } 783 | .icon-event_note:before { 784 | content: "\e616"; 785 | } 786 | .icon-event_seat:before { 787 | content: "\eaf4"; 788 | } 789 | .icon-exit_to_app:before { 790 | content: "\e879"; 791 | } 792 | .icon-expand_less:before { 793 | content: "\e5ce"; 794 | } 795 | .icon-expand_more:before { 796 | content: "\e5cf"; 797 | } 798 | .icon-explicit:before { 799 | content: "\e01e"; 800 | } 801 | .icon-explore:before { 802 | content: "\e87a"; 803 | } 804 | .icon-exposure:before { 805 | content: "\e3ca"; 806 | } 807 | .icon-exposure_neg_1:before { 808 | content: "\e3cb"; 809 | } 810 | .icon-exposure_neg_2:before { 811 | content: "\e3cc"; 812 | } 813 | .icon-exposure_plus_1:before { 814 | content: "\e3cd"; 815 | } 816 | .icon-exposure_plus_2:before { 817 | content: "\e3ce"; 818 | } 819 | .icon-exposure_zero:before { 820 | content: "\e3cf"; 821 | } 822 | .icon-extension:before { 823 | content: "\e87b"; 824 | } 825 | .icon-face:before { 826 | content: "\e87c"; 827 | } 828 | .icon-fast_forward:before { 829 | content: "\e01f"; 830 | } 831 | .icon-fast_rewind:before { 832 | content: "\e020"; 833 | } 834 | .icon-favorite:before { 835 | content: "\e87d"; 836 | } 837 | .icon-favorite_border:before { 838 | content: "\e87e"; 839 | } 840 | .icon-featured_play_list:before { 841 | content: "\e06d"; 842 | } 843 | .icon-featured_video:before { 844 | content: "\e06e"; 845 | } 846 | .icon-sms_failed:before { 847 | content: "\e626"; 848 | } 849 | .icon-fiber_dvr:before { 850 | content: "\e05d"; 851 | } 852 | .icon-fiber_manual_record:before { 853 | content: "\e061"; 854 | } 855 | .icon-fiber_new:before { 856 | content: "\e05e"; 857 | } 858 | .icon-fiber_pin:before { 859 | content: "\e06a"; 860 | } 861 | .icon-fiber_smart_record:before { 862 | content: "\e062"; 863 | } 864 | .icon-get_app:before { 865 | content: "\e884"; 866 | } 867 | .icon-file_upload:before { 868 | content: "\e2c6"; 869 | } 870 | .icon-filter2:before { 871 | content: "\e3d3"; 872 | } 873 | .icon-filter_1:before { 874 | content: "\e3d0"; 875 | } 876 | .icon-filter_2:before { 877 | content: "\e3d1"; 878 | } 879 | .icon-filter_3:before { 880 | content: "\e3d2"; 881 | } 882 | .icon-filter_4:before { 883 | content: "\e3d4"; 884 | } 885 | .icon-filter_5:before { 886 | content: "\e3d5"; 887 | } 888 | .icon-filter_6:before { 889 | content: "\e3d6"; 890 | } 891 | .icon-filter_7:before { 892 | content: "\e3d7"; 893 | } 894 | .icon-filter_8:before { 895 | content: "\e3d8"; 896 | } 897 | .icon-filter_9:before { 898 | content: "\e3d9"; 899 | } 900 | .icon-filter_9_plus:before { 901 | content: "\e3da"; 902 | } 903 | .icon-filter_b_and_w:before { 904 | content: "\e3db"; 905 | } 906 | .icon-filter_center_focus:before { 907 | content: "\e3dc"; 908 | } 909 | .icon-filter_drama:before { 910 | content: "\e3dd"; 911 | } 912 | .icon-filter_frames:before { 913 | content: "\e3de"; 914 | } 915 | .icon-terrain:before { 916 | content: "\e564"; 917 | } 918 | .icon-filter_list:before { 919 | content: "\e152"; 920 | } 921 | .icon-filter_none:before { 922 | content: "\e3e0"; 923 | } 924 | .icon-filter_tilt_shift:before { 925 | content: "\e3e2"; 926 | } 927 | .icon-filter_vintage:before { 928 | content: "\e3e3"; 929 | } 930 | .icon-find_in_page:before { 931 | content: "\e880"; 932 | } 933 | .icon-find_replace:before { 934 | content: "\e881"; 935 | } 936 | .icon-fingerprint:before { 937 | content: "\eaf5"; 938 | } 939 | .icon-first_page:before { 940 | content: "\e5dc"; 941 | } 942 | .icon-fitness_center:before { 943 | content: "\eb43"; 944 | } 945 | .icon-flare:before { 946 | content: "\e3e4"; 947 | } 948 | .icon-flash_auto:before { 949 | content: "\e3e5"; 950 | } 951 | .icon-flash_off:before { 952 | content: "\e3e6"; 953 | } 954 | .icon-flash_on:before { 955 | content: "\e3e7"; 956 | } 957 | .icon-flight_land:before { 958 | content: "\eaf6"; 959 | } 960 | .icon-flight_takeoff:before { 961 | content: "\eaf7"; 962 | } 963 | .icon-flip:before { 964 | content: "\e3e8"; 965 | } 966 | .icon-flip_to_back:before { 967 | content: "\e882"; 968 | } 969 | .icon-flip_to_front:before { 970 | content: "\e883"; 971 | } 972 | .icon-folder2:before { 973 | content: "\e2c7"; 974 | } 975 | .icon-folder_open:before { 976 | content: "\e2c8"; 977 | } 978 | .icon-folder_shared:before { 979 | content: "\e2c9"; 980 | } 981 | .icon-folder_special:before { 982 | content: "\e617"; 983 | } 984 | .icon-font_download:before { 985 | content: "\e167"; 986 | } 987 | .icon-format_align_center:before { 988 | content: "\e234"; 989 | } 990 | .icon-format_align_justify:before { 991 | content: "\e235"; 992 | } 993 | .icon-format_align_left:before { 994 | content: "\e236"; 995 | } 996 | .icon-format_align_right:before { 997 | content: "\e237"; 998 | } 999 | .icon-format_bold:before { 1000 | content: "\e238"; 1001 | } 1002 | .icon-format_clear:before { 1003 | content: "\e239"; 1004 | } 1005 | .icon-format_color_fill:before { 1006 | content: "\e23a"; 1007 | } 1008 | .icon-format_color_reset:before { 1009 | content: "\e23b"; 1010 | } 1011 | .icon-format_color_text:before { 1012 | content: "\e23c"; 1013 | } 1014 | .icon-format_indent_decrease:before { 1015 | content: "\e23d"; 1016 | } 1017 | .icon-format_indent_increase:before { 1018 | content: "\e23e"; 1019 | } 1020 | .icon-format_italic:before { 1021 | content: "\e23f"; 1022 | } 1023 | .icon-format_line_spacing:before { 1024 | content: "\e240"; 1025 | } 1026 | .icon-format_list_bulleted:before { 1027 | content: "\e241"; 1028 | } 1029 | .icon-format_list_numbered:before { 1030 | content: "\e242"; 1031 | } 1032 | .icon-format_paint:before { 1033 | content: "\e243"; 1034 | } 1035 | .icon-format_quote:before { 1036 | content: "\e244"; 1037 | } 1038 | .icon-format_shapes:before { 1039 | content: "\e25e"; 1040 | } 1041 | .icon-format_size:before { 1042 | content: "\e245"; 1043 | } 1044 | .icon-format_strikethrough:before { 1045 | content: "\e246"; 1046 | } 1047 | .icon-format_textdirection_l_to_r:before { 1048 | content: "\e247"; 1049 | } 1050 | .icon-format_textdirection_r_to_l:before { 1051 | content: "\e248"; 1052 | } 1053 | .icon-format_underlined:before { 1054 | content: "\e249"; 1055 | } 1056 | .icon-question_answer:before { 1057 | content: "\e8af"; 1058 | } 1059 | .icon-forward4:before { 1060 | content: "\e154"; 1061 | } 1062 | .icon-forward_10:before { 1063 | content: "\e056"; 1064 | } 1065 | .icon-forward_30:before { 1066 | content: "\e057"; 1067 | } 1068 | .icon-forward_5:before { 1069 | content: "\e058"; 1070 | } 1071 | .icon-free_breakfast:before { 1072 | content: "\eb44"; 1073 | } 1074 | .icon-fullscreen:before { 1075 | content: "\e5d0"; 1076 | } 1077 | .icon-fullscreen_exit:before { 1078 | content: "\e5d1"; 1079 | } 1080 | .icon-functions:before { 1081 | content: "\e24a"; 1082 | } 1083 | .icon-g_translate:before { 1084 | content: "\eaf8"; 1085 | } 1086 | .icon-games:before { 1087 | content: "\e021"; 1088 | } 1089 | .icon-gavel:before { 1090 | content: "\eaf9"; 1091 | } 1092 | .icon-gesture:before { 1093 | content: "\e155"; 1094 | } 1095 | .icon-gif:before { 1096 | content: "\eafa"; 1097 | } 1098 | .icon-goat:before { 1099 | content: "\eafb"; 1100 | } 1101 | .icon-golf_course:before { 1102 | content: "\eb45"; 1103 | } 1104 | .icon-my_location:before { 1105 | content: "\e55c"; 1106 | } 1107 | .icon-location_searching:before { 1108 | content: "\e1b7"; 1109 | } 1110 | .icon-location_disabled:before { 1111 | content: "\e1b6"; 1112 | } 1113 | .icon-star:before { 1114 | content: "\e838"; 1115 | } 1116 | .icon-gradient:before { 1117 | content: "\e3e9"; 1118 | } 1119 | .icon-grain:before { 1120 | content: "\e3ea"; 1121 | } 1122 | .icon-graphic_eq:before { 1123 | content: "\e1b8"; 1124 | } 1125 | .icon-grid_off:before { 1126 | content: "\e3eb"; 1127 | } 1128 | .icon-grid_on:before { 1129 | content: "\e3ec"; 1130 | } 1131 | .icon-people:before { 1132 | content: "\e7fb"; 1133 | } 1134 | .icon-group_add:before { 1135 | content: "\e7f0"; 1136 | } 1137 | .icon-group_work:before { 1138 | content: "\e886"; 1139 | } 1140 | .icon-hd:before { 1141 | content: "\e052"; 1142 | } 1143 | .icon-hdr_off:before { 1144 | content: "\e3ed"; 1145 | } 1146 | .icon-hdr_on:before { 1147 | content: "\e3ee"; 1148 | } 1149 | .icon-hdr_strong:before { 1150 | content: "\e3f1"; 1151 | } 1152 | .icon-hdr_weak:before { 1153 | content: "\e3f2"; 1154 | } 1155 | .icon-headset:before { 1156 | content: "\e310"; 1157 | } 1158 | .icon-headset_mic:before { 1159 | content: "\e311"; 1160 | } 1161 | .icon-healing:before { 1162 | content: "\e3f3"; 1163 | } 1164 | .icon-hearing:before { 1165 | content: "\e023"; 1166 | } 1167 | .icon-help:before { 1168 | content: "\e887"; 1169 | } 1170 | .icon-help_outline:before { 1171 | content: "\e8fd"; 1172 | } 1173 | .icon-high_quality:before { 1174 | content: "\e024"; 1175 | } 1176 | .icon-highlight:before { 1177 | content: "\e25f"; 1178 | } 1179 | .icon-highlight_off:before { 1180 | content: "\e888"; 1181 | } 1182 | .icon-restore:before { 1183 | content: "\e8b3"; 1184 | } 1185 | .icon-home4:before { 1186 | content: "\e88a"; 1187 | } 1188 | .icon-hot_tub:before { 1189 | content: "\eb46"; 1190 | } 1191 | .icon-local_hotel:before { 1192 | content: "\e549"; 1193 | } 1194 | .icon-hourglass_empty:before { 1195 | content: "\e88b"; 1196 | } 1197 | .icon-hourglass_full:before { 1198 | content: "\e88c"; 1199 | } 1200 | .icon-http:before { 1201 | content: "\eafc"; 1202 | } 1203 | .icon-lock2:before { 1204 | content: "\e897"; 1205 | } 1206 | .icon-photo:before { 1207 | content: "\e410"; 1208 | } 1209 | .icon-image_aspect_ratio:before { 1210 | content: "\e3f5"; 1211 | } 1212 | .icon-import_contacts:before { 1213 | content: "\e0e0"; 1214 | } 1215 | .icon-import_export:before { 1216 | content: "\e0c3"; 1217 | } 1218 | .icon-important_devices:before { 1219 | content: "\eafd"; 1220 | } 1221 | .icon-inbox:before { 1222 | content: "\e156"; 1223 | } 1224 | .icon-indeterminate_check_box:before { 1225 | content: "\eafe"; 1226 | } 1227 | .icon-info2:before { 1228 | content: "\e88e"; 1229 | } 1230 | .icon-info_outline:before { 1231 | content: "\e88f"; 1232 | } 1233 | .icon-input:before { 1234 | content: "\e890"; 1235 | } 1236 | .icon-insert_comment:before { 1237 | content: "\e24c"; 1238 | } 1239 | .icon-insert_drive_file:before { 1240 | content: "\e24d"; 1241 | } 1242 | .icon-tag_faces:before { 1243 | content: "\e420"; 1244 | } 1245 | .icon-link2:before { 1246 | content: "\e157"; 1247 | } 1248 | .icon-invert_colors:before { 1249 | content: "\e891"; 1250 | } 1251 | .icon-invert_colors_off:before { 1252 | content: "\e0c4"; 1253 | } 1254 | .icon-iso:before { 1255 | content: "\e3f6"; 1256 | } 1257 | .icon-keyboard2:before { 1258 | content: "\e312"; 1259 | } 1260 | .icon-keyboard_arrow_down:before { 1261 | content: "\e313"; 1262 | } 1263 | .icon-keyboard_arrow_left:before { 1264 | content: "\e314"; 1265 | } 1266 | .icon-keyboard_arrow_right:before { 1267 | content: "\e315"; 1268 | } 1269 | .icon-keyboard_arrow_up:before { 1270 | content: "\e316"; 1271 | } 1272 | .icon-keyboard_backspace:before { 1273 | content: "\e317"; 1274 | } 1275 | .icon-keyboard_capslock:before { 1276 | content: "\e318"; 1277 | } 1278 | .icon-keyboard_hide:before { 1279 | content: "\e31a"; 1280 | } 1281 | .icon-keyboard_return:before { 1282 | content: "\e31b"; 1283 | } 1284 | .icon-keyboard_tab:before { 1285 | content: "\e31c"; 1286 | } 1287 | .icon-keyboard_voice:before { 1288 | content: "\e31d"; 1289 | } 1290 | .icon-kitchen:before { 1291 | content: "\eb47"; 1292 | } 1293 | .icon-label:before { 1294 | content: "\e892"; 1295 | } 1296 | .icon-label_outline:before { 1297 | content: "\e893"; 1298 | } 1299 | .icon-language:before { 1300 | content: "\e894"; 1301 | } 1302 | .icon-laptop_chromebook:before { 1303 | content: "\e31f"; 1304 | } 1305 | .icon-laptop_mac:before { 1306 | content: "\e320"; 1307 | } 1308 | .icon-laptop_windows:before { 1309 | content: "\e321"; 1310 | } 1311 | .icon-last_page:before { 1312 | content: "\e5dd"; 1313 | } 1314 | .icon-open_in_new:before { 1315 | content: "\e89e"; 1316 | } 1317 | .icon-layers:before { 1318 | content: "\e53b"; 1319 | } 1320 | .icon-layers_clear:before { 1321 | content: "\e53c"; 1322 | } 1323 | .icon-leak_add:before { 1324 | content: "\e3f8"; 1325 | } 1326 | .icon-leak_remove:before { 1327 | content: "\e3f9"; 1328 | } 1329 | .icon-lens:before { 1330 | content: "\e3fa"; 1331 | } 1332 | .icon-library_books:before { 1333 | content: "\e02f"; 1334 | } 1335 | .icon-library_music:before { 1336 | content: "\e030"; 1337 | } 1338 | .icon-lightbulb_outline:before { 1339 | content: "\eaff"; 1340 | } 1341 | .icon-line_style:before { 1342 | content: "\eb00"; 1343 | } 1344 | .icon-line_weight:before { 1345 | content: "\eb01"; 1346 | } 1347 | .icon-linear_scale:before { 1348 | content: "\e260"; 1349 | } 1350 | .icon-linked_camera:before { 1351 | content: "\e438"; 1352 | } 1353 | .icon-list3:before { 1354 | content: "\e896"; 1355 | } 1356 | .icon-live_help:before { 1357 | content: "\e0c6"; 1358 | } 1359 | .icon-live_tv:before { 1360 | content: "\e639"; 1361 | } 1362 | .icon-local_play:before { 1363 | content: "\e553"; 1364 | } 1365 | .icon-local_airport:before { 1366 | content: "\e53d"; 1367 | } 1368 | .icon-local_atm:before { 1369 | content: "\e53e"; 1370 | } 1371 | .icon-local_bar:before { 1372 | content: "\e540"; 1373 | } 1374 | .icon-local_cafe:before { 1375 | content: "\e541"; 1376 | } 1377 | .icon-local_car_wash:before { 1378 | content: "\e542"; 1379 | } 1380 | .icon-local_convenience_store:before { 1381 | content: "\e543"; 1382 | } 1383 | .icon-restaurant_menu:before { 1384 | content: "\e561"; 1385 | } 1386 | .icon-local_drink:before { 1387 | content: "\e544"; 1388 | } 1389 | .icon-local_florist:before { 1390 | content: "\e545"; 1391 | } 1392 | .icon-local_gas_station:before { 1393 | content: "\e546"; 1394 | } 1395 | .icon-shopping_cart:before { 1396 | content: "\e8cc"; 1397 | } 1398 | .icon-local_hospital:before { 1399 | content: "\e548"; 1400 | } 1401 | .icon-local_laundry_service:before { 1402 | content: "\e54a"; 1403 | } 1404 | .icon-local_library:before { 1405 | content: "\e54b"; 1406 | } 1407 | .icon-local_mall:before { 1408 | content: "\e54c"; 1409 | } 1410 | .icon-theaters:before { 1411 | content: "\e8da"; 1412 | } 1413 | .icon-local_offer:before { 1414 | content: "\e54e"; 1415 | } 1416 | .icon-local_parking:before { 1417 | content: "\e54f"; 1418 | } 1419 | .icon-local_pharmacy:before { 1420 | content: "\e550"; 1421 | } 1422 | .icon-local_pizza:before { 1423 | content: "\e552"; 1424 | } 1425 | .icon-print:before { 1426 | content: "\e8ad"; 1427 | } 1428 | .icon-local_shipping:before { 1429 | content: "\e558"; 1430 | } 1431 | .icon-local_taxi:before { 1432 | content: "\e559"; 1433 | } 1434 | .icon-location_city:before { 1435 | content: "\e7f1"; 1436 | } 1437 | .icon-location_off:before { 1438 | content: "\e0c7"; 1439 | } 1440 | .icon-room:before { 1441 | content: "\e8b4"; 1442 | } 1443 | .icon-lock_open:before { 1444 | content: "\e898"; 1445 | } 1446 | .icon-lock_outline:before { 1447 | content: "\e899"; 1448 | } 1449 | .icon-looks:before { 1450 | content: "\e3fc"; 1451 | } 1452 | .icon-looks_3:before { 1453 | content: "\e3fb"; 1454 | } 1455 | .icon-looks_4:before { 1456 | content: "\e3fd"; 1457 | } 1458 | .icon-looks_5:before { 1459 | content: "\e3fe"; 1460 | } 1461 | .icon-looks_6:before { 1462 | content: "\e3ff"; 1463 | } 1464 | .icon-looks_one:before { 1465 | content: "\e400"; 1466 | } 1467 | .icon-looks_two:before { 1468 | content: "\e401"; 1469 | } 1470 | .icon-sync:before { 1471 | content: "\e627"; 1472 | } 1473 | .icon-loupe:before { 1474 | content: "\e402"; 1475 | } 1476 | .icon-low_priority:before { 1477 | content: "\e16d"; 1478 | } 1479 | .icon-loyalty:before { 1480 | content: "\e89a"; 1481 | } 1482 | .icon-mail_outline:before { 1483 | content: "\e0e1"; 1484 | } 1485 | .icon-map3:before { 1486 | content: "\e55b"; 1487 | } 1488 | .icon-markunread_mailbox:before { 1489 | content: "\e89b"; 1490 | } 1491 | .icon-memory:before { 1492 | content: "\e322"; 1493 | } 1494 | .icon-menu5:before { 1495 | content: "\e5d2"; 1496 | } 1497 | .icon-message:before { 1498 | content: "\e0c9"; 1499 | } 1500 | .icon-mic2:before { 1501 | content: "\e029"; 1502 | } 1503 | .icon-mic_none:before { 1504 | content: "\e02a"; 1505 | } 1506 | .icon-mic_off:before { 1507 | content: "\e02b"; 1508 | } 1509 | .icon-mms:before { 1510 | content: "\e618"; 1511 | } 1512 | .icon-mode_comment:before { 1513 | content: "\e253"; 1514 | } 1515 | .icon-monetization_on:before { 1516 | content: "\e263"; 1517 | } 1518 | .icon-money_off:before { 1519 | content: "\e25c"; 1520 | } 1521 | .icon-monochrome_photos:before { 1522 | content: "\e403"; 1523 | } 1524 | .icon-mood_bad:before { 1525 | content: "\e7f3"; 1526 | } 1527 | .icon-more:before { 1528 | content: "\e619"; 1529 | } 1530 | .icon-more_horiz:before { 1531 | content: "\e5d3"; 1532 | } 1533 | .icon-more_vert:before { 1534 | content: "\e5d4"; 1535 | } 1536 | .icon-motorcycle:before { 1537 | content: "\eb02"; 1538 | } 1539 | .icon-mouse:before { 1540 | content: "\e323"; 1541 | } 1542 | .icon-move_to_inbox:before { 1543 | content: "\e168"; 1544 | } 1545 | .icon-movie_creation:before { 1546 | content: "\e404"; 1547 | } 1548 | .icon-movie_filter:before { 1549 | content: "\e43a"; 1550 | } 1551 | .icon-multiline_chart:before { 1552 | content: "\e6df"; 1553 | } 1554 | .icon-music_note:before { 1555 | content: "\e405"; 1556 | } 1557 | .icon-music_video:before { 1558 | content: "\e063"; 1559 | } 1560 | .icon-nature:before { 1561 | content: "\e406"; 1562 | } 1563 | .icon-nature_people:before { 1564 | content: "\e407"; 1565 | } 1566 | .icon-navigation:before { 1567 | content: "\e55d"; 1568 | } 1569 | .icon-near_me:before { 1570 | content: "\e569"; 1571 | } 1572 | .icon-network_cell:before { 1573 | content: "\e1b9"; 1574 | } 1575 | .icon-network_check:before { 1576 | content: "\e640"; 1577 | } 1578 | .icon-network_locked:before { 1579 | content: "\e61a"; 1580 | } 1581 | .icon-network_wifi:before { 1582 | content: "\e1ba"; 1583 | } 1584 | .icon-new_releases:before { 1585 | content: "\e031"; 1586 | } 1587 | .icon-next_week:before { 1588 | content: "\e16a"; 1589 | } 1590 | .icon-nfc:before { 1591 | content: "\e1bb"; 1592 | } 1593 | .icon-no_encryption:before { 1594 | content: "\e641"; 1595 | } 1596 | .icon-signal_cellular_no_sim:before { 1597 | content: "\e1ce"; 1598 | } 1599 | .icon-note:before { 1600 | content: "\e06f"; 1601 | } 1602 | .icon-note_add:before { 1603 | content: "\e89c"; 1604 | } 1605 | .icon-notifications:before { 1606 | content: "\e7f4"; 1607 | } 1608 | .icon-notifications_active:before { 1609 | content: "\e7f7"; 1610 | } 1611 | .icon-notifications_none:before { 1612 | content: "\e7f5"; 1613 | } 1614 | .icon-notifications_off:before { 1615 | content: "\e7f6"; 1616 | } 1617 | .icon-notifications_paused:before { 1618 | content: "\e7f8"; 1619 | } 1620 | .icon-offline_pin:before { 1621 | content: "\eb03"; 1622 | } 1623 | .icon-ondemand_video:before { 1624 | content: "\e63a"; 1625 | } 1626 | .icon-opacity:before { 1627 | content: "\eb04"; 1628 | } 1629 | .icon-open_in_browser:before { 1630 | content: "\e89d"; 1631 | } 1632 | .icon-open_with:before { 1633 | content: "\e89f"; 1634 | } 1635 | .icon-pages:before { 1636 | content: "\e7f9"; 1637 | } 1638 | .icon-pageview:before { 1639 | content: "\e8a0"; 1640 | } 1641 | .icon-pan_tool:before { 1642 | content: "\eb05"; 1643 | } 1644 | .icon-panorama:before { 1645 | content: "\e40b"; 1646 | } 1647 | .icon-radio_button_unchecked:before { 1648 | content: "\e836"; 1649 | } 1650 | .icon-panorama_horizontal:before { 1651 | content: "\e40d"; 1652 | } 1653 | .icon-panorama_vertical:before { 1654 | content: "\e40e"; 1655 | } 1656 | .icon-panorama_wide_angle:before { 1657 | content: "\e40f"; 1658 | } 1659 | .icon-party_mode:before { 1660 | content: "\e7fa"; 1661 | } 1662 | .icon-pause3:before { 1663 | content: "\e034"; 1664 | } 1665 | .icon-pause_circle_filled:before { 1666 | content: "\e035"; 1667 | } 1668 | .icon-pause_circle_outline:before { 1669 | content: "\e036"; 1670 | } 1671 | .icon-people_outline:before { 1672 | content: "\e7fc"; 1673 | } 1674 | .icon-perm_camera_mic:before { 1675 | content: "\e8a2"; 1676 | } 1677 | .icon-perm_contact_calendar:before { 1678 | content: "\e8a3"; 1679 | } 1680 | .icon-perm_data_setting:before { 1681 | content: "\e8a4"; 1682 | } 1683 | .icon-perm_device_information:before { 1684 | content: "\e8a5"; 1685 | } 1686 | .icon-person_outline:before { 1687 | content: "\e7ff"; 1688 | } 1689 | .icon-perm_media:before { 1690 | content: "\e8a7"; 1691 | } 1692 | .icon-perm_phone_msg:before { 1693 | content: "\e8a8"; 1694 | } 1695 | .icon-perm_scan_wifi:before { 1696 | content: "\e8a9"; 1697 | } 1698 | .icon-person:before { 1699 | content: "\e7fd"; 1700 | } 1701 | .icon-person_add:before { 1702 | content: "\e7fe"; 1703 | } 1704 | .icon-person_pin:before { 1705 | content: "\e55a"; 1706 | } 1707 | .icon-person_pin_circle:before { 1708 | content: "\e56a"; 1709 | } 1710 | .icon-personal_video:before { 1711 | content: "\e63b"; 1712 | } 1713 | .icon-pets:before { 1714 | content: "\eb06"; 1715 | } 1716 | .icon-phone_android:before { 1717 | content: "\e324"; 1718 | } 1719 | .icon-phone_bluetooth_speaker:before { 1720 | content: "\e61b"; 1721 | } 1722 | .icon-phone_forwarded:before { 1723 | content: "\e61c"; 1724 | } 1725 | .icon-phone_in_talk:before { 1726 | content: "\e61d"; 1727 | } 1728 | .icon-phone_iphone:before { 1729 | content: "\e325"; 1730 | } 1731 | .icon-phone_locked:before { 1732 | content: "\e61e"; 1733 | } 1734 | .icon-phone_missed:before { 1735 | content: "\e61f"; 1736 | } 1737 | .icon-phone_paused:before { 1738 | content: "\e620"; 1739 | } 1740 | .icon-phonelink_erase:before { 1741 | content: "\e0db"; 1742 | } 1743 | .icon-phonelink_lock:before { 1744 | content: "\e0dc"; 1745 | } 1746 | .icon-phonelink_off:before { 1747 | content: "\e327"; 1748 | } 1749 | .icon-phonelink_ring:before { 1750 | content: "\e0dd"; 1751 | } 1752 | .icon-phonelink_setup:before { 1753 | content: "\e0de"; 1754 | } 1755 | .icon-photo_album:before { 1756 | content: "\e411"; 1757 | } 1758 | .icon-photo_filter:before { 1759 | content: "\e43b"; 1760 | } 1761 | .icon-photo_size_select_actual:before { 1762 | content: "\e432"; 1763 | } 1764 | .icon-photo_size_select_large:before { 1765 | content: "\e433"; 1766 | } 1767 | .icon-photo_size_select_small:before { 1768 | content: "\e434"; 1769 | } 1770 | .icon-picture_as_pdf:before { 1771 | content: "\e415"; 1772 | } 1773 | .icon-picture_in_picture:before { 1774 | content: "\e8aa"; 1775 | } 1776 | .icon-picture_in_picture_alt:before { 1777 | content: "\eb07"; 1778 | } 1779 | .icon-pie_chart:before { 1780 | content: "\e6c4"; 1781 | } 1782 | .icon-pie_chart_outlined:before { 1783 | content: "\e6c5"; 1784 | } 1785 | .icon-pin_drop:before { 1786 | content: "\e55e"; 1787 | } 1788 | .icon-play_arrow:before { 1789 | content: "\e037"; 1790 | } 1791 | .icon-play_circle_filled:before { 1792 | content: "\e038"; 1793 | } 1794 | .icon-play_circle_outline:before { 1795 | content: "\e039"; 1796 | } 1797 | .icon-play_for_work:before { 1798 | content: "\eb08"; 1799 | } 1800 | .icon-playlist_add:before { 1801 | content: "\e03b"; 1802 | } 1803 | .icon-playlist_add_check:before { 1804 | content: "\e065"; 1805 | } 1806 | .icon-playlist_play:before { 1807 | content: "\e05f"; 1808 | } 1809 | .icon-plus_one:before { 1810 | content: "\e800"; 1811 | } 1812 | .icon-polymer:before { 1813 | content: "\e8ab"; 1814 | } 1815 | .icon-pool:before { 1816 | content: "\eb48"; 1817 | } 1818 | .icon-portable_wifi_off:before { 1819 | content: "\e0ce"; 1820 | } 1821 | .icon-portrait:before { 1822 | content: "\e416"; 1823 | } 1824 | .icon-power2:before { 1825 | content: "\e63c"; 1826 | } 1827 | .icon-power_input:before { 1828 | content: "\e336"; 1829 | } 1830 | .icon-power_settings_new:before { 1831 | content: "\e8ac"; 1832 | } 1833 | .icon-pregnant_woman:before { 1834 | content: "\eb09"; 1835 | } 1836 | .icon-present_to_all:before { 1837 | content: "\e0df"; 1838 | } 1839 | .icon-priority_high:before { 1840 | content: "\e645"; 1841 | } 1842 | .icon-public:before { 1843 | content: "\e80b"; 1844 | } 1845 | .icon-publish:before { 1846 | content: "\e255"; 1847 | } 1848 | .icon-queue_music:before { 1849 | content: "\e03d"; 1850 | } 1851 | .icon-queue_play_next:before { 1852 | content: "\e066"; 1853 | } 1854 | .icon-radio:before { 1855 | content: "\e03e"; 1856 | } 1857 | .icon-radio_button_checked:before { 1858 | content: "\e837"; 1859 | } 1860 | .icon-rate_review:before { 1861 | content: "\e560"; 1862 | } 1863 | .icon-receipt:before { 1864 | content: "\e8b0"; 1865 | } 1866 | .icon-recent_actors:before { 1867 | content: "\e03f"; 1868 | } 1869 | .icon-record_voice_over:before { 1870 | content: "\eb0a"; 1871 | } 1872 | .icon-redo3:before { 1873 | content: "\e15a"; 1874 | } 1875 | .icon-refresh:before { 1876 | content: "\e5d5"; 1877 | } 1878 | .icon-remove:before { 1879 | content: "\e15b"; 1880 | } 1881 | .icon-remove_circle_outline:before { 1882 | content: "\e15d"; 1883 | } 1884 | .icon-remove_from_queue:before { 1885 | content: "\e067"; 1886 | } 1887 | .icon-visibility:before { 1888 | content: "\e8f4"; 1889 | } 1890 | .icon-remove_shopping_cart:before { 1891 | content: "\eb0b"; 1892 | } 1893 | .icon-reorder:before { 1894 | content: "\e8fe"; 1895 | } 1896 | .icon-repeat:before { 1897 | content: "\e040"; 1898 | } 1899 | .icon-repeat_one:before { 1900 | content: "\e041"; 1901 | } 1902 | .icon-replay:before { 1903 | content: "\e042"; 1904 | } 1905 | .icon-replay_10:before { 1906 | content: "\e059"; 1907 | } 1908 | .icon-replay_30:before { 1909 | content: "\e05a"; 1910 | } 1911 | .icon-replay_5:before { 1912 | content: "\e05b"; 1913 | } 1914 | .icon-reply2:before { 1915 | content: "\e15e"; 1916 | } 1917 | .icon-reply_all:before { 1918 | content: "\e15f"; 1919 | } 1920 | .icon-report:before { 1921 | content: "\e160"; 1922 | } 1923 | .icon-warning2:before { 1924 | content: "\e002"; 1925 | } 1926 | .icon-restaurant:before { 1927 | content: "\e56c"; 1928 | } 1929 | .icon-restore_page:before { 1930 | content: "\eb0c"; 1931 | } 1932 | .icon-ring_volume:before { 1933 | content: "\e0d1"; 1934 | } 1935 | .icon-room_service:before { 1936 | content: "\eb49"; 1937 | } 1938 | .icon-rotate_90_degrees_ccw:before { 1939 | content: "\e418"; 1940 | } 1941 | .icon-rotate_left:before { 1942 | content: "\e419"; 1943 | } 1944 | .icon-rotate_right:before { 1945 | content: "\e41a"; 1946 | } 1947 | .icon-rounded_corner:before { 1948 | content: "\eb0d"; 1949 | } 1950 | .icon-router:before { 1951 | content: "\e328"; 1952 | } 1953 | .icon-rowing:before { 1954 | content: "\eb0e"; 1955 | } 1956 | .icon-rss_feed:before { 1957 | content: "\e0e5"; 1958 | } 1959 | .icon-rv_hookup:before { 1960 | content: "\e642"; 1961 | } 1962 | .icon-satellite:before { 1963 | content: "\e562"; 1964 | } 1965 | .icon-save:before { 1966 | content: "\e161"; 1967 | } 1968 | .icon-scanner:before { 1969 | content: "\e329"; 1970 | } 1971 | .icon-school:before { 1972 | content: "\e80c"; 1973 | } 1974 | .icon-screen_lock_landscape:before { 1975 | content: "\e1be"; 1976 | } 1977 | .icon-screen_lock_portrait:before { 1978 | content: "\e1bf"; 1979 | } 1980 | .icon-screen_lock_rotation:before { 1981 | content: "\e1c0"; 1982 | } 1983 | .icon-screen_rotation:before { 1984 | content: "\e1c1"; 1985 | } 1986 | .icon-screen_share:before { 1987 | content: "\e0e2"; 1988 | } 1989 | .icon-sd_storage:before { 1990 | content: "\e1c2"; 1991 | } 1992 | .icon-search2:before { 1993 | content: "\e8b6"; 1994 | } 1995 | .icon-security:before { 1996 | content: "\e32a"; 1997 | } 1998 | .icon-select_all:before { 1999 | content: "\e162"; 2000 | } 2001 | .icon-send:before { 2002 | content: "\e163"; 2003 | } 2004 | .icon-sentiment_dissatisfied:before { 2005 | content: "\e811"; 2006 | } 2007 | .icon-sentiment_neutral:before { 2008 | content: "\e812"; 2009 | } 2010 | .icon-sentiment_satisfied:before { 2011 | content: "\e813"; 2012 | } 2013 | .icon-sentiment_very_dissatisfied:before { 2014 | content: "\e814"; 2015 | } 2016 | .icon-sentiment_very_satisfied:before { 2017 | content: "\e815"; 2018 | } 2019 | .icon-settings:before { 2020 | content: "\e8b8"; 2021 | } 2022 | .icon-settings_applications:before { 2023 | content: "\e8b9"; 2024 | } 2025 | .icon-settings_backup_restore:before { 2026 | content: "\e8ba"; 2027 | } 2028 | .icon-settings_bluetooth:before { 2029 | content: "\e8bb"; 2030 | } 2031 | .icon-settings_brightness:before { 2032 | content: "\e8bd"; 2033 | } 2034 | .icon-settings_cell:before { 2035 | content: "\e8bc"; 2036 | } 2037 | .icon-settings_ethernet:before { 2038 | content: "\e8be"; 2039 | } 2040 | .icon-settings_input_antenna:before { 2041 | content: "\e8bf"; 2042 | } 2043 | .icon-settings_input_composite:before { 2044 | content: "\e8c1"; 2045 | } 2046 | .icon-settings_input_hdmi:before { 2047 | content: "\e8c2"; 2048 | } 2049 | .icon-settings_input_svideo:before { 2050 | content: "\e8c3"; 2051 | } 2052 | .icon-settings_overscan:before { 2053 | content: "\e8c4"; 2054 | } 2055 | .icon-settings_phone:before { 2056 | content: "\e8c5"; 2057 | } 2058 | .icon-settings_power:before { 2059 | content: "\e8c6"; 2060 | } 2061 | .icon-settings_remote:before { 2062 | content: "\e8c7"; 2063 | } 2064 | .icon-settings_system_daydream:before { 2065 | content: "\e1c3"; 2066 | } 2067 | .icon-settings_voice:before { 2068 | content: "\e8c8"; 2069 | } 2070 | .icon-share3:before { 2071 | content: "\e80d"; 2072 | } 2073 | .icon-shop:before { 2074 | content: "\e8c9"; 2075 | } 2076 | .icon-shop_two:before { 2077 | content: "\e8ca"; 2078 | } 2079 | .icon-shopping_basket:before { 2080 | content: "\e8cb"; 2081 | } 2082 | .icon-short_text:before { 2083 | content: "\e261"; 2084 | } 2085 | .icon-show_chart:before { 2086 | content: "\e6e1"; 2087 | } 2088 | .icon-shuffle2:before { 2089 | content: "\e043"; 2090 | } 2091 | .icon-signal_cellular_4_bar:before { 2092 | content: "\e1c8"; 2093 | } 2094 | .icon-signal_cellular_connected_no_internet_4_bar:before { 2095 | content: "\e1cd"; 2096 | } 2097 | .icon-signal_cellular_null:before { 2098 | content: "\e1cf"; 2099 | } 2100 | .icon-signal_cellular_off:before { 2101 | content: "\e1d0"; 2102 | } 2103 | .icon-signal_wifi_4_bar:before { 2104 | content: "\e1d8"; 2105 | } 2106 | .icon-signal_wifi_4_bar_lock:before { 2107 | content: "\e1d9"; 2108 | } 2109 | .icon-signal_wifi_off:before { 2110 | content: "\e1da"; 2111 | } 2112 | .icon-sim_card:before { 2113 | content: "\e32b"; 2114 | } 2115 | .icon-sim_card_alert:before { 2116 | content: "\e624"; 2117 | } 2118 | .icon-skip_next:before { 2119 | content: "\e044"; 2120 | } 2121 | .icon-skip_previous:before { 2122 | content: "\e045"; 2123 | } 2124 | .icon-slideshow:before { 2125 | content: "\e41b"; 2126 | } 2127 | .icon-slow_motion_video:before { 2128 | content: "\e068"; 2129 | } 2130 | .icon-stay_primary_portrait:before { 2131 | content: "\e0d6"; 2132 | } 2133 | .icon-smoke_free:before { 2134 | content: "\eb4a"; 2135 | } 2136 | .icon-smoking_rooms:before { 2137 | content: "\eb4b"; 2138 | } 2139 | .icon-textsms:before { 2140 | content: "\e0d8"; 2141 | } 2142 | .icon-snooze:before { 2143 | content: "\e046"; 2144 | } 2145 | .icon-sort:before { 2146 | content: "\e164"; 2147 | } 2148 | .icon-sort_by_alpha:before { 2149 | content: "\e053"; 2150 | } 2151 | .icon-spa:before { 2152 | content: "\eb4c"; 2153 | } 2154 | .icon-space_bar:before { 2155 | content: "\e256"; 2156 | } 2157 | .icon-speaker:before { 2158 | content: "\e32d"; 2159 | } 2160 | .icon-speaker_group:before { 2161 | content: "\e32e"; 2162 | } 2163 | .icon-speaker_notes:before { 2164 | content: "\e8cd"; 2165 | } 2166 | .icon-speaker_notes_off:before { 2167 | content: "\eb0f"; 2168 | } 2169 | .icon-speaker_phone:before { 2170 | content: "\e0d2"; 2171 | } 2172 | .icon-spellcheck:before { 2173 | content: "\e8ce"; 2174 | } 2175 | .icon-star_border:before { 2176 | content: "\e83a"; 2177 | } 2178 | .icon-star_half:before { 2179 | content: "\e839"; 2180 | } 2181 | .icon-stars:before { 2182 | content: "\e8d0"; 2183 | } 2184 | .icon-stay_primary_landscape:before { 2185 | content: "\e0d5"; 2186 | } 2187 | .icon-stop3:before { 2188 | content: "\e047"; 2189 | } 2190 | .icon-stop_screen_share:before { 2191 | content: "\e0e3"; 2192 | } 2193 | .icon-storage:before { 2194 | content: "\e1db"; 2195 | } 2196 | .icon-store_mall_directory:before { 2197 | content: "\e563"; 2198 | } 2199 | .icon-straighten:before { 2200 | content: "\e41c"; 2201 | } 2202 | .icon-streetview:before { 2203 | content: "\e56e"; 2204 | } 2205 | .icon-strikethrough_s:before { 2206 | content: "\e257"; 2207 | } 2208 | .icon-style:before { 2209 | content: "\e41d"; 2210 | } 2211 | .icon-subdirectory_arrow_left:before { 2212 | content: "\e5d9"; 2213 | } 2214 | .icon-subdirectory_arrow_right:before { 2215 | content: "\e5da"; 2216 | } 2217 | .icon-subject:before { 2218 | content: "\e8d2"; 2219 | } 2220 | .icon-subscriptions:before { 2221 | content: "\e064"; 2222 | } 2223 | .icon-subtitles:before { 2224 | content: "\e048"; 2225 | } 2226 | .icon-subway:before { 2227 | content: "\e56f"; 2228 | } 2229 | .icon-supervisor_account:before { 2230 | content: "\e8d3"; 2231 | } 2232 | .icon-surround_sound:before { 2233 | content: "\e049"; 2234 | } 2235 | .icon-swap_calls:before { 2236 | content: "\e0d7"; 2237 | } 2238 | .icon-swap_horiz:before { 2239 | content: "\e8d4"; 2240 | } 2241 | .icon-swap_vert:before { 2242 | content: "\e8d5"; 2243 | } 2244 | .icon-swap_vertical_circle:before { 2245 | content: "\e8d6"; 2246 | } 2247 | .icon-switch_camera:before { 2248 | content: "\e41e"; 2249 | } 2250 | .icon-switch_video:before { 2251 | content: "\e41f"; 2252 | } 2253 | .icon-sync_disabled:before { 2254 | content: "\e628"; 2255 | } 2256 | .icon-sync_problem:before { 2257 | content: "\e629"; 2258 | } 2259 | .icon-system_update:before { 2260 | content: "\e62a"; 2261 | } 2262 | .icon-system_update_alt:before { 2263 | content: "\e8d7"; 2264 | } 2265 | .icon-tab2:before { 2266 | content: "\e8d8"; 2267 | } 2268 | .icon-tab_unselected:before { 2269 | content: "\e8d9"; 2270 | } 2271 | .icon-tablet2:before { 2272 | content: "\e32f"; 2273 | } 2274 | .icon-tablet_android:before { 2275 | content: "\e330"; 2276 | } 2277 | .icon-tablet_mac:before { 2278 | content: "\e331"; 2279 | } 2280 | .icon-tap_and_play:before { 2281 | content: "\e62b"; 2282 | } 2283 | .icon-text_fields:before { 2284 | content: "\e262"; 2285 | } 2286 | .icon-text_format:before { 2287 | content: "\e165"; 2288 | } 2289 | .icon-texture:before { 2290 | content: "\e421"; 2291 | } 2292 | .icon-thumb_down:before { 2293 | content: "\e8db"; 2294 | } 2295 | .icon-thumb_up:before { 2296 | content: "\e8dc"; 2297 | } 2298 | .icon-thumbs_up_down:before { 2299 | content: "\e8dd"; 2300 | } 2301 | .icon-timelapse:before { 2302 | content: "\e422"; 2303 | } 2304 | .icon-timeline:before { 2305 | content: "\eb10"; 2306 | } 2307 | .icon-timer:before { 2308 | content: "\e425"; 2309 | } 2310 | .icon-timer_10:before { 2311 | content: "\e423"; 2312 | } 2313 | .icon-timer_3:before { 2314 | content: "\e424"; 2315 | } 2316 | .icon-timer_off:before { 2317 | content: "\e426"; 2318 | } 2319 | .icon-title:before { 2320 | content: "\e264"; 2321 | } 2322 | .icon-toc:before { 2323 | content: "\e8de"; 2324 | } 2325 | .icon-today:before { 2326 | content: "\e8df"; 2327 | } 2328 | .icon-toll:before { 2329 | content: "\e8e0"; 2330 | } 2331 | .icon-tonality:before { 2332 | content: "\e427"; 2333 | } 2334 | .icon-touch_app:before { 2335 | content: "\eb11"; 2336 | } 2337 | .icon-toys:before { 2338 | content: "\e332"; 2339 | } 2340 | .icon-track_changes:before { 2341 | content: "\e8e1"; 2342 | } 2343 | .icon-traffic:before { 2344 | content: "\e565"; 2345 | } 2346 | .icon-train:before { 2347 | content: "\e570"; 2348 | } 2349 | .icon-tram:before { 2350 | content: "\e571"; 2351 | } 2352 | .icon-transfer_within_a_station:before { 2353 | content: "\e572"; 2354 | } 2355 | .icon-transform:before { 2356 | content: "\e428"; 2357 | } 2358 | .icon-translate:before { 2359 | content: "\e8e2"; 2360 | } 2361 | .icon-trending_down:before { 2362 | content: "\e8e3"; 2363 | } 2364 | .icon-trending_flat:before { 2365 | content: "\e8e4"; 2366 | } 2367 | .icon-trending_up:before { 2368 | content: "\e8e5"; 2369 | } 2370 | .icon-tune:before { 2371 | content: "\e429"; 2372 | } 2373 | .icon-tv2:before { 2374 | content: "\e333"; 2375 | } 2376 | .icon-unarchive:before { 2377 | content: "\e169"; 2378 | } 2379 | .icon-undo3:before { 2380 | content: "\e166"; 2381 | } 2382 | .icon-unfold_less:before { 2383 | content: "\e5d6"; 2384 | } 2385 | .icon-unfold_more:before { 2386 | content: "\e5d7"; 2387 | } 2388 | .icon-update:before { 2389 | content: "\eb12"; 2390 | } 2391 | .icon-usb:before { 2392 | content: "\e1e0"; 2393 | } 2394 | .icon-verified_user:before { 2395 | content: "\e8e8"; 2396 | } 2397 | .icon-vertical_align_bottom:before { 2398 | content: "\e258"; 2399 | } 2400 | .icon-vertical_align_center:before { 2401 | content: "\e259"; 2402 | } 2403 | .icon-vertical_align_top:before { 2404 | content: "\e25a"; 2405 | } 2406 | .icon-vibration:before { 2407 | content: "\e62d"; 2408 | } 2409 | .icon-video_call:before { 2410 | content: "\e070"; 2411 | } 2412 | .icon-video_label:before { 2413 | content: "\e071"; 2414 | } 2415 | .icon-video_library:before { 2416 | content: "\e04a"; 2417 | } 2418 | .icon-videocam:before { 2419 | content: "\e04b"; 2420 | } 2421 | .icon-videocam_off:before { 2422 | content: "\e04c"; 2423 | } 2424 | .icon-videogame_asset:before { 2425 | content: "\e338"; 2426 | } 2427 | .icon-view_agenda:before { 2428 | content: "\e8e9"; 2429 | } 2430 | .icon-view_array:before { 2431 | content: "\e8ea"; 2432 | } 2433 | .icon-view_carousel:before { 2434 | content: "\e8eb"; 2435 | } 2436 | .icon-view_column:before { 2437 | content: "\e8ec"; 2438 | } 2439 | .icon-view_comfy:before { 2440 | content: "\e42a"; 2441 | } 2442 | .icon-view_compact:before { 2443 | content: "\e42b"; 2444 | } 2445 | .icon-view_day:before { 2446 | content: "\e8ed"; 2447 | } 2448 | .icon-view_headline:before { 2449 | content: "\e8ee"; 2450 | } 2451 | .icon-view_list:before { 2452 | content: "\e8ef"; 2453 | } 2454 | .icon-view_module:before { 2455 | content: "\e8f0"; 2456 | } 2457 | .icon-view_quilt:before { 2458 | content: "\e8f1"; 2459 | } 2460 | .icon-view_stream:before { 2461 | content: "\e8f2"; 2462 | } 2463 | .icon-view_week:before { 2464 | content: "\e8f3"; 2465 | } 2466 | .icon-vignette:before { 2467 | content: "\e435"; 2468 | } 2469 | .icon-visibility_off:before { 2470 | content: "\e8f5"; 2471 | } 2472 | .icon-voice_chat:before { 2473 | content: "\e62e"; 2474 | } 2475 | .icon-voicemail:before { 2476 | content: "\e0d9"; 2477 | } 2478 | .icon-volume_down:before { 2479 | content: "\e04d"; 2480 | } 2481 | .icon-volume_mute:before { 2482 | content: "\e04e"; 2483 | } 2484 | .icon-volume_off:before { 2485 | content: "\e04f"; 2486 | } 2487 | .icon-volume_up:before { 2488 | content: "\e050"; 2489 | } 2490 | .icon-vpn_key:before { 2491 | content: "\e0da"; 2492 | } 2493 | .icon-vpn_lock:before { 2494 | content: "\e62f"; 2495 | } 2496 | .icon-wallpaper:before { 2497 | content: "\e1bc"; 2498 | } 2499 | .icon-watch:before { 2500 | content: "\e334"; 2501 | } 2502 | .icon-watch_later:before { 2503 | content: "\eb13"; 2504 | } 2505 | .icon-wb_auto:before { 2506 | content: "\e42c"; 2507 | } 2508 | .icon-wb_incandescent:before { 2509 | content: "\e42e"; 2510 | } 2511 | .icon-wb_iridescent:before { 2512 | content: "\e436"; 2513 | } 2514 | .icon-wb_sunny:before { 2515 | content: "\e430"; 2516 | } 2517 | .icon-wc:before { 2518 | content: "\e63d"; 2519 | } 2520 | .icon-web:before { 2521 | content: "\e051"; 2522 | } 2523 | .icon-web_asset:before { 2524 | content: "\e069"; 2525 | } 2526 | .icon-weekend:before { 2527 | content: "\e16b"; 2528 | } 2529 | .icon-whatshot:before { 2530 | content: "\e80e"; 2531 | } 2532 | .icon-widgets:before { 2533 | content: "\e1bd"; 2534 | } 2535 | .icon-wifi:before { 2536 | content: "\e63e"; 2537 | } 2538 | .icon-wifi_lock:before { 2539 | content: "\e1e1"; 2540 | } 2541 | .icon-wifi_tethering:before { 2542 | content: "\e1e2"; 2543 | } 2544 | .icon-work:before { 2545 | content: "\e8f9"; 2546 | } 2547 | .icon-wrap_text:before { 2548 | content: "\e25b"; 2549 | } 2550 | .icon-youtube_searched_for:before { 2551 | content: "\e8fa"; 2552 | } 2553 | .icon-zoom_in:before { 2554 | content: "\e8ff"; 2555 | } 2556 | .icon-zoom_out:before { 2557 | content: "\eb14"; 2558 | } 2559 | .icon-zoom_out_map:before { 2560 | content: "\e56b"; 2561 | } 2562 | .icon-home:before { 2563 | content: "\e900"; 2564 | } 2565 | .icon-home2:before { 2566 | content: "\e901"; 2567 | } 2568 | .icon-home3:before { 2569 | content: "\e902"; 2570 | } 2571 | .icon-office:before { 2572 | content: "\e903"; 2573 | } 2574 | .icon-newspaper:before { 2575 | content: "\e904"; 2576 | } 2577 | .icon-pencil:before { 2578 | content: "\e905"; 2579 | } 2580 | .icon-pencil2:before { 2581 | content: "\e906"; 2582 | } 2583 | .icon-quill:before { 2584 | content: "\e907"; 2585 | } 2586 | .icon-pen:before { 2587 | content: "\e908"; 2588 | } 2589 | .icon-blog:before { 2590 | content: "\e909"; 2591 | } 2592 | .icon-eyedropper:before { 2593 | content: "\e90a"; 2594 | } 2595 | .icon-droplet:before { 2596 | content: "\e90b"; 2597 | } 2598 | .icon-paint-format:before { 2599 | content: "\e90c"; 2600 | } 2601 | .icon-image:before { 2602 | content: "\e90d"; 2603 | } 2604 | .icon-images:before { 2605 | content: "\e90e"; 2606 | } 2607 | .icon-camera:before { 2608 | content: "\e90f"; 2609 | } 2610 | .icon-headphones:before { 2611 | content: "\e910"; 2612 | } 2613 | .icon-music:before { 2614 | content: "\e911"; 2615 | } 2616 | .icon-play:before { 2617 | content: "\e912"; 2618 | } 2619 | .icon-film:before { 2620 | content: "\e913"; 2621 | } 2622 | .icon-video-camera:before { 2623 | content: "\e914"; 2624 | } 2625 | .icon-dice:before { 2626 | content: "\e915"; 2627 | } 2628 | .icon-pacman:before { 2629 | content: "\e916"; 2630 | } 2631 | .icon-spades:before { 2632 | content: "\e917"; 2633 | } 2634 | .icon-clubs:before { 2635 | content: "\e918"; 2636 | } 2637 | .icon-diamonds:before { 2638 | content: "\e919"; 2639 | } 2640 | .icon-bullhorn:before { 2641 | content: "\e91a"; 2642 | } 2643 | .icon-connection:before { 2644 | content: "\e91b"; 2645 | } 2646 | .icon-podcast:before { 2647 | content: "\e91c"; 2648 | } 2649 | .icon-feed:before { 2650 | content: "\e91d"; 2651 | } 2652 | .icon-mic:before { 2653 | content: "\e91e"; 2654 | } 2655 | .icon-book:before { 2656 | content: "\e91f"; 2657 | } 2658 | .icon-books:before { 2659 | content: "\e920"; 2660 | } 2661 | .icon-library:before { 2662 | content: "\e921"; 2663 | } 2664 | .icon-file-text:before { 2665 | content: "\e922"; 2666 | } 2667 | .icon-profile:before { 2668 | content: "\e923"; 2669 | } 2670 | .icon-file-empty:before { 2671 | content: "\e924"; 2672 | } 2673 | .icon-files-empty:before { 2674 | content: "\e925"; 2675 | } 2676 | .icon-file-text2:before { 2677 | content: "\e926"; 2678 | } 2679 | .icon-file-picture:before { 2680 | content: "\e927"; 2681 | } 2682 | .icon-file-music:before { 2683 | content: "\e928"; 2684 | } 2685 | .icon-file-play:before { 2686 | content: "\e929"; 2687 | } 2688 | .icon-file-video:before { 2689 | content: "\e92a"; 2690 | } 2691 | .icon-file-zip:before { 2692 | content: "\e92b"; 2693 | } 2694 | .icon-copy:before { 2695 | content: "\e92c"; 2696 | } 2697 | .icon-paste:before { 2698 | content: "\e92d"; 2699 | } 2700 | .icon-stack:before { 2701 | content: "\e92e"; 2702 | } 2703 | .icon-folder:before { 2704 | content: "\e92f"; 2705 | } 2706 | .icon-folder-open:before { 2707 | content: "\e930"; 2708 | } 2709 | .icon-folder-plus:before { 2710 | content: "\e931"; 2711 | } 2712 | .icon-folder-minus:before { 2713 | content: "\e932"; 2714 | } 2715 | .icon-folder-download:before { 2716 | content: "\e933"; 2717 | } 2718 | .icon-folder-upload:before { 2719 | content: "\e934"; 2720 | } 2721 | .icon-price-tag:before { 2722 | content: "\e935"; 2723 | } 2724 | .icon-price-tags:before { 2725 | content: "\e936"; 2726 | } 2727 | .icon-barcode:before { 2728 | content: "\e937"; 2729 | } 2730 | .icon-qrcode:before { 2731 | content: "\e938"; 2732 | } 2733 | .icon-ticket:before { 2734 | content: "\e939"; 2735 | } 2736 | .icon-cart:before { 2737 | content: "\e93a"; 2738 | } 2739 | .icon-coin-dollar:before { 2740 | content: "\e93b"; 2741 | } 2742 | .icon-coin-euro:before { 2743 | content: "\e93c"; 2744 | } 2745 | .icon-coin-pound:before { 2746 | content: "\e93d"; 2747 | } 2748 | .icon-coin-yen:before { 2749 | content: "\e93e"; 2750 | } 2751 | .icon-credit-card:before { 2752 | content: "\e93f"; 2753 | } 2754 | .icon-calculator:before { 2755 | content: "\e940"; 2756 | } 2757 | .icon-lifebuoy:before { 2758 | content: "\e941"; 2759 | } 2760 | .icon-phone:before { 2761 | content: "\e942"; 2762 | } 2763 | .icon-phone-hang-up:before { 2764 | content: "\e943"; 2765 | } 2766 | .icon-address-book:before { 2767 | content: "\e944"; 2768 | } 2769 | .icon-envelop:before { 2770 | content: "\e945"; 2771 | } 2772 | .icon-pushpin:before { 2773 | content: "\e946"; 2774 | } 2775 | .icon-location:before { 2776 | content: "\e947"; 2777 | } 2778 | .icon-location2:before { 2779 | content: "\e948"; 2780 | } 2781 | .icon-compass:before { 2782 | content: "\e949"; 2783 | } 2784 | .icon-compass2:before { 2785 | content: "\e94a"; 2786 | } 2787 | .icon-map:before { 2788 | content: "\e94b"; 2789 | } 2790 | .icon-map2:before { 2791 | content: "\e94c"; 2792 | } 2793 | .icon-history:before { 2794 | content: "\e94d"; 2795 | } 2796 | .icon-clock:before { 2797 | content: "\e94e"; 2798 | } 2799 | .icon-clock2:before { 2800 | content: "\e94f"; 2801 | } 2802 | .icon-alarm:before { 2803 | content: "\e950"; 2804 | } 2805 | .icon-bell:before { 2806 | content: "\e951"; 2807 | } 2808 | .icon-stopwatch:before { 2809 | content: "\e952"; 2810 | } 2811 | .icon-calendar:before { 2812 | content: "\e953"; 2813 | } 2814 | .icon-printer:before { 2815 | content: "\e954"; 2816 | } 2817 | .icon-keyboard:before { 2818 | content: "\e955"; 2819 | } 2820 | .icon-display:before { 2821 | content: "\e956"; 2822 | } 2823 | .icon-laptop:before { 2824 | content: "\e957"; 2825 | } 2826 | .icon-mobile:before { 2827 | content: "\e958"; 2828 | } 2829 | .icon-mobile2:before { 2830 | content: "\e959"; 2831 | } 2832 | .icon-tablet:before { 2833 | content: "\e95a"; 2834 | } 2835 | .icon-tv:before { 2836 | content: "\e95b"; 2837 | } 2838 | .icon-drawer:before { 2839 | content: "\e95c"; 2840 | } 2841 | .icon-drawer2:before { 2842 | content: "\e95d"; 2843 | } 2844 | .icon-box-add:before { 2845 | content: "\e95e"; 2846 | } 2847 | .icon-box-remove:before { 2848 | content: "\e95f"; 2849 | } 2850 | .icon-download:before { 2851 | content: "\e960"; 2852 | } 2853 | .icon-upload:before { 2854 | content: "\e961"; 2855 | } 2856 | .icon-floppy-disk:before { 2857 | content: "\e962"; 2858 | } 2859 | .icon-drive:before { 2860 | content: "\e963"; 2861 | } 2862 | .icon-database:before { 2863 | content: "\e964"; 2864 | } 2865 | .icon-undo:before { 2866 | content: "\e965"; 2867 | } 2868 | .icon-redo:before { 2869 | content: "\e966"; 2870 | } 2871 | .icon-undo2:before { 2872 | content: "\e967"; 2873 | } 2874 | .icon-redo2:before { 2875 | content: "\e968"; 2876 | } 2877 | .icon-forward:before { 2878 | content: "\e969"; 2879 | } 2880 | .icon-reply:before { 2881 | content: "\e96a"; 2882 | } 2883 | .icon-bubble:before { 2884 | content: "\e96b"; 2885 | } 2886 | .icon-bubbles:before { 2887 | content: "\e96c"; 2888 | } 2889 | .icon-bubbles2:before { 2890 | content: "\e96d"; 2891 | } 2892 | .icon-bubble2:before { 2893 | content: "\e96e"; 2894 | } 2895 | .icon-bubbles3:before { 2896 | content: "\e96f"; 2897 | } 2898 | .icon-bubbles4:before { 2899 | content: "\e970"; 2900 | } 2901 | .icon-user:before { 2902 | content: "\e971"; 2903 | } 2904 | .icon-users:before { 2905 | content: "\e972"; 2906 | } 2907 | .icon-user-plus:before { 2908 | content: "\e973"; 2909 | } 2910 | .icon-user-minus:before { 2911 | content: "\e974"; 2912 | } 2913 | .icon-user-check:before { 2914 | content: "\e975"; 2915 | } 2916 | .icon-user-tie:before { 2917 | content: "\e976"; 2918 | } 2919 | .icon-quotes-left:before { 2920 | content: "\e977"; 2921 | } 2922 | .icon-quotes-right:before { 2923 | content: "\e978"; 2924 | } 2925 | .icon-hour-glass:before { 2926 | content: "\e979"; 2927 | } 2928 | .icon-spinner:before { 2929 | content: "\e97a"; 2930 | } 2931 | .icon-spinner2:before { 2932 | content: "\e97b"; 2933 | } 2934 | .icon-spinner3:before { 2935 | content: "\e97c"; 2936 | } 2937 | .icon-spinner4:before { 2938 | content: "\e97d"; 2939 | } 2940 | .icon-spinner5:before { 2941 | content: "\e97e"; 2942 | } 2943 | .icon-spinner6:before { 2944 | content: "\e97f"; 2945 | } 2946 | .icon-spinner7:before { 2947 | content: "\e980"; 2948 | } 2949 | .icon-spinner8:before { 2950 | content: "\e981"; 2951 | } 2952 | .icon-spinner9:before { 2953 | content: "\e982"; 2954 | } 2955 | .icon-spinner10:before { 2956 | content: "\e983"; 2957 | } 2958 | .icon-spinner11:before { 2959 | content: "\e984"; 2960 | } 2961 | .icon-binoculars:before { 2962 | content: "\e985"; 2963 | } 2964 | .icon-search:before { 2965 | content: "\e986"; 2966 | } 2967 | .icon-zoom-in:before { 2968 | content: "\e987"; 2969 | } 2970 | .icon-zoom-out:before { 2971 | content: "\e988"; 2972 | } 2973 | .icon-enlarge:before { 2974 | content: "\e989"; 2975 | } 2976 | .icon-shrink:before { 2977 | content: "\e98a"; 2978 | } 2979 | .icon-enlarge2:before { 2980 | content: "\e98b"; 2981 | } 2982 | .icon-shrink2:before { 2983 | content: "\e98c"; 2984 | } 2985 | .icon-key:before { 2986 | content: "\e98d"; 2987 | } 2988 | .icon-key2:before { 2989 | content: "\e98e"; 2990 | } 2991 | .icon-lock:before { 2992 | content: "\e98f"; 2993 | } 2994 | .icon-unlocked:before { 2995 | content: "\e990"; 2996 | } 2997 | .icon-wrench:before { 2998 | content: "\e991"; 2999 | } 3000 | .icon-equalizer:before { 3001 | content: "\e992"; 3002 | } 3003 | .icon-equalizer2:before { 3004 | content: "\e993"; 3005 | } 3006 | .icon-cog:before { 3007 | content: "\e994"; 3008 | } 3009 | .icon-cogs:before { 3010 | content: "\e995"; 3011 | } 3012 | .icon-hammer:before { 3013 | content: "\e996"; 3014 | } 3015 | .icon-magic-wand:before { 3016 | content: "\e997"; 3017 | } 3018 | .icon-aid-kit:before { 3019 | content: "\e998"; 3020 | } 3021 | .icon-bug:before { 3022 | content: "\e999"; 3023 | } 3024 | .icon-pie-chart:before { 3025 | content: "\e99a"; 3026 | } 3027 | .icon-stats-dots:before { 3028 | content: "\e99b"; 3029 | } 3030 | .icon-stats-bars:before { 3031 | content: "\e99c"; 3032 | } 3033 | .icon-stats-bars2:before { 3034 | content: "\e99d"; 3035 | } 3036 | .icon-trophy:before { 3037 | content: "\e99e"; 3038 | } 3039 | .icon-gift:before { 3040 | content: "\e99f"; 3041 | } 3042 | .icon-glass:before { 3043 | content: "\e9a0"; 3044 | } 3045 | .icon-glass2:before { 3046 | content: "\e9a1"; 3047 | } 3048 | .icon-mug:before { 3049 | content: "\e9a2"; 3050 | } 3051 | .icon-spoon-knife:before { 3052 | content: "\e9a3"; 3053 | } 3054 | .icon-leaf:before { 3055 | content: "\e9a4"; 3056 | } 3057 | .icon-rocket:before { 3058 | content: "\e9a5"; 3059 | } 3060 | .icon-meter:before { 3061 | content: "\e9a6"; 3062 | } 3063 | .icon-meter2:before { 3064 | content: "\e9a7"; 3065 | } 3066 | .icon-hammer2:before { 3067 | content: "\e9a8"; 3068 | } 3069 | .icon-fire:before { 3070 | content: "\e9a9"; 3071 | } 3072 | .icon-lab:before { 3073 | content: "\e9aa"; 3074 | } 3075 | .icon-magnet:before { 3076 | content: "\e9ab"; 3077 | } 3078 | .icon-bin:before { 3079 | content: "\e9ac"; 3080 | } 3081 | .icon-bin2:before { 3082 | content: "\e9ad"; 3083 | } 3084 | .icon-briefcase:before { 3085 | content: "\e9ae"; 3086 | } 3087 | .icon-airplane:before { 3088 | content: "\e9af"; 3089 | } 3090 | .icon-truck:before { 3091 | content: "\e9b0"; 3092 | } 3093 | .icon-road:before { 3094 | content: "\e9b1"; 3095 | } 3096 | .icon-accessibility:before { 3097 | content: "\e9b2"; 3098 | } 3099 | .icon-target:before { 3100 | content: "\e9b3"; 3101 | } 3102 | .icon-shield:before { 3103 | content: "\e9b4"; 3104 | } 3105 | .icon-power:before { 3106 | content: "\e9b5"; 3107 | } 3108 | .icon-switch:before { 3109 | content: "\e9b6"; 3110 | } 3111 | .icon-power-cord:before { 3112 | content: "\e9b7"; 3113 | } 3114 | .icon-clipboard:before { 3115 | content: "\e9b8"; 3116 | } 3117 | .icon-list-numbered:before { 3118 | content: "\e9b9"; 3119 | } 3120 | .icon-list:before { 3121 | content: "\e9ba"; 3122 | } 3123 | .icon-list2:before { 3124 | content: "\e9bb"; 3125 | } 3126 | .icon-tree:before { 3127 | content: "\e9bc"; 3128 | } 3129 | .icon-menu:before { 3130 | content: "\e9bd"; 3131 | } 3132 | .icon-menu2:before { 3133 | content: "\e9be"; 3134 | } 3135 | .icon-menu3:before { 3136 | content: "\e9bf"; 3137 | } 3138 | .icon-menu4:before { 3139 | content: "\e9c0"; 3140 | } 3141 | .icon-cloud:before { 3142 | content: "\e9c1"; 3143 | } 3144 | .icon-cloud-download:before { 3145 | content: "\e9c2"; 3146 | } 3147 | .icon-cloud-upload:before { 3148 | content: "\e9c3"; 3149 | } 3150 | .icon-cloud-check:before { 3151 | content: "\e9c4"; 3152 | } 3153 | .icon-download2:before { 3154 | content: "\e9c5"; 3155 | } 3156 | .icon-upload2:before { 3157 | content: "\e9c6"; 3158 | } 3159 | .icon-download3:before { 3160 | content: "\e9c7"; 3161 | } 3162 | .icon-upload3:before { 3163 | content: "\e9c8"; 3164 | } 3165 | .icon-sphere:before { 3166 | content: "\e9c9"; 3167 | } 3168 | .icon-earth:before { 3169 | content: "\e9ca"; 3170 | } 3171 | .icon-link:before { 3172 | content: "\e9cb"; 3173 | } 3174 | .icon-flag:before { 3175 | content: "\e9cc"; 3176 | } 3177 | .icon-attachment:before { 3178 | content: "\e9cd"; 3179 | } 3180 | .icon-eye:before { 3181 | content: "\e9ce"; 3182 | } 3183 | .icon-eye-plus:before { 3184 | content: "\e9cf"; 3185 | } 3186 | .icon-eye-minus:before { 3187 | content: "\e9d0"; 3188 | } 3189 | .icon-eye-blocked:before { 3190 | content: "\e9d1"; 3191 | } 3192 | .icon-bookmark:before { 3193 | content: "\e9d2"; 3194 | } 3195 | .icon-bookmarks:before { 3196 | content: "\e9d3"; 3197 | } 3198 | .icon-sun:before { 3199 | content: "\e9d4"; 3200 | } 3201 | .icon-contrast:before { 3202 | content: "\e9d5"; 3203 | } 3204 | .icon-brightness-contrast:before { 3205 | content: "\e9d6"; 3206 | } 3207 | .icon-star-empty:before { 3208 | content: "\e9d7"; 3209 | } 3210 | .icon-star-half:before { 3211 | content: "\e9d8"; 3212 | } 3213 | .icon-star-full:before { 3214 | content: "\e9d9"; 3215 | } 3216 | .icon-heart:before { 3217 | content: "\e9da"; 3218 | } 3219 | .icon-heart-broken:before { 3220 | content: "\e9db"; 3221 | } 3222 | .icon-man:before { 3223 | content: "\e9dc"; 3224 | } 3225 | .icon-woman:before { 3226 | content: "\e9dd"; 3227 | } 3228 | .icon-man-woman:before { 3229 | content: "\e9de"; 3230 | } 3231 | .icon-happy:before { 3232 | content: "\e9df"; 3233 | } 3234 | .icon-happy2:before { 3235 | content: "\e9e0"; 3236 | } 3237 | .icon-smile:before { 3238 | content: "\e9e1"; 3239 | } 3240 | .icon-smile2:before { 3241 | content: "\e9e2"; 3242 | } 3243 | .icon-tongue:before { 3244 | content: "\e9e3"; 3245 | } 3246 | .icon-tongue2:before { 3247 | content: "\e9e4"; 3248 | } 3249 | .icon-sad:before { 3250 | content: "\e9e5"; 3251 | } 3252 | .icon-sad2:before { 3253 | content: "\e9e6"; 3254 | } 3255 | .icon-wink:before { 3256 | content: "\e9e7"; 3257 | } 3258 | .icon-wink2:before { 3259 | content: "\e9e8"; 3260 | } 3261 | .icon-grin:before { 3262 | content: "\e9e9"; 3263 | } 3264 | .icon-grin2:before { 3265 | content: "\e9ea"; 3266 | } 3267 | .icon-cool:before { 3268 | content: "\e9eb"; 3269 | } 3270 | .icon-cool2:before { 3271 | content: "\e9ec"; 3272 | } 3273 | .icon-angry:before { 3274 | content: "\e9ed"; 3275 | } 3276 | .icon-angry2:before { 3277 | content: "\e9ee"; 3278 | } 3279 | .icon-evil:before { 3280 | content: "\e9ef"; 3281 | } 3282 | .icon-evil2:before { 3283 | content: "\e9f0"; 3284 | } 3285 | .icon-shocked:before { 3286 | content: "\e9f1"; 3287 | } 3288 | .icon-shocked2:before { 3289 | content: "\e9f2"; 3290 | } 3291 | .icon-baffled:before { 3292 | content: "\e9f3"; 3293 | } 3294 | .icon-baffled2:before { 3295 | content: "\e9f4"; 3296 | } 3297 | .icon-confused:before { 3298 | content: "\e9f5"; 3299 | } 3300 | .icon-confused2:before { 3301 | content: "\e9f6"; 3302 | } 3303 | .icon-neutral:before { 3304 | content: "\e9f7"; 3305 | } 3306 | .icon-neutral2:before { 3307 | content: "\e9f8"; 3308 | } 3309 | .icon-hipster:before { 3310 | content: "\e9f9"; 3311 | } 3312 | .icon-hipster2:before { 3313 | content: "\e9fa"; 3314 | } 3315 | .icon-wondering:before { 3316 | content: "\e9fb"; 3317 | } 3318 | .icon-wondering2:before { 3319 | content: "\e9fc"; 3320 | } 3321 | .icon-sleepy:before { 3322 | content: "\e9fd"; 3323 | } 3324 | .icon-sleepy2:before { 3325 | content: "\e9fe"; 3326 | } 3327 | .icon-frustrated:before { 3328 | content: "\e9ff"; 3329 | } 3330 | .icon-frustrated2:before { 3331 | content: "\ea00"; 3332 | } 3333 | .icon-crying:before { 3334 | content: "\ea01"; 3335 | } 3336 | .icon-crying2:before { 3337 | content: "\ea02"; 3338 | } 3339 | .icon-point-up:before { 3340 | content: "\ea03"; 3341 | } 3342 | .icon-point-right:before { 3343 | content: "\ea04"; 3344 | } 3345 | .icon-point-down:before { 3346 | content: "\ea05"; 3347 | } 3348 | .icon-point-left:before { 3349 | content: "\ea06"; 3350 | } 3351 | .icon-warning:before { 3352 | content: "\ea07"; 3353 | } 3354 | .icon-notification:before { 3355 | content: "\ea08"; 3356 | } 3357 | .icon-question:before { 3358 | content: "\ea09"; 3359 | } 3360 | .icon-plus:before { 3361 | content: "\ea0a"; 3362 | } 3363 | .icon-minus:before { 3364 | content: "\ea0b"; 3365 | } 3366 | .icon-info:before { 3367 | content: "\ea0c"; 3368 | } 3369 | .icon-cancel-circle:before { 3370 | content: "\ea0d"; 3371 | } 3372 | .icon-blocked:before { 3373 | content: "\ea0e"; 3374 | } 3375 | .icon-cross:before { 3376 | content: "\ea0f"; 3377 | } 3378 | .icon-checkmark:before { 3379 | content: "\ea10"; 3380 | } 3381 | .icon-checkmark2:before { 3382 | content: "\ea11"; 3383 | } 3384 | .icon-spell-check:before { 3385 | content: "\ea12"; 3386 | } 3387 | .icon-enter:before { 3388 | content: "\ea13"; 3389 | } 3390 | .icon-exit:before { 3391 | content: "\ea14"; 3392 | } 3393 | .icon-play2:before { 3394 | content: "\ea15"; 3395 | } 3396 | .icon-pause:before { 3397 | content: "\ea16"; 3398 | } 3399 | .icon-stop:before { 3400 | content: "\ea17"; 3401 | } 3402 | .icon-previous:before { 3403 | content: "\ea18"; 3404 | } 3405 | .icon-next:before { 3406 | content: "\ea19"; 3407 | } 3408 | .icon-backward:before { 3409 | content: "\ea1a"; 3410 | } 3411 | .icon-forward2:before { 3412 | content: "\ea1b"; 3413 | } 3414 | .icon-play3:before { 3415 | content: "\ea1c"; 3416 | } 3417 | .icon-pause2:before { 3418 | content: "\ea1d"; 3419 | } 3420 | .icon-stop2:before { 3421 | content: "\ea1e"; 3422 | } 3423 | .icon-backward2:before { 3424 | content: "\ea1f"; 3425 | } 3426 | .icon-forward3:before { 3427 | content: "\ea20"; 3428 | } 3429 | .icon-first:before { 3430 | content: "\ea21"; 3431 | } 3432 | .icon-last:before { 3433 | content: "\ea22"; 3434 | } 3435 | .icon-previous2:before { 3436 | content: "\ea23"; 3437 | } 3438 | .icon-next2:before { 3439 | content: "\ea24"; 3440 | } 3441 | .icon-eject:before { 3442 | content: "\ea25"; 3443 | } 3444 | .icon-volume-high:before { 3445 | content: "\ea26"; 3446 | } 3447 | .icon-volume-medium:before { 3448 | content: "\ea27"; 3449 | } 3450 | .icon-volume-low:before { 3451 | content: "\ea28"; 3452 | } 3453 | .icon-volume-mute:before { 3454 | content: "\ea29"; 3455 | } 3456 | .icon-volume-mute2:before { 3457 | content: "\ea2a"; 3458 | } 3459 | .icon-volume-increase:before { 3460 | content: "\ea2b"; 3461 | } 3462 | .icon-volume-decrease:before { 3463 | content: "\ea2c"; 3464 | } 3465 | .icon-loop:before { 3466 | content: "\ea2d"; 3467 | } 3468 | .icon-loop2:before { 3469 | content: "\ea2e"; 3470 | } 3471 | .icon-infinite:before { 3472 | content: "\ea2f"; 3473 | } 3474 | .icon-shuffle:before { 3475 | content: "\ea30"; 3476 | } 3477 | .icon-arrow-up-left:before { 3478 | content: "\ea31"; 3479 | } 3480 | .icon-arrow-up:before { 3481 | content: "\ea32"; 3482 | } 3483 | .icon-arrow-up-right:before { 3484 | content: "\ea33"; 3485 | } 3486 | .icon-arrow-right:before { 3487 | content: "\ea34"; 3488 | } 3489 | .icon-arrow-down-right:before { 3490 | content: "\ea35"; 3491 | } 3492 | .icon-arrow-down:before { 3493 | content: "\ea36"; 3494 | } 3495 | .icon-arrow-down-left:before { 3496 | content: "\ea37"; 3497 | } 3498 | .icon-arrow-left:before { 3499 | content: "\ea38"; 3500 | } 3501 | .icon-arrow-up-left2:before { 3502 | content: "\ea39"; 3503 | } 3504 | .icon-arrow-up2:before { 3505 | content: "\ea3a"; 3506 | } 3507 | .icon-arrow-up-right2:before { 3508 | content: "\ea3b"; 3509 | } 3510 | .icon-arrow-right2:before { 3511 | content: "\ea3c"; 3512 | } 3513 | .icon-arrow-down-right2:before { 3514 | content: "\ea3d"; 3515 | } 3516 | .icon-arrow-down2:before { 3517 | content: "\ea3e"; 3518 | } 3519 | .icon-arrow-down-left2:before { 3520 | content: "\ea3f"; 3521 | } 3522 | .icon-arrow-left2:before { 3523 | content: "\ea40"; 3524 | } 3525 | .icon-circle-up:before { 3526 | content: "\ea41"; 3527 | } 3528 | .icon-circle-right:before { 3529 | content: "\ea42"; 3530 | } 3531 | .icon-circle-down:before { 3532 | content: "\ea43"; 3533 | } 3534 | .icon-circle-left:before { 3535 | content: "\ea44"; 3536 | } 3537 | .icon-tab:before { 3538 | content: "\ea45"; 3539 | } 3540 | .icon-move-up:before { 3541 | content: "\ea46"; 3542 | } 3543 | .icon-move-down:before { 3544 | content: "\ea47"; 3545 | } 3546 | .icon-sort-alpha-asc:before { 3547 | content: "\ea48"; 3548 | } 3549 | .icon-sort-alpha-desc:before { 3550 | content: "\ea49"; 3551 | } 3552 | .icon-sort-numeric-asc:before { 3553 | content: "\ea4a"; 3554 | } 3555 | .icon-sort-numberic-desc:before { 3556 | content: "\ea4b"; 3557 | } 3558 | .icon-sort-amount-asc:before { 3559 | content: "\ea4c"; 3560 | } 3561 | .icon-sort-amount-desc:before { 3562 | content: "\ea4d"; 3563 | } 3564 | .icon-command:before { 3565 | content: "\ea4e"; 3566 | } 3567 | .icon-shift:before { 3568 | content: "\ea4f"; 3569 | } 3570 | .icon-ctrl:before { 3571 | content: "\ea50"; 3572 | } 3573 | .icon-opt:before { 3574 | content: "\ea51"; 3575 | } 3576 | .icon-checkbox-checked:before { 3577 | content: "\ea52"; 3578 | } 3579 | .icon-checkbox-unchecked:before { 3580 | content: "\ea53"; 3581 | } 3582 | .icon-radio-checked:before { 3583 | content: "\ea54"; 3584 | } 3585 | .icon-radio-checked2:before { 3586 | content: "\ea55"; 3587 | } 3588 | .icon-radio-unchecked:before { 3589 | content: "\ea56"; 3590 | } 3591 | .icon-crop:before { 3592 | content: "\ea57"; 3593 | } 3594 | .icon-make-group:before { 3595 | content: "\ea58"; 3596 | } 3597 | .icon-ungroup:before { 3598 | content: "\ea59"; 3599 | } 3600 | .icon-scissors:before { 3601 | content: "\ea5a"; 3602 | } 3603 | .icon-filter:before { 3604 | content: "\ea5b"; 3605 | } 3606 | .icon-font:before { 3607 | content: "\ea5c"; 3608 | } 3609 | .icon-ligature:before { 3610 | content: "\ea5d"; 3611 | } 3612 | .icon-ligature2:before { 3613 | content: "\ea5e"; 3614 | } 3615 | .icon-text-height:before { 3616 | content: "\ea5f"; 3617 | } 3618 | .icon-text-width:before { 3619 | content: "\ea60"; 3620 | } 3621 | .icon-font-size:before { 3622 | content: "\ea61"; 3623 | } 3624 | .icon-bold:before { 3625 | content: "\ea62"; 3626 | } 3627 | .icon-underline:before { 3628 | content: "\ea63"; 3629 | } 3630 | .icon-italic:before { 3631 | content: "\ea64"; 3632 | } 3633 | .icon-strikethrough:before { 3634 | content: "\ea65"; 3635 | } 3636 | .icon-omega:before { 3637 | content: "\ea66"; 3638 | } 3639 | .icon-sigma:before { 3640 | content: "\ea67"; 3641 | } 3642 | .icon-page-break:before { 3643 | content: "\ea68"; 3644 | } 3645 | .icon-superscript:before { 3646 | content: "\ea69"; 3647 | } 3648 | .icon-subscript:before { 3649 | content: "\ea6a"; 3650 | } 3651 | .icon-superscript2:before { 3652 | content: "\ea6b"; 3653 | } 3654 | .icon-subscript2:before { 3655 | content: "\ea6c"; 3656 | } 3657 | .icon-text-color:before { 3658 | content: "\ea6d"; 3659 | } 3660 | .icon-pagebreak:before { 3661 | content: "\ea6e"; 3662 | } 3663 | .icon-clear-formatting:before { 3664 | content: "\ea6f"; 3665 | } 3666 | .icon-table:before { 3667 | content: "\ea70"; 3668 | } 3669 | .icon-table2:before { 3670 | content: "\ea71"; 3671 | } 3672 | .icon-insert-template:before { 3673 | content: "\ea72"; 3674 | } 3675 | .icon-pilcrow:before { 3676 | content: "\ea73"; 3677 | } 3678 | .icon-ltr:before { 3679 | content: "\ea74"; 3680 | } 3681 | .icon-rtl:before { 3682 | content: "\ea75"; 3683 | } 3684 | .icon-section:before { 3685 | content: "\ea76"; 3686 | } 3687 | .icon-paragraph-left:before { 3688 | content: "\ea77"; 3689 | } 3690 | .icon-paragraph-center:before { 3691 | content: "\ea78"; 3692 | } 3693 | .icon-paragraph-right:before { 3694 | content: "\ea79"; 3695 | } 3696 | .icon-paragraph-justify:before { 3697 | content: "\ea7a"; 3698 | } 3699 | .icon-indent-increase:before { 3700 | content: "\ea7b"; 3701 | } 3702 | .icon-indent-decrease:before { 3703 | content: "\ea7c"; 3704 | } 3705 | .icon-share:before { 3706 | content: "\ea7d"; 3707 | } 3708 | .icon-new-tab:before { 3709 | content: "\ea7e"; 3710 | } 3711 | .icon-embed:before { 3712 | content: "\ea7f"; 3713 | } 3714 | .icon-embed2:before { 3715 | content: "\ea80"; 3716 | } 3717 | .icon-terminal:before { 3718 | content: "\ea81"; 3719 | } 3720 | .icon-share2:before { 3721 | content: "\ea82"; 3722 | } 3723 | .icon-mail:before { 3724 | content: "\ea83"; 3725 | } 3726 | .icon-mail2:before { 3727 | content: "\ea84"; 3728 | } 3729 | .icon-mail3:before { 3730 | content: "\ea85"; 3731 | } 3732 | .icon-mail4:before { 3733 | content: "\ea86"; 3734 | } 3735 | .icon-amazon:before { 3736 | content: "\ea87"; 3737 | } 3738 | .icon-google:before { 3739 | content: "\ea88"; 3740 | } 3741 | .icon-google2:before { 3742 | content: "\ea89"; 3743 | } 3744 | .icon-google3:before { 3745 | content: "\ea8a"; 3746 | } 3747 | .icon-google-plus:before { 3748 | content: "\ea8b"; 3749 | } 3750 | .icon-google-plus2:before { 3751 | content: "\ea8c"; 3752 | } 3753 | .icon-google-plus3:before { 3754 | content: "\ea8d"; 3755 | } 3756 | .icon-hangouts:before { 3757 | content: "\ea8e"; 3758 | } 3759 | .icon-google-drive:before { 3760 | content: "\ea8f"; 3761 | } 3762 | .icon-facebook:before { 3763 | content: "\ea90"; 3764 | } 3765 | .icon-facebook2:before { 3766 | content: "\ea91"; 3767 | } 3768 | .icon-instagram:before { 3769 | content: "\ea92"; 3770 | } 3771 | .icon-whatsapp:before { 3772 | content: "\ea93"; 3773 | } 3774 | .icon-spotify:before { 3775 | content: "\ea94"; 3776 | } 3777 | .icon-telegram:before { 3778 | content: "\ea95"; 3779 | } 3780 | .icon-twitter:before { 3781 | content: "\ea96"; 3782 | } 3783 | .icon-vine:before { 3784 | content: "\ea97"; 3785 | } 3786 | .icon-vk:before { 3787 | content: "\ea98"; 3788 | } 3789 | .icon-renren:before { 3790 | content: "\ea99"; 3791 | } 3792 | .icon-sina-weibo:before { 3793 | content: "\ea9a"; 3794 | } 3795 | .icon-rss:before { 3796 | content: "\ea9b"; 3797 | } 3798 | .icon-rss2:before { 3799 | content: "\ea9c"; 3800 | } 3801 | .icon-youtube:before { 3802 | content: "\ea9d"; 3803 | } 3804 | .icon-youtube2:before { 3805 | content: "\ea9e"; 3806 | } 3807 | .icon-twitch:before { 3808 | content: "\ea9f"; 3809 | } 3810 | .icon-vimeo:before { 3811 | content: "\eaa0"; 3812 | } 3813 | .icon-vimeo2:before { 3814 | content: "\eaa1"; 3815 | } 3816 | .icon-lanyrd:before { 3817 | content: "\eaa2"; 3818 | } 3819 | .icon-flickr:before { 3820 | content: "\eaa3"; 3821 | } 3822 | .icon-flickr2:before { 3823 | content: "\eaa4"; 3824 | } 3825 | .icon-flickr3:before { 3826 | content: "\eaa5"; 3827 | } 3828 | .icon-flickr4:before { 3829 | content: "\eaa6"; 3830 | } 3831 | .icon-dribbble:before { 3832 | content: "\eaa7"; 3833 | } 3834 | .icon-behance:before { 3835 | content: "\eaa8"; 3836 | } 3837 | .icon-behance2:before { 3838 | content: "\eaa9"; 3839 | } 3840 | .icon-deviantart:before { 3841 | content: "\eaaa"; 3842 | } 3843 | .icon-500px:before { 3844 | content: "\eaab"; 3845 | } 3846 | .icon-steam:before { 3847 | content: "\eaac"; 3848 | } 3849 | .icon-steam2:before { 3850 | content: "\eaad"; 3851 | } 3852 | .icon-dropbox:before { 3853 | content: "\eaae"; 3854 | } 3855 | .icon-onedrive:before { 3856 | content: "\eaaf"; 3857 | } 3858 | .icon-github:before { 3859 | content: "\eab0"; 3860 | } 3861 | .icon-npm:before { 3862 | content: "\eab1"; 3863 | } 3864 | .icon-basecamp:before { 3865 | content: "\eab2"; 3866 | } 3867 | .icon-trello:before { 3868 | content: "\eab3"; 3869 | } 3870 | .icon-wordpress:before { 3871 | content: "\eab4"; 3872 | } 3873 | .icon-joomla:before { 3874 | content: "\eab5"; 3875 | } 3876 | .icon-ello:before { 3877 | content: "\eab6"; 3878 | } 3879 | .icon-blogger:before { 3880 | content: "\eab7"; 3881 | } 3882 | .icon-blogger2:before { 3883 | content: "\eab8"; 3884 | } 3885 | .icon-tumblr:before { 3886 | content: "\eab9"; 3887 | } 3888 | .icon-tumblr2:before { 3889 | content: "\eaba"; 3890 | } 3891 | .icon-yahoo:before { 3892 | content: "\eabb"; 3893 | } 3894 | .icon-yahoo2:before { 3895 | content: "\eabc"; 3896 | } 3897 | .icon-tux:before { 3898 | content: "\eabd"; 3899 | } 3900 | .icon-appleinc:before { 3901 | content: "\eabe"; 3902 | } 3903 | .icon-finder:before { 3904 | content: "\eabf"; 3905 | } 3906 | .icon-android:before { 3907 | content: "\eac0"; 3908 | } 3909 | .icon-windows:before { 3910 | content: "\eac1"; 3911 | } 3912 | .icon-windows8:before { 3913 | content: "\eac2"; 3914 | } 3915 | .icon-soundcloud:before { 3916 | content: "\eac3"; 3917 | } 3918 | .icon-soundcloud2:before { 3919 | content: "\eac4"; 3920 | } 3921 | .icon-skype:before { 3922 | content: "\eac5"; 3923 | } 3924 | .icon-reddit:before { 3925 | content: "\eac6"; 3926 | } 3927 | .icon-hackernews:before { 3928 | content: "\eac7"; 3929 | } 3930 | .icon-wikipedia:before { 3931 | content: "\eac8"; 3932 | } 3933 | .icon-linkedin:before { 3934 | content: "\eac9"; 3935 | } 3936 | .icon-linkedin2:before { 3937 | content: "\eaca"; 3938 | } 3939 | .icon-lastfm:before { 3940 | content: "\eacb"; 3941 | } 3942 | .icon-lastfm2:before { 3943 | content: "\eacc"; 3944 | } 3945 | .icon-delicious:before { 3946 | content: "\eacd"; 3947 | } 3948 | .icon-stumbleupon:before { 3949 | content: "\eace"; 3950 | } 3951 | .icon-stumbleupon2:before { 3952 | content: "\eacf"; 3953 | } 3954 | .icon-stackoverflow:before { 3955 | content: "\ead0"; 3956 | } 3957 | .icon-pinterest:before { 3958 | content: "\ead1"; 3959 | } 3960 | .icon-pinterest2:before { 3961 | content: "\ead2"; 3962 | } 3963 | .icon-xing:before { 3964 | content: "\ead3"; 3965 | } 3966 | .icon-xing2:before { 3967 | content: "\ead4"; 3968 | } 3969 | .icon-flattr:before { 3970 | content: "\ead5"; 3971 | } 3972 | .icon-foursquare:before { 3973 | content: "\ead6"; 3974 | } 3975 | .icon-yelp:before { 3976 | content: "\ead7"; 3977 | } 3978 | .icon-paypal:before { 3979 | content: "\ead8"; 3980 | } 3981 | .icon-chrome:before { 3982 | content: "\ead9"; 3983 | } 3984 | .icon-firefox:before { 3985 | content: "\eada"; 3986 | } 3987 | .icon-IE:before { 3988 | content: "\eadb"; 3989 | } 3990 | .icon-edge:before { 3991 | content: "\eadc"; 3992 | } 3993 | .icon-safari:before { 3994 | content: "\eadd"; 3995 | } 3996 | .icon-opera:before { 3997 | content: "\eade"; 3998 | } 3999 | .icon-file-pdf:before { 4000 | content: "\eadf"; 4001 | } 4002 | .icon-file-openoffice:before { 4003 | content: "\eae0"; 4004 | } 4005 | .icon-file-word:before { 4006 | content: "\eae1"; 4007 | } 4008 | .icon-file-excel:before { 4009 | content: "\eae2"; 4010 | } 4011 | .icon-libreoffice:before { 4012 | content: "\eae3"; 4013 | } 4014 | .icon-html-five:before { 4015 | content: "\eae4"; 4016 | } 4017 | .icon-html-five2:before { 4018 | content: "\eae5"; 4019 | } 4020 | .icon-css3:before { 4021 | content: "\eae6"; 4022 | } 4023 | .icon-git:before { 4024 | content: "\eae7"; 4025 | } 4026 | .icon-codepen:before { 4027 | content: "\eae8"; 4028 | } 4029 | .icon-svg:before { 4030 | content: "\eae9"; 4031 | } 4032 | .icon-IcoMoon:before { 4033 | content: "\eaea"; 4034 | } 4035 | 4036 | -------------------------------------------------------------------------------- /static/js/charts.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | var myChart1 = echarts.init(document.getElementById('district1')); 3 | myChart1.showLoading(); 4 | $.ajax({ 5 | url:"/district/", 6 | type: "GET", 7 | data: {}, 8 | success: function (data) { 9 | myChart1.hideLoading(); 10 | data = JSON.parse(data); 11 | myChart1.setOption({ 12 | series : [ 13 | { 14 | name: '房屋结构', 15 | type: 'pie', 16 | radius: '55%', 17 | data:data 18 | } 19 | ] 20 | }) 21 | } 22 | }) 23 | }); -------------------------------------------------------------------------------- /static/js/concept.min.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function(){"use strict";var e=!1,t=$("body");$(".page-header"),$(".page-sidebar"),$(".page-content");t.hasClass("page-header-fixed")&&$(window).scroll(function(){$(this).scrollTop()>30&&$(".page-header").addClass("changeBg"),$(this).scrollTop()<30&&$(".page-header").removeClass("changeBg")});var n=window.matchMedia("(min-width: 767px) and (max-width: 1200px)"),o=window.matchMedia("(min-width: 0px) and (max-width: 767px)");function i(e){e.matches&&$(t).addClass("collapsed-sidebar")}function s(e){e.matches?$(t).addClass("hidden-sidebar"):$(t).removeClass("hidden-sidebar")}n.addListener(i),i(n),o.addListener(s),s(o);var l=$("#sidebar-toggle");l.on("click",function(){$(t).toggleClass("hidden-sidebar-show"),alert("asd")});var a,c;!function(){$(".secondary-sidebar-menu").slimScroll({height:"100%"}),$(".secondary-sidebar-menu").mouseover();$("#collapsed-sidebar-toggle-button").on("click",function(){$("body").toggleClass("collapsed-sidebar")}),t.hasClass("page-sidebar-fixed")&&0==e&&(e=!0),1==e&&(t.addClass("page-sidebar-fixed"),$("#fixed-sidebar-toggle-button").removeClass("icon-radio_button_unchecked"),$("#fixed-sidebar-toggle-button").addClass("icon-radio_button_checked")),$("#fixed-sidebar-toggle-button").on("click",function(){return t.toggleClass("page-sidebar-fixed"),e=!!t.hasClass("page-sidebar-fixed"),$(this).toggleClass("icon-radio_button_unchecked"),$(this).toggleClass("icon-radio_button_checked"),!1}),$("#sidebar-toggle-button").on("click",function(){return t.toggleClass("page-sidebar-visible"),!1}),$("#sidebar-toggle-button-close").on("click",function(){return t.toggleClass("page-sidebar-visible"),!1}),$(window).click(function(){$(t).hasClass("page-sidebar-visible")&&t.toggleClass("page-sidebar-visible")}),$(".page-sidebar").click(function(e){e.stopPropagation()}),$(".secondary-sidebar").click(function(e){e.stopPropagation()}),$(".settings-menu-link").on("click",function(){$("body").addClass("settings-visible")}),$(".settings-overlay, .settings-menu-close").on("click",function(){$("body").removeClass("settings-visible")})}(),a=$(".accordion-menu li:not(.open) .sub-menu"),c=$(".accordion-menu li.active-page > a"),a.hide(),$(".accordion-menu li a").on("click",function(){var e=$(this).next(".sub-menu"),t=$(this).parent("li"),n=$(".accordion-menu > li.open");if(e.length)return t.hasClass("open")?($(".open .sub-menu li").each(function(e){var t=$(this);setTimeout(function(){t.removeClass("animation")},15*(e+1))}),e.slideUp(200),t.removeClass("open")):(n.length&&($(".accordion-menu > li.open > .sub-menu").slideUp(200),n.removeClass("open")),e.slideDown(200),t.addClass("open"),$(".open .sub-menu li").each(function(e){var t=$(this);setTimeout(function(){t.addClass("animation")},25*(e+1))})),!1}),$(".active-page > .sub-menu").length&&c.click(),$("#toggle-fullscreen").on("click",function(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?document.exitFullscreen?document.exitFullscreen():document.msExitFullscreen?document.msExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen():document.documentElement.requestFullscreen?document.documentElement.requestFullscreen():document.documentElement.msRequestFullscreen?document.documentElement.msRequestFullscreen():document.documentElement.mozRequestFullScreen?document.documentElement.mozRequestFullScreen():document.documentElement.webkitRequestFullscreen&&document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT),!1}),$("#search-button").on("click",function(){t.toggleClass("search-open"),t.hasClass("search-open")&&$(".search-form input").focus()}),$("#close-search").on("click",function(){t.toggleClass("search-open")}),function(){$(".right-sidebar-toggle").on("click",function(){var e=$(this).data("sidebar-id");$("#"+e).toggleClass("visible")});$(".chat-write form input").on("keypress",function(e){if(13==e.which&&0==!$(this).val().length)$(".right-sidebar-chat .chat-bubbles .chat-bubble:last-child").hasClass("me")?$(''+$(this).val()+"").insertAfter(".right-sidebar-chat .chat-bubbles .chat-bubble:last-child span:last-child"):$('
'+$(this).val()+"
").insertAfter(".right-sidebar-chat .chat-bubbles .chat-bubble:last-child"),$(this).val("");else if(13==e.which)return;var t=$(".right-sidebar-chat").prop("scrollHeight")+"px";$(".right-sidebar-chat").slimscroll({allowPageScroll:!0,scrollTo:t})})}(),function(){$(".slimscroll").slimScroll(),Array.prototype.slice.call(document.querySelectorAll(".js-switch")).forEach(function(e){new Switchery(e,{size:"small",color:"#637282"})}),$('[data-toggle="tooltip"]').tooltip(),$('[data-toggle="modal"]').click(function(e){e.preventDefault()}),$('[data-toggle="popover"]').popover(),$(".toast").toast(),window.addEventListener("load",function(){var e=document.getElementsByClassName("needs-validation");Array.prototype.filter.call(e,function(e){e.addEventListener("submit",function(t){!1===e.checkValidity()&&(t.preventDefault(),t.stopPropagation()),e.classList.add("was-validated")},!1)})},!1);!function(){if($(".image-crop").length){var e=$(".image-crop > img");e.cropper({aspectRatio:1.4,preview:".img-preview"}),$("#zoomIn").on("click",function(){e.cropper("zoom",.1)}),$("#zoomOut").on("click",function(){e.cropper("zoom",-.1)}),$("#rotateLeft").on("click",function(){e.cropper("rotate",45)}),$("#rotateRight").on("click",function(){e.cropper("rotate",-45)}),$("#clear").on("click",function(){e.cropper("clear")});var t=$("#replaceWith");$("#replace").click(function(){e.cropper("replace",t.val())})}}()}()}); -------------------------------------------------------------------------------- /static/js/index.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | var myChart1 = echarts.init(document.getElementById('index1')); 3 | myChart1.showLoading(); 4 | 5 | var myChart2 = echarts.init(document.getElementById('index2')); 6 | myChart2.showLoading(); 7 | 8 | $.ajax({ 9 | //url: "{% url 'index' %}", 10 | url:"/index/", 11 | type: "GET", 12 | data: {}, 13 | success: function (data) { 14 | myChart1.hideLoading(); 15 | data = JSON.parse(data); 16 | myChart1.setOption({ 17 | legend: {}, 18 | tooltip: {}, 19 | dataset: { 20 | source: data['source'] 21 | }, 22 | xAxis: {type: 'category'}, 23 | yAxis: {}, 24 | // Declare several bar series, each will be mapped 25 | // to a column of dataset.source by default. 26 | series: [ 27 | {type: 'bar'}, 28 | {type: 'bar'}, 29 | {type: 'bar'}, 30 | {type: 'bar'} 31 | ] 32 | }); 33 | myChart2.hideLoading(); 34 | myChart2.setOption({ 35 | legend: {}, 36 | tooltip: {}, 37 | xAxis: { 38 | type: 'category', 39 | data: data['districts'] 40 | }, 41 | yAxis: { 42 | type: 'value' 43 | }, 44 | series: [{ 45 | data: data['number'], 46 | type: 'line' 47 | }] 48 | }); 49 | } 50 | }) 51 | }); -------------------------------------------------------------------------------- /static/js/new.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | 3 | "use strict"; 4 | var options = { 5 | chart: { 6 | height: 350, 7 | type: 'line', 8 | zoom: { 9 | enabled: false 10 | } 11 | }, 12 | series: [{ 13 | name: "Desktops", 14 | data: [10, 41, 35, 51, 49, 62, 69, 91, 148] 15 | }], 16 | dataLabels: { 17 | enabled: false 18 | }, 19 | stroke: { 20 | curve: 'straight' 21 | }, 22 | title: { 23 | text: 'Product Trends by Month', 24 | align: 'left' 25 | }, 26 | grid: { 27 | row: { 28 | colors: ['#f3f3f3', 'transparent'], // takes an array which will be repeated on columns 29 | opacity: 0.5 30 | }, 31 | }, 32 | xaxis: { 33 | categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep'], 34 | } 35 | } 36 | 37 | var chart = new ApexCharts( 38 | document.querySelector("#apex1"), 39 | options 40 | ); 41 | 42 | chart.render(); 43 | 44 | var options2 = { 45 | chart: { 46 | height: 350, 47 | type: 'area', 48 | }, 49 | dataLabels: { 50 | enabled: false 51 | }, 52 | stroke: { 53 | curve: 'smooth' 54 | }, 55 | series: [{ 56 | name: 'series1', 57 | data: [31, 40, 28, 51, 42, 109, 100] 58 | }, { 59 | name: 'series2', 60 | data: [11, 32, 45, 32, 34, 52, 41] 61 | }], 62 | 63 | xaxis: { 64 | type: 'datetime', 65 | categories: ["2018-09-19T00:00:00", "2018-09-19T01:30:00", "2018-09-19T02:30:00", "2018-09-19T03:30:00", "2018-09-19T04:30:00", "2018-09-19T05:30:00", "2018-09-19T06:30:00"], 66 | }, 67 | tooltip: { 68 | x: { 69 | format: 'dd/MM/yy HH:mm' 70 | }, 71 | } 72 | } 73 | 74 | var chart2 = new ApexCharts( 75 | document.querySelector("#apex2"), 76 | options2 77 | ); 78 | 79 | chart2.render(); 80 | 81 | var options3 = { 82 | chart: { 83 | height: 350, 84 | type: 'bar', 85 | }, 86 | plotOptions: { 87 | bar: { 88 | horizontal: false, 89 | columnWidth: '55%', 90 | endingShape: 'rounded' 91 | }, 92 | }, 93 | dataLabels: { 94 | enabled: false 95 | }, 96 | stroke: { 97 | show: true, 98 | width: 2, 99 | colors: ['transparent'] 100 | }, 101 | series: [{ 102 | name: 'Net Profit', 103 | data: [44, 55, 57, 56, 61, 58, 63, 60, 66] 104 | }, { 105 | name: 'Revenue', 106 | data: [76, 85, 101, 98, 87, 105, 91, 114, 94] 107 | }, { 108 | name: 'Free Cash Flow', 109 | data: [35, 41, 36, 26, 45, 48, 52, 53, 41] 110 | }], 111 | xaxis: { 112 | categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct'], 113 | }, 114 | yaxis: { 115 | title: { 116 | text: '$ (thousands)' 117 | } 118 | }, 119 | fill: { 120 | opacity: 1 121 | 122 | }, 123 | tooltip: { 124 | y: { 125 | formatter: function (val) { 126 | return "$ " + val + " thousands" 127 | } 128 | } 129 | } 130 | } 131 | 132 | var chart3 = new ApexCharts( 133 | document.querySelector("#apex3"), 134 | options3 135 | ); 136 | 137 | chart3.render(); 138 | 139 | var options4 = { 140 | chart: { 141 | height: 350, 142 | type: 'bar', 143 | }, 144 | plotOptions: { 145 | bar: { 146 | horizontal: true, 147 | } 148 | }, 149 | dataLabels: { 150 | enabled: false 151 | }, 152 | series: [{ 153 | data: [400, 430, 448, 470, 540, 580, 690, 1100, 1200, 1380] 154 | }], 155 | xaxis: { 156 | categories: ['South Korea', 'Canada', 'United Kingdom', 'Netherlands', 'Italy', 'France', 'Japan', 'United States', 'China', 'Germany'], 157 | } 158 | } 159 | 160 | var chart4 = new ApexCharts( 161 | document.querySelector("#apex4"), 162 | options4 163 | ); 164 | 165 | chart4.render(); 166 | 167 | var options5 = { 168 | chart: { 169 | height: 350, 170 | type: 'candlestick', 171 | }, 172 | series: [{ 173 | data: [{ 174 | x: new Date(1538778600000), 175 | y: [6629.81, 6650.5, 6623.04, 6633.33] 176 | }, 177 | { 178 | x: new Date(1538780400000), 179 | y: [6632.01, 6643.59, 6620, 6630.11] 180 | }, 181 | { 182 | x: new Date(1538782200000), 183 | y: [6630.71, 6648.95, 6623.34, 6635.65] 184 | }, 185 | { 186 | x: new Date(1538784000000), 187 | y: [6635.65, 6651, 6629.67, 6638.24] 188 | }, 189 | { 190 | x: new Date(1538785800000), 191 | y: [6638.24, 6640, 6620, 6624.47] 192 | }, 193 | { 194 | x: new Date(1538787600000), 195 | y: [6624.53, 6636.03, 6621.68, 6624.31] 196 | }, 197 | { 198 | x: new Date(1538789400000), 199 | y: [6624.61, 6632.2, 6617, 6626.02] 200 | }, 201 | { 202 | x: new Date(1538791200000), 203 | y: [6627, 6627.62, 6584.22, 6603.02] 204 | }, 205 | { 206 | x: new Date(1538793000000), 207 | y: [6605, 6608.03, 6598.95, 6604.01] 208 | }, 209 | { 210 | x: new Date(1538794800000), 211 | y: [6604.5, 6614.4, 6602.26, 6608.02] 212 | }, 213 | { 214 | x: new Date(1538796600000), 215 | y: [6608.02, 6610.68, 6601.99, 6608.91] 216 | }, 217 | { 218 | x: new Date(1538798400000), 219 | y: [6608.91, 6618.99, 6608.01, 6612] 220 | }, 221 | { 222 | x: new Date(1538800200000), 223 | y: [6612, 6615.13, 6605.09, 6612] 224 | }, 225 | { 226 | x: new Date(1538802000000), 227 | y: [6612, 6624.12, 6608.43, 6622.95] 228 | }, 229 | { 230 | x: new Date(1538803800000), 231 | y: [6623.91, 6623.91, 6615, 6615.67] 232 | }, 233 | { 234 | x: new Date(1538805600000), 235 | y: [6618.69, 6618.74, 6610, 6610.4] 236 | }, 237 | { 238 | x: new Date(1538807400000), 239 | y: [6611, 6622.78, 6610.4, 6614.9] 240 | }, 241 | { 242 | x: new Date(1538809200000), 243 | y: [6614.9, 6626.2, 6613.33, 6623.45] 244 | }, 245 | { 246 | x: new Date(1538811000000), 247 | y: [6623.48, 6627, 6618.38, 6620.35] 248 | }, 249 | { 250 | x: new Date(1538812800000), 251 | y: [6619.43, 6620.35, 6610.05, 6615.53] 252 | }, 253 | { 254 | x: new Date(1538814600000), 255 | y: [6615.53, 6617.93, 6610, 6615.19] 256 | }, 257 | { 258 | x: new Date(1538816400000), 259 | y: [6615.19, 6621.6, 6608.2, 6620] 260 | }, 261 | { 262 | x: new Date(1538818200000), 263 | y: [6619.54, 6625.17, 6614.15, 6620] 264 | }, 265 | { 266 | x: new Date(1538820000000), 267 | y: [6620.33, 6634.15, 6617.24, 6624.61] 268 | }, 269 | { 270 | x: new Date(1538821800000), 271 | y: [6625.95, 6626, 6611.66, 6617.58] 272 | }, 273 | { 274 | x: new Date(1538823600000), 275 | y: [6619, 6625.97, 6595.27, 6598.86] 276 | }, 277 | { 278 | x: new Date(1538825400000), 279 | y: [6598.86, 6598.88, 6570, 6587.16] 280 | }, 281 | { 282 | x: new Date(1538827200000), 283 | y: [6588.86, 6600, 6580, 6593.4] 284 | }, 285 | { 286 | x: new Date(1538829000000), 287 | y: [6593.99, 6598.89, 6585, 6587.81] 288 | }, 289 | { 290 | x: new Date(1538830800000), 291 | y: [6587.81, 6592.73, 6567.14, 6578] 292 | }, 293 | { 294 | x: new Date(1538832600000), 295 | y: [6578.35, 6581.72, 6567.39, 6579] 296 | }, 297 | { 298 | x: new Date(1538834400000), 299 | y: [6579.38, 6580.92, 6566.77, 6575.96] 300 | }, 301 | { 302 | x: new Date(1538836200000), 303 | y: [6575.96, 6589, 6571.77, 6588.92] 304 | }, 305 | { 306 | x: new Date(1538838000000), 307 | y: [6588.92, 6594, 6577.55, 6589.22] 308 | }, 309 | { 310 | x: new Date(1538839800000), 311 | y: [6589.3, 6598.89, 6589.1, 6596.08] 312 | }, 313 | { 314 | x: new Date(1538841600000), 315 | y: [6597.5, 6600, 6588.39, 6596.25] 316 | }, 317 | { 318 | x: new Date(1538843400000), 319 | y: [6598.03, 6600, 6588.73, 6595.97] 320 | }, 321 | { 322 | x: new Date(1538845200000), 323 | y: [6595.97, 6602.01, 6588.17, 6602] 324 | }, 325 | { 326 | x: new Date(1538847000000), 327 | y: [6602, 6607, 6596.51, 6599.95] 328 | }, 329 | { 330 | x: new Date(1538848800000), 331 | y: [6600.63, 6601.21, 6590.39, 6591.02] 332 | }, 333 | { 334 | x: new Date(1538850600000), 335 | y: [6591.02, 6603.08, 6591, 6591] 336 | }, 337 | { 338 | x: new Date(1538852400000), 339 | y: [6591, 6601.32, 6585, 6592] 340 | }, 341 | { 342 | x: new Date(1538854200000), 343 | y: [6593.13, 6596.01, 6590, 6593.34] 344 | }, 345 | { 346 | x: new Date(1538856000000), 347 | y: [6593.34, 6604.76, 6582.63, 6593.86] 348 | }, 349 | { 350 | x: new Date(1538857800000), 351 | y: [6593.86, 6604.28, 6586.57, 6600.01] 352 | }, 353 | { 354 | x: new Date(1538859600000), 355 | y: [6601.81, 6603.21, 6592.78, 6596.25] 356 | }, 357 | { 358 | x: new Date(1538861400000), 359 | y: [6596.25, 6604.2, 6590, 6602.99] 360 | }, 361 | { 362 | x: new Date(1538863200000), 363 | y: [6602.99, 6606, 6584.99, 6587.81] 364 | }, 365 | { 366 | x: new Date(1538865000000), 367 | y: [6587.81, 6595, 6583.27, 6591.96] 368 | }, 369 | { 370 | x: new Date(1538866800000), 371 | y: [6591.97, 6596.07, 6585, 6588.39] 372 | }, 373 | { 374 | x: new Date(1538868600000), 375 | y: [6587.6, 6598.21, 6587.6, 6594.27] 376 | }, 377 | { 378 | x: new Date(1538870400000), 379 | y: [6596.44, 6601, 6590, 6596.55] 380 | }, 381 | { 382 | x: new Date(1538872200000), 383 | y: [6598.91, 6605, 6596.61, 6600.02] 384 | }, 385 | { 386 | x: new Date(1538874000000), 387 | y: [6600.55, 6605, 6589.14, 6593.01] 388 | }, 389 | { 390 | x: new Date(1538875800000), 391 | y: [6593.15, 6605, 6592, 6603.06] 392 | }, 393 | { 394 | x: new Date(1538877600000), 395 | y: [6603.07, 6604.5, 6599.09, 6603.89] 396 | }, 397 | { 398 | x: new Date(1538879400000), 399 | y: [6604.44, 6604.44, 6600, 6603.5] 400 | }, 401 | { 402 | x: new Date(1538881200000), 403 | y: [6603.5, 6603.99, 6597.5, 6603.86] 404 | }, 405 | { 406 | x: new Date(1538883000000), 407 | y: [6603.85, 6605, 6600, 6604.07] 408 | }, 409 | { 410 | x: new Date(1538884800000), 411 | y: [6604.98, 6606, 6604.07, 6606] 412 | }, 413 | ] 414 | }], 415 | title: { 416 | text: 'CandleStick Chart', 417 | align: 'left' 418 | }, 419 | xaxis: { 420 | type: 'datetime' 421 | }, 422 | yaxis: { 423 | tooltip: { 424 | enabled: true 425 | } 426 | } 427 | } 428 | 429 | var chart5 = new ApexCharts( 430 | document.querySelector("#apex5"), 431 | options5 432 | ); 433 | 434 | chart5.render(); 435 | 436 | 437 | var options6 = { 438 | chart: { 439 | height: 350, 440 | type: 'scatter', 441 | zoom: { 442 | enabled: true, 443 | type: 'xy' 444 | } 445 | }, 446 | 447 | series: [{ 448 | name: "SAMPLE A", 449 | data: [ 450 | [16.4, 5.4], [21.7, 2], [25.4, 3], [19, 2], [10.9, 1], [13.6, 3.2], [10.9, 7.4], [10.9, 0], [10.9, 8.2], [16.4, 0], [16.4, 1.8], [13.6, 0.3], [13.6, 0], [29.9, 0], [27.1, 2.3], [16.4, 0], [13.6, 3.7], [10.9, 5.2], [16.4, 6.5], [10.9, 0], [24.5, 7.1], [10.9, 0], [8.1, 4.7], [19, 0], [21.7, 1.8], [27.1, 0], [24.5, 0], [27.1, 0], [29.9, 1.5], [27.1, 0.8], [22.1, 2]] 451 | },{ 452 | name: "SAMPLE B", 453 | data: [ 454 | [36.4, 13.4], [1.7, 11], [5.4, 8], [9, 17], [1.9, 4], [3.6, 12.2], [1.9, 14.4], [1.9, 9], [1.9, 13.2], [1.4, 7], [6.4, 8.8], [3.6, 4.3], [1.6, 10], [9.9, 2], [7.1, 15], [1.4, 0], [3.6, 13.7], [1.9, 15.2], [6.4, 16.5], [0.9, 10], [4.5, 17.1], [10.9, 10], [0.1, 14.7], [9, 10], [12.7, 11.8], [2.1, 10], [2.5, 10], [27.1, 10], [2.9, 11.5], [7.1, 10.8], [2.1, 12]] 455 | },{ 456 | name: "SAMPLE C", 457 | data: [ 458 | [21.7, 3], [23.6, 3.5], [24.6, 3], [29.9, 3], [21.7, 20], [23, 2], [10.9, 3], [28, 4], [27.1, 0.3], [16.4, 4], [13.6, 0], [19, 5], [22.4, 3], [24.5, 3], [32.6, 3], [27.1, 4], [29.6, 6], [31.6, 8], [21.6, 5], [20.9, 4], [22.4, 0], [32.6, 10.3], [29.7, 20.8], [24.5, 0.8], [21.4, 0], [21.7, 6.9], [28.6, 7.7], [15.4, 0], [18.1, 0], [33.4, 0], [16.4, 0]] 459 | }], 460 | xaxis: { 461 | tickAmount: 10, 462 | labels: { 463 | formatter: function(val) { 464 | return parseFloat(val).toFixed(1) 465 | } 466 | } 467 | }, 468 | yaxis: { 469 | tickAmount: 7 470 | } 471 | } 472 | 473 | var chart6 = new ApexCharts( 474 | document.querySelector("#apex6"), 475 | options6 476 | ); 477 | 478 | chart6.render(); 479 | 480 | 481 | 482 | var options7 = { 483 | chart: { 484 | height: 350, 485 | type: 'line', 486 | stacked: false, 487 | }, 488 | stroke: { 489 | width: [0, 2, 5], 490 | curve: 'smooth' 491 | }, 492 | plotOptions: { 493 | bar: { 494 | columnWidth: '50%' 495 | } 496 | }, 497 | colors: ['#3A5794', '#A5C351', '#E14A84'], 498 | series: [{ 499 | name: 'Facebook', 500 | type: 'column', 501 | data: [23, 11, 22, 27, 13, 22, 37, 21, 44, 22, 30] 502 | }, { 503 | name: 'Vine', 504 | type: 'area', 505 | data: [44, 55, 41, 67, 22, 43, 21, 41, 56, 27, 43] 506 | }, { 507 | name: 'Dribbble', 508 | type: 'line', 509 | data: [30, 25, 36, 30, 45, 35, 64, 52, 59, 36, 39] 510 | }], 511 | fill: { 512 | opacity: [0.85,0.25,1], 513 | gradient: { 514 | inverseColors: false, 515 | shade: 'light', 516 | type: "vertical", 517 | opacityFrom: 0.85, 518 | opacityTo: 0.55, 519 | stops: [0, 100, 100, 100] 520 | } 521 | }, 522 | labels: ['01/01/2003', '02/01/2003','03/01/2003','04/01/2003','05/01/2003','06/01/2003','07/01/2003','08/01/2003','09/01/2003','10/01/2003','11/01/2003'], 523 | markers: { 524 | size: 0 525 | }, 526 | xaxis: { 527 | type:'datetime' 528 | }, 529 | yaxis: { 530 | min: 0 531 | }, 532 | tooltip: { 533 | shared: true, 534 | intersect: false, 535 | y: { 536 | formatter: function (y) { 537 | if(typeof y !== "undefined") { 538 | return y.toFixed(0) + " views"; 539 | } 540 | return y; 541 | 542 | } 543 | } 544 | }, 545 | legend: { 546 | labels: { 547 | useSeriesColors: true 548 | }, 549 | markers: { 550 | customHTML: [ 551 | function() { 552 | return '' 553 | }, function() { 554 | return '' 555 | }, function() { 556 | return '' 557 | } 558 | ] 559 | } 560 | } 561 | } 562 | 563 | var chart7 = new ApexCharts( 564 | document.querySelector("#apex7"), 565 | options7 566 | ); 567 | 568 | chart7.render(); 569 | 570 | 571 | 572 | 573 | 574 | // CHARTJS ***** 575 | 576 | 577 | new Chart(document.getElementById("chartjs1"),{"type":"line","data":{"labels":["January","February","March","April","May","June","July"],"datasets":[{"label":"My First Dataset","data":[65,59,80,81,56,55,40],"fill":false,"borderColor":"rgb(75, 192, 192)","lineTension":0.1}]},"options":{}}); 578 | 579 | 580 | new Chart(document.getElementById("chartjs2"),{"type":"bar","data":{"labels":["January","February","March","April","May","June","July"],"datasets":[{"label":"My First Dataset","data":[65,59,80,81,56,55,40],"fill":false,"backgroundColor":["rgba(255, 99, 132, 0.2)","rgba(255, 159, 64, 0.2)","rgba(255, 205, 86, 0.2)","rgba(75, 192, 192, 0.2)","rgba(54, 162, 235, 0.2)","rgba(153, 102, 255, 0.2)","rgba(201, 203, 207, 0.2)"],"borderColor":["rgb(255, 99, 132)","rgb(255, 159, 64)","rgb(255, 205, 86)","rgb(75, 192, 192)","rgb(54, 162, 235)","rgb(153, 102, 255)","rgb(201, 203, 207)"],"borderWidth":1}]},"options":{"scales":{"yAxes":[{"ticks":{"beginAtZero":true}}]}}}); 581 | 582 | new Chart(document.getElementById("chartjs3"),{"type":"radar","data":{"labels":["Eating","Drinking","Sleeping","Designing","Coding","Cycling","Running"],"datasets":[{"label":"My First Dataset","data":[65,59,90,81,56,55,40],"fill":true,"backgroundColor":"rgba(255, 99, 132, 0.2)","borderColor":"rgb(255, 99, 132)","pointBackgroundColor":"rgb(255, 99, 132)","pointBorderColor":"#fff","pointHoverBackgroundColor":"#fff","pointHoverBorderColor":"rgb(255, 99, 132)"},{"label":"My Second Dataset","data":[28,48,40,19,96,27,100],"fill":true,"backgroundColor":"rgba(54, 162, 235, 0.2)","borderColor":"rgb(54, 162, 235)","pointBackgroundColor":"rgb(54, 162, 235)","pointBorderColor":"#fff","pointHoverBackgroundColor":"#fff","pointHoverBorderColor":"rgb(54, 162, 235)"}]},"options":{"elements":{"line":{"tension":0,"borderWidth":3}}}}); 583 | 584 | new Chart(document.getElementById("chartjs4"),{"type":"doughnut","data":{"labels":["Red","Blue","Yellow"],"datasets":[{"label":"My First Dataset","data":[300,50,100],"backgroundColor":["rgb(255, 99, 132)","rgb(54, 162, 235)","rgb(255, 205, 86)"]}]}}); 585 | }); -------------------------------------------------------------------------------- /templates/base.html: -------------------------------------------------------------------------------- 1 | {% load static %} 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 | 80 |
81 |
82 | 83 | 119 | {% block Inner %} 120 | {% endblock %} 121 |
122 |
123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | -------------------------------------------------------------------------------- /templates/district.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block Inner %} 4 | 5 | 6 |
7 |
8 |
9 | 15 |

地区

16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
房屋结构
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
XXXX
32 |
33 |
34 |
35 |
36 |
37 | 38 |
39 | 40 |
41 | 42 | {% endblock %} -------------------------------------------------------------------------------- /templates/index.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block Inner %} 4 | 5 |
6 |
7 |
8 | 14 |

15 | 房源数量/平均单价 地图热力图(待做)
16 |

17 |
18 |
19 |
20 |
21 |
各区域二手房平均单价
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
各区域二手房房源数量
30 |
31 |
32 |
33 |
34 | 35 |
36 |
37 | {% endblock %} --------------------------------------------------------------------------------