组件库 | 步骤条

简介: 在写移动端步骤条的时候,发现第三方的步骤条满足不了需求,于是手写了一个

image.png

在写移动端步骤条的时候,发现第三方的步骤条满足不了需求,于是手写了一个。代码如下:(字数不够来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑来凑)“


<!-- 步骤条组件 -->
<template>
<div
     id="steps"
     :style="`display:flex;flex-direction:${stepStyle.flexDirection};`"
     >
  <div
       v-for="(item, index) in stepList"
       :key="index"
       class="steps"
       :style="`display:flex;flex-direction:${stepStyle.stepsFlexDirection};`"
       >
    <p
       class="icon"
       :style="`background-color: ${
               active >= index ? stepStyle.stepsActiveColor : '#CCCCCC'
               };`"
       >
      {
  
  { index + 1 }}
  </p>
    <p
       class="name"
       :style="`color:${
               active >= index ? stepStyle.stepsActiveColor : '#CCCCCC'
               }`"
       >
      {
  
  { item }}
  </p>
  </div>
  </div>
</template>

<script lang="ts">
  import { defineComponent, reactive, toRefs } from "vue";
  export default defineComponent({
    name: "steps",
    components: {},
    props: {
      stepStyle: {
        type: Object,
        default() {
          return {
            flexDirection: "row",
            stepsFlexDirection: "column",
            stepsActiveColor: "#0077dd",
          };
        },
      },
      stepList: {
        type: Array,
        default() {
          return [];
        },
      },
      active: {
        type: Number,
        default: 0,
      },
    },
    setup(props) {
      console.log("props", props.stepStyle);
      const data = reactive({});
      return {
        ...toRefs(data),
      };
    },
  });
</script>

<style lang="scss" scoped>
  #steps {
    .steps {
      flex: 1;
      display: flex;
      justify-content: center;
      align-items: center;
      // height: 70px;
      .icon {
        height: 30px;
        width: 30px;
        border-radius: 50%;
        color: #ffffff;
        display: flex;
        justify-content: center;
        align-items: center;
      }

      .name {
        width: 56px;
        height: 20px;
        font-family: PingFangSC-Medium;
        font-weight: 500;
        font-size: 14px;
        text-align: center;
        padding-top: 4px;
      }
    }

    .steps:not(:last-child)::after {
      content: "";
      width: calc(100% - 35px);
      height: 1px;
      border-bottom: 2px solid #cccccc;
      display: inline-block;
      margin-left: 100%;
      margin-top: -40px;
    }
    .steps:last-child::after {
      content: "";
      display: inline-block;
      margin-left: 100%;
      margin-top: -40px;
    }
  }
</style>
AI 代码解读
目录
打赏
0
0
0
0
74
分享
相关文章
为什么要使用组件库?
为什么要使用组件库?
347 0
【Netty技术专题】「原理分析系列」Netty强大特性之Native transports扩展开发实战
当涉及到网络通信和高性能的Java应用程序时,Netty是一个强大的框架。它提供了许多功能和组件,其中之一是JNI传输。JNI传输是Netty的一个特性,它为特定平台提供了高效的网络传输。 在本文中,我们将深入探讨Netty提供的特定平台的JNI传输功能,分析其优势和适用场景。我们将介绍每个特定平台的JNI传输,并讨论其性能、可靠性和可扩展性。通过了解这些特定平台的JNI传输,您将能够更好地选择和配置适合您应用程序需求的网络传输方式,以实现最佳的性能和可靠性。
265 7
【Netty技术专题】「原理分析系列」Netty强大特性之Native transports扩展开发实战
【虚警检测】基于CA-CFAR(单元平均恒虚警)、GO-CFAR(最大选择恒虚警)、SO-CFAR(最小选择恒虚警)算法的恒虚警检测附Matlab代码
【虚警检测】基于CA-CFAR(单元平均恒虚警)、GO-CFAR(最大选择恒虚警)、SO-CFAR(最小选择恒虚警)算法的恒虚警检测附Matlab代码
Windows远程桌面出现CredSSP加密数据修正问题解决方案
【10月更文挑战第30天】本文介绍了两种解决Windows系统凭据分配问题的方法。方案一是通过组策略编辑器(gpedit.msc)启用“加密数据库修正”并将其保护级别设为“易受攻击”。方案二是通过注册表编辑器(regedit)在指定路径下创建或修改名为“AllowEncryptionOracle”的DWORD值,并将其数值设为2。
7458 3
自定义多级联动选择器指南(uni-app)
在本文中,探讨了如何在uni-app中创建自定义多级联动选择器组件。这个组件具有强大的多端支持,可适用于H5、APP、微信小程序、支付宝小程序等多种平台。
609 1
自定义多级联动选择器指南(uni-app)
Vue 开发中的一些问题简单记录,Cannot find module ‘webpack/lib/RuleSet‘
Vue 开发中的一些问题简单记录,Cannot find module ‘webpack/lib/RuleSet‘
860 1
【C 言专栏】C 语言与硬件交互的方法
【5月更文挑战第4天】C 语言在硬件交互中扮演关键角色,主要通过直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射I/O和设备驱动程序开发。挑战包括硬件多样性、实时性要求和错误处理。随着物联网和人工智能发展,C语言与硬件交互的需求增加,未来将面临更多新硬件和技术的挑战。本文旨在帮助读者理解和掌握这一领域的知识,以实现更高效的硬件互动。
325 1
【C 言专栏】C 语言与硬件交互的方法

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问