浏览代码

配置请求响应拦截器#2

release
HolyKnightIX 2 年前
父节点
当前提交
d5bba30d2b
共有 9 个文件被更改,包括 197 次插入277 次删除
  1. +1
    -1
      package.json
  2. +38
    -0
      src/api/chooseModel.js
  3. +14
    -0
      src/api/myPage.js
  4. +28
    -36
      src/utils/request.js
  5. +1
    -1
      src/views/login/login.vue
  6. +50
    -172
      src/views/model/chooseModel.vue
  7. +14
    -26
      src/views/myPage/myPage.vue
  8. +14
    -14
      vue.config.js
  9. +37
    -27
      yarn.lock

+ 1
- 1
package.json 查看文件

@@ -7,7 +7,7 @@
"build": "vue-cli-service build"
},
"dependencies": {
"axios": "^0.27.2",
"axios": "0.18.1",
"element-ui": "^2.15.12",
"lib-flexible": "^0.3.2",
"postcss-px2rem": "^0.3.0",


+ 38
- 0
src/api/chooseModel.js 查看文件

@@ -0,0 +1,38 @@
import request from '@/utils/request'

/**
* @description 获取模板列表
* @param {number} sex
* @returns data
*/
export function getModeList(sex) {
return request({
url: `/api/mouldPatch/list?sex=${sex}&type=1&pageNum=1&pageSize=10`,
method: 'get'
})
}

/**
* @description:根据id获取模板详情
* @param {number} id
* @return data
*/
export function getModeDetailById(id) {
return request({
url: `/api/mouldPatch/findById?id=${id}`,
method: 'get'
})
}

/**
* @description:保存或修改用户作品
* @param {object} data
* @return data
*/
export function saveOrUpdateUserVideo(data) {
return request({
url: `/api/userVideo/saveOrUpdate`,
method: 'post',
data: data
})
}

+ 14
- 0
src/api/myPage.js 查看文件

@@ -0,0 +1,14 @@
import request from '@/utils/request'

/**
* @description 获取作品列表
* @param {number} pageParams (pageNum, pageSize)
* @returns data
*/
export function getVideoList(pageNum, pageSize) {
return request({
url: `/api/userVideo/list?pageNum=${pageNum}&pageSize=${pageSize}`,
method: 'get'
})
}


+ 28
- 36
src/utils/request.js 查看文件

@@ -1,9 +1,13 @@
import axios from 'axios'
import router from '@/router'
import { Toast } from 'vant'

// 基础地址
const baseURL = 'https://smapitest.malls.iformall.com/C'

// 创建axios实例
const request = axios.create({
baseURL: 'https://smapitest.malls.iformall.com/C',
baseURL,
timeout: 5000
})

@@ -24,40 +28,28 @@ request.interceptors.request.use(
)

// 响应拦截器
// service.interceptors.response.use(
// // response/error为回调值
// function (response) {
// // 当前业务需求中success状态为false为错误响应
// if (response.data.success) {
// // 正常的业务需求返回
// return response.data
// } else {
// // 抛出错误
// return Promise.reject(response.data)
// }
// },
// function (error) {
// // 当token失效或损坏时
// if (error.response.status === 401 && error.response.data.code === 10002) {
// MessageBox.confirm('登录已过期,请重新登录', '提示', {
// confirmButtonText: '确定',
// cancelButtonText: '取消',
// type: 'warning'
// })
// .then(() => {
// // 清除失效或损坏的token
// store.dispatch('user/logout')
// // 跳转至登录页以重新获取token
// console.log(router)
// router.push(
// '/login?return_url=' +
// encodeURIComponent(router.currentRoute.fullPath)
// )
// })
// .catch(() => { })
// }
// return Promise.reject(error)
// }
// )
request.interceptors.response.use(
// response为返回值
function (response) {
// 弹出错误
if (response.data.code != 200) {
// 当token过期或损坏时
if (response.data.code == 1052) {
router.push("/login");
Toast.fail("登录过期,请重新登录!");
// 其他错误
} else {
Toast.fail(response.data.message);
}
} else {
// 正常返回
return response.data
// 抛出错误
// return Promise.reject()
}
},
function (error) {
}
)

export default request

+ 1
- 1
src/views/login/login.vue 查看文件

@@ -441,7 +441,7 @@ export default {
}
}
}
/deep/ .el-input__inner {
::v-deep .el-input__inner {
height: 42px;
border: 1px solid #0068b7;
}


+ 50
- 172
src/views/model/chooseModel.vue 查看文件

@@ -51,6 +51,11 @@ import HeadTop from "./../../components/common/head.vue";
import { Toast } from "vant";
import baseUrl from "../../api/baseUrl";
import scrollToID from "../../utils/scrollToID";
import {
getModeList,
getModeDetailById,
saveOrUpdateUserVideo,
} from "../../api/chooseModel";

Vue.use(Toast);
export default {
@@ -59,94 +64,8 @@ export default {
},
data() {
return {
type: 0,
type: 2,
currentId: "",
// modeList: [
// {
// id: 1,
// salePriceStr: "0",
// priceStr: "0",
// type: 1,
// coverImg:
// "https://formall.oss-accelerate.aliyuncs.com/789/d9870b5c-7eec-46ea-8d6c-47b5a1fbe6dd.jpg",
// coverPicture:
// '["https://formall.oss-accelerate.aliyuncs.com/789/d9870b5c-7eec-46ea-8d6c-47b5a1fbe6dd.jpg"]',
// title: "测试1",
// sex: 2,
// age: 10,
// colour: 1,
// salePrice: 0,
// price: 0,
// sendType: 1,
// mouldSmId: "16739389169485046_nVi875Ej",
// status: 1,
// createDate: 1673976448000,
// updateDate: 1673976448000,
// },
// {
// id: 2,
// salePriceStr: "0",
// priceStr: "0",
// type: 1,
// coverImg:
// "https://formall.oss-accelerate.aliyuncs.com/789/d9870b5c-7eec-46ea-8d6c-47b5a1fbe6dd.jpg",
// coverPicture:
// '["https://formall.oss-accelerate.aliyuncs.com/789/d9870b5c-7eec-46ea-8d6c-47b5a1fbe6dd.jpg"]',
// title: "测试1",
// sex: 2,
// age: 10,
// colour: 1,
// salePrice: 0,
// price: 0,
// sendType: 1,
// mouldSmId: "16739389169485046_nVi875Ej",
// status: 1,
// createDate: 1673976448000,
// updateDate: 1673976448000,
// },
// {
// id: 3,
// salePriceStr: "0",
// priceStr: "0",
// type: 1,
// coverImg:
// "https://formall.oss-accelerate.aliyuncs.com/789/d9870b5c-7eec-46ea-8d6c-47b5a1fbe6dd.jpg",
// coverPicture:
// '["https://formall.oss-accelerate.aliyuncs.com/789/d9870b5c-7eec-46ea-8d6c-47b5a1fbe6dd.jpg"]',
// title: "测试1",
// sex: 2,
// age: 10,
// colour: 1,
// salePrice: 0,
// price: 0,
// sendType: 1,
// mouldSmId: "16739389169485046_nVi875Ej",
// status: 1,
// createDate: 1673976448000,
// updateDate: 1673976448000,
// },
// {
// id: 4,
// salePriceStr: "0",
// priceStr: "0",
// type: 1,
// coverImg:
// "https://formall.oss-accelerate.aliyuncs.com/789/d9870b5c-7eec-46ea-8d6c-47b5a1fbe6dd.jpg",
// coverPicture:
// '["https://formall.oss-accelerate.aliyuncs.com/789/d9870b5c-7eec-46ea-8d6c-47b5a1fbe6dd.jpg"]',
// title: "测试1",
// sex: 2,
// age: 10,
// colour: 1,
// salePrice: 0,
// price: 0,
// sendType: 1,
// mouldSmId: "16739389169485046_nVi875Ej",
// status: 1,
// createDate: 1673976448000,
// updateDate: 1673976448000,
// },
// ],
modeList: [], // 模板列表
};
},
@@ -173,63 +92,55 @@ export default {

chooseType(num) {
this.type = num;
this.getModeList(num);
this.loadModeList(num);
},

selectModel(id) {
if (this.currentId != id) {
this.currentId = id;
} else {
this.getModeDetail(id);
}
},

// 获取模板列表
getModeList(sex) {
const AccessToken = localStorage.getItem("AccessToken");
if (sex == 0) {
sex = "";
async loadModeList(sex) {
try {
const res = await getModeList(sex);
console.log(res, "获取模板列表");
this.modeList = res.data.list;
} catch (error) {
console.log(error);
Toast.fail(error.message);
}
this.$axios({
method: "get",
url: `${baseUrl}/api/mouldPatch/list?sex=${sex}&type=1&pageNum=1&pageSize=10`,
headers: {
"Content-Type": "application/json;charset=UTF-8",
token: AccessToken,
},
})
.then((res) => {
if (res.data.code == 1052) {
this.$router.push("/login");
Toast.fail("登录过期,请重新登录!");
return;
}
this.modeList = res.data.data.list;
})
.catch((err) => {
Toast.fail(err.message);
});
},

/**
* @description:根据id获取模板详情
* @param {type} id
* @return:data
*/
getModeDetail(id) {
const AccessToken = localStorage.getItem("AccessToken");
this.$axios({
method: "get",
url: `${baseUrl}/api/mouldPatch/findById?id=${id}`,
headers: {
"Content-Type": "application/json;charset=UTF-8",
token: AccessToken,
},
})
.then((res) => {
if (res.data.code == 1052) {
this.$router.push("/login");
Toast.fail("登录过期,请重新登录!");
return;
}
const modelDetail = res.data.data;
this.goSetPaperWork(modelDetail);
})
.catch((err) => {
Toast.fail(err.message);
async getModeDetail(id) {
try {
const res = await getModeDetailById(id);
console.log(res, "根据id获取模板详情");
const modelDetail = res.data;
this.goSetPaperWork(modelDetail);
} catch (error) {
console.log(error);
Toast.fail(error.message);
}
},

async saveToSetPaper(data, modelDetail) {
try {
const res = await saveOrUpdateUserVideo(data);
console.log(res, "保存或修改用户作品");
this.$router.push({
path: "/getPaper",
query: {
modelDetail: modelDetail,
},
});
} catch (error) {
console.log(error);
Toast.fail(error.message);
}
},

/**
@@ -238,7 +149,6 @@ export default {
* @event:Go page => setPaperWork
*/
goSetPaperWork(modelDetail) {
const AccessToken = localStorage.getItem("AccessToken");
const data = {
// id: "",
type: 1,
@@ -247,46 +157,14 @@ export default {
// voiceMouldId: "",
// voiceMouldId: "",
};
this.$axios({
method: "post",
url: `${baseUrl}/api/userVideo/saveOrUpdate`,
headers: {
"Content-Type": "application/json;charset=UTF-8",
token: AccessToken,
},
data,
})
.then((res) => {
if (res.data.code == 1052) {
this.$router.push("/login");
Toast.fail("登录过期,请重新登录!");
return;
}
this.$router.push({
path: "/getPaper",
query: {
modelDetail: modelDetail,
},
});
})
.catch((err) => {
Toast.fail(err.message);
});
},

selectModel(id) {
if (this.currentId != id) {
this.currentId = id;
} else {
this.getModeDetail(id);
}
this.saveToSetPaper(data, modelDetail);
},
},
mounted() {
scrollToID("top");
},
created() {
this.getModeList(0);
this.loadModeList(2);
},
};
</script>


+ 14
- 26
src/views/myPage/myPage.vue 查看文件

@@ -53,9 +53,9 @@ import Vue from "vue";
import HeadTop from "./../../components/common/head.vue";
import { mapState, mapActions } from "vuex";
import { Toast } from "vant";
import baseUrl from "../../api/baseUrl";
import timestampToTime from "../../utils/timestampToTime";
import scrollToID from "../../utils/scrollToID";
import { getVideoList } from "../../api/myPage";

Vue.use(Toast);
export default {
@@ -66,6 +66,7 @@ export default {
return {
videoList: [],
currentPage: 1,
pageSize: 5,
total: "",
};
},
@@ -87,7 +88,7 @@ export default {
},

pageChange() {
this.getVideoList(this.currentPage);
this.loadVideoList(this.currentPage, this.pageSize);
},

goDetail(item) {
@@ -113,29 +114,16 @@ export default {
}
},

getVideoList(pageNum) {
const AccessToken = localStorage.getItem("AccessToken");
this.$axios({
method: "get",
url: `${baseUrl}/api/userVideo/list?pageNum=${pageNum}&pageSize=4`,
headers: {
"Content-Type": "application/json;charset=UTF-8",
token: AccessToken,
},
})
.then((res) => {
console.log(res.data);
if (res.data.code == 1052) {
this.$router.push("/login");
Toast.fail("登录过期,请重新登录!");
return;
}
this.videoList = res.data.data.list;
this.total = res.data.data.total;
})
.catch((err) => {
Toast.fail(err.message);
});
async loadVideoList(pageNum, pageSize) {
try {
const res = await getVideoList(pageNum, pageSize);
console.log(res, "获取作品列表");
this.videoList = res.data.list;
this.total = res.data.total;
} catch (error) {
console.log(error);
Toast.fail(error.message);
}
},

goCreateNew() {
@@ -146,7 +134,7 @@ export default {
scrollToID("top");
},
created() {
this.getVideoList(1);
this.loadVideoList(1, this.pageSize);
},
};
</script>


+ 14
- 14
vue.config.js 查看文件

@@ -47,19 +47,19 @@ module.exports = {
lintOnSave: false,
publicPath: './', // 打包后引用的资源路径

// configureWebpack: {
// plugins: [
// //打包环境去掉console.log
// new UglifyJsPlugin({
// uglifyOptions: {
// compress: {
// drop_console: true, //注释console
// drop_debugger: true, //注释debugger
// pure_funcs: ['console.log'], //移除console.log
// },
// },
// }),
// ],
// }
configureWebpack: {
plugins: [
//打包环境去掉console.log
new UglifyJsPlugin({
uglifyOptions: {
compress: {
drop_console: true, //注释console
drop_debugger: true, //注释debugger
pure_funcs: ['console.log'], //移除console.log
},
},
}),
],
}

}

+ 37
- 27
yarn.lock 查看文件

@@ -914,13 +914,13 @@ aws4@^1.8.0:
resolved "https://registry.npmmirror.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3"
integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==

axios@^0.27.2:
version "0.27.2"
resolved "https://registry.npmmirror.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972"
integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==
axios@0.18.1:
version "0.18.1"
resolved "https://registry.npmmirror.com/axios/-/axios-0.18.1.tgz#ff3f0de2e7b5d180e757ad98000f1081b87bcea3"
integrity sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==
dependencies:
follow-redirects "^1.14.9"
form-data "^4.0.0"
follow-redirects "1.5.10"
is-buffer "^2.0.2"

babel-extract-comments@^1.0.0:
version "1.0.0"
@@ -1628,7 +1628,7 @@ color@^3.0.0:
color-convert "^1.9.3"
color-string "^1.6.0"

combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
combined-stream@^1.0.6, combined-stream@~1.0.6:
version "1.0.8"
resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
@@ -2100,6 +2100,13 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
dependencies:
ms "2.0.0"

debug@=3.1.0:
version "3.1.0"
resolved "https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
dependencies:
ms "2.0.0"

debug@^3.2.7:
version "3.2.7"
resolved "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
@@ -2896,7 +2903,14 @@ flush-write-stream@^1.0.0:
inherits "^2.0.3"
readable-stream "^2.3.6"

follow-redirects@^1.0.0, follow-redirects@^1.14.9:
follow-redirects@1.5.10:
version "1.5.10"
resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a"
integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==
dependencies:
debug "=3.1.0"

follow-redirects@^1.0.0:
version "1.15.2"
resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
@@ -2918,15 +2932,6 @@ forever-agent@~0.6.1:
resolved "https://registry.npmmirror.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==

form-data@^4.0.0:
version "4.0.0"
resolved "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.8"
mime-types "^2.1.12"

form-data@~2.3.2:
version "2.3.3"
resolved "https://registry.npmmirror.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
@@ -3801,6 +3806,11 @@ is-buffer@^1.1.5:
resolved "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==

is-buffer@^2.0.2:
version "2.0.5"
resolved "https://registry.npmmirror.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==

is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:
version "1.2.7"
resolved "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
@@ -4309,7 +4319,7 @@ loader-utils@^0.2.16:
json5 "^0.5.0"
object-assign "^4.0.1"

loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
version "1.4.2"
resolved "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3"
integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==
@@ -4851,7 +4861,7 @@ node-releases@^2.0.6:
resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae"
integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==

node-sass@^4.12.0:
node-sass@^4.14.1:
version "4.14.1"
resolved "https://registry.npmmirror.com/node-sass/-/node-sass-4.14.1.tgz#99c87ec2efb7047ed638fb4c9db7f3a42e2217b5"
integrity sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==
@@ -6305,15 +6315,15 @@ sass-graph@2.2.5:
scss-tokenizer "^0.2.3"
yargs "^13.3.2"

sass-loader@^8.0.2:
version "8.0.2"
resolved "https://registry.npmmirror.com/sass-loader/-/sass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d"
integrity sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==
sass-loader@^7.0.0:
version "7.3.1"
resolved "https://registry.npmmirror.com/sass-loader/-/sass-loader-7.3.1.tgz#a5bf68a04bcea1c13ff842d747150f7ab7d0d23f"
integrity sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA==
dependencies:
clone-deep "^4.0.1"
loader-utils "^1.2.3"
neo-async "^2.6.1"
schema-utils "^2.6.1"
loader-utils "^1.0.1"
neo-async "^2.5.0"
pify "^4.0.1"
semver "^6.3.0"

sax@~1.2.4:
@@ -6330,7 +6340,7 @@ schema-utils@^1.0.0:
ajv-errors "^1.0.0"
ajv-keywords "^3.1.0"

schema-utils@^2.0.0, schema-utils@^2.5.0, schema-utils@^2.6.1, schema-utils@^2.7.0:
schema-utils@^2.0.0, schema-utils@^2.5.0, schema-utils@^2.7.0:
version "2.7.1"
resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==


正在加载...
取消
保存