这是基于vue-vben-admin 模板适用于abp Vnext的前端管理项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

135 lines
3.8 KiB

import { pagerFormat } from '@/utils'
import { ListResultDto, PagedResultDto, PagedAndSortedResultRequestDto, FullAuditedEntityDto } from './types'
import ApiService from './serviceBase'
const serviceUrl = process.env.VUE_APP_BASE_API
export default class TenantService {
public static findTenantByName(name: string) {
let _url = '/api/abp/multi-tenancy/tenants/by-name/'
_url += name
return ApiService.Get<FindTenantResult>(_url, serviceUrl)
}
public static findTenantById(id: string) {
let _url = '/api/abp/multi-tenancy/tenants/by-id/'
_url += id
return ApiService.Get<FindTenantResult>(_url, serviceUrl)
}
public static getTenantById(id: string) {
let _url = '/api/tenant-management/tenants/'
_url += id
return ApiService.Get<TenantDto>(_url, serviceUrl)
}
public static getTenants(payload: TenantGetByPaged) {
let _url = '/api/tenant-management/tenants'
_url += '?filter=' + payload.filter
_url += '&sorting=' + payload.sorting
// 因为abp设计的原因, 需要前端组合页面
_url += '&skipCount=' + pagerFormat(payload.skipCount) * payload.maxResultCount
_url += '&maxResultCount=' + payload.maxResultCount
return ApiService.Get<PagedResultDto<TenantDto>>(_url, serviceUrl)
}
public static createTenant(payload: TenantCreateOrEdit) {
const _url = '/api/tenant-management/tenants'
return ApiService.Post<TenantDto>(_url, payload, serviceUrl)
}
public static changeTenantName(id: string, name: string) {
let _url = '/api/tenant-management/tenants/'
_url += id
return ApiService.Put<TenantDto>(_url, { name: name }, serviceUrl)
}
public static deleteTenant(id: string) {
let _url = '/api/tenant-management/tenants/'
_url += id
return ApiService.Delete(_url, serviceUrl)
}
public static getTenantConnections(id: string) {
let _url = '/api/tenant-management/tenants/'
_url += id + '/concatenation'
return ApiService.Get<ListResultDto<TenantConnectionString>>(_url, serviceUrl)
}
public static getTenantConnectionByName(id: string, name: string) {
let _url = '/api/tenant-management/tenants/'
_url += id + '/concatenation/'
_url += name
return ApiService.Get<TenantConnectionString>(_url, serviceUrl)
}
public static setTenantConnection(id: string, payload: TenantConnectionString) {
let _url = '/api/tenant-management/tenants/'
_url += id + '/concatenation'
return ApiService.Put<TenantConnectionString>(_url, payload, serviceUrl)
}
public static deleteTenantConnectionByName(id: string, name: string) {
let _url = '/api/tenant-management/tenants/'
_url += id + '/concatenation/'
_url += name
return ApiService.Delete(_url, serviceUrl)
}
}
/** 租户查询过滤对象 */
export class TenantGetByPaged extends PagedAndSortedResultRequestDto {
/** 查询过滤字段 */
filter: string | undefined
constructor() {
super()
this.filter = ''
this.sorting = ''
this.skipCount = 1
this.maxResultCount = 25
}
}
/** 租户创建对象 */
export class TenantCreateOrEdit {
/** 管理员邮件地址 */
adminEmailAddress = ''
/** 管理员密码 */
adminPassword = ''
/** 租户名称 */
name = ''
public static empty() {
return new TenantCreateOrEdit()
}
}
/** 租户对象 */
export class TenantDto extends FullAuditedEntityDto {
/** 租户标识 */
id!: string
/** 租户名称 */
name!: string
}
/** 租户连接字符串 */
export class TenantConnectionString {
/** 名称 */
name!: string
/** 值 */
value!: string
public static empty() {
const tenantConnection = new TenantConnectionString()
tenantConnection.name = ''
tenantConnection.value = ''
return tenantConnection
}
}
export class FindTenantResult {
name!: string
tenantId!: string
success!: boolean
}