uniapp 微信小程序 vue3.0+TS手写自定义封装步骤条(setup)

uniapp手写自定义步骤条(setup)

话不多说 先上效果图:
在这里插入图片描述
setup.vue组件代码:

<template>
  <view class="stepBox">
    <view
      class="stepitem"
      v-for="(item, index) in stepList"
      :key="index"
      :style="stepList.length > index + 1 ? 'width:200rpx' : 'width:60rpx'"
    >
      <img :src="item.activeimg" class="img" v-if="activestep >= index + 1" />
      <img :src="item.img" class="img" v-else />
      <view
        :class="activestep >= index + 1 ? 'circle activecircle' : 'circle'"
      ></view>
      <view
        :class="activestep > index + 1 ? 'line activeline' : 'line'"
        v-if="stepList.length > index + 1"
      ></view>
      <view :class="index + 1 == 3 ? 'text1' : 'text'">{{ item.title }}</view>
    </view>
  </view>
</template>
<script setup lang="ts">
import { ref, reactive, watch } from "vue";
const props = withDefaults(defineProps<{ activestep: Number }>(), {
  activestep: 0,
});
const stepList = ref<any>([
  {
    img: "../static/image/setups/a1.png",
    activeimg: "../static/image/setups/a.png",
    title: "未开始",
  },
  {
    img: "../static/image/setups/b1.png",
    activeimg: "../static/image/setups/b.png",
    title: "核查中",
  },
  {
    img: "../static/image/setups/c1.png",
    activeimg: "../static/image/setups/c.png",
    title: "结果审核中",
  },
  {
    img: "../static/image/setups/d1.png",
    activeimg: "../static/image/setups/d.png",
    title: "已完成",
  },
]);
</script>
<style lang="scss" scoped>
.stepBox {
  width: 100%;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
  background: #fff;
  .stepitem {
    height: 150rpx;
    position: relative;

    .img {
      position: absolute;
      top: 0px;
      left: -18rpx;
      width: 56rpx;
      height: 56rpx;
    }
    .circle {
      position: absolute;
      top: 60rpx;
      width: 18rpx;
      height: 18rpx;
      border-radius: 50%;
      background: #e7eaea;
    }
    .activecircle {
      background: #59c28a;
    }
    .line {
      position: absolute;
      top: 68rpx;
      left: 18rpx;
      border-bottom: 4rpx solid #e7eaea;
      width: calc(100% - 18rpx);
      z-index: 10;
    }
    .activeline {
      border-bottom: 4rpx solid #00cd73;
    }
    .text {
      position: absolute;
      top: 85rpx;
      left: -34rpx;
      font-size: 28rpx;
      color: #0e102b;
    }
    .text1 {
      position: absolute;
      top: 85rpx;
      left: -62rpx;
      font-size: 28rpx;
      color: #0e102b;
    }
  }
}
</style>

以下是用到的图片
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3+uni-app实现微信小程序登录流程主要分为以下步骤: 1. 在uni-app项目中安装并引入微信小程序登录插件(如wxlogin),在main.js中初始化并配置插件参数。 2. 创建一个登录页面,该页面包含点击按钮触发微信登录的操作,可以通过uni.login()方法调用微信小程序登录接口获取code。 3. 接收到微信小程序登录接口返回的code后,将code发送给后端服务器,后端服务器将code和小程序App ID以及App Secret发送给微信服务器进行登录凭证校验,获取到session_key和openid。 4. 服务器根据openid和session_key生成一个自定义的token,返回给前端。 5. 前端将token保存在本地,使用uni.setStorage()方法进行存储,以便后续的登录状态维持和接口请求验证。 6. 在需要登录验证的页面或组件中,通过uni.getStorage()方法获取本地存储的token,并将token添加到请求头中,发送给后端服务器进行接口请求。 7. 后端服务器接收到带有token的请求,对token进行校验和解析,验证token是否有效,从而确保用户的登录状态。 总结:通过以上步骤,实现了Vue3+uni-app微信小程序的登录流程。用户通过点击按钮触发微信小程序登录接口,后端服务器校验登录凭证,生成token并返回给前端,前端保存token并在请求接口时携带token进行验证,保证了用户的登录状态和接口访问权限的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值