From 445d25664c1924bd3fa384fbdeec9b3ddc8f1946 Mon Sep 17 00:00:00 2001
From: jyzbamboo
Date: Wed, 24 Jan 2018 16:10:46 +0800
Subject: [PATCH] first commit
---
.angular-cli.json | 64 +
.editorconfig | 13 +
.gitignore | 42 +
README.md | 32 +
e2e/app.e2e-spec.ts | 14 +
e2e/app.po.ts | 11 +
e2e/tsconfig.e2e.json | 14 +
karma.conf.js | 33 +
package.json | 54 +
protractor.conf.js | 28 +
src/app/app-routing.module.ts | 16 +
src/app/app.component.css | 0
src/app/app.component.html | 1 +
src/app/app.component.ts | 14 +
src/app/app.module.ts | 19 +
src/app/article/article-routing.module.ts | 23 +
src/app/article/article.component.css | 8 +
src/app/article/article.component.html | 4 +
src/app/article/article.component.ts | 12 +
src/app/article/article.module.ts | 17 +
src/app/article/code/code-routing.module.ts | 15 +
src/app/article/code/code.component.css | 1287 +++++++++++++++++
src/app/article/code/code.component.html | 21 +
src/app/article/code/code.component.ts | 12 +
src/app/article/code/code.module.ts | 16 +
.../article/detail/detail-routing.module.ts | 15 +
src/app/article/detail/detail.component.css | 29 +
src/app/article/detail/detail.component.html | 16 +
src/app/article/detail/detail.component.ts | 12 +
src/app/article/detail/detail.module.ts | 16 +
src/app/article/list/list-routing.module.ts | 15 +
src/app/article/list/list.component.css | 26 +
src/app/article/list/list.component.html | 18 +
src/app/article/list/list.component.ts | 12 +
src/app/article/list/list.module.ts | 16 +
.../article/weather/weather-routing.module.ts | 15 +
src/app/article/weather/weather.component.css | 53 +
.../article/weather/weather.component.html | 123 ++
src/app/article/weather/weather.component.ts | 12 +
src/app/article/weather/weather.module.ts | 16 +
src/app/layout/layout-routing.module.ts | 20 +
src/app/layout/layout.component.css | 156 ++
src/app/layout/layout.component.html | 50 +
src/app/layout/layout.component.ts | 36 +
src/app/layout/layout.module.ts | 17 +
.../layout/waterfall/waterfall.component.css | 197 +++
.../layout/waterfall/waterfall.component.html | 92 ++
.../layout/waterfall/waterfall.component.ts | 30 +
src/app/not-found/not-found-routing.module.ts | 16 +
src/app/not-found/not-found.component.html | 3 +
src/app/not-found/not-found.component.ts | 15 +
src/app/not-found/not-found.module.ts | 14 +
.../content/content-routing.module.ts | 15 +
.../one-stop/content/content.component.css | 117 ++
.../one-stop/content/content.component.html | 193 +++
src/app/one-stop/content/content.component.ts | 12 +
src/app/one-stop/content/content.module.ts | 18 +
.../one-stop/index/index-routing.module.ts | 15 +
src/app/one-stop/index/index.component.css | 107 ++
src/app/one-stop/index/index.component.html | 532 +++++++
src/app/one-stop/index/index.component.ts | 13 +
src/app/one-stop/index/index.module.ts | 18 +
src/app/one-stop/one-stop-routing.module.ts | 23 +
src/app/one-stop/one-stop.component.css | 32 +
src/app/one-stop/one-stop.component.html | 6 +
src/app/one-stop/one-stop.component.ts | 12 +
src/app/one-stop/one-stop.module.ts | 17 +
.../select-region-routing.module.ts | 15 +
.../select-region/select-region.component.css | 117 ++
.../select-region.component.html | 349 +++++
.../select-region/select-region.component.ts | 12 +
.../select-region/select-region.module.ts | 18 +
.../one-stop/select/select-routing.module.ts | 15 +
src/app/one-stop/select/select.component.css | 117 ++
src/app/one-stop/select/select.component.html | 30 +
src/app/one-stop/select/select.component.ts | 12 +
src/app/one-stop/select/select.module.ts | 16 +
src/app/shared/header/header.component.css | 60 +
src/app/shared/header/header.component.html | 14 +
src/app/shared/header/header.component.ts | 14 +
src/app/shared/header/header.module.ts | 12 +
src/app/shared/index.ts | 1 +
src/environments/environment.prod.ts | 3 +
src/environments/environment.ts | 8 +
src/favicon.ico | Bin 0 -> 5430 bytes
src/index.html | 15 +
src/main.ts | 12 +
src/polyfills.ts | 66 +
src/styles.css | 38 +
src/test.ts | 32 +
src/tsconfig.app.json | 12 +
src/tsconfig.spec.json | 20 +
src/typings.d.ts | 5 +
tsconfig.json | 19 +
tslint.json | 144 ++
95 files changed, 5116 insertions(+)
create mode 100644 .angular-cli.json
create mode 100644 .editorconfig
create mode 100644 .gitignore
create mode 100644 README.md
create mode 100644 e2e/app.e2e-spec.ts
create mode 100644 e2e/app.po.ts
create mode 100644 e2e/tsconfig.e2e.json
create mode 100644 karma.conf.js
create mode 100644 package.json
create mode 100644 protractor.conf.js
create mode 100644 src/app/app-routing.module.ts
create mode 100644 src/app/app.component.css
create mode 100644 src/app/app.component.html
create mode 100644 src/app/app.component.ts
create mode 100644 src/app/app.module.ts
create mode 100644 src/app/article/article-routing.module.ts
create mode 100644 src/app/article/article.component.css
create mode 100644 src/app/article/article.component.html
create mode 100644 src/app/article/article.component.ts
create mode 100644 src/app/article/article.module.ts
create mode 100644 src/app/article/code/code-routing.module.ts
create mode 100644 src/app/article/code/code.component.css
create mode 100644 src/app/article/code/code.component.html
create mode 100644 src/app/article/code/code.component.ts
create mode 100644 src/app/article/code/code.module.ts
create mode 100644 src/app/article/detail/detail-routing.module.ts
create mode 100644 src/app/article/detail/detail.component.css
create mode 100644 src/app/article/detail/detail.component.html
create mode 100644 src/app/article/detail/detail.component.ts
create mode 100644 src/app/article/detail/detail.module.ts
create mode 100644 src/app/article/list/list-routing.module.ts
create mode 100644 src/app/article/list/list.component.css
create mode 100644 src/app/article/list/list.component.html
create mode 100644 src/app/article/list/list.component.ts
create mode 100644 src/app/article/list/list.module.ts
create mode 100644 src/app/article/weather/weather-routing.module.ts
create mode 100644 src/app/article/weather/weather.component.css
create mode 100644 src/app/article/weather/weather.component.html
create mode 100644 src/app/article/weather/weather.component.ts
create mode 100644 src/app/article/weather/weather.module.ts
create mode 100644 src/app/layout/layout-routing.module.ts
create mode 100644 src/app/layout/layout.component.css
create mode 100644 src/app/layout/layout.component.html
create mode 100644 src/app/layout/layout.component.ts
create mode 100644 src/app/layout/layout.module.ts
create mode 100644 src/app/layout/waterfall/waterfall.component.css
create mode 100644 src/app/layout/waterfall/waterfall.component.html
create mode 100644 src/app/layout/waterfall/waterfall.component.ts
create mode 100644 src/app/not-found/not-found-routing.module.ts
create mode 100644 src/app/not-found/not-found.component.html
create mode 100644 src/app/not-found/not-found.component.ts
create mode 100644 src/app/not-found/not-found.module.ts
create mode 100644 src/app/one-stop/content/content-routing.module.ts
create mode 100644 src/app/one-stop/content/content.component.css
create mode 100644 src/app/one-stop/content/content.component.html
create mode 100644 src/app/one-stop/content/content.component.ts
create mode 100644 src/app/one-stop/content/content.module.ts
create mode 100644 src/app/one-stop/index/index-routing.module.ts
create mode 100644 src/app/one-stop/index/index.component.css
create mode 100644 src/app/one-stop/index/index.component.html
create mode 100644 src/app/one-stop/index/index.component.ts
create mode 100644 src/app/one-stop/index/index.module.ts
create mode 100644 src/app/one-stop/one-stop-routing.module.ts
create mode 100644 src/app/one-stop/one-stop.component.css
create mode 100644 src/app/one-stop/one-stop.component.html
create mode 100644 src/app/one-stop/one-stop.component.ts
create mode 100644 src/app/one-stop/one-stop.module.ts
create mode 100644 src/app/one-stop/select-region/select-region-routing.module.ts
create mode 100644 src/app/one-stop/select-region/select-region.component.css
create mode 100644 src/app/one-stop/select-region/select-region.component.html
create mode 100644 src/app/one-stop/select-region/select-region.component.ts
create mode 100644 src/app/one-stop/select-region/select-region.module.ts
create mode 100644 src/app/one-stop/select/select-routing.module.ts
create mode 100644 src/app/one-stop/select/select.component.css
create mode 100644 src/app/one-stop/select/select.component.html
create mode 100644 src/app/one-stop/select/select.component.ts
create mode 100644 src/app/one-stop/select/select.module.ts
create mode 100644 src/app/shared/header/header.component.css
create mode 100644 src/app/shared/header/header.component.html
create mode 100644 src/app/shared/header/header.component.ts
create mode 100644 src/app/shared/header/header.module.ts
create mode 100644 src/app/shared/index.ts
create mode 100644 src/environments/environment.prod.ts
create mode 100644 src/environments/environment.ts
create mode 100644 src/favicon.ico
create mode 100644 src/index.html
create mode 100644 src/main.ts
create mode 100644 src/polyfills.ts
create mode 100644 src/styles.css
create mode 100644 src/test.ts
create mode 100644 src/tsconfig.app.json
create mode 100644 src/tsconfig.spec.json
create mode 100644 src/typings.d.ts
create mode 100644 tsconfig.json
create mode 100644 tslint.json
diff --git a/.angular-cli.json b/.angular-cli.json
new file mode 100644
index 0000000..d150751
--- /dev/null
+++ b/.angular-cli.json
@@ -0,0 +1,64 @@
+{
+ "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
+ "project": {
+ "name": "cms"
+ },
+ "apps": [
+ {
+ "root": "src",
+ "outDir": "dist",
+ "assets": [
+ "assets",
+ "favicon.ico"
+ ],
+ "index": "index.html",
+ "main": "main.ts",
+ "polyfills": "polyfills.ts",
+ "test": "test.ts",
+ "tsconfig": "tsconfig.app.json",
+ "testTsconfig": "tsconfig.spec.json",
+ "prefix": "app",
+ "styles": [
+ "styles.css",
+ "../node_modules/layui-src/dist/css/layui.css",
+ "../node_modules/bootstrap/dist/css/bootstrap.css"
+ ],
+ "scripts": [
+ "../node_modules/jquery/dist/jquery.min.js"
+ ],
+ "environmentSource": "environments/environment.ts",
+ "environments": {
+ "dev": "environments/environment.ts",
+ "prod": "environments/environment.prod.ts"
+ }
+ }
+ ],
+ "e2e": {
+ "protractor": {
+ "config": "./protractor.conf.js"
+ }
+ },
+ "lint": [
+ {
+ "project": "src/tsconfig.app.json",
+ "exclude": "**/node_modules/**"
+ },
+ {
+ "project": "src/tsconfig.spec.json",
+ "exclude": "**/node_modules/**"
+ },
+ {
+ "project": "e2e/tsconfig.e2e.json",
+ "exclude": "**/node_modules/**"
+ }
+ ],
+ "test": {
+ "karma": {
+ "config": "./karma.conf.js"
+ }
+ },
+ "defaults": {
+ "styleExt": "css",
+ "component": {}
+ }
+}
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..6e87a00
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,13 @@
+# Editor configuration, see http://editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.md]
+max_line_length = off
+trim_trailing_whitespace = false
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..54bfd20
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,42 @@
+# See http://help.github.com/ignore-files/ for more about ignoring files.
+
+# compiled output
+/dist
+/tmp
+/out-tsc
+
+# dependencies
+/node_modules
+
+# IDEs and editors
+/.idea
+.project
+.classpath
+.c9/
+*.launch
+.settings/
+*.sublime-workspace
+
+# IDE - VSCode
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+
+# misc
+/.sass-cache
+/connect.lock
+/coverage
+/libpeerconnection.log
+npm-debug.log
+testem.log
+/typings
+
+# e2e
+/e2e/*.js
+/e2e/*.map
+
+# System Files
+.DS_Store
+Thumbs.db
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..83aa9f1
--- /dev/null
+++ b/README.md
@@ -0,0 +1,32 @@
+# jyz-Cms
+cms系统(包含天气,文章等页面),使用了Angular5, bootstrap, layui, bootstrap等
+请先在终端/控制台窗口中运行命令 node -v 和 npm -v,来验证一下你正在运行 node 6.9.x 和 npm 3.x.x 以上的版本。 更老的版本可能会出现错误,更新的版本则没问题。
+需要先安装 [Angular CLI](https://github.com/angular/angular-cli) version 1.6.3.
+
+## 安装系统
+先下载代码到jyz-cms文件夹
+```控制台
+$ cd jyz-cms
+# 安装包
+$ npm install
+# 开始运行系统, 在浏览器输入地址 `http://localhost:4200/` 即可使用
+$ npm start
+# 编译系统,编译后文件会放在根目录的dist文件夹里
+# 编译后的文件,加上.htaccess文件就可以正常访问使用了
+$ npm run build
+## Development server
+```
+
+```.htacess文件
+RewriteEngine on
+# Don't rewrite files or directories
+RewriteCond %{REQUEST_FILENAME} -f [OR]
+RewriteCond %{REQUEST_FILENAME} -d
+RewriteRule ^ - [L]
+
+# Rewrite everything else to index.html to allow html5 state links
+RewriteRule ^ index.html [L]
+```
+
+##关于本项目
+有关问题和建议可以发送邮箱联系作者jyz_005@163.com,谢谢~
\ No newline at end of file
diff --git a/e2e/app.e2e-spec.ts b/e2e/app.e2e-spec.ts
new file mode 100644
index 0000000..9e0a46a
--- /dev/null
+++ b/e2e/app.e2e-spec.ts
@@ -0,0 +1,14 @@
+import { AppPage } from './app.po';
+
+describe('cms App', () => {
+ let page: AppPage;
+
+ beforeEach(() => {
+ page = new AppPage();
+ });
+
+ it('should display welcome message', () => {
+ page.navigateTo();
+ expect(page.getParagraphText()).toEqual('Welcome to app!');
+ });
+});
diff --git a/e2e/app.po.ts b/e2e/app.po.ts
new file mode 100644
index 0000000..82ea75b
--- /dev/null
+++ b/e2e/app.po.ts
@@ -0,0 +1,11 @@
+import { browser, by, element } from 'protractor';
+
+export class AppPage {
+ navigateTo() {
+ return browser.get('/');
+ }
+
+ getParagraphText() {
+ return element(by.css('app-root h1')).getText();
+ }
+}
diff --git a/e2e/tsconfig.e2e.json b/e2e/tsconfig.e2e.json
new file mode 100644
index 0000000..1d9e5ed
--- /dev/null
+++ b/e2e/tsconfig.e2e.json
@@ -0,0 +1,14 @@
+{
+ "extends": "../tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../out-tsc/e2e",
+ "baseUrl": "./",
+ "module": "commonjs",
+ "target": "es5",
+ "types": [
+ "jasmine",
+ "jasminewd2",
+ "node"
+ ]
+ }
+}
diff --git a/karma.conf.js b/karma.conf.js
new file mode 100644
index 0000000..af139fa
--- /dev/null
+++ b/karma.conf.js
@@ -0,0 +1,33 @@
+// Karma configuration file, see link for more information
+// https://karma-runner.github.io/1.0/config/configuration-file.html
+
+module.exports = function (config) {
+ config.set({
+ basePath: '',
+ frameworks: ['jasmine', '@angular/cli'],
+ plugins: [
+ require('karma-jasmine'),
+ require('karma-chrome-launcher'),
+ require('karma-jasmine-html-reporter'),
+ require('karma-coverage-istanbul-reporter'),
+ require('@angular/cli/plugins/karma')
+ ],
+ client:{
+ clearContext: false // leave Jasmine Spec Runner output visible in browser
+ },
+ coverageIstanbulReporter: {
+ reports: [ 'html', 'lcovonly' ],
+ fixWebpackSourcePaths: true
+ },
+ angularCli: {
+ environment: 'dev'
+ },
+ reporters: ['progress', 'kjhtml'],
+ port: 9876,
+ colors: true,
+ logLevel: config.LOG_INFO,
+ autoWatch: true,
+ browsers: ['Chrome'],
+ singleRun: false
+ });
+};
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..796a899
--- /dev/null
+++ b/package.json
@@ -0,0 +1,54 @@
+{
+ "name": "cms",
+ "version": "1.0.0",
+ "license": "MIT",
+ "scripts": {
+ "ng": "ng",
+ "start": "ng serve",
+ "build": "ng build --prod",
+ "test": "ng test",
+ "lint": "ng lint",
+ "e2e": "ng e2e"
+ },
+ "private": true,
+ "dependencies": {
+ "@angular/animations": "^5.0.0",
+ "@angular/common": "^5.0.0",
+ "@angular/compiler": "^5.0.0",
+ "@angular/core": "^5.0.0",
+ "@angular/forms": "^5.0.0",
+ "@angular/http": "^5.0.0",
+ "@angular/platform-browser": "^5.0.0",
+ "@angular/platform-browser-dynamic": "^5.0.0",
+ "@angular/router": "^5.0.0",
+ "@angular-devkit/core": "0.0.28",
+ "@ng-bootstrap/ng-bootstrap": "^1.0.0-beta.9",
+ "bootstrap": "^3.3.7",
+ "core-js": "^2.4.1",
+ "jquery": "^2.2.4",
+ "layui-src": "^2.2.5",
+ "rxjs": "^5.5.2",
+ "zone.js": "^0.8.14"
+ },
+ "devDependencies": {
+ "@angular/cli": "1.6.3",
+ "@angular/compiler-cli": "^5.0.0",
+ "@angular/language-service": "^5.0.0",
+ "@types/jasmine": "~2.5.53",
+ "@types/jasminewd2": "~2.0.2",
+ "@types/node": "~6.0.60",
+ "codelyzer": "^4.0.1",
+ "jasmine-core": "~2.6.2",
+ "jasmine-spec-reporter": "~4.1.0",
+ "karma": "~1.7.0",
+ "karma-chrome-launcher": "~2.1.1",
+ "karma-cli": "~1.0.1",
+ "karma-coverage-istanbul-reporter": "^1.2.1",
+ "karma-jasmine": "~1.1.0",
+ "karma-jasmine-html-reporter": "^0.2.2",
+ "protractor": "~5.1.2",
+ "ts-node": "~3.2.0",
+ "tslint": "~5.7.0",
+ "typescript": "~2.4.2"
+ }
+}
diff --git a/protractor.conf.js b/protractor.conf.js
new file mode 100644
index 0000000..7ee3b5e
--- /dev/null
+++ b/protractor.conf.js
@@ -0,0 +1,28 @@
+// Protractor configuration file, see link for more information
+// https://github.com/angular/protractor/blob/master/lib/config.ts
+
+const { SpecReporter } = require('jasmine-spec-reporter');
+
+exports.config = {
+ allScriptsTimeout: 11000,
+ specs: [
+ './e2e/**/*.e2e-spec.ts'
+ ],
+ capabilities: {
+ 'browserName': 'chrome'
+ },
+ directConnect: true,
+ baseUrl: 'http://localhost:4200/',
+ framework: 'jasmine',
+ jasmineNodeOpts: {
+ showColors: true,
+ defaultTimeoutInterval: 30000,
+ print: function() {}
+ },
+ onPrepare() {
+ require('ts-node').register({
+ project: 'e2e/tsconfig.e2e.json'
+ });
+ jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
+ }
+};
diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
new file mode 100644
index 0000000..1337b50
--- /dev/null
+++ b/src/app/app-routing.module.ts
@@ -0,0 +1,16 @@
+import { NgModule } from '@angular/core';
+import { RouterModule, Routes } from '@angular/router';
+
+const routes: Routes = [
+ { path: '', loadChildren: './layout/layout.module#LayoutModule'},
+ { path: 'article', loadChildren: './article/article.module#ArticleModule' },
+ { path: 'one-stop', loadChildren: './one-stop/one-stop.module#OneStopModule' },
+ { path: 'not-found', loadChildren: './not-found/not-found.module#NotFoundModule' },
+ { path: '**', redirectTo: 'not-found' }
+];
+
+@NgModule({
+ imports: [ RouterModule.forRoot(routes) ],
+ exports: [ RouterModule ]
+})
+export class AppRoutingModule {}
\ No newline at end of file
diff --git a/src/app/app.component.css b/src/app/app.component.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/app.component.html b/src/app/app.component.html
new file mode 100644
index 0000000..90c6b64
--- /dev/null
+++ b/src/app/app.component.html
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
new file mode 100644
index 0000000..b8368f4
--- /dev/null
+++ b/src/app/app.component.ts
@@ -0,0 +1,14 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-root',
+ templateUrl: './app.component.html',
+ styleUrls: ['./app.component.css']
+})
+export class AppComponent implements OnInit{
+ constructor() {
+ }
+
+ ngOnInit() {
+ }
+}
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
new file mode 100644
index 0000000..3f4722d
--- /dev/null
+++ b/src/app/app.module.ts
@@ -0,0 +1,19 @@
+import { BrowserModule } from '@angular/platform-browser';
+import { NgModule } from '@angular/core';
+
+import { AppRoutingModule } from './app-routing.module';
+import { AppComponent } from './app.component';
+
+
+@NgModule({
+ declarations: [
+ AppComponent,
+ ],
+ imports: [
+ BrowserModule,
+ AppRoutingModule
+ ],
+ providers: [],
+ bootstrap: [AppComponent]
+})
+export class AppModule { }
diff --git a/src/app/article/article-routing.module.ts b/src/app/article/article-routing.module.ts
new file mode 100644
index 0000000..05ef6f2
--- /dev/null
+++ b/src/app/article/article-routing.module.ts
@@ -0,0 +1,23 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+import { ArticleComponent } from './article.component';
+
+const routes: Routes = [
+ {
+ path: '',
+ component: ArticleComponent,
+ children: [
+ { path: '', redirectTo: 'list' },
+ { path: 'list', loadChildren: './list/list.module#ListModule' },
+ { path: 'detail', loadChildren: './detail/detail.module#DetailModule' },
+ { path: 'weather', loadChildren: './weather/weather.module#WeatherModule' },
+ { path: 'code', loadChildren: './code/code.module#CodeModule' },
+ ]
+ }
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule]
+})
+export class ArticleRoutingModule {}
diff --git a/src/app/article/article.component.css b/src/app/article/article.component.css
new file mode 100644
index 0000000..b994b37
--- /dev/null
+++ b/src/app/article/article.component.css
@@ -0,0 +1,8 @@
+.layui-container{
+ -webkit-animation-duration: 1s;
+ animation-duration: 1s;
+}
+body {
+ background: #eee;
+ color: #444;
+}
\ No newline at end of file
diff --git a/src/app/article/article.component.html b/src/app/article/article.component.html
new file mode 100644
index 0000000..c6e8790
--- /dev/null
+++ b/src/app/article/article.component.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/app/article/article.component.ts b/src/app/article/article.component.ts
new file mode 100644
index 0000000..ec64871
--- /dev/null
+++ b/src/app/article/article.component.ts
@@ -0,0 +1,12 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-article',
+ templateUrl: './article.component.html',
+ styleUrls: ['./article.component.css']
+})
+export class ArticleComponent implements OnInit {
+ constructor() {}
+
+ ngOnInit() {}
+}
diff --git a/src/app/article/article.module.ts b/src/app/article/article.module.ts
new file mode 100644
index 0000000..a4d90a6
--- /dev/null
+++ b/src/app/article/article.module.ts
@@ -0,0 +1,17 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+
+import { ArticleRoutingModule } from './article-routing.module';
+import { ArticleComponent } from './article.component';
+import { HeaderModule } from '../shared';
+
+
+@NgModule({
+ imports: [
+ CommonModule,
+ ArticleRoutingModule,
+ HeaderModule
+ ],
+ declarations: [ArticleComponent]
+})
+export class ArticleModule {}
diff --git a/src/app/article/code/code-routing.module.ts b/src/app/article/code/code-routing.module.ts
new file mode 100644
index 0000000..30c07cd
--- /dev/null
+++ b/src/app/article/code/code-routing.module.ts
@@ -0,0 +1,15 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+import { CodeComponent } from './code.component';
+
+const routes: Routes = [
+ {
+ path: '', component: CodeComponent,
+ }
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule]
+})
+export class CodeRoutingModule {}
diff --git a/src/app/article/code/code.component.css b/src/app/article/code/code.component.css
new file mode 100644
index 0000000..c9d1e8e
--- /dev/null
+++ b/src/app/article/code/code.component.css
@@ -0,0 +1,1287 @@
+.layui-container{
+ -webkit-animation-duration: 1s;
+ animation-duration: 1s;
+}
+.content-block {
+ padding: 15px;
+ margin-bottom: 8px;
+ background: #ffffff;
+ box-shadow: 0 2px 10px 0 rgba(0,0,0,.1);
+}
+.post {
+ margin: 10px 1px;
+}
+.post h2 {
+ margin-bottom: 15px;
+ font-size: 24px;
+ line-height: 140%;
+}
+.post-link a {
+ color: black;
+}
+@media(max-width: 768px){
+ .list-cate{
+ display:none;
+ }
+}
+/*全局样式*/
+body {
+ background: #eee;
+ color: #444;
+}
+
+.icon-stick {
+ border: 1px solid #FF5722;
+ color: #FF5722;
+ padding: 0 2px 0 0;
+ font-family: SimHei;
+ display: inline-block;
+ margin-right: 3px;
+ position: relative;
+ top: -1px;
+ font-size: 13px;
+}
+
+.shadow {
+ box-shadow: 0 2px 10px 0 rgba(0,0,0,.1);
+}
+
+.clear {
+ clear: both;
+}
+
+.blog-container {
+ margin: 0 auto;
+ position: relative;
+}
+
+.blog-body {
+ margin-top: 65px;
+}
+
+.sitemap {
+ background: #fff;
+ margin-top: 79px;
+ padding: 5px 15px;
+ line-height: normal;
+ border-radius: 0 !important;
+}
+
+.sitemap a {
+ font-size: 12px;
+}
+
+.category-toggle {
+ position: fixed;
+ right: 0;
+ top: 40%;
+ width: 15px;
+ background: #009688;
+ color: #fff;
+ font-size: 16px;
+ padding: 30px 0;
+ z-index: 9999;
+}
+
+.category-toggle > i {
+ display: block;
+ height: 16px;
+}
+
+.blog-mask {
+ position: fixed;
+ left: 0;
+ right: 0;
+ top: 65px;
+ bottom: 0;
+ background: rgba(0, 0, 0, 0.7);
+ z-index: 998;
+}
+
+.maskIn {
+ -moz-animation: maskFadeIn 0.5s;
+ -o-animation: maskFadeIn 0.5s;
+ -webkit-animation: maskFadeIn 0.5s;
+ animation: maskFadeIn 0.5s;
+}
+
+.maskOut {
+ -moz-animation: maskFadeOut 0.5s;
+ -o-animation: maskFadeOut 0.5s;
+ -webkit-animation: maskFadeOut 0.5s;
+ animation: maskFadeOut 0.5s;
+}
+
+.blog-main {
+ margin-top: 15px;
+ width: 100%;
+ position: relative;
+ min-height: 100vh;
+}
+
+.blog-main > .home-tips {
+ padding: 10px 10px;
+ background: #fff;
+ font-size: 13px;
+ margin-bottom: 15px;
+}
+
+.blog-main > .home-tips > i {
+ color: #009688;
+ font-size: 15px;
+}
+
+.blog-main > .home-tips > .home-tips-container {
+ margin-left: 20px;
+ height: 17px;
+ overflow: hidden;
+}
+
+.blog-main > .home-tips > .home-tips-container > span {
+ display: block;
+}
+
+.blog-main > .blog-main-left {
+ width: 100%;
+ float: left;
+}
+
+.blog-main > .blog-main-right {
+ width: 100%;
+ float: right;
+}
+
+.blog-editor {
+}
+
+/********************************************评论留言************************************************/
+.blog-comment {
+ position: relative;
+ margin-bottom: 10px;
+}
+
+.blog-comment li {
+ border-bottom: 1px dotted #01AAED;
+ padding: 15px 0 10px 0;
+}
+
+.blog-comment .content,
+.blog-comment .info,
+.blog-comment .replycontainer {
+ margin-left: 53px;
+}
+
+.blog-comment .info-footer {
+ font-size: 13px;
+}
+
+.blog-comment .info,
+.blog-comment .replycontainer {
+ padding-top: 5px;
+}
+
+.blog-comment .replycontainer .layui-form-item {
+ margin-bottom: 5px;
+}
+
+.blog-comment .info span {
+ padding-right: 5px;
+}
+
+.blog-comment .info .username {
+ color: #01AAED;
+}
+
+.blog-comment .info .btn-reply {
+ color: #009688;
+}
+
+.blog-comment .content {
+ padding: 2px 0 5px 0;
+ min-height: 30px;
+ font-size: 13px;
+}
+
+.blog-comment hr {
+ margin-left: 53px;
+}
+
+.comment-parent > img {
+ width: 45px;
+ height: 45px;
+ margin: 5px 5px 5px 0;
+ position: absolute;
+ border-radius: 50px;
+}
+
+.comment-child img {
+ width: 40px;
+ height: 40px;
+ margin: 5px 5px 5px 0;
+ position: absolute;
+ border-radius: 50px;
+}
+
+.comment-child {
+ margin-left: 53px;
+ min-height: 50px;
+}
+
+.comment-child .info {
+ margin-left: 48px;
+ font-size: 12px;
+ line-height: 20px;
+}
+
+
+/********************************************END************************************************/
+/********************************************右侧模块************************************************/
+.blog-module {
+ margin-bottom: 10px;
+ padding: 15px;
+ background: #fff;
+ height: 100%;
+}
+
+.blog-module > .blog-module-title {
+ border-bottom: 1px solid #009688;
+ font-size: 15px;
+ font-weight: 500;
+ padding: 0 0 5px 0;
+ margin-bottom: 5px;
+}
+
+.blog-module-ul li,
+.blog-module-ul .fa {
+ margin: 3px 0;
+}
+
+.blog-module-ul li .fa {
+ color: #009688;
+}
+/********************************************右侧模块End************************************************/
+
+/********************************************文章分类导航************************************************/
+.article-category {
+ position: fixed;
+ top: 64px;
+ right: 0;
+ bottom: 0;
+ background: #393D49;
+ color: #eee;
+ width: 130px;
+ font-size: 11px;
+ padding: 10px;
+ display: none;
+ margin: 0;
+ z-index: 999;
+}
+
+.article-category > .article-category-title {
+ text-align: center;
+ border-bottom: 1px solid #009688;
+ font-size: 15px;
+ font-weight: 500;
+ padding: 0 0 5px 0;
+ margin-bottom: 5px;
+}
+
+.article-category > a {
+ display: block;
+ color: #eee;
+ padding: 5px 1%;
+ margin: 4px 0;
+ background: #009688;
+ width: 98%;
+ text-align: center;
+ line-height: 19px;
+ word-break: keep-all; /* 不换行 */
+ white-space: nowrap; /* 不换行 */
+ overflow: hidden; /* 内容超出宽度时隐藏超出部分的内容 */
+ text-overflow: ellipsis; /* 当对象内文本溢出时显示省略标记(...) ;需与overflow:hidden;一起使用。*/
+ float: left;
+}
+
+.article-category > a:hover {
+ color: #fff;
+ background: #5FB878;
+}
+
+.categoryIn {
+ -moz-animation: categoryIn 0.5s;
+ -o-animation: categoryIn 0.5s;
+ -webkit-animation: categoryIn 0.5s;
+ animation: categoryIn 0.5s;
+}
+
+.categoryOut {
+ -moz-animation: categoryOut 0.5s;
+ -o-animation: categoryOut 0.5s;
+ -webkit-animation: categoryOut 0.5s;
+ animation: categoryOut 0.5s;
+}
+
+/*分类导航In动画*/
+@keyframes categoryIn {
+ from {
+ right: -140px;
+ }
+
+ to {
+ right: 0;
+ }
+}
+
+@-moz-keyframes categoryIn {
+ from {
+ right: -140px;
+ }
+
+ to {
+ right: 0;
+ }
+}
+
+@-webkit-keyframes categoryIn {
+ from {
+ right: -140px;
+ }
+
+ to {
+ right: 0;
+ }
+}
+
+/*分类导航Out动画*/
+@keyframes categoryOut {
+ from {
+ right: 0;
+ }
+
+ to {
+ right: -140px;
+ }
+}
+
+@-moz-keyframes categoryOut {
+ from {
+ right: 0;
+ }
+
+ to {
+ right: -140px;
+ }
+}
+
+@-webkit-keyframes categoryOut {
+ from {
+ right: 0;
+ }
+
+ to {
+ right: -140px;
+ }
+}
+/********************************************文章分类导航End************************************************/
+
+
+
+
+
+/********************************************分享框************************************************/
+.blog-share {
+ box-shadow: 0 0 8px #fff;
+ position: fixed;
+ right: 80px;
+ bottom: 15px;
+ background: #393D49;
+ z-index: 999;
+ margin-bottom: 1px;
+ height: 50px;
+}
+
+.blog-share .blog-share-body {
+ width: 100%;
+ height: 100%;
+}
+
+.bdsharebuttonbox {
+ height: 100%;
+}
+
+.bdsharebuttonbox a {
+ float: left;
+ margin: 9px !important;
+ background-position: 0 !important;
+}
+
+
+
+.shareIn {
+ -moz-animation: shareIn 0.5s;
+ -o-animation: shareIn 0.5s;
+ -webkit-animation: shareIn 0.5s;
+ animation: shareIn 0.5s;
+}
+
+.shareOut {
+ -moz-animation: shareOut 0.5s;
+ -o-animation: shareOut 0.5s;
+ -webkit-animation: shareOut 0.5s;
+ animation: shareOut 0.5s;
+}
+/********************************************分享框End************************************************/
+
+
+/********************************************文章列表************************************************/
+.article {
+ padding: 15px;
+ margin-bottom: 10px;
+ background: #fff;
+ border-left: 5px solid #fff;
+ -moz-transition: all 0.3s linear;
+ -o-transition: all 0.3s linear;
+ -webkit-transition: all 0.3s linear;
+ transition: all 0.3s linear;
+}
+
+.article:hover {
+ border-left: 5px solid #009688;
+ -moz-transition: all 0.3s linear;
+ -o-transition: all 0.3s linear;
+ -webkit-transition: all 0.3s linear;
+ transition: all 0.3s linear;
+}
+
+.article > .article-left {
+ width: 25%;
+ float: left;
+}
+
+.article > .article-left > img {
+ width: 100%;
+ height: auto;
+}
+
+.article > .article-right {
+ width: 73%;
+ float: right;
+ padding-left: 2%;
+}
+
+.article > .article-right > .article-title a {
+ font-size: 14px;
+ color: #009688;
+}
+
+.article > .article-right > .article-title a:hover {
+ color: #009688;
+}
+
+.article > .article-right > .article-abstract {
+ display: none;
+}
+
+.article > .article-footer {
+ margin-top: 5px;
+ font-size: 11px;
+ padding: 2px;
+ color: #a6a6a6;
+}
+
+.article > .article-footer > span {
+ padding-right: 3%;
+}
+
+.article > .article-footer a {
+ color: #009688;
+}
+
+.article > .article-footer .article-viewinfo,
+.article > .article-footer .article-author {
+ display: none;
+}
+/********************************************文章列表End************************************************/
+
+
+/*子栏目导航*/
+.child-nav {
+ margin: 15px 0;
+ text-align: center;
+ height: 39px;
+ background: #fff;
+ border-bottom: 1px solid #5FB878;
+}
+
+.child-nav-btn {
+ padding: 0 20px;
+ width: auto;
+ font-size: 14px;
+ line-height: 40px;
+ display: inline-block;
+ cursor: pointer;
+}
+
+.child-nav-btn-this {
+ background: #5FB878;
+ color: #fff;
+}
+
+/********************************************顶部导航************************************************/
+.blog-nav {
+ width: 100%;
+ height: 64px;
+ position: fixed;
+ top: 0;
+ background-color: #393D49;
+ border-bottom: 1px solid #5FB878;
+}
+
+.blog-nav .layui-nav {
+ position: absolute;
+ top: 0;
+ left: 15%;
+ width: 85%;
+ background: none;
+ display: none;
+ text-align: center;
+}
+
+.blog-nav .layui-nav .layui-nav-item {
+ line-height: 64px;
+ margin: 0 5px;
+}
+
+.blog-nav .layui-nav .layui-nav-item a {
+ padding: 0 15px;
+}
+
+.blog-nav .blog-user {
+ line-height: 64px;
+ position: absolute;
+ z-index: 10;
+}
+
+.blog-nav .blog-user img {
+ width: 40px;
+ height: 40px;
+ border-radius: 50px;
+}
+
+.blog-nav .blog-user img:hover {
+ opacity: .5;
+}
+
+.blog-nav .blog-user .fa-qq {
+ line-height: 64px;
+ font-size: 24px;
+ color: #c2c2c2;
+}
+
+.blog-nav .blog-user .fa-qq:hover {
+ color: #fff;
+}
+
+
+.blog-nav .blog-logo {
+ position: absolute;
+ top: 0px;
+ left: 25%;
+ width: 50%;
+ text-align: center;
+ margin: 0 auto;
+ line-height: 64px;
+ font-size: 30px;
+ color: white;
+ font-weight: bold;
+ font-family: KaiTi;
+ display: inline-block;
+ z-index: 10;
+}
+
+.blog-nav .blog-navicon {
+ position: absolute;
+ right: 0;
+ padding: 10px 12px;
+ color: white;
+ border: 1px solid #009688;
+ margin-top: 13px;
+}
+
+.blog-nav .blog-navicon:hover {
+ border: 1px solid #5FB878;
+}
+/********************************************顶部导航End************************************************/
+
+.blog-module-ul a:hover,
+.blogroll a:hover {
+ color: #009688;
+}
+/********************************************左边导航************************************************/
+.blog-nav-left {
+ top: 65px;
+ border-radius: 0;
+ border-top: 1px solid #5FB878;
+ box-shadow: 0 0 8px #fff;
+}
+
+.leftIn {
+ -moz-animation: leftIn 0.5s;
+ -o-animation: leftIn 0.5s;
+ -webkit-animation: leftIn 0.5s;
+ animation: leftIn 0.5s;
+}
+
+.leftOut {
+ -moz-animation: leftOut 0.5s;
+ -o-animation: leftOut 0.5s;
+ -webkit-animation: leftOut 0.5s;
+ animation: leftOut 0.5s;
+}
+/********************************************左边导航End************************************************/
+
+
+
+/********************************************网站底部************************************************/
+.blog-footer {
+ text-align: center;
+ border-top: 1px solid #009688;
+ margin-top: 15px;
+ background: #2F4056;
+ padding: 5px 0;
+ color: #d3d2d2;
+}
+
+.blog-footer a {
+ color: #d2d2d2;
+}
+
+.blog-footer a:hover {
+ color: #fbfbfb;
+}
+
+.blog-footer > p {
+ margin: 2px 0;
+}
+
+.blog-footer > p a,
+.blog-footer > p span {
+ padding-left: 7px;
+}
+
+/********************************************网站底部End************************************************/
+
+
+/* 超小屏幕(手机,小于 768px) */
+@media(max-width:767px) {
+ .blog-container {
+ margin: 0 15px;
+ }
+}
+
+
+/* 小屏幕(平板,大于等于 768px) */
+@media (min-width: 768px) {
+ .blog-container {
+ width: 738px;
+ }
+
+ .sitemap {
+ background: #fff;
+ margin-top: 79px;
+ padding: 6px 15px;
+ line-height: normal;
+ }
+
+ .sitemap a {
+ font-size: 13px;
+ }
+
+ .icon-stick {
+ font-size: 14px;
+ }
+
+ .blog-banner li {
+ font-size: 38px;
+ }
+
+ .blog-main > .blog-main-right > .blog-module {
+ width: 45%;
+ margin-bottom: 15px;
+ }
+
+ .blog-main > .blog-main-right > .blog-module:nth-child(odd) {
+ float: left;
+ clear: left;
+ }
+
+ .blog-main > .blog-main-right > .blog-module:nth-child(odd).blog-module:last-child {
+ width: auto;
+ float: none;
+ clear: both;
+ }
+
+ .blog-main > .blog-main-right > .blog-module:nth-child(even) {
+ float: right;
+ clear: right;
+ }
+
+ .article > .article-right > .article-title a {
+ font-size: 17px;
+ }
+
+ .article > .article-right > .article-abstract {
+ font-size: 14px;
+ display: block;
+ margin-top: 10px;
+ text-indent: 2em;
+ }
+
+ .article > .article-footer {
+ margin-top: 10px;
+ font-size: 13px;
+ }
+
+ .article > .article-footer .article-viewinfo {
+ display: inline;
+ float: right;
+ }
+
+ .article > .article-footer .article-author {
+ display: inline;
+ }
+
+ /*文章分类导航*/
+ .article-category {
+ font-size: 13px;
+ width: 260px !important;
+ }
+
+ .article-category > .blog-module-title {
+ text-align: start;
+ }
+
+ .article-category > a {
+ padding: 7px 1%;
+ margin: 5px 0;
+ width: 46%;
+ }
+
+ .article-category > a:nth-child(odd) {
+ float: right;
+ }
+
+ .article-category > a:nth-child(even) {
+ float: left;
+ }
+
+ @keyframes categoryIn {
+ from {
+ right: -280px;
+ }
+
+ to {
+ right: 0;
+ }
+ }
+
+ @-moz-keyframes categoryIn {
+ from {
+ right: -280px;
+ }
+
+ to {
+ right: 0;
+ }
+ }
+
+ @-webkit-keyframes categoryIn {
+ from {
+ right: -280px;
+ }
+
+ to {
+ right: 0;
+ }
+ }
+
+ @keyframes categoryOut {
+ from {
+ right: 0;
+ }
+
+ to {
+ right: -280px;
+ }
+ }
+
+ @-moz-keyframes categoryOut {
+ from {
+ right: 0;
+ }
+
+ to {
+ right: -280px;
+ }
+ }
+
+ @-webkit-keyframes categoryOut {
+ from {
+ right: 0;
+ }
+
+ to {
+ right: -280px;
+ }
+ }
+ /*文章分类导航End*/
+}
+
+/* 中等屏幕(桌面显示器,大于等于 992px) */
+@media (min-width: 992px) {
+ .blog-container {
+ width: 962px;
+ }
+
+ .sitemap {
+ background: #fff;
+ margin-top: 79px;
+ padding: 8px 15px;
+ line-height: normal;
+ }
+
+ .sitemap a {
+ font-size: 14px;
+ }
+
+ .icon-stick {
+ font-size: 15px;
+ }
+
+ .category-toggle {
+ display: none;
+ }
+
+ .blog-nav .layui-nav {
+ display: block;
+ }
+
+ .blog-nav .blog-user {
+ right: 0;
+ }
+
+ .blog-nav .blog-logo {
+ position: absolute;
+ left: 10%;
+ width: auto;
+ }
+
+ .blog-nav .blog-navicon {
+ display: none;
+ }
+
+ .blog-nav-left {
+ display: none !important;
+ }
+
+ .blog-mask {
+ display: none;
+ }
+
+ .blog-banner li {
+ font-size: 48px;
+ }
+
+ .blog-main > .blog-main-left {
+ width: 100%;
+ }
+
+ .blog-main > .blog-main-right {
+ width: 100%;
+ }
+
+ .blog-main > .blog-main-right > .blog-module {
+ width: auto;
+ float: none !important;
+ }
+
+ .article > .article-right > .article-title a {
+ font-size: 18px;
+ }
+
+ /*文章分类导航*/
+ .article-category {
+ display: block;
+ position: static;
+ background: #fff;
+ color: #333;
+ width: auto !important;
+ font-size: 14px;
+ margin: 0 0 15px 0;
+ }
+
+ .article-category a {
+ background: inherit;
+ border: 1px solid #d2d2d2;
+ color: #444;
+ }
+
+ .article-category a:hover {
+ border: 1px solid #5FB878;
+ background: inherit;
+ color: #5FB878;
+ }
+ /*文章分类导航End*/
+}
+
+/* 大屏幕(大桌面显示器,大于等于 1200px) */
+@media (min-width: 1200px) {
+ .blog-container {
+ width: 1170px;
+ }
+
+ .blog-banner li {
+ font-size: 58px;
+ }
+}
+
+
+
+/*动画定义*/
+/*左侧导航In动画*/
+@keyframes leftIn {
+ from {
+ left: -200px;
+ }
+
+ to {
+ left: 0;
+ }
+}
+
+@-moz-keyframes leftIn {
+ from {
+ left: -200px;
+ }
+
+ to {
+ left: 0;
+ }
+}
+
+@-webkit-keyframes leftIn {
+ from {
+ left: -200px;
+ }
+
+ to {
+ left: 0;
+ }
+}
+
+/*左侧导航Out动画*/
+@keyframes leftOut {
+ from {
+ left: 0;
+ }
+
+ to {
+ left: -200px;
+ }
+}
+
+@-moz-keyframes leftOut {
+ from {
+ left: 0;
+ }
+
+ to {
+ left: -200px;
+ }
+}
+
+@-webkit-keyframes leftOut {
+ from {
+ left: 0;
+ }
+
+ to {
+ left: -200px;
+ }
+}
+
+/*分享In动画*/
+@keyframes shareIn {
+ from {
+ right: -200px;
+ }
+
+ to {
+ right: 80px;
+ }
+}
+
+@-moz-keyframes shareIn {
+ from {
+ right: -200px;
+ }
+
+ to {
+ right: 80px;
+ }
+}
+
+@-webkit-keyframes shareIn {
+ from {
+ right: -200px;
+ }
+
+ to {
+ right: 80px;
+ }
+}
+
+/*分享Out动画*/
+@keyframes shareOut {
+ from {
+ right: 80px;
+ }
+
+ to {
+ right: -200px;
+ }
+}
+
+@-moz-keyframes shareOut {
+ from {
+ right: 80px;
+ }
+
+ to {
+ right: -200px;
+ }
+}
+
+@-webkit-keyframes shareOut {
+ from {
+ right: 80px;
+ }
+
+ to {
+ right: -200px;
+ }
+}
+
+/*淡入动画*/
+@keyframes maskFadeIn {
+ from {
+ opacity: 0;
+ }
+
+ to {
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes maskFadeIn {
+ from {
+ opacity: 0;
+ }
+
+ to {
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes maskFadeIn {
+ from {
+ opacity: 0;
+ }
+
+ to {
+ opacity: 1;
+ }
+}
+
+/*淡出动画*/
+@keyframes maskFadeOut {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes maskFadeOut {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ }
+}
+
+@-webkit-keyframes maskFadeOut {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ }
+}
+
+
+/*pace theme*/
+
+.pace {
+ -webkit-pointer-events: none;
+ pointer-events: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+}
+
+.pace-inactive {
+ display: none;
+}
+
+.pace .pace-progress {
+ background-color: #5FB878;
+ position: fixed;
+ z-index: 2000;
+ top: 0;
+ left: 0;
+ height: 3px;
+ box-shadow: 0 3px 8px #5FB878;
+}
+
+.pace .pace-progress-inner {
+ display: block;
+ position: absolute;
+ right: 0px;
+ width: 10px;
+ height: 100%;
+ box-shadow: 0 0 10px #5FB878, 0 0 5px #5FB878;
+ opacity: 1.0;
+ -webkit-transform: rotate(3deg) translate(0px, -4px);
+ -moz-transform: rotate(3deg) translate(0px, -4px);
+ -ms-transform: rotate(3deg) translate(0px, -4px);
+ -o-transform: rotate(3deg) translate(0px, -4px);
+ transform: rotate(3deg) translate(0px, -4px);
+}
+
+@media (min-width: 992px) {
+ .pace .pace-activity {
+ display: block;
+ position: fixed;
+ z-index: 2000;
+ top: 15px;
+ right: 15px;
+ width: 14px;
+ height: 14px;
+ border: solid 2px transparent;
+ border-top-color: #ddd;
+ border-left-color: #ddd;
+ border-radius: 10px;
+ -webkit-animation: pace-spinner 400ms linear infinite;
+ -moz-animation: pace-spinner 400ms linear infinite;
+ -ms-animation: pace-spinner 400ms linear infinite;
+ -o-animation: pace-spinner 400ms linear infinite;
+ animation: pace-spinner 400ms linear infinite;
+ }
+}
+
+
+@-webkit-keyframes pace-spinner {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-moz-keyframes pace-spinner {
+ 0% {
+ -moz-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -moz-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-o-keyframes pace-spinner {
+ 0% {
+ -o-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -o-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-ms-keyframes pace-spinner {
+ 0% {
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -ms-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes pace-spinner {
+ 0% {
+ transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+
+
+
+
+
+/*右边广告*/
+.blog-main-right .advertisement {
+ display: none;
+}
+
+@media (min-width: 1200px) {
+ .blog-main-right .advertisement {
+ display: block;
+ /*padding: 0;*/
+ padding-left: 14px;
+ /*background: none;*/
+ box-shadow: 0 2px 10px 0 rgba(0,0,0,.1);
+ }
+}
+
+.pcshow{
+ display: none;
+}
+
+@media (min-width: 1200px) {
+ .pcshow {
+ display: block;
+ }
+}
\ No newline at end of file
diff --git a/src/app/article/code/code.component.html b/src/app/article/code/code.component.html
new file mode 100644
index 0000000..8568693
--- /dev/null
+++ b/src/app/article/code/code.component.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+ 码上好看测试码上好看测试码上好看测试码上好看测试码上好看测试码上好看测试码上好看测试
+
+
+
+ 2017-11-16 16:46:51
+
+
+
+
diff --git a/src/app/article/code/code.component.ts b/src/app/article/code/code.component.ts
new file mode 100644
index 0000000..c85730a
--- /dev/null
+++ b/src/app/article/code/code.component.ts
@@ -0,0 +1,12 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-list',
+ templateUrl: './code.component.html',
+ styleUrls: ['./code.component.css']
+})
+export class CodeComponent implements OnInit {
+ constructor() {}
+
+ ngOnInit() {}
+}
diff --git a/src/app/article/code/code.module.ts b/src/app/article/code/code.module.ts
new file mode 100644
index 0000000..f225ab7
--- /dev/null
+++ b/src/app/article/code/code.module.ts
@@ -0,0 +1,16 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+
+
+import { CodeRoutingModule } from './code-routing.module';
+import { CodeComponent } from './code.component';
+
+
+@NgModule({
+ imports: [
+ CommonModule,
+ CodeRoutingModule,
+ ],
+ declarations: [CodeComponent]
+})
+export class CodeModule {}
diff --git a/src/app/article/detail/detail-routing.module.ts b/src/app/article/detail/detail-routing.module.ts
new file mode 100644
index 0000000..8f961c4
--- /dev/null
+++ b/src/app/article/detail/detail-routing.module.ts
@@ -0,0 +1,15 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+import { DetailComponent } from './detail.component';
+
+const routes: Routes = [
+ {
+ path: '', component: DetailComponent,
+ }
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule]
+})
+export class DetailRoutingModule {}
diff --git a/src/app/article/detail/detail.component.css b/src/app/article/detail/detail.component.css
new file mode 100644
index 0000000..e521a4f
--- /dev/null
+++ b/src/app/article/detail/detail.component.css
@@ -0,0 +1,29 @@
+.layui-container{
+ -webkit-animation-duration: 1s;
+ animation-duration: 1s;
+}
+.content-block {
+ padding: 15px;
+ margin-bottom: 8px;
+ background: #ffffff;
+ box-shadow: 0 2px 10px 0 rgba(0,0,0,.1);
+}
+.post {
+ margin: 10px 1px;
+}
+.post h2 {
+ margin-bottom: 15px;
+ font-size: 24px;
+ line-height: 140%;
+}
+.post-link a {
+ color: black;
+}
+@media(max-width: 768px){
+ .list-cate{
+ display:none;
+ }
+}
+.layui-btn-xs:hover {
+ text-decoration: none;
+}
\ No newline at end of file
diff --git a/src/app/article/detail/detail.component.html b/src/app/article/detail/detail.component.html
new file mode 100644
index 0000000..de9cf4e
--- /dev/null
+++ b/src/app/article/detail/detail.component.html
@@ -0,0 +1,16 @@
+
+
+
+
+
ceshi3
+
+
+
+
+ 2017-11-24 11:38:11
+
+
33
+
+
+
diff --git a/src/app/article/detail/detail.component.ts b/src/app/article/detail/detail.component.ts
new file mode 100644
index 0000000..f406670
--- /dev/null
+++ b/src/app/article/detail/detail.component.ts
@@ -0,0 +1,12 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-detail',
+ templateUrl: './detail.component.html',
+ styleUrls: ['./detail.component.css']
+})
+export class DetailComponent implements OnInit {
+ constructor() {}
+
+ ngOnInit() {}
+}
diff --git a/src/app/article/detail/detail.module.ts b/src/app/article/detail/detail.module.ts
new file mode 100644
index 0000000..0d798ec
--- /dev/null
+++ b/src/app/article/detail/detail.module.ts
@@ -0,0 +1,16 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+
+
+import { DetailRoutingModule } from './detail-routing.module';
+import { DetailComponent } from './detail.component';
+
+
+@NgModule({
+ imports: [
+ CommonModule,
+ DetailRoutingModule,
+ ],
+ declarations: [DetailComponent]
+})
+export class DetailModule {}
diff --git a/src/app/article/list/list-routing.module.ts b/src/app/article/list/list-routing.module.ts
new file mode 100644
index 0000000..814149f
--- /dev/null
+++ b/src/app/article/list/list-routing.module.ts
@@ -0,0 +1,15 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+import { ListComponent } from './list.component';
+
+const routes: Routes = [
+ {
+ path: '', component: ListComponent,
+ }
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule]
+})
+export class ListRoutingModule {}
diff --git a/src/app/article/list/list.component.css b/src/app/article/list/list.component.css
new file mode 100644
index 0000000..586834c
--- /dev/null
+++ b/src/app/article/list/list.component.css
@@ -0,0 +1,26 @@
+.layui-container{
+ -webkit-animation-duration: 1s;
+ animation-duration: 1s;
+}
+.content-block {
+ padding: 15px;
+ margin-bottom: 8px;
+ background: #ffffff;
+ box-shadow: 0 2px 10px 0 rgba(0,0,0,.1);
+}
+.post {
+ margin: 10px 1px;
+}
+.post h2 {
+ margin-bottom: 15px;
+ font-size: 24px;
+ line-height: 140%;
+}
+.post-link a {
+ color: black;
+}
+@media(max-width: 768px){
+ .list-cate{
+ display:none;
+ }
+}
\ No newline at end of file
diff --git a/src/app/article/list/list.component.html b/src/app/article/list/list.component.html
new file mode 100644
index 0000000..924f207
--- /dev/null
+++ b/src/app/article/list/list.component.html
@@ -0,0 +1,18 @@
+
\ No newline at end of file
diff --git a/src/app/article/list/list.component.ts b/src/app/article/list/list.component.ts
new file mode 100644
index 0000000..6860279
--- /dev/null
+++ b/src/app/article/list/list.component.ts
@@ -0,0 +1,12 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-list',
+ templateUrl: './list.component.html',
+ styleUrls: ['./list.component.css']
+})
+export class ListComponent implements OnInit {
+ constructor() {}
+
+ ngOnInit() {}
+}
diff --git a/src/app/article/list/list.module.ts b/src/app/article/list/list.module.ts
new file mode 100644
index 0000000..33a9ec4
--- /dev/null
+++ b/src/app/article/list/list.module.ts
@@ -0,0 +1,16 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+
+
+import { ListRoutingModule } from './list-routing.module';
+import { ListComponent } from './list.component';
+
+
+@NgModule({
+ imports: [
+ CommonModule,
+ ListRoutingModule,
+ ],
+ declarations: [ListComponent]
+})
+export class ListModule {}
diff --git a/src/app/article/weather/weather-routing.module.ts b/src/app/article/weather/weather-routing.module.ts
new file mode 100644
index 0000000..56a4ba7
--- /dev/null
+++ b/src/app/article/weather/weather-routing.module.ts
@@ -0,0 +1,15 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+import { WeatherComponent } from './weather.component';
+
+const routes: Routes = [
+ {
+ path: '', component: WeatherComponent,
+ }
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule]
+})
+export class WeatherRoutingModule {}
diff --git a/src/app/article/weather/weather.component.css b/src/app/article/weather/weather.component.css
new file mode 100644
index 0000000..7566b44
--- /dev/null
+++ b/src/app/article/weather/weather.component.css
@@ -0,0 +1,53 @@
+.layui-container{
+ -webkit-animation-duration: 1s;
+ animation-duration: 1s;
+}
+.content-block {
+ padding: 15px;
+ margin-bottom: 8px;
+ background: #ffffff;
+ box-shadow: 0 2px 10px 0 rgba(0,0,0,.1);
+}
+.post {
+ margin: 10px 1px;
+}
+.post h2 {
+ margin-bottom: 15px;
+ font-size: 24px;
+ line-height: 140%;
+}
+.post-link a {
+ color: black;
+}
+@media(max-width: 768px){
+ .list-cate{
+ display:none;
+ }
+}
+.weather-list{
+ margin-bottom: 10px;
+ padding: 15px;
+ line-height: 22px;
+ border-radius: 0 2px 2px 0;
+ background-color: #349BF1;
+ color:white;
+}
+.weather-list .weather-icon{
+ width: 20%;
+ display: inline-block;
+ height:100%;
+ vertical-align: top;
+}
+.weather-list .weather-content{
+ display: inline-block;
+ width:75%;
+}
+.weather-list .weather-icon img{
+ width:100%;
+}
+@media screen and (min-width:1200px){
+ .weather-list .weather-content{
+ font-size: 1.7rem;
+ line-height: 2.5rem;
+ }
+}
\ No newline at end of file
diff --git a/src/app/article/weather/weather.component.html b/src/app/article/weather/weather.component.html
new file mode 100644
index 0000000..539d9c4
--- /dev/null
+++ b/src/app/article/weather/weather.component.html
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
东莞 2018-01-11
+
+ 7~16°C
+
+ 预计我市11日天气为多云 ,风量为:3-4级。
+ 紫外线指数:弱 ,温馨提示:辐射较弱,涂擦SPF12-15、PA+护肤品 。
+ 感冒指数:易发 ,温馨提示:昼夜温差很大,注意预防感冒 。
+
+
+
+
+
+
+
+
+
+
东莞 2018-01-12
+
+ 7~15°C
+
+ 预计我市12日天气为多云 ,风量为:<3级。
+ 紫外线指数:弱 ,温馨提示:辐射较弱,涂擦SPF12-15、PA+护肤品 。
+ 感冒指数:较易发 ,温馨提示:温差较大,较易感冒,注意防护 。
+
+
+
+
+
+
+
+
+
+
东莞 2018-01-13
+
+ 8~15°C
+
+ 预计我市13日天气为多云 ,风量为:<3级。
+ 紫外线指数:弱 ,温馨提示:辐射较弱,涂擦SPF12-15、PA+护肤品 。
+ 感冒指数:较易发 ,温馨提示:温差较大,较易感冒,注意防护 。
+
+
+
+
+
+
+
+
+
+
东莞 2018-01-14
+
+ 9~18°C
+
+ 预计我市14日天气为多云 ,风量为:<3级。
+ 紫外线指数:弱 ,温馨提示:辐射较弱,涂擦SPF12-15、PA+护肤品 。
+ 感冒指数:较易发 ,温馨提示:温差较大,较易感冒,注意防护 。
+
+
+
+
+
+
+
+
+
+
东莞 2018-01-15
+
+ 11~20°C
+
+ 预计我市15日天气为多云 ,风量为:<3级。
+ 紫外线指数:弱 ,温馨提示:辐射较弱,涂擦SPF12-15、PA+护肤品 。
+ 感冒指数:较易发 ,温馨提示:温差较大,较易感冒,注意防护 。
+
+
+
+
+
+
+
+
+
+
东莞 2018-01-16
+
+ 12~21°C
+
+ 预计我市16日天气为阴 ,风量为:<3级。
+ 紫外线指数:最弱 ,温馨提示:辐射弱,涂擦SPF8-12防晒护肤品 。
+ 感冒指数:较易发 ,温馨提示:温差较大,较易感冒,注意防护 。
+
+
+
+
+
+
+
+
+
+
东莞 2018-01-17
+
+ 15~22°C
+
+ 预计我市17日天气为阴转多云 ,风量为:<3级。
+ 紫外线指数:最弱 ,温馨提示:辐射弱,涂擦SPF8-12防晒护肤品 。
+ 感冒指数:少发 ,温馨提示:无明显降温,感冒机率较低 。
+
+
+
+
+
+
+
diff --git a/src/app/article/weather/weather.component.ts b/src/app/article/weather/weather.component.ts
new file mode 100644
index 0000000..802b1a5
--- /dev/null
+++ b/src/app/article/weather/weather.component.ts
@@ -0,0 +1,12 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-weather',
+ templateUrl: './weather.component.html',
+ styleUrls: ['./weather.component.css']
+})
+export class WeatherComponent implements OnInit {
+ constructor() {}
+
+ ngOnInit() {}
+}
diff --git a/src/app/article/weather/weather.module.ts b/src/app/article/weather/weather.module.ts
new file mode 100644
index 0000000..0d73aa7
--- /dev/null
+++ b/src/app/article/weather/weather.module.ts
@@ -0,0 +1,16 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+
+
+import { WeatherRoutingModule } from './weather-routing.module';
+import { WeatherComponent } from './weather.component';
+
+
+@NgModule({
+ imports: [
+ CommonModule,
+ WeatherRoutingModule,
+ ],
+ declarations: [WeatherComponent]
+})
+export class WeatherModule {}
diff --git a/src/app/layout/layout-routing.module.ts b/src/app/layout/layout-routing.module.ts
new file mode 100644
index 0000000..e5ce722
--- /dev/null
+++ b/src/app/layout/layout-routing.module.ts
@@ -0,0 +1,20 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+import { LayoutComponent } from './layout.component';
+
+const routes: Routes = [
+ {
+ path: '',
+ component: LayoutComponent,
+ children: [
+ { path: '', redirectTo: '' },
+ // { path: 'dashboard', loadChildren: './dashboard/dashboard.module#DashboardModule' },
+ ]
+ }
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule]
+})
+export class LayoutRoutingModule {}
diff --git a/src/app/layout/layout.component.css b/src/app/layout/layout.component.css
new file mode 100644
index 0000000..612c27b
--- /dev/null
+++ b/src/app/layout/layout.component.css
@@ -0,0 +1,156 @@
+.main-container {
+ margin-top: 56px;
+ margin-left: 235px;
+ padding: 15px;
+ -ms-overflow-x: hidden;
+ overflow-x: hidden;
+ overflow-y: scroll;
+ position: relative;
+ overflow: hidden;
+}
+@media screen and (max-width: 992px) {
+ .main-container {
+ margin-left: 0px !important;
+ }
+}
+.margin-top-container{
+ padding-top: 2%;
+}
+@media screen and (min-width: 992px) and (max-width: 1200px){
+ .container {
+ width: 970px;
+ }
+}
+@media screen and (min-width: 768px) and (max-width: 992px){
+ .container {
+ width: 750px;
+ }
+}
+@media (min-width: 1200px){
+ .container {
+ width: 1170px;
+ }
+}
+.container {
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto;
+}
+.index-total{
+ background-color:#333333;
+ height:105%;
+}
+.picScroll-top {
+ -webkit-animation-duration: 2s;
+ animation-duration: 2s;
+}
+.picList li img{
+ width:100%;
+ height:auto;
+}
+.picList li .pic a{
+ height:100%;
+}
+.picScroll-top{
+ position:relative;
+ width:100%;
+}
+.picList li{
+ height: 100%;
+ background-color: white;
+}
+.picList li .detail{
+ width:66%;
+ display: inline-block;
+ padding-left:2%;
+ vertical-align: top;
+}
+.picList li .detail .title{
+ color:#079ED2;
+ margin-top: 3%;
+ margin-bottom: 2%;
+ overflow: hidden;
+}
+.picList li .detail .time{
+ color: #B0B0B0;
+ margin-bottom: 1%;
+}
+.picList .pic{
+ width: 30%;
+ height:auto;
+ display: inline-block;
+}
+
+.picList li .detail .title{
+ font-size: 2rem;
+ color: #009688;
+}
+.picList li .detail .title a{
+ color: #009688;
+}
+.picList li .detail .time{
+ font-size: 0.3rem;
+}
+.picList li .detail p{
+ font-size: 1.3rem;
+ color: #666;
+ margin-bottom: 0px;
+}
+
+
+.title-line{
+ display: inline-block;
+ width: 0.20rem;
+ height: 1.5rem;
+ background-color: #009688;
+ position: relative;
+ top: 0.1rem;
+ margin-right: 0.6rem;
+}
+@media screen and (min-width: 800px) {
+ .slide-title p{
+ font-size: 2rem;
+ }
+}
+@media screen and (max-width: 580px) {
+ .slide-title p{
+ font-size: 1.5rem;
+ }
+}
+@media screen and (max-width: 450px) {
+ .slide-title p{
+ font-size: 1rem;
+ }
+ .title-line {
+ top: 0.3rem;
+ margin-right: 0.3rem;
+ }
+}
+.slide-title p{
+ color:white;
+ display: inline-block;
+}
+@media screen and (max-width: 580px) {
+ .picList li .detail .title{
+ font-size: 0.5rem;
+ }
+ .picList li .detail p{
+ font-size: 0.28rem;
+ }
+ .slide-title p{
+ font-size: .4rem;
+ }
+}
+
+@media screen and (max-width: 450px) {
+ .picList li .detail .title{
+ font-size: 0.35rem;
+ }
+ .picList li .detail p{
+ font-size: 0.22rem;
+ }
+ .slide-title p{
+ font-size: .3rem;
+ }
+}
\ No newline at end of file
diff --git a/src/app/layout/layout.component.html b/src/app/layout/layout.component.html
new file mode 100644
index 0000000..5c965b5
--- /dev/null
+++ b/src/app/layout/layout.component.html
@@ -0,0 +1,50 @@
+
+
diff --git a/src/app/layout/layout.component.ts b/src/app/layout/layout.component.ts
new file mode 100644
index 0000000..37a1134
--- /dev/null
+++ b/src/app/layout/layout.component.ts
@@ -0,0 +1,36 @@
+import { Component, OnInit } from '@angular/core';
+import "assets/js/jquery.SuperSlide.2.1.1.js";
+declare let $: any;
+
+@Component({
+ selector: 'app-layout',
+ templateUrl: './layout.component.html',
+ styleUrls: ['./layout.component.css']
+})
+export class LayoutComponent implements OnInit {
+ constructor() {}
+
+ ngOnInit(): void {
+ this.slider();
+ }
+
+ slider(): void {
+ $(".pic img").load(function(){
+ $(".picScroll-top").slide( {//幻灯片插件
+ // titCell:".hd ul",
+ mainCell:".bd ul",
+ autoPage:true,
+ effect:'top',
+ autoPlay:true,
+ scroll:1,
+ vis:1,
+ easing:"swing",
+ delayTime:500,
+ interTime:3000,
+ pnLoop:true,
+ mouseOverStop:true,
+ pageStateCell:false,
+ });
+ });
+ }
+}
diff --git a/src/app/layout/layout.module.ts b/src/app/layout/layout.module.ts
new file mode 100644
index 0000000..d71da0a
--- /dev/null
+++ b/src/app/layout/layout.module.ts
@@ -0,0 +1,17 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+
+
+import { LayoutRoutingModule } from './layout-routing.module';
+import { LayoutComponent } from './layout.component';
+import { WaterfallComponent } from './waterfall/Waterfall.component';
+
+
+@NgModule({
+ imports: [
+ CommonModule,
+ LayoutRoutingModule,
+ ],
+ declarations: [LayoutComponent,WaterfallComponent]
+})
+export class LayoutModule {}
diff --git a/src/app/layout/waterfall/waterfall.component.css b/src/app/layout/waterfall/waterfall.component.css
new file mode 100644
index 0000000..23f61c5
--- /dev/null
+++ b/src/app/layout/waterfall/waterfall.component.css
@@ -0,0 +1,197 @@
+.fall-slide-total{
+ color:white;
+}
+.fall-slide-total a,.fall-slide-total a:link, .fall-slide-total a:visited{
+ color:white;
+}
+.margin-right2{
+ margin-right: 2%;
+}
+
+.fall-slide-total{
+ color:white;
+}
+.fall-slide-total a,.fall-slide-total a:link, .fall-slide-total a:visited{
+ color:white;
+}
+.fall-list{
+ float: left;
+ margin-bottom: 2%;
+ font-size: 2rem;
+}
+@media screen and (max-width: 800px) {
+ .fall-list{
+ font-size: 0.42rem;
+ }
+}
+@media screen and (max-width: 580px) {
+ .fall-list{
+ font-size: 0.35rem;
+ }
+}
+@media screen and (max-width: 450px) {
+ .fall-list{
+ font-size: 0.28rem;
+ }
+}
+.fall-list-width{
+ width:15%;
+}
+.rectangle{
+ width: 32%;
+}
+.square{
+ width: 15%;
+}
+.gutter{
+ width: 2%;
+}
+
+@media screen and (max-width:550px){
+ .gutter{
+ width: 1.5%;
+ }
+}
+@media screen and (max-width:430px){
+ .layui-nav .layui-nav-item{
+ line-height: 45px;
+ }
+}
+
+.fall-weather{
+ width: 32%;
+ float: left;
+ background-color: #349BF2;
+}
+.weather-main-icon{
+ width:100%;
+ height:55%;
+ text-align: center;
+ vertical-align: bottom;
+}
+.weather-main-icon img{
+ width:43%;
+}
+.weather-detail{
+ height: 45%;
+}
+.weather-detail .weather-icon{
+ width: 40%;
+ text-align: center;
+ display: inline-block;
+}
+.weather-detail .weather-icon img{
+ width: 90%;
+ max-width:100%;
+}
+.weather-detail .weather-content{
+ text-align: center;
+ vertical-align:middle;
+ display: inline-block;
+ color:white;
+ width:56%;
+}
+.weather-detail .weather-content .weather-content-area{
+ display: inline-block;
+}
+@media screen and (max-width: 530px) {
+ .weather-detail .weather-content .weather-content-area{
+ display: block;
+ }
+ .weather-detail .weather-content .weather-content-title{
+ display: none;
+ }
+}
+@media screen and (max-width: 420px) {
+ .weather-detail .weather-icon {
+ width: 38%;
+ }
+}
+.rectangle .fall-icon{
+ width: 40%;
+ height: 100%;
+ display: inline-block;
+ text-align: right;
+ vertical-align: middle;
+}
+.rectangle .fall-icon img {
+ width: 50%;
+ margin-top: 18%;
+}
+.rectangle .fall-text{
+ max-width: 56%;
+ display: inline-block;
+}
+.square .fall-icon{
+ text-align: center;
+ vertical-align: bottom;
+ width: 100%;
+ margin-top: 3%;
+}
+.square .fall-icon img{
+ width:40%;
+}
+.square .fall-text{
+ text-align: center;
+}
+@media screen and (max-width:430px){
+ .rectangle .fall-icon img {
+ margin-top: 24%;
+ }
+ .rectangle .fall-icon{
+ width: 36%;
+ }
+}
+.rectangle .icon-mshk{
+ /*background: url(../images/icon-msyl.png) no-repeat 0 0;*/
+ -webkit-background-size: 25% 25%;
+ background-size: 25%;
+ width: 73%;
+ height: 60%;
+ margin-left: 20%;
+ margin-top: 11%;
+ display: inline-block;
+ text-align: center;
+ line-height: 238%;
+}
+.icon-bdzw{
+ /*background: url(../images/icon-zzw.png) no-repeat 0 0;*/
+}
+.square .icon-aqzs{
+ /*background: url(../images/icon-pzsh.png) no-repeat 0 0;*/
+ margin-left: 38%;
+ margin-top: 16%;
+ display: inline-block;
+ width: 55%;
+ height: 34%;
+ -webkit-background-size: 48% 48%;
+ background-size: 48%;
+}
+.pink{
+ background-color: #9a00ff;
+}
+.simple-blue{
+ background-color: #00b0f0;
+}
+.green{
+ background-color: #339933;
+}
+.simple-green{
+ background-color: #99CC33;
+}
+.rose-red{
+ background-color: #CD3B33;
+}
+.deep-green{
+ background-color: #009899;
+}
+.orange{
+ background-color: #e46c0a;
+}
+.little-green{
+ background-color: #1cd18c;
+}
+.water-fall {
+ -webkit-animation-duration: 1s;
+ animation-duration: 1s;
+}
\ No newline at end of file
diff --git a/src/app/layout/waterfall/waterfall.component.html b/src/app/layout/waterfall/waterfall.component.html
new file mode 100644
index 0000000..00731cc
--- /dev/null
+++ b/src/app/layout/waterfall/waterfall.component.html
@@ -0,0 +1,92 @@
+
+
\ No newline at end of file
diff --git a/src/app/layout/waterfall/waterfall.component.ts b/src/app/layout/waterfall/waterfall.component.ts
new file mode 100644
index 0000000..7444322
--- /dev/null
+++ b/src/app/layout/waterfall/waterfall.component.ts
@@ -0,0 +1,30 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-waterfall',
+ templateUrl: './waterfall.component.html',
+ styleUrls: ['./waterfall.component.css'],
+})
+
+export class WaterfallComponent implements OnInit {
+ constructor() {
+ }
+
+ ngOnInit() {
+ this.setHeight();
+ }
+ setHeight() {
+ window.onload = function(){
+ let fallWeather = document.getElementById('fall-weather');
+ let rectangle = document.getElementsByName('rectangle');
+ let margin = document.getElementById('first-rectangle').offsetLeft - fallWeather.offsetWidth;
+ for (let i=0;i<5;i++) {
+ rectangle[i].style.height = (fallWeather.offsetHeight-margin)/2 + "px";
+ }
+ let square = document.getElementsByName('square');
+ for (let i=0;i
+ (404)not-found
+
\ No newline at end of file
diff --git a/src/app/not-found/not-found.component.ts b/src/app/not-found/not-found.component.ts
new file mode 100644
index 0000000..3da6058
--- /dev/null
+++ b/src/app/not-found/not-found.component.ts
@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-not-found',
+ templateUrl: './not-found.component.html',
+ // styleUrls: ['./not-found.component.css']
+})
+export class NotFoundComponent implements OnInit {
+
+ constructor() { }
+
+ ngOnInit() {
+ }
+
+}
diff --git a/src/app/not-found/not-found.module.ts b/src/app/not-found/not-found.module.ts
new file mode 100644
index 0000000..8543562
--- /dev/null
+++ b/src/app/not-found/not-found.module.ts
@@ -0,0 +1,14 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+
+import { NotFoundRoutingModule } from './not-found-routing.module';
+import { NotFoundComponent } from './not-found.component';
+
+@NgModule({
+ imports: [
+ CommonModule,
+ NotFoundRoutingModule
+ ],
+ declarations: [NotFoundComponent]
+})
+export class NotFoundModule { }
diff --git a/src/app/one-stop/content/content-routing.module.ts b/src/app/one-stop/content/content-routing.module.ts
new file mode 100644
index 0000000..354c9ef
--- /dev/null
+++ b/src/app/one-stop/content/content-routing.module.ts
@@ -0,0 +1,15 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+import { ContentComponent } from './content.component';
+
+const routes: Routes = [
+ {
+ path: '', component: ContentComponent,
+ }
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule]
+})
+export class ContentRoutingModule {}
diff --git a/src/app/one-stop/content/content.component.css b/src/app/one-stop/content/content.component.css
new file mode 100644
index 0000000..459b461
--- /dev/null
+++ b/src/app/one-stop/content/content.component.css
@@ -0,0 +1,117 @@
+.content-block {
+ padding: 15px;
+ margin-bottom: 8px;
+ background: #ffffff;
+ box-shadow: 0 2px 10px 0 rgba(0,0,0,.1);
+}
+.post {
+ margin: 10px 1px;
+}
+.post h2 {
+ margin-bottom: 15px;
+ font-size: 24px;
+ line-height: 140%;
+}
+.post-link a {
+ color: black;
+}
+@media(max-width: 768px){
+ .list-cate{
+ display:none;
+ }
+}
+.list-ul li{
+ padding: 0px 0px 5px 5px;
+ width: 24.3%;
+ float: left;
+ text-align: center;
+}
+.list-ul li a {
+ background: #fff;
+ display: block;
+ text-align: center;
+ color: #666;
+ font-size: 13px;
+ padding: 8px 0;
+}
+.list-ul li img{
+ display: block;
+ width: 60%;
+ border: 0;
+ margin: 0 auto 2px auto;
+}
+.service-table tr td{
+ background-image: url(../../../assets/images/service-icon.png);
+ background-position: 8px center;
+ background-repeat: no-repeat;
+ padding: 9px 15px 9px 31px;
+ background-size: 16px;
+}
+.container {
+ padding-right: 8px;
+ padding-left: 8px;
+}
+.select-title{
+ font-size: 15px;
+}
+.select-title .city{
+ float:right;
+}
+.select-city .layui-show{
+ font-size: 14px;
+}
+.layui-colla-title{
+ font-size: 15px;
+ margin: 0;
+ height:auto;
+}
+.select-city-title{
+ padding: 0 15px 0 20px;
+ background-color:white;
+}
+.city-a{
+ margin: 0 1.8% 2% 1.9%;
+ width: 28.5%;
+}
+.yzs-apply-a{
+ background-color:white;
+ color: #009688;
+ border-color: #009688;
+ padding: 0 50px;
+}
+.yzs-detail-p-image{
+ width:16px;
+ margin-right: 8px;
+}
+.yzs-title-image{
+ width:21px;
+ margin-right: 8px;
+}
+.yzs-select-city-icon{
+ margin-left: 5px;
+}
+.service-table a{
+ color: rgb(102, 102, 102);
+}
+.nav-tabs .nav-link.active {
+ color: #495057;
+ background-color: #fff;
+ border-color: #dee2e6 #dee2e6 #fff;
+}
+a {
+ color:#009688;
+}
+a:hover {
+ text-decoration: none;
+}
+.layui-colla-content{
+ display: block;
+}
+.city-a{
+ color:#555;
+}
+.layui-colla-item {
+ border-top-width: 1px;
+ border-top-style: solid;
+ border-color: #e6e6e6;
+}
\ No newline at end of file
diff --git a/src/app/one-stop/content/content.component.html b/src/app/one-stop/content/content.component.html
new file mode 100644
index 0000000..0fd462e
--- /dev/null
+++ b/src/app/one-stop/content/content.component.html
@@ -0,0 +1,193 @@
+
+
+
+
+
+
+ 主管部门:广东省司法厅 |
+
+
+ 事项名称:法律援助律师执业许可 |
+
+
+ 申办 |
+
+
+
+
+ 承诺期限: 1、地级以上市司法局(简称“受理申请机关”)应当自决定受理申请之日起20日内,对申请人是否符合法定条件、提交的材料是否真实齐全出具审查意见,并将审查意见和全部申请材料报送省司法厅审核; 2、 省司法厅应当自收到受理申请机关报送的审查意见和全部申请材料之日起10日内予以审核,作出是否准予执业的决定; 3、准予执业的,应当自决定之日起10日内向申请人颁发律师工作证书。
+
+ 不收费
+ |
+
+
+
+
+
+
+
+ 窗口信息
+
+
+
+
+
+
+
+
+
+ 窗口地址:广州市白云区政民路51号15楼律师工作管理处
+ |
+
+
+ 办公时间:星期一~星期五(上午:8:30—12:00,下午:14:00—17:00),法定假日除外。
+ |
+
+
+ 联系电话:
+ 020-86351130
+
+ 020-86351219
+ |
+
+
+
+
+
+
+
+
+ 受理对象
+
+
+
+ 符合办理条件申请人
+
+
+
+
+ 受理条件
+
+
+
+ (一)申请律师执业,应当具备下列条件:
1、拥护中华人民共和国宪法;
2、通过国家统一司法考试取得法律职业资格证书;
3、在律师事务所实习满一年,并经律师协会考核合格;
4、品行良好。
实行国家统一司法考试前取得的律师资格证书,在申请律师执业时,与国家统一司法考试合格证书具有同等效力。享受国家统一司法考试有关报名条件、考试合格优惠措施,取得法律职业资格证书的,其申请律师执业的地域限制,按照有关规定办理。
(二)有下列情形之一的人员,不得从事律师职业:
1、无民事行为能力或者限制民事行为能力的;
2、受过刑事处罚的,但过失犯罪的除外;
3、被开除公职或者被吊销律师执业证书的;
4、因违法违纪被公安机关辞退的。
+
+
+
+
+ 设定依据
+
+
+
+
+
+
1、《中华人民共和国律师法》;
+
+
+
2、《律师执业管理办法》(中华人民共和国司法部令第112号);
+
+
+
3、《广东省司法厅关于律师执业许可的管理办法》(粤司办[2014]94号)。
+
+
+
+
+
+
+
+ 窗口办理流程
+
+
+
+ 1、申请人通过拟执业法律援助机构登陆广东律师管理在线网站(网址:http://www.gdlawyer.gov.cn/)下载《律师工作证呈报表》和《律师执业登记表》,按要求准备申报材料,向拟执业法律援助机构所在地地级以上市司法局提交申请;
2、申请材料齐全、符合法定形式,受理申请机关应当受理,并为申请人出具受理通知书;
3、受理申请机关对申请材料进行审查,出具审查意见,将审查意见连同相关申报材料(含书面及电子版材料)整理上报省司法厅;
4、省司法厅对受理申请机关报送的审查意见和全部申请材料进行审核;
5、省司法厅审核通过后作出准予许可决定,并制作律师工作证,通过地级以上市司法局颁发给申请人。
6、申请人在递交申请材料时,可选择邮政特快专递送达本人行政审批决定书等材料和执业许可证件,并自行承担邮政特快专递的邮件资费和回执服务费。
+
+
+
+
+ 网上办理流程
+
+
+
+ 1、申请人通过拟申请执业法律援助机构登陆广东律师管理在线网站(www.gdlawyer.gov.cn),填报个人信息并发起申请业务;
2、申请人拟通过执业法律援助机构将电子申请材料发送给受理申请机关;
3、受理申请机关结合申请人提交的书面材料进行审查,符合条件的填写审查意见发送省司法厅;
4、省司法厅经办人员接收电子材料并结合书面材料提出审查意见报分管领导;
5、分管领导接收电子材料并结合书面材料和厅领导审批意见发送电子材料,完成网上审批流程;
6、省司法厅经办人根据网上审批情况结合书面材料审核结果制作律师工作证,通过地级以上市司法局颁发给申请人。
7、申请人在递交申请材料时,可选择邮政特快专递送达本人行政审批决定书等材料和执业许可证件,并自行承担邮政特快专递的邮件资费和回执服务费。
+
+
+
+
+ 申请材料
+
+
+
+
+
+
+
+
+
+
+ 1、《律师执业证呈报表》和《律师执业登记表》; |
+
+
+ 2、法律职业资格证书副本或律师资格证书、居民身份证、户口簿复印件; |
+
+
+ 3、律师协会出具的申请人有效的集中培训结业证书复印件和《广东省申请律师执业人员实习考核登记表》(有执业经历的不需提交); |
+
+
+ 4、有人事管理权的部门出具的申请人国家公务员(事业单位人员)任职文件复印件或公务员(事业单位人员)身份证明原件; |
+
+
+ 5、所在单位所属司法行政部门同意申请人申请法律援助律师工作证或兼职法律援助律师工作证的证明原件; |
+
+
+ 6、申请人近期大一寸正装(非制服)免冠蓝底正面彩色相片一张; |
+
+
+ 7、承诺书。 |
+
+
+ 法律援助机构聘用人员申请执业的,除提交上述第1、2、3、6、7项材料外,还需提交以下材料: |
+
+
+ 1、申请人户籍所在地公安机关出具的申请人在申请日之前未受过刑事处罚(过失犯罪的除外)的证明,证明出具日期离申请人向地级以上市司法局提交申请材料的时间最长不超过3个月; |
+
+
+ 2、法律援助机构为申请人购买社会保险的清单; |
+
+
+ 3、申请人在拟执业机构所在地存放人事档案证明材料复印件(具体包括人事档案保管合同及缴费凭证); |
+
+
+ 4、与拟执业的法律援助机构签订的聘用合同,聘用合同需经法律援助机构所属司法行政部门加具意见并盖公章。 |
+
+
+ 申请人的法律职业资格档案(含律师资格档案)、律师执业经历档案不在广东的,还需要提交法律职业资格档案(含律师资格档案)、律师执业经历档案,广东省司法厅为申请人调取档案提供便利。如申请人没有律师执业经历,只需提交法律执业资格档案(含律师资格档案)。 |
+
+
+ 注:上述需提交的纸质材料统一用A4纸格式,所有材料都应当由申请人签名和填写提交日期;提交的材料都应当是原件(明确规定提交复印件的除外);提交的复印件材料均应由初审机关(地级以上市司法局)核对原件,加盖“复印件与原件核对无误”印章,并由核对人签名或盖章(校对章格式为“XX市司法局公律科(处)核对人XXX”),并写明核对日期,其他单位和人员均不得在材料上签名盖章或作其他改动;提交材料有有效期限的,应在申请材料受理和审核期间内有效;提交的法律职业资格证书副本中的身份证号信息应与身份证、户口簿中所载的信息一致,不一致的,应提交有权机关出具的相关证明。 |
+
+
+
+
+
+
+
+
+ 备注
+
+
+
+ 无
+
+
+
+
diff --git a/src/app/one-stop/content/content.component.ts b/src/app/one-stop/content/content.component.ts
new file mode 100644
index 0000000..ff8ba93
--- /dev/null
+++ b/src/app/one-stop/content/content.component.ts
@@ -0,0 +1,12 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-content',
+ templateUrl: './content.component.html',
+ styleUrls: ['./content.component.css']
+})
+export class ContentComponent implements OnInit {
+ constructor() {}
+
+ ngOnInit() {}
+}
diff --git a/src/app/one-stop/content/content.module.ts b/src/app/one-stop/content/content.module.ts
new file mode 100644
index 0000000..a1877a2
--- /dev/null
+++ b/src/app/one-stop/content/content.module.ts
@@ -0,0 +1,18 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
+
+
+import { ContentRoutingModule } from './content-routing.module';
+import { ContentComponent } from './content.component';
+
+
+@NgModule({
+ imports: [
+ CommonModule,
+ ContentRoutingModule,
+ NgbModule.forRoot(),
+ ],
+ declarations: [ContentComponent]
+})
+export class ContentModule {}
diff --git a/src/app/one-stop/index/index-routing.module.ts b/src/app/one-stop/index/index-routing.module.ts
new file mode 100644
index 0000000..b8a0101
--- /dev/null
+++ b/src/app/one-stop/index/index-routing.module.ts
@@ -0,0 +1,15 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+import { IndexComponent } from './index.component';
+
+const routes: Routes = [
+ {
+ path: '', component: IndexComponent,
+ }
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule]
+})
+export class IndexRoutingModule {}
diff --git a/src/app/one-stop/index/index.component.css b/src/app/one-stop/index/index.component.css
new file mode 100644
index 0000000..fb16e0b
--- /dev/null
+++ b/src/app/one-stop/index/index.component.css
@@ -0,0 +1,107 @@
+.content-block {
+ padding: 15px;
+ margin-bottom: 8px;
+ background: #ffffff;
+ box-shadow: 0 2px 10px 0 rgba(0,0,0,.1);
+}
+.post {
+ margin: 10px 1px;
+}
+.post h2 {
+ margin-bottom: 15px;
+ font-size: 24px;
+ line-height: 140%;
+}
+.post-link a {
+ color: black;
+}
+@media(max-width: 768px){
+ .list-cate{
+ display:none;
+ }
+}
+.list-ul li{
+ padding: 0px 0px 5px 5px;
+ width: 24.3%;
+ float: left;
+ text-align: center;
+}
+.list-ul li a {
+ background: #fff;
+ display: block;
+ text-align: center;
+ color: #666;
+ font-size: 13px;
+ padding: 8px 0;
+}
+.list-ul li img{
+ display: block;
+ width: 60%;
+ border: 0;
+ margin: 0 auto 2px auto;
+}
+.service-table tr td{
+ background-image: url(../../../assets/images/service-icon.png);
+ background-position: 8px center;
+ background-repeat: no-repeat;
+ padding: 9px 15px 9px 31px;
+ background-size: 16px;
+}
+.container {
+ padding-right: 8px;
+ padding-left: 8px;
+}
+.select-title{
+ font-size: 15px;
+}
+.select-title .city{
+ float:right;
+}
+.select-city .layui-show{
+ font-size: 14px;
+}
+.layui-colla-title{
+ font-size: 15px;
+ margin: 0;
+ height:auto;
+}
+.select-city-title{
+ padding: 0 15px 0 20px;
+ background-color:white;
+}
+.select-city .city-a{
+ margin: 0 1.8% 2% 1.9%;
+ width: 28.5%;
+}
+.yzs-apply-a{
+ background-color:white;
+ color: #009688;
+ border-color: #009688;
+ padding: 0 50px;
+}
+.yzs-detail-p-image{
+ width:16px;
+ margin-right: 8px;
+}
+.yzs-title-image{
+ width:21px;
+ margin-right: 8px;
+}
+.yzs-select-city-icon{
+ margin-left: 5px;
+}
+.service-table a{
+ color: rgb(102, 102, 102);
+}
+.nav-tabs .nav-link.active {
+ color: #495057;
+ background-color: #fff;
+ border-color: #dee2e6 #dee2e6 #fff;
+}
+a {
+ color:#009688;
+}
+a:hover {
+ text-decoration: none;
+}
+
diff --git a/src/app/one-stop/index/index.component.html b/src/app/one-stop/index/index.component.html
new file mode 100644
index 0000000..86c4e86
--- /dev/null
+++ b/src/app/one-stop/index/index.component.html
@@ -0,0 +1,532 @@
+
+
+ 个人办事
+
+
+
+
+
+ 企业办事
+
+
+
+
+
+ 部门服务
+
+
+
+
+
+
+
+ 选择城市
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/one-stop/index/index.component.ts b/src/app/one-stop/index/index.component.ts
new file mode 100644
index 0000000..5d17d05
--- /dev/null
+++ b/src/app/one-stop/index/index.component.ts
@@ -0,0 +1,13 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-index',
+ templateUrl: './index.component.html',
+ styleUrls: ['./index.component.css']
+})
+export class IndexComponent implements OnInit {
+ constructor() {}
+
+ ngOnInit() {
+ }
+}
diff --git a/src/app/one-stop/index/index.module.ts b/src/app/one-stop/index/index.module.ts
new file mode 100644
index 0000000..5f107b7
--- /dev/null
+++ b/src/app/one-stop/index/index.module.ts
@@ -0,0 +1,18 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
+
+
+import { IndexRoutingModule } from './index-routing.module';
+import { IndexComponent } from './index.component';
+
+
+@NgModule({
+ imports: [
+ CommonModule,
+ IndexRoutingModule,
+ NgbModule.forRoot(),
+ ],
+ declarations: [IndexComponent]
+})
+export class IndexModule {}
diff --git a/src/app/one-stop/one-stop-routing.module.ts b/src/app/one-stop/one-stop-routing.module.ts
new file mode 100644
index 0000000..af7e767
--- /dev/null
+++ b/src/app/one-stop/one-stop-routing.module.ts
@@ -0,0 +1,23 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+import { OneStopComponent } from './one-stop.component';
+
+const routes: Routes = [
+ {
+ path: '',
+ component: OneStopComponent,
+ children: [
+ { path: '', redirectTo: 'index' },
+ { path: 'index', loadChildren: './index/index.module#IndexModule' },
+ { path: 'select', loadChildren: './select/select.module#SelectModule' },
+ { path: 'select-region', loadChildren: './select-region/select-region.module#SelectRegionModule' },
+ { path: 'content', loadChildren: './content/content.module#ContentModule' },
+ ]
+ }
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule]
+})
+export class OneStopRoutingModule {}
diff --git a/src/app/one-stop/one-stop.component.css b/src/app/one-stop/one-stop.component.css
new file mode 100644
index 0000000..80e096c
--- /dev/null
+++ b/src/app/one-stop/one-stop.component.css
@@ -0,0 +1,32 @@
+body {
+ background: #FAFAFA;
+ color: #444;
+}
+@media screen and (min-width: 992px) and (max-width: 1200px){
+ .container {
+ width: 970px;
+ }
+}
+@media screen and (min-width: 768px) and (max-width: 992px){
+ .container {
+ width: 750px;
+ }
+}
+@media (min-width: 1200px){
+ .container {
+ width: 1170px;
+ }
+}
+.container {
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto;
+}
+.container {
+ padding-right: 8px;
+ padding-left: 8px;
+}
+.content{
+ background-color: #FAFAFA;
+}
diff --git a/src/app/one-stop/one-stop.component.html b/src/app/one-stop/one-stop.component.html
new file mode 100644
index 0000000..8ebe8d6
--- /dev/null
+++ b/src/app/one-stop/one-stop.component.html
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/src/app/one-stop/one-stop.component.ts b/src/app/one-stop/one-stop.component.ts
new file mode 100644
index 0000000..5462ed0
--- /dev/null
+++ b/src/app/one-stop/one-stop.component.ts
@@ -0,0 +1,12 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-one-stop',
+ templateUrl: './one-stop.component.html',
+ styleUrls: ['./one-stop.component.css']
+})
+export class OneStopComponent implements OnInit {
+ constructor() {}
+
+ ngOnInit() {}
+}
diff --git a/src/app/one-stop/one-stop.module.ts b/src/app/one-stop/one-stop.module.ts
new file mode 100644
index 0000000..fc19b6a
--- /dev/null
+++ b/src/app/one-stop/one-stop.module.ts
@@ -0,0 +1,17 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+
+import { OneStopRoutingModule } from './one-stop-routing.module';
+import { OneStopComponent } from './one-stop.component';
+import { HeaderModule } from '../shared';
+
+
+@NgModule({
+ imports: [
+ CommonModule,
+ OneStopRoutingModule,
+ HeaderModule
+ ],
+ declarations: [OneStopComponent]
+})
+export class OneStopModule {}
diff --git a/src/app/one-stop/select-region/select-region-routing.module.ts b/src/app/one-stop/select-region/select-region-routing.module.ts
new file mode 100644
index 0000000..8968241
--- /dev/null
+++ b/src/app/one-stop/select-region/select-region-routing.module.ts
@@ -0,0 +1,15 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+import { SelectRegionComponent } from './select-region.component';
+
+const routes: Routes = [
+ {
+ path: '', component: SelectRegionComponent,
+ }
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule]
+})
+export class SelectRegionRoutingModule {}
diff --git a/src/app/one-stop/select-region/select-region.component.css b/src/app/one-stop/select-region/select-region.component.css
new file mode 100644
index 0000000..be59b22
--- /dev/null
+++ b/src/app/one-stop/select-region/select-region.component.css
@@ -0,0 +1,117 @@
+.content-block {
+ padding: 15px;
+ margin-bottom: 8px;
+ background: #ffffff;
+ box-shadow: 0 2px 10px 0 rgba(0,0,0,.1);
+}
+.post {
+ margin: 10px 1px;
+}
+.post h2 {
+ margin-bottom: 15px;
+ font-size: 24px;
+ line-height: 140%;
+}
+.post-link a {
+ color: black;
+}
+@media(max-width: 768px){
+ .list-cate{
+ display:none;
+ }
+}
+.list-ul li{
+ padding: 0px 0px 5px 5px;
+ width: 24.3%;
+ float: left;
+ text-align: center;
+}
+.list-ul li a {
+ background: #fff;
+ display: block;
+ text-align: center;
+ color: #666;
+ font-size: 13px;
+ padding: 8px 0;
+}
+.list-ul li img{
+ display: block;
+ width: 60%;
+ border: 0;
+ margin: 0 auto 2px auto;
+}
+.service-table tr td{
+ background-image: url(../../../assets/images/service-icon.png);
+ background-position: 8px center;
+ background-repeat: no-repeat;
+ padding: 9px 15px 9px 31px;
+ background-size: 16px;
+}
+.container {
+ padding-right: 8px;
+ padding-left: 8px;
+}
+.select-title{
+ font-size: 15px;
+}
+.select-title .city{
+ float:right;
+}
+.select-city .layui-show{
+ font-size: 14px;
+}
+.layui-colla-title{
+ font-size: 15px;
+ margin: 0;
+ height:auto;
+}
+.select-city-title{
+ padding: 0 15px 0 20px;
+ background-color:white;
+}
+ .city-a{
+ margin: 0 1.8% 2% 1.9%;
+ width: 28.5%;
+}
+.yzs-apply-a{
+ background-color:white;
+ color: #009688;
+ border-color: #009688;
+ padding: 0 50px;
+}
+.yzs-detail-p-image{
+ width:16px;
+ margin-right: 8px;
+}
+.yzs-title-image{
+ width:21px;
+ margin-right: 8px;
+}
+.yzs-select-city-icon{
+ margin-left: 5px;
+}
+.service-table a{
+ color: rgb(102, 102, 102);
+}
+.nav-tabs .nav-link.active {
+ color: #495057;
+ background-color: #fff;
+ border-color: #dee2e6 #dee2e6 #fff;
+}
+a {
+ color:#009688;
+}
+a:hover {
+ text-decoration: none;
+}
+.layui-colla-content{
+ display: block;
+}
+.city-a{
+ color:#555;
+}
+.layui-colla-item {
+ border-top-width: 1px;
+ border-top-style: solid;
+ border-color: #e6e6e6;
+}
\ No newline at end of file
diff --git a/src/app/one-stop/select-region/select-region.component.html b/src/app/one-stop/select-region/select-region.component.html
new file mode 100644
index 0000000..6cfd484
--- /dev/null
+++ b/src/app/one-stop/select-region/select-region.component.html
@@ -0,0 +1,349 @@
+
+ 选择所办理业务的城市:
+
+
+
+
+ 广州市
+
+
+
+
广州市
+
越秀区
+
海珠区
+
荔湾区
+
天河区
+
白云区
+
黄埔区
+
番禺区
+
花都区
+
南沙区
+
萝岗区
+
从化区
+
增城区
+
+
+
+
+
+ 深圳市
+
+
+
+
+
+
+
+ 汕头市
+
+
+
+
汕头市
+
金平区
+
龙湖区
+
澄海区
+
濠江区
+
潮阳区
+
潮南区
+
南澳县
+
+
+
+
+
+ 佛山市
+
+
+
+
+
+
+
+ 韶关市
+
+
+
+
+
+
+
+ 河源市
+
+
+
+
河源市
+
源城区
+
紫金县
+
龙川县
+
连平县
+
和平县
+
东源县
+
+
+
+
+
+ 梅州市
+
+
+
+
梅州市
+
梅江区
+
梅县
+
大浦县
+
丰顺县
+
五华县
+
平远县
+
蕉岭县
+
兴宁市
+
+
+
+
+
+ 惠州市
+
+
+
+
+
+
+
+ 汕尾市
+
+
+
+
汕尾市
+
城区
+
海丰县
+
陆河县
+
陆丰市
+
+
+
+
+
+ 东莞市
+
+
+
+
+
+
+
+ 中山市
+
+
+
+
+
+
+
+ 江门市
+
+
+
+
江门市
+
蓬江区
+
江海区
+
新会区
+
台山市
+
开平市
+
鹤山市
+
恩平市
+
+
+
+
+
+ 阳江市
+
+
+
+
+
+
+
+ 湛江市
+
+
+
+
+
+
+
+ 茂名市
+
+
+
+
茂名市
+
茂南区
+
茂港区
+
电白县
+
高州市
+
化州市
+
信宜市
+
+
+
+
+
+ 肇庆市
+
+
+
+
肇庆市
+
端州区
+
鼎湖区
+
广宁县
+
怀集县
+
封开县
+
德庆县
+
高要市
+
四会市
+
高新区
+
新区
+
+
+
+
+
+ 清远市
+
+
+
+
+
+
+
+ 潮州市
+
+
+
+
潮州市
+
湘桥区
+
潮安县
+
饶平县
+
+
+
+
+
+ 揭阳市
+
+
+
+
揭阳市
+
榕城区
+
揭东区
+
揭西县
+
惠来县
+
普宁县
+
+
+
+
+
+ 云浮市
+
+
+
+
云浮市
+
云城区
+
新兴县
+
郁南县
+
云安县
+
罗定市
+
+
+
+
+
+ 顺德市
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/one-stop/select-region/select-region.component.ts b/src/app/one-stop/select-region/select-region.component.ts
new file mode 100644
index 0000000..ff1aa1f
--- /dev/null
+++ b/src/app/one-stop/select-region/select-region.component.ts
@@ -0,0 +1,12 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-select-region',
+ templateUrl: './select-region.component.html',
+ styleUrls: ['./select-region.component.css']
+})
+export class SelectRegionComponent implements OnInit {
+ constructor() {}
+
+ ngOnInit() {}
+}
diff --git a/src/app/one-stop/select-region/select-region.module.ts b/src/app/one-stop/select-region/select-region.module.ts
new file mode 100644
index 0000000..9b24624
--- /dev/null
+++ b/src/app/one-stop/select-region/select-region.module.ts
@@ -0,0 +1,18 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
+
+
+import { SelectRegionRoutingModule } from './select-region-routing.module';
+import { SelectRegionComponent } from './select-region.component';
+
+
+@NgModule({
+ imports: [
+ CommonModule,
+ SelectRegionRoutingModule,
+ NgbModule.forRoot(),
+ ],
+ declarations: [SelectRegionComponent]
+})
+export class SelectRegionModule {}
diff --git a/src/app/one-stop/select/select-routing.module.ts b/src/app/one-stop/select/select-routing.module.ts
new file mode 100644
index 0000000..c3966d4
--- /dev/null
+++ b/src/app/one-stop/select/select-routing.module.ts
@@ -0,0 +1,15 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+import { SelectComponent } from './select.component';
+
+const routes: Routes = [
+ {
+ path: '', component: SelectComponent,
+ }
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule]
+})
+export class SelectRoutingModule {}
diff --git a/src/app/one-stop/select/select.component.css b/src/app/one-stop/select/select.component.css
new file mode 100644
index 0000000..459b461
--- /dev/null
+++ b/src/app/one-stop/select/select.component.css
@@ -0,0 +1,117 @@
+.content-block {
+ padding: 15px;
+ margin-bottom: 8px;
+ background: #ffffff;
+ box-shadow: 0 2px 10px 0 rgba(0,0,0,.1);
+}
+.post {
+ margin: 10px 1px;
+}
+.post h2 {
+ margin-bottom: 15px;
+ font-size: 24px;
+ line-height: 140%;
+}
+.post-link a {
+ color: black;
+}
+@media(max-width: 768px){
+ .list-cate{
+ display:none;
+ }
+}
+.list-ul li{
+ padding: 0px 0px 5px 5px;
+ width: 24.3%;
+ float: left;
+ text-align: center;
+}
+.list-ul li a {
+ background: #fff;
+ display: block;
+ text-align: center;
+ color: #666;
+ font-size: 13px;
+ padding: 8px 0;
+}
+.list-ul li img{
+ display: block;
+ width: 60%;
+ border: 0;
+ margin: 0 auto 2px auto;
+}
+.service-table tr td{
+ background-image: url(../../../assets/images/service-icon.png);
+ background-position: 8px center;
+ background-repeat: no-repeat;
+ padding: 9px 15px 9px 31px;
+ background-size: 16px;
+}
+.container {
+ padding-right: 8px;
+ padding-left: 8px;
+}
+.select-title{
+ font-size: 15px;
+}
+.select-title .city{
+ float:right;
+}
+.select-city .layui-show{
+ font-size: 14px;
+}
+.layui-colla-title{
+ font-size: 15px;
+ margin: 0;
+ height:auto;
+}
+.select-city-title{
+ padding: 0 15px 0 20px;
+ background-color:white;
+}
+.city-a{
+ margin: 0 1.8% 2% 1.9%;
+ width: 28.5%;
+}
+.yzs-apply-a{
+ background-color:white;
+ color: #009688;
+ border-color: #009688;
+ padding: 0 50px;
+}
+.yzs-detail-p-image{
+ width:16px;
+ margin-right: 8px;
+}
+.yzs-title-image{
+ width:21px;
+ margin-right: 8px;
+}
+.yzs-select-city-icon{
+ margin-left: 5px;
+}
+.service-table a{
+ color: rgb(102, 102, 102);
+}
+.nav-tabs .nav-link.active {
+ color: #495057;
+ background-color: #fff;
+ border-color: #dee2e6 #dee2e6 #fff;
+}
+a {
+ color:#009688;
+}
+a:hover {
+ text-decoration: none;
+}
+.layui-colla-content{
+ display: block;
+}
+.city-a{
+ color:#555;
+}
+.layui-colla-item {
+ border-top-width: 1px;
+ border-top-style: solid;
+ border-color: #e6e6e6;
+}
\ No newline at end of file
diff --git a/src/app/one-stop/select/select.component.html b/src/app/one-stop/select/select.component.html
new file mode 100644
index 0000000..344d5df
--- /dev/null
+++ b/src/app/one-stop/select/select.component.html
@@ -0,0 +1,30 @@
+
+ 请选择要办理的事项:
+ 广东省
+
+
+
diff --git a/src/app/one-stop/select/select.component.ts b/src/app/one-stop/select/select.component.ts
new file mode 100644
index 0000000..46bfd90
--- /dev/null
+++ b/src/app/one-stop/select/select.component.ts
@@ -0,0 +1,12 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-select',
+ templateUrl: './select.component.html',
+ styleUrls: ['./select.component.css']
+})
+export class SelectComponent implements OnInit {
+ constructor() {}
+
+ ngOnInit() {}
+}
diff --git a/src/app/one-stop/select/select.module.ts b/src/app/one-stop/select/select.module.ts
new file mode 100644
index 0000000..48985db
--- /dev/null
+++ b/src/app/one-stop/select/select.module.ts
@@ -0,0 +1,16 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+
+
+import { SelectRoutingModule } from './select-routing.module';
+import { SelectComponent } from './select.component';
+
+
+@NgModule({
+ imports: [
+ CommonModule,
+ SelectRoutingModule,
+ ],
+ declarations: [SelectComponent]
+})
+export class SelectModule {}
diff --git a/src/app/shared/header/header.component.css b/src/app/shared/header/header.component.css
new file mode 100644
index 0000000..a93d83b
--- /dev/null
+++ b/src/app/shared/header/header.component.css
@@ -0,0 +1,60 @@
+.header{
+ background-color:#393D49;
+ -webkit-animation-duration: 1s;
+ animation-duration: 1s;
+}
+.header .layui-nav .layui-nav-item[mobile]{display: none;}
+@media screen and (max-width: 750px) {
+ .header .layui-nav .layui-nav-item[pc]{
+ display: none;
+ }
+ .header .layui-nav .layui-nav-item[mobile]{
+ display: inline-block;
+ }
+}
+.layui-nav {
+ padding: 0;
+}
+.layui-nav * {
+ font-size: 15px;
+}
+@media screen and (min-width: 575px) {
+ .layui-nav .layui-nav-item {
+ width: 11%;
+ }
+}
+.layui-nav .layui-nav-item a {
+ padding: 0 5px;
+ text-align: center;
+}
+@media screen and (max-width: 780px) {
+ .layui-nav * {
+ font-size: 14px;
+ }
+}
+@media screen and (max-width: 650px) {
+ .layui-nav * {
+ font-size: 12px;
+ }
+}
+@media screen and (max-width: 430px){
+ .layui-nav .layui-nav-item {
+ line-height: 45px;
+ }
+ .back img{
+ width:28px;
+ }
+ .back {
+ top:-8px;
+ }
+}
+@media screen and (max-width: 1000px) {
+ .layui-nav .layui-nav-item{
+ line-height:50px;
+ }
+}
+@media screen and (max-width: 580px) {
+ .layui-nav .layui-nav-item{
+ line-height:40px;
+ }
+}
\ No newline at end of file
diff --git a/src/app/shared/header/header.component.html b/src/app/shared/header/header.component.html
new file mode 100644
index 0000000..a38c274
--- /dev/null
+++ b/src/app/shared/header/header.component.html
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/src/app/shared/header/header.component.ts b/src/app/shared/header/header.component.ts
new file mode 100644
index 0000000..8145bc1
--- /dev/null
+++ b/src/app/shared/header/header.component.ts
@@ -0,0 +1,14 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-header',
+ templateUrl: 'header.component.html',
+ styleUrls: ['header.component.css']
+})
+export class HeaderComponent implements OnInit {
+ constructor() {
+ }
+
+ ngOnInit() {}
+
+}
diff --git a/src/app/shared/header/header.module.ts b/src/app/shared/header/header.module.ts
new file mode 100644
index 0000000..a2f9b67
--- /dev/null
+++ b/src/app/shared/header/header.module.ts
@@ -0,0 +1,12 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { RouterModule } from '@angular/router';
+
+import { HeaderComponent } from './header.component';
+
+@NgModule({
+ imports: [CommonModule, RouterModule],
+ declarations: [HeaderComponent],
+ exports: [HeaderComponent]
+})
+export class HeaderModule {}
diff --git a/src/app/shared/index.ts b/src/app/shared/index.ts
new file mode 100644
index 0000000..cb8dabc
--- /dev/null
+++ b/src/app/shared/index.ts
@@ -0,0 +1 @@
+export * from './header/header.module';
\ No newline at end of file
diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts
new file mode 100644
index 0000000..3612073
--- /dev/null
+++ b/src/environments/environment.prod.ts
@@ -0,0 +1,3 @@
+export const environment = {
+ production: true
+};
diff --git a/src/environments/environment.ts b/src/environments/environment.ts
new file mode 100644
index 0000000..b7f639a
--- /dev/null
+++ b/src/environments/environment.ts
@@ -0,0 +1,8 @@
+// The file contents for the current environment will overwrite these during build.
+// The build system defaults to the dev environment which uses `environment.ts`, but if you do
+// `ng build --env=prod` then `environment.prod.ts` will be used instead.
+// The list of which env maps to which file can be found in `.angular-cli.json`.
+
+export const environment = {
+ production: false
+};
diff --git a/src/favicon.ico b/src/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..8081c7ceaf2be08bf59010158c586170d9d2d517
GIT binary patch
literal 5430
zcmc(je{54#6vvCoAI3i*G5%$U7!sA3wtMZ$fH6V9C`=eXGJb@R1%(I_{vnZtpD{6n
z5Pl{DmxzBDbrB>}`90e12m8T*36WoeDLA&SD_hw{H^wM!cl_RWcVA!I+x87ee975;
z@4kD^=bYPn&pmG@(+JZ`rqQEKxW<}RzhW}I!|ulN=fmjVi@x{p$cC`)5$a!)X&U+blKNvN5tg=uLvuLnuqRM;Yc*swiexsoh#XPNu{9F#c`G
zQLe{yWA(Y6(;>y|-efAy11k<09(@Oo1B2@0`PtZSkqK&${
zgEY}`W@t{%?9u5rF?}Y7OL{338l*JY#P!%MVQY@oqnItpZ}?s
z!r?*kwuR{A@jg2Chlf0^{q*>8n5Ir~YWf*wmsh7B5&EpHfd5@xVaj&gqsdui^spyL
zB|kUoblGoO7G(MuKTfa9?pGH0@QP^b#!lM1yHWLh*2iq#`C1TdrnO-d#?Oh@XV2HK
zKA{`eo{--^K&MW66Lgsktfvn#cCAc*(}qsfhrvOjMGLE?`dHVipu1J3Kgr%g?cNa8
z)pkmC8DGH~fG+dlrp(5^-QBeEvkOvv#q7MBVLtm2oD^$lJZx--_=K&Ttd=-krx(Bb
zcEoKJda@S!%%@`P-##$>*u%T*mh+QjV@)Qa=Mk1?#zLk+M4tIt%}wagT{5J%!tXAE;r{@=bb%nNVxvI+C+$t?!VJ@0d@HIyMJTI{vEw0Ul
ze(ha!e&qANbTL1ZneNl45t=#Ot??C0MHjjgY8%*mGisN|S6%g3;Hlx#fMNcL<87MW
zZ>6moo1YD?P!fJ#Jb(4)_cc50X5n0KoDYfdPoL^iV`k&o{LPyaoqMqk92wVM#_O0l
z09$(A-D+gVIlq4TA&{1T@BsUH`Bm=r#l$Z51J-U&F32+hfUP-iLo=jg7Xmy+WLq6_tWv&`wDlz#`&)Jp~iQf
zZP)tu>}pIIJKuw+$&t}GQuqMd%Z>0?t%&BM&Wo^4P^Y
z)c6h^f2R>X8*}q|bblAF?@;%?2>$y+cMQbN{X$)^R>vtNq_5AB|0N5U*d^T?X9{xQnJYeU{
zoZL#obI;~Pp95f1`%X3D$Mh*4^?O?IT~7HqlWguezmg?Ybq|7>qQ(@pPHbE9V?f|(
z+0xo!#m@Np9PljsyxBY-UA*{U*la#8Wz2sO|48_-5t8%_!n?S$zlGe+NA%?vmxjS-
zHE5O3ZarU=X}$7>;Okp(UWXJxI%G_J-@IH;%5#Rt$(WUX?6*Ux!IRd$dLP6+SmPn=
z8zjm4jGjN772R{FGkXwcNv8GBcZI#@Y2m{RNF_w8(Z%^A*!bS*!}s6sh*NnURytky
humW;*g7R+&|Ledvc-
+
+
+
+
+
+ cms
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main.ts b/src/main.ts
new file mode 100644
index 0000000..91ec6da
--- /dev/null
+++ b/src/main.ts
@@ -0,0 +1,12 @@
+import { enableProdMode } from '@angular/core';
+import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
+
+import { AppModule } from './app/app.module';
+import { environment } from './environments/environment';
+
+if (environment.production) {
+ enableProdMode();
+}
+
+platformBrowserDynamic().bootstrapModule(AppModule)
+ .catch(err => console.log(err));
diff --git a/src/polyfills.ts b/src/polyfills.ts
new file mode 100644
index 0000000..d68672f
--- /dev/null
+++ b/src/polyfills.ts
@@ -0,0 +1,66 @@
+/**
+ * This file includes polyfills needed by Angular and is loaded before the app.
+ * You can add your own extra polyfills to this file.
+ *
+ * This file is divided into 2 sections:
+ * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
+ * 2. Application imports. Files imported after ZoneJS that should be loaded before your main
+ * file.
+ *
+ * The current setup is for so-called "evergreen" browsers; the last versions of browsers that
+ * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
+ * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
+ *
+ * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html
+ */
+
+/***************************************************************************************************
+ * BROWSER POLYFILLS
+ */
+
+/** IE9, IE10 and IE11 requires all of the following polyfills. **/
+// import 'core-js/es6/symbol';
+// import 'core-js/es6/object';
+// import 'core-js/es6/function';
+// import 'core-js/es6/parse-int';
+// import 'core-js/es6/parse-float';
+// import 'core-js/es6/number';
+// import 'core-js/es6/math';
+// import 'core-js/es6/string';
+// import 'core-js/es6/date';
+// import 'core-js/es6/array';
+// import 'core-js/es6/regexp';
+// import 'core-js/es6/map';
+// import 'core-js/es6/weak-map';
+// import 'core-js/es6/set';
+
+/** IE10 and IE11 requires the following for NgClass support on SVG elements */
+// import 'classlist.js'; // Run `npm install --save classlist.js`.
+
+/** IE10 and IE11 requires the following for the Reflect API. */
+// import 'core-js/es6/reflect';
+
+
+/** Evergreen browsers require these. **/
+// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.
+import 'core-js/es7/reflect';
+
+
+/**
+ * Required to support Web Animations `@angular/platform-browser/animations`.
+ * Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation
+ **/
+// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
+
+
+
+/***************************************************************************************************
+ * Zone JS is required by default for Angular itself.
+ */
+import 'zone.js/dist/zone'; // Included with Angular CLI.
+
+
+
+/***************************************************************************************************
+ * APPLICATION IMPORTS
+ */
diff --git a/src/styles.css b/src/styles.css
new file mode 100644
index 0000000..f67703b
--- /dev/null
+++ b/src/styles.css
@@ -0,0 +1,38 @@
+body {
+ color: rgb(102, 102, 102);
+ background: #eee;
+ font: 0.7rem "Microsoft YaHei", 微软雅黑, "Lantinghei SC", "Open Sans", Arial, "Hiragino Sans GB", STHeiti, "WenQuanYi Micro Hei", SimSun, sans-serif;
+}
+body,
+html {
+ width: 100%;
+ height: 100%;
+ font-size: 37px;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ user-select: none;
+}
+a:hover {
+ text-decoration:none;
+}
+*{zoom:1}
+a:hover{
+ cursor: pointer;
+}
+a{
+ color: #009688;
+}
+.nav-tabs .nav-link.active {
+ color: #009688;
+ border-bottom: 2px solid #5FB878;
+}
+.nav-tabs .nav-link {
+ color: #666666;
+}
+@media screen and (max-width: 420px) {
+ .nav li a.disabled{
+ padding:10px 0;
+ }
+}
\ No newline at end of file
diff --git a/src/test.ts b/src/test.ts
new file mode 100644
index 0000000..cd612ee
--- /dev/null
+++ b/src/test.ts
@@ -0,0 +1,32 @@
+// This file is required by karma.conf.js and loads recursively all the .spec and framework files
+
+import 'zone.js/dist/long-stack-trace-zone';
+import 'zone.js/dist/proxy.js';
+import 'zone.js/dist/sync-test';
+import 'zone.js/dist/jasmine-patch';
+import 'zone.js/dist/async-test';
+import 'zone.js/dist/fake-async-test';
+import { getTestBed } from '@angular/core/testing';
+import {
+ BrowserDynamicTestingModule,
+ platformBrowserDynamicTesting
+} from '@angular/platform-browser-dynamic/testing';
+
+// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any.
+declare const __karma__: any;
+declare const require: any;
+
+// Prevent Karma from running prematurely.
+__karma__.loaded = function () {};
+
+// First, initialize the Angular testing environment.
+getTestBed().initTestEnvironment(
+ BrowserDynamicTestingModule,
+ platformBrowserDynamicTesting()
+);
+// Then we find all the tests.
+const context = require.context('./', true, /\.spec\.ts$/);
+// And load the modules.
+context.keys().map(context);
+// Finally, start Karma to run the tests.
+__karma__.start();
diff --git a/src/tsconfig.app.json b/src/tsconfig.app.json
new file mode 100644
index 0000000..b3e4282
--- /dev/null
+++ b/src/tsconfig.app.json
@@ -0,0 +1,12 @@
+{
+ "extends": "../tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../out-tsc/app",
+ "baseUrl": "./",
+ "module": "es2015"
+ },
+ "exclude": [
+ "test.ts",
+ "**/*.spec.ts"
+ ]
+}
diff --git a/src/tsconfig.spec.json b/src/tsconfig.spec.json
new file mode 100644
index 0000000..63d89ff
--- /dev/null
+++ b/src/tsconfig.spec.json
@@ -0,0 +1,20 @@
+{
+ "extends": "../tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../out-tsc/spec",
+ "baseUrl": "./",
+ "module": "commonjs",
+ "target": "es5",
+ "types": [
+ "jasmine",
+ "node"
+ ]
+ },
+ "files": [
+ "test.ts"
+ ],
+ "include": [
+ "**/*.spec.ts",
+ "**/*.d.ts"
+ ]
+}
diff --git a/src/typings.d.ts b/src/typings.d.ts
new file mode 100644
index 0000000..ef5c7bd
--- /dev/null
+++ b/src/typings.d.ts
@@ -0,0 +1,5 @@
+/* SystemJS module definition */
+declare var module: NodeModule;
+interface NodeModule {
+ id: string;
+}
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..a6c016b
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,19 @@
+{
+ "compileOnSave": false,
+ "compilerOptions": {
+ "outDir": "./dist/out-tsc",
+ "sourceMap": true,
+ "declaration": false,
+ "moduleResolution": "node",
+ "emitDecoratorMetadata": true,
+ "experimentalDecorators": true,
+ "target": "es5",
+ "typeRoots": [
+ "node_modules/@types"
+ ],
+ "lib": [
+ "es2017",
+ "dom"
+ ]
+ }
+}
diff --git a/tslint.json b/tslint.json
new file mode 100644
index 0000000..a2e30ef
--- /dev/null
+++ b/tslint.json
@@ -0,0 +1,144 @@
+{
+ "rulesDirectory": [
+ "node_modules/codelyzer"
+ ],
+ "rules": {
+ "arrow-return-shorthand": true,
+ "callable-types": true,
+ "class-name": true,
+ "comment-format": [
+ true,
+ "check-space"
+ ],
+ "curly": true,
+ "deprecation": {
+ "severity": "warn"
+ },
+ "eofline": true,
+ "forin": true,
+ "import-blacklist": [
+ true,
+ "rxjs",
+ "rxjs/Rx"
+ ],
+ "import-spacing": true,
+ "indent": [
+ true,
+ "spaces"
+ ],
+ "interface-over-type-literal": true,
+ "label-position": true,
+ "max-line-length": [
+ true,
+ 140
+ ],
+ "member-access": false,
+ "member-ordering": [
+ true,
+ {
+ "order": [
+ "static-field",
+ "instance-field",
+ "static-method",
+ "instance-method"
+ ]
+ }
+ ],
+ "no-arg": true,
+ "no-bitwise": true,
+ "no-console": [
+ true,
+ "debug",
+ "info",
+ "time",
+ "timeEnd",
+ "trace"
+ ],
+ "no-construct": true,
+ "no-debugger": true,
+ "no-duplicate-super": true,
+ "no-empty": false,
+ "no-empty-interface": true,
+ "no-eval": true,
+ "no-inferrable-types": [
+ true,
+ "ignore-params"
+ ],
+ "no-misused-new": true,
+ "no-non-null-assertion": true,
+ "no-shadowed-variable": true,
+ "no-string-literal": false,
+ "no-string-throw": true,
+ "no-switch-case-fall-through": true,
+ "no-trailing-whitespace": true,
+ "no-unnecessary-initializer": true,
+ "no-unused-expression": true,
+ "no-use-before-declare": true,
+ "no-var-keyword": true,
+ "object-literal-sort-keys": false,
+ "one-line": [
+ true,
+ "check-open-brace",
+ "check-catch",
+ "check-else",
+ "check-whitespace"
+ ],
+ "prefer-const": true,
+ "quotemark": [
+ true,
+ "single"
+ ],
+ "radix": true,
+ "semicolon": [
+ true,
+ "always"
+ ],
+ "triple-equals": [
+ true,
+ "allow-null-check"
+ ],
+ "typedef-whitespace": [
+ true,
+ {
+ "call-signature": "nospace",
+ "index-signature": "nospace",
+ "parameter": "nospace",
+ "property-declaration": "nospace",
+ "variable-declaration": "nospace"
+ }
+ ],
+ "typeof-compare": true,
+ "unified-signatures": true,
+ "variable-name": false,
+ "whitespace": [
+ true,
+ "check-branch",
+ "check-decl",
+ "check-operator",
+ "check-separator",
+ "check-type"
+ ],
+ "directive-selector": [
+ true,
+ "attribute",
+ "app",
+ "camelCase"
+ ],
+ "component-selector": [
+ true,
+ "element",
+ "app",
+ "kebab-case"
+ ],
+ "no-output-on-prefix": true,
+ "use-input-property-decorator": true,
+ "use-output-property-decorator": true,
+ "use-host-property-decorator": true,
+ "no-input-rename": true,
+ "no-output-rename": true,
+ "use-life-cycle-interface": true,
+ "use-pipe-transform-interface": true,
+ "component-class-suffix": true,
+ "directive-class-suffix": true
+ }
+}