| | |
| | | import { ExampleService } from '@business/services/util/example.service'; |
| | | import { MonitorPointService } from '@business/services/http/monitor-point.service'; |
| | | import { AreacodeService } from '@business/services/http/areacode.service'; |
| | | import { DataCondition } from './../../../business/entity/data'; |
| | | import { LineChartCriteria, TimePeriod, Organization, MonitorPoint } from '@business/entity/data'; |
| | | import { LineChartCriteria, TimePeriod, Organization, MonitorPoint, DataCondition, Device } from '@business/entity/data'; |
| | | import { PageBean, ResultBean } from '@business/entity/grid'; |
| | | import { Sensor } from '@business/entity/data'; |
| | | import { SensorsService } from '@business/services/http/sensors.service'; |
| | |
| | | import * as moment from 'moment'; |
| | | import { CascaderOption } from 'ng-zorro-antd/src/cascader/nz-cascader.component'; |
| | | import { environment } from '@env/environment'; |
| | | |
| | | import { DeviceService } from '@business/services/http/device.service'; |
| | | @Component({ |
| | | selector: 'app-query', |
| | | templateUrl: './query.component.html', |
| | | styleUrls: [ './query.component.less' ] |
| | | selector: 'app-query', |
| | | templateUrl: './query.component.html', |
| | | styleUrls: ['./query.component.less'] |
| | | }) |
| | | export class QueryComponent implements OnInit { |
| | | public sensorList: Sensor[]; |
| | | public timeUnits: { label: string, value: TimeUnits, disabled: boolean }[] = []; |
| | | public lineChartCriteria: LineChartCriteria = {sensorKey: 'e1', timePeriod: {startTime: null, endTime: null}, dataConditions: []}; |
| | | _areas: {label: any, value: any}; |
| | | _monitorPoint; |
| | | public timeUnits: { label: string, value: TimeUnits }[] = []; |
| | | public lineChartCriteria: LineChartCriteria = { sensorKey: 'e1', timePeriod: { startTime: null, endTime: null }, dataConditions: [] }; |
| | | _areas: { label: any, value: any }; |
| | | _monitorPoint: MonitorPoint; |
| | | _device: Device; |
| | | _dataTimeUnits: { label: string, value: TimeUnits } = { label: '日', value: TimeUnits.DAY }; |
| | | _actualTime: number; |
| | | actualTimes: number[]; |
| | | public _timePeriodUnitValue: TimeUnits = TimeUnits.DAY; // 横坐标时间单位 |
| | | dataTimeUnitsList: { label: string, value: TimeUnits }[] = []; |
| | | public monitorPoints: MonitorPoint[]; |
| | | public devices: Device[]; |
| | | |
| | | dataConditionTemp: DataCondition = { timeUnits: TimeUnits.DAY, actualTime: null }; |
| | | get lineChartSensorName(): String { |
| | | return !!this.sensorList ? this.sensorList.find( sensor => sensor.sensorKey === this.lineChartCriteria.sensorKey).name : null; |
| | | return !!this.sensorList ? this.sensorList.find(sensor => sensor.sensorKey === this.lineChartCriteria.sensorKey).name : null; |
| | | } |
| | | public _timePeriodUnitValue: TimeUnits = TimeUnits.DAY; |
| | | public set timePeriodUnitValue(value: TimeUnits) { |
| | | this._timePeriodUnitValue = value; |
| | | this.lineChartCriteria.timePeriod.timeUnits = value; |
| | | switch (value) { |
| | | // YYYY-MM-DD HH:mm:ss |
| | | case TimeUnits.MONTH: |
| | | this.timeType.dateFormat = 'YYYY-MM'; |
| | | this.timeType.mode = 'month'; |
| | | this.timeType.timePickerOption = null; |
| | | break; |
| | | case TimeUnits.DAY: |
| | | this.timeType.dateFormat = 'YYYY-MM-DD'; |
| | | this.timeType.mode = 'day'; |
| | | this.timeType.timePickerOption = null; |
| | | break; |
| | | case TimeUnits.HOUR: |
| | | this.timeType.dateFormat = 'YYYY-MM-DD HH 时'; |
| | | this.timeType.mode = 'day'; |
| | | this.timeType.timePickerOption = true; |
| | | break; |
| | | case TimeUnits.MINUTE: |
| | | this.timeType.dateFormat = 'YYYY-MM-DD HH:mm'; |
| | | this.timeType.mode = 'day'; |
| | | this.timeType.timePickerOption = true; |
| | | break; |
| | | case TimeUnits.MONTH: |
| | | this.timeType.dateFormat = 'YYYY-MM'; |
| | | this.timeType.mode = 'month'; |
| | | this.timeType.timePickerOption = null; |
| | | break; |
| | | case TimeUnits.DAY: |
| | | this.timeType.dateFormat = 'YYYY-MM-DD'; |
| | | this.timeType.mode = 'day'; |
| | | this.timeType.timePickerOption = null; |
| | | break; |
| | | case TimeUnits.HOUR: |
| | | this.timeType.dateFormat = 'YYYY-MM-DD HH 时'; |
| | | this.timeType.mode = 'day'; |
| | | this.timeType.timePickerOption = true; |
| | | break; |
| | | case TimeUnits.MINUTE: |
| | | this.timeType.dateFormat = 'YYYY-MM-DD HH:mm'; |
| | | this.timeType.mode = 'day'; |
| | | this.timeType.timePickerOption = true; |
| | | break; |
| | | } |
| | | const index = this.timeUnits.findIndex(item => { |
| | | return item.value === value; |
| | | }); |
| | | // 为了保持顺序 按以下操作 |
| | | this.dataTimeUnitsList = this.timeUnits; |
| | | const length = this.timeUnits.length; |
| | | const end = index < length - 1 ? index + 2 : length - 1; |
| | | this._dataTimeUnits = this.timeUnits.find( item => item.value === value); |
| | | setTimeout(() => { |
| | | this.dataTimeUnitsList = null; |
| | | }, 1); |
| | | setTimeout(() => { |
| | | this.dataTimeUnitsList = this.timeUnits.slice( index, end ); |
| | | }, 1); |
| | | |
| | | } |
| | | public timeType: {dateFormat?: string, mode?: 'month'|'day', timePickerOption?: boolean} |
| | | = {dateFormat: 'YYYY-MM-DD', mode: 'day', timePickerOption: null}; |
| | | public timeType: { dateFormat?: string, mode?: 'month' | 'day', timePickerOption?: boolean } |
| | | = { dateFormat: 'YYYY-MM-DD', mode: 'day', timePickerOption: null }; |
| | | get timePeriodUnitName(): String { |
| | | return this.timeUnits.find( item => item.value === this._timePeriodUnitValue).label; |
| | | return this.timeUnits.find(item => item.value === this._timePeriodUnitValue).label; |
| | | } |
| | | constructor( |
| | | private sensorsService: SensorsService, |
| | | private areacodeService: AreacodeService, |
| | | private http: _HttpClient, |
| | | private monitorPointService: MonitorPointService, |
| | | ) { |
| | | private deviceService: DeviceService, |
| | | ) { |
| | | } |
| | | |
| | | private initPage() { |
| | | this.sensorsService.getPagingList(null, null).subscribe( |
| | | (res: PageBean) => { |
| | | (res: PageBean) => { |
| | | this.sensorList = res.data; |
| | | } |
| | | ); |
| | | this.timeUnits.push( |
| | | {label: '年', value: TimeUnits.YEAR, disabled: false}, |
| | | {label: '月', value: TimeUnits.MONTH, disabled: false}, |
| | | {label: '日', value: TimeUnits.DAY, disabled: false}, |
| | | {label: '时', value: TimeUnits.HOUR, disabled: false}, |
| | | {label: '分', value: TimeUnits.MINUTE, disabled: false} |
| | | { label: '年', value: TimeUnits.YEAR }, |
| | | { label: '月', value: TimeUnits.MONTH }, |
| | | { label: '日', value: TimeUnits.DAY }, |
| | | { label: '时', value: TimeUnits.HOUR }, |
| | | { label: '分', value: TimeUnits.MINUTE } |
| | | ); |
| | | this.dataTimeUnitsList = this.timeUnits.slice(2, 4); |
| | | this._dataTimeUnits = this.dataTimeUnitsList[0]; |
| | | const now = new Date(); |
| | | this.lineChartCriteria.timePeriod.timeUnits = TimeUnits.DAY; |
| | | this.lineChartCriteria.timePeriod.startTime = now; |
| | | this.lineChartCriteria.timePeriod.endTime = new Date(now.getTime()); |
| | | // 省市区 初始值 |
| | | this.http.get(environment.SERVER_BASH_URL + 'organization/get-my-org').subscribe( |
| | | ( res: ResultBean<Organization>) => { |
| | | if (res.code === ResultCode.SUCCESS) { |
| | | (res: ResultBean<Organization>) => { |
| | | if (res.code === ResultCode.SUCCESS) { |
| | | const org = res.data; |
| | | if (!!org.areaNames) { |
| | | const areaNames = org.areaNames; |
| | | this._areas = {label: null, value: null}; |
| | | this._areas = { label: null, value: null }; |
| | | this._areas.label = Object.values(areaNames).filter( |
| | | val => !!val |
| | | ).join('/'); |
| | |
| | | this.dataConditionTemp.areaRangeId = org.provinceCode; |
| | | } |
| | | } else { |
| | | this._areas = {label: '江苏省/苏州市/昆山市', value: 320583}; |
| | | this._areas = { label: '江苏省/苏州市/昆山市', value: 320583 }; |
| | | this.dataConditionTemp.areaRange = AreaRange.AREA; |
| | | this.dataConditionTemp.areaRangeId = 320583; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | ); |
| | | // 监控点初始化 |
| | | this.monitorPointsChange(null); |
| | | } |
| | | monitorPointChange(text) { |
| | | const pageBean: PageBean = {pageIndex: 0, pageSize: 20}; |
| | | devicesChange(mpId) { |
| | | if (!!mpId) { |
| | | const example = new ExampleService(); |
| | | example.or().andEqualTo({ name: 'monitorPointId', value: mpId }); |
| | | this.deviceService.getPageByExample(null, example).subscribe( |
| | | (res: PageBean) => { |
| | | if (!!res && !!res.data) { |
| | | this.devices = res.data; |
| | | } |
| | | } |
| | | ); |
| | | } else { |
| | | this.devices = null; |
| | | } |
| | | } |
| | | monitorPointsChange(text) { |
| | | const pageBean: PageBean = { pageIndex: 0, pageSize: 20 }; |
| | | const example = new ExampleService(); |
| | | let areaName = ''; |
| | | switch (this.dataConditionTemp.areaRange) { |
| | | case AreaRange.PROVINCE: |
| | | areaName = 'provinceCode'; break; |
| | | areaName = 'provinceCode'; break; |
| | | case AreaRange.CITY: |
| | | areaName = 'cityCode'; break; |
| | | areaName = 'cityCode'; break; |
| | | case AreaRange.AREA: |
| | | areaName = 'areaCode'; break; |
| | | areaName = 'areaCode'; break; |
| | | } |
| | | if (!!text) { |
| | | example.or().andLike({name: 'name', value: '%' + text + '%'}) |
| | | .andEqualTo({name: areaName, value: this.dataConditionTemp.areaRangeId}); |
| | | example.or().andLike({ name: 'name', value: '%' + text + '%' }) |
| | | .andEqualTo({ name: areaName, value: this.dataConditionTemp.areaRangeId }); |
| | | } else { |
| | | example.or() |
| | | .andEqualTo({name: areaName, value: this.dataConditionTemp.areaRangeId}); |
| | | .andEqualTo({ name: areaName, value: this.dataConditionTemp.areaRangeId }); |
| | | } |
| | | this.monitorPointService.getPageByExample(pageBean, example).subscribe( |
| | | (res: PageBean) => { |
| | | if (!!res && !!res.data) { |
| | | this.monitorPoints = res.data; |
| | | } |
| | | } |
| | | ); |
| | | } |
| | | (res: PageBean) => { |
| | | if (!!res && !!res.data) { |
| | | this.monitorPoints = res.data; |
| | | } |
| | | } |
| | | ); |
| | | } |
| | | ngOnInit() { |
| | | this.initPage(); |
| | | } |
| | |
| | | } |
| | | get _startShowTime() { |
| | | return this.timeType.timePickerOption ? |
| | | {nzHideDisabledOptions: true, |
| | | nzDisabledHours: () => { |
| | | const endTime = this.lineChartCriteria.timePeriod.endTime; |
| | | const hours = this.newArray(50); |
| | | return this._isSameDay && !!endTime ? hours.slice(endTime.getHours() + 1, 24) : []; |
| | | }, |
| | | nzDisabledMinutes: (h) => { |
| | | if (this._timePeriodUnitValue === TimeUnits.MINUTE) { |
| | | { |
| | | nzHideDisabledOptions: true, |
| | | nzDisabledHours: () => { |
| | | const endTime = this.lineChartCriteria.timePeriod.endTime; |
| | | if (this._isSameDay && h === endTime.getHours()) { |
| | | const minutes = this.newArray(122); |
| | | return minutes.slice(endTime.getMinutes() + 1, 60); |
| | | const hours = this.newArray(50); |
| | | return this._isSameDay && !!endTime ? hours.slice(endTime.getHours() + 1, 24) : []; |
| | | }, |
| | | nzDisabledMinutes: (h) => { |
| | | if (this._timePeriodUnitValue === TimeUnits.MINUTE) { |
| | | const endTime = this.lineChartCriteria.timePeriod.endTime; |
| | | if (this._isSameDay && h === endTime.getHours()) { |
| | | const minutes = this.newArray(122); |
| | | return minutes.slice(endTime.getMinutes() + 1, 60); |
| | | } else { |
| | | return []; |
| | | } |
| | | } else { |
| | | return []; |
| | | } |
| | | } else { |
| | | return this.newArray(60).slice(1); |
| | | } |
| | | |
| | | }, |
| | | nzDisabledSeconds: () => { |
| | | return this.newArray(60).slice(1); |
| | | } |
| | | |
| | | }, |
| | | nzDisabledSeconds: () => { |
| | | return this.newArray(60).slice(1); |
| | | } |
| | | } : false; |
| | | } |
| | | get _endShowTime() { |
| | | return this.timeType.timePickerOption ? |
| | | {nzHideDisabledOptions: true, |
| | | nzDisabledHours: () => { |
| | | const startTime = this.lineChartCriteria.timePeriod.startTime; |
| | | return this._isSameDay && !!startTime ? this.newArray(startTime.getHours()) : []; |
| | | }, |
| | | nzDisabledMinutes: (h) => { |
| | | if (this._timePeriodUnitValue === TimeUnits.MINUTE) { |
| | | { |
| | | nzHideDisabledOptions: true, |
| | | nzDisabledHours: () => { |
| | | const startTime = this.lineChartCriteria.timePeriod.startTime; |
| | | if (this._isSameDay && h === startTime.getHours()) { |
| | | return this.newArray(startTime.getMinutes()); |
| | | return this._isSameDay && !!startTime ? this.newArray(startTime.getHours()) : []; |
| | | }, |
| | | nzDisabledMinutes: (h) => { |
| | | if (this._timePeriodUnitValue === TimeUnits.MINUTE) { |
| | | const startTime = this.lineChartCriteria.timePeriod.startTime; |
| | | if (this._isSameDay && h === startTime.getHours()) { |
| | | return this.newArray(startTime.getMinutes()); |
| | | } else { |
| | | return []; |
| | | } |
| | | |
| | | } else { |
| | | return []; |
| | | return this.newArray(60).slice(1); |
| | | } |
| | | |
| | | } else { |
| | | }, |
| | | nzDisabledSeconds: () => { |
| | | return this.newArray(60).slice(1); |
| | | } |
| | | }, |
| | | nzDisabledSeconds: () => { |
| | | return this.newArray(60).slice(1); |
| | | } |
| | | } : false; |
| | | } |
| | | newArray = (len) => { |
| | | const result = []; |
| | | for (let i = 0; i < len; i++) { |
| | | result.push(i); |
| | | result.push(i); |
| | | } |
| | | return result; |
| | | } |
| | | } |
| | | newArray2 = (start, len) => { |
| | | const result = []; |
| | | for (let i = start; i <= len; i++) { |
| | | result.push(i); |
| | | } |
| | | return result; |
| | | } |
| | | _disabledStartDate = (startValue: Date) => { |
| | | if (!startValue || !this.lineChartCriteria.timePeriod.endTime) { |
| | | return false; |
| | | return false; |
| | | } |
| | | let format = this.timeType.dateFormat; |
| | | // 单位为时,开始日期中 日默认时间设置为 00.00.00 |
| | | if (format.indexOf('H', 11)) { |
| | | format = format.replace(/HH.*/, ''); |
| | | } |
| | | } |
| | | const _startValue = moment(moment(startValue).format(format), format); |
| | | return _startValue.valueOf() > this.lineChartCriteria.timePeriod.endTime.getTime(); |
| | | } |
| | | _disabledEndDate = (endValue: Date) => { |
| | | } |
| | | _disabledEndDate = (endValue: Date) => { |
| | | if (!endValue || !this.lineChartCriteria.timePeriod.startTime) { |
| | | return false; |
| | | return false; |
| | | } |
| | | const _endValue: Date = new Date(endValue.getTime()); |
| | | _endValue.setHours(23); |
| | | _endValue.setMinutes(59); |
| | | _endValue.setSeconds(59); |
| | | return _endValue.getTime() < this.lineChartCriteria.timePeriod.startTime.getTime(); |
| | | } |
| | | _timeChange = (type: string) => { |
| | | } |
| | | _timeChange = (value, type?: 'start'|'end') => { |
| | | const startTime = this.lineChartCriteria.timePeriod.startTime; |
| | | const endTime = this.lineChartCriteria.timePeriod.endTime; |
| | | if (type === 'start') { |
| | | !!endTime ? '' : this.lineChartCriteria.timePeriod.endTime = startTime; |
| | | const endTime = this.lineChartCriteria.timePeriod.endTime; |
| | | |
| | | if (type === 'start') { |
| | | this.lineChartCriteria.timePeriod.startTime = value; |
| | | !!endTime ? '' : this.lineChartCriteria.timePeriod.endTime = value; |
| | | } else { |
| | | !!startTime ? '' : this.lineChartCriteria.timePeriod.startTime === endTime; |
| | | this.lineChartCriteria.timePeriod.endTime = value; |
| | | !!startTime ? '' : this.lineChartCriteria.timePeriod.startTime === value; |
| | | } |
| | | } |
| | | get startYear(): number { |
| | | !!this.lineChartCriteria.timePeriod.startTime ? |
| | | '' : this.lineChartCriteria.timePeriod.startTime = new Date(); |
| | | return this.lineChartCriteria.timePeriod.startTime.getFullYear(); |
| | | } |
| | | set startYear(value) { |
| | | |
| | | } |
| | | private getPeriodDate(value: Date , type?: 'start'|'end' ): Date { |
| | | debugger; |
| | | let month = 0 ; |
| | | let day = 0; |
| | | let hour = 0; |
| | | let minute = 0; |
| | | let second = 0; |
| | | if ('end' === type) { |
| | | month = 12; |
| | | day = 31; |
| | | hour = 23; |
| | | minute = 59; |
| | | second = 59; |
| | | } |
| | | const mo = moment(value); |
| | | switch ( this.lineChartCriteria.timePeriod.timeUnits ) { |
| | | case TimeUnits.YEAR: |
| | | mo.month(month).day(day).hour(hour).minute(minute).second(second); break; |
| | | case TimeUnits.MONTH: |
| | | mo.day(day).hour(hour).minute(minute).second(second); break; |
| | | case TimeUnits.DAY: |
| | | mo.hour(hour).minute(minute).second(second); break; |
| | | case TimeUnits.HOUR: |
| | | mo.minute(minute).second(second); break; |
| | | case TimeUnits.MINUTE: |
| | | mo.second(second); break; |
| | | } |
| | | return mo.toDate(); |
| | | } |
| | | get startYear(): number { |
| | | !!this.lineChartCriteria.timePeriod.startTime ? |
| | | '' : this.lineChartCriteria.timePeriod.startTime = new Date(); |
| | | '' : this.lineChartCriteria.timePeriod.startTime = new Date(); |
| | | return this.lineChartCriteria.timePeriod.startTime.getFullYear(); |
| | | } |
| | | set startYear(value) { |
| | | !!this.lineChartCriteria.timePeriod.startTime ? |
| | | '' : this.lineChartCriteria.timePeriod.startTime = new Date(); |
| | | if (this.startYear === this.endYear && value < this.startYear) { |
| | | // 异步调用防止循环 |
| | | setTimeout(() => { |
| | |
| | | }, 1); |
| | | } |
| | | this.lineChartCriteria.timePeriod.startTime.setFullYear(value); |
| | | } |
| | | get minStartYear(): number { |
| | | } |
| | | get minStartYear(): number { |
| | | const now = new Date(); |
| | | return now.getFullYear() - 50; |
| | | } |
| | | get maxStartYear(): number { |
| | | } |
| | | get maxStartYear(): number { |
| | | return this.endYear; |
| | | } |
| | | get endYear(): number { |
| | | } |
| | | get endYear(): number { |
| | | !!this.lineChartCriteria.timePeriod.endTime ? |
| | | '' : this.lineChartCriteria.timePeriod.endTime = new Date(); |
| | | '' : this.lineChartCriteria.timePeriod.endTime = new Date(); |
| | | return this.lineChartCriteria.timePeriod.endTime.getFullYear(); |
| | | } |
| | | |
| | | set endYear(value) { |
| | | } |
| | | |
| | | set endYear(value) { |
| | | !!this.lineChartCriteria.timePeriod.endTime ? |
| | | '' : this.lineChartCriteria.timePeriod.endTime = new Date(); |
| | | if (this.startYear === this.endYear && value > this.startYear) { |
| | | '' : this.lineChartCriteria.timePeriod.endTime = new Date(); |
| | | if (this.startYear === this.endYear && value > this.startYear) { |
| | | // 异步调用防止循环 |
| | | setTimeout(() => { |
| | | this.startYear -= 1; |
| | | }, 1); |
| | | } |
| | | this.lineChartCriteria.timePeriod.endTime.setFullYear(value); |
| | | } |
| | | get minEndYear(): number { |
| | | } |
| | | get minEndYear(): number { |
| | | return this.startYear; |
| | | } |
| | | get maxEndYear(): number { |
| | | } |
| | | get maxEndYear(): number { |
| | | const now = new Date(); |
| | | return now.getFullYear() + 50; |
| | | } |
| | | dataConditionTemp: DataCondition = {}; |
| | | areaLazyLoad(event: { option: CascaderOption, index: number, resolve: (children: CascaderOption[]) => void, reject: () => void }) { |
| | | } |
| | | areaLazyLoad(event: { option: CascaderOption, index: number, resolve: (children: CascaderOption[]) => void, reject: () => void }) { |
| | | const index = event['index']; |
| | | const option = event.option; |
| | | 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; |
| | | 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[]) { |
| | | if (!!codes && !!codes.length) { |
| | | const n = codes.length; |
| | | switch (n) { |
| | | case 1: |
| | | this.dataConditionTemp.areaRangeId = Number(codes[0]); |
| | | this.dataConditionTemp.areaRange = AreaRange.PROVINCE; |
| | | break; |
| | | case 2: |
| | | this.dataConditionTemp.areaRangeId = Number(codes[1]); |
| | | this.dataConditionTemp.areaRange = AreaRange.CITY; |
| | | break; |
| | | case 3: |
| | | this.dataConditionTemp.areaRangeId = Number(codes[2]); |
| | | this.dataConditionTemp.areaRange = AreaRange.AREA; |
| | | break; |
| | | } |
| | | this._monitorPoint = 1; |
| | | } |
| | | setAreaCodes(codes: string[]) { |
| | | if (!!codes && !!codes.length) { |
| | | const n = codes.length; |
| | | if (this.dataConditionTemp.areaRangeId !== Number(codes[n - 1])) { |
| | | this.dataConditionTemp.areaRangeId = Number(codes[n - 1]); |
| | | switch (n) { |
| | | case 1: |
| | | this.dataConditionTemp.areaRange = AreaRange.PROVINCE; |
| | | break; |
| | | case 2: |
| | | this.dataConditionTemp.areaRange = AreaRange.CITY; |
| | | break; |
| | | case 3: |
| | | this.dataConditionTemp.areaRange = AreaRange.AREA; |
| | | break; |
| | | } |
| | | this.monitorPointsChange(null); |
| | | this._monitorPoint = null; |
| | | this.devicesChange(null); |
| | | this._device = null; |
| | | } |
| | | this._areas.value = codes; |
| | | } |
| | | } |
| | | // 下拉框设置监控点事件 |
| | | setMonitorPoint(value: MonitorPoint) { |
| | | if (!!value) { |
| | | this.dataConditionTemp.areaRangeId = value.id; |
| | | this.dataConditionTemp.areaRange = AreaRange.MONITORPOINT; |
| | | } else { |
| | | this.setAreaCodes(this._areas.value); |
| | | } |
| | | if (value !== this._monitorPoint) { |
| | | this._device = null; |
| | | this.devicesChange(!!value ? value.id : null); |
| | | } |
| | | this._monitorPoint = value; |
| | | } |
| | | // 设置设备的值 |
| | | setDevice(value: Device) { |
| | | if (!!value) { |
| | | this._device = value; |
| | | this.dataConditionTemp.areaRangeId = value.id; |
| | | this.dataConditionTemp.areaRange = AreaRange.DEVICE; |
| | | } else { |
| | | this.setMonitorPoint(this._monitorPoint); |
| | | } |
| | | } |
| | | setDataTimeUnits(item) { |
| | | this._dataTimeUnits = item; |
| | | this.dataConditionTemp.timeUnits = item.value; |
| | | if (!this.actualTimeDisabled) { |
| | | this._actualTime = 1; |
| | | switch (item.value) { |
| | | case TimeUnits.MONTH: |
| | | this.actualTimes = this.newArray2(1, 12); break; |
| | | case TimeUnits.DAY: |
| | | this.actualTimes = this.newArray2(1, 31); break; |
| | | case TimeUnits.HOUR: |
| | | this.actualTimes = this.newArray2(0, 23); break; |
| | | case TimeUnits.MINUTE: |
| | | this.actualTimes = this.newArray2(1, 59); break; |
| | | } |
| | | } |
| | | } |
| | | // 实际时间是否可用 actualTimeDisabled |
| | | get actualTimeDisabled() { |
| | | if (!!this.dataTimeUnitsList && this._dataTimeUnits === this.dataTimeUnitsList[0]) { |
| | | this._actualTime = null; |
| | | this.actualTimes = null; |
| | | } |
| | | } |
| | | setMonitorPoint(value) { |
| | | console.log(value); |
| | | this.dataConditionTemp.areaRangeId = value; |
| | | this.dataConditionTemp.areaRange = AreaRange.MONITORPOINT; |
| | | return !!this.dataTimeUnitsList && this._dataTimeUnits === this.dataTimeUnitsList[0]; |
| | | } |
| | | |
| | | setActualTime(val) { |
| | | this.dataConditionTemp.actualTime = val; |
| | | this._actualTime = val; |
| | | } |
| | | search(event) { |
| | | // 刷新时间格式 |
| | | const startTime = this.lineChartCriteria.timePeriod.startTime; |
| | | const endTime = this.lineChartCriteria.timePeriod.endTime; |
| | | this.lineChartCriteria.timePeriod.startTime = this.getPeriodDate(startTime); |
| | | this.lineChartCriteria.timePeriod.endTime = this.getPeriodDate(endTime, 'end'); |
| | | this.lineChartCriteria.dataConditions.pop(); |
| | | this.lineChartCriteria.dataConditions.push(this.dataConditionTemp); |
| | | this.http.post(environment.SERVER_BASH_URL + '/report/line-chart', this.lineChartCriteria).subscribe( |
| | | res => console.log(res) |
| | | ); |
| | | } |
| | | chartOption; |
| | | echartsIntance; |
| | | onChartInit(ec) { |
| | | this.echartsIntance = ec; |
| | | } |
| | | } |