├── .angular-cli.json
├── .editorconfig
├── .gitignore
├── README.md
├── e2e
├── app.e2e-spec.ts
├── app.po.ts
└── tsconfig.e2e.json
├── karma.conf.js
├── package.json
├── protractor.conf.js
├── src
├── app
│ ├── app.component.css
│ ├── app.component.html
│ ├── app.component.spec.ts
│ ├── app.component.ts
│ ├── app.module.ts
│ ├── app.routes.ts
│ ├── charts
│ │ ├── charts.component.css
│ │ ├── charts.component.html
│ │ ├── charts.component.ts
│ │ └── charts.module.ts
│ ├── citys
│ │ ├── citys.component.css
│ │ ├── citys.component.html
│ │ ├── citys.component.spec.ts
│ │ ├── citys.component.ts
│ │ └── citys.module.ts
│ ├── common
│ │ ├── ajax.ts
│ │ ├── car.ts
│ │ └── public-data.ts
│ ├── components
│ │ ├── my-breadcrumb
│ │ │ └── my-breadcrumb.ts
│ │ ├── my-gotop
│ │ │ └── my-gotop.ts
│ │ └── my-tag
│ │ │ └── my-tag.ts
│ ├── data-table
│ │ ├── add.html
│ │ ├── add.ts
│ │ ├── data-table.component.css
│ │ ├── data-table.component.html
│ │ ├── data-table.component.ts
│ │ ├── data-table.module.ts
│ │ ├── data-table.service.ts
│ │ ├── details.html
│ │ └── details.ts
│ ├── directives
│ │ └── click-outside
│ │ │ └── click-outside.directive.ts
│ ├── form-primeng
│ │ ├── form-primeng.component.css
│ │ ├── form-primeng.component.html
│ │ ├── form-primeng.component.ts
│ │ └── form-primeng.module.ts
│ ├── icon
│ │ ├── icon.component.css
│ │ ├── icon.component.html
│ │ ├── icon.component.spec.ts
│ │ ├── icon.component.ts
│ │ └── icon.module.ts
│ ├── input
│ │ ├── input.component.css
│ │ ├── input.component.html
│ │ ├── input.component.ts
│ │ └── input.module.ts
│ ├── login
│ │ ├── login.component.css
│ │ ├── login.component.html
│ │ ├── login.component.ts
│ │ └── login.service.ts
│ ├── ng-form
│ │ ├── ng-form.component.css
│ │ ├── ng-form.component.html
│ │ ├── ng-form.component.ts
│ │ └── ng-form.module.ts
│ ├── not-found.component.ts
│ ├── rxjs-all.ts
│ ├── tree
│ │ ├── tree.component.css
│ │ ├── tree.component.html
│ │ ├── tree.component.ts
│ │ └── tree.module.ts
│ ├── upload
│ │ ├── upload.component.css
│ │ ├── upload.component.html
│ │ ├── upload.component.spec.ts
│ │ ├── upload.component.ts
│ │ └── upload.module.ts
│ └── workspace
│ │ ├── workspace.component.css
│ │ ├── workspace.component.html
│ │ ├── workspace.component.ts
│ │ ├── workspace.module.ts
│ │ ├── workspace.routes.ts
│ │ └── workspace.service.ts
├── assets
│ ├── .gitkeep
│ ├── css
│ │ ├── font-awesome.css
│ │ ├── font-awesome.css.map
│ │ └── font-awesome.min.css
│ ├── data.json
│ ├── data
│ │ ├── new.json
│ │ ├── tree.json
│ │ └── user-menu.json
│ ├── fonts
│ │ ├── FontAwesome.otf
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.svg
│ │ ├── fontawesome-webfont.ttf
│ │ ├── fontawesome-webfont.woff
│ │ └── fontawesome-webfont.woff2
│ ├── image
│ │ ├── 404img.png
│ │ ├── bg.png
│ │ ├── favicon.ico
│ │ ├── lock.png
│ │ ├── logo.png
│ │ ├── md
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ ├── 3.png
│ │ │ └── 4.png
│ │ ├── ng.png
│ │ ├── person.png
│ │ ├── side-brand.png
│ │ ├── side-ct.png
│ │ ├── side-menu.png
│ │ ├── side-shop.png
│ │ ├── side-system.png
│ │ ├── side-tags.png
│ │ ├── side-user.png
│ │ ├── titlebg.png
│ │ ├── user.png
│ │ └── warn.png
│ ├── industries.json
│ ├── jquery.d.ts
│ ├── login.json
│ └── resources
│ │ ├── images
│ │ ├── color.png
│ │ ├── hue.png
│ │ ├── line.gif
│ │ ├── loading.gif
│ │ └── password-meter.png
│ │ ├── primeng.css
│ │ ├── primeng.min.css
│ │ └── themes
│ │ ├── _theme.scss
│ │ ├── bootstrap
│ │ └── theme.css
│ │ ├── cruze
│ │ ├── theme.css
│ │ ├── theme.css.map
│ │ └── theme.scss
│ │ ├── cupertino
│ │ ├── theme.css
│ │ ├── theme.css.map
│ │ └── theme.scss
│ │ ├── darkness
│ │ ├── theme.css
│ │ ├── theme.css.map
│ │ └── theme.scss
│ │ ├── flick
│ │ ├── theme.css
│ │ ├── theme.css.map
│ │ └── theme.scss
│ │ ├── home
│ │ ├── theme.css
│ │ ├── theme.css.map
│ │ └── theme.scss
│ │ ├── kasper
│ │ ├── theme.css
│ │ ├── theme.css.map
│ │ └── theme.scss
│ │ ├── lightness
│ │ ├── theme.css
│ │ ├── theme.css.map
│ │ └── theme.scss
│ │ ├── ludvig
│ │ ├── theme.css
│ │ ├── theme.css.map
│ │ └── theme.scss
│ │ ├── my-flick
│ │ ├── fonts
│ │ │ ├── roboto-v15-latin-regular.eot
│ │ │ ├── roboto-v15-latin-regular.svg
│ │ │ ├── roboto-v15-latin-regular.ttf
│ │ │ ├── roboto-v15-latin-regular.woff
│ │ │ └── roboto-v15-latin-regular.woff2
│ │ ├── images
│ │ │ ├── icons_16.png
│ │ │ ├── slider_handles.png
│ │ │ ├── slider_handles@2x.png
│ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png
│ │ │ ├── ui-bg_flat_75_ffffff_40x100.png
│ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png
│ │ │ ├── ui-bg_glass_65_ffffff_1x400.png
│ │ │ ├── ui-bg_glass_75_dadada_1x400.png
│ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png
│ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png
│ │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png
│ │ │ ├── ui-icons_222222_256x240.png
│ │ │ ├── ui-icons_2e83ff_256x240.png
│ │ │ ├── ui-icons_454545_256x240.png
│ │ │ ├── ui-icons_cd0a0a_256x240.png
│ │ │ └── ui-icons_ffffff_256x240.png
│ │ ├── theme.css
│ │ ├── theme.css.map
│ │ └── theme.scss
│ │ ├── omega
│ │ ├── fonts
│ │ │ ├── roboto-v15-latin-regular.eot
│ │ │ ├── roboto-v15-latin-regular.svg
│ │ │ ├── roboto-v15-latin-regular.ttf
│ │ │ ├── roboto-v15-latin-regular.woff
│ │ │ └── roboto-v15-latin-regular.woff2
│ │ ├── images
│ │ │ ├── icons_16.png
│ │ │ ├── slider_handles.png
│ │ │ ├── slider_handles@2x.png
│ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png
│ │ │ ├── ui-bg_flat_75_ffffff_40x100.png
│ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png
│ │ │ ├── ui-bg_glass_65_ffffff_1x400.png
│ │ │ ├── ui-bg_glass_75_dadada_1x400.png
│ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png
│ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png
│ │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png
│ │ │ ├── ui-icons_222222_256x240.png
│ │ │ ├── ui-icons_2e83ff_256x240.png
│ │ │ ├── ui-icons_454545_256x240.png
│ │ │ ├── ui-icons_cd0a0a_256x240.png
│ │ │ └── ui-icons_ffffff_256x240.png
│ │ ├── theme.css
│ │ ├── theme.css.map
│ │ └── theme.scss
│ │ ├── pepper-grinder
│ │ ├── theme.css
│ │ ├── theme.css.map
│ │ └── theme.scss
│ │ ├── redmond
│ │ ├── theme.css
│ │ ├── theme.css.map
│ │ └── theme.scss
│ │ ├── rocket
│ │ ├── theme.css
│ │ ├── theme.css.map
│ │ └── theme.scss
│ │ ├── south-street
│ │ ├── theme.css
│ │ ├── theme.css.map
│ │ └── theme.scss
│ │ ├── start
│ │ ├── theme.css
│ │ ├── theme.css.map
│ │ └── theme.scss
│ │ ├── trontastic
│ │ ├── theme.css
│ │ ├── theme.css.map
│ │ └── theme.scss
│ │ └── voclain
│ │ ├── theme.css
│ │ ├── theme.css.map
│ │ └── theme.scss
├── environments
│ ├── environment.prod.ts
│ └── environment.ts
├── favicon.ico
├── index.html
├── main.ts
├── polyfills.ts
├── styles.css
├── test.ts
├── theme-element.css
├── tsconfig.app.json
├── tsconfig.spec.json
└── typings.d.ts
├── tsconfig.json
└── tslint.json
/.angular-cli.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
3 | "project": {
4 | "name": "angular5-primeng"
5 | },
6 | "apps": [
7 | {
8 | "root": "src",
9 | "outDir": "dist",
10 | "assets": [
11 | "assets",
12 | "favicon.ico"
13 | ],
14 | "index": "index.html",
15 | "main": "main.ts",
16 | "polyfills": "polyfills.ts",
17 | "test": "test.ts",
18 | "tsconfig": "tsconfig.app.json",
19 | "testTsconfig": "tsconfig.spec.json",
20 | "prefix": "app",
21 | "styles": [
22 | "./assets/resources/themes/my-flick/theme.css",
23 | "./assets/resources/primeng.css",
24 | "../node_modules/normalize.css/normalize.css",
25 | "assets/css/font-awesome.min.css",
26 | "../node_modules/quill/dist/quill.core.css",
27 | "../node_modules/quill/dist/quill.snow.css",
28 | "../node_modules/ngx-toastr/toastr.css",
29 | "../node_modules/element-angular/theme/index.css",
30 | "theme-element.css",
31 | "styles.css"
32 | ],
33 | "scripts": [
34 | "../node_modules/chart.js/dist/Chart.js",
35 | "../node_modules/quill/dist/quill.js"
36 | ],
37 | "environmentSource": "environments/environment.ts",
38 | "environments": {
39 | "dev": "environments/environment.ts",
40 | "prod": "environments/environment.prod.ts"
41 | }
42 | }
43 | ],
44 | "e2e": {
45 | "protractor": {
46 | "config": "./protractor.conf.js"
47 | }
48 | },
49 | "lint": [
50 | {
51 | "project": "src/tsconfig.app.json"
52 | },
53 | {
54 | "project": "src/tsconfig.spec.json"
55 | },
56 | {
57 | "project": "e2e/tsconfig.e2e.json"
58 | }
59 | ],
60 | "test": {
61 | "karma": {
62 | "config": "./karma.conf.js"
63 | }
64 | },
65 | "defaults": {
66 | "styleExt": "css",
67 | "component": {}
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # Editor configuration, see http://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | indent_style = space
7 | indent_size = 2
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.md]
12 | max_line_length = off
13 | trim_trailing_whitespace = false
14 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See http://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # compiled output
4 | /dist
5 | /tmp
6 | /out-tsc
7 |
8 | # dependencies
9 | /node_modules
10 |
11 | # IDEs and editors
12 | /.idea
13 | .project
14 | .classpath
15 | .c9/
16 | *.launch
17 | .settings/
18 | *.sublime-workspace
19 |
20 | # IDE - VSCode
21 | .vscode/*
22 | !.vscode/settings.json
23 | !.vscode/tasks.json
24 | !.vscode/launch.json
25 | !.vscode/extensions.json
26 |
27 | # misc
28 | /.sass-cache
29 | /connect.lock
30 | /coverage
31 | /libpeerconnection.log
32 | npm-debug.log
33 | testem.log
34 | /typings
35 |
36 | # e2e
37 | /e2e/*.js
38 | /e2e/*.map
39 |
40 | # System Files
41 | .DS_Store
42 | Thumbs.db
43 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # angular4-primeng-admin
2 |
3 | 项目地址预览地址:http://1.myhbb.applinzi.com/dist1/login
4 |
5 | 自己克隆他的官网代码布置的国内文档,国外的有点慢:http://1.backapp.applinzi.com/dist/#/inputtext
6 |
7 | 项目介绍:项目后台模板,展示了一个真实的项目模板,从零到bulid的过程,以及primeng的坑 ,
8 |
9 | 1,项目暂时不去展示ng4的一些组件,主要展示 primeng 的用法以及 ng4的简单用法,针对刚学习ng4的同学
10 |
11 | 2,项目 , 展示了真实的增删改查 ,分页 ,等,数据是json格式,但是该写的都写了只差一个正确的接口
12 |
13 | 3,项目 展示了 登录 以及工作区域 子路由的配置关系
14 |
15 | 4,项目 展示了 若何把http封装成 一个公共的 ajax
16 |
17 | 5,项目展示了 primeng 的引用 以及 他的常用组件的用法
18 |
19 | 6,项目展示了 primeng 的 皮肤制作(都说要接近国情)
20 |
21 | 7,当你用ng4开发后台的时候,不知道该选用什么UI,那么不妨看看 [primeNg](https://www.primefaces.org/primeng/#/)
22 |
23 | 项目目前基于
24 |
25 | [Angular5](https://angular.cn/docs/ts/latest/quickstart.html) [Angular CLI]
26 |
27 | [Angular CLI](https://cli.angular.io/) [Angular CLI]
28 |
29 | [primeNg](https://www.primefaces.org/primeng/#/) version ` 5.0.0-rc.0`.[primeNg]
30 |
31 | [js-base64](https://github.com/dankogai/js-base64) version `2.1.5`.[js-base64]
32 |
33 | [ngx-uploader](https://github.com/jkuri/ngx-uploader) version `4.2.1`.[ngx-uploader]
34 |
35 | [ngx-toastr](https://github.com/scttcper/ngx-toastr) version `6.5.0`.[ngx-toastr]
36 |
37 | [项目预览](http://1.myhbb.applinzi.com/dist1/index.html) version `1.1.0`.
38 |
39 | ## 下载@angular/cli
40 |
41 | npm 下载 npm install -g @angular/cli
42 |
43 | 如果下载cli失败,(公司网有可能被抢了),`请尝试管理员身份运行CMD` 尝试下载
44 |
45 | npm install (下载依赖的时候cnpm快,但是直接下载的可能有问题,另外交大家一个,首先用npm下载,若果碰到有个文件下不下来报错,切换成cnpm跑完,那么就可以了)
46 |
47 | Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
48 |
49 |
50 | ## 效果图
51 |
52 | 
53 |
54 |
55 | #### 对于webstorm的朋友如果下下来抱tslint错误,可以把tslint关闭了
56 |
57 | 
58 | 
59 |
60 | ## 更新记录
61 | 2017/09/20
62 |
63 | 1,更新cli版本以及primeng版本
64 |
65 | 2,制作一个自己的皮肤
66 |
67 | 2018/01/01
68 |
69 | 1,更新cli版本以及primeng版本至5.0
70 |
71 |
72 | # 关于
73 |
74 |
75 | 大家若果感觉有帮助,可以帮忙点个star, O(∩_∩)O~~~~ ,我会继续更新的
76 |
77 | primeng 的群 163085042 欢迎大家来一起学习,我是个小白,我会积极回答大家的问题,一起学习ng以及primeng的 O(∩_∩)O~~
78 |
79 | 我的QQ 875670250
80 |
--------------------------------------------------------------------------------
/e2e/app.e2e-spec.ts:
--------------------------------------------------------------------------------
1 | import { AppPage } from './app.po';
2 |
3 | describe('angular4-primeng App', () => {
4 | let page: AppPage;
5 |
6 | beforeEach(() => {
7 | page = new AppPage();
8 | });
9 |
10 | it('should display welcome message', () => {
11 | page.navigateTo();
12 | expect(page.getParagraphText()).toEqual('Welcome to app!');
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/e2e/app.po.ts:
--------------------------------------------------------------------------------
1 | import { browser, by, element } from 'protractor';
2 |
3 | export class AppPage {
4 | navigateTo() {
5 | return browser.get('/');
6 | }
7 |
8 | getParagraphText() {
9 | return element(by.css('app-root h1')).getText();
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/e2e/tsconfig.e2e.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../out-tsc/e2e",
5 | "baseUrl": "./",
6 | "module": "commonjs",
7 | "target": "es5",
8 | "types": [
9 | "jasmine",
10 | "jasminewd2",
11 | "node"
12 | ]
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/karma.conf.js:
--------------------------------------------------------------------------------
1 | // Karma configuration file, see link for more information
2 | // https://karma-runner.github.io/1.0/config/configuration-file.html
3 |
4 | module.exports = function (config) {
5 | config.set({
6 | basePath: '',
7 | frameworks: ['jasmine', '@angular/cli'],
8 | plugins: [
9 | require('karma-jasmine'),
10 | require('karma-chrome-launcher'),
11 | require('karma-jasmine-html-reporter'),
12 | require('karma-coverage-istanbul-reporter'),
13 | require('@angular/cli/plugins/karma')
14 | ],
15 | client:{
16 | clearContext: false // leave Jasmine Spec Runner output visible in browser
17 | },
18 | coverageIstanbulReporter: {
19 | reports: [ 'html', 'lcovonly' ],
20 | fixWebpackSourcePaths: true
21 | },
22 | angularCli: {
23 | environment: 'dev'
24 | },
25 | reporters: ['progress', 'kjhtml'],
26 | port: 9876,
27 | colors: true,
28 | logLevel: config.LOG_INFO,
29 | autoWatch: true,
30 | browsers: ['Chrome'],
31 | singleRun: false
32 | });
33 | };
34 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular5-primeng-admin",
3 | "version": "0.0.0",
4 | "license": "MIT",
5 | "scripts": {
6 | "ng": "ng",
7 | "start": "ng serve",
8 | "build": "ng build",
9 | "test": "ng test",
10 | "lint": "ng lint",
11 | "e2e": "ng e2e",
12 | "ng serve --port 0 --open": "ng serve --port 0 --open",
13 | "ng serve --port 0 --open --aot":"ng serve --port 0 --open --aot",
14 | "ng build --prod": "ng build --prod --build-optimizer"
15 | },
16 | "private": true,
17 | "dependencies": {
18 | "@angular/animations": "^5.0.0",
19 | "@angular/common": "^5.0.0",
20 | "@angular/compiler": "^5.0.0",
21 | "@angular/core": "^5.0.0",
22 | "@angular/forms": "^5.0.0",
23 | "@angular/http": "^5.0.0",
24 | "@angular/platform-browser": "^5.0.0",
25 | "@angular/platform-browser-dynamic": "^5.0.0",
26 | "@angular/router": "^5.0.0",
27 | "core-js": "^2.4.1",
28 | "rxjs": "^5.5.2",
29 | "zone.js": "^0.8.14",
30 |
31 | "normalize.css": "7.0.0",
32 | "@types/js-base64": "2.1.5",
33 | "ngx-uploader": "4.2.1",
34 | "ngx-toastr": "6.5.0",
35 | "ngx-progressbar": "2.1.1",
36 | "quill": "1.3.2",
37 | "primeng":"5.0.0-rc.0",
38 | "chart.js":"^2.7.1",
39 | "element-angular":"^0.5.0-beta.5"
40 | },
41 | "devDependencies": {
42 | "@angular/cli": "1.5.0",
43 | "@angular/compiler-cli": "^5.0.0",
44 | "@angular/language-service": "^5.0.0",
45 | "@types/jasmine": "~2.5.53",
46 | "@types/jasminewd2": "~2.0.2",
47 | "@types/node": "~6.0.60",
48 | "codelyzer": "~3.2.0",
49 | "jasmine-core": "~2.6.2",
50 | "jasmine-spec-reporter": "~4.1.0",
51 | "karma": "~1.7.0",
52 | "karma-chrome-launcher": "~2.1.1",
53 | "karma-cli": "~1.0.1",
54 | "karma-coverage-istanbul-reporter": "^1.2.1",
55 | "karma-jasmine": "~1.1.0",
56 | "karma-jasmine-html-reporter": "^0.2.2",
57 | "protractor": "~5.1.2",
58 | "ts-node": "~3.2.0",
59 | "tslint": "~5.7.0",
60 | "typescript": "~2.4.2"
61 | }
62 | }
63 |
64 |
--------------------------------------------------------------------------------
/protractor.conf.js:
--------------------------------------------------------------------------------
1 | // Protractor configuration file, see link for more information
2 | // https://github.com/angular/protractor/blob/master/lib/config.ts
3 |
4 | const { SpecReporter } = require('jasmine-spec-reporter');
5 |
6 | exports.config = {
7 | allScriptsTimeout: 11000,
8 | specs: [
9 | './e2e/**/*.e2e-spec.ts'
10 | ],
11 | capabilities: {
12 | 'browserName': 'chrome'
13 | },
14 | directConnect: true,
15 | baseUrl: 'http://localhost:4200/',
16 | framework: 'jasmine',
17 | jasmineNodeOpts: {
18 | showColors: true,
19 | defaultTimeoutInterval: 30000,
20 | print: function() {}
21 | },
22 | onPrepare() {
23 | require('ts-node').register({
24 | project: 'e2e/tsconfig.e2e.json'
25 | });
26 | jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
27 | }
28 | };
29 |
--------------------------------------------------------------------------------
/src/app/app.component.css:
--------------------------------------------------------------------------------
1 |
2 | .container {
3 | width: 100%;
4 | height: 100%;
5 | display: block;
6 | overflow-y: scroll;
7 | }
8 |
--------------------------------------------------------------------------------
/src/app/app.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/app/app.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed, async } from '@angular/core/testing';
2 | import { AppComponent } from './app.component';
3 | describe('AppComponent', () => {
4 | beforeEach(async(() => {
5 | TestBed.configureTestingModule({
6 | declarations: [
7 | AppComponent
8 | ],
9 | }).compileComponents();
10 | }));
11 | it('should create the app', async(() => {
12 | const fixture = TestBed.createComponent(AppComponent);
13 | const app = fixture.debugElement.componentInstance;
14 | expect(app).toBeTruthy();
15 | }));
16 | it(`should have as title 'app'`, async(() => {
17 | const fixture = TestBed.createComponent(AppComponent);
18 | const app = fixture.debugElement.componentInstance;
19 | expect(app.title).toEqual('app');
20 | }));
21 | it('should render title in a h1 tag', async(() => {
22 | const fixture = TestBed.createComponent(AppComponent);
23 | fixture.detectChanges();
24 | const compiled = fixture.debugElement.nativeElement;
25 | expect(compiled.querySelector('h1').textContent).toContain('Welcome to app!');
26 | }));
27 | });
28 |
--------------------------------------------------------------------------------
/src/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import {Component, OnInit} from '@angular/core';
2 | import {Title} from '@angular/platform-browser';
3 | import {NavigationEnd, NavigationStart, Router} from '@angular/router';
4 | import {workspaceRoutes} from './workspace/workspace.routes';
5 | import {NgProgress} from 'ngx-progressbar';
6 | @Component({
7 | selector: 'app-root',
8 | templateUrl: './app.component.html',
9 | styleUrls: ['./app.component.css'],
10 |
11 | })
12 |
13 | export class AppComponent implements OnInit {
14 | ngOnInit() {
15 |
16 | }
17 |
18 | constructor(private router: Router, private titleService: Title, public progressService: NgProgress) {
19 | this.routerList.forEach(
20 | group => {
21 | this.componentList = group.children;
22 | }
23 | );
24 | this.router.events.subscribe(event => {
25 | if (event instanceof NavigationStart) {
26 | this.progressService.start();
27 | }
28 |
29 | if (event instanceof NavigationEnd) {
30 | this.progressService.done();
31 | this.componentList.forEach(
32 | list => {
33 | if (this.router.url.indexOf(list.path) >= 0) {
34 | this.titleService.setTitle(list.title);
35 | }
36 | }
37 | );
38 | }
39 | });
40 | };
41 |
42 | routerList = workspaceRoutes;
43 | componentList = [];
44 | searchComponent = null;
45 |
46 |
47 | }
48 |
--------------------------------------------------------------------------------
/src/app/app.module.ts:
--------------------------------------------------------------------------------
1 | import {BrowserModule} from '@angular/platform-browser';
2 | import {NgModule} from '@angular/core';
3 | import {FormsModule, ReactiveFormsModule} from '@angular/forms';
4 | import {CommonModule} from '@angular/common';
5 | import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
6 | import {RouterModule} from '@angular/router';
7 | import {AppComponent} from './app.component';
8 | import {LoginComponent} from './login/login.component';
9 | import {appRoutes} from './app.routes';
10 | import {LoginService} from './login/login.service';
11 | import {WorkspaceService} from './workspace/workspace.service';
12 | import {DataTableService} from './data-table/data-table.service';
13 | import {Ajax} from './common/ajax';
14 |
15 | import {ToastrModule} from 'ngx-toastr';
16 | import {NgProgressModule} from 'ngx-progressbar';
17 | import {HttpClientModule} from '@angular/common/http';
18 | import {InputTextModule} from 'primeng/primeng';
19 | @NgModule({
20 | declarations: [
21 | AppComponent,
22 | LoginComponent
23 | ],
24 | imports: [
25 | CommonModule,
26 | BrowserModule,
27 | FormsModule,
28 | RouterModule,
29 | FormsModule,
30 | InputTextModule,
31 | ReactiveFormsModule,
32 | HttpClientModule,
33 | BrowserAnimationsModule,
34 | NgProgressModule,
35 | ToastrModule.forRoot({
36 | timeOut: 2500,
37 | preventDuplicates: true
38 | }), // 消息弹出
39 | RouterModule.forRoot(appRoutes),
40 | ],
41 | providers: [
42 | Ajax,
43 | LoginService,
44 | WorkspaceService,
45 | DataTableService,
46 | ],
47 | bootstrap: [AppComponent]
48 | })
49 | /** 官方推荐将所有的服务放在 app.module 里
50 | * Ajax 这是一个把http封装成ajax的服务
51 | * Preload 这是一个延迟加载的服务
52 | * LoginService 登录
53 | * WorkspaceService 工作区域服务
54 | * DataTableService DataTable 服务
55 | *
56 | *
57 | * */
58 | export class AppModule {
59 | }
60 |
--------------------------------------------------------------------------------
/src/app/app.routes.ts:
--------------------------------------------------------------------------------
1 | import {LoginComponent} from './login/login.component';
2 |
3 | export const appRoutes = [
4 | {
5 | path: '',
6 | redirectTo: 'login',
7 | pathMatch: 'full'
8 | },
9 | {
10 | path: 'login',
11 | component: LoginComponent
12 | },
13 | {
14 | path: 'workspace',
15 | loadChildren: './workspace/workspace.module#WorkspaceModule'
16 | },
17 | {
18 | path: '**',
19 | component: LoginComponent
20 | }
21 | ];
22 |
--------------------------------------------------------------------------------
/src/app/charts/charts.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/app/charts/charts.component.css
--------------------------------------------------------------------------------
/src/app/charts/charts.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
--------------------------------------------------------------------------------
/src/app/charts/charts.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 | import {beforeUrl, pageAnimation,} from "../common/public-data";
3 | import {Message} from '../common/car';
4 |
5 | @Component({
6 | selector: 'app-charts',
7 | templateUrl: './charts.component.html',
8 | styleUrls: ['./charts.component.css'],
9 | animations: [
10 | pageAnimation
11 | ]
12 | })
13 | export class ChartsComponent implements OnInit {
14 |
15 | constructor() { }
16 |
17 | ngOnInit() {
18 | this.data = {
19 | labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
20 | datasets: [
21 | {
22 | label: 'My First dataset',
23 | backgroundColor: '#42A5F5',
24 | borderColor: '#1E88E5',
25 | data: [65, 59, 80, 81, 56, 55, 40]
26 | },
27 | {
28 | label: 'My Second dataset',
29 | backgroundColor: '#9CCC65',
30 | borderColor: '#7CB342',
31 | data: [28, 48, 40, 19, 86, 27, 90]
32 | }
33 | ]
34 | }
35 | }
36 | msgs: Message[] = []; //消息
37 | data: any;
38 | }
39 |
--------------------------------------------------------------------------------
/src/app/charts/charts.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule } from '@angular/core';
2 | import { CommonModule } from '@angular/common';
3 | import { RouterModule} from "@angular/router";
4 | import {
5 | ButtonModule, //Button
6 | PanelModule, //容器
7 | InputTextModule,
8 | DataTableModule, //表格
9 | DialogModule, //浮层
10 | SharedModule,
11 | CalendarModule,
12 | GrowlModule,//弹出框
13 | MultiSelectModule,//多选
14 | DropdownModule,//下拉
15 | CheckboxModule,//多选
16 | PaginatorModule,//分页
17 | OverlayPanelModule,
18 | TooltipModule,
19 | ChartModule
20 | } from 'primeng/primeng';
21 | import {FormsModule, ReactiveFormsModule} from "@angular/forms";
22 | import {HttpModule, JsonpModule} from "@angular/http";
23 | import {MyBreadcrumbModule} from "../components/my-breadcrumb/my-breadcrumb";
24 | import {ChartsComponent} from "./charts.component";
25 |
26 |
27 |
28 |
29 | @NgModule({
30 | imports: [
31 | FormsModule,
32 | ReactiveFormsModule,
33 | CommonModule,
34 | ReactiveFormsModule,
35 |
36 | ButtonModule,
37 | PanelModule,
38 | InputTextModule,
39 | DataTableModule,
40 | DialogModule,
41 | SharedModule,
42 | CalendarModule,
43 | GrowlModule,
44 | MultiSelectModule,
45 | DropdownModule,
46 | CheckboxModule,
47 | PaginatorModule,
48 | TooltipModule,
49 | OverlayPanelModule,
50 | ChartModule,
51 | MyBreadcrumbModule,
52 |
53 |
54 | RouterModule.forChild([
55 | { path:'',component:ChartsComponent}
56 | ])
57 | ],
58 | declarations: [ChartsComponent],
59 | exports:[RouterModule]
60 | })
61 | export class ChartsModule { }
62 |
--------------------------------------------------------------------------------
/src/app/citys/citys.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/app/citys/citys.component.css
--------------------------------------------------------------------------------
/src/app/citys/citys.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
12 |
13 |
16 |
--------------------------------------------------------------------------------
/src/app/citys/citys.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { CitysComponent } from './citys.component';
4 |
5 | describe('CitysComponent', () => {
6 | let component: CitysComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async(() => {
10 | TestBed.configureTestingModule({
11 | declarations: [ CitysComponent ]
12 | })
13 | .compileComponents();
14 | }));
15 |
16 | beforeEach(() => {
17 | fixture = TestBed.createComponent(CitysComponent);
18 | component = fixture.componentInstance;
19 | fixture.detectChanges();
20 | });
21 |
22 | it('should be created', () => {
23 | expect(component).toBeTruthy();
24 | });
25 | });
26 |
--------------------------------------------------------------------------------
/src/app/citys/citys.component.ts:
--------------------------------------------------------------------------------
1 | import {Component, OnInit} from '@angular/core';
2 | import {DataTableService} from '../data-table/data-table.service';
3 | import {Message} from '../common/car';
4 |
5 | @Component({
6 | selector: 'app-citys',
7 | templateUrl: './citys.component.html',
8 | styleUrls: ['./citys.component.css']
9 | })
10 | export class CitysComponent implements OnInit {
11 |
12 | constructor(private myService: DataTableService) {
13 | }
14 |
15 | ngOnInit() {
16 | this.getCitys();
17 | }
18 |
19 | msgs: Message[] = []; //消息
20 | /************************* 省级联动 ********************************/
21 | citys: any; //省级 数据
22 | city1Array: any = [];
23 | city1NgModel: any;
24 | city2Array: any = [];
25 | city2NgModel: any;
26 | city2Disabled: boolean = true;
27 | city3Array: any = [];
28 | city3NgModel: any;
29 | city3Disabled: boolean = true;
30 | //获取省市区县数据
31 | getCitys() {
32 | this.myService.getCitys()
33 | .then(citys => {
34 | this.citys = citys;
35 | }, res => this.msg(4, '省市县数据获取失败')
36 | )
37 | .then(
38 | () => {
39 | for (let i in this.citys) {
40 | if (parseInt(i) % 10000 === 0) {
41 | this.city1Array.push({
42 | label: this.citys[i],
43 | value: i
44 | });
45 | }
46 |
47 | }
48 | }
49 | );
50 | }
51 |
52 | //省级 或 直辖市 级 下拉框change 事件
53 | city1onChange() {
54 | this.city2Array = [];
55 | for (let i in this.citys) {
56 | if (parseInt(i.substring(0, 2)) == this.city1NgModel.substring(0, 2)) {
57 | if (parseInt(i) % 100 === 0 && parseInt(i) % 10000 != 0) {
58 | this.city2Array.push({
59 | label: this.citys[i],
60 | value: i
61 | });
62 | }
63 | if (i.substring(0, 2) == '11' || i.substring(0, 2) == '12' || i.substring(0, 2) == '82' || i.substring(0, 2) == '81'
64 | || i.substring(0, 2) == '50' || i.substring(0, 2) == '31'
65 | ) {
66 | if (parseInt(i) % 10000 != 0) {
67 | this.city2Array.push({
68 | label: this.citys[i],
69 | value: i
70 | });
71 | }
72 | }
73 | }
74 | }
75 | if (this.city2Array.length == 0) {
76 | this.city2Disabled = true;
77 | this.city3Disabled = true;
78 | this.city3Array = [];
79 | } else {
80 | this.city2Disabled = false;
81 | this.city3Disabled = true;
82 | this.city3Array = [];
83 | }
84 | }
85 |
86 | //第二个个下拉框change 事件
87 | city2onChange() {
88 | this.city3Array = [];
89 | for (let i in this.citys) {
90 | if (parseInt(i.substring(0, 4)) == this.city2NgModel / 100) {
91 | if (parseInt(i) % 100 != 0) {
92 | this.city3Array.push({
93 | label: this.citys[i],
94 | value: i
95 | });
96 | }
97 | }
98 | }
99 | if (this.city3Array.length == 0) {
100 | this.city3Disabled = true;
101 | } else {
102 | this.city3Disabled = false;
103 | }
104 | }
105 |
106 | /************************* 信息返回函数 ********************************/
107 | timeout: any;
108 |
109 | msgError(error) {
110 | this.msgs.push({severity: error.split('|')[1], detail: error.split('|')[0]});
111 | if (this.timeout) {
112 | clearTimeout(this.timeout);
113 | }
114 | this.timeout = setTimeout(() => {
115 | this.msgs = [];
116 | }, 3000);
117 | }
118 |
119 | msg(num, msg) {
120 | let type = 'info';
121 | if (num == 1) {
122 | type = 'success';
123 | } else if (num == 2) {
124 | type = 'info';
125 | } else if (num == 3) {
126 | type = 'warn';
127 | } else if (num == 4) {
128 | type = 'error';
129 | }
130 | this.msgs.push({severity: type, detail: msg});
131 | if (this.timeout) {
132 | clearTimeout(this.timeout);
133 | }
134 | this.timeout = setTimeout(() => {
135 | this.msgs = [];
136 | }, 3000);
137 | }
138 | }
139 |
--------------------------------------------------------------------------------
/src/app/citys/citys.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule } from '@angular/core';
2 | import { CommonModule } from '@angular/common';
3 | import { RouterModule} from "@angular/router";
4 | import {
5 | PanelMenuModule,
6 | TabMenuModule, //tabMenu
7 | AutoCompleteModule,
8 | ButtonModule, //Button
9 | PanelModule, //容器
10 | InputTextModule,
11 | DataTableModule, //表格
12 | DialogModule, //浮层
13 | SplitButtonModule,
14 | TabViewModule, //table
15 | AccordionModule,//手风琴
16 | SharedModule,
17 | CalendarModule,
18 | GrowlModule,//弹出框
19 | MultiSelectModule,//多选
20 | ListboxModule,//多选框
21 | DropdownModule,//下拉
22 | CheckboxModule,//多选
23 | MessagesModule,//Messages
24 | PaginatorModule,//分页
25 | ConfirmDialogModule,//删除弹出框
26 | InputTextareaModule,// InputTextarea
27 | OverlayPanelModule,
28 | TooltipModule,
29 | } from 'primeng/primeng';
30 | import {FormsModule, ReactiveFormsModule} from "@angular/forms";
31 | import {HttpModule, JsonpModule} from "@angular/http";
32 |
33 | import {MyBreadcrumbModule} from '../components/my-breadcrumb/my-breadcrumb';
34 | import {CitysComponent} from './citys.component';
35 |
36 |
37 |
38 |
39 |
40 | @NgModule({
41 | imports: [
42 | FormsModule,
43 | ReactiveFormsModule,
44 | CommonModule,
45 | ReactiveFormsModule,
46 |
47 | ButtonModule,
48 | PanelModule,
49 | InputTextModule,
50 | DataTableModule,
51 | DialogModule,
52 | SharedModule,
53 | CalendarModule,
54 | GrowlModule,
55 | MultiSelectModule,
56 | DropdownModule,
57 | CheckboxModule,
58 | PaginatorModule,
59 | TooltipModule,
60 | OverlayPanelModule,
61 |
62 | MyBreadcrumbModule,
63 |
64 |
65 | RouterModule.forChild([
66 | { path:'',component:CitysComponent}
67 | ])
68 | ],
69 | declarations: [CitysComponent],
70 | exports:[RouterModule]
71 | })
72 | export class CitysModule { }
73 |
--------------------------------------------------------------------------------
/src/app/common/ajax.ts:
--------------------------------------------------------------------------------
1 | import {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';
2 | import {Injectable} from '@angular/core';
3 | import 'rxjs/add/operator/catch';
4 | import {Response} from '@angular/http';
5 | import 'rxjs/add/operator/timeout';
6 | import {beforeUrl} from './public-data';
7 | import {ToastrService} from 'ngx-toastr'; //错误提示消息
8 |
9 | /**
10 | * Api is a generic REST Api handler. Set your API url first.
11 | */
12 | @Injectable()
13 | export class Ajax {
14 | url: string = beforeUrl;
15 | timeout: number = 10000; //超时时间
16 | constructor(public http: HttpClient, private toastr: ToastrService) {
17 | }
18 |
19 | httpOptionsFunction() {
20 | let httpOptions: any = {};
21 | if (sessionStorage.getItem('userToken')) {
22 | httpOptions = {
23 | headers: new HttpHeaders({
24 | 'Content-Type': 'application/json',
25 | 'Authorization': sessionStorage.getItem('userToken')
26 | })
27 | };
28 | } else {
29 | httpOptions = {
30 | headers: new HttpHeaders({'Content-Type': 'application/json'})
31 | };
32 | }
33 | return httpOptions;
34 | }
35 |
36 | parseParams(params: any): HttpParams {
37 | let ret = new HttpParams();
38 | if (params) {
39 | for (const key in params) {
40 | let _data = params[key];
41 | if (_data !== null && _data !== undefined) {
42 | if (_data === '') {
43 | params[key] = null;
44 | } else if (Array.isArray(_data)) {
45 | if (params[key].length == 0) {
46 | params[key] = null;
47 | }
48 | }
49 | ret = ret.set(key, _data);
50 | }
51 | }
52 | }
53 | return ret;
54 | }
55 |
56 | get(endpoint: string, params?: any) {
57 | let that = this;
58 | let httpOptions: any = {};
59 | if (sessionStorage.getItem('userToken')) {
60 | httpOptions = {
61 | headers: new HttpHeaders({
62 | 'Content-Type': 'application/json',
63 | 'Authorization': sessionStorage.getItem('userToken')
64 | }),
65 | params: this.parseParams(params)
66 | };
67 | } else {
68 | httpOptions = {
69 | headers: new HttpHeaders({'Content-Type': 'application/json'}),
70 | params: this.parseParams(params)
71 | };
72 | }
73 | return this.http.get(this.url + endpoint, httpOptions).catch(
74 | (error: Response | any) => {
75 | if (error.status == 0) {
76 | that.toastr.info('请求未执行,1:服务未启动2:api地址错误');
77 | } else {
78 | if (error.error.errorInfo !== undefined) {
79 | if (error.status >= 500) {
80 | that.toastr.warning(error.error.errorInfo.errMsg);
81 | } else {
82 | that.toastr.error(error.error.errorInfo.errMsg);
83 | }
84 | } else {
85 | if (error.status >= 500) {
86 | that.toastr.warning('服务器超时');
87 | } else {
88 | that.toastr.error('服务器错误');
89 | }
90 | }
91 | }
92 | return Promise.reject(error);
93 | }
94 | );
95 | }
96 |
97 | post(endpoint: string, body: any, reqOpts?: any) {
98 | let that = this;
99 | return this.http.post(this.url + endpoint, body, this.httpOptionsFunction()).catch(
100 | (error: Response | any) => {
101 | if (error.status == 0) {
102 | that.toastr.info('请求未执行,1:服务未启动2:api地址错误');
103 | } else {
104 | if (error.error.errorInfo !== undefined) {
105 | if (error.status >= 500) {
106 | that.toastr.warning(error.error.errorInfo.errMsg);
107 | } else {
108 | that.toastr.error(error.error.errorInfo.errMsg);
109 | }
110 | } else {
111 | if (error.status >= 500) {
112 | that.toastr.warning('服务器超时');
113 | } else {
114 | that.toastr.error('服务器错误');
115 | }
116 | }
117 | }
118 | return Promise.reject(error);
119 | }
120 | );
121 | }
122 |
123 | put(endpoint: string, body: any, reqOpts?: any) {
124 | let that = this;
125 | return this.http.put(this.url + endpoint, body, this.httpOptionsFunction()).catch(
126 | (error: Response | any) => {
127 | if (error.status == 0) {
128 | that.toastr.info('请求未执行,1:服务未启动2:api地址错误');
129 | } else {
130 | if (error.error.errorInfo !== undefined) {
131 | if (error.status >= 500) {
132 | that.toastr.warning(error.error.errorInfo.errMsg);
133 | } else {
134 | that.toastr.error(error.error.errorInfo.errMsg);
135 | }
136 | } else {
137 | if (error.status >= 500) {
138 | that.toastr.warning('服务器超时');
139 | } else {
140 | that.toastr.error('服务器错误');
141 | }
142 | }
143 | }
144 | return Promise.reject(error);
145 | }
146 | );
147 | }
148 |
149 | delete(endpoint: string, reqOpts?: any) {
150 | let that = this;
151 | return this.http.delete(this.url + endpoint, this.httpOptionsFunction()).catch(
152 | (error: Response | any) => {
153 | if (error.status == 0) {
154 | that.toastr.info('请求未执行,1:服务未启动2:api地址错误');
155 | } else {
156 | if (error.error.errorInfo !== undefined) {
157 | if (error.status >= 500) {
158 | that.toastr.warning(error.error.errorInfo.errMsg);
159 | } else {
160 | that.toastr.error(error.error.errorInfo.errMsg);
161 | }
162 | } else {
163 | if (error.status >= 500) {
164 | that.toastr.warning('服务器超时');
165 | } else {
166 | that.toastr.error('服务器错误');
167 | }
168 | }
169 | }
170 | return Promise.reject(error);
171 | }
172 | );
173 | }
174 |
175 | patch(endpoint: string, body: any, reqOpts?: any) {
176 | let that = this;
177 | return this.http.patch(this.url + endpoint, body, this.httpOptionsFunction()).catch(
178 | (error: Response | any) => {
179 | if (error.status == 0) {
180 | that.toastr.info('请求未执行,1:服务未启动2:api地址错误');
181 | } else {
182 | if (error.error.errorInfo !== undefined) {
183 | if (error.status >= 500) {
184 | that.toastr.warning(error.error.errorInfo.errMsg);
185 | } else {
186 | that.toastr.error(error.error.errorInfo.errMsg);
187 | }
188 | } else {
189 | if (error.status >= 500) {
190 | that.toastr.warning('服务器超时');
191 | } else {
192 | that.toastr.error('服务器错误');
193 | }
194 | }
195 | }
196 | return Promise.reject(error);
197 | }
198 | );
199 | }
200 |
201 | }
202 |
203 |
--------------------------------------------------------------------------------
/src/app/common/car.ts:
--------------------------------------------------------------------------------
1 | import {EventEmitter} from '@angular/core';
2 |
3 | /**
4 | *数据类型
5 | */
6 | export interface Car {
7 | name?: string;
8 | deleted?: boolean;
9 | createTime?: any;
10 | modifyTime?: any;
11 | unitId?: number;
12 | children?: any;
13 | description?: string;
14 | descriptionRelated?: string;
15 | gbReference?: string;
16 | gbDescription?: string;
17 | url?: string;
18 | categoryName?: string;
19 | unitName?: string;
20 | id?: number;
21 | image?: string;
22 | pageNo?: number;
23 | status?: any;
24 | _body?: any;
25 | ids?: any;
26 | label?: any;
27 | value?: any;
28 | categoryId?: number;
29 | specificationsId?: number;
30 | data?: Data[];
31 | totalPage?: any;
32 | totalCount?: any;
33 | attributeCategoryName?: any
34 | attributeId?: any
35 | attributeName?: any
36 | indicatorName?: any
37 | materialExample?: any
38 | spaceAttributeRelationModels?: any
39 | specificationId?: number
40 | materialName?: string
41 | name1?: string
42 | name2?: string
43 | name3?: string
44 | name4?: string
45 | materialMeasurementRelationModelList?: any
46 | materialIndicatorRelationModelList?: any
47 | materialLevelRelationModelList?: any
48 | measurementId?: any
49 | attributeManageName?: any
50 | indicatorId?: any
51 | addModelmaterialcategoriesAlls?: any
52 | addModelindicatormanagesAlls?: any
53 | username?: string
54 | realname?: string
55 | roleId?: number
56 | industryId?: any
57 | passwrod?: any
58 |
59 | }
60 | /**
61 | *数据类型 this.cars.data
62 | */
63 | export interface Data {
64 | name?: string;
65 | id?: number;
66 | deleted?: boolean;
67 | createTime?: any;
68 | modifyTime?: any;
69 | unitId?: number;
70 | description?: string;
71 | url?: string;
72 | categoryName?: string;
73 | unitName?: string;
74 | categoryId?: number;
75 | specificationsId?: number;
76 | gbReference?: any;
77 | gbDescription?: any;
78 | descriptionRelated?: any;
79 | creatorId?: any
80 | industryId?: any
81 | logo?: any
82 | thumb?: any
83 | }
84 |
85 | /**
86 | * 引用 primeng common api.ts
87 | */
88 | export interface MenuItem {
89 | label?: string;
90 | icon?: string;
91 | command?: (event?: any) => void;
92 | url?: string;
93 | routerLink?: any;
94 | eventEmitter?: EventEmitter;
95 | items?: MenuItem[];
96 | expanded?: boolean;
97 | disabled?: boolean;
98 | visible?: boolean;
99 | target?: string;
100 | }
101 | export interface Message {
102 | severity?: string;
103 | summary?: string;
104 | detail?: string;
105 | id?: any;
106 | }
107 |
108 | export interface SelectItem {
109 | label: string;
110 | value: any;
111 | }
112 |
113 | /**
114 | *引用 primeng common api.ts end
115 | */
116 |
--------------------------------------------------------------------------------
/src/app/common/public-data.ts:
--------------------------------------------------------------------------------
1 | import {trigger, state, style, transition, animate, keyframes} from '@angular/animations';
2 |
3 | /***********************接口地址前缀*********************/
4 | export const beforeUrl = '';
5 | export const imgReadUrl = 'http://vr.weiruict.com';
6 |
7 | //页面跳转动画
8 | export const pageAnimation = trigger('pageAnimation', [
9 | state('in', style({opacity: 1, transform: 'translateY(0)'})),
10 | transition('void => *', [
11 | style({
12 | opacity: 1,
13 | transform: 'translateY(40px)'
14 | }),
15 | animate('400ms ease-out')
16 | ]),
17 | transition('* => void', [
18 | animate('400ms ease-out', style({
19 | opacity: 0,
20 | transform: 'translateY(40px)'
21 | }))
22 | ])
23 | ]);
24 | //rotateY 90 度动画
25 | export const tagAnimation = trigger('tagAnimation', [
26 | state('inactive', style({transform: 'rotateY(0deg)'})),
27 | state('active', style({transform: 'rotateY(90deg)'})),
28 | transition('active => inactive', animate('300ms ease-out'))
29 | ]);
30 | //right25度动画
31 | export const right25Animation = trigger('right25Animation', [
32 | state('inactive', style({transform: 'translateX(0)'})),
33 | state('active', style({transform: 'translateX(-25px)'})),
34 | transition('inactive <=> active', animate('400ms ease-out'))
35 | ]);
36 | //left25度动画
37 | export const left25Animation = trigger('left25Animation', [
38 | state('inactive', style({transform: 'translateX(0)'})),
39 | transition('void => *', [
40 | style({
41 | transform: 'translateX(25px)'
42 | }),
43 | animate('500ms 200ms ease-out')
44 | ]),
45 | transition('* => void', [
46 | animate('500ms 200ms ease-out', style({
47 | transform: 'translateX(25px)'
48 | }))
49 | ])
50 | ]);
51 |
52 | //日期搜索中文化
53 | export const China = {
54 | firstDayOfWeek: 0,
55 | dayNames: ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'],
56 | dayNamesShort: ['一', '二', '三', '四', '五', '六', '日'],
57 | dayNamesMin: ['一', '二', '三', '四', '五', '六', '日'],
58 | monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
59 | monthNamesShort: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
60 | };
61 |
--------------------------------------------------------------------------------
/src/app/components/my-breadcrumb/my-breadcrumb.ts:
--------------------------------------------------------------------------------
1 | import {NgModule, Component, Input, Output, EventEmitter} from "@angular/core";
2 | import {CommonModule} from "@angular/common";
3 | import {RouterModule} from "@angular/router";
4 | import {Location} from "@angular/common";
5 | @Component({
6 | selector: "my-breadcrumb",
7 | template: `
8 |
15 | `,
16 | styles: [`
17 | .my-breadcrumb {
18 | padding: 14px 0 14px 15px;
19 | margin-bottom: 10px;
20 | background-color: #eef1f6;
21 | }
22 | .my-breadcrumb span{
23 | font-size: 14px;
24 | }
25 | .my-breadcrumb a {
26 | color: #0099E6;
27 | cursor: pointer;
28 | font-size: 14px;
29 | }
30 |
31 | .my-breadcrumb a:hover {
32 | text-decoration: underline;
33 | }
34 |
35 | .fa-angle-double-right {
36 | margin: 0 10px;
37 | }
38 | `]
39 | })
40 | export class MyBreadcrumb {
41 | constructor(private location: Location) {
42 | };
43 |
44 | @Input() name1: string;
45 | @Input() name2: string;
46 | @Input() name3: string;
47 |
48 | goBack(): void {
49 | if (this.name3) {
50 | this.location.back();
51 | }
52 | }
53 | }
54 |
55 | @NgModule({
56 | imports: [CommonModule],
57 | exports: [MyBreadcrumb, RouterModule],
58 | declarations: [MyBreadcrumb]
59 | })
60 |
61 | export class MyBreadcrumbModule {
62 | }
63 |
--------------------------------------------------------------------------------
/src/app/components/my-gotop/my-gotop.ts:
--------------------------------------------------------------------------------
1 | import {
2 | NgModule, Component, Input, Output, EventEmitter, OnInit, ElementRef, ViewChild, Renderer, Directive, Inject,
3 | forwardRef
4 | } from "@angular/core";
5 | import {CommonModule} from "@angular/common";
6 | import {RouterModule} from "@angular/router";
7 | import {window} from "rxjs/operator/window";
8 |
9 | @Component({
10 | selector: "my-gotop",
11 | template: `
12 |
13 |
14 | `,
15 | styles: [`
16 | .my-gotop {
17 | font-size: 25px;
18 | position: fixed;
19 | right: 10px;
20 | bottom: 10px;
21 | cursor: pointer;
22 | z-index: 3000;
23 | padding: 10px 14px;
24 | border-radius: 100%;
25 | background-color: #58b7ff;
26 | color: #ffffff;
27 | opacity:0.4;
28 | }
29 |
30 | .my-gotop:hover {
31 | background-color: #8492A6;
32 | }
33 |
34 | `]
35 | })
36 | export class MyGoTop {
37 | constructor(private el: ElementRef, private renderer: Renderer,) {
38 | this.renderer.listenGlobal("window", "scroll", (evt: Event) => {
39 | const osTop = document.documentElement.scrollTop || document.body.scrollTop;
40 | if (osTop > 194) {
41 | this.goTopState = true;
42 | }else{
43 | this.goTopState = false;
44 | }
45 | });
46 | }
47 |
48 | goTopState: boolean = false;
49 |
50 | goTop(): void {
51 | let osTop = document.documentElement.scrollTop || document.body.scrollTop;
52 | if (osTop == 0) {
53 | return;
54 | }
55 | let speed = Math.floor(-osTop / 6);
56 | document.documentElement.scrollTop = document.body.scrollTop = osTop + speed;
57 | setTimeout(() => {
58 | this.goTop();
59 | }, 15);
60 | }
61 | }
62 |
63 | @NgModule({
64 | imports: [CommonModule],
65 | exports: [MyGoTop, RouterModule],
66 | declarations: [MyGoTop]
67 | })
68 |
69 | export class MyGoTopModule {
70 | }
71 |
--------------------------------------------------------------------------------
/src/app/components/my-tag/my-tag.ts:
--------------------------------------------------------------------------------
1 | import {NgModule, Component, Input, Output, EventEmitter} from '@angular/core';
2 | import {CommonModule} from '@angular/common';
3 |
4 | @Component({
5 | selector: 'my-tag',
6 | template: `
7 |
8 | {{text}}
9 |
10 |
11 | `,
12 | styles: [`
13 | .my-tag-box {
14 | background-color: #8391a5;
15 | display: inline-block;
16 | padding: 0 5px;
17 | height: 24px;
18 | line-height: 22px;
19 | font-size: 12px;
20 | color: #fff;
21 | border-radius: 4px;
22 | box-sizing: border-box;
23 | border: 1px solid transparent;
24 | white-space: nowrap;
25 | font-weight: normal;
26 | }
27 | .my-tag-box i{
28 | margin: 0 2px 0 5px;
29 | }
30 |
31 | .gray {
32 | background-color: #e4e8f1;
33 | border-color: #e4e8f1;
34 | color: #48576a;
35 | }
36 |
37 | .primary {
38 | background-color: rgba(32, 160, 255, .1);
39 | border-color: rgba(32, 160, 255, .2);
40 | color: #20a0ff;
41 | }
42 |
43 | .success {
44 | background-color: rgba(18, 206, 102, .1);
45 | border-color: rgba(18, 206, 102, .2);
46 | color: #13ce66;
47 | }
48 |
49 | .warning {
50 | background-color: rgba(247, 186, 41, .1);
51 | border-color: rgba(247, 186, 41, .2);
52 | color: #f7ba2a;
53 | }
54 |
55 | .danger {
56 | background-color: rgba(255, 73, 73, .1);
57 | border-color: rgba(255, 73, 73, .2);
58 | color: #ff4949;
59 | }
60 | `]
61 | })
62 | export class MyTag {
63 | @Input() text: string = '标签';
64 | @Input() type: string = '';
65 | @Input() remove:boolean = false
66 | getremove(){
67 | return this.remove
68 | }
69 | }
70 |
71 | @NgModule({
72 | imports: [CommonModule],
73 | exports: [MyTag],
74 | declarations: [MyTag]
75 | })
76 |
77 | export class MyTagModule {
78 | }
79 |
--------------------------------------------------------------------------------
/src/app/data-table/add.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/src/app/data-table/add.ts:
--------------------------------------------------------------------------------
1 | import {Component, OnInit} from '@angular/core';
2 | import {ActivatedRoute} from '@angular/router';
3 | import {pageAnimation} from '../common/public-data';
4 | import {DataTableService} from './data-table.service';
5 |
6 |
7 | @Component({
8 | templateUrl: './add.html',
9 | styleUrls: ['./data-table.component.css'],
10 | animations: [
11 | pageAnimation
12 | ]
13 | })
14 | export class DataTableAdd implements OnInit {
15 | constructor(private myService: DataTableService, private route: ActivatedRoute) {
16 |
17 | console.log(route);
18 |
19 | }
20 |
21 | ngOnInit() {
22 | this.params = this.route.params;
23 | console.log(this.params.value.id);
24 | }
25 |
26 | params: any;
27 | text: string;
28 | nameModel: string;
29 | shopManagerModel: any;
30 | phoneModel: any;
31 | detailedAddressModel: any;
32 |
33 | add() {
34 |
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/app/data-table/data-table.component.css:
--------------------------------------------------------------------------------
1 | label{
2 | line-height: 29px;
3 | }
4 | .ui-g-2{
5 | text-align: right;
6 | padding-right: 15px;
7 | }
8 |
--------------------------------------------------------------------------------
/src/app/data-table/data-table.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule } from '@angular/core';
2 | import { CommonModule } from '@angular/common';
3 | import { RouterModule} from "@angular/router";
4 | import {
5 | PanelMenuModule,
6 | TabMenuModule, //tabMenu
7 | AutoCompleteModule,
8 | ButtonModule, //Button
9 | PanelModule, //容器
10 | InputTextModule,
11 | DataTableModule, //表格
12 | DialogModule, //浮层
13 | SplitButtonModule,
14 | TabViewModule, //table
15 | AccordionModule,//手风琴
16 | SharedModule,
17 | CalendarModule,
18 | GrowlModule,//弹出框
19 | MultiSelectModule,//多选
20 | ListboxModule,//多选框
21 | DropdownModule,//下拉
22 | CheckboxModule,//多选
23 | MessagesModule,//Messages
24 | PaginatorModule,//分页
25 | ConfirmDialogModule,//删除弹出框
26 | InputTextareaModule,// InputTextarea
27 | OverlayPanelModule,
28 | TooltipModule, EditorModule,
29 | } from 'primeng/primeng';
30 | import {FormsModule, ReactiveFormsModule} from "@angular/forms";
31 | import {HttpModule, JsonpModule} from "@angular/http";
32 | import {MyBreadcrumbModule} from "../components/my-breadcrumb/my-breadcrumb";
33 | import {DataTableComponent} from "./data-table.component";
34 | import {Details} from './details';
35 | import {DataTableAdd} from './add';
36 |
37 |
38 |
39 | @NgModule({
40 | imports: [
41 | FormsModule,
42 | ReactiveFormsModule,
43 |
44 | CommonModule,
45 |
46 | ButtonModule,
47 | PanelModule,
48 | InputTextModule,
49 | DataTableModule,
50 | DialogModule,
51 | SharedModule,
52 | CalendarModule,
53 | GrowlModule,
54 | MultiSelectModule,
55 | DropdownModule,
56 | CheckboxModule,
57 | PaginatorModule,
58 | TooltipModule,
59 | OverlayPanelModule,
60 | InputTextareaModule,
61 | MyBreadcrumbModule,
62 | EditorModule,
63 |
64 | RouterModule.forChild([
65 | { path:'',component:DataTableComponent},
66 | { path: 'details/:id', component:Details },
67 | { path: 'add', component:DataTableAdd },
68 | ])
69 | ],
70 | declarations: [DataTableComponent,Details,DataTableAdd],
71 | exports:[RouterModule]
72 | })
73 | export class MyDataTableModule { }
74 |
--------------------------------------------------------------------------------
/src/app/data-table/data-table.service.ts:
--------------------------------------------------------------------------------
1 | import {Injectable} from '@angular/core';
2 | import {Response} from '@angular/http';
3 | import 'rxjs/add/operator/toPromise';
4 | import {Ajax} from '../common/ajax';
5 | import {HttpClient} from '@angular/common/http';
6 |
7 |
8 | @Injectable()
9 | export class DataTableService {
10 |
11 | constructor(public ajax: Ajax, public http: HttpClient) {
12 | }
13 |
14 | private extractJson(res: Response | any) {
15 | let body = res;
16 | return body || {};
17 | }
18 |
19 | //数据获取
20 | private getUrl = 'assets/data.json';
21 |
22 | get(params): Promise {
23 | return this.ajax.get(this.getUrl, params)
24 | .toPromise()
25 | .then(this.extractJson);
26 | }
27 |
28 | //行业获取
29 | private getIndustriesUrl = 'assets/industries.json';
30 |
31 | getIndustries(): Promise {
32 | return this.ajax.get(this.getIndustriesUrl)
33 | .toPromise()
34 | .then(this.extractJson);
35 | }
36 |
37 | //添加
38 | private addUrl = 'add';
39 |
40 | add(params): Promise {
41 | return this.ajax.post(this.addUrl, params)
42 | .toPromise()
43 | .then((res) => res);
44 | }
45 |
46 | //编辑
47 | private editUrl = 'edit';
48 |
49 | edit(params): Promise {
50 | return this.ajax.put(this.editUrl, params)
51 | .toPromise()
52 | .then((res) => res);
53 | }
54 |
55 | //删除
56 | private deleteUrl = 'delete';
57 |
58 | delete(params): Promise {
59 | let url = this.deleteUrl + '?ids=' + params;
60 | return this.ajax.patch(url, params)
61 | .toPromise()
62 | .then((res) => res);
63 |
64 | }
65 |
66 | //最新省级 json 获取http://passer-by.com/data_location/list.json
67 | private citysUrl = 'http://passer-by.com/data_location/list.json';
68 |
69 | getCitys(): Promise {
70 | let url = this.citysUrl;
71 | return this.http.get(url)
72 | .toPromise()
73 | .then(this.extractJson)
74 | .catch(res => res);
75 | }
76 |
77 |
78 | }
79 |
--------------------------------------------------------------------------------
/src/app/data-table/details.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 这里取到路由过来的参数(id) {{params.value.id}} 然后你懂得
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
28 |
37 |
46 |
47 |
48 |
49 | {{text}}
50 |
51 |
--------------------------------------------------------------------------------
/src/app/data-table/details.ts:
--------------------------------------------------------------------------------
1 | import {Component, OnInit} from '@angular/core';
2 | import {Car, Message, SelectItem} from '../common/car';
3 | import {beforeUrl, pageAnimation, China} from '../common/public-data';
4 | import {DataTableService} from './data-table.service';
5 | import {ActivatedRoute} from '@angular/router';
6 |
7 | @Component({
8 | templateUrl: './details.html',
9 | animations: [
10 | pageAnimation
11 | ]
12 | })
13 | export class Details implements OnInit {
14 | constructor(private myService: DataTableService, private route: ActivatedRoute) {
15 |
16 | console.log(route);
17 |
18 | }
19 |
20 | ngOnInit() {
21 | this.params = this.route.params;
22 | console.log(this.params.value.id);
23 | }
24 |
25 | params: any;
26 | text:string
27 | }
28 |
--------------------------------------------------------------------------------
/src/app/directives/click-outside/click-outside.directive.ts:
--------------------------------------------------------------------------------
1 | import {
2 | Directive,
3 | ElementRef,
4 | EventEmitter,
5 | Input,
6 | OnChanges,
7 | OnDestroy,
8 | OnInit,
9 | Output,
10 | SimpleChanges
11 | } from '@angular/core';
12 | import {NgModule} from '@angular/core';
13 |
14 | @Directive({selector: '[clickOutside]'})
15 | export class ClickOutsideDirective implements OnInit, OnChanges, OnDestroy {
16 | private static _isBrowser: boolean;
17 |
18 | @Input() attachOutsideOnClick: boolean = false;
19 | @Input() delayClickOutsideInit: boolean = false;
20 | @Input() exclude: string = '';
21 | @Input() excludeBeforeClick: boolean = false;
22 | @Input() clickOutsideEvents: string = '';
23 |
24 | @Output() clickOutside: EventEmitter = new EventEmitter();
25 |
26 | private _nodesExcluded: Array = [];
27 | private _events: Array = ['click'];
28 |
29 | constructor(private _el: ElementRef) {
30 | if (ClickOutsideDirective._isBrowser === undefined) {
31 | ClickOutsideDirective._isBrowser = new Function('try{return this===window;}catch(e){return false;}')();
32 | }
33 |
34 | this._initOnClickBody = this._initOnClickBody.bind(this);
35 | this._onClickBody = this._onClickBody.bind(this);
36 | }
37 |
38 | ngOnInit() {
39 | if (!ClickOutsideDirective._isBrowser) {
40 | return;
41 | }
42 |
43 | this._init();
44 | }
45 |
46 | ngOnDestroy() {
47 | if (!ClickOutsideDirective._isBrowser) {
48 | return;
49 | }
50 |
51 | if (this.attachOutsideOnClick) {
52 | this._events.forEach(e => this._el.nativeElement.removeEventListener(e, this._initOnClickBody));
53 | }
54 |
55 | this._events.forEach(e => document.body.removeEventListener(e, this._onClickBody));
56 | }
57 |
58 | ngOnChanges(changes: SimpleChanges) {
59 | if (!ClickOutsideDirective._isBrowser) {
60 | return;
61 | }
62 |
63 | if (changes['attachOutsideOnClick'] || changes['exclude']) {
64 | this._init();
65 | }
66 | }
67 |
68 | private _init() {
69 | if (this.clickOutsideEvents !== '') {
70 | this._events = this.clickOutsideEvents.split(' ');
71 | }
72 |
73 | this._excludeCheck();
74 |
75 | if (this.attachOutsideOnClick) {
76 | this._events.forEach(e => this._el.nativeElement.addEventListener(e, this._initOnClickBody));
77 | } else {
78 | this._initOnClickBody();
79 | }
80 | }
81 |
82 | private _initOnClickBody() {
83 | if (this.delayClickOutsideInit) {
84 | setTimeout(this._initClickListeners.bind(this));
85 | } else {
86 | this._initClickListeners();
87 | }
88 | }
89 |
90 | private _initClickListeners() {
91 | this._events.forEach(e => document.body.addEventListener(e, this._onClickBody));
92 | }
93 |
94 | private _excludeCheck() {
95 | if (this.exclude) {
96 | try {
97 | const nodes = Array.from(document.querySelectorAll(this.exclude)) as Array;
98 | if (nodes) {
99 | this._nodesExcluded = nodes;
100 | }
101 | } catch (err) {
102 | console.error('[ng-click-outside] Check your exclude selector syntax.', err);
103 | }
104 | }
105 | }
106 |
107 | private _onClickBody(ev: Event) {
108 | if (this.excludeBeforeClick) {
109 | this._excludeCheck();
110 | }
111 |
112 | if (!this._el.nativeElement.contains(ev.target) && !this._shouldExclude(ev.target)) {
113 | this.clickOutside.emit(ev);
114 |
115 | if (this.attachOutsideOnClick) {
116 | this._events.forEach(e => document.body.removeEventListener(e, this._onClickBody));
117 | }
118 | }
119 | }
120 |
121 | private _shouldExclude(target): boolean {
122 | for (let excludedNode of this._nodesExcluded) {
123 | if (excludedNode.contains(target)) {
124 | return true;
125 | }
126 | }
127 |
128 | return false;
129 | }
130 | }
131 | @NgModule({
132 | exports: [ClickOutsideDirective],
133 | declarations: [ClickOutsideDirective]
134 | })
135 |
136 | export class ClickOutsideModule {
137 | }
138 |
--------------------------------------------------------------------------------
/src/app/form-primeng/form-primeng.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/app/form-primeng/form-primeng.component.css
--------------------------------------------------------------------------------
/src/app/form-primeng/form-primeng.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/src/app/form-primeng/form-primeng.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 | import {Car, Message, SelectItem} from "../common/car";
3 | import {beforeUrl,pageAnimation} from "../common/public-data";
4 | import {Validators,FormControl,FormGroup,FormBuilder} from '@angular/forms';
5 | @Component({
6 | selector: 'app-form-primeng',
7 | templateUrl: './form-primeng.component.html',
8 | styleUrls: ['./form-primeng.component.css'],
9 | animations: [
10 | pageAnimation
11 | ]
12 | })
13 | export class FormPrimengComponent implements OnInit {
14 |
15 | constructor(private fb: FormBuilder) {}
16 | ngOnInit() {
17 | this.msgs.push({severity:'info', summary:'Info Message', detail:'PrimeNG rocks'});
18 | this.userform = this.fb.group({
19 | 'firstname': new FormControl('', Validators.required),
20 | 'lastname': new FormControl('', Validators.required),
21 | 'password': new FormControl('', Validators.compose([Validators.required, Validators.minLength(6)])),
22 | 'description': new FormControl(''),
23 | 'gender': new FormControl('', Validators.required)
24 | });
25 |
26 | this.genders = [];
27 | this.genders.push({label:'Select Gender', value:''});
28 | this.genders.push({label:'Male', value:'Male'});
29 | this.genders.push({label:'Female', value:'Female'});
30 | }
31 |
32 | msgs: Message[] = [];
33 | userform: FormGroup;
34 | submitted: boolean;
35 | genders: SelectItem[];
36 | description: string;
37 |
38 | onSubmit(value: string) {
39 | this.submitted = true;
40 | this.msgs = [];
41 | this.msgs.push({severity:'info', summary:'Success', detail:'Form Submitted'});
42 | }
43 |
44 | get diagnostic() { return JSON.stringify(this.userform.value); }
45 |
46 | }
47 |
--------------------------------------------------------------------------------
/src/app/form-primeng/form-primeng.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule } from '@angular/core';
2 | import { CommonModule } from '@angular/common';
3 | import { RouterModule} from "@angular/router";
4 | import {
5 | PanelMenuModule,
6 | TabMenuModule, //tabMenu
7 | AutoCompleteModule,
8 | ButtonModule, //Button
9 | PanelModule, //容器
10 | InputTextModule,
11 | DataTableModule, //表格
12 | DialogModule, //浮层
13 | SplitButtonModule,
14 | TabViewModule, //table
15 | AccordionModule,//手风琴
16 | SharedModule,
17 | CalendarModule,
18 | GrowlModule,//弹出框
19 | MultiSelectModule,//多选
20 | ListboxModule,//多选框
21 | DropdownModule,//下拉
22 | CheckboxModule,//多选
23 | MessagesModule,//Messages
24 | PaginatorModule,//分页
25 | ConfirmDialogModule,//删除弹出框
26 | InputTextareaModule,// InputTextarea
27 | OverlayPanelModule,
28 | TooltipModule,
29 | } from 'primeng/primeng';
30 | import {FormsModule, ReactiveFormsModule} from "@angular/forms";
31 | import {HttpModule, JsonpModule} from "@angular/http";
32 | import {MyBreadcrumbModule} from "../components/my-breadcrumb/my-breadcrumb";
33 | import {FormPrimengComponent} from "./form-primeng.component";
34 |
35 |
36 |
37 | @NgModule({
38 | imports: [
39 | FormsModule,
40 | ReactiveFormsModule,
41 | CommonModule,
42 | ReactiveFormsModule,
43 |
44 | ButtonModule,
45 | PanelModule,
46 | InputTextModule,
47 | DataTableModule,
48 | DialogModule,
49 | SharedModule,
50 | CalendarModule,
51 | GrowlModule,
52 | MultiSelectModule,
53 | DropdownModule,
54 | CheckboxModule,
55 | PaginatorModule,
56 | TooltipModule,
57 | OverlayPanelModule,
58 | InputTextareaModule,
59 | MyBreadcrumbModule,
60 |
61 |
62 | RouterModule.forChild([
63 | { path:'',component:FormPrimengComponent}
64 | ])
65 | ],
66 | declarations: [FormPrimengComponent],
67 | exports:[RouterModule]
68 | })
69 | export class FormPrimengModule { }
70 |
--------------------------------------------------------------------------------
/src/app/icon/icon.component.css:
--------------------------------------------------------------------------------
1 | .iocn-box{
2 | background-color: #C0CCDA;
3 | border-radius: 5px;
4 | width: 150px;
5 | height: 80px;
6 | margin: 10px;
7 | float: left;
8 | font-size: 30px;
9 | text-align: center;
10 | line-height: 40px;
11 | }
12 | .iocn-box p{
13 | font-size: 14px;
14 | }
15 | .iconall-box{
16 | float: left;
17 | padding: 3px 0;
18 | width: 190px ;
19 |
20 | }
21 | h2{
22 | width: 100%;
23 | padding: 20px 5px;
24 | overflow: hidden;
25 | }
26 |
27 |
--------------------------------------------------------------------------------
/src/app/icon/icon.component.html:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
12 |
41 New Icons in 4.7
13 |
14 |
15 |
16 | {{item1}}
17 |
18 |
19 |
20 |
21 |
Web Application Icons
22 |
23 |
24 |
25 | {{item1}}
26 |
27 |
28 |
29 |
30 |
Accessibility Icons
31 |
32 |
33 |
34 | {{item1}}
35 |
36 |
37 |
38 |
39 |
Hand Icons
40 |
41 |
42 |
43 | {{item1}}
44 |
45 |
46 |
47 |
48 |
Transportation Icons
49 |
50 |
51 |
52 | {{item1}}
53 |
54 |
55 |
56 |
57 |
Gender Icons
58 |
59 |
60 |
61 | {{item1}}
62 |
63 |
64 |
65 |
66 |
File Type Icons
67 |
68 |
69 |
70 | {{item1}}
71 |
72 |
73 |
74 |
75 |
Spinner Icons
76 |
77 |
78 |
79 | {{item1}}
80 |
81 |
82 |
83 |
84 |
Form Control Icons
85 |
86 |
87 |
88 | {{item1}}
89 |
90 |
91 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/src/app/icon/icon.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { IconComponent } from './icon.component';
4 |
5 | describe('IconComponent', () => {
6 | let component: IconComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async(() => {
10 | TestBed.configureTestingModule({
11 | declarations: [ IconComponent ]
12 | })
13 | .compileComponents();
14 | }));
15 |
16 | beforeEach(() => {
17 | fixture = TestBed.createComponent(IconComponent);
18 | component = fixture.componentInstance;
19 | fixture.detectChanges();
20 | });
21 |
22 | it('should be created', () => {
23 | expect(component).toBeTruthy();
24 | });
25 | });
26 |
--------------------------------------------------------------------------------
/src/app/icon/icon.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule } from '@angular/core';
2 | import { CommonModule } from '@angular/common';
3 | import { RouterModule} from "@angular/router";
4 | import {
5 | PanelMenuModule,
6 | TabMenuModule, //tabMenu
7 | AutoCompleteModule,
8 | ButtonModule, //Button
9 | PanelModule, //容器
10 | InputTextModule,
11 | DataTableModule, //表格
12 | DialogModule, //浮层
13 | SplitButtonModule,
14 | TabViewModule, //table
15 | AccordionModule,//手风琴
16 | SharedModule,
17 | CalendarModule,
18 | GrowlModule,//弹出框
19 | MultiSelectModule,//多选
20 | ListboxModule,//多选框
21 | DropdownModule,//下拉
22 | CheckboxModule,//多选
23 | MessagesModule,//Messages
24 | PaginatorModule,//分页
25 | ConfirmDialogModule,//删除弹出框
26 | InputTextareaModule,// InputTextarea
27 | OverlayPanelModule,
28 | TooltipModule,
29 | } from 'primeng/primeng';
30 | import {FormsModule, ReactiveFormsModule} from "@angular/forms";
31 | import {HttpModule, JsonpModule} from "@angular/http";
32 | import {IconComponent} from './icon.component';
33 | import {MyBreadcrumbModule} from '../components/my-breadcrumb/my-breadcrumb';
34 |
35 |
36 |
37 |
38 |
39 |
40 | @NgModule({
41 | imports: [
42 | FormsModule,
43 | ReactiveFormsModule,
44 | CommonModule,
45 | ReactiveFormsModule,
46 |
47 | ButtonModule,
48 | PanelModule,
49 | InputTextModule,
50 | DataTableModule,
51 | DialogModule,
52 | SharedModule,
53 | CalendarModule,
54 | GrowlModule,
55 | MultiSelectModule,
56 | DropdownModule,
57 | CheckboxModule,
58 | PaginatorModule,
59 | TooltipModule,
60 | OverlayPanelModule,
61 |
62 | MyBreadcrumbModule,
63 |
64 |
65 | RouterModule.forChild([
66 | { path:'',component:IconComponent}
67 | ])
68 | ],
69 | declarations: [IconComponent],
70 | exports:[RouterModule]
71 | })
72 | export class IconModule { }
73 |
--------------------------------------------------------------------------------
/src/app/input/input.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/app/input/input.component.css
--------------------------------------------------------------------------------
/src/app/input/input.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | First Name *:
11 |
12 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/src/app/input/input.component.ts:
--------------------------------------------------------------------------------
1 | import {Component, OnInit} from '@angular/core';
2 | import {trigger, state, style, animate, transition} from '@angular/animations';
3 | import {Car, Message, SelectItem} from '../common/car';
4 | import {beforeUrl,pageAnimation,China} from "../common/public-data";
5 |
6 | @Component({
7 | selector: 'app-input',
8 | templateUrl: './input.component.html',
9 | styleUrls: ['./input.component.css'],
10 | animations: [
11 | pageAnimation
12 | ]
13 | })
14 | export class InputComponent implements OnInit {
15 |
16 |
17 |
18 | constructor() {
19 | }
20 |
21 | ngOnInit() {
22 | this.China = China;
23 | }
24 |
25 | China: any;
26 | msgs: Message[] = []; //消息
27 | }
28 |
--------------------------------------------------------------------------------
/src/app/input/input.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule } from '@angular/core';
2 | import { CommonModule } from '@angular/common';
3 | import { RouterModule} from "@angular/router";
4 | import {
5 | PanelMenuModule,
6 | TabMenuModule, //tabMenu
7 | AutoCompleteModule,
8 | ButtonModule, //Button
9 | PanelModule, //容器
10 | InputTextModule,
11 | DataTableModule, //表格
12 | DialogModule, //浮层
13 | SplitButtonModule,
14 | TabViewModule, //table
15 | AccordionModule,//手风琴
16 | SharedModule,
17 | CalendarModule,
18 | GrowlModule,//弹出框
19 | MultiSelectModule,//多选
20 | ListboxModule,//多选框
21 | DropdownModule,//下拉
22 | CheckboxModule,//多选
23 | MessagesModule,//Messages
24 | PaginatorModule,//分页
25 | ConfirmDialogModule,//删除弹出框
26 | InputTextareaModule,// InputTextarea
27 | OverlayPanelModule,
28 | TooltipModule,
29 | } from 'primeng/primeng';
30 | import {FormsModule, ReactiveFormsModule} from "@angular/forms";
31 | import {HttpModule, JsonpModule} from "@angular/http";
32 | import {MyBreadcrumbModule} from "../components/my-breadcrumb/my-breadcrumb";
33 | import {InputComponent} from "./input.component";
34 |
35 |
36 |
37 |
38 | @NgModule({
39 | imports: [
40 | FormsModule,
41 | ReactiveFormsModule,
42 | CommonModule,
43 | ReactiveFormsModule,
44 |
45 | ButtonModule,
46 | PanelModule,
47 | InputTextModule,
48 | DataTableModule,
49 | DialogModule,
50 | SharedModule,
51 | CalendarModule,
52 | GrowlModule,
53 | MultiSelectModule,
54 | DropdownModule,
55 | CheckboxModule,
56 | PaginatorModule,
57 | TooltipModule,
58 | OverlayPanelModule,
59 |
60 | MyBreadcrumbModule,
61 |
62 |
63 | RouterModule.forChild([
64 | { path:'',component:InputComponent}
65 | ])
66 | ],
67 | declarations: [InputComponent],
68 | exports:[RouterModule]
69 | })
70 | export class InputModule { }
71 |
--------------------------------------------------------------------------------
/src/app/login/login.component.css:
--------------------------------------------------------------------------------
1 |
2 | .background {
3 | width: 100%;
4 | min-width: 1320px;
5 | height: 100%;
6 | background-color: #289973;
7 | position: relative;
8 | }
9 |
10 | .login-container {
11 | width: 1280px;
12 | height: 720px;
13 | position: absolute;
14 | top: 50%;
15 | left: 50%;
16 | margin-top: -360px;
17 | margin-left: -640px;
18 | -moz-border-radius: 5px;
19 | -webkit-border-radius: 5px;
20 | border-radius: 5px;
21 | background-color: #fff;
22 | overflow: hidden;
23 | }
24 |
25 | .title-box {
26 | float: left;
27 | width: 548px;
28 | height: 100%;
29 | background: #ebebeb url("../../assets/image/titlebg.png") 50px 55px no-repeat;
30 | text-align: center;
31 | line-height: 650px;
32 | font-size: 34px;
33 | color: #20a0ff;
34 | }
35 |
36 | .login-box {
37 | float: left;
38 | width: 420px;
39 | margin-top: 110px;
40 | margin-left: 155px;
41 | }
42 |
43 | .logo {
44 | width: 100%;
45 | height: 150px;
46 | text-align: center;
47 | }
48 |
49 | .logo img {
50 | height: 100%;
51 | }
52 |
53 | .login-body {
54 | width: 100%;
55 | margin-top: 30px;
56 | }
57 |
58 | .login-body input {
59 | width: 100%;
60 | padding: 18px 5px 18px 70px;
61 | font-size: 16px;
62 | }
63 |
64 | .login-body .ui-g-12 {
65 | position: relative;
66 | padding: 0;
67 | }
68 |
69 | .login-body .ui-g-12 .fa-user {
70 | position: absolute;
71 | top: 16px;
72 | left: 21px;
73 | font-size: 24px;
74 | }
75 |
76 | .login-body .ui-g-12 .fa-unlock-alt {
77 | position: absolute;
78 | top: 16px;
79 | left: 21px;
80 | font-size: 24px;
81 | }
82 |
83 | .login-btn {
84 | width: 100%;
85 | display: inline-block;
86 | white-space: nowrap;
87 | cursor: pointer;
88 | margin: 0;
89 | padding: 10px 15px;
90 | border-radius: 4px;
91 | font-size: 24px;
92 | box-sizing: border-box;
93 | outline: 0;
94 | line-height: 30px;
95 | text-align: center;
96 | color: #fff;
97 | background-color: #20a0ff;
98 | border-color: #20a0ff;
99 | -webkit-appearance: none;
100 | text-transform: none;
101 | overflow: visible;
102 | }
103 |
104 | .login-btn:hover, .login-btn:active, .login-btn:focus {
105 | background: #4db3ff;
106 | border-color: #4db3ff;
107 | color: #fff;
108 | }
109 |
110 |
--------------------------------------------------------------------------------
/src/app/login/login.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 管理后台
5 |
6 |
7 |
8 |

9 |
10 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/src/app/login/login.component.ts:
--------------------------------------------------------------------------------
1 | import {Component, OnInit} from '@angular/core';
2 | import {ActivatedRoute, Router, ActivatedRouteSnapshot, RouterState, RouterStateSnapshot} from '@angular/router';
3 | import {Base64} from 'js-base64';
4 | import {LoginService} from './login.service';
5 | @Component({
6 | selector: 'app-login',
7 | templateUrl: './login.component.html',
8 | styleUrls: ['./login.component.css']
9 | })
10 | export class LoginComponent implements OnInit {
11 |
12 | constructor(public router: Router, private myService: LoginService,) {
13 | }
14 |
15 | ngOnInit() {
16 |
17 | }
18 |
19 | nameModel: any;
20 | psModel: any;
21 | btnLogin: string = '登 录';
22 | loginerrortext: string = '';
23 | userToken: string;
24 | realname: string;
25 |
26 |
27 | login() {
28 | if (!this.nameModel || !this.psModel) {
29 | this.loginerrortext = '请填写账号密码';
30 | } else {
31 | this.userToken = `Basic ${Base64.encode(this.nameModel + ':' + this.psModel)}`;
32 | this.myService.login(this.userToken)
33 | .subscribe(res => {
34 | this.btnLogin = '登 录 中 ...';
35 | sessionStorage.setItem('userToken', this.userToken);
36 | console.log(res);
37 | if (res.name === this.nameModel) {
38 | this.router.navigateByUrl('workspace');
39 | } else {
40 | this.loginerrortext = '您输入的账号密码有误';
41 | }
42 | }, err => {
43 | if (err.status == 401) {
44 | this.loginerrortext = '您输入的账号密码有误';
45 | } else {
46 | this.loginerrortext = '服务器正忙,请稍后再试';
47 | }
48 | });
49 | }
50 | }
51 |
52 | inputFocus() {
53 | this.loginerrortext = '';
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/app/login/login.service.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * 这里可能放很多公用的api接口
3 | */
4 | import {Injectable} from '@angular/core';
5 | import 'rxjs/add/operator/catch';
6 | import 'rxjs/add/operator/toPromise';
7 | import {beforeUrl} from '../common/public-data';
8 | import {HttpClient, HttpHeaders} from '@angular/common/http';
9 | import {catchError, tap} from 'rxjs/operators';
10 | import {Observable} from 'rxjs/Observable';
11 |
12 | @Injectable()
13 | export class LoginService {
14 | constructor(private http: HttpClient) {
15 | }
16 |
17 | //登录
18 | private loginUrl = 'assets/login.json';
19 | login(userToken: string): Observable {
20 | let httpOptions: any;
21 | httpOptions = {
22 | headers: new HttpHeaders({
23 | 'Content-Type': 'application/json',
24 | 'Authorization': userToken
25 | })
26 | };
27 | let url = this.loginUrl;
28 | return this.http
29 | .get(url,httpOptions)
30 | .pipe(
31 | tap((res: any) => res),
32 | catchError((error: Response | any) => {
33 | return Promise.reject(error);
34 | })
35 | );
36 | }
37 |
38 | }//class end
39 |
--------------------------------------------------------------------------------
/src/app/ng-form/ng-form.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/app/ng-form/ng-form.component.css
--------------------------------------------------------------------------------
/src/app/ng-form/ng-form.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/src/app/ng-form/ng-form.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 | import {trigger, state, style, animate, transition} from "@angular/animations";
3 | import {Car, Message, SelectItem} from "../common/car";
4 | import {beforeUrl, pageAnimation} from "../common/public-data";
5 | @Component({
6 | selector: 'app-ng-form',
7 | templateUrl: './ng-form.component.html',
8 | styleUrls: ['./ng-form.component.css'],
9 | animations: [
10 | pageAnimation
11 | ]
12 | })
13 | export class NgFormComponent implements OnInit {
14 |
15 | constructor() { }
16 |
17 | ngOnInit() {
18 | }
19 | msgs: Message[] = []; //消息
20 | userNameModel:string
21 | doLogin(){
22 |
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/app/ng-form/ng-form.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule } from '@angular/core';
2 | import { CommonModule } from '@angular/common';
3 | import { RouterModule} from "@angular/router";
4 | import {
5 | PanelMenuModule,
6 | TabMenuModule, //tabMenu
7 | AutoCompleteModule,
8 | ButtonModule, //Button
9 | PanelModule, //容器
10 | InputTextModule,
11 | DataTableModule, //表格
12 | DialogModule, //浮层
13 | SplitButtonModule,
14 | TabViewModule, //table
15 | AccordionModule,//手风琴
16 | SharedModule,
17 | CalendarModule,
18 | GrowlModule,//弹出框
19 | MultiSelectModule,//多选
20 | ListboxModule,//多选框
21 | DropdownModule,//下拉
22 | CheckboxModule,//多选
23 | MessagesModule,//Messages
24 | PaginatorModule,//分页
25 | ConfirmDialogModule,//删除弹出框
26 | InputTextareaModule,// InputTextarea
27 | OverlayPanelModule,
28 | TooltipModule,
29 | } from 'primeng/primeng';
30 | import {FormsModule, ReactiveFormsModule} from "@angular/forms";
31 | import {HttpModule, JsonpModule} from "@angular/http";
32 | import {MyBreadcrumbModule} from "../components/my-breadcrumb/my-breadcrumb";
33 | import {NgFormComponent} from "./ng-form.component";
34 |
35 |
36 |
37 | @NgModule({
38 | imports: [
39 | FormsModule,
40 | ReactiveFormsModule,
41 | HttpModule,
42 | JsonpModule,
43 | CommonModule,
44 | ReactiveFormsModule,
45 |
46 | ButtonModule,
47 | PanelModule,
48 | InputTextModule,
49 | DataTableModule,
50 | DialogModule,
51 | SharedModule,
52 | CalendarModule,
53 | GrowlModule,
54 | MultiSelectModule,
55 | DropdownModule,
56 | CheckboxModule,
57 | PaginatorModule,
58 | TooltipModule,
59 | OverlayPanelModule,
60 |
61 | MyBreadcrumbModule,
62 |
63 |
64 | RouterModule.forChild([
65 | { path:'',component:NgFormComponent}
66 | ])
67 | ],
68 | declarations: [NgFormComponent],
69 | exports:[RouterModule]
70 | })
71 | export class NgFormModule { }
72 |
--------------------------------------------------------------------------------
/src/app/not-found.component.ts:
--------------------------------------------------------------------------------
1 |
2 | import { Component } from '@angular/core';
3 | import {Location} from "@angular/common";
4 | @Component({
5 | template: `
6 |
8 | `,
9 | styles: [ ' .PageNotFoundComponent { height: 800px }' ],
10 | })
11 | export class PageNotFoundComponent {
12 | constructor(private location: Location) {
13 | };
14 | goBack(){
15 | this.location.back();
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/app/rxjs-all.ts:
--------------------------------------------------------------------------------
1 |
2 | // Statics
3 | import 'rxjs/add/observable/throw';
4 | import 'rxjs/add/observable/combineLatest';
5 | import 'rxjs/add/observable/from';
6 | import 'rxjs/add/observable/of';
7 | // Operators
8 | import 'rxjs/add/operator/catch';
9 |
10 | import 'rxjs/add/operator/debounceTime';
11 | import 'rxjs/add/operator/distinctUntilChanged';
12 | import 'rxjs/add/operator/map';
13 | import 'rxjs/add/operator/switchMap';
14 | import 'rxjs/add/operator/toPromise';
15 | import 'rxjs/add/operator/startWith';
16 | import 'rxjs/add/operator/bufferCount';
17 | import 'rxjs/add/operator/bufferTime';
18 |
--------------------------------------------------------------------------------
/src/app/tree/tree.component.css:
--------------------------------------------------------------------------------
1 | .div{
2 | width: 200px;
3 | height: 150px;
4 | overflow: hidden;
5 | position: relative;
6 | background-color: #4db3ff;
7 | }
8 | .div-span{
9 | display: inline-block;
10 | background-color: red;
11 | color: #ffffff;
12 | width: 150px;
13 | height: 50px;
14 | left: 92px;
15 | top: 10px;
16 | text-align: center;
17 | line-height: 50px;
18 | position: absolute;
19 | transform: rotate(45deg);
20 | -ms-transform: rotate(45deg); /* IE 9 */
21 | -webkit-transform: rotate(45deg); /* Safari and Chrome */
22 | }
23 |
--------------------------------------------------------------------------------
/src/app/tree/tree.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Checkbox Selection
8 |
9 |
10 |
11 |
12 |
Selected Nodes: {{file.data.name}}
13 |
14 |
15 |
16 |
17 |
Selected Nodes: {{file.data}}
18 |
19 |
--------------------------------------------------------------------------------
/src/app/tree/tree.component.ts:
--------------------------------------------------------------------------------
1 | import {Component, OnInit} from '@angular/core';
2 | import {beforeUrl, pageAnimation} from '../common/public-data';
3 | import {TreeNode} from 'primeng/primeng';
4 | import {Message} from '../common/car';
5 | @Component({
6 | selector: 'app-tree',
7 | templateUrl: './tree.component.html',
8 | styleUrls: ['./tree.component.css'],
9 | animations: [
10 | pageAnimation
11 | ]
12 | })
13 | export class TreeComponent implements OnInit {
14 |
15 | constructor() {
16 | }
17 |
18 | ngOnInit() {
19 | this.filesTree4 = [
20 | {
21 | 'label': 'Documents',
22 | 'data': 'Documents Folder',
23 | 'expandedIcon': 'fa-folder-open',
24 | 'collapsedIcon': 'fa-folder',
25 | selected: true,
26 | 'children': [{
27 | 'label': 'Work',
28 | 'data': 'Work Folder',
29 | 'expandedIcon': 'fa-folder-open',
30 | 'collapsedIcon': 'fa-folder',
31 | selected: true,
32 | },
33 | {
34 | 'label': 'Home',
35 | 'data': 'Home Folder',
36 | 'expandedIcon': 'fa-folder-open',
37 | 'collapsedIcon': 'fa-folder',
38 | selected: true,
39 | }]
40 | },
41 | {
42 | 'label': 'Pictures',
43 | 'data': 'Pictures Folder',
44 | 'expandedIcon': 'fa-folder-open',
45 | 'collapsedIcon': 'fa-folder',
46 | 'children': [
47 | {'label': 'barcelona.jpg', 'icon': 'fa-file-image-o', 'data': 'Barcelona Photo'},
48 | {'label': 'logo.jpg', 'icon': 'fa-file-image-o', 'data': 'PrimeFaces Logo'},
49 | {'label': 'primeui.png', 'icon': 'fa-file-image-o', 'data': 'PrimeUI Logo'}]
50 | },
51 | {
52 | 'label': 'Movies',
53 | 'data': 'Movies Folder',
54 | 'expandedIcon': 'fa-folder-open',
55 | 'collapsedIcon': 'fa-folder',
56 | 'children': [{
57 | 'label': 'Al Pacino',
58 | 'data': 'Pacino Movies',
59 | 'children': [{'label': 'Scarface', 'icon': 'fa-file-video-o', 'data': 'Scarface Movie'}, {
60 | 'label': 'Serpico',
61 | 'icon': 'fa-file-video-o',
62 | 'data': 'Serpico Movie'
63 | }]
64 | },
65 | {
66 | 'label': 'Robert De Niro',
67 | 'data': 'De Niro Movies',
68 | 'children': [{
69 | 'label': 'Goodfellas',
70 | 'icon': 'fa-file-video-o',
71 | 'data': 'Goodfellas Movie'
72 | }, {'label': 'Untouchables', 'icon': 'fa-file-video-o', 'data': 'Untouchables Movie'}]
73 | }]
74 | }
75 | ];
76 | setTimeout(() => {
77 |
78 | },200);
79 |
80 | }
81 |
82 | files4: TreeNode[] = [
83 | {
84 | 'data': {
85 | 'name': 'Documents',
86 | 'size': '75kb',
87 | 'type': 'Folder'
88 | },
89 | 'children': [
90 | {
91 | 'data': {
92 | 'name': 'Work',
93 | 'size': '55kb',
94 | 'type': 'Folder'
95 | },
96 | 'children': [
97 | {
98 | 'data': {
99 | 'name': 'Expenses.doc',
100 | 'size': '30kb',
101 | 'type': 'Document'
102 | }
103 | },
104 | {
105 | 'data': {
106 | 'name': 'Resume.doc',
107 | 'size': '25kb',
108 | 'type': 'Resume'
109 | }
110 | }
111 | ]
112 | },
113 | {
114 | 'data': {
115 | 'name': 'Home',
116 | 'size': '20kb',
117 | 'type': 'Folder'
118 | },
119 | 'children': [
120 | {
121 | 'data': {
122 | 'name': 'Invoices',
123 | 'size': '20kb',
124 | 'type': 'Text'
125 | }
126 | }
127 | ]
128 | }
129 | ]
130 | },
131 | {
132 | 'data': {
133 | 'name': 'Pictures',
134 | 'size': '150kb',
135 | 'type': 'Folder'
136 | },
137 | 'children': [
138 | {
139 | 'data': {
140 | 'name': 'barcelona.jpg',
141 | 'size': '90kb',
142 | 'type': 'Picture'
143 | }
144 | },
145 | {
146 | 'data': {
147 | 'name': 'primeui.png',
148 | 'size': '30kb',
149 | 'type': 'Picture'
150 | }
151 | },
152 | {
153 | 'data': {
154 | 'name': 'optimus.jpg',
155 | 'size': '30kb',
156 | 'type': 'Picture'
157 | }
158 | }
159 | ]
160 | }
161 | ];
162 | selectedFiles2: TreeNode;
163 | msgs: Message[] = []; //消息
164 | filesTree4: any[];
165 | selectedFiles3: any;
166 |
167 | onNodeSelect(e) {
168 | console.log(e);
169 | console.log(this.selectedFiles3);
170 | }
171 | }
172 |
--------------------------------------------------------------------------------
/src/app/tree/tree.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule } from '@angular/core';
2 | import { CommonModule } from '@angular/common';
3 | import { RouterModule} from "@angular/router";
4 | import {
5 | PanelMenuModule,
6 | TabMenuModule, //tabMenu
7 | AutoCompleteModule,
8 | ButtonModule, //Button
9 | PanelModule, //容器
10 | InputTextModule,
11 | DataTableModule, //表格
12 | DialogModule, //浮层
13 | SplitButtonModule,
14 | TabViewModule, //table
15 | AccordionModule,//手风琴
16 | SharedModule,
17 | CalendarModule,
18 | GrowlModule,//弹出框
19 | MultiSelectModule,//多选
20 | ListboxModule,//多选框
21 | DropdownModule,//下拉
22 | CheckboxModule,//多选
23 | MessagesModule,//Messages
24 | PaginatorModule,//分页
25 | ConfirmDialogModule,//删除弹出框
26 | InputTextareaModule,// InputTextarea
27 | OverlayPanelModule,
28 | TooltipModule, TreeTableModule, TreeModule,
29 | } from 'primeng/primeng';
30 | import {FormsModule, ReactiveFormsModule} from "@angular/forms";
31 | import {HttpModule, JsonpModule} from "@angular/http";
32 | import {MyBreadcrumbModule} from "../components/my-breadcrumb/my-breadcrumb";
33 | import {TreeComponent} from './tree.component';
34 |
35 |
36 |
37 | @NgModule({
38 | imports: [
39 | FormsModule,
40 | ReactiveFormsModule,
41 | HttpModule,
42 | JsonpModule,
43 | CommonModule,
44 | ReactiveFormsModule,
45 |
46 | ButtonModule,
47 | PanelModule,
48 | InputTextModule,
49 | DataTableModule,
50 | DialogModule,
51 | SharedModule,
52 | CalendarModule,
53 | GrowlModule,
54 | MultiSelectModule,
55 | DropdownModule,
56 | CheckboxModule,
57 | PaginatorModule,
58 | TooltipModule,
59 | OverlayPanelModule,
60 | TreeModule,
61 | MyBreadcrumbModule,
62 | TreeTableModule,SharedModule,
63 |
64 | RouterModule.forChild([
65 | { path:'',component:TreeComponent}
66 | ])
67 | ],
68 | declarations: [TreeComponent],
69 | exports:[RouterModule]
70 | })
71 | export class TreeDemoModule { }
72 |
--------------------------------------------------------------------------------
/src/app/upload/upload.component.css:
--------------------------------------------------------------------------------
1 | .upload-button {
2 | display: inline-block;
3 | line-height: 1;
4 | white-space: nowrap;
5 | cursor: pointer;
6 | border-color: #c4c4c4;
7 | -webkit-appearance: none;
8 | text-align: center;
9 | box-sizing: border-box;
10 | outline: none;
11 | margin: 0;
12 | -moz-user-select: none;
13 | -webkit-user-select: none;
14 | -ms-user-select: none;
15 | padding: 10px 15px;
16 | font-size: 14px;
17 | border-radius: 4px;
18 | color: #fff;
19 | background-color: #20a0ff;
20 | border-color: #20a0ff;
21 | }
22 |
23 | .upload-button input {
24 | display: none;
25 | }
26 |
27 | .upload-file {
28 | margin: 10px;
29 | cursor: pointer;
30 | position: relative;
31 | }
32 |
33 | .progress-box {
34 | width: 100%;
35 | height: 164px;
36 | text-align: center;
37 | padding-top: 37px;
38 | }
39 |
40 | .img-box {
41 | width: 100%;
42 | height: 100%;
43 | text-align: center;
44 | }
45 |
46 | .img-box img {
47 | width: 100%;
48 | }
49 |
50 |
--------------------------------------------------------------------------------
/src/app/upload/upload.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | {{ f.name }}
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |

27 |
28 |
29 |
30 |
31 |
32 | {{response|json}}
33 |
34 |
35 |
36 | 展示 和 primeng 不一样的上传 (带请求头);样式大家自己可以组装一下;他的官网样式也不是很好
37 |
38 |
39 | github 地址 ngx-uploader ngx-uploader
40 |
--------------------------------------------------------------------------------
/src/app/upload/upload.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { ColorComponent } from './upload.component';
4 |
5 | describe('ColorComponent', () => {
6 | let component: ColorComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async(() => {
10 | TestBed.configureTestingModule({
11 | declarations: [ ColorComponent ]
12 | })
13 | .compileComponents();
14 | }));
15 |
16 | beforeEach(() => {
17 | fixture = TestBed.createComponent(ColorComponent);
18 | component = fixture.componentInstance;
19 | fixture.detectChanges();
20 | });
21 |
22 | it('should be created', () => {
23 | expect(component).toBeTruthy();
24 | });
25 | });
26 |
--------------------------------------------------------------------------------
/src/app/upload/upload.component.ts:
--------------------------------------------------------------------------------
1 | import {Component, EventEmitter, OnInit} from '@angular/core';
2 | import {UploadOutput, UploadInput, UploadFile, humanizeBytes, UploaderOptions, UploadStatus} from 'ngx-uploader';
3 | import {ToastrService} from 'ngx-toastr';
4 | import {beforeUrl, imgReadUrl} from '../common/public-data';
5 |
6 | interface FormData {
7 | concurrency: number;
8 | autoUpload: boolean;
9 | verbose: boolean;
10 | }
11 |
12 | @Component({
13 | selector: 'app-upload',
14 | templateUrl: './upload.component.html',
15 | styleUrls: ['./upload.component.css']
16 | })
17 | export class UploadComponent implements OnInit {
18 |
19 | constructor(private toastr: ToastrService) {
20 | this.options = {concurrency: 1, allowedContentTypes: ['image/png', 'image/jpeg', 'image/gif']};
21 | this.files = [];
22 | this.uploadInput = new EventEmitter();
23 | this.humanizeBytes = humanizeBytes;
24 | }
25 |
26 | ngOnInit() {
27 | }
28 |
29 | files: UploadFile[];
30 | uploadInput: EventEmitter;
31 | humanizeBytes: Function;
32 | dragOver: boolean;
33 | options: UploaderOptions;
34 | imgboxNgif: boolean = false;
35 | progressboxNgif: boolean = true;
36 | imgReadUrl: string = imgReadUrl;
37 | thumbnailUrl: string;
38 | originImgUrl: string;
39 | response: any;
40 |
41 | /**
42 | * 上传
43 | *
44 | */
45 | onUploadOutput(output: UploadOutput): void {
46 | if (output.type === 'done') {
47 | // this.thumbnailUrl = output.file.response.thumbnail;
48 | // this.originImgUrl = output.file.response.originImg;
49 | this.progressboxNgif = false;
50 | this.imgboxNgif = true;
51 | console.log(output.file.response);
52 | this.response = output.file.response;
53 | this.toastr.success('上传挺简单的吧');
54 | }
55 | if (output.type === 'allAddedToQueue') {
56 | const event: UploadInput = {
57 | type: 'uploadAll',
58 | url: 'http://ngx-uploader.com/upload',
59 | method: 'POST',
60 | data: {foo: 'bar'}
61 | };
62 |
63 | this.uploadInput.emit(event);
64 | } else if (output.type === 'addedToQueue' && typeof output.file !== 'undefined') {
65 | this.progressboxNgif = true;
66 | this.imgboxNgif = false;
67 | this.files.push(output.file);
68 | } else if (output.type === 'uploading' && typeof output.file !== 'undefined') {
69 | const index = this.files.findIndex(file => typeof output.file !== 'undefined' && file.id === output.file.id);
70 | this.files[index] = output.file;
71 | } else if (output.type === 'removed') {
72 | this.files = this.files.filter((file: UploadFile) => file !== output.file);
73 | } else if (output.type === 'dragOver') {
74 | this.dragOver = true;
75 | } else if (output.type === 'dragOut') {
76 | this.dragOver = false;
77 | } else if (output.type === 'drop') {
78 | this.dragOver = false;
79 | } else if (output.type === 'rejected' && typeof output.file !== 'undefined') {
80 | console.log(output.file.name + ' rejected');
81 | }
82 |
83 | this.files = this.files.filter(file => file.progress.status !== UploadStatus.Done);
84 | }
85 |
86 | startUpload(): void {
87 | const event: UploadInput = {
88 | type: 'uploadAll',
89 | url: 'http://ngx-uploader.com/upload',
90 | method: 'POST',
91 | data: {foo: 'bar'}
92 | };
93 |
94 | this.uploadInput.emit(event);
95 | }
96 |
97 | cancelUpload(id: string): void {
98 | this.uploadInput.emit({type: 'cancel', id: id});
99 | }
100 |
101 | removeFile(id: string): void {
102 | this.uploadInput.emit({type: 'remove', id: id});
103 | }
104 |
105 | removeAllFiles(): void {
106 | this.uploadInput.emit({type: 'removeAll'});
107 | }
108 | }
109 |
--------------------------------------------------------------------------------
/src/app/upload/upload.module.ts:
--------------------------------------------------------------------------------
1 | import {NgModule} from '@angular/core';
2 | import {CommonModule} from '@angular/common';
3 | import {RouterModule} from '@angular/router';
4 | import {
5 | ButtonModule, //Button
6 | PanelModule, //容器
7 | InputTextModule,
8 | DataTableModule, //表格
9 | DialogModule, //浮层
10 | SharedModule,
11 | CalendarModule,
12 | GrowlModule,//弹出框
13 | MultiSelectModule,//多选
14 | DropdownModule,//下拉
15 | CheckboxModule,//多选
16 | PaginatorModule,//分页
17 | OverlayPanelModule,
18 | TooltipModule,
19 | } from 'primeng/primeng';
20 | import {FormsModule, ReactiveFormsModule} from '@angular/forms';
21 | import {UploadComponent} from './upload.component';
22 | import {MyBreadcrumbModule} from '../components/my-breadcrumb/my-breadcrumb';
23 |
24 | import {NgUploaderModule} from 'ngx-uploader';
25 | import {ElChildModules} from 'element-angular';
26 |
27 |
28 | @NgModule({
29 | imports: [
30 | FormsModule,
31 | ReactiveFormsModule,
32 | CommonModule,
33 | ReactiveFormsModule,
34 |
35 | ButtonModule,
36 | PanelModule,
37 | InputTextModule,
38 | DataTableModule,
39 | DialogModule,
40 | SharedModule,
41 | CalendarModule,
42 | GrowlModule,
43 | MultiSelectModule,
44 | DropdownModule,
45 | CheckboxModule,
46 | PaginatorModule,
47 | TooltipModule,
48 | OverlayPanelModule,
49 |
50 | MyBreadcrumbModule,
51 | NgUploaderModule,
52 |
53 |
54 | ElChildModules.ElTagsModule,
55 | ElChildModules.ElProgressModule,
56 | ElChildModules.ElCardsModule,
57 |
58 | RouterModule.forChild([
59 | {path: '', component: UploadComponent}
60 | ])
61 | ],
62 | declarations: [UploadComponent],
63 | exports: [RouterModule]
64 | })
65 | export class UploadModule {
66 | }
67 |
--------------------------------------------------------------------------------
/src/app/workspace/workspace.component.css:
--------------------------------------------------------------------------------
1 | /*视图框*/
2 | .router {
3 | padding-top: 60px;
4 | padding-right: 15px;
5 | margin-left: 185px;
6 | min-width: 1000px;
7 | min-height: 500px;
8 | padding-bottom: 50px;
9 | }
10 |
11 | .item-url {
12 | position: absolute;
13 | top: 16px;
14 | }
15 |
16 | .bars {
17 | position: absolute;
18 | top: 62px;
19 | right: 0px;
20 | z-index: 1100;
21 | color: #FFFFFF;
22 | font-size: 22px;
23 | padding: 7px 11px;
24 | border-radius: 5px;
25 | cursor: pointer;
26 | }
27 |
28 | .bars:hover {
29 | background-color: rgba(0, 0, 0, .5);
30 | }
31 |
32 | .header {
33 | position: fixed;
34 | top: 0;
35 | left: 0;
36 | display: -webkit-box;
37 | display: -ms-flexbox;
38 | display: flex;
39 | -webkit-box-align: center;
40 | -ms-flex-align: center;
41 | align-items: center;
42 | padding: 0 20px;
43 | width: 100%;
44 | height: 64px;
45 | justify-content: space-between;
46 | background-color: #108ee9;
47 | box-shadow: 0 1px 10px rgba(0,0,0,.2);
48 | z-index: 900;
49 | }
50 | .header-logo{
51 | font-size: 28px;
52 | color: #FFFFFF;
53 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Segoe UI Symbol";
54 | }
55 | .header-li{
56 | display: inline-block;
57 | vertical-align: middle;
58 | }
59 | .header-item{
60 | display: block;
61 | color: #fff;
62 | border-radius: 2px;
63 | text-align: center;
64 | line-height: 100%;
65 | padding: 13px 2px;
66 | min-width: 50px;
67 | transition: background-color .3s;
68 | cursor: pointer;
69 | }
70 | .header-item:hover{
71 | background-color: #1565E9;
72 | }
73 |
--------------------------------------------------------------------------------
/src/app/workspace/workspace.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
35 |
36 |
59 |
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/src/app/workspace/workspace.component.ts:
--------------------------------------------------------------------------------
1 | import {Component, OnInit} from '@angular/core';
2 | import {Router} from '@angular/router';
3 | import {beforeUrl} from '../common/public-data';
4 | import {trigger, state, style, animate, transition} from '@angular/animations';
5 | import {WorkspaceService} from './workspace.service';
6 |
7 |
8 | @Component({
9 | selector: 'app-workspace',
10 | templateUrl: './workspace.component.html',
11 | styleUrls: ['./workspace.component.css'],
12 | animations: [
13 | trigger('menuState', [
14 | state('inactive', style({
15 | left: '0px'
16 | })),
17 | state('active', style({
18 | left: '-130px'
19 | })),
20 | transition('inactive => active', animate('200ms ease-in')),
21 | transition('active => inactive', animate('200ms ease-out'))
22 | ]),
23 | trigger('routerState', [
24 | state('inactive', style({
25 | marginLeft: '180px'
26 | })),
27 | state('active', style({
28 | marginLeft: '50px'
29 | })),
30 | transition('inactive => active', animate('200ms ease-in')),
31 | transition('active => inactive', animate('200ms ease-out'))
32 | ]),
33 | trigger('imgState', [
34 | state('inactive', style({
35 | left: '16px'
36 | })),
37 | state('active', style({
38 | left: '143px'
39 | })),
40 | transition('inactive => active', animate('200ms ease-in')),
41 | transition('active => inactive', animate('200ms ease-out'))
42 | ])
43 | ]
44 | })
45 | export class WorkspaceComponent implements OnInit {
46 |
47 | constructor(private myService: WorkspaceService, public router: Router) {
48 | };
49 |
50 | ngOnInit() {
51 | this.getMenu();
52 | if (sessionStorage.getItem('userToken')) {
53 | this.realname = sessionStorage.getItem('realname');
54 | } else {
55 | this.router.navigateByUrl('login');
56 | }
57 | }
58 |
59 | /************************* ********************************/
60 | informationNumber: any = 18; //头部我的消息数量
61 | menus: any[]; //菜单
62 | state: string = 'inactive'; //菜单状态
63 | pTooltipIf: boolean = false; //pTooltipIf状态
64 | beforeUrl: string = beforeUrl; //api前缀地址
65 | timeout: any; //错误信息时间
66 | realname: string; //头部账号名字
67 | menumsg: string;
68 |
69 |
70 | /************************* 获取菜单 ********************************/
71 | getMenu() {
72 | if (sessionStorage.getItem('menu111')) {
73 | this.menus = JSON.parse(sessionStorage.getItem('menu111'));
74 | console.log(this.menus);
75 | } else {
76 | this.myService.getMenu()
77 | .then(
78 | menus => this.menus = menus,
79 | error => {
80 | this.menumsg = '获取菜单失败,请刷新再试';
81 | }
82 | )
83 | .then(() => {
84 | if (this.menus) {
85 | sessionStorage.setItem('menu111', JSON.stringify(this.menus));
86 | }
87 | });
88 | }
89 |
90 | }
91 |
92 | /************************* 改变左侧菜单宽度 ********************************/
93 | changeMenuWidth() {
94 | this.state = (this.state === 'active' ? 'inactive' : 'active');
95 | //dom操作
96 | let fa = document.getElementsByClassName('ui-accordion-header');
97 | if (this.state == 'active') {
98 | for (let i = 0; i < fa.length; i++) {
99 | fa[i].getElementsByTagName('span')[0].style.display = 'none';
100 | }
101 | this.pTooltipIf = true;
102 | } else {
103 | for (let i = 0; i < fa.length; i++) {
104 | fa[i].getElementsByTagName('span')[0].style.display = 'inline-block';
105 | }
106 | this.pTooltipIf = false;
107 | }
108 | }
109 |
110 | /************************* 退出登录 ********************************/
111 | loginOut() {
112 | sessionStorage.clear();
113 | this.router.navigateByUrl('login');
114 | }
115 | }
116 |
--------------------------------------------------------------------------------
/src/app/workspace/workspace.module.ts:
--------------------------------------------------------------------------------
1 | import {NgModule} from '@angular/core';
2 | import {RouterModule} from '@angular/router';
3 | import {WorkspaceComponent} from './workspace.component';
4 | import {workspaceRoutes} from './workspace.routes';
5 | import {CommonModule} from '@angular/common';
6 | import {FormsModule, ReactiveFormsModule} from '@angular/forms';
7 | import {SharedModule, AccordionModule, GrowlModule, TooltipModule} from 'primeng/primeng';
8 | import {PageNotFoundComponent} from '../not-found.component';
9 | import {MyGoTopModule} from '../components/my-gotop/my-gotop';
10 |
11 | @NgModule({
12 | imports: [
13 | FormsModule,
14 | ReactiveFormsModule,
15 | CommonModule,
16 | RouterModule.forChild(workspaceRoutes),
17 | SharedModule, // peimrNG 手风琴
18 | AccordionModule, // peimrNG 手风琴
19 | GrowlModule, // peimrNG msg提示
20 | TooltipModule, // Tooltip 提示
21 | MyGoTopModule, // 回到顶部组件
22 | ],
23 | exports: [],
24 | declarations: [
25 | WorkspaceComponent,
26 | PageNotFoundComponent
27 | ],
28 | providers: [
29 |
30 | ],
31 | })
32 | export class WorkspaceModule {
33 | }
34 |
--------------------------------------------------------------------------------
/src/app/workspace/workspace.routes.ts:
--------------------------------------------------------------------------------
1 | import {WorkspaceComponent} from './workspace.component';
2 | import {PageNotFoundComponent} from '../not-found.component';
3 |
4 | export const workspaceRoutes = [
5 | {
6 | path: '',
7 | component: WorkspaceComponent,
8 | children: [
9 | {
10 | path: '', redirectTo: 'data-table', pathMatch: 'full'
11 | },
12 | {
13 | path: 'data-table',
14 | loadChildren: '../data-table/data-table.module#MyDataTableModule',
15 | title: '普通表格'
16 | },
17 | {
18 | path: 'primeng-form',
19 | loadChildren: '../form-primeng/form-primeng.module#FormPrimengModule',
20 | title: 'primeng表格'
21 | },
22 | {
23 | path: 'ng-form',
24 | loadChildren: '../ng-form/ng-form.module#NgFormModule',
25 | title: '验证'
26 | },
27 | {
28 | path: 'input',
29 | loadChildren: '../input/input.module#InputModule',
30 | title: 'input'
31 | },
32 | {
33 | path: 'charts',
34 | loadChildren: '../charts/charts.module#ChartsModule',
35 | title: 'charts'
36 | },
37 | {
38 | path: 'tree',
39 | loadChildren: '../tree/tree.module#TreeDemoModule',
40 | title: 'tree'
41 | }, {
42 | path: 'icon',
43 | loadChildren: '../icon/icon.module#IconModule',
44 | title: 'icon'
45 | }, {
46 | path: 'citys',
47 | loadChildren: '../citys/citys.module#CitysModule',
48 | title: '省级联动'
49 | }, {
50 | path: 'upload',
51 | loadChildren: '../upload/upload.module#UploadModule',
52 | title: '上传'
53 | },
54 | {
55 | path: '**',
56 | component: PageNotFoundComponent
57 | },
58 | ]
59 | }
60 | ];
61 |
--------------------------------------------------------------------------------
/src/app/workspace/workspace.service.ts:
--------------------------------------------------------------------------------
1 | import {Injectable} from '@angular/core';
2 | import 'rxjs/add/operator/catch';
3 | import 'rxjs/add/operator/toPromise';
4 | import {beforeUrl} from '../common/public-data';
5 | import {HttpClient} from '@angular/common/http';
6 |
7 |
8 | @Injectable()
9 | export class WorkspaceService {
10 | constructor(private http: HttpClient) {
11 | }
12 |
13 | //获取菜单
14 | private menuUrl = 'assets/data/user-menu.json';
15 |
16 | getMenu(): Promise {
17 | let url = `${this.menuUrl}`;
18 | return this.http.get(url)
19 | .toPromise()
20 | .then(res => {
21 | return res;
22 | })
23 | .catch(res=>res);
24 |
25 | }
26 |
27 |
28 |
29 | }//class end
30 |
--------------------------------------------------------------------------------
/src/assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/.gitkeep
--------------------------------------------------------------------------------
/src/assets/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "pageNo": 1,
3 | "pageSize": 10,
4 | "totalCount": 130,
5 | "data": [
6 | {
7 | "id": 5,
8 | "creatorId": null,
9 | "createTime": 1460514819000,
10 | "modifyTime": null,
11 | "name": "好环境",
12 | "logo": "http://pic33.nipic.com/20131007/13644136_140929204101_2.jpg",
13 | "industryId": 3,
14 | "banCategories": null,
15 | "categories": null,
16 | "ue4Open": null,
17 | "clientOpen": true,
18 | "auditPassed": null,
19 | "userId": null,
20 | "categoryList": null,
21 | "creatorName": null
22 | },
23 | {
24 | "id": 6,
25 | "creatorId": null,
26 | "createTime": 1460515018000,
27 | "modifyTime": null,
28 | "name": "汇明提花",
29 | "logo": "http://img.taopic.com/uploads/allimg/140826/267848-140R60T34860.jpg",
30 | "industryId": 3,
31 | "banCategories": null,
32 | "categories": null,
33 | "ue4Open": false,
34 | "clientOpen": false,
35 | "auditPassed": null,
36 | "userId": null,
37 | "categoryList": null,
38 | "creatorName": null
39 | },
40 | {
41 | "id": 23,
42 | "creatorId": null,
43 | "createTime": 1461838325000,
44 | "modifyTime": null,
45 | "name": "金狮王",
46 | "logo": "http://pic.58pic.com/58pic/15/15/32/43x58PICgE2_1024.jpg",
47 | "industryId": null,
48 | "banCategories": null,
49 | "categories": null,
50 | "ue4Open": null,
51 | "clientOpen": true,
52 | "auditPassed": null,
53 | "userId": null,
54 | "categoryList": null,
55 | "creatorName": null
56 | },
57 | {
58 | "id": 30,
59 | "creatorId": null,
60 | "createTime": 1461928697000,
61 | "modifyTime": null,
62 | "name": "立邦",
63 | "logo": "http://img05.tooopen.com/images/20150318/tooopen_sy_82837241116.jpg",
64 | "industryId": null,
65 | "banCategories": null,
66 | "categories": null,
67 | "ue4Open": null,
68 | "clientOpen": true,
69 | "auditPassed": null,
70 | "userId": null,
71 | "categoryList": null,
72 | "creatorName": null
73 | },
74 | {
75 | "id": 31,
76 | "creatorId": null,
77 | "createTime": 1461928717000,
78 | "modifyTime": null,
79 | "name": "法恩莎瓷砖",
80 | "logo": "http://pic.qiantucdn.com/58pic/11/31/58/97p58PICV26.jpg",
81 | "industryId": null,
82 | "banCategories": null,
83 | "categories": null,
84 | "ue4Open": null,
85 | "clientOpen": true,
86 | "auditPassed": null,
87 | "userId": null,
88 | "categoryList": null,
89 | "creatorName": null
90 | },
91 | {
92 | "id": 32,
93 | "creatorId": null,
94 | "createTime": 1461928734000,
95 | "modifyTime": null,
96 | "name": "康利石材",
97 | "logo": "http://img1.3lian.com/2015/a1/113/d/10.jpg",
98 | "industryId": 3,
99 | "banCategories": null,
100 | "categories": null,
101 | "ue4Open": null,
102 | "clientOpen": true,
103 | "auditPassed": null,
104 | "userId": null,
105 | "categoryList": null,
106 | "creatorName": null
107 | },
108 | {
109 | "id": 33,
110 | "creatorId": null,
111 | "createTime": 1461928748000,
112 | "modifyTime": null,
113 | "name": "马可波罗",
114 | "logo": "http://pic2.ooopic.com/11/34/46/78b1OOOPIC4e.jpg",
115 | "industryId": null,
116 | "banCategories": null,
117 | "categories": null,
118 | "ue4Open": null,
119 | "clientOpen": true,
120 | "auditPassed": null,
121 | "userId": null,
122 | "categoryList": null,
123 | "creatorName": null
124 | },
125 | {
126 | "id": 34,
127 | "creatorId": null,
128 | "createTime": 1461928769000,
129 | "modifyTime": null,
130 | "name": "鳄鱼漆",
131 | "logo": "http://img.taopic.com/uploads/allimg/140326/235113-1403260U22059.jpg",
132 | "industryId": null,
133 | "banCategories": null,
134 | "categories": null,
135 | "ue4Open": null,
136 | "clientOpen": true,
137 | "auditPassed": null,
138 | "userId": null,
139 | "categoryList": null,
140 | "creatorName": null
141 | },
142 | {
143 | "id": 36,
144 | "creatorId": null,
145 | "createTime": 1462785895000,
146 | "modifyTime": null,
147 | "name": "方太卫浴",
148 | "logo": "http://pic.58pic.com/58pic/14/27/45/71r58PICmDM_1024.jpg",
149 | "industryId": null,
150 | "banCategories": null,
151 | "categories": null,
152 | "ue4Open": null,
153 | "clientOpen": true,
154 | "auditPassed": null,
155 | "userId": null,
156 | "categoryList": null,
157 | "creatorName": null
158 | },
159 | {
160 | "id": 37,
161 | "creatorId": null,
162 | "createTime": 1462785912000,
163 | "modifyTime": null,
164 | "name": "科勒卫浴",
165 | "logo": "http://pic11.nipic.com/20101214/213291_155243023914_2.jpg",
166 | "industryId": null,
167 | "banCategories": null,
168 | "categories": null,
169 | "ue4Open": null,
170 | "clientOpen": true,
171 | "auditPassed": null,
172 | "userId": null,
173 | "categoryList": null,
174 | "creatorName": null
175 | }
176 | ],
177 | "totalPage": 13,
178 | "firstPage": true,
179 | "lastPage": false,
180 | "prePage": 1,
181 | "nextPage": 2
182 | }
183 |
--------------------------------------------------------------------------------
/src/assets/data/new.json:
--------------------------------------------------------------------------------
1 | {
2 | "pageNo": 1,
3 | "pageSize": 20,
4 | "totalCount": 4,
5 | "data": [
6 | {
7 | "id": 46,
8 | "deleted": false,
9 | "createTime": 1489140107000,
10 | "modifyTime": 1489140107000,
11 | "categoryId": 14,
12 | "status": "CHECK_PENDING",
13 | "spaceAttributeRelationModels": [
14 | {
15 | "id": 6,
16 | "deleted": null,
17 | "createTime": null,
18 | "modifyTime": null,
19 | "spaceId": 46,
20 | "attributeId": 5,
21 | "description": "23",
22 | "attributeName": "水化热",
23 | "attributeCategoryName": "安全性",
24 | "attributeDescription": "指物质与水化合时所放出的热。"
25 | }
26 | ],
27 | "categoryName": "多功能房"
28 | },
29 | {
30 | "id": 45,
31 | "deleted": false,
32 | "createTime": 1489140034000,
33 | "modifyTime": 1489140034000,
34 | "categoryId": 14,
35 | "status": "CHECK_PENDING",
36 | "spaceAttributeRelationModels": [
37 | {
38 | "id": 5,
39 | "deleted": null,
40 | "createTime": null,
41 | "modifyTime": null,
42 | "spaceId": 45,
43 | "attributeId": 5,
44 | "description": null,
45 | "attributeName": "水化热",
46 | "attributeCategoryName": "安全性",
47 | "attributeDescription": "指物质与水化合时所放出的热。"
48 | }
49 | ],
50 | "categoryName": "多功能房"
51 | },
52 | {
53 | "id": 44,
54 | "deleted": false,
55 | "createTime": 1489139989000,
56 | "modifyTime": 1489139989000,
57 | "categoryId": 14,
58 | "status": "CHECK_PENDING",
59 | "spaceAttributeRelationModels": [
60 | {
61 | "id": 4,
62 | "deleted": null,
63 | "createTime": null,
64 | "modifyTime": null,
65 | "spaceId": 44,
66 | "attributeId": 5,
67 | "description": null,
68 | "attributeName": "水化热",
69 | "attributeCategoryName": "安全性",
70 | "attributeDescription": "指物质与水化合时所放出的热。"
71 | }
72 | ],
73 | "categoryName": "多功能房"
74 | },
75 | {
76 | "id": 9,
77 | "deleted": false,
78 | "createTime": 1488183740000,
79 | "modifyTime": 1488183740000,
80 | "categoryId": 14,
81 | "status": "CHECK_PENDING",
82 | "spaceAttributeRelationModels": [],
83 | "categoryName": "多功能房"
84 | }
85 | ],
86 | "spaceCategoryIds": null,
87 | "attributeCategoryIds": null,
88 | "modifyTime": null,
89 | "deleted": null,
90 | "creatorIds": null,
91 | "totalPage": 1,
92 | "firstPage": true,
93 | "lastPage": true,
94 | "prePage": 1,
95 | "nextPage": 1
96 | }
97 |
--------------------------------------------------------------------------------
/src/assets/data/tree.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "data": {
4 | "name": "Documents",
5 | "id": "75kb",
6 | "type": "Folder"
7 | },
8 | "children": [
9 | {
10 | "data": {
11 | "name": "Work",
12 | "id": "55kb",
13 | "type": "Folder"
14 | },
15 | "children": [
16 | {
17 | "data": {
18 | "name": "Expenses.doc",
19 | "id": "30kb",
20 | "type": "Document"
21 | },
22 | "children": [
23 | {
24 | "data": {
25 | "name": "Expenses.doc",
26 | "id": "30kb",
27 | "type": "Document"
28 | },
29 | "children": [
30 | {
31 | "data": {
32 | "name": "Expenses.doc",
33 | "id": "30kb",
34 | "type": "Document"
35 | }
36 | }
37 | ]
38 | }
39 | ]
40 | }
41 | ]
42 | }
43 | ]
44 | }
45 | ]
46 |
--------------------------------------------------------------------------------
/src/assets/data/user-menu.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "name": "数据管理",
4 | "icon": "fa-database",
5 | "children": [
6 | {
7 | "name": "data-table",
8 | "link": "data-table"
9 | },
10 | {
11 | "name": "primeng验证",
12 | "link": "primeng-form"
13 | },
14 | {
15 | "name": "表单验证",
16 | "link": "ng-form"
17 | },
18 | {
19 | "name": "input",
20 | "link": "input"
21 | },
22 | {
23 | "name": "图标",
24 | "link": "icon"
25 | },
26 | {
27 | "name": "省级联动",
28 | "link": "citys"
29 | }
30 | ]
31 | },
32 | {
33 | "name": "charts",
34 | "icon": "fa-line-chart",
35 | "children": [
36 | {
37 | "name": "charts",
38 | "link": "charts"
39 | }
40 | ]
41 | },
42 | {
43 | "name": "tree",
44 | "icon": "fa-tree",
45 | "children": [
46 | {
47 | "name": "tree",
48 | "link": "tree"
49 | }
50 | ]
51 | },
52 | {
53 | "name": "上传",
54 | "icon": "fa-upload",
55 | "children": [
56 | {
57 | "name": "上传",
58 | "link": "upload"
59 | }
60 | ]
61 | }
62 | ]
63 |
--------------------------------------------------------------------------------
/src/assets/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/src/assets/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/src/assets/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/src/assets/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/src/assets/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/src/assets/image/404img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/404img.png
--------------------------------------------------------------------------------
/src/assets/image/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/bg.png
--------------------------------------------------------------------------------
/src/assets/image/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/favicon.ico
--------------------------------------------------------------------------------
/src/assets/image/lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/lock.png
--------------------------------------------------------------------------------
/src/assets/image/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/logo.png
--------------------------------------------------------------------------------
/src/assets/image/md/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/md/1.png
--------------------------------------------------------------------------------
/src/assets/image/md/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/md/2.png
--------------------------------------------------------------------------------
/src/assets/image/md/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/md/3.png
--------------------------------------------------------------------------------
/src/assets/image/md/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/md/4.png
--------------------------------------------------------------------------------
/src/assets/image/ng.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/ng.png
--------------------------------------------------------------------------------
/src/assets/image/person.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/person.png
--------------------------------------------------------------------------------
/src/assets/image/side-brand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/side-brand.png
--------------------------------------------------------------------------------
/src/assets/image/side-ct.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/side-ct.png
--------------------------------------------------------------------------------
/src/assets/image/side-menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/side-menu.png
--------------------------------------------------------------------------------
/src/assets/image/side-shop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/side-shop.png
--------------------------------------------------------------------------------
/src/assets/image/side-system.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/side-system.png
--------------------------------------------------------------------------------
/src/assets/image/side-tags.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/side-tags.png
--------------------------------------------------------------------------------
/src/assets/image/side-user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/side-user.png
--------------------------------------------------------------------------------
/src/assets/image/titlebg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/titlebg.png
--------------------------------------------------------------------------------
/src/assets/image/user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/user.png
--------------------------------------------------------------------------------
/src/assets/image/warn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/image/warn.png
--------------------------------------------------------------------------------
/src/assets/industries.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 1,
4 | "creatorId": null,
5 | "createTime": null,
6 | "modifyTime": null,
7 | "name": "房产"
8 | },
9 | {
10 | "id": 2,
11 | "creatorId": null,
12 | "createTime": null,
13 | "modifyTime": null,
14 | "name": "家具"
15 | },
16 | {
17 | "id": 3,
18 | "creatorId": null,
19 | "createTime": null,
20 | "modifyTime": null,
21 | "name": "建材"
22 | },
23 | {
24 | "id": 4,
25 | "creatorId": null,
26 | "createTime": null,
27 | "modifyTime": null,
28 | "name": "其它"
29 | },
30 | {
31 | "id": 5,
32 | "creatorId": null,
33 | "createTime": null,
34 | "modifyTime": null,
35 | "name": "建筑"
36 | },
37 | {
38 | "id": 6,
39 | "creatorId": null,
40 | "createTime": null,
41 | "modifyTime": null,
42 | "name": "云舍易家"
43 | }
44 | ]
45 |
--------------------------------------------------------------------------------
/src/assets/login.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "binbinadmin",
3 | "passwrod": "123456"
4 | }
5 |
--------------------------------------------------------------------------------
/src/assets/resources/images/color.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/images/color.png
--------------------------------------------------------------------------------
/src/assets/resources/images/hue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/images/hue.png
--------------------------------------------------------------------------------
/src/assets/resources/images/line.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/images/line.gif
--------------------------------------------------------------------------------
/src/assets/resources/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/images/loading.gif
--------------------------------------------------------------------------------
/src/assets/resources/images/password-meter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/images/password-meter.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/cruze/theme.css.map:
--------------------------------------------------------------------------------
1 | {
2 | "version": 3,
3 | "mappings": "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",
4 | "sources": ["../_theme.scss","theme.scss"],
5 | "names": [],
6 | "file": "theme.css"
7 | }
--------------------------------------------------------------------------------
/src/assets/resources/themes/cruze/theme.scss:
--------------------------------------------------------------------------------
1 | $fontFamily: Segoe UI, Arial, sans-serif;
2 | $fontSize: 1em;
3 | $borderRadius: 3px;
4 | $disabledOpacity: 0.35;
5 |
6 | //Header
7 | $headerBorderWidth: 1px;
8 | $headerBorderColor: #333333;
9 | $headerBgColor: #333333;
10 | $headerTextColor: #eeeeee;
11 | $headerFontWeight: bold;
12 | $headerIconTextColor: #eeeeee;
13 |
14 | //Content
15 | $contentBorderWidth: 1px;
16 | $contentBorderColor: #666666;
17 | $contentBgColor: #575757;
18 | $contentTextColor: #eeeeee;
19 |
20 | //Default State
21 | $stateDefaultBorderWidth: 1px;
22 | $stateDefaultBorderColor: #2e2e2e;
23 | $stateDefaultBgColor: #3d3d3d;
24 | $stateDefaultTextColor: #eeeeee;
25 |
26 | //Active State
27 | $stateActiveBorderColor: #2e2e2e;
28 | $stateActiveBgColor: #0099e0;
29 | $stateActiveTextColor: #ffffff;
30 |
31 | //Highlight State
32 | $stateHighlightBorderColor: #cccccc;
33 | $stateHighlightBgColor: #eeeeee;
34 | $stateHighlightTextColor: #0099e0;
35 |
36 | //Focus State
37 | $stateFocusBorderColor: #2e2e2e;
38 | $stateFocusBgColor: #474747;
39 | $stateFocusTextColor: #ffffff;
40 |
41 | //Error State
42 | $stateErrorBorderColor: #ffb73d;
43 | $stateErrorBgColor: #ffc73d;
44 | $stateErrorTextColor: #111111;
45 |
46 | //Hover State
47 | $stateHoverBorderColor: #2e2e2e;
48 | $stateHoverBgColor: #474747;
49 | $stateHoverTextColor: #ffffff;
50 |
51 | //Forms
52 | $inputBgColor: #ffffff;
53 | $inputTextColor: #222222;
54 | $invalidInputBorderColor: #ffb73d;
55 | $inputGroupTextColor: #ffffff;
56 |
57 | @import '../_theme';
--------------------------------------------------------------------------------
/src/assets/resources/themes/cupertino/theme.scss:
--------------------------------------------------------------------------------
1 | $fontFamily: Lucida Grande, Lucida Sans, Arial, sans-serif;
2 | $fontSize: 1em;
3 | $borderRadius: 6px;
4 | $disabledOpacity: 0.35;
5 |
6 | //Header
7 | $headerBorderWidth: 1px;
8 | $headerBorderColor: #aed0ea;
9 | $headerBgColor: #deedf7;
10 | $headerTextColor: #222222;
11 | $headerFontWeight: bold;
12 | $headerIconTextColor: #222222;
13 |
14 | //Content
15 | $contentBorderWidth: 1px;
16 | $contentBorderColor: #dddddd;
17 | $contentBgColor: #f2f5f7;
18 | $contentTextColor: #362b36;
19 |
20 | //Default State
21 | $stateDefaultBorderWidth: 1px;
22 | $stateDefaultBorderColor: #aed0ea;
23 | $stateDefaultBgColor: #d7ebf9;
24 | $stateDefaultTextColor: #2779aa;
25 |
26 | //Active State
27 | $stateActiveBorderColor: #2694e8;
28 | $stateActiveBgColor: #3baae3;
29 | $stateActiveTextColor: #ffffff;
30 |
31 | //Highlight State
32 | $stateHighlightBorderColor: #f9dd34;
33 | $stateHighlightBgColor: #ffef8f;
34 | $stateHighlightTextColor: #363636;
35 |
36 | //Focus State
37 | $stateFocusBorderColor: #74b2e2;
38 | $stateFocusBgColor: #e4f1fb;
39 | $stateFocusTextColor: #0070a3;
40 |
41 | //Error State
42 | $stateErrorBorderColor: #cd0a0a;
43 | $stateErrorBgColor: #cd0a0a;
44 | $stateErrorTextColor: #ffffff;
45 |
46 | //Hover State
47 | $stateHoverBorderColor: #74b2e2;
48 | $stateHoverBgColor: #e4f1fb;
49 | $stateHoverTextColor: #0070a3;
50 |
51 | //Forms
52 | $inputBgColor: #ffffff;
53 | $inputTextColor: #222222;
54 | $invalidInputBorderColor: #cd0a0a;
55 | $inputGroupTextColor: #2779aa;
56 |
57 | @import '../_theme';
--------------------------------------------------------------------------------
/src/assets/resources/themes/darkness/theme.scss:
--------------------------------------------------------------------------------
1 | $fontFamily: Segoe UI, Arial, sans-serif;
2 | $fontSize: 1em;
3 | $borderRadius: 6px;
4 | $disabledOpacity: 0.35;
5 |
6 | //Header
7 | $headerBorderWidth: 1px;
8 | $headerBorderColor: #323232;
9 | $headerBgColor: #333333;
10 | $headerTextColor: #cccccc;
11 | $headerFontWeight: bold;
12 | $headerIconTextColor: #cccccc;
13 |
14 | //Content
15 | $contentBorderWidth: 1px;
16 | $contentBorderColor: #323232;
17 | $contentBgColor: #000000;
18 | $contentTextColor: #cccccc;
19 |
20 | //Default State
21 | $stateDefaultBorderWidth: 1px;
22 | $stateDefaultBorderColor: #666666;
23 | $stateDefaultBgColor: #555555;
24 | $stateDefaultTextColor: #eeeeee;
25 |
26 | //Active State
27 | $stateActiveBorderColor: #ffaf0f;
28 | $stateActiveBgColor: #f58400;
29 | $stateActiveTextColor: #ffffff;
30 |
31 | //Highlight State
32 | $stateHighlightBorderColor: #cccccc;
33 | $stateHighlightBgColor: #eeeeee;
34 | $stateHighlightTextColor: #2e7db2;
35 |
36 | //Focus State
37 | $stateFocusBorderColor: #59b4d4;
38 | $stateFocusBgColor: #0078a3;
39 | $stateFocusTextColor: #ffffff;
40 |
41 | //Error State
42 | $stateErrorBorderColor: #ffb73d;
43 | $stateErrorBgColor: #ffb73d;
44 | $stateErrorTextColor: #111111;
45 |
46 | //Hover State
47 | $stateHoverBorderColor: #59b4d4;
48 | $stateHoverBgColor: #0078a3;
49 | $stateHoverTextColor: #ffffff;
50 |
51 | //Forms
52 | $inputBgColor: #ffffff;
53 | $inputTextColor: #333333;
54 | $invalidInputBorderColor: #ffb73d;
55 | $inputGroupTextColor: #ffffff;
56 |
57 | @import '../_theme';
--------------------------------------------------------------------------------
/src/assets/resources/themes/flick/theme.css.map:
--------------------------------------------------------------------------------
1 | {
2 | "version": 3,
3 | "mappings": "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",
4 | "sources": ["../_theme.scss","theme.scss"],
5 | "names": [],
6 | "file": "theme.css"
7 | }
--------------------------------------------------------------------------------
/src/assets/resources/themes/flick/theme.scss:
--------------------------------------------------------------------------------
1 | $fontFamily: Helvetica, Arial, sans-serif;
2 | $fontSize: 1em;
3 | $borderRadius: 2px;
4 | $disabledOpacity: 0.35;
5 |
6 | //Header
7 | $headerBorderWidth: 1px;
8 | $headerBorderColor: #dddddd;
9 | $headerBgColor: #dddddd;
10 | $headerTextColor: #444444;
11 | $headerFontWeight: bold;
12 | $headerIconTextColor: #444444;
13 |
14 | //Content
15 | $contentBorderWidth: 1px;
16 | $contentBorderColor: #dddddd;
17 | $contentBgColor: #ffffff;
18 | $contentTextColor: #444444;
19 |
20 | //Default State
21 | $stateDefaultBorderWidth: 1px;
22 | $stateDefaultBorderColor: #dddddd;
23 | $stateDefaultBgColor: #f6f6f6;
24 | $stateDefaultTextColor: #0073ea;
25 |
26 | //Active State
27 | $stateActiveBorderColor: #dddddd;
28 | $stateActiveBgColor: #ffffff;
29 | $stateActiveTextColor: #ff0084;
30 |
31 | //Highlight State
32 | $stateHighlightBorderColor: #FF0084;
33 | $stateHighlightBgColor: #FF0084;
34 | $stateHighlightTextColor: #FFFFFF;
35 |
36 | //Focus State
37 | $stateFocusBorderColor: #0073ea;
38 | $stateFocusBgColor: #0073ea;
39 | $stateFocusTextColor: #ffffff;
40 |
41 | //Error State
42 | $stateErrorBorderColor: #ff0084;
43 | $stateErrorBgColor: #ffffff;
44 | $stateErrorTextColor: #222222;
45 |
46 | //Hover State
47 | $stateHoverBorderColor: #0073ea;
48 | $stateHoverBgColor: #0073ea;
49 | $stateHoverTextColor: #ffffff;
50 |
51 | //Forms
52 | $inputBgColor: #ffffff;
53 | $inputTextColor: #444444;
54 | $invalidInputBorderColor: #ff0084;
55 | $inputGroupTextColor: #444444;
56 |
57 | @import '../_theme';
--------------------------------------------------------------------------------
/src/assets/resources/themes/home/theme.scss:
--------------------------------------------------------------------------------
1 | $fontFamily: Verdana, Arial, sans-serif;
2 | $fontSize: 1em;
3 | $borderRadius: 4px;
4 | $disabledOpacity: 0.35;
5 |
6 | //Header
7 | $headerBorderWidth: 1px;
8 | $headerBorderColor: #56585C;
9 | $headerBgColor: #424548;
10 | $headerTextColor: #F9F7F7;
11 | $headerFontWeight: bold;
12 | $headerIconTextColor: #F9F7F7;
13 |
14 | //Content
15 | $contentBorderWidth: 1px;
16 | $contentBorderColor: #cccccc;
17 | $contentBgColor: #F2F1F1;
18 | $contentTextColor: #222222;
19 |
20 | //Default State
21 | $stateDefaultBorderWidth: 1px;
22 | $stateDefaultBorderColor: #68727B;
23 | $stateDefaultBgColor: #68727B;
24 | $stateDefaultTextColor: #ffffff;
25 |
26 | //Active State
27 | $stateActiveBorderColor: #506C8A;
28 | $stateActiveBgColor: #365073;
29 | $stateActiveTextColor: #ffffff;
30 |
31 | //Highlight State
32 | $stateHighlightBorderColor: #ffde2e;
33 | $stateHighlightBgColor: #ffeb80;
34 | $stateHighlightTextColor: #363636;
35 |
36 | //Focus State
37 | $stateFocusBorderColor: #68727B;
38 | $stateFocusBgColor: #6580A1;
39 | $stateFocusTextColor: #ffffff;
40 |
41 | //Error State
42 | $stateErrorBorderColor: #9e0505;
43 | $stateErrorBgColor: #cd0a0a;
44 | $stateErrorTextColor: #ffffff;
45 |
46 | //Hover State
47 | $stateHoverBorderColor: #68727B;
48 | $stateHoverBgColor: #6580A1;
49 | $stateHoverTextColor: #ffffff;
50 |
51 | //Forms
52 | $inputBgColor: #ffffff;
53 | $inputTextColor: #222222;
54 | $invalidInputBorderColor: #ff0084;
55 | $inputGroupTextColor: #ffffff;
56 |
57 | @import '../_theme';
--------------------------------------------------------------------------------
/src/assets/resources/themes/kasper/theme.scss:
--------------------------------------------------------------------------------
1 | $fontFamily: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Segoe UI Symbol";
2 | $fontSize: 1em;
3 | $borderRadius: 3px;
4 | $disabledOpacity: 0.35;
5 |
6 | //Header
7 | $headerBorderWidth: 1px;
8 | $headerBorderColor: #758aa0;
9 | $headerBgColor: #758aa0;
10 | $headerTextColor: #ffffff;
11 | $headerFontWeight: 500;
12 | $headerIconTextColor: #ffffff;
13 |
14 | //Content
15 | $contentBorderWidth: 1px;
16 | $contentBorderColor: #d1d7dc;
17 | $contentBgColor: #eef1f4;
18 | $contentTextColor: #414550;
19 |
20 | //Default State
21 | $stateDefaultBorderWidth: 1px;
22 | $stateDefaultBorderColor: #d1d7dc;
23 | $stateDefaultBgColor: #374c61;
24 | $stateDefaultTextColor: #ffffff;
25 |
26 | //Active State
27 | $stateActiveBorderColor: #5a92d1;
28 | $stateActiveBgColor: #5a92d1;
29 | $stateActiveTextColor: #ffffff;
30 |
31 | //Highlight State
32 | $stateHighlightBorderColor: #5a92d1;
33 | $stateHighlightBgColor: #5a92d1;
34 | $stateHighlightTextColor: #ffffff;
35 |
36 | //Focus State
37 | $stateFocusBorderColor: #5a92d1;
38 | $stateFocusBgColor: #5a92d1;
39 | $stateFocusTextColor: #081c22;
40 |
41 | //Error State
42 | $stateErrorBorderColor: #ec4e4e;
43 | $stateErrorBgColor: #ec4e4e;
44 | $stateErrorTextColor: #ffffff;
45 |
46 | //Hover State
47 | $stateHoverBorderColor: #d1d7dc;
48 | $stateHoverBgColor: #eef1f4;
49 | $stateHoverTextColor: #374c61;
50 |
51 | //Forms
52 | $inputBgColor: #ffffff;
53 | $inputTextColor: #333333;
54 | $invalidInputBorderColor: #ec4e4e;
55 | $inputGroupTextColor: #333333;
56 |
57 | @import '../_theme';
--------------------------------------------------------------------------------
/src/assets/resources/themes/lightness/theme.scss:
--------------------------------------------------------------------------------
1 | $fontFamily: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif;
2 | $fontSize: 1em;
3 | $borderRadius: 4px;
4 | $disabledOpacity: 0.35;
5 |
6 | //Header
7 | $headerBorderWidth: 1px;
8 | $headerBorderColor: #e78f08;
9 | $headerBgColor: #f6a828;
10 | $headerTextColor: #ffffff;
11 | $headerFontWeight: bold;
12 | $headerIconTextColor: #ffffff;
13 |
14 | //Content
15 | $contentBorderWidth: 1px;
16 | $contentBorderColor: #dddddd;
17 | $contentBgColor: #eeeeee;
18 | $contentTextColor: #333333;
19 |
20 | //Default State
21 | $stateDefaultBorderWidth: 1px;
22 | $stateDefaultBorderColor: #cccccc;
23 | $stateDefaultBgColor: #f6f6f6;
24 | $stateDefaultTextColor: #1c94c4;
25 |
26 | //Active State
27 | $stateActiveBorderColor: #fbd850;
28 | $stateActiveBgColor: #ffffff;
29 | $stateActiveTextColor: #eb8f00;
30 |
31 | //Highlight State
32 | $stateHighlightBorderColor: #fed22f;
33 | $stateHighlightBgColor: #ffe45c;
34 | $stateHighlightTextColor: #363636;
35 |
36 | //Focus State
37 | $stateFocusBorderColor: #fbcb09;
38 | $stateFocusBgColor: #fdf5ce;
39 | $stateFocusTextColor: #c77405;
40 |
41 | //Error State
42 | $stateErrorBorderColor: #cd0a0a;
43 | $stateErrorBgColor: #b81900;
44 | $stateErrorTextColor: #ffffff;
45 |
46 | //Hover State
47 | $stateHoverBorderColor: #fbcb09;
48 | $stateHoverBgColor: #fdf5ce;
49 | $stateHoverTextColor: #c77405;
50 |
51 | //Forms
52 | $inputBgColor: #ffffff;
53 | $inputTextColor: #333333;
54 | $invalidInputBorderColor: #cd0a0a;
55 | $inputGroupTextColor: #333333;
56 |
57 | @import '../_theme';
--------------------------------------------------------------------------------
/src/assets/resources/themes/ludvig/theme.scss:
--------------------------------------------------------------------------------
1 | $fontFamily: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Segoe UI Symbol";
2 | $fontSize: 1em;
3 | $borderRadius: 2px;
4 | $disabledOpacity: 0.35;
5 |
6 | //Header
7 | $headerBorderWidth: 1px;
8 | $headerBorderColor: #2790b0;
9 | $headerBgColor: #2790b0;
10 | $headerTextColor: #ffffff;
11 | $headerFontWeight: 500;
12 | $headerIconTextColor: #ffffff;
13 |
14 | //Content
15 | $contentBorderWidth: 1px;
16 | $contentBorderColor: #d4d4d4;
17 | $contentBgColor: #fafafa;
18 | $contentTextColor: #081c22;
19 |
20 | //Default State
21 | $stateDefaultBorderWidth: 1px;
22 | $stateDefaultBorderColor: #d4d4d4;
23 | $stateDefaultBgColor: #fafafa;
24 | $stateDefaultTextColor: #081c22;
25 |
26 | //Active State
27 | $stateActiveBorderColor: #b8ccd2;
28 | $stateActiveBgColor: #cad7dc;
29 | $stateActiveTextColor: #081c22;
30 |
31 | //Highlight State
32 | $stateHighlightBorderColor: #eecc00;
33 | $stateHighlightBgColor: #eecc00;
34 | $stateHighlightTextColor: #081c22;
35 |
36 | //Focus State
37 | $stateFocusBorderColor: #eecc00;
38 | $stateFocusBgColor: #eecc00;
39 | $stateFocusTextColor: #081c22;
40 |
41 | //Error State
42 | $stateErrorBorderColor: #ec4e4e;
43 | $stateErrorBgColor: #ec4e4e;
44 | $stateErrorTextColor: #ffffff;
45 |
46 | //Hover State
47 | $stateHoverBorderColor: #d4d4d4;
48 | $stateHoverBgColor: #eaeaea;
49 | $stateHoverTextColor: #081c22;
50 |
51 | //Forms
52 | $inputBgColor: #ffffff;
53 | $inputTextColor: #333333;
54 | $invalidInputBorderColor: #ec4e4e;
55 | $inputGroupTextColor: #333333;
56 |
57 | @import '../_theme';
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/fonts/roboto-v15-latin-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/fonts/roboto-v15-latin-regular.eot
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/fonts/roboto-v15-latin-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/fonts/roboto-v15-latin-regular.ttf
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/fonts/roboto-v15-latin-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/fonts/roboto-v15-latin-regular.woff
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/fonts/roboto-v15-latin-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/fonts/roboto-v15-latin-regular.woff2
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/images/icons_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/images/icons_16.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/images/slider_handles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/images/slider_handles.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/images/slider_handles@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/images/slider_handles@2x.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/images/ui-bg_flat_0_aaaaaa_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/images/ui-bg_flat_0_aaaaaa_40x100.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/images/ui-bg_flat_75_ffffff_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/images/ui-bg_flat_75_ffffff_40x100.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/images/ui-bg_glass_55_fbf9ee_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/images/ui-bg_glass_55_fbf9ee_1x400.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/images/ui-bg_glass_65_ffffff_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/images/ui-bg_glass_65_ffffff_1x400.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/images/ui-bg_glass_75_dadada_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/images/ui-bg_glass_75_dadada_1x400.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/images/ui-bg_glass_75_e6e6e6_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/images/ui-bg_glass_75_e6e6e6_1x400.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/images/ui-bg_glass_95_fef1ec_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/images/ui-bg_glass_95_fef1ec_1x400.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/images/ui-bg_highlight-soft_75_cccccc_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/images/ui-bg_highlight-soft_75_cccccc_1x100.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/images/ui-icons_222222_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/images/ui-icons_222222_256x240.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/images/ui-icons_2e83ff_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/images/ui-icons_2e83ff_256x240.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/images/ui-icons_454545_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/images/ui-icons_454545_256x240.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/images/ui-icons_cd0a0a_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/images/ui-icons_cd0a0a_256x240.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/my-flick/images/ui-icons_ffffff_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/my-flick/images/ui-icons_ffffff_256x240.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/fonts/roboto-v15-latin-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/fonts/roboto-v15-latin-regular.eot
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/fonts/roboto-v15-latin-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/fonts/roboto-v15-latin-regular.ttf
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/fonts/roboto-v15-latin-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/fonts/roboto-v15-latin-regular.woff
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/fonts/roboto-v15-latin-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/fonts/roboto-v15-latin-regular.woff2
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/images/icons_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/images/icons_16.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/images/slider_handles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/images/slider_handles.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/images/slider_handles@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/images/slider_handles@2x.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/images/ui-bg_flat_0_aaaaaa_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/images/ui-bg_flat_0_aaaaaa_40x100.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/images/ui-bg_flat_75_ffffff_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/images/ui-bg_flat_75_ffffff_40x100.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/images/ui-bg_glass_55_fbf9ee_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/images/ui-bg_glass_55_fbf9ee_1x400.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/images/ui-bg_glass_65_ffffff_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/images/ui-bg_glass_65_ffffff_1x400.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/images/ui-bg_glass_75_dadada_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/images/ui-bg_glass_75_dadada_1x400.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/images/ui-bg_glass_75_e6e6e6_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/images/ui-bg_glass_75_e6e6e6_1x400.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/images/ui-bg_glass_95_fef1ec_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/images/ui-bg_glass_95_fef1ec_1x400.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/images/ui-bg_highlight-soft_75_cccccc_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/images/ui-bg_highlight-soft_75_cccccc_1x100.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/images/ui-icons_222222_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/images/ui-icons_222222_256x240.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/images/ui-icons_2e83ff_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/images/ui-icons_2e83ff_256x240.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/images/ui-icons_454545_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/images/ui-icons_454545_256x240.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/images/ui-icons_cd0a0a_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/images/ui-icons_cd0a0a_256x240.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/omega/images/ui-icons_ffffff_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/assets/resources/themes/omega/images/ui-icons_ffffff_256x240.png
--------------------------------------------------------------------------------
/src/assets/resources/themes/pepper-grinder/theme.scss:
--------------------------------------------------------------------------------
1 | $fontFamily: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif;
2 | $fontSize: 1em;
3 | $borderRadius: 6px;
4 | $disabledOpacity: 0.35;
5 |
6 | //Header
7 | $headerBorderWidth: 1px;
8 | $headerBorderColor: #d4d1bf;
9 | $headerBgColor: #ffffff;
10 | $headerTextColor: #453821;
11 | $headerFontWeight: bold;
12 | $headerIconTextColor: #453821;
13 |
14 | //Content
15 | $contentBorderWidth: 1px;
16 | $contentBorderColor: #d9d6c4;
17 | $contentBgColor: #eceadf;
18 | $contentTextColor: #1f1f1f;
19 |
20 | //Default State
21 | $stateDefaultBorderWidth: 1px;
22 | $stateDefaultBorderColor: #cbc7bd;
23 | $stateDefaultBgColor: #f8f7f6;
24 | $stateDefaultTextColor: #654b24;
25 |
26 | //Active State
27 | $stateActiveBorderColor: #d9d6c4;
28 | $stateActiveBgColor: #eceadf;
29 | $stateActiveTextColor: #140f06;
30 |
31 | //Highlight State
32 | $stateHighlightBorderColor: #654b24;
33 | $stateHighlightBgColor: #654b24;
34 | $stateHighlightTextColor: #ffffff;
35 |
36 | //Focus State
37 | $stateFocusBorderColor: #b2a266;
38 | $stateFocusBgColor: #f7f3de;
39 | $stateFocusTextColor: #3a3427;
40 |
41 | //Error State
42 | $stateErrorBorderColor: #681818;
43 | $stateErrorBgColor: #b83400;
44 | $stateErrorTextColor: #ffffff;
45 |
46 | //Hover State
47 | $stateHoverBorderColor: #b2a266;
48 | $stateHoverBgColor: #f7f3de;
49 | $stateHoverTextColor: #3a3427;
50 |
51 | //Forms
52 | $inputBgColor: #ffffff;
53 | $inputTextColor: #222222;
54 | $invalidInputBorderColor: #681818;
55 | $inputGroupTextColor: #222222;
56 |
57 | @import '../_theme';
--------------------------------------------------------------------------------
/src/assets/resources/themes/redmond/theme.scss:
--------------------------------------------------------------------------------
1 | $fontFamily: Lucida Grande, Lucida Sans, Arial, sans-serif;
2 | $fontSize: 1em;
3 | $borderRadius: 5px;
4 | $disabledOpacity: 0.35;
5 |
6 | //Header
7 | $headerBorderWidth: 1px;
8 | $headerBorderColor: #4297d7;
9 | $headerBgColor: #5c9ccc;
10 | $headerTextColor: #ffffff;
11 | $headerFontWeight: bold;
12 | $headerIconTextColor: #ffffff;
13 |
14 | //Content
15 | $contentBorderWidth: 1px;
16 | $contentBorderColor: #a6c9e2;
17 | $contentBgColor: #fcfdfd;
18 | $contentTextColor: #222222;
19 |
20 | //Default State
21 | $stateDefaultBorderWidth: 1px;
22 | $stateDefaultBorderColor: #c5dbec;
23 | $stateDefaultBgColor: #dfeffc;
24 | $stateDefaultTextColor: #2e6e9e;
25 |
26 | //Active State
27 | $stateActiveBorderColor: #79b7e7;
28 | $stateActiveBgColor: #f5f8f9;
29 | $stateActiveTextColor: #e17009;
30 |
31 | //Highlight State
32 | $stateHighlightBorderColor: #fad42e;
33 | $stateHighlightBgColor: #fbec88;
34 | $stateHighlightTextColor: #363636;
35 |
36 | //Highlight State
37 | $stateFocusBorderColor: #79b7e7;
38 | $stateFocusBgColor: #d0e5f5;
39 | $stateFocusTextColor: #1d5987;
40 |
41 | //Error State
42 | $stateErrorBorderColor: #cd0a0a;
43 | $stateErrorBgColor: #fef1ec;
44 | $stateErrorTextColor: #cd0a0a;
45 |
46 | //Hover State
47 | $stateHoverBorderColor: #79b7e7;
48 | $stateHoverBgColor: #d0e5f5;
49 | $stateHoverTextColor: #1d5987;
50 |
51 | //Forms
52 | $inputBgColor: #ffffff;
53 | $inputTextColor: #2E6E9E;
54 | $invalidInputBorderColor: #cd0a0a;
55 | $inputGroupTextColor: #2e6e9e;
56 |
57 | @import '../_theme';
--------------------------------------------------------------------------------
/src/assets/resources/themes/rocket/theme.scss:
--------------------------------------------------------------------------------
1 | $fontFamily: Arial, Helvetica, sans-serif;
2 | $fontSize: 1em;
3 | $borderRadius: 4px;
4 | $disabledOpacity: 0.35;
5 |
6 | //Header
7 | $headerBorderWidth: 1px;
8 | $headerBorderColor: #404040;
9 | $headerBgColor: #242122;
10 | $headerTextColor: #f4f4f9;
11 | $headerFontWeight: bold;
12 | $headerIconTextColor: #f4f4f9;
13 |
14 | //Content
15 | $contentBorderWidth: 1px;
16 | $contentBorderColor: #e3e3e3;
17 | $contentBgColor: #f1f1f1;
18 | $contentTextColor: #404040;
19 |
20 | //Default State
21 | $stateDefaultBorderWidth: 1px;
22 | $stateDefaultBorderColor: #404040;
23 | $stateDefaultBgColor: #242122;
24 | $stateDefaultTextColor: #fafafa;
25 |
26 | //Active State
27 | $stateActiveBorderColor: #9dc939;
28 | $stateActiveBgColor: #9dc939;
29 | $stateActiveTextColor: #304915;
30 |
31 | //Highlight State
32 | $stateHighlightBorderColor: #723c9b;
33 | $stateHighlightBgColor: #65358a;
34 | $stateHighlightTextColor: #ffffff;
35 |
36 | //Focus State
37 | $stateFocusBorderColor: #00a6dd;
38 | $stateFocusBgColor: #00a6dd;
39 | $stateFocusTextColor: #fafafa;
40 |
41 | //Error State
42 | $stateErrorBorderColor: #ca3838;
43 | $stateErrorBgColor: #ca3838;
44 | $stateErrorTextColor: #ff8f8f;
45 |
46 | //Hover State
47 | $stateHoverBorderColor: #00a6dd;
48 | $stateHoverBgColor: #00a6dd;
49 | $stateHoverTextColor: #fafafa;
50 |
51 | //Forms
52 | $inputBgColor: #ffffff;
53 | $inputTextColor: #304915;
54 | $invalidInputBorderColor: #ca3838;
55 | $inputGroupTextColor: #ffffff;
56 |
57 | @import '../_theme';
--------------------------------------------------------------------------------
/src/assets/resources/themes/south-street/theme.scss:
--------------------------------------------------------------------------------
1 | $fontFamily: segoe ui, Arial, sans-serif;
2 | $fontSize: 1em;
3 | $borderRadius: 6px;
4 | $disabledOpacity: 0.35;
5 |
6 | //Header
7 | $headerBorderWidth: 1px;
8 | $headerBorderColor: #d4ccb0;
9 | $headerBgColor: #ece8da;
10 | $headerTextColor: #433f38;
11 | $headerFontWeight: bold;
12 | $headerIconTextColor: #433f38;
13 |
14 | //Content
15 | $contentBorderWidth: 1px;
16 | $contentBorderColor: #dfd9c3;
17 | $contentBgColor: #f5f3e5;
18 | $contentTextColor: #312e25;
19 |
20 | //Default State
21 | $stateDefaultBorderWidth: 1px;
22 | $stateDefaultBorderColor: #327e04;
23 | $stateDefaultBgColor: #459e00;
24 | $stateDefaultTextColor: #ffffff;
25 |
26 | //Active State
27 | $stateActiveBorderColor: #d4ccb0;
28 | $stateActiveBgColor: #fafaf4;
29 | $stateActiveTextColor: #459e00;
30 |
31 | //Highlight State
32 | $stateHighlightBorderColor: #327e04;
33 | $stateHighlightBgColor: #67b021;
34 | $stateHighlightTextColor: #ffffff;
35 |
36 | //Focus State
37 | $stateFocusBorderColor: #e8e1b5;
38 | $stateFocusBgColor: #bcb9ae;
39 | $stateFocusTextColor: #363636;
40 |
41 | //Error State
42 | $stateErrorBorderColor: #e3a345;
43 | $stateErrorBgColor: #ffedad;
44 | $stateErrorTextColor: #cd5c0a;
45 |
46 | //Hover State
47 | $stateHoverBorderColor: #e8e1b5;
48 | $stateHoverBgColor: #bcb9ae;
49 | $stateHoverTextColor: #363636;
50 |
51 | //Forms
52 | $inputBgColor: #ffffff;
53 | $inputTextColor: #433f38;
54 | $invalidInputBorderColor: #e3a345;
55 | $inputGroupTextColor: #ffffff;
56 |
57 | @import '../_theme';
--------------------------------------------------------------------------------
/src/assets/resources/themes/start/theme.scss:
--------------------------------------------------------------------------------
1 | $fontFamily: Verdana,Arial,sans-serif;
2 | $fontSize: 1em;
3 | $borderRadius: 5px;
4 | $disabledOpacity: 0.35;
5 |
6 | //Header
7 | $headerBorderWidth: 1px;
8 | $headerBorderColor: #4297d7;
9 | $headerBgColor: #2191c0;
10 | $headerTextColor: #eaf5f7;
11 | $headerFontWeight: bold;
12 | $headerIconTextColor: #eaf5f7;
13 |
14 | //Content
15 | $contentBorderWidth: 1px;
16 | $contentBorderColor: #a6c9e2;
17 | $contentBgColor: #fcfdfd;
18 | $contentTextColor: #222222;
19 |
20 | //Default State
21 | $stateDefaultBorderWidth: 1px;
22 | $stateDefaultBorderColor: #77d5f7;
23 | $stateDefaultBgColor: #0078ae;
24 | $stateDefaultTextColor: #ffffff;
25 |
26 | //Active State
27 | $stateActiveBorderColor: #acdd4a;
28 | $stateActiveBgColor: #6eac2c;
29 | $stateActiveTextColor: #ffffff;
30 |
31 | //Highlight State
32 | $stateHighlightBorderColor: #fcd113;
33 | $stateHighlightBgColor: #f8da4e;
34 | $stateHighlightTextColor: #222222;
35 |
36 | //Focus State
37 | $stateFocusBorderColor: #448dae;
38 | $stateFocusBgColor: #79c9ec;
39 | $stateFocusTextColor: #222222;
40 |
41 | //Error State
42 | $stateErrorBorderColor: #cd0a0a;
43 | $stateErrorBgColor: #e14f1c;
44 | $stateErrorTextColor: #ffffff;
45 |
46 | //Hover State
47 | $stateHoverBorderColor: #448dae;
48 | $stateHoverBgColor: #79c9ec;
49 | $stateHoverTextColor: #222222;
50 |
51 | //Forms
52 | $inputBgColor: #ffffff;
53 | $inputTextColor: #026890;
54 | $invalidInputBorderColor: #cd0a0a;
55 | $inputGroupTextColor: #026890;
56 |
57 | @import '../_theme';
--------------------------------------------------------------------------------
/src/assets/resources/themes/trontastic/theme.scss:
--------------------------------------------------------------------------------
1 | $fontFamily: Segoe UI, Arial, sans-serif;
2 | $fontSize: 1em;
3 | $borderRadius: 6px;
4 | $disabledOpacity: 0.35;
5 |
6 | //Header
7 | $headerBorderWidth: 1px;
8 | $headerBorderColor: #000000;
9 | $headerBgColor: #9fda58;
10 | $headerTextColor: #222222;
11 | $headerFontWeight: bold;
12 | $headerIconTextColor: #222222;
13 |
14 | //Content
15 | $contentBorderWidth: 1px;
16 | $contentBorderColor: #4a4a4a;
17 | $contentBgColor: #000000;
18 | $contentTextColor: #ffffff;
19 |
20 | //Default State
21 | $stateDefaultBorderWidth: 1px;
22 | $stateDefaultBorderColor: #4a4a4a;
23 | $stateDefaultBgColor: #0a0a0a;
24 | $stateDefaultTextColor: #b8ec79;
25 |
26 | //Active State
27 | $stateActiveBorderColor: #696969;
28 | $stateActiveBgColor: #4c4c4c;
29 | $stateActiveTextColor: #ffffff;
30 |
31 | //Highlight State
32 | $stateHighlightBorderColor: #8cce3b;
33 | $stateHighlightBgColor: #f1fbe5;
34 | $stateHighlightTextColor: #030303;
35 |
36 | //Focus State
37 | $stateFocusBorderColor: #000000;
38 | $stateFocusBgColor: #666666;
39 | $stateFocusTextColor: #ffffff;
40 |
41 | //Error State
42 | $stateErrorBorderColor: #f1ac88;
43 | $stateErrorBgColor: #f6ecd5;
44 | $stateErrorTextColor: #74736d;
45 |
46 | //Hover State
47 | $stateHoverBorderColor: #000000;
48 | $stateHoverBgColor: #666666;
49 | $stateHoverTextColor: #ffffff;
50 |
51 | //Forms
52 | $inputBgColor: #ffffff;
53 | $inputTextColor: #000000;
54 | $invalidInputBorderColor: #f1ac88;
55 | $inputGroupTextColor: #ffffff;
56 |
57 | @import '../_theme';
--------------------------------------------------------------------------------
/src/assets/resources/themes/voclain/theme.scss:
--------------------------------------------------------------------------------
1 | $fontFamily: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Segoe UI Symbol";
2 | $fontSize: 1em;
3 | $borderRadius: 4px;
4 | $disabledOpacity: 0.35;
5 |
6 | //Header
7 | $headerBorderWidth: 1px;
8 | $headerBorderColor: #606d7b;
9 | $headerBgColor: #606d7b;
10 | $headerTextColor: #ffffff;
11 | $headerFontWeight: 500;
12 | $headerIconTextColor: #ffffff;
13 |
14 | //Content
15 | $contentBorderWidth: 1px;
16 | $contentBorderColor: #e2e5e8;
17 | $contentBgColor: #eef1f4;
18 | $contentTextColor: #414550;
19 |
20 | //Default State
21 | $stateDefaultBorderWidth: 1px;
22 | $stateDefaultBorderColor: #2c3e50;
23 | $stateDefaultBgColor: #2c3e50;
24 | $stateDefaultTextColor: #ffffff;
25 |
26 | //Active State
27 | $stateActiveBorderColor: #c95864;
28 | $stateActiveBgColor: #c95864;
29 | $stateActiveTextColor: #ffffff;
30 |
31 | //Highlight State
32 | $stateHighlightBorderColor: #c95864;
33 | $stateHighlightBgColor: #c95864;
34 | $stateHighlightTextColor: #ffffff;
35 |
36 | //Focus State
37 | $stateFocusBorderColor: #606d7b;
38 | $stateFocusBgColor: #606d7b;
39 | $stateFocusTextColor: #081c22;
40 |
41 | //Error State
42 | $stateErrorBorderColor: #ec4e4e;
43 | $stateErrorBgColor: #ec4e4e;
44 | $stateErrorTextColor: #ffffff;
45 |
46 | //Hover State
47 | $stateHoverBorderColor: #485562;
48 | $stateHoverBgColor: #485562;
49 | $stateHoverTextColor: #ffffff;
50 |
51 | //Forms
52 | $inputBgColor: #ffffff;
53 | $inputTextColor: #333333;
54 | $invalidInputBorderColor: #ec4e4e;
55 | $inputGroupTextColor: #ffffff;
56 |
57 | @import '../_theme';
--------------------------------------------------------------------------------
/src/environments/environment.prod.ts:
--------------------------------------------------------------------------------
1 | export const environment = {
2 | production: true
3 | };
4 |
--------------------------------------------------------------------------------
/src/environments/environment.ts:
--------------------------------------------------------------------------------
1 | // The file contents for the current environment will overwrite these during build.
2 | // The build system defaults to the dev environment which uses `environment.ts`, but if you do
3 | // `ng build --env=prod` then `environment.prod.ts` will be used instead.
4 | // The list of which env maps to which file can be found in `.angular-cli.json`.
5 |
6 | export const environment = {
7 | production: false
8 | };
9 |
--------------------------------------------------------------------------------
/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hbb520/angular4-primeng-admin/f49a92c9b99c8da64f2354c88fc70bbeffb031bf/src/favicon.ico
--------------------------------------------------------------------------------
/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Angular管理后台
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | import { enableProdMode } from '@angular/core';
2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
3 |
4 | import { AppModule } from './app/app.module';
5 | import { environment } from './environments/environment';
6 |
7 | if (environment.production) {
8 | enableProdMode();
9 | }
10 |
11 | platformBrowserDynamic().bootstrapModule(AppModule)
12 | .catch(err => console.log(err));
13 |
--------------------------------------------------------------------------------
/src/polyfills.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * This file includes polyfills needed by Angular and is loaded before the app.
3 | * You can add your own extra polyfills to this file.
4 | *
5 | * This file is divided into 2 sections:
6 | * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
7 | * 2. Application imports. Files imported after ZoneJS that should be loaded before your main
8 | * file.
9 | *
10 | * The current setup is for so-called "evergreen" browsers; the last versions of browsers that
11 | * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
12 | * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
13 | *
14 | * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html
15 | */
16 |
17 | /***************************************************************************************************
18 | * BROWSER POLYFILLS
19 | */
20 |
21 | /** IE9, IE10 and IE11 requires all of the following polyfills. **/
22 | // import 'core-js/es6/symbol';
23 | // import 'core-js/es6/object';
24 | // import 'core-js/es6/function';
25 | // import 'core-js/es6/parse-int';
26 | // import 'core-js/es6/parse-float';
27 | // import 'core-js/es6/number';
28 | // import 'core-js/es6/math';
29 | // import 'core-js/es6/string';
30 | // import 'core-js/es6/date';
31 | // import 'core-js/es6/array';
32 | // import 'core-js/es6/regexp';
33 | // import 'core-js/es6/map';
34 | // import 'core-js/es6/weak-map';
35 | // import 'core-js/es6/set';
36 |
37 | /** IE10 and IE11 requires the following for NgClass support on SVG elements */
38 | // import 'classlist.js'; // Run `npm install --save classlist.js`.
39 |
40 | /** Evergreen browsers require these. **/
41 | import 'core-js/es6/reflect';
42 | import 'core-js/es7/reflect';
43 |
44 |
45 | /**
46 | * Required to support Web Animations `@angular/animation`.
47 | * Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation
48 | **/
49 | // import 'web-animations-js'; // Run `npm install --save web-animations-js`.
50 |
51 |
52 |
53 | /***************************************************************************************************
54 | * Zone JS is required by Angular itself.
55 | */
56 | import 'zone.js/dist/zone'; // Included with Angular CLI.
57 |
58 |
59 |
60 | /***************************************************************************************************
61 | * APPLICATION IMPORTS
62 | */
63 |
64 | /**
65 | * Date, currency, decimal and percent pipes.
66 | * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10
67 | */
68 | // import 'intl'; // Run `npm install --save intl`.
69 | /**
70 | * Need to import at least one locale-data with intl.
71 | */
72 | // import 'intl/locale-data/jsonp/en';
73 |
--------------------------------------------------------------------------------
/src/styles.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";
2 | img, a, p, body, html, select, div, label, option, ul, li, dl, dd, span, input, select, i, h1, h2, h3, h4, h5, h6 {
3 | margin: 0;
4 | padding: 0;
5 | border: 0;
6 | font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, SimSun, sans-serif;
7 | }
8 |
9 | body {
10 | overflow: auto;
11 | font-weight: 400;
12 | width: 100%;
13 | -webkit-font-smoothing: antialiased;
14 | color: #1f2f3d;
15 | font-size: 14px;
16 | height: 100%;
17 | }
18 |
19 | html {
20 | height: 100%;
21 | width: 100%;
22 | box-sizing: border-box;
23 | }
24 |
25 | a {
26 | text-decoration: none;
27 | }
28 |
29 | a:focus,
30 | a:active {
31 | outline: none;
32 | }
33 |
34 | a,
35 | a:focus,
36 | a:hover {
37 | cursor: pointer;
38 | color: inherit;
39 | text-decoration: none;
40 | }
41 |
42 | li {
43 | list-style: none;
44 | }
45 |
46 | label {
47 | cursor: inherit;
48 | vertical-align: middle;
49 | }
50 |
51 | input,
52 | textarea,
53 | button {
54 | outline: none;
55 | resize: none;
56 | font-family: "Microsoft Yahei";
57 | }
58 |
59 | .none {
60 | display: none !important;
61 | }
62 |
63 | .block {
64 | display: block !important;
65 | }
66 |
67 | .FL {
68 | float: left;
69 | }
70 |
71 | .FR {
72 | float: right;
73 | }
74 |
75 | /*字体颜色*/
76 | .text-success {
77 | color: #13ce66;
78 | }
79 |
80 | .text-info {
81 | color: #50bfff;
82 | }
83 |
84 | .text-warn {
85 | color: #f7ba2a;
86 | }
87 |
88 | .text-error {
89 | color: #ff4949;
90 | }
91 |
92 | /*背景色*/
93 | .bc-success {
94 | background-color: #13ce66;
95 | }
96 |
97 | .bc-info {
98 | background-color: #50bfff;
99 | }
100 |
101 | .bc-warn {
102 | background-color: #f7ba2a;
103 | }
104 |
105 | .bc-error {
106 | background-color: #ff4949;
107 | }
108 |
109 | .border-error {
110 | border-color: #ff4949 !important;
111 | }
112 |
113 | .padding0 {
114 | padding: 0;
115 | }
116 |
117 | .star {
118 | display: inline-block;
119 | color: #FF4949;
120 | position: relative;
121 | top: 4px;
122 | margin: 0 3px 0 0;
123 | }
124 |
125 | .error-input-msg {
126 | height: 25px;
127 | line-height: 18px;
128 | color: #FF4949;
129 | font-size: 13px;
130 | }
131 |
132 | .ml5 {
133 | margin-left: 5px;
134 | }
135 |
136 | .ml10 {
137 | margin-left: 10px;
138 | }
139 |
140 | .ml15 {
141 | margin-left: 15px;
142 | }
143 |
144 | .ml20 {
145 | margin-left: 20px;
146 | }
147 |
148 | .mr5 {
149 | margin-right: 5px;
150 | }
151 |
152 | .mr10 {
153 | margin-right: 10px;
154 | }
155 |
156 | .mr15 {
157 | margin-right: 15px;
158 | }
159 |
160 | .mr20 {
161 | margin-right: 20px;
162 | }
163 |
164 | .mb20 {
165 | margin-bottom: 20px;
166 | }
167 |
168 | .mt-18 {
169 | margin-top: -18px;
170 | }
171 |
172 | /*菜单栏*/
173 | .menu {
174 | padding-top: 100px;
175 | width: 170px;
176 | position: fixed;
177 | z-index: 800;
178 | height: 100%;
179 | color: #FFFFFF;
180 | background-color: #323a57;
181 | }
182 |
183 | /*菜单激活颜色*/
184 | .active-link {
185 | background-color: rgba(0, 0, 0, .5);
186 | }
187 |
188 | body .ui-accordion .ui-accordion-header {
189 | margin: 0 !important;
190 | border: 0 !important;
191 | border-radius: 0 !important;
192 | }
193 |
194 | body .ui-accordion .ui-accordion-header a {
195 | padding: 1.00em 1.25em 1.00em 3.4em !important;
196 | }
197 |
198 | body .ui-accordion .ui-accordion-header .fa {
199 | left: 122px;
200 | }
201 |
202 | .ui-accordion .ui-accordion-content {
203 | padding: 0 !important;
204 | border: 0 !important;
205 | background-color: #1f283d !important;
206 | }
207 |
208 | .ui-accordion .ui-accordion-content a {
209 | display: block;
210 | width: 170px;
211 | text-align: center;
212 | height: 46px;
213 | line-height: 46px;
214 | color: #FFFFFF;
215 | }
216 |
217 | .ui-accordion .ui-accordion-content a:hover {
218 | color: #FFFFFF !important;
219 | background-color: rgba(0, 0, 0, .5);
220 | }
221 |
222 | body .ui-accordion .ui-accordion-header {
223 | background-color: #323a57;
224 | color: #FFFFFF;
225 | }
226 |
227 | body .ui-accordion .ui-accordion-header:hover {
228 | background-color: rgba(0, 0, 0, .5) !important;
229 | color: #FFFFFF !important;
230 | }
231 |
232 | body .ui-accordion .ui-accordion-header:hover a {
233 | color: #FFFFFF !important;
234 | }
235 |
236 | body .ui-accordion .ui-accordion-header a {
237 | color: #FFFFFF;
238 | }
239 |
240 | body .ui-accordion .ui-accordion-header.ui-state-active {
241 | background-color: #323a57;
242 | color: #FFFFFF;
243 | }
244 |
245 | /*menu end*/
246 |
247 | /* 这里 将 td 都居中了 */
248 | td {
249 | text-align: center;
250 | }
251 |
252 | .td-left td {
253 | text-align: left;
254 | }
255 |
256 | /*表格中img尺寸*/
257 | .table-img {
258 | max-width: 100%;
259 | max-height: 100%;
260 | background-color: #FFFFFF;
261 | display: inline-block;
262 | }
263 |
264 | /*搜索区域*/
265 | .search-area {
266 | padding: 0px 15px 5px 15px;
267 | background-color: #FFFFFF;
268 | }
269 |
270 | .search-area .label-width-75 {
271 | width: 75px;
272 | text-align: right;
273 | display: inline-block;
274 | }
275 |
276 | .search-area .search-row-width {
277 | width: 271px;
278 | }
279 |
280 | .search-area .seach-butotn-box {
281 | width: 300px;
282 | }
283 |
284 | /*操作区域*/
285 | .operation-area {
286 | padding: 11px 15px 0 0.5rem;
287 | margin-bottom: 15px;
288 | }
289 |
290 | /*tr*/
291 | tr:hover {
292 | background-color: #EFF2F7 !important;
293 | }
294 |
295 | .button-s span {
296 | padding: 0.25em !important;
297 | }
298 |
299 | .link-a {
300 | color: #2bc0ec !important;
301 | text-decoration: underline;
302 | }
303 |
304 | .link-a:hover {
305 | text-decoration: underline !important;
306 | }
307 |
308 | .dropdownerror {
309 | border-color: #ff4949 !important;
310 | }
311 |
312 | #handle-button .ui-button-text-only .ui-button-text {
313 | padding: 1px 3px !important;
314 | }
315 |
316 | .handle-button .ui-button-text-only .ui-button-text {
317 | padding: 1px 3px !important;
318 | }
319 |
320 | /*分页 box 样式*/
321 | .paginator-box {
322 | position: relative;
323 | }
324 |
325 | .paginator-goto {
326 | position: absolute;
327 | top: 13px;
328 | left: 50%;
329 | margin-left: 200px;
330 | }
331 |
332 | .paginator-goto input {
333 | width: 29px;
334 | }
335 |
336 | /*分页 box 样式 end*/
337 |
338 | /*dialog*/
339 | .dialog-footer {
340 | text-align: right;
341 | padding: 10px 0px 0 0;
342 | }
343 |
344 | .dialog-content input {
345 | width: 100%;
346 | }
347 |
348 | .ui-g-padding0 .ui-g-1, .ui-g-padding0 .ui-g-2, .ui-g-padding0 .ui-g-3, .ui-g-padding0 .ui-g-4,
349 | .ui-g-padding0 .ui-g-5, .ui-g-padding0 .ui-g-6, .ui-g-padding0 .ui-g-7, .ui-g-padding0 .ui-g-8,
350 | .ui-g-padding0 .ui-g-9, .ui-g-padding0 .ui-g-10, .ui-g-padding0 .ui-g-11, .ui-g-padding0 .ui-g-12 {
351 | padding: 0;
352 | }
353 |
354 | /*dialog-content 中下拉选择超出显示*/
355 | .dialog-content-inherit .ui-dialog-content {
356 | overflow: inherit;
357 | }
358 |
359 | .high-td td {
360 | height: 90px !important;
361 | }
362 |
363 | .none-padding-td td {
364 | padding: 0 !important;
365 | }
366 |
367 | /*标签 class 状态,审核状态,上架状态等等 span */
368 | .my-tag {
369 | display: inline-block;
370 | background-color: #8391a5;
371 | padding: 2px 5px;
372 | color: #fff;
373 | border-radius: 4px;
374 | border: 1px solid transparent;
375 | }
376 |
377 | .my-tag-gray {
378 | background-color: #e4e8f1;
379 | border-color: #e4e8f1;
380 | color: #48576a;
381 | }
382 |
383 | .my-tag-primary {
384 | background-color: rgba(32, 160, 255, .1);
385 | border-color: rgba(32, 160, 255, .2);
386 | color: #20a0ff;
387 | }
388 |
389 | .my-tag-success {
390 | background-color: rgba(18, 206, 102, .1);
391 | border-color: rgba(18, 206, 102, .2);
392 | color: #13ce66;
393 | }
394 |
395 | .my-tag-warning {
396 | background-color: rgba(247, 186, 41, .1);
397 | border-color: rgba(247, 186, 41, .2);
398 | color: #f7ba2a;
399 | }
400 |
401 | .my-tag-danger {
402 | background-color: rgba(255, 73, 73, .1);
403 | border-color: rgba(255, 73, 73, .2);
404 | color: #ff4949;
405 | }
406 |
407 | .wrapper {
408 | clear: both;
409 | overflow: hidden;
410 | }
411 |
412 | .o-hidden {
413 | overflow: hidden;
414 | }
415 |
416 | .clear {
417 | clear: both;
418 | height: 0px;
419 | width: 100%;
420 | font-size: 1px;
421 | line-height: 0px;
422 | visibility: hidden;
423 | overflow: hidden;
424 | }
425 |
426 | .center {
427 | text-align: center;
428 | }
429 |
430 | .ellipsis {
431 | display: block;
432 | white-space: nowrap;
433 | overflow: hidden;
434 | text-overflow: ellipsis;
435 | }
436 |
--------------------------------------------------------------------------------
/src/test.ts:
--------------------------------------------------------------------------------
1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files
2 |
3 | import 'zone.js/dist/long-stack-trace-zone';
4 | import 'zone.js/dist/proxy.js';
5 | import 'zone.js/dist/sync-test';
6 | import 'zone.js/dist/jasmine-patch';
7 | import 'zone.js/dist/async-test';
8 | import 'zone.js/dist/fake-async-test';
9 | import { getTestBed } from '@angular/core/testing';
10 | import {
11 | BrowserDynamicTestingModule,
12 | platformBrowserDynamicTesting
13 | } from '@angular/platform-browser-dynamic/testing';
14 |
15 | // Unfortunately there's no typing for the `__karma__` variable. Just declare it as any.
16 | declare const __karma__: any;
17 | declare const require: any;
18 |
19 | // Prevent Karma from running prematurely.
20 | __karma__.loaded = function () {};
21 |
22 | // First, initialize the Angular testing environment.
23 | getTestBed().initTestEnvironment(
24 | BrowserDynamicTestingModule,
25 | platformBrowserDynamicTesting()
26 | );
27 | // Then we find all the tests.
28 | const context = require.context('./', true, /\.spec\.ts$/);
29 | // And load the modules.
30 | context.keys().map(context);
31 | // Finally, start Karma to run the tests.
32 | __karma__.start();
33 |
--------------------------------------------------------------------------------
/src/theme-element.css:
--------------------------------------------------------------------------------
1 | /*这里是对 primeng 的样式覆盖*/
2 | .router .ui-state-active {
3 | background-color: #0073ea !important;
4 | color: #ffffff !important;
5 | border-color: #0073ea !important;
6 | }
7 |
8 | .router .ui-state-active a {
9 | color: #ffffff !important;
10 | }
11 |
12 | .ui-dialog .ui-dialog-footer {
13 | border: none !important;
14 | }
15 |
16 | .ui-multiselect:not(.ui-state-disabled):hover {
17 | border-color: #0073ea;
18 | background: #FFFFFF;
19 | color: #0073ea;
20 | }
21 |
22 | /*消息色*/
23 | #toast-container .toast {
24 | box-shadow: none !important;
25 | }
26 |
27 | #toast-container .toast-success {
28 | background-image: none !important;
29 | background-color: #13ce66;
30 | }
31 |
32 | #toast-container .toast-info {
33 | background-image: none !important;
34 | background-color: #50bfff;
35 | }
36 |
37 | #toast-container .toast-warning {
38 | background-image: none !important;
39 | background-color: #f7ba2a;
40 | }
41 |
42 | #toast-container .toast-error {
43 | background-image: none !important;
44 | background-color: #ff4949;
45 | }
46 |
47 | tr td,
48 | tr td div {
49 | word-wrap: break-word;
50 | word-break: break-all;
51 | }
52 |
53 | .formBox label.ui-g-2 {
54 | line-height: 36px;
55 | text-align: right;
56 | padding-right: 15px;
57 | }
58 |
59 | .formBox {
60 | width: 900px;
61 | padding: 10px 0 50px 0;
62 | margin-left: 100px;
63 | }
64 |
65 | .label36 {
66 | line-height: 36px;
67 | }
68 |
69 | .ui-overlaypanelFFF .ui-overlaypanel-content {
70 | cursor: pointer;
71 | background-color: #FFFFFF !important;
72 | }
73 |
74 | /*dialog 面板超出500高度滚动条*/
75 | .ui-dialog .dialog-content {
76 | overflow-y: auto !important;
77 | max-height: 500px !important;
78 | }
79 |
--------------------------------------------------------------------------------
/src/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../out-tsc/app",
5 | "baseUrl": "./",
6 | "module": "es2015",
7 | "types": []
8 | },
9 | "exclude": [
10 | "test.ts",
11 | "**/*.spec.ts"
12 | ]
13 | }
14 |
--------------------------------------------------------------------------------
/src/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../out-tsc/spec",
5 | "baseUrl": "./",
6 | "module": "commonjs",
7 | "target": "es5",
8 | "types": [
9 | "jasmine",
10 | "node"
11 | ]
12 | },
13 | "files": [
14 | "test.ts"
15 | ],
16 | "include": [
17 | "**/*.spec.ts",
18 | "**/*.d.ts"
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/src/typings.d.ts:
--------------------------------------------------------------------------------
1 | /* SystemJS module definition */
2 | declare var module: NodeModule;
3 | interface NodeModule {
4 | id: string;
5 | }
6 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compileOnSave": false,
3 | "compilerOptions": {
4 | "outDir": "./dist/out-tsc",
5 | "sourceMap": true,
6 | "declaration": false,
7 | "moduleResolution": "node",
8 | "emitDecoratorMetadata": true,
9 | "experimentalDecorators": true,
10 | "target": "es5",
11 | "typeRoots": [
12 | "node_modules/@types"
13 | ],
14 | "lib": [
15 | "es2017",
16 | "dom"
17 | ]
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "rulesDirectory": [
3 | "node_modules/codelyzer"
4 | ],
5 | "rules": {
6 | "arrow-return-shorthand": true,
7 | "callable-types": true,
8 | "class-name": true,
9 | "comment-format": [
10 | true,
11 | "check-space"
12 | ],
13 | "curly": true,
14 | "eofline": true,
15 | "forin": true,
16 | "import-blacklist": [
17 | true,
18 | "rxjs"
19 | ],
20 | "import-spacing": true,
21 | "indent": [
22 | true,
23 | "spaces"
24 | ],
25 | "interface-over-type-literal": true,
26 | "label-position": true,
27 | "max-line-length": [
28 | true,
29 | 140
30 | ],
31 | "member-access": false,
32 | "member-ordering": [
33 | true,
34 | {
35 | "order": [
36 | "static-field",
37 | "instance-field",
38 | "static-method",
39 | "instance-method"
40 | ]
41 | }
42 | ],
43 | "no-arg": true,
44 | "no-bitwise": true,
45 | "no-console": [
46 | true,
47 | "debug",
48 | "info",
49 | "time",
50 | "timeEnd",
51 | "trace"
52 | ],
53 | "no-construct": true,
54 | "no-debugger": true,
55 | "no-duplicate-super": true,
56 | "no-empty": false,
57 | "no-empty-interface": true,
58 | "no-eval": true,
59 | "no-inferrable-types": [
60 | true,
61 | "ignore-params"
62 | ],
63 | "no-misused-new": true,
64 | "no-non-null-assertion": true,
65 | "no-shadowed-variable": true,
66 | "no-string-literal": false,
67 | "no-string-throw": true,
68 | "no-switch-case-fall-through": true,
69 | "no-trailing-whitespace": true,
70 | "no-unnecessary-initializer": true,
71 | "no-unused-expression": true,
72 | "no-use-before-declare": true,
73 | "no-var-keyword": true,
74 | "object-literal-sort-keys": false,
75 | "one-line": [
76 | true,
77 | "check-open-brace",
78 | "check-catch",
79 | "check-else",
80 | "check-whitespace"
81 | ],
82 | "prefer-const": true,
83 | "quotemark": [
84 | true,
85 | "single"
86 | ],
87 | "radix": true,
88 | "semicolon": [
89 | true,
90 | "always"
91 | ],
92 | "triple-equals": [
93 | true,
94 | "allow-null-check"
95 | ],
96 | "typedef-whitespace": [
97 | true,
98 | {
99 | "call-signature": "nospace",
100 | "index-signature": "nospace",
101 | "parameter": "nospace",
102 | "property-declaration": "nospace",
103 | "variable-declaration": "nospace"
104 | }
105 | ],
106 | "typeof-compare": true,
107 | "unified-signatures": true,
108 | "variable-name": false,
109 | "whitespace": [
110 | true,
111 | "check-branch",
112 | "check-decl",
113 | "check-operator",
114 | "check-separator",
115 | "check-type"
116 | ],
117 | "directive-selector": [
118 | true,
119 | "attribute",
120 | "app",
121 | "camelCase"
122 | ],
123 | "component-selector": [
124 | true,
125 | "element",
126 | "app",
127 | "kebab-case"
128 | ],
129 | "use-input-property-decorator": true,
130 | "use-output-property-decorator": true,
131 | "use-host-property-decorator": true,
132 | "no-input-rename": true,
133 | "no-output-rename": true,
134 | "use-life-cycle-interface": true,
135 | "use-pipe-transform-interface": true,
136 | "component-class-suffix": true,
137 | "directive-class-suffix": true,
138 | "no-access-missing-member": true,
139 | "templates-use-public": true,
140 | "invoke-injectable": true
141 | }
142 | }
143 |
--------------------------------------------------------------------------------