Добрый день!
Идея такая - при добавлении записи применять страницу добавления (т.к. используется механизм подбора продукта), при редактировании полей количество, цена и т.д. выполнять в режиме редактирования реестра (это быстрее и нет надобности открывать новую страницу). Подскажите, пожалуйста, можно ли как то это реализовать. Спасибо.
Нравится
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"
}
};
});
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать