crmeb页面搭建之 会员页面的实现

会员页面的制作:

  • 模拟axios请求

  • 静态页面搭建

  • 实现数据切换

  • 首先,页面如下

在这里插入图片描述

动态效果展示如下

滑动前
在这里插入图片描述
滑动后
在这里插入图片描述

  • 本地mockdata,axios请求
    • 主要思路:
      • mounted中动态获取数据 vipInfoList
      • 图片的轮播: :src=“item.url”
      • 下方会员升级条件相应的文字切换 handleChange中通过切换activeDom进 行
//图片部分
<mt-swipe :auto="4000" class="swipe-wrap" :continuous="true" @change="handleChange">
            <mt-swipe-item  " v-for="(item,index) in vipInfoList" :key="index">
              <img :src="item.imgUrl || null">
              <div class="desc">
                <div class="name">{{item.name}}</div>
                <div class="account">可享受商品折扣{{item.account}}折</div>
              </div>
            </mt-swipe-item>
 </mt-swipe>
//文字部分 的部分代码 
<div class="up-content">
              <div class="up-level-condition">
                <span class="desc">满足积分{{activeDom.condition.score}}分</span>
                <span class="flag-con">未满足条件</span>
              </div>
              <div class="split-line"></div>
              <div class="no-level-condition">
                <span class="require">
                  还需要{{activeDom.condition.score}}积分
                </span>
                <span class="status">
                  <i class="yes">0</i>
                  /
                  <i class="no">{{activeDom.condition.score}}</i>
                </span>
              </div>
            </div>
//activeDom初始值为vipInfoList[0],handleChange时进行切换
mounted() {
      api.getVipInfo().then((res) => {
        this.vipInfoList = res.data.vipInfoList;
        this.activeDom = this.vipInfoList[0];
        // console.log(res)
      }, (err) => {
        console.log(err)
      })
    },
    methods: {
      handleChange(index) {
        this.activeIndex = index;
        this.activeDom = this.vipInfoList[index];
        // console.log(index)
      }
    }

但是出现一个文字,就是数据还没获取到模板就会被渲染,所以我们初始给activeDom赋个值,问题得到解决

activeDom: {
          'level': 0,
          'name': '普通会员',
          'account': 0.99,
          'imgUrl': '',
          'conditionNum': 1,
          'condition': {
            'score': 100,
          }
        }

另外,vipInfoList的数据结构如下:

{
  "vipInfoList": [{
    "level": 0,
    "name": "普通会员",
    "account": 0.99,
    "imgUrl": "../static/img/pthy.jpg",
    "conditionNum": 1,
    "condition": {
      "score": 100
      }
  },{
    "level": 1,
    "name": "青铜会员",
    "account": 0.95,
    "imgUrl": "../static/img/qthy.jpg",
    "conditionNum": 3,
    "condition": {
      "score": 300,
      "experience": 500,
      "costs": 20
      }
  },
  • 再说一个本地,本地模拟数据的时候,假如用到了图片必须放在static目录下,我的目录结构如下
  • 在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值