├── .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 | ![缩略图](src/assets/image/md/2.png) 53 | 54 | 55 | #### 对于webstorm的朋友如果下下来抱tslint错误,可以把tslint关闭了 56 | 57 | ![缩略图](src/assets/image/md/3.png) 58 | ![缩略图](src/assets/image/md/4.png) 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 |
4 | 5 | 6 |
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 |
9 | {{name1}} 10 | 11 | {{name2}} 12 | 13 | {{name3}} 14 |
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 |
5 | 6 |
7 |
8 | 9 |
10 | 12 |
13 |
14 |
15 | 16 |
17 | 请填写店名 18 |
19 |
20 | 21 | 22 |
23 | 24 |
25 | 28 |
29 |
30 |
31 | 32 |
33 | 请填写更加详细地址 34 |
35 |
36 |
37 | 38 |
39 | 41 |
42 |
43 |
44 | 45 |
46 | 请填写店长 47 |
48 |
49 |
50 | 51 |
52 | 54 |
55 |
56 |
57 | 58 |
59 | 请填写联系电话 60 |
61 |
62 |
63 |
64 | 65 |
66 | 67 | 68 |
69 |
70 | 71 | 72 |
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 |
7 | 8 |
9 |
10 |
11 | First Name *: 12 |
13 |
14 | 15 |
16 |
17 |
18 | 19 | Firstname is required 20 |
21 |
22 |
23 |
24 |
25 | Last Name *: 26 |
27 |
28 | 29 |
30 |
31 |
32 | 33 | Lastname is required 34 |
35 |
36 |
37 |
38 |
39 | Password *: 40 |
41 |
42 | 43 |
44 |
45 |
46 | 47 | Password is required 48 | Must be longer than 6 characters 49 |
50 |
51 |
52 |
53 |
54 | Description: 55 |
56 |
57 | 58 |
59 |
60 |
61 |
62 |
63 | Gender *: 64 |
65 |
66 | 67 |
68 |
69 |
70 | 71 | Gender is required 72 |
73 |
74 |
75 |
76 |
77 |
78 | 79 |
80 |
81 |
82 |
83 | Form Submitted 84 |
85 | {{diagnostic}} 86 |
87 |
88 |
89 |
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 |
3 |
4 | 5 |

{{item}}

6 |
7 |
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 |
13 | 14 |
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 | 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 |
7 | 8 |
9 |
10 |
11 | First Name *: 12 |
13 |
14 | 15 |
16 |
17 |
18 | 19 | Firstname is required 20 |
21 |
22 |
23 | 24 |
25 |
26 |
27 | 28 |
29 |
30 |
31 |
32 |
33 |
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 |
4 | 12 |
13 | 32 |
33 | 34 |
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 | --------------------------------------------------------------------------------