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

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)) {
        message.warning('选择的工作底稿尚未处于起草阶段，无法批量提交，请重新提交!')
        resolve()
        return false
      }
      // 判断是否自己的工作底稿，批量提交只能提交自己的底稿
      const userinfo = getUserInfo()
      if (selrows.some((item) => item.AUTHOR !== userinfo.name)) {
        message.warning('只能提交自己的工作底稿，请重新选择!')
        resolve()
        return false
      }
      // 批量提交
      const params = []
      selrows.forEach((sitem) => {
        params.push(sitem.id)
      })
      xmMultipleDataService
        .multipleSubmit(params)
        .then((res) => {
          if (res.status === 200) {
            message.success('批量提交成功')
            // 刷新
            setTimeout(() => {
              dataList.clearSelection()
              dataList.refresh()
            }, 1000)
          } else {
            message.error('批量提交失败，请联系管理员')
          }
        })
        .catch((e) => {
          message.error('批量提交失败，请联系管理员')
        })
        .finally(() => {
          resolve()
        })
    }
  })
}
