Добрый день!
Есть деталь, которая строит и отображает поля с esq фильтрами и вычисляемыми полями на странице.
При изменении значений и нажатии на кнопку сохранить, визуально видно что значения сохранены, но если переоткрыть страницу эти значения не сохраняються.
Если ли какой то способ сохранить данные поля?
Есть 4 группы полей :
1. getPreviousValueItemConfig (Старое значение, itemType: this.Terrasoft.ViewItemType.MODEL_ITEM)
2. getValueItemConfig (Значение, itemType: this.Terrasoft.ViewItemType.MODEL_ITEM)
3. getDeltaItemConfig (Дельта, itemType: this.Terrasoft.ViewItemType.MODEL_ITEM)
4. getLabelItemConfig
Поля строятся на основе следующего кода :
...
methods: {
/**
* Return row view config with delta and previous value columns
*/
getDetailRowItemsWithVirtualColumnsViewConfig: function(item) {
const displayColumn = this.getValueType(item.$SpecificationType);
const rowViewConfig = [];
const column = this.findEntityColumn(displayColumn);
if (column) {
const columnName = column.name;
const dataValueType = column.dataValueType;
const containerItemConfig = {
itemType: this.Terrasoft.ViewItemType.GRID_LAYOUT,
name: columnName + "-grid-layout",
items: [
this.getValueItemConfig(columnName, dataValueType, displayColumn),
this.getPreviousValueItemConfig(columnName, dataValueType),
this.getDeltaItemConfig(columnName, dataValueType),
this.getLabelItemConfig(columnName)
],
// index: 0
};
rowViewConfig.push(containerItemConfig);
}
return rowViewConfig;
},
/**
* Returns value type.
* @public
* @return {String} Value type.
*/
getValueType: function(dataType) {
switch (dataType.value) {
case SpecificationBuilderConstants.SpecificationType.Lookup:
return "SpecificationListItem";
case SpecificationBuilderConstants.SpecificationType.Text:
return "TextValue";
case SpecificationBuilderConstants.SpecificationType.Float:
return "FloatValue";
case SpecificationBuilderConstants.SpecificationType.Integer:
return "IntegerValue";
case SpecificationBuilderConstants.SpecificationType.Boolean:
return "BooleanValue";
default:
return "";
}
},
/**
* Returns label config for row
* @param {String} columnName
* @returns {Object}
*/
getLabelItemConfig: function(columnName) {
const labelItemConfig = {
itemType: this.Terrasoft.ViewItemType.LABEL,
id: columnName + "-label-" + this.Terrasoft.generateGUID(),
name: columnName + "-label-" + this.Terrasoft.generateGUID(),
caption: {
bindTo: "Caption"
},
layout: {
row: 0,
column: 0,
colSpan: 6,
rowSpan: 1
}
};
if (columnName !== "BooleanValue") {
labelItemConfig.isRequired = {
"bindTo": "getControlRequired"
};
}
return labelItemConfig;
},
/**
* Returns previous value control config for row
* @param columnName
* @param dataValueType
* @returns {Object}
*/
getPreviousValueItemConfig: function(columnName, dataValueType) {
return {
itemType: this.Terrasoft.ViewItemType.MODEL_ITEM,
dataValueType: dataValueType,
id: columnName + "-previousValue-" + this.Terrasoft.generateGUID(),
name: columnName + "-previousValue-" + this.Terrasoft.generateGUID(),
caption: this.get("Resources.Strings.PreviousValueCaption"),
visible: {
bindTo: "ControlVisible",
bindConfig: {
converter: function() {
return this.getControlVisible(columnName);
}
}
},
layout: {
row: 0,
column: 6,
colSpan: 6,
rowSpan: 1
},
enabled: this.$CanChangeOppProductConditionSpecificationFieldsDetailAttr,
bindTo: "PreviousValue"
};
},
/**
* Returns value control config for row
* @param {String} columnName
* @param {Terrasoft.DataValueType} dataValueType
* @param {String} displayColumn
* @returns {Object}
*/
getValueItemConfig: function(columnName, dataValueType, displayColumn) {
const valueItemConfig = {
itemType: this.Terrasoft.ViewItemType.MODEL_ITEM,
dataValueType: dataValueType,
id: columnName + "-" + this.Terrasoft.generateGUID(),
name: columnName + "-" + this.Terrasoft.generateGUID(),
caption: this.get("Resources.Strings.ValueCaption"),
layout: {
row: 0,
column: 12,
colSpan: 6,
rowSpan: 1
},
bindTo: displayColumn,
enabled: {
bindTo: "isEditable"
}
};
if (dataValueType === Terrasoft.DataValueType.LOOKUP) {
valueItemConfig.contentType = Terrasoft.ContentType.ENUM;
}
return valueItemConfig;
},
/**
* Returns delta value control config for row
* @param columnName
* @param dataValueType
* @returns {Object}
*/
getDeltaItemConfig: function(columnName, dataValueType) {
return {
itemType: this.Terrasoft.ViewItemType.MODEL_ITEM,
dataValueType: dataValueType,
id: columnName + "-deltaValue-" + this.Terrasoft.generateGUID(),
name: columnName + "-deltaValue-" + this.Terrasoft.generateGUID(),
caption: this.get("Resources.Strings.DeltaValueCaption"),
visible: { "bindTo": "getIsDeltaVisible" },//isNumberValue,
layout: {
row: 0,
column: 18,
colSpan: 6,
rowSpan: 1
},
enabled: this.$CanChangeOppProductConditionSpecificationFieldsDetailAttr,
bindTo: "DeltaValue"
};
}
}
...