Site3dConfigurator Class
Класс конфигуратора
Основная логика инициализации:
- Добавляем настройки и инициализируем их значениями по-умолчанию, а затем значениями из файла конфигуратора
- Создаем элементы (модели)
- Применяем все автозапускаемые настройки конфигуратора и его элементов (по-умолчанию все настройки автозапускаемые)
Основные понятия:
- Настройки - параметры конфигуратора или его элементов, которые можно сохранить
- Действия - инструменты управления состоянием конфигуратора или его элементов
- Панели - области интерфейса, которые могут содержать в себе настройки, действия или произвольное содержимое
- Панели управления - панели, которые содержат в себе настройки и действия
- Окна - панели с произвольным содержимым
Как устроены панели:
- Корневой HTML-элемент панели имеет свой идентификатор и к нему автоматически добавляется класс site3dConfiguratorPanel
- По-умолчанию доступны панель управления конфигуратором (site3dConfiguratorPanelControlsMain) и его элементами (site3dConfiguratorPanelControlsItem)
- Содержимое панели помещается в HTML-элемент с классом site3dConfiguratorPanelContent
- Внутри корневого HTML-элемента может быть HTML-элемент с классом site3dConfiguratorPanelCloseButton (при клике для корневого HTML-элемента будет добавлятся и удалятся класс site3dConfiguratorPanel_show)
Как устроены настройки и действия:
- Всегда объединяются в группы (по-умолчанию есть группа с идентификатором main)
- Идентификатор группы задается в атрибуте data-group
- Есть возможность отдельно выводить кнопки, которые показывают настройки или действия определенной группы
- Группы настроек и действий можно перемешивать друг с другом (при этом становятся недоступны отдельные кнопки переключения между группами)
Описание шаблонов:
- Все шаблоны находятся в папке templates и разбиты по папкам:
- main - главный шаблон конфигуратора
- panelControlsCaption - содержимое заголовков панелей управления настройками и действиями
- panelControlsContent - содержимое панелей управления настройками и действиями
- settingsContent - содержимое настроек
- settingsGroupsButton - кнопки показа и скрытия группы настроек
- settingsGroup - группы настроек
- settingsItem - элемент настроек
- actionsSimple - действия при клике
- actionsPicker - наборы действий в виде списка для переноса объектов на сцену
- actionsPickerItem - элементы наборов действий
- mixContent - смешанное содержимое панелей управления из настроек и действий
Constructor
Site3dConfigurator
-
s3d -
options
Parameters:
-
s3dSite3dОбъект 3D сцены
-
optionsObjectПараметры конфигуратора:
- name - Название конфигуратора
- path - Путь до файлов конфигуратора
- insertPlace - место содержимого конфигуратора (по умолчанию перед канвасом)
- connectModelName - имя модели в сцене, к которой будет привязан конфигуратор
- data - данные в формате json (путь к файлу или объект)
- dataMobile - данные в формате json (путь к файлу или объект) для мобильных устройств
- priceList - прайс-лист в формате json (путь к файлу или объект)
- buildLogic - логика построения
- orderInfo - логика формы заказа
- load - обработчик завершения загрузки конфигуратора
Item Index
Methods
- create static
- treeForEach static
- loadOptions static
- createTexture
- getServerData
- checkDevice
- start
- init
- getOrderItems
- addBuildLogic
- addOrderInfo
- addTemplates
- beforeLoad
- addPanels
- loadDataCompleted
- load
- updateLoadScreenBackgroundColor
- updateShowPanelControlsButton
- addSettings
- addActions
- addItems
- addItem
- loadItemsCompleted
- autoStartSettingsCompleted
- build
- loadCompleted
- addTemplate
- getTemplate
- s
- setSettings
- loadItems
- itemsForEach
- getItemIntersectByModels
- getItemIntersect
- getItems
- getItemsByType
- getItemByIndex
- updatePriceInfo
- calcPrice
- getFormatPrice
- updatePrice
- updateOrderWindow
- updateOrderInfo
- startLoading
- setLoadingStatus
- endLoading
- startLock
- endLock
- enableItems
- disableItems
- setItemsEnabledPrev
- deselectActions
- getActionPath
- findActionPickerData
- panel
- showPanel
- hide
- togglePanel
- callEvent
- event
- removeEvent
- getSaveItems
- getSaveData
- loadDataItems
- loadDataItemSettings
- loadDataSettings
- getItemsInfo
Properties
- templatesPath
- actionsPath
- texturesPath
- modelsPath
- s3d
- options
- name
- path
- insertPlace
- connectModelName
- priceList
- priceList
- buildLogic
- buildLogic
- priceInfo
- priceInfo
- orderInfo
- orderInfo
- config
- data
- isMobile
- settings
- settingsUpdated
- actions
- items
- model
- panels
- panelControlsButton
- history
- container
- isLoadingData
- isLoadDataCompleted
- isVisible
- isVisible
- isAnyItemOnChange
- panelControlsButtonClick
- panelControlsButtonClick
Methods
create
-
s3d -
options
Метод создает объект конфигуратора
Parameters:
-
s3dSite3dОбъект 3D сцены
-
optionsObjectПараметры конфигуратора (смотрите описание конструктора конфигуратора)
Returns:
Объект конфигуратора как результат промиса
treeForEach
-
parent -
childAction -
parentAction -
level
Метод прохода по дереву коллекций
Parameters:
-
parentMapДерево коллекций
-
childActionFunctionФункция для обработки дочерних элементов
-
parentActionFunctionФункция для обработки родительских элементов
-
levelNumberСтартовый уровень вложенности
loadOptions
-
object -
options
Метод загрузки параметров объекта
Parameters:
-
objectObjectОбъект
-
optionsObjectПараметры
createTexture
-
options
Метод создания текстуры
Parameters:
-
optionsObjectПараметры
Returns:
Файл текстуры в base64
getServerData
-
filePath -
data -
format
Метод вызывает серверный скрипт и возвращает результат через промис
Parameters:
-
filePathStringПуть до файла скрипта с расширением
-
dataObjectОтправляемые на сервер данные (по-умолчанию null)
-
formatStringФормат возвращаемого результата (по-умолчанию json)
Returns:
Результат
checkDevice
()
Метод производит проверку типа устройства
start
-
options
Метод запуска конфигуратора
Parameters:
-
optionsObjectПараметры конфигуратора
init
()
async
Метод инициализации конфигуратора. Используйте перегреженную версию для переопределения базовых параметров:
- templatesPath - путь к HTML-шаблонам
- actionsPath - путь к иконкам действий
- texturesPath - путь к текстурам
getOrderItems
()
Метод возвращает родительский элемент дерева конфигуратора для отображения в заказе (для переопределения)
addBuildLogic
()
Метод формирования логики построения конфигуратора (для переопределения)
addOrderInfo
()
Метод формирования формы заказа конфигуратора (для переопределения)
addTemplates
()
Метод добавления описаний для загрузки HTML-шаблонов (для переопределения с целью добавления новых шаблонов в свойство templates)
beforeLoad
()
async
Метод запускается перед началом загрузки данных конфигуратора (для переопределения)
addPanels
()
async
Метод добавления панелей управления (для переопределения с целью добавления новых панелей в коллекцию panels)
loadDataCompleted
-
data
Метод запускается после завершения загрузки данных конфигуратора (для переопределения)
Parameters:
-
dataObjectДанные конфигуратора
load
-
options
Метод загрузки параметров конфигуратора (используется для загрузки сохраненных ранее проектов)
Parameters:
-
optionsObjectПараметры конфигуратора
updateLoadScreenBackgroundColor
-
value
Метод обновляет цвет фона окна загрузки
Parameters:
-
valueStringЦвет фона в HEX формате с альфа каналом
updateShowPanelControlsButton
-
value
Метод обновляет показ кнопки вызова панелей управления
Parameters:
-
valueBooleanИстина, если кнопка активна
addSettings
()
async
Метод добавления настроек конфигуратора (для переопределения)
addActions
()
async
Метод добавления действий для конфигуратора (для переопределения)
addItems
()
async
Метод добавления элементов конфигуратора (для переопределения)
addItem
-
model -
options
Метод добавления элемента конфигуратора
Parameters:
-
modelSite3dModel3D модель элемента
-
optionsObjectПараметры элемента
Returns:
Новый элемент конфигуратора
loadItemsCompleted
()
async
Метод завершения загрузки частей конфигуратора (для переопределения)
autoStartSettingsCompleted
()
async
Метод завершения автозапуска настроек конфигуратора (для переопределения)
build
()
Метод сборки элементов конфигуратора (для переопределения)
loadCompleted
()
async
Метод завершения загрузки конфигуратора (для переопределения)
addTemplate
-
name -
options
Метод загружает и добавляет содержимое шаблона в список templates
Parameters:
-
nameStringИмя шаблона
-
optionsObjectПараметры шаблона
getTemplate
-
name -
params -
subName
Метод получения HTML-шаблона
Parameters:
-
nameStringИмя шаблона
-
paramsStringМассив значений, подставляемых в шаблон
-
subNameStringПостфикс в названии шаблона
Returns:
Содержимое шаблона
s
-
name
Метод получения значения настройки
Parameters:
-
nameStringИмя настройки
Returns:
Значение настройки
setSettings
()
Метод для массового изменения значений настроек конфигуратора
loadItems
-
promise
Метод регистрации результата добавления части конфигуратора (элемент или часть дерева элементов)
Parameters:
-
promisePromiseПромис окончания загрузки части конфигуратора
Returns:
Промис
itemsForEach
-
childAction -
parentAction
Метод прохода по дереву элементов конфигуратора. В функциях обработки в качестве аргументов передается сам элемент дерева и объект из элементов:
- index - идентификатор элемента
- parent - родительский элемент
- level - уровень вложенности
Parameters:
-
childActionFunctionФункция для обработки элементов конфигуратора
-
parentActionFunctionФункция для обработки родительских элементов дерева конфигуратора
getItemIntersectByModels
-
models -
options
Метод возвращает объект из элемента конфигуратора и его позиции, по которой кликнули мышкой
Parameters:
-
modelsSite3dModel[]Модели, среди которых нужно выбирать нужный элемент
-
optionsObjectДополнительные параметры
Returns:
Результат
getItemIntersect
-
items -
options
Метод возвращает объект из элемента конфигуратора и его позиции, по которой кликнули мышкой
Parameters:
-
itemsSite3dConfiguratorItem[]Элементы конфигуратора, среди которых нужно выбирать нужный элемент
-
optionsObjectДополнительные параметры
Returns:
Результат
getItems
-
check -
options
Метод возвращает список элементов конфигуратора по условию через функцию
Parameters:
-
checkFunctionФункция обработки условий
-
optionsObjectДополнительные параметры
Returns:
Список элементов конфигуратора
getItemsByType
-
type -
options
Метод возвращает список элементов конфигуратора по типу
Parameters:
-
typeStringТип элемента конфигуратора
-
optionsObjectПараметры
Returns:
Список элементов конфигуратора
getItemByIndex
-
index -
options
Метод возвращает элемент конфигуратора по индексу
Parameters:
-
indexStringИндекс элемента конфигуратора
-
optionsObjectДополнительные параметры
Returns:
Элемент конфигуратора
updatePriceInfo
-
value -
options
Метод обновляет информацию о стоимости
Parameters:
-
valueObjectЗначение
-
optionsObjectДополнительные параметры
calcPrice
()
Метод расчета строимости (для переопределения)
getFormatPrice
()
String
Метод возвращает форматированное значение стоимости
Returns:
Результат
updatePrice
()
Метод считает и показывает стоимость (для возможного переопределения)
updateOrderWindow
()
Метод создает окно заказа
updateOrderInfo
-
value -
options
Метод обновляет информацию о заказе
Parameters:
-
valueObjectЗначение
-
optionsObjectДополнительные параметры
startLoading
()
Метод показывает статус загрузки
setLoadingStatus
-
content -
percent
Метод устанавливает статус загрузки
Parameters:
-
contentStringСтатус загрузки
-
percentNumberПроцент загрузки
endLoading
()
Метод скрывает статус загрузки
startLock
()
Метод запускает блокировку интерфейса
endLock
()
Метод скрывает блокировку интерфейса
enableItems
()
Метод активирует элементы конфигуратора
disableItems
()
Метод деактивирует элементы конфигуратора
setItemsEnabledPrev
()
Метод устанавливает предыдущую активность элементов конфигуратора
deselectActions
()
Метод снимает выделения у всех действий конфигуратора
getActionPath
-
name -
owner
Метод возвращает путь до действия с учетом вложенности групп
Parameters:
-
nameStringИмя действия
-
ownerSite3dConfigurator | Site3dConfiguratorItemКонфигуратор или его элемент
Returns:
Путь
findActionPickerData
-
check
Метод возвращает данные действия Site3dConfiguratorActionsPicker по условию
Parameters:
-
checkFunctionУсловие
Returns:
Результат
panel
-
name
Метод возвращает панель
Parameters:
-
nameStringНазвание панели
Returns:
Панель
showPanel
-
name -
data -
eventData
Метод показывает панель
Parameters:
-
nameStringНазвание панели
-
dataObjectДанные для наполнения панели
-
eventDataObjectДанные для передачи в событие показа панели
hide
-
name
Метод скрывает панель
Parameters:
-
nameStringНазвание панели
togglePanel
-
name
Метод переключает видимость панели
Parameters:
-
nameStringНазвание панели
callEvent
-
name -
data
Метод вызывает событие конфигуратора
Parameters:
-
nameStringИмя событие
-
dataObjectДанные для передачи в событие
event
-
name -
call
Метод подписывает на события конфигуратора
Parameters:
-
nameStringИмя события
-
callFunctionФункция обработки события
removeEvent
-
name -
call
Метод удаляет подписку на событие конфигуратора
Parameters:
-
nameStringИмя события
-
callFunctionФункция обработки события
getSaveItems
-
root
Метод возвращает элементы дерева конфигуратора для сохранения в json формате
Parameters:
-
rootObjectКорневой элемент (по умолчанию все элементы)
getSaveData
()
Метод возвращает объект для сохранения конфигуратора в json формате
loadDataItems
-
items -
loadItem -
options
Метод загружает элементы конфигуратора из объекта в json формате
Parameters:
-
itemsObjectДанные
-
loadItemFunctionОбработчик загрузки элементов конфигуратора
-
optionsObjectДополнительные параметры
loadDataItemSettings
-
item -
dataItemSettings
Метод загружает настройки конфигуратора или его элемента из объекта в json формате
Parameters:
-
itemSite3dConfigurator | Site3dConfiguratorItemКонфигуратор или его элемент
-
dataItemSettingsObjectДанные настроек в json формате
loadDataSettings
-
settings
Метод загружает настройки конфигуратора из объекта в json формате
Parameters:
-
settingsObjectДанные
getItemsInfo
-
childAction -
parentAction
Метод возвращает информацию об элементах дерева конфигуратора:
Parameters:
-
childActionFunctionФункция для обработки элемента конфигуратора
-
parentActionFunctionФункция для обработки родительских элементов дерева конфигуратора
Properties
templatesPath
String
Путь к HTML-шаблонам
actionsPath
String
Путь к иконкам действий
texturesPath
String
Путь к текстурам
modelsPath
String
Путь к моделям
options
Object
Свойство возвращает параметры конфигуратора
name
String
Свойство возвращает название конфигуратора
path
String
Свойство возвращает путь до файлов конфигуратора
insertPlace
Object
Свойство возвращает место содержимого конфигуратора ({domElement: HTMLElement, where: string})
connectModelName
String
Свойство возвращает имя модели в сцене, к которой присоединяются элементы конфигуратора
priceList
Object
Свойство возвращает прайс-лист конфигуратора
priceList
Unknown
Свойство устанавливает прайс-лист конфигуратора
buildLogic
Object
Свойство возвращает логику построения конфигуратора
buildLogic
Unknown
Свойство устанавливает логику построения конфигуратора
priceInfo
Object
Свойство возвращает информацию о стоимости
priceInfo
Unknown
Свойство устанавливает информацию о стоимости
orderInfo
Object
Свойство возвращает информацию для формы заказа конфигуратора
orderInfo
Unknown
Свойство устанавливает логику построения конфигуратора
config
Object
Свойство возвращает конфигурационные данные конфигуратора
data
Object
Свойство возвращает данные конфигуратора
isMobile
Boolean
Свойство возвращает истину, если конфигуратор запущен на мобильном устройстве
settingsUpdated
Map
Свойство возвращает обновленные настройки во время обновления конфигуратора
items
MapСвойство возвращает элементы конфигуратора
panels
MapСвойство возвращает панели конфигуратора
panelControlsButton
HTMLElement
Свойство возвращает кнопку вызова панели управления конфигуратором
container
HTMLElement
Контейнер конфигуратора
isLoadingData
Boolean
Свойство возвращает истину, если конфигуратор загружается
isLoadDataCompleted
Boolean
Свойство возвращает истину, если конфигуратор загружен
isVisible
Boolean
Свойство возвращает видимость конфигуратора
isVisible
Unknown
Свойство устанавливает видимость конфигуратора
Sub-properties:
-
valueBooleanАктивность
isAnyItemOnChange
Boolean
Свойство возвращает истину, если какая-то настройка была запущена через интерфейс пользователя
panelControlsButtonClick
Function
Свойство возвращает событие клика для кнопки показа и скрытия главных панелей управления
panelControlsButtonClick
Unknown
Свойство устанавливает события клика для кнопки показа и скрытия главных панелей управления
Sub-properties:
-
clickFunctionОбработчик клика
