前端手册

前端基于Vue3.0开发,后台界面组件基于Element Plus,整体UI框架基于element plus admin改造。

Vue3.0:https://cn.vuejs.org/open in new window
Element Plus:https://element-plus.org/zh-CN/open in new window
vue-element-admin:https://element-plus-admin-doc.cn/open in new window

感谢那么多无私开发者提供了那么多好的开源项目,便于学习交流取长补短,本项目也是延续此精神,利用了很多开源框架+自己的业务整合,形成一个较完整的前后端整体解决方案; 很多内容也是基于开源项目或者借鉴了部分内容,如果不小心侵犯了您的合法权益,请及时联系我。

项目结构

.
├── 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,将页面布局成后台管理的样子,即顶部、左侧菜单、右侧主体区域、底部区域,只有右侧主体区域变化较为频繁、其它部分相对固定的,也是整个后台布局的骨架,如下图:

avatar

组件调用 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,可以离线在局域网工作,附带图片上传功能