vue+element-ui JYAdmin后台管理系统模板-集成方案【项目搭建篇2】
项目搭建时间:2020-06-29
本章节:讲述基于vue/cli,
项目的基础搭建。
本主题讲述了:
1、跨域配置
2、axios请求封装
3、eslint配置
4、环境dev,test,pro(开发,测试,线上),
run自动调用对应的接口(proxy多代理配置)
vue+element-ui JYAdmin
后台管理系统模板-集成方案
从零到一的手写搭建全过程。该项目不仅是一个持续完善、
高效简洁的后台管理系统模板,
还是一套企业级后台系统开发
集成方案,致力于打造一个与时俱进、高效易懂、高复用、
易维护扩展的应用方案。
1、安装axios
- cnpm i axios --save
2、axios封装,调用以及api资源管理
@/serve/axiosResquest.js(axios封装)
- import axios from 'axios';
- axios.interceptors.response.use(
- response => {
- return response
- },
- error => {
- if (error && error.response) {
- const ERR_CODE_LIST = { //常见错误码列表
- [400]: "请求错误",
- [401]: "登录失效或在其他地方已登录",
- [403]: "拒绝访问",
- [404]: "请求地址出错",
- [408]: "请求超时",
- [500]: "服务器内部错误",
- [501]: "服务未实现",
- [502]: "网关错误",
- [503]: "服务不可用",
- [504]: "网关超时",
- [505]: "HTTP版本不受支持"
- }
- const errMsg = ERR_CODE_LIST[error.response.status]
- alert("[" + error.response.status + "]" + errMsg || '服务器异常')
- return Promise.reject(false)
- }
- }
- )
- let axiosResquest = (url, config) => {
- let {
- data = {},
- isAlert = false,
- contentType = 'application/json',
- method = 'POST'
- } = { ...config }
- return new Promise((resolve) => {
- axios({
- url: url,
- method:method,
- data: data,
- header: {
- 'content-type': contentType,
- 'Cookie': '' // 全局变量中获取 cookie
- },
- transformRequest(data) {
- if (contentType == 'application/x-www-form-urlencoded; charset=UTF-8') {
- let ret = ''
- for (let it in data) {
- ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
- }
- return ret
- } else {
- return data
- }
- }
- }).then((res) => {
- if (isAlert) {
- }
- resolve(res.data);
- }).catch(function () {
- resolve(false);
- });
- })
- }
- export default axiosResquest;
@/api/api.js(api资源模块管理)
- import axiosResquest from '@/serve/axiosResquest.js';
- let host = ""
- if(process.env.VUE_APP_CURENV == 'development'){
- host = '/api'
- }else if(process.env.VUE_APP_CURENV == 'test'){
- host = '/test'
- }else if(process.env.VUE_APP_CURENV == 'production'){
- host = '/pro'
- }
- export function axiosSuccessApi(data) {
- return axiosResquest(host+'/index-1.php?m=home&c=WebZuDetails&a=Details', data || {})
- }
- export function axiosResquestEeorApi(data) {
- return axiosResquest(host+'/index-1.php?m=home&c=WebZuDetails', data || {})
- }
- export function axiosSuccessApiAwait(data) {
- return axiosResquest(host+'/index-1.php?m=home&c=WebZuDetails&a=Details', data || {})
- }
@/pages/jsDemo/jsDemo.js(组件调用)
- import { axiosSuccessApi } from '@/api/api.js'
- const config = {
- data: {
- id: '102'
- },
- contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
- isAlert: true,
- }
- axiosSuccessApi(config).then(res => {
- if (res) {
- if (res.status) {
- console.log(res)
- config.data.id = res.status
- axiosSuccessApi(config).then(res => {
- if (res) {
- console.log(res)
- }
- })
- }
- }
- })
3、vue.config.js 代理配置
- devServer: {
- //跨域
- port: 9528, // 端口号
- open: true, //配置自动启动浏览器
- proxy: {
- // 配置跨域处理 可以设置多个
- '^/api': {
- target: 'https://www.weixinyue.cn',
- changeOrigin: true,
- pathRewrite: {
- '^/api': '' // 规定请求地址以什么作为开头
- },
- logLevel:'debug'
- },
- '^/test': {
- target: 'https://www.weixinyue.cn',
- changeOrigin: true,
- pathRewrite: {
- '^/test': '' // 规定请求地址以什么作为开头
- },
- logLevel:'debug'
- },
- '^/pro': {
- target: 'https://www.weixinyue.cn',
- changeOrigin: true,
- pathRewrite: {
- '^/pro': '' // 规定请求地址以什么作为开头
- },
- logLevel:'debug'
- }
- }
- }
3、package.json 配置
- "scripts": {
- "dev": "npm run serve",
- "serve": "vue-cli-service serve --mode development",
- "test": "vue-cli-service serve --mode test",
- "pro": "vue-cli-service serve --mode production",
- "build": "vue-cli-service build",
- "lint": "vue-cli-service lint"
- },
4、.eslintrc.js 配置
- module.exports = {
- root: true,
- env: {
- node: true
- },
- extends: [
- 'plugin:vue/essential'
- // '@vue/standard'
- ],
- parserOptions: {
- parser: 'babel-eslint'
- },
- rules: {
- 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
- 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
- 'space-before-function-paren': 0
- // 'eqeqeq': false,
- // 'vue/valid-template-root': false,
- // 'spaced-comment': false,
- // 'quotes': false,
- // 'eol-last': false,
- // 'key-spacing': false,
- // 'vue/valid-v-for':false,
- // 'vue/no-unused-vars':false,
- // 'vue/no-parsing-error':false
- }
- }
本章节总结:讲述基于vue/cli,
项目的基础搭建。
1、跨域配置
2、axios请求封装
3、eslint配置
4、环境dev,test,pro
(开发,测试,线上),
run自动调用对应的接口
(proxy多代理配置)下章节待续,欢迎持续关注:
如需下载源代码请联系博主
(微信号:lovehua_5360)
你也可以选择留言反馈
- 下章节请关注个人微信公众号【微信悦】,欢迎持续关注:
- 备注:(使用微信客户端打开)
个人微信公众号:【微信悦】
微信公众号原文链接:http://mp.weixin.qq.com/mp/homepage?__biz=MzIyOTg4MzQyNw==&hid=15&sn=4bc799ac6079fd28d20365f92eb3cb91&scene=18#wechat_redirect
vue+element-ui JYAdmin后台管理系统模板-集成方案【项目搭建篇2】的更多相关文章
- Vue + Element UI 实现权限管理系统
Vue + Element UI 实现权限管理系统 前端篇(一):搭建开发环境 https://www.cnblogs.com/xifengxiaoma/p/9533018.html
- Vue + Element UI 实现权限管理系统(优化登录流程)
完善登录流程 1. 丰富登录界面 1.1 从 Element 指南中选择组件模板丰富登录界面,放置一个登录界面表单,包含账号密码输入框和登录重置按钮. <template> <el- ...
- Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程
完善登录流程 1. 丰富登录界面 1.1 从 Element 指南中选择组件模板丰富登录界面,放置一个登录界面表单,包含账号密码输入框和登录重置按钮. <template> <el- ...
- Vue + Element UI 实现权限管理系统 前端篇(十一):第三方图标库
使用第三方图标库 用过Elment的同鞋都知道,Element UI提供的字体图符少之又少,实在是不够用啊,幸好现在有不少丰富的第三方图标库可用,引入也不会很麻烦. Font Awesome Font ...
- Vue + Element UI 实现权限管理系统(第三方图标库)
使用第三方图标库 用过Elment的同鞋都知道,Element UI提供的字体图符少之又少,实在是不够用啊,幸好现在有不少丰富的第三方图标库可用,引入也不会很麻烦. Font Awesome Font ...
- vue+element 构建的后台管理系统项目(1)新建项目
1.运行 vue init webpack demo 这里的demo是你项目的名字 2.npm run dev 查看项目启动效果 3.安装Element cd 项目 cmd 运行 npm i e ...
- Vue + Element UI 实现权限管理系统 前端篇(二):Vue + Element 案例
导入项目 打开 Visual Studio Code,File --> add Folder to Workspace,导入我们的项目. 安装 Element 安装依赖 Element 是国内饿 ...
- Vue + Element UI 实现权限管理系统 前端篇(十三):页面权限控制
权限控制方案 既然是后台权限管理系统,当然少不了权限控制啦,至于权限控制,前端方面当然就是对页面资源的访问和操作控制啦. 前端资源权限主要又分为两个部分,即导航菜单的查看权限和页面增删改操作按钮的操作 ...
- Vue + Element UI 实现权限管理系统(搭建开发环境)
技术基础 开发之前,请先熟悉下面的4个文档 vue.js2.0中文, 优秀的JS框架 vue-router, vue.js 配套路由 vuex,vue.js 应用状态管理库 Element,饿了么提供 ...
随机推荐
- RabbitMQ系列之【设置RabbitMQ远程ip登录】
由于账号guest具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest用户只能通过localhost登陆使用,并建议修改guest用户的密码以及新建其他账号管理使用rabbitmq. ...
- 【Spring注解驱动开发】面试官:如何将Service注入到Servlet中?朋友又栽了!!
写在前面 最近,一位读者出去面试前准备了很久,信心满满的去面试.没想到面试官的一个问题把他难住了.面试官的问题是这样的:如何使用Spring将Service注入到Servlet中呢?这位读者平时也是很 ...
- controlfile的情景恢复
控制文件测试 百度百科:控制文件(Control File)是Oracle的物理文件之一,它记录了数据库的名字.数据文件的位置等信息.控制文件的重要性在于,一旦控制文件损坏,数据库将会宕机.如果没有数 ...
- Python format格式化函数
参考资料:https://www.runoob.com/python/att-string-format.html 在学习Python的时候碰到了一个很有趣的格式化输入的技巧,下面记录在此. Pyth ...
- 使用python,pytorch求海森Hessian矩阵
考虑一个函数$y=f(\textbf{x}) (R^n\rightarrow R)$,y的Hessian矩阵定义如下: 考虑一个函数:$$f(x)=b^Tx+\frac{1}{2}x^{T}Ax\\其 ...
- 关于HTTP 请求方式: GET和POST的比较的本质
什么是HTTP? 超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议. HTTP在客户端和服务器之间以request ...
- Spark学习笔记(三)-Spark Streaming
Spark Streaming支持实时数据流的可扩展(scalable).高吞吐(high-throughput).容错(fault-tolerant)的流处理(stream processing). ...
- 痞子衡嵌入式:利用i.MXRT1xxx系列ROM提供的FlexSPI driver API可轻松IAP
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT系列ROM中的FlexSPI驱动API实现IAP. 痞子衡的技术交流群里经常有群友提问: i.MXRT中的FlexSPI驱动 ...
- ajax前后端交互原理(7)
7.ajax函数封装 7.1.实例引入 需求: 每秒钟请求一次服务器 获取到数据 实现: 把ajax进行封装 <!DOCTYPE html> <html> <head&g ...
- js语法基础入门(2)
2.变量 2.1.变量的声明 声明变量的时候没有赋值,默认输出undefined //通过var 声明一个变量 var user: //默认输出undefined 可以同时声明多个变量 var use ...