diff --git a/src/apis/common/captcha.ts b/src/apis/common/captcha.ts index 5887f01..29ac1cb 100644 --- a/src/apis/common/captcha.ts +++ b/src/apis/common/captcha.ts @@ -5,11 +5,6 @@ export type * from './type' const BASE_URL = '/captcha' -/** @desc 获取图片验证码 */ -export function getCaptchaConfig() { - return http.get(`${BASE_URL}/config`) -} - /** @desc 获取图片验证码 */ export function getImageCaptcha() { return http.get(`${BASE_URL}/image`) diff --git a/src/apis/common/common.ts b/src/apis/common/common.ts index 004abbc..ab51437 100644 --- a/src/apis/common/common.ts +++ b/src/apis/common/common.ts @@ -24,6 +24,16 @@ export function listRoleDict(query?: { name: string, status: number }) { return http.get(`${BASE_URL}/dict/role`, query) } +/** @desc 查询租户套餐列表 */ +export function listTenantPackageDict(query?: { description: string, status: number }) { + return http.get(`${BASE_URL}/dict/package`, query) +} + +/** @desc 查询租户数据源列表 */ +export function listTenantDatasourceDict(query?: { description: string }) { + return http.get(`${BASE_URL}/dict/datasource`, query) +} + /** @desc 查询字典列表 */ export function listCommonDict(code: string) { return http.get(`${BASE_URL}/dict/${code}`) @@ -35,6 +45,6 @@ export function listSiteOptionDict() { } /** @desc 上传文件 */ -export function uploadFile(data: FormData) { +export function upload(data: FormData) { return http.post(`${BASE_URL}/file`, data) } diff --git a/src/apis/index.ts b/src/apis/index.ts index 453901a..90be2e0 100644 --- a/src/apis/index.ts +++ b/src/apis/index.ts @@ -3,13 +3,17 @@ export * from './auth' export * from './common' export * from './monitor' export * from './system' -export * from './code' +export * from './open' +export * from './tenant' export * from './schedule' +export * from './code' export * from './area/type' export * from './auth/type' export * from './common/type' export * from './monitor/type' export * from './system/type' -export * from './code/type' +export * from './open/type' +export * from './tenant/type' export * from './schedule/type' +export * from './code/type' diff --git a/src/apis/open/index.ts b/src/apis/open/index.ts new file mode 100644 index 0000000..57a8338 --- /dev/null +++ b/src/apis/open/index.ts @@ -0,0 +1 @@ +export * from './app' diff --git a/src/apis/tenant/datasource.ts b/src/apis/tenant/datasource.ts new file mode 100644 index 0000000..71439e4 --- /dev/null +++ b/src/apis/tenant/datasource.ts @@ -0,0 +1,36 @@ +import type * as T from './type' +import http from '@/utils/http' + +export type * from './type' + +const BASE_URL = '/tenant/datasource' + +/** @desc 查询租户数据源列表 */ +export function listTenantDatasource(query: T.TenantDatasourcePageQuery) { + return http.get>(`${BASE_URL}`, query) +} + +/** @desc 查询租户数据源详情 */ +export function getTenantDatasource(id: string) { + return http.get(`${BASE_URL}/${id}`) +} + +/** @desc 新增租户数据源 */ +export function addTenantDatasource(data: any) { + return http.post(`${BASE_URL}`, data) +} + +/** @desc 修改租户数据源 */ +export function updateTenantDatasource(data: any, id: string) { + return http.put(`${BASE_URL}/${id}`, data) +} + +/** @desc 删除租户数据源 */ +export function deleteTenantDatasource(id: string) { + return http.del(`${BASE_URL}/${id}`) +} + +/** @desc 测试租户数据源连接 */ +export function testTenantDatasourceConnection(id: string) { + return http.post(`${BASE_URL}/${id}/test/connection`) +} diff --git a/src/apis/tenant/index.ts b/src/apis/tenant/index.ts new file mode 100644 index 0000000..81a557b --- /dev/null +++ b/src/apis/tenant/index.ts @@ -0,0 +1,2 @@ +export * from './package' +export * from './datasource' diff --git a/src/apis/tenant/management.ts b/src/apis/tenant/management.ts new file mode 100644 index 0000000..abd3e70 --- /dev/null +++ b/src/apis/tenant/management.ts @@ -0,0 +1,42 @@ +import type * as T from './type' +import http from '@/utils/http' +import type { TenantCommon } from '@/utils/tenant' + +export type * from './type' + +const BASE_URL = '/tenant/management' + +/** @desc 查询租户列表 */ +export function listTenant(query: T.TenantPageQuery) { + return http.get>(`${BASE_URL}`, query) +} + +/** @desc 查询租户详情 */ +export function getTenant(id: string) { + return http.get(`${BASE_URL}/${id}`) +} + +/** @desc 新增租户 */ +export function addTenant(data: any) { + return http.post(`${BASE_URL}`, data) +} + +/** @desc 修改租户 */ +export function updateTenant(data: any, id: string) { + return http.put(`${BASE_URL}/${id}`, data) +} + +/** @desc 删除租户 */ +export function deleteTenant(id: string) { + return http.del(`${BASE_URL}/${id}`) +} + +/** @desc 多租户通用信息查询 */ +export const getTenantCommon = () => { + return http.get(`${BASE_URL}/common`) +} + +/** @desc 修改租户管理员密码 */ +export const updateTenantAdminUserPwd = (data: any, id: string) => { + return http.put(`${BASE_URL}/${id}/admin/pwd`, data) +} diff --git a/src/apis/tenant/package.ts b/src/apis/tenant/package.ts new file mode 100644 index 0000000..97ba1a8 --- /dev/null +++ b/src/apis/tenant/package.ts @@ -0,0 +1,41 @@ +import type * as T from './type' +import http from '@/utils/http' + +export type * from './type' + +const BASE_URL = '/tenant/package' + +/** @desc 查询租户套餐列表 */ +export function listTenantPackage(query: T.TenantPackagePageQuery) { + return http.get>(`${BASE_URL}`, query) +} + +/** @desc 查询租户套餐详情 */ +export function getTenantPackage(id: string) { + return http.get(`${BASE_URL}/${id}`) +} + +/** @desc 新增租户套餐 */ +export function addTenantPackage(data: any) { + return http.post(`${BASE_URL}`, data) +} + +/** @desc 修改租户套餐 */ +export function updateTenantPackage(data: any, id: string) { + return http.put(`${BASE_URL}/${id}`, data) +} + +/** @desc 删除租户套餐 */ +export function deleteTenantPackage(id: string) { + return http.del(`${BASE_URL}/${id}`) +} + +/** @desc 查询所有套餐 */ +export function listAllTenantPackage() { + return http.get(`${BASE_URL}/list`) +} + +/** @desc 查询套餐菜单 */ +export function listTenantPackageMenu() { + return http.get(`${BASE_URL}/menu/tree`) +} diff --git a/src/apis/tenant/tenant.ts b/src/apis/tenant/tenant.ts deleted file mode 100644 index e02e45c..0000000 --- a/src/apis/tenant/tenant.ts +++ /dev/null @@ -1,94 +0,0 @@ -import http from '@/utils/http' -import type { TenantCommon } from '@/utils/tenant' - -const BASE_URL = '/tenant/user' - -export interface TenantResp { - id: string - name: string - domain: string - packageId: string - status: string - expireTime: string - createTime: string - createUserString: string - updateUserString: string -} -export interface TenantDetailResp { - id: string - name: string - domain: string - packageId: string - status: string - expireTime: string - createUser: string - createTime: string - updateUser: string - updateTime: string - createUserString: string - updateUserString: string - packageName: string - menuIds: [] -} -export interface TenantQuery { - name: string - packageId: string - status: string - sort: Array -} -export interface TenantPageQuery extends TenantQuery, PageQuery {} - -/** @desc 查询租户列表 */ -export function listTenant(query: TenantPageQuery) { - return http.get>(`${BASE_URL}`, query) -} - -/** @desc 查询租户详情 */ -export function getTenant(id: string) { - return http.get(`${BASE_URL}/${id}`) -} - -/** @desc 新增租户 */ -export function addTenant(data: any) { - return http.post(`${BASE_URL}`, data) -} - -/** @desc 修改租户 */ -export function updateTenant(data: any, id: string) { - return http.put(`${BASE_URL}/${id}`, data) -} - -/** @desc 删除租户 */ -export function deleteTenant(id: string) { - return http.del(`${BASE_URL}/${id}`) -} - -/** @desc 导出租户 */ -export function exportTenant(query: TenantQuery) { - return http.download(`${BASE_URL}/export`, query) -} - -/** @desc 多租户通用信息查询 */ -export const getTenantCommon = () => { - return http.get(`${BASE_URL}/common`) -} - -/** @desc 获取租户管理账号用户名 */ -export const getTenantLoginUser = (tenantId: string) => { - return http.get(`${BASE_URL}/loginUser/${tenantId}`) -} - -/** @desc 租户管理账号信息更新 */ -export const updateTenantLoginUser = (data: any) => { - return http.put(`${BASE_URL}/loginUser`, data) -} - -/** @desc 获取套餐列表 */ -export const listAllPackage = () => { - return http.get(`${BASE_URL}/all/package`) -} - -/** @desc 获取数据连接列表 */ -export const listAllDbConnect = () => { - return http.get(`${BASE_URL}/all/dbConnect`) -} diff --git a/src/apis/tenant/tenantDbConnect.ts b/src/apis/tenant/tenantDbConnect.ts deleted file mode 100644 index 8f10983..0000000 --- a/src/apis/tenant/tenantDbConnect.ts +++ /dev/null @@ -1,65 +0,0 @@ -import http from '@/utils/http' - -const BASE_URL = '/tenant/dbConnect' - -export interface TenantDbConnectResp { - id: string - connectName: string - type: string - host: string - port: string - username: string - password: string - createUserString: string - updateUserString: string -} -export interface TenantDbConnectDetailResp { - id: string - connectName: string - type: string - host: string - port: string - username: string - password: string - createUser: string - createTime: string - updateUser: string - updateTime: string - createUserString: string - updateUserString: string -} -export interface TenantDbConnectQuery { - connectName: string - sort: Array -} -export interface TenantDbConnectPageQuery extends TenantDbConnectQuery, PageQuery {} - -/** @desc 查询租户数据连接列表 */ -export function listTenantDbConnect(query: TenantDbConnectPageQuery) { - return http.get>(`${BASE_URL}`, query) -} - -/** @desc 查询租户数据连接详情 */ -export function getTenantDbConnect(id: string) { - return http.get(`${BASE_URL}/${id}`) -} - -/** @desc 新增租户数据连接 */ -export function addTenantDbConnect(data: any) { - return http.post(`${BASE_URL}`, data) -} - -/** @desc 修改租户数据连接 */ -export function updateTenantDbConnect(data: any, id: string) { - return http.put(`${BASE_URL}/${id}`, data) -} - -/** @desc 删除租户数据连接 */ -export function deleteTenantDbConnect(id: string) { - return http.del(`${BASE_URL}/${id}`) -} - -/** @desc 导出租户数据连接 */ -export function exportTenantDbConnect(query: TenantDbConnectQuery) { - return http.download(`${BASE_URL}/export`, query) -} diff --git a/src/apis/tenant/tenantPackage.ts b/src/apis/tenant/tenantPackage.ts deleted file mode 100644 index 1ccd1c8..0000000 --- a/src/apis/tenant/tenantPackage.ts +++ /dev/null @@ -1,73 +0,0 @@ -import http from '@/utils/http' - -const BASE_URL = '/tenant/package' - -export interface TenantPackageResp { - id: string - name: string - menuIds: string - menuCheckStrictly: string - status: string - createTime: string - createUserString: string - updateUserString: string -} -export interface TenantPackageDetailResp { - id: string - name: string - menuIds: [] - menuCheckStrictly: string - status: string - createUser: string - createTime: string - updateUser: string - updateTime: string - createUserString: string - updateUserString: string -} -export interface TenantPackageQuery { - name: string - status: string - sort: Array -} -export interface TenantPackagePageQuery extends TenantPackageQuery, PageQuery {} - -/** @desc 查询租户套餐列表 */ -export function listTenantPackage(query: TenantPackagePageQuery) { - return http.get>(`${BASE_URL}`, query) -} - -/** @desc 查询租户套餐详情 */ -export function getTenantPackage(id: string) { - return http.get(`${BASE_URL}/${id}`) -} - -/** @desc 新增租户套餐 */ -export function addTenantPackage(data: any) { - return http.post(`${BASE_URL}`, data) -} - -/** @desc 修改租户套餐 */ -export function updateTenantPackage(data: any, id: string) { - return http.put(`${BASE_URL}/${id}`, data) -} - -/** @desc 删除租户套餐 */ -export function deleteTenantPackage(id: string) { - return http.del(`${BASE_URL}/${id}`) -} - -/** @desc 导出租户套餐 */ -export function exportTenantPackage(query: TenantPackageQuery) { - return http.download(`${BASE_URL}/export`, query) -} - -/** @desc 查询所有套餐 */ -export function listAllTenantPackage() { - return http.get(`${BASE_URL}/list`) -} - -/** @desc 查询套餐菜单 */ -export function listTenantPackageMenu() { - return http.get(`${BASE_URL}/menuTree`) -} diff --git a/src/apis/tenant/type.ts b/src/apis/tenant/type.ts new file mode 100644 index 0000000..00c574c --- /dev/null +++ b/src/apis/tenant/type.ts @@ -0,0 +1,73 @@ +/** 租户 */ +export interface TenantResp { + id: string + name: string + code: string + domain: string + expireTime: string + isolationLevel: number + description: number + status: string + packageId: string + datasourceId: string + createUser: string + createTime: string + updateUser: string + updateTime: string + createUserString: string + updateUserString: string + packageName: string + datasourceName: string +} +export interface TenantQuery { + description?: string + packageId?: string + status?: string + sort: Array +} +export interface TenantPageQuery extends TenantQuery, PageQuery {} + +/** 租户套餐 */ +export interface TenantPackageResp { + id: string + name: string + sort: number + menuCheckStrictly: string + description: string + status: string + menuIds: [] + createUser: string + createTime: string + updateUser: string + updateTime: string + createUserString: string + updateUserString: string +} +export interface TenantPackageQuery { + description?: string + status?: string + sort: Array +} +export interface TenantPackagePageQuery extends TenantPackageQuery, PageQuery {} + +/** 租户数据源 */ +export interface TenantDatasourceResp { + id: string + name: string + databaseType: string + host: string + port: string + username: string + description: string + createUser: string + createTime: string + updateUser: string + updateTime: string + createUserString: string + updateUserString: string +} +export interface TenantDatasourceQuery { + description?: string + sort: Array +} +export interface TenantDatasourcePageQuery extends TenantDatasourceQuery, PageQuery {} diff --git a/src/assets/icons/block-storage.svg b/src/assets/icons/block-storage.svg new file mode 100644 index 0000000..a12ac8a --- /dev/null +++ b/src/assets/icons/block-storage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/project.svg b/src/assets/icons/project.svg new file mode 100644 index 0000000..4c6b90a --- /dev/null +++ b/src/assets/icons/project.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/user-management.svg b/src/assets/icons/user-management.svg new file mode 100644 index 0000000..cede964 --- /dev/null +++ b/src/assets/icons/user-management.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/GiLeftRightPane/index.vue b/src/components/GiLeftRightPane/index.vue deleted file mode 100644 index 20ae6cd..0000000 --- a/src/components/GiLeftRightPane/index.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - - - diff --git a/src/components/SelectTenant/index.vue b/src/components/SelectTenant/index.vue index 4588eb4..4783928 100644 --- a/src/components/SelectTenant/index.vue +++ b/src/components/SelectTenant/index.vue @@ -51,7 +51,7 @@ import { useWindowSize } from '@vueuse/core' import { Message } from '@arco-design/web-vue' import { getTenantId, setTenantId } from '@/utils/tenant' -import { getTenantCommon } from '@/apis/tenant/tenant' +import { getTenantCommon } from '@/apis/tenant/management' const { width } = useWindowSize() const visible = ref(false) diff --git a/src/hooks/app/useMenu.ts b/src/hooks/app/useMenu.ts index 6d5a639..4c60201 100644 --- a/src/hooks/app/useMenu.ts +++ b/src/hooks/app/useMenu.ts @@ -1,7 +1,7 @@ import { ref } from 'vue' import type { TreeNodeData } from '@arco-design/web-vue' import { listMenuTree } from '@/apis' -import { listTenantPackageMenu } from '@/apis/tenant/tenantPackage' +import { listTenantPackageMenu } from '@/apis/tenant/package' /** 菜单模块 */ export function useMenu(options?: { onSuccess?: () => void }) { diff --git a/src/types/components.d.ts b/src/types/components.d.ts index 9a6149c..89686ef 100644 --- a/src/types/components.d.ts +++ b/src/types/components.d.ts @@ -30,7 +30,6 @@ declare module 'vue' { GiIconBox: typeof import('./../components/GiIconBox/index.vue')['default'] GiIconSelector: typeof import('./../components/GiIconSelector/index.vue')['default'] GiIframe: typeof import('./../components/GiIframe/index.vue')['default'] - GiLeftRightPane: typeof import('./../components/GiLeftRightPane/index.vue')['default'] GiOption: typeof import('./../components/GiOption/index.vue')['default'] GiOptionItem: typeof import('./../components/GiOptionItem/index.vue')['default'] GiPageLayout: typeof import('./../components/GiPageLayout/index.vue')['default'] diff --git a/src/views/open/app/index.vue b/src/views/open/app/index.vue index ea9985d..2da9606 100644 --- a/src/views/open/app/index.vue +++ b/src/views/open/app/index.vue @@ -105,7 +105,7 @@ import has from '@/utils/has' defineOptions({ name: 'OpenApp' }) const queryForm = reactive({ - sort: ['id,desc'], + sort: ['createTime,desc'], }) const { diff --git a/src/views/setting/message/index.vue b/src/views/setting/message/index.vue deleted file mode 100644 index 7b199ff..0000000 --- a/src/views/setting/message/index.vue +++ /dev/null @@ -1,146 +0,0 @@ - - - - - diff --git a/src/views/system/config/components/CaptchaSetting.vue b/src/views/system/config/components/CaptchaSetting.vue deleted file mode 100644 index 5c04e79..0000000 --- a/src/views/system/config/components/CaptchaSetting.vue +++ /dev/null @@ -1,151 +0,0 @@ - - - - - diff --git a/src/views/system/config/index.vue b/src/views/system/config/index.vue index 06ef5ba..4df30d7 100644 --- a/src/views/system/config/index.vue +++ b/src/views/system/config/index.vue @@ -56,7 +56,7 @@ const data = [ { name: '登录配置', key: 'login', icon: 'lock', permissions: ['system:loginConfig:get'], value: LoginConfig }, { name: '邮件配置', key: 'mail', icon: 'email', permissions: ['system:mailConfig:get'], value: MailConfig }, { name: '短信配置', key: 'sms', icon: 'message', permissions: ['system:smsConfig:list'], value: SmsConfig }, - { name: '存储配置', key: 'storage', icon: 'storage', permissions: ['system:storage:list'], value: StorageConfig }, + { name: '存储配置', key: 'storage', icon: 'block-storage', permissions: ['system:storage:list'], value: StorageConfig }, { name: '客户端配置', key: 'client', icon: 'mobile', permissions: ['system:client:list'], value: ClientConfig }, ] diff --git a/src/views/system/role/RoleAddModal.vue b/src/views/system/role/RoleAddModal.vue deleted file mode 100644 index 8e107b3..0000000 --- a/src/views/system/role/RoleAddModal.vue +++ /dev/null @@ -1,299 +0,0 @@ - - - - - diff --git a/src/views/tenant/datasource/AddModal.vue b/src/views/tenant/datasource/AddModal.vue new file mode 100644 index 0000000..591f69e --- /dev/null +++ b/src/views/tenant/datasource/AddModal.vue @@ -0,0 +1,187 @@ + + + + + diff --git a/src/views/tenant/tenantDbConnect/TenantDbConnectDetailDrawer.vue b/src/views/tenant/datasource/DetailDrawer.vue similarity index 52% rename from src/views/tenant/tenantDbConnect/TenantDbConnectDetailDrawer.vue rename to src/views/tenant/datasource/DetailDrawer.vue index bbfade4..532c2ec 100644 --- a/src/views/tenant/tenantDbConnect/TenantDbConnectDetailDrawer.vue +++ b/src/views/tenant/datasource/DetailDrawer.vue @@ -1,29 +1,32 @@ + + diff --git a/src/views/tenant/user/TenantAddModal.vue b/src/views/tenant/management/AddModal.vue similarity index 56% rename from src/views/tenant/user/TenantAddModal.vue rename to src/views/tenant/management/AddModal.vue index 854a9dd..5e2d1f1 100644 --- a/src/views/tenant/user/TenantAddModal.vue +++ b/src/views/tenant/management/AddModal.vue @@ -4,23 +4,25 @@ :title="title" :mask-closable="false" :esc-to-close="false" - draggable :width="width >= 500 ? 500 : '100%'" + draggable @before-ok="save" @close="reset" > - + diff --git a/src/views/tenant/management/index.vue b/src/views/tenant/management/index.vue new file mode 100644 index 0000000..12a45c3 --- /dev/null +++ b/src/views/tenant/management/index.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/views/tenant/package/TenantPackageAddModal.vue b/src/views/tenant/package/AddModal.vue similarity index 79% rename from src/views/tenant/package/TenantPackageAddModal.vue rename to src/views/tenant/package/AddModal.vue index 3624e94..ec223e8 100644 --- a/src/views/tenant/package/TenantPackageAddModal.vue +++ b/src/views/tenant/package/AddModal.vue @@ -1,20 +1,31 @@