Как вывести данные из БД в таблицу на 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'а?


Ответы (0 шт):