/home/edulekha/crm.edulekha.com/resources/js/components/filters/AppFiltersNumberRule.vue
<template>
  <div v-if="isBetweenOperator">
    <div class="row row-no-gutters">
      <div class="col-md-6">
        <input type="number" class="form-control" v-model="localValue[0]" />
      </div>
      <div class="col-md-6">
        <input
          type="number"
          class="form-control tw-ml-1"
          v-model="localValue[1]"
        />
      </div>
    </div>
  </div>
  <input v-else type="number" class="form-control" v-model="localValue" />
</template>
<script setup>
import { ref, computed, watch } from "vue";

const props = defineProps({ rule: { type: Object, required: true } });
const emit = defineEmits(["update-rule-value"]);

const localValue = ref(props.rule.value);

const isBetweenOperator = computed(
  () =>
    props.rule.operator === "between" || props.rule.operator === "not_between"
);

watch(
  () => props.rule.operator,
  () => {
    if (isBetweenOperator.value) {
      localValue.value = [];
    } else {
      localValue.value = "";
    }
  }
);

watch(
  localValue,
  (newVal) => {
    emit("update-rule-value", newVal);
  },
  { deep: true }
);
</script>