import { defHttp } from '/@/utils/http/axios';

import { Modal } from 'ant-design-vue';



enum Api {

  list = '/sys/dataSource/list',

  save = '/sys/dataSource/add',

  edit = '/sys/dataSource/edit',

  get = '/sys/dataSource/queryById',

  delete = '/sys/dataSource/delete',

  testConnection = '/online/cgreport/api/testConnection',

  deleteBatch = '/sys/dataSource/deleteBatch',

  exportXlsUrl = 'sys/dataSource/exportXls',

  importExcelUrl = 'sys/dataSource/importExcel',

}

/**

 * 导出api

 */

export const getExportUrl = Api.exportXlsUrl;

/**

 * 导入api

 */

export const getImportUrl = Api.importExcelUrl;



/**

 * 查询数据源列表

 * @param params

 */

export const getDataSourceList = (params) => {

  return defHttp.get({ url: Api.list, params });

};



/**

 * 保存或者更新数据源

 * @param params

 */

export const saveOrUpdateDataSource = (params, isUpdate) => {

  let url = isUpdate ? Api.edit : Api.save;

  return defHttp.post({ url: url, params });

};



/**

 * 查询数据源详情

 * @param params

 */

export const getDataSourceById = (params) => {

  return defHttp.get({ url: Api.get, params });

};



/**

 * 删除数据源

 * @param params

 */

export const deleteDataSource = (params, handleSuccess) => {

  return defHttp.delete({ url: Api.delete, data: params }, { joinParamsToUrl: true }).then(() => {

    handleSuccess();

  });

};



/**

 * 测试连接

 * @param params

 */

export const testConnection = (params) => {

  return defHttp.post({ url: Api.testConnection, params });

};



/**

 * 批量删除数据源

 * @param params

 */

export const batchDeleteDataSource = (params, handleSuccess) => {

  Modal.confirm({

    title: '确认删除',

    content: '是否删除选中数据',

    okText: '确认',

    cancelText: '取消',

    onOk: () => {

      return defHttp.delete({ url: Api.deleteBatch, data: params }, { joinParamsToUrl: true }).then(() => {

        handleSuccess();

      });

    },

  });

};