前端手册
前端基于Vue3.0开发,后台界面组件基于Element Plus,整体UI框架基于element plus admin改造。
Vue3.0:https://cn.vuejs.org/
Element Plus:https://element-plus.org/zh-CN/
vue-element-admin:https://element-plus-admin-doc.cn/
感谢那么多无私开发者提供了那么多好的开源项目,便于学习交流取长补短,本项目也是延续此精神,利用了很多开源框架+自己的业务整合,形成一个较完整的前后端整体解决方案; 很多内容也是基于开源项目或者借鉴了部分内容,如果不小心侵犯了您的合法权益,请及时联系我。
项目结构
.
├── auto-imports.d.ts
├── commitlint.config.js
├── components.d.ts
├── index.html
├── mock
│ ├── _createProductionServer.ts
│ ├── role
│ └── user
├── package.json
├── pnpm-lock.yaml
├── postcss.config.js
├── prettier.config.js
├── public
│ ├── favicon.ico
│ └── logo.png
├── src
│ ├── App.vue
│ ├── api
│ ├── assets
│ ├── components
│ ├── config
│ ├── directive
│ ├── hooks
│ ├── layout
│ ├── locales
│ ├── main.ts
│ ├── permission.ts
│ ├── plugins
│ ├── router
│ ├── store
│ ├── styles
│ ├── utils
│ └── views
├── stylelint.config.js
├── tsconfig.json
├── types
│ ├── componentType
│ ├── components.d.ts
│ ├── custom-types.d.ts
│ ├── env.d.ts
│ ├── global.d.ts
│ └── router.d.ts
├── vite.config.ts
└── windi.config.ts
开发环境
node -v
v16.18.0
npm -v
8.19.2
开发者最好安装接近以上版本的node版本,避免无法编译出现奇奇怪怪的问题
编译命令:pnpm install
开发运行:pnpm run dev
编译发行:pnpm run build:pro
更多命令,请看:package.json里面的定义
页面布局 layout
如果刚接触Vue的同学,可以理解为它是一个iframe,将页面布局成后台管理的样子,即顶部、左侧菜单、右侧主体区域、底部区域,只有右侧主体区域变化较为频繁、其它部分相对固定的,也是整个后台布局的骨架,如下图:
组件调用 components
系统通用组件全部位于src/components目录中,里面封装了大量的实用组件,有些是完全通用的,您可以复制到其它系统中使用,有些则是配合后端封装的,只能在本系统使用
数据表格 DataTable
数据表格组件,用于系统中全部数据列表的展示、里面有封装按钮权限、数据请求、分页等逻辑,是较为核心的组件
<template>
<div>
<data-table
ref="pagingTable"
:options="options"
:list-query="listQuery"
@add="handleAdd"
@edit="handleUpdate">
<template slot="filter-content">
<el-input
v-model="listQuery.params.title"
style="width: 200px"
placeholder="搜索公告标题"
class="filter-item"
/>
</template>
<template slot="data-columns">
<el-table-column
type="selection"
width="55"
/>
<el-table-column
align="center"
label="标题"
prop="title"
/>
<el-table-column
align="center"
label="发布时间"
prop="createTime"
/>
</template>
</data-table>
</div>
</template>
<script>
// 导入表格组件
import DataTable from '@/components/DataTable'
export default {
components: { DataTable },
data() {
return {
// 表格查询条件-分页
listQuery: {
current: 1,
size: 10,
params: {
}
},
// 表格初始化参数
options: {
add: {
enable: true,
permission: 'sys:notice:add'
},
edit: {
enable: true,
permission: 'sys:notice:update'
},
delete: {
enable: true,
permission: 'sys:notice:delete',
url: '/api/sys/notice/delete'
},
// 列表请求URL
listUrl: '/api/sys/notice/paging',
// 批量操作列表
multiActions: [
{
value: 'enable',
label: '启用',
permission: 'sys:notice:update',
url: '/api/sys/notice/state'
}, {
value: 'disable',
label: '禁用',
permission: 'sys:notice:update',
url: '/api/sys/notice/state'
}
]
}
}
},
methods: {
// 处理添加事件
handleAdd() {
console.log('add')
},
// 更新方法事件
handleUpdate(id,data) {
console.log('update', id)
console.log('update', data)
}
}
}
</script>
表格事件
事件名称 | 事件描述 | 参数 |
---|---|---|
add | 添加按钮操作事件 | 无 |
edit | 修改按钮操作事件 | 参数1:数据id,参数2:表格数据行 |
初始化参数 options
参数名称 | 参数描述 |
---|---|
add | 是否显示添加按钮及按钮权限 |
edit | 是否显示修改按钮及按钮权限 |
delete | 是否显示删除按钮及按钮权限 |
图形验证码 Captcha
图形验证码组件
文件上传 FileUpload
文件上传组件、用于本地文件上传
Excel导入 ImportExcel
Excel导入组件、用于系统中的Excel数据导入
富文本编辑器 Tinymce
富文本编辑器、配合public/tinymce,可以离线在局域网工作,附带图片上传功能