Добрый день!
Идея такая - при добавлении записи применять страницу добавления (т.к. используется механизм подбора продукта), при редактировании полей количество, цена и т.д. выполнять в режиме редактирования реестра (это быстрее и нет надобности открывать новую страницу). Подскажите, пожалуйста, можно ли как то это реализовать. Спасибо.
Нравится
2 комментария
Лучший ответ
19 ноября 2018 15:41
На примере базовой детали:
define("ContactCareerDetailV2", ["ConfigurationGrid", "ConfigurationGridGenerator", "ConfigurationGridUtilities"], function() { return { attributes: { IsEditable: { dataValueType: Terrasoft.DataValueType.BOOLEAN, value: true } }, diff: /**SCHEMA_DIFF*/[ { name: "DataGrid", operation: "merge", values: { activeRowAction: {bindTo: "onActiveRowAction"}, activeRowActions: [ { className: "Terrasoft.Button", imageConfig: {bindTo: "Resources.Images.SaveIcon"}, markerValue: "save", style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT, tag: "save" }, { className: "Terrasoft.Button", imageConfig: {bindTo: "Resources.Images.CardIcon"}, markerValue: "card", style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT, tag: "card" }, { className: "Terrasoft.Button", imageConfig: {bindTo: "Resources.Images.CancelIcon"}, markerValue: "cancel", style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT, tag: "cancel" }, { className: "Terrasoft.Button", imageConfig: {bindTo: "Resources.Images.RemoveIcon"}, markerValue: "remove", style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT, tag: "remove" } ], changeRow: {bindTo: "changeRow"}, className: "Terrasoft.ConfigurationGrid", generateControlsConfig: {bindTo: "generateActiveRowControlsConfig"}, generator: "ConfigurationGridGenerator.generatePartial", initActiveRowKeyMap: {bindTo: "initActiveRowKeyMap"}, multiSelect: false, onGridClick: {bindTo: "onGridClick"}, unSelectRow: {bindTo: "unSelectRow"} } } ]/**SCHEMA_DIFF*/, methods: { getSwitchGridModeMenuItem: Terrasoft.emptyFn, onActiveRowAction: function(buttonTag, primaryColumnValue) { switch (buttonTag) { case "card": var row = this.getGridData().get(primaryColumnValue); this.saveRowChanges(row, function(p) { this.editRecord(row); }, this); break; case "remove": this.deleteRecords(); break; case "cancel": this.discardChanges(primaryColumnValue); break; case "save": this.onActiveRowSave(primaryColumnValue); break; } }, openCardByMode: function() { var cardState = this.get("CardState"); var editPageUId = this.get("EditPageUId"); var primaryValueUId = this.get("PrimaryValueUId"); //в любом случае открываем страницу редактирования записи детали this.openCard(cardState, editPageUId, primaryValueUId); //кусок базовой логики /*if (this.getIsEditable() && cardState !== enums.CardStateV2.EDIT) { this.addRow(editPageUId); } else { this.openCard(cardState, editPageUId, primaryValueUId); }*/ } }, mixins: { ConfigurationGridUtilites: "Terrasoft.ConfigurationGridUtilities" } }; });
19 ноября 2018 15:41
На примере базовой детали:
define("ContactCareerDetailV2", ["ConfigurationGrid", "ConfigurationGridGenerator", "ConfigurationGridUtilities"], function() { return { attributes: { IsEditable: { dataValueType: Terrasoft.DataValueType.BOOLEAN, value: true } }, diff: /**SCHEMA_DIFF*/[ { name: "DataGrid", operation: "merge", values: { activeRowAction: {bindTo: "onActiveRowAction"}, activeRowActions: [ { className: "Terrasoft.Button", imageConfig: {bindTo: "Resources.Images.SaveIcon"}, markerValue: "save", style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT, tag: "save" }, { className: "Terrasoft.Button", imageConfig: {bindTo: "Resources.Images.CardIcon"}, markerValue: "card", style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT, tag: "card" }, { className: "Terrasoft.Button", imageConfig: {bindTo: "Resources.Images.CancelIcon"}, markerValue: "cancel", style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT, tag: "cancel" }, { className: "Terrasoft.Button", imageConfig: {bindTo: "Resources.Images.RemoveIcon"}, markerValue: "remove", style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT, tag: "remove" } ], changeRow: {bindTo: "changeRow"}, className: "Terrasoft.ConfigurationGrid", generateControlsConfig: {bindTo: "generateActiveRowControlsConfig"}, generator: "ConfigurationGridGenerator.generatePartial", initActiveRowKeyMap: {bindTo: "initActiveRowKeyMap"}, multiSelect: false, onGridClick: {bindTo: "onGridClick"}, unSelectRow: {bindTo: "unSelectRow"} } } ]/**SCHEMA_DIFF*/, methods: { getSwitchGridModeMenuItem: Terrasoft.emptyFn, onActiveRowAction: function(buttonTag, primaryColumnValue) { switch (buttonTag) { case "card": var row = this.getGridData().get(primaryColumnValue); this.saveRowChanges(row, function(p) { this.editRecord(row); }, this); break; case "remove": this.deleteRecords(); break; case "cancel": this.discardChanges(primaryColumnValue); break; case "save": this.onActiveRowSave(primaryColumnValue); break; } }, openCardByMode: function() { var cardState = this.get("CardState"); var editPageUId = this.get("EditPageUId"); var primaryValueUId = this.get("PrimaryValueUId"); //в любом случае открываем страницу редактирования записи детали this.openCard(cardState, editPageUId, primaryValueUId); //кусок базовой логики /*if (this.getIsEditable() && cardState !== enums.CardStateV2.EDIT) { this.addRow(editPageUId); } else { this.openCard(cardState, editPageUId, primaryValueUId); }*/ } }, mixins: { ConfigurationGridUtilites: "Terrasoft.ConfigurationGridUtilities" } }; });
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать