/*******************************************************************************
 * Copyright(c) 2021 dongke All rights reserved. / Confidential
 * 类的信息：
 *		1.程序名称：
 *		2.功能描述：一览界面日期下拉组件-年月
 *  注意：值是value
 * 编辑履历：
 *		作者				日期					版本				修改内容
 *		admin		  	2021-5-5			1.00		   	新建
 *******************************************************************************/
const util = require('../../../utils/util.js')
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    dateType: {
      type: String,
      default: 'createtime'
    },
    defaultValue: {
      type: String,
      default: '-1'
    },
    // 是否有
    blankFlag: {
      type: Boolean,
      default: true
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    show: false,
    active: null,
    dateDefault: {},
    dateTypeList: [],
    // dateSearch: [ new Date().toISOString().substring(0, 7), new Date().toISOString().substring(0, 7)],
    dateSearch: [new Date().getTime() + 100, new Date().getTime() + 100],
    // 往组件外返回值
    dataDefaultSearch: [],
    createTimeType: {
      text: '计提月',
      value: -1
    },
    createTimeTypeList: [
      {
        text: '自定义',
        value: -2
      },
    ],
  },

  lifetimes: {
    attached: function () {
      let dateTypeList = []
      let dateType = this.data.dateType
      // 创建日期
      if (dateType === 'createtime') {
        if (this.data.blankFlag) {
          dateTypeList.push(this.data.createTimeType)
        }
        dateTypeList = dateTypeList.concat(this.data.createTimeTypeList)
      }


      let dateDefault = {}
      let date = []
      // 默认值
      if (dateTypeList != null) {
        dateTypeList.forEach(item => {
          if (item.value + '' === this.data.defaultValue + '') {
            dateDefault.value = item.value
            dateDefault.text = item.text

            
           
             if (item.value + ''== '3') {
              date = [this.js_date_time(new Date()), this.js_date_time(new Date())]
            }
            else if(item.value + ''== '-2'){
              date = [this.js_date_time(new Date(this.data.dateSearch[0])), 
              this.js_date_time(new Date(this.data.dateSearch[1]))]
            }
          }
        })
      } 
     
      this.setData({
        dateTypeList: dateTypeList,
        dateDefault: dateDefault,
        dataDefaultSearch: date
 
      })
    },
    detached: function () {
      // 在组件实例被从页面节点树移除时执行
    },
  },

  /**
   * 组件的方法列表
   */
  methods: {
    /**
     * 日期变化 查询 
     * @param {*} e 
     */
    choose(e) {
      let _this = this
      let item = e.currentTarget.dataset.item

      if (item.value == -2) {
        _this.setData({
          show: true
        })
        setTimeout(function () {
          _this.setData({
            active: 0
          })
        }, 100)
      } else {
        _this.setData({
          dateDefault: item
        })

        let date = []
        if (item.value == 3) {
          date = [this.js_date_time(new Date()), this.js_date_time(new Date())]
        }

        this.setData({
          dataDefaultSearch: date
        }) 
        this.triggerEvent('dateCommit', {
          date: date,
          dateType: this.data.dateType,
          dateDefault: this.data.dateDefault
        })
      }
    },

    /**
     * 日期变化 查询数据 
     * @param {*} e 
     */
    changeDate(e) { 
      let dateSearch = this.data.dateSearch;
      dateSearch[e.currentTarget.dataset.index] = e.detail
      this.setData({
        dateSearch: dateSearch
      }) 
    },
    /**时间戳转化时间 */
    js_date_time(unixtime) {
      var date = new Date(unixtime);
      var y = date.getFullYear();
      var m = date.getMonth() + 1;
      m = m < 10 ? ('0' + m) : m;
      var d = date.getDate();
      d = d < 10 ? ('0' + d) : d;
      var h = date.getHours();
      h = h < 10 ? ('0' + h) : h;
      var minute = date.getMinutes();
      var second = date.getSeconds();
      minute = minute < 10 ? ('0' + minute) : minute;
      second = second < 10 ? ('0' + second) : second;
      // return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;//年月日时分秒
      // return y + '-' + m + '-' + d + ' ' + h + ':' + minute;
      return y + '-' + m;

    },
    /**
     * 日期变化 查询数据 
     * @param {*} e 
     */
    onCloseChooseDate() {
      this.setData({
        show: false
      })
      this.setData({
        dateSearch: [new Date().getTime(), new Date().getTime()],
      })
    },

    /**
     * 日期变化 查询 
     * @param {*} e 
     */
    onConfirmChooseDate() {
      this.setData({
        show: false,
        dateDefault: this.data.dateTypeList[this.data.dateTypeList.length - 1]
      })
      let date = [this.js_date_time(new Date(this.data.dateSearch[0])),
        this.js_date_time(new Date(this.data.dateSearch[1]))
      ]
      this.setData({
        dataDefaultSearch: date
      })
      this.triggerEvent('dateCommit', {
        date: date,
        dateType: this.data.dateType,
        dateDefault: this.data.dateDefault
      })
    },
  }
})