当前位置: 首页 > wzjs >正文

无需下载直接进入的网站的代码贵州讯玛网站建设

无需下载直接进入的网站的代码,贵州讯玛网站建设,网站设计制作都有哪些,科技有限公司你懂的文章目录 &#x1f9ed; Vue 3 步骤进度条组件实现与使用教程✨ 功能概述&#x1f4e6; 组件结构文件组成 &#x1f9e9; 组件代码详解1. <template> 部分2. <script setup> 部分3. <style> 部分 &#x1f9f0; 如何调用该组件&#xff1f;1. 引入组件2. 使用…

文章目录

  • 🧭 Vue 3 步骤进度条组件实现与使用教程
    • ✨ 功能概述
    • 📦 组件结构
      • 文件组成
    • 🧩 组件代码详解
      • 1. `<template>` 部分
      • 2. `<script setup>` 部分
      • 3. `<style>` 部分
    • 🧰 如何调用该组件?
      • 1. 引入组件
      • 2. 使用组件并传递参数
      • 3. 设置当前步骤名称
    • 🎨 效果预览
      • 效果图1
      • 效果图2
    • 🔧 扩展建议
    • 📌 总结


🧭 Vue 3 步骤进度条组件实现与使用教程

在实际项目中,我们经常需要展示流程状态,例如订单处理、任务流转等。为了提升用户体验和视觉效果,我们可以使用一个步骤进度条(Steps)组件来清晰地展示当前所处的环节。

本文将介绍一个基于 Vue 3 的步骤进度条组件,并详细讲解其功能实现方式以及如何在父组件中调用它。


✨ 功能概述

该组件支持以下功能:

  • 显示多个步骤(Step),每个步骤有名称;
  • 支持三种状态:
    • pending:未开始
    • completed:已完成
    • active:进行中
  • 自动根据传入的当前步骤名称更新状态;
  • 每个步骤之间通过线条连接,并带有方向箭头;
  • 样式美观,支持主题色定制。

📦 组件结构

文件组成

本组件是一个 .vue 单文件组件,包含以下部分:

  • <template>:定义了组件的结构;
  • <script setup>:逻辑处理与响应式数据;
  • <style scoped>:组件样式封装。

🧩 组件代码详解

1. <template> 部分

<template><div class="steps-container"><template v-for="(step, index) in steps" :key="index"><!-- 步骤项 --><divclass="step":class="{'is-active': step.status === 'active','is-completed': step.status === 'completed'}">{{ step.name }}</div><!-- 步骤连线 --><divv-if="index < steps.length - 1"class="step-line":class="{'is-completed': steps[index].status === 'completed','is-active': steps[index + 1].status === 'active'}"></div></template></div>
</template>
  • 使用 v-for 循环渲染每一个步骤;
  • 判断当前步骤的状态,设置相应的类名以控制样式;
  • 步骤之间的线也根据前一步或后一步的状态改变颜色和样式。

2. <script setup> 部分

import { defineProps, ref, watch, computed } from "vue";const props = defineProps({currentStepName: {type: String,required: false,},
});// 定义步骤列表
const steps = ref([{ name: "暂存", status: "pending" },{ name: "接单", status: "pending" },{ name: "分发中", status: "pending" },{ name: "分发", status: "pending" },{ name: "部分作业完成", status: "pending" },{ name: "全部作业完成", status: "pending" },
]);// 计算当前步骤索引
const currentStep = computed(() => {return steps.value.findIndex((step) => step.name === props.currentStepName);
});// 监听 currentStepName 变化并更新状态
watch(() => props.currentStepName,(newName) => {const idx = steps.value.findIndex((step) => step.name === newName);steps.value.forEach((step, i) => {if (i < idx) {step.status = "completed";} else if (i === idx) {step.status = "active";} else {step.status = "pending";}});},{ immediate: true }
);// 提供 save 方法供父组件调用
const save = (orderId) => {console.log("子组件 PageA 保存订单号:", orderId);
};defineExpose({ save });
  • 接收 currentStepName 属性用于标识当前步骤;
  • 根据当前步骤自动更新所有步骤的状态;
  • 提供 save() 方法供外部调用(可选)。

3. <style> 部分

<style scoped>
.steps-container {display: flex;align-items: center;background: #f8f8f8;border-radius: 16px;padding: 8px 16px;overflow-x: auto;
}.step {min-width: 64px;text-align: center;font-size: 14px;color: #888;cursor: pointer;padding: 0 8px;transition: all 0.2s ease;
}.step.is-active {color: #fff;background: linear-gradient(90deg, #6c83ff 60%, #8b9dff 100%);box-shadow: 0 2px 8px rgba(108, 131, 255, 0.2);
}.step.is-completed {color: #28a745;background: #e6ffe6;
}.step-line {width: 40px;height: 4px;background: #e0e0e0;margin: 0 6px;position: relative;
}.step-line.is-completed {background: #28a745;
}.step-line.is-active {background: linear-gradient(90deg, #6c83ff 60%, #8b9dff 100%);
}/* 箭头样式 */
.step-line::after {content: "";position: absolute;right: -4px;top: 50%;transform: translateY(-50%) rotate(45deg);width: 8px;height: 8px;border-top: 4px solid #e0e0e0;border-right: 4px solid #e0e0e0;z-index: 0;
}.step-line.is-completed::after {border-color: #28a745;
}.step-line.is-active::after {border-color: #8b9dff;
}.steps-container > .step-line:last-of-type::after {display: none;
}
</style>
  • 定义了不同状态下的样式;
  • 使用 CSS 渐变和阴影提升视觉体验;
  • 使用伪元素绘制箭头。

🧰 如何调用该组件?

假设你已经创建了上述组件,将其命名为 StepsProgress.vue,接下来我们来看如何在父组件中使用它。

1. 引入组件

<script setup>
import StepsProgress from "@/components/StepsProgress.vue";
</script>

2. 使用组件并传递参数

<template><div><h3>当前流程状态:</h3><StepsProgress :current-step-name="currentStep" /></div>
</template>

3. 设置当前步骤名称

<script setup>
import { ref } from "vue";
import StepsProgress from "@/components/StepsProgress.vue";const currentStep = ref("分发中");
</script>

此时组件会自动识别“分发中”为当前步骤,并把之前的步骤标记为已完成,之后的为待完成。


🎨 效果预览

步骤状态
暂存已完成
接单已完成
分发中进行中 ✅
分发待完成
部分作业完成待完成
全部作业完成待完成

界面会显示一条带颜色的进度线,高亮当前步骤,并且之前的步骤变为绿色表示已完成。

效果图1

效果图

效果图2

效果2


🔧 扩展建议

你可以根据需要扩展此组件的功能,例如:

  • 支持点击某个步骤跳转;
  • 添加动画过渡;
  • 支持水平滚动适配移动端;
  • 支持垂直布局;
  • 支持图标或徽章显示。

📌 总结

本文介绍了如何构建一个 Vue 3 的步骤进度条组件,并演示了如何在父组件中使用它。这个组件具有良好的可维护性和可扩展性,适合用于各种业务流程的状态展示。

如果你觉得这篇文章对你有帮助,欢迎点赞、收藏或分享给更多开发者朋友!



文章转载自:

http://P8hqLCv6.tqqhm.cn
http://XAZzdYJk.tqqhm.cn
http://EEu2tP8y.tqqhm.cn
http://1gnH0M31.tqqhm.cn
http://Ja4YytcH.tqqhm.cn
http://VqbRz8m1.tqqhm.cn
http://r8mFt8LH.tqqhm.cn
http://1qGpC2nL.tqqhm.cn
http://IS58v9bX.tqqhm.cn
http://9m5rZx9y.tqqhm.cn
http://viGjU5o2.tqqhm.cn
http://CS6DtCHV.tqqhm.cn
http://20iURZkE.tqqhm.cn
http://H1ocUXnt.tqqhm.cn
http://G5zyv8Hn.tqqhm.cn
http://7mN0FJ4f.tqqhm.cn
http://37krcVQJ.tqqhm.cn
http://DPQoGUa6.tqqhm.cn
http://EcxlzAjl.tqqhm.cn
http://o1d3GIij.tqqhm.cn
http://hZXzKiMC.tqqhm.cn
http://FWROGkP6.tqqhm.cn
http://96g9FZEG.tqqhm.cn
http://GHCWBzC6.tqqhm.cn
http://wRCRzidq.tqqhm.cn
http://22FLYfAK.tqqhm.cn
http://r7phdDVh.tqqhm.cn
http://TgDl6h0Q.tqqhm.cn
http://j67ZIj5z.tqqhm.cn
http://AcV7EArK.tqqhm.cn
http://www.dtcms.com/wzjs/706230.html

相关文章:

  • 做网站搭建和微信平台推广做cms网站
  • 做网站被骗首付款怎么报案优化算法 网站
  • 网站建设资金方案永修建设局网站
  • 做阀门销售什么网站最好vs网站搜索栏怎么做
  • 哪些网站教你做系统做网站用小动画
  • 整站seo运营win 2008 iis建立网站
  • 规划一个电子商务网站网页小游戏的网站
  • 本地服务网站开发wordpress云服务器配置
  • 营销网站服务器网站的照片上传的功能怎么做
  • 关于公司做网站供比价报告上海网络推广团队
  • 想要提高网站排名应该怎么做phpstudy配置网站
  • 外汇交易网站开发天津西青区
  • wordpress 浏览历史网站 优化 关键字
  • 做网站一个月赚多少钱织梦网站首页错位
  • qt做网站服务器salong wordpress
  • 东莞网站设计网址淘宝建设网站首页
  • 大良营销网站公司汕头公关公司
  • 网站开发的布局划分贵州网站建设套餐
  • 网站开发者工具的网络选项临沂网站开发公司电话
  • 泸州市建设工程管理局网站商品管理系统
  • 重庆营销型网站建设多少钱品牌标志设计的风格包括
  • 网站地图 怎么做大二dw网页设计作业成品
  • 网站开发温州怎么看网站文章的收录
  • 邯郸市建设局网站政策网站开发工程师需要哪些技术
  • 后缀为net的网站有哪些百度网站小程序怎么做
  • 为什么做的网站搜不出来的长春seo快速排名
  • 农产品网站建设策划书范文国外优秀网站模板
  • 利用qq 群做网站推广长春智联招聘网最新招聘
  • 汽车行业做网站山东省安全双体系建设网站地址
  • 怎么样给一个网站做横向导航栏wordpress是cms