import {getMapValueByKey} from "@/utils/objectUtil";
import {clientType,} from "@/utils/constant";

export const getOwnerName = (musicSheetExtend: any, sourceType: string) => {
  if (sourceType == 'PLATFORM') {
    return "--"
  }
  let ownerName = '';

  if (musicSheetExtend) {
    const appName = musicSheetExtend.applicationName;
    if (sourceType == 'ORG') {
      const organizationRole = musicSheetExtend.organizationRole ? '-' + musicSheetExtend.organizationRole : '';
      ownerName += appName + organizationRole
    } else if (sourceType == 'PERSON') {
      if (musicSheetExtend?.userName) {
        ownerName = musicSheetExtend.userName
      }
      let typeName = getMapValueByKey(musicSheetExtend.clientType, new Map(Object.entries(clientType)));
      typeName = typeName ? '-' + typeName : '';
      ownerName += ' (' + appName + typeName + ')'
    }
  }
  return ownerName;
}

export const copyText = (message: any, text: string) => {
  // 数字没有 .length 不能执行selectText 需要转化成字符串
  const textString = text.toString()
  let input = document.querySelector('#copy-input') as HTMLInputElement
  if (!input) {
    input = document.createElement('input')
    input.id = 'copy-input'
    input.readOnly = true // 防止ios聚焦触发键盘事件
    input.style.position = 'fixed'
    input.style.left = '-1000px'
    input.style.zIndex = '-1000'
    // 为了处理，页面滑动到底部的问题
    document.body.appendChild(input)
    // document.querySelector('#input-copy-container')?.appendChild(input)
  }

  input.value = textString
  // ios必须先选中文字且不支持 input.select();
  selectText(input, 0, textString.length)
  if (document.execCommand('copy')) {
    document.execCommand('copy')
    message.success('复制成功')
  }
  input.blur()

  // input自带的select()方法在苹果端无法进行选择，所以需要自己去写一个类似的方法
  // 选择文本。createTextRange(setSelectionRange)是input方法
  function selectText(textbox: any, startIndex: any, stopIndex: any) {
    if (textbox.createTextRange) {
      //ie
      const range = textbox.createTextRange()
      range.collapse(true)
      range.moveStart('character', startIndex) //起始光标
      range.moveEnd('character', stopIndex - startIndex) //结束光标
      range.select() //不兼容苹果
    } else {
      //firefox/chrome
      textbox.setSelectionRange(startIndex, stopIndex)
      textbox.focus()
    }
  }
}

// 格式化树
export const formatTree = (treeData: any) => {
  treeData.map((item: any) => {
    if (item) {
      item.disabled = !item.enable
    }
    if (item.children && item.children.length > 0) {
      formatTree(item.children)
    }
    return treeData;
  })
}