import { downloadFileByStream } from '@/utils/file';
import { get, post } from './index';
import { ElNotification, ElButton } from 'element-plus';
import { h } from 'vue';
// import { get, post } from '@/api/request';

// const env = import.meta.env;
// const PREFIX = env.VITE_API_PREFIX_APPLICATION;

// 获取电脑机器码
export const getdeviceuuidApi = async () => {
  // const res = await get(`${PREFIX}getdeviceuuid`);
  const res = await get('/getdeviceuuid');
  return res;
};

// 启动应用
export const execApi = async (params: any) => {
  // const res = await get(`${PREFIX}exec`, params);
  const res = await get('/exec', params);
  return res;
};

/**
 * 检查本地任务下的涉及资源是否合法
 * @param params resource 资源地址
 * @returns
 */
export const checklocalresourceApi = async (params: any) => {
  // const res = await post(`${PREFIX}checklocalresource`, params);
  const res = await post('/checklocalresource', params);
  return res;
};

/**
 * 本地任务提交接口
 * @param params --subRunId 当前提交的节点id --taskName 工况名 --taskId 工况id --runId 算例id --runName 算例名 --asyncTaskId 节点同步的任务id --taskCmd 本地应用的地址 --taskPreCmd 任务前处理命令 --taskPostCmd 任务后处理命令
 * --taskCmdParam 任务命令参数 --taskPreCmdParam 任务前处理参数 --taskPostCmdParam --fileIds 下载文件的id列表 --fileNames 下载文件的名称列表 --fileType 关闭应用后回传的文件类型
 * --owner 任务发起人 --tenantId 团队id --userId 用户id --localAppName 本地应用名称 --localAppVersion 本地应用版本 --uploadId 回传文件夹的id
 * @returns
 */
export const submittaskApi = async (params: any) => {
  // const res = await post(`${PREFIX}submittask`, params);
  const res = await post('/submittask', params);
  return res;
};

/**
 * 取消本地任务接口
 * @param params taskid
 * @returns
 */
export const canceltaskApi = async (params: any) => {
  // const res = await get(`${PREFIX}canceltask`, params);
  const res = await get('/canceltask', params);
  return res;
};

/**
 * 查询本地任务日志接口
 * @param params taskid logfile page lines
 * @returns
 */
export const querytasklogApi = async (params: any) => {
  // const res = await get(`${PREFIX}querytasklog`, params);
  const res = await get('/querytasklog', params);
  return res;
};

const openDownLoadFun = () => {
  downloadFileByStream(7613);
};

const startFun = () => {
  // 启动插件
  const a = document.createElement('a');
  a.style.display = 'none';
  a.href = 'bydAssistant://';
  a.click();

  setTimeout(async () => {
    const res: any = await getdeviceuuidApi();
    if (res) {
      const uuid = res
        .replace('UUID', '')
        .replace(/\ +/g, '')
        .replace(/[\r\n]/g, '');

      localStorage.setItem('USER_UUID', uuid);
    }
  }, 5000);
};

// 启动插件
export const startupPlugin = () => {
  ElNotification({
    title: '没有检测到插件存在，无法获取用户信息，请打开插件或下载安装后再打开',
    type: 'warning',
    message: () =>
      h(
        'div',
        {
          class: 'el-notification-button-box',
        },
        [
          h(
            ElButton,
            {
              onClick: () => openDownLoadFun(),
              type: 'primary',
            },
            '安装'
          ),
          h(
            ElButton,
            {
              onClick: () => startFun(),
            },
            '启动'
          ),
        ]
      ),
  });
};
