Commit 00350ea8 by 杨子

update

parent a0efcbfe
...@@ -26,8 +26,11 @@ ...@@ -26,8 +26,11 @@
"angular2-baidu-map": "^4.7.0", "angular2-baidu-map": "^4.7.0",
"classlist.js": "^1.1.20150312", "classlist.js": "^1.1.20150312",
"core-js": "^2.5.4", "core-js": "^2.5.4",
"echarts": "^4.2.1",
"echarts-gl": "^1.1.1",
"ng-zorro-antd": "^7.5.1", "ng-zorro-antd": "^7.5.1",
"ngx-color-picker": "^8.1.0", "ngx-color-picker": "^8.1.0",
"ngx-echarts": "^4.2.1",
"rxjs": "~6.3.3", "rxjs": "~6.3.3",
"tslib": "^1.9.0", "tslib": "^1.9.0",
"web-animations-js": "^2.3.2", "web-animations-js": "^2.3.2",
...@@ -38,9 +41,10 @@ ...@@ -38,9 +41,10 @@
"@angular/cli": "~7.3.9", "@angular/cli": "~7.3.9",
"@angular/compiler-cli": "~7.2.0", "@angular/compiler-cli": "~7.2.0",
"@angular/language-service": "~7.2.0", "@angular/language-service": "~7.2.0",
"@types/node": "~8.9.4", "@types/echarts": "^4.1.10",
"@types/jasmine": "~2.8.8", "@types/jasmine": "~2.8.8",
"@types/jasminewd2": "~2.0.3", "@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "~4.5.0", "codelyzer": "~4.5.0",
"jasmine-core": "~2.99.1", "jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1", "jasmine-spec-reporter": "~4.2.1",
......
{
[ "*": {
{ "target": "http://192.168.19.199:80",
"context": [ "secure": false,
"/project", "changeOrigin": true,
"/scetion", "logLevel": "info"
"/course", }
"/camera" }
],
"target": "http://localhost:8081",
"secure": false
}
]
\ No newline at end of file
...@@ -42,7 +42,7 @@ import { environment } from 'src/environments/environment'; ...@@ -42,7 +42,7 @@ import { environment } from 'src/environments/environment';
@Injectable() @Injectable()
export class DefaultService { export class DefaultService {
public basePath = 'https://localhost:443'; public basePath = 'https://localhost:8008';
// public basePath = 'http://192.168.19.199:8081'; // public basePath = 'http://192.168.19.199:8081';
// public basePath = environment.prod? 'http://localhost:8081':'http://192.168.19.199:8081'; // public basePath = environment.prod? 'http://localhost:8081':'http://192.168.19.199:8081';
public defaultHeaders = new HttpHeaders(); public defaultHeaders = new HttpHeaders();
...@@ -52,7 +52,7 @@ export class DefaultService { ...@@ -52,7 +52,7 @@ export class DefaultService {
if(environment.production){ if(environment.production){
this.basePath="./"; this.basePath="./";
}else{ }else{
this.basePath = "http://localhost"; this.basePath = "http://localhost:8008";
// this.basePath = "http://192.168.19.199"; // this.basePath = "http://192.168.19.199";
} }
// if (basePath) { // if (basePath) {
......
import { NgModule } from '@angular/core'; import { NgModule } from "@angular/core";
import { Routes, RouterModule } from '@angular/router'; import { Routes, RouterModule } from "@angular/router";
import { MainComponent } from './main/main.component'; import { MainComponent } from "./main/main.component";
import { VideoComponent } from './video/video.component'; import { VideoComponent } from "./video/video.component";
import { LoginComponent } from './login/login.component'; import { LoginComponent } from "./login/login.component";
import { QsMarkComponent } from "./qs-mark/qs-mark.component";
const routes: Routes = [ const routes: Routes = [
{path:"",redirectTo:"login",pathMatch:'full'}, { path: "", redirectTo: "login", pathMatch: "full" },
{path:'home',component:MainComponent}, { path: "home", component: MainComponent },
{path:'video',component:VideoComponent}, { path: "video", component: VideoComponent },
{path:'login',component:LoginComponent}, { path: "login", component: LoginComponent },
{ path: "qs-mark", component: QsMarkComponent }
]; ];
@NgModule({ @NgModule({
imports: [RouterModule.forRoot(routes,{ imports: [
useHash:true RouterModule.forRoot(routes, {
})], useHash: true
})
],
exports: [RouterModule] exports: [RouterModule]
}) })
export class AppRoutingModule { } export class AppRoutingModule {}
import { BrowserModule } from '@angular/platform-browser'; import { BrowserModule } from "@angular/platform-browser";
import { NgModule } from '@angular/core'; import { NgModule } from "@angular/core";
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { MainComponent } from './main/main.component';
import { VideoComponent } from './video/video.component';
import { BaiduMapModule } from 'angular2-baidu-map';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { ModalComponent } from './modal/modal.component';
import { ApiModule } from './api';
import { HttpClientModule } from '@angular/common/http';
import { ColorPickerModule } from 'ngx-color-picker';
import { NgZorroAntdModule, NZ_I18N, zh_CN,NzIconModule } from 'ng-zorro-antd';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { LoginComponent } from './login/login.component';
import { AppRoutingModule } from "./app-routing.module";
import { AppComponent } from "./app.component";
import { MainComponent } from "./main/main.component";
import { VideoComponent } from "./video/video.component";
import { BaiduMapModule } from "angular2-baidu-map";
import { FormsModule, ReactiveFormsModule } from "@angular/forms";
import { ModalComponent } from "./modal/modal.component";
import { ApiModule } from "./api";
import { HttpClientModule } from "@angular/common/http";
import { ColorPickerModule } from "ngx-color-picker";
import { NgZorroAntdModule, NZ_I18N, zh_CN, NzIconModule } from "ng-zorro-antd";
import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
import { LoginComponent } from "./login/login.component";
import { QsMarkComponent } from "./qs-mark/qs-mark.component";
import { NgxEchartsModule } from "ngx-echarts";
@NgModule({ @NgModule({
declarations: [ declarations: [
AppComponent, AppComponent,
MainComponent, MainComponent,
VideoComponent, VideoComponent,
ModalComponent, ModalComponent,
LoginComponent LoginComponent,
QsMarkComponent
], ],
imports: [ imports: [
HttpClientModule, HttpClientModule,
BrowserModule, BrowserModule,
AppRoutingModule, AppRoutingModule,
...@@ -34,12 +34,13 @@ import { LoginComponent } from './login/login.component'; ...@@ -34,12 +34,13 @@ import { LoginComponent } from './login/login.component';
FormsModule, FormsModule,
ReactiveFormsModule, ReactiveFormsModule,
ApiModule, ApiModule,
NgxEchartsModule,
NzIconModule, NzIconModule,
/** 导入 ng-zorro-antd 模块 **/ /** 导入 ng-zorro-antd 模块 **/
NgZorroAntdModule, NgZorroAntdModule,
BaiduMapModule.forRoot({ ak: 'KhQqnL3owyAzqjr4zCGbWiiHwPFmKTD6' }) BaiduMapModule.forRoot({ ak: "KhQqnL3owyAzqjr4zCGbWiiHwPFmKTD6" })
], ],
providers: [], providers: [],
bootstrap: [AppComponent] bootstrap: [AppComponent]
}) })
export class AppModule { } export class AppModule {}
<h1 class="gradient"> <h1 class="gradient">
山西省公路建设智慧监管指挥平台 山西省公路建设智慧监管指挥平台
</h1> </h1>
<div *ngIf="debug"> <div *ngIf="debug">
标注:<input id="markerText" type="text"> 标注:<input id="markerText" type="text">
theme: theme:
...@@ -11,21 +10,21 @@ ...@@ -11,21 +10,21 @@
set curive: set curive:
<input type="checkbox" [(ngModel)]="curive"> <input type="checkbox" [(ngModel)]="curive">
<input type="number" [(ngModel)]="curiveLength"> <input type="number" [(ngModel)]="curiveLength">
<select [(ngModel)]="type" (ngModelChange)="typeChange($event)"> <select [(ngModel)]="type" (ngModelChange)="typeChange($event)">
<option value="0">project</option> <option value="0">project</option>
<option value="1">course</option> <option value="1">course</option>
<option value="2">SECTION</option> <option value="2">SECTION</option>
</select> </select>
<select [(ngModel)]="currentCouseId"> <select [(ngModel)]="currentCouseId">
<option *ngFor="let c of courses" [value]="c.id" >{{c.name}}</option> <option *ngFor="let c of courses" [value]="c.id">{{c.name}}</option>
</select> </select>
<select [(ngModel)]="currentProjId" (ngModelChange)="proj2Change($event,1)"> <select [(ngModel)]="currentProjId" (ngModelChange)="proj2Change($event,1)">
<option *ngFor="let c of projects1" [value]="c.id" >{{c.name}}</option> <option *ngFor="let c of projects1" [value]="c.id">{{c.name}}</option>
</select> </select>
<select [(ngModel)]="currentProjId" (ngModelChange)="proj2Change($event,2)"> <select [(ngModel)]="currentProjId" (ngModelChange)="proj2Change($event,2)">
<option *ngFor="let c of projects2" [value]="c.id" >{{c.name}}</option> <option *ngFor="let c of projects2" [value]="c.id">{{c.name}}</option>
</select> </select>
</div> </div>
<div id="baidu-map"></div> <div id="baidu-map"></div>
<div class="main"> <div class="main">
...@@ -116,8 +115,8 @@ ...@@ -116,8 +115,8 @@
<p>capital: <input type="text" [(ngModel)]="proj.capital" /></p> <p>capital: <input type="text" [(ngModel)]="proj.capital" /></p>
<p>coordinate: <input type="text" [(ngModel)]="proj.coordinate" /></p> <p>coordinate: <input type="text" [(ngModel)]="proj.coordinate" /></p>
<p>course: <input type="text" [(ngModel)]="proj.course" /></p> <p>course: <input type="text" [(ngModel)]="proj.course" /></p>
<p>lineStyle: <p>lineStyle:
<input [(colorPicker)]="proj.lineStyle" [style.background]="proj.lineStyle"/> <input [(colorPicker)]="proj.lineStyle" [style.background]="proj.lineStyle" />
</p> </p>
<p>lineWidth: <input type="text" [(ngModel)]="proj.lineWidth" /></p> <p>lineWidth: <input type="text" [(ngModel)]="proj.lineWidth" /></p>
<p>mileage: <input type="text" [(ngModel)]="proj.mileage" /></p> <p>mileage: <input type="text" [(ngModel)]="proj.mileage" /></p>
...@@ -129,54 +128,54 @@ ...@@ -129,54 +128,54 @@
<jw-modal id="custom-modal-2"> <jw-modal id="custom-modal-2">
<h1>添加course</h1> <h1>添加course</h1>
<p>courses名称: <input type="text" [(ngModel)]="course.name" /></p> <p>courses名称: <input type="text" [(ngModel)]="course.name" /></p>
<p>lineStyle: <p>lineStyle:
<input [(colorPicker)]="course.lineStyle" [style.background]="course.lineStyle"/> <input [(colorPicker)]="course.lineStyle" [style.background]="course.lineStyle" />
</p> </p>
<p>lineWidth: <input type="text" [(ngModel)]="course.lineWidth" /></p> <p>lineWidth: <input type="text" [(ngModel)]="course.lineWidth" /></p>
<p>coordinate: <input type="text" [(ngModel)]="course.coordinate" /></p> <p>coordinate: <input type="text" [(ngModel)]="course.coordinate" /></p>
<p>mark: <p>mark:
<select [(ngModel)]="course.mark" > <select [(ngModel)]="course.mark">
<option [value]="1">高速公路</option> <option [value]="1">高速公路</option>
<option [value]="2">普通干线</option> <option [value]="2">普通干线</option>
</select> </select>
</p> </p>
<button (click)="addCourse(course)">添加</button> <button (click)="addCourse(course)">添加</button>
<button (click)="closeModal('custom-modal-2');">Close</button> <button (click)="closeModal('custom-modal-2');">Close</button>
</jw-modal> </jw-modal>
<jw-modal id="custom-modal-3"> <jw-modal id="custom-modal-3">
<h1>添加section</h1> <h1>添加section</h1>
<p>section名称: <input type="text" [(ngModel)]="section.name" /></p> <p>section名称: <input type="text" [(ngModel)]="section.name" /></p>
<p>projectId: <input type="text" [(ngModel)]="section.project" /></p> <p>projectId: <input type="text" [(ngModel)]="section.project" /></p>
<p>lineStyle: <p>lineStyle:
<input [(colorPicker)]="section.lineStyle" [style.background]="section.lineStyle"/> <input [(colorPicker)]="section.lineStyle" [style.background]="section.lineStyle" />
</p> </p>
<p>lineWidth: <input type="text" [(ngModel)]="section.lineWidth" /></p> <p>lineWidth: <input type="text" [(ngModel)]="section.lineWidth" /></p>
<p>coordinate: <input type="text" [(ngModel)]="section.coordinate" /></p> <p>coordinate: <input type="text" [(ngModel)]="section.coordinate" /></p>
<p>mileage: <input type="text" [(ngModel)]="section.mileage" /></p> <p>mileage: <input type="text" [(ngModel)]="section.mileage" /></p>
<button (click)="addSection(section)">添加</button> <button (click)="addSection(section)">添加</button>
<button (click)="closeModal('custom-modal-3');">Close</button> <button (click)="closeModal('custom-modal-3');">Close</button>
</jw-modal> </jw-modal>
<jw-modal id="marker"> <jw-modal id="marker">
<h1>添加marker</h1> <h1>添加marker</h1>
<p>marker 名称: <input type="text" [(ngModel)]="marker.name" /></p> <p>marker 名称: <input type="text" [(ngModel)]="marker.name" /></p>
<p>子标题 名称: <input type="text" [(ngModel)]="marker.mark" /></p> <p>子标题 名称: <input type="text" [(ngModel)]="marker.mark" /></p>
<p>divStyle: <p>divStyle:
<input [(colorPicker)]="marker.divStyle" [style.background]="marker.divStyle"/> <input [(colorPicker)]="marker.divStyle" [style.background]="marker.divStyle" />
</p> </p>
<p>coordinate: <input type="text" [(ngModel)]="marker.coordinate" /></p> <p>coordinate: <input type="text" [(ngModel)]="marker.coordinate" /></p>
<button (click)="addMarker(marker)">添加</button> <button (click)="addMarker(marker)">添加</button>
<button (click)="closeModal('marker');">Close</button> <button (click)="closeModal('marker');">Close</button>
</jw-modal> </jw-modal>
<div class="function"> <div class="function">
<div class="tooltip"> <div class="tooltip">
...@@ -184,26 +183,48 @@ ...@@ -184,26 +183,48 @@
<span class="tooltiptextx">视频监控</span> <span class="tooltiptextx">视频监控</span>
</div> </div>
<div class="tooltip"> <div class="tooltip">
<a href="http://47.92.203.246/pcByFullScreen/#/pcByFullScreen/" target="_blank"> <a routerLink="/qs-mark">
<img alt="质量安全监管" class="tooltip" src="/assets/baseline-security.svg"> <img alt="质量安全监管" class="tooltip" src="/assets/baseline-security.svg">
</a> </a>
<span class="tooltiptextx">质量安全监管 <span class="tooltiptextx">质量安全监管
</span> </span>
</div> </div>
<div class="tooltip"> <div class="tooltip">
<img alt="视频监控" class="tooltip" src="/assets/baseline-assessment.svg"> <img alt="视频监控" class="tooltip" src="/assets/baseline-assessment.svg">
<span class="tooltiptextx">建设程序监管 </span> <span class="tooltiptextx">建设程序监管 </span>
</div> </div>
<div class="tooltip"> <div class="tooltip">
<img alt="视频监控" class="tooltip" src="/assets/baseline-featured_play.svg"> <img alt="视频监控" class="tooltip" src="/assets/baseline-featured_play.svg">
<span class="tooltiptextx">投资监管</span> <span class="tooltiptextx">投资监管</span>
</div> </div>
<div class="tooltip"> <div class="tooltip">
<img alt="视频监控" class="tooltip" src="/assets/baseline-table_chart-24px.svg"> <img alt="视频监控" class="tooltip" src="/assets/baseline-table_chart-24px.svg">
<span class="tooltiptextx">造价监管</span> <span class="tooltiptextx">造价监管</span>
</div> </div>
</div> </div>
\ No newline at end of file
<div class="b-mark">
<div class="legend">图例</div>
<div class="con">
<div class="mark-c">
<div class="line g-line"></div>
<div>已建成高速公路</div>
</div>
<div class="mark-c">
<div class="line b-line"></div>
<div>在建项目</div>
</div>
<div class="mark-c">
<div class="line v-line"></div>
<div style="width:98px;">拟开工项目</div>
</div>
<div class="mark-c">
<div class="line o-line"></div>
<div>待建项目</div>
</div>
</div>
</div>
<h1 class="gradient">
山西省交通运输厅智慧监管指挥平台
</h1>
<div class="main">
<div class="aside">
<button class="ie-fix-button" (click)="back()">返回</button>
<nz-tree [nzShowIcon]="true" [nzTreeTemplate]="nzTreeTemplate" [nzData]="nodes" nzAsyncData
(nzClick)="addVCR($event)" (nzExpandChange)="nzEvent($event)">
<ng-template #nzTreeTemplate let-node>
<span *ngIf="node.isLeaf">
<i nz-icon nzType="video-camera" nzTheme="outline"></i>
{{node.title}}
</span>
<span *ngIf="!node.isLeaf">
<i nz-icon nzType="cluster" nzTheme="outline"></i>
{{node.title}}
</span>
</ng-template>
</nz-tree>
</div>
<div class="content">
<div class="loading">
<div class="left"></div>
<div class="right"></div>
<div class="progress">质量监管</div>
</div>
</div>
</div>
.ie-fix-button {
background: #dbdbc90f;
color: #16e8d6;
border-radius: 9px;
width: 130px;
height: 39px;
display: block;
margin: 0.3em;
font-size: initial;
top: -41px;
left: -8px;
border: 2px solid #f3f42678;
}
.aside {
width: 301px;
position: absolute;
top: 15%;
display: flex;
flex-direction: column;
}
.content {
margin-left: 301px;
}
@media (min-width: 1025px) and (max-width: 1440px) {
.main {
.aside {
width: 250px;
}
}
.content {
margin-left: 250px;
}
}
.demo-chart {
height: 400px;
}
.loading {
margin: 100px auto;
width: 8em;
height: 8em;
position: relative;
}
.loading .progress {
position: absolute;
width: 6em;
height: 6em;
background-color: white;
border-radius: 50%;
left: 1em;
top: 1em;
line-height: 6em;
text-align: center;
}
.left,
.right {
width: 4em;
height: 8em;
overflow: hidden;
position: relative;
float: left;
background-color: #999999
}
.left {
border-radius: 8em 0 0 8em;
}
.right {
border-radius: 0 8em 8em 0;
}
.left:after,
.right:after {
content: "";
position: absolute;
display: block;
width: 4em;
height: 8em;
background-color: white;
border-radius: 8em 0 0 8em;
background-color: red;
}
.right:after {
content: "";
position: absolute;
display: block;
border-radius: 0 8em 8em 0;
}
.left:after {
transform-origin: right center;
}
.right:after {
transform-origin: left center;
transform: rotateZ(45deg);
}
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { QsMarkComponent } from './qs-mark.component';
describe('QsMarkComponent', () => {
let component: QsMarkComponent;
let fixture: ComponentFixture<QsMarkComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ QsMarkComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(QsMarkComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from "@angular/core";
import { HttpClient } from "@angular/common/http";
import { NzFormatEmitEvent } from "ng-zorro-antd";
import { DefaultService } from "../api";
import { EChartOption } from "echarts";
@Component({
selector: "app-qs-mark",
templateUrl: "./qs-mark.component.html",
styleUrls: ["./qs-mark.component.less"]
})
export class QsMarkComponent implements OnInit {
nodes = [{ title: "高速公路", key: "1" }, { title: "普通干线", key: "0" }];
constructor(private http: HttpClient, private d: DefaultService) {}
ngOnInit() {}
nzEvent(event: Required<NzFormatEmitEvent>) {
console.log(event);
// load child async
if (event.eventName === "expand") {
const node = event.node;
let request = null;
if (node.level == 0) {
request = "/project/list/";
} else {
request = "";
return false;
}
if (node && node.getChildren().length === 0 && node.isExpanded) {
this.http.get(this.d.basePath + request + node.key).subscribe(res => {
node.addChildren(
(res as any).data.map(function(d, index) {
return {
title: d.name || d.cameraName,
key: d.id || d.cameraIndexCode,
index,
isLeaf: node.level == 2
};
})
);
});
}
}
}
}
<h1 class="gradient"> <h1 class="gradient">
山西省公路建设智慧监管指挥平台 山西省交通运输厅智慧监管指挥平台
</h1> </h1>
<div class="main"> <div class="main">
<div class="left"> <div class="left">
<button class="ie-fix-button" (click)="back()">返回</button> <button class="ie-fix-button" (click)="back()">返回</button>
<nz-tree [nzShowIcon]="true" [nzTreeTemplate]="nzTreeTemplate" [nzData]="nodes" nzAsyncData <nz-tree [nzShowIcon]="true" [nzTreeTemplate]="nzTreeTemplate" [nzData]="nodes" nzAsyncData
(nzClick)="addVCR($event)" (nzExpandChange)="nzEvent($event)"> (nzClick)="addVCR($event)" (nzExpandChange)="nzEvent($event)">
<ng-template #nzTreeTemplate let-node> <ng-template #nzTreeTemplate let-node>
<!-- <span class="custom-node" [class.active]="activedNode?.key === node.key"> <!-- <span class="custom-node" [class.active]="activedNode?.key === node.key">
<span *ngIf="!node.isLeaf" (contextmenu)="contextMenu($event, menu)"> <span *ngIf="!node.isLeaf" (contextmenu)="contextMenu($event, menu)">
...@@ -26,7 +24,7 @@ ...@@ -26,7 +24,7 @@
<span *ngIf="node.isLeaf"> <span *ngIf="node.isLeaf">
<i nz-icon nzType="video-camera" nzTheme="outline"></i> <i nz-icon nzType="video-camera" nzTheme="outline"></i>
{{node.title}} {{node.title}}
<!-- <a href="https://221.131.9.172:1443"> <!-- <a href="https://221.131.9.172:1443">
<i nz-icon nzType="sound" (click)="goTo('https://221.131.9.172:1443')" nzTheme="outline"></i> <i nz-icon nzType="sound" (click)="goTo('https://221.131.9.172:1443')" nzTheme="outline"></i>
</a> --> </a> -->
...@@ -51,6 +49,6 @@ ...@@ -51,6 +49,6 @@
</div> </div>
<nz-modal [(nzVisible)]="isVisible" nzTitle="" (nzOnCancel)="handleCancel()" (nzOnOk)="handleOk()"> <nz-modal [(nzVisible)]="isVisible" nzTitle="" (nzOnCancel)="handleCancel()" (nzOnOk)="handleOk()">
<p>插件启动失败,请检查插件是否安装!</p> <p>插件启动失败,请检查插件是否安装!</p>
<p>下载地址:<a href="/assets/VideoWebPlugin.exe">VideoWebPlugin.exe</a></p> <p>下载地址:<a href="/assets/VideoWebPlugin.exe">VideoWebPlugin.exe</a></p>
</nz-modal> </nz-modal>
import { enableProdMode } from '@angular/core'; import { enableProdMode } from "@angular/core";
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { platformBrowserDynamic } from "@angular/platform-browser-dynamic";
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
import { AppModule } from "./app/app.module";
import { environment } from "./environments/environment";
/** echarts extensions: */
import "echarts-gl";
import "echarts/theme/macarons.js";
import "echarts/dist/extension/bmap.min.js";
if (environment.production) { if (environment.production) {
enableProdMode(); enableProdMode();
} }
platformBrowserDynamic().bootstrapModule(AppModule) platformBrowserDynamic()
.bootstrapModule(AppModule)
.catch(err => console.error(err)); .catch(err => console.error(err));
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment