diff --git a/src/components/liveCall/LiveCallItemHome.vue b/src/components/liveCall/LiveCallItemHome.vue index 00b6401..578d268 100644 --- a/src/components/liveCall/LiveCallItemHome.vue +++ b/src/components/liveCall/LiveCallItemHome.vue @@ -51,7 +51,7 @@ - @@ -78,16 +78,16 @@ const props = defineProps({ }, }) const formDialogRef = ref() -const dialogTitle = ref("添加问题答案"); +const dialogTitle = ref("训练知识库"); const formRules = reactive({ answer: [ - {required: true, message: "答案不能为空", trigger: "blur"}, + {required: true, message: "知识校准不能为空", trigger: "blur"}, ], }); const formSchema = computed(() => { return [ { - label: '问题', + label: '知识内容', prop: 'query', component: 'el-input', colProps: { @@ -95,16 +95,18 @@ const formSchema = computed(() => { }, }, { - label: '答案', + label: '知识校准', prop: 'answer', component: 'el-input', colProps: { span: 24 }, props: { - placeholder: '请输入答案', + placeholder: '请输入知识校准', clearable: true, - } + type: 'textarea', + rows: 4, + }, }, ] }) diff --git a/src/stores/permisstion.js b/src/stores/permisstion.js index 1d69b2e..2a2d878 100644 --- a/src/stores/permisstion.js +++ b/src/stores/permisstion.js @@ -1,122 +1,134 @@ -import { defineStore } from "pinia"; -import { ref } from "vue"; -import { getRouters } from "@/api/system/menu"; +import {defineStore} from "pinia"; +import {ref} from "vue"; +import {getRouters} from "@/api/system/menu"; import Layout from '@/layout/index.vue' import ParentView from '@/components/ParentView.vue' import router from "../router"; +import {getUserInfo} from "@/api/login"; + const VueComUrl = import.meta.glob('../views/**/*.vue') - export const usePermisstionStroe = defineStore('permisstion', () => { - const asyncRouters = ref([]) - //定义是否加载路由变量 - const isLoadRoutes = ref(false) - const menuList = ref([{ - name: 'home', - path: '/home', - icon: 'home', - title: '工作台', - meta: { - breadcrumb: true - } - }]) - - const setIsLoadRoutes = (status) => { - return isLoadRoutes.value = status - } - const setAsyncRouters = async () => { - await getRouters().then(res => { - if (res.code === 1000) { - const sRouter = JSON.parse(JSON.stringify(res.data)) - const mData = JSON.parse(JSON.stringify(res.data)) - asyncRouters.value = formatAsyncRouters(sRouter) - // menuList.value = generateMenu(mData) - menuList.value = [...menuList.value, ...generateMenu(mData)] - addAsyncRouters(asyncRouters.value) - isLoadRoutes.value = false - } else { - isLoadRoutes.value = true - setTimeout(() => setAsyncRouters(), 3000) - } - }) - } - - const formatAsyncRouters = (routers) => { - return routers.filter(route => { - if (route.component) { - if (route.component === 'Layout') { - route.component = Layout - } else if (route.component === 'ParentView') { - route.component = ParentView + const asyncRouters = ref([]) + const userinfo = ref() + //定义是否加载路由变量 + const isLoadRoutes = ref(false) + const menuList = ref([{ + name: 'home', + path: '/home', + icon: 'home', + title: '工作台', + meta: { + breadcrumb: true } - else { - route.component = loadView(route.component) + }]) + + const setIsLoadRoutes = (status) => { + return isLoadRoutes.value = status + } + const getUser=async ()=>{ + let {data}= await getUserInfo() + return data.user.roles[0].roleKey == 'voice'; + } + const setAsyncRouters = async () => { + await getRouters().then(async res => { + if (res.code === 1000) { + const sRouter = JSON.parse(JSON.stringify(res.data)) + const mData = JSON.parse(JSON.stringify(res.data)) + asyncRouters.value = formatAsyncRouters(sRouter) + let role = await getUser() + if(role){ + generateMenu(mData).map(item => { + if (item.path == '/voice/management') { + item.children = item.children.filter(item => item.name !== "Speech") + } + }) + } + menuList.value = [...menuList.value, ...generateMenu(mData)] + addAsyncRouters(asyncRouters.value) + isLoadRoutes.value = false + } else { + isLoadRoutes.value = true + setTimeout(() => setAsyncRouters(), 3000) + } + }) + } + + const formatAsyncRouters = (routers) => { + return routers.filter(route => { + if (route.component) { + if (route.component === 'Layout') { + route.component = Layout + } else if (route.component === 'ParentView') { + route.component = ParentView + } else { + route.component = loadView(route.component) + } + } + if (route.children !== null && route.children && route.children.length !== 0) { + route.children = formatAsyncRouters(route.children) + } + return true + }) + } + + const addAsyncRouters = (routers) => { + routers.forEach(route => { + router.addRoute(route) + }) + } + + const generateMenu = (routes) => { + return routes.filter(item => { + if (item.children && item.children.length !== 0) { + generateMenu(item.children) + } + if (item.pathParams != null) { + item.path = formatPath(item.path, JSON.parse(item.pathParams)) + } + item.title = item.meta.title + item.icon = item.meta.icon + return true + }) + } + + // 拼接地址 + const formatPath = (path, query) => { + const queryArr = [] + let newPath = path + for (const key in query) { + queryArr.push({label: key, value: query[key]}) } - } - if (route.children !== null && route.children && route.children.length !== 0) { - route.children = formatAsyncRouters(route.children) - } - return true - }) - } - - const addAsyncRouters = (routers) => { - routers.forEach(route => { - router.addRoute(route) - }) - } - - const generateMenu = (routes) => { - return routes.filter(item => { - if (item.children && item.children.length !== 0) { - generateMenu(item.children) - } - if (item.pathParams != null) { - item.path = formatPath(item.path, JSON.parse(item.pathParams)) - } - item.title = item.meta.title - item.icon = item.meta.icon - return true - }) - } - - // 拼接地址 - const formatPath = (path, query) => { - const queryArr = [] - let newPath = path - for (const key in query) { - queryArr.push({label: key, value: query[key]}) + queryArr.forEach((item, index) => { + if (!index) { + newPath += `?${item.label}=${item.value}` + } else { + newPath += `&${item.label}=${item.value}` + } + }) + return newPath } - queryArr.forEach((item, index)=>{ - if(!index) { - newPath += `?${item.label}=${item.value}` - } else { - newPath += `&${item.label}=${item.value}` - } - }) - return newPath - } - const loadView = (view) => { - if (import.meta.env.MODE === 'development') { - return () => import(/* @vite-ignore */`/src/views/${view}.vue`) - } else { - return VueComUrl['../views/' + view + '.vue'] + const loadView = (view) => { + if (import.meta.env.MODE === 'development') { + return () => import(/* @vite-ignore */`/src/views/${view}.vue`) + } else { + return VueComUrl['../views/' + view + '.vue'] + } } - } - const removeMenu = () => { - menuList.value.length = 0 - asyncRouters.value.length = 0 - } + const removeMenu = () => { + menuList.value.length = 0 + asyncRouters.value.length = 0 + } - return { - asyncRouters, - menuList, - isLoadRoutes, - setAsyncRouters, - setIsLoadRoutes, - removeMenu - } + return { + asyncRouters, + menuList, + isLoadRoutes, + setAsyncRouters, + setIsLoadRoutes, + removeMenu + } })