import { message, Modal } from 'ant-design-vue'
import xmMultipleDataService from './xm-multiple-data-service'
import { getUserInfo } from '@/common/store-mixin'

export default function ({ button, eventScript, context: { args, dataList } }) {
  return new Promise((resolve) => {
    const selrows = dataList.selectedRows
    if (selrows && selrows[0]) {
      // 判断是否均为起草环节单据
      if (selrows.some((item) => item.flowStatus !== 0)) {
        Modal.error({
          title: '删除失败：存在不是起草状态的数据',
        })
        // }  else if (
        //   selrows.some((item) => item.CREATOR_NAME && item.CREATOR_NAME !== getUserInfo().name)
        // ) {
        //   // 判断当前人不是创建人的不可删除
        //   Modal.error({
        //     title: '删除失败：存在不是本人起草的数据',
        //   })
      } else {
        const instIds = []
        selrows.forEach((sitem) => {
          instIds.push(sitem.instId)
        })
        Modal.confirm({
          title: '你确定删除这项内容吗？',
          content: '删除这条数据后，就无法恢复初始的状态。',
          okText: '删除',
          okType: 'danger',
          onOk: () => {
            this.loading = true
            const params = {
              flowCallbackBeanName: 'formBeanCleanerCallBack',
              processInstanceIds: instIds.join(','),
            }
            xmMultipleDataService
              .fndeleteflow(params)
              .then((res) => {
                if (res.status === 200) {
                  message.success('删除成功')
                  resolve()
                  setTimeout(() => {
                    dataList.clearSelection()
                    dataList.refresh()
                    this.loading = false
                  }, 1000)
                } else {
                  message.error('删除失败，请联系管理员')
                }
              })
              .catch((e) => {
                if (e?.response?.data?.message?.includes('权限')) {
                  message.error('删除失败：只能删除本人的草稿文件')
                  return
                }
                message.error('删除失败，请联系管理员')
              })
          },
        })
      }
    } else {
      Modal.info({
        content: '请选择需要删除的文件',
      })
    }

    resolve()
  })
}
