后台项目 Express-Mysql-Vue3-TS-Pinia 菜单管理-按钮 和 页面

137 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第13天,点击查看活动详情

菜单管理-按钮 和 页面

引言

通过之前一段时间 ExpressMysql 的学习

这里尝试来搭建一个 后台系统 来巩固下学习的技术。

按钮

终于到了页面最后一个操作,按钮

而为什么需要 按钮,其实是对应着我们的 按钮权限

后续 按钮权限 会通过自定义指令的方式,来绑定相关 dom 的节点

以此来判断 该 dom 是否进行展示

更新 menu 数据库表

首先 这里先把 menu 数据库表的一些坑,填补一下

之前,我们并没有添加权限 以及 需要更新 类型使用 bit(2) 这种方式

  • 添加 权限 字段 perms

  • 修改 类型 字段为 bit(2)

它们两个对 菜单表sql 操作如下

// 添加
`alter table menu add perms varchar(255) default '' comment '权限'`


// 修改
`alter table menu modify type bit(2) default b'0' comment '菜单类型'`

上面的修改

也间接的导致了 我们的 新增菜单编辑菜单sql 也要修改

const insertMenu = `insert into menu(name,icon,type,url,pid,sort,perms) values(?,?,?,?,?,?,?);`

const editMenu = `update menu set name=?,icon=?,type=?,url=?,pid=?,sort=?,state=?,perms=? where id=?;`

按钮页面

首先页面的效果如下图

image.png

可以看到,在我们点击 按钮 位置时

我们的 url地址 表单项不在了,取而代之的是 权限 表单项

  <el-row>
    <el-col :span="24" v-if="ruleForm.type !== 2">
      <el-form-item label="url 地址" prop="url">
        <el-input v-model="ruleForm.url" />
      </el-form-item>
    </el-col>
  </el-row>
  <el-row v-if="ruleForm.type === 2">
    <el-col :span="24">
      <el-form-item label="权限" prop="perms">
        <el-input v-model="ruleForm.perms" placeholder="sys:menu:add" />
      </el-form-item>
    </el-col>
  </el-row>

可以看到我们 在选择 上级菜单 的时候, 只能选择 菜单

页面

处理菜单数据,将数据变成下方的结构

image.png

最终的 页面展示效果图,如下

image.png

总结

通过 Express-Mysql-Vue3-TS-Pinia 做出一个 后台系统 项目

至此,菜单管理的 按钮 逻辑,及 页面的搭建 处理完毕