You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
705 lines
20 KiB
705 lines
20 KiB
3 years ago
|
import { HttpClient } from '@angular/common/http';
|
||
|
import { Component, OnInit, ViewContainerRef, ElementRef } from '@angular/core';
|
||
|
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
||
|
import * as echarts from 'echarts';
|
||
|
import { NzModalService } from 'ng-zorro-antd/modal';
|
||
|
import { GetOutOfLineDetailsComponent } from '../today-warning/get-out-of-line-details/get-out-of-line-details.component';
|
||
|
import * as moment from 'moment';
|
||
|
import { fromEvent } from 'rxjs';
|
||
|
import { debounceTime } from 'rxjs/operators';
|
||
|
import { Router } from '@angular/router';
|
||
|
import { OilUnloadingProcessComponent } from '../oil-unloading-process/oil-unloading-process.component';
|
||
|
import { TreeService } from 'src/app/service/tree.service';
|
||
|
|
||
|
@Component({
|
||
|
selector: 'app-warning-statistics-list',
|
||
|
templateUrl: './warning-statistics-list.component.html',
|
||
|
styleUrls: ['./warning-statistics-list.component.scss']
|
||
|
})
|
||
|
export class WarningStatisticsListComponent implements OnInit {
|
||
|
|
||
|
validateForm!: FormGroup;
|
||
|
constructor(private toTree: TreeService, private http: HttpClient, private fb: FormBuilder, private router: Router, private modal: NzModalService, private viewContainerRef: ViewContainerRef, private element: ElementRef) { }
|
||
|
|
||
|
myChart: any //左侧饼图
|
||
|
mybarChart: any //柱状图
|
||
|
|
||
|
|
||
|
getThirtyDays() {
|
||
|
//获取当前日期
|
||
|
let myDate = new Date();
|
||
|
var nowY = myDate.getFullYear();
|
||
|
var nowM = myDate.getMonth() + 1;
|
||
|
var nowD = myDate.getDate();
|
||
|
var enddateStr = nowY + "-" + (nowM < 10 ? "0" + nowM : nowM) + "-" + (nowD < 10 ? "0" + nowD : nowD);//当前日期
|
||
|
var enddate = new Date(enddateStr);
|
||
|
|
||
|
|
||
|
//获取三十天前日期
|
||
|
var lw = new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 30);//最后一个数字30可改,30天的意思
|
||
|
var lastY = lw.getFullYear();
|
||
|
var lastM = lw.getMonth() + 1;
|
||
|
var lastD = lw.getDate();
|
||
|
var startdateStr = lastY + "-" + (lastM < 10 ? "0" + lastM : lastM) + "-" + (lastD < 10 ? "0" + lastD : lastD);//三十天之前日期
|
||
|
var startDate = new Date(startdateStr);
|
||
|
|
||
|
const dateList = []
|
||
|
while (true) {
|
||
|
startDate.setDate(startDate.getDate() + 1)
|
||
|
if (startDate.getTime() <= enddate.getTime()) {
|
||
|
if (startDate.getDate() < 10) {
|
||
|
// startDate.getFullYear() 获取年,此处没加上年份
|
||
|
dateList.push((startDate.getMonth() + 1) + '.0' + startDate.getDate())
|
||
|
} else {
|
||
|
dateList.push((startDate.getMonth() + 1) + '.' + startDate.getDate())
|
||
|
}
|
||
|
} else {
|
||
|
break
|
||
|
}
|
||
|
}
|
||
|
return dateList;
|
||
|
}
|
||
|
|
||
|
isEcharts: boolean = true
|
||
|
isEchartsShow() {
|
||
|
this.isEcharts = !this.isEcharts
|
||
|
}
|
||
|
startdate
|
||
|
enddate
|
||
|
|
||
|
isOrShow: boolean
|
||
|
ngOnInit(): void {
|
||
|
//当前日期
|
||
|
let myDate: any = new Date();
|
||
|
let nowY = myDate.getFullYear();
|
||
|
let nowM = myDate.getMonth() + 1;
|
||
|
let nowD = myDate.getDate();
|
||
|
this.enddate = nowY + "-" + (nowM < 10 ? "0" + nowM : nowM) + "-" + (nowD < 10 ? "0" + nowD : nowD);//当前日期
|
||
|
//获取三十天前日期
|
||
|
let lw = new Date(myDate - 1000 * 60 * 60 * 24 * 30);//最后一个数字30可改,30天的意思
|
||
|
let lastY = lw.getFullYear();
|
||
|
let lastM = lw.getMonth() + 1;
|
||
|
let lastD = lw.getDate();
|
||
|
this.startdate = lastY + "-" + (lastM < 10 ? "0" + lastM : lastM) + "-" + (lastD < 10 ? "0" + lastD : lastD);//三十天之前日期
|
||
|
this.validateForm = this.fb.group({
|
||
|
// state: [null],
|
||
|
organization: [null],
|
||
|
datePicker: [[this.startdate, this.enddate]]
|
||
|
});
|
||
|
// 饼图
|
||
|
this.myChart = echarts.init(document.getElementById('piechart'));
|
||
|
//柱状折线图
|
||
|
this.mybarChart = echarts.init(document.getElementById('barchart'));
|
||
|
this.tableSpin = true
|
||
|
this.getAllOrganization()
|
||
|
this.getAggregations()
|
||
|
if (this.router.url.indexOf('petrolStation') != -1) {
|
||
|
this.isOrShow = false
|
||
|
} else {
|
||
|
this.isOrShow = true
|
||
|
}
|
||
|
}
|
||
|
//刷新饼图图表数据
|
||
|
num
|
||
|
echartsData: any
|
||
|
//一级饼图
|
||
|
oilchartpieOption = {
|
||
|
color: ['#FF4B65', '#36A2FF'],
|
||
|
tooltip: {
|
||
|
trigger: 'item'//触发类型
|
||
|
},
|
||
|
legend: {
|
||
|
bottom: '12%',
|
||
|
left: 'center',
|
||
|
itemGap: 40,
|
||
|
itemWidth: 8,
|
||
|
itemHeight: 8,
|
||
|
formatter: (name) => {
|
||
|
let data = this.oilchartpieOptionPieData1
|
||
|
let value
|
||
|
for (var i = 0, l = data.length; i < l; i++) {
|
||
|
if (data[i].name == name) {
|
||
|
value = data[i].value;
|
||
|
}
|
||
|
}
|
||
|
return '{a|' + name + '}' + '{b|' + value + '}';
|
||
|
},
|
||
|
textStyle: {
|
||
|
color: '#fff',
|
||
|
rich: {
|
||
|
a: {
|
||
|
width: 80
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
series: [
|
||
|
{
|
||
|
type: 'pie',
|
||
|
radius: ['50%', '60%'],
|
||
|
bottom: '10%',
|
||
|
avoidLabelOverlap: false,//防止标签重叠策略
|
||
|
label: {//每一个标签外网延伸的引导说明
|
||
|
show: false,
|
||
|
position: 'outside'
|
||
|
},
|
||
|
data: [],
|
||
|
tooltip: {//鼠标移入提示
|
||
|
position: 'right',
|
||
|
padding: [14, 19],
|
||
|
backgroundColor: 'rgba(28, 129, 218, 0.4)',
|
||
|
textStyle: {
|
||
|
color: '#fff',
|
||
|
fontSize: 12
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
};
|
||
|
oilchartpieOptionPieData1: any
|
||
|
//一级柱状图
|
||
|
oilchartbarOption = {
|
||
|
xAxis: {
|
||
|
type: 'category',
|
||
|
data: [],
|
||
|
axisLine: {
|
||
|
show: false,
|
||
|
lineStyle: {
|
||
|
color: '#91CCFF'
|
||
|
}
|
||
|
},
|
||
|
axisTick: {//刻度线
|
||
|
show: false
|
||
|
},
|
||
|
inverse: true
|
||
|
},
|
||
|
yAxis: {
|
||
|
type: 'value',
|
||
|
nameTextStyle: {
|
||
|
color: '#C4E2FC'
|
||
|
},
|
||
|
splitLine: {//分割线
|
||
|
lineStyle: {
|
||
|
color: ['#0f4374'],
|
||
|
width: 2
|
||
|
}
|
||
|
},
|
||
|
axisTick: {//刻度线
|
||
|
show: false
|
||
|
},
|
||
|
axisLine: {//轴线
|
||
|
show: false,
|
||
|
lineStyle: {
|
||
|
color: '#C4E2FC'
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
tooltip: {
|
||
|
// trigger: 'axis'
|
||
|
},
|
||
|
series: [
|
||
|
{
|
||
|
name: '证照预警事件',
|
||
|
data: [],
|
||
|
type: 'bar',
|
||
|
itemStyle: {
|
||
|
color: {
|
||
|
type: 'linear',
|
||
|
x: 0,
|
||
|
y: 0,
|
||
|
x2: 0,
|
||
|
y2: 1,
|
||
|
colorStops: [{
|
||
|
offset: 0, color: '#23F0FF' // 0% 处的颜色
|
||
|
}, {
|
||
|
offset: 1, color: 'rgba(35, 153, 255, 0.1)' // 100% 处的颜色
|
||
|
}],
|
||
|
global: false // 缺省为 false
|
||
|
}
|
||
|
},
|
||
|
barWidth: '25%'
|
||
|
},
|
||
|
{
|
||
|
name: '证照预警事件',
|
||
|
data: [],
|
||
|
type: 'line',
|
||
|
symbol: 'circle',
|
||
|
symbolSize: 8,
|
||
|
label: {
|
||
|
show: true
|
||
|
},
|
||
|
itemStyle: {
|
||
|
color: '#fff',
|
||
|
shadowColor: '#fff',
|
||
|
shadowBlur: 10
|
||
|
},
|
||
|
lineStyle: {
|
||
|
color: '#FFCC8A',
|
||
|
width: 1
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
legend: {
|
||
|
data: ['证照预警事件'],
|
||
|
textStyle: {
|
||
|
color: '#fff'
|
||
|
},
|
||
|
right: 28,
|
||
|
top: 18,
|
||
|
itemWidth: 8,
|
||
|
itemHeight: 8,
|
||
|
},
|
||
|
grid: {
|
||
|
left: '42px',
|
||
|
right: '30px',
|
||
|
bottom: '38px',
|
||
|
top: '80px'
|
||
|
}
|
||
|
};
|
||
|
|
||
|
//二级饼图
|
||
|
oilchartpieOption2 = {
|
||
|
color: ['#36A2FF', '#FFBD4B', '#46DFFF'],
|
||
|
tooltip: {
|
||
|
trigger: 'item'//触发类型
|
||
|
},
|
||
|
legend: {
|
||
|
bottom: '8%',
|
||
|
left: 'center',
|
||
|
itemGap: 10,
|
||
|
itemWidth: 8,
|
||
|
itemHeight: 8,
|
||
|
formatter: (name) => {
|
||
|
let data = this.oilchartpieOptionPieData2
|
||
|
let value
|
||
|
for (var i = 0, l = data.length; i < l; i++) {
|
||
|
if (data[i].name == name) {
|
||
|
value = data[i].value;
|
||
|
}
|
||
|
}
|
||
|
return '{a|' + name + '}' + '{b|' + value + '}';
|
||
|
},
|
||
|
textStyle: {
|
||
|
color: '#fff',
|
||
|
rich: {
|
||
|
a: {
|
||
|
width: 60
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
series: [
|
||
|
{
|
||
|
type: 'pie',
|
||
|
radius: ['50%', '60%'],
|
||
|
bottom: '10%',
|
||
|
avoidLabelOverlap: false,//防止标签重叠策略
|
||
|
label: {//每二个标签外网延伸的引导说明
|
||
|
show: false,
|
||
|
position: 'outside'
|
||
|
},
|
||
|
data: [],
|
||
|
tooltip: {//鼠标移入提示
|
||
|
position: 'right',
|
||
|
padding: [14, 19],
|
||
|
backgroundColor: 'rgba(28, 129, 218, 0.4)',
|
||
|
textStyle: {
|
||
|
color: '#fff',
|
||
|
fontSize: 12
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
};
|
||
|
oilchartpieOptionPieData2: any
|
||
|
//二级柱状图
|
||
|
oilchartbarOption2 = {
|
||
|
tooltip: {
|
||
|
// trigger: 'axis'
|
||
|
},
|
||
|
xAxis: {
|
||
|
type: 'category',
|
||
|
data: [],
|
||
|
axisLine: {
|
||
|
show: false,
|
||
|
lineStyle: {
|
||
|
color: '#91CCFF'
|
||
|
}
|
||
|
},
|
||
|
axisTick: {//刻度线
|
||
|
show: false
|
||
|
},
|
||
|
inverse: true
|
||
|
|
||
|
},
|
||
|
yAxis: {
|
||
|
type: 'value',
|
||
|
nameTextStyle: {
|
||
|
color: '#C4E2FC'
|
||
|
},
|
||
|
splitLine: {//分割线
|
||
|
lineStyle: {
|
||
|
color: ['#0f4374'],
|
||
|
width: 2
|
||
|
}
|
||
|
},
|
||
|
axisTick: {//刻度线
|
||
|
show: false
|
||
|
},
|
||
|
axisLine: {//轴线
|
||
|
show: false,
|
||
|
lineStyle: {
|
||
|
color: '#C4E2FC'
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
legend: {
|
||
|
data: ['事前准备', '事中操作', '全程监测'],
|
||
|
textStyle: {
|
||
|
color: '#fff'
|
||
|
},
|
||
|
right: 18,
|
||
|
top: 18,
|
||
|
itemWidth: 8,
|
||
|
itemHeight: 8,
|
||
|
},
|
||
|
series: [
|
||
|
{
|
||
|
name: '',
|
||
|
data: [],
|
||
|
type: 'bar',
|
||
|
itemStyle: {
|
||
|
color: {
|
||
|
type: 'linear',
|
||
|
x: 0,
|
||
|
y: 0,
|
||
|
x2: 0,
|
||
|
y2: 1,
|
||
|
colorStops: [{
|
||
|
offset: 0, color: 'rgba(54, 162, 255, 1)' // 0% 处的颜色
|
||
|
}, {
|
||
|
offset: 1, color: 'rgba(54, 162, 255, 0.1)' // 100% 处的颜色
|
||
|
}],
|
||
|
global: false // 缺省为 false
|
||
|
}
|
||
|
},
|
||
|
barWidth: '25%'
|
||
|
},
|
||
|
{
|
||
|
name: '',
|
||
|
data: [],
|
||
|
type: 'bar',
|
||
|
itemStyle: {
|
||
|
color: {
|
||
|
type: 'linear',
|
||
|
x: 0,
|
||
|
y: 0,
|
||
|
x2: 0,
|
||
|
y2: 1,
|
||
|
colorStops: [{
|
||
|
offset: 0, color: 'rgba(255, 189, 75, 1)' // 0% 处的颜色
|
||
|
}, {
|
||
|
offset: 1, color: 'rgba(255, 189, 75, 0.1)' // 100% 处的颜色
|
||
|
}],
|
||
|
global: false // 缺省为 false
|
||
|
}
|
||
|
},
|
||
|
barWidth: '25%'
|
||
|
},
|
||
|
{
|
||
|
name: '',
|
||
|
data: [],
|
||
|
type: 'bar',
|
||
|
itemStyle: {
|
||
|
color: {
|
||
|
type: 'linear',
|
||
|
x: 0,
|
||
|
y: 0,
|
||
|
x2: 0,
|
||
|
y2: 1,
|
||
|
colorStops: [{
|
||
|
offset: 0, color: 'rgba(70, 223, 255, 1)' // 0% 处的颜色
|
||
|
}, {
|
||
|
offset: 1, color: 'rgba(70, 223, 255, 0.1)' // 100% 处的颜色
|
||
|
}],
|
||
|
global: false // 缺省为 false
|
||
|
}
|
||
|
},
|
||
|
barWidth: '25%'
|
||
|
}
|
||
|
],
|
||
|
grid: {
|
||
|
left: '42px',
|
||
|
right: '30px',
|
||
|
bottom: '38px',
|
||
|
top: '80px'
|
||
|
}
|
||
|
};
|
||
|
isgoback: boolean = false
|
||
|
refreshEchartsData1(data) {
|
||
|
this.num = data.totalCount
|
||
|
//饼图
|
||
|
this.oilchartpieOptionPieData1 = [
|
||
|
{ name: '消防器材预警', value: data.notCorrectCount },
|
||
|
{ name: '证照预警', value: data.correctCount },
|
||
|
]
|
||
|
this.oilchartpieOption.series[0].data = this.oilchartpieOptionPieData1
|
||
|
this.myChart.setOption(this.oilchartpieOption);
|
||
|
this.myChart.off('legendselectchanged')
|
||
|
this.myChart.off('click')
|
||
|
this.myChart.on('legendselectchanged', (params) => {
|
||
|
this.myChart.setOption({
|
||
|
legend: { selected: { [params.name]: true } }
|
||
|
})
|
||
|
if (params.name == '预警事件') {
|
||
|
this.isgoback = true
|
||
|
this.refreshEchartsData2(this.echartsData)
|
||
|
this.validateForm.patchValue({
|
||
|
state: '0'
|
||
|
});
|
||
|
this.list = []
|
||
|
this.SkipCount = '0'
|
||
|
this.getViolateRecordList()
|
||
|
}
|
||
|
});
|
||
|
this.myChart.on('click', (params) => {
|
||
|
if (params.name == '预警事件') {
|
||
|
this.isgoback = true
|
||
|
this.refreshEchartsData2(this.echartsData)
|
||
|
this.validateForm.patchValue({
|
||
|
state: '0'
|
||
|
});
|
||
|
this.list = []
|
||
|
this.SkipCount = '0'
|
||
|
this.getViolateRecordList()
|
||
|
}
|
||
|
});
|
||
|
|
||
|
//柱状图
|
||
|
let monthArr = []
|
||
|
let valuedata = []
|
||
|
data.list.forEach(element => {
|
||
|
monthArr.push(moment(element.key).format('MM.DD'))
|
||
|
valuedata.push(element.totalCount)
|
||
|
});
|
||
|
this.oilchartbarOption.xAxis.data = monthArr
|
||
|
this.oilchartbarOption.series[0].data = valuedata
|
||
|
this.oilchartbarOption.series[1].data = valuedata
|
||
|
this.mybarChart.setOption(this.oilchartbarOption);
|
||
|
}
|
||
|
refreshEchartsData2(data) {
|
||
|
this.num = Number(data.proccessBeforeCount + data.proccessingCount + data.allProccessCount)
|
||
|
//饼图
|
||
|
this.oilchartpieOptionPieData2 = [
|
||
|
{ name: '事前准备', value: data.proccessBeforeCount },
|
||
|
{ name: '事中操作', value: data.proccessingCount },
|
||
|
{ name: '全程检测', value: data.allProccessCount }
|
||
|
]
|
||
|
this.oilchartpieOption2.series[0].data = this.oilchartpieOptionPieData2
|
||
|
this.myChart.setOption(this.oilchartpieOption2);
|
||
|
|
||
|
//柱状图
|
||
|
let monthArr = []
|
||
|
let valuedataBefore = []
|
||
|
let valuedataIng = []
|
||
|
let valuedataAll = []
|
||
|
data.list.forEach(element => {
|
||
|
monthArr.push(moment(element.key).format('MM.DD'))
|
||
|
valuedataBefore.push(element.proccessBeforeCount)
|
||
|
valuedataIng.push(element.proccessingCount)
|
||
|
valuedataAll.push(element.allProccessCount)
|
||
|
});
|
||
|
this.oilchartbarOption2.xAxis.data = monthArr
|
||
|
this.oilchartbarOption2.series[0].name = '事前准备'
|
||
|
this.oilchartbarOption2.series[0].data = valuedataBefore
|
||
|
this.oilchartbarOption2.series[1].name = '事中操作'
|
||
|
this.oilchartbarOption2.series[1].data = valuedataIng
|
||
|
this.oilchartbarOption2.series[2].name = '全程监测'
|
||
|
this.oilchartbarOption2.series[2].data = valuedataAll
|
||
|
this.mybarChart.setOption(this.oilchartbarOption2);
|
||
|
}
|
||
|
goback() {
|
||
|
this.isgoback = false
|
||
|
this.myChart.clear();
|
||
|
this.mybarChart.clear();
|
||
|
this.refreshEchartsData1(this.echartsData)
|
||
|
this.validateForm.patchValue({
|
||
|
state: null
|
||
|
});
|
||
|
this.list = []
|
||
|
this.SkipCount = '0'
|
||
|
this.getViolateRecordList()
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
defaultOrId: string
|
||
|
//获取所有组织机构
|
||
|
nodes: any = []
|
||
|
getAllOrganization() {
|
||
|
let OrganizationUnitId = sessionStorage.getItem('isGasStation') == 'true' ? JSON.parse(sessionStorage.getItem('userdataOfgasstation')).organization.id : JSON.parse(sessionStorage.getItem('userdata')).organization.id
|
||
|
let params = {
|
||
|
OrganizationUnitId: OrganizationUnitId,
|
||
|
IsContainsChildren: "true"
|
||
|
}
|
||
|
this.http.get('/api/services/app/Organization/GetAll', {
|
||
|
params: params
|
||
|
}).subscribe((data: any) => {
|
||
|
data.result.items.forEach(element => {
|
||
|
if (element.id == OrganizationUnitId) {
|
||
|
element.parentId = null
|
||
|
}
|
||
|
element.key = element.id
|
||
|
element.title = element.displayName
|
||
|
});
|
||
|
this.nodes = [...this.toTree.toTree(data.result.items)]
|
||
|
this.defaultOrId = JSON.parse(sessionStorage.getItem('userdata')).organization.id
|
||
|
this.validateForm.value.organization = JSON.parse(sessionStorage.getItem('userdata')).organization.id
|
||
|
this.validateForm.patchValue({
|
||
|
datePicker: [this.startdate, this.enddate]
|
||
|
});
|
||
|
this.list = []
|
||
|
this.SkipCount = '0'
|
||
|
this.getViolateRecordList()
|
||
|
})
|
||
|
}
|
||
|
//获取统计信息
|
||
|
chartsSpin: boolean = false
|
||
|
getAggregations() {
|
||
|
this.chartsSpin = true
|
||
|
let organizationUnitId
|
||
|
if (this.router.url.indexOf('petrolStation') != -1) {
|
||
|
organizationUnitId = JSON.parse(sessionStorage.getItem('userdataOfgasstation')).organization.id
|
||
|
} else {
|
||
|
organizationUnitId = JSON.parse(sessionStorage.getItem('userdata')).organization.id
|
||
|
}
|
||
|
let params: any = {
|
||
|
OrganizationUnitId: organizationUnitId,
|
||
|
IsContainsChildren: 'true'
|
||
|
}
|
||
|
this.http.get('/api/services/app/OilUnloadingProcess/GetAllCountByDays', { params: params }).subscribe((data: any) => {
|
||
|
console.log('统计信息', data)
|
||
|
this.chartsSpin = false
|
||
|
this.echartsData = data.result
|
||
|
this.refreshEchartsData1(this.echartsData)
|
||
|
// this.refreshBarLineData(this.echartsData)
|
||
|
})
|
||
|
}
|
||
|
|
||
|
//获得卸油记录列表
|
||
|
SkipCount: string = '0'
|
||
|
MaxResultCount: string = '50'
|
||
|
list: any = []
|
||
|
totalCount: string
|
||
|
tableSpin: boolean = false
|
||
|
getViolateRecordList() {
|
||
|
this.tableSpin = true
|
||
|
let organizationUnitId
|
||
|
if (this.router.url.indexOf('petrolStation') != -1) {
|
||
|
organizationUnitId = JSON.parse(sessionStorage.getItem('userdataOfgasstation')).organization.id
|
||
|
} else {
|
||
|
organizationUnitId = this.validateForm.value.organization
|
||
|
}
|
||
|
let IsCorrect = null
|
||
|
if (this.validateForm.value.state) {
|
||
|
this.validateForm.value.state == '0' ? IsCorrect = 'false' : IsCorrect = 'true'
|
||
|
}
|
||
|
let params = {
|
||
|
IsCorrect: IsCorrect,
|
||
|
StartTime: moment(this.validateForm.value.datePicker[0]).format('yyyy-MM-DD'),
|
||
|
EndTime: moment(this.validateForm.value.datePicker[1]).format('yyyy-MM-DD'),
|
||
|
IsContainsChildren: 'true',
|
||
|
OrganizationUnitId: organizationUnitId,
|
||
|
SkipCount: this.SkipCount,
|
||
|
MaxResultCount: this.MaxResultCount
|
||
|
}
|
||
|
this.http.get('/api/services/app/OilUnloadingProcess/GetAll', {
|
||
|
params: params
|
||
|
}).subscribe((data: any) => {
|
||
|
this.tableSpin = false
|
||
|
this.list = this.list.concat(data.result.items);
|
||
|
this.list = [...this.list]
|
||
|
this.totalCount = data.result.totalCount
|
||
|
console.log('获取卸油流程列表', data.result.items)
|
||
|
})
|
||
|
}
|
||
|
submitForm(): void {
|
||
|
for (const i in this.validateForm.controls) {
|
||
|
this.validateForm.controls[i].markAsDirty();
|
||
|
this.validateForm.controls[i].updateValueAndValidity();
|
||
|
}
|
||
|
|
||
|
this.list = []
|
||
|
this.SkipCount = '0'
|
||
|
this.getViolateRecordList()
|
||
|
}
|
||
|
resetForm(e: MouseEvent): void {
|
||
|
e.preventDefault();
|
||
|
this.validateForm.reset();
|
||
|
for (const key in this.validateForm.controls) {
|
||
|
this.validateForm.controls[key].markAsPristine();
|
||
|
this.validateForm.controls[key].updateValueAndValidity();
|
||
|
}
|
||
|
console.log(JSON.parse(sessionStorage.getItem('userdata')).organization.id)
|
||
|
// this.validateForm.value.organization = JSON.parse(sessionStorage.getItem('userdata')).organization.id
|
||
|
this.validateForm.patchValue({
|
||
|
organization: JSON.parse(sessionStorage.getItem('userdata')).organization.id,
|
||
|
datePicker: [this.startdate, this.enddate]
|
||
|
});
|
||
|
this.list = []
|
||
|
this.SkipCount = '0'
|
||
|
this.getViolateRecordList()
|
||
|
}
|
||
|
ngAfterViewInit(): void {
|
||
|
fromEvent(this.element.nativeElement.querySelector(`#tbody`) as HTMLCanvasElement, 'scroll').pipe(debounceTime(100)).subscribe((event: any) => { //监听 DOM 滚动事件
|
||
|
if (event.target.scrollHeight - (event.target.scrollTop + event.target.clientHeight) <= 10) {
|
||
|
if (this.totalCount > this.list.length) {
|
||
|
console.log('需要加载数据了', event)
|
||
|
this.SkipCount = String(Number(this.SkipCount) + 50)
|
||
|
this.getViolateRecordList()
|
||
|
}
|
||
|
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
look(item) {
|
||
|
const modal = this.modal.create({
|
||
|
nzContent: OilUnloadingProcessComponent,
|
||
|
nzViewContainerRef: this.viewContainerRef,
|
||
|
nzWidth: 1000,
|
||
|
nzBodyStyle: {
|
||
|
'border': '1px solid #6d9cc7',
|
||
|
'border-radius': '0px',
|
||
|
'padding': '0px',
|
||
|
'box-shadow': '0 0 8px 0 #fff',
|
||
|
'background': '#000D21',
|
||
|
},
|
||
|
nzComponentParams: {
|
||
|
data: item
|
||
|
},
|
||
|
nzFooter: null,
|
||
|
nzOnOk: async () => {
|
||
|
|
||
|
}
|
||
|
});
|
||
|
const instance = modal.getContentComponent();
|
||
|
|
||
|
}
|
||
|
goOilList() {
|
||
|
if (this.router.url.indexOf('petrolStation') != -1) {
|
||
|
this.router.navigate(['/records/petrolStation/oliunloadinglist'])
|
||
|
} else {
|
||
|
this.router.navigate(['/records/oliunloadinglist'])
|
||
|
}
|
||
|
|
||
|
}
|
||
|
gorecordList() {
|
||
|
if (this.router.url.indexOf('petrolStation') != -1) {
|
||
|
this.router.navigate(['/records/petrolStation'])
|
||
|
} else {
|
||
|
this.router.navigate(['/records'])
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|