const Constants = require('@/utils/Constants.js');
const util = require('@/utils/util.js')
const mixins = require('@/mixins/index.js')
Page({
  mixins: [mixins],
  /**
   * 页面的初始数据
   */
  data: {
    routeObjName: 'staffRight',
    tableData: [],
    allchecked: false,
    formMode: Constants.formMode.index
  },
  /**
    * @desc : 切換是否全部
    * @date : 2024/2/1 15:49
    * @author : 姜永辉
    */
  onChangeSwitch(e) {
    this.setData({
      allchecked: e.detail
    })
    let tableData = this.data.tableData
    if (tableData && tableData.length > 0) {
      tableData.forEach(res => {
        res.checked = e.detail
        if (res.subMenus && res.subMenus.length > 0) {
          res.subMenus.forEach(it => {
            it.checked = e.detail
          })
        }
      })
    }

    this.setData({
      tableData: tableData
    })
  },

  /**
  * @desc : 保存的參數設置
  * @date : 2024/2/1 15:49
  * @author : 姜永辉
  */
  setParams(params) {
    // 修改之后的 值
    params = Object.assign({}, params, this.data.item);
    params.roleIds = (params.roleIds && params.roleIds.length > 0) ? params.roleIds.join(',') : undefined
    let tableData = this.data.tableData
    //格式化数据
    let tableDataTemp = []
    tableData.forEach(res => {
      if (res.checked) {
        tableDataTemp.push({
          funUuid: res.funUuid,
          appCode: res.appCode
        })
      }
      if (res.subMenus && res.subMenus.length > 0) {
        res.subMenus.forEach(it => {
          if (it.checked) {
            tableDataTemp.push({
              funUuid: it.funUuid,
              appCode: it.appCode
            })
          }
        })
      }
    })

    params.staffRightList = tableDataTemp
    return params
  },

  /**
 * @desc : 校验-需要额外校验就在此函数写
 * @date : 2024/2/1 15:49
 * @author : 姜永辉
 */
  validData() {
    let params = this.data.formData
    // 修改之后的 值 
    return true;
  },

  /**
  * @desc : 保存数据服务
  * @date : 2024/2/1 15:49
  * @author : 姜永辉
  */
  saveData(params) { 
    return this.excute(this.data.service, this.data.service.saveStaffRight, params)
  },

  /**
   * @desc : 处理接口返回数据
   * @date : 2024/2/1 15:49
   * @author : 姜永辉
   */
  handleSearchData(tableData) { 
    let allchecked = true
    tableData.forEach(it => {
      if (!it.checked) {
        allchecked = false
        return
      }
    })
    this.setData({
      tableData: util.convertToChildren(tableData),
      allchecked,
    })
  },

  /**
   * @desc : 设置额外参数
   * @date : 2024/2/1 15:49
   * @author : 姜永辉
   */
  setSearchParams(params) { 
    params.staffId = this.data.item.staffId
    return params
  },
  /**
   * @desc : 获取数据
   * @date : 2024/2/1 15:49
   * @author : 姜永辉
   */
  getData(params) {
    return this.excute(this.data.service, this.data.service.getStaffRight, params)
  },
  /**
    * @desc : 点击功能权限的返回值
    * @date : 2024/2/1 15:49
    * @author : 姜永辉
    */
  obtainList(e) { 
    this.setData({
      tableData: e.detail.list
    })
  },

  /**
  * @desc : 页面设置初始信息
  * @date : 2024/2/1 15:49
  * @author : 姜永辉
  */
  loadInit() {
    //接收父页面传递的参数 
  }, 
})