const mixins = require('@/mixins/index.js')
const Constants = require('@/utils/Constants.js');
const util = require('@/utils/util');
const app = getApp()
Page({
  mixins: [mixins],
  /**
   * 页面的初始数据
   */
  data: {
    table: Constants.tables.macTransfer,
    // 弹出按钮
    buttonList: [{
      name: 'merge',
      title: mixins.$t('save')
    }],
    contentList: [{
      code: 'need',
      title: mixins.$t('totalAmount'),
      type: 'str'
    }, {
      code: 'amount',
      content: 0,
      type: 'number'
    }],
    cardList: [
      {name:'paydate'},{
      name: 'main'
    }, {
      name: 'items',
      title: '资金转账'
    }, {
      name: 'file'
    }],
    contentObj: {
      paydate:[{
        code: 'accountDate',
        name: 'accountDate',
        type: 'date',
        required: true,
        title: mixins.$t('paymentDate'), //'预计入库日期',
    }, ],
      main: [{
          code: 'staffId',
          name: 'staffName',
          title: '经手人', //'经手人',mixins.$t("procureStaff")
          type: 'choose',
          urlKey: 'chooseStaff',
          required: true,
        },
        {
          code: 'orgId',
          name: 'orgName',
          title: '经手部门',
          type: 'choose',
          urlKey: 'chooseOrg',
          required: true,
        },

      ],
      items: [{
          code: 'trfOutMac',
          name: 'trfOutMacName',
          title: '转出账户',
          type: 'choose',
          required: true, 
          urlKey: 'chooseMoneyAccount'
        },
        {
          code: 'trfInMac',
          name: 'trfInMacName',
          title: '转入账户',
          type: 'choose',
          required: true,
          urlKey: 'chooseMoneyAccount'
        }, {
          code: 'amtTrf',
          type: 'number',
          title: '转出金额',
          required: true,
          control: 'trfOutMac'
        }
      ],
      file: [{
        code: 'remarks',
        type: 'textarea',
        title: '备注'
      }, {
        code: 'file',
        type: 'uploader',
        title: '附件'
      }]
    },
    // 路由
    routeObjName: 'transfer',
  },
   /**
   * @desc : 资金转账监听
   * @date : 2024/2/1 15:49
   * @author : 王英杰
   */
  changeItemNumberField(e){
    console.log("esad",e);
    let formData = JSON.parse(this.data.formData)
    let sumNub = 0 
    formData.itemList.forEach(element => {
      sumNub =  Number(element.amtTrf)+Number(sumNub)
    });
    let contentList = this.data.contentList
    contentList.forEach(it => {
      if (it.type == 'number') {
        it.content = sumNub
      }
    })
    this.setData({
      contentList:contentList
    })
  },

 /**
   * @desc : 返回   时间戳
   * @date : 2024/2/1 15:49
   * @author : 王英杰
   */
  getTomorrowsDateTimestamp() {
    // 创建一个表示当前日期和时间的 Date 对象  
    let now = new Date();
    // 将日期增加一天以获取明天的日期  
    now.setDate(now.getDate());
    // 设置时间为 00:00:00，即不带时分秒  
    now.setHours(0, 0, 0, 0);
    // 获取不带时分秒的时间戳  
    let timestamp = now.getTime();
    // 返回时间戳  
    return timestamp;
  },
  /**
   * @desc : 返回   YYYY-MM-DD 的日期
   * @date : 2024/2/1 15:49
   * @author : 王英杰
   */
  getTomorrowsDateString() {
    // 创建一个表示当前日期和时间的 Date 对象  
    let now = new Date();
    // 将日期增加一天以获取明天的日期  
    // now.setDate(now.getDate() + 1);  
    // 获取年份、月份和日期  
    let year = now.getFullYear();
    let month = String(now.getMonth() + 1).padStart(2, '0'); // 月份是从 0 开始的，所以要加 1，并用 0 填充到两位数  
    let date = String(now.getDate()).padStart(2, '0'); // 用 0 填充到两位数   
    // 组合成字符串并返回  
    return `${year}-${month}-${date}`;
  },
  /**
   * @desc : 给表单赋值
   * @date : 2024/2/1 15:49
   * @author : 王英杰
   */
  setValuesByEdit(data) {
    console.log("setValuesByEdit", data);
    let formData = JSON.parse(this.data.formData)
    formData = data.data
    formData.accountDate = data.data.accDate
    formData.itemList = data.dataItem
    this.setData({
      formData: JSON.stringify(formData),
    })

  },

  /**
   * @desc   : 表单选择回调
   * @author : 王英杰
   * @date   : 2024/1/26 11:46
   */
  chooseData(e) {
    console.log("t", e, this.data.formData);
    let formData = JSON.parse(this.data.formData)
    let code = e.detail.code
    let data = e.detail.data.data
    if (code == "staffId") { //员工
      formData.staffId = data.id
      formData.staffName = data.name
    }
    if (code == "orgId") { //部门
      formData.orgId = data.id
      formData.orgName = data.name
    } 
    this.setData({
      formData: JSON.stringify(formData)
    })
  },
  /**
   * @desc : 保存数据服务--校验
   * @date : 2024/2/1 15:49
   * @author : 王英杰
   */
  validData() {
    let formData = JSON.parse(this.data.formData)
    for (let i = 0; i < formData.itemList.length; i++) {
      if (formData.itemList[i].trfInMac == formData.itemList[i].trfOutMac) {
        //如果相等进入 说明 转出账户 和转入账户 选择了一个 是无效的
        util.showToast(mixins.$t('notsingletrfOutMacName'))
        return false
      }
      if(!formData.itemList[i].trfOutMac_flgNegative){ //不允许为负数
         if(formData.itemList[i].amtTrf<0){
          util.showToast(mixins.$t('trfOutMacName')+formData.itemList[i].trfOutMacName+ mixins.$t('noflgNegativetip'),)
           return false
         }
      }
    }



    return true
  },
  /**
   * @desc : 保存的參數設置
   * @date : 2024/2/1 15:49
   * @author : 王英杰
   */
  setParams(params) {
    let formData = JSON.parse(this.data.formData)
    //收付款类型-收款的查询参数 
    params.orgId = formData.orgId //组织部门
    params.staffId = formData.staffId // 员工
    params.accDate = formData.accDate
    params.annexPaths = formData.annexPaths || [] //附件 
    params.remarks = formData.remarks // 备注
    params.makeStaff = app.globalData.user.staffId // 制单人  
    params.itemList = formData.itemList //商品明细  
    params.accDate = formData.accountDate
    return params
  },
  /**
   * @desc : 页面加载数据方法
   * @date : 2024/2/1 15:49
   * @author : 王英杰
   */
  loadInit() {
    if (this.data.formMode == Constants.formMode.edit) {
      wx.setNavigationBarTitle({
        title: mixins.$t('fundstransferEdit'),
      })
    } else {
      wx.setNavigationBarTitle({
        title: mixins.$t('fundstransferAdd'),
      })
      let formData = {}
      formData.staffId = app.globalData.user.staffId
      formData.orgId = app.globalData.user.orgId
      formData.staffName = app.globalData.user.staffName
      formData.orgName = app.globalData.user.orgName 
      let  dataTime = this.getTomorrowsDateTimestamp()
      formData.accountDate = this.getTomorrowsDateString()  
     
      this.setData({ 
          dataTime:dataTime,
        formData: JSON.stringify(formData)
      })
    }
  },
  /**
   * @desc : 保存数据服务
   * @date : 2024/2/1 15:49
   * @author : 王英杰
   */
  saveData() {
    if (this.data.formMode == Constants.formMode.edit) {
      return this.excute(this.data.service, this.data.service.update, this.data.params)
    } else {
      return this.excute(this.data.service, this.data.service.insert, this.data.params).then(res => {
        if (res.data.code == 200) {
          let formData = {}
          formData.staffId = app.globalData.user.staffId
          formData.orgId = app.globalData.user.orgId
          formData.staffName = app.globalData.user.staffName
          formData.orgName = app.globalData.user.orgName 
          let  dataTime = this.getTomorrowsDateTimestamp()
          formData.accountDate = this.getTomorrowsDateString()  
          formData.itemList =[{}]
          this.setData({ 
              dataTime:dataTime,
            formData: JSON.stringify(formData)
          })
        }})
    }
  },
  /**
   * @desc :处理保存后续
   * @date : 2024/2/1 15:49
   * @author : 王英杰
   */
  handleData() {
   
    
  },
  /**
   * @desc : 重写detail 
   * @date : 2024/2/1 15:49
   * @author : 王英杰
   */
  detail(id) {
    return this.excute(this.data.service, this.data.service.getMacTransferForUpdate + '/' + id, null);
  },
})