src/app/core/core.module.ts
@@ -3,13 +3,14 @@ import { AlainThemeModule } from '@delon/theme'; import { I18NService } from './i18n/i18n.service'; import { _HttpClient } from '@delon/theme/services/http/http.client'; @NgModule({ imports: [ AlainThemeModule.forRoot() ], providers: [ I18NService I18NService, _HttpClient ] }) export class CoreModule { src/app/core/entity/grid.ts
@@ -1,5 +1,11 @@ import { Column } from '@core/entity/grid'; import { Types } from '@core/enum/types.enum'; export interface AreaNames { provinceName?: string; cityName?: string; areaName?: string; } export interface Column { text?: string; name?: string; @@ -7,6 +13,7 @@ sort?: string; isSort?: boolean; type?: DataType; format?: Function; } export interface DataType { name: Types; src/app/core/pipe/tyep-handle.pipe.ts
@@ -16,18 +16,21 @@ constructor(private dateService: DateService) { } transform(value: any, col?: Column): any { transform(value: any, col?: Column, row?: any ): any { const t = Types.Date; const type = col.type; if (type != null && type.name != null) { if ( value != null && value !== '' && type != null && type.name != null) { value = this.transformHandle(value, type.name, type.format); } if (col.format !== null && col.format instanceof Function ) { value = col.format(value, col, row); } return value; } private transformHandle(value: any, type: Types, format: any): any{ private transformHandle(value: any, type: Types, format: any): any { switch (type) { case Types.Date: return this.dateService.date_format(value, format); } } } } src/app/core/services/areacode.service.ts
New file @@ -0,0 +1,55 @@ import { environment } from './../../../environments/environment.prod'; import { Injectable } from '@angular/core'; import { _HttpClient } from '@delon/theme/services/http/http.client'; // Statics import 'rxjs/add/observable/throw'; // Operators import 'rxjs/add/operator/catch'; import 'rxjs/add/operator/map'; import { Observable } from 'rxjs/Observable'; @Injectable() export class AreacodeService { baseUrl = environment.SERVER_BASH_URL; constructor(private http: _HttpClient) { } getProvinces(): Observable<{label: string, value: string}[]> { return this.http.get( this.baseUrl + '/area/get-provinces' ).map( (res: {code: number, data: any}) => { let provinces = []; if (res !== null && res['code'] === 1 ) { provinces = res['data'].map((item) => { return {label: item.provinceName , value: item.provinceCode }; }); } return provinces; } ); } getCities(provinceCode: string): Observable<{label: string, value: string}[]> { return this.http.get( this.baseUrl + '/area/get-cities', {provinceCode: provinceCode}).map( (res: {code: number, data: any}) => { let cities = []; if (res !== null && res['code'] === 1 ) { cities = res['data'].map((item) => { return {label: item.cityName , value: item.cityCode }; }); } return cities; } ); } getAreas(cityCode: string): Observable<{label: string, value: string}[]> { return this.http.get( this.baseUrl + '/area/get-areas', {cityCode: cityCode}).map( (res: {code: number, data: any}) => { let areas = []; if (res !== null && res['code'] === 1 ) { areas = res['data'].map((item) => { return {label: item.areaName , value: item.areaCode , isLeaf: true}; }); } return areas; } ); } } src/app/routes/devices/devices.module.ts
@@ -10,11 +10,11 @@ import { VersionService } from 'app/routes/devices/version/version.service'; import { Version } from '@angular/compiler/src/util'; import { _HttpClient } from '@delon/theme/services/http/http.client'; import { AddOrEditComponent } from './version/add-or-edit/add-or-edit.component'; import { PipeModule } from '@core/pipe/pipe.module'; import { FormBuilder } from '@angular/forms'; import { VersionEditComponent } from './version/version-edit/version-edit.component'; const COMPONENTS_NOROUNT = [ AddOrEditComponent ]; const COMPONENTS_NOROUNT = [ VersionEditComponent ]; const routes: Routes = [ { @@ -39,7 +39,7 @@ BasicInfoComponent, VersionComponent, MonitorPointComponent, ...COMPONENTS_NOROUNT ...COMPONENTS_NOROUNT ], providers: [ToolsService, VersionService, _HttpClient, FormBuilder], entryComponents: COMPONENTS_NOROUNT src/app/routes/devices/version/version-edit/version-edit.component.html
src/app/routes/devices/version/version-edit/version-edit.component.ts
File was renamed from src/app/routes/devices/version/add-or-edit/add-or-edit.component.ts @@ -1,16 +1,14 @@ import { DeviceVersion } from './../version.component'; import { Component, OnInit } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { NzMessageService, NzModalSubject } from 'ng-zorro-antd'; import { DateService } from '@core/services/date.service'; import { FormGroup, FormBuilder, Validators } from '@angular/forms'; import { DeviceVersion } from 'app/routes/devices/version/version.component'; @Component({ selector: 'app-add-or-edit', templateUrl: './add-or-edit.component.html', selector: 'app-version-edit', templateUrl: './version-edit.component.html', styles: [] }) export class AddOrEditComponent implements OnInit { export class VersionEditComponent implements OnInit { cols: DeviceVersion; @@ -27,7 +25,7 @@ name: [this.data.name, [Validators.required] ], version: [this.data.version == null ? 1 : this.data.version, [Validators.required] ], createTime: [this.data.createTime, [Validators.required] ], description: [this.data.description, [Validators.required] ] description: [this.data.description] }; this.validateForm = this.formBuilder.group( validates @@ -53,16 +51,14 @@ return; } this.isSaving = true; Object.keys(this.data).forEach( (key: string) => { Object.keys(value).forEach( (key: string) => { if ( value[key] != null ) { this.data[key] = value[key]; } } ); this.subject.next( this ); }else { for (const i in this.validateForm.controls) { this.validateForm.controls[ i ].markAsDirty(); } this.validate(); } } validate() { src/app/routes/devices/version/version.component.html
@@ -47,7 +47,7 @@ [ngStyle]="{'width':col.width,'text-align':col['align'] === undefined?'left':col.align}"> <span [ngSwitch]="col.type"> <!-- 要使用管道,无法自动生成 --> <span *ngSwitchDefault> {{ row[col.name]|tyepHandle:col }} </span> <span *ngSwitchDefault> {{ row[col.name]|tyepHandle:col:row}} </span> <!-- 要使用管道,无法自动生成 --> </span> </td> src/app/routes/devices/version/version.component.ts
@@ -1,5 +1,4 @@ import { DataType } from './../../../core/entity/grid'; import { AddOrEditComponent } from './add-or-edit/add-or-edit.component'; import { Version } from '@angular/compiler/src/util'; import { Subject } from 'rxjs/Subject'; import { ToolsService } from '@core/services/tools.service'; @@ -13,6 +12,7 @@ import { Types } from '@core/enum/types.enum'; import { Column, Grid, PageBean } from '@core/entity/grid'; import { filter } from 'rxjs/operators/filter'; import { VersionEditComponent } from 'app/routes/devices/version/version-edit/version-edit.component'; export interface DeviceVersion { createTime?: Column|any; @@ -108,7 +108,7 @@ data = {}; } const cols = this.version; this.modalHelper.static(AddOrEditComponent, { cols , data }).subscribe( this.modalHelper.static(VersionEditComponent, { cols , data }).subscribe( ( ret: { data: any, close: Function} ) => { this.versionService.save(ret.data).subscribe( ( res: any) => { src/app/routes/systems/organization/organization-edit/organization-edit.component.html
New file @@ -0,0 +1,90 @@ <div class="modal-header"> <div class="modal-title">{{ data.id != null ? '编辑' : '添加'}} - 组织</div> </div> <form [formGroup]="validateForm" (ngSubmit)="save($event,validateForm.value,validateForm.valid)" nz-form [nzType]="'horizontal'"> <div nz-form-item nz-row class="mb-sm"> <div nz-form-label nz-col [nzSm]="4" [nzXs]="24"> <label nz-form-item-required>名称</label> </div> <div nz-form-control nz-col [nzSpan]="7" nzHasFeedback> <nz-input formControlName="name" maxlength="20" [nzPlaceHolder]="'组织名称'"> </nz-input> </div> <div nz-form-label nz-col [nzSm]="4" [nzXs]="24"> <label>级别</label> </div> <div nz-form-control nz-col [nzSpan]="4" nzHasFeedback> <nz-select style="width: 120px;" formControlName="rank" [nzPlaceHolder]="'选择 级别'"> <nz-option *ngFor="let option of rankOptions" [nzLabel]="option.label" [nzValue]="option.value" [nzDisabled]="option.disabled"> </nz-option> </nz-select> </div> </div> <div nz-form-item nz-row class="mb-sm"> <div nz-form-label nz-col [nzSm]="4" [nzXs]="24"> <label nz-form-item-required>省/市/区</label> </div> <div nz-form-control nz-col [nzSpan]="7" nzHasFeedback> <nz-cascader [class.class123]="true" (nzChange)="setAreaCodes($event)" formControlName="_areas" (nzLoad)="areaLazyLoad($event)" [nzPlaceHolder]="'选择 省/市/区'" > </nz-cascader> </div> <div nz-form-label nz-col [nzSm]="4" [nzXs]="24"> <label>详细地址</label> </div> <div nz-form-control nz-col [nzSpan]="7" nzHasFeedback> <nz-input formControlName="address" maxlength="20" [nzPlaceHolder]="'详细地址(例):人民路120号'"> </nz-input> </div> </div> <div nz-form-item nz-row class="mb-sm"> <div nz-form-label nz-col [nzSm]="4" [nzXs]="24"> <label>电话</label> </div> <div nz-form-control nz-col [nzSpan]="7" nzHasFeedback> <nz-input formControlName="telephone" maxlength="20" [nzPlaceHolder]="'电话(例):0512-12345678'"></nz-input> </div> <div nz-form-label nz-col [nzSm]="4" [nzXs]="24"> <label>邮件</label> </div> <div nz-form-control nz-col [nzSpan]="7" nzHasFeedback> <nz-input formControlName="email" maxlength="20" [nzPlaceHolder]="'邮件(例):abc@qq.com'"></nz-input> </div> </div> <div nz-form-item nz-row class="mb-sm"> <div nz-form-label nz-col [nzSm]="4" [nzXs]="24"> <label nz-form-item-required>创建时间</label> </div> <div nz-form-control nz-col [nzSpan]="7" nzHasFeedback> <nz-datepicker nzSize="large" style="width: 90%;" formControlName="createTime" nzShowTime [nzPlaceHolder]="'选择时间'" [nzFormat]="'YYYY-MM-DD HH:mm:ss'" ></nz-datepicker> </div> <div nz-form-label nz-col [nzSm]="4" [nzXs]="24"> <label nz-form-item-required>到期时间</label> </div> <div nz-form-control nz-col [nzSpan]="7" nzHasFeedback> <nz-datepicker nzSize="large" style="width: 90%;" formControlName="expireTime" nzShowTime [nzPlaceHolder]="'选择时间'" [nzFormat]="'YYYY-MM-DD HH:mm:ss'" ></nz-datepicker> </div> </div> <div nz-form-item nz-row class="mb-sm"> <div nz-form-label nz-col [nzSm]="4" [nzXs]="24"> <label>备注</label> </div> <div nz-form-control nz-col [nzSpan]="16" nzHasFeedback> <nz-input formControlName="description" maxlength="100"></nz-input> </div> </div> <div class="modal-footer"> <button nz-button type="button" (click)="close()">关闭</button> <button nz-button [nzType]="'primary'" [nzLoading]="isSaving"> <span> 保存 <span *ngIf="isSaving">中</span> </span> </button> </div> </form> src/app/routes/systems/organization/organization-edit/organization-edit.component.ts
New file @@ -0,0 +1,116 @@ import { Organization } from './../organization.component'; import { AreacodeService } from './../../../../core/services/areacode.service'; import { Component, OnInit } from '@angular/core'; import { NzMessageService, NzModalSubject } from 'ng-zorro-antd'; import { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms'; import { CascaderOption } from 'ng-zorro-antd/src/cascader/nz-cascader.component'; @Component({ selector: 'app-organization-edit', templateUrl: './organization-edit.component.html', styles: [] }) export class OrganizationEditComponent implements OnInit { rankOptions = [ { value: 0, label: '企业' }, { value: 1, label: '乡镇科级' }, { value: 2, label: '县处级' }, { value: 3, label: '司厅局级' }, { value: 4, label: '省部级' }, { value: 5, label: '国家级' } ]; data: Organization; isSaving = false; validateForm: FormGroup; constructor( private subject: NzModalSubject, private formBuilder: FormBuilder, private areacodeService: AreacodeService ) { } ngOnInit() { const data = this.data; const areaNames = data.areaNames; let _areas = null; if (areaNames != null) { _areas = { label: Object.values(areaNames).join('/'), value: data.areaCode }; } if (data.createTime == null) { data.createTime = new Date().getTime(); } const validates: Organization|object = { name: [data.name, [Validators.required] ], rank: [data.rank], telephone: [data.telephone, [ Validators.pattern('^0\\d{2,3}-?\\d{7,8}$') ]], email: [data.email, [ Validators.pattern('^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+') ] ], address: [data.address ], _areas: [_areas, [Validators.required]], createTime: [data.createTime, [Validators.required] ], expireTime: [data.expireTime, [Validators.required] ], description: [data.description ] }; this.validateForm = this.formBuilder.group( validates ); } close() { this.subject.destroy(); } save($event, value, valid) { $event.preventDefault(); if (valid) { for (const i in this.validateForm.controls) { this.validateForm.controls[ i ].disable(); } this.isSaving = true; Object.keys(value).forEach( (key: string) => { // '_'为前缀的为自定义属性 if (!key.startsWith('_') && value[key] != null) { this.data[key] = value[key]; } } ); this.subject.next( this ); }else { this.validate(); } } validate() { for (const i in this.validateForm.controls) { this.validateForm.controls[ i ].markAsDirty(); } } areaLazyLoad(event: { option: CascaderOption, index: number, resolve: (children: CascaderOption[]) => void, reject: () => void }) { const index = event['index']; const option = event.option; switch (index) { case -1: this.areacodeService.getProvinces().subscribe( (res: {label: string, value: string}[]) => { event.resolve( res ); } ); break; case 0: this.areacodeService.getCities(option.value).subscribe( (res: {label: string, value: string}[]) => { event.resolve( res ); } ); break; case 1: this.areacodeService.getAreas(option.value).subscribe( (res: {label: string, value: string}[]) => { event.resolve( res ); } ); break; } } setAreaCodes(codes: string[]) { this.data.provinceCode = codes[0]; this.data.cityCode = codes[1]; this.data.areaCode = codes[2]; } } src/app/routes/systems/organization/organization.component.html
New file @@ -0,0 +1,65 @@ <pro-header [title]="grid.title"></pro-header> <nz-card [nzBordered]="false"> <div class="mb-md"> <button nz-button (click)="addOrModify()" [nzType]="'primary'" [nzSize]="'large'"> <i class="anticon anticon-plus"></i><span>新建</span> </button> <ng-container *ngIf="grid.selectedIndexs.length > 0"> <button nz-button [nzSize]="'large'" (click)="deleteSelected()">批量删除</button> </ng-container> <nz-input [ngStyle]="{'width': '280px','float':'right'}" [(ngModel)]="queryMap.value" name="" [nzPlaceHolder]="queryMap.text" (keyup)="queryTextChanged($event)" (change)="queryTextChanged($event)" ></nz-input> </div> <div class="mb-md"> <nz-alert *ngIf="grid.selectedIndexs.length > 0" [nzType]="'info'" [nzShowIcon]="true"> <span alert-body> 已选择<strong class="text-primary">{{grid.selectedIndexs.length}}</strong>项 </span> </nz-alert> </div> <nz-table #nzTable [nzAjaxData]="grid.data" [nzTotal]="grid.total" [(nzPageIndex)]="grid.pageIndex" [(nzPageSize)]="grid.pageSize" [nzLoading]="grid.loading" [nzShowTotal]="true" (nzPageIndexChange)="load()"> <thead nz-thead> <tr> <th nz-th [nzCheckbox]="true"> <label nz-checkbox [(ngModel)]="grid.allChecked" [nzIndeterminate]="grid.indeterminate" (ngModelChange)="grid.checkAll($event)"></label> </th> <th nz-th *ngFor="let col of grid.columns" [ngStyle]="{'width':col.width,'text-align':col['align'] === undefined?'left':col.align}" > <span>{{ col.text }}</span> <nz-table-sort *ngIf="col.isSort" [(nzValue)]="col.sort" (nzValueChange)="sort(col.name,$event)"></nz-table-sort> </th> <th nz-th><span>操作</span></th> </tr> </thead> <tbody nz-tbody> <tr nz-tbody-tr *ngFor="let row of nzTable.data"> <td nz-td [nzCheckbox]="true"> <label nz-checkbox [(ngModel)]="row.checked" (ngModelChange)="grid.refreshStatus($event)"></label> </td> <td nz-td *ngFor="let col of grid.columns" [ngStyle]="{'width':col.width,'text-align':col['align'] === undefined?'left':col.align}"> <span [ngSwitch]="col.type"> <!-- 要使用管道,无法自动生成 --> <span *ngSwitchDefault> {{ row[col.name]|tyepHandle:col:row }} </span> <!-- 要使用管道,无法自动生成 --> </span> </td> <td nz-td> <a (click)="addOrModify(row)">编辑</a> <span nz-table-divider></span> <nz-popconfirm [nzTitle]="'确定要删除该用户吗?'" [nzOkText]="'Yes'" [nzCancelText]="'No'" (nzOnConfirm)="delete(row.id)" > <a nz-popconfirm>删除</a> </nz-popconfirm> </td> </tr> </tbody> </nz-table> </nz-card> src/app/routes/systems/organization/organization.component.ts
New file @@ -0,0 +1,222 @@ import { DataType, AreaNames } from './../../../core/entity/grid'; import { Version, ValueTransformer } from '@angular/compiler/src/util'; import { Subject } from 'rxjs/Subject'; import { ToolsService } from '@core/services/tools.service'; import { Component, OnInit } from '@angular/core'; import { NzMessageService, NzModalService } from 'ng-zorro-antd'; import { ModalHelper } from '@delon/theme'; import { HttpClient } from '@angular/common/http'; import { environment } from '../../../../environments/environment'; import { DateService } from '@core/services/date.service'; import { VersionService } from 'app/routes/devices/version/version.service'; import { Types } from '@core/enum/types.enum'; import { Column, Grid, PageBean } from '@core/entity/grid'; import { filter } from 'rxjs/operators/filter'; import { OrganizationEditComponent } from './organization-edit/organization-edit.component'; import { OrganizationService } from 'app/routes/systems/organization/organization.service'; export interface Organization { address?: Column|any; areaCode?: Column|any; cityCode?: Column|any; createTime?: Column|any; description?: Column|any; email?: Column|any; expireTime?: Column|any; id?: Column|any; isDelete?: Column|any; name?: Column|any; provinceCode?: Column|any; rank?: Column|any; telephone?: Column|any; areaNames?: AreaNames|any ; } @Component({ selector: 'app-organization', templateUrl: './organization.component.html', styles: [] }) export class OrganizationComponent implements OnInit { private organization: Organization; grid: Grid<Organization> = new Grid(null); queryMap = { text: '请输入名称', value: ''}; queryTextStream: Subject<string> = new Subject<string>(); private initPage() { this.organization = { name: { text: '名称', width: '120px' }, rank: { text: '级别', width: '60px' }, telephone: { text: '电话', width: '180px' }, address: { text: '地址', width: '300px', format: (value: any, col: Column, row: any) => { value = value == null ? '' : value ; if (row['areaNames'] != null) { return row['areaNames']['provinceName'] + row['areaNames']['cityName'] + row['areaNames']['areaName'] + value; } else { return value; } } }, createTime: { text: '创建时间', width: '100px', type: { name: Types.Date, format: 'YYYY-MM-DD HH:mm:ss' }, isSort: true }, expireTime: { text: '到期时间', width: '100px', type: { name: Types.Date, format: 'YYYY-MM-DD HH:mm:ss' }, isSort: true } }; this.grid.title = '设备型号'; this.grid.setColumns(this.organization); this.grid.pageSize = 10; } constructor( private organizationService: OrganizationService, private confirmServ: NzModalService, public msgSrv: NzMessageService, private modalHelper: ModalHelper, ) {} ngOnInit() { this.initPage(); this.queryTextStream .debounceTime(500) .distinctUntilChanged() .subscribe(queryText => { this.load(); }); } queryTextChanged($event) { this.queryTextStream.next(this.queryMap.value); } load(reload: boolean = false) { if (reload) { this.grid.pageIndex = 1 ; } // 延时加载避免ExpressionChangedAfterItHasBeenCheckedError setTimeout(() => { this.grid.loading = true; }, 1); this.organizationService.getPagingList(this.grid, this.queryMap.value).subscribe( (res: PageBean) => { this.grid.loading = true; if (res != null && res.data != null) { this.grid.initData(res); this.grid.refreshStatus(); setTimeout(() => { this.grid.loading = false; }, 1); } } ); } // rowData为null时,为新增 addOrModify(d) { const data = {}; if ( d != null) { Object.assign(data, d); } const cols = this.organization; this.modalHelper.static(OrganizationEditComponent, { cols , data }).subscribe( ( ret: { data: any, close: Function} ) => { // 修改状态 if (ret.data['index'] != null ) { const index: number = ret.data['index'] ; const origData = this.grid.getData()[index]; const isModified = Object.keys(origData).some( (key: string) => { return ret.data[key] !== origData[key]; } ); // 未作修改 if (!isModified) { ret.close(); this.msgSrv.success('组织未作任何修改!'); return; } } this.organizationService.save(ret.data).subscribe( ( res: any) => { if (res.code === 1) { this.load(); ret.close(); this.msgSrv.success('组织保存成功!'); } } ); }); } delete(...id: number[]) { this.organizationService.delete( ...id ).subscribe( ( res: any) => { if (res.code === 1) { this.load(); this.msgSrv.success('设备型号删除成功!'); } } ); } deleteSelected() { this.confirmServ.confirm({ title: '批量删除', content: '注意:数据一旦删除,将不可恢复!', okText: '确定', cancelText: '取消' }).on('onOk', () => { if (this.grid.selectedIndexs != null && this.grid.selectedIndexs.length > 0) { const ids = this.grid.selectedIndexs.map( (index: number) => { const id = this.grid.data[index].id; return Number.parseInt(id); } ); this.delete( ...ids ); } }); } sort(field: string, value: string) { // 删除当前field this.grid.sorts = this.grid.sorts.filter( (fn: string) => { return fn !== field; } ); // 如果value不为null,在排序数组最后加上filed if ( value != null ) { this.grid.sorts.push(field); } this.load(); } reset(ls: any[]) { for (const item of ls) item.value = false; this.load(true); } } src/app/routes/systems/organization/organization.service.ts
New file @@ -0,0 +1,35 @@ import { ExampleService } from './../../../core/services/example.service'; import { _HttpClient } from '@delon/theme'; import { environment } from './../../../../environments/environment.prod'; import { RouteConfigLoadStart } from '@angular/router'; import { Injectable } from '@angular/core'; import { equal } from 'assert'; import { Observable } from 'rxjs/Observable'; import { PageBean } from '@core/entity/grid'; @Injectable() export class OrganizationService { private urls = { edit: environment.SERVER_BASH_URL + '/organization/page-list', save: environment.SERVER_BASH_URL + '/organization/add-or-modify', delete: environment.SERVER_BASH_URL + '/organization/delete-by-ids' }; constructor(private http: _HttpClient) { } public getPagingList(page: PageBean, queryText: string): Observable<PageBean> { const example = new ExampleService(); if (queryText != null && queryText !== '') { example.or().andLike({name: 'name', value: '%' + queryText + '%'}); example.or().andEqualTo({name: 'version', value: queryText}); } const param: PageBean = {pageSize: page.pageSize, pageIndex: page.pageIndex, queryParams: example.getSqlParam(), orderByClause: page.getOrderByClause()}; return this.http.get(this.urls.edit, param); } public save(data: any): Observable<any> { return this.http.post(this.urls.save, data); } public delete(...ids: number[]): Observable<any> { return this.http.post(this.urls.delete, ids); } } src/app/routes/systems/systems.module.ts
@@ -1,3 +1,5 @@ import { FormBuilder } from '@angular/forms'; import { _HttpClient } from '@delon/theme'; import { Component, OnInit } from '@angular/core'; import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; @@ -6,20 +8,29 @@ import { AccountComponent } from './account/account.component'; import { AccountEditComponent } from './account/account-edit/account-edit.component'; import { OrganizationComponent } from './organization/organization.component'; import { PipeModule } from '@core/pipe/pipe.module'; import { OrganizationEditComponent } from './organization/organization-edit/organization-edit.component'; import { ToolsService } from '@core/services/tools.service'; import { OrganizationService } from 'app/routes/systems/organization/organization.service'; import { AreacodeService } from '@core/services/areacode.service'; const routes: Routes = [ { path: '', children: [ { path: 'account', component: AccountComponent } { path: 'account', component: AccountComponent }, { path: 'organization', component: OrganizationComponent } ] } ]; const COMPONENTS_NOROUNT = [ AccountEditComponent ]; const COMPONENTS_NOROUNT = [ AccountEditComponent, OrganizationEditComponent ]; @NgModule({ imports: [ // 管道模块必须当前模块导入 PipeModule, CommonModule, SharedModule, RouterModule.forChild(routes) @@ -27,9 +38,10 @@ declarations: [ ...COMPONENTS_NOROUNT, AccountComponent, AccountEditComponent AccountEditComponent, OrganizationComponent ], providers: [ToolsService, OrganizationService, _HttpClient, FormBuilder, AreacodeService], entryComponents: COMPONENTS_NOROUNT }) export class SystemsModule { } src/app/systems/organization/organization-edit/organization-edit.component.html
New file @@ -0,0 +1,3 @@ <p> organization-edit works! </p> src/app/systems/organization/organization-edit/organization-edit.component.ts
New file @@ -0,0 +1,15 @@ import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-organization-edit', templateUrl: './organization-edit.component.html', styles: [] }) export class OrganizationEditComponent implements OnInit { constructor() { } ngOnInit() { } } src/assets/app-data.json
@@ -64,11 +64,17 @@ "translate": "system_management", "link": "/", "icon": "icon-note", "children": [{ "children": [ { "text": "账户管理", "link": "/systems/account", "translate": "system_management_account" }] }, { "text": "组织管理", "link": "/systems/organization" } ] }] }] } src/environments/environment.prod.ts
@@ -3,5 +3,5 @@ production: true, hmr: false, useHash: true, SERVER_BASH_URL: 'http://localhost:8001' SERVER_BASH_URL: 'http://localhost:8080' }; yarn.lock
@@ -28,8 +28,8 @@ rxjs "^5.5.2" "@angular/animations@^5.0.0": version "5.1.1" resolved "http://registry.npm.taobao.org/@angular/animations/download/@angular/animations-5.1.1.tgz#007621f8bcac15560e160582eb2e91025b6b9106" version "5.1.2" resolved "http://registry.npm.taobao.org/@angular/animations/download/@angular/animations-5.1.2.tgz#464df9a9e30c7a8146118fdd9bff82cdfcf97d7e" dependencies: tslib "^1.7.1" @@ -39,14 +39,14 @@ dependencies: tslib "^1.7.1" "@angular/cli@^1.6.1": version "1.6.1" resolved "http://registry.npm.taobao.org/@angular/cli/download/@angular/cli-1.6.1.tgz#6797995be1965bfc2e26234c728c9968cf7f3bdb" "@angular/cli@^1.6.3": version "1.6.3" resolved "http://registry.npm.taobao.org/@angular/cli/download/@angular/cli-1.6.3.tgz#63120b347fc8ee206f773074d25fdd4807c189e3" dependencies: "@angular-devkit/build-optimizer" "~0.0.36" "@angular-devkit/schematics" "~0.0.42" "@ngtools/json-schema" "1.1.0" "@ngtools/webpack" "1.9.1" "@ngtools/webpack" "1.9.3" "@schematics/angular" "~0.1.11" autoprefixer "^6.5.3" chalk "~2.2.0" @@ -91,7 +91,7 @@ style-loader "^0.13.1" stylus "^0.54.5" stylus-loader "^3.0.1" uglifyjs-webpack-plugin "~1.1.2" uglifyjs-webpack-plugin "^1.1.5" url-loader "^0.6.2" webpack "~3.10.0" webpack-dev-middleware "~1.12.0" @@ -104,14 +104,14 @@ node-sass "^4.3.0" "@angular/common@^5.0.0": version "5.1.1" resolved "http://registry.npm.taobao.org/@angular/common/download/@angular/common-5.1.1.tgz#b6444cf6508f9b0b5fc4c9b3107b3e37be1336c9" version "5.1.2" resolved "http://registry.npm.taobao.org/@angular/common/download/@angular/common-5.1.2.tgz#b2659161575d463bb8b3e30e37434b26d70366b4" dependencies: tslib "^1.7.1" "@angular/compiler-cli@^5.0.0": version "5.1.1" resolved "http://registry.npm.taobao.org/@angular/compiler-cli/download/@angular/compiler-cli-5.1.1.tgz#579e6846ed493e7202e36eb5cea00cb1a61c927c" version "5.1.2" resolved "http://registry.npm.taobao.org/@angular/compiler-cli/download/@angular/compiler-cli-5.1.2.tgz#70addc11b6528f087abe809f94acedecdfc9c8f6" dependencies: chokidar "^1.4.2" minimist "^1.2.0" @@ -119,48 +119,48 @@ tsickle "^0.25.5" "@angular/compiler@^5.0.0": version "5.1.1" resolved "http://registry.npm.taobao.org/@angular/compiler/download/@angular/compiler-5.1.1.tgz#7d7953229739e68de74ea821685e1d5569527ef3" version "5.1.2" resolved "http://registry.npm.taobao.org/@angular/compiler/download/@angular/compiler-5.1.2.tgz#4dfd0dd7fab39a14a1a104097c2f6af470ddabdb" dependencies: tslib "^1.7.1" "@angular/core@^5.0.0": version "5.1.1" resolved "http://registry.npm.taobao.org/@angular/core/download/@angular/core-5.1.1.tgz#b6a6e2b2284f86279f096d857253f6643098d908" version "5.1.2" resolved "http://registry.npm.taobao.org/@angular/core/download/@angular/core-5.1.2.tgz#751070c0f4e5a8c4e2170204e08eca06391b84b1" dependencies: tslib "^1.7.1" "@angular/forms@^5.0.0": version "5.1.1" resolved "http://registry.npm.taobao.org/@angular/forms/download/@angular/forms-5.1.1.tgz#e38858a44e7b57b61f375087b76a79d6e2679b14" version "5.1.2" resolved "http://registry.npm.taobao.org/@angular/forms/download/@angular/forms-5.1.2.tgz#fae4934ccdd41443efdee49b754c8b2a5587b12c" dependencies: tslib "^1.7.1" "@angular/http@^5.0.0": version "5.1.1" resolved "http://registry.npm.taobao.org/@angular/http/download/@angular/http-5.1.1.tgz#45aa61ee61f212a34f958c444c999e8c9352ec23" version "5.1.2" resolved "http://registry.npm.taobao.org/@angular/http/download/@angular/http-5.1.2.tgz#38edf3bec056e9c3456868799f4c0f83127c73b9" dependencies: tslib "^1.7.1" "@angular/language-service@^5.0.0": version "5.1.1" resolved "http://registry.npm.taobao.org/@angular/language-service/download/@angular/language-service-5.1.1.tgz#731533a3b6ee4c8facda862a836db1930a011f07" version "5.1.2" resolved "http://registry.npm.taobao.org/@angular/language-service/download/@angular/language-service-5.1.2.tgz#0c0579c2feb7dd9afb2576e9b602779d45b30810" "@angular/platform-browser-dynamic@^5.0.0": version "5.1.1" resolved "http://registry.npm.taobao.org/@angular/platform-browser-dynamic/download/@angular/platform-browser-dynamic-5.1.1.tgz#4b7bd1cbdb3c93fdeb626b38fbd54286a73a76d0" version "5.1.2" resolved "http://registry.npm.taobao.org/@angular/platform-browser-dynamic/download/@angular/platform-browser-dynamic-5.1.2.tgz#120d49ce16bcb91b8ac1c5e5c634fba592359ad7" dependencies: tslib "^1.7.1" "@angular/platform-browser@^5.0.0": version "5.1.1" resolved "http://registry.npm.taobao.org/@angular/platform-browser/download/@angular/platform-browser-5.1.1.tgz#88a05132d822b760c9108a3eaf0da610f39c2ed9" version "5.1.2" resolved "http://registry.npm.taobao.org/@angular/platform-browser/download/@angular/platform-browser-5.1.2.tgz#6faf926b9b41b6d54d873f3dcc4f31ad35fd0c38" dependencies: tslib "^1.7.1" "@angular/router@^5.0.0": version "5.1.1" resolved "http://registry.npm.taobao.org/@angular/router/download/@angular/router-5.1.1.tgz#378e69edd28edadaff7b09b6ee407aadf7164220" version "5.1.2" resolved "http://registry.npm.taobao.org/@angular/router/download/@angular/router-5.1.2.tgz#1da8845478ca340e9c4b3d9da1d1a8ee796fda18" dependencies: tslib "^1.7.1" @@ -194,22 +194,22 @@ wolfy87-eventemitter "^5.1.0" "@antv/g2-plugin-slider@^2.0.0": version "2.0.0" resolved "http://registry.npm.taobao.org/@antv/g2-plugin-slider/download/@antv/g2-plugin-slider-2.0.0.tgz#398ec3d8b869131041f878faf845e76a84baf954" version "2.0.1" resolved "http://registry.npm.taobao.org/@antv/g2-plugin-slider/download/@antv/g2-plugin-slider-2.0.1.tgz#45cf6da6f2050fabe64166a213674422afe4eebf" "@antv/g2@^3.0.1": version "3.0.2" resolved "http://registry.npm.taobao.org/@antv/g2/download/@antv/g2-3.0.2.tgz#2deac4fa5d48e36838665175166a4812bf674e5e" version "3.0.3" resolved "http://registry.npm.taobao.org/@antv/g2/download/@antv/g2-3.0.3.tgz#ee59e1ded71b065d1e9ef3fe6d572fe5de07c069" dependencies: "@antv/g" "~2.0.2" "@antv/g" "~2.0.4" fecha "~2.3.2" gl-matrix "~2.4.0" lodash "~4.17.4" wolfy87-eventemitter "~5.2.4" "@antv/g@~2.0.2": version "2.0.3" resolved "http://registry.npm.taobao.org/@antv/g/download/@antv/g-2.0.3.tgz#32870c86ddbd7c9cd36a5bcfcde85328915d54bb" "@antv/g@~2.0.4": version "2.0.4" resolved "http://registry.npm.taobao.org/@antv/g/download/@antv/g-2.0.4.tgz#b637c641b4dd6092fc4d628aa604424d29faca0d" dependencies: d3-ease "^1.0.3" d3-interpolate "^1.1.5" @@ -238,9 +238,9 @@ version "1.1.0" resolved "http://registry.npm.taobao.org/@ngtools/json-schema/download/@ngtools/json-schema-1.1.0.tgz#c3a0c544d62392acc2813a42c8a0dc6f58f86922" "@ngtools/webpack@1.9.1": version "1.9.1" resolved "http://registry.npm.taobao.org/@ngtools/webpack/download/@ngtools/webpack-1.9.1.tgz#c09db646432723f8f912412144313d4830b2eb4d" "@ngtools/webpack@1.9.3": version "1.9.3" resolved "http://registry.npm.taobao.org/@ngtools/webpack/download/@ngtools/webpack-1.9.3.tgz#353e27e6f21ab35467d17b67e3096dfc5d9bf80c" dependencies: chalk "~2.2.0" enhanced-resolve "^3.1.0" @@ -249,6 +249,7 @@ semver "^5.3.0" source-map "^0.5.6" tree-kill "^1.0.0" webpack-sources "^1.1.0" "@ngx-translate/core@^9.0.0": version "9.0.2" @@ -269,8 +270,8 @@ resolved "http://registry.npm.taobao.org/@schematics/schematics/download/@schematics/schematics-0.0.11.tgz#c8f70f270ed38f29b2873248126fd59abd635862" "@types/jasmine@*": version "2.8.2" resolved "http://registry.npm.taobao.org/@types/jasmine/download/@types/jasmine-2.8.2.tgz#6ae4d8740c0da5d5a627df725b4eed71b8e36668" version "2.8.3" resolved "http://registry.npm.taobao.org/@types/jasmine/download/@types/jasmine-2.8.3.tgz#f910edc67d69393d562d10f8f3d205ea3f3306bf" "@types/jasmine@~2.6.0": version "2.6.3" @@ -283,8 +284,8 @@ "@types/jasmine" "*" "@types/node@^6.0.46", "@types/node@~6.0.60": version "6.0.94" resolved "http://registry.npm.taobao.org/@types/node/download/@types/node-6.0.94.tgz#70e509b07ed9f961c8f6f4a73a61d922be5029a7" version "6.0.95" resolved "http://registry.npm.taobao.org/@types/node/download/@types/node-6.0.95.tgz#0d027612a77c55b84497ff90a4a7d597e5ac0fab" "@types/q@^0.0.32": version "0.0.32" @@ -331,8 +332,8 @@ resolved "http://registry.npm.taobao.org/acorn/download/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" acorn@^5.0.0, acorn@^5.1.1: version "5.2.1" resolved "http://registry.npm.taobao.org/acorn/download/acorn-5.2.1.tgz#317ac7821826c22c702d66189ab8359675f135d7" version "5.3.0" resolved "http://registry.npm.taobao.org/acorn/download/acorn-5.3.0.tgz#7446d39459c54fb49a80e6ee6478149b940ec822" adm-zip@0.4.4: version "0.4.4" @@ -706,7 +707,7 @@ dependencies: babel-runtime "^6.22.0" babel-runtime@^6.22.0, babel-runtime@^6.26.0: babel-runtime@^6.22.0, babel-runtime@^6.26.0, babel-runtime@^6.6.1: version "6.26.0" resolved "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" dependencies: @@ -828,7 +829,7 @@ dependencies: minimist "^1.2.0" bluebird@^3.3.0, bluebird@^3.4.7, bluebird@^3.5.0: bluebird@^3.3.0, bluebird@^3.4.6, bluebird@^3.4.7, bluebird@^3.5.0: version "3.5.1" resolved "http://registry.npm.taobao.org/bluebird/download/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" @@ -969,11 +970,11 @@ electron-to-chromium "^1.2.7" browserslist@^2.10.0: version "2.10.0" resolved "http://registry.npm.taobao.org/browserslist/download/browserslist-2.10.0.tgz#bac5ee1cc69ca9d96403ffb8a3abdc5b6aed6346" version "2.10.1" resolved "http://registry.npm.taobao.org/browserslist/download/browserslist-2.10.1.tgz#f9dc692b79004a78ec9ba0d012c54de44cc6d7e4" dependencies: caniuse-lite "^1.0.30000780" electron-to-chromium "^1.3.28" caniuse-lite "^1.0.30000784" electron-to-chromium "^1.3.30" buffer-crc32@^0.2.1: version "0.2.13" @@ -1080,7 +1081,7 @@ version "1.0.30000784" resolved "http://registry.npm.taobao.org/caniuse-db/download/caniuse-db-1.0.30000784.tgz#1be95012d9489c7719074f81aee57dbdffe6361b" caniuse-lite@^1.0.30000780, caniuse-lite@^1.0.30000783: caniuse-lite@^1.0.30000783, caniuse-lite@^1.0.30000784: version "1.0.30000784" resolved "http://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30000784.tgz#129ced74e9a1280a441880b6cd2bce30ef59e6c0" @@ -1346,8 +1347,8 @@ resolved "http://registry.npm.taobao.org/commander/download/commander-2.12.2.tgz#0f5946c427ed9ec0d91a46bb9def53e54650e555" common-tags@^1.3.1: version "1.5.1" resolved "http://registry.npm.taobao.org/common-tags/download/common-tags-1.5.1.tgz#e2e39931a013cd02253defeed89a1ad615a27f07" version "1.6.0" resolved "http://registry.npm.taobao.org/common-tags/download/common-tags-1.6.0.tgz#788e4bcc582f16993e5b2c92f76b1ccb80731537" dependencies: babel-runtime "^6.26.0" @@ -1469,8 +1470,8 @@ run-queue "^1.0.0" copy-webpack-plugin@^4.1.1: version "4.3.0" resolved "http://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-4.3.0.tgz#cfdf4d131c78d66917a1bb863f86630497aacf42" version "4.3.1" resolved "http://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-4.3.1.tgz#19ba6370bf6f8e263cbd66185a2b79f2321a9302" dependencies: cacache "^10.0.1" find-cache-dir "^1.0.0" @@ -2110,9 +2111,15 @@ version "2.5.7" resolved "http://registry.npm.taobao.org/ejs/download/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a" electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.28: version "1.3.29" resolved "http://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.29.tgz#7a58236b95468c3e7660091348522d65d7736b36" electron-releases@^2.1.0: version "2.1.0" resolved "http://registry.npm.taobao.org/electron-releases/download/electron-releases-2.1.0.tgz#c5614bf811f176ce3c836e368a0625782341fd4e" electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30: version "1.3.30" resolved "http://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.30.tgz#9666f532a64586651fc56a72513692e820d06a80" dependencies: electron-releases "^2.1.0" elegant-spinner@^1.0.1: version "1.0.1" @@ -3184,8 +3191,8 @@ resolved "http://registry.npm.taobao.org/html-entities/download/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" html-minifier@^3.2.3: version "3.5.7" resolved "http://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.7.tgz#511e69bb5a8e7677d1012ebe03819aa02ca06208" version "3.5.8" resolved "http://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.8.tgz#5ccdb1f73a0d654e6090147511f6e6b2ee312700" dependencies: camel-case "3.0.x" clean-css "4.1.x" @@ -3194,7 +3201,7 @@ ncname "1.0.x" param-case "2.1.x" relateurl "0.2.x" uglify-js "3.2.x" uglify-js "3.3.x" html-tags@^2.0.0: version "2.0.0" @@ -3672,7 +3679,7 @@ version "0.1.2" resolved "http://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" istanbul-api@^1.1.8: istanbul-api@^1.1.14: version "1.2.1" resolved "http://registry.npm.taobao.org/istanbul-api/download/istanbul-api-1.2.1.tgz#0c60a0515eb11c7d65c6b50bba2c6e999acd8620" dependencies: @@ -3903,10 +3910,10 @@ resolve "^1.1.6" karma-coverage-istanbul-reporter@^1.3.0: version "1.3.0" resolved "http://registry.npm.taobao.org/karma-coverage-istanbul-reporter/download/karma-coverage-istanbul-reporter-1.3.0.tgz#d142cd9c55731c9e363ef7374e8ef1a31bebfadb" version "1.3.3" resolved "http://registry.npm.taobao.org/karma-coverage-istanbul-reporter/download/karma-coverage-istanbul-reporter-1.3.3.tgz#daf26051d5a0daa5838a4ce81aa4a41724bdf36b" dependencies: istanbul-api "^1.1.8" istanbul-api "^1.1.14" minimatch "^3.0.4" karma-jasmine-html-reporter@^0.2.2: @@ -4050,6 +4057,15 @@ dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" libphonenumber-js@^0.4.5: version "0.4.48" resolved "http://registry.npm.taobao.org/libphonenumber-js/download/libphonenumber-js-0.4.48.tgz#d2064ef7e71f24046abfe1a07351d4affa5c1a4a" dependencies: babel-runtime "^6.6.1" bluebird "^3.4.6" minimist "^1.2.0" xml2js "^0.4.17" license-webpack-plugin@^1.0.0: version "1.1.1" @@ -4391,8 +4407,8 @@ pify "^3.0.0" make-error@^1.1.1: version "1.3.0" resolved "http://registry.npm.taobao.org/make-error/download/make-error-1.3.0.tgz#52ad3a339ccf10ce62b4040b708fe707244b8b96" version "1.3.2" resolved "http://registry.npm.taobao.org/make-error/download/make-error-1.3.2.tgz#8762ffad2444dd8ff1f7c819629fa28e24fea1c4" map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" @@ -4687,8 +4703,8 @@ resolved "http://registry.npm.taobao.org/ng-zorro-antd-extra/download/ng-zorro-antd-extra-1.1.6.tgz#b69ba30603843ffd6ded09a46dd2038542251e40" ng-zorro-antd@^0.6.5: version "0.6.7" resolved "http://registry.npm.taobao.org/ng-zorro-antd/download/ng-zorro-antd-0.6.7.tgz#7cbeab6258edca2c0c67a98eb93a226c41409a5f" version "0.6.8" resolved "http://registry.npm.taobao.org/ng-zorro-antd/download/ng-zorro-antd-0.6.8.tgz#68c360710408dca6b097a6b27b22c5061f60fae2" dependencies: "@angular/cdk" "^5.0.0" moment "^2.18.1" @@ -4706,13 +4722,19 @@ version "0.9.0" resolved "http://registry.npm.taobao.org/ng2-img-cropper/download/ng2-img-cropper-0.9.0.tgz#305337e669c4e5adc876d628dcae0bca4d10d1c3" ng2-validation@^4.2.0: version "4.2.0" resolved "http://registry.npm.taobao.org/ng2-validation/download/ng2-validation-4.2.0.tgz#f38d441d3fb7e862155166480045aaff9ad11dbb" dependencies: libphonenumber-js "^0.4.5" ngx-color-picker@^5.0.0: version "5.2.0" resolved "http://registry.npm.taobao.org/ngx-color-picker/download/ngx-color-picker-5.2.0.tgz#8433933ed785e0e5d328555774b20c23e3498606" version "5.3.0" resolved "http://registry.npm.taobao.org/ngx-color-picker/download/ngx-color-picker-5.3.0.tgz#49d64ecd391e39429b8d1dbc8701f18a4efffd3e" ngx-countdown@^2.0.0: version "2.0.2" resolved "http://registry.npm.taobao.org/ngx-countdown/download/ngx-countdown-2.0.2.tgz#faaf74e5d96709062f7fb035f105b5f8f76be92d" version "2.0.4" resolved "http://registry.npm.taobao.org/ngx-countdown/download/ngx-countdown-2.0.4.tgz#b0c0266da4aa24efc057f99f2e19a03142133cc0" no-case@^2.2.0: version "2.3.2" @@ -5634,12 +5656,12 @@ supports-color "^3.2.3" postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.13, postcss@^6.0.14, postcss@^6.0.3, postcss@^6.0.6, postcss@^6.0.8: version "6.0.14" resolved "http://registry.npm.taobao.org/postcss/download/postcss-6.0.14.tgz#5534c72114739e75d0afcf017db853099f562885" version "6.0.15" resolved "http://registry.npm.taobao.org/postcss/download/postcss-6.0.15.tgz#f460cd6269fede0d1bf6defff0b934a9845d974d" dependencies: chalk "^2.3.0" source-map "^0.6.1" supports-color "^4.4.0" supports-color "^5.1.0" prelude-ls@~1.1.2: version "1.1.2" @@ -6280,13 +6302,7 @@ version "1.3.3" resolved "http://registry.npm.taobao.org/rw/download/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" rxjs@^5.4.2, rxjs@^5.5.2: version "5.5.5" resolved "http://registry.npm.taobao.org/rxjs/download/rxjs-5.5.5.tgz#e164f11d38eaf29f56f08c3447f74ff02dd84e97" dependencies: symbol-observable "1.0.1" rxjs@^5.5.5: rxjs@^5.4.2, rxjs@^5.5.2, rxjs@^5.5.5: version "5.5.6" resolved "http://registry.npm.taobao.org/rxjs/download/rxjs-5.5.6.tgz#e31fb96d6fd2ff1fd84bcea8ae9c02d007179c02" dependencies: @@ -7013,9 +7029,15 @@ dependencies: has-flag "^1.0.0" supports-color@^4.0.0, supports-color@^4.2.1, supports-color@^4.4.0: supports-color@^4.0.0, supports-color@^4.2.1: version "4.5.0" resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" dependencies: has-flag "^2.0.0" supports-color@^5.1.0: version "5.1.0" resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-5.1.0.tgz#058a021d1b619f7ddf3980d712ea3590ce7de3d5" dependencies: has-flag "^2.0.0" @@ -7036,8 +7058,8 @@ whet.extend "~0.9.9" sweetalert2@^7.0.0: version "7.1.2" resolved "http://registry.npm.taobao.org/sweetalert2/download/sweetalert2-7.1.2.tgz#07b4c816e4ca1294f379a45cc810f4c6618e473b" version "7.3.1" resolved "http://registry.npm.taobao.org/sweetalert2/download/sweetalert2-7.3.1.tgz#ea44f0affdb6e3ee58e649f13e8bbb0604c0bb8f" symbol-observable@1.0.1: version "1.0.1" @@ -7243,7 +7265,7 @@ source-map "^0.5.6" source-map-support "^0.4.2" tslib@^1.7.1, tslib@^1.8.0: tslib@^1.7.1, tslib@^1.8.1: version "1.8.1" resolved "http://registry.npm.taobao.org/tslib/download/tslib-1.8.1.tgz#6946af2d1d651a7b1863b531d6e5afa41aa44eac" @@ -7263,10 +7285,10 @@ tsutils "^2.8.1" tsutils@^2.8.1: version "2.13.1" resolved "http://registry.npm.taobao.org/tsutils/download/tsutils-2.13.1.tgz#d6d1cc0f7c04cf9fb3b28a292973cffb9cfbe09a" version "2.15.0" resolved "http://registry.npm.taobao.org/tsutils/download/tsutils-2.15.0.tgz#90831e5908cca10b28cdaf83a56dcf8156aed7c6" dependencies: tslib "^1.8.0" tslib "^1.8.1" tty-browserify@0.0.0: version "0.0.0" @@ -7303,24 +7325,20 @@ version "0.0.6" resolved "http://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" typescript@~2.5.0: version "2.5.3" resolved "http://registry.npm.taobao.org/typescript/download/typescript-2.5.3.tgz#df3dcdc38f3beb800d4bc322646b04a3f6ca7f0d" typescript@~2.6.1: typescript@^2.6.2, typescript@~2.6.1: version "2.6.2" resolved "http://registry.npm.taobao.org/typescript/download/typescript-2.6.2.tgz#3c5b6fd7f6de0914269027f03c0946758f7673a4" uglify-es@^3.2.1: uglify-es@3.2.2: version "3.2.2" resolved "http://registry.npm.taobao.org/uglify-es/download/uglify-es-3.2.2.tgz#15c62b7775002c81b7987a1c49ecd3f126cace73" dependencies: commander "~2.12.1" source-map "~0.6.1" uglify-js@3.2.x: version "3.2.2" resolved "http://registry.npm.taobao.org/uglify-js/download/uglify-js-3.2.2.tgz#870e4b34ed733d179284f9998efd3293f7fd73f6" uglify-js@3.3.x: version "3.3.4" resolved "http://registry.npm.taobao.org/uglify-js/download/uglify-js-3.3.4.tgz#d8ebb76f201a3798ac2f0b6519642fcca4a99834" dependencies: commander "~2.12.1" source-map "~0.6.1" @@ -7346,16 +7364,16 @@ uglify-js "^2.8.29" webpack-sources "^1.0.1" uglifyjs-webpack-plugin@~1.1.2: version "1.1.4" resolved "http://registry.npm.taobao.org/uglifyjs-webpack-plugin/download/uglifyjs-webpack-plugin-1.1.4.tgz#e43ad6e736c315024eb99481a7cc9362d6a066be" uglifyjs-webpack-plugin@^1.1.5: version "1.1.5" resolved "http://registry.npm.taobao.org/uglifyjs-webpack-plugin/download/uglifyjs-webpack-plugin-1.1.5.tgz#5ec4a16da0fd10c96538f715caed10dbdb180875" dependencies: cacache "^10.0.0" find-cache-dir "^1.0.0" schema-utils "^0.3.0" serialize-javascript "^1.4.0" source-map "^0.6.1" uglify-es "^3.2.1" uglify-es "3.2.2" webpack-sources "^1.0.1" worker-farm "^1.4.1" @@ -7740,7 +7758,7 @@ dependencies: lodash "^4.17.4" webpack-sources@^1.0.0, webpack-sources@^1.0.1: webpack-sources@^1.0.0, webpack-sources@^1.0.1, webpack-sources@^1.1.0: version "1.1.0" resolved "http://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" dependencies: @@ -8040,5 +8058,5 @@ readable-stream "^2.0.0" zone.js@^0.8.14, zone.js@^0.8.18: version "0.8.18" resolved "http://registry.npm.taobao.org/zone.js/download/zone.js-0.8.18.tgz#8cecb3977fcd1b3090562ff4570e2847e752b48d" version "0.8.19" resolved "http://registry.npm.taobao.org/zone.js/download/zone.js-0.8.19.tgz#a4b522cd9e8b7b616a638c297d720d4c7f292f71"