Code前端首页关于Code前端联系我们

基于Vue3+Webpack5的独创一代开箱即用的管理平台

terry 2年前 (2023-09-08) 阅读数 174 #Vue

互联网时代,各种H5应用、小程序……各种C端、B端企业都需要中后端管理系统。 UI组件库有antdiview等多种,但常见的管理领域包括企业访问、权限管理、集成请求处理、数据库管理、自动测试,甚至国际化。如果我们是从头开始构建的话,这些都是我们应该考虑的,但是那些其实是和公司是分开的,所以我不想以后再创建管理控制台的时候复制粘贴,所以我选择了我。新发布的Fes.js 2.0即将建成。

关于 Fes.js

Fes.js是基于最新Vue3 + webpack5的前端应用系统。它通过插件提供通用设置、访问、许可证管理、Vuex、国际化等功能。有关fes.js的更多信息,请参阅官方文档。话不多说,让我带您从头开始构建一个无缝的中后端管理系统。

准备好

首先,确保Node 的本地版本已开启 12.0.0

如果您想使用yarn,请使用以下三部曲:

1。创建模板

yarn create @fesjs/fes-app fes-demo
 

根据您的需求选择创建PCH5。创建项目后,转到刚刚创建的文件夹:cd fes-demo,然后继续下一步。

2。放置依赖

yarn
 

3。激活开发环境

yarn dev
 

如果您更喜欢使用npm(您害怕头发),请使用以下三部曲:

# 创建模板
npx @fesjs/create-fes-app fes-demo

# 安装依赖
npm install

# 运行
npm run dev
 

第一次见面

做完以上操作后,在浏览器中访问:http://127.0.0.1:8080,就可以看到第一个系统界面,如下图:

fes-demo-initfes-demo-init

快点

新页面

接下来,我们尝试创建一些页面,并在pages文件夹下创建以下文件夹和文件:
├─pages
│  ├─order
|  	  └─ list.vue
|     └─ detail.vue
│  └─product
|     └─ list.vue
 
会根据文件夹结构自动为Vue生成routes。如果你想知道生成路径的结构,可以在文件src\.fes\core\routes\routes.js中找到。

页面布局

创建页面pages/product/list.vue后,我们来编辑nametitle等页面相关信息。我们以文件pages/product/list.vue为例。代码如下:
// src/pages/product/list.vue

<template>
	<div>...</div>
</template>
<config>
{
    "name": "productManage",
    "title": "产品管理"
}
</config>
<script>
import { ref, reactive, toRaw } from 'vue';
...
</script>
 

Windows 和权限菜单

页面配置完成后,在.fes.js文件中设置菜单权限。更多信息请访问官方文档网站,这里我们更改内容如下:

export default {
    ... // 其他配置略
    access: {
        roles: {
            superAdmin: ["/", "/product/list", "/order/list", "/order/detail"],
            admin: ["/", "/product/list"]
        }
    },
    layout: {
        ...
        menus: [
            {
                name: 'index'
            },
            {
                name: 'productManage'	// 产品管理
            },
            {
                name: 'orderManage',	// 订单管理
                title: '订单管理',
                children: [
                    {
                        name: 'orderList'	// 订单列表
                    }
                ]
            }
        ]
    }
    ...
};
 

如您所见,我们设置了两个角色,高级经理(superAdmin)和简单经理(admin)。超级管理员可以比普通管理员访问更多的页面,并将角色设置为superAdmin(超级管理员),使用setRole方法翻译页面。请在此处查看 app.js 代码:

import { access } from '@fesjs/fes';

export const beforeRender = {
    loading: <PageLoading />,
    action() {
        const { setRole } = access;
        return new Promise((resolve) => {
            setTimeout(() => {
                setRole('superAdmin');	// 设定角色
                resolve({
                    userName: 'Hello, World!'
                });
            }, 1000);
        });
    }
};
 

同时,menus中的name必须与页面编辑中的name相匹配。例如,menus中的【产品管理】中的name: 'productManage'需要匹配♿中的自定义页面文件src/pages/product/list.vue文件name

配置menus并设置相应的权限后,我们看到这个界面:

fes-demo-01fes-demo-01

到这里我们就完成了新的自定义页面、菜单、权限等设置的设计。你认为事情有那么简单吗?

接下来简单看一下其他常见的开发配置设置~

常用配置分析

1。如何根据要求安装UI组件库?

这里以ant-design-vue为例,在.fes.js上添加如下设置:

export default {
    ...
    extraBabelPlugins: [
        ['import', { libraryName: 'ant-design-vue', libraryDirectory: 'es', style: 'css' }]
    ],
    ...
};
 

只需复制babel的设置即可,太简单了~

2。如何播放HTTP请求?

import { request } from '@fesjs/fes';

export default {
    add: (data, option) => request('/api/product/add', data, option),
    getList: (data, option) => request('/api/product/list', data, option)
};
 

更多游戏,请查看插件请求文档。

3。共享请求处理在哪里配置?

例如,如果想让接口相关的数据统一,可以添加钩子函数responseDataAdaptor。参数data是接口返回消息的部分。例如,如果你想让code在界面中统一,你可以添加errorHandler

示例:

如果后端返回的数据JSON如下:

{
	"code": "8888",
	"msg": "未登录或登录态过期,请重新登录"
}
 

然后在app.js中进行以下配置:

import { getRouter } from '@fesjs/fes';

export const request = {
    responseDataAdaptor: (data) => {
        // data.code = data.retCode;
        return data;
    },
    errorHandler: {
        8888: (err) => {
            const router = getRouter();
            alert('登录态过期,请重新登录');
            router.push('/account/login');
        }
    }
};
 

在上面的配置中,8888对应于接口的code字段返回的值。如果接口返回的code字段有其他名称,如retCode,可改为responseDataAdaptor ,如:data.code = data.retCode;

4。是否支持移动应用程序开发?

Fes.js支持PC端和移动端开发,提供PC端和移动端的定制能力。例如PC安装、许可证管理、国际化等;手机屏幕适配、1px问题、hover条件等相信你在启动应用时已经看到了,PCH5选择~

5。导入别名文件

Fes.js 2.0 将以下配置添加到.fes.js
alias: {
    '@common': 'src/common/',
    '@utils': 'src/utils/',
    '@images': 'src/images/',
    '@services': 'src/services/'
}
 

文件导入方式:

import xxx from '@/common/xxx.js';
 

6。换标志?

将徽标字段添加到文件.fes.js并将其替换为您的图像路径(可以是完整图像链接)。 注意,如果Logo是本地的,需要将Logo文件复制到public文件夹下的(否则在项目根目录下单独创建public文件夹)。 public 文件夹可以存放其他不需要包含在 webpack 中的文件。

这里,在文件夹public中创建一个新文件夹img,并放置Logo图像。然后Logo的路径设置如下:

export default {
    ...
    layout: {
        title: 'xx管理系统',
        logo: './img/logo.png',
        ...
    },
    ...
};
 

最后,如果你想了解更多关于开发场景的结构,可以查看官方文档,获得一点经验。

结论

实践了新的内部管理体系fes.js后,我总体感觉还是可以提高开发效率的。可以通过插件添加许多自定义开发场景,节省您自己动手的时间。不过,fes 2.0刚刚发布,还有很多开发领域需要支持。我们希望未来能够推出插件,提供更多的可能性。

参考链接

  • Fes.js官网:winixt.gitee.io/fesjs/zh/

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门