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:
-
s3d
Site3dОбъект 3D сцены
-
options
ObjectПараметры конфигуратора:
- 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
- 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
- getSaveItems
- getSaveData
- loadDataItems
- loadDataItemSettings
- loadDataSettings
- getItemsInfo
Properties
- templatesPath
- templates
- actionsPath
- texturesPath
- modelsPath
- history
- s3d
- options
- name
- path
- insertPlace
- connectModelName
- priceList
- priceList
- buildLogic
- buildLogic
- priceInfo
- priceInfo
- orderInfo
- orderInfo
- config
- data
- isMobile
- settings
- settingsUpdated
- actions
- isLoadCompleted
- isVisible
- isVisible
- isAnyItemOnChange
- panelControlsButtonClick
- panelControlsButtonClick
Methods
create
-
s3d
-
options
Метод создает объект конфигуратора
Parameters:
Returns:
Объект конфигуратора как результат промиса
treeForEach
-
parent
-
childAction
-
parentAction
-
level
Метод прохода по дереву коллекций
loadOptions
-
object
-
options
Метод загрузки параметров объекта
createTexture
-
options
Метод создания текстуры
Parameters:
-
options
ObjectПараметры
Returns:
Файл текстуры в base64
getServerData
-
filePath
-
data
-
format
Метод вызывает серверный скрипт и возвращает результат через промис
Parameters:
Returns:
Результат
checkDevice
()
Метод производит проверку типа устройства
start
-
options
Метод запуска конфигуратора
Parameters:
-
options
ObjectПараметры конфигуратора
init
()
async
Метод инициализации конфигуратора. Используйте перегреженную версию для переопределения базовых параметров:
- templatesPath - путь к HTML-шаблонам
- actionsPath - путь к иконкам действий
- texturesPath - путь к текстурам
getOrderItems
()
Метод возвращает родительский элемент дерева конфигуратора для отображения в заказе (для переопределения)
addBuildLogic
()
Метод формирования логики построения конфигуратора (для переопределения)
addOrderInfo
()
Метод формирования формы заказа конфигуратора (для переопределения)
addTemplates
()
Метод добавления описаний для загрузки HTML-шаблонов (для переопределения с целью добавления новых шаблонов в свойство templates)
beforeLoad
()
async
Метод запускается перед началом загрузки данных конфигуратора (для переопределения)
addPanels
()
async
Метод добавления панелей управления (для переопределения с целью добавления новых панелей в коллекцию panels)
loadDataCompleted
-
data
Метод запускается после завершения загрузки данных конфигуратора (для переопределения)
Parameters:
-
data
ObjectДанные конфигуратора
load
-
options
Метод загрузки параметров конфигуратора (используется для загрузки сохраненных ранее проектов)
Parameters:
-
options
ObjectПараметры конфигуратора
updateLoadScreenBackgroundColor
-
value
Метод обновляет цвет фона окна загрузки
Parameters:
-
value
StringЦвет фона в HEX формате с альфа каналом
addSettings
()
async
Метод добавления настроек конфигуратора (для переопределения)
addActions
()
async
Метод добавления действий для конфигуратора (для переопределения)
addItems
()
async
Метод добавления элементов конфигуратора (для переопределения)
addItem
-
model
-
options
Метод добавления элемента конфигуратора
Parameters:
-
model
Site3dModel3D модель элемента
-
options
ObjectПараметры элемента
Returns:
Новый элемент конфигуратора
loadItemsCompleted
()
async
Метод завершения загрузки частей конфигуратора (для переопределения)
autoStartSettingsCompleted
()
async
Метод завершения автозапуска настроек конфигуратора (для переопределения)
build
()
Метод сборки элементов конфигуратора (для переопределения)
loadCompleted
()
async
Метод завершения загрузки конфигуратора (для переопределения)
addTemplate
-
name
-
options
Метод загружает и добавляет содержимое шаблона в список templates
getTemplate
-
name
-
params
-
subName
Метод получения HTML-шаблона
Parameters:
Returns:
Содержимое шаблона
s
-
name
Метод получения значения настройки
Parameters:
-
name
StringИмя настройки
Returns:
Значение настройки
setSettings
()
Метод для массового изменения значений настроек конфигуратора
loadItems
-
promise
Метод регистрации результата добавления части конфигуратора (элемент или часть дерева элементов)
Parameters:
-
promise
PromiseПромис окончания загрузки части конфигуратора
Returns:
Промис
itemsForEach
-
childAction
-
parentAction
Метод прохода по дереву элементов конфигуратора. В функциях обработки в качестве аргументов передается сам элемент дерева и объект из элементов:
- index - идентификатор элемента
- parent - родительский элемент
- level - уровень вложенности
getItemIntersectByModels
-
models
-
options
Метод возвращает объект из элемента конфигуратора и его позиции, по которой кликнули мышкой
Parameters:
-
models
Site3dModel[]Модели, среди которых нужно выбирать нужный элемент
-
options
ObjectДополнительные параметры
Returns:
Результат
getItemIntersect
-
items
-
options
Метод возвращает объект из элемента конфигуратора и его позиции, по которой кликнули мышкой
Parameters:
-
items
Site3dConfiguratorItem[]Элементы конфигуратора, среди которых нужно выбирать нужный элемент
-
options
ObjectДополнительные параметры
Returns:
Результат
getItems
-
check
-
options
Метод возвращает список элементов конфигуратора по условию через функцию
Returns:
Список элементов конфигуратора
getItemsByType
-
type
-
options
Метод возвращает список элементов конфигуратора по типу
Returns:
Список элементов конфигуратора
getItemByIndex
-
index
-
options
Метод возвращает элемент конфигуратора по индексу
Returns:
Элемент конфигуратора
updatePriceInfo
-
value
-
options
Метод обновляет информацию о стоимости
calcPrice
()
Метод расчета строимости (для переопределения)
getFormatPrice
()
String
Метод возвращает форматированное значение стоимости
Returns:
Результат
updatePrice
()
Метод считает и показывает стоимость (для возможного переопределения)
updateOrderWindow
()
Метод создает окно заказа
updateOrderInfo
-
value
-
options
Метод обновляет информацию о заказе
startLoading
()
Метод показывает статус загрузки
setLoadingStatus
-
content
-
percent
Метод устанавливает статус загрузки
endLoading
()
Метод скрывает статус загрузки
startLock
()
Метод запускает блокировку интерфейса
endLock
()
Метод скрывает блокировку интерфейса
enableItems
()
Метод активирует элементы конфигуратора
disableItems
()
Метод деактивирует элементы конфигуратора
setItemsEnabledPrev
()
Метод устанавливает предыдущую активность элементов конфигуратора
deselectActions
()
Метод снимает выделения у всех действий конфигуратора
getActionPath
-
name
-
owner
Метод возвращает путь до действия с учетом вложенности групп
Parameters:
-
name
StringИмя действия
-
owner
Site3dConfigurator | Site3dConfiguratorItemКонфигуратор или его элемент
Returns:
Путь
findActionPickerData
-
check
Метод возвращает данные действия Site3dConfiguratorActionsPicker по условию
Parameters:
-
check
FunctionУсловие
Returns:
Результат
panel
-
name
Метод возвращает панель
Parameters:
-
name
StringНазвание панели
Returns:
Панель
showPanel
-
name
-
data
-
eventData
Метод показывает панель
togglePanel
-
name
Метод переключает видимость панели
Parameters:
-
name
StringНазвание панели
callEvent
-
name
-
data
Метод вызывает событие конфигуратора
event
-
name
-
call
Метод подписывает на события конфигуратора
getSaveItems
-
root
Метод возвращает элементы дерева конфигуратора для сохранения в json формате
Parameters:
-
root
ObjectКорневой элемент (по умолчанию все элементы)
getSaveData
()
Метод возвращает объект для сохранения конфигуратора в json формате
loadDataItems
-
items
-
loadItem
-
options
Метод загружает элементы конфигуратора из объекта в json формате
loadDataItemSettings
-
item
-
dataItemSettings
Метод загружает настройки конфигуратора или его элемента из объекта в json формате
Parameters:
-
item
Site3dConfigurator | Site3dConfiguratorItemКонфигуратор или его элемент
-
dataItemSettings
ObjectДанные настроек в json формате
loadDataSettings
-
settings
Метод загружает настройки конфигуратора из объекта в json формате
Parameters:
-
settings
ObjectДанные
Properties
insertPlace
Object
Свойство возвращает место содержимого конфигуратора ({domElement: HTMLElement, where: string})
connectModelName
String
Свойство возвращает имя модели в сцене, к которой присоединяются элементы конфигуратора
priceList
Unknown
Свойство устанавливает прайс-лист конфигуратора
buildLogic
Unknown
Свойство устанавливает логику построения конфигуратора
priceInfo
Unknown
Свойство устанавливает информацию о стоимости
orderInfo
Unknown
Свойство устанавливает логику построения конфигуратора
isVisible
Unknown
Свойство устанавливает видимость конфигуратора
isAnyItemOnChange
Boolean
Свойство возвращает истину, если какая-то настройка была запущена через интерфейс пользователя
panelControlsButtonClick
Function
Свойство возвращает событие клика для кнопки показа и скрытия главных панелей управления
panelControlsButtonClick
Unknown
Свойство устанавливает события клика для кнопки показа и скрытия главных панелей управления
Sub-properties:
-
click
FunctionОбработчик клика