From f29a4304f9ed097927125cee0127864e11b87c03 Mon Sep 17 00:00:00 2001 From: kdeun1 Date: Tue, 10 Nov 2020 11:36:29 +0900 Subject: [PATCH] =?UTF-8?q?[#646,=20#663][3.0]=20Select,=20DatePicker=20?= =?UTF-8?q?=EC=BB=B4=ED=8F=AC=EB=84=8C=ED=8A=B8=20=EB=93=9C=EB=9E=8D?= =?UTF-8?q?=EB=8B=A4=EC=9A=B4=20=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?(#705)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [#646] Select 컴포넌트 버그 수정 및 리펙토링 ################ - Select 컴포넌트의 드랍박스의 스펙 변경 - Vue3의 teleport 로직으로 인풋박스의 움직임을 감지하지못하여 dom nested 구조로 변경 - 기본적으로 인풋박스 위치 아래로 드랍다운됨 - 브라우저 높이 기준으로 드랍박스가 드랍다운되었을 때, 브라우저 영역을 벗어나는 경우는 인풋박스의 상단으로 드랍업되도록 로직 수정 - 셀렉스 컴포넌트의 여러 기능으로 인하여 드랍박스의 위치가 변경되는 경우 nextTick 이후에 렌더링 위치를 재조정하는 로직 추가 - 컴포넌트 싱글, 멀티인 경우 레이아웃, css 개선 - 드랍박스의 리스트에 텍스트뿐만 아니라 아이콘이 위치할 수 있도록 기능 개선 - EVUI DOCS 설명 수정 및 아이콘 부분 추가 * [#663] DatePicker 컴포넌트 드랍다운로직 수정 ################ - DatePicker 컴포넌트의 드랍박스의 스펙 변경 - 기본적으로 인풋박스 위치 아래로 드랍다운됨 - 브라우저 높이 기준으로 드랍박스가 드랍다운되었을 때, 브라우저 영역을 벗어나는 경우는 인풋박스의 상단으로 드랍업되도록 로직 수정 - 셀렉스 컴포넌트의 여러 기능으로 인하여 드랍박스의 위치가 변경되는 경우 nextTick 이후에 렌더링 위치를 재조정하는 로직 추가 - 컴포넌트 레이아웃, css 개선 - CloseAll 시에 드랍박스 보이지 않게 로직 수정 * [#663] DatePicker 컴포넌트 드랍다운로직 수정 ################ - DatePicker css stylelint order error 수정 --- docs/views/select/api/select.md | 12 +- docs/views/select/example/Default.vue | 43 +++++ src/components/datePicker/DatePicker.vue | 134 +++++++-------- src/components/datePicker/uses.js | 149 +++++++---------- src/components/select/Select.vue | 193 +++++++++++---------- src/components/select/uses.js | 204 ++++++++++------------- src/directives/clickoutside.js | 2 +- src/style/components/input.scss | 9 +- 8 files changed, 370 insertions(+), 376 deletions(-) diff --git a/docs/views/select/api/select.md b/docs/views/select/api/select.md index d08813976..84fad8f55 100644 --- a/docs/views/select/api/select.md +++ b/docs/views/select/api/select.md @@ -1,7 +1,7 @@ >### Desc - 태그는 <ev-select>(이하 <셀렉트>)로 정의 - - <ev-select> 클릭시 나타나는 영역은 dropdown box(이하 <드랍다운 박스>)로 정의 + - <ev-select> 클릭시 나타나는 영역은 dropBox(이하 <드랍박스>)로 정의 ``` 컴포넌트는 `` 를 래핑하는 구조를 가지고 있다. - <셀렉트> 컴포넌트를 클릭하였을 때, :items 속성에 1개 이상의 객체를 가진 배열이 존재하는 경우, 하단에 선택할 리스트 데이터를 보여주는 <드랍다운 박스>가 나타난다. - - <드랍다운 박스>가 열린 상태에서 <셀렉트>를 한번더 클릭할 시 <드랍다운 박스>는 사라진다. - - <드랍다운 박스>는 Vue 3의 `` 기능을 사용하여 `body` DOM에 렌더링시킨다. - 이 기능은 애플리케이션 UI를 Vue 앱 외부의 DOM으로 이동시키지만, 코드를 <셀렉트> 컴포넌트에서 - 관리하기 위함이다. + - <드랍박스>가 열린 상태에서 <셀렉트>를 한번더 클릭할 시 <드랍다운 박스>는 사라진다. - <셀렉트> 컴포넌트의 기본 width는 100%이다. 다른 형태를 위해서는 ev-select 클래스에 스타일을 래핑해야한다. - - 기본적으로 <드랍다운 박스>의 너비는 <셀렉트> 컴포넌트의 너비와 동일하게 맞춰져 있다. + - 기본적으로 <드랍박스>의 너비는 <셀렉트> 컴포넌트의 너비와 동일하게 맞춰져 있다. + - items 바인딩 값의 타입은 배열이며, 속성으로는 name, value, cls 이다. + - cls속성의 값으로 <드랍박스>의
  • 내 아이콘을 추가할 수 있다. + - <드랍박스>는 기본적으로 인풋박스의 하단에 드랍다운되며, 브라우저 높이에 맞춰 <드랍박스>가 아래로 위치하는 경우 브라우저 화면을 넘어가는 경우 상단에 드랍업 된다. >### Props 1) 셀렉트 사용 시 diff --git a/docs/views/select/example/Default.vue b/docs/views/select/example/Default.vue index 15b183ce9..4e26e1fdc 100644 --- a/docs/views/select/example/Default.vue +++ b/docs/views/select/example/Default.vue @@ -72,6 +72,18 @@ filterable /> +
    +

    Icon

    + +
    + val : {{ selectVal5 }} +
    +