浏览代码

feat: 新增创建接口,修改i8n部分内容

奔跑的面条 3 年之前
父节点
当前提交
39023832e3

+ 10 - 6
src/api/axios.ts

@@ -43,27 +43,31 @@ axiosInstance.interceptors.response.use(
     const { code } = res.data as { code: number }
 
     // 成功
-    if (code === ResultEnum.DATA_SUCCESS) {
+    if (code === ResultEnum.SUCCESS) {
       return Promise.resolve(res.data)
     }
 
     // 登录过期
-    if (code === ResultEnum.SERVER_FORBIDDEN) {
+    if (code === ResultEnum.TOKEN_OVERDUE) {
+      window['$message'].error(window['$t']('http.token_overdue_message'))
       routerTurnByName(PageEnum.BASE_LOGIN_NAME)
-      return Promise.reject(res.data)
+      return
     }
 
-    // 重定向
+    // 固定错误码重定向
     if (ErrorPageNameMap.get(code)) {
       redirectErrorPage(code)
+      return
     }
-
+    
+    // 提示错误
+    window['$message'].error(window['$t']((res.data as any).msg))
     return Promise.resolve(res.data)
   },
   (err: AxiosResponse) => {
     const { code } = err.data as { code: number }
     if (ErrorPageNameMap.get(code)) redirectErrorPage(code)
-    window['$message'].error('接口异常,请检查!')
+    window['$message'].error(window['$t']('http.error_message'))
     Promise.reject(err)
   }
 )

+ 1 - 1
src/api/path/project.ts

@@ -5,7 +5,7 @@ import { RequestHttpEnum, ModuleTypeEnum } from '@/enums/httpEnum'
 // * 新增项目
 export const createProjectApi = async (data: object) => {
   try { 
-    const res = await http(RequestHttpEnum.POST)(`${ModuleTypeEnum.SYSTEM}/project/create`, data);
+    const res = await http(RequestHttpEnum.POST)(`${ModuleTypeEnum.PROJECT}/create`, data);
     return res;
   } catch {
     httpErrorHandle();

+ 6 - 0
src/i18n/en/index.ts

@@ -27,8 +27,14 @@ const global = {
   r_more: 'More',
 }
 
+const http = {
+  error_message: 'The interface is abnormal, please check the interface!',
+  token_overdue_message: 'Login expired, please log in again!'
+}
+
 export default {
   global,
+  http,
   login,
   project
 }

+ 2 - 2
src/i18n/en/login.ts

@@ -2,6 +2,6 @@ export default {
   desc: "Login",
   form_auto: "Sign in automatically",
   form_button: "Login",
-  login_success: "Login success",
-  login_message: "Please complete the letter",
+  login_success: "Login success!",
+  login_message: "Please complete the letter!",
 }

+ 3 - 1
src/i18n/en/project.ts

@@ -1,6 +1,8 @@
 export default {
   create_btn: 'Creat',
-  create_tip: 'Please select a content for development',
+  create_success: 'Creat Success!',
+  create_failure: 'Failed to create, please try again later!',
+  create_tip: 'Please select a content for development!',
   project: 'Project',
   my: 'My',
   new_project: 'New Project',

+ 6 - 0
src/i18n/zh/index.ts

@@ -26,8 +26,14 @@ const global = {
   r_more: '更多',
 }
 
+const http = {
+  error_message: '接口异常,请检查!',
+  token_overdue_message: '登录过期,请重新登录!'
+}
+
 export default {
   global,
+  http,
   login,
   project
 }

+ 2 - 0
src/i18n/zh/project.ts

@@ -1,6 +1,8 @@
 export default {
   // aside
   create_btn: '新建',
+  create_success: '新建成功!',
+  create_failure: '新建失败,请稍后重试!',
   create_tip: '从哪里出发好呢?',
   project: '项目',
   my: '我的',

+ 1 - 1
src/utils/router.ts

@@ -107,7 +107,7 @@ export const reloadRoutePage = () => {
 export const logout = async () => {
   const res:any = await logoutApi()
   if(res.code === ResultEnum.SUCCESS) {
-    window['$message'].success((`${window.$t('global.logout_success')}!`))
+    window['$message'].success((`${window['$t']('global.logout_success')}!`))
   }
   clearCookie(RequestHttpHeaderEnum.COOKIE)
   clearLocalStorage(StorageEnum.GO_SYSTEM_STORE)

+ 24 - 5
src/views/project/layout/components/ProjectLayoutCreate/components/CreateModal/index.vue

@@ -38,7 +38,9 @@
 import { watch } from 'vue'
 import { icon } from '@/plugins'
 import { PageEnum, ChartEnum } from '@/enums/pageEnum'
+import { ResultEnum } from '@/enums/httpEnum'
 import { fetchPathByName, routerTurnByPath, renderLang, getUUID } from '@/utils'
+import { createProjectApi } from '@/api/path/project'
 
 const { FishIcon, CloseIcon } = icon.ionicons5
 const { StoreIcon, ObjectStorageIcon } = icon.carbon
@@ -82,13 +84,30 @@ const closeHandle = () => {
 }
 
 // 处理按钮点击
-const btnHandle = (key: string) => {
+const btnHandle = async (key: string) => {
   switch (key) {
     case ChartEnum.CHART_HOME_NAME:
-      const id = getUUID()
-      const path = fetchPathByName(ChartEnum.CHART_HOME_NAME, 'href')
-      routerTurnByPath(path, [id], undefined, true)
-      closeHandle()
+      try {
+        // 新增项目
+        const res:any = await createProjectApi({
+          // 项目名称
+          projectName: getUUID(),
+          // remarks
+          remarks: null,
+          // 图片地址
+          indexImage: null,
+        })
+        if(res.code === ResultEnum.SUCCESS) {
+          window['$message'].success(window['$t']('project.create_success'))
+
+          const { id } = res
+          const path = fetchPathByName(ChartEnum.CHART_HOME_NAME, 'href')
+          routerTurnByPath(path, [id], undefined, true)
+          closeHandle()
+        }
+      } catch (error) {
+        window['$message'].error(window['$t']('project.create_failure'))
+      }
       break;
   }
 }