Progress 진행률 바
진행률을 표시하는 바예요.
출처: 문서
본문
언제 사용하나요?
- 작업이 오래 걸릴 때 사용자에게 진행 상황을 보여 줄 때.
- 작업이 현재 화면을 가로막거나 백그라운드로 실행되며 시간이 오래 걸릴 때.
- 작업 완료 백분율이나 완료된 단계/전체 단계를 표시해야 할 때.
기본 사용법
기본적인 진행률과 텍스트 설정이에요.
::: 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로 작업 진행률을 막대나 원형으로 표시할 수 있어요. 더 자세한 내용은 공식 문서를 참고하세요.