import request from '@/utils/request'

export function getDicList(params) {
  return request({
    url: '/api/system/dictionary/getdiclist',
    method: 'get',
    params
  })
}
export function getPage(params) {
  return request({
    url: '/api/system/dictionary/gettypelist',
    method: 'get',
    params
  })
}

export function getType(params) {
  return request({
    url: '/api/system/dictionary/get-type',
    method: 'get',
    params
  })
}

export function createType(data) {
  return request({
    url: '/api/system/dictionary/create-type',
    method: 'post',
    data
  })
}

export function deleteType(data) {
  return request({
    url: '/api/system/dictionary/delete-type',
    method: 'delete',
    data
  })
}

export function getDic(params) {
  return request({
    url: '/api/system/dictionary/get-dic',
    method: 'get',
    params
  })
}

export function createDic(data) {
  return request({
    url: '/api/system/dictionary/create-dic',
    method: 'post',
    data
  })
}

export function deleteDic(data) {
  return request({
    url: '/api/system/dictionary/delete-dic',
    method: 'delete',
    data
  })
}
