Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.03.2018, 12:45
Новичок на форуме
Отправить личное сообщение для qzaki Посмотреть профиль Найти все сообщения от qzaki
 
Регистрация: 10.03.2018
Сообщений: 4

Нужен скрипт, заменяющий названия json-переменных по заданному шаблону
Задание:
Имеется фронтенд на 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>

(скрин в аттаче)

Специалист, который делает нам фронтенд сказал, что так сделать вообще нельзя, тем не менее именно так нам сделать и нужно. Поэтому, если вы можете реализовать такую схему, просьба написать ЛС с указанием стоимости, к сожалению сколько стоит такое решение не знаю, поэтому написать нмцк сейчас не могу; просьба отнестись с пониманием.
Изображения:
Тип файла: jpg html.jpg (13.8 Кб, 6 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 10.03.2018, 21:41
Новичок на форуме
Отправить личное сообщение для qzaki Посмотреть профиль Найти все сообщения от qzaki
 
Регистрация: 10.03.2018
Сообщений: 4

алгоритм в аттаче
Изображения:
Тип файла: jpg логика.jpg (11.3 Кб, 5 просмотров)
Тип файла: jpg макет.jpg (13.2 Кб, 4 просмотров)

Последний раз редактировалось qzaki, 10.03.2018 в 21:42. Причина: сжатие до таких размеров, серьезно?
Ответить с цитированием
  #3 (permalink)  
Старый 11.03.2018, 11:41
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 8,900

Сообщение от qzaki
алгоритм в аттаче
Там что-то можно увидеть? )
Ответить с цитированием
  #4 (permalink)  
Старый 12.03.2018, 05:48
Аспирант
Отправить личное сообщение для mshdn Посмотреть профиль Найти все сообщения от mshdn
 
Регистрация: 22.02.2011
Сообщений: 71

напишите на
mshdn@rambler.ru
Ответить с цитированием
  #5 (permalink)  
Старый 12.03.2018, 09:56
Новичок на форуме
Отправить личное сообщение для qzaki Посмотреть профиль Найти все сообщения от qzaki
 
Регистрация: 10.03.2018
Сообщений: 4

Сообщение от laimas Посмотреть сообщение
Там что-то можно увидеть? )
нельзя, откомментировал, как только создал; кину на почту, если интересно
Ответить с цитированием
  #6 (permalink)  
Старый 12.03.2018, 11:50
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 8,900

Сообщение от qzaki
кину на почту, если интересно
У меня и без этого много работы. А то что выставлено, а посмотреть нельзя, это плохо, для вас же.

Если данные, это дерево, и нужно визуализировать его, то сделать кончено можно. Трудности только с объектом, который выбран для визуализации - таблица. Но можно и с ней, нужно только выяснять вложенность и количество элементов на каждом уровне вложения, для каждой ветви дерева. Это для того, чтобы строить нужную структуру таблицы.
Ответить с цитированием
  #7 (permalink)  
Старый 13.03.2018, 10:05
Новичок на форуме
Отправить личное сообщение для qzaki Посмотреть профиль Найти все сообщения от qzaki
 
Регистрация: 10.03.2018
Сообщений: 4

вопрос закрыт
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен небольшой скрипт с обработкой JSON ske Работа 2 08.04.2013 10:22
Очень нужен скрипт для лёгкого интернет магазина samael Общие вопросы Javascript 3 26.06.2012 09:35
Нужен скрипт вывода времени публикации, аля контакт. SashaK Элементы интерфейса 5 07.04.2012 15:10