fix: 🐛 修复刷新页面后,选中菜单无法保持展开状态的问题
1.父级菜单也必须存在 name 属性,父级菜单 name 属性,在很早之前曾考虑过移除,后来发现会引起 Bug,于是没有改动。但前段时间调整动态路由时没有想起该情况,一时疏忽移除了,所幸发现问题不晚,现在及时恢复回来 2.优化实时监控示例的相关变量命名
This commit is contained in:
parent
10ca5d8c76
commit
3fc7adb1e2
@ -25,7 +25,7 @@ import locale404 from '@/views/demo/exception/404/locale/en-US';
|
||||
import locale500 from '@/views/demo/exception/500/locale/en-US';
|
||||
import localeDataAnalysis from '@/views/demo/visualization/data-analysis/locale/en-US';
|
||||
import localeMultiDAnalysis from '@/views/demo/visualization/multi-dimension-data-analysis/locale/en-US';
|
||||
import localeMonitor from '@/views/demo/visualization/monitor/locale/en-US';
|
||||
import localeRealTimeMonitor from '@/views/demo/visualization/real-time-monitor/locale/en-US';
|
||||
|
||||
import localeMessageBox from '@/components/message-box/locale/en-US';
|
||||
import localeLogin from '@/views/login/locale/en-US';
|
||||
@ -80,7 +80,7 @@ export default {
|
||||
...locale500,
|
||||
...localeDataAnalysis,
|
||||
...localeMultiDAnalysis,
|
||||
...localeMonitor,
|
||||
...localeRealTimeMonitor,
|
||||
|
||||
...localeMessageBox,
|
||||
...localeLogin,
|
||||
|
@ -25,7 +25,7 @@ import locale404 from '@/views/demo/exception/404/locale/zh-CN';
|
||||
import locale500 from '@/views/demo/exception/500/locale/zh-CN';
|
||||
import localeDataAnalysis from '@/views/demo/visualization/data-analysis/locale/zh-CN';
|
||||
import localeMultiDAnalysis from '@/views/demo/visualization/multi-dimension-data-analysis/locale/zh-CN';
|
||||
import localeMonitor from '@/views/demo/visualization/monitor/locale/zh-CN';
|
||||
import localeRealTimeMonitor from '@/views/demo/visualization/real-time-monitor/locale/zh-CN';
|
||||
|
||||
import localeMessageBox from '@/components/message-box/locale/zh-CN';
|
||||
import localeLogin from '@/views/login/locale/zh-CN';
|
||||
@ -80,7 +80,7 @@ export default {
|
||||
...locale500,
|
||||
...localeDataAnalysis,
|
||||
...localeMultiDAnalysis,
|
||||
...localeMonitor,
|
||||
...localeRealTimeMonitor,
|
||||
|
||||
...localeMessageBox,
|
||||
...localeLogin,
|
||||
|
@ -5,7 +5,7 @@ import './message-box';
|
||||
|
||||
import '@/views/dashboard/workplace/mock';
|
||||
|
||||
import '@/views/demo/visualization/monitor/mock';
|
||||
import '@/views/demo/visualization/real-time-monitor/mock';
|
||||
|
||||
import '@/views/demo/list/card/mock';
|
||||
import '@/views/demo/list/search-table/mock';
|
||||
|
@ -2,6 +2,7 @@ import { DEFAULT_LAYOUT } from '../../base';
|
||||
import { AppRouteRecordRaw } from '../../types';
|
||||
|
||||
const EXCEPTION: AppRouteRecordRaw = {
|
||||
name: 'Exception',
|
||||
path: '/demo/exception',
|
||||
component: DEFAULT_LAYOUT,
|
||||
meta: {
|
||||
|
@ -2,6 +2,7 @@ import { DEFAULT_LAYOUT } from '../../base';
|
||||
import { AppRouteRecordRaw } from '../../types';
|
||||
|
||||
const FORM: AppRouteRecordRaw = {
|
||||
name: 'Form',
|
||||
path: '/demo/form',
|
||||
component: DEFAULT_LAYOUT,
|
||||
meta: {
|
||||
|
@ -2,6 +2,7 @@ import { DEFAULT_LAYOUT } from '../../base';
|
||||
import { AppRouteRecordRaw } from '../../types';
|
||||
|
||||
const LIST: AppRouteRecordRaw = {
|
||||
name: 'List',
|
||||
path: '/demo/list',
|
||||
component: DEFAULT_LAYOUT,
|
||||
meta: {
|
||||
|
@ -2,6 +2,7 @@ import { DEFAULT_LAYOUT } from '../../base';
|
||||
import { AppRouteRecordRaw } from '../../types';
|
||||
|
||||
const PROFILE: AppRouteRecordRaw = {
|
||||
name: 'Profile',
|
||||
path: '/demo/profile',
|
||||
component: DEFAULT_LAYOUT,
|
||||
meta: {
|
||||
|
@ -2,6 +2,7 @@ import { DEFAULT_LAYOUT } from '../../base';
|
||||
import { AppRouteRecordRaw } from '../../types';
|
||||
|
||||
const RESULT: AppRouteRecordRaw = {
|
||||
name: 'Result',
|
||||
path: '/demo/result',
|
||||
component: DEFAULT_LAYOUT,
|
||||
meta: {
|
||||
|
@ -2,6 +2,7 @@ import { DEFAULT_LAYOUT } from '../../base';
|
||||
import { AppRouteRecordRaw } from '../../types';
|
||||
|
||||
const VISUALIZATION: AppRouteRecordRaw = {
|
||||
name: 'Visualization',
|
||||
path: '/demo/visualization',
|
||||
component: DEFAULT_LAYOUT,
|
||||
meta: {
|
||||
@ -36,12 +37,12 @@ const VISUALIZATION: AppRouteRecordRaw = {
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'Monitor',
|
||||
path: 'monitor',
|
||||
name: 'RealTimeMonitor',
|
||||
path: 'real-time-monitor',
|
||||
component: () =>
|
||||
import('@/views/demo/visualization/monitor/index.vue'),
|
||||
import('@/views/demo/visualization/real-time-monitor/index.vue'),
|
||||
meta: {
|
||||
locale: 'menu.dashboard.monitor',
|
||||
locale: 'menu.dashboard.realTimeMonitor',
|
||||
requiresAuth: true,
|
||||
roles: ['*'],
|
||||
},
|
||||
|
@ -2,8 +2,8 @@ import { DEFAULT_LAYOUT } from '../../base';
|
||||
import { AppRouteRecordRaw } from '../../types';
|
||||
|
||||
const DASHBOARD: AppRouteRecordRaw = {
|
||||
path: '/dashboard',
|
||||
name: 'Dashboard',
|
||||
path: '/dashboard',
|
||||
component: DEFAULT_LAYOUT,
|
||||
redirect: '/dashboard/workplace',
|
||||
meta: {
|
||||
|
@ -2,6 +2,7 @@ import { DEFAULT_LAYOUT } from '../base';
|
||||
import { AppRouteRecordRaw } from '../types';
|
||||
|
||||
const Monitor: AppRouteRecordRaw = {
|
||||
name: 'Monitor',
|
||||
path: '/monitor',
|
||||
component: DEFAULT_LAYOUT,
|
||||
meta: {
|
||||
|
@ -2,6 +2,7 @@ import { DEFAULT_LAYOUT } from '../base';
|
||||
import { AppRouteRecordRaw } from '../types';
|
||||
|
||||
const System: AppRouteRecordRaw = {
|
||||
name: 'System',
|
||||
path: '/system',
|
||||
component: DEFAULT_LAYOUT,
|
||||
meta: {
|
||||
|
@ -2,6 +2,7 @@ import { DEFAULT_LAYOUT } from '../base';
|
||||
import { AppRouteRecordRaw } from '../types';
|
||||
|
||||
const Tool: AppRouteRecordRaw = {
|
||||
name: 'Tool',
|
||||
path: '/tool',
|
||||
component: DEFAULT_LAYOUT,
|
||||
meta: {
|
||||
|
@ -1,34 +0,0 @@
|
||||
<template>
|
||||
<a-card class="general-card" :title="$t('monitor.title.studioInfo')">
|
||||
<a-form :model="{}" layout="vertical">
|
||||
<a-form-item :label="$t('monitor.studioInfo.label.studioTitle')" required>
|
||||
<a-input
|
||||
:placeholder="`王立群${$t(
|
||||
'monitor.studioInfo.placeholder.studioTitle'
|
||||
)}`"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="$t('monitor.studioInfo.label.onlineNotification')"
|
||||
required
|
||||
>
|
||||
<a-textarea />
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="$t('monitor.studioInfo.label.studioCategory')"
|
||||
required
|
||||
>
|
||||
<a-input-search />
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="$t('monitor.studioInfo.label.studioCategory')"
|
||||
required
|
||||
>
|
||||
<a-input-search />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
<a-button type="primary">{{ $t('monitor.studioInfo.btn.fresh') }}</a-button>
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup></script>
|
@ -1,48 +0,0 @@
|
||||
export default {
|
||||
'menu.dashboard.monitor': 'Real-time Monitor',
|
||||
'monitor.title.chatPanel': 'Chat Window',
|
||||
'monitor.title.quickOperation': 'Quick Operation',
|
||||
'monitor.title.studioInfo': 'Studio Information',
|
||||
'monitor.title.studioPreview': 'Studio Preview',
|
||||
'monitor.chat.options.all': 'All',
|
||||
'monitor.chat.placeholder.searchCategory': 'Search Category',
|
||||
'monitor.chat.update': 'Update',
|
||||
'monitor.list.title.order': 'Order',
|
||||
'monitor.list.title.cover': 'Cover',
|
||||
'monitor.list.title.name': 'Name',
|
||||
'monitor.list.title.duration': 'Duration',
|
||||
'monitor.list.title.id': 'ID',
|
||||
'monitor.list.tip.rotations': 'Rotations ',
|
||||
'monitor.list.tip.rest': ', The program list is not visible to viewers',
|
||||
'monitor.list.tag.auditFailed': 'Audit Failed',
|
||||
'monitor.tab.title.liveMethod': 'Live Method',
|
||||
'monitor.tab.title.onlinePopulation': 'Online Population',
|
||||
'monitor.liveMethod.normal': 'Normal Live',
|
||||
'monitor.liveMethod.flowControl': 'Flow Control Live',
|
||||
'monitor.liveMethod.video': 'Video Live',
|
||||
'monitor.liveMethod.web': 'Web Live',
|
||||
'monitor.editCarousel': 'Edit',
|
||||
'monitor.startCarousel': 'Start',
|
||||
'monitor.quickOperation.changeClarity': 'Change the Clarity',
|
||||
'monitor.quickOperation.switchStream': 'Switch Stream',
|
||||
'monitor.quickOperation.removeClarity': 'Remove the Clarity',
|
||||
'monitor.quickOperation.pushFlowGasket': 'Push Flow Gasket',
|
||||
'monitor.studioInfo.label.studioTitle': 'Studio Title',
|
||||
'monitor.studioInfo.label.onlineNotification': 'Online Notification',
|
||||
'monitor.studioInfo.label.studioCategory': 'Studio Category',
|
||||
'monitor.studioInfo.placeholder.studioTitle': "'s Studio",
|
||||
'monitor.studioInfo.btn.fresh': 'Fresh',
|
||||
'monitor.studioStatus.title.studioStatus': 'Studio Status',
|
||||
'monitor.studioStatus.title.pictureInfo': 'Picture Information',
|
||||
'monitor.studioStatus.smooth': 'Smooth',
|
||||
'monitor.studioStatus.frameRate': 'Frame',
|
||||
'monitor.studioStatus.bitRate': 'Bit',
|
||||
'monitor.studioStatus.mainstream': 'Main',
|
||||
'monitor.studioStatus.hotStandby': 'Hot',
|
||||
'monitor.studioStatus.coldStandby': 'Cold',
|
||||
'monitor.studioStatus.line': 'Line',
|
||||
'monitor.studioStatus.play': 'Format',
|
||||
'monitor.studioStatus.pictureQuality': 'Quality',
|
||||
'monitor.studioPreview.studio': 'Studio',
|
||||
'monitor.studioPreview.watching': 'watching',
|
||||
};
|
@ -1,48 +0,0 @@
|
||||
export default {
|
||||
'menu.dashboard.monitor': '实时监控',
|
||||
'monitor.title.chatPanel': '聊天窗口',
|
||||
'monitor.title.quickOperation': '快捷操作',
|
||||
'monitor.title.studioInfo': '直播信息',
|
||||
'monitor.title.studioPreview': '直播预览',
|
||||
'monitor.chat.options.all': '全部',
|
||||
'monitor.chat.placeholder.searchCategory': '搜索类目',
|
||||
'monitor.chat.update': '更新',
|
||||
'monitor.list.title.order': '序号',
|
||||
'monitor.list.title.cover': '封面',
|
||||
'monitor.list.title.name': '名称',
|
||||
'monitor.list.title.duration': '视频时长',
|
||||
'monitor.list.title.id': '视频Id',
|
||||
'monitor.list.tip.rotations': '轮播次数',
|
||||
'monitor.list.tip.rest': ',节目单观众不可见',
|
||||
'monitor.list.tag.auditFailed': '审核未通过',
|
||||
'monitor.tab.title.liveMethod': '直播方式',
|
||||
'monitor.tab.title.onlinePopulation': '在线人数',
|
||||
'monitor.liveMethod.normal': '普通直播',
|
||||
'monitor.liveMethod.flowControl': '控流直播',
|
||||
'monitor.liveMethod.video': '视频直播',
|
||||
'monitor.liveMethod.web': '网页开播',
|
||||
'monitor.editCarousel': '编辑轮播',
|
||||
'monitor.startCarousel': '开始轮播',
|
||||
'monitor.quickOperation.changeClarity': '切换清晰度',
|
||||
'monitor.quickOperation.switchStream': '主备流切换',
|
||||
'monitor.quickOperation.removeClarity': '摘除清晰度',
|
||||
'monitor.quickOperation.pushFlowGasket': '推流垫片',
|
||||
'monitor.studioInfo.label.studioTitle': '直播标题',
|
||||
'monitor.studioInfo.label.onlineNotification': '上线通知',
|
||||
'monitor.studioInfo.label.studioCategory': '直播类目',
|
||||
'monitor.studioInfo.placeholder.studioTitle': '的直播间',
|
||||
'monitor.studioInfo.btn.fresh': '更新',
|
||||
'monitor.studioStatus.title.studioStatus': '直播状态',
|
||||
'monitor.studioStatus.title.pictureInfo': '画面信息',
|
||||
'monitor.studioStatus.smooth': '流畅',
|
||||
'monitor.studioStatus.frameRate': '帧率',
|
||||
'monitor.studioStatus.bitRate': '码率',
|
||||
'monitor.studioStatus.mainstream': '主流',
|
||||
'monitor.studioStatus.hotStandby': '热备',
|
||||
'monitor.studioStatus.coldStandby': '冷备',
|
||||
'monitor.studioStatus.line': '线路',
|
||||
'monitor.studioStatus.play': '播放格式',
|
||||
'monitor.studioStatus.pictureQuality': '画质',
|
||||
'monitor.studioPreview.studio': '直播间',
|
||||
'monitor.studioPreview.watching': '在看',
|
||||
};
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<a-card
|
||||
class="general-card chat-panel"
|
||||
:title="$t('monitor.title.chatPanel')"
|
||||
:title="$t('realTimeMonitor.title.chatPanel')"
|
||||
:bordered="false"
|
||||
:header-style="{ paddingBottom: '0' }"
|
||||
:body-style="{
|
||||
@ -14,11 +14,11 @@
|
||||
<a-space :size="8">
|
||||
<a-select style="width: 86px" default-value="all">
|
||||
<a-option value="all">
|
||||
{{ $t('monitor.chat.options.all') }}
|
||||
{{ $t('realTimeMonitor.chat.options.all') }}
|
||||
</a-option>
|
||||
</a-select>
|
||||
<a-input-search
|
||||
:placeholder="$t('monitor.chat.placeholder.searchCategory')"
|
||||
:placeholder="$t('realTimeMonitor.chat.placeholder.searchCategory')"
|
||||
/>
|
||||
<a-button type="text">
|
||||
<icon-download />
|
||||
@ -36,7 +36,7 @@
|
||||
<icon-face-smile-fill />
|
||||
</template>
|
||||
</a-Input>
|
||||
<a-button type="primary">{{ $t('monitor.chat.update') }}</a-button>
|
||||
<a-button type="primary">{{ $t('realTimeMonitor.chat.update') }}</a-button>
|
||||
</a-space>
|
||||
</div>
|
||||
</a-card>
|
@ -12,8 +12,8 @@
|
||||
:pagination="false"
|
||||
/>
|
||||
<a-typography-text type="secondary" class="data-statistic-list-tip">
|
||||
{{ $t('monitor.list.tip.rotations') }} {{ data.length }}
|
||||
{{ $t('monitor.list.tip.rest') }}
|
||||
{{ $t('realTimeMonitor.list.tip.rotations') }} {{ data.length }}
|
||||
{{ $t('realTimeMonitor.list.tip.rest') }}
|
||||
</a-typography-text>
|
||||
</div>
|
||||
</template>
|
||||
@ -47,7 +47,7 @@
|
||||
const renderTag = (status: number) => {
|
||||
if (status === -1) {
|
||||
return `<a-tag color="red" class='data-statistic-list-cover-tag'>
|
||||
${t('monitor.list.tag.auditFailed')}
|
||||
${t('realTimeMonitor.list.tag.auditFailed')}
|
||||
</a-tag>`;
|
||||
}
|
||||
return '';
|
||||
@ -58,7 +58,7 @@
|
||||
const columns = computed(() => {
|
||||
return [
|
||||
{
|
||||
title: t('monitor.list.title.order'),
|
||||
title: t('realTimeMonitor.list.title.order'),
|
||||
render({
|
||||
rowIndex,
|
||||
}: {
|
||||
@ -71,7 +71,7 @@
|
||||
},
|
||||
},
|
||||
{
|
||||
title: t('monitor.list.title.cover'),
|
||||
title: t('realTimeMonitor.list.title.cover'),
|
||||
render({
|
||||
record,
|
||||
}: {
|
||||
@ -87,16 +87,16 @@
|
||||
},
|
||||
},
|
||||
{
|
||||
title: t('monitor.list.title.name'),
|
||||
title: t('realTimeMonitor.list.title.name'),
|
||||
dataIndex: 'name',
|
||||
},
|
||||
{
|
||||
dataIndex: 'duration',
|
||||
title: t('monitor.list.title.duration'),
|
||||
title: t('realTimeMonitor.list.title.duration'),
|
||||
},
|
||||
{
|
||||
dataIndex: 'id',
|
||||
title: t('monitor.list.title.id'),
|
||||
title: t('realTimeMonitor.list.title.id'),
|
||||
},
|
||||
];
|
||||
});
|
@ -3,25 +3,25 @@
|
||||
<a-tabs default-active-tab="liveMethod">
|
||||
<a-tab-pane
|
||||
key="liveMethod"
|
||||
:title="$t('monitor.tab.title.liveMethod')"
|
||||
:title="$t('realTimeMonitor.tab.title.liveMethod')"
|
||||
/>
|
||||
<a-tab-pane
|
||||
key="onlinePopulation"
|
||||
:title="$t('monitor.tab.title.onlinePopulation')"
|
||||
:title="$t('realTimeMonitor.tab.title.onlinePopulation')"
|
||||
/>
|
||||
</a-tabs>
|
||||
<div class="data-statistic-content">
|
||||
<a-radio-group :default-value="3" type="button">
|
||||
<a-radio :value="1">{{ $t('monitor.liveMethod.normal') }}</a-radio>
|
||||
<a-radio :value="2">{{ $t('monitor.liveMethod.flowControl') }}</a-radio>
|
||||
<a-radio :value="3">{{ $t('monitor.liveMethod.video') }}</a-radio>
|
||||
<a-radio :value="4">{{ $t('monitor.liveMethod.web') }}</a-radio>
|
||||
<a-radio :value="1">{{ $t('realTimeMonitor.liveMethod.normal') }}</a-radio>
|
||||
<a-radio :value="2">{{ $t('realTimeMonitor.liveMethod.flowControl') }}</a-radio>
|
||||
<a-radio :value="3">{{ $t('realTimeMonitor.liveMethod.video') }}</a-radio>
|
||||
<a-radio :value="4">{{ $t('realTimeMonitor.liveMethod.web') }}</a-radio>
|
||||
</a-radio-group>
|
||||
|
||||
<div class="data-statistic-list-wrapper">
|
||||
<div class="data-statistic-list-header">
|
||||
<a-button type="text">{{ $t('monitor.editCarousel') }}</a-button>
|
||||
<a-button disabled>{{ $t('monitor.startCarousel') }}</a-button>
|
||||
<a-button type="text">{{ $t('realTimeMonitor.editCarousel') }}</a-button>
|
||||
<a-button disabled>{{ $t('realTimeMonitor.startCarousel') }}</a-button>
|
||||
</div>
|
||||
<div class="data-statistic-list-content">
|
||||
<DataStatisticList />
|
@ -1,26 +1,26 @@
|
||||
<template>
|
||||
<a-card class="general-card" :title="$t('monitor.title.quickOperation')">
|
||||
<a-card class="general-card" :title="$t('realTimeMonitor.title.quickOperation')">
|
||||
<a-space direction="vertical" fill :size="10">
|
||||
<a-button long>
|
||||
{{ $t('monitor.quickOperation.changeClarity') }}
|
||||
{{ $t('realTimeMonitor.quickOperation.changeClarity') }}
|
||||
<template #icon>
|
||||
<IconTags />
|
||||
</template>
|
||||
</a-button>
|
||||
<a-button long>
|
||||
{{ $t('monitor.quickOperation.switchStream') }}
|
||||
{{ $t('realTimeMonitor.quickOperation.switchStream') }}
|
||||
<template #icon>
|
||||
<IconSwap />
|
||||
</template>
|
||||
</a-button>
|
||||
<a-button long>
|
||||
{{ $t('monitor.quickOperation.removeClarity') }}
|
||||
{{ $t('realTimeMonitor.quickOperation.removeClarity') }}
|
||||
<template #icon>
|
||||
<IconStop />
|
||||
</template>
|
||||
</a-button>
|
||||
<a-button long>
|
||||
{{ $t('monitor.quickOperation.pushFlowGasket') }}
|
||||
{{ $t('realTimeMonitor.quickOperation.pushFlowGasket') }}
|
||||
<template #icon>
|
||||
<IconArrowRight />
|
||||
</template>
|
@ -0,0 +1,34 @@
|
||||
<template>
|
||||
<a-card class="general-card" :title="$t('realTimeMonitor.title.studioInfo')">
|
||||
<a-form :model="{}" layout="vertical">
|
||||
<a-form-item :label="$t('realTimeMonitor.studioInfo.label.studioTitle')" required>
|
||||
<a-input
|
||||
:placeholder="`王立群${$t(
|
||||
'realTimeMonitor.studioInfo.placeholder.studioTitle'
|
||||
)}`"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="$t('realTimeMonitor.studioInfo.label.onlineNotification')"
|
||||
required
|
||||
>
|
||||
<a-textarea />
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="$t('realTimeMonitor.studioInfo.label.studioCategory')"
|
||||
required
|
||||
>
|
||||
<a-input-search />
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="$t('realTimeMonitor.studioInfo.label.studioCategory')"
|
||||
required
|
||||
>
|
||||
<a-input-search />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
<a-button type="primary">{{ $t('realTimeMonitor.studioInfo.btn.fresh') }}</a-button>
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup></script>
|
@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<a-card
|
||||
class="general-card"
|
||||
:title="$t('monitor.studioStatus.title.studioStatus')"
|
||||
:title="$t('realTimeMonitor.studioStatus.title.studioStatus')"
|
||||
>
|
||||
<template #extra>
|
||||
<a-tag color="green">{{ $t('monitor.studioStatus.smooth') }}</a-tag>
|
||||
<a-tag color="green">{{ $t('realTimeMonitor.studioStatus.smooth') }}</a-tag>
|
||||
</template>
|
||||
<a-descriptions layout="horizontal" :data="dataStatus" :column="2">
|
||||
<template #label="{ label }">
|
||||
@ -12,15 +12,15 @@
|
||||
v-if="['mainstream', 'hotStandby', 'coldStandby'].includes(label)"
|
||||
>
|
||||
<a-typography-text style="padding-right: 8px">
|
||||
{{ $t(`monitor.studioStatus.${label}`) }}
|
||||
{{ $t(`realTimeMonitor.studioStatus.${label}`) }}
|
||||
</a-typography-text>
|
||||
{{ $t('monitor.studioStatus.bitRate') }}
|
||||
{{ $t('realTimeMonitor.studioStatus.bitRate') }}
|
||||
</span>
|
||||
<span v-else>{{ label }}</span>
|
||||
</template>
|
||||
</a-descriptions>
|
||||
<a-typography-title style="margin-bottom: 16px" :heading="6">
|
||||
{{ $t('monitor.studioStatus.title.pictureInfo') }}
|
||||
{{ $t('realTimeMonitor.studioStatus.title.pictureInfo') }}
|
||||
</a-typography-title>
|
||||
<a-descriptions layout="horizontal" :data="dataPicture" :column="2" />
|
||||
</a-card>
|
||||
@ -37,7 +37,7 @@
|
||||
value: '6 Mbps',
|
||||
},
|
||||
{
|
||||
label: t('monitor.studioStatus.frameRate'),
|
||||
label: t('realTimeMonitor.studioStatus.frameRate'),
|
||||
value: '60',
|
||||
},
|
||||
{
|
||||
@ -45,7 +45,7 @@
|
||||
value: '6 Mbps',
|
||||
},
|
||||
{
|
||||
label: t('monitor.studioStatus.frameRate'),
|
||||
label: t('realTimeMonitor.studioStatus.frameRate'),
|
||||
value: '60',
|
||||
},
|
||||
{
|
||||
@ -53,13 +53,13 @@
|
||||
value: '6 Mbps',
|
||||
},
|
||||
{
|
||||
label: t('monitor.studioStatus.frameRate'),
|
||||
label: t('realTimeMonitor.studioStatus.frameRate'),
|
||||
value: '60',
|
||||
},
|
||||
]);
|
||||
const dataPicture = computed(() => [
|
||||
{
|
||||
label: t('monitor.studioStatus.line'),
|
||||
label: t('realTimeMonitor.studioStatus.line'),
|
||||
value: '热备',
|
||||
},
|
||||
{
|
||||
@ -67,11 +67,11 @@
|
||||
value: 'KS',
|
||||
},
|
||||
{
|
||||
label: t('monitor.studioStatus.play'),
|
||||
label: t('realTimeMonitor.studioStatus.play'),
|
||||
value: 'FLV',
|
||||
},
|
||||
{
|
||||
label: t('monitor.studioStatus.pictureQuality'),
|
||||
label: t('realTimeMonitor.studioStatus.pictureQuality'),
|
||||
value: '原画',
|
||||
},
|
||||
]);
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<a-card class="general-card" :title="$t('monitor.title.studioPreview')">
|
||||
<a-card class="general-card" :title="$t('realTimeMonitor.title.studioPreview')">
|
||||
<template #extra>
|
||||
<icon-more />
|
||||
</template>
|
||||
@ -15,12 +15,12 @@
|
||||
<img :src="getAvatar(userInfo.avatar, userInfo.gender)" />
|
||||
</a-avatar>
|
||||
<a-typography-text>
|
||||
{{ userInfo.nickname }} {{ $t('monitor.studioPreview.studio') }}
|
||||
{{ userInfo.nickname }} {{ $t('realTimeMonitor.studioPreview.studio') }}
|
||||
</a-typography-text>
|
||||
</a-space>
|
||||
</div>
|
||||
<a-typography-text type="secondary">
|
||||
36,000 {{ $t('monitor.studioPreview.watching') }}
|
||||
36,000 {{ $t('realTimeMonitor.studioPreview.watching') }}
|
||||
</a-typography-text>
|
||||
</div>
|
||||
</div>
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="container">
|
||||
<Breadcrumb :items="['menu.dashboard', 'menu.dashboard.monitor']" />
|
||||
<Breadcrumb :items="['menu.dashboard', 'menu.dashboard.realTimeMonitor']" />
|
||||
<div class="layout">
|
||||
<div class="layout-left-side">
|
||||
<ChatPanel />
|
||||
@ -33,7 +33,7 @@
|
||||
|
||||
<script lang="ts">
|
||||
export default {
|
||||
name: 'Monitor',
|
||||
name: 'RealTimeMonitor',
|
||||
};
|
||||
</script>
|
||||
|
@ -0,0 +1,48 @@
|
||||
export default {
|
||||
'menu.dashboard.realTimeMonitor': 'Real-time Monitor',
|
||||
'realTimeMonitor.title.chatPanel': 'Chat Window',
|
||||
'realTimeMonitor.title.quickOperation': 'Quick Operation',
|
||||
'realTimeMonitor.title.studioInfo': 'Studio Information',
|
||||
'realTimeMonitor.title.studioPreview': 'Studio Preview',
|
||||
'realTimeMonitor.chat.options.all': 'All',
|
||||
'realTimeMonitor.chat.placeholder.searchCategory': 'Search Category',
|
||||
'realTimeMonitor.chat.update': 'Update',
|
||||
'realTimeMonitor.list.title.order': 'Order',
|
||||
'realTimeMonitor.list.title.cover': 'Cover',
|
||||
'realTimeMonitor.list.title.name': 'Name',
|
||||
'realTimeMonitor.list.title.duration': 'Duration',
|
||||
'realTimeMonitor.list.title.id': 'ID',
|
||||
'realTimeMonitor.list.tip.rotations': 'Rotations ',
|
||||
'realTimeMonitor.list.tip.rest': ', The program list is not visible to viewers',
|
||||
'realTimeMonitor.list.tag.auditFailed': 'Audit Failed',
|
||||
'realTimeMonitor.tab.title.liveMethod': 'Live Method',
|
||||
'realTimeMonitor.tab.title.onlinePopulation': 'Online Population',
|
||||
'realTimeMonitor.liveMethod.normal': 'Normal Live',
|
||||
'realTimeMonitor.liveMethod.flowControl': 'Flow Control Live',
|
||||
'realTimeMonitor.liveMethod.video': 'Video Live',
|
||||
'realTimeMonitor.liveMethod.web': 'Web Live',
|
||||
'realTimeMonitor.editCarousel': 'Edit',
|
||||
'realTimeMonitor.startCarousel': 'Start',
|
||||
'realTimeMonitor.quickOperation.changeClarity': 'Change the Clarity',
|
||||
'realTimeMonitor.quickOperation.switchStream': 'Switch Stream',
|
||||
'realTimeMonitor.quickOperation.removeClarity': 'Remove the Clarity',
|
||||
'realTimeMonitor.quickOperation.pushFlowGasket': 'Push Flow Gasket',
|
||||
'realTimeMonitor.studioInfo.label.studioTitle': 'Studio Title',
|
||||
'realTimeMonitor.studioInfo.label.onlineNotification': 'Online Notification',
|
||||
'realTimeMonitor.studioInfo.label.studioCategory': 'Studio Category',
|
||||
'realTimeMonitor.studioInfo.placeholder.studioTitle': "'s Studio",
|
||||
'realTimeMonitor.studioInfo.btn.fresh': 'Fresh',
|
||||
'realTimeMonitor.studioStatus.title.studioStatus': 'Studio Status',
|
||||
'realTimeMonitor.studioStatus.title.pictureInfo': 'Picture Information',
|
||||
'realTimeMonitor.studioStatus.smooth': 'Smooth',
|
||||
'realTimeMonitor.studioStatus.frameRate': 'Frame',
|
||||
'realTimeMonitor.studioStatus.bitRate': 'Bit',
|
||||
'realTimeMonitor.studioStatus.mainstream': 'Main',
|
||||
'realTimeMonitor.studioStatus.hotStandby': 'Hot',
|
||||
'realTimeMonitor.studioStatus.coldStandby': 'Cold',
|
||||
'realTimeMonitor.studioStatus.line': 'Line',
|
||||
'realTimeMonitor.studioStatus.play': 'Format',
|
||||
'realTimeMonitor.studioStatus.pictureQuality': 'Quality',
|
||||
'realTimeMonitor.studioPreview.studio': 'Studio',
|
||||
'realTimeMonitor.studioPreview.watching': 'watching',
|
||||
};
|
@ -0,0 +1,48 @@
|
||||
export default {
|
||||
'menu.dashboard.realTimeMonitor': '实时监控',
|
||||
'realTimeMonitor.title.chatPanel': '聊天窗口',
|
||||
'realTimeMonitor.title.quickOperation': '快捷操作',
|
||||
'realTimeMonitor.title.studioInfo': '直播信息',
|
||||
'realTimeMonitor.title.studioPreview': '直播预览',
|
||||
'realTimeMonitor.chat.options.all': '全部',
|
||||
'realTimeMonitor.chat.placeholder.searchCategory': '搜索类目',
|
||||
'realTimeMonitor.chat.update': '更新',
|
||||
'realTimeMonitor.list.title.order': '序号',
|
||||
'realTimeMonitor.list.title.cover': '封面',
|
||||
'realTimeMonitor.list.title.name': '名称',
|
||||
'realTimeMonitor.list.title.duration': '视频时长',
|
||||
'realTimeMonitor.list.title.id': '视频Id',
|
||||
'realTimeMonitor.list.tip.rotations': '轮播次数',
|
||||
'realTimeMonitor.list.tip.rest': ',节目单观众不可见',
|
||||
'realTimeMonitor.list.tag.auditFailed': '审核未通过',
|
||||
'realTimeMonitor.tab.title.liveMethod': '直播方式',
|
||||
'realTimeMonitor.tab.title.onlinePopulation': '在线人数',
|
||||
'realTimeMonitor.liveMethod.normal': '普通直播',
|
||||
'realTimeMonitor.liveMethod.flowControl': '控流直播',
|
||||
'realTimeMonitor.liveMethod.video': '视频直播',
|
||||
'realTimeMonitor.liveMethod.web': '网页开播',
|
||||
'realTimeMonitor.editCarousel': '编辑轮播',
|
||||
'realTimeMonitor.startCarousel': '开始轮播',
|
||||
'realTimeMonitor.quickOperation.changeClarity': '切换清晰度',
|
||||
'realTimeMonitor.quickOperation.switchStream': '主备流切换',
|
||||
'realTimeMonitor.quickOperation.removeClarity': '摘除清晰度',
|
||||
'realTimeMonitor.quickOperation.pushFlowGasket': '推流垫片',
|
||||
'realTimeMonitor.studioInfo.label.studioTitle': '直播标题',
|
||||
'realTimeMonitor.studioInfo.label.onlineNotification': '上线通知',
|
||||
'realTimeMonitor.studioInfo.label.studioCategory': '直播类目',
|
||||
'realTimeMonitor.studioInfo.placeholder.studioTitle': '的直播间',
|
||||
'realTimeMonitor.studioInfo.btn.fresh': '更新',
|
||||
'realTimeMonitor.studioStatus.title.studioStatus': '直播状态',
|
||||
'realTimeMonitor.studioStatus.title.pictureInfo': '画面信息',
|
||||
'realTimeMonitor.studioStatus.smooth': '流畅',
|
||||
'realTimeMonitor.studioStatus.frameRate': '帧率',
|
||||
'realTimeMonitor.studioStatus.bitRate': '码率',
|
||||
'realTimeMonitor.studioStatus.mainstream': '主流',
|
||||
'realTimeMonitor.studioStatus.hotStandby': '热备',
|
||||
'realTimeMonitor.studioStatus.coldStandby': '冷备',
|
||||
'realTimeMonitor.studioStatus.line': '线路',
|
||||
'realTimeMonitor.studioStatus.play': '播放格式',
|
||||
'realTimeMonitor.studioStatus.pictureQuality': '画质',
|
||||
'realTimeMonitor.studioPreview.studio': '直播间',
|
||||
'realTimeMonitor.studioPreview.watching': '在看',
|
||||
};
|
@ -2,7 +2,7 @@
|
||||
|
||||
-- changeset Charles7c:1
|
||||
-- 初始化默认菜单
|
||||
INSERT IGNORE INTO `sys_menu` VALUES (1000, '系统管理', 0, 1, '/system', NULL, NULL, 'settings', b'0', b'0', b'0', NULL, 1, 1, 1, NOW(), NULL, NULL);
|
||||
INSERT IGNORE INTO `sys_menu` VALUES (1000, '系统管理', 0, 1, '/system', 'System', NULL, 'settings', b'0', b'0', b'0', NULL, 1, 1, 1, NOW(), NULL, NULL);
|
||||
INSERT IGNORE INTO `sys_menu` VALUES (1010, '用户管理', 1000, 2, '/system/user', 'User', '/system/user/index', NULL, b'0', b'0', b'0', 'system:user:list', 1, 1, 1, NOW(), NULL, NULL);
|
||||
INSERT IGNORE INTO `sys_menu` VALUES (1011, '用户新增', 1010, 3, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:user:add', 1, 1, 1, NOW(), NULL, NULL);
|
||||
INSERT IGNORE INTO `sys_menu` VALUES (1012, '用户修改', 1010, 3, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:user:update', 2, 1, 1, NOW(), NULL, NULL);
|
||||
@ -25,7 +25,7 @@ INSERT IGNORE INTO `sys_menu` VALUES (1901, '菜单新增', 1900, 3, NULL, NULL,
|
||||
INSERT IGNORE INTO `sys_menu` VALUES (1902, '菜单修改', 1900, 3, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:menu:update', 2, 1, 1, NOW(), NULL, NULL);
|
||||
INSERT IGNORE INTO `sys_menu` VALUES (1903, '菜单删除', 1900, 3, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:menu:delete', 3, 1, 1, NOW(), NULL, NULL);
|
||||
INSERT IGNORE INTO `sys_menu` VALUES (1904, '菜单导出', 1900, 3, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:menu:export', 4, 1, 1, NOW(), NULL, NULL);
|
||||
INSERT IGNORE INTO `sys_menu` VALUES (9000, '系统监控', 0, 1, '/monitor', NULL, NULL, 'computer', b'0', b'0', b'0', NULL, 899, 1, 1, NOW(), NULL, NULL);
|
||||
INSERT IGNORE INTO `sys_menu` VALUES (9000, '系统监控', 0, 1, '/monitor', 'Monitor', NULL, 'computer', b'0', b'0', b'0', NULL, 899, 1, 1, NOW(), NULL, NULL);
|
||||
INSERT IGNORE INTO `sys_menu` VALUES (9010, '在线用户', 9000, 2, '/monitor/online', 'OnlineUser', '/monitor/online/index', NULL, b'0', b'0', b'0', 'monitor:online:user:list', 1, 1, 1, NOW(), NULL, NULL);
|
||||
INSERT IGNORE INTO `sys_menu` VALUES (9011, '强退用户', 9010, 3, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'monitor:online:user:delete', 1, 1, 1, NOW(), NULL, NULL);
|
||||
INSERT IGNORE INTO `sys_menu` VALUES (9030, '登录日志', 9000, 2, '/monitor/log/login', 'LoginLog', '/monitor/log/login/index', NULL, b'0', b'0', b'0', 'monitor:log:login:list', 2, 1, 1, NOW(), NULL, NULL);
|
||||
|
@ -6,5 +6,5 @@ INSERT IGNORE INTO `sys_menu` VALUES (1041, '公告新增', 1040, 3, NULL, NULL,
|
||||
INSERT IGNORE INTO `sys_menu` VALUES (1042, '公告修改', 1040, 3, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:announcement:update', 2, 1, 1, NOW(), NULL, NULL);
|
||||
INSERT IGNORE INTO `sys_menu` VALUES (1043, '公告删除', 1040, 3, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:announcement:delete', 3, 1, 1, NOW(), NULL, NULL);
|
||||
INSERT IGNORE INTO `sys_menu` VALUES (1044, '公告导出', 1040, 3, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:announcement:export', 4, 1, 1, NOW(), NULL, NULL);
|
||||
INSERT IGNORE INTO `sys_menu` VALUES (2000, '系统工具', 0, 1, '/tool', NULL, NULL, 'tool', b'0', b'0', b'0', NULL, 2, 1, 1, NOW(), NULL, NULL);
|
||||
INSERT IGNORE INTO `sys_menu` VALUES (2000, '系统工具', 0, 1, '/tool', 'Tool', NULL, 'tool', b'0', b'0', b'0', NULL, 2, 1, 1, NOW(), NULL, NULL);
|
||||
INSERT IGNORE INTO `sys_menu` VALUES (2010, '代码生成', 2000, 2, '/tool/generator', 'Generator', '/tool/generator/index', NULL, b'0', b'0', b'0', 'tool:generator:list', 1, 1, 1, NOW(), NULL, NULL);
|
Loading…
Reference in New Issue
Block a user