vue3+ts+vite使用mock数据

news2024/11/11 6:29:49

安装以下命令

npm i vite-plugin-mock --save-dev
npm i mockjs --save-dev

在根路径下创建mock文件夹

mock\user.ts


const menuList = [
  {
    path: '/system',
    component: 'Layout',
    name: 'system',
    meta: {
      title: '系统管理',
      icon: 'Setting',
      roles: ['sys:manage']
    },
    children: [
      {
        path: '/department',
        component: '/system/department/department',
        name: 'department',
        meta: {
          title: '机构管理',
          icon: 'List',
          roles: ['sys:dept']
        }
      },
      {
        path: '/userList',
        component: '/system/User/UserList',
        name: 'userList',
        meta: {
          title: '用户管理',
          icon: 'UserFilled',
          roles: ['sys:user']
        }
      },
      {
        path: '/roleList',
        component: '/system/Role/RoleList',
        name: 'roleList',
        meta: {
          title: '角色管理',
          icon: 'Wallet',
          roles: ['sys:role']
        }
      },
      {
        path: '/menuList',
        component: '/system/Menu/MenuList',
        name: 'menuList',
        meta: {
          title: '权限管理',
          icon: 'Menu',
          roles: ['sys:menu']
        }
      }
    ]
  },
  {
    path: '/test3parent',
    component: 'Layout',
    name: 'test3parent',
    redirect: '/test3',
    meta: {
      title: '测试1-1-1',
      icon: 'ShoppingBag',
      roles: ['sys:test']
    },
    children: [
      {
        path: '/test3',
        component: '/test/test3',
        name: 'test3',
        meta: {
          title: '测试1-1-1',
          icon: 'ShoppingBag',
          roles: ['sys:test']
        }
      }
    ]
  },
  {
    path: '/goods',
    component: 'Layout',
    name: 'goods',
    meta: {
      title: '商品管理',
      icon: 'Tickets',
      roles: ['sys:goods']
    },
    children: [
      {
        path: '/phone1',
        name: 'phone1',
        meta: {
          title: '手机分类',
          icon: 'UserFilled',
          roles: ['sys:phoneRoot']
        },
        children: [
          {
            path: '/phone',
            component: '/phone/index',
            name: 'phone',
            meta: {
              title: '华为手机',
              icon: 'UserFilled',
              roles: ['sys:phone:index']
            }
          }
        ]
      },
      {
        path: '/goodCategory',
        component: '/goods/goodsCategory/goodsCategoryList',
        name: 'goodCategory',
        meta: {
          title: '分类管理',
          icon: 'ShoppingBag',
          roles: ['sys:goodsCategory']
        }
      },
      {
        path: '/test2',
        name: 'test',
        meta: {
          title: '分类测试',
          icon: 'ShoppingBag',
          roles: ['sys:1']
        },
        children: [
          {
            path: '/cs1',
            component: '/cs1/index',
            name: 'cs1',
            meta: {
              title: '测试1-2',
              icon: 'Menu',
              roles: ['sys:cs1']
            },
            children: [
              {
                path: '/cs2',
                component: '/test/test2',
                name: 'cs2',
                meta: {
                  title: '测试1-2-1',
                  icon: 'Menu',
                  roles: ['sys:cs2']
                }
              }
            ]
          },
          {
            path: '/test',
            component: '/test/test',
            name: 'test',
            meta: {
              title: '测试1-1',
              icon: 'ShoppingBag',
              roles: ['sys:1-1']
            }
          }
        ]
      }
    ]
  },
  {
    path: '/systenConfig',
    component: 'Layout',
    name: 'systenConfig',
    meta: {
      title: '系统工具',
      icon: 'ChatLineSquare',
      roles: ['sys:systenConfig']
    },
    children: [
      {
        path: '/document',
        component: '/system/config/systemDocument',
        name: 'http://42.193.158.170:8089/swagger-ui/index.html',
        meta: {
          title: '接口文档',
          icon: 'DocumentCopy',
          roles: ['sys:document']
        }
      },
      {
        path: '/systemCode',
        component: '/system/config/code',
        name: 'systemCode',
        meta: {
          title: '日志管理',
          icon: 'Operation',
          roles: ['sys:systemCode']
        }
      }
    ]
  }
]


export default [

  {
    url: '/mock/user/menuList',
    method: 'get',
    response: (req) => {
      console.log('对外暴露一个数组:数组含2个接口', req.headers['csg-token'])
      return {
        code: 200,
        data: menuList,
        msg: '成功'
      }
    }
    // const token = req.headers.token
    // const checkUser = createUserList()
    // if (!token) {
    //   return { code: 201, data: { msg: '获取接口信息失败' } }
    // }
    // return { code: 200, data: { checkUser } }
  }
] 

vite.config.ts文件配置

import { viteMockServe } from 'vite-plugin-mock'
const viteConfig = defineConfig(({ mode }) => {
   //添加第三个参数空字符串时 '' ,会在env中包含所有环境变量;反之,只包含.env文件中配置的环境变量
  const env = loadEnv(mode, process.cwd())
  return {
    plugins: [
      vue(),
        viteMockServe({
        mockPath: './mock', // 解析刚刚 user.ts 的位置
        enable: true // 是否开启 Mock 服务
      })
    ],

  
  }
})
export default viteConfig

接口使用(我这里是写的axios封装,你们根据自己当前需求)

export function getMenuList() {
  return request({
    url: '/mock/user/menuList',
    method: 'get'
  })
}

页面调用

import { userStore } from '@/store/user'
  const ustore = userStore()
    ustore.getMenuList()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1480310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

曾桂华:车载座舱音频体验探究与思考| 演讲嘉宾公布

智能车载音频 I 分论坛将于3月27日同期举办! 我们正站在一个前所未有的科技革新的交汇点上,重塑我们出行体验的变革正在悄然发生。当人工智能的磅礴力量与车载音频相交融,智慧、便捷与未来的探索之旅正式扬帆起航。 在驾驶的旅途中&#xff0…

卷积神经网络基本概念补充

卷积(convolution)、通道(channel) 卷积核大小一般为奇数,有中心像素点,便于定位卷积核。 步长(stride)、填充(padding) 卷积核移动的步长(stride…

【Qt学习】QLCDNumber的介绍与实例使用(倒计时功能)

文章目录 1. 介绍2. 实例 - QLCDNumber倒计时3. 资源文件 1. 介绍 QLCDNumber是Qt框架中用于显示数字的控件,它模拟了一个液晶数字显示屏。 在Designer界面中显示如下: 有以下 常用属性: 属性描述intValue获取或设置QLCDNumber显示的整数…

前端架构: 脚手架包管理工具之lerna的全流程开发教程

Lerna 1 )文档 Lerna 文档 https://www.npmjs.com/package/lernahttps://lerna.js.org [请直达这个链接] 使用 Lerna 帮助我们做包管理,并不复杂,中间常用的命令并不是很多这里是命令直达:https://lerna.js.org/docs/api-referen…

nodejs配置环境变量后不生效(‘node‘ 不是内部或外部命令,也不是可运行的程序或批处理文件)

一、在我们安装Node.js后,有时候会遇到node命令不管用的情况,关键是在安装时候已经添加配置了环境变量,向下面这样 但是还是不管用,这是因为环境变量配置不正确,权重不够,或者是命令冲突导致,解…

SpringCloud搭建微服务之Consul服务配置

1. 概述 前面有介绍过Consul既可以用于服务注册和发现,也可以用于服务配置,本文主要介绍如何使用Consul实现微服务的配置中心,有需要了解如何安装Consul的小伙伴,请查阅SpringCloud搭建微服务之Consul服务注册与发现 &#xff0c…

人工智能驱动的自拍时代:短视频美颜SDK技术的发展趋势

在短视频自拍的过程中,美颜技术的应用已经成为了许多人的必备工具,其中短视频美颜SDK技术的发展更是推动了自拍时代的进步。 1.人工智能技术的崛起 传统的美颜功能主要是通过简单的图像处理和滤镜效果来实现,但是这种方法往往会导致照片失真…

鉴源论坛 · 观辙丨TLS协议基本原理与Wireshark分析

作者 | 苏少博 上海控安可信软件创新研究院汽车网络安全组 来源 | 鉴源实验室 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 01 背 景 随着车联网的迅猛发展,汽车已经不再是传统的机械交通工具,而是智能化、互联化的移动终端。然…

YOLOv9有效改进专栏汇总|未来更新卷积、主干、检测头注意力机制、特征融合方式等创新!

YOLOv9有效改进专栏! 专栏介绍 YOLOv9作为最新的YOLO系列模型,对于做目标检测的同学是必不可少的。本专栏将针对2024年最新推出的YOLOv9检测模型,使用当前流行和较新的模块进行该进。本专栏于2024年2月29日晚创建,预计四月底前加入…

Python中reduce函数和lambda表达式的学习

reduce函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数…

HTTPS证书怎么申请?多少钱?

HTTPS证书的申请费用会因多种因素而异,主要包括以下几点: 1. 证书类型: - 域名验证型证书(DV SSL):这种证书仅验证域名的所有权,申请速度较快,通常用于个人网站或小型项目,价格相对较低&…

SpringCloud微服务-统一网关Gateway

统一网关Gateway 文章目录 统一网关Gateway1、为什么需要网关?2、gateway快速入门3、路由断言工厂Route Predicate Factory4、过滤器工厂-路由过滤器GatewayFilter5、全局过滤器**GlobalFilter**6、各种过滤器的执行顺序7、跨域问题的解决 1、为什么需要网关? 网关与各个服务…

JAVA 反序列化之 Apache Commons Collections 反序列化漏洞分析

Apache Commons Collections 反序列化漏洞是 2015 年影响重大的漏洞之一,同时也开启了各类 java 反序列漏洞的大门,这几年大量各类 java 反序列化漏洞不断出现。java 反序列化漏洞基本一出必高危,风险程度极大,最近研究了一些反序…

找工作的小伙伴有福利了

简历模块 资料说明 ✅内容:300多套简历模块,包含单页简历150套、双页简历15套、三页简历25套、四页简历50套、表格简历15套、自荐信20 套,封面简历、英文简历150 ✅文件格式:word ✅ 文件大小:449MB 资料文件展示 资…

MySQL(基础篇)——多表查询

一.多表关系 一对多(多对一) 多对多一对一 1.一对多(多对一) a.案例:部门与员工的关系 b.关系:一个部门对应多个员工,一个员工对应一个部门 c.实现:在多的一方建立外键,指向一的一方的主键 2.多对多 a.案…

notch 滤波器设计

notch 滤波器是一种用于去除特定频率成分的滤波器,通常用于消除信号中的特定频率的干扰或噪声。也可以与一个系统级联,用于抑制系统谐振峰的影响。 假设 notch 滤波器的下陷频率为 ω c \omega_c ωc​,下陷程度为 d B d o w n dB_{down} …

k8s二进制部署的搭建

1.1 常见k8s安装部署方式 ●Minikube Minikube是一个工具,可以在本地快速运行一个单节点微型K8S,仅用于学习、预览K8S的一些特性使用。 部署地址:Install Tools | Kubernetes ●Kubeadm Kubeadm也是一个工具,提供kubeadm init…

高侧开关芯片四通道 40V 50mΩ车规级带反向电流保护功能负载检测高边开关

概述 PC8845/G是四通道、高侧功率具有集成NMOS功率FET的开关,以及电荷泵。该设备集成了高级 保护功能,例如负载电流限制,通过功率限制进行过载主动管理可配置闩锁关闭的超温停机。全面诊断和高精度电流感应这些功能实现了对负载的智能控制。…

html基础操练和进阶修炼宝典

文章目录 1.超链接标签2.跳锚点3.图片标签4.表格5.表格的方向属性6.子窗口7.音视频标签8.表单9.文件上传10.input属性 html修炼必经之路—各种类型标签详解加展示&#xff0c;关注点赞加收藏&#xff0c;防止迷路哦 1.超链接标签 <!DOCTYPE html> <html lang"en…

「媒体宣传」如何写好新闻稿?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 写好新闻稿是媒体宣传的关键环节之一&#xff0c;下面是一些关于如何写好新闻稿的建议&#xff1a; 明确新闻稿的目的和受众&#xff1a;在写新闻稿之前&#xff0c;首先要明确新闻稿的目…