家庭记账本小程序开发第五天

今天完成了账单页面的汇总收入和支出并显示在页面上

如下图:

 

 

改变的js:

// pages/B/index.js
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    date:'',
    money:'',
    type:'',
    style:'',
    ty:[{}],
    smoney:0,
    zmoney:0,

  },
  onLoad: function (option) {
    var that = this;
    wx.request({
      url: 'http://localhost:8080/Tally/WXServletShow',
      data: {
        username: '刘子煜',
        password: '123'
      },
      method: 'POST',
      header: {
        //'content-type': 'application/json' // 默认值
        'Content-Type': 'application/x-www-form-urlencoded'
      },
      success: function (res) {
        console.log(res.data);
        var ty1 = res.data.data;
        that.setData({
          ty: ty1

        });
        // console.log(ty[0].date);
        var s=0;
        var z=0;

        for (let i = 0; i < ty1.length; i++) {
          if (ty1[i].type == '收入') {
            s += parseInt(ty1[i].money)
          }
          else {
            z += parseInt(ty1[i].money)
          }
        }
        console.log(s)
        console.log(z)
        that.setData({
          zmoney:z,
          smoney:s
        })

      },
      fail: function (res) {
        console.log(".....fail.....");
      }
    })

    console.log(option.query)
    const eventChannel = this.getOpenerEventChannel()
    eventChannel.emit('acceptDataFromOpenedPage', { data: 'test' });
    eventChannel.emit('someEvent', { data: 'test' });
    // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
    eventChannel.on('acceptDataFromOpenerPage', function (data) {
      console.log(data)
    })

    // for(let i=0;i<ty.length;i++){
    //   if(ty[i].type=='收入'){
    //     smoney+=ty[i].money
    //   }
    //   else{
    //     zmoney+=ty[i].money
    //   }
    // }

  },
  delete: function(e){
    console.log(e)
  },

  /**
   * 显示删除按钮
   */
  showDeleteButton: function (e) {
    let productIndex = e.currentTarget.dataset.productindex
    this.setXmove(productIndex, -65)
  },

  /**
   * 隐藏删除按钮
   */
  hideDeleteButton: function (e) {
    let productIndex = e.currentTarget.dataset.productindex

    this.setXmove(productIndex, 0)
  },

  /**
   * 设置movable-view位移
   */
  setXmove: function (productIndex, xmove) {
    let ty = this.data.ty
    ty[productIndex].xmove = xmove

    this.setData({
      ty: ty
    })
  },

  /**
   * 处理movable-view移动事件
   */
  handleMovableChange: function (e) {
    if (e.detail.source === 'friction') {
      if (e.detail.x < -30) {
        this.showDeleteButton(e)
      } else {
        this.hideDeleteButton(e)
      }
    } else if (e.detail.source === 'out-of-bounds' && e.detail.x === 0) {
      this.hideDeleteButton(e)
    }
  },

  /**
   * 处理touchstart事件
   */
  handleTouchStart(e) {
    this.startX = e.touches[0].pageX
  },

  /**
   * 处理touchend事件
   */
  handleTouchEnd(e) {
    if (e.changedTouches[0].pageX < this.startX && e.changedTouches[0].pageX - this.startX <= -30) {
      this.showDeleteButton(e)
    } else if (e.changedTouches[0].pageX > this.startX && e.changedTouches[0].pageX - this.startX < 30) {
      this.showDeleteButton(e)
    } else {
      this.hideDeleteButton(e)
    }
  },

  /**
   * 删除产品
   */
  handleDeleteProduct: function ({ currentTarget: { dataset: { date ,money ,type,style} } }) {
    let ty = this.data.ty
    let productIndex = ty.findIndex(item => item.date === date)

    ty.splice(productIndex, 1)

    this.setData({
      ty
    })
    if (ty[productIndex]) {
      this.setXmove(productIndex, 0)
    }
    console.log({ currentTarget: { dataset: { date, money, type, style} } })
    var that = this;
    wx.request({
      url: 'http://localhost:8080/Tally/WXServletDelete',
      data: {
        index: that.data.index,
        date: { currentTarget: { dataset: { date, money, type, style } } }.currentTarget.dataset.date,
        money: { currentTarget: { dataset: { date, money, type, style } } }.currentTarget.dataset.money,
        type: { currentTarget: { dataset: { date, money, type, style } } }.currentTarget.dataset.type,
        style: { currentTarget: { dataset: { date, money, type, style } } }.currentTarget.dataset.style
      },
      method: 'POST',
      header: {
        //'content-type': 'application/json' // 默认值
        'Content-Type': 'application/x-www-form-urlencoded'
      },
      success: function (res) {
        console.log(res.data);
        wx.showToast({
          title: '删除成功!',
        })
        that.setData({
          error: ""
        })
      },
      fail: function (res) {
        console.log(".....fail.....");
        // that.setData({
        //   error: res.data.msg
        // });
      }
    })
  },
})

改变的wxml:

<!--pages/B/index.wxml-->
<view class="container">
<view>
<text class="s">总收入:{{smoney}}</text>
<text class="z">总支出:{{zmoney}}</text>
</view>
<view class="product-list">
<view wx:for="{{ty}}" wx:for-index="index" wx:key="{{item.date}}" class="product-item">
<movable-area>
<movable-view out-of-bounds="true" direction="horizontal" x="{{item.xmove}}" 
inertia="true"
data-productIndex="{{index}}"
bindtouchstart="handleTouchStart"
bindtouchend="handleTouchEnd"
bindchange="handleMovableChange">

<view class="product-item-wrap bg-g" wx:if="{{index % 2 == 0}}">
<view class="product-movable-item">
<view class="product-movable-item-style">{{item.style}}</view>
<view class="product-movable-item-date">{{item.date}}</view>
</view>
<view class="product-movable-item product-movable-item-amount">
<text class="type">{{item.type}}</text>
<text class="money">{{item.money}}</text>
</view>
</view>

<view class="product-item-wrap" wx:else>
<view class="product-movable-item">
<view class="product-movable-item-style">{{item.style}}</view>
<view class="product-movable-item-date">{{item.date}}</view>
</view>
<view class="product-movable-item product-movable-item-amount">
<text class="type">{{item.type}}</text>
<text class="money">{{item.money}}</text>
</view>
</view>
</movable-view>
</movable-area>
<view class="delete-btn" data-date="{{item.date}}" data-money="{{item.money}}" data-type="{{item.type}}"  data-style="{{item.style}}"       bindtap="handleDeleteProduct">删除</view>
</view>
</view>
</view>

改变的wxss:

/* pages/B/index.wxss */
.s{
  padding-right: 100rpx;
  height: 20rpx;
  width: 20rpx;
  color:olivedrab
}
.z{
  padding-left: 200rpx;
  height: 20rpx;
  width: 20rpx;
  color: olivedrab
}

 

posted @ 2020-02-09 19:39  ziyuliu  阅读(171)  评论(0编辑  收藏  举报