import store from '@/store'
import { MessageFu } from './message'
import { getTokenInfo } from './storage'
import history from './history'
import { Typetable } from '@/pages/Zother/data'

// 看下有没有权限
export const authorityFu = (id: number, txt: string, fu: () => void, txt2?: string) => {
  const authorityIds = store.getState().A0Layout.authorityIds

  if (authorityIds.includes(id)) fu()
  else MessageFu.warning(txt2 ? txt2 : `您没有 ${txt} 页面权限!`)
}

// 列表页面的审批按钮是否显示，true为显示
export const tableListAuditBtnFu = (item: Typetable) => {
  let flag = false
  const { status, currentAuditUserIds } = item
  // 当前用户id
  const myId = (getTokenInfo().user || { id: 0 }).id
  //  当前节点审批人
  const arr3 = (currentAuditUserIds || '').split(',').map((v: any) => Number(v))

  if (status === 2 && arr3.includes(myId)) flag = true

  return flag
}

// 编辑页面 各个按钮的显示状态
export const editBtnShowFu = (status: number, creatorId: number) => {
  const arr: string[] = []

  // 当前用户id
  const myId = (getTokenInfo().user || { id: 0 }).id

  if (creatorId === myId) {
    //  -重新发起：未通过，且当前用户为申请创建人；点击后带入数据重新创建申请
    if (status === 3) arr.push('重新发起')
    // - 撤回：待审批，且当前用户为申请创建人
    if (status === 2) arr.push('撤回')
    // - 发起：草稿，且当前用户为申请创建人
    if (status === 1) arr.push('发起')

    // - 编辑：草稿/未通过，且当前用户为申请创建人
    // - 删除：草稿/未通过，且当前用户为申请创建人
    if ([1, 3].includes(status)) {
      arr.push('删除')
      arr.push('编辑')
    }
  }
  return arr
}

// 详情页移动到顶部
export const editPageToTopFu = () => {
  const dom: HTMLDivElement = document.querySelector('.editMain')!

  if (dom) {
    dom.scrollTo({ top: 0, behavior: 'smooth' })
  }
}

// 详情页跳转
export const pageSkitFu = (path: string, key: string, id: number, txt?: string, txt2?: string) => {
  history.replace(`${path}_edit/${key}/${id}`)
  editPageToTopFu()
  if (txt) MessageFu.success(`${txt2 ? txt2 + '，' : ''}已跳转至${txt}页面`)
}
