Skip to content

ScSearchBox

ScSearchBox 컴포넌트는 다양한 검색 필터 항목(ScSearchItem)을 그리드 기반으로 배치하고, 접기/펼치기 기능과 액션 버튼 영역을 제공하는 검색 박스 래퍼입니다.


✅ 기본 사용법

vue
<sc-search-box col="2" fold-line="1">

  <sc-search-item label="이름" required span="1"><sc-text-field v-model="params.name" /></sc-search-item>
  <sc-search-item label="회사" required span="1"><sc-text-field v-model="params.company" /></sc-search-item>

  <sc-search-item label="그룹" required>
    <sc-dropdown />
  </sc-search-item>

  <sc-search-item label="기간" span="2">
    <sc-date-range-picker v-model="params.dates" class="w-[400px]" />
  </sc-search-item>

  <!-- 상단 action-bar -->
  <template v-slot:action-bar="{ toggleFold, isFold, isFoldButtonDisable }">
    <sc-button small @click="initParams">초기화</sc-button>
    <sc-button small @click="toggleFold" :disabled="isFoldButtonDisable">
      {{ isFold ? `접기` : `펼치기` }}
    </sc-button>
    <sc-button color="black">검색</sc-button>
  </template>
</sc-search-box>

<script setup>
import { ref } from "vue";


const initParam = {
  name: "",
  company: "",
  dates: ["", ""],
};
const params = ref(initParam);

const initParams = () => {
  params.value = { ...initParam };
};
</script>

🛠️ 속성 (Props)

이름타입기본값설명
colNumber3그리드의 전체 컬럼 수 (12-Grid 시스템)
fold-lineNumber1접힌 상태일 때 최초 보여질 행(Row) 개수

📤 이벤트 (Emits)

ScSearchBox는 자체 Vue 이벤트를 방출하지 않습니다. 대신 슬롯을 통해 액션 함수를 전달받아 사용합니다.


🔳 슬롯 (Slots)

슬롯 이름설명
defaultScSearchItem 컴포넌트들을 배치하는 기본 슬롯
action-bar검색/초기화/접기 등 액션 버튼 영역을 정의. slot props: { toggleFold, isFold, isFoldButtonDisable }

🎨 스타일 클래스

클래스 이름설명
.sc-search-box컴포넌트 최상위 래퍼
.sc-search-item각 필터 항목 컨테이너
.search-action-baraction-bar 슬롯 내용 래퍼