setFilter: указываем 1 запись после уст-ки фильтра

This commit is contained in:
Chika 2022-02-24 13:29:05 +03:00
parent 149e73fba8
commit aeadd98e7b
4 changed files with 28 additions and 15 deletions

View File

@ -328,7 +328,7 @@ const sections: ISection[] = [
{
elements: [
'selectTechnicalCard',
// 'selectFuelCard',
'selectFuelCard',
'selectInsNSIB',
'radioRequirementTelematic',
'selectTracker',

View File

@ -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) {

View File

@ -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: {

View File

@ -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;