Я пишу скрипт (user.js) для себя, для своей работы. Сначала сделал разное автозаполнение/ шаблоны, а сейчас хочу собирать данные и делать по ним отчет вида:
3 состав:
01.08 - 13шт
02.08 - 27
03.08 - 17
6 состав:
01.08 - 18
02.08 - 22
03.08 - 32
Я загружаю файлы на сайт, у каждого файла на сайте есть ID вида "23a326bd-180c-462a-94a7-d87561d0e88d" который я получаю из DOM .
Так же у каждого файла есть "состав" по каждому из которых и нужно сделать отчет.
третий обязательный параметр у файла - число/ дата
Сохранять я хочу все это дело в localStorage в виде объекта через JSON.stringify()
В идеале конечный результат - это возможность получить по каждому составу табличку, в которой по дням написано кол-во загруженных файлов. Написать ее я конечно смогу, а вот как найти данные правильно не понимаю
У меня получаются вот такие записи в localStorage:
key: sostav4
value:
{
"he0075cf-5b2e-42df-a2e0-950ed30146a8": { "date": "1.7", "a40": "А40-135540/2020\n" },
"9d0075cf-5b2e-42df-a2e0-950ed30146a8": { "date": "7.7", "a40": "А40-135540/2020\n" },
"72766e78-1f72-4814-a2c4-69941d4045c3": { "date": "8.8", "a40": "А40-135423/2020\n" },
"0c579c38-d494-4640-9199-595c9fba7868": { "date": "8.8", "a40": "А40-136106/2020\n" }
}
Соответственно тут по примеру должно быть
4 состав:
01.01 - 1
07.08 - 1
08.08 - 2
Вот часть скрипта что добавляет записи:
let checker = setInterval(() => {
let saveScanStat = document.querySelector("#b-container > div.b-popup-wrapper.js-popup-wrapper.js-popup-wrapper--upload > div.b-popup.b-popup--blue.b-popup--upload.js-popup--upload.b-popup--edit.js-popup--edit > form > div.b-popup-button.js-upload-submit")// кнопка по которой срабатывает скрипт
let q = document.querySelector("#chrono_list_content > div.b-chrono-items-container.js-chrono-items-container > div").childElementCount - 2 //Номер определения сверху дива (бывает разныей, зависит от кол-ва доков загруженных после определения)
let sostav = document.querySelector("#chrono_list_content > div.b-chrono-items-container.js-chrono-items-container > div > div:nth-child(" + q + ") > div.r-col > h2 > span > p:nth-child(1)").textContent.split(" ")[54]
let docId = document.querySelector("#b-container > div.b-popup-wrapper.js-popup-wrapper.js-popup-wrapper--upload > div.b-popup.b-popup--blue.b-popup--upload.js-popup--upload.b-popup--edit.js-popup--edit > form > input[type=hidden]:nth-child(4)").value
let a40 = document.querySelector("#b-case-header > ul.crumb.g-ec > li > span").textContent.split(" ")[20]
//Срабатывает прии НАЖАТИИ на "Сохранить"
saveScanStat.onclick = () => {
let now = new Date()
let dataForLS = JSON.parse(localStorage.getItem(`sostav${sostav}`))
dataForLS[docId] = {
date: `${now.getDate()}.${1 + now.getMonth()}`,
a40: `${a40}`
}
localStorage.setItem(`sostav${sostav}`, JSON.stringify(dataForLS))
alert(`Мы записали в ${sostav} состав ${docId} id и ${a40} номер дела `)
}
}, 500)
checker()
Вот собственно как искать по объекту с объектами или как-то переписать структуру хранения данных?
Мне немного стыдно за свой код, не ругайте пожалуйста, я самоучка, только видюшки и что-то в интернетах.