// 控制页面按钮权限，有2种做法，一种是写在这里；一种写在utils
import store from '@/store'
import { removeClass, addClass } from '@/utils/index'
var compilerUserId, counselorUserId

function checkPermission(el, binding) {
  const userId = store.getters.userId,
    userInfo = store.getters.userInfo,
    roles = userInfo && userInfo.roles,
    params = binding.value ? binding.value : null
  if (params) {
    switch (params.type) {
      case 'createFMEA':
        // 全部组员都可以创建主表
        if (!(roles && roles.length > 0)) {
          el.style.display = 'none'
        }
        break
      case 'createConfig':
        // roles
        if (
          roles &&
          roles.length > 0 &&
          (getElemsFromArr('roleCode', roles).indexOf('owner') > -1 ||
            getElemsFromArr('roleCode', roles).indexOf('counselor') > -1)
        ) {
        } else {
          el.style.display = 'none'
        }
        break
      case 'updateFMEA':
      case 'editFMEA':
      case 'updateConfig':
      case 'editConfig':
      case 'updateRecycle':
        // 从传参中获取compilerUserId，counselorUserId
        compilerUserId =
          params && params.data && params.data.compilerUserId
            ? params.data.compilerUserId
            : null
        // var organizeId =
        //   params && params.data && params.data.organizeId
        //     ? params.data.organizeId
        //     : null
        counselorUserId =
          params &&
          params.data &&
          params.data.counselorUserId &&
          params.data.counselorUserId.length > 0
            ? params.data.counselorUserId
            : null

        if (compilerUserId && compilerUserId === userId) {
          // 如果编制者Id===登录用户Id，那么该用户有编辑的权限
          removeClass(el, 'hide')
        }
        // else if (counselorUserId && counselorUserId.indexOf(userId) > -1) {
        //   // 如果登录用户在organizeId="NR0001"部门下的roleCode==="counselor"
        //   // 那么该用户拥有该部门下的全部DFMEA,PFMEA.CONFIG模块的编辑权限
        //   removeClass(el, 'hide')
        // }
        else {
          addClass(el, 'hide')
        }
        break
      default:
        break
    }
  } else {
    // 从sessionStorage中获取compilerUserId，counselorUserId
    var sessionData =
      store.getters.fmeaId && sessionStorage.getItem(store.getters.fmeaId)
    compilerUserId = sessionData && JSON.parse(sessionData).compilerUserId
    counselorUserId = sessionData && JSON.parse(sessionData).counselorUserId
    if (compilerUserId && compilerUserId === userId) {
      // 如果编制者Id===登录用户Id，那么该用户有编辑的权限
      removeClass(el, 'hide')
    }
    // else if (counselorUserId && counselorUserId.indexOf(userId) > -1) {
    //   // 如果登录用户在organizeId="NR0001"部门下的roleCode==="counselor"
    //   // 那么该用户拥有该部门下的全部DFMEA,PFMEA.CONFIG模块的编辑权限
    //   removeClass(el, 'hide')
    // }
    else {
      addClass(el, 'hide')
    }
  }

  // if (binding.value) {
  //   el.style.display = 'none'
  // }
}

function getElemsFromArr(key, arr) {
  var tempArr = []
  if (Array.isArray(arr) && arr.length > 0) {
    for (let index = 0; index < arr.length; index++) {
      tempArr.push(arr[index][key])
    }
  }
  return tempArr
}

export default {
  inserted(el, binding) {
    if (
      binding.value &&
      binding.value.data &&
      binding.value.data.fmeaId === 'c96ee2e36fb24b8a812244b909684d1d'
    ) {
    }
    checkPermission(el, binding)
  },
  update(el, binding) {
    if (
      binding.value &&
      binding.value.data &&
      binding.value.data.fmeaId === 'c96ee2e36fb24b8a812244b909684d1d'
    ) {
    }
    checkPermission(el, binding)
  }
}
