封装请求
请求的设置 http.js
- 安装:
npm i axios
- src / api / http.js
import {Message} from 'element-ui'
import axios from 'axios'
const baseUrl = "基础路径";
const request = axios.create({
baseURL: baseUrl,
timeout: 100000
})
request.interceptors.request.use(function (config) {
config.headers.From = "项目的名称"
if(JSON.parse(localStorage.getItem("token"))){
config.headers.Token = JSON.parse(localStorage.getItem("token"));
}
if (config.method == 'post') {
if(config.url != "/xd/loaninfoBatchApply/uploadFile"){
config.headers = Object.assign(config.headers,
{
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
}
);
config.data = {
...config.data,
_t: Date.parse(new Date()) / 1000
}
}
} else if (config.method == 'get') {
config.params = {
_t: Date.parse(new Date()) / 1000,
...config.params
}
}
return config;
}, function (error) {
return Promise.reject(error);
});
request.interceptors.response.use(
response=>{
return response
},
error =>{
if(error && error.response){
errorHandle(error.response.status,error.response.dat)
}else{
Message({message:"网络超时,检查网络设置"})
}
return Promise.reject(error)
}
)
export default http;
请求的封装模块
- 使用按需导入的形势,去封装请求即可! 封装首页模块
- src / api / home.js
import http from './http'
import Qs from 'qs';
export function getHomeGroup(){
return request({
url:'XXX',
method:'get',
})
}
export function getHomePlate(groupNo){
return request({
url:'XXX',
method:'get',
params:{
groupNo,
}
})
}
export function modifyRoleInfo(data){
return request({
url:'XXX',
method:'post',
data,
transformRequest: [data => Qs.stringify(data)]
})
}
home.vue
import { getHomeGroup, } from "@/api/home/home.js";
getHomeGroup(XXX).then(({ data }) => {
})
vuex之中的使用
src / store / index.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const modulesFiles = require.context('./modules', true, /\.js$/)
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
const value = modulesFiles(modulePath)
modules[moduleName] = value.default
return modules
}, {})
export default new Vuex.Store({
state: {},
mutations: {},
actions: {},
modules,
})
mutation-type
export const CREDIT_RESULT_OBJ = 'Credit_ResultObj';
src / store / modules / home.js
import { CREDIT_RESULT_OBJ } from "../mutation-type";
const home = {
state: {
CreditResultObj: {},
},
mutations: {
[CREDIT_RESULT_OBJ ](state, payload) {
state.CreditResultObj= payload
},
}
export default home;
使用state的时候 和 commit
import { CREDIT_RESULT_OBJ } from "@/store/mutation-type.js";
computed: {
CreditResultObj() {
return this.$store.state.homeDrawer.CreditResultObj;
}
},
$store.state.home.XXX(文件名称 eg:home).CreditResultObj
this.$store.state.home.XXX(文件名称 eg:home).CreditResultObj
this.$store.commit( CREDIT_RESULT_OBJ , 提交的数据);