Вопрос

Деталь "Адрес доставки" в заказе

Друзья, подскажите, как правильно "прикрутить" эту деталь к какому-нибудь новому пользовательскому разделу?

Изображение удалено.

Нравится

2 комментария

Добрый вечер.

Реализацию можно посмотреть в схеме OrderPageV2, деталь «DeliveryAddressDetail». Не забудьте определить соответствующие методы, в особенности subscribeSandboxEvents, getDeliveryAddressVisible, onUpdateAddress.

Приведу пример как это реализовал я, вы можете подстроить реализацию под свои нужды, и расширить функциональность если нужно.

methods: {
			subscribeSandboxEvents: function() {
				this.callParent(arguments);
 
				this.sandbox.subscribe("GetIsDeliveryAddressDetailVisible", this.getDeliveryAddressVisible, this,
						[this.getDetailId("DeliveryAddressDetail")]);
				this.sandbox.subscribe("UpdateOrderAddress", this.onUpdateAddress, this,
					[this.getDetailId("DeliveryAddressDetail")]);
			},
			getDeliveryAddressVisible: function() {
				return true;
			},
			onUpdateAddress: function(config) {
				var detailIds = [
					this.getDetailId("DeliveryAddressDetail")
				];
				var position = detailIds.indexOf(config.senderId);
				detailIds.splice(position, 1);
				this.set("DeliveryAddress", config.deliveryAddress);
				this.sandbox.publish("SetActiveAddress", config.deliveryAddress, detailIds);
			}
 
}
details: {
			DeliveryAddressDetail: {
				schemaName: "AddressSelectionDetailV2",
				defaultValues: {
					"ContactId": {masterColumn: "Id"},
					"AccountId": {masterColumn: "AccountId"},
					"DeliveryAddress": {masterColumn: "UsrDeliveryAddress"}
				}
			}
}

Не забудьте задать деталь в diff, и про сообщения.

Деталь создавал в ContactPageV2, также создал замещающий объект контакт – добавил новое поле UsrDeliveryAddress.

VladKapitanchyk,

Спасибо большое за примеры!

Показать все комментарии