/*******************************************************************************
 * Copyright(c) 2022 dongke All rights reserved. / Confidential
 * 类的信息：
 *		1.程序名称：
 *		2.组织机构列表
 * 编辑履历：
 *		作者				日期					版本				修改内容
 *		王英杰		   2024-2-12	    1.00		   	    
 *******************************************************************************/
const Constants = require('@/utils/Constants.js');
const mixins = require('@/mixins/index.js')
const util = require('@/utils/util.js')
const app = getApp()
Page({
  mixins: [mixins],
  /**
   * 页面的初始数据
   */
  data: {
    show:true,
    addForm: {},
    // 路由
    routeObjName: 'org',
    // 不分页
    pageFlag: false,
    // 一级部门
    tableTopData: [],
    // 原始数据
    tableDataSocial: null,
  },
  /**
   * @desc : 设置查询参数
   * @date : 2024/2/1 15:49
   * @author : 王英杰
   */
  setSearchParams(params) {
    params.pageSize = null
    params.currentPage = null
    let item = this.data.item;
    if (item) {
      params.orgId = item.editFlag ? (item.orgId_social || null) : null
      params.parentId = item.editFlag ? (item.parentId_social || null) : null
    }
    return params
  },

  /**
   * @desc : 查询
   * @date : 2024/2/1 15:49
   * @author : 王英杰
   */
  getData(params) {
    return this.excute(this.data.service, this.data.service.selectChooseOrg, params);
  },
  /**
 * @desc : 查询 后续处理
 * @date : 2024/2/1 15:49
 * @author : 王英杰
 */
  handleSearchData(data) {
    let tableData = util.convertToChildren(data, 'parentId', 'orgId');
    // // 先获取二级
    // let filters = data.filter(it => it.levelNo == 2);
    // let childs = []
    // if (filters && filters.length > 0) {
    //   filters.forEach(it => {
    //     // 再获取二级的子级，根据levelCode过滤
    //     childs = data.filter(t => t.levelCode.startsWith(it.levelCode) && t.levelNo > 2);
    //     it.children = childs
    //     tableData.push(it);
    //   })
    // }
    // let tableTopData = data.filter(it => it.levelNo == 1);

    this.setData({
      tableDataSocial: data,
      tableData: tableData,
      // tableTopData: tableTopData
    })
    const myComponent = this.selectComponent('#treeSelect');
    myComponent.setDataFromPage(this.data.tableData);
    console.log('tableData', tableData);
  },
  /**
   * @desc : 过滤数据
   * @date : 2024/4/29 15:49
   * @author : 周兴
   */
  filterData(e) {
    let searchForm = this.data.searchForm;
    let searchText = null;
    let tableDataSocial = this.data.tableDataSocial;
    if(!tableDataSocial)return;
    tableDataSocial = [...tableDataSocial]
    if (searchForm) {
      this.setData({
        show:false
      })
      searchForm = JSON.parse(searchForm)
      searchText = searchForm.searchText;
      if (searchText) {
        // 1 先过滤出数据
        let childs = tableDataSocial.filter(it => it.orgName.indexOf(searchText) >= 0);
        let returnTable = []
        console.log('childs',childs);
        // 如果查到，需要查出其父级
        if (childs && childs.length > 0) {
          let filters = null;
          let fils = null;
          childs.forEach(it => {
            filters = tableDataSocial.filter(t=>it.levelCode.startsWith(t.levelCode));
            if(filters && filters.length > 0){
              filters.forEach(f=>{
                delete f.children 
                // 判断在返回结果中是否已经包括这条数据
                fils = returnTable.filter(c=>c.orgId == f.orgId)
                if(!fils || fils.length == 0){
                  returnTable.push(f);
                }
              })
            }
          })
          let data = util.convertToChildren(returnTable, 'parentId', 'orgId');
          this.setData({
            tableData:data,
            show:true
          })
        }
      }else{
        let data = util.convertToChildren(tableDataSocial, 'parentId', 'orgId');
        this.setData({
          tableData:data,
          show:true
        })
      }
    }

  },
  /**
   * @desc : 选择数据
   * @date : 2024/4/29 15:49
   * @author : 周兴
   */
  chooseData(e) {
    let item = e.currentTarget.dataset.item
    const eventChannel = this.getOpenerEventChannel();
    eventChannel.emit('bindData', {
      data: {
        id: item.orgId,
        name: item.orgName
      }
    })
    wx.navigateBack({
      delta: 1
    })
  },

})