diff --git a/packages/nc-gui/components/smartsheet/toolbar/ColumnFilter.vue b/packages/nc-gui/components/smartsheet/toolbar/ColumnFilter.vue index c2c4a4ed55..c7ff8c2650 100644 --- a/packages/nc-gui/components/smartsheet/toolbar/ColumnFilter.vue +++ b/packages/nc-gui/components/smartsheet/toolbar/ColumnFilter.vue @@ -421,6 +421,7 @@ const onLogicalOpUpdate = async (filter: Filter, index: number) => { dropdown-class-name="nc-dropdown-filter-logical-op-group" @click.stop @change="saveOrUpdate(filter, i)" + :disabled="(i > 1 && !isLogicalOpChangeAllowed)" >
diff --git a/packages/nc-gui/composables/useViewFilters.ts b/packages/nc-gui/composables/useViewFilters.ts index 6b6e401160..5f6562e77a 100644 --- a/packages/nc-gui/composables/useViewFilters.ts +++ b/packages/nc-gui/composables/useViewFilters.ts @@ -198,13 +198,15 @@ export function useViewFilters( } const placeholderFilter = (): Filter => { + const logicalOps = new Set(filters.value.slice(1).map((filter) => filter.logical_op)) + return { comparison_op: comparisonOpList(options.value?.[0].uidt as UITypes).filter((compOp) => isComparisonOpAllowed({ fk_column_id: options.value?.[0].id }, compOp), )?.[0].value as FilterType['comparison_op'], value: '', status: 'create', - logical_op: 'and', + logical_op: logicalOps.size === 1 ? logicalOps.values().next().value :'and' , } }