import request from '@/utils/request';
import { TemplateForm, TemplateParamVO, TemplateQuery, TemplateVO } from './types';
import { AxiosPromise } from 'axios';

// 查询模板列表
export function listTemplate(query: TemplateQuery): AxiosPromise<TemplateVO[]> {
  return request({
    url: '/resource/template/list',
    method: 'get',
    params: query
  });
}

// 查询模板详细
export function getTemplate(templateId: string | number): AxiosPromise<TemplateVO> {
  return request({
    url: '/resource/template/' + templateId,
    method: 'get'
  });
}

// 新增模板
export function addTemplate(data: TemplateForm) {
  return request({
    url: '/resource/template/add',
    method: 'post',
    data: data
  });
}

// 修改模板
export function updateTemplate(data: TemplateForm) {
  return request({
    url: '/resource/template/edit',
    method: 'post',
    data: data
  });
}

// 删除模板
export function delTemplate(templateId: string | number | (string | number)[]) {
  return request({
    url: '/resource/template/remove/' + templateId,
    method: 'post'
  });
}

// 解析模板参数
export function parseTemplateParams(templateId: string | number): AxiosPromise<TemplateParamVO[]> {
  return request({
    url: '/resource/template/parse/' + templateId,
    method: 'get'
  });
}

// 保存模板参数
export function saveTemplateParams(data: TemplateParamVO[]) {
  return request({
    url: '/resource/template/params/save',
    method: 'post',
    data: data
  });
}

// 查询模板参数列表
export function listTemplateParams(templateId: string | number): AxiosPromise<TemplateParamVO[]> {
  return request({
    url: '/resource/template/params/' + templateId,
    method: 'get'
  });
}

// 预览模板
export function previewTemplate(templateId: string | number, testData: any) {
  return request({
    url: '/resource/template/preview/' + templateId,
    method: 'post',
    data: testData,
    responseType: 'blob'
  });
}
