import { request } from '@wisdom-utils/utils/es';

const { REACT_APP_ENV } = process.env;
// 流程列表

/** @Tips: 新版接口,逐步替换老版接口 2021年12月1日 */
const BASE = '/PandaWorkFlow/WorkFlow';
const BASEURL = '/PandaWorkFlow/WorkFlow/AccountManage';
const YOURSELFER_SERVER = 'http://127.0.0.1:8181';
const url = (REACT_APP_ENV || 'dev') !== 'dev' ? `${YOURSELFER_SERVER}/${BASEURL}` : `${window.location.origin}${BASEURL}`;// 新版的链接

export const uploadFileUrl = `${BASEURL}/UploaderFiles`; // 上传文件链接
export const downloadFileUrl = `${BASEURL}/DownloadFiles`; // 下载/播放文件链接

/** @End */

/** @Tips: 增加空值检测 */
const NOTHING = [undefined, '', null, void 0]; // void 0 === void 1
/** @End */

const headers = {
  'Civ-Site': window?.globalConfig?.userInfo?.site
};


console.log('headers', headers)

// 获取字典的接口
export function getSelectName(nodeName) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `${BASEURL}/GetSelectItemList?nodeName=${nodeName}`,
    method: 'get',
  });
}

//字段校验
export function getFormFieldHideDtos(data) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `/PandaWorkFlow/WorkFlow/BPM/CaseManage/GetFormFieldHideDtos`,
    method: 'post',
    data
  })
}

//关联表单显示隐藏控制规则
export function ruleValidation(ruleContent) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `/PandaOMS/OMS/WorkFlow/RuleValidation${ruleContent ? `?ruleContent=${ruleContent}` : ''}`,
    method: 'get',
  });
}

export function getTableNumberList(tableName) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `/PandaOMS/OMS/CaseManage/GetTableNumberList${tableName ? `?tableName=${tableName}` : ''}`,
    method: 'get',
  });
}

// 选择器选项的子节点查询
export function getSelectChildName(nodeName) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `${BASEURL}/WorkChildFlow`,
    method: 'get',
  });
}

//站点选择器查询(带ID)
export function getStationIDListByUserID(id, isAll) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `/PandaWorkFlow/WorkFlow/WorkFlow/GetStationIDListByUserID?userID=${id}${'&isAll=' + isAll}`,
    method: 'get',
  });
}

// 站点选择器查询
export function getStationListByUserID(id, isAll) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `/PandaWorkFlow/WorkFlow/WorkFlow/GetStationListByUserID?userID=${id}${'&isAll=' + isAll}`,
    method: 'get',
  });
}

//自动计算字符串转化
export function getFormFieldAnalysisDtos(data) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `/PandaWorkFlow/WorkFlow/BPM/CaseManage/GetFormFieldAnalysisDtos`,
    method: 'post',
    data
  })
}

//表单字段自动计算
export function formAutomaticComputation(data) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `/PandaWorkFlow/WorkFlow/BPM/CaseManage/FormAutomaticComputation`,
    method: 'post',
    data
  })
}

//表单字段隐藏计算
export function formFieldHideComputation(data) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `/PandaWorkFlow/WorkFlow/BPM/CaseManage/FormFieldHideComputation`,
    method: 'post',
    data
  })
}

export function getGroupAndRole() {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `PandaOMS/OMS/CaseManage/GetGroupAndRole`,
    method: 'get',
  })
}

//人员选择器获取(三种形态)
export function getUserSelector(role, userID) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `/PandaWorkFlow/WorkFlow/WorkFlow/GetUserSelector?${role ? 'role=' + role : ''}${userID ? '&userID=' + userID : ''}`,
    method: 'get',
  });
}

// 人员选择器查询
export function getUserListForRole(params) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `${BASEURL}/GetUserListForRole${params.roleName ? `?roleName=${params.roleName}` : ''}`,
    method: 'get',
  });
}

//人员选择器_下拉框
export const getMenTreeByRole = (paramas) => {
  const { role, userID } = paramas
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `${BASE}/WorkFlow/GetMenTreeByRole?userID=${userID}&role=${role}`,
    method: 'get',
  })
}

//部门选择器
export const getDeptList = (params) => {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `${BASEURL}/GetDeptList`,
    method: 'post',
  })
}

// 台账的配置查询
export function GetAccountConfigInfo(accountName) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `${BASEURL}/GetAccountConfigInfo?accountName=${accountName}`,
    method: 'get',
  });
}

//台账树形查询
export function GetAccountTree(accountName) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `${BASEURL}/GetAccountTree?accountName=${accountName}`,
    method: 'get',
  });
}

// 台账的表查询
export function GetAccountPageList(data) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `${BASEURL}/GetAccountPageList`,
    method: 'post',
    data,
  });
}

export function GetTableGroupMeta(accountName) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `${BASEURL}/GetTableGroupMeta?accountName=${accountName}`,
    method: 'get'
  });
}

// NEXT需要增加分页
export function GetFieldValueFromTable(accountName, fieldName, filter) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `${BASEURL}/GetFieldValueFromTable?tableName=${accountName}&fieldName=${fieldName}${filter ? '&filter=' + filter : ''}`,
    method: 'get',
  });
}

export function getUserName(userID) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `PandaOMS/OMS/UserCenter/GetUserName?userIds=${userID}`,
    method: 'get',
  });
}

export function getGroupName(groupIds) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `PandaOMS/OMS/UserCenter/GetGroupName?groupIds=${groupIds}`,
    method: 'get',
  });
}

// 台账表单的提交
export function SubmitAccountData(tableName, key, value, data) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `${BASEURL}/EditTableData?tableName=${tableName}&key=${key}&id=${value}`,
    method: 'post',
    data: data,
  });
}

// 台账的新增
export function AddNewAccountData(data) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `${BASEURL}/`,
    method: 'post',
    data,
  });
}

/** @Tips: 新版接口,逐步替换老版接口 2021年12月1日 */
// 上传文件
export function UploadFileReturnUrl(data) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `${url}/UploaderFiles`,
    method: 'post',
    data,
  });
}

export function downloadFile(str) {
  return request({
    url: `${url}/DownloadFiles?filePath=${str}`,
    method: 'get',
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site,
      'Content-Type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
    },
    responseType: 'blob'
  });
}
/** @End */

/**
 *  @Description: 获取单条数据,使用JsonToHtml去编译
 *  @Date: 2021/9/29
 *  @Author: ChenLong
 *  @Params tableName: 需要查询的表名;includeFields:需要的字段名;id:记录id
 * */

export function GetTableDataInfo({ accountName, id }) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `${BASEURL}/GetTableDataInfo?accountName=${accountName}&id=${id}`,
    method: 'GET',
  });
}

/**
 *  @Description: 保存单条数据,使用JsonToHtml去编译
 *  @Date: 2021/11/1
 *  @Author: tianxiang
 *  @Params tableName,values
 * */

export function SaveTableDataInfo(data) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `${BASEURL}/SaveTableDataInfo`,
    method: 'post',
    data,
  });
}

/**
 *  @Description: 保存单条数据,使用JsonToHtml去编译
 *  @Date: 2021/11/1
 *  @Author: tianxiang
 *  @Params tableName,values
 * */

export function EditTableDataInfo(data) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `${BASEURL}/EditTableDataInfo`,
    method: 'post',
    data,
  });
}

export function BatchEditTableDataInfo(data) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `${BASEURL}/BatchEditTableDataInfo`,
    method: 'post',
    data,
  });
}

export function DeleteTableDataInfo(data) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `${BASEURL}/DeleteTableDataInfo`,
    method: 'post',
    data,
  });
}

//导出数据
export function ImportAccountData(options, params, data) {
  return request({
    url: `${BASEURL}/ImportAccountData`,
    method: 'post',
    ...options,
    params,
    data,
  });
}

//导出数据
export function ExportAccountData({ accountName, ids, exportAll }) {
  return request({
    url: `${BASEURL}/ExportAccountData?accountName=${accountName}&ids=${ids}&exportAll=${exportAll}`,
    method: 'get',
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site,
      'Content-Type': 'application/json; charset=UTF-8',
    },
    responseType: 'blob'
  });
}

//导出模板
export function ExportAccountModel({ accountName, exportAll }) {
  return request({
    url: `${BASEURL}/ExportAccountModel?accountName=${accountName}&exportAll=${exportAll}`,
    method: 'get',
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site,
      'Content-Type': 'application/json; charset=UTF-8',
    },
    responseType: 'blob'
  });
}

//获取数据字典
export function GetDataDictionaryList(params) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `/PandaOMS/OMS/DataManger/GetDataDictionaryList${params.nodeID ? `?nodeID=${params.nodeID}` : ''}`,
    method: 'get',
  })
}

//获取数据字典子项
export function GetSelectItemList({ nodeName }) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `PandaWorkFlow/WorkFlow/AccountManage/GetSelectItemList${nodeName ? `?nodeName=${nodeName}` : ''}`,
    method: 'get',
  })
}

//获取所有表
export function LoadTableV2() {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `PandaOMS/OMS/CaseManage/LoadTableV2`,
    method: 'get'
  })
}

//获取台账表
export function LoadLedgers() {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `PandaOMS/OMS/WorkOrderCenter/GetCM_Ledger_LoadLedgers`,
    method: 'get'
  })
}

//通过台账名称获取字段
export function QueryFields(accountName) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `PandaOMS/OMS/WorkOrderCenter/GetCMLedger_QueryFields${accountName ? `?accountName=${accountName}` : ''}`,
    method: 'get'
  })
}

//获取台账添加字段
export function QueryAddFields(accountName) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `/PandaOMS/OMS/WorkOrderCenter/GetCMLedger_QueryAddFields${accountName ? `?accountName=${accountName}` : ''}`,
    method: 'get'
  })
}

//根据坐标点获取地名
export function getLocation(location) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `/pandagis/mapserver/Tool/PlaceAround?key=6e0b74fa6de65506b360e2e801f8582f&location=${location}`,
    method: 'get'
  })
}

//模糊搜索地名
export function searchAdress({ keywords, region }) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `/pandagis/mapserver/Tool/PlaceAroundV2?key=6e0b74fa6de65506b360e2e801f8582f&keywords=${keywords}&region=${region}`,
    method: 'get'
  })
}

//获取表字段
export function LoadTableFields(paramas) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `PandaOMS/OMS/CaseManage/LoadTableFields?tableName=${paramas.tableName}`,
    method: 'get'
  })
}


//获取地图方案
export function getMaplayerByTerminalType() {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `PandaGIS/MapServer/Maplayer/GetMaplayerByTerminalType?terminalType=scheme&isBaseMap=false&v=1691659617`,
    method: 'get'
  })
}

//通过方案获取获图层
export function GetLayerList(serviceName) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `PandaGIS/MapServer/MetaData/D_GetLayerList?serviceName=${serviceName}`,
    method: 'get'
  })
}

//通过图层获取字段
export function GetLayerFields({ mapServer, layerName }) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `PandaGIS/MapServer/MetaData/GetLayerFields?mapServer=${mapServer}&layerName=${layerName}`,
    method: 'get'
  })
}

//获取表字段(无附加表)
export function ReloadTableFields(paramas) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `PandaOMS/OMS/CaseManage/ReloadTableFields?tableName=${paramas.tableName}`,
    method: 'get'
  })
}

//获取所有表
export function LoadUnattachedTables() {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `PandaOMS/OMS/CaseManage/LoadUnattachedTables`,
    method: 'get'
  })
}

//获取附加表信息中的JSON配置
export function GetTableConfigJson(paramas) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `PandaOMS/OMS/CaseManage/GetTableConfigJson?tableName=${paramas.tableName}`,
    method: 'get'
  })
}

//获取台账的json
export function GetTableJson(accountName) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `/PandaOMS/OMS/CaseManage/GetAccountTableJson?accountName=${accountName}`,
    method: 'get',
  })
}

//保存附加表信息,支持台账6.0
export function saveTableConfig(data) {
  return request({
    headers: {
      'Civ-Site': window?.globalConfig?.userInfo?.site
    },
    url: `PandaOMS/OMS/CaseManage/SaveTableConfig `,
    method: 'post',
    data
  })
}