Задание:
Имеется фронтенд на vue, по запросу сервер отправляет данные в json-формате, необходимо по таблице вида
Код:
|
(имя переменной;имя переменной родителя;приоритет сортировки;параметры оформления(vuetify);название на русском) |
, ранее загруженной при авторизации пользователя (формат хранения может быть любой), получить html для показа всех значений переменных.
Проблемы следующие:
1. названия переменных могут меняться, в таком случае, если в таблице нет подходящей строки с описанием нужной переменной, необходимо добавить переменную с ее названием (без перевода) с шаблоном от родителя в конец абзаца родителя.
2. между иерархией родитель-потомок может быть перечисление, например "поставщики.0.поставщик", что, впрочем, шаблоны менять не должно, разве что расширит сам список
3. количество переменных около 1000, соответственно около 1000 известных названий, необходимо разбить циклы по родителям, оптимизировать поиск
пример json:
Код:
|
{
"currentcontractstage" : "E",
"customer" : {
"regnum" : "03483001963",
"fullname" : "Муниципальное бюджетное общеобразовательное учреждение средняя общеобразовательная школа № 1 Щёлковского муниципального района Московской области",
"registrationdate" : "2000-03-17",
"inn" : "5050031980",
"kpp" : "505001001",
"okpo" : "51944582",
"customercode" : "35050031980505001001"
},
"documentbase" : " б/н",
"executionperiod" : {
"startdate" : "2015-01-01",
"stages" : {
"enddate" : "2015-12-31"
},
"enddate" : "2015-12-31"
},
"filename" : "contract_3505003198015000002_20451347.xml",
"finances" : {
"budgetfunds" : {
"budget" : {
"code" : "48030297",
"name" : "Щелковский муниципальный район Московской области"
},
"oktmo" : {
"code" : "46659101",
"name" : "Щёлково"
},
"budgetlevel" : "13",
"stages" : {
"enddate" : "2015-12-31",
"payments" : {
"kbk" : "00000000000000000223",
"paymentmonth" : "1",
"paymentyear" : "2015",
"paymentsum" : "25000.00",
"paymentsumrur" : "25000.00"
}
}
}
}
} |
пример того, что должно получиться (сама схема должна выглядеть несколько иначе - названия должны располагаться над списками потомков, и, конечно, быть в правильном оформлении и переведены в нормальные названия):
<tbody><tr><th>currentcontractstage</th><td>E</td></tr><tr><th>customer</th><td><table border="1"><tbody><tr><th>regnum</th><td>03483001963</td></tr><tr><th>fullname</th><td>Муниципальное бюджетное общеобразовательное учреждение средняя общеобразовательная школа № 1 Щёлковского муниципального района Московской области</td></tr><tr><th>registrationdate</th><td>2000-03-17</td></tr><tr><th>inn</th><td>5050031980</td></tr><tr><th>kpp</th><td>505001001</td></tr><tr><th>okpo</th><td>51944582</td></tr><tr><th>customercode</th><td>35050031980505001001</td></tr></tbody></table></td></tr><tr><th>documentbase</th><td> б/н</td></tr><tr><th>executionperiod</th><td><table border="1"><tbody><tr><th>startdate</th><td>2015-01-01</td></tr><tr><th>stages</th><td><table border="1"><tbody><tr><th>enddate</th><td>2015-12-31</td></tr></tbody></table></td></tr><tr><th>enddate</th><td>2015-12-31</td></tr></tbody></table></td></tr><tr><th>filename</th><td>contract_3505003198015000002_20451347.xml</td></tr><tr><th>finances</th><td><table border="1"><tbody><tr><th>budgetfunds</th><td><table border="1"><tbody><tr><th>budget</th><td><table border="1"><tbody><tr><th>code</th><td>48030297</td></tr><tr><th>name</th><td>Щелковский муниципальный район Московской области</td></tr></tbody></table></td></tr><tr><th>oktmo</th><td><table border="1"><tbody><tr><th>code</th><td>46659101</td></tr><tr><th>name</th><td>Щёлково</td></tr></tbody></table></td></tr><tr><th>budgetlevel</th><td>13</td></tr><tr><th>stages</th><td><table border="1"><tbody><tr><th>enddate</th><td>2015-12-31</td></tr><tr><th>payments</th><td><table border="1"><tbody><tr><th>kbk</th><td>00000000000000000223</td></tr><tr><th>paymentmonth</th><td>1</td></tr><tr><th>paymentyear</th><td>2015</td></tr><tr><th>paymentsum</th><td>25000.00</td></tr><tr><th>paymentsumrur</th><td>25000.00</td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody>
(скрин в аттаче)
Специалист, который делает нам фронтенд сказал, что так сделать вообще нельзя, тем не менее именно так нам сделать и нужно. Поэтому, если вы можете реализовать такую схему, просьба написать ЛС с указанием стоимости, к сожалению сколько стоит такое решение не знаю, поэтому написать нмцк сейчас не могу; просьба отнестись с пониманием.