项目搭建时间: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】的更多相关文章

  1. Vue + Element UI 实现权限管理系统

    Vue + Element UI 实现权限管理系统 前端篇(一):搭建开发环境 https://www.cnblogs.com/xifengxiaoma/p/9533018.html

  2. Vue + Element UI 实现权限管理系统(优化登录流程)

    完善登录流程 1. 丰富登录界面 1.1 从 Element 指南中选择组件模板丰富登录界面,放置一个登录界面表单,包含账号密码输入框和登录重置按钮. <template> <el- ...

  3. Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程

    完善登录流程 1. 丰富登录界面 1.1 从 Element 指南中选择组件模板丰富登录界面,放置一个登录界面表单,包含账号密码输入框和登录重置按钮. <template> <el- ...

  4. Vue + Element UI 实现权限管理系统 前端篇(十一):第三方图标库

    使用第三方图标库 用过Elment的同鞋都知道,Element UI提供的字体图符少之又少,实在是不够用啊,幸好现在有不少丰富的第三方图标库可用,引入也不会很麻烦. Font Awesome Font ...

  5. Vue + Element UI 实现权限管理系统(第三方图标库)

    使用第三方图标库 用过Elment的同鞋都知道,Element UI提供的字体图符少之又少,实在是不够用啊,幸好现在有不少丰富的第三方图标库可用,引入也不会很麻烦. Font Awesome Font ...

  6. vue+element 构建的后台管理系统项目(1)新建项目

    1.运行 vue init webpack demo   这里的demo是你项目的名字 2.npm run dev 查看项目启动效果 3.安装Element cd 项目 cmd  运行 npm i e ...

  7. Vue + Element UI 实现权限管理系统 前端篇(二):Vue + Element 案例

    导入项目 打开 Visual Studio Code,File --> add Folder to Workspace,导入我们的项目. 安装 Element 安装依赖 Element 是国内饿 ...

  8. Vue + Element UI 实现权限管理系统 前端篇(十三):页面权限控制

    权限控制方案 既然是后台权限管理系统,当然少不了权限控制啦,至于权限控制,前端方面当然就是对页面资源的访问和操作控制啦. 前端资源权限主要又分为两个部分,即导航菜单的查看权限和页面增删改操作按钮的操作 ...

  9. Vue + Element UI 实现权限管理系统(搭建开发环境)

    技术基础 开发之前,请先熟悉下面的4个文档 vue.js2.0中文, 优秀的JS框架 vue-router, vue.js 配套路由 vuex,vue.js 应用状态管理库 Element,饿了么提供 ...

随机推荐

  1. 【SEED Labs】Public-Key Infrastructure (PKI) Lab

    Lab Overview 公钥加密是当今安全通信的基础,但当通信的一方向另一方发送其公钥时,它会受到中间人的攻击.根本的问题是,没有简单的方法来验证公钥的所有权,即,给定公钥及其声明的所有者信息,如何 ...

  2. (一)POI-新建excel文件

    原文:https://blog.csdn.net/class157/article/details/92799521 package com.java.poi; import org.apache.p ...

  3. CSS文本相关之水平排列[4]

    在正常流中,文本都是从左往右.自上而下排列显示,如果想要改变排列方向的话,可以通过CSS属性来改变. text-align属性 文本排列(text-align)可改变文本在水平上的方向,但不改变内部的 ...

  4. fiddler下载安装

    1.官网https://www.telerik.com/fiddler 2.按照要求填写 3.傻瓜式安装 4.安装https证书

  5. 安卓开发-Activity-多个Activity的开发方法。

    原文链接:https://blog.csdn.net/weixin_38420342/article/details/84344496 一.切换Activity的5种方式 Intent intent ...

  6. 基于领域驱动设计(DDD)超轻量级快速开发架构

    smartadmin.core.urf 这个项目是基于asp.net core 3.1(最新)基础上参照领域驱动设计(DDD)的理念,并参考目前最为了流行的abp架构开发的一套轻量级的快速开发web ...

  7. Consul入门初识

    Consul Consul是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由HashiCrop公司用Go语言开发,基于Mozilla Public License 2.0的协议进行开源 ...

  8. sklearn机器学习算法--线性模型

    线性模型 用于回归的线性模型 线性回归(普通最小二乘法) 岭回归 lasso 用于分类的线性模型 用于多分类的线性模型 1.线性回归 LinearRegression,模型简单,不同调节参数 #2.导 ...

  9. MarkDown编辑器的区别对比

    标题: MarkDown编辑器的区别对比 作者: 梦幻之心星 sky-seeker@qq.com 标签: [MarkDown, 编辑器,区别] 目录: [软件] 日期: 2020-6-22 前提说明 ...

  10. MongoDB入门三

    MongoDB字段问题  增删查改操作 删除一列操作db.RiderReaTimePositon.update({},{$unset:{'CreateTime':''}},false,true)db. ...