Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#1242] Chart > Zoom in, out 기능 #1261

Merged
merged 13 commits into from
Sep 7, 2022
Merged

[#1242] Chart > Zoom in, out 기능 #1261

merged 13 commits into from
Sep 7, 2022

Conversation

Mun94
Copy link
Collaborator

@Mun94 Mun94 commented Aug 11, 2022

1차 개발

  [기능]
    1. Drag Zoom
      - 차트를 그룹으로 사용 할 경우 ev-chart-group 컴포넌트로 zoom 옵션을 설정하고 차트들을 감싸거나 차트를 개별로 사용 할 경우 ev-chart 옵션에 zoom 옵션을 설정하면 됨. 
      - Zoom 활성화
        a. point 하나만 drag 했을 경우 x축 drag 좌우 영역 계산 후 가까운 날로 줌 실행
        b. 줌 영역 이동
           i. 마우스 wheel을 이용한 줌 영역 이동 
        c. 이전, 최근 줌 영역으로 이동
           i. 우측 상단 previous, latest 아이콘을 이용하여 이동 (크롬 이전, 다음 페이지로 이동 기능 참고)
        d. 줌 에니메이션 (AMChart 줌 에니메이션 참고)
      - Zoom 비활성화
        a. 기존 ev-chart 이벤트 사용 가능
        b. zoom 관련 모든 기능 사용 불가
      
    2. 우측 상단 아이콘
      - 줌 초기화, 이전 / 최근 줌 영역으로 이동, 드래그 줌
      - chartZoomOption에 따라 ev-icon 변경 가능(아이콘 모양, 사이즈, 색상, hover 색상)
      - 사용 가능한 아이콘 enable, disable 스타일 처리
        a. zoomMode일 경우 아이콘 활성화 / zoomMode가 아닐 경우 아이콘 비활성화로 스타일 처리 (zoom 관련 모든 기능 사용 불가) 
        b. zoomMode일 경우 새로고침(reset)아이콘은 항상 활성화 상태
        c. zoom을 실행했던 값이 있으면 previous 아이콘이 활성화 되고 최근으로 이동할 값이 있으면 latest 아이콘 활성화

    3. this.zoomAreaMemory 버퍼 메모리 제한
      - 버퍼 메모리 제한 default 값으로 100으로 설정 (배열 length 100)
      - chartZoomOptions에 bufferMemoryCnt로 버퍼값 사용자가 설정할 수 있도록 추가 (테스트 가능한 줌 버퍼 메모리 InputNumber 추가)
      - ex. 버퍼 메모리 제한이 5일 경우 최근 5개 기록만 확인 가능

    4. 데이터 업데이트 버튼 생성 
      - 새로운 데이터 조회 후 반응 확인용
      - 랜덤한 값(length 1 ~ 100개)의 차트 데이터로 업데이트 됨
      - 데이터가 1개 밖에 없는 차트일 경우 zoomMode 사용 불가

    5. 양방향으로 zoomStartIdx와 zoomEndIdx 조절 가능

    6. zoom 관련 Chart > zoomChart 메뉴 생성
  [확인경로]
   - Chart > zoomChart

######################################
## 1차 개발 ##
  [기능]
    1. Drag Zoom
      - ev-chart-zoom 컴포넌트로 줌을 사용할 차트 컴포넌트를 감싸면 됨
      - Zoom 활성화
        a. point 하나만 drag 했을 경우 x축 drag 좌우 영역 계산 후 가까운 날로 줌 실행
        b. 줌 영역 이동
           i. 마우스 wheel을 이용한 줌 영역 이동
        c. 이전, 최근 줌 영역으로 이동
           i. 우측 상단 previous, latest 아이콘을 이용하여 이동 (크롬 이전, 다음 페이지로 이동 기능 참고)
        d. 줌 에니메이션 (AMChart 줌 에니메이션 참고)
      - Zoom 비활성화
        a. 기존 ev-chart 이벤트 사용 가능
        b. zoom reset(줌 초기화) 기능만 사용 가능 (drag zoom / previous, latest, wheel 줌 영역 이동 사용 불가)

    2. 우측 상단 아이콘
      - 줌 초기화, 이전 / 최근 줌 영역으로 이동, 드래그 줌 활성화
      - chartZoomOption에 따라 ev-icon 변경 가능(아이콘 모양, 사이즈, 색상, hover 색상)

  [확인경로]
   - Chart > LineChart > Zoom
######################################
사용하지 않는 chartZoom > plugins.interaction 파일 제거
######################################
merge 3.0
@Mun94 Mun94 self-assigned this Aug 11, 2022
@baejihoon
Copy link
Collaborator

zoom 컴포넌트가 내부 chart 의 data, label, option 등을 각각 변경하면서 동작하나 보군요
고생하셨습니다

@Mun94 Mun94 force-pushed the 1242_chart_zoom branch 3 times, most recently from 784f660 to 1b0b4f5 Compare August 11, 2022 16:46
######################################
lint 에러 수정
docs/views/lineChart/example/Zoom.vue Outdated Show resolved Hide resolved
src/components/chartZoom/ChartZoom.vue Outdated Show resolved Hide resolved
@Mun94 Mun94 force-pushed the 1242_chart_zoom branch 3 times, most recently from aab04f3 to 21c79b4 Compare August 17, 2022 02:30
docs/views/lineChart/example/Zoom.vue Outdated Show resolved Hide resolved
docs/views/lineChart/example/Zoom.vue Outdated Show resolved Hide resolved
src/components/chartZoom/ChartZoom.vue Outdated Show resolved Hide resolved
src/components/chartZoom/ChartZoom.vue Outdated Show resolved Hide resolved
######################################
- 사용 가능한 아이콘 enable, disable 스타일 처리
  - zoomMode일 경우 아이콘 활성화 / zoomMode가 아닐 경우 아이콘 비활성화로 스타일 처리
  - zoomMode일 경우 새로고침(reset)아이콘은 항상 활성화 상태
  - zoom을 실행했던 값이 있으면 previous 아이콘이 활성화 되고 최근으로 이동할 값이 있으면 latest 아이콘 활성화

- this.zoomAreaMemory 버퍼 메모리 제한
  - 버퍼 메모리 제한 default 값으로 100으로 설정 (배열 length 100)
  - chartZoomOptions에 bufferMemoryCnt로 버퍼값 사용자가 설정할 수 있도록 추가 (테스트 가능한 줌 버퍼 메모리 InputNumber 추가)
  - ex. 버퍼 메모리 제한이 5일 경우 previous에 최근 5개 기록만 저장 됨

- 데이터 업데이트 버튼 생성
  - 새로운 데이터 조회 후 반응 확인용
  - 랜덤한 값(length 1 ~ 100개)의 차트 데이터로 업데이트 됨
  - 데이터가 1개 밖에 없는 차트일 경우 zoomMode 사용 불가
######################################
 - 코드 정리 및 줌 차트 전용 메뉴 생성
######################################
 - ev-chart-zoom slot으로 넘어오는 컴포넌트 중 props에 data, options이 없다면 발생하는 에러 수정
######################################
 - ev-chart-zoom options 구조 변경
 - ev-chart-zoom에 사용하는 아이콘에 각각 class만 지정하고 해당 class로 사용자가 스타일을 적용할 수 있도록 수정 (기존 zoom options에 있던 icon color, hoverColor 제거)
######################################
 - ev-chart-zoom에서 ev-chart-group로 명칭 변경
   - ev-chart 단독으로 zoom을 사용하려면 ev-chart options에 zoom 옵션을 추가하면 됨
   - ev-chart-group에 ev-chart들을 추가해서 사용 할 경우 ev-chart-group options에 zoom 옵션을 추가하면 묶여있는 ev-chart에 다 같이 zoom이 동작 함.
 - zoom 모드가 아닌 상태에서 dragSeletion 옵션은 기존 ev-chart의 옵션을 따르도록 수정 (zoom 모드일경우 dragSelection은 use: true, keepDisplay: false 임.)
 - zoom > toolbar > show 옵션을 추가해서 상황에 따라 toolbar 생성/제거 가능하도록 수정
######################################
 - 양방향으로 zoomStartIdx, zoomEndIdx 조절 가능하도록 수정
######################################
 - ZoomChart 메뉴 하단 설명 수정
@kdeun1 kdeun1 merged commit d0ec2f5 into 3.0 Sep 7, 2022
@kdeun1 kdeun1 deleted the 1242_chart_zoom branch September 7, 2022 07:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants