/*******************************************************************************
 * Copyright(c) 2021 dongke All rights reserved. / Confidential
 * 类的信息：
 *		1.程序名称：
 *		2.功能描述：单据列表-应收单据 -应付单据
 * 编辑履历：
 *		作者				日期					版本				修改内容
 *		jyh		     2022-5-25		        1.00		   	    新建
 *******************************************************************************/
const Constants = require('@/utils/Constants.js');
const mixins = require('@/mixins/index.js')
Page({
  mixins: [mixins],
  /**
   * 页面的初始数据
   */
  data: {
    // 查询条件
    searchContent: [{
      code: 'makeTime',
      title: mixins.$t('pastThirthtyDays'),
      defaultValue: 5,
      searchType: Constants.searchType.date
    }, {
      code: 'choose',
      title: mixins.$t('choose'),
      searchType: Constants.searchType.pick
    }],

    // 查询条件-筛选
    pullMenuList: [
    ],
    totalAmount: 0,
    allChecked: false,
    objInfo: {},
    tableData: [],
    choooseInboundItemList: [],
    // 路由
    routeObjName: 'account',
    formMode: Constants.formMode.index,
    objectType: 'cusId',
    // 弹出按钮
    buttonList: [{
      name: 'merge',
      title: mixins.$t('confirm')
    }],

  },

  /**
   * @desc : 页面加载数据方法
   * @date : 2024/2/1 15:49
   * @author : jyh
   */
  loadInit() {
    let id = this.data.item.cusId ? this.data.item.cusId : this.data.item.supId
    this.setData({
      objectType: this.data.item.cusId ? 'cusId' : 'supId'
    })
    // 增加出入库的单据类型
    let pullMenuList = this.data.pullMenuList
    if (this.data.item.cusId) {
      pullMenuList = [
        {
          code: 'outType',
          pullType: 'mSelect',
          typeName: 'outType'
        },
        {
          code: 'biznisNo',
        },
      ]
    } else {
      pullMenuList = [
        {
          code: 'intoType',
          pullType: 'mSelect',
          typeName: 'intoType'
        },
        {
          code: 'biznisNo',
        },
      ]
    }
    this.setData({
      pullMenuList
    })
    this.excute(this.data.service, this.data.service.getAccount + id, null).then(
      res => {
        this.setData({
          objInfo: res.data.data
        })

      })
  },

  /**
   * @desc :   加载数据源
   * @date : 2024/2/1 15:49
   * @author : 姜永辉
   */
  getData(params) {
    if (this.data.item.cusId) {
      return this.excute(this.data.service, this.data.service.getReceivableAccountItem, params);
    } else {
      return this.excute(this.data.service, this.data.service.getPayableAccountItem, params);
    }
  },

  /**
  * @desc :   设置查询参数
  * @date : 2024/2/1 15:49
  * @author : 姜永辉
  */
  setSearchParams(params) {
    // 退收款单用的
    if (this.data.item.formType) {
      params.formType = this.data.item.formType
    }
    params.objectId = this.data.item.cusId ? this.data.item.cusId : this.data.item.supId

    return params
  },
  /**
   * @desc :   父级商品信息选择
   * @date : 2024/2/1 15:49
   * @author : 姜永辉
   */
  onListItemChange(e) {
    let tableData = this.data.tableData
    let index = e.currentTarget.dataset.index
    tableData[index].checked = !tableData[index].checked

    this.setData({
      tableData: tableData
    })
    this.calculateTotal()
  },

  /**
    * @desc :  全退
    * @date : 2024/2/1 15:49
    * @author : 姜永辉
    */
  onCheckboxChange(e) {
    let checked = e.detail.checked
    let tableData = this.data.tableData
    tableData.forEach(res => {
      res.checked = checked
    })
    this.setData({
      tableData: tableData
    })
    this.calculateTotal()
  },

  /**
    * @desc :   计算金额/过滤出已选数据
    * @date : 2024/2/1 15:49
    * @author : 姜永辉
    */
  calculateTotal() {
    let tableData = this.data.tableData
    let totalAmount = Number(0)
    //过滤出已选数据
    tableData.forEach(item => {
      if (item.checked) {
        totalAmount += Number(item.amtResidue)
      }
    })
    this.setData({
      totalAmount: totalAmount.toFixed(2),
    })
  },
  /**
  * @desc :   跳转退货页
  * @date : 2024/2/1 15:49
  * @author : 姜永辉
  */
  returnData(e) {
    let that = this
    let itemLists = []
    let tableData = that.data.tableData
    if (tableData == null || tableData.length == 0) {
      return
    }
    //过滤出已选数据
    tableData.forEach(item => {
      if (item.checked) {
        itemLists.push(item)
      }
    })
    const eventChannel = that.getOpenerEventChannel();
    eventChannel.emit('bindData', {
      data: {
        receivableList: itemLists,
        objInfo: that.data.objInfo,
        receivableResidue: that.data.totalAmount,
        receiptResidue: that.data.objectType == 'cusId' ?
          that.data.objInfo.receiptResidue : that.data.objInfo.paymentResidue, //剩余预存
      }
    })
    wx.navigateBack({
      delta: 1
    })
  },


})