setFilter: указываем 1 запись после уст-ки фильтра
This commit is contained in:
parent
149e73fba8
commit
aeadd98e7b
@ -328,7 +328,7 @@ const sections: ISection[] = [
|
||||
{
|
||||
elements: [
|
||||
'selectTechnicalCard',
|
||||
// 'selectFuelCard',
|
||||
'selectFuelCard',
|
||||
'selectInsNSIB',
|
||||
'radioRequirementTelematic',
|
||||
'selectTracker',
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import { getValueName } from 'client/Containers/Calculation/Elements/tools';
|
||||
import initialFilters, {
|
||||
noResetValueElements
|
||||
autoSetValuesElements,
|
||||
noResetValueElements,
|
||||
} from 'client/stores/CalculationStore/config/initialFilters';
|
||||
import initialStatuses from 'client/stores/CalculationStore/config/initialStatuses';
|
||||
import { isNil, mergeWith, pick } from 'lodash';
|
||||
@ -112,13 +113,23 @@ const valuesActions = {
|
||||
setFilter(elementName, filter) {
|
||||
const valueName = getValueName(elementName);
|
||||
const value = this.getValue(valueName);
|
||||
|
||||
const filteredOptions = filter && filter(this.getOptions(elementName));
|
||||
// После установки фильтра проверяем, что значение есть в отфильтрованном списке, иначе сбрасываем значение
|
||||
if (
|
||||
filter &&
|
||||
!filter(this.getOptions(elementName)).some(x => x.value === value) &&
|
||||
!filteredOptions?.some(x => x.value === value) &&
|
||||
!noResetValueElements.includes(elementName)
|
||||
) {
|
||||
this.setValue(valueName, null);
|
||||
}
|
||||
|
||||
// После установки фильтра если остается одна запись указываем ее в значение
|
||||
if (
|
||||
autoSetValuesElements.includes(elementName) &&
|
||||
filteredOptions?.length === 1
|
||||
) {
|
||||
this.setValue(valueName, filteredOptions[0].value);
|
||||
}
|
||||
this.filters[elementName] = filter;
|
||||
},
|
||||
// applyFilters(filters) {
|
||||
|
||||
@ -492,17 +492,6 @@ const reactionEffects: IReactionEffect[] = [
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
if (!calculationProcess.hasProcess(Process.LoadKp)) {
|
||||
const elementOptions = calculationStore.getOptions(
|
||||
elementName,
|
||||
undefined,
|
||||
true,
|
||||
);
|
||||
//TODO: удалить после рефактора CalculationStore
|
||||
if (elementOptions?.length === 1)
|
||||
calculationStore.setValue(valueName, elementOptions[0].value);
|
||||
}
|
||||
});
|
||||
},
|
||||
options: {
|
||||
|
||||
@ -4,5 +4,18 @@ import { TElementFilter } from 'core/types/Calculation/Store/filters';
|
||||
const initialFilters: Partial<Record<ElementsNames, TElementFilter>> = {};
|
||||
|
||||
export const noResetValueElements: ElementsNames[] = ['selectTechnicalCard'];
|
||||
export const autoSetValuesElements: ElementsNames[] = [
|
||||
'selectProduct',
|
||||
'selectLeaseObjectType',
|
||||
'selectBrand',
|
||||
'selectModel',
|
||||
'selectConfiguration',
|
||||
'selectTracker',
|
||||
'selectTelematic',
|
||||
'selectTechnicalCard',
|
||||
'selectFuelCard',
|
||||
'selectRegistration',
|
||||
'selectTownRegistration',
|
||||
];
|
||||
|
||||
export default initialFilters;
|
||||
|
||||
Reference in New Issue
Block a user