| | |
| | | import { Component, OnInit } from '@angular/core'; |
| | | import { MonitorPointService } from '@business/services/http/monitor-point.service'; |
| | | import { CoorPicker, Device } from '@business/entity/data'; |
| | | import { AdjustConfigComponent } from './adjust-config/adjust-config.component'; |
| | | import { DeviceEditComponent } from './device-edit/device-edit.component'; |
| | | import { ModalHelper } from '@delon/theme'; |
| | | import { NzModalService, NzMessageService } from 'ng-zorro-antd'; |
| | | import { PageBean, ResultBean } from '@business/entity/grid'; |
| | | import { DeviceService } from '@business/services/http/device.service'; |
| | | import { Component, OnInit, ElementRef, ViewChild } from '@angular/core'; |
| | | import { SimpleTableColumn } from '@delon/abc'; |
| | | import { Subject } from 'rxjs/Subject'; |
| | | import { CoordinatesPickerComponent } from 'app/routes/map/coordinates-picker/coordinates-picker.component'; |
| | | import { CoorPickerService } from 'app/routes/map/coordinates-picker/coordinates-picker.service'; |
| | | |
| | | @Component({ |
| | | selector: 'app-basic-info', |
| | |
| | | styles: [] |
| | | }) |
| | | export class BasicInfoComponent implements OnInit { |
| | | |
| | | constructor() { } |
| | | columns: SimpleTableColumn[] = [ |
| | | { title: '编号', index: 'id', type: 'checkbox' }, |
| | | { title: '名称', index: 'name' }, |
| | | { title: 'mac', index: 'mac' }, |
| | | { title: '型号', index: 'deviceVersion.name' }, |
| | | { title: '监控点', index: 'monitorPoint.name' }, |
| | | { title: '维护人', index: 'operateUser.name' }, |
| | | { title: '生产时间',width: '100px', type: 'date', index: 'createTime' }, |
| | | { title: '安装时间', width: '100px',type: 'date', index: 'installTime' }, |
| | | { |
| | | title: '操作区', |
| | | buttons: [ |
| | | { |
| | | text: '编辑', |
| | | type: 'none', |
| | | click: (record: any) => this.addOrModify(record) |
| | | }, |
| | | { |
| | | text: '删除', |
| | | type: 'del', |
| | | click: (record: any) => this.delete(record.id) |
| | | }, |
| | | { |
| | | text: '更多', |
| | | children: [ |
| | | { |
| | | text: `配置校准值`, |
| | | type: 'static', |
| | | component:AdjustConfigComponent, |
| | | format: (record: any) => `<i class="anticon anticon-setting"></i>配置校准值` |
| | | }, |
| | | { |
| | | text: `配置坐标`, |
| | | type: 'none', |
| | | click: (record: any) => this.configCoord(record), |
| | | format: (record: any) => `<i class="anticon anticon-environment-o"></i>配置坐标` |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | ]; |
| | | queryTextStream: Subject<string> = new Subject<string>(); |
| | | constructor( |
| | | private monitorPointService:MonitorPointService, |
| | | private deviceService: DeviceService, |
| | | private confirmServ: NzModalService, |
| | | public msgSrv: NzMessageService, |
| | | private modalHelper: ModalHelper, |
| | | private coorPickerService:CoorPickerService |
| | | ) { } |
| | | |
| | | ngOnInit() { |
| | | this.queryTextStream |
| | | .debounceTime(900) |
| | | .distinctUntilChanged() |
| | | .subscribe(value => { |
| | | this.extraParams.queryParams = this.deviceService.getSqlParams(value); |
| | | this.load(); |
| | | }); |
| | | } |
| | | get listUrl() { |
| | | return this.deviceService.getListUrl();; |
| | | } |
| | | extraParams = { queryParams: null }; |
| | | queryText: string; |
| | | selectedRows: any[] = []; |
| | | checkboxChange(list: any[]) { |
| | | this.selectedRows = list; |
| | | } |
| | | deleteSelected() { |
| | | this.confirmServ.confirm({ |
| | | title: '批量删除', |
| | | content: '注意:数据一旦删除,将不可恢复!', |
| | | okText: '确定', |
| | | cancelText: '取消' |
| | | }).on('onOk', () => { |
| | | if (this.selectedRows != null && this.selectedRows.length > 0) { |
| | | const ids = this.selectedRows.map( |
| | | (row: any) => { |
| | | |
| | | return Number.parseInt(row.id); |
| | | } |
| | | ); |
| | | this.delete(...ids); |
| | | } |
| | | }); |
| | | } |
| | | load() { |
| | | this.selectedRows = []; |
| | | this.simpleTable.load(); |
| | | } |
| | | delete(...id: number[]) { |
| | | this.deviceService.delete(...id).subscribe( |
| | | (res: any) => { |
| | | if (res.code === 1) { |
| | | this.load(); |
| | | this.msgSrv.success('删除成功!'); |
| | | } |
| | | } |
| | | ); |
| | | } |
| | | @ViewChild('simpleTable') simpleTable: { load: Function }; |
| | | queryTextChanged(event) { |
| | | this.queryTextStream.next(this.queryText); |
| | | } |
| | | addOrModify(d) { |
| | | const data = {}; |
| | | if (d != null) { |
| | | Object.assign(data, d); |
| | | } |
| | | this.modalHelper.static(DeviceEditComponent, { data }).subscribe( |
| | | (ret: { data: any, close: Function }) => { |
| | | // 修改状态 |
| | | if (ret.data['id'] != null) { |
| | | const origData = d; |
| | | const isModified = Object.keys(ret.data).some( |
| | | (key: string) => { |
| | | return ret.data[key] !== origData[key]; |
| | | } |
| | | ); |
| | | // 未作修改 |
| | | if (!isModified) { |
| | | ret.close(); |
| | | this.msgSrv.success('数据未作任何修改!'); |
| | | return; |
| | | } |
| | | } |
| | | this.deviceService.save(ret.data).subscribe( |
| | | (res: any) => { |
| | | if (res.code === 1) { |
| | | this.load(); |
| | | ret.close(); |
| | | this.msgSrv.success('数据保存成功!'); |
| | | } |
| | | } |
| | | ); |
| | | }); |
| | | } |
| | | configCoord(record:Device):void { |
| | | Object.assign(this.coorPickerService.data,record); |
| | | let _data = this.coorPickerService.data; |
| | | this.monitorPointService.getEntity(record.monitorPointId).subscribe( |
| | | res => { |
| | | if(res!=null && res.code==1 && res.data!=null){ |
| | | const areaNames = res.data.areaNames; |
| | | let adress = null; |
| | | if(areaNames != null){ |
| | | adress = areaNames.provinceName+areaNames.cityName+areaNames.areaName+res.data.address; |
| | | } |
| | | this.coorPickerService.data.address = adress; |
| | | this.coorPickerService.data['describe'] = '设备名称'; |
| | | } |
| | | this.modalHelper.static(CoordinatesPickerComponent).subscribe( |
| | | (staticComp) => { |
| | | const data:Device = { |
| | | id:record.id, |
| | | longitude:_data.longitude, |
| | | latitude:_data.latitude, |
| | | } |
| | | this.deviceService.save(data).subscribe( |
| | | (res: any) => { |
| | | if (res.code === 1) { |
| | | this.load(); |
| | | this.msgSrv.success('坐标配置成功!'); |
| | | } |
| | | } |
| | | ); |
| | | |
| | | } |
| | | ); |
| | | } |
| | | ) |
| | | } |
| | | } |