본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

Progress 진행률 바

원문 보기 위키 갱신

진행률을 표시하는 바예요.

출처: 문서

본문

언제 사용하나요?

  1. 작업이 오래 걸릴 때 사용자에게 진행 상황을 보여 줄 때.
  2. 작업이 현재 화면을 가로막거나 백그라운드로 실행되며 시간이 오래 걸릴 때.
  3. 작업 완료 백분율이나 완료된 단계/전체 단계를 표시해야 할 때.

기본 사용법

기본적인 진행률과 텍스트 설정이에요.

::: demo

<template>
  <section class="devui-code-box-demo">
    <div class="progress-container">
      <d-progress :percentage="80" percentageText="80%"></d-progress>
    </div>
    <div class="progress-container">
      <d-progress :percentage="30" percentageText="30%" barBgColor="#50D4AB" height="30px"></d-progress>
    </div>
  </section>
</template>
<style>
.progress-container {
  margin-bottom: 20px;
}
.devui-code-box-demo {
  border-bottom: 1px dashed #dfe1e6;
  padding: 16px 0;
  .progress-container {
    margin-bottom: 20px;
  }
}
</style>

:::

텍스트 위치 설정

5가지 위치를 선택할 수 있어요.

::: demo

<template>
  <section class="devui-code-box-demo">
    <div class="progress-container">
      <d-progress percentage-text-placement="insideLeft" :percentage="percentage" :percentageText="`${percentage}%`"></d-progress>
    </div>
    <div class="progress-container">
      <d-progress :percentage="percentage" :percentageText="`${percentage}%`"></d-progress>
    </div>
    <div class="progress-container">
      <d-progress percentage-text-placement="insideRight" :percentage="percentage" :percentageText="`${percentage}%`"></d-progress>
    </div>
    <div class="progress-container">
      <d-progress percentage-text-placement="insideBg" :percentage="percentage" :percentageText="`${percentage}%`"></d-progress>
    </div>
    <div class="progress-container">
      <d-progress percentage-text-placement="outside" :percentage="percentage" :percentageText="`${percentage}%`"></d-progress>
    </div>
    <div class="progress-container">
      <d-button @click="minus">减 10%</d-button> <d-button @click="add">增 10%</d-button>
    </div>
  </section>
</template>
<script>
import { defineComponent, ref } from 'vue'

export default defineComponent({
  setup () {
    const percentageRef = ref(60)

    const add = () => {
      percentageRef.value += 10
      if (percentageRef.value > 100) {
        percentageRef.value = 0
      }
    }

    const minus = () => {
      percentageRef.value -= 10
      if (percentageRef.value < 0) {
        percentageRef.value = 100
      }
    }

    return {
      percentage: percentageRef,
      add,
      minus
    }
  }
})
</script>
<style>
.progress-container {
  margin-bottom: 20px;
}
.devui-code-box-demo {
  border-bottom: 1px dashed #dfe1e6;
  padding: 16px 0;
  .progress-container {
    margin-bottom: 20px;
  }
}
</style>

:::

원형 사용법

기본적인 진행률과 텍스트 설정이에요.

::: demo

<template>
  <section class="devui-code-box-demo">
    <div class="progress-container-circle">
      <d-progress :isCircle="true" :percentage="80" :showContent="false"> </d-progress>
    </div>
    <div class="progress-container-circle">
      <d-progress :isCircle="true" :percentage="80" barBgColor="#50D4AB" :strokeWidth="8"> </d-progress>
    </div>
    <div class="progress-container-circle">
      <d-progress :isCircle="true" :percentage="80" barBgColor="#50D4AB">
        <span class="icon-position">
          <d-icon name="right" color="#3dcca6" />
        </span>
      </d-progress>
    </div>
  </section>
</template>
<style>
.progress-container-circle {
  height: 130px;
  width: 130px;
  font-size: 20px;
  display: inline-block;
  margin-right: 10px;
}
.icon-position {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  margin: 0;
  padding: 0;
  line-height: 1;
  white-space: normal;
  text-align: center;
  transform: translate(-50%, -50%);
  color: #50d4ab;
  font-size: 24px;
}
</style>

:::

색 커스터마이즈

내장 색이 마음에 들지 않는다면 직접 정해 보세요.

::: demo

<template>
  <section class="devui-code-box-demo">
  <div class="progress-container-circle">
      <d-progress :isCircle="true" :percentage="80" barBgColor="#e056fd" :showContent="false"> </d-progress>
    </div>
    <div class="progress-container-circle">
      <d-progress :isCircle="true" :percentage="80" barBgColor="#22a6b3" percentage-text-color="#22a6b3"> </d-progress>
    </div>
    <div class="progress-container">
      <d-progress :percentage="80" barBgColor="#badc58" percentage-text-color="#eb4d4b" percentageText="80%"></d-progress>
    </div>
    <div class="progress-container">
      <d-progress :percentage="80" barBgColor="orange" percentage-text-placement="outside" percentage-text-color="orange" percentageText="80%"></d-progress>
    </div>
  </section>
</template>
<style>
.progress-container-circle {
  height: 130px;
  width: 130px;
  font-size: 20px;
  display: inline-block;
  margin-right: 10px;
  margin-bottom: 20px;
}
.progress-container {
  margin-bottom: 20px;
}
.devui-code-box-demo {
  border-bottom: 1px dashed #dfe1e6;
  padding: 16px 0;
  .progress-container {
    margin-bottom: 20px;
  }
}
</style>

:::

Progress 파라미터

파라미터 타입 기본값 설명 Demo 링크
percentage number 0 선택, 진행바 값의 최대 100 기본 사용법
percentage-text string -- 선택, 진행바 현재 값의 텍스트 설명. 예: '30%' | '4/5' 기본 사용법
height string 20px 선택, 진행바 높이 값. 기본값 20px 기본 사용법
percentage-text-placement 'insideLeft'|'inside'|
'insideRight'|'outside'|
'insideBg'
inside 선택, 진행바 텍스트 설명 위치 설정 텍스트 위치 설정
is-circle boolean false 선택, 진행바의 원형 표시 여부 원형 사용법
stroke-width number 6 선택, 원형 진행바 너비 설정. 단위는 진행바와 캔버스 너비의 백분율 원형 사용법
show-content boolean true 선택, 원형 진행바 내부 콘텐츠 표시 여부 설정 원형 사용법
bar-bg-color string #5170ff 선택, 진행바 색상 표시. 기본값은 하늘색 커스텀 색상
percentage-text-color string '' 선택, 진행바 텍스트 설명 색상 설정 커스텀 색상

더 알아보기 (Learn more)

Progress로 작업 진행률을 막대나 원형으로 표시할 수 있어요. 더 자세한 내용은 공식 문서를 참고하세요.