瀏覽代碼

全局配置

黄琪勇 1 年之前
父節點
當前提交
2e216de81a

二進制
public/favicon.ico


+ 1 - 3
src/components/dictionary/dictionary.vue

@@ -26,7 +26,7 @@ import dictionaryCacheStore from "@/store/modules/dictionaryCache"
 const dictionaryCacheStoreHook = dictionaryCacheStore()
 const props = withDefaults(
    defineProps<{
-      modelValue: CascaderValue
+      modelValue?: CascaderValue
       options?: CascaderOption[]
       clearable?: boolean
       propsOpt?: Omit<CascaderProps, "lazyLoad" | "emitPath" | "lazy">
@@ -50,8 +50,6 @@ const emits = defineEmits<{
 const propsOpt: CascaderProps = {
    emitPath: Array.isArray(props.modelValue) ? true : false, //当可能为多级字典时候 emitPath为true 值为数组模式
    lazy: props.dictionaryKey ? true : false,
-   label: "itemname",
-   value: "itemvalue",
    leaf: "haveChild",
    async lazyLoad({ level, data }, resolve) {
       const dictionaryData = await dictionaryCacheStoreHook.getDictionary(level === 0 ? props.dictionaryKey! : (data!.itemdetailid as string))

+ 34 - 0
src/config/menus.ts

@@ -1,4 +1,6 @@
 //模拟数据 实际不需要由api提供
+
+// 管乐团
 export const menus_gyt: menuType[] = [
    {
       path: "/homePage_gyt",
@@ -9,8 +11,30 @@ export const menus_gyt: menuType[] = [
          routeType: "layout"
       },
       children: []
+   },
+   {
+      path: "/cloudTextbooks",
+      component: "cloudTextbooks",
+      title: "云教材",
+      icon: "",
+      meta: {
+         routeType: "layout"
+      },
+      children: []
+   },
+   {
+      path: "/coursewarePlay/:id",
+      component: "coursewarePlay",
+      title: "播放器",
+      icon: "",
+      meta: {
+         routeType: "singlepage"
+      },
+      children: []
    }
 ]
+
+// 管乐迷
 export const menus_gym: menuType[] = [
    {
       path: "/homePage_gym",
@@ -31,5 +55,15 @@ export const menus_gym: menuType[] = [
          routeType: "layout"
       },
       children: []
+   },
+   {
+      path: "/coursewarePlay/:id",
+      component: "coursewarePlay",
+      title: "播放器",
+      icon: "",
+      meta: {
+         routeType: "singlepage"
+      },
+      children: []
    }
 ]

+ 2 - 0
src/libs/axios.ts

@@ -51,6 +51,8 @@ class HttpAsynAxios {
       instance.interceptors.response.use(
          response => {
             Nprogress.done()
+            // *** 转换msg为message  正常是没有的 这里2个系统所以合并一下
+            response.data.msg && (response.data.message = response.data.msg)
             //如果返回401则跳转到登录页
             if (response.data.code === CODE401) {
                //如果token登录状态 才提示和退出

+ 2 - 2
src/libs/utils.ts

@@ -5,8 +5,8 @@ import { RouteRecordRaw } from "vue-router"
 import { asyncComponentsType } from "@/router/routers"
 export const generateAsyncMenusAsyncRoutes = (menus: menuType[], components: asyncComponentsType) => {
    return {
-      asyncRoutes: generateAsyncRoutes(menus, components),
-      asyncMenus: generateAsyncMenus(menus)
+      asyncRoutes: generateAsyncRoutes(menus, components)
+      // asyncMenus: generateAsyncMenus(menus)
    }
 }
 export const generateAsyncRoutes = (menus: menuType[], components: asyncComponentsType) => {

+ 9 - 9
src/plugin/httpAjax.ts

@@ -25,7 +25,7 @@ export const httpAjaxErrMsg = function <T extends axiosApiType, P extends Parame
             if (data.code !== 200) {
                ElMessage({
                   showClose: true,
-                  message: data.message || data.msg,
+                  message: data.message,
                   type: "error"
                })
             }
@@ -34,7 +34,7 @@ export const httpAjaxErrMsg = function <T extends axiosApiType, P extends Parame
          .catch(err => {
             ElMessage({
                showClose: true,
-               message: err.message || err.msg,
+               message: err.message,
                type: "error"
             })
             resolve(err)
@@ -69,7 +69,7 @@ export const httpAjaxLoadingErrMsg = function <T extends axiosApiType, P extends
             if (data.code !== 200) {
                ElMessage({
                   showClose: true,
-                  message: data.message || data.msg,
+                  message: data.message,
                   type: "error"
                })
             }
@@ -98,7 +98,7 @@ export const httpAjaxCrud = function <T extends axiosApiType, P extends Paramete
                ElNotification({
                   type: "success",
                   title: "成功",
-                  message: data.message || data.msg,
+                  message: data.message,
                   position: "top-right",
                   duration: 3000
                })
@@ -106,7 +106,7 @@ export const httpAjaxCrud = function <T extends axiosApiType, P extends Paramete
                ElNotification({
                   type: "error",
                   title: "失败",
-                  message: data.message || data.msg,
+                  message: data.message,
                   position: "top-right",
                   duration: 3000
                })
@@ -136,12 +136,12 @@ export const httpAjaxAlert = function <T extends axiosApiType, P extends Paramet
             LoadingBar.loading(false)
             const data = res.data as apiResDataType
             if (data.code === 200) {
-               ElMessageBox.alert(data.message || data.msg, "提示", {
+               ElMessageBox.alert(data.message, "提示", {
                   confirmButtonText: "关闭",
                   type: "success"
                })
             } else {
-               ElMessageBox.alert(data.message || data.msg, "提示", {
+               ElMessageBox.alert(data.message, "提示", {
                   confirmButtonText: "关闭",
                   type: "error"
                })
@@ -150,7 +150,7 @@ export const httpAjaxAlert = function <T extends axiosApiType, P extends Paramet
          })
          .catch(err => {
             LoadingBar.loading(false)
-            ElMessageBox.alert(err.message || err.msg, "提示", {
+            ElMessageBox.alert(err.message, "提示", {
                confirmButtonText: "关闭",
                type: "error"
             })
@@ -180,7 +180,7 @@ export const httpAjaxDownload = function <T extends axiosApiType, P extends Para
          LoadingBar.loading(false)
          ElMessage({
             showClose: true,
-            message: err.message || err.msg,
+            message: err.message,
             type: "error"
          })
       })

+ 2 - 3
src/router/index.ts

@@ -39,8 +39,7 @@ router.beforeEach((to, from, next) => {
          userStoreHook
             .getUserInfo()
             .then(menus => {
-               const { asyncRoutes, asyncMenus } = generateAsyncMenusAsyncRoutes(menus, asyncComponents) //获取动态路由和菜单
-               console.log(asyncRoutes, asyncMenus)
+               const { asyncRoutes } = generateAsyncMenusAsyncRoutes(menus, asyncComponents) //获取动态路由和菜单
                //新增路由并保存 删除路由方法
                asyncRoutes.map(asyncRoute => {
                   removeRoutes.push(router.addRoute(asyncRoute))
@@ -50,7 +49,7 @@ router.beforeEach((to, from, next) => {
             .catch((err: apiResDataType) => {
                //退出 清空,当是登录权限问题时候 axios 里面会清空
                if (err.code !== CODE401) {
-                  ElMessage.error(err.message || err.msg)
+                  ElMessage.error(err.message)
                   userStoreHook.resetUser()
                }
             })

+ 2 - 1
src/router/modules.ts

@@ -1,5 +1,6 @@
 export default {
    homePage_gym: () => import("@/views/homePage/homePage_gym.vue"),
    homePage_gyt: () => import("@/views/homePage/homePage_gyt.vue"),
-   cloudTextbooks: () => import("@/views/cloudTextbooks") // 云教材
+   cloudTextbooks: () => import("@/views/cloudTextbooks"), // 云教材
+   coursewarePlay: () => import("@/views/coursewarePlay") // 播放器
 }

+ 30 - 4
src/store/modules/user.ts

@@ -12,8 +12,13 @@ interface userDataType {
    data: any
 }
 interface userType {
-   userInfo: Record<string, any>
-   roles?: "GYM" | "GYM"
+   userInfo: {
+      avatar?: string
+      username?: string
+      realName?: string
+      phone?: string
+   }
+   roles?: "GYM" | "GYT"
 }
 
 const useStore = defineStore("user", {
@@ -48,8 +53,8 @@ const useStore = defineStore("user", {
                message: "获取用户信息出错,请联系管理员!"
             })
          }
-         const userInfo = userInfoRes.data || {}
-         this.userInfo = userInfo
+         // GYM 和 GYT 区分 用户信息数据不一样区分
+         this.userInfo = handleUserInfo(userType, userInfoRes.data)
          this.roles = userType as any
          // GYM 和 GYT 区分  区分菜单然后分配路由
          return Promise.resolve(userType === "GYM" ? menus_gym : menus_gyt)
@@ -80,3 +85,24 @@ const useStore = defineStore("user", {
 export default () => {
    return useStore(store)
 }
+
+function handleUserInfo(userType: string, userInfo: Record<string, any>) {
+   let avatar, username, realName, phone
+   if (userType === "GYM") {
+      avatar = userInfo.avatar
+      username = userInfo.username
+      realName = userInfo.realName
+      phone = userInfo.phone
+   } else {
+      avatar = userInfo.avatar
+      username = userInfo.nickname
+      realName = userInfo.realName
+      phone = userInfo.phone
+   }
+   return {
+      avatar,
+      username,
+      realName,
+      phone
+   }
+}

+ 0 - 1
src/type.d.ts

@@ -7,7 +7,6 @@ declare interface apiResDataType {
    code: number
    data: any
    message: string
-   msg?: string
 }
 
 /*

+ 1 - 1
src/viewsframe/layout/layout.vue

@@ -56,7 +56,7 @@ function handleLogout() {
       .loginOut()
       .then()
       .catch((err: apiResDataType) => {
-         ElMessage.error(err.message || err.msg)
+         ElMessage.error(err.message)
       })
 }
 </script>