|  |  |  | 
|---|
|  |  |  | import { DataType } from './../../../core/entity/grid'; | 
|---|
|  |  |  | import { AddOrEditComponent } from './add-or-edit/add-or-edit.component'; | 
|---|
|  |  |  | import { VersionSensorConfigComponent } from './version-sensor-config/version-sensor-config.component'; | 
|---|
|  |  |  | import { DataType } from '@business/entity/grid'; | 
|---|
|  |  |  | import { DeviceVersion, Sensor } from '@business/entity/data'; | 
|---|
|  |  |  | import { Version } from '@angular/compiler/src/util'; | 
|---|
|  |  |  | import { Subject } from 'rxjs/Subject'; | 
|---|
|  |  |  | import { ToolsService } from '@core/services/tools.service'; | 
|---|
|  |  |  | import { ToolsService } from '@business/services/util/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 { DateService } from '@business/services/util/date.service'; | 
|---|
|  |  |  | import { VersionService } from '@business/services/http/version.service'; | 
|---|
|  |  |  | import { Types } from '@business/enum/types.enum'; | 
|---|
|  |  |  | import { Column, Grid, PageBean } from '@business/entity/grid'; | 
|---|
|  |  |  | import { VersionEditComponent } from 'app/routes/devices/version/version-edit/version-edit.component'; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | export interface DeviceVersion { | 
|---|
|  |  |  | createTime?: Column|any; | 
|---|
|  |  |  | description?: Column|any; | 
|---|
|  |  |  | id?: Column|any; | 
|---|
|  |  |  | name?: Column|any; | 
|---|
|  |  |  | version?: Column|any; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Component({ | 
|---|
|  |  |  | selector: 'app-version', | 
|---|
|  |  |  | templateUrl: './version.component.html', | 
|---|
|  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | version: { | 
|---|
|  |  |  | text: '型号', | 
|---|
|  |  |  | width: '18%' | 
|---|
|  |  |  | width: '18%', | 
|---|
|  |  |  | isSort: true | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | createTime: { | 
|---|
|  |  |  | text: '创建时间', | 
|---|
|  |  |  | 
|---|
|  |  |  | type: { | 
|---|
|  |  |  | name: Types.Date, | 
|---|
|  |  |  | format: 'YYYY-MM-DD HH:mm:ss' | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | isSort: true | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | description: { | 
|---|
|  |  |  | text: '备注', | 
|---|
|  |  |  | 
|---|
|  |  |  | queryTextChanged($event) { | 
|---|
|  |  |  | this.queryTextStream.next(this.queryMap.value); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | load(reload: boolean = false) { | 
|---|
|  |  |  | load(reload: boolean = false) { | 
|---|
|  |  |  | if (reload) { | 
|---|
|  |  |  | this.grid.pageIndex = 1 ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 延时加载避免ExpressionChangedAfterItHasBeenCheckedError | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | this.grid.loading = true; | 
|---|
|  |  |  | }, 1); | 
|---|
|  |  |  | this.versionService.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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | edit() { | 
|---|
|  |  |  | // this.modalHelper.static(VersionEditComponent, { user }).subscribe(() => { | 
|---|
|  |  |  | //   this.load(true); | 
|---|
|  |  |  | //   this.msgSrv.success('安装用户修改成功!'); | 
|---|
|  |  |  | // }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // rowData为null时,为新增 | 
|---|
|  |  |  | addOrModify(data) { | 
|---|
|  |  |  | if ( data == null) { | 
|---|
|  |  |  | 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) => { | 
|---|
|  |  |  | if (res.code === 1) { | 
|---|
|  |  |  | this.load(true); | 
|---|
|  |  |  | this.load(); | 
|---|
|  |  |  | ret.close(); | 
|---|
|  |  |  | this.msgSrv.success('设备型号保存成功!'); | 
|---|
|  |  |  | this.msgSrv.success(this.grid.title + '保存成功!'); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | 
|---|
|  |  |  | this.versionService.delete( ...id ).subscribe( | 
|---|
|  |  |  | ( res: any) => { | 
|---|
|  |  |  | if (res.code === 1) { | 
|---|
|  |  |  | this.load(true); | 
|---|
|  |  |  | this.msgSrv.success('设备型号删除成功!'); | 
|---|
|  |  |  | this.load(); | 
|---|
|  |  |  | this.msgSrv.success(this.grid.title + '删除成功!'); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | 
|---|
|  |  |  | if (this.grid.selectedIndexs != null && this.grid.selectedIndexs.length > 0) { | 
|---|
|  |  |  | const ids = this.grid.selectedIndexs.map( | 
|---|
|  |  |  | (index: number) => { | 
|---|
|  |  |  | return Number.parseInt(this.grid.data[index].id); | 
|---|
|  |  |  | const id = this.grid.data[index].id; | 
|---|
|  |  |  | return Number.parseInt(id); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | this.delete( ...ids ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | dataChange(res: any) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | configSensor(data) { | 
|---|
|  |  |  | const deviceVersionId = data.id; | 
|---|
|  |  |  | this.versionService.getSensorIds(deviceVersionId).subscribe( | 
|---|
|  |  |  | (selectedSensorIds: number[]) => { | 
|---|
|  |  |  | this.modalHelper.static(VersionSensorConfigComponent, { deviceVersionId, selectedSensorIds }).subscribe( | 
|---|
|  |  |  | ( ret: { grid: Grid<Sensor>, close: Function} ) => { | 
|---|
|  |  |  | // 获取选中id | 
|---|
|  |  |  | const selectedIds = ret.grid.data.filter( | 
|---|
|  |  |  | (r: any) => { | 
|---|
|  |  |  | return r['checked'] === true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ).map( | 
|---|
|  |  |  | (r: any) => { | 
|---|
|  |  |  | return r['id']; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | // 长度不一样,已经修改 | 
|---|
|  |  |  | let isModified = selectedIds.length !== selectedSensorIds.length; | 
|---|
|  |  |  | // 长度一样再比较内容 | 
|---|
|  |  |  | if (!isModified) { | 
|---|
|  |  |  | isModified = !selectedIds.every( | 
|---|
|  |  |  | (id: number) => { | 
|---|
|  |  |  | // console.log('id:' + id); | 
|---|
|  |  |  | const result = selectedSensorIds.some( | 
|---|
|  |  |  | (sid: number) => { | 
|---|
|  |  |  | return id === sid ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | // console.log('result:' + result); | 
|---|
|  |  |  | return result; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if ( !isModified ) { | 
|---|
|  |  |  | this.msgSrv.success(this.grid.title + '配置未修改!'); | 
|---|
|  |  |  | ret.close(); | 
|---|
|  |  |  | return ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.versionService.versionSensorConfig(deviceVersionId, selectedIds).subscribe( | 
|---|
|  |  |  | ( res: any) => { | 
|---|
|  |  |  | if (res.code === 1) { | 
|---|
|  |  |  | ret.close(); | 
|---|
|  |  |  | this.msgSrv.success(this.grid.title + '配置成功!'); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | sort(field: string, value: any) { | 
|---|
|  |  |  | // this.sortMap = {}; | 
|---|
|  |  |  | // this.sortMap[field] = value; | 
|---|
|  |  |  | // this.q.sorter = value ? `${field}_${value}` : ''; | 
|---|
|  |  |  | // this.load(true); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | reset(ls: any[]) { | 
|---|
|  |  |  | for (const item of ls) item.value = false; | 
|---|
|  |  |  | this.load(true); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|