提交 570559b3 authored 作者: 王鹏飞's avatar 王鹏飞

bug fixes

上级 32b21cbc
...@@ -18,8 +18,14 @@ const video = ref(null) ...@@ -18,8 +18,14 @@ const video = ref(null)
const playing = ref(false) const playing = ref(false)
const duration = ref(0) const duration = ref(0)
onMounted(() => { onMounted(() => {
video.value.onloadedmetadata = (e) => { video.value.ondurationchange = (e) => {
if (e.target.duration === Infinity) {
video.value.currentTime = 1e101
} else {
video.value.currentTime = 0
}
duration.value = e.target.duration === Infinity ? parseFloat(record.value.live_duration) : e.target.duration duration.value = e.target.duration === Infinity ? parseFloat(record.value.live_duration) : e.target.duration
console.log('ondurationchange', e.target.duration)
} }
video.value.ontimeupdate = () => { video.value.ontimeupdate = () => {
currentTime.value = video.value.currentTime currentTime.value = video.value.currentTime
...@@ -52,7 +58,7 @@ const hover = ref(false) ...@@ -52,7 +58,7 @@ const hover = ref(false)
<p>主播:{{ userName }}</p> <p>主播:{{ userName }}</p>
</div> </div>
<div class="live-bd"> <div class="live-bd">
<video :src="record.live_video_addres" ref="video"></video> <video :src="record.live_video_addres" preload="metadata" ref="video"></video>
<LiveCover <LiveCover
:messages="messages" :messages="messages"
:stats="stats" :stats="stats"
......
...@@ -28,7 +28,7 @@ interface UseLiveProps { ...@@ -28,7 +28,7 @@ interface UseLiveProps {
export function useLive({ enabledUserMedia = true, onStart, onRecord, onStop }: UseLiveProps) { export function useLive({ enabledUserMedia = true, onStart, onRecord, onStop }: UseLiveProps) {
const startTime = ref(0) const startTime = ref(0)
const endTime = ref(0) const endTime = ref(0)
const duration = computed(() => Math.floor((endTime.value - startTime.value) / 1000)) const duration = computed(() => (endTime.value - startTime.value) / 1000)
const currentTime = ref(0) const currentTime = ref(0)
// 获取设备列表并设置默认设备 // 获取设备列表并设置默认设备
...@@ -78,7 +78,7 @@ export function useLive({ enabledUserMedia = true, onStart, onRecord, onStop }: ...@@ -78,7 +78,7 @@ export function useLive({ enabledUserMedia = true, onStart, onRecord, onStop }:
// 录像停止时处理 // 录像停止时处理
const handleStop = () => { const handleStop = () => {
endTime.value = Date.now() endTime.value = Date.now()
const blob = new Blob(recordedChunks.value, { type: 'video/mp4' }) const blob = new Blob(recordedChunks.value, { type: mediaRecorder?.mimeType })
onStop && onStop(blob) onStop && onStop(blob)
recordedChunks.value = [] recordedChunks.value = []
......
...@@ -365,19 +365,30 @@ export const useMenuStore = defineStore({ ...@@ -365,19 +365,30 @@ export const useMenuStore = defineStore({
getters: { getters: {
menus: (state) => { menus: (state) => {
const userStore = useUserStore() const userStore = useUserStore()
// const menus = userStore.role?.id === 1 ? state.studentMenus : state.adminMenus const userRole = userStore.role?.id
return state.adminMenus const userPermissions = userStore.menus || []
.filter((item) => {
// 过滤有权限的菜单 // 递归过滤菜单及其子菜单
return userStore.menus.find((menu) => menu.id == item.id) const filterMenus = (menus: IMenuItem[]): IMenuItem[] => {
}) return menus
.map((item) => { .filter((menu) => userPermissions.some((perm) => perm.id === menu.id))
// 如果当前角色是学生,则使用学生的路径 .map((menu) => {
if (userStore.role?.id === 1 && item.studentPath) { const filteredMenu: IMenuItem = {
item.path = item.studentPath ...menu,
} // 替换路径为学生路径(如果有学生路径并且角色为学生)
return item path: userRole === 1 && menu.studentPath ? menu.studentPath : menu.path,
}) }
// 如果存在子菜单,则递归过滤
if (menu.children) {
filteredMenu.children = filterMenus(menu.children)
}
return filteredMenu
})
}
// 根据用户角色选择基础菜单
// const baseMenus = userRole === 1 ? state.studentMenus : state.adminMenus
return filterMenus(state.adminMenus)
}, },
}, },
}) })
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论