Commit e492406af58cf118f1bb3896ae546d6b4c616fa5

Authored by ly525
1 parent cbea4adc

feat: add alert&log for api 403

front-end/h5/src/store/modules/work.js
  1 +import { notification } from 'ant-design-vue'
1 import Element from 'core/models/element' 2 import Element from 'core/models/element'
2 import strapi from '@/utils/strapi' 3 import strapi from '@/utils/strapi'
3 import Page from 'core/models/page' 4 import Page from 'core/models/page'
@@ -10,6 +11,30 @@ function setLoading (commit, loadingName, isLoading) { @@ -10,6 +11,30 @@ function setLoading (commit, loadingName, isLoading) {
10 commit('loading/update', { type: loadingName, payload: isLoading }, { root: true }) 11 commit('loading/update', { type: loadingName, payload: isLoading }, { root: true })
11 } 12 }
12 13
  14 +function handleError (error) {
  15 + if (error.message === 'Forbidden') {
  16 + console.log(`
  17 + ==========================================================================================
  18 +
  19 + #!zh: 接口 403,解决方案:https://github.com/ly525/luban-h5/discussions/110
  20 + #!en: API 403 Forbidden, Solution: https://github.com/ly525/luban-h5/discussions/110
  21 +
  22 + ==========================================================================================
  23 + `)
  24 + notification.warn(
  25 + {
  26 + message: 'API 403 Forbidden',
  27 + description: (h) => (
  28 + <div style="text-align: left;">
  29 + <div>- #!zh: 接口 403</div>
  30 + <div>- #!en: API 403 Forbidden</div>
  31 + <div>- <a href="https://github.com/ly525/luban-h5/discussions/110" target="_blank">#!en: solution(#!zh: 解决方案)</a></div>
  32 + </div>
  33 + )
  34 + })
  35 + }
  36 +}
  37 +
13 export const actions = { 38 export const actions = {
14 previewWork ({ commit }, payload = {}) { 39 previewWork ({ commit }, payload = {}) {
15 commit('previewWork', payload) 40 commit('previewWork', payload)
@@ -23,7 +48,7 @@ export const actions = { @@ -23,7 +48,7 @@ export const actions = {
23 window.open(routeData.href, '_blank') 48 window.open(routeData.href, '_blank')
24 // 如果希望不打开新 tab,可以注释上面面两行,启用下面一行的代码即可,不过不推荐。将编辑器单独起一个页面更有利于 vuex 的数据管理 49 // 如果希望不打开新 tab,可以注释上面面两行,启用下面一行的代码即可,不过不推荐。将编辑器单独起一个页面更有利于 vuex 的数据管理
25 // router.replace({ name: 'editor', params: { workId: entry.id } }) 50 // router.replace({ name: 'editor', params: { workId: entry.id } })
26 - }) 51 + }).catch(handleError)
27 }, 52 },
28 updateWork ({ commit, state }, payload = {}) { 53 updateWork ({ commit, state }, payload = {}) {
29 // update work with strapi 54 // update work with strapi
@@ -77,7 +102,7 @@ export const actions = { @@ -77,7 +102,7 @@ export const actions = {
77 loading_name: 'fetchWorks_loading', 102 loading_name: 'fetchWorks_loading',
78 successMsg: '获取作品列表成功', 103 successMsg: '获取作品列表成功',
79 customRequest: strapi.getEntries.bind(strapi) 104 customRequest: strapi.getEntries.bind(strapi)
80 - }).get('works', { is_template: false }) 105 + }).get('works', { is_template: false }).catch(handleError)
81 }, 106 },
82 fetchWorksWithForms ({ commit, dispatch, state }, workId) { 107 fetchWorksWithForms ({ commit, dispatch, state }, workId) {
83 new AxiosWrapper({ 108 new AxiosWrapper({
@@ -87,7 +112,7 @@ export const actions = { @@ -87,7 +112,7 @@ export const actions = {
87 loading_name: 'fetchWorks_loading', 112 loading_name: 'fetchWorks_loading',
88 successMsg: '获取作品列表成功', 113 successMsg: '获取作品列表成功',
89 customRequest: strapi.getEntries.bind(strapi) 114 customRequest: strapi.getEntries.bind(strapi)
90 - }).get('works/has-forms', { is_template: false }) 115 + }).get('works/has-forms', { is_template: false }).catch(handleError)
91 }, 116 },
92 fetchWorkTemplates ({ commit, dispatch, state }, workId) { 117 fetchWorkTemplates ({ commit, dispatch, state }, workId) {
93 new AxiosWrapper({ 118 new AxiosWrapper({
@@ -97,7 +122,7 @@ export const actions = { @@ -97,7 +122,7 @@ export const actions = {
97 loading_name: 'fetchWorkTemplates_loading', 122 loading_name: 'fetchWorkTemplates_loading',
98 successMsg: '获取模板列表成功', 123 successMsg: '获取模板列表成功',
99 customRequest: strapi.getEntries.bind(strapi) 124 customRequest: strapi.getEntries.bind(strapi)
100 - }).get('works', { is_template: true }) 125 + }).get('works', { is_template: true }).catch(handleError)
101 }, 126 },
102 /** 127 /**
103 * 128 *