Как вывести данные из БД в таблицу на webix
Имеем БД с 2 не связанными таблицами. Через rest получаем данные с сервера, первый запрос:
[{…}]
0:
control_center: "11111"
date: "2020-11-19 00:00:00"
list: "6"
staffing_percentage: "86"
state: "7"
uuid: "37a93636-9bbe-4643-a73e-996d09d2c4d9"
__proto__: Object
length: 1
__proto__: Array(0)
Второй запрос:
[{…}]
0:
admission_order_date: "2020-11-23 00:00:00"
admission_order_number: "48"
comment: "Перерыв в заступлении на оперативное дежурство более 60 суток"
control_center: "11111"
date: "2020-11-19T00:00:00"
duty_shift: Array(1)
0: {…}
length: 1
__proto__: Array(0)
fasting: "2"
result: "не доп."
tour: "4"
uuid: "14d9a75c-bab7-466e-9cc3-1d09483a4549"
uuid_duty_shift: "53bc68e7-ecb8-4e4e-aa73-9e0b26ed733f"
uuid_zastupil: null
zastupil: null
zastupil_result: null
На выходе должны быть данные на определённую дату (выбирается из поля view: "datepicker")
dateField() {
const self = this
return [
{
id: "dateStable",
view: "datepicker",
value: new Date(),
width: 300,
format: format,
on: {
"onChange": function (newv, oldv) {
let stableStaffing = {},
stableJournal = {}
// Строим ссылку
self.urlStaffingOutput.whereAnd("date", "=", format_SQL(newv))
const url = self.urlStaffingOutput.requestURL,
dataStaffing = self.restStaffingOutput.findAsync("date", url)
if (dataStaffing) {
for (const [key, value] of Object.entries(dataStaffing)) {
const obj = value
for (const valueKey in value) {
stableStaffing[valueKey] = obj[valueKey]
}
}
}
self.urlSelect.whereAnd("date", "=", format_SQL(newv))
const urlSelect = self.urlSelect.requestURL,
dataSelect = self.restSelect.findAsync("date", urlSelect)
if (dataSelect) {
for (const [key, value] of Object.entries(dataSelect)) {
for (const valueKey in value) {
stableJournal[valueKey] = obj[valueKey]
}
}
}
const newObj = {...stableJournal, ...stableStaffing}
return newObj
}
},
},
{},
]
}
То есть получается, что при выборе даты идёт выборка данных по филиалам за: данный день, прошедщую неделю, месяц и год (календарные).
В методе dateField() не учитываются филиалы, то есть, при объединении объектов они сливаются и выцепить цифры по филиалам не получается, например,
Первый запрос
Array(4)
0: {uuid: "fb420111-8b12-45b8-a105-ba11c6397e68", date: "2020-11-21 00:00:00", control_center: "11111", state: "3", list: "3", …}
1: {uuid: "941947a4-0e72-4298-bb02-074a29dfe151", date: "2020-11-21 00:00:00", control_center: "12345", state: "6", list: "4", …}
2: {uuid: "c38db012-56b0-42a6-bbae-bd3862180027", date: "2020-11-21 00:00:00", control_center: "99999", state: "6", list: "2", …}
3: {uuid: "868594fa-09ea-4533-9ddc-a0d3330cc46a", date: "2020-11-21 00:00:00", control_center: "55555", state: "6", list: "5", …}
length: 4
Второй запрос (control_center также присутствует, скрыт за ...)
Array(6)
0: {uuid: "2187be26-5d39-43fa-8d7e-d582bcbf0a66", date: "2020-11-21T00:00:00", result: "доп.", fasting: "1", tour: "4", …}
1: {uuid: "2912002f-5f2d-4fa1-b378-be5939c5ab2c", date: "2020-11-21T00:00:00", result: "доп.", fasting: "2", tour: "4", …}
2: {uuid: "2fd1fef2-a5af-465e-81ab-3886a3ee3256", date: "2020-11-21T00:00:00", result: "не доп.", fasting: "3", tour: "4", …}
3: {uuid: "ca427734-5e7a-4c36-b104-adf947c66b60", date: "2020-11-21T00:00:00", result: "доп.", fasting: "4", tour: "4", …}
4: {uuid: "dd6a76a3-fc49-4158-a1a1-8670aadd9c87", date: "2020-11-21T00:00:00", result: "доп.", fasting: "5", tour: "4", …}
5: {uuid: "fa97c522-3208-4c54-ae85-48cf64696a84", date: "2020-11-21T00:00:00", result: "доп.", fasting: "6", tour: "4", …}
Вопрос в том, как мне выцепить нужные мне значения свойств, для осществления расчёта и помещения их в таблицу webix'а?