import request from '@/utils/request'

export function getList(params) {
  return request({
    url: '/api/system/auditscope/list-api',
    method: 'get',
    params
  })
}
export function getItem(params) {
  return request({
    url: '/api/system/auditscope/get-item',
    method: 'get',
    params
  })
}

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

export function deleteAuditScope(data) {
  return request({
    url: '/api/system/auditscope/delete-auditscope',
    method: 'delete',
    data
  })
}
