174 lines
4.8 KiB
TypeScript
174 lines
4.8 KiB
TypeScript
import { DEFAULT_LAYOUT } from '../base';
|
|||
|
|
import { AppRouteRecordRaw } from '../types';
|
||
|
|
import PageLayout from '@/layout/page-layout.vue';
|
||
|
|
// 业务路由
|
||
|
|
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('@/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('@/views/business/space/house-view.vue'),
|
||
|
|
meta: {
|
||
|
|
locale: 'menu.business.house-view',
|
||
|
|
requiresAuth: true,
|
||
|
|
roles: ['*'],
|
||
|
|
icon: 'icon-brush',
|
||
|
|
},
|
||
|
|
},
|
||
|
|
// 房源列表
|
||
|
|
{
|
||
|
|
path: 'house-list',
|
||
|
|
name: 'business-space-house-list',
|
||
|
|
component: () => import('@/views/business/space/house-list.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('@/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('@/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('@/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('@/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('@/views/business/tenant/contacts.vue'),
|
||
|
|
meta: {
|
||
|
|
locale: 'menu.business.tenant.contacts',
|
||
|
|
requiresAuth: true,
|
||
|
|
roles: ['*'],
|
||
|
|
icon: 'icon-font-colors',
|
||
|
|
permissionKey: 'businessTenantContacts',
|
||
|
|
},
|
||
|
|
},
|
||
|
|
],
|
||
|
|
},
|
||
|
|
],
|
||
|
|
};
|
||
|
|
|
||
|
|
export default BUSINESS;
|