项目搭建时间: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. Springboot 的单元测试

    1 测试基础类 @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment. ...

  2. 若linux 的分区硬盘满,如何处理?

    一.确定是不是真的是磁盘空间不足 输入命令:df –lh 查看磁盘信息 二.如何定位最大文件目录 输入命令:cd / 进入根目录. 输入命令:du -h max-depth=1 寻找当前目录,哪个文件 ...

  3. 如何在微信小程序中使用阿里字体图标

    第一步:下载需要的字体图标 进入阿里图标官网http://iconfont.cn/搜索自己想要的图标. 如这里需要一个购物车的图标,流程为: 搜索“购物车”图标 --->  点击“添加入库”  ...

  4. render props的运用

    2020-04-03 render props的运用 术语 “render prop” 是指一种在 React 组件之间使用一个值为函数的 prop 共享代码的简单技术 通常的 这个值为函数的prop ...

  5. 在VisualStudio中为GUI程序添加console

    1.使用WINDOWS提供的一系列ReadConsole,WriteConsole等API来完成这个功能,具体参见MSDN HANDLE hOut = GetStdHandle(STD_OUTPUT_ ...

  6. Java8新特性之方法引用

    <Java 8 实战>学习笔记系列 定义 方法引用让你可以重复使用现有的方法定义,并像Lambda一样传递它,可以把方法引用看作针对仅仅涉及单一方法的Lambda的语法糖,使用它将减少自己 ...

  7. 深度学习中损失函数之RMS和MES

    学校给我们一人赞助了100美元购买英文原版图书,几方打听后选择了PRML 即Pattern Recognition and Machine Learning.自从拆封这本书开始慢慢的品读,经常会有相见 ...

  8. Linux下,如何监控某个进程到底向哪个地址发起了网络调用

    Linux下,如何监控某个进程到底向哪个地址发起了网络调用 有时候,有些应用,比如idea,你发起某个操作时,其底层会去请求网络,获取一些数据. 但是不知道,请求了什么地址.举个例子,在idea中,m ...

  9. [apue] 一个快速确定新系统上各类限制值的工具

    对于在不同 Unix 系统之间移植程序,最重要的事情就是确定新系统的一些编译时.运行时固定或不固定的限制值了.例如文件路径最大长度 PATH_MAX.进程最大可打开文件句柄数 OPEN_MAX.用户可 ...

  10. ODBC 常见数据源配置整理

    目录 1. 简介 1.1 ODBC和JDBC 1.2 ODBC配置工具 1.3 ODBC 数据源连接配置 2. MySQL 数据源配置 2.1 配置步骤 2.2 链接参数配置 3. SQLServer ...