首页 > 小程序教程 > 微信小程序绿色风格个人积分收入支出样式模板制作设计下载

微信小程序绿色风格个人积分收入支出样式模板制作设计下载

上一篇 下一篇
制作好以后效果图如下:
一、wxml页面代码如下:
<view class="myIntegral-wrap page" id="myIntegral">
  <scroll-view class="myIntegral-content" wx:if="{{ integralPage == 0 }}" scroll-y="true"  bindscroll="fixedMessageNav" lower-threshold="116" bindscrolltolower="checkMoreMessageData">
    <view class="integral-detail">
      <view class="detail-name">
        <view class="single-icon">积</view>
        <text>现有积分/总积分</text>
      </view>
      <view class="detail-num">
        <text>{{ canUseIntegral }} / {{ totalIntegral }}</text>
      </view>
      <view class="detail-rule" catchtap="showIntegralRule">
        <view class="single-icon">?</view>
        <text>积分规则</text>
      </view>
    </view>
    <view class="message-nav">
      <view class="type-item {{ currentMessageType == 'income' ? 'active' : '' }}" catchtap="setCurrentMessageType" data-type="income" >收入</view>
      <view class="type-item {{ currentMessageType == 'outcome' ? 'active' : '' }}" catchtap="setCurrentMessageType" data-type="outcome" >支出</view>
    </view>
    <view class="message-nav {{ navFixed ? 'fixed' : 'nofixed' }}">
      <view class="type-item {{ currentMessageType == 'income' ? 'active' : '' }}" catchtap="setCurrentMessageType" data-type="income" >收入</view>
      <view class="type-item {{ currentMessageType == 'outcome' ? 'active' : '' }}" catchtap="setCurrentMessageType" data-type="outcome" >支出</view>
    </view>
    <view class="message-content {{ currentMessageType == 'income' ? 'active' : '' }}" >
      <block wx:for="{{ incomeBranch.data }}">
        <view class="message-item">
          <view class="message-title">{{ item.content }}</view>
          <view class="message-time">{{ item.time }}</view>
          <view class="message-num">{{ item.num }}</view>
        </view>
      </block>
    </view>
    <view class="message-content {{ currentMessageType == 'outcome' ? 'active' : '' }}" >
      <block wx:for="{{ outcomeBranch.data }}">
        <view class="message-item">
          <view class="message-title">{{ item.content }}</view>
          <view class="message-time">{{ item.time }}</view>
          <view class="message-num">{{ item.num }}</view>
        </view>
      </block>
    </view>
  </scroll-view>
  <view class="myIntegral-rule" wx:if="{{ integralPage == 1 }}">
    <view class="rule-list">
      <view class="rule-item">
        <view class="item-name">积累规则</view>
        <view class="item-content">消费 {{ integralRule.consumeNum }} 元,获得 1 积分</view>
      </view>
      <view class="rule-item" wx:if="{{ integralRule.loginNum != 0 }}">
        <view class="item-name">额外积分</view>
        <view class="item-content">每天登录送 {{ integralRule.loginNum }} 积分</view>
      </view>
      <view class="rule-item" wx:if="{{ integralRule.shareNum != 0 }}">
        <view class="item-name">额外积分</view>
        <view class="item-content">推荐好友送 {{ integralRule.shareNum }} 积分</view>
      </view>
      <view class="rule-item" wx:if="{{ integralRule.postCommentNum != 0 }}">
        <view class="item-name">额外积分</view>
        <view class="item-content">商品评论送 {{ integralRule.postCommentNum }} 积分</view>
      </view>
      <view class="rule-item">
        <view class="item-name">使用积分</view>
        <view class="item-content">{{ integralRule.convertNum }} 积分 = 1元</view>
      </view>
      <view class="rule-item">
        <view class="item-name">提醒</view>
        <view class="item-content">消费积分并不会影响升级会员卡,与会员升级相关的是总积分</view>
      </view>
    </view>
    <view class="confirm-btn" catchtap="hideIntegralRule">确定</view>
  </view>
</view>
 
二、wxss样式文件代码如下:
#myIntegral {
  min-height: 100vh;
  background-color: #eeeeee;
}
#myIntegral .myIntegral-content {
  height: 100vh;
}
#myIntegral .integral-detail {
  position: relative;
  background: #5db968;
  height: 125px;
  margin-bottom: 10px;
  color: #fff;
}
#myIntegral .integral-detail .detail-name .single-icon {
  width: 20px;
  height: 20px;
  background: #fff;
  color: #5db968;
  border-radius: 50%;
  display: inline-block;
  text-align: center;
  vertical-align: middle;
  line-height: 20px;
  margin-right: 5px;
  font-size: 12px;
}
#myIntegral .integral-detail .detail-name {
  position: absolute;
  top: 30px;
  left: 30px;
  font-size: 18px;
}
#myIntegral .integral-detail .detail-name text {
  vertical-align: middle;
}
#myIntegral .integral-detail .detail-num {
  position: absolute;
  left: 35px;
  bottom: 18px;
  font-size: 24px;
}
#myIntegral .integral-detail .detail-rule {
  position: absolute;
  top: 32px;
  right: 30px;
}
#myIntegral .integral-detail .detail-rule .single-icon {
  display: inline-block;
  width: 14px;
  height: 14px;
  line-height: 14px;
  margin-right: 5px;
  background: #5db968;
  color: #fff;
  border-radius: 50%;
  text-align: center;
  vertical-align: middle;
  font-size: 12px;
  border: 1px solid #fff;
}
#myIntegral .integral-detail .detail-rule text {
  font-size: 14px;
}
#myIntegral .message-nav {
  width: 100%;
  height: 42px;
  line-height: 42px;
  text-align: center;
  background-color: #fff;
  border-top: 1px solid #eee;
  border-bottom: 1px solid #e9e9e9;
  z-index: 1;
}
#myIntegral .message-nav.fixed {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
}
#myIntegral .message-nav.nofixed {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
}
#myIntegral .message-nav .type-item {
  position: relative;
  display: inline-block;
  min-width: 70px;
}
#myIntegral .message-nav .type-item:first-child {
  margin-right: 15px;
}
#myIntegral .message-nav .type-item.active {
  color: #55b737;
  border-bottom: 1px solid #55b737;
}
#myIntegral .message-content {
  display: none;
  /*max-height: calc(100vh - 177px);*/
}
#myIntegral .message-content.active {
  display: block;
}
#myIntegral .message-item {
  position: relative;
  margin: 0;
  width: 100%;
  background: #fff;
  border-bottom: 1px solid #e9e9e9;
}
#myIntegral .message-item:last-child {
  margin-bottom: 16px; 
}
#myIntegral .message-item .message-title {
  width: calc(100% - 110px);
  padding: 15px 0 0 15px;
  font-size: 16px;
  overflow: hidden;
}
#myIntegral .message-item .message-time {
  margin: 10px 0 12px 15px;
  color: #d6d6d6;
  font-size: 12px;
}
#myIntegral .message-item .message-num {
  position: absolute;
  top: 18px;
  right: 15px;
  overflow: hidden;
  font-size: 14px;
  color: #5db968;
}

/* 积分商品 积分规则页面*/
#myIntegral .myIntegral-rule {
  display: block;
}
#myIntegral .rule-list {
  padding: 10px 0;
  border-bottom: 1px solid #ddd;
  background: #feffff;
}
#myIntegral .rule-item {
  min-height: 36px;
  margin: 0 10px;
  padding: 5px 0;
  line-height: 36px;
}
#myIntegral .rule-item:last-child {
  border: 0;
}
#myIntegral .rule-item .item-name {
  display: inline-block;
  height: 36px;
  width: 85px;
  margin-right: 8px;
  vertical-align: top;
  color: #878889;
  text-align: center;
  overflow: hidden;
}
#myIntegral .rule-item .item-content {
  display: inline-block;
  max-width: calc(100% - 100px);
  min-height: 36px;
  line-height: 36px;
  overflow: hidden;
  vertical-align: top;
}
#myIntegral .rule-item .data-img {
  display: inline-block;
  width: 60px;
  height: 60px;
}
#myIntegral .myIntegral-rule .confirm-btn {
  margin: 14px 10px;
  padding: 10px 0;
  background: #55b737;
  border-radius: 5px;
  color: #fff;
  text-align: center;
  font-size: 16px;
}
三、js页面代码如下:
var app = getApp()

Page({
  data: {
    integralPage: 0, // 控制是否展开 0:显示主页 1:显示积分规则页
    canUseIntegral: 0, // 现有积分
    totalIntegral: 0, // 总积分
    currentMessageType: 'income', // income:收入 / outcome:支出
    // navStyle: '',
    navFixed: false, // 固定导航条
    // 积分规则
    integralRule: {
      convertNum: 100, // xx积分对应1元
      consumeNum: 0, // 消费xx元积累1积分
      loginNum: 0, // 每天登录送xx积分
      postCommentNum: 0, // 商品评论送xx积分
      shareNum: 0, // 推荐好友送xx积分
    },
    /*
      xxxBranch 对象
      data: 对应分支的数据
      isMore: 是否拥有更多的新的数据
      currentPage: 当前已经加载到页数
      onload: 是否处在数据加载中, true加载中,false加载完毕
    */
    incomeBranch: {
      data: [],
      isMore: 0,
      currentPage: 1,
      onload: false
    },
    outcomeBranch: {
      data: [],
      isMore: 0,
      currentPage: 1,
      onload: false
    },
  },
  onLoad: function(){
    this.getIntegralDetailData();
    this.getIntegralRuleData();
    this.getMessageData('income');
    this.getMessageData('outcome');
  },
  // onShow: function(){
  //   app.checkIfBindPhone();
  // },
  // 获得积分详情数据
  getIntegralDetailData: function(){
    let that = this;
    app.sendRequest({
      url: '/index.php?r=AppShop/GetIntegralInfo',
      // data: {
      //   'id': app.getUserInfo().id
      // },
      success: function(res){
        that.setData({
          'canUseIntegral': res.data.can_use_integral,
          'totalIntegral': res.data.total_integral
        });
      }
    });
  },
  // 获得积分规则数据
  getIntegralRuleData: function(){
    let that = this;
    app.sendRequest({
      url: '/index.php?r=AppShop/IntegralRule',
      success: function(res){
        that.setData({
          'integralRule.convertNum': res.data.convert_num,
          'integralRule.consumeNum': res.data.consume_num,
          'integralRule.loginNum': res.data.login_num,
          'integralRule.postCommentNum': res.data.post_comment_num,
          'integralRule.shareNum': res.data.share_num
        });
      }
    });
  },
  // 获取对应消息数据
  getMessageData: function(type, page){
    let that = this;
    let action = '';
    if (type == 'income') {
      action = 'add';
    } else if (type = 'outcome') {
      action = 'minus';
    }
    app.sendRequest({
      url: '/index.php?r=AppShop/UserIntegralAction',
      data: {
        'action': action,
        'page': page || 1
      },
      success: function(res){
        switch(type){
          // 收入消息
          case 'income':
            that.setData({
              'incomeBranch.data': that.data.incomeBranch.data ? that.data.incomeBranch.data.concat(that.parseMessageData(res.data)) : that.parseMessageData(res.data) ,
              'incomeBranch.isMore': res.is_more,
              'incomeBranch.currentPage': res.current_page,
              'incomeBranch.onload': false,
            });
            break;
          // 支出消息
          case 'outcome':
            that.setData({
              'outcomeBranch.data': that.data.outcomeBranch.data ? that.data.outcomeBranch.data.concat(that.parseMessageData(res.data)) : that.parseMessageData(res.data) ,
              'outcomeBranch.isMore': res.is_more,
              'outcomeBranch.currentPage': res.current_page,
              'outcomeBranch.onload': false,
            })
            break;
        }
      }
    });
  },
  // 解析对应消息数据
  parseMessageData: function(data){
    var that = this;
    let array = [];
    let item = {};
    for (var i = 0; i < data.length; i++) {
      item = {
        content: data[i].content,
        num: data[i].num,
        time: data[i].time
      }
      array.push(item);
    }
    return array;
  },
  // 底部触发是否获取数据
  checkMoreMessageData: function(){
    let that = this;
    switch(that.data.currentMessageType) {
      case 'income':
        // 有更多数据 并且 不在加载中时 执行
        if ((that.data.incomeBranch.isMore != 0 ) && ( !that.data.incomeBranch.onload)) {
          that.getMessageData('income', (that.data.incomeBranch.currentPage + 1));
          that.setData({
            'incomeBranch.onload': true
          });
        }
        break;
      case 'outcome':
        // 有更多数据 并且 不在加载中时 执行
        if ((that.data.outcomeBranch.isMore != 0 ) && ( !that.data.outcomeBranch.onload)) {
          that.getMessageData('outcome', (that.data.outcomeBranch.currentPage + 1));
          that.setData({
            'outcomeBranch.onload': true
          });
        }
        break;
    }
  },
  // 固定消息导航条
  fixedMessageNav: function(event){
    var that = this;
    if (event.detail.scrollTop <= 135) {
      that.setData({
        // navStyle: ''
        navFixed: false
      });
    } else {
      that.setData({
        // navStyle: 'position: fixed; top: 0; left: 0;'
        navFixed: true
      });
    }
  },
  // 切换显示的消息类型
  setCurrentMessageType: function(event){
    this.setData({
      'currentMessageType': event.target.dataset.type
    });
  },
  // 积分规则:打开积分详情
  showIntegralRule: function(){
    // 设置页面标题
    app.setPageTitle('积分规则');
    // 请求数据
    this.setData({
      'integralPage': 1
    });
  },
  // 积分规则:关闭积分详情(返回:个人积分主页)
  hideIntegralRule: function(){
    // 设置页面标题
    app.setPageTitle('个人积分');
    // 回到系统通知页面,清空表单数据
    this.setData({
      'integralPage': 0
    });
  }
})


模板简介:该模板名称为【微信小程序绿色风格个人积分收入支出样式模板制作设计下载】,大小是,文档格式为.,推荐使用打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【小程序教程】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 20,143次
  • 使用软件
  • 文件格式
  • 文件大小
  • 上传时间 06-11
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信公众平台 html5 单页式简历模板 微信图片 微信文章 响应式 微信模板 自适应 微信素材 企业网站
您可能会喜欢的其他模板