ng2-charts Firebase 显示某些员工 ID 的预订
ng2-charts Firebase display bookings for certain staff ID
在我的应用程序中进行预订时,用户会选择他们想要的员工。我正在尝试在员工页面上显示一个图表,以显示他们在过去 7 天内的订单数量。
我正在使用 ng2-charts、firebase 中的数据和 angular2 应用程序。
目前数据库中只有 2 个预订。每个工作人员 1 个。
我现在的代码是这样的,但是我没有得到返回图表的结果,只是一个平线结果。
ngOnInit() {
this.af.list('/orders', {
query: {
orderByChild: 'createdAt',
limitToLast: 1
}
}).subscribe((res) => {
let lastOrder: any = res;
var lastDate: any = lastOrder[0].createdAt;
var x;
var dayDuration = 86400000;//milliseconds = 24 hours
x = 7;
lastDate -= 6 * dayDuration;
for (var i = 0; i < x; i++) {
this.barData.labels.push(this.datePipeEn.transform(lastDate, 'dd MMMM'));
lastDate += dayDuration;
}
this.af.list('/orders', {
query: {
orderByChild: 'staffId',
equalTo: this.staffId
}
}).subscribe((res) => {
this.orders = res;
this.order = res.length;
for (var i = 0; i <= this.barData.labels.length - 1; i++) {
var dayValue = 0;
for (var j = 0; j <= this.orders.length - 1; j++) {
var orderDate = this.datePipeEn.transform(this.orders[j].createdAt, 'dd MMMM');
if (orderDate === this.barData.labels[i]) {
dayValue += this.orders[j].grandTotal;
}
}
this.barData.datasets[0].data.push(this.order);
}
})
});
}
如果我删除函数中的第二个查询:
this.af.list('/orders', {
query: {
orderByChild: 'staffId',
equalTo: this.staffId
}
})
我在图表中得到了这个结果。
我想看到的是图表中生成日期的一个订单,而不是现在显示的所有订单的计数(没有第二次查询)。
所以我自己想出来了。
在构造函数中,我正在获取 staffId。它变得很好,并且正在通过以下方式拉出这样的 ID:
-Kr9q2Te04rlXWLyQ6PJ76F
我的问题是,我在数据库中存储了一个没有附加破折号的员工 ID,如下所示:
Kr9q2Te04rlXWLyQ6PJ76F
因此它在查询中不匹配。所以我所做的是使用字符串 slice() 函数删除破折号然后它起作用了!
let staffId = response.$key;
var str = staffId;
var res = str.slice(0, 1);
在我的应用程序中进行预订时,用户会选择他们想要的员工。我正在尝试在员工页面上显示一个图表,以显示他们在过去 7 天内的订单数量。
我正在使用 ng2-charts、firebase 中的数据和 angular2 应用程序。
目前数据库中只有 2 个预订。每个工作人员 1 个。
我现在的代码是这样的,但是我没有得到返回图表的结果,只是一个平线结果。
ngOnInit() {
this.af.list('/orders', {
query: {
orderByChild: 'createdAt',
limitToLast: 1
}
}).subscribe((res) => {
let lastOrder: any = res;
var lastDate: any = lastOrder[0].createdAt;
var x;
var dayDuration = 86400000;//milliseconds = 24 hours
x = 7;
lastDate -= 6 * dayDuration;
for (var i = 0; i < x; i++) {
this.barData.labels.push(this.datePipeEn.transform(lastDate, 'dd MMMM'));
lastDate += dayDuration;
}
this.af.list('/orders', {
query: {
orderByChild: 'staffId',
equalTo: this.staffId
}
}).subscribe((res) => {
this.orders = res;
this.order = res.length;
for (var i = 0; i <= this.barData.labels.length - 1; i++) {
var dayValue = 0;
for (var j = 0; j <= this.orders.length - 1; j++) {
var orderDate = this.datePipeEn.transform(this.orders[j].createdAt, 'dd MMMM');
if (orderDate === this.barData.labels[i]) {
dayValue += this.orders[j].grandTotal;
}
}
this.barData.datasets[0].data.push(this.order);
}
})
});
}
如果我删除函数中的第二个查询:
this.af.list('/orders', {
query: {
orderByChild: 'staffId',
equalTo: this.staffId
}
})
我在图表中得到了这个结果。
我想看到的是图表中生成日期的一个订单,而不是现在显示的所有订单的计数(没有第二次查询)。
所以我自己想出来了。
在构造函数中,我正在获取 staffId。它变得很好,并且正在通过以下方式拉出这样的 ID:
-Kr9q2Te04rlXWLyQ6PJ76F
我的问题是,我在数据库中存储了一个没有附加破折号的员工 ID,如下所示:
Kr9q2Te04rlXWLyQ6PJ76F
因此它在查询中不匹配。所以我所做的是使用字符串 slice() 函数删除破折号然后它起作用了!
let staffId = response.$key;
var str = staffId;
var res = str.slice(0, 1);