/*******************************************************************************
 * Copyright(c) 2021 dongke All rights reserved. / Confidential
 * 类的信息：
 *		1.程序名称：
 *		2.功能描述：一览界面状态下拉组件-switch
  * 编辑履历：
 *		作者				日期					版本				修改内容
 *		jyh		  	2021-4-28			1.00		   	新建
 *******************************************************************************/

Component({
  /**
   * 组件的属性列表
   */
  properties: {
    dataList: {
      type: [Array],
      default: []
    },
    onAllChanageFlag:{
      type:Boolean,
      value:true
    },
    switchCode:{
      type:String,
    },
    switchKey:{
      type:String,
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    allCheck: true
  },

  lifetimes: {
    attached: function () {},
    detached: function () {
      // 在组件实例被从页面节点树移除时执行
    },
  },

  /**
   * 组件的方法列表
   */
  methods: {
    /**
     * 调用查询
     * @param {*} e 
     */
    commit(e) { 
      // 取出被选中的数据
      let dataListTemp = [];
      let dataListNameTemp = [];
      let values = [] 
      for (let index = 0; index < this.data.dataList.length; index++) {
        let item = this.data.dataList[index]
        dataListTemp.push(item);
        if (item.checked) {
          dataListNameTemp.push(item.title);
          values.push(item.value)
        }
      }
      console.log()
      this.triggerEvent('commit', {
        values: values.join(','),
        valueList:values,
        dataTitle:dataListNameTemp,
        dataList: dataListTemp,
        code: this.data.switchCode,
        key: this.data.switchKey
      })
    },
    // 切换功能   
    onSwitchChange(e) { 
      var index = e.target.dataset.index;
      var dataList = this.data.dataList;
      var truenumber = 0
      var falsenumber = 0
      var allflag=false
      // 设置点击的项目 的值
      for (let i = 0; i < dataList.length; i++) {
        if (i == index) {
          dataList[i].checked = !dataList[i].checked
          break;
        }
      }
      for (let i = 0; i < dataList.length; i++) {
        if (dataList[i].checked) {
          truenumber++
        } else {
          falsenumber++
        }
      }
      if(dataList.length==truenumber){
         allflag=true
      }
      if(dataList.length==falsenumber){
        allflag=false
     }
      this.setData({
        dataList: dataList,
        allCheck:allflag
      });

      
      this.triggerEvent('onSwitchChange', {
        index: index
      })
    },
    /**
     * 全选/全不选
     * @param {*} e 
     */
    onAllChanage(e) {
      let allCheck = e.detail 
      var dataList = this.data.dataList;
      // 设置点击的项目 的值
      for (let i = 0; i < dataList.length; i++) {
        dataList[i].checked = allCheck
      }
      this.setData({
        dataList: dataList,
        allCheck: allCheck
      });
    },
  }
})