feat: v6 pre-release

This commit is contained in:
Hooray
2026-04-01 03:38:00 +08:00
commit ed1ff3e2ab
790 changed files with 88886 additions and 0 deletions
+253
View File
@@ -0,0 +1,253 @@
import { faker } from '@faker-js/faker'
import { defineFakeRoute } from 'vite-plugin-fake-server/client'
export default defineFakeRoute([
{
url: '/fake/app/route/list',
method: 'get',
response: () => {
return {
error: '',
status: 1,
data: [
// 主导航
{
meta: {
title: '演示',
icon: 'uim:box',
},
children: [
// 次导航(一级路由)
{
path: '/multilevel_menu_example',
component: 'Layout',
name: 'multilevelMenuExample',
meta: {
title: 'route.multimenu.root',
icon: 'heroicons-solid:menu-alt-3',
},
children: [
// 次导航(二级路由)
{
path: 'page',
name: 'multilevelMenuExample1',
component: 'multilevel_menu_example/page.vue',
meta: {
title: 'route.multimenu.page',
},
},
{
path: 'level2',
name: 'multilevelMenuExample2',
meta: {
title: 'route.multimenu.level2.root',
},
children: [
// 次导航(三级路由)
{
path: 'page',
name: 'multilevelMenuExample2-1',
component: 'multilevel_menu_example/level2/page.vue',
meta: {
title: 'route.multimenu.level2.page',
},
},
{
path: 'level3',
name: 'multilevelMenuExample2-2',
meta: {
title: 'route.multimenu.level2.level3.root',
},
children: [
// 次导航(四级路由)
{
path: 'page1',
name: 'multilevelMenuExample2-2-1',
component: 'multilevel_menu_example/level2/level3/page1.vue',
meta: {
title: 'route.multimenu.level2.level3.page1',
},
},
{
path: 'page2',
name: 'multilevelMenuExample2-2-2',
component: 'multilevel_menu_example/level2/level3/page2.vue',
meta: {
title: 'route.multimenu.level2.level3.page2',
},
},
],
},
],
},
],
},
{
path: '/permission_example',
component: 'Layout',
name: 'permissionExample',
meta: {
title: 'route.permission',
icon: 'ri:shield-keyhole-line',
},
children: [
{
path: 'index',
name: 'permissionExampleIndex',
component: 'permission_example/index.vue',
meta: {
title: 'route.permission',
menu: false,
breadcrumb: false,
activeMenu: '/permission_example',
},
},
{
path: 'test',
name: 'permissionExampleTest',
component: 'permission_example/test.vue',
meta: {
title: '测试页面',
auth: ['permission.browse'],
menu: false,
breadcrumb: false,
activeMenu: '/permission_example',
},
},
],
},
],
},
],
}
},
},
{
url: '/fake/app/menu/list',
method: 'get',
response: () => {
return {
error: '',
status: 1,
data: [
{
meta: {
title: '演示',
icon: 'uim:box',
},
children: [
{
meta: {
title: '多级导航',
icon: 'heroicons-solid:menu-alt-3',
},
children: [
{
path: '/multilevel_menu_example/page',
meta: {
title: '导航1',
},
},
{
meta: {
title: '导航2',
},
children: [
{
path: '/multilevel_menu_example/level2/page',
meta: {
title: '导航2-1',
},
},
{
meta: {
title: '导航2-2',
},
children: [
{
path: '/multilevel_menu_example/level2/level3/page1',
meta: {
title: '导航2-2-1',
},
},
{
path: '/multilevel_menu_example/level2/level3/page2',
meta: {
title: '导航2-2-2',
},
},
],
},
],
},
],
},
{
path: '/permission_example',
meta: {
title: '权限验证',
icon: 'ri:shield-keyhole-line',
},
},
],
},
],
}
},
},
{
url: '/fake/app/account/login',
method: 'post',
response: ({ body }) => {
return {
error: '',
status: 1,
data: {
account: body.account,
token: `${body.account}:${faker.internet.jwt()}`,
avatar: `https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${body.account}`,
},
}
},
},
{
url: '/fake/app/account/permission',
method: 'get',
response: ({ headers }) => {
let permissions: string[] = []
if (headers.token?.indexOf('admin') === 0) {
permissions = [
'pages.general:browse',
'pages.form:browse',
'pages.list:browse',
'pages.shop:browse',
]
}
else if (headers.token?.indexOf('test') === 0) {
permissions = [
'pages.general:browse',
]
}
return {
error: '',
status: 1,
data: {
permissions,
},
}
},
},
{
url: '/fake/app/account/password/edit',
method: 'post',
response: () => {
return {
error: '',
status: 1,
data: {
isSuccess: true,
},
}
},
},
])
+30
View File
@@ -0,0 +1,30 @@
import api from '../index'
export default {
// 后端获取路由数据
routeList: () => api.get('app/route/list', {
fake: true,
}),
// 登录
login: (data: {
account: string
password: string
}) => api.post('app/account/login', data, {
fake: true,
}),
// 获取权限
permission: () => api.get('app/account/permission', {
fake: true,
}),
// 修改密码
passwordEdit: (data: {
password: string
newPassword: string
}) => api.post('app/account/password/edit', data, {
fake: true,
}),
}
+86
View File
@@ -0,0 +1,86 @@
import { faker } from '@faker-js/faker'
import { defineFakeRoute } from 'vite-plugin-fake-server/client'
// 标准模块
const standardModuleList: any[] = []
for (let i = 0; i < 50; i++) {
standardModuleList.push({
id: i + 1,
title: faker.book.title(),
})
}
export default defineFakeRoute([
{
url: '/fake/standard_module/list',
method: 'get',
response: ({ query }) => {
const { title, from, limit } = query
const list = standardModuleList.filter((item) => {
return title ? item.title.includes(title) : true
})
const pageList = list.filter((_item, index) => {
return index >= ~~from && index < (~~from + ~~limit)
})
return {
error: '',
status: 1,
data: {
list: pageList,
total: list.length,
},
}
},
},
{
url: '/fake/standard_module/detail',
method: 'get',
response: ({ query }) => {
const info = standardModuleList.filter(item => item.id === ~~query.id)
return {
error: '',
status: 1,
data: info[0],
}
},
},
{
url: '/fake/standard_module/create',
method: 'post',
response: () => {
return {
error: '',
status: 1,
data: {
isSuccess: true,
},
}
},
},
{
url: '/fake/standard_module/edit',
method: 'post',
response: () => {
return {
error: '',
status: 1,
data: {
isSuccess: true,
},
}
},
},
{
url: '/fake/standard_module/delete',
method: 'post',
response: () => {
return {
error: '',
status: 1,
data: {
isSuccess: true,
},
}
},
},
])
+33
View File
@@ -0,0 +1,33 @@
import api from '../index'
export default {
list: (data: {
title?: string
from: number
limit: number
}) => api.get('standard_module/list', {
params: data,
fake: true,
}),
detail: (id: number | string) => api.get('standard_module/detail', {
params: {
id,
},
fake: true,
}),
create: (data: any) => api.post('standard_module/create', data, {
fake: true,
}),
edit: (data: any) => api.post('standard_module/edit', data, {
fake: true,
}),
delete: (id: number | string) => api.post('standard_module/delete', {
id,
}, {
fake: true,
}),
}
+17
View File
@@ -0,0 +1,17 @@
import { defineFakeRoute } from 'vite-plugin-fake-server/client'
export default defineFakeRoute([
{
url: '/fake/upload',
method: 'post',
response: () => {
return {
error: '',
status: 1,
data: {
url: 'https://fantastic-admin.hurui.me/logo.svg',
},
}
},
},
])