多边形自定义步骤条

在这里插入图片描述

<template>
  <div class="step-bar">
    <div
      v-for="(step, index) in steps"
      :key="index"
      :class="['step', getStepClass(index)]"
      :style="{ padding: `7.5px calc(100% / ${steps?.length || 1} * 0.08)` }"
    >
      {{ step }}
    </div>
  </div>
</template>

<script setup lang="ts">
const props = defineProps({
  steps: {
    type: Array,
    default: () => []
  },
  currentStep: {
    type: Number,
    default: 4
  }
})

// 获取当前步骤的 class
const getStepClass = (index) => {
  if (index < props.currentStep) return "done"
  if (index === props.currentStep) return "active"
  return "todo"
}
</script>

<style scoped>
.step-bar {
  display: flex;
  align-items: center;
  font-size: 14px;
}

.step {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  color: white;
  background-color: #ccc;
  clip-path: polygon(0% 0%, 92% 0%, 100% 50%, 92% 100%, 0% 100%, 8% 50%);
  white-space: nowrap;
  margin-right: -10px;
}
.step:first-child {
  clip-path: polygon(0% 0%, 92% 0%, 100% 50%, 92% 100%, 0% 100%);
}
.step:last-child {
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%, 8% 50%);
}

.step.done {
  background-color: #4362ec;
}

.step.active {
  background-color: #9baef9;
}

.step:last-child.active {
  background-color: #4362ec;
}
.step.todo {
  background-color: #e0e0e0;
  color: #999;
}
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值