Vue项目

代码云阙客
• 阅读 901

vue项目添加菜单

vue是基于组件:vm的components,一个 vue component (或者说 vue instance,两者只有细微差别)可以看成是 view 和 model 的结合,或者更直接一点:template + model。model 的属性(props)可以在 view 中引用时赋值,model 的数据(data)可以被 view 取用。还有其他一些 view 和 model 的调用关系。
具体可以参考:https://www.jianshu.com/p/937...

所以针对于组建开发方式,我们可以按照如下步骤:

1、添加组建

Vue项目
index.js用于记录菜单路由:

import { modName } from './vars'

/** @type {import('vue-router').RouteConfig[]} */
const routes = [
  {
    path: `/${modName}`,
    meta: { title: '计费', icon: 'menu', permissionTag: 'bill' },
    children: [
      {
        path: 'recharge',
        component: () => import('./views/recharge/Index.vue'),
        meta: { title: '充值管理', permissionTag: 'bill_recharge' }
      }
    ]
  }
]
export default { routes }

vars.js是配置的路由中变量
export const modName = 'bill'

Index.vue就是我们的组建:component

<template>
  <ui-table-view v-bind="viewProps" v-on="viewListeners">
    <template #search>
      <el-form-item v-if="isAdmin" label="所属企业">
        <ui-ent-select v-model="searchForm.entid" @change="onSearch" />
      </el-form-item>
    </template>

    <template #actions>
      <el-button type="primary" icon="el-icon-plus" @click="onEdit()">充值</el-button>
    </template>
  </ui-table-view>
</template>
<script>
export default {
  name: 'BillRecharge',
  mixins: [window.mixTableView],
  data () {
    return {
      columns: [
        { type: 'selection', selectable: row => row.state },
        { label: '金额', prop: 'username' },
        { label: '发票信息', prop: 'name' },
        { label: '是否开票', prop: 'workNo', minWidth: 80 },
        { label: '说明', prop: 'phone' },
        {
          label: '操作',
          width: 210,
          fixed: 'right',
          render: (h, { row }) => this.$hBtns([
            // (+row.createByEntid !== 0 || +this.userData.entid === 0) &&
            { label: '设置角色', action: this.onSettingRoles },
            { label: '修改密码', action: this.onUpdatePwd },
            { label: '编辑', action: this.onEdit },
            { label: '删除', action: this.onDelete }
          ])(h, { row })
        }
      ],
      roles: []
    }
  },
  computed: {
    userData () {
      return this.$store.state.userData
    },
    isAdmin () {
      return this.$store.getters.isAdmin
    }
  },
  mounted () {
  },
  methods: {
    getInitData () {
      this.getData()
      this.getRoles()
    }
  }
}
</script>

2、添加路由

在app/plugins/core.js中的moduleList添加
Vue项目

3、在系统权限表里面添加菜单

在系统权限表里面添加菜单权限,然后将其赋于对应的角色。
Vue项目

post请求发起

后端通过@Requestbody 接受参数的话,需要发起:application/json请求。
我们使用:this.$http.post是使用application/json提交数据
Vue项目

点赞
收藏
评论区
推荐文章
晴空闲云 晴空闲云
3年前
vue3中基于script setup语法糖的$refs使用
在用vue3开发项目的时候,需要调用子组件的方法,于是想着用$refs来实现,但是我是使用scriptsetup语法糖,原先vue2的语法已经不适用了。于是一番折腾和查阅资料,终于搞定。vue2语法vue2语法在组件上设置ref属性后,在代码里可以通过this.$refs.ref值访问到对应的子组件。一个设置ref值的组件:html在js代码中可以通
blmius blmius
3年前
Vue引入mavon-editor插件实现markdown功能
Vue引入mavoneditor插件实现markdown功能说明mavoneditor是一款基于Vue的markdown编辑器,因为当前项目是采用Nuxt,所以这里所展示的教程是针对Nuxt引入mavoneditor插件,如果你只是采用了Vue,没有用Nuxt框架,那么你可以看mavoneditor官方文档,有详细说明,其实它们只有在引入mavonedit
Souleigh ✨ Souleigh ✨
4年前
Vue3.0--Vue Composition API使用体验
本文将之前采用Vue2.6开发的todoList小项目改造成为Vue3.0编写,并介绍一下2.x和3.x之间写法的不同之处。Vue3.x适配大部分Vue2.x的组件配置,也就是说以前我们在Vue2.x针对组件的一些配置项,例如:exportdefault{name:'test',components:{},props:{},
劳伦斯 劳伦斯
4年前
前端面试题自检 Vue 网络 浏览器 性能优化部分
框架VueMVVM是什么?ModelViewViewModel,Model表示数据模型层。view表示视图层,ViewModel是View和Model层的桥梁,数据绑定到viewModel层并自动渲染到页面中,视图变化通知viewModel层更新数据。Vue的生命周期
她左右 她左右
4年前
介绍 | Vue3中文文档
已经了解Vue2,只想了解Vue3的新功能可以参阅Vue.js是什么Vue(读音/vjuː/,类似于view)是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与以及各种结合使用时
马丁路德 马丁路德
4年前
vue3 - 组件通信
vue3组件通信和vue2的通信方式基本一致,只是存在写法上的差异props/emitsetup函数接收两个参数,props和context(上下文,其中有一个emit)用法展示//父组件<template<ibutton:type'type'@onClick
linbojue linbojue
1年前
Vue3+Nuxt3打造SSR网站应用,0到1实现服务端渲染
Vue3Nuxt3打造SSR网站应用,0到1实现服务端渲染download》shanxueit.com/364/项目介绍项目名称:基于Vue3ViteTS的elementplus业务组件二次封装一、项目背景和目标随着前端技术的不断发展,Vue3、Vi