/*******************************************************************************
 * Copyright(c) 2024 dongke All rights reserved. / Confidential
 * 类的信息：
 *		1.程序名称：
 *		2.功能描述：组件-列表
 * 编辑履历：
 *		作者				日期					版本				修改内容
 *		周兴		  	2024-1-30    1.00		   	  新建
 *******************************************************************************/
const config = require('@/config/config.js');
const app = getApp();
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    // 数据源
    list: {
      type: Array,
      value: []
    },
    // 标题左侧角列名
    titleCorner: {
      type: String,
    },
    // 标题图标
    titleImage: {
      type: String,
      value: 'Vector.png'
    },
    // 标题
    title: {
      type: String,
    },
    // 状态
    status: {
      type: String,
    },
    // 是否显示功能三点
    flgPoint: {
      type: Boolean,
      value: true
    },
    flgValidOnFlag:{ //默认显示启用
      type: Boolean,
      value: true
    },
    // 副标题
    subTitle: {
      type: String,
    },
    // 副标题（格式化日期）
    flgSubFormatDate: {
      type: Boolean,
      value: false
    },
    // 内容
    content: {
      type: Array,
      value: []
    },
    // 内容(不定)
    contentObj: {
      type: Object,
    },
    // 不定列的列名
    contentCol: {
      type: String,
    },
    // 底部信息
    footerInfo: {
      type: Array
    },
    // 底部金额
    footerAmount: {
      type: Object
    },
    // 底部tag的名称
    footerTag: {
      type: String,
    },
    // 按钮信息
    buttonList: {
      type: Array
    },
    // 页面路由
    routeObjName: {
      type: String
    },
    // 金额字段
    collectCol: {
      type: String
    },
    // 金额对应的描述字段
    collectName: {
      type: String
    },
    titleImageFlag: { //标题图片显示隐藏
      type: Boolean,
      value: true
    },
    // 是否显示选择框
    chooseFlag: { //标题图片显示隐藏
      type: Boolean,
      value: false
    },
    statusFlag: { //状态显示隐藏
      type: Boolean,
      value: true
    },

    switchFlag: { //启用停用状态
      type: Boolean,
      value: false
    },
    swipeDisabled: { //侧滑  默认禁用  false开启
      type: Boolean,
      value: true
    },
    // 是否侧滑删除  （删除，启用/停用)
    swipeDeleteFlag: {
      type: Boolean,
      value: false
    },
    subMainTitle: { //主标题右侧文本 value
      type: String
    },
    subMainTitlelabel: { //主标题右侧文本 label
      type: String
    },

    defaultFlagKey: { //默认key
      type: String
    },
    defaultFlag: { //开启默认
      type: Boolean,
      value: false
    },
  },

  /**
   * 组件的初始数据
   */
  data: {
    imageUrl:config.image_url + '/static/img/',
    // 是否显示pop
    show: false,
    $t: app.globalData.lang,
    routeUrl: app.globalData['routeUrl'],
    item: null,
  },

  /**
   * 组件的方法列表
   */
  methods: {
    /**
     * @desc   : 选择数据
     * @author : 周兴
     * @date   : 2024/2/19 11:46
     */
    chooseData(e) {
      let index = e.currentTarget.dataset.index
      this._chooseData(index);
    },
    /**
     * @desc   : 选择数据(私有方法)
     * @author : 周兴
     * @date   : 2024/2/19 11:46
     */
    _chooseData(index){
      let list = this.data.list;
      if (list && list[index]) {
        list[index].checked = !list[index].checked
      }
      this.setData({
        list: list
      })
      // 勾选数据
      this.triggerEvent("choose", { item:list[index],
         list: list.filter(it=>it.checked) ,checked:list[index].checked})
    },
    /**
    * @desc   : 打电话
    * @author : 周兴
    * @date   : 2024/2/19 11:46
    */
    openTelPhone(e) {
      if (!e.currentTarget.dataset.phone) {
        return;
      }
      let tel = e.currentTarget.dataset.value
      if (!tel) {
        return;
      }
      wx.makePhoneCall({
        phoneNumber: tel,
      })
    },
    /**
     * @desc   : 跳转明细页面
     * @author : 周兴
     * @date   : 2024/1/26 11:46
     */
    toDetail(e) {
      // 相当于勾选
      if(this.data.chooseFlag){
        this.chooseData(e);
      }else{
        this.triggerEvent("toDetail", { item: e.currentTarget.dataset.item })
      }
    },
    /**
     * @desc   : 跳转标题页面
     * @author : 周兴
     * @date   : 2024/1/26 11:46
     */
    toTitle(e) {
      this.triggerEvent("toTitle", { item: e.currentTarget.dataset.item })
    },
    /**
     * @desc   : 跳转状态
     * @author : 周兴
     * @date   : 2024/1/26 11:46
     */
    toStatus(e) {
      this.triggerEvent("toStatus", { item: e.currentTarget.dataset.item })
    },
    /**
     * @desc   : 跳转三点事件
     * @author : 周兴
     * @date   : 2024/1/26 11:46
     */
    toPoint(e) {
      this.triggerEvent("toPoint", { item: e.currentTarget.dataset.item })
      this.setData({
        show: true,
        item: e.currentTarget.dataset.item
      })
    },
    /**
     * @desc   : 点击按钮
     * @author : 周兴
     * @date   : 2024/1/26 11:46
     */
    clickButton(e) {
      console.log('点击按钮', e, this.data.item)
      let item = this.data.item;
      item = Object.assign(item, { button: e.currentTarget.dataset.item })
      let obj = {
        item: item,
        name: e.currentTarget.dataset.item.name,
        url: e.currentTarget.dataset.item.url
      }
      this.triggerEvent("open", obj)
      this.setData({
        show: false
      })
    },
    /**
     * @desc   : 侧滑点击事件
     * @author : 于继渤
     * @date   : 2024/1/26 11:46
     */
    onCloseSwipe(e) {
      let obj = {
        item: e.currentTarget.dataset.item,
        index: e.currentTarget.dataset.index
      }
      this.triggerEvent("swipe", obj)
    },
    /**
     * @desc   : 关闭弹窗
     * @author : 周兴
     * @date   : 2024/1/26 11:46
     */
    closePop() {
      this.setData({
        show: false
      })
    },
  }
})
