leaser_front/src/router/routes/modules/business.ts
2026-01-12 00:19:24 +08:00

206 lines
5.5 KiB
TypeScript

import PageLayout from '@/layout/page-layout.vue';
import { DEFAULT_LAYOUT } from '../base';
import { AppRouteRecordRaw } from '../types';
// 业务路由
const BUSINESS: AppRouteRecordRaw = {
path: '/business',
name: 'business',
component: DEFAULT_LAYOUT,
redirect: '/business/project',
meta: {
locale: 'menu.business',
requiresAuth: true,
icon: 'icon-heart-fill',
permissionKey: 'business',
order: 2,
isFirst: true,
},
children: [
// 项目管理
{
path: 'project',
name: 'business-project',
component: () =>
import(
/* webpackChunkName: "business-project" */
/* webpackPreload: true */
'@/views/business/project/index.vue'
),
meta: {
locale: 'menu.business.project',
requiresAuth: true,
roles: ['admin'],
icon: 'icon-attachment',
permissionKey: 'businessProject',
},
},
// 空间管理
{
path: 'space',
name: 'business-space',
component: PageLayout,
redirect: '/business/space/house-view',
meta: {
locale: 'menu.business.space',
requiresAuth: true,
roles: ['*'],
icon: 'icon-brush',
permissionKey: 'businessSpace',
},
children: [
// 房源剖视
{
path: 'house-view',
name: 'business-space-house-view',
component: () =>
import(
/* webpackChunkName: "business-space" */
'@/views/business/space/house-view/index.vue'
),
meta: {
locale: 'menu.business.house-view',
requiresAuth: true,
roles: ['*'],
icon: 'icon-brush',
},
},
// 房源列表
{
path: 'house-list',
name: 'business-space-house-list',
component: () =>
import(
/* webpackChunkName: "business-space" */
'@/views/business/space/house-list/index.vue'
),
meta: {
locale: 'menu.business.house-list',
requiresAuth: true,
roles: ['*'],
icon: 'icon-brush',
permissionKey: 'businessHouseList',
},
},
],
},
// 合同管理
{
path: 'contract',
name: 'business-contract',
component: PageLayout,
redirect: '/business/contract/contract-list',
meta: {
locale: 'menu.business.contract',
requiresAuth: true,
roles: ['*'],
icon: 'icon-brush',
permissionKey: 'businessContract',
},
children: [
// 合同列表
{
path: 'contract-list',
name: 'business-contract-list',
component: () =>
import(
/* webpackChunkName: "business-contract" */
'@/views/business/contract/list.vue'
),
meta: {
locale: 'menu.business.contract-list',
requiresAuth: true,
roles: ['*'],
icon: 'icon-brush',
permissionKey: 'businessContractList',
},
},
// 合同归档
{
path: 'contract-file',
name: 'business-contract-file',
component: () =>
import(
/* webpackChunkName: "business-contract" */
'@/views/business/contract/file.vue'
),
meta: {
locale: 'menu.business.contract-file',
requiresAuth: true,
roles: ['*'],
icon: 'icon-brush',
permissionKey: 'businessContractFile',
},
},
// 合同模板
{
path: 'contract-template',
name: 'business-contract-template',
component: () =>
import(
/* webpackChunkName: "business-contract" */
'@/views/business/contract/template.vue'
),
meta: {
locale: 'menu.business.contract-template',
requiresAuth: true,
roles: ['*'],
icon: 'icon-brush',
permissionKey: 'businessContractTemplate',
},
},
],
},
// 租客管理
{
path: 'tenant',
name: 'business-tenant',
component: PageLayout,
redirect: '/business/tenant/list',
meta: {
locale: 'menu.business.tenant',
requiresAuth: true,
roles: ['*'],
icon: 'icon-font-colors',
permissionKey: 'businessTenant',
},
children: [
// 租客列表
{
path: 'tenant-list',
name: 'business-tenant-list',
component: () =>
import(
/* webpackChunkName: "business-tenant" */
'@/views/business/tenant/list.vue'
),
meta: {
locale: 'menu.business.tenant-list',
requiresAuth: true,
roles: ['*'],
icon: 'icon-font-colors',
permissionKey: 'businessTenantList',
},
},
// 租客联系人
{
path: 'tenant-contacts',
name: 'business-tenant-contacts',
component: () =>
import(
/* webpackChunkName: "business-tenant" */
'@/views/business/tenant/contacts.vue'
),
meta: {
locale: 'menu.business.tenant.contacts',
requiresAuth: true,
roles: ['*'],
icon: 'icon-font-colors',
permissionKey: 'businessTenantContacts',
},
},
],
},
],
};
export default BUSINESS;