初始化本地仓库
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
import { AppRouteRecord } from '@/types/router'
|
||||
|
||||
export const articleRoutes: AppRouteRecord = {
|
||||
name: 'DemoArticle',
|
||||
path: '/demo-article',
|
||||
meta: {
|
||||
title: 'menus.article.title',
|
||||
icon: 'ri:article-line',
|
||||
roles: ['R_SUPER', 'R_ADMIN'],
|
||||
module: 'demo'
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'list',
|
||||
name: 'DemoArticleList',
|
||||
component: '/article/list',
|
||||
meta: {
|
||||
title: 'menus.article.list',
|
||||
icon: 'ri:list-unordered',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'detail',
|
||||
name: 'DemoArticleDetail',
|
||||
component: '/article/detail',
|
||||
meta: {
|
||||
title: 'menus.article.detail',
|
||||
icon: 'ri:file-text-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'publish',
|
||||
name: 'DemoArticlePublish',
|
||||
component: '/article/publish',
|
||||
meta: {
|
||||
title: 'menus.article.publish',
|
||||
icon: 'ri:edit-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'comment',
|
||||
name: 'DemoArticleComment',
|
||||
component: '/article/comment',
|
||||
meta: {
|
||||
title: 'menus.article.comment',
|
||||
icon: 'ri:message-3-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
import { AppRouteRecord } from '@/types/router'
|
||||
|
||||
export const dashboardRoutes: AppRouteRecord = {
|
||||
name: 'DemoDashboard',
|
||||
path: '/demo-dashboard',
|
||||
meta: {
|
||||
title: 'menus.dashboard.title',
|
||||
icon: 'ri:pie-chart-line',
|
||||
roles: ['R_SUPER', 'R_ADMIN'],
|
||||
module: 'demo'
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'console',
|
||||
name: 'DemoConsole',
|
||||
component: '/dashboard/console',
|
||||
meta: {
|
||||
title: 'menus.dashboard.console',
|
||||
icon: 'ri:home-smile-2-line',
|
||||
keepAlive: false,
|
||||
fixedTab: false,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'analysis',
|
||||
name: 'DemoAnalysis',
|
||||
component: '/dashboard/analysis',
|
||||
meta: {
|
||||
title: 'menus.dashboard.analysis',
|
||||
icon: 'ri:align-item-bottom-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'ecommerce',
|
||||
name: 'DemoEcommerce',
|
||||
component: '/dashboard/ecommerce',
|
||||
meta: {
|
||||
title: 'menus.dashboard.ecommerce',
|
||||
icon: 'ri:bar-chart-box-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
import { AppRouteRecord } from '@/types/router'
|
||||
|
||||
export const examplesRoutes: AppRouteRecord = {
|
||||
name: 'DemoExamples',
|
||||
path: '/demo-examples',
|
||||
meta: {
|
||||
title: 'menus.examples.title',
|
||||
icon: 'ri:sparkling-line',
|
||||
module: 'demo'
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'forms',
|
||||
name: 'DemoForms',
|
||||
component: '/examples/forms',
|
||||
meta: {
|
||||
title: 'menus.examples.forms.title',
|
||||
icon: 'ri:form-line',
|
||||
keepAlive: true,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'tables',
|
||||
name: 'DemoTables',
|
||||
component: '/examples/tables',
|
||||
meta: {
|
||||
title: 'menus.examples.tables.title',
|
||||
icon: 'ri:table-line',
|
||||
keepAlive: true,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'tabs',
|
||||
name: 'DemoTabs',
|
||||
component: '/examples/tabs',
|
||||
meta: {
|
||||
title: 'menus.examples.tabs.title',
|
||||
icon: 'ri:folder-line',
|
||||
keepAlive: true,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'socket-chat',
|
||||
name: 'DemoSocketChat',
|
||||
component: '/examples/socket-chat',
|
||||
meta: {
|
||||
title: 'menus.examples.socketChat.title',
|
||||
icon: 'ri:chat-3-line',
|
||||
keepAlive: true,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'permission',
|
||||
name: 'DemoPermission',
|
||||
meta: {
|
||||
title: 'menus.examples.permission.title',
|
||||
icon: 'ri:fingerprint-line',
|
||||
module: 'demo'
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'switch-role',
|
||||
name: 'DemoPermissionSwitchRole',
|
||||
component: '/examples/permission/switch-role',
|
||||
meta: {
|
||||
title: 'menus.examples.permission.switchRole',
|
||||
icon: 'ri:contacts-line',
|
||||
keepAlive: true,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'button-auth',
|
||||
name: 'DemoPermissionButtonAuth',
|
||||
component: '/examples/permission/button-auth',
|
||||
meta: {
|
||||
title: 'menus.examples.permission.buttonAuth',
|
||||
icon: 'ri:mouse-line',
|
||||
keepAlive: true,
|
||||
module: 'demo',
|
||||
authList: [
|
||||
{ title: '新增', authMark: 'add' },
|
||||
{ title: '编辑', authMark: 'edit' },
|
||||
{ title: '删除', authMark: 'delete' },
|
||||
{ title: '导出', authMark: 'export' },
|
||||
{ title: '查看', authMark: 'view' },
|
||||
{ title: '发布', authMark: 'publish' },
|
||||
{ title: '配置', authMark: 'config' },
|
||||
{ title: '管理', authMark: 'manage' }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
import { AppRouteRecord } from '@/types/router'
|
||||
|
||||
export const exceptionRoutes: AppRouteRecord = {
|
||||
name: 'DemoException',
|
||||
path: '/demo-exception',
|
||||
meta: {
|
||||
title: 'menus.exception.title',
|
||||
icon: 'ri:error-warning-line',
|
||||
module: 'demo'
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: '403',
|
||||
name: 'Demo403',
|
||||
component: '/exception/403',
|
||||
meta: {
|
||||
isFullPage: true,
|
||||
title: 'menus.exception.403',
|
||||
icon: 'ri:forbid-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '404',
|
||||
name: 'Demo404',
|
||||
component: '/exception/404',
|
||||
meta: {
|
||||
isFullPage: true,
|
||||
title: 'menus.exception.404',
|
||||
icon: 'ri:file-search-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '500',
|
||||
name: 'Demo500',
|
||||
component: '/exception/500',
|
||||
meta: {
|
||||
isFullPage: true,
|
||||
title: 'menus.exception.500',
|
||||
icon: 'ri:server-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
import { AppRouteRecord } from '@/types/router'
|
||||
|
||||
export const helpRoutes: AppRouteRecord = {
|
||||
name: 'DemoHelp',
|
||||
path: '/demo-help',
|
||||
meta: {
|
||||
title: 'menus.help.title',
|
||||
icon: 'ri:question-line',
|
||||
module: 'demo'
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'change-log',
|
||||
name: 'DemoChangeLog',
|
||||
component: '/change/log',
|
||||
meta: {
|
||||
title: 'menus.help.changeLog',
|
||||
icon: 'ri:file-list-3-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
import { AppRouteRecord } from '@/types/router'
|
||||
import { dashboardRoutes } from './dashboard'
|
||||
import { templateRoutes } from './template'
|
||||
import { articleRoutes } from './article'
|
||||
import { examplesRoutes } from './examples'
|
||||
import { systemRoutes } from './system'
|
||||
import { widgetsRoutes } from './widgets'
|
||||
import { exceptionRoutes } from './exception'
|
||||
import { resultRoutes } from './result'
|
||||
import { safeguardRoutes } from './safeguard'
|
||||
import { helpRoutes } from './help'
|
||||
import { RoutesAlias } from '@/router/routesAlias'
|
||||
import { $t } from '@/locales'
|
||||
|
||||
export default {
|
||||
path: '/demo-playground',
|
||||
name: 'DemoPlayground',
|
||||
component: RoutesAlias.Layout,
|
||||
meta: {
|
||||
title: $t('demo.demo.playground.title'),
|
||||
icon: 'ri:play-circle-line',
|
||||
module: 'demo'
|
||||
},
|
||||
children: [
|
||||
dashboardRoutes,
|
||||
templateRoutes,
|
||||
articleRoutes,
|
||||
examplesRoutes,
|
||||
systemRoutes,
|
||||
widgetsRoutes,
|
||||
exceptionRoutes,
|
||||
resultRoutes,
|
||||
safeguardRoutes,
|
||||
helpRoutes
|
||||
]
|
||||
} as AppRouteRecord
|
||||
@@ -0,0 +1,35 @@
|
||||
import { AppRouteRecord } from '@/types/router'
|
||||
|
||||
export const resultRoutes: AppRouteRecord = {
|
||||
name: 'DemoResult',
|
||||
path: '/demo-result',
|
||||
meta: {
|
||||
title: 'menus.result.title',
|
||||
icon: 'ri:checkbox-circle-line',
|
||||
module: 'demo'
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'success',
|
||||
name: 'DemoSuccess',
|
||||
component: '/result/success',
|
||||
meta: {
|
||||
title: 'menus.result.success',
|
||||
icon: 'ri:checkbox-circle-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'fail',
|
||||
name: 'DemoFail',
|
||||
component: '/result/fail',
|
||||
meta: {
|
||||
title: 'menus.result.fail',
|
||||
icon: 'ri:close-circle-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
import { AppRouteRecord } from '@/types/router'
|
||||
|
||||
export const safeguardRoutes: AppRouteRecord = {
|
||||
name: 'DemoSafeguard',
|
||||
path: '/demo-safeguard',
|
||||
meta: {
|
||||
title: 'menus.safeguard.title',
|
||||
icon: 'ri:shield-keyhole-line',
|
||||
module: 'demo'
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'server',
|
||||
name: 'DemoServer',
|
||||
component: '/safeguard/server',
|
||||
meta: {
|
||||
title: 'menus.safeguard.server',
|
||||
icon: 'ri:server-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
import { AppRouteRecord } from '@/types/router'
|
||||
|
||||
export const systemRoutes: AppRouteRecord = {
|
||||
name: 'DemoSystem',
|
||||
path: '/demo-system',
|
||||
meta: {
|
||||
title: 'menus.system.title',
|
||||
icon: 'ri:settings-3-line',
|
||||
roles: ['R_SUPER', 'R_ADMIN'],
|
||||
module: 'demo'
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'user',
|
||||
name: 'DemoUser',
|
||||
component: '/system/user',
|
||||
meta: {
|
||||
title: 'menus.system.user',
|
||||
icon: 'ri:user-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'role',
|
||||
name: 'DemoRole',
|
||||
component: '/system/role',
|
||||
meta: {
|
||||
title: 'menus.system.role',
|
||||
icon: 'ri:admin-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'menu',
|
||||
name: 'DemoMenu',
|
||||
component: '/system/menu',
|
||||
meta: {
|
||||
title: 'menus.system.menu',
|
||||
icon: 'ri:menu-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'nested',
|
||||
name: 'DemoNested',
|
||||
meta: {
|
||||
title: 'menus.system.nested',
|
||||
icon: 'ri:node-tree',
|
||||
module: 'demo'
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'menu1',
|
||||
name: 'DemoMenu1',
|
||||
component: '/system/nested/menu1',
|
||||
meta: {
|
||||
title: 'menus.system.nested.menu1',
|
||||
icon: 'ri:menu-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'menu2',
|
||||
name: 'DemoMenu2',
|
||||
component: '/system/nested/menu2',
|
||||
meta: {
|
||||
title: 'menus.system.nested.menu2',
|
||||
icon: 'ri:menu-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'menu3',
|
||||
name: 'DemoMenu3',
|
||||
meta: {
|
||||
title: 'menus.system.nested.menu3',
|
||||
icon: 'ri:menu-line',
|
||||
module: 'demo'
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'menu3-2',
|
||||
name: 'DemoMenu3-2',
|
||||
component: '/system/nested/menu3/menu3-2',
|
||||
meta: {
|
||||
title: 'menus.system.nested.menu3-2',
|
||||
icon: 'ri:menu-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: 'user-center',
|
||||
name: 'DemoUserCenter',
|
||||
component: '/system/user-center',
|
||||
meta: {
|
||||
title: 'menus.system.userCenter',
|
||||
icon: 'ri:user-settings-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
import { AppRouteRecord } from '@/types/router'
|
||||
|
||||
export const templateRoutes: AppRouteRecord = {
|
||||
name: 'DemoTemplate',
|
||||
path: '/demo-template',
|
||||
meta: {
|
||||
title: 'menus.template.title',
|
||||
icon: 'ri:layout-3-line',
|
||||
roles: ['R_SUPER', 'R_ADMIN'],
|
||||
module: 'demo'
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'banners',
|
||||
name: 'DemoBanners',
|
||||
component: '/template/banners',
|
||||
meta: {
|
||||
title: 'menus.template.banners',
|
||||
icon: 'ri:image-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'calendar',
|
||||
name: 'DemoCalendar',
|
||||
component: '/template/calendar',
|
||||
meta: {
|
||||
title: 'menus.template.calendar',
|
||||
icon: 'ri:calendar-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'cards',
|
||||
name: 'DemoCards',
|
||||
component: '/template/cards',
|
||||
meta: {
|
||||
title: 'menus.template.cards',
|
||||
icon: 'ri:card-view',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'charts',
|
||||
name: 'DemoCharts',
|
||||
component: '/template/charts',
|
||||
meta: {
|
||||
title: 'menus.template.charts',
|
||||
icon: 'ri:bar-chart-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'chat',
|
||||
name: 'DemoChat',
|
||||
component: '/template/chat',
|
||||
meta: {
|
||||
title: 'menus.template.chat',
|
||||
icon: 'ri:chat-1-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'map',
|
||||
name: 'DemoMap',
|
||||
component: '/template/map',
|
||||
meta: {
|
||||
title: 'menus.template.map',
|
||||
icon: 'ri:map-pin-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'pricing',
|
||||
name: 'DemoPricing',
|
||||
component: '/template/pricing',
|
||||
meta: {
|
||||
title: 'menus.template.pricing',
|
||||
icon: 'ri:price-tag-3-line',
|
||||
keepAlive: false,
|
||||
module: 'demo'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
import { AppRouteRecord } from '@/types/router'
|
||||
|
||||
export const widgetsRoutes: AppRouteRecord = {
|
||||
name: 'DemoWidgets',
|
||||
path: '/demo-widgets',
|
||||
meta: {
|
||||
title: 'menus.widgets.title',
|
||||
icon: 'ri:apps-2-line',
|
||||
module: 'demo'
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'context-menu',
|
||||
name: 'DemoContextMenu',
|
||||
component: '/widgets/context-menu',
|
||||
meta: {
|
||||
title: 'menus.widgets.contextMenu',
|
||||
icon: 'ri:menu-2-line',
|
||||
keepAlive: true,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'count-to',
|
||||
name: 'DemoCountTo',
|
||||
component: '/widgets/count-to',
|
||||
meta: {
|
||||
title: 'menus.widgets.countTo',
|
||||
icon: 'ri:number-1',
|
||||
keepAlive: true,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'drag',
|
||||
name: 'DemoDrag',
|
||||
component: '/widgets/drag',
|
||||
meta: {
|
||||
title: 'menus.widgets.drag',
|
||||
icon: 'ri:drag-move-2-line',
|
||||
keepAlive: true,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'excel',
|
||||
name: 'DemoExcel',
|
||||
component: '/widgets/excel',
|
||||
meta: {
|
||||
title: 'menus.widgets.excel',
|
||||
icon: 'ri:file-excel-2-line',
|
||||
keepAlive: true,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'demo-fireworks',
|
||||
name: 'DemoFireworks',
|
||||
component: '/widgets/fireworks',
|
||||
meta: {
|
||||
title: 'menus.widgets.fireworks',
|
||||
icon: 'ri:fire-line',
|
||||
keepAlive: true,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'icon',
|
||||
name: 'DemoIcon',
|
||||
component: '/widgets/icon',
|
||||
meta: {
|
||||
title: 'menus.widgets.icon',
|
||||
icon: 'ri:emotion-line',
|
||||
keepAlive: true,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'image-crop',
|
||||
name: 'DemoImageCrop',
|
||||
component: '/widgets/image-crop',
|
||||
meta: {
|
||||
title: 'menus.widgets.imageCrop',
|
||||
icon: 'ri:crop-line',
|
||||
keepAlive: true,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'qrcode',
|
||||
name: 'DemoQrcode',
|
||||
component: '/widgets/qrcode',
|
||||
meta: {
|
||||
title: 'menus.widgets.qrcode',
|
||||
icon: 'ri:qr-code-line',
|
||||
keepAlive: true,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'text-scroll',
|
||||
name: 'DemoTextScroll',
|
||||
component: '/widgets/text-scroll',
|
||||
meta: {
|
||||
title: 'menus.widgets.textScroll',
|
||||
icon: 'ri:text-wrap',
|
||||
keepAlive: true,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'video',
|
||||
name: 'DemoVideo',
|
||||
component: '/widgets/video',
|
||||
meta: {
|
||||
title: 'menus.widgets.video',
|
||||
icon: 'ri:video-line',
|
||||
keepAlive: true,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'wang-editor',
|
||||
name: 'DemoWangEditor',
|
||||
component: '/widgets/wang-editor',
|
||||
meta: {
|
||||
title: 'menus.widgets.wangEditor',
|
||||
icon: 'ri:edit-box-line',
|
||||
keepAlive: true,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'watermark',
|
||||
name: 'DemoWatermark',
|
||||
component: '/widgets/watermark',
|
||||
meta: {
|
||||
title: 'menus.widgets.watermark',
|
||||
icon: 'ri:water-percent-line',
|
||||
keepAlive: true,
|
||||
module: 'demo'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'image-selector',
|
||||
name: 'DemoImageSelector',
|
||||
component: '/widgets/image-selector',
|
||||
meta: {
|
||||
title: '图片选择器',
|
||||
icon: 'ri:image-line',
|
||||
keepAlive: true,
|
||||
module: 'demo'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user