diff --git a/.env.base b/.env.base index 176d569..fe5783c 100644 --- a/.env.base +++ b/.env.base @@ -4,11 +4,11 @@ VITE_NODE_ENV=development VITE_DEV=true # 请求路径 -# VITE_BASE_URL='http://localhost:48080' +VITE_BASE_URL='http://localhost:48080' # VITE_BASE_URL='http://47.98.161.246:48080' # VITE_BASE_URL='http://114.55.169.15:48080' -VITE_BASE_URL='http://114.215.207.150:48080' +# VITE_BASE_URL='http://114.215.207.150:48080' # 上传路径 VITE_UPLOAD_URL='http://47.98.161.246:48080/admin-api/system/file/upload' diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..4e71344 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "i18n-ally.localesPaths": [ + "src/locales" + ] +} \ No newline at end of file diff --git a/src/api/system/menu/index.ts b/src/api/system/menu/index.ts index 39cdb91..7f8cb41 100644 --- a/src/api/system/menu/index.ts +++ b/src/api/system/menu/index.ts @@ -24,8 +24,8 @@ export const getServiceAppList = () => { } // 查询菜单(精简)列表 -export const getSimpleMenusList = () => { - return request.get({ url: '/admin-api/system/menu/list-all-simple' }) +export const getSimpleMenusList = (params?) => { + return request.get({ url: '/admin-api/system/menu/list-all-simple', params }) } // 查询菜单列表 diff --git a/src/api/system/tenant/index.ts b/src/api/system/tenant/index.ts new file mode 100644 index 0000000..b883979 --- /dev/null +++ b/src/api/system/tenant/index.ts @@ -0,0 +1,76 @@ +import request from '@/config/axios' + +export interface TenantVO { + id: number + name: string + contactName: string + contactMobile: string + status: number + domain: string + packageId: number + username: string + password: string + expireTime: Date + accountCount: number + websites: string[] + createTime: Date +} + +export interface TenantPageReqVO extends PageParam { + name?: string + contactName?: string + contactMobile?: string + status?: number + createTime?: Date[] +} + +export interface TenantExportReqVO { + name?: string + contactName?: string + contactMobile?: string + status?: number + createTime?: Date[] +} + +// 查询租户列表 +export const getTenantPage = (params: TenantPageReqVO) => { + return request.get({ url: '/admin-api/system/tenant/page', params }) +} + +// 查询租户详情 +export const getTenant = (id: number) => { + return request.get({ url: '/admin-api/system/tenant/get?id=' + id }) +} + +// 获取租户精简信息列表 +export const getTenantList = () => { + return request.get({ url: '/admin-api/system/tenant/simple-list' }) +} + +// 新增租户 +export const createTenant = (data: TenantVO) => { + return request.post({ url: '/admin-api/system/tenant/create', data }) +} + +// 修改租户 +export const updateTenant = (data: TenantVO) => { + return request.put({ url: '/admin-api/system/tenant/update', data }) +} + +// 删除租户 +export const deleteTenant = (id: number) => { + return request.delete({ url: '/admin-api/system/tenant/delete?id=' + id }) +} + +// 批量删除租户 +export const deleteTenantList = (ids: number[]) => { + return request.delete({ + url: '/admin-api/system/tenant/delete-list', + params: { ids: ids.join(',') } + }) +} + +// 导出租户 +export const exportTenant = (params: TenantExportReqVO) => { + return request.download({ url: '/admin-api/system/tenant/export-excel', params }) +} diff --git a/src/api/system/tenantInstance/index.ts b/src/api/system/tenantInstance/index.ts new file mode 100644 index 0000000..484cdab --- /dev/null +++ b/src/api/system/tenantInstance/index.ts @@ -0,0 +1,77 @@ +import request from '@/config/axios' + +export interface TenantInstanceVO { + instanceId: number + tenantId: number + serviceId: number + instanceName: string + menuIds: string + instanceType: number + instanceIcon: string + dbUrl: string + dbName: string + dbUsername: string + dbPassword: string + status: number + creator: string + createTime: Date + updater: string + updateTime: Date + deleted: boolean +} + +export interface TenantInstancePageReqVO extends PageParam { + tenantId?: number + serviceId?: number + instanceName?: string + status?: number + createTime?: Date[] +} + +export interface TenantInstanceExportReqVO { + tenantId?: number + serviceId?: number + instanceName?: string + status?: number + createTime?: Date[] +} + +// 查询租户实例列表 +export const getTenantInstancePage = (params: TenantInstancePageReqVO) => { + return request.get({ url: '/admin-api/system/serviceInstance/all/page', params }) +} + +// 查询租户实例详情 +export const getTenantInstance = (instanceId: number) => { + return request.get({ url: '/admin-api/system/serviceInstance/get?instanceId=' + instanceId }) +} + +// 新增租户实例 +export const createTenantInstance = (data: TenantInstanceVO) => { + return request.post({ url: '/admin-api/system/serviceInstance/create', data }) +} + +// 修改租户实例 +export const updateTenantInstance = (data: TenantInstanceVO) => { + return request.put({ url: '/admin-api/system/serviceInstance/update', data }) +} + +// 删除租户实例 +export const deleteTenantInstance = (instanceId: number) => { + return request.delete({ + url: '/admin-api/system/serviceInstance/delete?instanceId=' + instanceId + }) +} + +// 批量删除租户实例 +export const deleteTenantInstanceList = (instanceIds: number[]) => { + return request.delete({ + url: '/admin-api/system/serviceInstance/delete-list', + params: { instanceIds: instanceIds.join(',') } + }) +} + +// 导出租户实例 +export const exportTenantInstance = (params: TenantInstanceExportReqVO) => { + return request.download({ url: '/admin-api/system/serviceInstance/export-excel', params }) +} diff --git a/src/api/system/tenantPackage/index.ts b/src/api/system/tenantPackage/index.ts new file mode 100644 index 0000000..875c5f9 --- /dev/null +++ b/src/api/system/tenantPackage/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +export interface TenantPackageVO { + id: number + name: string + status: number + remark: string + creator: string + updater: string + updateTime: string + menuIds: number[] + createTime: Date +} + +// 查询租户套餐列表 +export const getTenantPackagePage = (params: PageParam) => { + return request.get({ url: '/admin-api/system/tenant-package/page', params }) +} + +// 获得租户套餐 +export const getTenantPackage = (id: number) => { + return request.get({ url: '/admin-api/system/tenant-package/get?id=' + id }) +} + +// 新增租户套餐 +export const createTenantPackage = (data: TenantPackageVO) => { + return request.post({ url: '/admin-api/system/tenant-package/create', data }) +} + +// 修改租户套餐 +export const updateTenantPackage = (data: TenantPackageVO) => { + return request.put({ url: '/admin-api/system/tenant-package/update', data }) +} + +// 删除租户套餐 +export const deleteTenantPackage = (id: number) => { + return request.delete({ url: '/admin-api/system/tenant-package/delete?id=' + id }) +} + +// 批量删除租户套餐 +export const deleteTenantPackageList = (ids: number[]) => { + return request.delete({ + url: '/admin-api/system/tenant-package/delete-list', + params: { ids: ids.join(',') } + }) +} + +// 获取租户套餐精简信息列表 +export const getTenantPackageList = () => { + return request.get({ url: '/admin-api/system/tenant-package/simple-list' }) +} diff --git a/src/components/Table/src/Table.vue b/src/components/Table/src/Table.vue index 8ca5968..e4ac697 100644 --- a/src/components/Table/src/Table.vue +++ b/src/components/Table/src/Table.vue @@ -55,7 +55,7 @@ export default defineComponent({ // 注册 onMounted(() => { const tableRef = unref(elTableRef) - emit('register', tableRef?.$parent, elTableRef) + emit('register', tableRef?.$parent, elTableRef.value) }) const pageSizeRef = ref(props.pageSize) diff --git a/src/layout/components/Logo/src/Logo.vue b/src/layout/components/Logo/src/Logo.vue index 7ae9c02..2beeb4d 100644 --- a/src/layout/components/Logo/src/Logo.vue +++ b/src/layout/components/Logo/src/Logo.vue @@ -78,7 +78,7 @@ watch( } ]" > - 莳松云 + 莳松云 diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index 9896640..566c2ff 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -33,23 +33,23 @@ const { t } = useI18n() } **/ const remainingRouter: AppRouteRecordRaw[] = [ - { - path: '/redirect', - component: Layout, - name: 'Redirect', - children: [ - { - path: '/redirect/:path(.*)', - name: 'Redirect', - component: () => import('@/views/Redirect/Redirect.vue'), - meta: {} - } - ], - meta: { - hidden: true, - noTagsView: true - } - }, + // { + // path: '/redirect', + // component: Layout, + // name: 'Redirect', + // children: [ + // { + // path: '/redirect/:path(.*)', + // name: 'Redirect', + // component: () => import('@/views/Redirect/Redirect.vue'), + // meta: {} + // } + // ], + // meta: { + // hidden: true, + // noTagsView: true + // } + // }, { path: '/', component: Layout, @@ -107,17 +107,17 @@ const remainingRouter: AppRouteRecordRaw[] = [ ] }, // { - // path: '/Basic', + // path: '/system', // component: Layout, - // name: 'Basic', + // name: 'system', // meta: { - // title: '菜单管理' + // title: '系统管理' // }, - // redirect: '/Basic/menu', + // redirect: 'system/menu', // children: [ // { // path: 'menu', - // component: () => import('@/views/Basic/Menu/index.vue'), + // component: () => import('@/views/system/Menu/index.vue'), // name: 'Menu', // meta: { // canTo: true, diff --git a/src/store/modules/app.ts b/src/store/modules/app.ts index 326518b..d6d685a 100644 --- a/src/store/modules/app.ts +++ b/src/store/modules/app.ts @@ -172,7 +172,7 @@ export const useAppStore = defineStore('app', { }, getFooter(): boolean { return this.footer - }, + } }, actions: { setBreadcrumb(breadcrumb: boolean) { @@ -264,7 +264,7 @@ export const useAppStore = defineStore('app', { }, setFooter(footer: boolean) { this.footer = footer - }, + } } }) diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 0110c0f..16185d4 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -2,7 +2,7 @@ import { store } from '../index' import { defineStore } from 'pinia' import { getAccessToken, removeToken } from '@/utils/auth' import { CACHE_KEY } from '@/hooks/web/useCache' -import { loginOut } from '@/api/login' +import { getInfo, loginOut } from '@/api/login' import { getUserProfile as getUserInfo } from '@/api/system/user/profile' import cache from '@/plugins/cache' @@ -51,16 +51,16 @@ export const useUserStore = defineStore('admin-user', { return null } let userInfo = cache.local.get(CACHE_KEY.USER) - // if (!userInfo || !userInfo?.menus || userInfo.menus.length == 0) { - // userInfo = await getInfo({}) - // } - if (!userInfo?.user) { - userInfo = { - user: await getUserInfo() - } + if (!userInfo || !userInfo?.menus || userInfo.menus.length == 0) { + userInfo = await getInfo({}) } - // this.permissions = userInfo.permissions - // this.roles = userInfo.roles + // if (!userInfo?.user) { + // userInfo = { + // user: await getUserInfo() + // } + // } + this.permissions = userInfo.permissions + this.roles = userInfo.roles this.user = userInfo.user this.isSetUser = true cache.local.set(CACHE_KEY.USER, userInfo) diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 594c5b2..fb50700 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -114,5 +114,7 @@ export enum DICT_TYPE { PRODUCT_UNIT = 'product_unit', // 商品单位 PRODUCT_SPU_STATUS = 'product_spu_status', //商品状态 // ========== 驾校管理 ========== - LINCENSE_TYPE = 'license_type' //驾照类型 + LINCENSE_TYPE = 'license_type', //驾照类型 + // ========== 租户实例 ========== + INSTANCE_TYPE = 'instance_type' // 实例类型 } diff --git a/src/views/system/menu/MenuForm.vue b/src/views/system/menu/MenuForm.vue new file mode 100644 index 0000000..2d0408e --- /dev/null +++ b/src/views/system/menu/MenuForm.vue @@ -0,0 +1,279 @@ + + diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue new file mode 100644 index 0000000..cd10ea8 --- /dev/null +++ b/src/views/system/menu/index.vue @@ -0,0 +1,201 @@ + + diff --git a/src/views/system/role/RoleAssignMenuForm.vue b/src/views/system/role/RoleAssignMenuForm.vue new file mode 100644 index 0000000..05f193c --- /dev/null +++ b/src/views/system/role/RoleAssignMenuForm.vue @@ -0,0 +1,153 @@ + + diff --git a/src/views/system/role/RoleDataPermissionForm.vue b/src/views/system/role/RoleDataPermissionForm.vue new file mode 100644 index 0000000..1243435 --- /dev/null +++ b/src/views/system/role/RoleDataPermissionForm.vue @@ -0,0 +1,169 @@ + + diff --git a/src/views/system/role/RoleForm.vue b/src/views/system/role/RoleForm.vue new file mode 100644 index 0000000..af60b47 --- /dev/null +++ b/src/views/system/role/RoleForm.vue @@ -0,0 +1,126 @@ + + diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue new file mode 100644 index 0000000..91c68e3 --- /dev/null +++ b/src/views/system/role/index.vue @@ -0,0 +1,299 @@ + + diff --git a/src/views/system/tenant/TenantForm.vue b/src/views/system/tenant/TenantForm.vue new file mode 100644 index 0000000..0c939e2 --- /dev/null +++ b/src/views/system/tenant/TenantForm.vue @@ -0,0 +1,225 @@ + + diff --git a/src/views/system/tenant/index.vue b/src/views/system/tenant/index.vue new file mode 100644 index 0000000..8d86e4c --- /dev/null +++ b/src/views/system/tenant/index.vue @@ -0,0 +1,332 @@ + + diff --git a/src/views/system/tenantInstance/TenantInstanceForm.vue b/src/views/system/tenantInstance/TenantInstanceForm.vue new file mode 100644 index 0000000..2b11fff --- /dev/null +++ b/src/views/system/tenantInstance/TenantInstanceForm.vue @@ -0,0 +1,286 @@ + + diff --git a/src/views/system/tenantInstance/index.vue b/src/views/system/tenantInstance/index.vue new file mode 100644 index 0000000..5c99cb3 --- /dev/null +++ b/src/views/system/tenantInstance/index.vue @@ -0,0 +1,369 @@ + + diff --git a/src/views/system/tenantPackage/TenantPackageForm.vue b/src/views/system/tenantPackage/TenantPackageForm.vue new file mode 100644 index 0000000..2f85a72 --- /dev/null +++ b/src/views/system/tenantPackage/TenantPackageForm.vue @@ -0,0 +1,227 @@ + + diff --git a/src/views/system/tenantPackage/index.vue b/src/views/system/tenantPackage/index.vue new file mode 100644 index 0000000..ad2923d --- /dev/null +++ b/src/views/system/tenantPackage/index.vue @@ -0,0 +1,248 @@ + + diff --git a/src/views/system/user/DeptTree.vue b/src/views/system/user/DeptTree.vue new file mode 100644 index 0000000..3a3a028 --- /dev/null +++ b/src/views/system/user/DeptTree.vue @@ -0,0 +1,48 @@ + + + diff --git a/src/views/system/user/UserAssignRoleForm.vue b/src/views/system/user/UserAssignRoleForm.vue new file mode 100644 index 0000000..d39aaa4 --- /dev/null +++ b/src/views/system/user/UserAssignRoleForm.vue @@ -0,0 +1,96 @@ + + diff --git a/src/views/system/user/UserForm.vue b/src/views/system/user/UserForm.vue new file mode 100644 index 0000000..5218b4a --- /dev/null +++ b/src/views/system/user/UserForm.vue @@ -0,0 +1,271 @@ + + diff --git a/src/views/system/user/UserImportForm.vue b/src/views/system/user/UserImportForm.vue new file mode 100644 index 0000000..5cf1129 --- /dev/null +++ b/src/views/system/user/UserImportForm.vue @@ -0,0 +1,138 @@ + + diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue new file mode 100644 index 0000000..8b41bd8 --- /dev/null +++ b/src/views/system/user/index.vue @@ -0,0 +1,279 @@ + +